:root { --ink:#1e1e1e; --muted:#777; --line:#e5e5e5; --blue:#0d99ff; --canvas:#f3f3f3; --panel:#fff; --violet:#7c3aed; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size:13px; background:var(--canvas); }
button, input, select { font:inherit; }
button { color:inherit; }
.hidden { display:none !important; }
.eyebrow,.label { margin:0; color:#8a8a8a; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }

.login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 50% 30%,#fff 0,#f7f7f7 38%,#ededed 100%); }
.login-card { width:min(400px,100%); padding:40px; border:1px solid #ddd; border-radius:12px; background:#fff; box-shadow:0 20px 60px rgba(0,0,0,.1); }
.csaa-logo{display:flex;align-items:baseline;gap:5px;color:#fff;line-height:1}.csaa-logo span{font-size:22px;font-weight:900;letter-spacing:-.06em}.csaa-logo small{color:#43b9ff;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-logo{display:inline-flex;margin-bottom:28px;padding:10px 12px;border-radius:7px;background:#10233f}.login-logo span{font-size:24px}
.login-card h1 { margin:7px 0 8px; font-size:28px; letter-spacing:-.03em; }.login-copy{margin:0;color:#666}.login-card label{display:block;margin:26px 0 8px;font-weight:600}.login-card input{width:100%;padding:12px;border:1px solid #ccc;border-radius:6px;outline:none}.login-card input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(13,153,255,.16)}.login-card>button{width:100%;margin-top:12px;padding:12px;border:0;border-radius:6px;background:var(--ink);color:#fff;font-weight:600;cursor:pointer}.form-error{min-height:18px;margin:12px 0 0;color:#d92d20;font-size:12px}

.workspace { min-height:100vh; background:#f3f6f9; }
.topbar { position:sticky; top:0; z-index:4; min-height:64px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 28px; border-bottom:1px solid #263b57; background:#10233f; color:#fff; box-shadow:0 2px 8px rgba(16,35,63,.12); }
.document-title{text-align:center;line-height:1.25}.document-title strong{display:block;font-size:13px}.document-title span{font-size:10px;color:#9eb0c8}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#2563eb;font-weight:700}.signout-button{padding:8px 12px;border:1px solid #45607f;border-radius:6px;background:transparent;color:#fff;font-weight:600;cursor:pointer}.signout-button:hover{background:#1a3454}

.canvas-area { padding:42px 28px 72px; }
.dashboard-frame{width:min(1040px,100%);margin:0 auto;padding:32px;border:1px solid #dce3eb;border-radius:12px;background:#fafafa;box-shadow:0 6px 24px rgba(16,35,63,.07)}
.dashboard-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.dashboard-header h1{margin:6px 0;font-size:30px;letter-spacing:-.04em}.dashboard-header>div>p:last-child{margin:0;color:#777}.date-chip{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:11px;font-weight:600}.live-dot{width:7px;height:7px;border-radius:50%;background:#0acf83;box-shadow:0 0 0 3px #dff9ef}
.student-toolbar,.profile,article,.chat-panel{border:1px solid var(--line);border-radius:9px;background:#fff}.student-toolbar{display:flex;align-items:end;justify-content:space-between;padding:12px 16px;margin-bottom:12px}.select-wrap{display:flex;align-items:center;gap:12px}.select-wrap label{font-weight:600}.select-wrap select{min-width:210px;padding:8px 30px 8px 10px;border:1px solid #ccc;border-radius:5px;background:#fff;outline:none}.select-wrap select:focus{border-color:var(--blue)}.toolbar-meta{color:#999;font-size:11px}
.profile{display:flex;align-items:center;padding:20px;margin-bottom:12px}.student-avatar{width:44px;height:44px;display:grid;place-items:center;margin-right:13px;border-radius:10px;background:#e8f4ff;color:var(--blue);font-size:20px}.profile-copy{flex:1}.profile h2{margin:4px 0 2px;font-size:22px;letter-spacing:-.02em}.profile-copy>p:last-child{margin:0;color:#777}.status{padding:7px 11px;border-radius:999px;background:#e7f8ef;color:#16855b;font-size:11px;font-weight:700}.status.needs-support{background:#fff0e6;color:#b54708}.status.watch{background:#fff8db;color:#946200}
.grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:12px;margin-bottom:12px}article{padding:18px;min-width:0}.card-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-title h3{margin:4px 0 0;font-size:16px}.card-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:#e8f4ff;color:var(--blue)}.card-icon.violet{background:#f1eaff;color:var(--violet)}.metric{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid #eee;color:#666}.metric strong{color:#222;font-size:16px}.rate-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:7px}.metric.emphasis{display:block;margin:0;padding:11px;border:0;border-radius:6px;background:#edf8f3}.metric.emphasis span{display:block;margin-bottom:4px;font-size:10px}.metric.emphasis strong{color:#16855b;font-size:19px}.metric.emphasis.alert-metric{background:#fff4ed}.metric.emphasis.alert-metric strong{color:#b54708}.data-note,.fallback-notice{padding:9px 10px;border-radius:5px;background:#fff5eb;color:#9a3412;font-size:11px}blockquote{margin:2px 0 14px;padding:10px 12px;border-left:3px solid #c7a7ff;background:#faf8ff;color:#555;line-height:1.45}.info-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #eee}.info-row span{text-align:right;color:#666}.next-step{padding:11px;border-radius:6px;background:#f3f8fc;line-height:1.4}.next-step strong{display:block;margin-bottom:4px;font-size:11px}.reason-block{margin-top:12px}.reason-block ul{margin:6px 0 0;padding-left:18px;color:#666;line-height:1.5}
.chat-panel{padding:18px}.chat-header{display:flex;justify-content:space-between;align-items:flex-start}.assistant-title{display:flex;gap:10px;align-items:center}.assistant-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:#1e1e1e;color:#fff}.chat-header h2{margin:3px 0 0;font-size:16px}.chat-header>span{padding:6px 9px;border-radius:999px;background:#edf7ff;color:#0875c1;font-size:10px;font-weight:700}.chat-header>span.ollama-mode{background:#e7f8ef;color:#16855b}.chat-header>span.fallback-mode{background:#fff0e6;color:#b54708}.quick-prompts{display:flex;gap:7px;margin:14px 0}.quick-prompts button{padding:7px 10px;border:1px solid #ddd;border-radius:999px;background:#fff;color:#555;font-size:11px;cursor:pointer}.quick-prompts button:hover{border-color:var(--blue);color:#0875c1}.chat-messages{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow:auto;padding:12px;border-radius:7px;background:#f6f6f6}.message{max-width:78%;padding:9px 11px;border-radius:8px;line-height:1.45}.message.assistant{align-self:flex-start;border:1px solid #e5e5e5;background:#fff}.message.user{align-self:flex-end;background:#1e1e1e;color:#fff}.chat-form{display:grid;grid-template-columns:1fr 34px;gap:8px;margin-top:9px}.chat-form input{min-width:0;padding:10px 11px;border:1px solid #ccc;border-radius:6px;outline:none}.chat-form input:focus{border-color:var(--blue)}.chat-form button{border:0;border-radius:6px;background:var(--blue);color:#fff;font-size:18px;cursor:pointer}button:disabled,input:disabled{cursor:wait;opacity:.6}

@media(max-width:820px){.topbar{grid-template-columns:auto 1fr auto;padding:0 16px}.document-title{margin-left:14px;text-align:left}.document-title span{display:none}.canvas-area{padding:20px 12px}.dashboard-frame{padding:18px}.grid{grid-template-columns:1fr}.dashboard-header,.student-toolbar{gap:12px}.toolbar-meta{display:none}}
@media(max-width:520px){.dashboard-header{display:block}.date-chip{display:inline-flex;margin-top:14px}.profile{flex-wrap:wrap}.profile .status{margin-top:12px;margin-left:57px}.select-wrap{display:block}.select-wrap label{display:block;margin-bottom:6px}.quick-prompts{overflow:auto}.message{max-width:92%}}
