:root{--bg: #f4f1ea;--bg-elev: #fffcf6;--ink: #1c2430;--muted: #5b6675;--line: #d9d2c4;--accent: #0f6e56;--accent-soft: #d8f0e7;--warn: #b45309;--warn-soft: #fef3c7;--flag: #b91c1c;--admin: #102a43;--admin-ink: #e0fcff;--shadow: 0 12px 40px rgba(28, 36, 48, .12);--radius: 14px;font-family:DM Sans,system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,#e7f6ef 0,transparent 40%),radial-gradient(circle at top right,#fde7c7 0,transparent 35%),var(--bg)}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0 0 .35rem;letter-spacing:-.02em}p{margin:0}.app{max-width:1200px;margin:0 auto;padding:1rem 1.25rem 3rem}.admin-strip{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;background:var(--admin);color:var(--admin-ink);border-radius:16px;padding:.85rem 1rem;margin-bottom:1.25rem}.admin-brand{display:flex;align-items:center;gap:.55rem;font-size:.85rem;opacity:.9}.admin-pill{background:#243b53;color:#9fb3c8;border-radius:999px;padding:.15rem .55rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}.admin-metrics{display:flex;flex-wrap:wrap;gap:.55rem;flex:1}.metric{background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.45rem .7rem;min-width:7.5rem;display:grid;gap:.05rem}.metric.accent{background:#0e7c66;border-color:transparent}.metric-value{font-family:IBM Plex Mono,monospace;font-weight:500;font-size:1.05rem}.metric-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;opacity:.75}.metric-hint{font-size:.65rem;opacity:.55}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin-bottom:.85rem}.topbar-meta{display:flex;gap:1.5rem}.topbar-meta .label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:600;margin-bottom:.2rem}.banner{background:var(--warn-soft);border:1px solid #f6d58a;color:#7c4a03;border-radius:12px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.92rem}.matrix-wrap{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);overflow:auto;box-shadow:var(--shadow)}.matrix{width:100%;border-collapse:collapse;min-width:820px}.matrix th,.matrix td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:.75rem;vertical-align:top;text-align:left}.matrix th:last-child,.matrix td:last-child{border-right:none}.matrix thead th{background:#efe9dc;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.student-col{width:160px}.student-col strong{display:block}.muted{color:var(--muted);font-size:.85rem}.tile{width:100%;text-align:left;border:1px solid var(--line);background:#f8faf7;border-radius:12px;padding:.65rem .7rem;display:grid;gap:.2rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.tile:hover:not(.empty){transform:translateY(-1px);box-shadow:0 6px 16px #1c243014}.tile.empty{background:transparent;color:var(--muted);border-style:dashed;cursor:default;justify-content:center;text-align:center;padding:1.2rem .5rem}.tile.status-pending_review{background:var(--warn-soft);border-color:#f0c36a}.tile.status-approved{background:var(--accent-soft);border-color:#9ed5c2}.tile.flagged{box-shadow:inset 3px 0 0 var(--flag)}.tile-top{font-weight:600;display:flex;justify-content:space-between;gap:.4rem}.tile-bot{font-size:.82rem}.tile-status{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.flag{background:var(--flag);color:#fff;border-radius:999px;width:1.15rem;height:1.15rem;display:inline-grid;place-items:center;font-size:.75rem;font-weight:700}.btn{border:1px solid transparent;border-radius:999px;padding:.55rem 1rem;cursor:pointer;font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.05)}.btn.ghost{background:transparent;border-color:#fff3;color:inherit}.admin-strip .btn.ghost{color:var(--admin-ink)}.topbar .btn.ghost,.modal .btn.ghost{border-color:var(--line);color:var(--ink);background:#fff}.btn.small{padding:.35rem .7rem;font-size:.8rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1018288c;display:grid;place-items:center;padding:1rem;z-index:40}.modal{width:min(860px,100%);max-height:min(92vh,920px);overflow:auto;background:var(--bg-elev);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.modal-head,.modal-foot{padding:1rem 1.2rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;align-items:start;position:sticky;top:0;background:var(--bg-elev);z-index:1}.modal-foot{border-bottom:none;border-top:1px solid var(--line);top:auto;bottom:0;align-items:center}.modal-body{padding:1rem 1.2rem 1.5rem;display:grid;gap:1.25rem}.modal-body section{display:grid;gap:.55rem}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.85rem;display:grid;gap:.55rem}.card.abc{border-left:4px solid var(--flag)}.card-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}label{display:grid;gap:.3rem;font-size:.8rem;color:var(--muted);font-weight:600}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;background:#fff;color:var(--ink)}textarea{resize:vertical;line-height:1.4}.hint{font-size:.85rem;color:var(--muted)}.badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge.status-pending_review{background:var(--warn-soft);color:var(--warn)}.badge.status-approved{background:var(--accent-soft);color:var(--accent)}.foot-actions{display:flex;gap:.5rem;margin-left:auto}.toast{color:var(--accent);font-weight:600;font-size:.88rem}@media (max-width: 720px){.topbar{flex-direction:column;align-items:start}.card-row{grid-template-columns:1fr}}.pipeline{margin:1rem 0 1.25rem;padding:1rem 1.25rem;border:1px solid #d8e2ef;border-radius:12px;background:#fbfdff}.pipeline-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.pipeline-head h2{margin:0 0 .2rem;font-size:1.05rem}.pipeline-table{width:100%;border-collapse:collapse;margin-top:.6rem;font-size:.9rem}.pipeline-table th,.pipeline-table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid #e7edf5}.transcript{max-height:320px;overflow:auto;border:1px solid #e7edf5;border-radius:8px;padding:.6rem .8rem;background:#fff}.speaker-map{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:.4rem}.speaker-map label{display:flex;flex-direction:column;font-size:.8rem}.turns{list-style:none;padding:0;margin:0;font-size:.88rem;line-height:1.45}.turns li{margin:.25rem 0}.turns .ts{color:#6b7a90;font-variant-numeric:tabular-nums}.modal-foot .btn{white-space:nowrap}.foot-actions{flex-shrink:0}.foot-note{display:flex;flex-direction:column;gap:.15rem;min-width:0}.markers-line{margin:0}.badge.status-needs_class{background:#fdecea;color:#a4262c}.banner.warn{background:#fdecea;border-color:#f1b0b0;color:#7a1c1c;margin:0}.demo-notice{background:#1f2a44;color:#fff;text-align:center;font-size:14px;font-weight:600;padding:8px 12px;letter-spacing:.01em}.auth-page{min-height:calc(100vh - 40px);display:flex;align-items:flex-start;justify-content:center;padding:64px 16px}.auth-card{width:100%;max-width:420px;background:#fffdf8;border:1px solid #e7dfcf;border-radius:14px;padding:28px 28px 22px;box-shadow:0 10px 30px #10182814}.auth-card h1{font-size:26px;margin:4px 0 16px}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;font-size:14px;font-weight:600}.auth-form input{font:inherit;padding:10px 12px;border:1px solid #d6cdb8;border-radius:8px;background:#fff}.auth-error{color:#a4262c;margin:0;font-size:14px}.auth-ok{color:#1d6b45;margin:0;font-size:14px}.signup-notice{font-size:13px;color:#555;margin:14px 0 0}.auth-switch{font-size:14px;margin:16px 0 0;color:#555}.auth-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}button.link{background:none;border:0;padding:0;color:#1d6b45;font:inherit;text-decoration:underline;cursor:pointer}
