@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap";:root{--sans:"Sora", "Aptos", "Inter", "SF Pro Text", "Segoe UI", system-ui, sans-serif;--display:"Space Grotesk", "Sora", "Aptos", system-ui, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);color:#17131f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#e8e3ee}*{box-sizing:border-box}body{margin:0}#root{min-height:100svh}button,textarea,input{font:inherit}button{cursor:pointer}p{margin:0}.login-page{background:radial-gradient(circle at 20% 18%,#d29b4247,#0000 26rem),radial-gradient(circle at 82% 12%,#674e7b57,#0000 28rem),radial-gradient(circle at 50% 96%,#ffffffc2,#0000 28rem),linear-gradient(135deg,#f3eff8 0%,#e3deeb 54%,#eee7de 100%);place-items:center;min-height:100svh;padding:32px 20px;animation:18s ease-in-out infinite alternate ambient-drift;display:grid}.login-panel{text-align:left;-webkit-backdrop-filter:blur(24px)saturate(1.3);backdrop-filter:blur(24px)saturate(1.3);background:#ffffff8a;border:1px solid #ffffffad;border-radius:22px;width:min(100%,420px);padding:32px;animation:.52s both glass-rise;position:relative;box-shadow:0 28px 80px #1f18242e}.login-panel:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 45%,#d29b4247,#0000 34%),radial-gradient(circle at 50% 78%,#674e7b2e,#0000 48%);border-radius:20px;height:170px;position:absolute;inset:18px 18px auto}.login-panel>*{z-index:1;position:relative}.login-logo{border-radius:16px;width:56px;height:56px;margin-bottom:18px;box-shadow:0 16px 30px #13212f33}.login-door-scene{filter:drop-shadow(0 26px 38px #13212f33)drop-shadow(0 0 28px #d29b4229);width:188px;height:206px;margin:-16px auto 2px}.login-door-scene canvas{display:block}.login-kicker{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:14px;font-weight:800}.login-panel h1{color:#17131f;font-family:var(--display);letter-spacing:0;margin:0 0 22px;font-size:clamp(32px,8vw,44px);line-height:.98}.field-label{color:#2c2734;margin-bottom:8px;font-size:15px;font-weight:700;display:block}.password-field{position:relative}.password-input{color:#17131f;background:#ffffffb8;border:1px solid #1f182424;border-radius:14px;width:100%;min-height:46px;padding:10px 48px 10px 12px}.password-input:focus{border-color:#d29b42;outline:3px solid #d29b4233}.password-toggle{color:#6f6878;background:0 0;border:0;border-radius:10px;place-items:center;width:34px;height:34px;transition:background .18s,color .18s,transform .18s;display:grid;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.password-toggle:hover{color:#17131f;background:#1f182414}.password-toggle:focus-visible{outline:3px solid #d29b4238}.password-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:20px;height:20px}.role-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px;display:grid}.role-actions button{color:#fff;background:#17131f;border:0;border-radius:14px;min-height:44px;font-weight:800;transition:background .18s,box-shadow .18s,transform .18s;box-shadow:0 14px 24px #1f182429}.role-actions button:hover:not(:disabled){background:#30283b;transform:translateY(-1px)}.role-actions button:disabled{cursor:not-allowed;opacity:.55}.login-error{color:#b42318;margin:16px 0 0;font-size:14px}.theme-toggle{color:#17131f;background:#ffffff85;border:1px solid #ffffffb8;border-radius:999px;place-items:center;width:38px;height:38px;font-size:13px;font-weight:800;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-grid;box-shadow:0 12px 24px #16221e1a}.theme-toggle:hover{transform:translateY(-1px)}.theme-icon{width:18px;height:18px;transition:transform .22s;display:block;position:relative}.theme-icon.sun{border:2px solid;border-radius:999px;box-shadow:0 -8px 0 -6px,0 8px 0 -6px,8px 0 0 -6px,-8px 0 0 -6px,6px 6px 0 -6px,-6px -6px 0 -6px,6px -6px 0 -6px,-6px 6px 0 -6px}.theme-icon.moon{border-radius:999px;box-shadow:inset -6px -2px}.theme-toggle:hover .theme-icon{transform:rotate(16deg)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-theme-toggle{position:absolute;top:18px;right:18px}.student-shell,.admin-shell{color:#17131f;background:radial-gradient(circle at 12% 16%,#d29b4242,#0000 24rem),radial-gradient(circle at 78% 20%,#674e7b57,#0000 26rem),radial-gradient(circle at 60% 100%,#ffffffc7,#0000 28rem),linear-gradient(140deg,#f3eff8 0%,#e3deeb 48%,#eee7de 100%);grid-template-columns:290px minmax(0,1fr);gap:18px;height:100svh;min-height:0;padding:18px;animation:22s ease-in-out infinite alternate ambient-drift;display:grid}.student-sidebar,.chat-stage,.chat-composer,.admin-stage,.admin-toolbar,.admin-log-card,.admin-empty{-webkit-backdrop-filter:blur(26px)saturate(1.35);backdrop-filter:blur(26px)saturate(1.35);background:#ffffff8a;border:1px solid #ffffffbd;transition:border-color .18s,background .18s,box-shadow .18s;box-shadow:0 24px 70px #1f182429}.student-sidebar{border-radius:24px;flex-direction:column;height:calc(100svh - 36px);min-height:0;padding:20px;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup img{border-radius:14px;width:48px;height:48px;box-shadow:0 16px 28px #13212f2e}.sidebar-door-scene{filter:drop-shadow(0 12px 18px #13212f29);flex:none;width:54px;height:64px}.sidebar-door-scene canvas{display:block}.brand-lockup p{color:#17131f;font-family:var(--display);font-weight:800}.brand-lockup span,.sidebar-note span,.eyebrow{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:800}.student-nav{flex-wrap:wrap;gap:8px;margin:28px 0;display:flex}.student-nav button{color:#2c2734;white-space:nowrap;background:#ffffff57;border:1px solid #1f18241a;border-radius:999px;min-height:34px;padding:0 13px;font-size:12px;font-weight:850;transition:border-color .18s,background .18s,color .18s,transform .18s}.student-nav button:hover{background:#ffffff8a;border-color:#d29b4261;transform:translateY(-1px)}.student-nav button.is-active{color:#fff;background:#17131f;border-color:#17131f;box-shadow:0 8px 18px #1f18241f}.ghost-button{color:#2c2734;text-align:center;background:#ffffff7a;border:1px solid #1f18241a;border-radius:14px;min-height:42px;padding:0 14px;font-weight:700;transition:border-color .18s,background .18s,transform .18s}.ghost-button:hover{transform:translateY(-1px)}.sidebar-note{background:#ffffff85;border:1px solid #ffffffa6;border-radius:18px;margin-top:4px;padding:16px}.sidebar-note p{color:#6f6878;margin-top:8px;font-size:14px}.curriculum-upload{background:#ffffff7a;border:1px solid #1f18241a;border-radius:16px;gap:10px;margin-top:14px;padding:14px;display:grid}.curriculum-upload label{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:900}.curriculum-upload input{color:#2c2734;width:100%;font-size:13px}.curriculum-upload input::file-selector-button{color:#2c2734;background:#ffffff94;border:1px solid #1f18241a;border-radius:10px;min-height:32px;margin-right:8px;font-weight:800}.curriculum-upload .ghost-button{margin-top:0}.upload-status{color:#6f6878;min-height:18px;font-size:13px}.upload-status.success{color:#237a4b}.upload-status.error{color:#a23a31}.admin-summary{gap:10px;margin:28px 0;display:grid}.admin-summary section{background:#ffffff7a;border:1px solid #1f18241a;border-radius:16px;padding:14px}.admin-summary span{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:900;display:block}.admin-summary strong{color:#17131f;font-family:var(--display);margin-top:6px;font-size:24px;line-height:1;display:block}.ghost-button{text-align:center;margin-top:auto}.chat-stage,.admin-stage{border-radius:28px;grid-template-rows:auto minmax(0,1fr) auto;height:calc(100svh - 36px);min-height:0;display:grid;overflow:hidden}.admin-stage{grid-template-rows:auto minmax(0,1fr)}.chat-header{justify-content:space-between;align-items:flex-start;gap:18px;padding:28px 30px 18px;display:flex}.chat-header>div:first-child{margin-right:auto}.chat-header h1{color:#17131f;font-family:var(--display);letter-spacing:0;margin:4px 0 0;font-size:clamp(34px,6vw,58px);line-height:.98}.status-pill{color:#6f4e7c;white-space:nowrap;background:#ffffffa8;border:1px solid #ffffffd1;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.status-pill span{background:#d29b42;border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 5px #d29b4229}.message-list{flex-direction:column;gap:14px;min-height:0;padding:12px 30px 18px;display:flex;overflow:auto}.chat-empty-state{color:#2a2531;background:#ffffff8a;border:1px solid #ffffffbd;border-radius:22px;width:min(760px,100%);padding:18px;box-shadow:0 18px 44px #1f18241f}.chat-empty-state span{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:900}.chat-empty-state h2{color:#17131f;font-family:var(--display);margin:8px 0 6px;font-size:clamp(24px,4vw,34px);line-height:1}.chat-empty-state p{color:#6f6878;max-width:620px;font-size:14px}.chat-empty-state .prompt-rail{padding:14px 0 0}.message{color:#2a2531;background:#ffffffb8;border:1px solid #ffffffc7;border-radius:22px;width:min(760px,88%);padding:16px;animation:.28s both message-enter;box-shadow:0 14px 32px #1b292414}.message.student{color:#fff;background:linear-gradient(135deg,#17131f,#3b2f4b);border-color:#ffffff3d;align-self:flex-end}.message.assistant{align-self:flex-start}.message.has-knocks{width:fit-content;max-width:min(420px,88%);box-shadow:none;background:0 0;border:0;padding:0}.message.thinking{color:#6f6878;font-style:italic}.pipeline-card{align-items:center;gap:12px;width:fit-content;max-width:min(420px,88%);font-style:normal;display:flex}.pipeline-card>p{color:#2a2531;font-weight:800}.heartbeat{align-items:center;gap:5px;min-width:48px;height:28px;display:inline-flex}.heartbeat span{background:#d29b42;border-radius:999px;width:8px;height:8px;animation:1.05s ease-in-out infinite heartbeat;box-shadow:0 0 0 5px #d29b4221}.heartbeat span:nth-child(2){animation-delay:.14s}.heartbeat span:nth-child(3){animation-delay:.28s}.knock-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.message.has-knocks .knock-grid{grid-template-columns:minmax(0,1fr);margin-top:0}.knock-card{background:#ffffffad;border:1px solid #1f18241a;border-radius:16px;min-height:136px;padding:12px}.knock-card span{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:900}.knock-card p{color:#3b3444;margin-top:8px;font-size:14px}.source-strip{background:#ffffffa3;border:1px solid #1f18241a;border-radius:999px;align-items:center;gap:10px;width:fit-content;max-width:100%;margin-top:12px;padding:8px 10px;display:flex}.source-strip span{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:900}.source-strip p{color:#3b3444;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.chat-composer{border-radius:22px;margin:0 18px 18px;padding:14px}.message.has-knocks .knock-card{min-height:auto}.response-feedback{flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding-left:2px;display:flex}.response-feedback button{color:#3b3444;background:#ffffff70;border:1px solid #1f18241a;border-radius:999px;place-items:center;width:32px;height:32px;padding:0;transition:border-color .18s,background .18s,color .18s,transform .18s;display:inline-grid}.response-feedback button:hover:not(:disabled){background:#ffffffb8;border-color:#d29b426b;transform:translateY(-1px)}.response-feedback button.is-selected{color:#fff;background:#17131f;border-color:#17131f}.response-feedback button:disabled{cursor:wait;opacity:.62}.response-feedback span{color:#6f6878;margin-left:2px;font-size:12px;font-weight:800}.feedback-icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:16px;height:16px}.feedback-icon-down{transform:rotate(180deg)}.chat-composer label{color:#6f6878;margin:0 0 8px;font-size:13px;font-weight:800;display:block}.composer-meta{justify-content:flex-start;align-items:center;gap:10px;margin-top:10px;display:flex}.composer-meta>span{color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;flex:none;font-size:11px;font-weight:900}.knock-selector{background:0 0;border:0;flex:0 auto;justify-content:flex-start;gap:8px;min-width:0;padding:0;display:flex}.knock-selector button{color:#2c2734;white-space:nowrap;background:#ffffff57;border:1px solid #1f18241a;border-radius:999px;place-items:center;min-width:0;min-height:34px;padding:0 13px;font-size:12px;font-weight:850;line-height:1.2;transition:background .18s,color .18s,transform .18s;display:grid}.knock-selector button:hover{background:#ffffff8a;border-color:#d29b4261;transform:translateY(-1px)}.knock-selector button.is-active{color:#fff;background:#17131f;border-color:#17131f;box-shadow:0 8px 18px #1f18241f}.prompt-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 0 12px;display:grid}.prompt-rail button{color:#2c2734;text-align:left;background:#ffffff7a;border:1px solid #1f18241a;border-radius:14px;min-width:0;min-height:40px;padding:9px 12px;font-size:13px;font-weight:750;line-height:1.25;transition:border-color .18s,background .18s,transform .18s}.prompt-rail button:hover{background:#ffffffad;border-color:#d29b426b;transform:translateY(-1px)}.composer-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.composer-row textarea{resize:none;color:#17131f;background:#ffffffbd;border:1px solid #1f18241a;border-radius:16px;outline:none;width:100%;padding:13px 14px}.composer-row textarea:focus{border-color:#d29b429e;box-shadow:0 0 0 4px #d29b4224}.composer-row button{color:#fff;background:#17131f;border:0;border-radius:16px;min-width:92px;min-height:48px;font-weight:900;transition:background .18s,box-shadow .18s,transform .18s;box-shadow:0 14px 24px #1f182429}.composer-row button:hover:not(:disabled){transform:translateY(-1px)}.composer-row button:disabled{cursor:not-allowed;opacity:.5}.composer-error{color:#a23a31;margin-top:10px;font-size:14px}.admin-toolbar{border-radius:22px;margin:8px 18px 0;padding:14px}.admin-toolbar label{color:#6f6878;margin-bottom:8px;font-size:13px;font-weight:800;display:block}.admin-toolbar>div{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.admin-toolbar input{color:#17131f;background:#ffffffbd;border:1px solid #1f18241a;border-radius:16px;outline:none;width:100%;min-height:46px;padding:0 14px}.admin-toolbar input:focus{border-color:#d29b429e;box-shadow:0 0 0 4px #d29b4224}.admin-toolbar button{color:#fff;background:#17131f;border:0;border-radius:16px;min-width:104px;min-height:46px;font-weight:900;transition:background .18s,box-shadow .18s,transform .18s;box-shadow:0 14px 24px #1f182429}.admin-toolbar button:hover:not(:disabled){transform:translateY(-1px)}.admin-toolbar button:disabled{cursor:not-allowed;opacity:.55}.admin-error{color:#a23a31;margin:12px 30px 0;font-size:14px}.admin-dashboard-scroll{align-content:start;gap:18px;min-height:0;padding:14px 30px 30px;display:grid;overflow:auto}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.metric-card,.insight-panel,.log-review-panel{-webkit-backdrop-filter:blur(26px)saturate(1.35);backdrop-filter:blur(26px)saturate(1.35);background:linear-gradient(#fff9,#ffffff6b),#ffffff70;border:1px solid #ffffffbd;box-shadow:0 24px 70px #1f182424}.metric-card{border-radius:20px;flex-direction:column;justify-content:space-between;min-width:0;min-height:124px;padding:16px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.metric-card:hover,.insight-panel:hover,.log-review-panel:hover{transform:translateY(-2px);box-shadow:0 30px 80px #1f18242e}.metric-card span,.panel-heading span{overflow-wrap:anywhere;color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:900}.metric-card strong{overflow-wrap:anywhere;color:#17131f;font-family:var(--display);font-size:clamp(24px,2.5vw,38px);line-height:1}.metric-card p{color:#6f6878;margin:0;font-size:13px;font-weight:800}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.analytics-grid.lower{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr)}.insight-panel,.log-review-panel{border-radius:22px;min-width:0;padding:16px;transition:box-shadow .18s,transform .18s}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.panel-heading h2{color:#17131f;font-family:var(--display);margin:4px 0 0;font-size:21px;line-height:1}.panel-heading button{color:#fff;background:#17131f;border:0;border-radius:13px;min-height:38px;padding:0 14px;font-weight:900;transition:background .18s,transform .18s}.panel-heading button:hover:not(:disabled){transform:translateY(-1px)}.panel-heading button:disabled{cursor:not-allowed;opacity:.55}.bar-list{gap:13px;display:grid}.bar-row{gap:8px;min-width:0;display:grid}.bar-row>div:first-child{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.bar-row span{color:#3b3444;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:800;overflow:hidden}.bar-row strong{color:#7d5d1f;flex:none;font-size:13px}.bar-track{background:#1f182414;border-radius:999px;height:10px;overflow:hidden}.bar-track span{border-radius:inherit;background:linear-gradient(90deg,#d29b42,#7d5d1f);height:100%;display:block;box-shadow:0 0 20px #d29b4242}.knock-usage-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.knock-usage{justify-items:center;gap:9px;display:grid}.knock-usage div{aspect-ratio:1;background:radial-gradient(circle at center, #ffffffd1 0 52%, transparent 54%), conic-gradient(#d29b42 var(--progress), #1f18241a 0);border-radius:999px;place-items:center;width:74px;display:grid}.knock-usage strong{color:#17131f;font-family:var(--display);font-size:18px}.knock-usage span{color:#6f6878;font-size:12px;font-weight:900}.activity-feed,.confusion-list,.repeated-list{gap:10px;display:grid}.activity-item{grid-template-columns:auto minmax(0,1fr);gap:10px;display:grid}.activity-item>div{background:#d29b42;border-radius:999px;width:10px;height:10px;margin-top:5px;box-shadow:0 0 0 5px #d29b421f}.activity-item section,.confusion-card,.repeated-list article{background:#ffffff6b;border:1px solid #1f182414;border-radius:16px;min-width:0;padding:12px;overflow:hidden}.activity-item span,.confusion-card span,.repeated-list strong{color:#17131f;font-size:13px;font-weight:900;display:block}.activity-item p,.confusion-card p,.repeated-list p{color:#6f6878;overflow-wrap:anywhere;margin:5px 0 0;font-size:13px}.activity-item time,.repeated-list span{color:#7d5d1f;margin-top:7px;font-size:12px;font-weight:900;display:block}.repeated-list article{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 10px;display:grid}.repeated-list strong,.repeated-list p{grid-column:1/-1;min-width:0}.repeated-list span{background:#d29b4224;border:1px solid #d29b4238;border-radius:999px;width:fit-content;max-width:100%;margin-top:0;padding:5px 9px;line-height:1.2}.confusion-card{gap:8px;display:grid}.confusion-card strong{color:#7d5d1f;margin-top:3px;font-size:14px;display:block}.severity-badge,.log-badge-row em{color:#3b3444;text-transform:uppercase;background:#ffffff94;border:1px solid #1f18241a;border-radius:999px;width:fit-content;max-width:100%;padding:5px 9px;font-size:11px;font-style:normal;font-weight:900}.severity-badge.severity-high,.log-badge-row .severity-high{color:#7a251d;background:#ffb5a847;border-color:#a23a312e}.severity-badge.severity-medium,.log-badge-row .severity-medium{color:#7d5d1f;background:#d29b422e;border-color:#d29b423d}.severity-badge.severity-low,.log-badge-row .severity-low,.feedback-badge.feedback-helpful{color:#356551;background:#84cdad33;border-color:#35655129}.feedback-badge.feedback-not-helpful{color:#7a251d;background:#ffb5a847;border-color:#a23a312e}.feedback-badge.feedback-no-feedback{color:#6f6878;background:#fff6}.admin-filter-grid{grid-template-columns:minmax(0,1.8fr) minmax(160px,.6fr) minmax(180px,.8fr);gap:10px;margin-bottom:14px;display:grid}.admin-filter-grid label{color:#6f6878;gap:7px;font-size:12px;font-weight:900;display:grid}.admin-filter-grid input,.admin-filter-grid select{color:#17131f;background:#ffffff9e;border:1px solid #1f18241a;border-radius:14px;outline:none;width:100%;min-height:44px;padding:0 12px}.admin-filter-grid input:focus,.admin-filter-grid select:focus{border-color:#d29b429e;box-shadow:0 0 0 4px #d29b4224}.admin-log-list.upgraded{max-height:none;padding:0;overflow:visible}.analytics-log-card{padding:0}.log-card-button{text-align:left;background:0 0;border:0;border-radius:20px;width:100%;padding:16px}.log-card-button:hover{background:#ffffff3d}.log-badge-row{flex-wrap:wrap;gap:8px;min-width:0;margin-top:12px;display:flex}.analytics-log-card dl{padding:0 16px 16px}.admin-log-list{align-content:start;gap:12px;min-height:0;padding:16px 30px 24px;display:grid;overflow:auto}.admin-log-card,.admin-empty{border-radius:20px;min-width:0;padding:16px;animation:.28s both message-enter}.log-card-header{border-bottom:1px solid #1f18241a;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:12px;display:flex}.log-card-header>div{min-width:0}.log-card-header span,.admin-empty span{overflow-wrap:anywhere;white-space:normal;color:#7d5d1f;letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:900;display:block}.log-card-header time,.log-card-header strong{color:#6f6878;flex:none;font-size:13px;font-weight:800}.admin-log-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 0;display:grid}.admin-log-card dl>div{min-width:0}.admin-log-card dt{color:#6f6878;margin-bottom:6px;font-size:12px;font-weight:900}.admin-log-card dd,.admin-empty p{color:#3b3444;overflow-wrap:anywhere;white-space:normal;margin:0;font-size:14px}.admin-empty p{margin-top:8px}.theme-dark.login-page{background:radial-gradient(circle at 18% 12%,#f0b85a29,#0000 23rem),radial-gradient(circle at 82% 18%,#7f508c47,#0000 25rem),radial-gradient(circle at 50% 100%,#e8dff014,#0000 30rem),linear-gradient(135deg,#0c0811 0%,#14101b 48%,#1b1322 100%)}.theme-dark .login-panel{background:linear-gradient(#ffffff09,#0000 38%),#1a1424ad;border-color:#f0b85a33;box-shadow:0 34px 100px #00000085,0 0 70px #f0b85a12}.theme-dark .login-panel:before{background:radial-gradient(circle at 50% 42%,#f0b85a3d,#0000 34%),radial-gradient(circle at 50% 82%,#7f508c47,#0000 52%)}.theme-dark .login-kicker,.theme-dark .brand-lockup span,.theme-dark .sidebar-note span,.theme-dark .curriculum-upload label,.theme-dark .chat-empty-state span,.theme-dark .composer-meta>span,.theme-dark .admin-summary span,.theme-dark .admin-toolbar label,.theme-dark .log-card-header span,.theme-dark .admin-empty span,.theme-dark .eyebrow,.theme-dark .chat-composer label,.theme-dark .knock-card span{color:#f0b85a}.theme-dark .login-panel h1,.theme-dark .field-label,.theme-dark .brand-lockup p,.theme-dark .chat-empty-state h2,.theme-dark .chat-header h1,.theme-dark .admin-summary strong{color:#f5edf8}.theme-dark .password-input,.theme-dark .composer-row textarea,.theme-dark .admin-toolbar input{color:#f3eaf7;background:#100d16b8;border-color:#f0b85a2e}.theme-dark .password-input::placeholder,.theme-dark .composer-row textarea::placeholder,.theme-dark .admin-toolbar input::placeholder{color:#f3eaf77a}.theme-dark .password-toggle{color:#d9cae0}.theme-dark .password-toggle:hover{color:#f5edf8;background:#ffffff14}.theme-dark .password-input:focus,.theme-dark .composer-row textarea:focus,.theme-dark .admin-toolbar input:focus{border-color:#f0b85a94;outline-color:#f0b85a29;box-shadow:0 0 0 4px #f0b85a1f}.theme-dark .role-actions button,.theme-dark .composer-row button,.theme-dark .admin-toolbar button,.theme-dark .student-nav button.is-active,.theme-dark .knock-selector button.is-active,.theme-dark .response-feedback button.is-selected{color:#111017;background:linear-gradient(135deg,#f0b85a,#d49638);box-shadow:0 18px 34px #d4963838}.theme-dark .role-actions button:hover:not(:disabled),.theme-dark .composer-row button:hover:not(:disabled),.theme-dark .admin-toolbar button:hover:not(:disabled){background:linear-gradient(135deg,#f4c97b,#dfa44a)}.theme-dark.student-shell,.theme-dark.admin-shell{color:#f3eaf7;background:radial-gradient(circle at 9% 11%,#f0b85a26,#0000 25rem),radial-gradient(circle at 82% 13%,#7f508c47,#0000 26rem),radial-gradient(circle at 64% 92%,#e8dff014,#0000 26rem),linear-gradient(140deg,#0b0710 0%,#14101b 44%,#1b1322 100%)}.theme-dark .student-sidebar,.theme-dark .chat-stage,.theme-dark .chat-composer,.theme-dark .admin-stage,.theme-dark .admin-toolbar,.theme-dark .admin-log-card,.theme-dark .admin-empty,.theme-dark .metric-card,.theme-dark .insight-panel,.theme-dark .log-review-panel{background:#1a142499;border-color:#f0b85a21;box-shadow:0 30px 90px #00000061}.theme-dark .metric-card,.theme-dark .insight-panel,.theme-dark .log-review-panel{background:linear-gradient(#ffffff0b,#0000 42%),#1a1424a8}.theme-dark .student-nav button,.theme-dark .response-feedback button,.theme-dark .ghost-button,.theme-dark .theme-toggle,.theme-dark .status-pill,.theme-dark .admin-summary section,.theme-dark .curriculum-upload{color:#f0e7f4;background:#ffffff0e;border-color:#f0b85a24}.theme-dark .curriculum-upload input{color:#e8dff0}.theme-dark .curriculum-upload input::file-selector-button{color:#f0e7f4;background:#ffffff0e;border-color:#f0b85a24}.theme-dark .knock-selector{background:0 0}.theme-dark .knock-selector button{color:#f0e7f4;background:#ffffff0e;border-color:#f0b85a24}.theme-dark .knock-selector button:hover{background:#ffffff1a;border-color:#f0b85a57}.theme-dark .sidebar-note,.theme-dark .chat-empty-state,.theme-dark .message.assistant,.theme-dark .knock-card,.theme-dark .source-strip{background:#fff1;border-color:#f0b85a1f}.theme-dark .message.has-knocks{box-shadow:none;background:0 0;border:0}.theme-dark .sidebar-note p,.theme-dark .upload-status,.theme-dark .chat-empty-state p,.theme-dark .message,.theme-dark .message.assistant,.theme-dark .knock-card p,.theme-dark .source-strip p,.theme-dark .pipeline-card>p{color:#e8dff0}.theme-dark .source-strip span,.theme-dark .pipeline-card>p,.theme-dark .response-feedback span,.theme-dark .log-card-header time,.theme-dark .log-card-header strong,.theme-dark .admin-log-card dt,.theme-dark .metric-card p,.theme-dark .knock-usage span,.theme-dark .activity-item p,.theme-dark .confusion-card p,.theme-dark .repeated-list p,.theme-dark .admin-filter-grid label{color:#d9cae0}.theme-dark .admin-log-card dd,.theme-dark .admin-empty p,.theme-dark .bar-row span,.theme-dark .activity-item span,.theme-dark .confusion-card span,.theme-dark .repeated-list strong{color:#e8dff0}.theme-dark .metric-card strong,.theme-dark .panel-heading h2,.theme-dark .knock-usage strong{color:#f5edf8}.theme-dark .metric-card span,.theme-dark .panel-heading span,.theme-dark .bar-row strong,.theme-dark .activity-item time,.theme-dark .confusion-card strong,.theme-dark .repeated-list span{color:#f0b85a}.theme-dark .bar-track{background:#ffffff14}.theme-dark .bar-track span{background:linear-gradient(90deg,#f0b85a,#b987ff)}.theme-dark .knock-usage div{background:radial-gradient(circle at center, #1a1424eb 0 52%, transparent 54%), conic-gradient(#f0b85a var(--progress), #ffffff1a 0)}.theme-dark .activity-item section,.theme-dark .confusion-card,.theme-dark .repeated-list article{background:#ffffff0e;border-color:#f0b85a1f}.theme-dark .admin-filter-grid input,.theme-dark .admin-filter-grid select{color:#f3eaf7;background:#100d16b8;border-color:#f0b85a2e}.theme-dark .admin-filter-grid input::placeholder{color:#f3eaf77a}.theme-dark .admin-filter-grid input:focus,.theme-dark .admin-filter-grid select:focus{border-color:#f0b85a94;box-shadow:0 0 0 4px #f0b85a1f}.theme-dark .panel-heading button{color:#111017;background:linear-gradient(135deg,#f0b85a,#d49638)}.theme-dark .log-card-button:hover{background:#ffffff0e}.theme-dark .severity-badge,.theme-dark .log-badge-row em{color:#e8dff0;background:#ffffff0e;border-color:#f0b85a1f}.theme-dark .heartbeat span{background:#f0b85a;box-shadow:0 0 0 5px #f0b85a24}.theme-dark .prompt-rail button{color:#f0e7f4;background:#ffffff0f;border-color:#f0b85a24}.theme-dark .prompt-rail button:hover{background:#ffffff1a;border-color:#f0b85a57}.theme-dark .message.student{color:#111017;background:linear-gradient(135deg,#f0b85a,#c9842f);border-color:#f0b85a52}.theme-dark .message.thinking{color:#cfc1d7}.theme-dark .status-pill span{background:#f0b85a;box-shadow:0 0 0 5px #f0b85a26}.theme-dark .login-error,.theme-dark .composer-error,.theme-dark .admin-error,.theme-dark .upload-status.error{color:#ffb5a8}.theme-dark .upload-status.success{color:#8fd9a8}@keyframes ambient-drift{0%{background-position:0 24%}to{background-position:100% 76%}}@keyframes glass-rise{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes message-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes heartbeat{0%,to{opacity:.38;transform:scale(.72)}35%{opacity:1;transform:scale(1.25)}62%{opacity:.68;transform:scale(.88)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width>=1720px){.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.analytics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=1280px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-grid,.analytics-grid.lower{grid-template-columns:repeat(2,minmax(0,1fr))}.repeated-panel{grid-column:1/-1}.repeated-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.student-shell,.admin-shell{grid-template-columns:1fr;height:auto;min-height:100svh;padding:10px}.student-sidebar{height:auto;min-height:auto}.student-nav,.sidebar-note{display:none}.chat-stage{min-height:calc(100svh - 120px)}.admin-stage{height:auto;min-height:calc(100svh - 120px)}.chat-header,.message-list,.admin-log-list{padding-inline:18px}.knock-grid,.prompt-rail{grid-template-columns:1fr}.message{width:100%}.composer-row{grid-template-columns:1fr}.composer-meta{flex-direction:column;align-items:stretch;gap:8px}.knock-selector{justify-content:stretch;width:100%}.knock-selector button{flex:1}.admin-toolbar>div,.admin-log-card dl,.admin-filter-grid{grid-template-columns:1fr}.admin-dashboard-scroll{padding-inline:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-grid,.analytics-grid.lower{grid-template-columns:1fr}.repeated-panel{grid-column:auto}.repeated-list{grid-template-columns:1fr}.knock-usage-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-error{margin-inline:18px}}@media (width<=520px){.login-panel{padding:24px}.login-door-scene{width:142px;height:164px;margin-top:-10px}.role-actions{grid-template-columns:1fr}.chat-header{flex-direction:column}.chat-header h1{font-size:clamp(32px,12vw,46px)}.chat-composer{border-radius:18px;margin:0 10px 10px;padding:12px}.composer-meta{margin-top:9px}.knock-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;display:grid}.knock-selector button{white-space:normal;overflow-wrap:anywhere;min-height:34px;padding:0 6px;font-size:11px}.response-feedback button{width:34px;height:34px}.log-badge-row{gap:6px}.log-badge-row em{overflow-wrap:anywhere;max-width:100%;line-height:1.2}.admin-dashboard-scroll{padding:6px 14px 18px}.metric-grid,.knock-usage-grid{grid-template-columns:1fr}.metric-card{min-height:112px}}@media (width<=380px){.knock-selector{border-radius:14px;grid-template-columns:1fr}.knock-selector button{justify-content:center}}.demo-entry-btn{color:#6f6878;letter-spacing:.04em;text-transform:uppercase;background:0 0;border:1px solid #1f18241a;border-radius:12px;width:100%;margin-top:24px;padding:10px;font-size:13px;font-weight:700;transition:background .18s,color .18s,border-color .18s;display:block}.demo-entry-btn:hover{color:#17131f;background:#1f18240d;border-color:#1f182433}.demo-landing{background:radial-gradient(circle at 20% 18%,#d29b4247,#0000 26rem),radial-gradient(circle at 82% 12%,#674e7b57,#0000 28rem),radial-gradient(circle at 50% 96%,#ffffffc2,#0000 28rem),linear-gradient(135deg,#f3eff8 0%,#e3deeb 54%,#eee7de 100%);flex-direction:column;justify-content:center;align-items:center;gap:48px;min-height:100svh;padding:48px 24px;animation:18s ease-in-out infinite alternate ambient-drift;display:flex}.demo-landing-header{text-align:center}.demo-door-scene{filter:drop-shadow(0 26px 38px #13212f33)drop-shadow(0 0 28px #d29b4229);width:120px;height:132px;margin:0 auto 16px}.demo-door-scene canvas{display:block}.demo-kicker{color:#7d5d1f;letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:13px;font-weight:800}.demo-title{color:#17131f;font-family:var(--display);letter-spacing:-.01em;margin:0 0 8px;font-size:clamp(42px,8vw,72px);line-height:.96}.demo-subtitle{color:#6f6878;font-size:16px}.demo-cards{grid-template-columns:repeat(3,minmax(180px,240px));gap:16px;display:grid}.demo-card{-webkit-backdrop-filter:blur(26px)saturate(1.3);backdrop-filter:blur(26px)saturate(1.3);text-align:center;background:#ffffff8a;border:1px solid #ffffffbd;border-radius:24px;flex-direction:column;align-items:center;gap:10px;padding:32px 20px 28px;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;display:flex;position:relative;box-shadow:0 24px 64px #1f182424}.demo-card:hover:not(:disabled){background:#ffffffb8;border-color:#d29b4266;transform:translateY(-4px);box-shadow:0 36px 80px #1f182433}.demo-card:disabled{cursor:not-allowed;opacity:.7}.demo-card-icon{color:#7d5d1f;background:#d29b421a;border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.demo-card-icon svg{width:26px;height:26px}.demo-card-label{color:#17131f;font-family:var(--display);font-size:18px;font-weight:700}.demo-card-desc{color:#6f6878;font-size:13px;line-height:1.4}.demo-card-spinner{background:#ffffff80;border-radius:24px;place-items:center;display:grid;position:absolute;inset:0}.demo-card-spinner:after{content:"";border:2.5px solid #1f18241f;border-top-color:#d29b42;border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.demo-nav{z-index:200;-webkit-backdrop-filter:blur(20px)saturate(1.4);backdrop-filter:blur(20px)saturate(1.4);background:#ffffffb8;border:1px solid #ffffffbd;border-radius:999px;align-items:center;gap:4px;padding:5px 5px 5px 12px;display:flex;position:fixed;top:18px;right:18px;box-shadow:0 12px 36px #1f182429}.demo-nav-label{color:#7d5d1f;letter-spacing:.14em;text-transform:uppercase;padding-right:6px;font-size:11px;font-weight:900}.demo-nav-btn{color:#2c2734;background:0 0;border:0;border-radius:999px;place-items:center;min-width:68px;height:32px;padding:0 14px;font-size:13px;font-weight:700;transition:background .16s,color .16s,transform .16s;display:grid}.demo-nav-btn:hover:not(:disabled){background:#1f182412;transform:translateY(-1px)}.demo-nav-btn.is-active{color:#fff;background:#17131f}.demo-nav-btn:disabled{opacity:.6;cursor:wait}.demo-nav-spinner{border:2px solid #fff3;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:block}.slides-view{background:#0d0b12;place-items:center;height:100svh;display:grid;position:relative;overflow:hidden}.slides-video{aspect-ratio:16/9;object-fit:contain;border-radius:12px;width:min(90vw,160svh);box-shadow:0 40px 100px #000000b3}.slides-arrow{color:#ffffffb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff12;border:1px solid #ffffff24;border-radius:50%;place-items:center;width:52px;height:52px;transition:background .16s,color .16s,transform .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.slides-arrow:hover:not(:disabled){color:#fff;background:#ffffff29;transform:translateY(calc(-50% - 2px))}.slides-arrow:disabled{opacity:.2;cursor:default}.slides-arrow svg{width:22px;height:22px}.slides-arrow-prev{left:24px}.slides-arrow-next{right:24px}.slides-counter{color:#ffffff80;letter-spacing:.06em;font-size:14px;font-weight:700;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.slides-counter span{color:#ffffff40;margin:0 4px}@media (width<=640px){.demo-cards{grid-template-columns:1fr;max-width:280px}}
