body.app [hidden],body.start-page [hidden]{display:none!important}body.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}body.app>.app-bar,body.app>.guest-band{flex:0 0 auto}body.app .app-layout{flex:1 1 auto;min-height:0;display:flex}body.app .app-main{position:relative;flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;padding:0}body.app.has-tabbar .app-main{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}body.app .app-bar__inner{gap:var(--s-2)}body.app .app-bar__brand img{height:26px;width:auto}.subject-slot{flex:1 1 auto;min-width:0;gap:var(--s-2)}.app-bar__slot .app-subject-chip{display:inline-flex;align-items:center;gap:var(--s-2);min-width:0;max-width:100%;overflow:hidden;font-family:var(--font-body);font-size:var(--t-sm)}.subject-chip__text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-grade{display:none}.app-subject-chip .badge{flex:0 0 auto}.app-bar .app-subject-chip:hover{background:var(--tint)}.subject-change{display:none}.score-pill{display:none}body.app .app-bar__actions .btn-icon svg{width:24px;height:24px}.guest-band{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);padding:var(--s-1) var(--s-4);min-height:40px;background:var(--surface);border-bottom:1px solid var(--border);font-size:var(--t-sm)}.guest-band .quest-bar{flex:1 1 260px;min-width:0;width:auto;max-width:none;margin:0;background:0 0;border:0;border-radius:0;box-shadow:none}.guest-band .quest-bar:empty{display:none}.guest-pill{order:2;margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--s-1);padding:2px var(--s-2);border:1px solid var(--info);border-radius:var(--r-pill);background:var(--info-bg);color:var(--info);font-size:var(--t-xs);font-weight:var(--w-bold);white-space:nowrap}.guest-pill.low{border-color:var(--warning);background:var(--warning-bg);color:var(--warning)}.rail__item.view-tab,.tabbar__item.view-tab{font-family:var(--font-body)}.rail__item[aria-current=page] .icon,.tabbar__item[aria-current=page] .icon{stroke-width:2.4}.rail__item{width:100%;background:0 0;border:0;cursor:pointer;font-family:var(--font-body);text-align:left}.rail__rule{margin:var(--s-2) var(--s-3)}.nav-secondary{display:flex;flex-direction:column}.nav-who{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1);margin:0 0 var(--s-2);padding:0 var(--s-3);font-size:var(--t-sm);color:var(--muted)}.role-badge{display:inline-flex;align-items:center;padding:2px var(--s-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-size:var(--t-xs);font-weight:var(--w-bold)}.role-badge.student{border-color:var(--info);background:var(--info-bg);color:var(--info)}.role-badge.teacher{border-color:var(--warning);background:var(--warning-bg);color:var(--warning)}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-group+.nav-group{margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--border)}.nav-item{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:var(--tap);padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-md);background:0 0;color:var(--ink-2);font-family:var(--font-body);font-size:var(--t-sm);font-weight:var(--w-bold);text-align:left;text-decoration:none;cursor:pointer}.nav-item .icon{width:20px;height:20px;flex:0 0 20px}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item[aria-current=page]{background:var(--tint);color:var(--action)}.nav-item--danger,.nav-item--danger:hover{color:var(--danger)}.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-item[role=switch]::after{content:"Off";margin-left:auto;padding:1px var(--s-2);border:1px solid var(--border-strong);border-radius:var(--r-pill);font-size:var(--t-xs);color:var(--muted)}.nav-item[role=switch][aria-checked=true]::after{content:"On";border-color:var(--action);color:var(--action)}.logout-form{margin:0}.menu-sheet .dialog__body{padding-bottom:var(--s-5)}#chat{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--s-4) max(var(--s-4),calc((100% - 760px)/ 2)) var(--s-5);scroll-behavior:smooth;overscroll-behavior:contain}.msg{display:flex;gap:var(--s-2);align-items:flex-end;margin:var(--s-2) 0}.msg.user{justify-content:flex-end}.avatar{flex:0 0 32px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:var(--t-xs);font-weight:var(--w-bold);user-select:none}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.bot .avatar{background:var(--surface);border:1px solid var(--border)}.user .avatar{order:2;background:var(--secondary);color:var(--on-secondary)}.bubble{max-width:min(90%,680px);min-width:0;padding:var(--s-3) var(--s-4);border-radius:var(--r-lg);font-size:var(--t-md);line-height:var(--lh-body);overflow-wrap:anywhere;overflow-x:auto}.bot .bubble{background:var(--surface);color:var(--ink);border:1px solid var(--border);border-bottom-left-radius:var(--r-sm);box-shadow:var(--shadow-1)}.user .bubble{background:var(--secondary);color:var(--on-secondary);border-bottom-right-radius:var(--r-sm)}.bubble :where(p){margin:0 0 var(--s-2)}.bubble :where(p:last-child){margin-bottom:0}.bubble :where(ul,ol){margin:var(--s-1) 0 var(--s-2) var(--s-5);padding:0}.bubble :where(li){margin:var(--s-1) 0}.bubble :where(h1,h2,h3,h4){margin:var(--s-2) 0 var(--s-1);font-size:var(--t-md);font-family:var(--font-display);font-weight:var(--w-bold);color:inherit}.bubble :where(hr){border:0;border-top:1px solid var(--border);margin:var(--s-3) 0}.bubble :where(a){color:inherit;text-decoration:underline;text-underline-offset:2px}.bubble strong{font-weight:var(--w-bold)}.bubble em{font-style:italic}.bubble :where(code){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;padding:1px var(--s-1);border-radius:var(--r-sm);background:var(--surface-2)}.bubble :where(pre){margin:var(--s-2) 0 0;padding:var(--s-3);max-width:100%;overflow:auto;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}.bubble :where(pre code){background:0 0;padding:0}.bubble :where(blockquote){margin:var(--s-2) 0;padding:var(--s-2) var(--s-3);border-left:4px solid var(--border-strong);border-radius:0 var(--r-md) var(--r-md) 0;background:var(--bg)}.bubble table{width:100%;margin:var(--s-3) 0;border-collapse:collapse;table-layout:auto;font-size:var(--t-sm);background:var(--surface);border:2px solid var(--border-strong)}.bubble td,.bubble th{border:1px solid var(--border-strong);padding:var(--s-1) var(--s-3);text-align:left;vertical-align:middle}.bubble th{background:var(--surface-2);font-weight:var(--w-bold)}.bubble tr:nth-child(2n) td{background:var(--bg)}.user .bubble :where(code,pre,blockquote){background:0 0;border-color:currentColor;color:inherit}.user .bubble table,.user .bubble td,.user .bubble th,.user .bubble tr:nth-child(2n) td{background:0 0;border-color:currentColor;color:inherit}.meta{margin-top:var(--s-1);font-size:var(--t-xs);color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1)}.user .meta{color:inherit}.sources{margin-top:var(--s-2);font-size:var(--t-sm);color:var(--muted)}.sources a{color:var(--info)}.imgwrap img{display:block;max-width:100%;margin-top:var(--s-2);border-radius:var(--r-md);border:1px solid var(--border)}.inline-notice{margin:var(--s-2) auto;max-width:560px;padding:var(--s-2) var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);font-size:var(--t-sm);color:var(--muted);text-align:center}.practice-score{margin:var(--s-2) 0;padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-left:4px solid var(--success);border-radius:var(--r-md);background:var(--surface);font-size:var(--t-sm);font-weight:var(--w-bold)}.stopped-note{margin:var(--s-2) 0 0;font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--muted)}.replay-btn{display:inline-flex;align-items:center;gap:var(--s-1);min-height:var(--tap);min-width:var(--tap);padding:0 var(--s-3);margin-left:var(--s-1);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-family:var(--font-body);font-size:var(--t-xs);font-weight:var(--w-bold);cursor:pointer}.user .replay-btn{background:0 0;color:inherit;border-color:currentColor}.welcome.welcome-slim{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);padding:var(--s-2) 0 var(--s-5) 40px}.welcome-lead{margin:0;max-width:560px;color:var(--ink-2);font-size:var(--t-sm)}.topic-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.topic-chip{min-height:var(--tap);padding:var(--s-2) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:var(--t-sm);font-weight:var(--w-bold);line-height:1.3;text-align:left;cursor:pointer;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.topic-chip:hover{border-color:var(--ink);background:var(--tint)}.welcome-disclaimer{margin:0;max-width:560px;font-size:var(--t-xs);color:var(--muted)}.answer-options{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-3)}.answer-option{display:flex;align-items:center;gap:var(--s-3);width:100%;min-height:var(--tap);padding:var(--s-2) var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:var(--t-sm);font-weight:var(--w-bold);line-height:1.4;text-align:left;cursor:pointer}.answer-option:hover:not(:disabled){border-color:var(--ink);background:var(--tint)}.answer-option:disabled{cursor:default;opacity:.6}.answer-option .opt-letter{flex:0 0 28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-size:var(--t-xs)}.answer-option .opt-label{flex:1;min-width:0;overflow-wrap:anywhere}.answer-option.chosen{opacity:1;background:var(--secondary);border-color:var(--secondary);color:var(--on-secondary)}.answer-option.chosen .opt-letter{background:0 0;color:inherit;border:1px solid currentColor}.eb-hint{border-left:4px solid var(--info);background:var(--info-bg);margin:var(--s-3) 0 0;padding:var(--s-2) var(--s-3);border-top:1px solid var(--info);border-right:1px solid var(--info);border-bottom:1px solid var(--info);border-radius:var(--r-md);color:var(--ink);font-size:var(--t-sm);font-weight:var(--w-bold);line-height:1.5}textarea.awaiting-explain-back{border-color:var(--info);box-shadow:0 0 0 3px var(--info-bg)}textarea.awaiting-explain-back::placeholder{color:var(--info);opacity:1}.cut-off{margin:var(--s-2) 0 0;padding:var(--s-2) var(--s-3);border:1px solid var(--warning);border-left-width:4px;border-radius:var(--r-md);background:var(--warning-bg);color:var(--warning);font-size:var(--t-sm);font-weight:var(--w-bold);line-height:1.5}.cut-off-kept{margin:var(--s-2) 0 0;padding:var(--s-2) var(--s-3);max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--t-xs);white-space:pre-wrap;word-break:break-word}.test-card{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-left:4px solid var(--secondary);border-radius:var(--r-md);background:var(--bg)}.test-card-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-1)}.test-card-kind{font-size:var(--t-xs);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.test-card-head strong{font-size:var(--t-md)}.test-card-meta{margin:0 0 var(--s-2);font-size:var(--t-sm);color:var(--muted)}.test-card-label{margin:var(--s-3) 0 var(--s-2);font-size:var(--t-xs);font-weight:var(--w-bold);color:var(--ink)}.test-card-warn{margin-left:var(--s-2);padding:1px var(--s-2);border-radius:var(--r-sm);background:var(--warning-bg);color:var(--warning);font-size:var(--t-xs)}.test-card-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}.test-dl{min-height:var(--tap);padding:var(--s-2) var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:var(--t-sm);font-weight:var(--w-bold);cursor:pointer}.test-dl:hover:not(:disabled){border-color:var(--ink);background:var(--tint)}.test-dl:disabled{opacity:.6;cursor:default}.test-dl.memo{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}.expand-chat-btn{position:absolute;top:var(--s-2);right:var(--s-3);z-index:5;background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-1)}.expand-chat-btn .collapse-ico,.expand-chat-btn[aria-pressed=true] .expand-ico{display:none}.expand-chat-btn[aria-pressed=true] .collapse-ico{display:inline-flex}.expand-chat-btn span{display:inline-flex}html.chat-expanded .app-bar,html.chat-expanded .guest-band,html.chat-expanded .rail,html.chat-expanded .tabbar{display:none}html.chat-expanded body.app.has-tabbar .app-main{padding-bottom:0}html.chat-expanded .expand-chat-btn{position:fixed;top:calc(var(--s-2) + env(safe-area-inset-top));background:var(--secondary);color:var(--on-secondary);border-color:var(--secondary)}.app-view{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:var(--s-4) max(var(--s-4),calc((100% - 1080px)/ 2)) var(--s-8)}.composer{flex:0 0 auto;background:var(--surface);border-top:1px solid var(--border);padding:var(--s-2) var(--s-3) var(--s-2)}.composer__inner{max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--s-2)}.composer__form{display:flex;align-items:flex-end;gap:var(--s-1);min-width:0}.composer__form textarea{flex:1 1 auto;min-width:0;min-height:var(--tap);max-height:160px;resize:none;padding:var(--s-2) var(--s-3);border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:max(16px, var(--t-md));line-height:1.4;letter-spacing:var(--tracking-body);word-spacing:var(--word-spacing-body)}.composer__form textarea:focus-visible{border-color:var(--accent);outline-offset:0}.composer__form textarea::placeholder{color:var(--muted);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.composer__tool{flex:0 0 auto;color:var(--ink-2)}.composer__tool.has-files{background:var(--secondary);color:var(--on-secondary)}.composer__send{flex:0 0 auto;padding-inline:var(--s-3)}.send-label{display:none}.mic-btn.listening{background:var(--action);color:var(--on-action);animation:mentor-listen 1.2s ease-in-out infinite}.mic-btn.busy{opacity:.6;cursor:progress}@keyframes mentor-listen{0%,100%{outline:0 solid var(--action)}50%{outline:5px solid var(--action);outline-offset:2px}}.coal-btn{flex:0 0 auto;padding-inline:var(--s-2);gap:var(--s-1)}.coal-btn .btn-label{display:none}.coal-ico{display:inline-flex}.coal-btn.on{background:var(--secondary);border-color:var(--secondary);color:var(--on-secondary)}.pause-btn{flex:0 0 auto;padding-inline:var(--s-3);gap:var(--s-1)}.pause-btn[data-state=idle]{padding:0;width:var(--tap);background:0 0;border-color:transparent;color:var(--ink-2)}.pause-btn[data-state=idle]:hover{background:var(--tint)}.pause-btn .btn-label{display:none}.pause-btn[data-state=stream]{background:var(--action);border-color:var(--action);color:var(--on-action)}.pause-btn[data-state=voice-paused]{background:var(--secondary);border-color:var(--secondary);color:var(--on-secondary)}.composer__form[data-busy="1"] .composer__send{display:none}.file-tags{display:flex;flex-wrap:wrap;gap:var(--s-1)}.file-tags:empty{display:none}.file-tag{display:inline-flex;align-items:center;gap:var(--s-1);max-width:100%;padding:0 0 0 var(--s-3);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface-2);font-size:var(--t-xs)}.file-tag>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tag .remove{min-width:var(--tap);min-height:32px;border:0;background:0 0;color:var(--muted);font-size:var(--t-md);cursor:pointer}.pat-banner{display:none;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-3);border:1px solid var(--info);border-left-width:4px;border-radius:var(--r-md);background:var(--info-bg);font-size:var(--t-sm)}.pat-banner.on{display:flex}.pat-banner .grow{flex:1 1 200px;min-width:0}.practice-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-3);padding:var(--s-1) var(--s-1) var(--s-1) var(--s-3);border:1px solid var(--success);border-radius:var(--r-md);background:var(--success-bg);color:var(--success);font-size:var(--t-sm);font-weight:var(--w-bold)}.practice-bar__score{flex:1 1 auto;color:var(--ink)}.a11y-datasaver #uploadBtn{display:none}.check-view{margin-inline:auto;display:flex;flex-direction:column;gap:var(--s-4)}.check__title{margin:0;outline:0}.check__lead{margin:0;color:var(--ink-2)}.check__title+.check__lead{margin-top:calc(-1 * var(--s-2))}.check-card{display:flex;flex-direction:column;gap:var(--s-2)}.check-card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin:0;font-size:var(--t-sm)}.check-label{margin:var(--s-2) 0 0;font-size:var(--t-xs);font-weight:var(--w-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.check-task{margin:0;font-size:var(--t-lg);font-weight:var(--w-bold);line-height:1.4}.check-answer{margin:0;padding:var(--s-3) var(--s-4);overflow-x:auto;border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--t-md);line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.check-ask{margin:0;font-weight:var(--w-bold)}.check-options{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-2)}.check-option{display:flex;align-items:center;gap:var(--s-3);min-height:52px;width:100%;padding:var(--s-3) var(--s-4);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-family:var(--font-body);font-size:var(--t-md);line-height:1.4;text-align:left;cursor:pointer;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.check-option:hover{border-color:var(--ink);background:var(--tint)}.check-option__letter{flex:0 0 32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);font-weight:var(--w-bold);font-size:var(--t-sm)}.check-option__text{flex:1 1 auto;min-width:0}.check-option[aria-pressed=true]{border-width:2px;padding:calc(var(--s-3) - 1px) calc(var(--s-4) - 1px)}.check-option.is-right{border:2px solid var(--success);background:var(--success-bg);padding:calc(var(--s-3) - 1px) calc(var(--s-4) - 1px)}.check-option.is-right .check-option__letter{background:var(--success);color:var(--success-bg)}.check-option.is-wrong{border:2px solid var(--danger);background:var(--danger-bg);padding:calc(var(--s-3) - 1px) calc(var(--s-4) - 1px)}.check-option.is-wrong .check-option__letter{background:var(--danger);color:var(--danger-bg)}.check-option[aria-disabled=true]{cursor:default}.check-option[aria-disabled=true]:not(.is-right):not(.is-wrong){opacity:.7}.check-feedback:empty{display:none}.check__actions{margin-top:var(--s-1)}.check__practice{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3)}.check__practice p{margin:0}.check__loading{padding:var(--s-4) 0}.dialog__title .badge{vertical-align:middle}.subject-options{border:0;margin:0;padding:0;min-width:0}.subject-radio-list{display:grid;gap:var(--s-2)}.subject-radio{display:flex;align-items:center;gap:var(--s-3);min-height:56px;padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer}.subject-radio:hover{border-color:var(--border-strong)}.subject-radio:has(input:checked){border:2px solid var(--ink);padding:calc(var(--s-2) - 1px) calc(var(--s-3) - 1px);background:var(--tint)}.subject-radio input{width:20px;height:20px;margin:0;flex:0 0 20px;accent-color:var(--action)}.subject-radio__name{flex:1 1 auto;min-width:0;font-weight:var(--w-bold)}.subject-radio-group+.subject-radio-group{margin-top:var(--s-4)}.subject-group__title,.subject-radio-group__title{margin:0 0 var(--s-2);font-family:var(--font-body);font-size:var(--t-sm);font-weight:var(--w-bold);color:var(--ink-2);letter-spacing:.02em}@media (min-width:480px){.subject-radio-group .subject-radio-list{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-radio{min-height:52px}}.subject-note{margin:var(--s-3) 0 0}.subject-tile{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:52px;height:32px;padding:0 var(--s-2);border-radius:var(--r-sm);background:var(--secondary);color:var(--on-secondary);font-family:var(--font-display);font-weight:var(--w-display);font-size:var(--t-xs);letter-spacing:.06em}.chat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-1)}.chat-list__item{display:flex;align-items:center;gap:var(--s-1);border-radius:var(--r-md)}.chat-list__item.active{background:var(--tint)}.chat-list__open{flex:1 1 auto;min-width:0;min-height:var(--tap);padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-md);background:0 0;color:var(--ink);font-family:var(--font-body);font-size:var(--t-md);font-weight:var(--w-bold);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.chat-list__open:hover{background:var(--surface-2)}.chat-list__del{color:var(--muted)}.chat-list__empty{padding:var(--s-4);color:var(--muted);text-align:center}.help-body h3{margin:var(--s-4) 0 var(--s-2);font-size:var(--t-md)}.help-body h3:first-child{margin-top:0}.help-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-2)}.help-grid section{padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg)}.help-grid h3{margin:0 0 var(--s-1);font-size:var(--t-sm)}.help-grid p{margin:0;font-size:var(--t-sm);color:var(--ink-2)}.help-note{margin:var(--s-3) 0 0;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--info-bg);font-size:var(--t-sm)}.help-counter{margin:var(--s-3) 0 0;min-height:1.2em;font-size:var(--t-sm);color:var(--muted)}.help-counter:empty{margin:0}.help-actions-spacer{flex:1 1 auto}.dialog__foot.help-actions .btn{flex:0 0 auto}.a11y-list{list-style:none;margin:0;padding:0}.a11y-list li{border-bottom:1px solid var(--border)}.a11y-list li:last-child{border-bottom:0}.a11y-list small{display:block;color:var(--muted);font-size:var(--t-sm);font-weight:400}.a11y-list .check{font-weight:var(--w-bold)}.a11y-rate{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);min-height:var(--tap);padding-block:var(--s-2);font-weight:var(--w-bold)}.a11y-rate input[type=range]{flex:1 1 140px;accent-color:var(--action);min-height:var(--tap)}.tour-spotlight{position:fixed;z-index:calc(var(--z-dialog) - 1);pointer-events:none;border-radius:var(--r-lg);outline:var(--focus-w) solid var(--accent);box-shadow:0 0 0 9999px var(--scrim);transition:top var(--dur) var(--ease),left var(--dur) var(--ease),width var(--dur) var(--ease),height var(--dur) var(--ease)}.dialog.tour-mode::backdrop{background:0 0}.dialog.tour-mode{max-height:55dvh}.dialog.tour-mode.tour-top{inset:0 0 auto 0;border-radius:0 0 var(--r-lg) var(--r-lg);padding-top:env(safe-area-inset-top)}.net-banner{display:none;position:fixed;left:0;right:0;top:0;z-index:var(--z-toast);padding:var(--s-2) var(--s-3);padding-top:calc(var(--s-2) + env(safe-area-inset-top));background:var(--warning-bg);color:var(--warning);border-bottom:2px solid var(--warning);font-size:var(--t-sm);font-weight:var(--w-bold);text-align:center}.is-offline .net-banner{display:block}.start{padding-block:var(--s-5) var(--s-8)}.start__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5)}.start__hero{display:flex;flex-direction:column;gap:var(--s-3)}.start__hero .display{margin:0;font-size:var(--t-2xl)}.start__lead{margin:0;max-width:560px;color:var(--ink-2);font-size:var(--t-md)}.start__ticks{display:none;list-style:none;margin:var(--s-2) 0 0;padding:0;flex-direction:column;gap:var(--s-2)}.start__ticks li{display:flex;align-items:flex-start;gap:var(--s-2);color:var(--ink-2)}.start__ticks .icon{flex:0 0 20px;color:var(--success);margin-top:3px}.start__qr{display:none;align-items:center;gap:var(--s-4);margin-top:var(--s-4);padding:var(--s-4);border:1px dashed var(--border-strong);border-radius:var(--r-lg);max-width:440px}.start__qr p{margin:0}.start__qr-code{flex:0 0 120px;width:120px;height:120px;padding:var(--s-1);display:flex;align-items:center;justify-content:center;background:var(--on-bar);color:var(--bar-bg);border-radius:var(--r-md)}.start__qr-code svg{width:100%;height:100%}.start__side{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}.start__step{display:flex;align-items:center;gap:var(--s-2);margin:0 0 var(--s-3);font-size:var(--t-lg)}.start__step:not(:first-child){margin-top:var(--s-5)}.start__num{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;height:28px;border-radius:50%;background:var(--secondary);color:var(--on-secondary);font-size:var(--t-sm)}.start__picker .subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-card__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-1) var(--s-2);width:100%;margin-bottom:var(--s-1)}.subject-groups{display:flex;flex-direction:column;gap:var(--s-4)}.subject-card__meta,.subject-card__title{max-width:100%;overflow-wrap:anywhere}.start__picker .subject-card{padding:var(--s-3);min-height:0}.start__picker .subject-card[aria-pressed=true]{padding:calc(var(--s-3) - 1px)}.start__picker .subject-card__title{font-size:var(--t-md)}@media (min-width:480px){.start__picker .subject-card{padding:var(--s-4);min-height:88px}.start__picker .subject-card[aria-pressed=true]{padding:calc(var(--s-4) - 1px)}.start__picker .subject-card__title{font-size:var(--t-lg)}}.subject-card .subject-tile{min-width:56px}.start__more{margin-top:var(--s-3)}.start__notbuilt{margin-top:var(--s-3);grid-template-columns:repeat(2,minmax(0,1fr))}.start__notbuilt .subject-card{min-height:72px}.start__try{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3)}.start__hint{margin:var(--s-3) 0 0;font-size:var(--t-sm);color:var(--muted)}.start__signin h2{margin-bottom:var(--s-4)}.start__signin .alert{margin-bottom:var(--s-4)}.start__small{margin:0;text-align:center;font-size:var(--t-sm)}.start__links a,.start__small a{display:inline-block;min-height:var(--tap);line-height:var(--tap)}.start__links{margin:var(--s-3) 0 0;text-align:center;font-size:var(--t-sm);color:var(--muted)}.start-page .subject-grid{margin:0}button.subject-card{font-family:var(--font-body)}.a11y-contrast .bubble,.a11y-contrast .check-option,.a11y-contrast .topic-chip{border-color:var(--ink)}.a11y-reduce-motion *,.a11y-reduce-motion ::after,.a11y-reduce-motion ::before{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media (prefers-reduced-motion:reduce){#chat{scroll-behavior:auto}.mic-btn.listening{animation:none}}@media (min-width:480px){.send-label{display:inline}.coal-btn .btn-label{display:inline}.coal-btn{padding-inline:var(--s-3)}body.app .app-bar__brand img{height:36px}.chip-grade{display:inline}.help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.start__try{grid-template-columns:repeat(2,minmax(0,1fr))}.test-card-btns{display:flex;flex-wrap:wrap}}@media (min-width:768px){.pause-btn:not([data-state=idle]) .btn-label{display:inline}.composer{padding:var(--s-3) var(--s-4)}.check-options{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog.help-dialog{max-width:620px}.dialog.dialog--wide{max-width:760px}.dialog.tour-mode{inset:auto var(--s-6) var(--s-6) auto;margin:0;width:min(440px,calc(100% - var(--s-8)));max-height:70dvh}.dialog.tour-mode.tour-top{inset:calc(var(--bar-h) + var(--s-4)) var(--s-6) auto auto;border-radius:var(--r-lg);padding-top:0}.start__hero .display{font-size:var(--t-3xl)}.start__lead{font-size:var(--t-lg)}.welcome.welcome-slim{padding-left:40px}}@media (min-width:1024px){body.app .app-layout{display:grid;grid-template-columns:240px minmax(0,1fr);align-items:stretch}body.app .rail{position:static;top:auto;max-height:none;min-height:0;overflow-y:auto}body.app.has-tabbar .app-main{padding-bottom:0}.subject-change{display:inline-flex;color:var(--on-bar)}.menu-btn{display:none}.score-pill{display:inline-flex;align-items:center;padding:var(--s-1) var(--s-3);border:1px solid currentColor;border-radius:var(--r-pill);color:var(--on-bar);font-size:var(--t-sm);font-weight:var(--w-bold);white-space:nowrap}.guest-band{padding-inline:var(--s-6)}.start{padding-block:var(--s-7) var(--s-8)}.start__grid{grid-template-columns:minmax(0,1fr) minmax(0,520px);gap:var(--s-8);align-items:start}.start__hero{position:sticky;top:calc(var(--bar-h) + var(--s-6));padding-top:var(--s-5)}.start__qr,.start__ticks{display:flex}}@media (min-width:1440px){body.app .app-layout{grid-template-columns:264px minmax(0,1fr)}.bubble{font-size:var(--t-md)}}@media (max-height:499px){.guest-band{flex-wrap:nowrap;min-height:0;padding-block:2px;gap:var(--s-2)}.guest-band .quest-bar{flex:1 1 auto}}@media print{.app-bar,.composer,.expand-chat-btn,.guest-band,.net-banner,.rail,.replay-btn,.skip-link,.tabbar{display:none!important}body.app{display:block;height:auto;overflow:visible}body.app .app-layout,body.app .app-main{display:block;padding:0}#chat,.app-view{overflow:visible;padding:0}.bubble{box-shadow:none;break-inside:avoid}}