:root{--bg:#f7f7f8;--surface:#ffffff;--border:#d9dce1;--text:#1a1d21;--text-muted:#5b6068;--accent:#2455e6;--danger:#b3261e;--radius:6px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}a{color:var(--accent)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border)}.app-header nav a{margin-right:1rem;text-decoration:none;font-weight:600}.app-header-user{display:flex;align-items:center;gap:1rem;color:var(--text-muted);font-size:.9rem}.app-main{flex:1 1;padding:1.5rem;max-width:960px;width:100%;margin:0 auto}.centered{max-width:480px;margin:4rem auto;text-align:center}.link-button{background:none;border:none;padding:0;color:var(--accent)}.button,.link-button{cursor:pointer;font:inherit}.button{display:inline-block;padding:.5rem 1rem;border-radius:var(--radius);background:var(--accent);color:#fff;text-decoration:none;border:none}.button.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.button.danger{background:var(--danger)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--border)}.badge.status-DRAFT{background:#e5e7eb;color:#374151}.badge.status-REVIEW{background:#fef3c7;color:#92400e}.badge.status-PUBLISHED{background:#d1fae5;color:#065f46}.badge.status-RETIRED{background:#fee2e2;color:#991b1b}.join-code-display{font-size:1.5rem;letter-spacing:.1em}.text-muted{color:var(--text-muted)}.field{margin-bottom:1rem}.field label{display:block;font-weight:600;margin-bottom:.25rem}.field input[type=number],.field input[type=text],.field select,.field textarea{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);font:inherit;background:var(--surface);color:var(--text)}.field textarea{min-height:5rem}.error-text{color:var(--danger);font-size:.9rem;margin-top:.5rem}.row{display:flex;gap:1rem}.row>*{flex:1 1}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.field-inline{display:flex;align-items:flex-end}.field-inline .field{margin-bottom:0}.field-narrow{max-width:6rem}.inline-check{display:flex;align-items:center;gap:.4rem;font-weight:400;margin:.5rem 0}.topic-list{max-height:16rem;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.topic-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.15rem 0}.toolbar-actions{display:flex;gap:.5rem}