.note-text{-webkit-user-select:text;user-select:text}.note-mark{background:var(--tint-amber,#fff0a8);color:inherit;border-bottom:2px solid var(--border-orange,#d9b54b);cursor:pointer;border-radius:2px;padding:0}.note-mark:focus-visible,.text-highlight:focus-visible{outline:2px solid var(--border-teal,#217c6d);outline-offset:3px}.text-highlight{background:var(--tint-amber,#ffe66d);color:var(--text,#000);cursor:pointer;border-radius:2px;padding:0}.note-tip{z-index:1300;color:var(--on-solid,white);border:1px solid var(--border-green,#175242);background:#226958;border-radius:9px;flex-wrap:wrap;gap:4px;max-width:calc(100vw - 24px);min-height:44px;padding:4px;display:flex;position:fixed;box-shadow:0 5px 20px #173a3433}.note-tip button{color:var(--on-solid,white);white-space:nowrap;background:0 0;border:0;border-radius:6px;min-height:44px;padding:8px 12px}.note-tip .note-highlight-action{background:var(--tint-amber,#ffe66d);color:var(--text,#000)}.note-tip button:focus-visible{outline:2px solid var(--line,white);outline-offset:-2px}@media (width<=767px){.note-tip{width:var(--note-dock-width,calc(100vw - 24px));box-sizing:border-box;max-width:none;transform:translateY(-100%);left:var(--note-dock-left,12px)!important;top:calc(var(--note-dock-edge,100dvh - 8px) - var(--note-dock-safe,env(safe-area-inset-bottom,0px)))!important}.note-tip button{flex:1 0 auto}}.note-tip.note-tip-touch{width:var(--note-dock-width,calc(100vw - 24px));box-sizing:border-box;max-width:none;transform:translateY(-100%);left:var(--note-dock-left,12px)!important;top:calc(var(--note-dock-edge,100dvh - 8px) - var(--note-dock-safe,env(safe-area-inset-bottom,0px)))!important}.note-tip.note-tip-touch button{flex:1 0 auto}.note-backdrop{z-index:1200;background:#163c3659;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.note-panel{background:var(--surface,#fffefa);color:var(--text,#1c3d50);border-radius:20px;width:min(620px,100%);min-width:0;max-width:100%;max-height:min(88dvh,100%);padding:24px;overflow-y:auto;box-shadow:0 18px 70px #133d3633}.note-panel header,.note-panel footer,.note-list footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.note-panel header{margin-bottom:12px}.note-panel h2{margin:0}.note-panel footer{flex-wrap:wrap;justify-content:flex-end;margin-top:20px}.note-quote{border-left:3px solid var(--border-orange,#d8bc59);background:var(--tint-amber,#fff9df);white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;margin:12px 0;padding:12px 16px;overflow:auto}.note-visibility{color:var(--text-muted,#61776a);font-size:13px}.note-compose{gap:10px;margin-top:14px;display:grid}.note-compose textarea{resize:vertical;border:1px solid var(--line,#c7d9cf);width:100%;font:inherit;border-radius:8px;min-height:150px;padding:12px}.note-upload{border:1px dashed var(--line,#8cafa0);border-radius:10px;gap:10px;padding:14px;display:grid}.note-upload input{max-width:100%}.note-images{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.note-images figure{gap:6px;max-width:100%;margin:0;display:grid}.note-images img{object-fit:contain;background:var(--tint-green,#f0f4ef);border-radius:8px;width:160px;max-width:100%;height:130px}.note-markdown{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;font-weight:400;line-height:1.8}.note-markdown :is(h1,h2,h3,h4,h5,h6){margin:1.1em 0 .5em;font-weight:700;line-height:1.5}.note-markdown h1{font-size:1.5em}.note-markdown h2{font-size:1.3em}.note-markdown h3{font-size:1.15em}.note-markdown :is(h4,h5,h6){font-size:1em}.note-markdown p{margin:.65em 0}.note-markdown>:first-child{margin-top:0}.note-markdown>:last-child{margin-bottom:0}.note-markdown :is(ul,ol){margin:.65em 0;padding-left:1.6em}.note-markdown li{margin:.25em 0}.note-markdown blockquote{border-left:3px solid var(--line,#8cafa0);background:var(--tint-green,#f0f4ef);margin:.8em 0;padding:8px 14px}.note-markdown a{color:var(--text-teal,#217c6d);text-decoration:underline}.note-markdown code{background:var(--tint-green,#edf2ef);border-radius:4px;padding:.15em .3em;font-size:.9em}.note-markdown pre{background:var(--tint-green,#edf2ef);white-space:pre;border-radius:8px;max-width:100%;padding:12px;overflow-x:auto}.note-markdown pre code{padding:0}.note-markdown hr{border:0;border-top:1px solid var(--line,#cfddd4);margin:1em 0}.note-table-scroll{max-width:100%;margin:.8em 0;overflow-x:auto}.note-table-scroll:focus-visible{outline:2px solid var(--border-teal,#217c6d);outline-offset:-2px}.note-markdown table{border-collapse:collapse;width:100%;font-size:.95em}.note-markdown :is(th,td){border:1px solid var(--line,#cfddd4);min-width:110px;padding:8px 12px}.note-markdown th{background:var(--tint-green,#edf4ef);font-weight:700}.note-preview{border:1px solid var(--line,#cfddd4);border-radius:8px;padding:12px}.note-preview summary{cursor:pointer;color:var(--text-teal,#217c6d)}.note-preview[open] summary{margin-bottom:12px}.note-choice{text-align:left;overflow-wrap:anywhere;width:100%;margin-top:12px;display:grid}.note-choice small{color:var(--text-muted,#64746d)}.note-filters select{width:auto;min-width:170px}.note-filters input{width:auto}.note-card-open{font-weight:400}.note-card-open h3{font-weight:700}.note-filters{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.note-filters input{flex:1;min-width:180px}.note-filters select,.note-filters input{border:1px solid var(--line,#cfddd4);background:var(--surface,white);font:inherit;border-radius:9px;padding:12px}.note-list{gap:18px;display:grid}.note-card-open{text-align:left;width:100%;color:inherit;background:0 0;border:0;padding:0;display:block}.note-card-open h3{margin:10px 0}.note-excerpt{overflow-wrap:anywhere;max-height:5.4em;overflow:hidden}.note-excerpt :is(h1,h2,h3,h4,h5,h6){margin:0;font-size:1em}.note-excerpt p{margin:0}.note-excerpt .note-table-scroll{overflow:hidden}.note-thumbs{gap:10px;margin-bottom:16px;display:flex}.note-thumbs img{object-fit:cover;border-radius:6px;width:72px;height:60px}.note-pagination{justify-content:center;align-items:center;gap:18px;margin:24px 0;display:flex}.note-status{color:var(--text-orange,#766347);font-size:13px}.note-chapter-block p{overflow-wrap:anywhere}@media (width<=640px){.note-backdrop{align-items:flex-end;padding:0}.note-panel{max-height:min(90dvh,100%);padding:20px 18px max(20px, env(safe-area-inset-bottom));border-radius:20px 20px 0 0}.note-filters input{flex-basis:100%;width:100%}.note-filters select{flex:1;min-width:0}.note-panel footer button{min-height:44px}.note-list footer{flex-wrap:wrap}}:is(.note-panel:has(.note-compose),.note-panel:has(.note-inline-image)){width:min(900px,100%)}.note-compose input[type=text],.note-compose #note-title{border:1px solid var(--line,#c7d9cf);width:100%;min-width:0;font:inherit;border-radius:8px;padding:12px}.note-inline-image{border-radius:8px;max-width:100%;height:auto;margin:16px 0;display:block}.note-actions{justify-content:flex-end;margin:-8px 0 20px;display:flex}.note-thumbs{flex-wrap:wrap}.selected-vocabulary-card{border:1px solid var(--line,#dce7df);background:var(--surface,white);overflow-wrap:anywhere;border-radius:16px;padding:24px;position:relative}.selected-vocabulary-status{border-top:1px solid var(--line,#e5ede8);margin-bottom:0;padding-top:16px;font-size:14px}@media (width<=480px){.note-tip button{padding:8px}}.selected-vocabulary-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.note-panel .selected-vocabulary-heading h2{min-width:0;margin:4px 0 12px;font-size:28px}.selected-vocabulary-controls{flex-shrink:0;gap:10px;display:flex}.selected-vocabulary-controls .is-saved:disabled{opacity:1}.selected-vocabulary-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.selected-vocabulary-pos{background:var(--tint-green,#edf3f0);border-radius:8px;padding:3px 10px;font-size:14px}.selected-vocabulary-missing{background:var(--tint-orange,#fff3df);color:var(--text-orange,#885313);border-radius:20px;margin:0 0 16px;padding:5px 12px;font-size:13px;display:inline-block}.selected-vocabulary-ai{background:var(--tint-green,#edf5f1);border-radius:12px;align-items:center;gap:18px;margin-bottom:24px;padding:20px;display:flex}.selected-vocabulary-ai p{margin:6px 0 0;font-size:14px}.selected-vocabulary-ai.complete{color:var(--text-teal,#246e64);gap:10px;margin-bottom:18px;padding:12px 14px}.selected-vocabulary-spinner{color:var(--text-teal,#287f73);flex-shrink:0;animation:1.2s linear infinite vocabulary-spin}.selected-vocabulary-definition{margin:12px 0 8px;font-size:26px}.selected-vocabulary-section{margin-top:18px}.selected-vocabulary-section h4,.selected-vocabulary-example h4{margin:0 0 12px;font-size:15px}.selected-vocabulary-example{border:1px solid var(--line,#e0eae4);background:var(--surface,#f1f6f3);border-radius:10px;margin:0;padding:16px}.selected-vocabulary-example p{margin:0}.selected-vocabulary-example p+p{margin-top:6px}.selected-vocabulary-collocations{gap:6px;margin:0;padding:0;list-style:none;display:grid}.selected-vocabulary-collocations li{background:var(--surface,#f3f6f4);border-radius:8px;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;padding:8px 12px;display:flex}.selected-vocabulary-source{margin:16px 0 0;font-size:13px}.selected-vocabulary-skeleton{margin:24px 0}.selected-vocabulary-skeleton h4{margin:24px 0 12px;font-size:15px}.selected-vocabulary-skeleton i{background:var(--surface-soft,#e4ebe8);border-radius:20px;height:14px;margin:10px 0;animation:1.8s ease-in-out infinite vocabulary-pulse;display:block}.selected-vocabulary-skeleton i:nth-of-type(2n){width:65%}@keyframes vocabulary-spin{to{transform:rotate(360deg)}}@keyframes vocabulary-pulse{50%{opacity:.4}}@media (width<=480px){.selected-vocabulary-card{padding:16px}.note-panel .selected-vocabulary-heading h2{font-size:24px}.selected-vocabulary-controls{gap:6px}.selected-vocabulary-ai{gap:12px;padding:14px}.selected-vocabulary-definition{font-size:23px}}@media (prefers-reduced-motion:reduce){.selected-vocabulary-spinner,.selected-vocabulary-skeleton i{animation:none}}.selected-vocabulary-card>p{margin-top:8px;margin-bottom:8px}.selected-vocabulary-card .selected-vocabulary-status{margin-bottom:0;padding-top:12px}.pronunciation-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pronunciation-controls .pronunciation-slow{background:var(--tint-green,#edf6f2);color:var(--text-teal,#218579)}.pronunciation-practice{background:var(--tint-green,#edf6f2);text-align:left;border-radius:16px;min-width:0;margin:18px 0;padding:20px}.pronunciation-practice h3{margin:0 0 18px;font-size:1.05rem}.pronunciation-practice .pronunciation-expand{padding:0}.pronunciation-syllables{text-align:center;overflow-wrap:anywhere;margin:12px 0;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.6}.pronunciation-syllables strong{color:var(--text-teal,#16766a);background:var(--surface,#dceee6);border-radius:9px;padding:2px 7px}.pronunciation-secondary{text-underline-offset:5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.pronunciation-ipa{text-align:center;overflow-wrap:anywhere;font-size:1.15rem}.pronunciation-stress{text-align:center;color:var(--text-teal,#16766a)}.pronunciation-practice .pronunciation-controls{margin:18px 0}.pronunciation-practice .pronunciation-controls>button{flex:130px}.pronunciation-speed{color:var(--muted);gap:8px;font-size:.9rem;display:grid}.pronunciation-rates{border:1px solid var(--line);border-radius:10px;display:flex;overflow:hidden}.pronunciation-rates button{border:0;border-radius:0;flex:1;min-width:0;padding:8px}.pronunciation-rates button[aria-pressed=true]{background:var(--green);color:var(--on-solid,white)}[data-theme=dark] .pronunciation-rates button[aria-pressed=true]{color:#182b25}.pronunciation-tip,.pronunciation-status{font-size:.85rem;line-height:1.6}.pronunciation-tip{text-align:center}.pronunciation-status button{font-size:inherit}.vocabulary-word-heading{flex-wrap:wrap}.vocabulary-word-heading>h2{overflow-wrap:anywhere;min-width:0}@media (width<=480px){.pronunciation-practice{padding:14px}.vocabulary-word-heading .pronunciation-controls{margin-left:auto}}.vocabulary-card-actions,.vocabulary-word-heading{align-items:center;gap:12px;display:flex}.vocabulary-compact-bar{z-index:10;background:var(--surface,#f8faf7);border-bottom:1px solid var(--line,#dbe5df);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex;position:sticky;top:0}.vocabulary-compact-bar small{margin-top:4px;display:block}.vocabulary-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:32px;display:grid}.vocabulary-compact-word{perspective:900px;text-align:center;overflow-wrap:anywhere;cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:auto;background:0 0;border:0;justify-content:stretch;align-items:stretch;min-width:0;min-height:76px;padding:0;font-size:clamp(15px,3.8vw,22px);line-height:1.4;display:grid}.vocabulary-compact-flipper{width:100%;min-width:0;min-height:inherit;border-radius:inherit;transform-style:preserve-3d;transition:transform .3s;display:grid}.vocabulary-compact-word.is-flipped .vocabulary-compact-flipper{transform:rotateY(180deg)}.vocabulary-compact-face{min-width:0;line-height:inherit;border:1px solid var(--line,#dbe5df);border-radius:inherit;background:var(--surface,#f8faf7);backface-visibility:hidden;grid-area:1/1;align-items:center;padding:14px 6px;display:grid}.vocabulary-compact-back{transform:rotateY(180deg)}.vocabulary-compact-word[data-highlight] .vocabulary-compact-face{color:#263432;background:#fff}.vocabulary-compact-word[data-highlight=yellow] .vocabulary-compact-face{background:#fff4bf}@media (prefers-reduced-motion:reduce){.vocabulary-compact-flipper{transition:none}}.vocabulary-compact-word.is-dragging{cursor:grabbing;background:var(--tint-green,#edf3ef);outline:3px solid var(--border-teal,#278c80);outline-offset:-3px;box-shadow:0 5px 16px #1d3c3926}.vocabulary-compact-word.is-dragging .vocabulary-compact-face{background:var(--tint-green,#edf3ef)}.vocabulary-sort-announcement{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.vocabulary-word-heading{justify-content:space-between}.vocabulary-word-heading h2{overflow-wrap:anywhere;margin:0}.vocabulary-star-wrap{flex-shrink:0;display:inline-flex;position:relative}.vocabulary-star.is-saved{color:var(--text-orange,#997226);background:var(--tint-orange,#faf3df)}.vocabulary-star-popover{z-index:20;background:var(--surface,white);border:1px solid var(--line,#dbe5df);border-radius:14px;gap:10px;width:min(280px,75vw);padding:16px;font-size:14px;font-weight:400;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 30px #1d3c3926}.visual-word-top .vocabulary-star-wrap{margin-left:auto}.vocabulary-bank-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px;display:grid}.vocabulary-bank-stats .card{padding:22px}.vocabulary-bank-stats strong{margin-top:8px;font-size:32px;display:block}.vocabulary-schedule{background:var(--tint-green,#edf3ef);border-radius:16px;margin:20px 0;padding:18px 22px}.vocabulary-schedule summary,.vocabulary-sources summary{cursor:pointer;font-weight:600}.vocabulary-bank-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin:24px 0;display:flex}.vocabulary-bank-toolbar label{gap:8px;font-size:14px;display:grid}.vocabulary-bank-toolbar select,.vocabulary-bank-toolbar input{max-width:100%}.vocabulary-bank-filters{flex-wrap:wrap;gap:8px;display:flex}.vocabulary-flashcard{max-width:760px;margin:24px auto;padding:32px}.vocabulary-card-progress{justify-content:space-between;gap:12px;margin-bottom:14px;font-size:14px;display:flex}.vocabulary-card-pronunciation{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;display:flex}.vocabulary-card-pronunciation[hidden]{display:none}.vocabulary-recall-face{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:320px;display:flex}.vocabulary-recall-face h2{overflow-wrap:anywhere;max-width:100%;margin:8px 0;font-size:clamp(28px,5vw,48px)}.vocabulary-answer{overflow-wrap:anywhere;margin-top:28px}.vocabulary-ratings{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:28px 0;display:grid}.vocabulary-ratings button{flex-wrap:wrap;justify-content:center;padding:16px 8px}.vocabulary-ratings small{width:100%;font-size:12px;font-weight:400;display:block}.vocabulary-sources{border-top:1px solid var(--line,#dbe5df);margin-top:20px;padding:18px 0}.vocabulary-sources section{border-bottom:1px solid var(--line,#dbe5df);padding:12px 0}.vocabulary-batch-done{text-align:center;padding:48px 24px}.vocabulary-bank-page button:focus-visible,.vocabulary-star:focus-visible{outline:3px solid var(--border-teal,#278c80);outline-offset:3px}@media (width<=600px){.vocabulary-bank-stats{gap:8px}.vocabulary-bank-stats .card{padding:16px 12px}.vocabulary-bank-stats strong{font-size:26px}.vocabulary-flashcard{padding:20px 16px}.vocabulary-card-progress{flex-wrap:wrap}.vocabulary-bank-filters{gap:6px}.vocabulary-bank-filters button{padding:10px 12px}.vocabulary-ratings{gap:6px}.vocabulary-ratings button{min-height:88px;font-size:15px}}.vocabulary-bank-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.vocabulary-bank-heading>button{flex-shrink:0}.vocabulary-add-form{margin-bottom:20px}.vocabulary-add-form>label{margin-bottom:8px;font-weight:600;display:block}.vocabulary-add-input{gap:10px;display:flex}.vocabulary-add-input input{flex:1;min-width:0}.vocabulary-add-input button{flex-shrink:0}.vocabulary-add-form p{font-size:14px}.vocabulary-meaning-choice{gap:8px;margin:12px 0 20px;display:grid}.vocabulary-meaning-choice select{width:100%;min-width:0}@media (width<=600px){.vocabulary-bank-heading{flex-direction:column;align-items:flex-start;gap:0;margin-bottom:24px}.vocabulary-add-input{flex-direction:column}}.vocabulary-compact-workspace{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:16px;display:grid}.vocabulary-compact-actions{align-items:center;gap:12px;display:flex}.vocabulary-compact-status{color:var(--muted,#637b7a);font-size:13px}.vocabulary-compact-help{margin:10px 0 16px;font-size:13px}.vocabulary-compact-help>span{margin-top:4px;display:block}.vocabulary-compact-categories{overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--line,#dbe5df);background:var(--surface,#f8faf7);border-radius:12px;max-height:calc(100dvh - 116px);padding:14px 10px;position:sticky;top:94px;overflow-y:auto}.vocabulary-compact-categories>p{margin:4px 0 16px;font-size:12px}.vocabulary-compact-category-group+.vocabulary-compact-category-group{border-top:1px solid var(--line,#dbe5df);margin-top:16px;padding-top:12px}.vocabulary-compact-category-group h3{margin:0 0 8px;font-size:13px}.vocabulary-compact-category{background:var(--bg,#eff4f3);text-align:left;cursor:default;border:2px solid #0000;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;width:100%;min-height:48px;margin:0 0 8px;padding:9px 8px;font-size:14px;display:flex}.vocabulary-compact-category-name{overflow-wrap:anywhere;flex:1;min-width:0}.vocabulary-compact-category-name>span{color:var(--text-teal,#278c80)}.vocabulary-compact-category-count{background:var(--line,#dbe5df);white-space:nowrap;border-radius:12px;padding:2px 6px;font-size:12px}.vocabulary-compact-category.is-drop-target{border:2px dashed var(--border-teal,#278c80);background:var(--tint-green,#edf3ef)}.vocabulary-compact-category-hint{color:var(--text-teal,#278c80);overflow-wrap:anywhere;flex-basis:100%;font-size:12px;line-height:1.4}.vocabulary-compact-grid{align-items:stretch;margin-bottom:32px;padding-bottom:0;position:relative}.vocabulary-compact-word{border-radius:12px;position:relative}.vocabulary-compact-word.is-dragging{box-shadow:none;background:0 0;border:0;outline:none}.vocabulary-compact-word.is-dragging .vocabulary-compact-flipper{visibility:hidden}.vocabulary-compact-word.is-placeholder{background:var(--tint-green,#edf3ef);border:0}.vocabulary-compact-word.is-dragging:after{content:"";pointer-events:none;border:2px dashed var(--muted,#8b9ca2);border-radius:inherit;position:absolute;inset:0}.vocabulary-compact-word.is-placeholder:after{content:attr(data-drop-label);color:var(--text-teal,#278c80);border-color:var(--border-teal,#278c80);place-items:center;padding:4px;font-size:14px;display:grid;position:absolute;inset:0}.vocabulary-compact-origin{pointer-events:none;z-index:2;box-sizing:border-box;border:2px dashed var(--muted,#8b9ca2);opacity:.5;border-radius:12px;position:absolute}.vocabulary-compact-origin>span{white-space:nowrap;text-overflow:ellipsis;padding:3px 6px;font-size:11px;line-height:1.2;display:block;overflow:hidden}.vocabulary-compact-overlay{z-index:1200;pointer-events:none;box-sizing:border-box;border:2px solid var(--border-teal,#278c80);background:var(--surface,#f8faf7);color:var(--text,#163a4c);overflow-wrap:anywhere;text-align:center;border-radius:12px;place-items:center;padding:14px 6px;font-size:clamp(15px,3.8vw,22px);font-weight:600;display:grid;position:fixed;box-shadow:0 12px 28px #173d3a33}@media (width<=767px){.vocabulary-compact-workspace{grid-template-columns:96px minmax(0,1fr);gap:8px}.vocabulary-compact-categories{padding:10px 5px;top:94px}.vocabulary-compact-categories>strong{font-size:13px}.vocabulary-compact-category{padding:6px 4px;font-size:12px}.vocabulary-compact-category-name{flex-basis:100%}.vocabulary-compact-category-count{padding:1px 5px}.vocabulary-compact-category-name>span{display:none}.vocabulary-compact-grid{gap:6px}.vocabulary-compact-word{min-width:44px;min-height:76px;font-size:15px}.vocabulary-compact-face{padding:10px 3px}.vocabulary-compact-word.is-placeholder:after{font-size:12px}.vocabulary-compact-actions{flex-direction:column;align-items:flex-end;gap:2px}.vocabulary-compact-status{font-size:11px}.vocabulary-compact-origin>span{padding:2px;font-size:9px}}.vocabulary-compact-card{min-width:0;display:grid;position:relative}.vocabulary-compact-card.is-selected{outline:2px solid var(--border-teal,#278c80);outline-offset:2px;border-radius:12px}.vocabulary-compact-card.is-selecting .vocabulary-compact-face{padding-top:32px}.vocabulary-compact-check{cursor:pointer;place-items:center;width:36px;height:36px;display:grid;position:absolute;top:0;right:0}.vocabulary-compact-check input{width:16px;height:16px;accent-color:var(--border-teal,#278c80);margin:0}.vocabulary-compact-selection-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.vocabulary-compact-category-heading{justify-content:space-between;align-items:center;gap:4px;display:flex}.vocabulary-compact-category-heading button,.vocabulary-compact-expand{place-items:center;min-height:40px;padding:8px;display:grid}.vocabulary-compact-workspace.is-collapsed{grid-template-columns:40px minmax(0,1fr)}.vocabulary-compact-expand{position:sticky;top:94px}#compact-category-content>p{margin:4px 0 16px;font-size:12px}@media (width<=767px){.vocabulary-compact-category-heading strong{white-space:nowrap;font-size:13px}.vocabulary-compact-category-heading button{flex:0 0 28px;width:28px;min-width:0;padding:8px 2px}}.vocabulary-example-row{grid-template-columns:minmax(0,1fr) 44px;align-items:start;gap:12px;display:grid}.vocabulary-example-row>p{overflow-wrap:anywhere;min-width:0;margin:0}.vocabulary-example-playback{display:contents}.vocabulary-example-playback button{min-width:44px;min-height:44px}.vocabulary-example-playback small{grid-column:1/-1}.selected-vocabulary-example .vocabulary-example-row+p{margin-top:6px}html.vocabulary-study-open,.vocabulary-study-open body{overflow:hidden}.app.vocabulary-focus-mode{min-height:0;display:block}.vocabulary-focus-mode .workspace{min-height:0;margin:0}.vocabulary-focus-mode .workspace main{padding:0}.vocabulary-focus-mode .goal-layout{display:block}.vocabulary-focus-mode .offline{z-index:65;font-size:.85rem;position:fixed;top:0;left:0;right:0}.vocabulary-focus-mode .toast{z-index:70}.vocabulary-study{z-index:40;box-sizing:border-box;background:var(--surface,#f8f9f5);width:100%;height:100dvh;color:var(--dark);padding:env(safe-area-inset-top,0px) max(12px, env(safe-area-inset-right,0px)) 0 max(12px, env(safe-area-inset-left,0px));flex-direction:column;align-items:stretch;display:flex;position:fixed;inset:0}.vocabulary-study button,.vocabulary-study-dialog button,.vocabulary-study-dialog select,.vocabulary-study-dialog summary{min-width:44px;min-height:44px}.vocabulary-study-header{flex-shrink:0;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;width:100%;max-width:600px;min-height:52px;margin:0 auto;display:grid}.vocabulary-study-header>button:first-child{justify-self:start;padding:8px 4px;font-size:1rem}.vocabulary-study-header>button:last-child{justify-self:end}.vocabulary-study-header>span{font-size:1rem;font-weight:600}.vocabulary-study-progress{appearance:none;background:var(--line);color:#218579;border:0;border-radius:4px;flex-shrink:0;width:100%;max-width:576px;height:4px;margin:0 auto;overflow:hidden}.vocabulary-study-progress::-webkit-progress-bar{background:var(--line)}.vocabulary-study-progress::-webkit-progress-value{background:#218579;border-radius:4px}.vocabulary-study-progress::-moz-progress-bar{background:#218579}.vocabulary-study-scroll{overscroll-behavior-y:contain;scrollbar-width:thin;flex:1 1 0;width:100%;max-width:600px;min-height:0;margin:0 auto;padding:0 4px 8px;overflow:hidden auto}.vocabulary-study-state{text-align:center;color:var(--muted);margin:10px 0;font-size:.875rem;line-height:1.4}.vocabulary-study .vocabulary-study-card{background:var(--surface);border:0;border-radius:20px;margin:0;padding:0;overflow:hidden;box-shadow:0 5px 20px #193d3010}.vocabulary-study-word{color:#fff;text-align:center;background:#218579;padding:20px 16px 16px}.vocabulary-study-word h2{overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,8vw,3rem);font-weight:650;line-height:1.15}.vocabulary-study-phonetics{color:#e3f2ee;overflow-wrap:anywhere;margin:8px 0 0;font-size:1rem;line-height:1.4}.vocabulary-study-audio{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.vocabulary-study-audio button{color:#fff;background:0 0;border:1px solid #c3e2da;border-radius:12px;padding:8px 18px;font-size:1rem}.vocabulary-study-audio small{color:#fff;flex-basis:100%}.vocabulary-study-prompt{color:#e3f2ee;margin:0 0 14px;font-size:.875rem}.vocabulary-study-recall{text-align:center;color:var(--muted);padding:26px 16px}.vocabulary-study-recall p{margin:0}.vocabulary-study-answer{overflow-wrap:anywhere;padding:16px 16px 0}.vocabulary-study-answer h3{margin:0;font-size:1.375rem;font-weight:650;line-height:1.4}.vocabulary-study-example{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.vocabulary-study-example .vocabulary-example-row{align-items:center;gap:8px}.vocabulary-study-example .vocabulary-example-row p{font-size:1rem;line-height:1.45}.vocabulary-study-example>p{margin:4px 0 0;font-size:1rem;line-height:1.45}.vocabulary-study-example .icon-button{background:var(--bg);border:none;border-radius:50%;padding:10px}.vocabulary-study-details{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;margin-top:14px;padding:6px 0;display:grid}.vocabulary-study-details button{background:0 0;border:0;border-radius:0;justify-content:center;gap:5px;padding:8px 2px;font-size:.9375rem}.vocabulary-study-details button+button{border-left:1px solid var(--line)}.vocabulary-study-card>small{padding:8px 16px;display:block}.vocabulary-study-browse-note{color:var(--muted);text-align:center;margin:12px 4px;font-size:.875rem;line-height:1.5}.vocabulary-study-footer{width:100%;max-width:600px;padding:8px 4px max(12px, env(safe-area-inset-bottom,0px));background:var(--surface);flex-shrink:0;margin:0 auto}.vocabulary-study-question{text-align:center;color:var(--muted);margin:0 0 8px;font-size:.875rem;line-height:1.4}.vocabulary-study-ratings{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.vocabulary-study-ratings button{border:1px solid var(--muted);background:var(--surface);min-height:48px;color:var(--dark);border-radius:12px;padding:10px 4px;font-size:1rem}.vocabulary-study .primary{color:#fff;background:#218579;border-color:#218579}.vocabulary-study-reveal,.vocabulary-study-retry{width:100%;font-size:1rem}.vocabulary-study-footer .error-box{max-height:20dvh;margin:0 0 6px;padding:8px;overflow:auto}.vocabulary-study-done{text-align:center;padding:40px 12px}.vocabulary-study-dialog{width:min(560px,100% - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border:1px solid var(--line);background:var(--surface);color:var(--dark);border-radius:20px;margin:auto;padding:0;overflow:hidden;box-shadow:0 20px 80px #0004}.vocabulary-study-dialog[open]{flex-direction:column;display:flex}.vocabulary-study-dialog::backdrop{background:#071e1b80}.vocabulary-study-dialog>header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.vocabulary-study-dialog>header h2{margin:0;font-size:1.125rem}.vocabulary-study-dialog-content{overscroll-behavior:contain;overflow-wrap:anywhere;min-height:0;padding:16px;overflow-y:auto}.vocabulary-study-dialog-content>section{margin-bottom:16px}.vocabulary-study-dialog-content h3{font-size:1rem}.vocabulary-study-dialog .pronunciation-practice{background:0 0;margin:0;padding:0}.vocabulary-study-dialog .pronunciation-practice>h3{display:none}.vocabulary-study-menu{gap:16px;display:grid}.vocabulary-study-menu label{gap:8px;display:grid}.vocabulary-study-menu select{width:100%;min-width:0}.vocabulary-study-menu summary{cursor:pointer;align-items:center;display:flex}.vocabulary-study button:focus-visible,.vocabulary-study-dialog button:focus-visible,.vocabulary-study-dialog select:focus-visible,.vocabulary-study-dialog summary:focus-visible{outline:3px solid var(--text-teal);outline-offset:2px}.vocabulary-study-word button:focus-visible{outline-color:#fff}[data-theme=dark] .vocabulary-study-word{background:#1c6259}[data-theme=dark] .vocabulary-study .primary{color:#172d24;background:#95c7b4;border-color:#95c7b4}@media (height<=660px){.vocabulary-study-word{padding:14px 12px 12px}.vocabulary-study-word h2{font-size:2rem}.vocabulary-study-audio{margin-top:10px}.vocabulary-study-answer{padding:12px 12px 0}.vocabulary-study-example{margin-top:10px;padding-top:8px}.vocabulary-study-details{margin-top:10px;padding:4px 0}.vocabulary-study-state{margin:8px 0}}@media (width>=700px) and (height>=700px){.vocabulary-study{padding-top:20px}.vocabulary-study-word{padding:28px 20px 24px}.vocabulary-study-answer{padding:24px 24px 0}.vocabulary-study-example{margin-top:20px;padding-top:20px}.vocabulary-study-details{margin-top:20px;padding:12px 0}.vocabulary-study-footer{padding-bottom:24px}}.vocabulary-study-scroll:has(.vocabulary-study-card){flex-direction:column;display:flex;overflow:hidden}.vocabulary-study-state{flex:none}.vocabulary-study .vocabulary-study-card{flex-direction:column;flex:1;min-height:0;transition:transform .16s ease-out;display:flex;position:relative}.vocabulary-study-word{flex:none;padding:16px 16px 12px}.vocabulary-study-word h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.vocabulary-study-phonetics{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vocabulary-study-answer{flex-direction:column;flex:1;min-height:0;padding-top:12px;display:flex}.vocabulary-study-content-viewport{flex:1;min-height:0;overflow:hidden}.vocabulary-study-content h3,.vocabulary-study-content p{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.vocabulary-study-content h3{-webkit-line-clamp:2}.vocabulary-study-content .vocabulary-example-row p{-webkit-line-clamp:3}.vocabulary-study-content .vocabulary-study-example>p,.study-source-example>p{-webkit-line-clamp:2}.vocabulary-study-content[data-summary=true] h3,.vocabulary-study-content[data-summary=true] .vocabulary-study-example p{-webkit-line-clamp:1}.vocabulary-study-content [hidden]{display:none!important}.vocabulary-study-supplement{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.vocabulary-study-supplement h4{color:var(--muted);margin:0 0 4px;font-size:.875rem;font-weight:500}.vocabulary-study-supplement p{margin:0;font-size:1rem;line-height:1.45}.study-definition{-webkit-line-clamp:3}.study-collocations{-webkit-line-clamp:2}.vocabulary-study-details{flex:none;margin-top:6px;padding:4px 0}.vocabulary-study-details button{flex-wrap:wrap}.vocabulary-study-browse-note{flex:none;margin:4px}.vocabulary-tap-hint{margin-top:2px;font-size:.75rem;display:block}.vocabulary-study-card>small{background:var(--surface);z-index:2;border-radius:8px;position:absolute;top:4px;left:8px;right:8px}.vocabulary-study-card.is-dragging{-webkit-user-select:none;user-select:none;transition:none}.vocabulary-swipe-cue{z-index:3;color:#fff;text-align:center;white-space:nowrap;pointer-events:none;background:#293e49;border-radius:12px;padding:10px 20px;font-size:1.25rem;font-weight:650;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #0003}.vocabulary-swipe-cue small{font-size:.875rem;display:block}[data-swipe-grade=remembered] .vocabulary-swipe-cue{background:#126347}[data-swipe-grade=uncertain] .vocabulary-swipe-cue{background:#78530d}[data-swipe-grade=forgotten] .vocabulary-swipe-cue{background:#a32d3c}[data-swipe-ready] .vocabulary-swipe-cue{outline:3px solid #fff}@media (pointer:coarse){.vocabulary-study-card.swipe-enabled{touch-action:pinch-zoom;-webkit-user-select:none;user-select:none}}@media (height<=660px){.vocabulary-study-word{padding:12px}.vocabulary-study-content .vocabulary-study-example{margin-top:8px;padding-top:8px}.vocabulary-tap-hint{display:none}}@media (height<=460px){.vocabulary-study-state{display:none}.vocabulary-study-word{text-align:left;align-items:center;gap:8px;padding:8px 12px;display:flex}.vocabulary-study-word h2{-webkit-line-clamp:1;flex:1;font-size:1.5rem}.vocabulary-study-word .vocabulary-study-phonetics,.vocabulary-study-prompt{display:none}.vocabulary-study-audio{flex-wrap:nowrap;gap:4px;margin:0}.vocabulary-study-audio button{padding:8px}.vocabulary-study-answer{padding-top:6px}.vocabulary-study-footer{padding-top:4px;padding-bottom:max(4px, env(safe-area-inset-bottom,0px))}.vocabulary-study-question{margin-bottom:4px}}@media (prefers-reduced-motion:reduce){.vocabulary-study .vocabulary-study-card{transition:none}}.vocabulary-study-card[data-compact=true] .vocabulary-study-phonetics{display:none}.vocabulary-study-card[data-compact=true] .vocabulary-study-word{padding:8px 12px}.vocabulary-study-card[data-compact=true] .vocabulary-study-word h2{-webkit-line-clamp:1}.vocabulary-study-card[data-compact=true] .vocabulary-study-audio{margin-top:6px}.vocabulary-study-details button svg{flex-shrink:0}.vocabulary-study-details button svg:last-child,.vocabulary-study-card[data-summary=true] .vocabulary-study-audio,.vocabulary-study-card[data-summary=true] .vocabulary-study-phonetics,.vocabulary-study-card[data-minimal=true] .vocabulary-study-word{display:none}.vocabulary-study-card[data-minimal=true] .vocabulary-study-answer{padding-top:0}.vocabulary-study-card[data-minimal=true] .vocabulary-study-details{margin-top:0}.vocabulary-study-content[hidden]{display:none}@media (height<=460px){.vocabulary-study-browse-note{display:none}}.classification-page{--classification-accent:var(--green,#20877c);padding-bottom:100px}.classification-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px;display:flex}.classification-heading h1{margin:4px 0 8px;font-size:clamp(26px,3vw,36px)}.classification-heading p{margin:0}.classification-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;max-width:640px;display:flex}.classification-page button{justify-content:center;align-items:center;gap:8px;min-height:44px;display:inline-flex}.classification-search{border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.classification-search input{background:0 0;border:none;width:210px;min-width:0}.classification-auto{width:100%;color:var(--muted);justify-content:flex-end;align-items:center;gap:8px;font-size:13px;display:flex}.classification-auto input,.classification-card-tools input{width:19px;height:19px;accent-color:var(--classification-accent)}.classification-review{background:var(--surface);border:1px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin:18px 0;padding:12px 18px;display:flex}.classification-review>span{align-items:center;gap:8px;display:flex}.classification-review strong{color:var(--classification-accent);font-size:24px}.classification-tabs{background:var(--surface);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;margin:24px 0 18px;padding:5px;display:grid}.classification-tabs button{background:0 0;border:none;border-radius:8px;padding:17px 8px;font-size:17px;font-weight:650}.classification-tabs button[aria-selected=true],.classification-switch button[aria-pressed=true]{background:color-mix(in srgb, var(--classification-accent) 14%, var(--surface));color:var(--classification-accent)}.classification-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.classification-tools{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.classification-switch{background:var(--surface);border-radius:10px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.classification-switch button{background:0 0;border:none}.classification-group-filters{flex-wrap:wrap;gap:8px;margin:20px 0 8px;display:flex}.classification-group-filters button{border-radius:22px;min-height:36px;padding:7px 13px;font-size:13px}.classification-group-filters button[aria-pressed=true]{color:#fff;background:#20877c;border-color:#20877c}.classification-group-filters small{opacity:.8}.classification-job-status,.classification-hint{color:var(--muted);margin:10px 0;font-size:13px}.classification-job-status button{margin-left:8px}.classification-board{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px;margin-top:18px;display:grid}.classification-group{background:color-mix(in srgb, var(--surface) 52%, transparent);border-radius:16px;min-width:0;padding:14px}.classification-group h2{overflow-wrap:anywhere;align-items:center;gap:10px;margin:4px 0 16px;font-size:19px;display:flex}.classification-group h2 small{color:var(--muted);margin-left:auto;font-size:13px}.classification-dot{background:#6daaa0;border-radius:50%;flex-shrink:0;width:12px;height:12px}.group-unfamiliar .classification-dot{background:#dc8d7c}.group-confused .classification-dot{background:#d4af55}.group-familiar .classification-dot{background:#6ba56c}.classification-explanation{color:var(--muted);overflow-wrap:anywhere;margin-top:-4px;font-size:13px}.classification-group-cards{gap:12px;display:grid}.classification-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;min-width:0;padding:9px 12px 14px;transition:border-color .15s}.classification-card.selected{border-color:var(--classification-accent);box-shadow:0 0 0 1px var(--classification-accent)}.classification-card-tools{align-items:center;gap:1px;display:flex}.classification-card-tools button{min-width:38px;min-height:36px;color:var(--muted);background:0 0;border:0;padding:6px}.classification-card-spacer{flex:1}.classification-card-tools .classification-drag-handle{touch-action:none;cursor:grab}.classification-page .classification-flip{text-align:center;overflow-wrap:anywhere;width:100%;min-height:67px;color:var(--ink);background:0 0;border:0;padding:8px 0 14px;font-size:24px;font-weight:650;display:flex}.classification-flip.flipped{animation:.2s ease-out classification-flip}.classification-card-tags{flex-wrap:wrap;gap:5px;margin:2px 0 10px;display:flex}.classification-card-tags span{background:color-mix(in srgb, var(--classification-accent) 10%, var(--surface));color:var(--classification-accent);overflow-wrap:anywhere;border-radius:14px;padding:3px 8px;font-size:12px}.classification-card-meta{color:var(--muted);flex-wrap:wrap;gap:5px 12px;font-size:12px;display:flex}.classification-card-meta .due{color:#b85242}.classification-board.single-group{grid-template-columns:1fr}.single-group .classification-group-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.classification-batch{color:#fff;z-index:10;background:#20394a;border-radius:18px;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:fit-content;max-width:100%;margin:28px auto 0;padding:14px;display:flex;position:sticky;bottom:16px;box-shadow:0 8px 30px #0002}.classification-batch select{max-width:200px}.classification-warning{background:color-mix(in srgb, #e7b55e 20%, var(--surface));border-radius:10px;padding:14px}.classification-warning button{margin-left:10px}.classification-manager{max-width:560px}.classification-manager>label{gap:6px;margin:14px 0;display:grid}.classification-manager input,.classification-manager select,.classification-manager textarea{width:100%}.classification-manager-actions{gap:10px;display:flex}.classification-sr{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.classification-empty{text-align:center;color:var(--muted);grid-column:1/-1;padding:40px 10px}@keyframes classification-flip{0%{opacity:.5;transform:rotateX(12deg)}to{opacity:1;transform:rotateX(0)}}@media (width<=1100px){.classification-heading{flex-direction:column;align-items:flex-start}.classification-heading-actions{justify-content:flex-start;width:100%;max-width:none}.classification-auto{justify-content:flex-start}.classification-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=650px){.classification-heading-actions{gap:8px}.classification-search,.classification-search input{width:100%}.classification-tabs{gap:0;margin-top:18px}.classification-tabs button{flex-direction:column;padding:10px 4px;font-size:14px}.classification-review{gap:8px;padding:10px}.classification-review>span{gap:5px;font-size:13px}.classification-board,.single-group .classification-group-cards{grid-template-columns:1fr}.classification-group-filters{flex-wrap:nowrap;padding-bottom:8px;overflow-x:auto}.classification-group-filters button{flex-shrink:0;min-height:44px}.classification-group{padding:10px}.classification-group h2{font-size:18px}.classification-tools{margin-left:0}.classification-batch{border-radius:12px;gap:8px;padding:12px;bottom:8px}.classification-batch strong{text-align:center;width:100%}.classification-batch select{max-width:100%}.classification-card-tools button{min-width:44px;min-height:44px}}@media (prefers-reduced-motion:reduce){.classification-flip.flipped{animation:none}}.classification-search,.classification-auto{margin:0}@media (width<=650px){.classification-heading{gap:12px;margin-bottom:12px}.classification-heading .eyebrow{display:none}.classification-heading>div:first-child{flex-wrap:wrap;align-items:baseline;gap:8px 12px;display:flex}.classification-heading h1{margin:0}.classification-heading>div:first-child>p{font-size:13px}.classification-heading-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.classification-search,.classification-auto{grid-column:1/-1}.classification-search input{height:44px;padding:8px 0}.classification-auto{min-height:24px}.classification-review,.classification-tabs{margin:12px 0}.classification-tabs button{gap:4px;padding:8px 4px}.classification-toolbar{gap:6px}.classification-switch{padding:2px}.classification-tools button,.classification-switch button{min-height:40px;padding:6px 12px}.classification-group-filters{margin-top:12px}.classification-hint{margin:6px 0}.classification-board{margin-top:12px}.classification-batch{bottom:78px}}html.mobile-app-shell,.mobile-app-shell body{overscroll-behavior:none;height:100%;min-height:0;overflow:hidden}.mobile-app-shell body{position:relative}.mobile-app-shell #root{height:100%}.mobile-app-shell .app{height:var(--app-height,100dvh);flex-direction:column;min-height:0;display:flex;overflow:hidden}.mobile-app-shell .app>.workspace{overscroll-behavior-y:contain;flex:1 1 0;min-height:0;scroll-padding-bottom:20px;overflow:hidden auto}.mobile-app-shell .app>.bottom-nav{flex:none;position:relative;inset:auto}.mobile-app-shell .page-footer{padding-bottom:28px}.mobile-app-shell.vocabulary-study-open .app>.workspace{overflow:hidden}.viewport-tools{height:var(--app-height,100dvh);pointer-events:none;z-index:85;position:absolute;inset:0 0 auto}.viewport-tools>.ink-tools{position:static}.viewport-tools .ink-tools .ink-launcher,.viewport-tools .ink-tool-row,.viewport-tools .ink-popover{pointer-events:auto;position:absolute}.ink-overlay{pointer-events:none;z-index:4;border-radius:inherit;position:absolute;top:0;left:0;overflow:hidden}.ink-overlay canvas{pointer-events:none;width:100%;height:100%;display:block}.ink-overlay.active{pointer-events:auto;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none}.ink-text-layer{z-index:5;pointer-events:none;position:absolute;top:0;left:0}.ink-text-layer.active{pointer-events:auto;touch-action:pan-y;cursor:text}.ink-text-item{box-sizing:border-box;letter-spacing:normal;text-align:left;-webkit-user-select:none;user-select:none;font-weight:400;position:absolute}.ink-text-line{white-space:pre;pointer-events:none;overflow:hidden}.ink-text-item.selected{outline:1px dashed var(--green,#328267);outline-offset:3px}.ink-text-item:focus-visible{outline:2px solid #246bea}.ink-text-item textarea{box-sizing:border-box;resize:none;width:100%;min-height:0;max-height:45vh;font:inherit;color:inherit;letter-spacing:normal;line-height:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--card,#fff);-webkit-user-select:text;user-select:text;touch-action:auto;border:0;border-radius:0;margin:0;padding:0;display:block}.ink-text-item .ink-text-handle{color:#fff;background:var(--green,#328267);touch-action:none;cursor:move;background-clip:content-box;border:0;border-radius:50%;place-items:center;width:44px;height:44px;min-height:0;margin:0;padding:10px;display:grid;position:absolute}.ink-text-handle svg{width:17px;height:17px}.ink-text-handle.move{top:-20px;left:-16px}.ink-text-handle.resize{cursor:nwse-resize;bottom:-20px;right:-16px}.ink-text-handle.resize-width{cursor:ew-resize;top:50%;right:-26px;transform:translateY(-50%)}.ink-text-handle.resize-height{cursor:ns-resize;bottom:-26px;left:50%;transform:translate(-50%)}.ink-text-toolbar.ink-tools{z-index:88;border:1px solid var(--line,#e1e8e3);background:var(--card,#fff);box-sizing:border-box;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;width:272px;max-width:calc(100vw - 24px);padding:4px;display:flex;position:fixed;box-shadow:0 4px 16px #17394a20}.ink-text-toolbar.ink-tools>button{border-radius:8px;width:44px;height:44px;font-size:16px}.ink-text-toolbar output{width:36px;color:var(--ink,#17394a);text-align:center;font-size:14px}.ink-text-toolbar .ink-colors{border-top:1px solid var(--line,#e1e8e3);width:100%}.ink-text-toolbar .ink-colors button{width:42px;height:44px}.ink-text-swatch{border-radius:50%;width:20px;height:20px;display:block}.ink-cursor{pointer-events:none;background:#c4d1d444;border:1px solid #6c7d85;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.ink-tools{z-index:85;position:relative}.ink-tools button{box-sizing:border-box;min-width:0;color:var(--ink,#17394a);cursor:pointer;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.ink-tools button:focus-visible{outline-offset:2px;outline:3px solid #246bea}.ink-tools button:disabled{opacity:.35;cursor:default}.ink-tools button svg{flex-shrink:0;width:20px;height:20px}.ink-tools button[aria-pressed=true]{background:var(--soft,#e4f0e9);color:var(--green,#286e53)}.ink-tools .ink-launcher{color:#fff;z-index:87;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#286e53;border-radius:50%;width:48px;height:48px;position:fixed;box-shadow:0 3px 12px #193c3428}.ink-launcher>svg:first-child{width:23px;height:23px;margin-bottom:6px}.ink-launcher .ink-grip{opacity:.8;width:12px;height:12px;position:absolute;bottom:3px;left:18px}.ink-launcher.dragging{cursor:grabbing;transform:scale(1.05)}.ink-dot{border:2px solid var(--card,#fff);background:#d39a33;border-radius:50%;width:8px;height:8px;position:absolute;top:2px;right:1px}.ink-dot.saved{background:#8fc8a4}.ink-tool-row{background:var(--card,#fff);border:1px solid var(--line,#e1e8e3);box-sizing:border-box;z-index:86;border-radius:24px;align-items:center;gap:0;width:268px;height:44px;padding:0 2px;display:flex;position:fixed;box-shadow:0 3px 12px #17394a15}.ink-tool-row button{border-radius:50%;flex:1;width:44px;height:40px}.ink-popover{background:var(--card,#fff);border:1px solid var(--line,#e1e8e3);z-index:88;box-sizing:border-box;border-radius:12px;width:216px;padding:5px;position:fixed;box-shadow:0 4px 16px #17394a20}.ink-popover button{border-radius:8px;gap:6px;min-height:36px;font-size:13px}.ink-colors,.ink-options{justify-content:space-between;align-items:center;gap:3px;display:flex}.ink-colors button{width:32px;height:36px}.ink-colors span{border:1px solid #0001;border-radius:50%;width:18px;height:18px}.ink-colors button[aria-pressed=true] span{outline-offset:3px;outline:2px solid}.ink-options button{flex:1}.ink-line{background:currentColor;border-radius:6px;width:28px;display:block}.ink-size{background:currentColor;border-radius:50%;display:block}.ink-popover>.ink-options+.ink-options{border-top:1px solid var(--line,#e1e8e3)}.ink-conflicts{z-index:89;background:var(--card,#fff);border:1px solid #d39a33;border-radius:12px;max-width:min(340px,100vw - 24px);max-height:40vh;padding:12px;position:fixed;top:55px;right:12px;overflow:auto}.ink-conflicts p{margin:0 0 8px}.ink-conflicts button{margin-right:5px;padding:6px;font-size:13px}.ink-viewer{width:min(1100px,100vw - 24px)!important;max-width:1100px!important}.ink-viewer-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.ink-viewer-actions button{padding:8px 12px}.ink-snapshot{background:#fafaf6;max-height:65vh;overflow:auto}.ink-snapshot canvas{max-width:100%;display:block;height:auto!important}.ink-snapshot.original canvas{max-width:none}.ink-note-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px;display:grid}.ink-note-card{min-width:0}.ink-thumbnail{width:100%;height:180px;overflow:hidden;background:var(--soft,#f4f5f1)!important;padding:0!important;display:block!important}.ink-thumbnail canvas{object-fit:contain;max-width:100%;max-height:180px;margin:auto;display:block}.ink-note-card h3{margin:12px 0 4px}.ink-note-card p{color:var(--muted,#718680);font-size:13px}.ink-tabs{gap:8px;margin:0 0 20px;display:flex}.ink-tabs button[aria-selected=true]{background:var(--green,#286e53);color:#fff}.note-library{max-width:none;margin:0 auto}.library-topbar,.library-top-actions,.library-section-heading,.library-filters,.library-nav-heading,.library-batchbar,.library-pagination{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.library-topbar{justify-content:flex-end;margin:20px 0 0}.library-top-actions button{align-items:center;gap:7px;display:inline-flex}.library-mobile-nav{display:none}.library-status{color:#247e72;min-height:24px;margin:6px 0;font-size:.85rem}.library-layout{grid-template-columns:225px minmax(0,1fr);align-items:start;gap:28px;display:grid}.library-nav{background:#f7faf7;border:1px solid #dce7e2;border-radius:18px;padding:14px}.library-nav>button,.library-nav-row>button:not(.library-handle){text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:9px;width:100%;min-width:0;margin:0;padding:11px 9px;display:flex}.library-nav button.active{color:#146d61;background:#dceee6}.library-nav button>span:last-child:not(.library-name){color:#738b84;margin-left:auto;font-size:.8rem}.library-nav-row{border-radius:8px;align-items:center;display:flex;position:relative}.library-name{overflow-wrap:anywhere}.library-nav-heading{justify-content:space-between;margin-top:24px}.library-nav-heading h3{color:#6b837a;margin:0;font-size:.82rem}.library-nav-heading button{background:0 0;border:0;padding:7px}.library-nav .muted{font-size:.8rem}.library-main{min-width:0}.library-section-heading{justify-content:space-between;margin-bottom:12px}.library-section-heading h2{overflow-wrap:anywhere;margin:0;font-size:1.25rem}.library-section-heading .muted{font-size:.85rem}.library-search input{width:100%;margin:0}.library-filters{gap:8px;margin:10px 0 16px}.library-filters select{flex:1;width:auto;min-width:0;margin:0;padding:10px;font-size:.85rem}.library-type{background:#e3ece7;border-radius:10px;padding:3px;display:flex}.library-type button{background:0 0;border:0;margin:0;padding:8px 12px;font-size:.85rem}.library-type button[aria-pressed=true]{color:#167b6c;background:#fff;box-shadow:0 1px 5px #1232}.library-list{gap:10px;display:grid}.library-item{background:#fffefb;border:1px solid #e2e9e1;border-radius:14px;grid-template-columns:minmax(0,1fr);padding:16px 18px 10px;display:grid;position:relative}.library-item:has(.library-item-tools){grid-template-columns:32px minmax(0,1fr);column-gap:10px}.library-item.is-selected{background:#f1faf4;border-color:#288879}.library-item-tools{flex-direction:column;grid-row:1/3;align-items:center;gap:10px;padding-top:4px;display:flex}.note-library input[type=checkbox],.library-tag-options input[type=checkbox]{accent-color:#238577;flex-shrink:0;width:18px;height:18px;margin:0}.library-handle{touch-action:none;cursor:grab;color:#839b92;background:0 0;border:0;margin:0;padding:6px 2px;display:flex}.library-handle:active{cursor:grabbing}.library-drop-before{box-shadow:0 -4px #288879}.library-drop-after{box-shadow:0 4px #288879}.library-item-open{text-align:left;width:100%;min-width:0;color:inherit;background:0 0;border:0;align-items:flex-start;gap:13px;margin:0;padding:0;display:flex}.library-kind-icon{color:#397e76;background:#eaf1ef;border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:44px;display:grid}.library-kind-icon.ink{color:#987138;background:#f1ebdf}.library-item-copy{flex:1;min-width:0;display:block}.library-item-copy strong{overflow-wrap:anywhere;font-size:1rem;line-height:1.5;display:block}.library-summary{-webkit-line-clamp:2;overflow-wrap:anywhere;color:#677b77;white-space:pre-line;-webkit-box-orient:vertical;margin:5px 0;font-size:.88rem;font-weight:400;line-height:1.6;display:-webkit-box;overflow:hidden}.library-item-meta{color:#82918b;font-size:.75rem;font-weight:400;line-height:1.5;display:block}.library-thumb{object-fit:cover;border-radius:8px;width:64px;height:58px}.library-item-bottom{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin:8px 0 0 55px;display:flex}.library-chips{flex-wrap:wrap;gap:5px;min-width:0;margin-bottom:4px;display:flex}.library-chips span,.library-chips button{color:#5b7766;overflow-wrap:anywhere;background:#edf2eb;border:0;border-radius:6px;padding:3px 8px;font-size:.73rem}.library-menu{background:0 0;border:0;flex-shrink:0;padding:0;position:relative}.library-menu summary{cursor:pointer;border-radius:6px;padding:4px 10px;list-style:none}.library-menu summary::-webkit-details-marker{display:none}.library-menu>div{z-index:8;background:#fff;border:1px solid #dae4de;border-radius:10px;gap:3px;min-width:142px;padding:8px;display:grid;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #1232}.library-menu>div button{text-align:left;background:0 0;border:0;padding:8px 10px;font-size:.85rem}.library-organize{background:#e8f3ed;border-radius:12px;margin-bottom:14px;padding:12px}.library-organize p{margin:0 0 10px;font-size:.85rem}.library-batchbar{gap:9px;font-size:.85rem}.library-batchbar label{align-items:center;gap:7px;margin:0;display:flex}.library-batchbar button{padding:8px 10px;font-size:.85rem}.library-pagination{justify-content:center;margin:24px 0;font-size:.85rem}.library-empty{text-align:center;color:#70867b;border:1px dashed #becfc3;border-radius:14px;padding:48px 20px}.library-empty svg{margin:auto}.library-error,.library-drafts{background:#fff4df;border-radius:12px;margin:12px 0;padding:14px}.library-drafts h3,.library-drafts p{margin:6px 0}.library-drafts>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.library-tag-options{gap:12px;margin:16px 0;display:grid}.library-tag-options label{align-items:center;gap:10px;margin:0;display:flex}.note-library button:focus-visible,.note-library summary:focus-visible{outline-offset:3px;outline:3px solid #239b89}@media (width<=1000px){.library-layout{grid-template-columns:185px minmax(0,1fr);gap:16px}.library-filters select{flex-basis:calc(50% - 8px)}}@media (width<=700px){.library-layout{display:block}.library-nav{margin-bottom:16px;display:none}.library-nav.is-open{display:block}.library-mobile-nav{overflow-wrap:anywhere;align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.library-topbar{justify-content:space-between;gap:8px;margin-top:12px}.library-top-actions{gap:6px;margin-left:auto}.library-top-actions button{padding:10px;font-size:.85rem}.library-item{padding:12px 11px 8px}.library-item-open{gap:9px}.library-kind-icon{border-radius:8px;width:30px;height:36px}.library-kind-icon svg{width:18px}.library-item-copy strong{font-size:.94rem}.library-thumb{width:42px;height:42px}.library-item-bottom{margin-left:39px}.library-filters{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.library-type{grid-column:1/-1;justify-content:space-around}.library-type button{white-space:nowrap;flex:1}.library-filters select{flex-basis:calc(50% - 8px);width:100%;padding:10px 6px;font-size:.78rem}.library-handle{padding:12px 4px}.library-menu summary{padding:9px 12px}}.workspace main:has(.note-library){max-width:none}.library-main{container:note-cards/inline-size}.library-list{grid-template-columns:minmax(0,1fr);align-items:stretch}.library-item{grid-template-rows:1fr auto;min-width:0}.library-item-bottom{margin-left:0}.library-item-copy strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.library-thumb{flex-shrink:0;width:42px;height:42px}@container note-cards (width>=540px){.library-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.library-item.library-drop-before{box-shadow:-4px 0 #288879}.library-item.library-drop-after{box-shadow:4px 0 #288879}}@container note-cards (width>=820px){.library-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@container note-cards (width>=1100px){.library-list{grid-template-columns:repeat(4,minmax(0,1fr))}}[data-theme=dark] .library-nav,[data-theme=dark] .library-item,[data-theme=dark] .library-menu>div{background:var(--surface);border-color:var(--line);color:var(--dark)}[data-theme=dark] .library-type,[data-theme=dark] .library-organize{background:var(--surface-soft)}[data-theme=dark] .library-item.is-selected,[data-theme=dark] .library-nav button.active,[data-theme=dark] .library-type button[aria-pressed=true]{background:var(--tint-teal);color:var(--text-teal);border-color:var(--border-teal)}[data-theme=dark] .library-summary,[data-theme=dark] .library-item-meta,[data-theme=dark] .library-nav-heading h3,[data-theme=dark] .library-nav button>span:last-child:not(.library-name),[data-theme=dark] .library-empty,[data-theme=dark] .library-handle{color:var(--muted)}[data-theme=dark] .library-status{color:var(--text-teal)}[data-theme=dark] .library-chips span,[data-theme=dark] .library-chips button,[data-theme=dark] .library-kind-icon{background:var(--tint-teal);color:var(--text-teal)}[data-theme=dark] .library-kind-icon.ink,[data-theme=dark] .library-error,[data-theme=dark] .library-drafts{background:var(--tint-amber);color:var(--text-amber)}.library-sort-help{color:var(--muted);margin:8px 0 14px;font-size:.85rem;line-height:1.6}.library-sort-help button{font-size:inherit;margin:0 4px;padding:4px 8px}.person-avatar{border:0;min-width:0;min-height:0;padding:0;position:relative}.classmate-avatar.person-avatar{width:46px}.person-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.editable-avatar{cursor:pointer}.editable-avatar:hover{box-shadow:0 0 0 3px #21877b30}.editable-avatar:focus-visible{outline:3px solid var(--green);outline-offset:3px}.avatar-editor{flex-direction:column;align-items:center;gap:12px;display:flex}.avatar-editor>p{text-align:center;color:var(--muted);margin:0}.avatar-editor>small{color:var(--muted);text-align:center;font-size:12px}.avatar-crop,.avatar-placeholder{aspect-ratio:1;background:var(--tint-green,#e8f0eb);border-radius:50%;flex:none;width:280px;max-width:100%}.avatar-crop{touch-action:none;cursor:grab;height:auto}.avatar-crop:active{cursor:grabbing}.avatar-placeholder{color:var(--green);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.avatar-adjustments{border:0;width:100%;min-width:0;margin:0;padding:0}.avatar-adjustments label{flex-wrap:wrap;justify-content:space-between;margin:4px 0;font-size:13px;display:flex}.avatar-adjustments input{width:100%;accent-color:var(--green);min-height:28px;padding:0}.avatar-edit-actions{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.avatar-editor .avatar-error{color:var(--text-rose,#a53636)}.avatar-editor input[type=file]{display:none}.avatar-editor>.avatar-edit-actions{background:var(--surface,white);padding:12px 0;position:sticky;bottom:-28px}@media (height<=850px),(width<=600px){.avatar-crop,.avatar-placeholder{width:220px}.avatar-editor{gap:8px}}.coin-wallet-page{max-width:720px;margin:0 auto}.my-menu .coin-wallet-link .row-icon{color:var(--text-amber,#926b1d);background:var(--tint-amber,#f5ecd4)}.coin-pending-badge{background:var(--tint-amber,#f5ecd4);color:var(--text-amber,#926b1d);border-radius:20px;margin-top:8px;padding:4px 10px;font-size:13px;display:inline-block}.coin-wallet-page .coin-wallet-balance{background:var(--tint-amber,#fcf4df);border-color:var(--border-amber,#dfc785)}.coin-wallet-totals{grid-template-columns:1.2fr 1fr;align-items:center;gap:24px;display:grid}.coin-wallet-totals>div+div{border-left:1px solid var(--border-amber,#dfc785);padding-left:24px}.coin-wallet-totals strong{color:var(--text-amber,#926b1d);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:9px;margin-top:8px;font-size:46px;display:flex}.coin-wallet-totals .coin-wallet-reserved{color:var(--dark);font-size:28px}.coin-wallet-totals small{font-size:16px}.coin-wallet-send{width:100%;min-height:52px;margin:16px 0}.coin-wallet-tabs{border-bottom:1px solid var(--line);gap:24px;margin:12px 0 20px;display:flex}.coin-wallet-tabs button{color:var(--muted);background:0 0;border:0;border-radius:0;flex:1;padding:12px 4px}.coin-wallet-tabs button[aria-selected=true]{color:var(--green);box-shadow:0 3px 0 var(--green)}.coin-gift-card{margin-bottom:16px}.coin-gift-person{align-items:center;gap:14px;display:flex}.coin-gift-person>div{overflow-wrap:anywhere;flex:1;min-width:0}.coin-gift-person .person-avatar{flex-shrink:0;width:48px;height:48px}.coin-gift-person small{color:var(--muted);display:block}.coin-gift-amount{color:var(--text-amber,#926b1d);text-align:right;overflow-wrap:anywhere;max-width:40%;font-size:20px}.coin-gift-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.coin-gift-footer small{color:var(--muted)}.coin-wallet-help{text-align:center;color:var(--muted);margin:20px 0;font-size:14px}.coin-wallet-actions{flex-wrap:wrap;gap:12px;display:flex}.coin-wallet-actions>button{flex:1}.coin-wallet-actions.vertical{flex-direction:column}.coin-wallet-notice{background:var(--tint-green,#eaf4ee);border-radius:12px;margin-top:20px;padding:16px}.coin-confirm-summary{margin:22px 0 0}.coin-confirm-summary>div{border-top:1px solid var(--line);justify-content:space-between;gap:16px;padding:16px 0;display:flex}.coin-confirm-summary dd{text-align:right;margin:0}.coin-history-list{margin:0;padding:0;list-style:none}.coin-history-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.coin-history-list li:first-child{padding-top:0}.coin-history-list li:last-child{border-bottom:0;padding-bottom:0}.coin-history-list li>div{overflow-wrap:anywhere;min-width:0}.coin-history-list small{color:var(--muted);margin-top:4px;display:block}.coin-history-list li>span{font-variant-numeric:tabular-nums;flex-shrink:0}.coin-load-more{margin:18px auto;display:flex}@media (width<=480px){.coin-wallet-totals{gap:14px}.coin-wallet-totals>div+div{padding-left:14px}.coin-wallet-totals strong{font-size:38px}.coin-wallet-totals strong>svg{display:none}.coin-gift-person{gap:10px}.coin-gift-amount{font-size:18px}.coin-gift-footer{flex-direction:column;align-items:stretch;gap:10px}.coin-gift-footer>button{width:100%}.coin-wallet-tabs{gap:12px}.coin-history-list li{align-items:flex-start;gap:10px}.coin-history-list li>span{overflow-wrap:anywhere;flex-shrink:1;max-width:40%}}.coin-gift-reminder{z-index:20;background:var(--surface);color:var(--text);border:1px solid #d8ac54;border-radius:18px;align-items:center;gap:16px;margin:24px 28px 0;padding:18px 22px;display:flex;position:sticky;top:12px}.coin-gift-reminder>svg{color:#ae7b20;flex-shrink:0}.coin-gift-reminder>div{overflow-wrap:anywhere;flex:1;min-width:0}.coin-gift-reminder strong{font-size:18px}.coin-gift-reminder p{color:var(--muted);margin:6px 0 0;line-height:1.6}.coin-gift-reminder>a{border-radius:12px;flex-shrink:0;padding:12px 18px;text-decoration:none}@media (width<=767px){.coin-gift-reminder{flex-wrap:wrap;gap:12px;margin:18px 16px 0;padding:16px}.coin-gift-reminder>a{text-align:center;width:100%}}.classmates-page{max-width:1200px;margin-inline:auto}.classmates-toolbar,.classmates-controls,.classmates-week-picker,.classmates-footer,.classmates-legend,.classmates-legend>span{align-items:center;display:flex}.classmates-toolbar{justify-content:space-between;gap:20px;margin-bottom:26px}.classmates-toolbar>p{color:var(--muted);margin:0;font-size:14px}.classmates-crown-period{color:var(--text-muted,#536b67);margin-top:6px;font-size:12px;display:block}.classmates-controls{flex-shrink:0;gap:12px}.classmates-week-picker{border:1px solid var(--line);background:var(--surface,white);border-radius:12px}.classmates-week-picker button{background:0 0;border:0;padding:10px}.classmates-week-picker select{background:0 0;border:0;width:auto;min-width:115px;font-weight:650}.classmates-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.classmate-row{background:var(--surface,#fff);border:1px solid var(--line);border-radius:18px;grid-template-columns:minmax(205px,1fr) minmax(310px,1.8fr) 140px;align-items:center;gap:24px;padding:28px 26px;display:grid}.classmate-row.is-self{background:var(--tint-green,#edf6f1);border-color:var(--line,#bbdcd1)}.classmate-person{align-items:flex-start;gap:14px;min-width:0;display:flex}.classmate-avatar{background:var(--tint-green,#e8f0eb);height:46px;color:var(--green);border-radius:50%;flex:0 0 46px;place-items:center;font-size:23px;font-weight:650;display:grid}.classmate-crown{pointer-events:none;z-index:1;isolation:isolate;width:48px;height:36px;position:absolute;top:-19px;left:50%;overflow:visible;transform:translate(-50%)}.classmate-crown:before{content:"";z-index:-1;opacity:.2;background:radial-gradient(#ffd34380 0%,#ffcb3940 35%,#ffc52b00 70%);border-radius:50%;animation:2.8s ease-in-out infinite classmate-crown-aura;position:absolute;inset:-8px -10px}.classmate-crown-art{width:100%;height:100%;display:block;overflow:visible}.classmate-crown-gold{filter:drop-shadow(0 0 2px #ffc83d88);animation:2.8s ease-in-out infinite classmate-crown-glow}.classmate-crown~.classmate-online-dot{z-index:2}.classmate-crown-shine{animation:3.2s ease-in-out infinite classmate-crown-shimmer}.classmate-crown-sparkle{transform-box:fill-box;transform-origin:50%;filter:drop-shadow(0 0 1.5px #ffbf24);animation:2.4s ease-in-out infinite classmate-crown-sparkle}.classmate-crown-sparkle.is-second{animation-delay:-1.2s}@keyframes classmate-crown-aura{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:.8;transform:scale(1.12)}}@keyframes classmate-crown-glow{0%,to{filter:drop-shadow(0 0 2px #ffc83d88)}50%{filter:drop-shadow(0 0 5px #ffce4dee)}}@keyframes classmate-crown-shimmer{0%,15%{opacity:0;transform:translate(0)}25%{opacity:.9}55%{opacity:.9;transform:translate(60px)}65%,to{opacity:0;transform:translate(60px)}}@keyframes classmate-crown-sparkle{0%,70%,to{opacity:.05;transform:scale(.4)rotate(-15deg)}35%{opacity:1;transform:scale(1.4)rotate(15deg)}}@media (prefers-reduced-motion:reduce){.classmate-crown:before,.classmate-crown-gold,.classmate-crown-shine,.classmate-crown-sparkle{animation:none}.classmate-crown-shine{opacity:0}}.is-self .classmate-avatar{background:var(--tint-green,#cce5d9)}.classmate-summary{flex:1;min-width:0}.classmate-name{align-items:center;gap:8px;margin-bottom:8px;display:flex}.classmate-name h2{overflow-wrap:anywhere;margin:0;font-size:18px}.classmate-self{background:var(--green);color:var(--on-solid,#fff);white-space:nowrap;border-radius:20px;align-items:center;padding:2px 9px;font-size:12px;display:inline-flex}.classmate-percent{margin-bottom:9px;font-size:26px;line-height:1.15;display:block}.classmate-track{background:var(--surface-soft,#e2e9e5);border-radius:8px;height:6px;overflow:hidden}.classmate-track>span{background:var(--green);border-radius:inherit;height:100%;display:block}.classmate-count,.classmate-start{color:var(--text-muted,#536b67);margin-top:8px;font-size:12px;display:block}.classmate-start{color:var(--muted)}.classmate-days{grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.classmate-day{flex-direction:column;align-items:center;gap:12px;min-width:0;display:flex;position:relative}.classmate-day:not(:last-child):after{content:"";background:var(--surface-soft,#cbd8d2);width:calc(100% - 52px);height:1px;position:absolute;top:51px;left:calc(50% + 26px)}.classmate-day-label{white-space:nowrap;font-size:13px;line-height:18px}.classmate-node{border:1.5px solid var(--line,#8a9c96);width:42px;height:42px;color:var(--muted);background:0 0;border-radius:50%;place-items:center;display:grid}.is-completed .classmate-node{color:var(--on-solid,white);background:var(--green);border-color:var(--green)}.is-partial .classmate-node{background:conic-gradient(var(--tint-teal,#77b6a7) var(--day-fill), transparent 0);border-color:var(--green)}.is-in_progress .classmate-node{color:var(--green);border-color:var(--green)}.classmate-day-count{font-variant-numeric:tabular-nums;font-size:13px}.classmate-exam{border-left:1px solid var(--line);align-content:center;align-self:center;gap:14px;padding-left:20px;font-size:13px;display:grid}.classmate-exam>span,.classmate-exam>strong{white-space:nowrap;align-items:center;gap:6px;display:flex}.classmate-exam>span{color:var(--muted)}.classmate-exam.is-done>strong{color:var(--green)}.classmate-exam>.classmate-practice{background:var(--tint-green,#eaf5ef);color:var(--green);border-radius:999px;justify-self:start;padding:5px 9px;font-size:12px;line-height:18px}.classmate-practice b{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px}.classmate-status{color:var(--muted);margin:8px 0 0}.classmate-unavailable{color:var(--muted);grid-column:2/-1;margin:0;font-size:14px}.classmates-footer{flex-wrap:wrap;justify-content:space-between;gap:18px;margin-top:26px}.classmates-legend{color:var(--text-muted,#536b67);flex-wrap:wrap;gap:18px;font-size:13px}.classmates-legend>span{gap:6px}.classmates-legend-partial{border:1px solid var(--green);background:conic-gradient(var(--tint-teal,#77b6a7) 50%, transparent 0);border-radius:50%;width:16px;height:16px}.classmates-updated{color:var(--muted);font-size:12px}.classmates-action{justify-content:flex-end;margin-top:24px;display:flex}@media (width<=1200px){.classmate-row{grid-template-columns:minmax(175px,1fr) minmax(280px,1.8fr);gap:22px}.classmate-exam{border:0;flex-wrap:wrap;grid-column:2;align-items:center;gap:16px;padding:0;display:flex}.classmates-toolbar{flex-wrap:wrap}}@media (width<=650px){.classmates-toolbar{align-items:stretch;gap:16px;margin-bottom:20px}.classmates-controls{gap:8px;width:100%}.classmates-week-picker{flex:1;min-width:0}.classmates-week-picker select{flex:1;width:100%;min-width:0}.classmates-refresh{padding-inline:12px}.classmate-row{grid-template-columns:minmax(0,1fr);gap:24px;padding:22px 18px 18px}.classmate-summary{grid-template-columns:1fr auto;align-items:center;column-gap:12px;display:grid}.classmate-name{margin-bottom:0}.classmate-percent{margin-bottom:0;font-size:25px}.classmate-track{grid-column:1/-1;margin-top:12px}.classmate-count,.classmate-start,.classmate-status{grid-column:1/-1}.classmate-exam{border-top:1px solid var(--line);grid-column:1;justify-content:center;padding-top:15px}.classmate-unavailable{grid-column:1}.classmate-node{width:38px;height:38px}.classmate-day:not(:last-child):after{width:calc(100% - 46px);top:49px;left:calc(50% + 23px)}.classmate-day-label,.classmate-day-count{font-size:12px}.classmates-legend{gap:12px}.classmates-action button{width:100%}}.classmate-avatar-status{flex:0 0 46px;width:46px;height:46px;margin-bottom:18px;position:relative}.classmate-avatar-status .person-avatar{display:block}.classmate-avatar-check{border:2px solid var(--surface,white);color:#fff;pointer-events:none;background:#319764;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;bottom:-4px;right:-4px}.classmate-avatar-status.is-online .person-avatar{outline-offset:2px;outline:2px solid #22bd96;animation:2.4s ease-in-out infinite classmate-presence-glow}.classmate-online-dot{border:2px solid var(--surface,white);pointer-events:none;background:#19cd91;border-radius:50%;width:11px;height:11px;position:absolute;top:-4px;right:-4px}.classmate-online-label{color:var(--text-teal,#087b67);pointer-events:none;font-size:10px;line-height:1;position:absolute;top:54px;left:50%;transform:translate(-50%)}.classmates-nav-icon{align-self:center;width:22px;height:22px;display:inline-flex;position:relative}.classmates-nav-icon.has-online{color:#189e83}.classmates-nav-count{border:1.5px solid var(--surface,white);color:#fff;pointer-events:none;background:#319764;border-radius:10px;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:750;line-height:1;display:grid;position:absolute;bottom:-4px;right:-9px}@keyframes classmate-presence-glow{0%,to{box-shadow:0 0 0 4px #22cda416}50%{box-shadow:0 0 9px 5px #22cda445}}@media (prefers-reduced-motion:reduce){.classmate-avatar-status.is-online .person-avatar{animation:none}}.coin-balance{color:var(--text,#37382d);white-space:nowrap;background:#d6a6322e;border:1px solid #b18a2773;border-radius:20px;align-items:center;gap:6px;padding:5px 10px;font-size:14px;font-weight:600;display:inline-flex}.coin-balance svg{color:#b38a20;flex-shrink:0}.daily-coins{border-top:1px solid var(--border,#ddd);margin-top:16px;padding-top:16px}.daily-coins p{margin:8px 0 0;font-size:13px;line-height:1.7}.home-coins{margin-top:18px}.home-coins .daily-coins{border-top:0;margin-top:0;padding-top:0}.coin-redemption{margin:18px 0}.coin-redeem-button{align-items:center;gap:8px;max-width:100%;min-height:44px;display:inline-flex}.coin-redemption small{margin-top:6px;display:block}.coin-answer{overflow-wrap:anywhere;background:#d6a6321f;border-left:3px solid #b38a20;padding:12px 14px}.classmate-summary>.coin-balance{margin-top:8px}.hero:has(.hero-heading){display:block}.hero-heading{z-index:2;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:relative}.hero-heading>.tag{flex:none;margin-top:8px}.today-members{scrollbar-width:thin;overscroll-behavior-x:contain;gap:12px;min-width:0;max-width:60%;margin:0 -6px 0 0;padding:8px 6px 21px;list-style:none;display:flex;overflow-x:auto}.today-member{border-radius:50%;flex:0 0 38px;width:38px;height:38px;position:relative}.today-member-avatar.person-avatar{border:2px solid var(--line,white);background:var(--tint-green,#e3eee8);border-radius:50%;width:38px;height:38px;display:block}.today-member-count{border:2px solid var(--line,white);width:19px;height:19px;color:var(--on-solid,white);background:#086b68;border-radius:50%;place-items:center;font-size:10px;font-weight:750;line-height:1;display:grid;position:absolute;bottom:-3px;right:-3px}.today-member-count.is-complete{background:#319764}.today-member.is-online .today-member-avatar{outline:2px solid var(--border-teal,#22cda4);outline-offset:2px;animation:2.4s ease-in-out infinite member-online-glow}.today-member-dot{border:2px solid var(--line,white);background:#19cd91;border-radius:50%;width:11px;height:11px;position:absolute;top:-3px;right:-3px}.today-member-online{color:var(--text-teal,#087b67);font-size:9px;font-weight:700;line-height:1;position:absolute;top:43px;left:50%;transform:translate(-50%)}.today-member:focus-visible{outline:2px solid var(--border-teal,#086b68);outline-offset:6px}@keyframes member-online-glow{0%,to{box-shadow:0 0 0 4px #22cda416}50%{box-shadow:0 0 9px 5px #22cda445}}@media (width<=480px){.hero-heading{gap:8px}.hero-heading>.tag{padding-inline:8px;font-size:10px}.today-members{gap:10px;max-width:55%}.today-member,.today-member-avatar.person-avatar{width:32px;height:32px}.today-member{flex-basis:32px}.today-member-online{top:37px}}@media (prefers-reduced-motion:reduce){.today-member.is-online .today-member-avatar{animation:none;box-shadow:0 0 5px 3px #22cda425}}.coin-celebration.dialog-overlay{z-index:1400;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0f252399;padding:20px;animation:.22s ease-out both coin-overlay-in}.coin-celebration .dialog{color:#203f43;background:radial-gradient(at 50% 28%,#fff1bb 0,#fffcf1 42%,#f5faf6 100%);border:1px solid #efdcaa;border-radius:30px;width:min(100%,480px);max-height:calc(100dvh - 40px);padding:24px 28px 30px;animation:.45s cubic-bezier(.16,1,.3,1) both coin-card-in;position:relative;overflow:auto;box-shadow:0 32px 100px #041e2855,0 0 70px #ffd97726}.coin-celebration .section-title{z-index:2;margin:0;position:relative}.coin-celebration .section-title h2{color:#527367;letter-spacing:.08em;font-size:16px}.coin-celebration .section-title button{color:#527367;border-radius:50%;min-width:44px;min-height:44px}.coin-celebration-art{isolation:isolate;perspective:800px;height:250px;position:relative;overflow:hidden}.coin-celebration-halo{background:radial-gradient(circle,#ffe38c99,#ffeab144 48%,#0000 70%);border-radius:50%;animation:1.2s ease-out both coin-halo-in;position:absolute;inset:20px 55px}.coin-celebration-rays{background:repeating-conic-gradient(#0000 0deg 20deg,#ecc3512b 21deg 29deg,#0000 30deg 45deg);width:290px;height:290px;animation:2.8s ease-out both coin-rays-in;position:absolute;top:49%;left:50%;transform:translate(-50%,-50%);-webkit-mask-image:radial-gradient(circle,#0000 24%,#000 33%,#0000 69%);mask-image:radial-gradient(circle,#0000 24%,#000 33%,#0000 69%)}.coin-celebration-medal{background:linear-gradient(135deg,#ffe9a1,#d49c21 45%,#a76512);border-radius:50%;width:152px;height:152px;padding:8px;animation:1.45s cubic-bezier(.17,.8,.3,1) both coin-medal-in;position:absolute;top:46px;left:calc(50% - 76px);box-shadow:0 8px #aa711b,0 10px #f4ce62,0 23px 28px #96601938}.coin-celebration-dancer{z-index:1;transform-origin:50% 80%;animation:.9s cubic-bezier(.17,.8,.3,1) both coin-dancer-in;display:block;position:absolute;inset:0}.coin-celebration-face{background:linear-gradient(135deg,#fff0a0,#f1c041 50%,#e3a327);border:3px solid #ffefb3;border-radius:50%;outline:1px solid #b67c23;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 2px 5px #b2722d55}.coin-celebration-face svg{fill:#fff2ac;stroke:#c58b25;stroke-width:2px;filter:drop-shadow(0 3px #b78025);width:100%;height:100%;padding:24px}.coin-celebration-shine{background:linear-gradient(115deg,#0000 40%,#fff9 49%,#0000 58%);animation:1s ease-out 1.2s both coin-shine;position:absolute;inset:-30%;transform:translate(130%)}.coin-celebration-plus{color:#fff3b9;background:#276b56;border:2px solid #fff5cd;border-radius:24px;padding:1px 13px;font-size:30px;font-weight:800;animation:.55s cubic-bezier(.17,.8,.3,1) .65s both coin-plus-in;position:absolute;top:166px;left:calc(50% + 40px);box-shadow:0 5px 16px #20564230}.coin-celebration-spark{color:#bf922e;font-size:25px;animation:2.6s ease-out both coin-spark-in;position:absolute}.spark-0{font-size:32px;top:19%;left:17%}.spark-1{top:28%;right:16%}.spark-2{font-size:18px;bottom:15%;left:23%}.spark-3{font-size:16px;bottom:8%;right:23%}.spark-4{font-size:14px;top:5%;left:43%}.spark-5{font-size:13px;bottom:30%;right:9%}.coin-celebration-confetti{z-index:2;top:-14px;left:var(--x);background:var(--color);opacity:0;width:7px;height:13px;animation:coin-confetti-fall 2.3s var(--delay) cubic-bezier(.16, .5, .6, 1) both;border-radius:2px;position:absolute}.coin-celebration-copy{text-align:center;position:relative}.coin-celebration-label{letter-spacing:.16em;color:#94752e;margin:0 0 10px;font-size:12px}.coin-celebration-copy h3{color:#264940;margin:0 0 14px;font-size:clamp(26px,6vw,34px);font-weight:800;line-height:1.25}.coin-celebration-copy h3 strong{color:#a77310;font-size:1.3em}.coin-celebration-copy>p:not(.coin-celebration-label){color:#62746a;margin:0;font-size:15px;line-height:1.9}.coin-celebration .coin-celebration-done{color:#fff7d9;background:linear-gradient(115deg,#27735c,#1c5648);border:1px solid #215f4c;border-radius:15px;width:100%;min-height:50px;margin-top:24px;font-size:17px;font-weight:700;box-shadow:0 6px 15px #215f4c24}.coin-celebration button:focus-visible{outline-offset:3px;outline:3px solid #a46e0e}@keyframes coin-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes coin-card-in{0%{opacity:0;transform:translateY(18px)scale(.94)}to{opacity:1;transform:none}}@keyframes coin-medal-in{0%{opacity:0;transform:translateY(35px)rotateY(-220deg)scale(.3)}65%{opacity:1;transform:translateY(-8px)rotateY(15deg)scale(1.1)}to{opacity:1;transform:none}}@keyframes coin-dancer-in{0%{opacity:0;transform:translateY(40px)scale(.3)}60%{opacity:1;transform:translateY(-6px)scale(1.06)}to{opacity:1;transform:none}}@keyframes coin-halo-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes coin-rays-in{0%{opacity:0;transform:translate(-50%,-50%)rotate(-35deg)scale(.5)}25%{opacity:1}to{opacity:.8;transform:translate(-50%,-50%)rotate(20deg)scale(1)}}@keyframes coin-plus-in{0%{opacity:0;transform:translateY(18px)scale(.4)}to{opacity:1;transform:none}}@keyframes coin-shine{0%{transform:translate(-130%)}to{transform:translate(130%)}}@keyframes coin-spark-in{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.25)rotate(15deg)}to{opacity:.65;transform:scale(1)}}@keyframes coin-confetti-fall{0%{opacity:0;transform:translateY(0)rotate(0)}10%{opacity:1}75%{opacity:1}to{opacity:0;transform:translate(var(--drift), 255px) rotate(var(--turn))}}@media (width<=420px){.coin-celebration.dialog-overlay{padding:14px}.coin-celebration .dialog{border-radius:26px;max-height:calc(100dvh - 28px);padding:18px 20px 24px}.coin-celebration-art{height:232px}.coin-celebration-halo{inset:10px 15px}}@media (height<=650px){.coin-celebration-art{height:190px}.coin-celebration-medal{top:20px}.coin-celebration-plus{top:135px}.coin-celebration .coin-celebration-done{margin-top:16px}}@media (prefers-reduced-motion:reduce){.coin-celebration *,.coin-celebration .dialog{animation:none!important}.coin-celebration.dialog-overlay{animation:.15s ease-out both coin-overlay-in}.coin-celebration-confetti,.coin-celebration-shine{display:none}}.goal-layout.has-goal-notice{align-items:start;gap:26px;max-width:1480px;margin:auto;padding:30px 28px 0;display:grid}.workspace .has-goal-notice>main{width:100%;min-width:0;margin:0;padding:0}.goal-notice{border:2px solid var(--line,#cbdccf);background:var(--surface,#fff);width:100%;min-width:0;max-width:460px;color:var(--text,#183b34);text-align:center;overflow-wrap:anywhere;border-radius:22px;justify-self:center;padding:26px 22px 20px;box-shadow:0 8px 28px #72572912,0 2px 6px #7257290a}.goal-notice.earned-coin{border-color:#e7bf70}.goal-notice-people{justify-content:center;align-items:center;gap:26px;margin-bottom:18px;display:flex}.goal-notice-person{flex-direction:column;align-items:center;gap:7px;max-width:50%;display:flex}.goal-notice-person>span:last-child{font-size:14px;font-weight:600}.goal-notice-avatar.person-avatar{background:var(--tint-green,#e8eee4);border:3px solid var(--surface,#fff);width:96px;height:96px;box-shadow:0 0 0 1px var(--line,#edf0e9);border-radius:50%;display:block}.goal-notice-reward{padding:8px 6px 25px;position:relative}.goal-gold-coin{background:linear-gradient(135deg,#fff0a0 6%,#ffcf48 52%,#eaa52a);border:4px solid #f7dc7c;border-radius:50%;place-items:center;width:92px;height:92px;display:grid;box-shadow:inset 0 0 0 2px #c38a21,inset 4px 4px 7px #fff4b6,3px 4px #d3962d}.goal-gold-coin svg{fill:#ffe987;color:#c89125;filter:drop-shadow(1px 2px 1px #bd7c2b70)}.goal-sparkles{color:#edb740;fill:#edb740;position:absolute;top:-5px;right:-13px}.goal-completion-award{color:var(--green);margin-bottom:24px}.goal-notice.perfect-coin .goal-notice-people{gap:6px}.goal-dancing-coin{aspect-ratio:400/330;flex:0 216px;min-width:0;display:block}.goal-notice h2{letter-spacing:-.5px;color:var(--text,#143c32);margin:0 0 14px;font-size:25px;line-height:1.45}.goal-notice-detail{margin:0 0 12px;font-size:19px;line-height:1.75}.goal-notice-cheer{color:var(--muted);margin:0 0 12px;font-size:15px;line-height:1.7}.goal-notice time{color:var(--muted);font-size:12px;line-height:1.8;display:block}.goal-notice-footer{border-top:1px solid var(--line,#e5e5dd);text-align:left;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-top:16px;display:flex}.goal-notice-footer>span{color:var(--muted);font-size:13px;line-height:1.6}.goal-notice-footer button{border-radius:14px;flex-shrink:0;justify-content:center;min-width:112px;min-height:46px;font-size:17px}.goal-notice-error{color:var(--text-orange,#8e5b31);margin:12px 0 0;font-size:13px}@media (width>=1400px){.goal-layout.has-goal-notice{grid-template-columns:minmax(0,1fr) 350px;padding:38px 32px 0}.has-goal-notice>.goal-notice{grid-area:1/2}.has-goal-notice>main{grid-area:1/1}.has-goal-notice .today-grid{grid-template-columns:minmax(0,1fr)}.has-goal-notice .hero .growth-art{display:none}.has-goal-notice .hero>div{max-width:100%}.has-goal-notice .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.goal-layout.has-goal-notice{gap:24px;padding:22px 16px 0}.goal-notice{border-radius:20px;padding:22px 18px 18px}.goal-notice h2{font-size:24px}.goal-notice-detail{font-size:18px}.goal-notice-avatar.person-avatar{width:88px;height:88px}.goal-notice-footer{gap:10px}}@media (width<=359px){.goal-notice{padding-inline:14px}.goal-notice h2{font-size:22px}.goal-notice-footer{flex-wrap:wrap}.goal-notice-footer button{margin-left:auto}}.notifications-page{max-width:780px;margin:0 auto;padding:24px 16px 60px}.notifications-heading{align-items:center;gap:14px;margin-bottom:24px;display:flex}.notifications-heading h1{margin:0;font-size:1.6rem}.notifications-heading p{color:var(--text-muted,#64748b);margin:2px 0 0}.notifications-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.notifications-list li{background:var(--surface,#fff);border:1px solid var(--border,#dbe5e2);border-radius:14px;justify-content:space-between;align-items:center;gap:20px;padding:16px;display:flex}.notifications-list li.is-unread{background:#f2fcf8;border-color:#21a58a}.notifications-list strong{font-weight:600;display:block}.notifications-list time{color:#64748b;margin-top:6px;font-size:.82rem;display:block}.notifications-list button,.notifications-more{white-space:nowrap;color:#146b57;cursor:pointer;background:#fff;border:1px solid #8dcdbc;border-radius:9px;padding:8px 11px}.notifications-list button{align-items:center;gap:4px;display:flex}.notifications-empty{text-align:center;color:#64748b;padding:28px}.notifications-link{min-width:44px;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:6px;display:inline-flex}.notifications-link span{color:#fff;background:#13836a;border-radius:9px;min-width:18px;padding:1px 4px;font-size:11px}@media (width<=560px){.notifications-list li{flex-direction:column;align-items:flex-start;gap:12px}}.courses-page{min-width:0}.courses-page>.page-heading{margin-bottom:24px}.course-week-nav{align-items:stretch;gap:16px;margin-bottom:16px;display:flex}.course-week-buttons{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;min-width:0;display:grid}.course-week-button{border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:12px 5px;display:flex}.course-week-button strong{font-size:20px}.course-week-button span,.course-week-button small{font-size:11px;line-height:1.5}.course-week-button[aria-current=true]{background:var(--green,#218579);color:var(--on-solid,white);border-color:var(--green,#218579);box-shadow:inset 0 0 0 1px}.course-week-picker{flex-direction:column;flex:0 270px;justify-content:center;gap:6px;min-width:0;font-size:12px;display:flex}:root[data-theme=dark] .course-week-button[aria-current=true]{background:var(--tint-teal);color:var(--text-teal)}.course-week-picker select{text-overflow:ellipsis;width:100%;min-width:0;max-width:100%}.course-week-picker{margin:-7px;padding:7px;overflow:hidden}.course-selected.is-current-week{border-top:4px solid var(--green,#218579)}.course-week-tags{flex-wrap:wrap;gap:8px;display:flex}.course-unavailable{background:var(--tint-orange,#fff4de);color:var(--text-orange,#946000);border-radius:10px;padding:14px}.course-week-note{color:var(--muted);margin-top:14px;font-size:12px;line-height:1.8}.course-week-nav :focus-visible{outline:3px solid var(--green,#218579);outline-offset:3px}@media (width<=1100px){.course-week-nav{flex-direction:column}.course-week-picker{flex:auto}}@media (width<=600px){.course-week-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.course-week-button:not(.mobile-week){display:none}.course-selected .course-title{gap:10px;min-width:0}.course-selected .course-title>div{overflow-wrap:anywhere;min-width:0}}.day-grid .teacher-video-card{justify-content:flex-start;height:58px;min-height:58px;overflow:hidden}.teacher-video-card>img{object-fit:cover;border-radius:50%;flex:none;width:30px;height:30px}.teacher-video-card>svg{flex:none;margin-left:auto}.day-grid .teacher-video-card .course-task-copy{gap:3px}.teacher-video-card .course-task-name{font-size:11px;line-height:1.3}.teacher-video-card .course-task-state{font-size:10px}.teacher-video-dialog{width:min(1000px,90vw);max-width:94vw;max-height:94dvh;color:var(--dark);background:var(--surface,white);border:0;border-radius:18px;padding:0;box-shadow:0 20px 80px #0005}.teacher-video-dialog::backdrop{background:#142b40a8}.teacher-video-panel{padding:18px}.teacher-video-panel header{align-items:center;gap:12px;margin-bottom:14px;display:flex}.teacher-video-panel header img{border-radius:50%;width:44px;height:44px}.teacher-video-panel h2{margin:0;font-size:20px}.teacher-video-panel header p{color:var(--muted);margin:3px 0 0;font-size:13px}.teacher-video-panel header button{place-items:center;margin-left:auto;padding:8px;display:grid}.teacher-video-panel video{background:#000;border-radius:8px;width:100%;max-height:calc(94dvh - 110px);display:block}.teacher-video-error{color:var(--text-orange,#946000);font-size:12px}.teacher-video-dialog.is-phone{color:#fff;background:#000;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;position:fixed;inset:0}.is-phone .teacher-video-panel{height:100%;padding:max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.is-phone .teacher-video-panel video{object-fit:contain;flex:1;min-height:0;max-height:none}.is-phone .teacher-video-panel h2{font-size:16px}.day-grid .teacher-video-panel header button{flex:none;width:auto;margin:0 0 0 auto}.teacher-video-card .course-task-name>span{white-space:nowrap;display:inline-block}.phrase-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.phrase-summary label{align-items:center;gap:8px;display:flex}.phrase-summary input{width:auto}.phrase-card{min-width:0}.phrase-card h2.english{overflow-wrap:anywhere;margin-bottom:14px}.phrase-image-button{border-radius:18px;width:100%;margin:20px 0;padding:0;display:block;position:relative;overflow:hidden}.phrase-picture{aspect-ratio:1;background:#e9f4ef;border-radius:16px;width:100%;position:relative;overflow:hidden}.phrase-picture img{object-fit:fill;max-width:none;position:absolute}.phrase-picture>span{place-items:center;padding:24px;display:grid;position:absolute;inset:0}.phrase-zoom{color:#163747;background:#ffffffeb;border-radius:12px;align-items:center;gap:5px;padding:6px 10px;font-size:.82rem;display:flex;position:absolute;bottom:12px;right:12px}.phrase-usage{color:var(--muted);line-height:1.8}.phrase-source{border-top:1px solid #dde9e4;margin-top:22px;padding-top:16px}.phrase-source .section-title{flex-wrap:wrap;gap:8px}.phrase-source button{padding:8px 12px;font-size:.85rem}.phrase-source p,.phrase-other-sources p{overflow-wrap:anywhere;line-height:1.8}.phrase-other-sources{border-top:1px solid #dde9e4;margin-top:18px;padding-top:14px}.phrase-other-sources>div{margin-top:16px}.phrase-card summary{cursor:pointer;color:#208a7c;padding:8px 0}.phrase-star.saved{color:#218b7b}.phrase-image-dialog{color:#18354a;border:0;border-radius:20px;width:min(650px,100vw - 32px);max-height:90vh;padding:24px;overflow:auto}.phrase-image-dialog::backdrop{background:#132c3380}.phrase-image-dialog .section-title{gap:12px;margin-bottom:18px}@media (width<=600px){.phrase-image-dialog{padding:16px}.phrase-card .pronunciation-controls{flex-wrap:wrap}}.question-review{max-width:1120px;margin:0 auto}.question-review-progress,.question-review-actions{flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0;display:flex}.question-review-progress{font-size:.9rem}.question-review-layout{gap:20px;display:grid}.question-review-layout.with-passage{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}.question-review-layout>*{min-width:0}.question-review-stem{margin-bottom:24px;line-height:1.7}.question-review-passage p{line-height:1.9}.question-review .option{text-align:left;overflow-wrap:anywhere;min-height:48px}.question-review .option:disabled{opacity:1;cursor:default}.question-review .option:disabled:hover{transform:none}.question-review-title{scroll-margin-top:30px}.question-review-title:focus{outline:none}.question-review-score{font-size:2rem;font-weight:700}.question-review summary{cursor:pointer;padding:10px 0}.question-review .explanation{overflow-wrap:anywhere}@media (width<=720px){.question-review-layout.with-passage{grid-template-columns:minmax(0,1fr)}.question-review .card{padding:20px}.question-review-progress{gap:8px 12px}.question-review-actions button{min-height:44px}}.audio-card.listening-player{background:var(--surface,#fff);border:1px solid var(--line,#dce5df);color:var(--text,#17374a);padding:20px}.listening-player .section-title{margin-bottom:14px;font-size:18px;line-height:1.5}.listening-player .section-title span{align-items:center;gap:12px;display:flex}.listening-player svg{flex-shrink:0}.listening-player audio{display:none}.listening-player button{min-height:44px}.audio-seek{align-items:center;min-height:44px;margin:0;display:flex}.audio-seek input{width:100%;accent-color:var(--text-teal,#008b81);cursor:pointer;padding:0}.audio-position{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;margin-bottom:16px;font-size:13px;display:flex}.audio-position span:last-child:not(:first-child){color:var(--text-teal,#007d75)}.audio-sentence-controls{grid-template-columns:1fr 1.55fr 1fr;gap:8px;display:grid}.audio-sentence-controls button{white-space:nowrap;justify-content:center;gap:5px;padding:10px 6px;font-size:14px}.audio-secondary{justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}.audio-loop{cursor:pointer;align-items:center;gap:10px;min-height:44px;margin:0;font-size:14px;display:flex;position:relative}.audio-loop input{opacity:0;cursor:pointer;width:44px;height:44px;position:absolute;right:0}.audio-loop span{background:var(--surface-soft,#a8b5b0);pointer-events:none;border-radius:16px;width:42px;height:24px}.audio-loop span:after{content:"";background:var(--surface,white);border-radius:50%;width:18px;height:18px;margin:3px;transition:transform .15s;display:block}.audio-loop input:checked+span{background:#008b81}.audio-loop input:checked+span:after{transform:translate(18px)}.audio-loop input:focus-visible+span{outline:3px solid var(--border-blue,#2469d9);outline-offset:3px}.audio-speeds{border-top:1px solid var(--line,#e5ebe6);align-items:center;gap:8px;padding:12px 0;font-size:13px;display:flex}.audio-speeds button{flex:1;justify-content:center;padding:6px}.audio-speeds button[aria-pressed=true],.audio-segments button[aria-pressed=true]{color:var(--on-solid,#fff);border-color:var(--border-teal,#008b81);background:#008b81}.audio-segments{border-top:1px solid var(--line,#e5ebe6);flex-wrap:wrap;gap:8px;padding:12px 0;display:flex}.audio-segments button{flex:1 0 44px;justify-content:center;max-width:70px}.audio-hint{color:var(--text-muted,#617775);justify-content:center;align-items:center;gap:7px;margin:8px 0 0;font-size:12px;display:flex}.audio-transcript{border-top:1px solid var(--line,#e5ebe6);margin-top:16px;padding-top:12px}.audio-transcript h4{margin:0 0 8px}.audio-transcript-hint{color:var(--text-muted,#526c67);margin:0 0 14px;font-size:14px;line-height:1.6}.audio-turn{border:1px solid var(--line,#dce5df);border-left:3px solid var(--line,#dce5df);border-radius:12px;margin-bottom:10px;padding:12px}.audio-turn-heading,.audio-turn-label{align-items:center;gap:8px;display:flex}.audio-turn-heading{justify-content:space-between;margin-bottom:8px}.audio-turn-label{color:var(--text-muted,#526c67);font-size:13px}.audio-turn.active{background:var(--tint-teal,#eaf5f3);border-left-color:var(--border-teal,#008b81)}.audio-turn.replayable{cursor:pointer;background:var(--surface,#f7fbfa)}.audio-turn.replayable:hover,.audio-turn.replayable:focus-within,.audio-turn.replayable.active{background:var(--tint-teal,#eaf5f3);border-color:var(--border-teal,#008b81)}.audio-turn .english{flex:1;min-width:0;margin:0;font-size:15px;line-height:1.65}.audio-turn button{min-width:44px;color:var(--text-teal,#008b81);justify-content:center;gap:5px;padding:6px 10px;font-size:13px}.audio-turn button:disabled{color:var(--text-muted,#687a75);background:var(--surface,#f2f4f2);cursor:not-allowed}.audio-turn button:focus-visible{outline:3px solid var(--border-blue,#2469d9);outline-offset:3px}.audio-speaker{background:var(--surface-soft,#eef1ee);border-radius:5px;padding:2px 5px;font-size:12px}.audio-transcript summary{min-height:44px;padding:12px 0}@media (width<=420px){.audio-card.listening-player{padding:12px}.audio-sentence-controls{gap:5px}.audio-sentence-controls button{gap:3px;font-size:12px}.audio-speeds{gap:5px}.audio-turn{padding:10px}.audio-turn .english{font-size:14px}}.listening-player .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.study-phase-tabs{flex-wrap:wrap}.audio-speeds button{min-width:44px}.formal-audio-controls{flex-wrap:wrap;justify-content:flex-start;gap:8px}.formal-audio-controls button{white-space:nowrap;flex:auto;justify-content:center;padding:10px 12px}.audio-secondary{flex-wrap:wrap}.audio-loop-options{flex-wrap:wrap;justify-content:flex-end;gap:4px 16px;margin-left:auto;display:flex}.audio-loop{white-space:nowrap}.audio-speeds button{min-width:0;font-size:13px}.audio-speeds>span{flex-shrink:0}@media (width<=420px){.audio-loop-options{gap:0 10px}.audio-loop{gap:6px;font-size:12px}.audio-speeds button{padding:6px 2px}}.sentence-guide{--guide-accent:var(--accent,#28786d);color:var(--ink,#213e50);margin-top:22px}.guide-heading{align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.guide-heading>span{font-size:18px;font-weight:700}.guide-heading small{color:var(--text-muted,#66776f);font-size:14px}.guide-examples{border-bottom:1px solid var(--line,#d4e3d8);flex-wrap:wrap;gap:8px;padding-bottom:16px;display:flex}.guide-examples button{min-height:44px;color:inherit;font:inherit;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:9px 13px;font-size:15px;display:flex}.guide-examples button span{opacity:.65;font-size:12px}.guide-examples button[aria-pressed=true]{background:var(--tint-green,#eaf3ee);border-color:var(--line,#d4e3d8);color:var(--guide-accent);font-weight:700}.guide-sentence{white-space:pre-wrap;overflow-wrap:break-word;margin:26px 0 10px;font-size:clamp(24px,2.2vw,31px);font-weight:500;line-height:1.9}.guide-mark{-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-bottom:3px}.guide-mark.is-focused{background-color:var(--tint-green,#e3f1e9);background-image:linear-gradient(var(--guide-accent),var(--guide-accent));background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px}.replay-0 .guide-mark.is-focused{animation:.65s ease-out both guide-underline-a}.replay-1 .guide-mark.is-focused{animation:.65s ease-out both guide-underline-b}@keyframes guide-underline-a{0%{background-size:0% 2px}to{background-size:100% 2px}}@keyframes guide-underline-b{0%{background-size:0% 2px}to{background-size:100% 2px}}.guide-translation{color:var(--text-muted,#627774);margin:0 0 26px;font-size:16px;line-height:1.7}.guide-explanation{border-left:3px solid var(--guide-accent);min-height:130px;padding:2px 0 2px 16px}.guide-step-label{letter-spacing:.07em;color:var(--text-muted,#66776f);font-size:12px}.guide-explanation h4{margin:8px 0;font-size:19px;line-height:1.5}.guide-explanation p{max-width:70ch;margin:0;font-size:16px;line-height:1.8}.guide-timeline{background:var(--surface-soft,#f2f5ef);border-radius:10px;min-height:144px;margin:20px 0;padding:16px 18px;overflow:hidden}.guide-timeline-idle{color:var(--text-muted,#66776f);text-align:center;justify-content:center;align-items:center;font-size:14px;display:flex}.guide-track{grid-template-columns:100px minmax(0,1fr);align-items:center;gap:12px;margin:10px 0 17px;display:grid}.guide-track-label{color:var(--text-muted,#627774);font-size:14px}.guide-rail{background:var(--line,#dce6de);border-radius:4px;height:20px;position:relative}.guide-duration{opacity:.15;background:linear-gradient(90deg,#0000,#498b7a 15% 85%,#0000);height:100%;position:absolute}.duration-0{width:78%;left:0}.duration-1{background:linear-gradient(90deg,#0000,#b07852 15% 85%,#0000);width:78%;left:22%}.duration-on{opacity:1;transform-origin:0;animation:.85s ease-out both guide-band}@keyframes guide-band{0%{opacity:.25;transform:scaleX(.05)}to{opacity:1;transform:scaleX(1)}}.guide-timeline-caption{color:var(--text-muted,#627774);margin:16px 0 0;font-size:12px;line-height:1.7}.guide-event-track{padding:4px 0 26px}.guide-event-track>.guide-track-label{margin-bottom:10px;display:block}.guide-background{transform-origin:0;background:linear-gradient(90deg,#0000,#498b7a 18%,#498b7a);width:50%;height:100%;animation:.85s ease-out both guide-band;position:absolute;left:0}.guide-unknown{border:1px dashed var(--text-muted,#627774);text-align:center;background:var(--surface,#fff);width:50%;height:20px;font-size:11px;line-height:18px;position:absolute;top:0;left:50%}.guide-arrival{white-space:nowrap;color:var(--ink,#213e50);font-size:12px;animation:.55s ease-out both guide-arrival;position:absolute;top:23px;left:50%;transform:translate(-50%)}.guide-arrival i{background:#b07852;width:2px;height:31px;position:absolute;bottom:20px;left:50%}@keyframes guide-arrival{0%{opacity:0}to{opacity:1}}.guide-background.after-arrival{background:linear-gradient(90deg,#498b7a,#498b7a 80%,#0000);width:80%;left:20%}.guide-background.background-muted{opacity:.12;animation:none}.guide-arrival.early-arrival{left:20%}.guide-sequence{justify-content:space-around;align-items:center;gap:16px;min-height:70px;display:flex}.sequence-point{text-align:center;border-top:3px solid #b07852;padding:10px 4px 0;font-size:16px;animation:.65s ease-out both guide-arrival}.sequence-point small{margin-top:6px;font-size:12px;display:block}.sequence-muted{opacity:.3;animation:none}.guide-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.guide-controls button{min-height:44px;font:inherit;background:var(--surface,#fff);color:inherit;border:1px solid var(--line,#d4e3d8);border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:10px 14px;font-size:15px;display:inline-flex}.guide-controls .guide-primary{color:#fff;background:#28786d;border-color:#28786d}.guide-controls button:disabled{opacity:.4;cursor:default}.sentence-guide button:focus-visible{outline-offset:3px;outline:3px solid #b07852}.guide-complete{color:var(--text-muted,#627774);margin:14px 0 0;font-size:14px}.guide-original-notes{margin-top:22px;font-size:14px;line-height:1.8}.guide-original-notes summary{cursor:pointer;padding:10px 0}.guide-original-notes p{margin:10px 0}@media (width<=600px){.guide-heading{flex-direction:column;align-items:flex-start;gap:4px}.guide-examples{gap:4px}.guide-examples button{padding:8px;font-size:13px}.guide-sentence{margin-top:20px;font-size:24px;line-height:1.85}.guide-explanation{min-height:170px;padding-left:12px}.guide-timeline{padding:14px 10px}.guide-track{grid-template-columns:82px minmax(0,1fr);gap:8px}.guide-track-label{font-size:12px}.guide-controls{gap:6px}.guide-controls button{padding:9px 10px;font-size:13px}}.guide-source-note{color:var(--text-muted,#627774);margin:-14px 0 22px;font-size:14px;line-height:1.7}.authored-timeline{min-height:164px}.authored-heading{color:var(--text-muted,#627774);justify-content:space-between;align-items:baseline;gap:16px;font-size:14px;display:flex}.authored-heading strong{color:var(--guide-accent);text-align:right;font-size:14px}.authored-structure{flex-wrap:wrap;align-items:baseline;gap:20px;margin:22px 0 16px;font-size:18px;display:flex}.authored-structure span{border-bottom:2px solid var(--line,#d4e3d8);padding-bottom:6px}.authored-structure .is-active{color:var(--guide-accent);background-image:linear-gradient(var(--guide-accent),var(--guide-accent));background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;border-bottom-color:#0000;font-weight:700;animation:.65s ease-out both guide-underline-a}.authored-state{align-items:center;gap:14px;margin:24px 0 18px;font-size:16px;display:flex}.authored-state span{overflow-wrap:anywhere;max-width:42%}.authored-state i{background:var(--guide-accent);transform-origin:0;flex:1;height:2px;animation:.8s ease-out both guide-band}.authored-repeat{justify-content:space-around;align-items:center;height:40px;margin:16px 0;display:flex;position:relative}.authored-repeat:before{content:"";border-top:2px dotted var(--text-muted,#627774);width:100%;position:absolute;top:19px}.authored-repeat i{background:var(--guide-accent);border-radius:50%;width:13px;height:13px;animation:.45s ease-out both guide-arrival;position:relative}.authored-progress,.authored-background,.authored-event{background:var(--line,#dce6de);border-radius:4px;height:20px;margin:27px 0 25px;position:relative}.authored-progress span,.authored-background>span{transform-origin:0;background:linear-gradient(90deg,#0000,#498b7a 15% 85%,#0000);height:100%;animation:.85s ease-out both guide-band;display:block}.authored-progress i,.authored-background>i,.authored-event>i{border-left:2px solid #b07852;height:36px;animation:.65s ease-out both guide-arrival;display:block;position:absolute;top:-8px;left:50%}.authored-background>span{background:linear-gradient(90deg,#0000,#498b7a 20%,#498b7a);width:50%}.authored-background em{text-align:center;border:1px dashed var(--text-muted,#627774);background:var(--surface,#fff);width:50%;height:100%;font-size:11px;font-style:normal;line-height:18px;position:absolute;top:0;left:50%}.authored-event{height:2px;margin:36px 0 34px}.authored-event>i{background:#b07852;border:0;border-radius:50%;width:14px;height:14px;top:-6px}@media (width<=600px){.authored-heading,.authored-heading strong{font-size:13px}.authored-structure{gap:12px;font-size:16px}.authored-state{gap:10px;font-size:14px}}@media (prefers-reduced-motion:reduce){.sentence-guide *,.sentence-guide :before,.sentence-guide :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.reading-article{--reading-nav-height:0px;min-width:0}.reading-controls{border:1px solid var(--line,#dce7e1);background:var(--surface,#fff);border-radius:14px;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0;padding:12px;display:flex}.reading-controls button,.reading-controls select{min-height:44px;padding:8px 12px;font-size:13px}.reading-controls select{flex:none;width:auto}.reading-seek{font-variant-numeric:tabular-nums;flex:1;gap:3px;min-width:130px;font-size:11px;display:grid}.reading-seek input{width:100%;min-height:44px;accent-color:var(--primary,#258c7d);background:0 0;border:0;margin:0;padding:0}.reading-body{white-space:pre-wrap;color:var(--text,#2b4655);margin:16px 0;font-size:18px;line-height:1.95}.reading-sentence-active{background:color-mix(in srgb, var(--primary,#258c7d) 12%, transparent);border-radius:4px}.reading-word{cursor:pointer;border-radius:3px}.reading-word:hover{box-shadow:0 2px #91b6a6}.reading-word-active{color:#223c36;background:#f8d777;box-shadow:0 3px #bd8414}.reading-word-active mark{color:#223c36!important;background:#f8d777!important}.reading-evidence{outline-offset:2px;outline:1px solid #c6a14c}.reading-word:focus-visible{outline-offset:3px;outline:2px solid #b47838}.reading-bilingual .reading-pair{border-bottom:1px solid var(--line,#dce7e1);padding:16px 0;display:block}.reading-bilingual .reading-sentence{display:block}.reading-chinese{color:var(--muted,#617c72);margin-top:8px;font-size:15px;line-height:1.85;display:block}.reading-chinese button{min-height:44px;margin-left:10px;font-size:12px}.reading-dock{bottom:var(--reading-nav-height);left:calc(var(--sidebar-width,260px) + 20px);z-index:34;background:var(--surface,#fff);border:1px solid var(--line,#dce7e1);border-radius:16px;position:fixed;right:20px;box-shadow:0 -4px 24px #19382b18}.reading-dock .reading-controls{background:0 0;border:0;margin:0;padding-right:70px}.reading-started{padding-bottom:150px}.reading-error{color:var(--danger,#9e443c);font-size:14px}.reading-note-play{margin:8px 0}.reading-bilingual-toggle{margin:12px 0}.reading-original-translation{margin-top:16px}@media (width<=900px){.reading-dock{left:10px;right:10px}.reading-controls{gap:5px;padding:8px}.reading-controls button,.reading-controls select{padding:8px;font-size:12px}.reading-body{font-size:17px}.reading-seek{min-width:100px}.reading-started{padding-bottom:210px}}@media (prefers-reduced-motion:reduce){.reading-article *{scroll-behavior:auto!important}}.grammar-reference-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grammar-reference-actions>button{min-height:44px}.note-panel.grammar-reference-panel{background:var(--surface,#fff);width:min(960px,100%);max-height:90dvh;color:var(--text,#213e50);flex-direction:column;padding:0;display:flex;overflow:hidden}.grammar-reference-panel>header{flex:none;gap:12px;margin:0;padding:20px 24px 4px}.grammar-reference-panel>header h2{min-width:0;font-size:26px}.grammar-reference-panel>header button{flex:none;min-width:44px;min-height:44px}.reference-toolbar{border-bottom:1px solid var(--line,#dce7df);z-index:1;flex:none;padding:0 24px 16px;box-shadow:0 4px 8px #183d3508}.reference-focus{margin:0 0 10px;font-size:17px;line-height:1.5}.reference-switches{flex-wrap:wrap;gap:8px 20px;display:flex}.reference-switches button{min-height:44px;color:var(--text,#213e50);font:inherit;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-weight:600;display:inline-flex}.reference-switch-track{background:var(--surface-soft,#b4bbbd);border-radius:20px;flex:none;width:42px;height:26px;position:relative}.reference-switch-track:after{content:"";background:var(--surface,white);border-radius:50%;width:20px;height:20px;position:absolute;top:3px;left:3px}[aria-checked=true]>.reference-switch-track{background:#4e846b}[aria-checked=true]>.reference-switch-track:after{left:19px}.reference-legend{flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:13px;line-height:1.5;display:flex}.reference-legend>span{align-items:center;gap:5px;display:inline-flex}.reference-legend i{border-radius:4px;width:17px;height:15px;display:inline-block}.reference-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:12px 24px 24px;overflow-y:auto}.reference-note-surface{flex-direction:column;min-height:0;display:flex}.reference-phrase-label:after{content:attr(data-label)}.reference-phrase-label{-webkit-user-select:none;user-select:none}.reference-count{text-align:right;color:var(--text-muted,#66776f);margin:0 0 10px;font-size:14px}.reference-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.reference-example{border:1px solid var(--line,#d4e3d8);background:var(--surface,#fff);border-radius:14px;min-width:0;padding:20px}.reference-number{color:var(--text-muted,#49735c);background:var(--tint-green,#edf4ed);border-radius:10px;padding:3px 8px;font-size:15px}.reference-sentence{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 16px;font-size:23px;font-weight:500;line-height:2.4}.reference-word{-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:4px;padding:2px 3px}.pos-noun{background:var(--tint-green,#dcecd5)}.pos-verb{background:var(--tint-orange,#fce0d2)}.pos-article{background:var(--surface-soft,#e8e8e8)}.pos-determiner{background:var(--tint-blue,#e3e4f5)}.pos-pronoun{background:var(--tint-teal,#d4ece7)}.pos-adjective{background:var(--tint-orange,#f9e9bb)}.pos-adverb{background:var(--tint-purple,#e9dafa)}.pos-preposition{background:var(--tint-blue,#d8eaff)}.pos-conjunction{background:var(--tint-purple,#f3dfe9)}.pos-numeral{background:var(--tint-orange,#f1e4cf)}.reference-phrase{--phrase-color:var(--text-muted,#4e7958);border-bottom:2px solid var(--phrase-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:0 0 3px 3px;padding-bottom:3px}.phrase-prepositional{--phrase-color:var(--text-blue,#326fab)}.phrase-time{--phrase-color:var(--text-orange,#936421)}.phrase-short{vertical-align:baseline;min-width:55px;max-width:100%;margin-bottom:16px;line-height:1.8;display:inline-block;position:relative}.reference-phrase-label{color:var(--phrase-color);white-space:nowrap;font-size:11px;font-weight:400;line-height:1.4}.phrase-short>.reference-phrase-label{text-align:center;width:100%;position:absolute;top:100%;left:0}.phrase-long>.reference-phrase-label{vertical-align:baseline;padding-left:4px;display:inline-block}.phrase-fill{background:var(--tint-green,#eff6ed)}.phrase-fill.phrase-prepositional{background:var(--tint-blue,#edf4fd)}.phrase-fill.phrase-time{background:var(--tint-orange,#fcf5e8)}.reference-example dl{margin:0;font-size:16px;line-height:1.75}.reference-example dt{color:var(--text-muted,#66776f);margin-top:14px;font-size:14px}.reference-example dd{overflow-wrap:anywhere;margin:3px 0 0}@media (width<=600px){.note-backdrop:has(>.grammar-reference-panel){padding:0}.note-panel.grammar-reference-panel{border-radius:0;width:100%;height:100dvh;max-height:100dvh;padding:0}.grammar-reference-panel>header{padding:max(10px, env(safe-area-inset-top)) 16px 2px}.grammar-reference-panel>header h2{font-size:24px}.reference-toolbar{padding:0 16px 10px}.reference-focus{margin-bottom:5px;font-size:15px}.reference-switches{gap:8px 18px}.reference-switches button{gap:8px;font-size:16px}.reference-legend{gap:4px 12px;margin-top:5px;font-size:12px}.reference-scroll{padding:10px 12px max(20px, env(safe-area-inset-bottom));scrollbar-gutter:auto}.reference-example{padding:14px 12px}.reference-sentence{font-size:20px}.reference-example dl{font-size:16px}}@media (height<=500px) and (orientation:landscape){.grammar-reference-panel>header{padding-top:4px}.reference-toolbar{padding-bottom:5px}.reference-focus{margin-bottom:0}.reference-legend{display:none}}.reference-phrase.phrase-verb{--phrase-color:var(--text-rose,#a66549)}.phrase-fill.phrase-verb{background:var(--tint-orange,#fcf0e9)}.pos-particle{background:var(--tint-purple,#eee4f1)}.visual-lesson{--ink:#203c50;--sage:#347e6c;--pale:#edf4ee;--clay:#a24c33;color:var(--ink);min-width:0;margin:24px 0}.visual-intro{background:linear-gradient(110deg, var(--tint-green,#e8f1e9), var(--tint-orange,#f7f4e9));border:1px solid var(--line,#d9e6dc);border-radius:22px;justify-content:space-between;align-items:center;gap:20px;padding:28px;display:flex}.visual-intro h2{margin:10px 0;font-size:clamp(24px,3vw,34px)}.visual-intro p{margin:0}.visual-eyebrow{letter-spacing:.08em;color:var(--text-muted,#4f7566);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.visual-tabs,.memory-modes{background:var(--tint-green,#eaf0eb);border-radius:14px;flex-wrap:wrap;gap:6px;margin:20px 0;padding:6px;display:flex}.visual-tabs button,.memory-modes button{color:var(--text-muted,#3d5b4e);background:0 0;border:0;border-radius:10px;flex:1;justify-content:center;min-height:44px;padding:12px;font-weight:600}.visual-tabs button[aria-pressed=true],.memory-modes button[aria-pressed=true]{background:var(--surface,white);color:var(--text-green,#213f32);box-shadow:0 2px 8px #243d5010}.memory-modes button{padding:9px 5px;font-size:13px}.memory-modes small{font-size:11px;display:block}.visual-card{background:var(--surface,white);border:1px solid var(--line,#dfe8e1);overflow-wrap:anywhere;border-radius:20px;min-width:0;margin:20px 0;padding:26px}.visual-card h3{margin:5px 0 12px}.visual-card-heading{align-items:center;gap:16px;margin-bottom:20px;display:flex}.visual-number{color:var(--text-muted,#759781);font-family:Georgia,serif;font-size:30px;line-height:1.2}.visual-card-heading h3{margin:4px 0;font-size:23px}.visual-image{object-fit:contain;background:var(--tint-orange,#f5f1e6);border-radius:14px;width:100%;height:auto;display:block}.grammar-scene{max-width:680px;margin:0 auto 20px}.grammar-scene figcaption,.reading-scene figcaption{color:var(--text-muted,#60746a);margin:10px 0;font-size:13px}.reading-scene{max-width:420px;margin:16px 0}.visual-fallback{background:var(--tint-green,#f0f3ed);border:1px dashed var(--line,#90a693);border-radius:12px;padding:30px;line-height:1.7}.diagram-parts{flex-wrap:wrap;align-items:stretch;gap:10px;margin:18px 0;display:flex}.diagram-part{text-align:left;background:var(--surface,#f3f6f3);border:1px solid var(--line,#d6e2d9);border-bottom:4px solid var(--line,#94b29d);min-height:76px;color:var(--ink);overflow-wrap:anywhere;border-radius:12px;flex-direction:column;flex:140px;align-items:flex-start;padding:15px;display:flex}.diagram-part small{margin-bottom:7px;font-size:12px;font-weight:600}.diagram-part span{font-size:18px;line-height:1.6}.role-subject{background:var(--tint-green,#e9f2ec);border-color:var(--line,#5d9074)}.role-verb,.role-auxiliary{background:var(--tint-orange,#fbede4);border-color:var(--border-rose,#bc785b)}.role-object{background:var(--tint-blue,#edf0fa);border-color:var(--border-blue,#8695b7)}.role-modifier,.role-time{background:var(--tint-orange,#f3f1ed);border-color:var(--line,#b7b0a0)}.diagram-part.selected{outline:3px solid var(--border-green,#3e7060);outline-offset:3px}.collapsed-part{display:none}.part-insight{background:var(--tint-green,#edf5ef);border-left:3px solid var(--border-green,#43816b);padding:12px;font-size:14px}.core-connection{background:var(--tint-amber,#f4f4e9);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px;display:flex}.morph{color:var(--text-rose,#964a30);background:var(--tint-orange,#f6e5d7);border-radius:4px;padding:2px 3px}.diagram-transform .diagram-parts,.diagram-timeline .diagram-parts{flex-direction:column}.diagram-transform .diagram-part,.diagram-timeline .diagram-part{flex:auto}.diagram-timeline .diagram-parts{border-left:2px solid var(--line,#83a590);padding-left:20px}.diagram-timeline .diagram-part{position:relative}.diagram-timeline .diagram-part:before{content:"";border:3px solid var(--line,white);background:#55866c;border-radius:50%;width:12px;height:12px;position:absolute;top:23px;left:-28px}.diagram-calendar .diagram-part{border-top:8px solid var(--line,#83a590);flex:95px;min-height:100px}.diagram-calendar .diagram-part span{font-size:16px}.diagram-organization .diagram-parts{justify-content:center}.diagram-organization .diagram-part:first-child{background:var(--tint-green,#e6efe8);flex-basis:100%}.diagram-organization .diagram-part:not(:first-child){border-top:3px solid var(--line,#8baa95)}.diagram-scene .diagram-part:not(:last-child):after{content:"→";color:var(--text-muted,#5c866e);align-self:flex-end;font-size:20px}.visual-actions{flex-wrap:wrap;gap:12px;display:flex}.visual-actions button,.visual-toggle{background:var(--tint-green,#edf4ee);border:1px solid var(--line,#c9dbcf);color:var(--text-green,#2c614d);border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;margin:10px 8px 10px 0;padding:11px 15px;display:inline-flex}.visual-actions button:disabled{opacity:.4}.visual-note{background:var(--tint-amber,#f7f6ee);border-radius:12px;margin:16px 0;padding:14px 18px;font-size:14px;line-height:1.8}.visual-note summary,.full-explanation summary{cursor:pointer;min-height:30px;padding:4px 0;font-weight:600}.visual-note p:last-child{margin-bottom:0}.hint-withdrawn{background:var(--surface,#f3f6f2);border-radius:12px;align-items:center;gap:10px;padding:20px;display:flex}.reading-text{white-space:pre-wrap;font-size:19px;line-height:1.95}.reading-text mark{background:var(--tint-orange,#f9e7aa);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:3px 0}.visual-recall{border-top:1px solid var(--line,#dae5dd);margin-top:20px;padding-top:22px}.visual-recall h4{margin:10px 0 16px;font-size:18px;line-height:1.7}.recall-options{gap:10px;display:grid}.recall-options button{text-align:left;background:var(--surface,white);color:var(--ink);border:1px solid var(--line,#ccdcd1);border-radius:12px;align-items:center;gap:12px;min-height:48px;padding:13px;line-height:1.6;display:flex}.recall-options button>span{color:var(--text-muted,#64816f);font-size:12px}.recall-options button.is-correct{background:var(--tint-green,#e7f1e8);border-color:var(--border-green,#49815b)}.recall-options button.is-wrong{background:var(--tint-orange,#fff1ea);border-color:var(--border-orange,#b77450)}.recall-options button:disabled{opacity:1;cursor:default}.recall-options small{white-space:nowrap;margin-left:auto}.recall-feedback{background:var(--tint-green,#eff5ed);border-radius:12px;margin-top:16px;padding:16px;line-height:1.8}.visual-vocabulary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.visual-word{margin:0;padding:22px}.visual-word-top{align-items:center;gap:15px;display:flex}.visual-word .visual-image{aspect-ratio:3/2;object-fit:cover}.visual-word .diagram-part span{font-size:16px}.visual-word .diagram-part{flex-basis:110px;padding:10px}.word-title{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.word-title h2{margin:0;font-size:32px}.word-title small{color:var(--text-muted,#768079);flex-basis:100%}.word-title button{border:1px solid var(--line,#d2e0d6);background:var(--tint-green,#eff5ed);border-radius:50%;min-width:44px;min-height:44px;padding:8px}.word-example{border-left:3px solid var(--line,#a4bea8);padding-left:14px;line-height:1.7}.memory-prompt{background:var(--tint-amber,#f4f5ed);border:1px dashed var(--line,#b4c6b9);border-radius:12px;padding:24px}.recall-history{gap:10px;display:grid}.recall-history article{background:var(--surface,#f3f6f2);border-radius:10px;flex-direction:column;gap:6px;padding:14px;display:flex}.recall-history span{color:var(--text-muted,#617769);font-size:13px}.visual-lesson button:focus-visible,.visual-lesson summary:focus-visible{outline:3px solid var(--border-green,#2e6a57);outline-offset:4px}@media (width<=700px){.visual-vocabulary-grid{grid-template-columns:1fr}.visual-card{border-radius:16px;padding:18px}.visual-intro{padding:20px}.visual-intro>svg{display:none}.diagram-part{flex-basis:120px}.diagram-part span{font-size:16px}.visual-card-heading h3{font-size:20px}.reading-text{font-size:17px}.visual-tabs button{padding:10px 5px;font-size:14px}.visual-tabs{position:relative}.visual-card-heading{align-items:flex-start}.grammar-scene figcaption{line-height:1.7}}@media (prefers-reduced-motion:reduce){.visual-lesson *{scroll-behavior:auto!important}}.annotated-scene{position:relative}.scene-marker{border:2px solid var(--line,white);min-height:44px;color:var(--on-solid,white);border-radius:20px;padding:6px 12px;font-weight:700;position:absolute;box-shadow:0 3px 10px #203c5033}.marker-subject{background:#347553;top:32%;left:31%}.marker-verb{background:#a65132;top:50%;left:6%}.scene-marker[aria-pressed=true]{outline:3px solid var(--border-green,#213f32);outline-offset:3px}.daily-results{min-width:0}.daily-results-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.daily-results-heading h2{margin:0 0 6px}.daily-results-heading p{margin:0}.daily-results-heading select{flex-shrink:0;width:auto}.daily-results-matrix+.daily-results-matrix{margin-top:24px}.daily-results-matrix h3{margin:0 0 12px;font-size:15px}.daily-heatmap{table-layout:fixed;border-collapse:separate;border-spacing:6px;width:100%}.daily-heatmap th{text-align:center;padding:6px 0;font-size:15px;font-weight:600}.daily-heatmap th:first-child{text-align:left;width:104px;padding-right:8px}.daily-heatmap td{vertical-align:top;padding:0}.daily-results-label-part{display:inline-block}.daily-heatmap-cell{font-variant-numeric:tabular-nums;border:2px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:100%;min-height:86px;padding:8px 2px;display:flex}.daily-heatmap-cell strong{font-size:clamp(18px,2.5vw,28px);line-height:1.2}.daily-heatmap-cell small{font-size:12px;line-height:1.4}.daily-heatmap-cell.lowest{color:#18334a;background:#e1f3ee}.daily-heatmap-cell.low{color:#18334a;background:#bce5dc}.daily-heatmap-cell.middle{color:#18334a;background:#87cfc0}.daily-heatmap-cell.high{color:#fff;background:#28786e}.daily-heatmap-cell.highest{color:#fff;background:#14584f}.daily-results .missing{color:#586a74;background:#edf0f1}.daily-results .unscored{color:#586a74;background:#fafbf8;border:2px dashed #879a92}.daily-heatmap button:hover{box-shadow:inset 0 0 0 2px}.daily-heatmap button[aria-pressed=true]{outline:2px solid var(--green);outline-offset:2px;box-shadow:inset 0 0 0 2px #fff}.daily-heatmap button:focus-visible{outline:3px solid var(--dark);outline-offset:2px}.daily-results-legend{color:#586a74;flex-wrap:wrap;align-items:center;gap:14px 20px;margin:22px 6px;font-size:12px;display:flex}.daily-results-scale{flex:180px;grid-template-columns:repeat(3,1fr);gap:6px;max-width:360px;display:grid}.daily-results-scale>div{background:linear-gradient(90deg,#e1f3ee 0% 25%,#bce5dc 25% 50%,#87cfc0 50% 75%,#28786e 75% 90%,#14584f 90% 100%);border-radius:5px;grid-column:1/-1;height:12px}.daily-results-scale>span:nth-of-type(2){text-align:center}.daily-results-scale>span:last-child{text-align:right}.daily-results-key{align-items:center;gap:6px;display:inline-flex}.daily-results-key i{border-radius:4px;width:22px;height:16px;display:inline-block}.daily-results-detail{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;min-height:80px;margin-top:18px;padding-top:20px;display:flex}.daily-results-detail>p{margin:0}.daily-results-state{align-items:center;gap:8px;margin-top:8px;display:flex}.daily-results-score{white-space:nowrap;margin-left:auto;font-size:25px}.daily-results-view{color:var(--green);border-color:var(--green)}.daily-results-sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=600px){.daily-results.card{padding:18px 12px}.daily-results-heading{align-items:flex-start;gap:8px}.daily-results-heading h2{font-size:22px}.daily-results-heading p{font-size:12px}.daily-results-heading select{max-width:116px;font-size:14px}.daily-heatmap{border-spacing:4px}.daily-heatmap th{font-size:12px}.daily-heatmap th:first-child{width:54px;padding-right:2px}.daily-heatmap-cell{border-radius:7px;min-height:64px}.daily-heatmap-cell strong{font-size:16px}.daily-heatmap-cell small{font-size:10px}.daily-heatmap-cell.unscored strong{font-size:12px}.daily-results-legend{gap:12px;margin:18px 4px}.daily-results-scale{flex-basis:100%;max-width:none}.daily-results-detail{gap:12px}.daily-results-detail>div{flex-basis:100%}.daily-results-score{margin-left:0;margin-right:auto;font-size:22px}}.attempt-activities{min-width:0}.attempt-activities p{overflow-wrap:anywhere}.activity-attempt,.activity-interval{border-bottom:1px solid var(--line,#ddd);padding:16px 0}.activity-summary p{margin:6px 0}.activity-incomplete{color:var(--muted,#656565);font-size:.9rem}.activity-pagination{justify-content:space-between;align-items:center;gap:8px;margin-top:16px;display:flex}.activity-interval dl{margin:10px 0}.activity-interval dl>div{grid-template-columns:6em minmax(0,1fr);gap:8px;margin:8px 0;display:grid}.activity-interval dd{overflow-wrap:anywhere;margin:0}.activity-attempt h3{overflow-wrap:anywhere}.ability-radar svg{width:100%;max-width:440px;margin:0 auto;display:block;overflow:visible}.ability-radar-grid{fill:none;stroke:var(--line);stroke-width:1px}.ability-radar-area{fill:var(--green);fill-opacity:.18;stroke:var(--green);stroke-width:2.5px;stroke-linejoin:round}.ability-radar-edge{stroke:var(--green);stroke-width:2.5px}.ability-radar-point{fill:var(--green);stroke:var(--surface,white);stroke-width:1.5px}.ability-radar-label{fill:var(--text,#18334a);font-size:14px;font-weight:600}.ability-radar-value{fill:var(--muted);font-size:13px;font-weight:400}.ability-radar-scale{fill:var(--muted);paint-order:stroke;stroke:var(--surface,white);stroke-width:3px;stroke-linejoin:round;font-size:10px}.ability-radar-notice{text-align:center;font-size:12px}.ability-radar-details{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:0;padding-top:18px;display:grid}.ability-radar-details dt{color:var(--muted);font-size:13px}.ability-radar-details dd{margin:4px 0 0;font-size:15px}.ability-radar-details small{color:var(--muted);margin-top:4px;font-size:12px;display:block}@media (width<=600px){.ability-radar-label{font-size:18px}.ability-radar-value{font-size:16px}.ability-radar-scale{font-size:12px}}:root{color:var(--text,#18334a);background:var(--surface,#f7f8f5);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#218579;--dark:#18334a;--muted:#70817f;--line:#e5ebe6;--gold:#a67b24;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,.button{border:1px solid var(--line);background:var(--surface,white);min-height:44px;color:var(--dark);cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:9px;padding:10px 16px;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s;display:inline-flex}button:hover,.button:hover{background:var(--tint-green,#edf4ef)}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--border-teal,#78bbae);outline-offset:3px}a{color:var(--green)}input,select,textarea{background:var(--surface,#fff);border:1px solid var(--line,#d6e1dc);width:100%;min-width:0;min-height:46px;color:var(--dark);border-radius:10px;padding:11px 13px;display:block}input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--green);flex:none}label{margin:0 0 18px;font-size:14px;font-weight:600;display:block}label input,label select,label textarea{margin-top:8px;font-size:16px}textarea{resize:vertical;min-height:100px}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:-.8px;margin-bottom:10px;font-size:30px;line-height:1.4}h2{letter-spacing:-.4px;margin-bottom:12px;font-size:22px;line-height:1.5}h3{margin-bottom:10px;font-size:18px;line-height:1.6}p{margin-bottom:14px;font-size:16px;line-height:1.8}small,.small{font-size:13px;line-height:1.7}strong{font-weight:650}svg{vertical-align:middle;flex-shrink:0}.muted{color:var(--muted)}.success{color:var(--text-green,#197b61)}.success svg{margin-right:6px}.preserve{white-space:pre-wrap}.english{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.95}.wrap{overflow-wrap:anywhere}.spaced{margin-top:26px}.wide{width:100%}.primary{background:var(--green);color:var(--on-solid,#fff);border-color:var(--green)}.primary:hover{background:#196e64}.primary.soft{background:var(--tint-green,#eaf4ef);border-color:var(--line,#eaf4ef);color:var(--text-teal,#226d60)}.secondary{background:var(--surface,#fff)}.text-button{color:var(--green);background:0 0;border:none;min-height:44px;padding:8px 0}.button-row{flex-wrap:wrap;gap:10px;display:flex}.back-button{color:var(--muted);background:0 0;border:none;margin-bottom:18px;padding:0}.icon-button{background:var(--tint-green,#edf5f0);border:none;padding:10px}.section-title{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-title h2,.section-title h3{margin:0}.section-title>span{align-items:center;gap:7px;display:flex}.section-title select{max-width:160px}.tag{background:var(--surface,#f0f3f0);color:var(--text-muted,#6f7e74);white-space:nowrap;border-radius:7px;align-items:center;padding:5px 9px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.tag.green{background:var(--tint-green,#e7f3eb);color:var(--text-green,#25774f)}.tag.amber{background:var(--tint-orange,#fbf2df);color:var(--text-orange,#927027)}.card{background:var(--surface,#fff);border:1px solid var(--line,#e7ece7);border-radius:20px;min-width:0;padding:26px;box-shadow:0 3px 12px #29463103}.card>:last-child{margin-bottom:0}.eyebrow{color:var(--green);letter-spacing:2.4px;margin-bottom:12px;font-size:11px;font-weight:700}.page-heading{margin-bottom:28px}.page-heading .muted{margin-bottom:0}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.course-assignment-row{align-items:flex-start;gap:8px;margin:14px 0 18px;display:flex}.course-assignment-row>span{flex:none;padding-top:8px}.course-assignment-children{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;min-width:0;max-width:368px;display:grid}.course-child-chip{border-radius:16px;gap:4px;min-width:0;min-height:32px;padding:5px 7px;font-size:13px;line-height:20px}.course-child-chip svg{flex-shrink:0}.course-child-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-child-chip.is-assigned{background:var(--green);border-color:var(--green);color:var(--on-solid,white)}.course-child-chip.is-unassigned{background:var(--tint-green,#e5f0eb);color:var(--text-teal,#1d7669);border-color:var(--line,#c4dcd3);opacity:.5}.course-child-chip.is-assigned:hover{background:#176c61}.course-child-chip.is-unassigned:hover{opacity:.8}.course-child-chip:disabled{cursor:not-allowed}.course-child-chip.is-assigned:disabled{opacity:.8}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:var(--surface,#fff);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:8px;min-width:0;padding:22px;display:flex}.card .stat{box-shadow:none;border:none;padding:10px 0}.stat>span{color:var(--muted);font-size:13px}.stat strong{letter-spacing:-.7px;font-variant-numeric:tabular-nums;font-size:26px}.stat small{color:var(--muted)}.progress-track{background:var(--tint-green,#edf1eb);border-radius:8px;height:7px;overflow:hidden}.progress-track span{background:#4a9b86;border-radius:8px;height:100%;transition:width .3s;display:block}.detail-row{border-bottom:1px solid var(--line,#edf0eb);justify-content:space-between;align-items:center;gap:15px;min-width:0;padding:15px 0;display:flex}.detail-row:last-child{border:none}.detail-row small,.redemption-row small{color:var(--muted);font-size:12px;display:block}.link-row{text-align:left;border:none;border-bottom:1px solid var(--line);border-radius:0;justify-content:flex-start;width:100%;padding:18px 0}.link-row:last-child{border:none}.link-row>span:not(.row-icon){flex:1;min-width:0}.link-row small{color:var(--muted);margin-top:4px;font-weight:400;display:block}.row-icon{background:var(--tint-green,#eff5ef);color:var(--green);border-radius:12px;padding:11px}.my-menu .link-row{gap:16px}.my-menu .row-icon{background:var(--tint-green,#eaf4ee);border:1px solid var(--line);border-radius:14px;flex:0 0 48px;place-items:center;width:48px;height:48px;padding:0;display:grid}.my-menu .link-row>svg{flex-shrink:0}@media (width<=480px){.my-menu .link-row{gap:12px}.my-menu .row-icon{border-radius:12px;flex-basis:42px;width:42px;height:42px}}.loading{color:var(--muted);justify-content:center;align-items:center;gap:12px;padding:70px 20px;display:flex}.spin{animation:1.3s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--muted);padding:36px 20px}.empty h3{color:var(--dark);margin:15px 0 8px}.empty-icon{background:var(--tint-green,#edf3ea);width:64px;height:64px;color:var(--text-muted,#78a88e);border-radius:20px;place-items:center;margin:auto;display:grid}.empty p{max-width:470px;margin:auto}.error-box,.success-box{background:var(--tint-orange,#fff2e8);color:var(--text-orange,#8e5b31);border-radius:12px;gap:12px;margin:12px 0;padding:16px;line-height:1.8;display:flex}.success-box{color:var(--text-green,#21694f);background:var(--tint-green,#ecf6ee)}.toast{z-index:90;max-width:min(600px,90vw);color:var(--on-solid,#fff);background:#183b34;border-radius:14px;padding:15px 22px;font-size:15px;line-height:1.7;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 10px 40px #16362633}.offline{background:var(--tint-orange,#fcf1d9);color:var(--text-orange,#886326);align-items:center;gap:10px;padding:13px 24px;display:flex}.sidebar{background:var(--surface,#fff);border-right:1px solid var(--line);z-index:30;flex-direction:column;width:232px;padding:39px 25px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{letter-spacing:-1.3px;color:var(--dark);align-items:center;gap:8px;font-size:32px;font-weight:750;text-decoration:none;display:flex}.brand-mark{background:var(--tint-green,#e7f2e9);color:var(--green);border-radius:12px;place-items:center;width:39px;height:39px;display:grid}.brand-dot{color:var(--green);margin-left:-9px}.brand-subtitle{color:var(--text-muted,#829288);letter-spacing:.7px;margin:13px 0 45px;font-size:11px}.sidebar nav{flex-direction:column;gap:10px;display:flex}.sidebar nav button{color:var(--text-muted,#7b8886);background:0 0;border:none;justify-content:flex-start;gap:14px;padding:14px 17px;font-size:15px}.sidebar nav button.active{color:var(--text-teal,#287565);background:var(--tint-green,#ebf4ed)}.nav-dot{margin-left:auto}.active .nav-dot{background:var(--green);border-radius:100%;width:5px;height:5px}.sidebar-bottom{border-top:1px solid var(--line);align-items:center;gap:11px;margin-top:auto;padding-top:24px;display:flex}.sidebar-bottom strong{font-size:14px;display:block}.sidebar-bottom small{color:var(--muted);font-size:11px}.avatar{background:var(--tint-green,#e4efe3);width:40px;height:40px;color:var(--text-muted,#537a5d);border-radius:50%;flex:none;place-items:center;font-size:16px;font-weight:650;display:grid}.avatar.small{width:31px;height:31px;font-size:12px}.avatar.large{width:58px;height:58px;font-size:23px}.workspace{margin-left:232px}.topbar{border-bottom:1px solid var(--line,#e8ede6);background:var(--surface,#fbfcf9);align-items:center;gap:18px;height:82px;padding:0 42px;display:flex}.topbar-path{color:var(--muted);font-size:13px}.topbar-date{color:var(--text-muted,#819087);margin-left:auto;font-size:12px}.mobile-brand{display:none}.workspace main{max-width:1360px;margin:auto;padding:38px 42px 22px}.page-footer{color:var(--text-muted,#95a295);justify-content:center;align-items:center;gap:6px;padding:28px 0 38px;font-size:11px;display:flex}.bottom-nav{display:none}.exam-mode .sidebar nav{visibility:hidden}.today-grid{grid-template-columns:minmax(0,1fr) 260px;gap:22px;display:grid}.hero{background:var(--tint-green,#eaf2e9);border-radius:20px;align-items:center;min-height:286px;padding:32px;display:flex;position:relative;overflow:hidden}.hero>div{z-index:1;max-width:62%;position:relative}.hero .tag{background:var(--surface,#fff9);color:var(--text-green,#46745e)}.hero h2{margin:15px 0 10px;font-size:25px}.hero p{color:var(--text-muted,#6e8778);max-width:300px;font-size:14px;line-height:1.8}.growth-art{width:270px;max-width:50%;position:absolute;bottom:10px;right:-15px}.today-progress{text-align:center}.today-progress h3{font-size:15px}.today-progress p{color:var(--muted);margin:17px 0 0;font-size:12px}.completion-ring{background:conic-gradient(#4b9e84 var(--progress), var(--tint-green,#edf2e9) 0);border-radius:100%;place-items:center;width:150px;height:150px;margin:20px auto 10px;padding:10px;display:grid}.completion-ring>div{background:var(--surface,white);border-radius:100%;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.completion-ring strong{letter-spacing:-1px;font-size:39px}.completion-ring strong small{color:var(--text-muted,#95a391);font-size:18px;font-weight:400}.completion-ring span{color:var(--muted);margin-top:3px;font-size:11px}.task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:17px;display:grid}.task-card{text-align:left;background:var(--surface,white);border:1px solid var(--line);border-radius:18px;justify-content:flex-start;align-items:flex-start;gap:16px;padding:23px;display:flex}.task-card>div{flex:1;min-width:0}.task-number{color:var(--text-muted,#90b29c);background:var(--tint-green,#f0f5ed);border-radius:13px;flex:none;place-items:center;width:46px;height:46px;font-size:20px;display:grid}.task-card h3{margin:9px 0 7px;font-size:19px}.task-card p{color:var(--text-muted,#7c8c81);font-size:13px;font-weight:400;line-height:1.8}.task-meta{border-top:1px solid var(--line,#edf1eb);color:var(--green);justify-content:space-between;gap:10px;padding-top:12px;font-size:12px;display:flex}.task-meta>span:first-child{color:var(--text-muted,#8b998c);font-weight:400}.task-card.complete{background:var(--surface,#f9fcf8)}.course-list{flex-direction:column;gap:17px;display:flex}.course-title{align-items:center;gap:22px;display:flex}.course-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px 24px;display:flex}.course-heading .course-title{min-width:0}.course-status-idle{--course-status-color:var(--text-muted,#687681);--course-status-bg:var(--surface,#f4f6f7);--course-status-border:var(--line,#dce2e5)}.course-status-active{--course-status-color:var(--text-orange,#946000);--course-status-bg:var(--tint-orange,#fff4de);--course-status-border:var(--border-orange,#eac478)}.course-status-done{--course-status-color:var(--text-green,#28734a);--course-status-bg:var(--tint-green,#e9f5ec);--course-status-border:var(--line,#b8dac3)}.course-status-legend{flex-wrap:wrap;align-items:center;gap:12px 18px;font-size:12px;display:flex}.course-status-legend>span{color:var(--course-status-color);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.course-status-legend svg{flex:none;width:17px;height:17px}.week-number{letter-spacing:-1px;color:var(--text-muted,#a4b6a7);min-width:44px;font-size:30px}.course-title h3{margin:6px 0}.course-title p{color:var(--muted);margin:0;font-size:13px}.day-grid{border-top:1px solid var(--line);grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:20px;padding-top:20px;display:grid}.day-grid strong{font-size:13px}.week-review-controls,.week-review-tabs,.week-review-filter{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.week-review-controls{justify-content:space-between}.week-review-filter select{width:auto;max-width:100%}.week-review .card{overflow-wrap:anywhere;min-width:0}.week-review h2 small{font-size:14px;font-weight:400}.day-grid button{flex-direction:column;align-items:flex-start;gap:3px;width:100%;margin-top:9px;padding:8px;font-size:12px;font-weight:400;display:flex}.day-grid button:not(.course-task)>span:last-child{color:var(--muted);font-size:10px}.day-grid .course-task{border-color:var(--course-status-border);border-left:2px solid var(--course-status-color);background:var(--course-status-bg);flex-direction:row;justify-content:space-between;align-items:center;gap:6px;min-height:58px}.day-grid .course-task:not(:disabled):hover{border-color:var(--course-status-color);box-shadow:0 2px 7px #18334a12}.day-grid .course-task:disabled{background:var(--surface,#f4f6f7);border-color:var(--line,#dce2e5)}.day-grid .course-task-copy{text-align:left;min-width:0;color:var(--dark);flex-direction:column;gap:5px;font-size:12px;display:flex}.course-task-name{overflow-wrap:anywhere;font-weight:600}.course-task-state{color:var(--course-status-color);align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.course-task-state svg,.course-task-chevron{color:var(--course-status-color);flex:none}.day-grid .course-task-milestone{width:32px;height:32px;color:var(--course-status-color);background:var(--surface,#f7fcf8);border:1px solid var(--line,#cfe7d6);border-radius:50%;flex:0 0 32px;place-items:center;display:grid}.course-task-milestone svg{width:24px;height:24px}.login-layout{background:var(--surface,#fff);grid-template-columns:1.1fr 1fr;min-height:100svh;display:grid}.login-art{background:var(--tint-green,#eaf2e8);flex-direction:column;align-items:flex-start;padding:60px 12%;display:flex;position:relative;overflow:hidden}.login-art>.brand{margin-bottom:80px}.login-art h1{letter-spacing:-2px;font-size:clamp(38px,4vw,57px);font-weight:650;line-height:1.45}.login-art h1 span{color:var(--green)}.login-art>p:not(.eyebrow){color:var(--text-muted,#718676);font-size:14px}.login-art .growth-art{align-self:center;width:390px;max-width:none;margin-top:10px;position:relative;bottom:auto;right:auto}.login-note{color:var(--text-muted,#829480);letter-spacing:1px;gap:32px;margin-top:auto;padding-top:20px;font-size:11px;display:flex}.login-form{justify-content:center;align-items:center;padding:50px;display:flex}.login-form>div{width:100%;max-width:355px}.login-form h2{letter-spacing:-1px;margin:0 0 10px;font-size:29px}.login-form form{margin:34px 0 18px}.login-icon{background:var(--tint-green,#eef5ed);color:var(--text-muted,#669879);border-radius:16px;place-items:center;width:58px;height:58px;margin-bottom:24px;display:grid}.password-field{margin-top:8px;position:relative}.password-field input{margin-top:0;padding-right:65px}.password-field button{min-height:42px;color:var(--muted);background:0 0;border:none;padding:8px 12px;font-size:12px;position:absolute;top:2px;right:5px}.login-caption{border-top:1px solid var(--line);color:var(--text-muted,#8da08e);align-items:center;gap:6px;margin-top:40px;padding-top:25px;font-size:11px;display:flex}.tabs{border-bottom:1px solid var(--line);gap:6px;margin:22px 0;padding-bottom:10px;display:flex}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:none;font-size:14px}.tabs button.active{background:var(--tint-green,#e9f2eb);color:var(--green)}.tabs span{background:var(--surface,#fff);border-radius:6px;padding:1px 5px;font-size:11px}.scroll-tabs{overflow-x:auto}.vocabulary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.vocabulary-grid .english{font-size:17px}.vocabulary-grid h2.english{letter-spacing:-.7px;margin-bottom:3px;font-size:26px}.vocabulary-grid h3{margin-top:15px}.vocabulary-grid p{margin-bottom:8px;font-size:14px}.word-index{color:var(--text-muted,#b1bfaf);letter-spacing:1px;font-size:12px}.collocations{border-top:1px solid var(--line);color:var(--green);margin-top:17px;padding-top:13px;font-size:12px}.goal-line{align-items:baseline;gap:9px;font-size:14px;display:flex}.goal-line svg{color:var(--green)}.example{background:var(--surface,#f5f8f2);border-left:3px solid var(--border-green,#b3c9a6);border-radius:0 12px 12px 0;margin:18px 0;padding:18px 20px}.example p{margin-bottom:7px}.example small{color:var(--text-muted,#76886e)}.lesson{line-height:1.9}.lesson h3{margin-top:23px}.question-toolbar{justify-content:space-between;gap:14px;margin:24px 0 11px;font-size:13px;display:flex}.question-layout{grid-template-columns:1fr;gap:22px;display:grid}.listening-group-banner{border:1px solid var(--border-green,#58a790);background:var(--tint-green,#edf6f1);overflow-wrap:anywhere;border-radius:14px;margin-top:16px;padding:16px 20px}.listening-group-heading,.listening-group-heading strong{align-items:center;gap:8px;display:flex}.listening-group-heading{flex-wrap:wrap;column-gap:18px}.listening-group-title{margin:8px 0 4px}.listening-group-notice{margin:0;font-size:14px}.listening-group-audio{display:none}.question-layout.has-context{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}.question-stem{margin:22px 0;font-size:21px;line-height:1.9}.options{flex-direction:column;gap:11px;margin:18px 0;display:flex}.option{text-align:left;background:var(--surface,#fff);justify-content:flex-start;gap:14px;padding:15px;font-size:16px;font-weight:400;line-height:1.6}.option-letter{background:var(--tint-green,#f2f5ef);width:30px;height:30px;color:var(--text-muted,#8c9b88);border-radius:8px;flex:none;place-items:center;font-size:13px;display:grid}.option.selected{background:var(--tint-green,#edf6f1);border-color:var(--border-green,#58a790)}.option.selected .option-letter{color:var(--on-solid,white);background:#398e78}.option.correct{border-color:var(--border-green,#419876);background:var(--tint-green,#edf8f0);opacity:1}.option.incorrect{border-color:var(--border-orange,#d3aa70);background:var(--tint-orange,#fff7eb);opacity:1}.option>span:nth-child(2){overflow-wrap:anywhere;flex:1}.question-actions{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:28px;display:flex}.context-pane{align-self:start;max-height:75vh;overflow-y:auto}.context-pane .english{font-size:16px}.mobile-pane-switch{display:none}.audio-card{background:var(--surface,#f3f7f1);border-radius:13px;margin:16px 0;padding:15px}.audio-card .section-title{flex-wrap:wrap;font-size:13px}.audio-card audio,audio{width:100%;min-width:0;margin:15px 0 7px}.inline-label{align-items:center;gap:12px;margin:8px 0;font-size:12px;font-weight:400;display:flex}.inline-label select{max-width:85px;min-height:38px;margin:0;padding:5px 8px;font-size:13px}.explanation{background:var(--tint-green,#f0f7eb);border-radius:13px;margin-top:22px;padding:21px}.explanation p{font-size:14px;line-height:1.9}.explanation h3{color:var(--text-green,#406f46);font-size:15px}details{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:15px 0}details:last-child{border:none}summary{cursor:pointer;min-height:44px;padding:8px 0;font-size:14px;line-height:1.9}.answer-sheet{background:var(--surface,white);border:1px solid var(--line);border-radius:16px;margin-top:20px;padding:12px 22px}.answer-sheet>div{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.answer-sheet button{min-width:44px;padding:8px;font-size:13px}.answer-sheet button.answered{background:var(--tint-green,#e6f1e9);color:var(--green)}.answer-sheet button.incorrect{color:#ffe2e2;background:#793f43;border-color:#c4777d}.answer-sheet button.current{outline:2px solid var(--green)}.exam-toolbar{z-index:15;color:var(--on-solid,#fff);background:#183f37;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;font-size:14px;display:flex;position:sticky;top:0}.exam-toolbar>span:first-child{letter-spacing:1px;font-variant-numeric:tabular-nums;flex:1;align-items:center;gap:10px;min-width:0;font-size:22px;display:flex}.exam-toolbar>span:nth-child(2),.exam-toolbar button,.exam-toolbar svg{white-space:nowrap;flex-shrink:0}.exam-toolbar .coin-balance{color:var(--on-solid,#fff);background:#d6a63238;border-color:#f1c65a99}.exam-toolbar .coin-balance svg{color:#f1c65a}.exam-toolbar button{color:var(--on-solid,#fff);background:#315249;border:none;font-size:12px}.exam-clock{letter-spacing:0;flex-direction:column;gap:3px;display:flex}.exam-clock strong{white-space:nowrap;font-weight:600}.exam-clock small{font-size:12px;line-height:1.4}.result-banner{background:var(--tint-green,#eff6e9);align-items:center;gap:25px;margin-bottom:25px;display:flex}.result-banner h2{margin:10px 0;font-size:44px}.result-banner h2 span{font-size:16px}.result-banner p{color:var(--text-muted,#6c8269);margin:0;font-size:14px}.result-icon{background:var(--tint-green,#dfeddb);width:80px;height:80px;color:var(--text-muted,#5b8b59);border-radius:24px;place-items:center;display:grid}.reward-note{background:var(--tint-orange,#f7f0df);border:1px solid var(--line,#ece3c9);border-radius:20px;align-items:center;gap:23px;padding:27px;display:flex}.reward-icon{background:var(--tint-orange,#f3e6c4);color:var(--text-orange,#ad8535);border-radius:16px;padding:17px}.reward-note p{color:var(--text-muted,#8b8064);margin:0;font-size:14px}.exam-attempts{gap:12px;margin:15px 0;display:flex}.exam-attempts button{flex:1;justify-content:space-between}.exam-attempts strong{font-size:14px}.exam-attempts span{color:var(--green);font-size:20px}@media (width<=1194px){.exam-attempts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.exam-attempts button{text-align:left;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label arrow""score arrow";place-items:center start;gap:2px 8px;min-width:0;display:grid}.exam-attempts strong{white-space:nowrap;grid-area:label}.exam-attempts span{white-space:nowrap;grid-area:score;line-height:1.2}.exam-attempts svg{grid-area:arrow}}@media (width<=1023px){.exam-attempts{grid-template-columns:repeat(auto-fit,minmax(max(128px,50% - 5px),1fr))}}.dialog-overlay{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#15332855;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface,#fff);overscroll-behavior:contain;border-radius:23px;width:100%;max-width:630px;max-height:85dvh;padding:28px;overflow-y:auto;box-shadow:0 25px 90px #193c3a22}.dialog>.section-title{margin-bottom:20px}.dialog>.section-title button{background:var(--surface,#f3f5f1);border:0;min-width:44px;padding:8px}.check-label{background:var(--surface,#f7f9f4);border-radius:10px;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px;font-size:14px;font-weight:400;line-height:1.8;display:flex}.check-label input{margin-top:3px}.student-picker{flex-wrap:wrap;gap:10px;margin:20px 0 25px;display:flex}.student-picker button.selected{border-color:var(--border-green,#94bea8);background:var(--tint-green,#eaf3e9)}.score-chart{border-bottom:1px solid var(--line);justify-content:space-around;align-items:stretch;gap:15px;height:220px;margin-top:25px;display:flex;overflow-x:auto}.score-week{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:43px;padding-bottom:8px;display:flex}.score-bars{justify-content:center;align-items:flex-end;gap:5px;width:100%;height:170px;margin-bottom:12px;display:flex}.score-bar{background:var(--tint-green,#6eaa8b);border-radius:5px 5px 0 0;width:27%;min-width:13px;max-width:30px;min-height:2px;position:relative}.score-bar.retake{background:var(--tint-orange,#d9bb78)}.score-bar span{margin-bottom:5px;font-size:10px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.chart-legend{color:var(--text-muted,#70a383);flex-wrap:wrap;align-items:center;gap:15px;margin-top:15px;font-size:12px;display:flex}.chart-legend>span:nth-child(2){color:var(--text-orange,#b49a56)}.chart-legend small{color:var(--muted);font-size:10px}.ability{padding:18px 0}.ability>div:first-child{justify-content:space-between;gap:15px;margin-bottom:10px;font-size:14px;display:flex}.ability small{color:var(--muted);margin-top:7px;font-size:11px;display:block}.badge-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:20px;display:grid}.badge-card{text-align:center;background:var(--surface,#fbfcf9);border-radius:17px;flex-direction:column;align-items:center;padding:23px 16px;font-weight:400;display:flex}.badge-icon{background:var(--tint-green,#f0f2ed);width:67px;height:67px;color:var(--text-muted,#a7b1a2);border-radius:50%;place-items:center;margin-bottom:15px;display:grid}.badge-card.earned{background:var(--surface,#fffdf7);border-color:var(--line,#e8ddbd)}.badge-card.earned .badge-icon{background:var(--tint-orange,#f4e8c8);color:var(--text-orange,#af872e)}.badge-card h3{margin:10px 0 7px;font-size:16px}.badge-card p{color:var(--muted);min-height:43px;font-size:12px;line-height:1.8}.badge-card .progress-track{width:100%;height:5px}.badge-card small{color:var(--text-muted,#8a9784);margin-top:10px;font-size:10px}.wallet-hero{background:var(--tint-orange,#eee8d4);color:var(--text-orange,#73643f);border-radius:22px;flex-direction:column;align-items:flex-start;gap:14px;padding:35px;display:flex}.wallet-hero strong{color:var(--text-amber,#5e5833);letter-spacing:-1.8px;font-size:49px}.wallet-hero .primary{margin-top:8px}.parent-banner{background:var(--tint-green,#e9f1e7);border-radius:20px;justify-content:space-between;align-items:center;min-height:205px;padding:32px 36px;display:flex}.parent-banner h2{margin:15px 0 8px;font-size:27px}.parent-banner p{color:var(--text-muted,#7a8d76);margin:0;font-size:14px}.banner-icon{color:var(--text-muted,#89ad8c);padding:20px 28px;position:relative}.banner-icon span{background:var(--tint-orange,#e0d2a4);color:var(--text-orange,#998345);border-radius:100%;padding:9px;position:absolute;bottom:10px;right:17px}.student-heading{flex-wrap:wrap;align-items:center;gap:13px;margin-bottom:18px;display:flex}.student-heading h2{margin:0;font-size:21px}.student-heading small{color:var(--muted);font-size:11px}.student-heading>.tag{margin-left:auto}.mini-stats{gap:35px;margin:24px 0 14px;display:flex}.mini-stats small{color:var(--muted);margin-bottom:6px;font-size:11px;display:block}.mini-stats strong{font-size:22px}.upload-row{align-items:center;gap:16px;margin:20px 0;display:flex}.upload-row input{flex:1;min-width:0;font-size:13px}.upload-row button{flex:none}.filter-row{align-items:flex-end;gap:16px;display:flex}.filter-row label{flex:1;margin:0}.filter-row button{margin-bottom:0}.time-chart{gap:10px;min-height:245px;padding:30px 0 10px;display:flex;overflow-x:auto}.time-day{background:0 0;border:0;flex-direction:column;flex:1;justify-content:flex-end;gap:8px;min-width:55px;padding:0 3px;font-weight:400;display:flex}.time-day>span{color:var(--text-muted,#769176);font-size:10px}.time-day>div{justify-content:center;align-items:flex-end;width:100%;height:145px;display:flex}.time-day i{background:var(--tint-green,#8bb798);border-radius:5px 5px 0 0;width:50%;max-width:35px;display:block}.time-day small{color:var(--muted);font-size:10px}.redemption-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:22px 0;display:flex}.redemption-row:last-child{border:0}@media (width>=1400px){.workspace main{padding-top:48px}.hero .growth-art{width:330px;right:0}.hero>div{max-width:58%}.today-grid{grid-template-columns:minmax(0,1fr) 300px}}@media (width<=1194px){.sidebar{width:198px;padding:34px 18px}.workspace{margin-left:198px}.workspace main{padding:30px 28px}.topbar{padding:0 28px}.today-grid{grid-template-columns:minmax(0,1fr) 220px}.hero{padding:26px}.hero>div{max-width:73%}.hero .growth-art{opacity:.7;max-width:65%;right:-60px}.stats-grid{gap:12px}.stat{padding:18px 15px}.stat strong{font-size:23px}.badge-grid,.day-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.task-card{gap:12px;padding:20px}.task-number{width:38px;height:38px;font-size:17px}.task-card p,.section-title.spaced>.muted{font-size:12px}}@media (width<=1023px) and (width>=768px){.sidebar{width:170px;padding:30px 15px}.workspace{margin-left:170px}.sidebar nav button{gap:10px;padding:12px}.workspace main{padding:25px 22px}.topbar{padding:0 22px}.today-grid{grid-template-columns:1fr}.today-progress{justify-content:space-between;align-items:center;gap:20px;display:flex}.today-progress .completion-ring{width:90px;height:90px;margin:0;padding:6px}.completion-ring strong{font-size:27px}.completion-ring strong small{font-size:13px}.completion-ring span{font-size:9px}.today-progress p{max-width:120px;margin:0}.two-col{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.question-layout.has-context{grid-template-columns:1fr}.context-pane{max-height:40vh}.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.task-grid{grid-template-columns:1fr}.parent-banner{padding:25px}.banner-icon{padding:12px}.hero .growth-art{opacity:1;max-width:45%;right:0}}@media (width<=767px){.sidebar{display:none}.workspace{margin:0}.topbar{border-bottom:1px solid var(--line,#e5eae1);gap:11px;height:66px;padding:0 20px}.mobile-brand{letter-spacing:-1px;color:var(--green);align-items:center;gap:6px;font-size:22px;font-weight:750;text-decoration:none;display:flex}.topbar-path{display:none}.topbar-date{font-size:10px}.workspace main{padding:25px 20px 12px}.page-heading{margin-bottom:22px}.page-heading h1{letter-spacing:-.9px;font-size:25px}.page-heading .muted{font-size:13px;line-height:1.9}.eyebrow{letter-spacing:1.8px;font-size:9px}.bottom-nav{z-index:35;background:var(--surface,#ffffffed);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:7px 10px calc(7px + env(safe-area-inset-bottom));justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-width:44px;color:var(--text-muted,#91a08f);background:0 0;border:none;flex-direction:column;gap:4px;padding:6px;font-size:10px;font-weight:400;display:flex}.bottom-nav button.active{color:var(--green);font-weight:650}.page-footer{padding:28px 20px calc(96px + env(safe-area-inset-bottom));font-size:10px}.exam-mode .page-footer{padding-bottom:30px}.card{border-radius:17px;padding:22px 20px}.two-col{grid-template-columns:1fr;gap:17px}.spaced{margin-top:21px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stats-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{border-radius:13px;padding:16px 13px}.stat strong{font-size:24px}.stat>span{font-size:11px}.stat small{font-size:10px}.stats-grid.three .stat strong{font-size:20px}.stats-grid.three .stat{padding:15px 10px}.card .stats-grid.three .stat{padding:8px 0}.section-title{gap:12px}.section-title h2{font-size:19px}.section-title h3{font-size:16px}.section-title.spaced .muted{font-size:10px}.today-grid{flex-direction:column;gap:17px;display:flex}.hero{min-height:252px;padding:26px 22px}.hero>div{max-width:74%}.hero h2{margin:13px 0 9px;font-size:23px}.hero p{max-width:235px;font-size:12px}.hero .growth-art{opacity:.7;max-width:63%;bottom:17px;right:-65px}.hero .primary{min-height:44px;margin-top:3px;font-size:13px}.today-progress{flex-wrap:wrap;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.today-progress>.section-title{flex:50%;justify-content:flex-start;gap:12px}.today-progress .completion-ring{width:80px;height:80px;margin:0;padding:6px}.completion-ring strong{font-size:26px}.completion-ring strong small{font-size:13px}.completion-ring span{font-size:9px}.today-progress p{text-align:left;flex-basis:100%;max-width:65%;margin-top:-18px;font-size:10px}.task-grid{grid-template-columns:1fr;gap:13px}.task-card{border-radius:16px;gap:14px;padding:20px}.task-number{width:43px;height:43px}.task-card h3{font-size:18px}.task-card p{font-size:12px;line-height:1.9}.task-card .tag{padding:3px 7px;font-size:10px}.task-meta{font-size:11px}.day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-title{gap:15px}.course-title h3{font-size:17px}.week-number{min-width:35px;font-size:26px}.vocabulary-grid{grid-template-columns:1fr;gap:15px}.vocabulary-grid .card{padding:23px}.question-layout.has-context{grid-template-columns:1fr}.question-layout{margin-top:14px}.question-stem{margin:18px 0;font-size:20px;line-height:1.9}.option{padding:14px;font-size:16px}.option-letter{width:29px;height:29px}.context-pane{max-height:68vh;display:none}.has-context .question-pane{display:none}.has-context .mobile-active{display:block}.mobile-pane-switch{margin-top:16px;margin-bottom:10px;display:flex}.listening-group-banner{padding:14px}.listening-group-audio{min-height:44px;margin-top:10px;display:inline-flex}.question-actions{gap:10px}.question-actions button{padding:10px 12px;font-size:13px}.question-toolbar{font-size:11px}.question-toolbar>span:last-child{text-align:right;max-width:60%}.exam-toolbar{gap:8px;padding:12px 14px;top:0}.exam-toolbar>span:first-child{font-size:20px}.exam-toolbar>span:nth-child(2){font-size:11px}.exam-toolbar button{padding:9px;font-size:10px}.result-banner{gap:17px;padding:22px}.result-banner h2{font-size:37px}.result-icon{border-radius:17px;flex:none;width:55px;height:55px}.result-banner .tag{white-space:normal;font-size:10px}.result-banner p{font-size:12px}.reward-note{gap:15px;padding:23px 20px}.reward-icon{border-radius:13px;padding:12px}.reward-note h3{font-size:16px}.reward-note p{font-size:12px}.exam-attempts button{padding:12px;font-size:13px}.exam-attempts span{font-size:18px}.dialog-overlay{align-items:center;padding:15px}.dialog{border-radius:20px;max-height:88dvh;padding:24px 20px}.dialog p{font-size:14px}.dialog h2{font-size:21px}.toast{bottom:calc(88px + env(safe-area-inset-bottom));width:max-content;max-width:90vw;font-size:13px}.exam-mode .toast{bottom:24px}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.badge-card{padding:20px 13px}.badge-card h3{font-size:15px}.badge-card p{font-size:11px}.badge-icon{width:58px;height:58px}.badge-card small{font-size:9px}.wallet-hero{padding:28px}.wallet-hero strong{font-size:43px}.parent-banner{gap:5px;min-height:190px;padding:26px 22px}.parent-banner h2{max-width:210px;font-size:23px}.parent-banner p{font-size:12px}.banner-icon{opacity:.65;padding:8px}.banner-icon>svg{width:50px;height:50px}.banner-icon span{padding:5px;bottom:-4px;right:-3px}.student-heading{gap:11px}.student-heading>.tag{font-size:10px}.student-heading h2{font-size:21px}.avatar.large{width:49px;height:49px;font-size:20px}.mini-stats strong{font-size:23px}.filter-row{flex-wrap:wrap;gap:12px}.filter-row label{flex:42%}.filter-row label input{padding:10px 7px;font-size:14px}.filter-row button{margin-left:auto;font-size:12px}.upload-row{flex-direction:column;align-items:stretch}.upload-row input{width:100%}.detail-row{flex-wrap:wrap;gap:10px;font-size:13px}.detail-row button{font-size:12px}.redemption-row{flex-wrap:wrap}.redemption-row>.button-row{margin-left:auto}.login-layout{background:var(--surface,#f7f9f3);display:block}.login-art{min-height:280px;padding:30px 26px 24px}.login-art>.brand{margin-bottom:25px;font-size:26px}.login-art .brand-mark{border-radius:10px;width:32px;height:32px}.login-art>.eyebrow{margin-bottom:10px;font-size:8px}.login-art h1{letter-spacing:-1.2px;margin:0;font-size:32px;line-height:1.45}.login-art>p:not(.eyebrow){display:none}.login-art .growth-art{width:260px;max-width:54%;position:absolute;bottom:3px;right:-20px}.login-note{display:none}.login-form{background:var(--surface,white);border-radius:28px 28px 0 0;align-items:flex-start;margin-top:-15px;padding:32px 26px 40px;position:relative}.login-form>div{max-width:430px}.login-icon{display:none}.login-form .eyebrow{font-size:9px}.login-form h2{font-size:25px}.login-form>.muted{font-size:13px}.login-form form{margin-top:26px}.login-form label{font-size:13px}.login-caption{margin-top:25px;padding-top:22px;font-size:10px}.offline{padding:11px 20px;font-size:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.001ms!important}}.badge-notice{background:var(--tint-green,#ecf5ed);border-bottom:1px solid var(--line,#cadfce);flex-wrap:wrap;align-items:center;gap:12px;padding:16px 24px;display:flex}.badge-notice>div{flex:1;min-width:170px}.badge-notice small{color:var(--text-muted,#50725e);margin-top:4px;display:block}.review-report{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--surface,#f7f9f5);border-radius:12px;max-height:520px;padding:16px;font-family:inherit;font-size:14px;line-height:1.8;overflow:auto}.review-animation-panel[hidden],.review-animation-frame[hidden]{display:none}.review-animation{min-width:0}.review-animation-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:18px 0;display:flex}.review-animation-toolbar>span{font-size:13px}.review-animation-frame{border:1px solid var(--line);background:var(--surface,#f5f7f3);border-radius:16px;width:100%;display:block}.review-animation.expanded{z-index:1200;background:var(--bg,var(--surface,#f7f8f5));border-radius:16px;flex-direction:column;padding:0 20px 20px;display:flex;position:fixed;inset:12px;overflow:hidden;box-shadow:0 0 0 100vmax #18334a99}.review-animation.expanded .review-animation-toolbar{z-index:1;background:var(--bg,var(--surface,#f7f8f5));margin:0;padding:12px 0;position:sticky;top:0}.review-animation:fullscreen{border-radius:0;width:100%;height:100%;inset:0}@media (width<=600px){.week-review-tabs{gap:8px}.week-review-tabs button{padding:10px 12px}.review-animation.expanded{border-radius:0;padding:0 10px 10px;inset:0}}.review-animation.expanded .review-animation-toolbar{flex:none}.review-animation.expanded .review-animation-frame{flex:1 1 0;min-height:0;height:0!important}.mistake-analysis{border-top:3px solid var(--primary,var(--border-teal,#168778));margin-bottom:28px}.mistake-analysis>.muted{margin-top:16px}.analysis-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.analysis-heading h2{margin:10px 0;font-size:1.35rem}.analysis-heading .eyebrow{align-items:center;gap:8px;display:flex}.analysis-heading button{flex-shrink:0;align-items:center;gap:8px;display:inline-flex}.analysis-status{background:var(--tint-green,#edf6f2);border-radius:12px;align-items:center;gap:10px;margin:16px 0;padding:14px;display:flex}.analysis-report{border-top:1px solid var(--line,#dce7e1);margin-top:24px;padding-top:20px}.analysis-advice li{padding:5px 0;line-height:1.8}.analysis-weaknesses{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0;display:grid}.analysis-weakness{border:1px solid var(--line,#dce7e1);overflow-wrap:anywhere;border-radius:16px;min-width:0;padding:20px}.analysis-recommendation{background:var(--surface,#f4f8f5);border-radius:10px;padding:12px}.analysis-evidence{border-top:1px solid var(--line,#e4eae6);padding:10px 0}.analysis-evidence p{margin:6px 0}.analysis-links{gap:8px;margin-top:16px;display:grid}.analysis-links a{color:var(--text-teal,#176b60);border:1px solid var(--line,#cce0d7);background:var(--surface,#f7fbf8);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.analysis-links a:hover{background:var(--tint-green,#eaf4ee)}.analysis-links a small{color:var(--text-muted,#6d817b)}@media (width<=700px){.analysis-heading{flex-direction:column;align-items:stretch;gap:12px}.analysis-heading button{justify-content:center}.analysis-weaknesses{grid-template-columns:1fr}.analysis-weakness{padding:16px}}.sidebar-toggle{border:1px solid var(--line);background:0 0;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;padding:10px;display:inline-flex}@media (width>=768px){.app.sidebar-collapsed{--sidebar-width:72px}.sidebar-collapsed .sidebar{align-items:center;width:72px;padding:30px 12px}.sidebar-collapsed .workspace{margin-left:72px}.sidebar-collapsed .sidebar-brand-name,.sidebar-collapsed .brand-subtitle,.sidebar-collapsed .sidebar-nav-label,.sidebar-collapsed .sidebar-bottom>div:not(.avatar),.sidebar-collapsed .nav-dot{display:none}.sidebar-collapsed .sidebar nav{width:100%;margin-top:50px}.sidebar-collapsed .sidebar nav button{justify-content:center;width:100%;padding:12px 0}.sidebar-collapsed .sidebar-bottom{justify-content:center;width:100%}}@media (width<=767px){.sidebar-toggle{display:none}}@media (width<=480px){.exam-toolbar{flex-wrap:wrap;row-gap:8px}.exam-toolbar>span:first-child{flex:1 0 100%}.exam-toolbar>span:nth-child(2){margin-right:auto}}:root{--bg:#edf1eb;--surface:#f8f9f5;--shell:#f2f5ef;--ink:var(--dark);--primary:var(--green);--wallpaper:linear-gradient(135deg, #edf1eb, #e4ece5);background:var(--bg);color:var(--dark)}:root[data-theme=dark]{--bg:#182320;--surface:#25352f;--surface-soft:#2b3c34;--shell:#1d2b27;--dark:#d4ded8;--text:#d4ded8;--muted:#a8b9af;--text-muted:#a8b9af;--line:#40564a;--green:#95c7b4;--gold:#dbbe80;--on-solid:#ecf2ee;--text-green:#a8cbae;--text-teal:#95c7b4;--text-blue:#afc8e5;--text-purple:#cab6df;--text-rose:#e5adae;--text-orange:#e5b797;--text-amber:#dbbe80;--tint-green:#304637;--tint-teal:#304c42;--tint-blue:#2d4053;--tint-purple:#463951;--tint-rose:#50383f;--tint-orange:#503f33;--tint-amber:#49432f;--border-green:#779e80;--border-teal:#6b9b87;--border-blue:#7896b5;--border-purple:#a18ab9;--border-rose:#b4848f;--border-orange:#b49378;--border-amber:#ad985f;--wallpaper:linear-gradient(135deg, #182320, #1b2b24)}:root[data-background=slate]{--bg:#e8edf0;--wallpaper:linear-gradient(135deg, #ecf0f2, #dfe7ec)}:root[data-background=sand]{--bg:#eeebe3;--wallpaper:linear-gradient(135deg, #f1eee6, #e8e1d4)}:root[data-theme=dark][data-background=slate]{--bg:#1b242c;--wallpaper:linear-gradient(135deg, #1b242c, #22313d)}:root[data-theme=dark][data-background=sand]{--bg:#28251f;--wallpaper:linear-gradient(135deg, #28251f, #342e24)}body{background:var(--wallpaper);background-attachment:fixed;min-height:100vh}.sidebar,.topbar,.bottom-nav{background:var(--shell)}.topbar-date{display:none}.topbar-path{white-space:nowrap}.account-controls{flex-shrink:0;align-items:center;gap:18px;margin-left:auto;display:flex;position:relative}.account-toolbar{align-items:center;display:flex}.account-toolbar button{white-space:nowrap;background:0 0;border:0;border-radius:0;min-height:44px;padding:8px 14px;font-size:13px;font-weight:500}.account-toolbar button+button{border-left:1px solid var(--line)}.account-toolbar button:hover{background:var(--surface);border-radius:8px}.account-toolbar svg,.account-menu svg{color:var(--green);flex-shrink:0}.account-trigger{background:0 0;border:0;min-height:44px;padding:4px 0 4px 8px}.account-menu{z-index:60;border:1px solid var(--line);background:var(--surface);border-radius:14px;width:min(220px,100vw - 32px);padding:8px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 12px 30px #0004}.account-menu button{background:0 0;border:0;justify-content:flex-start;gap:14px;width:100%;min-height:52px;font-size:15px;font-weight:500;display:flex}.account-menu button:last-child{border-top:1px solid var(--line);border-radius:0 0 8px 8px;margin-top:4px}.account-menu button:hover,.account-menu button:focus-visible{background:var(--shell)}.note-panel.appearance-panel{width:min(580px,100%)}.appearance-options{border:0;min-width:0;margin:12px 0 24px;padding:0}.appearance-options legend{margin-bottom:12px;font-weight:650}.appearance-modes,.appearance-backgrounds{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.appearance-modes button,.appearance-backgrounds button{flex-direction:column;gap:10px;min-width:0;padding:14px 6px;font-size:14px}.appearance-options button[aria-pressed=true]{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.appearance-swatch{color:#234333;border-radius:8px;place-items:center;width:100%;height:72px;display:grid}.swatch-forest{background:linear-gradient(135deg,#edf1eb,#b8cec1)}.swatch-slate{background:linear-gradient(135deg,#ecf0f2,#b7c9d5)}.swatch-sand{background:linear-gradient(135deg,#f1eee6,#d4c3a5)}[data-theme=dark] .appearance-swatch{color:#d4ded8}[data-theme=dark] .swatch-forest{background:linear-gradient(135deg,#182320,#3b5847)}[data-theme=dark] .swatch-slate{background:linear-gradient(135deg,#1b242c,#3d5265)}[data-theme=dark] .swatch-sand{background:linear-gradient(135deg,#28251f,#62523d)}.appearance-actions{justify-content:flex-end;gap:12px;display:flex}[data-theme=dark] .primary,[data-theme=dark] .classmate-self,[data-theme=dark] .is-completed .classmate-node,[data-theme=dark] .course-child-chip.is-assigned{background:var(--green);color:#182b25}[data-theme=dark] .primary:hover{background:#afd4c5}[data-theme=dark] .note-toolbar,[data-theme=dark] .note-toolbar button{color:#ecf2ee}[data-theme=dark] ::selection{color:#f1ead2;background:#6d6031}[data-theme=dark] .daily-results{--heat-1:#293e35;--heat-2:#345548;--heat-3:#426d5c;--heat-4:#518570;--heat-5:#81b8a0}[data-theme=dark] .daily-heatmap-cell.lowest{background:var(--heat-1);color:var(--dark)}[data-theme=dark] .daily-heatmap-cell.low{background:var(--heat-2);color:var(--dark)}[data-theme=dark] .daily-heatmap-cell.middle{background:var(--heat-3);color:#edf3ef}[data-theme=dark] .daily-heatmap-cell.high{background:var(--heat-4);color:#fff}[data-theme=dark] .daily-heatmap-cell.highest{background:var(--heat-5);color:#152c23}[data-theme=dark] .daily-results .missing,[data-theme=dark] .daily-results .unscored{background:var(--surface);color:var(--muted)}[data-theme=dark] .daily-results-legend{color:var(--muted)}[data-theme=dark] .daily-results-scale>div{background:linear-gradient(to right, var(--heat-1) 0% 25%, var(--heat-2) 25% 50%, var(--heat-3) 50% 75%, var(--heat-4) 75% 90%, var(--heat-5) 90% 100%)}[data-theme=dark] .growth-art{opacity:.7}[data-theme=dark] .visual-lesson{--ink:var(--dark);--sage:var(--green);--pale:var(--surface-soft);--clay:var(--text-orange)}@media (width>=768px) and (width<=1150px){.topbar{gap:8px;padding-left:24px;padding-right:24px}.topbar-path{display:none}.account-controls{gap:12px}.account-toolbar button{gap:6px;padding:8px 10px;font-size:12px}}@media (width<=767px){.topbar{z-index:61;position:relative}.account-controls{gap:0}.bottom-nav button.active{background:var(--surface);border-radius:12px}.appearance-panel{padding:20px 16px}}@media (prefers-reduced-motion:reduce){.appearance-options button{transition:none}}.role-switcher{color:var(--ink);flex-shrink:0;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.role-switcher select{width:auto;min-width:74px;margin:0;padding:8px}.role-switch-status{font-size:12px;position:absolute;top:100%}.parent-access-control{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}@media (width<=1150px){.topbar:has(.role-switcher) .topbar-date{display:none}}@media (width<=767px){.role-switcher{gap:5px;margin-left:auto;font-size:12px}.role-switcher svg{display:none}.topbar:has(.role-switcher) .topbar-path{display:none}}@media (width>=768px) and (width<=900px){.role-switcher>span:not(.role-switch-status){display:none}.topbar:has(.role-switcher) .account-toolbar button{padding:8px}}@media (width>=768px) and (width<=1023px){.topbar:has(.role-switcher) .account-toolbar button{min-width:44px;padding:8px 10px;position:relative}.topbar:has(.role-switcher) .account-toolbar button>span{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (width<=480px){.topbar:has(.role-switcher){gap:8px}.role-switcher>span:not(.role-switch-status){display:none}}
