@font-face{font-family:Assistant;src:url(../media/Assistant_Variable-s.p.3c2kj63ymr0fs.ttf)format("truetype");font-display:swap;font-weight:200 800;font-style:normal}@font-face{font-family:Assistant Fallback;src:local(Arial);ascent-override:114.19%;descent-override:32.1%;line-gap-override:0.0%;size-adjust:89.41%}.assistant_7d5b9884-module__x41Ufq__className{font-family:Assistant,Assistant Fallback,Arial Hebrew,Arial,sans-serif;font-style:normal}.assistant_7d5b9884-module__x41Ufq__variable{--font-assistant:"Assistant", "Assistant Fallback", Arial Hebrew, Arial, sans-serif}
:root{--purple:#7050a8;--purple-dark:#4b326f;--lavender:#f2eef7;--bg-light:#faf9fc;--white:#fff;--bg:var(--bg-light);--bg-1:var(--lavender);--bg-2:var(--white);--bg-3:#e9e3f1;--bg-raised:var(--bg-2);--bg-hover:var(--bg-3);--border:#e2dcee;--border-strong:#ccc0e0;--text:var(--purple-dark);--text-dim:#665185;--text-faint:#7d6b97;--brand:var(--purple);--brand-strong:var(--purple-dark);--brand-soft:#7050a81a;--brand-line:#7050a85c;--brand-contrast:var(--white);--accent:var(--purple);--on-dark:var(--white);--on-dark-dim:#d7d2df;--on-dark-line:#ffffff2e;--on-dark-soft:#ffffff1a;--info:var(--purple-dark);--info-soft:var(--lavender);--danger:#b3261e;--danger-soft:#b3261e14;--ok:var(--purple);--ok-soft:var(--brand-soft);--warn:var(--purple-dark);--warn-soft:var(--lavender);--dots:radial-gradient(circle, #7050a824 1.2px, transparent 1.8px);--dots-size:22px 22px;--dots-on-dark:radial-gradient(circle, #ffffff1f 1.2px, transparent 1.8px);--font-sans:var(--font-assistant,"Assistant"), "Assistant", "Arial Hebrew", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs:12px;--fs-sm:13.5px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:30px;--lh-tight:1.25;--lh-body:1.6;--measure:68ch;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--radius:var(--r-md);--shadow-1:0 1px 2px #4b326f14, 0 0 0 1px #7050a80f;--shadow-2:0 10px 30px #4b326f24, 0 0 0 1px #7050a814;--shadow-brand:0 6px 20px #7050a847;--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--ease:cubic-bezier(.2, .7, .2, 1);--focus-ring:0 0 0 2px var(--white), 0 0 0 4px var(--purple);--tap:44px;--tap-lg:46px;--tap-safe:48px;--sidebar-w:300px;--topbar-h:56px}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;overflow-x:hidden}body{background:radial-gradient(1100px 480px at 85% -10%, #7050a814, transparent 60%), var(--bg)}h1,h2,h3,h4{line-height:var(--lh-tight);letter-spacing:-.01em;margin:0 0 var(--sp-3);font-weight:700}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0 0 var(--sp-3)}a{color:var(--accent);text-underline-offset:3px;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--bg-2);color:var(--text);border-radius:var(--r-md);justify-content:center;align-items:center;gap:var(--sp-2);min-height:40px;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);padding:8px 14px;display:inline-flex}button:hover{background:var(--bg-3);border-color:var(--border-strong)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast);font-weight:700}button.primary:hover:not(:disabled){background:var(--brand-strong);border-color:var(--brand-strong);box-shadow:var(--shadow-brand)}button.ghost{color:var(--text-dim);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--bg-3);color:var(--text)}.icon-btn{width:var(--tap);height:var(--tap);min-height:var(--tap);border-radius:var(--r-md);flex:none;padding:0}.icon-btn.sm{border-radius:var(--r-sm);width:36px;height:36px;min-height:36px}input,textarea,select{font:inherit;color:var(--text);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);min-height:var(--tap);transition:border-color var(--dur-1) var(--ease), background-color var(--dur-1) var(--ease);padding:10px 12px}input:hover,textarea:hover,select:hover{border-color:var(--border-strong)}input:focus,textarea:focus,select:focus{border-color:var(--brand-line);box-shadow:var(--focus-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--text-faint)}select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234B326F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");background-position:12px;background-repeat:no-repeat;padding-inline-end:36px}[dir=ltr] select{background-position:right 12px center}input[type=file]{min-height:0;color:var(--text-dim);padding:6px}input[type=file]::file-selector-button{font:inherit;border:1px solid var(--border);background:var(--bg-2);color:var(--text);border-radius:var(--r-sm);cursor:pointer;margin-inline-end:10px;padding:6px 10px}:focus-visible{box-shadow:var(--focus-ring);outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link:focus-visible{clip:auto;z-index:100;background:var(--brand);width:auto;height:auto;color:var(--brand-contrast);border-radius:var(--r-pill);padding:10px 16px;font-weight:700;position:fixed;inset-block-start:var(--sp-2);inset-inline-start:var(--sp-2)}bdi,.ltr{direction:ltr;unicode-bidi:isolate}[dir=rtl] .icon-flip-rtl{transform:scaleX(-1)}.dim{color:var(--text-dim)}.muted{color:var(--text-faint);font-size:var(--fs-sm)}.card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.panel{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-1)}.banner{align-items:flex-start;gap:var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);padding:10px 16px;display:flex}.banner svg{flex:none;margin-top:2px}.banner-text{flex:1;min-width:0}.freeze-banner{background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--border);border-top:1px solid var(--border);padding:10px 16px}.error-banner{background:var(--danger-soft);color:var(--danger);justify-content:space-between;align-items:center;gap:var(--sp-3);padding:8px 16px;display:flex}.error-banner button{color:inherit;background:0 0;border:none}.error-banner button:hover{background:var(--danger-soft)}.state-chip,.course-state{border-radius:var(--r-pill);font-size:var(--fs-sm);background:var(--bg-3);border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;align-items:center;gap:6px;padding:2px 10px;display:inline-flex}.state-chip:before,.course-state:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.state-chip[data-state=active],.course-state[data-state=active],.state-chip[data-state=grace],.state-chip[data-state=approved],.state-chip[data-state=published],.state-chip[data-state=open]{color:var(--ok);background:var(--ok-soft);border-color:var(--brand-line)}.state-chip[data-state=frozen],.state-chip[data-state=expired],.state-chip[data-state=needs_revision],.state-chip[data-state=late],.state-chip[data-state=draft]{color:var(--warn);background:var(--warn-soft);border-color:var(--border-strong)}.state-chip[data-state=revoked],.course-state[data-state=revoked],.state-chip[data-state=not_submitted]{color:var(--danger);background:var(--danger-soft);border-color:#0000}.loader{align-items:center;gap:var(--sp-3);color:var(--text-dim);flex-direction:column;display:inline-flex}.loader-ring{border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--bg-2) 25%, var(--bg-3) 50%, var(--bg-2) 75%);background-size:200% 100%;height:14px;animation:1.4s ease-in-out infinite shimmer}.typing{color:var(--text-dim);align-items:center;gap:5px;display:inline-flex}.typing i{background:var(--brand);opacity:.35;border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite dot}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{align-items:center;gap:var(--sp-3);height:var(--topbar-h);padding:0 var(--sp-4);padding-top:env(safe-area-inset-top);background:var(--dots-on-dark) 0 0 / var(--dots-size), var(--purple-dark);color:var(--on-dark);border-bottom:1px solid var(--purple-dark);flex:none;display:flex}.brand{color:var(--on-dark);font-weight:700;font-size:var(--fs-lg);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;min-width:0;display:inline-flex}.official-mark{border-radius:3px;flex:none;display:inline-block}.brand-mark{flex:none;display:inline-flex}.brand-name{text-overflow:ellipsis;overflow:hidden}.topbar-user{color:var(--on-dark-dim);gap:var(--sp-2);align-items:center;min-width:0;margin-inline-start:auto;display:flex}.topbar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-sm);padding-inline-end:var(--sp-2);overflow:hidden}.topbar-nav{align-items:center;gap:2px;display:flex}.admin-link,.nav-link{color:var(--text-dim);border-radius:var(--r-sm);font-size:var(--fs-sm);white-space:nowrap;flex:none;align-items:center;gap:6px;min-height:36px;padding:8px 10px;display:inline-flex}.admin-link:hover,.nav-link:hover{color:var(--text);background:var(--bg-3);text-decoration:none}.topbar .nav-link{color:var(--on-dark-dim)}.topbar .nav-link:hover{color:var(--on-dark);background:var(--on-dark-soft)}.topbar .drawer-toggle{color:var(--on-dark)}.topbar .drawer-toggle:hover:not(:disabled){background:var(--on-dark-soft);color:var(--on-dark)}.topbar :focus-visible{box-shadow:0 0 0 2px var(--purple-dark), 0 0 0 4px var(--white)}.topbar-logout{color:var(--on-dark);border:1px solid var(--on-dark-line);border-radius:var(--r-sm);min-height:36px;font:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;flex:none;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.topbar-logout:hover{background:var(--on-dark-soft);color:var(--on-dark);border-color:var(--on-dark-dim)}.drawer-toggle,.drawer-scrim{display: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-1);gap:var(--sp-3);padding:var(--sp-3);flex-direction:column;flex:none;display:flex;overflow-y:auto}.sidebar-actions{gap:var(--sp-2);flex-direction:column;display:flex}.sidebar-actions select{font-size:var(--fs-sm)}.sidebar-actions .primary{min-height:var(--tap)}.search-field{align-items:center;display:flex;position:relative}.search-field svg{color:var(--text-faint);pointer-events:none;position:absolute;inset-inline-start:12px}.search-field input{width:100%;font-size:var(--fs-sm);background:var(--bg-2);min-height:40px;padding-inline-start:38px}.sidebar-label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:var(--sp-2) var(--sp-2) 0}.chat-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.chat-list li{border-radius:var(--r-md);transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);border:1px solid #0000;align-items:center;gap:2px;display:flex}.chat-list li:hover{background:var(--bg-2)}.chat-list li.active{background:var(--brand-soft);border-color:var(--brand-line)}.chat-list li.empty{color:var(--text-faint);padding:var(--sp-3) var(--sp-2);font-size:var(--fs-sm);border-style:dashed;border-color:var(--border);justify-content:center}.chat-item{text-align:start;min-width:0;min-height:var(--tap);border-radius:var(--r-md);color:var(--text);background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.chat-item:hover{background:0 0;border-color:#0000}.chat-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:var(--fs-sm);font-weight:600;overflow:hidden}li.active .chat-title{color:var(--brand-strong)}.chat-sub{font-size:var(--fs-xs);color:var(--text-faint)}.chat-actions{opacity:0;transition:opacity var(--dur-1) var(--ease);gap:0;display:flex}.chat-list li:hover .chat-actions,.chat-list li.active .chat-actions,.chat-list li:focus-within .chat-actions{opacity:1}.chat-actions button,.chat-actions a{border-radius:var(--r-sm);width:32px;height:32px;min-height:32px;color:var(--text-faint);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.chat-actions button:hover:not(:disabled),.chat-actions a:hover{color:var(--text);background:var(--bg-3)}.chat-actions .danger:hover:not(:disabled){color:var(--danger)}.rename-input{min-height:40px;font-size:var(--fs-sm);flex:1;margin:2px}.archived summary{cursor:pointer;color:var(--text-faint);font-size:var(--fs-sm);padding:var(--sp-2);border-radius:var(--r-sm);align-items:center;gap:6px;list-style:none;display:flex}.archived summary::-webkit-details-marker{display:none}.archived summary:hover{color:var(--text);background:var(--bg-2)}.archived[open] summary svg{transform:rotate(180deg)}.sidebar-nav{display:none}.chat-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.chat-header{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border);background:var(--white);flex-wrap:wrap;flex:none;display:flex}.mode-tabs{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-pill);gap:2px;padding:3px;display:inline-flex}.tab{border-radius:var(--r-pill);min-height:34px;color:var(--text-dim);font-size:var(--fs-sm);background:0 0;border-color:#0000;padding:6px 14px}.tab:hover:not(:disabled){background:var(--bg-3);color:var(--text);border-color:#0000}.tab.active{background:var(--brand);color:var(--brand-contrast);border-color:var(--brand);font-weight:700}.tab.active:hover:not(:disabled),.tab.active:focus-visible{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--brand-contrast)}.model-toggle{border-radius:var(--r-pill);font-size:var(--fs-sm);min-height:34px;padding:6px 12px}.model-toggle[aria-pressed=true]{border-color:var(--brand-line);color:var(--brand-strong);background:var(--brand-soft)}.course-chip{color:var(--text-dim);font-size:var(--fs-sm);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-1);white-space:nowrap;align-items:center;gap:6px;margin-inline-start:auto;padding:4px 10px;display:inline-flex}.messages{min-height:0;padding:var(--sp-5) var(--sp-4);gap:var(--sp-4);scroll-behavior:smooth;flex-direction:column;flex:1;display:flex;overflow-y:auto}.messages-inner{gap:var(--sp-4);flex-direction:column;flex:1;width:100%;max-width:780px;margin:0 auto;display:flex}.empty-state{text-align:center;color:var(--text);max-width:520px;padding:var(--sp-6) var(--sp-4);align-items:center;gap:var(--sp-2);flex-direction:column;margin:auto;display:flex}.empty-mark{width:72px;height:72px;margin-bottom:var(--sp-3);filter:drop-shadow(0 6px 14px #7050a838);place-items:center;display:grid}.empty-state h2{font-size:var(--fs-2xl);margin:0}.empty-state p{color:var(--text-dim);margin:0}.empty-state .muted{max-width:44ch}.empty-state .my-courses{font-size:var(--fs-sm);color:var(--brand-strong);font-weight:600}.welcome-box{border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);text-align:center;background:var(--bg-2);box-shadow:var(--shadow-1)}.welcome-box h3{margin-bottom:var(--sp-2)}.welcome-buttons{gap:var(--sp-2);margin:var(--sp-3) 0;flex-wrap:wrap;justify-content:center;display:flex}.welcome-buttons>button{background:var(--bg-1);border-color:var(--border);border-radius:var(--r-md);text-align:start;min-height:var(--tap);padding:10px 14px}.welcome-buttons>button:hover:not(:disabled){border-color:var(--brand-line);background:var(--brand-soft);color:var(--text)}.welcome-box .muted{margin:0}.msg{border-radius:var(--r-lg);word-break:break-word;overflow-wrap:anywhere;max-width:720px;animation:rise var(--dur-3) var(--ease) both;padding:12px 16px}.msg-meta{color:var(--text-faint);font-size:var(--fs-xs);align-items:center;gap:8px;margin-bottom:6px;display:flex}.msg-meta .avatar{place-items:center;width:24px;height:24px;display:grid}.msg-plain{white-space:pre-wrap}.rich>:first-child{margin-top:0}.rich>:last-child{margin-bottom:0}.rich p{margin:0 0 10px}.rich h2,.rich h3,.rich h4,.rich h5,.rich h6{line-height:var(--lh-tight);margin:18px 0 8px}.rich h2{font-size:var(--fs-xl);border-bottom:1px solid var(--border);padding-bottom:6px}.rich h3{font-size:var(--fs-lg);color:var(--brand-strong)}.rich h4,.rich h5,.rich h6{font-size:var(--fs-md)}.rich ol,.rich ul{margin:0 0 10px;padding-inline-start:1.4em}.rich li{margin:4px 0}.rich li::marker{color:var(--brand)}.rich strong{color:var(--text);font-weight:700}.rich code{background:var(--bg-3);font-size:.9em;font-family:var(--font-mono);border-radius:5px;padding:1px 6px}.rich pre{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);text-align:left;font-family:var(--font-mono);font-size:var(--fs-sm);direction:ltr;padding:12px 14px;overflow-x:auto}.rich pre code{background:0 0;padding:0}.rich a{color:var(--accent);text-decoration:underline}.msg-user{background:var(--bg-3);border:1px solid var(--border-strong);border-start-start-radius:6px;align-self:flex-start}.msg-assistant{background:var(--bg-2);border:1px solid var(--border);max-width:100%;box-shadow:var(--shadow-1);align-self:stretch;padding:14px 18px 16px}.msg-assistant.streaming{border-color:var(--brand-line)}.msg-badge{font-size:var(--fs-sm);color:var(--text-dim);border-radius:var(--r-pill);background:var(--bg-3);align-items:center;gap:6px;margin-top:10px;padding:3px 10px;display:inline-flex}.msg-badge.warn{color:var(--warn);background:var(--warn-soft)}.msg[data-status=refused] .msg-body{color:var(--text-dim)}.citations{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px}.citations-toggle{font-size:var(--fs-sm);border-radius:var(--r-pill);min-height:32px;color:var(--text-dim);background:var(--bg-1);padding:4px 12px}.citations-toggle[aria-expanded=true]{color:var(--brand-strong);border-color:var(--brand-line)}.citation-cards{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:10px 0 0;padding:0;list-style:none;display:grid}.citation-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);font-size:var(--fs-sm);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.citation-title{font-weight:600}.citation-meta{color:var(--text-faint);font-size:var(--fs-xs)}.citation-card a{align-items:center;gap:6px;min-height:32px;margin-top:4px;display:inline-flex}.citation-nolink{font-size:var(--fs-xs)}.work-review-row{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-1);flex-direction:column;flex:none;display:flex}.work-review-row textarea{font-size:var(--fs-sm)}.upload-chip{color:var(--ok);font-size:var(--fs-sm);border-radius:var(--r-pill);background:var(--ok-soft);align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.upload-label{gap:var(--sp-2);color:var(--text-dim);font-size:var(--fs-sm);flex-wrap:wrap;align-items:center;display:flex}.composer{gap:var(--sp-2);padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-1);flex:none;align-items:flex-end;display:flex}.composer-inner{gap:var(--sp-2);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);width:100%;max-width:780px;transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);align-items:flex-end;margin:0 auto;padding:6px 6px 6px 12px;display:flex}.composer-inner:focus-within{border-color:var(--brand-line);box-shadow:0 0 0 3px var(--brand-soft)}.composer textarea{resize:none;max-height:40vh;min-height:var(--tap);background:0 0;border:none;flex:1;padding:10px 6px;line-height:1.5}.composer textarea:focus{box-shadow:none;border-color:#0000}.composer .send,.composer .stop{min-width:var(--tap);height:var(--tap);min-height:var(--tap);border-radius:var(--r-lg);flex:none;align-self:flex-end;padding:0 16px}.stop{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.stop:hover{background:var(--danger);color:var(--white)}.composer-hint{font-size:var(--fs-xs);color:var(--text-faint);text-align:center;margin:6px 0 0}.center-screen{background:var(--dots) 0 0 / var(--dots-size), linear-gradient(180deg, var(--lavender), var(--bg) 60%);justify-content:center;align-items:center;gap:var(--sp-3);text-align:center;height:100dvh;padding:var(--sp-6);padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom));flex-direction:column;display:flex}.status-card{align-items:center;gap:var(--sp-3);width:100%;max-width:440px;padding:var(--sp-8) var(--sp-6);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-2);flex-direction:column;display:flex}.status-icon{background:var(--bg-3);width:56px;height:56px;color:var(--text-dim);border:1px solid var(--border);border-radius:18px;place-items:center;display:grid}.status-icon.brand{color:var(--brand);background:0 0;border-color:#0000;width:64px;height:64px}.status-icon.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.status-icon.danger{background:var(--danger-soft);color:var(--danger);border-color:#0000}.status-card h1{font-size:var(--fs-xl);margin:0}.status-card p{color:var(--text-dim);margin:0}.button-link{background:var(--brand);color:var(--brand-contrast);border-radius:var(--r-md);min-height:var(--tap);border:1px solid var(--brand);font-weight:700;font:inherit;cursor:pointer;transition:background-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);justify-content:center;align-items:center;gap:8px;padding:12px 24px;display:inline-flex}.button-link:hover{background:var(--brand-strong);box-shadow:var(--shadow-brand);text-decoration:none}.button-link.secondary{color:var(--text);border-color:var(--border-strong);background:0 0}.button-link.secondary:hover{background:var(--bg-3);box-shadow:none}.choice-list{gap:var(--sp-2);flex-direction:column;width:100%;max-width:440px;display:flex}.choice-list .button-link{text-align:start;justify-content:flex-start}.auth-panel{gap:var(--sp-4);text-align:start;width:100%;max-width:400px;padding:var(--sp-8) var(--sp-6);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-2);flex-direction:column;display:flex}.auth-head{align-items:center;gap:var(--sp-3);text-align:center;flex-direction:column;display:flex}.auth-panel h1{text-align:center;color:var(--text);font-size:var(--fs-2xl);margin:0}.auth-head .muted{margin:0}.auth-tabs{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);gap:2px;padding:3px;display:flex}.auth-tabs button{color:var(--text-dim);min-height:var(--tap);border-radius:var(--r-sm);background:0 0;border:1px solid #0000;flex:1;padding:10px;font-weight:600}.auth-tabs button:hover{color:var(--text);background:var(--bg-3)}.auth-tabs button.active{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.auth-form{gap:var(--sp-3);flex-direction:column;display:flex}.auth-form label{font-size:var(--fs-sm);color:var(--text-dim);flex-direction:column;gap:6px;display:flex}.auth-form input{width:100%;color:var(--text);padding:12px 14px;font-size:16px}.auth-submit{background:var(--brand);border:1px solid var(--brand);width:100%;color:var(--brand-contrast);border-radius:var(--r-md);min-height:48px;font-weight:700;font-size:var(--fs-md);margin-top:var(--sp-1);padding:12px}.auth-submit:hover:not(:disabled){background:var(--brand-strong);box-shadow:var(--shadow-brand)}.auth-submit:disabled{opacity:.6}.auth-form .muted{text-align:center;margin:0}.auth-secondary{justify-content:space-between;gap:var(--sp-2);display:flex}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:6px 0}.auth-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--r-md);font-size:var(--fs-sm);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;display:flex}.auth-error svg{flex:none;margin-top:2px}.auth-notice{color:var(--ok);background:var(--ok-soft);border-radius:var(--r-md);font-size:var(--fs-sm);margin:0;padding:10px 12px}.admin-wrap{padding:var(--sp-6) var(--sp-5);padding-bottom:calc(var(--sp-8) + env(safe-area-inset-bottom));gap:var(--sp-4);flex-direction:column;max-width:1100px;min-height:100dvh;margin:0 auto;display:flex}.page-head{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.page-head h1{align-items:center;gap:10px;margin:0;display:inline-flex}.page-head h1 svg{color:var(--brand)}.page-head h1{color:var(--purple-dark)}.page-head .nav-link{border:1px solid var(--border);background:var(--bg-2);margin-inline-start:auto}.admin-tabs{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg);flex-wrap:wrap;align-items:center;gap:4px;padding:3px;display:flex}.admin-tabs .tab{border-radius:var(--r-md)}.section{gap:var(--sp-3);flex-direction:column;display:flex}.section h2{font-size:var(--fs-lg);margin:0}.toolbar{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.toolbar label{color:var(--text-dim);font-size:var(--fs-sm);align-items:center;gap:8px;display:inline-flex}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-2);-webkit-overflow-scrolling:touch;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);min-width:560px}.admin-table.compact{min-width:0}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:start;vertical-align:middle;padding:10px 12px}.admin-table th{background:var(--bg-1);color:var(--text-faint);font-weight:600;font-size:var(--fs-xs);letter-spacing:.04em;white-space:nowrap}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover td{background:var(--brand-soft)}.admin-table td.dim{color:var(--text-faint)}.admin-table .actions{flex-wrap:wrap;gap:6px;display:flex}.admin-table button{min-height:36px;font-size:var(--fs-sm);padding:6px 12px}.form-grid{gap:var(--sp-2);display:grid}.form-grid.two{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.form-grid .span{grid-column:1/-1}.stat-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);flex-direction:column;gap:4px;display:flex}.stat-value{font-size:var(--fs-2xl);color:var(--brand-strong);font-weight:700;line-height:1.1}.stat-label{color:var(--text-dim);font-size:var(--fs-sm)}.code-block{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-sm);max-height:60vh;margin:0;padding:12px;overflow:auto}.dialog-card{border:1px solid var(--brand-line);background:var(--bg-2);border-radius:var(--r-lg);padding:var(--sp-5);gap:var(--sp-3);box-shadow:var(--shadow-2);flex-direction:column;display:flex}.dialog-card h3{margin:0}.modal-backdrop{z-index:1000;background:#14102873;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-panel{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow-y:auto}.modal-panel>.dialog-card{margin:0}.course-cell{flex-direction:column;gap:6px;min-width:220px;display:flex}.course-access-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.course-access-row button{min-height:var(--tap-safe);font-size:var(--fs-sm);padding:2px 10px}.course-access-row .course-source{font-size:var(--fs-xs)}.course-state[data-state=none]{color:var(--text-faint)}.error-text{color:var(--danger);align-items:center;gap:6px;margin:0;display:flex}.course-rollout{margin:0 0 var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-1);max-width:80ch}.course-rollout.enforced{border-color:var(--brand-line)}.course-sync-note{margin:0 0 var(--sp-3);max-width:80ch}.dialog-card .toolbar>*{flex:160px}.dialog-card .toolbar>button{flex:none}.list-plain{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.details-body{margin-top:var(--sp-3)}.list-row{align-items:center;gap:var(--sp-3);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;padding:10px 14px;display:flex}.list-row .grow{flex:1;min-width:0}.list-row.read{opacity:.65}.link-group{gap:var(--sp-2);flex-wrap:wrap;display:inline-flex}.link-group a{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg-1);font-size:var(--fs-sm);align-items:center;gap:6px;min-height:36px;padding:6px 10px;display:inline-flex}.link-group a:hover{border-color:var(--brand-line);text-decoration:none}.detail-card{gap:var(--sp-3);text-align:start;flex-direction:column;display:flex}.detail-card h2,.detail-card .kv{margin:0}.detail-card .kv strong{color:var(--brand-strong)}.detail-card ul{margin:0;padding-inline-start:1.3em}.version-row{border-top:1px solid var(--border);padding-block:var(--sp-3)}.feedback-msg{border-radius:var(--r-md);background:var(--info-soft);color:var(--text);font-size:var(--fs-sm);margin:0;padding:10px 12px}.account-row{align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin:0;display:flex}@media (max-width:700px){html,body{font-size:16px}.drawer-toggle{display:inline-flex}.topbar{gap:var(--sp-2);padding:0 var(--sp-3);padding-top:env(safe-area-inset-top);height:calc(var(--topbar-h) + env(safe-area-inset-top))}.brand{font-size:var(--fs-md)}.topbar-name,.topbar-nav{display:none}.topbar-logout{width:var(--tap);height:var(--tap);min-height:var(--tap);border-radius:var(--r-md);justify-content:center;padding:0}.topbar-logout .btn-text{display:none}.sidebar{z-index:20;transition:transform var(--dur-3) var(--ease);width:min(85vw, var(--sidebar-w));box-shadow:var(--shadow-2);padding-top:calc(var(--sp-3) + env(safe-area-inset-top));padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom));position:fixed;inset-block:0;inset-inline-start:0;transform:translate(100%)}[dir=rtl] .sidebar{transform:translate(100%)}.sidebar.open{transform:translate(0)}.drawer-scrim{z-index:19;opacity:0;pointer-events:none;transition:opacity var(--dur-3) var(--ease);background:#4b326f73;border:none;border-radius:0;min-height:0;padding:0;display:block;position:fixed;inset:0}.drawer-scrim.open{opacity:1;pointer-events:auto}.sidebar-nav{padding-top:var(--sp-3);border-top:1px solid var(--border);flex-direction:column;gap:2px;margin-top:auto;display:flex}.sidebar-nav .nav-link{min-height:var(--tap);font-size:var(--fs-md)}.sidebar-user{color:var(--text-faint);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-2) 0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-actions{opacity:1}.chat-header{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}.mode-tabs{width:100%}.tab{min-height:var(--tap);font-size:var(--fs-sm);flex:1;padding:6px 8px}.course-chip{font-size:var(--fs-xs);margin-inline-start:0}.messages{padding:var(--sp-4) var(--sp-3)}.msg{max-width:100%}.msg-assistant{padding:12px 14px 14px}.composer{padding:8px 10px;padding-bottom:calc(8px + env(safe-area-inset-bottom))}.composer-inner{padding:4px 4px 4px 10px}.composer textarea{font-size:16px}.composer .send .btn-text,.composer .stop .btn-text{display:none}.composer .send,.composer .stop{width:var(--tap);min-width:var(--tap);padding:0}.composer-hint{display:none}.empty-state h2{font-size:var(--fs-xl)}.center-screen{padding:var(--sp-4);padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom))}.auth-panel,.status-card{padding:var(--sp-6) var(--sp-4)}.admin-wrap{padding:var(--sp-4) var(--sp-3);padding-bottom:calc(var(--sp-6) + env(safe-area-inset-bottom))}.page-head .nav-link{margin-inline-start:0}.admin-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.admin-tabs .tab{min-height:var(--tap);flex:none}.admin-tabs .nav-link{display:none}}@media (min-width:701px) and (max-width:1024px){:root{--sidebar-w:260px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes dot{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.msg-assistant .rich>p:first-child{font-size:var(--fs-lg);color:var(--text);line-height:1.55}.msg-assistant .rich ol li,.msg-assistant .rich ul li{margin:6px 0;padding-inline-start:2px}.citations:has(>.lesson-cards){container:lesson-sources/inline-size}.lesson-cards{gap:var(--sp-2);grid-template-columns:minmax(0,1fr);align-items:stretch;display:grid}@container lesson-sources (min-width:520px){.lesson-cards.multi-course{grid-template-columns:repeat(2,minmax(0,1fr))}}.lesson-cards.multi-course .lesson-card{border-color:var(--brand-line);margin-top:0}.lesson-card-course{border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-strong);font-size:var(--fs-xs);align-self:flex-start;padding:2px 10px;font-weight:700}.lesson-card{border-radius:var(--r-md);background:var(--bg-1);border:1px solid var(--border);flex-direction:column;gap:6px;margin-top:4px;padding:12px 14px;display:flex}.lesson-card-eyebrow{font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text-faint);align-items:center;gap:6px;display:inline-flex}.lesson-card-title{font-weight:700;font-size:var(--fs-md);color:var(--brand-strong);line-height:var(--lh-tight)}.lesson-card-meta{color:var(--text-dim);font-size:var(--fs-sm)}.lesson-ts-row{font-size:var(--fs-sm);color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.lesson-ts{font-family:var(--font-mono);border-radius:var(--r-pill);background:var(--bg-2);border:1px solid var(--border-strong);direction:ltr;unicode-bidi:isolate;padding:1px 8px;font-weight:600}.lesson-note{font-size:var(--fs-xs);color:var(--text-dim);margin:0}.lesson-actions{gap:var(--sp-2);flex-wrap:wrap;margin-top:2px;display:flex}.lesson-action{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-2);min-height:40px;color:var(--text);font-size:var(--fs-sm);cursor:pointer;transition:background-color var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);align-items:center;gap:6px;padding:6px 12px;font-weight:600;text-decoration:none;display:inline-flex}.lesson-action:hover{background:var(--bg-3);border-color:var(--brand-line);text-decoration:none}.lesson-action.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.lesson-action.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong)}.lesson-action[data-copied=true]{color:var(--brand-strong);border-color:var(--brand-line);background:var(--brand-soft)}.lesson-more{margin-top:8px}.lesson-more .citations-toggle svg.rot{transform:rotate(180deg)}.citation-card[data-link-kind=none]{opacity:.85}.chip{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-2);min-height:36px;color:var(--text-dim);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.chip:hover:not(:disabled){border-color:var(--brand-line);background:var(--brand-soft);color:var(--text)}.chip.selected,.chip[aria-checked=true]{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast);font-weight:700}.next-steps{align-items:center;gap:var(--sp-2);animation:rise var(--dur-3) var(--ease) both;flex-wrap:wrap;padding:2px 4px;display:flex}.next-steps-label{font-size:var(--fs-sm);color:var(--text-faint);margin-inline-end:2px}.next-step{min-height:var(--tap)}.empty-state{gap:var(--sp-3);width:100%;max-width:600px}.empty-state .empty-mark{width:56px;height:56px;margin-bottom:0}.empty-state p{max-width:48ch}.quick-starts{gap:var(--sp-3);width:100%;margin-top:var(--sp-2);text-align:start;flex-direction:column;display:flex}.course-segment{gap:var(--sp-2);flex-wrap:wrap;justify-content:center;display:flex}.quick-start-list{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:0;padding:0;list-style:none;display:grid}.quick-start{width:100%;min-height:var(--tap);text-align:start;background:var(--bg-2);border-color:var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text);justify-content:flex-start;gap:10px;padding:10px 14px;font-weight:600}.quick-start svg{color:var(--brand);flex:none}.quick-start:hover:not(:disabled){border-color:var(--brand-line);background:var(--brand-soft)}.quick-starts .muted{text-align:center;margin:0}.chat-list li.chat-group-label{font-size:var(--fs-xs);color:var(--text-faint);padding:var(--sp-2) var(--sp-2) 2px;letter-spacing:.04em;border:none;min-height:0;display:block}.chat-list li.chat-group-label:hover{background:0 0}.chat-list li.chat-group-label+li.chat-group-label,.chat-list li+li.chat-group-label{margin-top:var(--sp-1)}.chat-sub bdi{direction:ltr;unicode-bidi:isolate}.skeleton-row{border:none;flex-direction:column;gap:6px;padding:10px;display:flex}.skeleton.sm{height:10px}.msg-skeletons{gap:var(--sp-4);flex-direction:column;display:flex}.msg-skeleton{flex-direction:column;gap:8px;animation:none;display:flex}.msg-user.msg-skeleton{min-width:40%}.composer{flex-direction:column;align-items:stretch;gap:4px}.composer textarea{max-height:168px;overflow-y:hidden}.composer-hint{margin:0;display:block}.task-progress{gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);flex-direction:column;display:flex}.task-progress-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);display:flex}.progress-bar{border-radius:var(--r-pill);background:var(--bg-3);height:8px;overflow:hidden}.progress-bar>span{background:var(--brand);border-radius:var(--r-pill);height:100%;transition:width var(--dur-3) var(--ease);display:block}.task-progress-counts{gap:var(--sp-4);color:var(--text-dim);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.task-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:0;padding:0;list-style:none;display:grid}.task-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);gap:var(--sp-2);box-shadow:var(--shadow-1);flex-direction:column;min-width:0;display:flex}.task-card[data-status=needs_revision],.task-card[data-status=late]{border-color:var(--border-strong)}.task-card-head{justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.task-due{font-size:var(--fs-xs);color:var(--text-dim);align-items:center;gap:5px;display:inline-flex}.task-due-late{color:var(--danger)}.task-due-soon{color:var(--brand-strong);font-weight:600}.task-title{font-size:var(--fs-lg);color:var(--brand-strong);margin:0}.task-objective{color:var(--text-dim);font-size:var(--fs-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.task-next{font-size:var(--fs-sm);color:var(--text);margin:0}.task-actions{gap:var(--sp-2);flex-wrap:wrap;margin-top:auto;display:flex}.task-open{min-height:var(--tap)}.task-skeleton{gap:10px}.empty-card{text-align:center;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-5);flex-direction:column;display:flex}.empty-card h2{margin:0}.empty-card .muted{max-width:44ch;margin:0}.submit-panel{border-top:1px solid var(--border);padding-top:var(--sp-3)}@media (max-width:700px){.chat-list.primary-list li{flex-wrap:wrap}.chat-list.primary-list .chat-actions{flex-basis:100%;justify-content:flex-end;gap:4px;padding:0 4px 4px;display:none}.chat-list.primary-list li.active .chat-actions{display:flex}.chat-list .chat-actions button,.chat-list .chat-actions a{width:var(--tap-lg);height:var(--tap-lg);min-height:var(--tap-lg);min-width:var(--tap-lg)}.archived .chat-actions button{width:var(--tap);height:var(--tap);min-height:var(--tap)}.lesson-action{min-height:var(--tap-safe);flex:auto;justify-content:center}.citation-card a{min-height:var(--tap-safe);border-radius:var(--r-sm);align-items:center;gap:6px;margin:4px -4px 0;padding:8px 10px;display:flex}.citations-toggle{min-height:var(--tap-safe);min-width:var(--tap-safe);padding:10px 16px}.rich a{min-height:var(--tap-safe);box-sizing:border-box;line-height:var(--lh-body);margin:-12px -2px;padding:12px 2px;display:inline-block}.rich li>a:only-child{width:100%;min-height:var(--tap-safe);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);word-break:break-word;overflow-wrap:anywhere;align-items:center;margin:4px 0;padding:10px 12px;text-decoration:none;display:flex}.chip{min-height:var(--tap)}.quick-start-list,.task-grid{grid-template-columns:1fr}.composer-hint{display:none}.empty-state{padding:var(--sp-4) var(--sp-2)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.typing i{opacity:.8}.loader-ring{border-top-color:var(--border);border-color:var(--brand)}}html.rw-frame,html.rw-frame body{background:0 0;height:100%;overflow:hidden}.rw-root{font-family:var(--font-sans);color:var(--text);flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.rw-collapsed{gap:var(--sp-2);flex-direction:column;width:max-content;max-width:none;padding:8px;display:inline-flex;position:absolute;bottom:0}.rw-left .rw-collapsed{align-items:flex-start;left:0}.rw-right .rw-collapsed{align-items:flex-end;right:0}[dir=rtl] .rw-left .rw-collapsed{align-items:flex-end}[dir=rtl] .rw-right .rw-collapsed{align-items:flex-start}.rw-launcher{width:60px;height:60px;min-width:var(--tap-lg);min-height:var(--tap-lg);background:var(--brand);color:var(--brand-contrast);box-shadow:var(--shadow-brand);cursor:pointer;transition:transform var(--dur-2) var(--ease), background var(--dur-2) var(--ease);border:none;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:relative}.rw-launcher-icon{color:var(--white);display:block}.rw-launcher:hover{background:var(--brand-strong);transform:translateY(-1px)}.rw-badge{top:-4px;border-radius:var(--r-pill);background:var(--white);min-width:22px;height:22px;color:var(--purple-dark);border:2px solid var(--purple);font-size:var(--fs-xs);text-align:center;padding:0 6px;font-weight:700;line-height:18px;position:absolute;inset-inline-end:-4px}.rw-bubble{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);max-width:300px;box-shadow:var(--shadow-2);animation:rise var(--dur-3) var(--ease) both;align-items:stretch;gap:4px;display:flex;position:relative}.rw-bubble-text{color:var(--text);font-size:var(--fs-sm);text-align:start;min-height:var(--tap-lg);cursor:pointer;background:0 0;border:none;flex:auto;padding:12px 6px 12px 14px;line-height:1.5}[dir=ltr] .rw-bubble-text{padding:12px 14px 12px 6px}.rw-bubble-close{width:var(--tap-lg);min-height:var(--tap-lg);color:var(--text-faint);border-radius:var(--r-md);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.rw-bubble-close:hover{background:var(--bg-1);color:var(--text)}.rw-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-2);animation:rise var(--dur-3) var(--ease) both;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.rw-fullscreen .rw-panel{padding-bottom:env(safe-area-inset-bottom);border:none;border-radius:0}.rw-head{align-items:center;gap:var(--sp-2);background:var(--purple-dark);min-height:60px;color:var(--on-dark);background-image:var(--dots-on-dark);background-size:var(--dots-size);padding:8px 10px 8px 12px;display:flex}.rw-head-mark{background:var(--white);border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.rw-title{font-size:var(--fs-lg);color:var(--on-dark);flex:auto;margin:0;font-weight:700}.rw-head-actions{gap:2px;display:flex}.rw-icon-btn{width:var(--tap-lg);height:var(--tap-lg);min-width:var(--tap-lg);min-height:var(--tap-lg);border-radius:var(--r-md);color:var(--on-dark);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.rw-icon-btn:hover{background:var(--on-dark-soft);border-color:var(--on-dark-line)}.rw-head .rw-icon-btn:focus-visible{box-shadow:0 0 0 2px var(--purple-dark), 0 0 0 4px var(--white)}.rw-body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}.rw-center{padding:var(--sp-8);justify-content:center;align-items:center;display:flex}.rw-auth{gap:var(--sp-3);padding:var(--sp-5) var(--sp-4) var(--sp-4);flex-direction:column;display:flex}.rw-auth-lead{color:var(--text-dim);font-size:var(--fs-sm);margin:0}.rw-handoff{min-height:var(--tap-lg);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-2);color:var(--brand);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-weight:600;display:inline-flex}.rw-handoff:hover:not(:disabled){background:var(--bg-1)}.rw-handoff:disabled{opacity:.7;cursor:default}.rw-handoff-done{border-radius:var(--r-md);background:var(--ok-soft);color:var(--purple-dark);align-items:center;gap:8px;margin:0;padding:12px 14px;display:flex}.rw-chat{gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-4);background-image:var(--dots);background-size:var(--dots-size);flex-direction:column;display:flex}.rw-chat .msg{max-width:100%}.rw-chat .msg-user{max-width:88%}.rw-chat .msg-assistant{padding:12px 14px 14px}.rw-banner{border-radius:var(--r-md);background:var(--warn-soft);border:1px solid var(--border-strong);color:var(--purple-dark);font-size:var(--fs-sm);align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.rw-empty{text-align:center;align-items:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-3) var(--sp-3);flex-direction:column;display:flex}.rw-empty-title{margin:var(--sp-2) 0 0;font-size:var(--fs-lg);font-weight:700}.rw-empty-sub{color:var(--text-dim);font-size:var(--fs-sm);max-width:34ch;margin:0}.rw-course{margin-top:var(--sp-2);flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.rw-course .chip{min-height:var(--tap-lg)}.rw-chatbar{border-bottom:1px solid var(--border);background:var(--bg-2);flex:none;align-items:center;gap:8px;min-width:0;padding:6px 10px;display:flex}.rw-chats-toggle,.rw-new-chat{min-height:var(--tap-lg);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-1);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.rw-chats-toggle{flex:auto;min-width:0}.rw-chats-title{text-overflow:ellipsis;white-space:nowrap;text-align:start;flex:auto;min-width:0;font-weight:600;overflow:hidden}.rw-flip{transform:rotate(180deg)}.rw-new-chat{border-color:var(--brand-line);color:var(--brand);flex:none;font-weight:600}.rw-chats-toggle:hover:not(:disabled),.rw-new-chat:hover:not(:disabled){background:var(--brand-soft)}.rw-chats-toggle:disabled,.rw-new-chat:disabled{opacity:.55;cursor:default}.rw-drawer{gap:var(--sp-3);padding:var(--sp-3);background:var(--bg);flex-direction:column;display:flex}.rw-new-course{font-size:var(--fs-sm);color:var(--text-dim);flex-direction:column;gap:4px;display:flex}.rw-new-course select{min-height:var(--tap-lg);width:100%;font-size:16px}.rw-drawer-empty{color:var(--text-dim);font-size:var(--fs-sm);margin:0}.rw-chat-group-label{font-size:var(--fs-xs);color:var(--text-dim);margin:0 0 4px;font-weight:700}.rw-chat-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.rw-chat-item{width:100%;min-height:var(--tap-safe);border-radius:var(--r-md);color:var(--text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.rw-chat-item:hover{background:var(--bg-1)}.rw-chat-item.active{background:var(--brand-soft);border-color:var(--brand-line)}.rw-chat-item-title{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;font-size:var(--fs-sm);display:block;overflow:hidden}.rw-chat-item-meta{font-size:var(--fs-xs);color:var(--text-dim);overflow-wrap:anywhere}.rw-empty-course{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--text-dim)}.rw-compose{border-top:1px solid var(--border);background:var(--bg-2);flex-direction:column;flex:none;gap:8px;min-width:0;padding:10px 12px;display:flex}.rw-compose .attachment-tray{max-height:168px;overflow-y:auto}.rw-compose .attachment-chip{flex-basis:100%}.rw-compose .att-remove{width:var(--tap-lg);height:var(--tap-lg);min-height:var(--tap-lg)}.rw-compose-error{font-size:var(--fs-xs);color:var(--danger);align-items:flex-start;gap:6px;margin:0;display:flex}.rw-composer{align-items:flex-end;gap:8px;min-width:0;display:flex}.rw-attach{width:var(--tap-lg);height:var(--tap-lg);min-width:var(--tap-lg);min-height:var(--tap-lg);border:1px solid var(--border);background:var(--bg-1);color:var(--text-dim);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.rw-attach:hover:not(:disabled){border-color:var(--brand-line);background:var(--brand-soft);color:var(--brand)}.rw-attach:disabled{opacity:.45;cursor:default}.rw-composer textarea{min-width:0;min-height:var(--tap-lg);resize:none;border-radius:var(--r-lg);flex:auto;max-height:120px;padding:11px 14px;font-size:16px;line-height:1.5}.rw-send{width:var(--tap-lg);height:var(--tap-lg);min-width:var(--tap-lg);min-height:var(--tap-lg);border:1px solid var(--brand);background:var(--brand);color:var(--brand-contrast);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.rw-send:hover:not(:disabled){background:var(--brand-strong);box-shadow:var(--shadow-brand)}.rw-send:disabled,.rw-send[data-waiting=true]{opacity:.45;cursor:default}.rw-blocked{justify-content:center;align-items:center;gap:var(--sp-2);min-height:100dvh;padding:var(--sp-4);text-align:center;color:var(--text-dim);font-size:var(--fs-sm);flex-direction:column;display:flex}.rw-blocked p{margin:0}.knowledge-card .lesson-card-eyebrow{color:var(--text-dim)}.owner-tool{min-width:0;max-width:860px}.owner-tool h2{align-items:center;gap:var(--sp-2);display:inline-flex}.owner-tool .muted{max-width:var(--measure);margin:0}.embed-card{gap:var(--sp-2);padding:var(--sp-4);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);flex-direction:column;min-width:0;display:flex}.embed-label{font-weight:700;font-size:var(--fs-sm);color:var(--text)}.embed-code{padding:var(--sp-3);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-all;-webkit-user-select:all;user-select:all;direction:ltr;unicode-bidi:isolate;margin:0;line-height:1.55}.embed-url{font-family:var(--font-mono);font-size:var(--fs-sm);overflow-wrap:anywhere;word-break:break-all;margin:0}.embed-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.embed-status{padding:var(--sp-3);border-radius:var(--r-md);background:var(--info-soft);color:var(--info);font-size:var(--fs-sm);margin:0}.kv-grid{gap:var(--sp-2) var(--sp-4);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.kv-grid dt{color:var(--text-dim);font-size:var(--fs-sm)}.kv-grid dd{overflow-wrap:anywhere;min-width:0;margin:0}.owner-tool .mono{font-family:var(--font-mono)}.origins-card{gap:var(--sp-3)}.origins-help{margin:0}.origins-count{font-weight:700;font-size:var(--fs-sm);margin:0}.origin-list{gap:var(--sp-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.origin-row{align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);flex-wrap:wrap;min-width:0;display:flex}.origin-value{font-family:var(--font-mono);font-size:var(--fs-sm);overflow-wrap:anywhere;word-break:break-all;flex:220px;min-width:0}.origin-meta{color:var(--text-dim);font-size:var(--fs-xs);flex:0 auto}.origin-remove{margin-inline-start:auto}.origin-form{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.origin-input-label{font-weight:700;font-size:var(--fs-sm)}.origin-input-row{gap:var(--sp-2);flex-wrap:wrap;min-width:0;display:flex}.origin-input-row input{min-width:0;min-height:var(--tap-lg);text-align:left;font-family:var(--font-mono);direction:ltr;flex:260px}.origin-hint{font-size:var(--fs-xs)}.origin-notice{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);overflow-wrap:anywhere;margin:0;display:flex}.origin-notice.ok{background:var(--ok-soft);color:var(--ok)}.origin-notice.error{background:var(--danger-soft);color:var(--danger)}.origin-confirm{border-color:var(--danger)}.origin-confirm-yes{background:var(--danger);border-color:var(--danger)}.origin-confirm-yes:hover{background:var(--danger);filter:brightness(.92)}@media (max-width:700px){.kv-grid{grid-template-columns:minmax(0,1fr);gap:2px}.kv-grid dd{margin-bottom:var(--sp-2)}.embed-actions .lesson-action,.owner-tool .toolbar button{min-height:var(--tap)}}.attachment-tray{gap:var(--sp-2);flex-wrap:wrap;width:100%;max-width:780px;margin:0 auto;padding:0;list-style:none;display:flex}.attachment-chip{align-items:center;gap:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-2);flex:220px;min-width:0;max-width:100%;padding:6px 6px 6px 10px;display:flex}.attachment-chip[data-status=ready]{border-color:var(--brand-line)}.attachment-chip[data-status=error]{border-color:var(--danger);background:var(--danger-soft)}.att-icon{color:var(--text-dim);flex:none;display:inline-flex}.attachment-chip[data-status=error] .att-icon{color:var(--danger)}.att-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.att-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:600;display:block;overflow:hidden}.att-meta,.att-size{font-size:var(--fs-xs);color:var(--text-dim);overflow-wrap:anywhere}.attachment-chip[data-status=error] .att-meta{color:var(--danger)}.att-progress{border-radius:var(--r-pill);background:var(--border);height:4px;display:block;overflow:hidden}.att-progress>span{background:var(--brand-line);height:100%;transition:width var(--dur-1) var(--ease);display:block}.att-remove{width:var(--tap);height:var(--tap);min-height:var(--tap);border-radius:var(--r-lg);color:var(--text-dim);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.att-remove:hover{border-color:var(--border);color:var(--danger)}.attach-btn{width:var(--tap);height:var(--tap);min-height:var(--tap);border-radius:var(--r-lg);color:var(--text-dim);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-self:flex-end;align-items:center;padding:0;display:inline-flex}.attach-btn:hover:not(:disabled){border-color:var(--brand-line);background:var(--brand-soft)}.msg-attachments{flex-wrap:wrap;gap:6px;max-width:100%;margin:8px 0 0;padding:0;list-style:none;display:flex}.msg-attachment{border-radius:var(--r-pill);border:1px solid var(--border);background:var(--bg-1);min-width:0;max-width:100%;font-size:var(--fs-xs);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.msg-attachment .att-name{font-size:var(--fs-xs);max-width:220px}.msg-error{flex-wrap:wrap}.retry-btn{min-height:var(--tap);border-radius:var(--r-lg);border:1px solid var(--brand-line);background:var(--bg-1);align-items:center;gap:6px;padding:0 14px;font-weight:600;display:inline-flex}.retry-btn:hover{background:var(--brand-soft)}@media (max-width:700px){.attach-btn,.att-remove{width:48px;height:48px;min-height:48px}.retry-btn{min-height:48px}.attachment-chip{flex-basis:100%}.msg-attachment .att-name{max-width:160px}}.lm-table-wrap{max-width:100%;overflow-x:auto}.lm-table-wrap table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.lm-table-wrap th,.lm-table-wrap td{text-align:start;border-bottom:1px solid var(--border);vertical-align:top;padding:6px 8px}.assignment-task{gap:10px;display:grid}.assignment-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assignment-title{font-size:var(--fs-xl);line-height:var(--lh-tight);margin:0}.assignment-criteria{margin:0;padding-inline-start:20px}.assignment-done{color:var(--ok);align-items:center;gap:6px;font-weight:600;display:inline-flex}.mc-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.mc-question fieldset{border:1px solid var(--border);border-radius:var(--r-md);background:var(--white);gap:8px;margin:0;padding:12px;display:grid}.mc-question legend{padding:0 4px;font-weight:600}.mc-num{color:var(--brand)}.mc-option{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:10px;min-height:44px;padding:8px 12px;display:flex}.mc-option:hover{background:var(--brand-soft)}.mc-option.selected{border-color:var(--brand);background:var(--brand-soft)}.mc-option input{accent-color:var(--brand);flex:none;width:18px;height:18px}.file-pick{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button-link.disabled{opacity:.55;pointer-events:none}.assignment-embed{max-width:860px;margin:0 auto;padding:12px}.assignment-embed-bar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.assignment-login label{gap:4px;display:grid}.icon-text{align-items:center;gap:6px;display:inline-flex}.studio-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.studio-head h2{margin:0}.studio-grid{gap:16px;display:grid}.studio-grid.with-side{grid-template-columns:minmax(0,1fr) minmax(280px,360px)}.studio-chat,.studio-trainer{align-content:start;gap:12px;display:grid}.task-type-pick{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.task-type-pick legend{margin-bottom:6px;font-weight:600}.task-type-pick .choice{border:1px solid var(--border-strong);border-radius:var(--r-pill);cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:8px 14px;display:inline-flex}.task-type-pick .choice.selected{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong)}.task-type-pick input{accent-color:var(--brand)}.studio-messages{gap:8px;max-height:420px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.studio-msg{border-radius:var(--r-md);background:var(--bg-light);border:1px solid var(--border);padding:10px 12px}.studio-msg p{white-space:pre-wrap;margin:0}.studio-msg.author{background:var(--brand-soft);border-color:var(--brand-line)}.studio-msg.system{background:var(--lavender);color:var(--text-dim)}.studio-msg-who{font-size:var(--fs-xs);color:var(--text-faint);margin-bottom:2px;display:block}.studio-compose{gap:6px;display:grid}.studio-compose textarea{width:100%}.studio-compose-label{font-weight:600}.studio-help{color:var(--text-dim);font-size:var(--fs-sm);background:0 0;border:0;margin:0;padding:0}.studio-chat>*{min-width:0}.studio-field{flex:200px;gap:4px;min-width:0;max-width:100%;display:grid}.studio-field select{text-overflow:ellipsis;width:100%;min-width:0}.file-type-pick .studio-help{flex-basis:100%}.file-help{flex-basis:100%;margin:0}.notice-text{border-radius:var(--r-md);background:var(--warn-soft);color:var(--warn);align-items:flex-start;gap:6px;margin:0;padding:8px 12px;display:flex}.notice-text svg{flex:none;margin-top:3px}.spec-checklist ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.spec-checklist li.missing{color:var(--danger)}.spec-checklist li.done{color:var(--text)}.spec-checklist h4{margin:0 0 6px}.studio-preview{max-width:920px}.preview-frame{border:1px dashed var(--brand-line);border-radius:var(--r-md);background:var(--bg-light);padding:12px}@media (max-width:760px){.studio-grid.with-side{grid-template-columns:minmax(0,1fr)}.studio-messages{max-height:320px}.assignment-embed{padding:8px}.assignment-embed-bar{flex-wrap:wrap}}.permissions-panel summary{cursor:pointer;font-weight:600}.permissions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px;display:grid}.permissions-grid h4{margin:0 0 4px}.permissions-grid ul{margin:0;padding-inline-start:18px}.role-chip{margin-inline-end:6px;font-weight:600;display:inline-block}.role-chip[data-role=admin]{color:var(--brand)}.role-change,.course-sync-now{min-height:36px;font-size:var(--fs-sm);padding:4px 10px}.course-sync-meta{font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.course-state[data-state=never_checked],.course-state[data-state=check_failed],.course-state[data-state=unmapped]{color:var(--text-dim)}.usage-period{flex-wrap:wrap;align-items:center}.usage-costs{gap:8px;display:grid}.usage-costs-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.usage-costs-head h3{margin:0}.usage-total{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.usage-total strong{font-size:var(--fs-xl);color:var(--brand-strong)}.usage-source{word-break:break-all;margin-inline-start:6px}@media (max-width:760px){.permissions-grid{grid-template-columns:minmax(0,1fr)}}
