:root{--bg:#0e0f13;--bg-raised:#171922;--bg-hover:#1f2230;--border:#2c3040;--text:#f2f3f7;--text-dim:#a8adbd;--brand:#f5b301;--brand-strong:#ffcb2e;--brand-contrast:#1a1400;--accent:#4da3ff;--danger:#ff6b6b;--ok:#37c978;--warn:#ffb020;--radius:12px;--sidebar-w:300px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;padding:0;font-family:Segoe UI,Heebo,Assistant,-apple-system,BlinkMacSystemFont,Arial Hebrew,Arial,sans-serif;font-size:16px;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--bg-raised);color:var(--text);border-radius:var(--radius);padding:8px 14px}button:hover{background:var(--bg-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast);font-weight:600}button.primary:hover{background:var(--brand-strong)}input,textarea,select{font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}input::placeholder,textarea::placeholder{color:var(--text-dim)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}bdi,.ltr{direction:ltr;unicode-bidi:isolate}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{background:var(--bg-raised);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{color:var(--brand);font-weight:700}.topbar-user{color:var(--text-dim);align-items:center;gap:12px;margin-inline-start:auto;display:flex}.admin-link{color:var(--accent)}.drawer-toggle{display:none}.freeze-banner{color:var(--warn);border-bottom:1px solid var(--border);background:#3a2a00;padding:10px 16px}.error-banner{color:var(--danger);background:#3a1414;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.error-banner button{color:inherit;background:0 0;border:none}.main-row{flex:1;min-height:0;display:flex}.sidebar{width:var(--sidebar-w);border-inline-end:1px solid var(--border);background:var(--bg-raised);flex-direction:column;gap:10px;padding:12px;display:flex;overflow-y:auto}.sidebar-actions{flex-direction:column;gap:8px;display:flex}.chat-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chat-list li{border-radius:var(--radius);align-items:center;gap:4px;display:flex}.chat-list li.active{background:var(--bg-hover)}.chat-list li.empty{color:var(--text-dim);padding:8px}.chat-item{text-align:start;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;min-width:0;padding:8px;display:flex}.chat-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-sub{color:var(--text-dim);font-size:12px}.chat-actions{gap:2px;display:flex}.chat-actions button,.chat-actions a{color:var(--text-dim);background:0 0;border:none;padding:4px;font-size:14px}.chat-actions button:hover,.chat-actions a:hover{color:var(--text)}.archived summary{cursor:pointer;color:var(--text-dim)}.chat-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.chat-header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.mode-tabs{gap:4px;display:flex}.tab{border-radius:999px;padding:6px 14px}.tab.active{background:var(--brand);color:var(--brand-contrast);border-color:var(--brand);font-weight:600}.model-toggle{border-radius:999px}.course-chip{color:var(--text-dim);margin-inline-start:auto;font-size:14px}.messages{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.empty-state{text-align:center;color:var(--text);max-width:480px;margin:auto}.dim{color:var(--text-dim)}.msg{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-width:720px;padding:12px 16px}.msg-user{background:var(--bg-hover);align-self:flex-start}.msg-assistant{background:var(--bg-raised);border:1px solid var(--border);align-self:stretch}.msg-badge{color:var(--text-dim);margin-top:8px;font-size:13px}.msg-badge.warn{color:var(--warn)}.msg[data-status=refused] .msg-body{color:var(--text-dim)}.citations{margin-top:10px}.citations-toggle{border-radius:999px;padding:4px 10px;font-size:13px}.citation-cards{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.citation-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.citation-title{font-weight:600}.citation-meta{color:var(--text-dim);font-size:13px}.welcome-box{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;padding:16px}.welcome-buttons{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0;display:flex}.work-review-row{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:8px 16px;display:flex}.upload-chip{color:var(--ok);font-size:14px}.upload-label{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.composer{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-raised);gap:8px;display:flex}.composer textarea{resize:none;flex:1}.composer .send,.composer .stop{align-self:flex-end;min-width:84px}.stop{background:var(--danger);border-color:var(--danger);color:#fff}.center-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100dvh;padding:24px;display:flex}.button-link{background:var(--brand);color:var(--brand-contrast);border-radius:var(--radius);padding:10px 24px;font-weight:600}.button-link:hover{background:var(--brand-strong);text-decoration:none}.auth-panel{text-align:start;flex-direction:column;gap:16px;width:100%;max-width:380px;display:flex}.auth-panel h1{text-align:center;color:var(--brand)}.auth-tabs{gap:8px;display:flex}.auth-tabs button{background:var(--bg-raised);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius);flex:1;padding:10px;font-weight:600}.auth-tabs button.active{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.auth-form input{width:100%;padding:12px;font-size:1rem}.auth-submit{background:var(--brand);border:1px solid var(--brand);width:100%;color:var(--brand-contrast);border-radius:var(--radius);padding:12px;font-size:1rem;font-weight:700}.auth-submit:hover:not(:disabled){background:var(--brand-strong)}.auth-submit:disabled{opacity:.6}.auth-secondary{justify-content:space-between;gap:8px;display:flex}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:6px 0}.auth-error{color:var(--danger);margin:0}.auth-notice{color:var(--ok);margin:0}@media (max-width:700px){.drawer-toggle{display:inline-block}.sidebar{z-index:20;width:min(85vw, var(--sidebar-w));transition:transform .2s;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(100%);box-shadow:0 0 24px #00000080}[dir=rtl] .sidebar{transform:translate(100%)}.sidebar.open{transform:translate(0)}.msg{max-width:100%}}.admin-wrap{flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;padding:20px;display:flex}.admin-tabs{flex-wrap:wrap;gap:6px;display:flex}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{border:1px solid var(--border);text-align:start;padding:8px 10px}.admin-table th{background:var(--bg-raised)}.state-chip{background:var(--bg-hover);border-radius:999px;padding:2px 10px;font-size:13px}.state-chip[data-state=active],.state-chip[data-state=grace]{color:var(--ok)}.state-chip[data-state=frozen],.state-chip[data-state=expired]{color:var(--warn)}.state-chip[data-state=revoked]{color:var(--danger)}
