:root{color-scheme:light;--bg: #f4efe3;--surface: #fffdf7;--surface-muted: #ebe5d6;--text: #1c2e37;--muted: #4d5f68;--line: #ddd5c2;--line-strong: #8b8069;--edge: #d3cab4;--primary: #3f6577;--primary-hover: #2b4756;--on-primary: #fffdf7;--primary-soft: #e3ecee;--accent: #3f6577;--hl: #f6d94a;--hl-soft: #fbeea0;--on-hl: #1c2e37;--success: #2f6b3d;--success-soft: #e7efdd;--warning: #8a5a0b;--warning-soft: #f8ecc8;--danger: #b3261e;--danger-soft: #f8e3dc;--stage: #17242b;--ring: rgba(63, 101, 119, .5);--shadow-sm: none;--shadow-md: 0 12px 28px -12px rgba(28, 46, 55, .28), 0 2px 4px rgba(28, 46, 55, .06);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--dur-fast: .12s;--dur-base: .2s;--ease: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--font-display: "Bricolage Grotesque", "Instrument Sans", ui-sans-serif, system-ui, sans-serif;font-family:Instrument Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}:root[data-theme=dark]{color-scheme:dark;--bg: #121d24;--surface: #1b2a33;--surface-muted: #24363f;--text: #efeadc;--muted: #a9b6bb;--line: #2e424c;--line-strong: #5f7a85;--edge: #2e424c;--primary: #86c9e0;--primary-hover: #aedaea;--on-primary: #10202a;--primary-soft: #223943;--accent: #86c9e0;--hl: #e9cb3a;--hl-soft: #4a4318;--on-hl: #1c2e37;--success: #8fcf9a;--success-soft: #1d3523;--warning: #f1c262;--warning-soft: #3a2f16;--danger: #ff9b8f;--danger-soft: #3c2320;--stage: #0b1317;--ring: rgba(134, 201, 224, .6);--shadow-md: 0 12px 28px -10px rgba(0, 0, 0, .55), 0 2px 4px rgba(0, 0, 0, .3)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;scroll-padding-top:88px}h1,h2,h3{margin:0;line-height:1.2;letter-spacing:0}h1{font-size:1.75rem;font-weight:700}h2{font-size:1.125rem;font-weight:700}p{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button,input[type=radio],input[type=checkbox]{touch-action:manipulation}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.icon{flex:none}.muted{color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary:disabled{border-color:var(--line);background:var(--surface-muted);color:var(--muted);opacity:1}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);border-color:var(--line-strong)}.btn-secondary:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary)}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-muted);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger-ghost{background:transparent;color:var(--danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.btn-icon{width:44px;padding:0}.btn-small{min-height:36px;padding:0 var(--space-3);font-size:.875rem}.btn[aria-pressed=true]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.app-header{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-5);min-height:68px;padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-size:1.125rem;font-weight:700}.brand-mark{display:block;flex:0 0 36px;width:36px;height:36px}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.primary-nav{display:flex;gap:var(--space-1);margin-left:auto}.primary-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--muted);font-weight:600}.primary-nav a:hover{color:var(--text);background:var(--surface-muted)}.primary-nav a[aria-current=page]{color:var(--primary);background:var(--primary-soft)}.status-strip{display:flex;flex-wrap:wrap;gap:var(--space-2)}.session-status-row{padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--line);background:var(--surface-muted)}.session-status-row .status-strip{max-width:1440px;margin-inline:auto}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:100;padding:var(--space-2) var(--space-3);transform:translateY(-160%);border-radius:var(--radius-sm);background:var(--text);color:var(--surface);font-weight:700}.skip-link:focus{transform:translateY(0)}.pill{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.8125rem;font-weight:600;white-space:nowrap}.pill strong{color:var(--text);font-weight:700}.pill .status-name{font-weight:500}.pill:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--line-strong)}.pill[data-tone=good]:before{background:var(--success)}.pill[data-tone=busy]:before{background:var(--warning)}.pill[data-tone=bad]:before{background:var(--danger)}.pill[data-tone=live]:before{background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 25%,transparent)}.pill.no-dot:before{display:none}main{max-width:1360px;margin:0 auto;padding:clamp(var(--space-4),3vw,var(--space-6))}.page-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.page-heading>div{min-width:0}.page-heading p{margin-top:var(--space-1)}.page-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.metric-strip,.library-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-5)}.metric-strip{max-width:720px;gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--line)}.metric{display:grid;gap:2px;min-height:72px;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.metric strong{font-size:1.35rem;line-height:1}.metric span{color:var(--muted);font-size:.875rem;font-weight:600}.metric-strip .metric{min-height:68px;padding:var(--space-3) var(--space-4);border:0;border-radius:0;box-shadow:none}.metric-strip .metric strong{font-size:1.25rem;font-variant-numeric:tabular-nums}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--space-4)}.class-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.class-card:hover{border-color:color-mix(in srgb,var(--class-color, var(--primary)) 42%,var(--line-strong));box-shadow:var(--shadow-md);transform:translateY(-2px)}.class-card:before{content:"";height:4px;background:var(--class-color, var(--primary))}.class-card-main{display:flex;flex:1;flex-direction:column;color:inherit;text-decoration:none}.class-card-main:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.class-cover{display:flex;align-items:flex-end;height:84px;padding-inline:var(--space-5);border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;background:linear-gradient(to right,transparent 95px,var(--margin-rule) 95px 96px,transparent 96px),repeating-linear-gradient(to bottom,transparent 0 17px,color-mix(in srgb,var(--class-color, var(--primary)) 16%,transparent) 17px 18px),color-mix(in srgb,var(--class-color, var(--primary)) 14%,var(--surface))}.class-body{display:grid;align-content:start;gap:var(--space-1);padding:calc(28px + var(--space-3)) var(--space-5) var(--space-5)}.class-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid color-mix(in srgb,var(--class-color, var(--primary)) 24%,var(--line));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--class-color, var(--primary)) 10%,var(--surface));color:color-mix(in srgb,var(--class-color, var(--primary)) 78%,var(--text));font-size:1.125rem;font-weight:700}.class-name{font-size:1.0625rem;font-weight:700}.class-focus{min-width:0;color:var(--muted);font-size:.875rem;overflow-wrap:anywhere}.class-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);color:var(--muted);font-size:.875rem}.class-next{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;min-height:32px;padding:0 var(--space-2);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--text);font-size:.8125rem;font-weight:600}.class-menu{position:absolute;top:var(--space-2);right:var(--space-2);z-index:2}.class-menu-trigger{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:var(--radius-sm);background:transparent;color:color-mix(in srgb,var(--class-color, var(--primary)) 70%,var(--text));cursor:pointer;transition:background-color var(--dur-fast) var(--ease)}.class-menu-trigger:hover,.class-menu-trigger[aria-expanded=true]{background:color-mix(in srgb,var(--surface) 75%,transparent)}.class-menu-trigger:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.class-menu-list{position:absolute;top:calc(100% + 4px);right:0;display:grid;min-width:180px;padding:var(--space-1);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.class-menu-list[hidden]{display:none}.class-menu-list button{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;font-weight:600;text-align:left;cursor:pointer}.class-menu-list button:hover,.class-menu-list button:focus-visible{background:var(--surface-muted)}.class-menu-list [data-delete]{color:var(--danger)}.class-editor-head{display:flex;align-items:center;gap:var(--space-3)}.class-glyphs{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:var(--space-1)}.class-glyph{position:relative;display:grid;place-items:center;height:44px;cursor:pointer}.class-glyph input{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;cursor:pointer}.class-glyph-art{display:grid;place-items:center;width:38px;height:38px;border-radius:34%;color:var(--muted);font-family:var(--font-display);font-size:1.0625rem;font-weight:800;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.class-glyph:hover .class-glyph-art{background:var(--surface-muted);color:var(--text)}.class-glyph input:checked+.class-glyph-art{background:var(--class-color, var(--primary));color:#fffdf7}.class-glyph input:focus-visible+.class-glyph-art{outline:3px solid var(--ring);outline-offset:2px}.new-class-card{display:grid;place-content:center;justify-items:center;gap:var(--space-2);min-height:176px;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);background:transparent;color:var(--muted);font-weight:600;cursor:pointer;transition:border-color var(--dur-base) var(--ease),color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.new-class-card:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.class-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.class-title{display:flex;align-items:center;gap:var(--space-3)}.class-title .class-icon{width:40px;height:40px;font-size:1.0625rem}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-3);color:var(--muted);font-size:.875rem;font-weight:600}.back-link:hover{color:var(--primary)}.tabs{display:inline-flex;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-md);background:var(--surface-muted)}.tabs a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-sm);color:var(--muted);font-weight:600;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.tabs a:hover{color:var(--text)}.tabs a[aria-current=page]{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.section-stack{display:grid;gap:var(--space-5)}.admin-request-list{display:grid;gap:var(--space-3)}.admin-request{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-width:0;padding:var(--space-4)}.admin-request-details{min-width:0;overflow-wrap:anywhere}.admin-request-details h2{margin-bottom:var(--space-1)}.admin-request-details p+p{margin-top:var(--space-1)}.admin-request-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}@media(max-width:620px){.admin-request{align-items:stretch;flex-direction:column}.admin-request-actions{justify-content:flex-start}}.overview-card{display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-4)}.overview-card strong{display:block;min-width:0;overflow-wrap:anywhere}.syllabus-panel{display:grid;gap:var(--space-4);padding:var(--space-5)}.syllabus-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5)}.syllabus-columns h3{margin-bottom:var(--space-2);font-size:.875rem;text-transform:uppercase;color:var(--muted)}.compact-list{display:grid;gap:var(--space-2)}.compact-list li{display:grid;gap:2px;min-width:0;padding:var(--space-2) 0;border-top:1px solid var(--line)}.compact-list span{color:var(--muted);font-size:.875rem}.upload-zone{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-5);border:2px dashed var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);text-align:center;cursor:pointer;transition:border-color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease)}.upload-zone:hover,.upload-zone.is-dragging{border-color:var(--primary);background:var(--primary-soft)}.upload-zone-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--primary-soft);color:var(--primary)}.upload-zone strong{font-size:1.0625rem}.upload-zone .browse{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.upload-zone small{color:var(--muted);font-size:.8125rem}.privacy-note{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:calc(var(--space-4) * -1);color:var(--muted);font-size:.875rem}.toolbar-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.chip-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:.875rem;font-weight:600;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.chip:hover{border-color:var(--line-strong);color:var(--text)}.chip[aria-pressed=true]{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.chip .count{color:inherit;opacity:.75;font-variant-numeric:tabular-nums}.data-list{display:grid}.data-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.data-list li:last-child{border-bottom:0}.kind-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--primary)}.kind-icon[data-kind=Lecture]{color:var(--accent)}.kind-icon[data-kind=Syllabus]{color:var(--success)}.row-main{display:grid;min-width:0}.file-name{width:fit-content;max-width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.file-name:hover{color:var(--primary);text-decoration:underline}.row-actions{display:flex;align-items:center;gap:var(--space-1)}.row-meta{color:var(--muted);font-size:.8125rem}.row-summary{color:var(--text);font-size:.875rem;overflow-wrap:anywhere}.source-chips{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-1)}.source-chips span{max-width:100%;min-height:24px;padding:2px var(--space-2);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.75rem;font-weight:600;overflow-wrap:anywhere}.progress{display:block;overflow:hidden;width:min(260px,100%);height:8px;margin-top:var(--space-2);border-radius:999px;background:var(--surface-muted)}.progress span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-5);color:var(--muted);text-align:center}.empty-state .empty-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:var(--space-2);border-radius:50%;background:var(--surface-muted);color:var(--primary)}.empty-state strong{color:var(--text);font-size:1.0625rem}.generate-fields{display:grid;gap:var(--space-4)}.study-source-picker{min-width:0;margin:0;padding:0;border:0}.study-source-picker legend{font-size:.875rem;font-weight:600}.source-picker-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block:var(--space-2)}.study-source-list{display:grid;max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.study-source-option{display:flex;align-items:flex-start;gap:var(--space-3);min-height:52px;padding:var(--space-3);cursor:pointer}.study-source-option+.study-source-option{border-top:1px solid var(--line)}.study-source-option:has(input:checked){background:var(--primary-soft)}.study-source-option input{flex-shrink:0;width:18px;height:18px;margin-top:3px}.study-source-info{display:grid;min-width:0;gap:var(--space-1);overflow-wrap:anywhere;font-size:.875rem}.study-source-picker:disabled .study-source-option{cursor:wait;opacity:.65}.study-grid{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:var(--space-5)}.generate-panel{display:grid;gap:var(--space-4);padding:var(--space-5)}.generate-context{display:flex;flex-wrap:wrap;gap:var(--space-2)}.generate-context span{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--space-3);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.8125rem;font-weight:600}.type-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:0;padding:0;border:0}.type-options legend{margin-bottom:var(--space-2);font-size:.875rem;font-weight:600}.type-option{position:relative}.type-option input{position:absolute;opacity:0}.type-option span{display:grid;justify-items:start;gap:var(--space-2);min-height:88px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.type-option span .icon{color:var(--primary)}.type-option span:hover{border-color:var(--line-strong)}.type-option input:checked+span{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.type-option input:focus-visible+span{outline:3px solid var(--ring);outline-offset:2px}.field{display:grid;gap:6px;font-size:.875rem;font-weight:600}.field input,.field textarea,.field select{min-height:44px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);font-weight:400}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.field-hint{color:var(--muted);font-size:.8125rem;font-weight:400}.material-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:var(--space-3)}.material-card{display:grid;gap:var(--space-3);min-width:0;padding:var(--space-4);align-content:start}.material-card header{display:flex;align-items:center;gap:var(--space-3);min-width:0}.material-card footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0}.material-card .row-main,.material-card .row-meta,.material-card .preview-list,.material-card .preview-list li{min-width:0;overflow-wrap:anywhere}.material-card-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-2);min-width:0;max-width:100%}.material-badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.sample-badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.75rem;font-weight:700}.material-open{min-height:38px;padding-inline:var(--space-3)}.ai-label{color:var(--muted);font-size:.75rem;font-weight:600;letter-spacing:0;text-transform:uppercase}.score-line{display:inline-flex;align-items:center;gap:6px;color:var(--success);font-size:.875rem;font-weight:700}.preview-list{display:grid;gap:var(--space-2);color:var(--muted);font-size:.875rem}.preview-list li{padding-left:var(--space-3);border-left:2px solid var(--line)}.assessment-view{display:grid;gap:var(--space-4);width:min(100%,920px);margin-inline:auto}.assessment-back{width:fit-content;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.assessment-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.assessment-header>div:first-child{display:grid;gap:var(--space-2)}.assessment-header h2{font-size:1.5rem}.eyebrow{color:var(--primary);font-size:.75rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.assessment-score,.assessment-timer{display:grid;justify-items:center;gap:2px;min-width:116px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary);text-align:center}.assessment-score strong,.assessment-timer strong{font-size:1.5rem;line-height:1.2;font-variant-numeric:tabular-nums}.assessment-score span,.assessment-timer span{font-size:.75rem;font-weight:600}.assessment-form{display:grid;gap:var(--space-3)}.quiz-mode-options{display:grid;gap:var(--space-2);margin:0;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.quiz-mode-options legend{padding-inline:var(--space-2);font-weight:700}.quiz-mode-options .practice-option{align-items:center}.quiz-start-error{color:var(--danger)}.reasoning-question-list{display:grid;gap:var(--space-4)}.reasoning-question{display:grid;gap:var(--space-3);min-width:0;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.reasoning-answer-area[aria-disabled=true]{opacity:.72}.reasoning-section{display:grid;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line)}.reasoning-section h3{font-size:1rem}.reasoning-section textarea{width:100%;min-height:96px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;resize:vertical}.reasoning-section textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.reasoning-history{display:grid;gap:var(--space-2);margin:0;padding-left:1.5rem}.reasoning-history li{overflow-wrap:anywhere}.reasoning-history li>span{display:block;margin-bottom:2px;color:var(--muted);font-size:.75rem;font-weight:700}.reasoning-status{margin:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text)}.reasoning-actions,.reasoning-final-answer,.reasoning-voice-status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.reasoning-final-answer{padding-top:var(--space-2)}.reasoning-voice-status{justify-content:space-between;min-height:2rem;color:var(--muted)}.practice-question{display:block;min-width:0;margin:0;padding:0;border:0;background:transparent}.practice-question legend{display:block;max-width:100%;margin:0 0 var(--space-3);padding:0;font-weight:700}.practice-question-heading{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:start;gap:var(--space-3);line-height:1.5}.practice-prompt{min-width:0;overflow-wrap:anywhere}.question-number{display:grid;flex:none;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-size:.875rem}.practice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);padding-left:42px}.practice-option{display:flex;align-items:flex-start;gap:var(--space-2);min-height:44px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.practice-option:hover{border-color:var(--line-strong);background:var(--surface-muted)}.practice-option input{flex:none;margin-top:4px;accent-color:var(--primary)}.practice-short-answer{display:grid;gap:var(--space-2)}.practice-text-input{width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.practice-text-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--ring)}.assessment-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2)}.question-review-list{display:grid;gap:var(--space-3)}.question-review{display:grid;gap:var(--space-2);padding:var(--space-4) var(--space-5);border:1px solid color-mix(in srgb,var(--danger) 28%,var(--line));border-radius:var(--radius-md);background:color-mix(in srgb,var(--danger-soft) 40%,var(--surface))}.question-review[data-result=correct]{border-color:color-mix(in srgb,var(--success) 28%,var(--line));background:color-mix(in srgb,var(--success-soft) 40%,var(--surface))}.review-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.review-prompt{font-weight:700}.review-answer,.review-explanation{color:var(--muted);font-size:.9375rem}.review-answer strong{color:var(--text)}.review-tutor{display:grid;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-muted)}.review-tutor[hidden],.review-tutor [hidden]{display:none!important}.review-tutor-heading,.review-tutor-feedback{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.review-tutor-feedback{flex-wrap:wrap}.review-tutor-messages{display:grid;align-content:start;gap:var(--space-2);max-height:340px;overflow-y:auto;overscroll-behavior:contain}.review-tutor-message{display:grid;gap:var(--space-1);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);overflow-wrap:anywhere}.review-tutor-message--user{background:var(--primary-soft)}.review-tutor-message>strong{color:var(--muted);font-size:.8125rem}.review-tutor-message>div{white-space:pre-wrap}.review-tutor-status{color:var(--muted);font-size:.8125rem}.review-tutor-status[data-error=true]{color:var(--danger)}.review-tutor-form{display:grid;gap:var(--space-2)}.review-tutor-form .btn{justify-self:end}.tutor-workspace{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr);gap:var(--space-4);min-height:calc(100vh - 220px)}.tutor-workspace>*{min-width:0}.stage-panel,.conversation-panel{display:grid;gap:var(--space-3);padding:var(--space-4)}.stage-panel{grid-template-rows:auto auto minmax(0,1fr) auto}.stage-topline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.tutor-privacy-note{display:flex;align-items:flex-start;gap:var(--space-2);color:var(--muted);font-size:.8125rem;line-height:1.45}.tutor-privacy-note .icon{margin-top:1px;color:var(--primary)}.tutor-scope-note{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:var(--space-2);color:var(--muted);font-size:.875rem;line-height:1.45}.tutor-scope-note .icon{flex:none;margin-top:2px;color:var(--primary)}.tutor-scope-note a{color:var(--text);font-weight:600}.stage-controls{display:flex;flex-wrap:wrap;gap:var(--space-2)}.screen-stage{position:relative;display:grid;place-items:center;overflow:hidden;min-height:320px;border-radius:var(--radius-md);background:var(--stage)}#screen-preview,#annotation-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}#screen-preview{object-fit:contain;object-position:center}#annotation-layer{pointer-events:none}.empty-stage{position:relative;display:grid;justify-items:center;gap:var(--space-3);max-width:340px;padding:var(--space-5);color:#cfddd8;text-align:center}.empty-stage[hidden]{display:none}.empty-stage strong{color:#fff;font-size:1.125rem}.empty-stage .empty-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#7fc3da29;color:#7dd6c7}.mark{fill:#b84d271f;stroke:#ff9a66;stroke-width:2;vector-effect:non-scaling-stroke}.mark-label-box{overflow:hidden}.mark-label{width:100%;height:100%;overflow:hidden;color:#fff;font-weight:600;line-height:1.2;white-space:normal;overflow-wrap:anywhere}.mark-label-text{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;background:#101a18e0}.mark-label-text[hidden]{display:none}.pill-button{min-height:32px;font:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.pill-button:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-muted)}.pill-button:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.pill-button:disabled{cursor:default;opacity:.75}.material-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-muted)}.material-bar[hidden]{display:none}.material-name{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0;font-weight:600;overflow-wrap:anywhere}.material-name .icon{flex:none;color:var(--primary)}.material-pager{display:inline-flex;align-items:center;gap:var(--space-1);font-size:.875rem;font-variant-numeric:tabular-nums}.tutor-materials-dialog{width:min(480px,calc(100vw - 32px))}.source-tools{display:flex;gap:var(--space-1);margin-bottom:calc(var(--space-2) * -1)}.source-list,.material-choices{display:grid;gap:2px;max-height:min(50vh,420px);margin:0;padding:0;overflow-y:auto;list-style:none}.source-option,.material-choice{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.source-option:hover,.material-choice:hover,.material-choice:focus-visible{background:var(--surface-muted)}.source-option input{flex:none;width:18px;height:18px;accent-color:var(--primary)}.material-choice .icon{flex:none;color:var(--primary)}.source-text{display:grid;min-width:0}.source-name{font-weight:600;overflow-wrap:anywhere}.annotation-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:44px}#annotation-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}#annotation-list:empty:before{content:"No marks on screen";color:var(--muted);font-size:.875rem}#annotation-list li{display:inline-flex;align-items:center;gap:var(--space-2);padding:2px 4px 2px var(--space-3);border:1px solid var(--line);border-radius:999px;font-size:.875rem}#annotation-list li button{min-height:32px;padding:0 var(--space-2);border:0;border-radius:999px;background:var(--surface-muted);font-size:.8125rem;cursor:pointer}.conversation-panel{grid-template-rows:auto auto minmax(min(200px,22vh),1fr) auto auto;max-height:calc(100vh - 160px);min-height:min-content}.conversation-panel>*{min-width:0}.conversation-head{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3)}.dialog.tutor-settings-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow-y:auto}.tutor-settings-dialog:not([open]),.tutor-settings-dialog [hidden]{display:none!important}.tutor-settings-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tutor-settings-restart{display:grid;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--line)}.coaching-controls{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted)}.conversation-title-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.tutor-memory-hint{margin:0;color:var(--muted);font-size:.8125rem;line-height:1.5}.check-steps-control{display:flex;align-items:center;gap:var(--space-2);min-height:32px;font-weight:600;cursor:pointer}.check-steps-control input{width:18px;height:18px;margin:0;flex-shrink:0;accent-color:var(--primary)}.check-steps-control input:disabled{cursor:not-allowed}#coaching-description{margin:0;color:var(--muted);font-size:.8125rem;line-height:1.5;overflow-wrap:anywhere}.conversation-list{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;min-width:0;overflow-y:auto;padding-right:var(--space-1)}.conversation-list:empty:before{content:attr(data-empty-prompt);margin:auto;max-width:260px;color:var(--muted);font-size:.9375rem;text-align:center}.message{max-width:85%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);line-height:1.5;overflow-wrap:anywhere}.message.student{align-self:flex-end;border-bottom-right-radius:4px;background:var(--primary);color:var(--on-primary)}.message.tutor{align-self:flex-start;border-bottom-left-radius:4px;background:var(--surface-muted)}.composer{display:flex;gap:var(--space-2);min-width:0}.composer input{flex:1;min-width:0;min-height:44px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.mic-feedback{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--muted);font-size:.8125rem}.mic-feedback[data-mic=on]{border-color:var(--primary);background:var(--primary-soft);color:var(--text)}.mic-feedback-text{display:grid;gap:var(--space-1)}.mic-device{color:var(--muted);overflow-wrap:anywhere}.mic-device:empty{display:none}.mic-meter{height:6px;overflow:hidden;border-radius:999px;background:var(--line-strong)}.mic-meter span{display:block;width:100%;height:100%;background:var(--primary);transform:scaleX(0);transform-origin:left}.flashcard-stage{display:grid;place-items:center;min-height:24rem}.flashcard{display:grid;gap:var(--space-2);place-items:center;width:min(24rem,100%);aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md)}.dialog{width:min(420px,calc(100vw - 32px));padding:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--text);box-shadow:var(--shadow-md)}.dialog::backdrop{background:#0f10208c}.dialog-body{display:grid;gap:var(--space-4);padding:var(--space-5)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.preview-dialog,.material-dialog{width:min(900px,calc(100vw - 32px));max-width:none;max-height:min(92dvh,900px);padding:0;overflow:hidden}.material-dialog{width:min(760px,calc(100vw - 32px))}.preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}.preview-header>div{min-width:0}.preview-header h2{overflow-wrap:anywhere}.preview-header .row-meta{margin-top:var(--space-1)}.preview-content,.material-session{max-height:calc(92dvh - 160px);overflow:auto;padding:var(--space-4);overscroll-behavior:contain}.preview-content [hidden]{display:none!important}.preview-footer{display:flex;justify-content:flex-end;padding:0 var(--space-4) var(--space-4)}.document-text{width:min(80ch,100%);margin:0 auto;color:var(--text);font:inherit;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.document-frame{display:block;width:100%;height:min(68dvh,760px);min-height:320px;border:1px solid var(--line);background:var(--surface-muted)}.image-preview,.media-preview{display:block;max-width:100%;max-height:68dvh;margin:0 auto;object-fit:contain}.audio-preview{display:block;width:min(600px,100%);margin:var(--space-6) auto}.material-session{display:grid;gap:var(--space-4)}.guide-content{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.guide-sections-list{display:grid;gap:var(--space-5)}.guide-section{display:grid;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--line)}.guide-section:last-child{padding-bottom:0;border-bottom:0}.guide-section-heading{font-size:1.125rem;font-weight:700;color:var(--text);margin:0}.guide-section-body{color:var(--text);line-height:1.65}.guide-section-body p{margin:0 0 var(--space-2) 0}.guide-section-body p:last-child{margin-bottom:0}.guide-meta-block{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.guide-meta-label{font-size:.8125rem;font-weight:600;color:var(--muted)}.guide-chips{display:flex;flex-wrap:wrap;gap:var(--space-1)}.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:500;line-height:1.4}.key-term-chip{background:var(--primary-soft);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 20%,transparent)}.source-chip{background:var(--surface-muted);color:var(--muted);border:1px solid var(--line)}.study-mode-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.study-progress{display:grid;grid-template-columns:auto minmax(80px,1fr);align-items:center;gap:var(--space-3);color:var(--muted);font-size:.875rem;font-weight:600}.study-progress progress{width:100%;height:8px;accent-color:var(--primary)}.study-flashcard{display:grid;align-content:center;justify-items:center;gap:var(--space-4);width:100%;min-height:280px;padding:var(--space-6);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);text-align:center;cursor:pointer}.study-flashcard.is-flipped{border-color:var(--accent);background:var(--success-soft)}.study-flashcard strong{max-width:58ch;font-size:1.25rem;overflow-wrap:anywhere}.flashcard-player{display:grid;gap:var(--space-4);width:100%}.flashcard-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.flashcard-header .study-progress{flex:1;min-width:180px}.flashcard-header-actions,.flashcard-piles-indicator{display:flex;align-items:center;gap:var(--space-2)}.flashcard-stage-interactive{display:grid;place-items:center}.interactive-card{display:flex;flex-direction:column;justify-content:space-between;align-items:center;width:100%;min-height:300px;padding:var(--space-5);border:2px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color var(--dur-base) var(--ease),background var(--dur-base) var(--ease),transform var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease);-webkit-user-select:none;user-select:none}.interactive-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.interactive-card:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.interactive-card.is-flipped{border-color:var(--accent);background:color-mix(in srgb,var(--success-soft) 60%,var(--surface))}.flashcard-side-tag{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:.8125rem}.flashcard-content{display:flex;align-items:center;justify-content:center;text-align:center;flex:1;width:100%;padding:var(--space-4) var(--space-2)}.flashcard-content strong{max-width:50ch;font-size:1.35rem;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.flashcard-card-sources{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-1);width:100%}.flashcard-sorting-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-muted);border-radius:var(--radius-md);border:1px solid var(--line)}.flashcard-piles-buttons{display:flex;gap:var(--space-3)}.pile-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-weight:600}.study-again-btn{border-color:var(--warning);color:var(--warning)}.study-again-btn:hover{background:var(--warning-soft)}.got-it-btn{background:var(--success);border-color:var(--success);color:var(--on-primary)}.got-it-btn:hover{background:color-mix(in srgb,var(--success) 85%,black)}.kbd-hint{display:inline-block;padding:1px 5px;font-family:inherit;font-size:.6875rem;font-weight:700;line-height:1.2;border-radius:4px;border:1px solid currentColor;opacity:.7}.flashcard-nav-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--space-2)}.question-panel{display:grid;gap:var(--space-4)}.question-panel h3{font-size:1.125rem;overflow-wrap:anywhere}.answer-options{display:grid;gap:var(--space-2);padding:0;border:0}.answer-options label{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.answer-options label:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.answer-options input{flex:none;margin-top:.3em;accent-color:var(--primary)}.answer-options span{overflow-wrap:anywhere}.answer-feedback{min-height:1px;padding:0}.answer-feedback:has(strong){padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted)}.answer-feedback strong[data-correct=true]{color:var(--success)}.answer-feedback:has(strong[data-correct=true]){background:var(--success-soft)}.answer-feedback strong[data-correct=false]{color:var(--danger)}.answer-feedback:has(strong[data-correct=false]){background:var(--danger-soft)}.answer-feedback p{margin-top:var(--space-1);color:var(--muted)}.study-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2)}.session-complete{display:grid;justify-items:center;gap:var(--space-3);min-height:260px;align-content:center;text-align:center}.session-complete h3{font-size:1.25rem}.toast-region{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:50;display:grid;gap:var(--space-2);max-width:min(400px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md);font-size:.9375rem;animation:toast-in var(--dur-base) var(--ease)}.toast-info .icon{color:var(--success)}.toast-error{border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.toast-error .icon{color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media(max-width:960px){.tutor-workspace,.study-grid,.metric-strip,.library-overview{grid-template-columns:minmax(0,1fr)}.conversation-panel{max-height:none}}@media(max-width:640px){.status-strip{width:100%}.session-status-row{padding-inline:var(--space-4)}.app-header{position:static}.page-actions,.page-actions .btn{width:100%}.tabs{width:100%;overflow-x:auto}.tabs a{flex:1;justify-content:center;padding:0 var(--space-2)}.data-list li{grid-template-columns:auto minmax(0,1fr) auto}.data-list li .row-actions{grid-column:2 / -1;justify-self:start}.stage-controls .btn-label{display:none}.syllabus-columns,.type-options,.field-row{grid-template-columns:minmax(0,1fr)}.material-card footer{align-items:flex-start;flex-direction:column}.preview-header,.preview-content,.material-session{padding:var(--space-3)}.preview-header .btn{min-height:40px}.study-flashcard{min-height:240px;padding:var(--space-4)}.assessment-header{align-items:flex-start;padding:var(--space-4)}.assessment-score,.assessment-timer{min-width:84px;padding:var(--space-2)}.practice-options{grid-template-columns:minmax(0,1fr);padding-left:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.upload-zone:focus-within{outline:3px solid var(--ring);outline-offset:2px}.data-list li.empty-state{grid-template-columns:1fr;justify-items:center}.data-list li.empty-state{padding:var(--space-7) var(--space-5)}.account-page{width:min(100%,920px);margin-inline:auto}.account-status-banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:.875rem;line-height:1.45;margin-bottom:var(--space-4)}.account-status-banner strong{display:block;font-weight:600;margin-bottom:2px}.account-status-banner.guest-banner{background:var(--warning-soft);border:1px solid color-mix(in srgb,var(--warning) 28%,var(--line));color:var(--warning)}.account-status-banner.guest-banner .auth-link{color:var(--warning);font-weight:600;text-decoration:underline}.account-status-banner.signed-in-banner{background:var(--success-soft);border:1px solid color-mix(in srgb,var(--success) 24%,var(--line));color:var(--success)}.field-block{display:grid;gap:6px;min-width:0}.field-block label{color:var(--text);font-size:.875rem;font-weight:700}.field-block input,.field-block select{width:100%;min-height:46px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-weight:400}.field-block input::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent)}.field-block input:focus,.field-block select:focus{border-color:var(--primary);outline:3px solid var(--ring);outline-offset:1px}.guest-workspace{display:grid;gap:var(--space-4);width:min(100%,1180px);min-width:0;margin-inline:auto}.guest-workspace .page-heading{align-items:center;margin-bottom:0}.guest-workspace .page-heading h1{margin-top:var(--space-1)}.guest-workspace .page-heading p.muted{max-width:62ch;margin-top:var(--space-2)}.guest-workspace-content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:start;gap:var(--space-4);min-width:0}.guest-workspace-content>*{min-width:0}.guest-panel{display:grid;align-content:start;gap:var(--space-4);padding:var(--space-5)}.guest-panel-heading,.guest-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.guest-panel-heading>div,.guest-section-heading>div{display:grid;min-width:0;gap:var(--space-1)}.guest-panel-heading p,.guest-section-heading p{font-size:.875rem}.guest-source-panel .upload-zone{width:100%;min-height:188px;padding:var(--space-5)}.guest-upload-list-wrap{margin-top:calc(var(--space-3) * -1)}.guest-upload-list{max-height:280px;overflow-y:auto}.data-list li.guest-upload-empty{display:flex;justify-content:flex-start;gap:var(--space-2);padding:var(--space-2) 0 0;color:var(--muted);font-size:.875rem;text-align:left}.guest-upload-empty .empty-icon{width:32px;height:32px;margin:0;border-radius:var(--radius-sm)}.guest-generate-panel{min-width:0}.guest-generate-panel .generate-head{display:flex;align-items:flex-start;gap:var(--space-3)}.guest-generate-panel .generate-head>div{display:grid;gap:var(--space-1)}.guest-generate-panel .generate-head p{color:var(--muted);font-size:.875rem}.guest-generate-panel .field-block{min-width:0;margin:0;padding:0;border:0}.guest-generate-panel .field-block legend,.guest-generate-panel .field-block>label{margin-bottom:var(--space-2);font-size:.875rem;font-weight:600}.type-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.type-card{position:relative;min-width:0}.type-card input{position:absolute;width:1px;height:1px;opacity:0}.type-card-main{display:grid;align-content:start;justify-items:start;gap:var(--space-2);min-height:122px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.type-card-main .kind-icon{width:32px;height:32px;border-radius:var(--radius-sm)}.type-card-main strong{font-size:.875rem}.type-card-main .muted{font-size:.75rem;line-height:1.4}.type-card:hover .type-card-main{border-color:var(--line-strong)}.type-card input:checked+.type-card-main{border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.type-card input:focus-visible+.type-card-main{outline:3px solid var(--ring);outline-offset:2px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.field-block select{width:100%;min-height:44px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.guest-materials-panel{grid-column:1 / -1;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.guest-section-heading{margin-bottom:var(--space-3)}.guest-empty-state{min-height:180px;padding:var(--space-5);border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface)}.guest-material-card{min-width:0}.guest-material-card .material-card-head{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0}.guest-material-card .material-card-head h3{font-size:.9375rem;overflow-wrap:anywhere}.guest-material-card .material-card-body,.guest-material-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.guest-material-card footer{margin-top:var(--space-2)}@media(max-width:960px){.metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.guest-workspace-content{grid-template-columns:minmax(0,1fr)}.guest-materials-panel{grid-column:auto}}@media(max-width:640px){.app-header{padding:var(--space-2) var(--space-4)}.primary-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;min-width:0;margin-left:0}.primary-nav a{min-width:0;justify-content:center;overflow:hidden;padding-inline:var(--space-1);white-space:nowrap}.status-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.status-strip .pill{min-width:0;justify-content:space-between;white-space:normal}.status-strip .pill strong{text-align:right;overflow-wrap:anywhere}.guest-panel{padding:var(--space-4)}.guest-panel-heading{flex-wrap:wrap}.guest-source-panel .upload-zone{min-height:164px}.guest-material-card footer{align-items:center;flex-direction:row;flex-wrap:wrap}}:root{--mark: var(--hl);--margin-rule: rgba(196, 74, 62, .45);caret-color:var(--primary);accent-color:var(--primary);scrollbar-color:var(--line-strong) transparent}:root[data-theme=dark]{--mark: #5a4e14;--margin-rule: rgba(232, 112, 98, .38)}::selection{background:var(--hl);color:var(--on-hl)}h1,h2,h3,.brand,.class-name{font-family:var(--font-display);text-wrap:balance}h1{width:fit-content;max-width:100%;margin-inline:-.14em;padding-inline:.14em;font-size:clamp(1.875rem,1.2rem + 2.6vw,2.75rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;background-image:linear-gradient(transparent 58%,var(--mark) 58% 90%,transparent 90%);background-repeat:no-repeat;background-size:100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:swipe .72s var(--ease-out) .14s backwards}@supports (height: 1lh){h1{background-size:100% 1lh;background-repeat:repeat-y;animation-name:swipe-lines}}@keyframes swipe-lines{0%{background-size:0% 1lh}}h2{font-weight:700;letter-spacing:-.02em}p{text-wrap:pretty}.class-meta,.desk-summary,.pill,.row-meta{font-variant-numeric:tabular-nums}.app-header{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:var(--edge)}.brand{font-size:1.5rem;font-weight:800;letter-spacing:-.03em}.brand-mark{position:relative;flex:0 0 38px;width:38px;height:38px;overflow:hidden;transition:transform .32s var(--ease-out)}.brand-mark img{position:absolute;top:-36%;left:-30%;width:131%;max-width:none;height:auto}.brand:hover .brand-mark{transform:rotate(9deg) scale(1.06)}.primary-nav a{margin-inline:var(--space-1);padding-inline:var(--space-2);border-radius:0;background-color:transparent;background-image:linear-gradient(transparent 62%,var(--mark) 62% 86%,transparent 86%);background-repeat:no-repeat;background-position:0 0;background-size:0 100%;transition:background-size .24s var(--ease-out),color var(--dur-fast) var(--ease)}.primary-nav a:hover,.primary-nav a[aria-current=page]{background-color:transparent;background-size:100% 100%;color:var(--text)}.class-header{flex-direction:column;align-items:stretch;gap:var(--space-4);margin-bottom:var(--space-5)}.tabs{display:flex;align-items:flex-end;gap:2px;width:100%;padding:0;border-bottom:1px solid var(--line-strong);border-radius:0;background:none}.tabs a{min-height:44px;margin-bottom:-1px;padding-inline:var(--space-4);border:1px solid transparent;border-bottom:0;border-radius:var(--radius-md) var(--radius-md) 0 0}.tabs a:hover{background:var(--surface-muted)}.tabs a[aria-current=page]{position:relative;border-color:var(--line-strong);background:var(--surface);box-shadow:none;color:var(--text)}.tabs a[aria-current=page]:after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:1px;background:var(--surface)}.class-header .tabs a[aria-current=page]{box-shadow:inset 0 3px 0 var(--class-color, var(--primary))}.class-header .tabs a[aria-current=page] .icon{color:var(--class-color, var(--primary))}.class-title>div{flex:1 1 auto;min-width:0}.class-title .class-icon{flex:none}.class-title h1{overflow-wrap:anywhere;text-wrap:balance}.panel{border-color:var(--edge);border-radius:var(--radius-lg);box-shadow:none}.desk-summary{margin-top:var(--space-2);color:var(--muted);font-size:.9375rem}.class-grid{gap:var(--space-5) var(--space-4);padding-top:var(--space-3)}.class-card{--tilt: 0deg;overflow:visible;border-color:var(--edge);box-shadow:none;transform:rotate(var(--tilt));transform-origin:50% 0;animation:deal .64s var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 70ms + .18s)}.class-card:nth-child(4n+1){--tilt: -.7deg;--i: 0}.class-card:nth-child(4n+2){--tilt: .5deg;--i: 1}.class-card:nth-child(4n+3){--tilt: -.3deg;--i: 2}.class-card:nth-child(4n+4){--tilt: .8deg;--i: 3}.class-card:nth-child(n+5){--i: 4}.class-card:hover{border-color:color-mix(in srgb,var(--class-color, var(--primary)) 55%,var(--edge));box-shadow:var(--shadow-md);transform:translateY(-4px) rotate(0)}.class-card:before{content:"";position:absolute;top:-8px;left:22px;width:54px;height:9px;border-radius:7px 7px 0 0;background:var(--class-color, var(--primary))}.class-icon{position:relative;width:46px;height:46px;border:0;border-radius:34%;background:var(--class-color, var(--primary));color:#fffdf7;font-family:var(--font-display);font-size:1.25rem;font-weight:800;transform:rotate(-7deg);transition:transform .32s var(--ease-out)}.class-icon:before{content:"";position:absolute;top:6px;left:7px;width:11px;height:7px;border-radius:50%;background:#fffdf752;transform:rotate(-35deg)}.class-cover .class-icon{width:56px;height:56px;font-size:1.5rem;translate:0 50%;box-shadow:0 0 0 4px var(--surface)}.class-card:hover .class-icon{transform:rotate(5deg) scale(1.05)}.class-title .class-icon{width:42px;height:42px;font-size:1.125rem}.new-class-card{border:2px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--muted)}.new-class-card:hover{border-color:var(--primary);background:var(--hl-soft);color:var(--on-hl)}:root[data-theme=dark] .new-class-card:hover{color:var(--text)}.empty-state .empty-icon{position:relative;width:96px;height:96px;overflow:hidden;border-radius:0;background:transparent url(/assets/jot-mascot-eyDTmq9G.png) no-repeat -29px -35px / 125px auto;color:transparent}.empty-state .empty-icon svg{display:none}.upload-zone{border:2px dashed var(--line-strong)}.upload-zone:hover,.upload-zone.is-dragging{border-color:var(--primary);background:var(--hl-soft)}.upload-zone-icon{border-radius:34%;background:var(--hl);color:var(--on-hl);transform:rotate(-6deg);transition:transform .32s var(--ease-out)}.upload-zone:hover .upload-zone-icon,.upload-zone.is-dragging .upload-zone-icon{transform:rotate(3deg) scale(1.06)}.interactive-card{border:1px solid var(--line-strong);box-shadow:none;background-image:linear-gradient(transparent 50px,color-mix(in srgb,#c4483c 62%,transparent) 50px 52px,transparent 52px);background-repeat:no-repeat}.interactive-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-3px)}.interactive-card.is-flipped{border-color:var(--line-strong);background-color:color-mix(in srgb,var(--hl-soft) 78%,var(--surface))}.mark{fill:none;stroke:#f6d94a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mark-underline,.mark-pointer{stroke-width:3}.mark-note{fill:#f6d94a2e;stroke-dasharray:5 3}.mark-label{color:#1c2e37}.mark-label-text{background:#f6d94a}.btn:active:not(:disabled){transform:translateY(1px)}@keyframes swipe{0%{background-size:0% 100%}}@keyframes deal{0%{opacity:0;transform:translateY(18px) rotate(calc(var(--tilt) * 5))}}@media(max-width:640px){.tabs a{padding-inline:var(--space-2)}.tabs{overflow:visible}.app-header .theme-toggle{margin-left:auto}.app-header .account-menu{margin-left:0}.primary-nav{order:1;grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}}@media(prefers-reduced-motion:reduce){h1,.class-card{animation:none}}.home{display:grid;place-items:center;max-width:none;min-height:100vh;margin:0;padding:var(--space-6) var(--space-4)}.home-inner{display:grid;justify-items:center;gap:var(--space-5);width:min(560px,100%);text-align:center}.home-logo{display:flex;align-items:center;gap:var(--space-4)}.home-mascot{position:relative;flex:none;width:clamp(84px,18vw,124px);aspect-ratio:1;overflow:hidden;animation:settle .8s var(--ease-out) .1s backwards}.home-mascot img{position:absolute;top:-36%;left:-30%;width:131%;max-width:none;height:auto}.home-logo h1{margin-block:0;font-size:clamp(4rem,14vw,6rem);line-height:1}.home-greeting{max-width:44ch;font-size:1.1875rem;line-height:1.55}.home-actions{display:grid;justify-items:center;gap:var(--space-2);width:100%}.btn-large{width:min(320px,100%);min-height:56px;font-size:1.0625rem}.home-guest{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--space-3);color:var(--primary);font-weight:600;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.home-guest:hover{background:var(--mark);color:var(--text)}.home-note{color:var(--muted);font-size:.875rem}@keyframes settle{0%{opacity:0;transform:translateY(-28px) rotate(-16deg)}}@media(prefers-reduced-motion:reduce){.home-mascot{animation:none}}.account-menu{position:relative;margin-left:var(--space-2)}.account-trigger{gap:var(--space-2)}.account-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu-list{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:grid;min-width:210px;padding:var(--space-1);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-md)}.account-menu-list[hidden]{display:none}.account-menu-list a,.account-menu-list button{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font-weight:600;text-align:left;cursor:pointer}.account-menu-list a:hover,.account-menu-list button:hover,.account-menu-list a:focus-visible,.account-menu-list button:focus-visible{background:var(--surface-muted)}.account-menu-list [data-logout]{color:var(--danger)}.login-card{display:grid;gap:var(--space-5);width:min(440px,100%);padding:var(--space-6)}.login-heading{display:grid;gap:var(--space-2)}.login-form{display:grid;gap:var(--space-4)}.login-form .btn-large{width:100%}.form-error{padding:var(--space-3);border:1px solid color-mix(in srgb,var(--danger) 45%,var(--edge));border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:.9375rem;font-weight:600}.form-error[hidden]{display:none}.login-switch{color:var(--muted);text-align:center}.login-switch a{color:var(--primary);font-weight:600;text-decoration:underline;text-underline-offset:3px}.login-card .home-guest{justify-self:center}.account-card{display:grid;gap:var(--space-5);max-width:560px;padding:var(--space-5)}.account-details{display:grid;gap:var(--space-3);margin:0}.account-details>div{display:grid;grid-template-columns:minmax(96px,140px) minmax(0,1fr);gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--edge)}.account-details>div:last-child{padding-bottom:0;border-bottom:0}.account-details dt{color:var(--muted);font-weight:600}.account-details dd{margin:0;overflow-wrap:anywhere}.account-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-2)}@media(max-width:640px){.account-menu{margin-left:auto}.login-card{padding:var(--space-5)}}.auth-screen-inner{display:grid;justify-items:center;gap:var(--space-5);width:min(440px,100%)}.auth-screen .brand{font-size:2rem}.auth-screen .brand-mark{flex-basis:48px;width:48px;height:48px}.auth-screen .login-card{width:100%}.auth-back{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;color:var(--muted);font-size:.9375rem;font-weight:600}.auth-back:hover{color:var(--primary)}.password-row{display:flex;gap:var(--space-2)}.password-row input{flex:1;min-width:0}.password-toggle{min-width:72px}.field-hint.is-error{color:var(--danger);font-weight:600}.field input[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 0 0 1px var(--danger)}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--space-4);align-items:start}.account-section{display:grid;gap:var(--space-4);padding:var(--space-5)}.class-grid.is-empty{grid-template-columns:minmax(0,1fr)}.theme-toggle{color:var(--muted)}.theme-toggle:hover{color:var(--text)}.theme-toggle-floating{position:fixed;top:var(--space-4);right:var(--space-4);z-index:15}.app-header--compact{min-height:60px;gap:var(--space-2) var(--space-4);padding-inline:var(--space-5)}.app-header--compact .status-strip{flex:1 1 0;min-width:0;gap:6px}.app-header--compact .pill{padding-inline:var(--space-2);font-size:.75rem}.app-header--compact .primary-nav{flex:none}.app-header--compact .primary-nav a{margin-inline:0}.app-header--compact .account-menu{margin-left:0}.workspace-main{padding-top:var(--space-4)}.class-header--compact{flex-direction:row;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);border-bottom:1px solid var(--line-strong)}.class-header--compact .back-link{flex:none;min-height:44px;margin-bottom:0}.class-header--compact .class-title{flex:1 1 180px;min-width:0;gap:var(--space-2)}.class-header--compact .class-icon{width:32px;height:32px;font-size:.875rem}.class-header--compact h1,.tutor-heading h1{font-size:1.375rem;line-height:1.2}.class-header--compact .class-title p{font-size:.8125rem}.class-header--compact .tabs{flex:none;align-self:stretch;width:auto;border-bottom:0}.tutor-heading{margin-bottom:var(--space-3)}.tutor-heading>div{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4)}.tutor-heading p{margin-top:0}.tutor-heading .tutor-scope-note{flex-basis:100%}.tutor-main .tutor-workspace{min-height:calc(100dvh - 160px)}@media(max-width:1100px){.app-header--compact .status-strip{flex-basis:100%;order:2}}@media(max-width:760px){.class-header--compact{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2) var(--space-3)}.class-header--compact .tabs{grid-column:1 / -1;width:100%}}@media(max-width:640px){.app-header--compact{padding-inline:var(--space-4)}.app-header--compact .primary-nav{flex-basis:100%}.workspace-main{padding-top:var(--space-3)}}.avatar{display:block;flex:none}.account-avatar{display:grid;place-items:center;width:32px;height:32px}.jot-builder{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:var(--space-6);padding:var(--space-5)}.jot-preview{display:grid;align-content:start;gap:var(--space-3)}.jot-stage{display:grid;place-items:center;aspect-ratio:1;border-radius:var(--radius-lg);background:var(--surface-muted)}.jot-stage.is-popping .avatar{animation:jot-pop .32s var(--ease-out)}@keyframes jot-pop{0%{opacity:.6;transform:scale(.9) rotate(-6deg)}}.jot-caption{min-height:3em;color:var(--muted);font-size:.9375rem;text-align:center}.jot-actions{display:grid;gap:var(--space-2)}.jot-options{display:grid;align-content:start;gap:var(--space-5);min-width:0}.jot-group{display:grid;gap:var(--space-2);min-width:0;margin:0;padding:0;border:0}.jot-group legend{margin-bottom:var(--space-2);padding:0;font-size:.875rem;font-weight:700}.jot-swatches{display:flex;flex-wrap:wrap;gap:var(--space-2)}.jot-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:var(--space-2)}.jot-swatch,.jot-tile{position:relative;cursor:pointer}.jot-swatch input,.jot-tile input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.jot-swatch{display:grid;place-items:center;width:44px;height:44px}.jot-swatch-dot{width:30px;height:30px;border-radius:34%;background:var(--swatch);box-shadow:inset 0 0 0 1px #1c2e372e;transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.jot-swatch:hover .jot-swatch-dot{transform:rotate(-6deg) scale(1.06)}.jot-swatch input:checked+.jot-swatch-dot{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--text)}.jot-swatch input:focus-visible+.jot-swatch-dot,.jot-tile input:focus-visible~.jot-tile-art{outline:3px solid var(--ring);outline-offset:4px}.jot-tile{display:grid;justify-items:center;gap:2px;padding:var(--space-2) var(--space-1);border:1px solid var(--edge);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.jot-tile:hover{border-color:var(--line-strong)}.jot-tile:has(input:checked){border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.jot-tile-art{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--radius-sm)}.jot-tile-name{color:var(--muted);font-size:.75rem;font-weight:600;line-height:1.2;text-align:center}.jot-tile:has(input:checked) .jot-tile-name{color:var(--text)}@media(max-width:720px){.jot-builder{grid-template-columns:minmax(0,1fr);padding:var(--space-4)}.jot-stage{max-width:240px;justify-self:center;width:100%}}@media(prefers-reduced-motion:reduce){.jot-stage.is-popping .avatar{animation:none}}.jot-buddy{display:flex;align-items:center;gap:var(--space-2);min-height:136px;--mouth: .14;--bounce: 0}.jot-buddy-art{flex:none;width:136px;height:136px}.jot-buddy-art .avatar{width:100%;height:100%;overflow:visible;color:var(--text)}.jot-bubble{position:relative;flex:1;min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--edge);border-radius:16px;background:var(--surface);color:var(--text);font-size:.9375rem;line-height:1.4;opacity:0;transform:translate(-6px) scale(.97);transform-origin:left center;transition:opacity .22s var(--ease-out),transform .22s var(--ease-out);pointer-events:none}.jot-bubble:before{content:"";position:absolute;top:50%;left:-7px;width:12px;height:12px;border-bottom:1px solid var(--edge);border-left:1px solid var(--edge);background:var(--surface);transform:translateY(-50%) rotate(45deg)}.jot-bubble-text{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.jot-buddy[data-state=speaking] .jot-bubble,.jot-buddy[data-state=listening] .jot-bubble,.jot-buddy[data-state=thinking] .jot-bubble,.jot-buddy[data-state=error] .jot-bubble{opacity:1;transform:none}.jot-buddy[data-state=listening] .jot-bubble-text,.jot-buddy[data-state=thinking] .jot-bubble-text{display:inline;color:var(--muted);font-weight:600}.jot-bubble-dots{display:none;gap:3px;margin-left:4px;vertical-align:middle}.jot-bubble-dots i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:jot-dot 1.2s ease-in-out infinite}.jot-bubble-dots i:nth-child(2){animation-delay:.15s}.jot-bubble-dots i:nth-child(3){animation-delay:.3s}.jot-buddy[data-state=listening] .jot-bubble-dots,.jot-buddy[data-state=thinking] .jot-bubble-dots{display:inline-flex}@keyframes jot-dot{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}.avatar-animated .jot-figure{transform-box:view-box;transform-origin:60px 104px;animation:jot-breathe 3.8s ease-in-out infinite}.avatar-animated .jot-eyes{transform-box:fill-box;transform-origin:center;animation:jot-blink 5.4s infinite}.avatar-animated .jot-talk{opacity:0;transform-box:fill-box;transform-origin:center}.avatar-animated .jot-expr,.avatar-animated .jot-prop{opacity:0;transition:opacity .18s var(--ease)}.avatar-animated .jot-prop-question{fill:var(--text);font-family:var(--font-display);font-size:30px;font-weight:800}.avatar-animated .jot-arm,.avatar-animated .jot-forearm{transform-box:view-box;transition:transform .34s var(--ease-out)}.avatar-animated .jot-arm-left{transform-origin:19px 66px;transform:rotate(14deg)}.avatar-animated .jot-arm-left .jot-forearm{transform-origin:19px 80px;transform:rotate(-10deg)}.avatar-animated .jot-arm-right{transform-origin:101px 66px;transform:rotate(-14deg)}.avatar-animated .jot-arm-right .jot-forearm{transform-origin:101px 80px;transform:rotate(10deg)}.avatar-animated .jot-leg{transform-box:view-box;transition:transform .34s var(--ease-out)}.avatar-animated .jot-leg-left{transform-origin:46px 100px;transform:rotate(4deg)}.avatar-animated .jot-leg-right{transform-origin:74px 100px;transform:rotate(-4deg)}@keyframes jot-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-1.5px) scale(1.025,.985)}}@keyframes jot-blink{0%,92%,to{transform:scaleY(1)}95.5%{transform:scaleY(.1)}}.jot-buddy[data-state=listening] .jot-figure{animation:jot-listen 1.8s ease-in-out infinite}.jot-buddy[data-state=listening] .jot-eyes{animation:none;transform:scale(1.14)}.jot-buddy[data-state=listening] .jot-arm-right{transform:rotate(-155deg)}.jot-buddy[data-state=listening] .jot-arm-right .jot-forearm{transform:rotate(-28deg)}@keyframes jot-listen{0%,to{transform:translate(2px) rotate(4deg)}50%{transform:translate(3px) rotate(5.5deg) scale(1.02)}}.jot-buddy[data-state=thinking] .jot-figure{animation:jot-think 1.5s ease-in-out infinite}.jot-buddy[data-state=thinking] .jot-eyes{animation:none;transform:translate(3px,-3px)}.jot-buddy[data-state=thinking] .jot-arm-left{transform:rotate(-55deg)}.jot-buddy[data-state=thinking] .jot-arm-left .jot-forearm{transform:rotate(5deg)}@keyframes jot-think{0%,to{transform:rotate(-3.5deg)}50%{transform:rotate(3.5deg) translateY(-1px)}}.jot-buddy[data-state=speaking] .jot-figure{animation:none;transform:translateY(calc(var(--bounce) * -3px)) scale(calc(1 + var(--bounce) * .03))}.jot-buddy[data-state=speaking] .jot-mouth,.jot-buddy[data-state=speaking] .jot-expr-mouth{opacity:0}.jot-buddy[data-state=speaking] .jot-talk{opacity:1;transform:scaleY(var(--mouth))}.jot-buddy[data-state=speaking] .jot-arm-left{animation:jot-gesture-left 1.7s ease-in-out infinite}.jot-buddy[data-state=speaking] .jot-arm-left .jot-forearm{animation:jot-gesture-left-fore 1.7s ease-in-out infinite}.jot-buddy[data-state=speaking] .jot-arm-right{animation:jot-gesture-right 2.3s ease-in-out infinite}@keyframes jot-gesture-left{0%,to{transform:rotate(26deg)}50%{transform:rotate(44deg)}}@keyframes jot-gesture-left-fore{0%,to{transform:rotate(-45deg)}50%{transform:rotate(-72deg)}}@keyframes jot-gesture-right{0%,to{transform:rotate(-18deg)}50%{transform:rotate(-34deg)}}.jot-buddy[data-state=offline] .avatar,.jot-buddy[data-state=error] .avatar{opacity:.75}.jot-buddy[data-state=offline] .jot-figure{animation-duration:6s}.jot-buddy[data-expression=proud] .jot-eyes,.jot-buddy[data-expression=proud] .jot-mouth,.jot-buddy[data-expression=celebrate] .jot-eyes,.jot-buddy[data-expression=celebrate] .jot-mouth,.jot-buddy[data-expression=confused] .jot-eyes,.jot-buddy[data-expression=confused] .jot-mouth,.jot-buddy[data-expression=concerned] .jot-eyes,.jot-buddy[data-expression=concerned] .jot-mouth{opacity:0}.jot-buddy[data-expression=proud] .jot-expr-proud,.jot-buddy[data-expression=celebrate] .jot-expr-celebrate,.jot-buddy[data-expression=confused] .jot-expr-confused,.jot-buddy[data-expression=concerned] .jot-expr-concerned{opacity:1}.jot-buddy[data-expression=proud] .jot-figure{animation:none;transform:rotate(-3deg) scale(1.04)}.jot-buddy[data-expression=proud] .jot-arm-left{animation:none;transform:rotate(35deg)}.jot-buddy[data-expression=proud] .jot-arm-left .jot-forearm{animation:none;transform:rotate(-77deg)}.jot-buddy[data-expression=proud] .jot-arm-right{animation:none;transform:rotate(-35deg)}.jot-buddy[data-expression=proud] .jot-arm-right .jot-forearm{animation:none;transform:rotate(77deg)}.jot-buddy[data-expression=proud] .jot-prop-sparkles{opacity:1;animation:jot-twinkle 1.2s ease-in-out infinite}.jot-buddy[data-expression=celebrate] .jot-figure{animation:jot-hop .9s ease-in-out infinite}.jot-buddy[data-expression=celebrate] .jot-arm-left{animation:none;transform:rotate(150deg)}.jot-buddy[data-expression=celebrate] .jot-arm-left .jot-forearm{animation:none;transform:rotate(15deg)}.jot-buddy[data-expression=celebrate] .jot-arm-right{animation:none;transform:rotate(-150deg)}.jot-buddy[data-expression=celebrate] .jot-arm-right .jot-forearm{animation:none;transform:rotate(-15deg)}.jot-buddy[data-expression=celebrate] .jot-prop-sparkles{opacity:1;animation:jot-twinkle .9s ease-in-out infinite}.jot-buddy[data-expression=confused] .jot-figure{animation:none;transform:rotate(-7deg)}.jot-buddy[data-expression=confused] .jot-arm-right{animation:none;transform:rotate(-175deg)}.jot-buddy[data-expression=confused] .jot-arm-right .jot-forearm{animation:jot-scratch .5s ease-in-out infinite alternate}.jot-buddy[data-expression=confused] .jot-prop-question{opacity:1;animation:jot-bob 1.6s ease-in-out infinite}.jot-buddy[data-expression=concerned] .jot-figure{animation:none;transform:translateY(1px) scale(.98)}.jot-buddy[data-expression=concerned] .jot-arm-left{animation:none;transform:rotate(-35deg)}.jot-buddy[data-expression=concerned] .jot-arm-left .jot-forearm{animation:none;transform:rotate(-18deg)}.jot-buddy[data-expression=concerned] .jot-arm-right{animation:none;transform:rotate(35deg)}.jot-buddy[data-expression=concerned] .jot-arm-right .jot-forearm{animation:none;transform:rotate(18deg)}.jot-buddy[data-expression=concerned] .jot-prop-sweat{opacity:1;animation:jot-drip 1.8s ease-in infinite}.jot-buddy[data-expression=proud] .jot-leg-left{transform:rotate(14deg)}.jot-buddy[data-expression=proud] .jot-leg-right{transform:rotate(-14deg)}.jot-buddy[data-expression=celebrate] .jot-leg-left{animation:jot-kick-left .9s ease-in-out infinite}.jot-buddy[data-expression=celebrate] .jot-leg-right{animation:jot-kick-right .9s ease-in-out infinite}.jot-buddy[data-expression=concerned] .jot-leg-left{transform:rotate(-8deg)}.jot-buddy[data-expression=concerned] .jot-leg-right{transform:rotate(8deg)}.jot-buddy[data-expression=confused] .jot-leg-right{transform:rotate(-16deg)}@keyframes jot-kick-left{0%,to{transform:rotate(4deg)}50%{transform:rotate(26deg)}}@keyframes jot-kick-right{0%,to{transform:rotate(-4deg)}50%{transform:rotate(-26deg)}}.jot-buddy[data-expression=wave] .jot-arm-right{animation:none;transform:rotate(-140deg)}.jot-buddy[data-expression=wave] .jot-arm-right .jot-forearm{animation:jot-wave .42s ease-in-out infinite alternate}@keyframes jot-twinkle{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.8);opacity:.6}}@keyframes jot-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-5px) scale(1.03,.98)}}@keyframes jot-scratch{0%{transform:rotate(-30deg)}to{transform:rotate(-12deg)}}@keyframes jot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes jot-drip{0%{transform:translateY(-2px);opacity:0}20%{opacity:1}to{transform:translateY(6px);opacity:0}}@keyframes jot-wave{0%{transform:rotate(-12deg)}to{transform:rotate(32deg)}}.avatar-animated .jot-prop-sparkles,.avatar-animated .jot-prop-question,.avatar-animated .jot-prop-sweat{transform-box:fill-box;transform-origin:center}@media(prefers-reduced-motion:reduce){.jot-buddy .avatar-animated *,.jot-buddy .avatar-animated .jot-figure{animation:none!important;transition:none!important}.jot-buddy[data-state=speaking] .jot-figure{transform:none}.jot-bubble{transition:none;transform:none}.jot-bubble-dots i{animation:none;opacity:.8}}.tex-math .katex{font-size:1.05em}.tex-math.is-display{display:block;max-width:100%;margin:.4em 0;overflow-x:auto;overflow-y:hidden}.tex-math.is-error{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.language-lock-control{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-2);font-weight:600}.language-lock-control>span{display:inline-flex;align-items:center;gap:6px}.language-lock-control select{min-height:40px;max-width:100%;padding:0 var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-weight:500}#language-description{color:var(--muted);font-size:.8125rem}.icon .icon-slash-gap{stroke:var(--surface);stroke-width:5}.icon .icon-slash{stroke:var(--danger);stroke-width:2.4}#mic-toggle[data-mic=on]{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}#mic-toggle[data-mic=on]:hover:not(:disabled){background:var(--primary-hover)}#mic-toggle[data-mic=requesting]{border-color:var(--primary);animation:mic-asking 1.1s ease-in-out infinite}@keyframes mic-asking{0%,to{box-shadow:0 0 0 0 var(--ring)}50%{box-shadow:0 0 0 5px var(--ring)}}@media(prefers-reduced-motion:reduce){#mic-toggle[data-mic=requesting]{animation:none;box-shadow:0 0 0 3px var(--ring)}}.tutor-saved-memory{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.saved-memory-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:start}.saved-memory-actions details{width:100%;font-size:.875rem}.saved-memory-actions summary{cursor:pointer;padding:.35rem 0}.saved-recap-list{list-style:none;padding:0;max-height:18rem;overflow:auto}.saved-recap-list>li{padding:.75rem 0;border-bottom:1px solid var(--line)}.saved-recap-list time{color:var(--muted);font-size:.8rem}.saved-recap-list p{margin:.35rem 0}
