:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;--background-color: #1a1a1a;background-color:var(--background-color);--background-secondary: #222222;--text-color: rgba(255, 255, 255, .87);--header-height: 40px;--wv-brand-text: #6dba87;--wv-brand-bg: rgba(109, 186, 135, .1);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#a0392e;text-decoration:inherit}a:hover{color:#a0392e}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#a0392e}button:focus,button:focus-visible{outline:none}@media (prefers-color-scheme: light){:root{color:#213547;--background-color: #f9f9f9;background-color:var(--background-color);--background-secondary: #f7f6f3;--text-color: #213547;--wv-brand-text: rgb(63, 94, 80);--wv-brand-bg: rgba(63, 94, 80, .08)}a:hover{color:#747bff}button{background-color:#f9f9f9}input{background-color:#f9f9f9;color:#213547}}@media (max-width: 768px){button{min-height:44px;padding:.8em 1.4em;font-size:1.1em}select{min-height:44px;padding:.8em;font-size:1.1em}input[type=radio]{min-height:20px;min-width:20px}body{min-width:100vw}}body{margin:0;overflow-x:hidden}.header-brand-suffix{display:inline}@media (max-width: 768px){.header-brand-suffix{display:none}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){canvas{image-rendering:auto}}.app-grid-container{display:grid;grid-template-areas:"banner" "header" "main";grid-template-rows:auto 40px 1fr;height:100vh;height:100dvh;width:100vw;overflow:hidden}.app-banner{grid-area:banner}.app-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background-color:var(--background-color, #1a1a1a);border-bottom:1px solid rgba(255,255,255,.1);color:inherit;font-size:14px;box-sizing:border-box;z-index:1200}.app-main{grid-area:main;overflow:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;min-height:0;font-family:Arial,sans-serif;text-align:center}.app-footer{grid-area:footer;background-color:var(--background-color);color:inherit;padding:10px 0;text-align:center;font-size:14px;border-top:1px solid rgba(128,128,128,.3);width:100%;display:none}.chat-layout-grid{display:grid;min-height:100%;height:auto;width:100%;max-width:100%;padding:0 10px;box-sizing:border-box;gap:10px;grid-template-areas:"history history" "canvas controls" "input input";grid-template-rows:minmax(200px,50vh) 300px minmax(44px,auto);grid-template-columns:1fr auto}.chat-history-area{grid-area:history;overflow-y:auto;border:1px solid #ccc;padding:8px;margin-bottom:0;text-align:left}@media (max-width: 1024px){.chat-history-area{flex:1!important;overflow-y:auto;border:1px solid #ccc;padding:8px;margin-bottom:5px;border-radius:4px;min-height:100px}}.chat-canvas-area{grid-area:canvas;display:flex;justify-content:center;align-items:flex-start;padding:0;gap:15px}.chat-canvas-controls{display:flex;flex-direction:column;gap:8px;margin-top:15px;align-items:flex-start}.chat-input-area{grid-area:input;display:flex;gap:8px;padding:4px 0;margin-top:0;align-items:center}@media (min-width: 1025px){.chat-canvas-area{flex-direction:row}}@media (max-width: 1024px){.app-header{min-height:40px;max-height:60px;position:relative;z-index:1200}.app-grid-container{grid-template-areas:"banner" "header" "main";grid-template-rows:auto auto 1fr;overflow:hidden;position:fixed;inset:0}.app-main{overflow:auto!important;justify-content:flex-start!important;align-items:center!important;min-height:0;position:relative}.chat-layout-grid{display:flex!important;flex-direction:column!important;padding:0 10px 5px;margin:0;height:100%;max-height:100%;overflow:hidden}.chat-canvas-area{flex:none!important;flex-direction:column;align-items:center;gap:10px;margin-bottom:5px}.chat-canvas-controls{display:block!important;margin:5px 0;width:100%}.mobile-segmented-control{width:100%;max-width:calc(100vw - 40px);margin:0 0 8px}.chat-input-area{flex:none!important;background:var(--background-color);border-top:1px solid #ccc;padding:10px;margin-top:0}.chat-input-area>div{display:flex!important;gap:10px;align-items:center}.chat-input-area textarea{flex:1;padding:12px!important;font-size:16px!important;border:1px solid #ccc;border-radius:6px;resize:none}.chat-input-area button{padding:12px 16px!important;font-size:14px!important;white-space:nowrap;border-radius:6px}.mobile-segmented-button{min-height:32px!important;font-size:24px!important;padding:0!important}}.mobile-segmented-control{display:flex;background-color:transparent;border-radius:8px;padding:0;gap:6px;margin:0;min-height:32px;justify-content:flex-start;align-items:center}.mobile-segmented-button{flex:none;width:36px;height:32px;background-color:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:0;font-size:24px;font-weight:600;color:#ffffff80;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #00000026}.mobile-segmented-button:not(:disabled){background-color:#ffffff40;color:#fff;border-color:#fff6}.mobile-segmented-button:not(:disabled):active{background-color:#ffffff2e;transform:scale(.95)}.mobile-segmented-button.send-button{width:auto;min-width:70px;height:32px;padding:0 10px;margin-left:auto}.mobile-segmented-button.send-button:not(:disabled){background-color:#4a7c59;color:#fff;font-weight:600;border-color:#3d6b4d;box-shadow:0 2px 4px #0003}.mobile-segmented-button.send-button:not(:disabled):active{background-color:#2d4438}.mobile-segmented-button.clear-button:not(:disabled){color:#ff6b6b;font-size:26px}.mobile-segmented-button:disabled{cursor:not-allowed;opacity:.5;background-color:#ffffff05;pointer-events:none}@media (prefers-color-scheme: light){.mobile-segmented-control{background-color:transparent!important}.mobile-segmented-button{color:#00000080!important;border-color:#00000026!important}.mobile-segmented-button:not(:disabled){background-color:#fff!important;color:#000000d9!important;box-shadow:0 1px 3px #00000026!important;border-color:#0003!important}.mobile-segmented-button:not(:disabled):active{background-color:#f0f0f0!important}.mobile-segmented-button.send-button:not(:disabled){background-color:#5a9b6e!important;color:#fff!important;border-color:#4a8b5e!important}.mobile-segmented-button.send-button:not(:disabled):active{background-color:#2d4438!important}.mobile-segmented-button.clear-button:not(:disabled){color:#d63031!important}.mobile-segmented-button:disabled{background-color:#0000000a!important;color:#0000004d!important}}@supports (padding: env(safe-area-inset-left)){.app-grid-container{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}}*{box-sizing:border-box}html,body{overflow-x:hidden;margin:0;padding:0}#root{width:100%;max-width:100vw;overflow-x:hidden}.n3-app,.n3-header,.n3-drawer,.n3-start,.n3-chat,.n3-auth{--n3-paper: #f9f8f3;--n3-surface: #fff;--n3-ink: #000;--n3-muted: #666;--n3-line: #d9d9d9;--n3-selected: #dcefcb;--n3-green: #306c50;--n3-action: #000;--n3-on-action: #fff;--n3-disabled: #e7e7e7;--n3-disabled-text: #777;--n3-error: #a0392e;--n3-error-bg: #fff1ef;--n3-font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--n3-font);color:var(--n3-ink)}@media (prefers-color-scheme: dark){.n3-app,.n3-header,.n3-drawer,.n3-start,.n3-chat,.n3-auth{--n3-paper: #191c1a;--n3-surface: #242925;--n3-ink: #f5f5ee;--n3-muted: #b9c3bb;--n3-line: #536057;--n3-selected: #2b4934;--n3-green: #b5dfa8;--n3-action: #f5f5ee;--n3-on-action: #191c1a;--n3-disabled: #303832;--n3-disabled-text: #a6b2a9;--n3-error: #ffb3a8;--n3-error-bg: #442824}}.n3-app *,.n3-header *,.n3-start *,.n3-chat *{box-sizing:border-box}.app-grid-container:has(>.n3-header){grid-template-rows:auto auto 1fr}.n3-app.app-grid-container{grid-template-rows:auto auto minmax(0,1fr);background:var(--n3-paper)}.n3-app>.app-main{background:var(--n3-paper);color:var(--n3-ink);font-family:var(--n3-font)}.n3-app :is(button,input,textarea,select):focus-visible,.n3-header :is(button,a,select):focus-visible,.n3-start :is(button,input):focus-visible{outline:3px solid var(--n3-green)!important;outline-offset:4px}.n3-action{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;max-width:100%;padding:11px 22px;border:1px solid var(--n3-action);border-radius:999px;background:var(--n3-action);color:var(--n3-on-action);font:700 16px/24px var(--n3-font);text-align:center;cursor:pointer}.n3-action.n3-outline{background:transparent;color:var(--n3-ink)}.n3-action:hover:not(:disabled){background:var(--n3-selected);color:var(--n3-ink);border-color:var(--n3-green)}.n3-action:disabled{background:var(--n3-disabled);color:var(--n3-disabled-text);border-color:var(--n3-line);cursor:not-allowed}.n3-text-action{background:transparent;border:0;color:var(--n3-ink);min-height:48px;padding:10px 0;font:600 16px/24px var(--n3-font);text-decoration:underline;text-underline-offset:4px}.n3-text-action:disabled{color:var(--n3-disabled-text);cursor:not-allowed}.n3-start.sl-page{--sl-bg: var(--n3-paper);--sl-card: var(--n3-surface);--sl-text: var(--n3-ink);--sl-text-muted: var(--n3-muted);--sl-text-dim: var(--n3-muted);--sl-border: var(--n3-line);--sl-border-mid: var(--n3-line);width:100%;background:var(--n3-paper);color:var(--n3-ink);font-family:var(--n3-font);padding:24px 16px max(40px,env(safe-area-inset-bottom));overflow-x:visible}.n3-home,.n3-setup.sl-browse{width:100%;max-width:480px;margin:0 auto;padding:16px 0 32px;text-align:left}.n3-home{display:flex;flex-direction:column;align-items:flex-start;gap:20px}.n3-home h1{font:700 clamp(28px,6vw,36px)/1.2 var(--n3-font);letter-spacing:-.035em;margin:0}.n3-home-copy{font-size:24px;line-height:1.4;margin:0 0 20px}.n3-home .n3-hero-action{min-height:64px;font-size:20px}.n3-eyebrow{font-size:14px;line-height:20px;color:var(--n3-muted);margin:0 0 16px;overflow-wrap:anywhere}.n3-step-title{margin:0 0 32px;font:700 24px/32px var(--n3-font);letter-spacing:-.025em;outline:none}.n3-setup fieldset{border:0;margin:0;padding:0;min-width:0}.n3-setup legend{font:700 16px/24px var(--n3-font);padding:0;margin-bottom:16px}.n3-choices{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.n3-choice{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;max-width:100%;padding:10px 16px;border:2px solid var(--n3-ink);border-radius:28px;cursor:pointer;text-align:left;font-size:16px;line-height:24px;font-weight:700}.n3-choice>span:first-of-type{min-width:0;overflow-wrap:anywhere}.n3-choice input{position:absolute;opacity:0;width:1px;height:1px}.n3-choice:has(input:checked){background:var(--n3-selected);border-color:var(--n3-green)}.n3-choice:has(input:focus-visible){outline:3px solid var(--n3-green);outline-offset:4px}.n3-choice:has(input:disabled){color:var(--n3-muted);border-color:var(--n3-line);cursor:not-allowed}.n3-choice small{display:block;font-size:14px;line-height:20px;font-weight:400;color:var(--n3-muted);margin-top:4px}.n3-radio{position:relative;display:block;flex:0 0 18px;width:18px;height:18px;border:1.5px solid currentColor;border-radius:50%}.n3-choice input:checked~.n3-radio:after{content:"";position:absolute;inset:4px;background:var(--n3-green);border-radius:50%}.n3-step-actions{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}.n3-trail{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:20px;color:var(--n3-muted)}.n3-trail button{border:0;padding:8px 0;background:transparent;color:inherit;font:400 14px/20px var(--n3-font);text-align:left;overflow-wrap:anywhere}.n3-notice{margin:16px 0;padding:16px;border-radius:12px;background:var(--n3-surface);font-size:16px;line-height:24px}.n3-notice p{margin-top:0}.n3-notice button{margin-top:12px}.n3-error{color:var(--n3-error);background:var(--n3-error-bg)}.n3-subjects{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.n3-subjects button{min-height:48px;border-radius:999px;background:var(--n3-surface);color:var(--n3-ink);border:1px solid var(--n3-line)}.n3-subjects button[aria-pressed=true]{background:var(--n3-selected);border-color:var(--n3-green)}.n3-start .sl-sec,.n3-start .sl-sdiv{max-width:720px;margin-inline:auto}.n3-start .sl-acard,.n3-start .sl-aempty{background:var(--n3-surface);color:var(--n3-ink)}.n3-start .sl-abtn{min-height:48px;font-size:14px}.n3-start .sl-sechdr-title{font-size:18px}.n3-header.app-header{padding:0!important;max-height:none!important;min-height:64px;display:block;background:var(--n3-paper);color:var(--n3-ink);border-bottom:1px solid var(--n3-line);z-index:1200}.n3-header-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;min-height:64px;width:100%}.n3-header-brand-group{display:flex;align-items:center;gap:12px;min-width:0}.n3-brand{padding:0;min-height:48px;border:0;display:flex;align-items:center;gap:8px;font:700 20px/24px var(--n3-font);background:transparent;color:var(--n3-ink)}.n3-brand img{width:24px;height:24px;object-fit:contain}.n3-header-tools{margin-left:auto;display:flex;align-items:center;gap:8px}.n3-header-tools button{min-height:48px}.n3-header-tools .n3-action{font-size:14px;padding:8px 14px}.n3-icon-action{flex:0 0 48px;width:48px;height:48px;padding:0;border:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:24px;background:var(--n3-selected);color:var(--n3-ink)}.n3-menu-glyph{width:18px;height:10px;border-top:2px solid currentColor;border-bottom:2px solid currentColor}.n3-nav-backdrop{position:fixed;inset:0;background:#0006;z-index:1201}.n3-drawer{position:fixed;inset:0 auto 0 0;z-index:1202;width:min(339px,calc(100vw - 32px));overflow-y:auto;overscroll-behavior:contain;padding:max(16px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));background:var(--n3-surface);border-radius:0 24px 24px 0;display:flex;flex-direction:column;gap:20px;text-align:left}.n3-drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.n3-identity{overflow-wrap:anywhere;font-weight:700;min-width:0}.n3-nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px 8px;border:0;border-radius:12px;text-align:left;font:600 16px/24px var(--n3-font);background:transparent;color:var(--n3-ink)}.n3-icon{flex:none}.n3-nav-item:hover,.n3-nav-item[aria-current=page]{background:var(--n3-selected);border-color:transparent}.n3-nav-group{border-top:1px solid var(--n3-line);margin-top:12px;padding-top:12px}.n3-nav-group p{margin:0;padding:8px;font-size:12px;color:var(--n3-muted)}.n3-drawer-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:stretch;gap:8px}.n3-drawer-bottom>.n3-action{width:100%}.n3-chat.chat-layout-grid{display:flex!important;flex-direction:column!important;width:min(100%,800px);min-height:0;height:100%;max-height:100%;padding:16px 16px max(12px,env(safe-area-inset-bottom));gap:12px;background:var(--n3-paper);color:var(--n3-ink)}.n3-chat [hidden]{display:none!important}.n3-chat .chat-history-area{flex:1 1 auto!important;min-height:100px;border:0;padding:8px 0;margin:0;font:400 16px/24px var(--n3-font);overflow-y:auto;overscroll-behavior:contain}.n3-chat .chat-history-area>div{margin-bottom:24px!important}.n3-speaker-marker{display:none}.n3-usage-tip{color:var(--n3-muted);margin-top:16px;font-size:14px;line-height:22px}.n3-message-user{margin-left:auto;padding:12px 16px;background:var(--n3-surface);border-radius:16px;max-width:90%;width:fit-content}.n3-chat .chat-history-area img{max-width:100%!important}.n3-chat .chat-history-area button{min-height:48px;border-radius:999px;font-family:var(--n3-font)}.n3-chat .n3-composer{flex:none;width:100%;min-width:0;padding:8px;border:1px solid var(--n3-line);border-radius:16px;background:var(--n3-surface)}.n3-chat .n3-composer-canvas{display:block;width:100%;height:auto;aspect-ratio:7 / 3;border:1px solid var(--n3-line);border-radius:10px;background:#fff;touch-action:none;user-select:none;-webkit-user-select:none}.n3-chat .n3-composer-text{display:block;width:100%;min-width:0;height:calc(2.8em + 16px);min-height:calc(2.8em + 16px);max-height:max(calc(2.8em + 16px),min(calc(8.4em + 16px),30dvh));margin:0;padding:8px;border:0;background:transparent;color:var(--n3-ink);font:400 16px/1.4 var(--n3-font);resize:none;overflow-y:auto}.n3-chat .n3-composer-text:focus-visible{outline:none!important}.n3-composer:has(.n3-composer-text:focus-visible){outline:2px solid var(--n3-green);outline-offset:2px}.n3-chat .n3-composer-text::placeholder{color:var(--n3-muted)}.n3-composer-toolbar{display:grid;grid-template-columns:72px minmax(0,1fr) 72px;gap:4px;align-items:center;padding-top:8px}.n3-composer-leading,.n3-composer-middle{display:flex;align-items:center;gap:4px;min-width:0}.n3-composer-middle{justify-content:center}.n3-chat .n3-composer-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;min-width:34px;min-height:34px;max-width:34px;max-height:34px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--n3-ink);cursor:pointer}.n3-composer-button .n3-icon{width:20px;height:20px;flex:none}.n3-chat .n3-composer-tool{background:var(--n3-paper)}.n3-chat .n3-composer-send{justify-self:end;background:var(--n3-action);color:var(--n3-on-action)}.n3-chat .n3-composer-button:disabled{opacity:.35;cursor:default}.n3-chat .n3-composer-button:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--n3-line)}.n3-assignment-actions{display:flex;gap:8px;flex:none;justify-content:flex-end}@media (min-width: 768px){.n3-start.sl-page{padding-top:48px}.n3-home,.n3-setup.sl-browse{min-height:400px}.n3-chat.chat-layout-grid{padding-top:32px}}@media (min-width: 1024px){.n3-app.n3-sidebar{grid-template-areas:"banner banner" "header main";grid-template-columns:280px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.n3-header-persistent.app-header{min-height:0;height:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;border:0;border-right:1px solid var(--n3-line);background:var(--n3-surface)}.n3-header-persistent .n3-header-bar{padding:20px 24px;gap:0}.n3-header-persistent .n3-header-brand-group{gap:8px}.n3-drawer-persistent{position:static;width:100%;min-height:0;flex:1;border-radius:0;padding:0 20px 24px}}@media (max-width: 600px){.n3-header-bar{flex-wrap:wrap;gap:8px;padding-inline:12px}.n3-header-brand-group{gap:8px}.n3-header-tools{align-self:center}}@media (max-width: 359px){.n3-header-bar{gap:8px;padding-inline:12px;flex-wrap:wrap}.n3-brand{font-size:18px}.n3-step-actions{gap:12px}.n3-action{padding-inline:16px}}@media (prefers-reduced-motion: reduce){.n3-app *,.n3-start *,.n3-header *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}#n3-lesson-progress-slot{min-width:48px;min-height:48px}.n3-lesson-progress{text-align:left;position:relative;width:48px;height:48px}.n3-lesson-progress summary{list-style:none;display:block;padding:0;cursor:pointer;border:0;border-radius:50%}.n3-lesson-progress summary::-webkit-details-marker{display:none}.n3-lesson-progress summary:focus-visible{outline:3px solid var(--n3-green);outline-offset:3px}.n3-progress-ring{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--n3-green) var(--progress),transparent 0);padding:2px}.n3-progress-ring>span{width:100%;height:100%;display:grid;place-items:center;border-radius:50%;background:var(--n3-selected);color:var(--n3-ink);font:650 12px/1 var(--n3-font);font-variant-numeric:tabular-nums}.n3-progress-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.n3-progress-count{margin:0 0 14px;font-size:13px;color:var(--n3-muted)}@media (min-width: 1024px){.n3-header-persistent #n3-lesson-progress-slot{position:fixed;top:16px;right:24px}.n3-chat.chat-layout-grid{padding-top:80px}}.n3-progress-panel{position:absolute;top:calc(100% + 8px);right:0;width:min(400px,calc(100vw - 32px));max-height:min(480px,55dvh);overflow-y:auto;overscroll-behavior:contain;padding:20px;background:var(--n3-surface);border:1px solid var(--n3-line);border-radius:20px;box-shadow:0 12px 36px #0002}.n3-progress-panel h2{margin:0 0 14px;font-size:18px}.n3-progress-panel ol{list-style:none;margin:16px 0 0;padding:0}.n3-progress-panel li{display:flex;align-items:flex-start;gap:12px;padding:12px 8px;border-bottom:1px solid var(--n3-line);font-size:14px;line-height:1.4}.n3-progress-panel li:last-child{border:0}.n3-progress-panel li>span:last-child{min-width:0;overflow-wrap:anywhere}.n3-progress-panel li strong{font-weight:500}.n3-progress-panel small{display:block;margin-top:4px;color:var(--n3-muted)}.n3-stage-number{width:28px;height:28px;flex:none;border:1px solid var(--n3-line);border-radius:50%;display:grid;place-items:center}.n3-stage-current{background:var(--n3-selected);border-radius:12px}.n3-stage-completed .n3-stage-number{color:var(--n3-green);background:var(--n3-selected)}.n3-progress-panel .n3-progress-stage-select{min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--n3-green);font:inherit;font-weight:500;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.n3-progress-panel .n3-progress-stage-select:focus-visible{outline:2px solid var(--n3-green);outline-offset:2px}.n3-progress-bar{height:5px;background:var(--n3-line);overflow:hidden;border-radius:5px}.n3-progress-bar span{display:block;height:100%;background:var(--n3-green)}.n3-tutor-hint{--tutor-ink: #76520d;--tutor-tint: #fff3ce;--tutor-line: #dcc16f}.n3-tutor-example{--tutor-ink: #245a83;--tutor-tint: #eaf3fc;--tutor-line: #a7c8e5}.n3-tutor-theory{--tutor-ink: #694787;--tutor-tint: #f3ecfa;--tutor-line: #c8b1df}.n3-tutor-harder{--tutor-ink: #306c50;--tutor-tint: #e8f2df;--tutor-line: #a8c68f}.n3-tutor-actions,.n3-answer-options{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}.n3-chat .n3-tutor-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border:1px solid var(--tutor-line, var(--n3-line));background:var(--tutor-tint, var(--n3-surface));color:var(--tutor-ink, var(--n3-ink));font-size:14px;line-height:20px;text-align:left;white-space:normal}.n3-tutor-action .n3-icon{flex:none}.n3-tutor-action:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--tutor-ink, var(--n3-ink))}.n3-tutor-action:disabled,.n3-answer-option:disabled{opacity:.5;cursor:default}.n3-chat .n3-tutor-response{padding:16px;border:1px solid var(--tutor-line);border-radius:16px;background:var(--tutor-tint);color:var(--n3-ink)}.n3-tutor-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;margin-bottom:12px;border-radius:8px;background:var(--tutor-tint);color:var(--tutor-ink);font-size:12px;line-height:18px;font-weight:650}.n3-chat .n3-answer-option{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:12px 16px;border:1px solid var(--n3-line);border-radius:12px!important;background:var(--n3-surface);color:var(--n3-ink);text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:16px}.n3-answer-option-marker{width:16px;height:16px;border:1.5px solid currentColor;border-radius:50%;flex:none}.n3-answer-option:hover:not(:disabled){border-color:var(--n3-green);background:var(--n3-selected)}.n3-stage-picks{list-style:none;margin:0 0 1em;padding:0}.n3-stage-picks li{margin:2px 0}.n3-chat .chat-history-area .n3-stage-pick{min-height:0;padding:0;border:0;border-radius:0;background:none;color:var(--n3-green);font:inherit;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.n3-chat .chat-history-area .n3-stage-pick:disabled{opacity:.5;cursor:default}@media (prefers-color-scheme: dark){.n3-tutor-hint{--tutor-ink: #f1d17f;--tutor-tint: #3b331f;--tutor-line: #8a7540}.n3-tutor-example{--tutor-ink: #a9d4f6;--tutor-tint: #233441;--tutor-line: #4f7c9f}.n3-tutor-theory{--tutor-ink: #d9bced;--tutor-tint: #352b40;--tutor-line: #83649c}.n3-tutor-harder{--tutor-ink: #c5e1ad;--tutor-tint: #293a2b;--tutor-line: #6b8d59}}.n3-tutor-visualize{--tutor-ink: #23696b;--tutor-tint: #e6f3f1;--tutor-line: #a1c9c6}.n3-problem-visualization{display:block;width:fit-content;max-width:100%;margin:20px 0;overflow:hidden;border:1px solid #a1c9c6;border-radius:16px;background:#e6f3f1}.n3-visualization-heading{display:flex;align-items:center;gap:8px;padding:10px 16px;color:#23696b;font:650 12px/18px var(--n3-font)}.n3-visualization-heading:before{content:"";width:12px;height:12px;border:1.5px solid currentColor;border-radius:3px;flex:none}.n3-visualization-canvas{display:flex;justify-content:center;padding:16px;background:#fff}.n3-chat .n3-visualization-canvas img{max-width:100%!important;height:auto!important;object-fit:contain}@media (prefers-color-scheme: dark){.n3-tutor-visualize{--tutor-ink: #a3d6d2;--tutor-tint: #253a39;--tutor-line: #5d8e89}.n3-problem-visualization{border-color:#5d8e89;background:#253a39}.n3-visualization-heading{color:#a3d6d2}}.n3-chat .math-content{padding:0;text-indent:0}.n3-chat .n3-message :is(p,.math-content){text-indent:0}.n3-problem-statement{display:block;margin:12px 0;padding:14px 16px;border:1px solid #a8bd92;border-radius:14px;background:#edf3e3;color:var(--n3-ink);text-indent:0}@media (prefers-color-scheme: dark){.n3-problem-statement{background:#2b3827;border-color:#6d885d}}@media (min-width: 1024px){.n3-chat .n3-composer-canvas{width:min(100%,525px);margin-inline:auto}}.n3-chat-heading{display:none}.n3-chat-heading h1{min-width:0;margin:0;font:600 18px/26px var(--n3-font);text-align:left;overflow-wrap:anywhere}.n3-chat-level{color:var(--n3-muted);white-space:nowrap;font-weight:400}.n3-chat-back{background:transparent}.n3-chat-back:hover{background:var(--n3-selected)}@media (min-width: 768px){.n3-app>.app-main{position:relative}.n3-chat.chat-layout-grid{padding-top:80px;overflow:visible}.n3-chat-heading{position:absolute;top:16px;left:24px;right:24px;display:flex;align-items:center;gap:12px;min-height:48px}.n3-chat-heading h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (min-width: 1024px){.n3-chat-heading{right:96px}}@media (min-width: 768px) and (max-height: 500px){.n3-chat.chat-layout-grid{padding-top:12px}.n3-chat-heading{position:static;min-height:0}.n3-chat .chat-history-area{min-height:48px}}.language-selector{position:relative;display:grid;width:max-content;min-width:0;flex:none;max-width:100%;color:var(--n3-ink, #000);--language-selector-radius: 10px}.language-selector-sizer{display:grid;grid-area:1 / 1;visibility:hidden;pointer-events:none;padding:8px 12px 8px 30px;font:600 13px/20px var(--n3-font, system-ui);white-space:nowrap}.language-selector-sizer>span{grid-area:1 / 1}.language-selector.is-open{z-index:1300}.language-selector .language-selector-trigger,.language-selector .language-selector-option{display:flex;align-items:center;width:100%;min-height:40px;margin:0;border:0;color:var(--n3-ink, #000);background:var(--n3-surface, #fff);font:600 13px/20px var(--n3-font, system-ui);text-align:left;cursor:pointer}.language-selector .language-selector-trigger{grid-area:1 / 1;min-height:36px;gap:6px;padding:8px 12px 8px 8px;border-radius:var(--language-selector-radius);white-space:nowrap}.language-selector-trigger .n3-icon{width:16px;height:16px}.language-selector.is-open .language-selector-trigger{border-radius:var(--language-selector-radius) var(--language-selector-radius) 0 0}.language-selector-menu{position:absolute;top:100%;right:0;width:100%;max-width:calc(100vw - 24px);max-height:min(400px,50dvh);overflow-y:auto;overscroll-behavior:contain;padding:4px 0 12px;border-radius:0 0 var(--language-selector-radius) var(--language-selector-radius);background:var(--n3-surface, #fff)}.language-selector .language-selector-option{min-height:40px;padding:10px 12px 10px 30px;border-radius:0;white-space:nowrap}.language-selector .language-selector-option:hover,.language-selector .language-selector-option:focus-visible{background:var(--n3-selected, #dcefcb)}.language-selector button:focus-visible{outline:2px solid var(--n3-green, #306c50);outline-offset:-3px}.language-selector .language-selector-trigger:disabled{opacity:.5;cursor:not-allowed}.language-selector.opens-up.is-open .language-selector-trigger{border-radius:0 0 var(--language-selector-radius) var(--language-selector-radius)}.language-selector.opens-up .language-selector-menu{top:auto;bottom:100%;padding:12px 0 4px;border-radius:var(--language-selector-radius) var(--language-selector-radius) 0 0}.n3-recent{border-top:1px solid var(--n3-line);padding-top:12px}.n3-recent h2{margin:0;padding:8px;color:var(--n3-muted);font:400 12px/18px var(--n3-font)}.n3-recent-list{list-style:none;margin:0;padding:0}.n3-recent-item{min-height:36px;padding:8px;color:var(--n3-muted);font:400 14px/20px var(--n3-font);border-radius:8px}.n3-recent-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.n3-recent-item:hover,.n3-recent-item[aria-current=page]{color:var(--n3-ink)}.n3-recent-item:disabled{cursor:wait;opacity:.6}.n3-recent-error{margin:8px;font:400 12px/18px var(--n3-font);color:var(--n3-error)}.report-viewer-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1300}.report-viewer-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;width:95%;height:90%;max-width:1200px;max-height:800px;display:flex;flex-direction:column;overflow:hidden;animation:modalFadeIn .2s ease-out}.report-viewer-modal.is-compact{width:90%;height:80%;max-width:900px;max-height:720px}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.report-viewer-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.report-viewer-title{margin:0;font-size:1.1rem;font-weight:500;color:#374151}.report-viewer-actions{display:flex;gap:8px;align-items:center}.report-action-btn{padding:6px 12px;border:1px solid #d1d5db;border-radius:4px;font-size:.85rem;font-weight:400;cursor:pointer;transition:all .15s ease;background:#fff;color:#374151}.report-action-btn:hover{background:#f3f4f6;border-color:#9ca3af}.close-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#6b7280;font-size:1rem;min-width:32px;padding:6px 8px}.close-btn:hover{background:#e5e7eb;color:#374151}.report-viewer-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.report-iframe{flex:1;width:100%;border:none;background:#fff}.report-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6b7280;font-size:.9rem}.loading-spinner{width:32px;height:32px;border:3px solid #f3f4f6;border-top:3px solid #9ca3af;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:12px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.report-viewer-modal{width:98%;height:95%;margin:0 1%}.report-viewer-header{padding:12px 16px;flex-direction:column;gap:8px;text-align:center}.report-viewer-title{font-size:1rem}.report-viewer-actions{gap:6px}.report-action-btn{padding:8px 12px;font-size:.8rem}}.report-action-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.app-grid-container:has(>.n3-auth){grid-template-rows:minmax(0,1fr)}.n3-auth{grid-area:1 / 1 / -1 / -1;width:100%;height:100%;min-height:0;overflow-y:auto;background:var(--n3-paper);padding:48px 24px max(48px,env(safe-area-inset-bottom));text-align:left}.n3-auth *,.n3-auth{box-sizing:border-box}.n3-auth :is(button,input,textarea,select,a):focus-visible{outline:3px solid var(--n3-green);outline-offset:4px}.auth-container{position:relative;display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr);max-width:1000px;margin:0 auto;border:1px solid var(--n3-line);border-radius:24px;background:var(--n3-surface);overflow:hidden}.auth-left-panel{padding:40px 32px;background:var(--n3-selected)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:48px;font-size:24px;font-weight:700;letter-spacing:-.035em}.auth-brand img{width:48px;height:48px;object-fit:contain}.auth-features-heading{margin:0 0 24px;color:var(--n3-muted);font:600 12px/20px var(--n3-font);letter-spacing:.06em}.auth-features{display:flex;flex-direction:column;gap:24px;list-style:none;margin:0;padding:0}.auth-features li{display:flex;gap:12px;font-size:16px;line-height:24px}.feature-checkmark{flex:none;color:var(--n3-green);font-weight:700}.auth-right-panel{min-width:0;padding:64px 40px 40px}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-heading h1{margin:0;font:700 clamp(28px,4vw,36px)/1.2 var(--n3-font);letter-spacing:-.035em}.auth-heading p{margin:16px 0 4px;color:var(--n3-muted);font-size:16px;line-height:24px}.auth-field{display:flex;flex-direction:column;gap:8px;min-width:0}.auth-field>label{font:600 14px/20px var(--n3-font)}.auth-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.auth-field :is(input,select,textarea){width:100%;min-width:0;min-height:48px;padding:12px 16px;border:1px solid var(--n3-line);border-radius:16px;background:var(--n3-surface);color:var(--n3-ink);font:400 16px/24px var(--n3-font)}.auth-field :is(input,textarea)::placeholder{color:var(--n3-muted);opacity:1}.auth-field :is(input,select):disabled{background:var(--n3-disabled);color:var(--n3-disabled-text)}.auth-field textarea{resize:vertical;min-height:112px}.auth-password{position:relative}.auth-password input{padding-right:52px}.auth-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:12px;background:transparent;color:var(--n3-muted)}.auth-password-toggle:hover{background:var(--n3-selected);color:var(--n3-ink)}.auth-hint{margin:-8px 0 0;color:var(--n3-muted);font-size:12px;line-height:20px}.auth-checkbox,.auth-consent{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:24px}.auth-checkbox{cursor:pointer}.auth-consent{padding:16px;border:1px solid var(--n3-line);border-radius:16px;background:var(--n3-paper)}.n3-auth input[type=checkbox]{flex:none;width:20px;height:20px;margin:2px 0;accent-color:var(--n3-green)}.n3-auth a{color:var(--n3-green);text-decoration:underline;text-underline-offset:3px}.auth-actions,.auth-navigation{display:flex;flex-direction:column;gap:12px}.auth-navigation{gap:0;border-top:1px solid var(--n3-line);padding-top:12px}.auth-navigation .n3-text-action{font-size:14px}.auth-google svg{flex:none}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--n3-muted);font-size:13px}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--n3-line)}.auth-notice{padding:16px;border-radius:16px;font-size:14px;line-height:20px;overflow-wrap:anywhere}.auth-error{color:var(--n3-error);background:var(--n3-error-bg)}.auth-success{color:var(--n3-green);background:var(--n3-selected)}.auth-close-button{position:absolute;top:12px;right:12px;z-index:1;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--n3-line);border-radius:50%;background:var(--n3-surface);color:var(--n3-ink);font-size:28px;line-height:1}.auth-close-button:hover{background:var(--n3-selected);border-color:var(--n3-green)}@media (max-width: 760px){.n3-auth{padding:24px 16px max(24px,env(safe-area-inset-bottom))}.auth-container{grid-template-columns:minmax(0,1fr)}.auth-left-panel{padding:24px}.auth-brand{margin:0;padding-right:40px}.auth-features-heading,.auth-features{display:none}.auth-right-panel{padding:32px 24px}}@media (max-width: 480px){.n3-auth{padding:12px 12px max(24px,env(safe-area-inset-bottom))}.auth-left-panel{padding:20px}.auth-right-panel{padding:28px 20px}.auth-field-row{grid-template-columns:minmax(0,1fr);gap:20px}}:root{--sl-bg: #0b0f0b;--sl-surface: #1a221a;--sl-surface-hi: #212b20;--sl-border: rgba(255,255,255,.14);--sl-border-mid: rgba(255,255,255,.22);--sl-text: #edf2ee;--sl-text-muted: rgba(237,242,238,.68);--sl-text-dim: rgba(237,242,238,.28);--sl-primary: #3ecf8e;--sl-primary-cta: #1a7d55;--sl-primary-hi: #1f9463;--sl-primary-bg: rgba(62,207,142,.12);--sl-primary-br: rgba(62,207,142,.32);--sl-primary-text: #ffffff;--sl-gold: #f0c060;--sl-gold-bg: rgba(240,192,96,.14);--sl-chip-empty-bg: rgba(255,255,255,.09);--sl-chip-empty-br: rgba(255,255,255,.18);--sl-chip-empty-c: rgba(237,242,238,.38);--sl-sbtn-off-bg: rgba(255,255,255,.06);--sl-sbtn-off-br: rgba(255,255,255,.1);--sl-sbtn-off-c: rgba(237,242,238,.28);--sl-wm-color: #3ecf8e;--sl-wm-opacity: .07;--sl-abar-bg: rgba(11,15,11,.96);--sl-resume-bl: rgba(62,207,142,.35);--sl-dot-color: rgba(240,192,96,.55);--sl-card-shadow: none;--sl-focus-ring: 0 0 0 3px rgba(62,207,142,.25);--sl-feature-bg: rgba(255,255,255,.04);--sl-feature-br: rgba(255,255,255,.07)}@media (prefers-color-scheme: light){:root{--sl-bg: #f2f5f3;--sl-surface: #ffffff;--sl-surface-hi: #f0faf4;--sl-border: #d0dbd4;--sl-border-mid: #b4c9bc;--sl-text: #0c1b10;--sl-text-muted: #3f5e4e;--sl-text-dim: #6b8a77;--sl-primary: #166534;--sl-primary-cta: #166534;--sl-primary-hi: #14532d;--sl-primary-bg: #dcfce7;--sl-primary-br: #86efac;--sl-primary-text: #ffffff;--sl-gold: #7c5010;--sl-gold-bg: #fef3c7;--sl-chip-empty-bg: #e8f0eb;--sl-chip-empty-br: #b4c9bc;--sl-chip-empty-c: #3f5e4e;--sl-sbtn-off-bg: #e8f0eb;--sl-sbtn-off-br: #b4c9bc;--sl-sbtn-off-c: #6b8a77;--sl-wm-color: #166534;--sl-wm-opacity: .09;--sl-abar-bg: rgba(255,255,255,.97);--sl-resume-bl: #86efac;--sl-dot-color: #6b8a77;--sl-card-shadow: 0 1px 2px rgba(12,27,16,.07), 0 0 0 1px rgba(12,27,16,.05);--sl-focus-ring: 0 0 0 3px rgba(22,101,52,.18);--sl-feature-bg: #dcfce7;--sl-feature-br: #86efac}}.sl-page{padding-bottom:64px;width:100%;max-width:100%;overflow-x:hidden;background:var(--sl-bg);color:var(--sl-text);font-family:system-ui,Avenir,Helvetica,Arial,sans-serif}.sl-hero{text-align:center;padding:clamp(22px,5vw,36px) 20px clamp(18px,4vw,28px);position:relative;overflow:hidden}.sl-wm{position:absolute;inset:0;pointer-events:none;overflow:hidden}.sl-wm span{position:absolute;font-family:Georgia,Times New Roman,serif;color:var(--sl-wm-color);opacity:var(--sl-wm-opacity);line-height:1;-webkit-user-select:none;user-select:none}.sl-hi{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.sl-hi img{width:clamp(46px,8vw,70px);height:clamp(46px,8vw,70px);object-fit:contain;margin-bottom:10px}.sl-hi h1{font-size:clamp(1rem,2.5vw,1.35rem);font-weight:600;color:var(--sl-text);letter-spacing:-.2px;line-height:1.3;margin:0 0 6px}.sl-hi p{font-size:.83rem;color:var(--sl-text-muted);line-height:1.65;max-width:270px;margin:0}.sl-lmore{background:none;border:none;border-bottom:1px solid transparent;padding:0 0 1px;cursor:pointer;font:inherit;font-size:.82rem;color:var(--sl-gold);text-decoration:none;opacity:.85;margin-top:8px;transition:opacity .15s,border-color .15s}.sl-lmore:after{content:" →"}.sl-lmore:hover{opacity:1;border-bottom-color:var(--sl-gold)}.sl-trail-inline{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.sl-sbtn-inline{display:block;width:100%;margin-top:14px;height:48px}.sl-chip{display:flex;align-items:center;gap:6px;padding:7px 11px;border-radius:9px;font-size:.78rem;white-space:normal;min-width:0;max-width:100%;overflow:hidden;background:var(--sl-chip-empty-bg);border:1px solid var(--sl-chip-empty-br);color:var(--sl-chip-empty-c);min-height:36px;transition:all .2s;font:inherit;cursor:default}.sl-chip.has{background:var(--sl-primary-bg);border-color:var(--sl-primary-br);color:var(--sl-text)}.sl-chip.clickable{cursor:pointer}.sl-chip.clickable:hover{border-color:var(--sl-primary)}.sl-chip-x{opacity:.55;font-size:.65rem;margin-left:1px}.sl-chip-badge{font-size:.59rem;font-weight:600;padding:2px 7px;border-radius:20px;flex-shrink:0;background:var(--sl-gold-bg);color:var(--sl-gold)}.sl-chip-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-drow{display:flex;gap:4px;flex-shrink:0}.sl-db{padding:0 8px;height:40px;min-width:0;background:var(--sl-chip-empty-bg);border:1px solid var(--sl-border-mid);border-radius:8px;font:inherit;font-size:.71rem;color:var(--sl-text-muted);cursor:pointer;transition:background-color .15s,border-color .15s;white-space:nowrap}.sl-db.on{background:var(--sl-primary-bg);border-color:var(--sl-primary);color:var(--sl-primary);font-weight:600}.sl-db:disabled{opacity:.3;cursor:not-allowed}.sl-sbtn{padding:0 18px;height:40px;border-radius:9px;font:inherit;font-size:.84rem;font-weight:600;flex-shrink:0;white-space:nowrap;transition:all .15s;background:var(--sl-sbtn-off-bg);border:1px solid var(--sl-sbtn-off-br);color:var(--sl-sbtn-off-c);cursor:not-allowed}.sl-sbtn.on{background:var(--sl-primary-cta);border-color:var(--sl-primary-cta);color:var(--sl-primary-text);cursor:pointer}.sl-sbtn.on:hover{background:var(--sl-primary-hi);border-color:var(--sl-primary-hi)}.sl-sbtn.on:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.sl-browse{padding:14px 16px 0}@media (min-width: 760px){.sl-browse{max-width:640px;margin:0 auto}}.sl-frow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.sl-frow.has-sub{margin-bottom:0}.sl-step-title{font-size:.92rem;font-weight:600;margin:0 0 12px;color:var(--sl-text)}.sl-back-link{background:none;border:none;color:var(--sl-text-muted);font:inherit;font-size:.76rem;cursor:pointer;padding:0;margin-bottom:10px;display:inline-flex;align-items:center;gap:4px}.sl-back-link:hover{color:var(--sl-text)}.sl-back-link:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.sl-subfrow{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;margin-bottom:12px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;animation:sl-subfrow-in .18s ease}.sl-subfrow::-webkit-scrollbar{display:none}@keyframes sl-subfrow-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.sl-subfb{padding:0 11px;height:30px;display:flex;align-items:center;background:var(--sl-chip-empty-bg);border:1px solid var(--sl-border-mid);border-radius:14px;font:inherit;font-size:.71rem;color:var(--sl-text-muted);cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.sl-subfb.ag{background:var(--sl-primary-bg);border-color:var(--sl-primary-br);color:var(--sl-text);font-weight:500}.sl-subfb:hover{background:var(--sl-surface-hi);border-color:var(--sl-primary-br);color:var(--sl-text)}.sl-subfb:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.sl-fb{padding:0 14px;height:36px;display:flex;align-items:center;gap:5px;background:var(--sl-chip-empty-bg);border:1px solid var(--sl-border-mid);border-radius:20px;font:inherit;font-size:.76rem;color:var(--sl-text-muted);cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.sl-fb.ag{background:var(--sl-primary-bg);border-color:var(--sl-primary-br);color:var(--sl-text);font-weight:500}.sl-fb:hover{background:var(--sl-surface-hi);border-color:var(--sl-primary-br);color:var(--sl-text)}.sl-fb:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.sl-fb.open{border-style:dashed;opacity:.55;font-size:.72rem}.sl-fb.open.ag{opacity:1;border-style:solid}.sl-nvo-banner{display:flex;gap:8px;align-items:center;padding:5px 10px;margin-bottom:10px;background:var(--sl-primary-bg);border:1px solid var(--sl-primary-br);border-radius:8px;font-size:.72rem;color:var(--sl-text-muted);line-height:1.45;opacity:.75}.sl-nvo-banner-icon{font-size:.95rem;flex-shrink:0}.sl-bsearch{width:100%;padding:10px 13px;margin-bottom:12px;background:var(--sl-surface);border:1px solid var(--sl-border-mid);border-radius:9px;font:inherit;font-size:.84rem;color:var(--sl-text);outline:none;transition:border-color .15s,box-shadow .15s;min-height:44px;box-shadow:var(--sl-card-shadow)}.sl-bsearch::placeholder{color:var(--sl-text-dim)}.sl-bsearch:focus{border-color:var(--sl-primary-br);box-shadow:var(--sl-focus-ring)}.sl-sg-hdr{display:flex;align-items:center;gap:8px;margin-top:18px;margin-bottom:6px}.sl-sg-title{font-size:.59rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--sl-text-muted);white-space:nowrap}.sl-sg-line{flex:1;height:1px;background:var(--sl-border)}.sl-glbl{font-size:.59rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sl-text-dim);margin-bottom:7px;margin-top:16px}.sl-glbl:first-of-type{margin-top:0}.sl-tgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px}@media (max-width: 340px){.sl-tgrid{grid-template-columns:1fr}}@media (min-width: 600px){.sl-tgrid{grid-template-columns:1fr 1fr 1fr}}.sl-tc{padding:11px 12px;background:var(--sl-surface);border:1px solid var(--sl-border);border-radius:10px;font:inherit;font-size:.78rem;color:var(--sl-text-muted);cursor:pointer;text-align:left;line-height:1.4;transition:all .15s;position:relative;min-height:44px;box-shadow:var(--sl-card-shadow)}.sl-tc:hover{background:var(--sl-surface-hi);border-color:var(--sl-primary-br);color:var(--sl-text)}.sl-tc.sel{background:var(--sl-primary-bg);border-color:var(--sl-primary);color:var(--sl-text);font-weight:500}.sl-tc .sl-tc-lv{position:absolute;bottom:6px;right:8px;font-size:.57rem;color:var(--sl-text-dim);letter-spacing:.04em}.sl-tc.sel .sl-tc-lv{color:var(--sl-text-muted)}.sl-tc .sl-tc-ck{position:absolute;top:7px;right:8px;font-size:.72rem;color:var(--sl-primary)}.sl-tc:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.sl-tc:disabled{opacity:.35;cursor:not-allowed}.sl-lvlc{display:flex;flex-direction:column;gap:3px}.sl-lvlc-name{font-weight:600;color:var(--sl-text);font-size:.84rem}.sl-lvlc-desc{font-size:.72rem;color:var(--sl-text-muted);font-weight:400}.sl-lvlc.sel .sl-lvlc-desc{color:var(--sl-text-muted)}.sl-openconfirm{padding:18px 4px;color:var(--sl-text-muted);font-size:.85rem;line-height:1.6}.sl-no-results{padding:32px 0;text-align:center;font-size:.82rem;color:var(--sl-text-dim)}.sl-sdiv{margin:20px 16px 0;border:none;border-top:1px solid var(--sl-border)}.sl-sec{padding:16px 16px 0}.sl-sechdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.sl-sechdr-title{font-size:.59rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sl-text-dim)}.sl-rc{display:flex;align-items:center;gap:11px;padding:11px 14px;background:var(--sl-surface);border:1px solid var(--sl-border);border-left:3px solid var(--sl-resume-bl);border-radius:10px;cursor:pointer;transition:all .15s;width:100%;text-align:left;font:inherit;color:inherit;min-height:52px;box-shadow:var(--sl-card-shadow)}.sl-rc:hover{background:var(--sl-surface-hi);border-color:var(--sl-primary-br);border-left-color:var(--sl-primary)}.sl-rc:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.sl-rc-icon{font-size:1.05rem;flex-shrink:0}.sl-rc-body{flex:1;min-width:0}.sl-rc-topic{font-size:.82rem;color:var(--sl-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.sl-rc-meta{font-size:.69rem;color:var(--sl-text-muted);margin-top:2px;display:block}.sl-rc-arr{color:var(--sl-text-dim);font-size:.85rem;flex-shrink:0}.sl-rc:hover .sl-rc-arr{color:var(--sl-text-muted)}.sl-aload{padding:20px 0;text-align:center;font-size:.78rem;color:var(--sl-text-dim)}.sl-aload:after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sl-dot-color);margin-left:6px;animation:sl-blink 1.1s infinite}@keyframes sl-blink{0%,to{opacity:1}50%{opacity:.18}}.sl-aempty{padding:24px 0;text-align:center}.sl-aempty-msg{font-size:.82rem;color:var(--sl-text-muted)}.sl-aempty-sub{font-size:.75rem;color:var(--sl-text-dim);margin-top:6px;line-height:1.55}.sl-aempty-link{color:var(--sl-primary);background:none;border:none;cursor:pointer;font:inherit;font-size:inherit;padding:0}.sl-aempty-link:hover{text-decoration:underline}.sl-acards{display:flex;flex-direction:column;gap:8px}.sl-acard{background:var(--sl-surface);border:1px solid var(--sl-border);border-radius:12px;overflow:hidden;transition:border-color .15s;box-shadow:var(--sl-card-shadow)}.sl-acard:hover{border-color:var(--sl-border-mid)}.sl-acard-top{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 10px}.sl-acard-ico{font-size:1.1rem;flex-shrink:0;margin-top:1px}.sl-acard-info{flex:1;min-width:0}.sl-acard-title{font-size:.85rem;font-weight:600;color:var(--sl-text);line-height:1.3;margin-bottom:4px}.sl-acard-teacher{font-size:.72rem;color:var(--sl-text-muted)}.sl-acard-badge{padding:3px 9px;border-radius:20px;font-size:.65rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;flex-shrink:0;align-self:flex-start}.sl-badge-assigned{background:#ffffff14;color:#edf2ee8c}.sl-badge-in_progress{background:#3ecf8e26;color:#3ecf8e}.sl-badge-submitted{background:#f0c06029;color:#f0c060}.sl-badge-graded{background:#3ecf8e38;color:#60e8a8}.sl-badge-generating{background:#ff645026;color:#ff8070}@media (prefers-color-scheme: light){.sl-badge-assigned{background:#e5e8e7;color:#4a5e56}.sl-badge-in_progress{background:#dcfce7;color:#166534}.sl-badge-submitted{background:#fef3c7;color:#7c5010}.sl-badge-graded{background:#d1fae5;color:#065f46}.sl-badge-generating{background:#fee2e2;color:#991b1b}}.sl-acard-dates{display:flex;gap:16px;padding:0 14px 8px;flex-wrap:wrap}.sl-acard-date{font-size:.69rem;color:var(--sl-text-dim)}.sl-acard-date span{color:var(--sl-text-muted);font-weight:500}.sl-acard-grade{padding:0 14px 10px;font-size:.72rem;color:var(--sl-text-muted);cursor:pointer}.sl-acard-grade strong{color:var(--sl-gold);font-weight:600;font-size:.82rem}.sl-acard-actions{display:flex;gap:6px;padding:8px 14px;border-top:1px solid var(--sl-border);background:var(--sl-feature-bg);flex-wrap:wrap}.sl-abtn{padding:6px 14px;border-radius:6px;font:inherit;font-size:.75rem;font-weight:600;border:none;cursor:pointer;transition:opacity .15s;min-height:36px}.sl-abtn:hover{opacity:.8}.sl-abtn:disabled{opacity:.5;cursor:wait}.sl-abtn-view{background:#6080f02e;color:#a0b8f8}.sl-abtn-start{background:var(--sl-primary-bg);color:var(--sl-primary)}.sl-abtn-report{background:var(--sl-gold-bg);color:var(--sl-gold)}@media (prefers-color-scheme: light){.sl-abtn-view{background:#dbeafe;color:#1e40af}.sl-abtn-start{background:var(--sl-primary-bg);color:var(--sl-primary)}.sl-abtn-report{background:var(--sl-gold-bg);color:var(--sl-gold)}}@media (min-width: 768px){.sl-tc{font-size:.87rem}.sl-db{font-size:.8rem}.sl-fb{font-size:.85rem}.sl-subfb{font-size:.8rem}.sl-chip{font-size:.9rem}.sl-sbtn,.sl-bsearch{font-size:.94rem}.sl-rc-title{font-size:.92rem}.sl-acard-title{font-size:.95rem}.sl-abtn{font-size:.84rem}}.n3-start>.n3-overview-section{max-width:720px;margin-inline:auto;text-align:left}.n3-start>.n3-overview-section h2{font-size:18px;margin:0 0 20px}.n3-start .n3-overview-row h3{margin:0;font-size:16px}.n3-start .n3-lessons-heading{align-items:center}.n3-start .n3-lessons-heading h2{margin:0}.n3-lessons-heading .n3-text-action{margin-left:auto;font-size:14px;text-align:right}.n3-overview{width:100%;max-width:856px;padding:40px 24px max(48px,env(safe-area-inset-bottom));text-align:left;color:var(--n3-ink);font-family:var(--n3-font)}.n3-overview-heading{margin-bottom:40px}.n3-overview h1{margin:0;font:700 clamp(28px,5vw,36px)/1.2 var(--n3-font);letter-spacing:-.035em}.n3-overview-intro{margin:16px 0 0;font-size:20px;line-height:1.4}.n3-overview-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--n3-line)}.n3-overview-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;margin-bottom:16px}.n3-overview h2{margin:0;font:700 18px/24px var(--n3-font)}.n3-overview h3{margin:0;font:600 16px/24px var(--n3-font)}.n3-overview dl,.n3-overview dd{margin:0}.n3-overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.n3-overview-metrics>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:8px;padding:20px 16px;background:var(--n3-surface);border:1px solid var(--n3-line);border-radius:16px}.n3-overview-metrics dt{font-size:14px;line-height:20px;color:var(--n3-muted)}.n3-overview-metrics dd{font:700 clamp(24px,3vw,32px)/1.2 var(--n3-font);letter-spacing:-.03em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.n3-overview-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 32px;padding:24px 0}.n3-overview-breakdown>div,.n3-overview-period dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-size:14px;line-height:24px}.n3-overview-breakdown dt,.n3-overview-period dt{color:var(--n3-muted)}.n3-overview-breakdown dd,.n3-overview-period dd{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.n3-overview-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.n3-overview-period{padding:20px;background:var(--n3-selected);border-radius:16px}.n3-overview-period h3{margin-bottom:12px}.n3-overview-empty{padding:20px;margin:0;background:var(--n3-surface);color:var(--n3-muted);border:1px solid var(--n3-line);border-radius:16px;font-size:16px;line-height:24px}.n3-overview-list{display:flex;flex-direction:column;gap:12px;padding:0;margin:0;list-style:none}.n3-overview-row{display:flex;align-items:flex-start;gap:12px;padding:20px;border:1px solid var(--n3-line);border-radius:16px;background:var(--n3-surface)}.n3-overview-row>.n3-icon{margin-top:2px}.n3-overview-row-copy{flex:1;min-width:0;overflow-wrap:anywhere}.n3-overview-row-copy p{margin:4px 0 0;color:var(--n3-muted);font-size:14px;line-height:20px}.n3-overview-row .n3-action{font-size:14px;padding:8px 16px;flex:none}.n3-overview-status{max-width:100%;padding:4px 10px;border-radius:999px;background:var(--n3-selected);color:var(--n3-ink);font:600 12px/20px var(--n3-font);overflow-wrap:anywhere}@media (max-width: 700px){.n3-overview{padding:32px 16px 48px}.n3-overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.n3-overview-row{flex-wrap:wrap;padding:16px}.n3-overview-row-copy{flex-basis:calc(100% - 32px)}.n3-overview-row .n3-action,.n3-overview-status{margin-left:32px}}@media (max-width: 400px){.n3-overview-breakdown,.n3-overview-periods{grid-template-columns:minmax(0,1fr)}}.math-content{padding:.5em;font-family:sans-serif;background-color:transparent;word-wrap:break-word;text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%}@media (prefers-color-scheme: dark){.math-content{color:#fff}}@media (prefers-color-scheme: light){.math-content{color:#000}}.math-content .table-container{overflow-x:auto;max-width:100%;margin:10px 0;-webkit-overflow-scrolling:touch}.math-content table{border-collapse:collapse;margin:0;width:auto;font-size:14px}.math-content table th,.math-content table td{border:1px solid #ddd;padding:8px 12px;text-align:center;white-space:nowrap}.math-content table th{background-color:#f5f5f5;font-weight:600}.math-content table tr:nth-child(2n){background-color:#fafafa}.math-content table tr:hover{background-color:#f0f0f0}@media screen and (max-width: 768px){.math-content .table-container{font-size:14px;text-size-adjust:100%;-webkit-text-size-adjust:100%}.math-content table{font-size:13px}.math-content table th,.math-content table td{padding:6px 8px}}.n3-assignment-list{display:flex;flex-direction:column;gap:12px}.n3-assignment-card{min-width:0;padding:20px;border:1px solid var(--n3-line);border-radius:16px;background:var(--n3-surface);color:var(--n3-ink);font-family:var(--n3-font);text-align:left}.n3-assignment-header{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px}.n3-assignment-icon{display:inline-flex;flex:none;margin-top:2px;color:var(--n3-muted)}.n3-assignment-info{flex:1;min-width:0;overflow-wrap:anywhere}.n3-assignment-title{margin:0;font:600 16px/24px var(--n3-font)}.n3-assignment-teacher{margin-top:4px;color:var(--n3-muted);font-size:14px;line-height:20px}.n3-assignment-status{max-width:100%;padding:4px 10px;border-radius:999px;background:var(--n3-paper);color:var(--n3-muted);font:600 12px/20px var(--n3-font);overflow-wrap:anywhere}.n3-assignment-status-in_progress,.n3-assignment-status-submitted,.n3-assignment-status-graded{background:var(--n3-selected);color:var(--n3-ink)}.n3-assignment-dates{display:flex;flex-wrap:wrap;gap:8px 24px;margin:16px 0 0 32px;color:var(--n3-muted);font-size:14px;line-height:20px}.n3-assignment-date{overflow-wrap:anywhere}.n3-assignment-date>span{color:var(--n3-ink)}.n3-assignment-card .n3-assignment-grade{display:block;margin:12px 0 0 32px;font-size:14px;text-align:left}.n3-assignment-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0 0 32px}.n3-assignment-actions .n3-action{font-size:14px;padding:10px 20px}.n3-assignment-start{order:-1}.n3-assignment-actions:empty{display:none}@media (max-width: 600px){.n3-assignment-card{padding:16px}.n3-assignment-info{flex-basis:calc(100% - 32px)}.n3-assignment-status{margin-left:32px}.n3-assignment-dates,.n3-assignment-actions,.n3-assignment-card .n3-assignment-grade{margin-left:0}}.n3-classes{--sl-bg: var(--n3-paper);--sl-surface: var(--n3-surface);--sl-text: var(--n3-ink);--sl-text-muted: var(--n3-muted);--sl-text-dim: var(--n3-muted);--sl-border: var(--n3-line);--sl-border-mid: var(--n3-line);width:min(100%,900px);margin:0 auto;padding:40px 24px 64px;color:var(--sl-text)}.n3-classes-heading,.n3-class-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.n3-classes h1{margin:0 0 12px}.n3-classes-heading{margin-bottom:28px}.n3-classes p{color:var(--sl-text-muted)}.n3-class-panel{border:1px solid var(--sl-border);border-radius:12px;padding:24px;margin:20px 0;background:var(--sl-surface)}.n3-class-panel h2{margin:0 0 12px;font-size:1.2rem}.n3-class-heading p{margin:6px 0}.n3-class-leave{flex-shrink:0}.n3-class-assignment-heading{display:flex;gap:12px;align-items:center;padding-top:20px;border-top:1px solid var(--sl-border);font-size:.95rem}.n3-class-assignment-heading span{border-radius:20px;padding:2px 8px;background:var(--n3-selected);color:var(--n3-ink);font-size:.8rem}.n3-class-connect{display:flex;flex-direction:column;gap:10px}.n3-class-connect>div{display:flex;gap:12px;flex-wrap:wrap}.n3-class-connect input{min-width:0;width:160px;padding:12px;border:1px solid var(--sl-border-mid);border-radius:6px;background:var(--sl-bg);color:var(--sl-text);font:inherit;letter-spacing:.15em}.n3-class-connect small{color:var(--sl-text-muted)}@media (max-width: 600px){.n3-classes{padding:28px 16px 40px}.n3-classes-heading,.n3-class-heading{flex-direction:column;gap:12px}.n3-class-panel{padding:18px}}.n3-classes{text-align:left;font-family:var(--n3-font)}.n3-classes h1{font:700 clamp(28px,5vw,36px)/1.2 var(--n3-font);letter-spacing:-.035em}.assignments-page{min-height:100%;padding:20px;box-sizing:border-box;background:var(--sl-bg);color:var(--sl-text);font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;width:100%;max-width:100vw;min-width:0;overflow-x:hidden}.assignments-shell,.assignments-content{width:100%;max-width:860px;margin:0 auto}.assignments-back{margin-bottom:10px}.assignments-text-button{padding:7px 11px;border:1px solid var(--sl-border-mid);border-radius:6px;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600}.assignments-text-button:hover{background:var(--sl-feature-bg)}.assignments-title{margin:0 0 8px;color:var(--sl-primary);font-size:1.25rem}.assignments-description{max-width:860px;margin:0 0 20px;color:var(--sl-text-muted);font-size:.88rem;line-height:1.55}.teacher-assignments-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.teacher-assignments-heading h2{margin:0;color:var(--sl-primary);font-size:1.25rem}.teacher-assignments-heading p{max-width:720px;margin:8px 0 0;color:var(--sl-text-muted);font-size:.88rem;line-height:1.55}.assignments-page-action{margin-bottom:20px}.assignments-primary-button{min-height:36px;padding:7px 12px;border:none;border-radius:6px;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600}.assignments-primary-button{background:var(--sl-primary-cta);color:var(--sl-primary-text)}.assignments-primary-button:hover{opacity:.8}.assignments-primary-button:disabled{cursor:wait;opacity:.55}.assignments-message{padding:24px 0;text-align:center;color:var(--sl-text-dim)}.assignments-error{margin-bottom:20px;padding:12px;border-radius:6px;background:#ff645026;color:#ff9c8f}.assignments-auto-refresh-status{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--sl-text-muted);font-size:.82rem}.assignments-auto-refresh-spinner{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:assignments-refresh-spin .8s linear infinite}.assignments-auto-refresh-status.is-paused{color:var(--sl-text-dim)}.assignments-count{margin-bottom:10px;color:var(--sl-text-muted);font-size:.82rem}.assignments-skeleton{padding:16px}.assignments-skeleton-line{height:12px;margin-bottom:10px;border-radius:6px;background:linear-gradient(90deg,var(--sl-border) 25%,var(--sl-surface) 50%,var(--sl-border) 75%);background-size:200% 100%;animation:assignments-shimmer 1.4s infinite}.assignments-skeleton-line.is-title{width:45%;height:16px}.assignments-skeleton-line.is-short{width:30%}@keyframes assignments-shimmer{to{background-position:-200% 0}}@keyframes assignments-refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.assignments-skeleton-line,.assignments-auto-refresh-spinner{animation:none}}.teacher-assignment-card{overflow:hidden;border:1px solid var(--sl-border);border-radius:8px;background:var(--sl-surface);box-shadow:var(--sl-card-shadow)}.teacher-assignment-card.is-selected{border-color:var(--sl-primary-br);box-shadow:0 0 0 2px var(--sl-primary-bg)}.teacher-assignment-card-main{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left}.teacher-assignment-card-main:hover .teacher-assignment-card-arrow{color:var(--sl-primary)}.teacher-assignment-card-main:focus-visible{outline:none;box-shadow:var(--sl-focus-ring)}.teacher-assignment-summary{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 8px}.teacher-assignment-copy{min-width:0;flex:1}.teacher-assignment-title{color:var(--sl-text);font-size:.88rem;font-weight:600;line-height:1.3}.teacher-assignment-card-arrow{flex-shrink:0;margin-top:2px;color:var(--sl-text-dim)}.teacher-assignment-description{display:-webkit-box;overflow:hidden;margin:4px 0;color:var(--sl-text-muted);font-size:.75rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.teacher-assignment-meta,.teacher-student-assignment-meta{margin-top:4px;color:var(--sl-text-muted);font-size:.72rem;line-height:1.4}.teacher-assignment-previews{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px}.teacher-assignment-preview{display:flex;align-items:baseline;gap:8px;min-width:0;color:var(--sl-text-muted);font-size:.72rem;line-height:1.4}.teacher-assignment-preview strong{flex-shrink:0;color:var(--sl-text-dim);font-size:.64rem;text-transform:uppercase}.teacher-assignment-preview-items{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.teacher-assignment-actions,.teacher-student-assignment-actions{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 10px}.teacher-action-button{min-height:32px;padding:5px 10px;border:1px solid var(--sl-border-mid);border-radius:6px;background:transparent;color:var(--sl-text-muted);cursor:pointer;font:inherit;font-size:.74rem;font-weight:600}.teacher-action-button:hover{background:var(--sl-feature-bg)}.teacher-action-button:disabled{cursor:wait;opacity:.5}.teacher-action-assign{border-color:var(--sl-primary-br);background:var(--sl-primary-bg);color:var(--sl-primary)}.teacher-action-view{background:#6080f02e;color:#a0b8f8}.teacher-action-review{background:var(--sl-gold-bg);color:var(--sl-gold)}.teacher-delete-button{min-height:36px;padding:6px 8px;border:0;background:transparent;color:#ff8070;cursor:pointer;font:inherit;font-size:.75rem;font-weight:600}.teacher-delete-button:hover{background:#ff645026}.teacher-assignment-inline-detail{padding:12px 14px;border-top:1px solid var(--sl-border);background:var(--sl-surface-hi)}.teacher-assignment-inline-detail .student-assignments-header{margin-bottom:12px}.teacher-student-assignment-list{border-top:1px solid var(--sl-border)}.teacher-student-assignment-row{padding:10px 0;border-bottom:1px solid var(--sl-border)}.teacher-student-assignment-row:last-child{border-bottom:0}.teacher-student-assignment-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.teacher-student-assignment-name{color:var(--sl-text);font-size:.82rem;font-weight:600;line-height:1.3}.teacher-student-assignment-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px 16px;margin:8px 0 0}.teacher-student-assignment-details div{min-width:0}.teacher-student-assignment-details dt{margin:0 0 2px;color:var(--sl-text-dim);font-size:.64rem;font-weight:700;text-transform:uppercase}.teacher-student-assignment-details dd{margin:0;overflow-wrap:anywhere;color:var(--sl-text-muted);font-size:.72rem;line-height:1.35}.teacher-student-assignment-details .teacher-student-assignment-grade dd{color:var(--sl-gold);font-size:.82rem;font-weight:700}.teacher-student-assignment-feedback{display:-webkit-box;overflow:hidden;margin:8px 0 0;color:var(--sl-text-muted);font-size:.72rem;font-style:italic;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.teacher-student-assignment-actions{padding:8px 0 0}.student-assignments-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.student-assignments-header h3{margin:0;font-size:1rem;line-height:1.35}.student-assignments-header>div{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.assignment-report-controls{align-items:center}.assignment-report-generated-at{color:var(--sl-text-muted);font-size:.72rem}@media (prefers-color-scheme: light){.assignments-error,.teacher-delete-button{background:#fee2e2;color:#991b1b}.teacher-action-view{background:#dbeafe;color:#1e40af}}@media (max-width: 460px){.assignments-page{padding:16px}.teacher-assignment-actions>.teacher-action-button,.teacher-student-assignment-actions>.teacher-action-button{flex:1 1 auto}.student-assignments-header{flex-direction:column}.student-assignments-header>div{justify-content:flex-start}}@media (max-width: 520px){.teacher-assignments-header{flex-direction:column}.teacher-assignment-preview{width:100%}}@media (max-width: 620px){.teacher-student-assignment-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
