:root{--font-ui: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-label: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--bg: #1a1d23;--bg-card: #121827;--bg-input: #0f1422;--border: #1e2a44;--border-input: #243455;--text: #eef0f4;--text-muted: #a7b0c4;--text-label: #b9c2d6;--btn-bg: #5865F2;--btn-color: #ffffff;--btn-border: transparent;--btn-bg-hover: #4752c4;--btn-color-hover: #ffffff;--btn-secondary-bg: #26324f;--btn-secondary-color: #eef0f4;--btn-secondary-border: transparent;--btn-danger-bg: #ed4245;--btn-danger-color: #ffffff;--btn-danger-border: transparent;--btn-danger-bg-hover: #c03537;--btn-danger-color-hover:#ffffff;--error-bg: #3a1220;--error-border: #7a1a38;--ok-bg: #10321d;--ok-border: #1f6a3b;--warn-bg: #3a2a12;--warn-border: #8a6a1a;--pill-bg: #0f1422;--pill-border: #243455}html[data-theme=grimoire]{--bg: #100d09;--bg-card: #1e1610;--bg-input: #160f0a;--border: #3a2a1a;--border-input: #4a3520;--text: #e8d9b8;--text-muted: #b09060;--text-label: #c8a870;--btn-bg: #c8922a;--btn-color: #100d09;--btn-border: transparent;--btn-bg-hover: #b07820;--btn-color-hover: #100d09;--btn-secondary-bg: #2e1e0a;--btn-secondary-color: #e8d9b8;--btn-danger-bg: #9a2020;--btn-danger-color: #e8d9b8;--btn-danger-border: transparent;--btn-danger-bg-hover: #7a1515;--btn-danger-color-hover:#e8d9b8;--error-bg: #3a1010;--error-border: #7a2020;--ok-bg: #1a2a10;--ok-border: #4a6a20;--warn-bg: #3a2a08;--warn-border: #7a5a12;--pill-bg: #1e1610;--pill-border: #4a3520}html[data-theme=deepspace]{--bg: #08080f;--bg-card: #0f1220;--bg-input: #0a0d1a;--border: #1a2040;--border-input: #1e2850;--text: #d4e8ff;--text-muted: #6080a0;--text-label: #8090b8;--btn-bg: #00d4ff;--btn-color: #08080f;--btn-border: transparent;--btn-bg-hover: #00aad0;--btn-color-hover: #08080f;--btn-secondary-bg: #0f1830;--btn-secondary-color: #d4e8ff;--btn-danger-bg: #cc0055;--btn-danger-color: #ffffff;--btn-danger-border: transparent;--btn-danger-bg-hover: #aa0044;--btn-danger-color-hover:#ffffff;--error-bg: #2a0820;--error-border: #880044;--ok-bg: #082028;--ok-border: #007090;--warn-bg: #1a1428;--warn-border: #504080;--pill-bg: #0f1220;--pill-border: #1e2850}html[data-theme=terminal]{--font-label: "Courier New", Courier, monospace;--bg: #0a110a;--bg-card: #0f1a0f;--bg-input: #080e08;--border: #1a3a1a;--border-input: #204520;--text: #7fff7f;--text-muted: #3a6b3a;--text-label: #5a9a5a;--btn-bg: transparent;--btn-color: #7fff7f;--btn-border: #7fff7f;--btn-bg-hover: #7fff7f;--btn-color-hover: #0a110a;--btn-secondary-bg: transparent;--btn-secondary-color: #5a9a5a;--btn-secondary-border: #3a6b3a;--btn-danger-bg: transparent;--btn-danger-color: #ffcc00;--btn-danger-border: #ffcc00;--btn-danger-bg-hover: #ffcc00;--btn-danger-color-hover:#0a110a;--error-bg: #200808;--error-border: #cc0000;--ok-bg: #0a1e0a;--ok-border: #2a6a2a;--warn-bg: #1e1a00;--warn-border: #6a5a00;--pill-bg: #0f1a0f;--pill-border: #204520}:root{font-family:var(--font-ui)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);transition:background .2s,color .2s}a{color:inherit}.container{max-width:1100px;margin:0 auto;padding:20px}.page{min-height:100vh;display:grid;place-items:center;padding:20px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.brand{font-weight:800;font-size:20px}.grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px}.card,.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px}.panel{margin-top:12px}.list{display:grid;gap:8px}.btn{background:var(--btn-bg);color:var(--btn-color);border:1px solid var(--btn-border);padding:10px 12px;border-radius:10px;cursor:pointer;font-weight:700;text-decoration:none;display:inline-block}.btn:hover:not(:disabled){background:var(--btn-bg-hover);color:var(--btn-color-hover)}.btn.secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-color);border-color:var(--btn-secondary-border)}.btn.secondary:hover:not(:disabled){filter:brightness(1.2)}html[data-theme=terminal] .btn.secondary:hover:not(:disabled){filter:none;background:#3a6b3a;color:#7fff7f}.btn.danger{background:var(--btn-danger-bg);color:var(--btn-danger-color);border-color:var(--btn-danger-border)}.btn.danger:hover:not(:disabled){background:var(--btn-danger-bg-hover);color:var(--btn-danger-color-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;background:var(--bg-input);border:1px solid var(--border-input);color:var(--text);border-radius:10px;padding:10px;margin:6px 0 12px;font-family:var(--font-ui);box-sizing:border-box}label{font-size:12px;color:var(--text-label);font-family:var(--font-label)}input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.row{display:flex;gap:12px;align-items:end}.col{flex:1}hr{border:0;border-top:1px solid var(--border);margin:14px 0}.muted{color:var(--text-muted);font-size:12px}.error{background:var(--error-bg);border:1px solid var(--error-border);padding:10px;border-radius:10px;margin-bottom:12px}.ok{background:var(--ok-bg);border:1px solid var(--ok-border);padding:10px;border-radius:10px;margin:10px 0}.warn{background:var(--warn-bg);border:1px solid var(--warn-border);padding:10px;border-radius:10px;margin:10px 0}.pill{font-size:12px;background:var(--pill-bg);border:1px solid var(--pill-border);padding:6px 10px;border-radius:999px}.tab-bar{display:flex;border-bottom:2px solid var(--border);margin-bottom:16px;overflow-x:auto;gap:0;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{background:none;border:none;border-bottom:3px solid transparent;color:var(--text-muted);padding:10px 20px 11px;cursor:pointer;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;margin-bottom:-2px;white-space:nowrap;transition:color .15s,border-color .15s}.tab-btn:hover:not(.tab-active){color:var(--text)}.tab-btn.tab-active{color:var(--text);border-bottom-color:var(--accent)}.tab-step{width:22px;height:22px;border-radius:50%;background:var(--bg-input);border:1px solid var(--border-input);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;transition:background .15s,border-color .15s}.tab-btn.tab-active .tab-step{background:var(--accent);border-color:var(--accent);color:#fff}.tab-btn.tab-done:not(.tab-active) .tab-step{background:var(--ok-border);border-color:var(--ok-border);color:#fff}.tab-btn.tab-disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.roster-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}.roster-table thead th{text-align:left;font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:0 8px 6px;border-bottom:1px solid var(--border)}.roster-table thead th:first-child{width:40px;text-align:center}.roster-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s}.roster-table tbody tr:last-child{border-bottom:none}.roster-table tbody tr:hover{background:var(--bg-input)}.roster-table tbody tr.roster-excluded{opacity:.5}.roster-table td{padding:8px;vertical-align:middle}.roster-table td:first-child{text-align:center;width:40px}.roster-table td input[type=checkbox]{width:auto;margin:0;padding:0;cursor:pointer;accent-color:var(--btn-bg)}.roster-table td input[type=checkbox]:disabled{cursor:default}.roster-table .roster-name{font-weight:500;cursor:pointer}.roster-table .roster-name.roster-name-locked{cursor:default}.roster-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:4px;background:var(--bg-input);border:1px solid var(--border-input);color:var(--text-muted)}.roster-badge.roster-badge-gm{background:color-mix(in srgb,var(--btn-bg) 20%,transparent);border-color:color-mix(in srgb,var(--btn-bg) 50%,transparent);color:var(--btn-bg)}.roster-status{font-size:11px;color:var(--text-muted);white-space:nowrap}.roster-status.roster-status-confirmed{color:var(--ok-border, #1f6a3b)}.roster-status.roster-status-excluded{color:var(--error-border, #7a1a38)}.tab-next-hint{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:12px}
