:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--paper:#f6f5f2;--surface:#fff;--white:#fff;--ink:#1f2430;--muted:#6b7280;--line:#e3e1dc;--accent:#2f6fed;--accent-strong:#1e5bd6;--danger:#c43d3d;--amber:#d97706;--green:#2f9e44;--brick:#ba5540;--brick-strong:#a54030;--brick-focus:#ba554059;--focus:#2f6fed59;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:2rem;--text-4xl:2.5rem;--text-5xl:3.25rem;--radius-sm:.375rem;--radius:.5rem;--shadow-card:0 1px 2px #0000000d, 0 4px 16px #0000000f}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#1a1c22;--surface:#23262e;--ink:#e6e8ee;--muted:#9aa1af;--line:#34373f;--accent:#5b8bf5;--accent-strong:#7ba2f8;--danger:#e06060;--brick:#ba5540;--brick-strong:#a9432f;--brick-focus:#ba554066;--focus:#5b8bf566}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:Noto Sans SC,Source Han Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;font-size:var(--text-base);color:var(--ink);background:var(--paper);margin:0;line-height:1.6}button{box-shadow:none;background:0 0;border:none}select,button:not(:disabled),summary{cursor:pointer}a{color:var(--accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.skip-link{top:-3rem;left:var(--space-2,.5rem);z-index:100;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--accent);padding:.5rem 1rem;position:absolute}.skip-link:focus{top:var(--space-2,.5rem)}button[name=grade].grade-keyed{outline:2px solid var(--focus);outline-offset:2px;box-shadow:0 0 0 3px var(--focus)}.confirm-dialog{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:24rem;box-shadow:var(--shadow-card);padding:1.5rem}.confirm-dialog::backdrop{background:#00000073}.goal-line-aural{stroke:var(--brick)}.goal-line-reading{stroke:var(--accent)}.goal-line-production{stroke:var(--green)}.u-block{display:block}.u-inline-block{display:inline-block}.u-flex{display:flex}.u-flex-wrap{flex-wrap:wrap}.u-flex-col{flex-direction:column}.u-inline-flex{display:inline-flex}.u-inline{display:inline}.u-items-center{align-items:center}.u-justify-between{justify-content:space-between}.u-items-end{align-items:flex-end}.u-justify-center{justify-content:center}.u-flex-1{flex:1}.u-min-w-0{min-width:0}.u-shrink-0{flex-shrink:0}.u-gap-1{gap:var(--space-1)}.u-gap-2{gap:var(--space-2)}.u-gap-3{gap:var(--space-3)}.u-absolute{position:absolute}.u-relative{position:relative}.u-top-6{top:var(--space-6)}.u-top-10{top:2.5rem}.u-right-4{right:var(--space-4)}.u-mx-auto{margin-inline:auto}.u-w-full{width:100%}.u-w-auto{width:auto}.u-w-5{width:var(--space-5)}.u-h-5{height:var(--space-5)}.u-w-6{width:var(--space-6)}.u-h-6{height:var(--space-6)}.u-max-w-26rem{max-width:26rem}.u-max-w-34rem{max-width:34rem}.u-max-w-36rem{max-width:36rem}.u-max-w-48rem{max-width:48rem}.u-max-w-60rem{max-width:60rem}.u-min-w-16rem{min-width:16rem}.u-min-h-20rem{min-height:20rem}.u-m-0{margin:0}.u-mt-0{margin-top:0}.u-mt-2{margin-top:var(--space-2)}.u-mt-3{margin-top:var(--space-3)}.u-mt-4{margin-top:var(--space-4)}.u-mt-5{margin-top:var(--space-5)}.u-mt-auto{margin-top:auto}.u-mb-1{margin-bottom:var(--space-1)}.u-mb-2{margin-bottom:var(--space-2)}.u-mb-3{margin-bottom:var(--space-3)}.u-mb-4{margin-bottom:var(--space-4)}.u-ml-1{margin-left:var(--space-1)}.u-ml-3{margin-left:var(--space-3)}.u-ml-auto{margin-inline-start:auto}.u-mr-2{margin-right:var(--space-2)}.u-p-0{padding:0}.u-p-1{padding:var(--space-1)}.u-p-2{padding:var(--space-2)}.u-p-3{padding:var(--space-3)}.u-p-4{padding:var(--space-4)}.u-p-5{padding:var(--space-5)}.u-px-1{padding-inline:var(--space-1)}.u-px-2{padding-inline:var(--space-2)}.u-px-3{padding-inline:var(--space-3)}.u-px-4{padding-inline:var(--space-4)}.u-py-1{padding-block:var(--space-1)}.u-py-2{padding-block:var(--space-2)}.u-pr-6{padding-right:var(--space-6)}.u-py-5{padding-block:var(--space-5)}.u-pt-4{padding-top:var(--space-4)}.u-pb-3{padding-bottom:var(--space-3)}.u-text-xs{font-size:var(--text-xs)}.u-uppercase{text-transform:uppercase}.u-tracking-wider{letter-spacing:.08em}.u-text-sm{font-size:var(--text-sm)}.u-text-base{font-size:var(--text-base)}.u-text-lg{font-size:var(--text-lg)}.u-text-xl{font-size:var(--text-xl)}.u-text-2xl{font-size:var(--text-2xl)}.u-text-4xl{font-size:var(--text-4xl)}.u-text-5xl{font-size:var(--text-5xl)}.u-leading-tight{line-height:1.15}.u-font-400{font-weight:400}.u-font-600{font-weight:600}.u-no-underline{text-decoration:none}.u-font-inherit{font:inherit}.u-text-left{text-align:left}.u-text-center{text-align:center}.u-text-right{text-align:right}.u-list-none{list-style:none}.u-text-ink{color:var(--ink)}.u-text-muted{color:var(--muted)}.u-text-accent{color:var(--accent)}.u-text-brick{color:var(--brick)}.u-text-danger{color:var(--danger)}.u-text-amber{color:var(--amber)}.u-text-green{color:var(--green)}.u-text-white{color:var(--white)}.u-bg-paper{background-color:var(--paper)}.u-bg-surface{background-color:var(--surface)}.u-bg-brick{background-color:var(--brick)}.u-bg-transparent{background-color:#0000}.u-border{border:1px solid var(--line)}.u-border-danger{border-color:var(--danger)}.u-border-amber{border-color:var(--amber)}.u-border-green{border-color:var(--green)}.u-border-none{border:none}.u-border-t{border-top:1px solid var(--line)}.u-border-b{border-bottom:1px solid var(--line)}.u-border-l-3{border-left-width:3px}.u-border-l-accent{border-left-color:var(--accent)}.u-border-l-brick{border-left-color:var(--brick)}.u-rounded-sm{border-radius:var(--radius-sm)}.u-rounded{border-radius:var(--radius)}.u-shadow-card{box-shadow:var(--shadow-card)}.u-cursor-pointer{cursor:pointer}.u-transition-bg{transition:background-color .15s}.u-border-collapse{border-collapse:collapse}.htmx-indicator{opacity:0}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{opacity:1;transition:opacity .2s ease-in}select option{cursor:pointer}.button:hover{background-color:var(--brick-strong)}.button--danger:hover{background-color:#c43d3d14}.button--ghost:hover{background-color:#0000000a}.icon-button:hover{color:var(--ink);background-color:#0000000d}.control{transition:border-color .15s,box-shadow .15s}.control:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus);outline:none}.admin-dropdown__summary{align-items:center;gap:var(--space-2);list-style:none;display:flex}.admin-dropdown__summary::-webkit-details-marker{display:none}.admin-dropdown__chevron{font-size:var(--text-xs);color:var(--muted)}.admin-dropdown__panel{top:calc(100% + var(--space-1));min-width:12rem;padding:var(--space-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:30;flex-direction:column;display:flex;position:absolute;left:0}.admin-dropdown__option{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--ink);cursor:pointer;text-decoration:none;display:block}.admin-dropdown__option:hover{background:#0000000a}.admin-dropdown__option--current{color:var(--accent);font-weight:600}.link:hover{color:var(--accent);text-decoration:underline}.password-field{position:relative}.password-toggle{top:0;bottom:0;right:var(--space-1);width:var(--space-6);position:absolute}.help-popover{bottom:var(--space-2);right:var(--space-2);position:absolute}.help-popover__toggle{width:var(--space-5);height:var(--space-5);font-size:var(--text-sm);color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:50%;place-items:center;font-weight:600;line-height:1;display:grid}.help-popover__toggle:hover,.help-popover__toggle:focus-visible{color:var(--ink);border-color:var(--accent)}.help-popover__panel{width:17rem;max-width:72vw;padding:var(--space-3);font-size:var(--text-xs);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:10;line-height:1.5;display:none;position:absolute;bottom:100%;right:0}.help-popover__panel p{margin:0}.help-popover__panel p+p{margin-top:var(--space-2)}.help-popover:hover .help-popover__panel,.help-popover:focus-within .help-popover__panel{display:block}.grade-help{display:inline-block;position:relative}.grade-help>summary{width:1.75rem;height:1.75rem;font-size:var(--text-sm);color:var(--muted);background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:50%;place-items:center;font-weight:600;line-height:1;list-style:none;display:grid}.grade-help>summary::-webkit-details-marker{display:none}.grade-help>summary:hover,.grade-help>summary:focus-visible,.grade-help[open]>summary{color:var(--ink);border-color:var(--accent)}.grade-help__panel{right:0;bottom:calc(100% + var(--space-1));width:16rem;max-width:78vw;padding:var(--space-3);font-size:var(--text-xs);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:30;line-height:1.5;display:none;position:absolute}.grade-help[open] .grade-help__panel{display:block}.grade-help__panel p{margin:0}.grade-help__panel p+p{margin-top:var(--space-1)}.defer-menu{display:inline-block;position:relative}.defer-menu>summary{list-style:none}.defer-menu>summary::-webkit-details-marker{display:none}.defer-menu__panel{top:calc(100% + var(--space-1));min-width:12rem;padding:var(--space-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:20;position:absolute;left:0}.defer-menu__panel form+form{margin-top:var(--space-1)}.site-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-bottom:1px solid var(--line);display:flex}.site-header__brand{font-size:var(--text-lg);letter-spacing:.02em}.site-header__actions{align-items:center;display:flex;position:relative}.site-nav__links{font-size:var(--text-sm);display:none}.site-nav__toggle-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.site-nav__toggle{width:var(--space-6);height:var(--space-6);color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;place-items:center;display:grid}.site-nav__toggle:hover,.site-nav__toggle:focus-visible,.site-nav__toggle-input:focus-visible~.site-nav__toggle{color:var(--ink);background:#0000000d}@media (width<=767px),(pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px){.site-nav__toggle-input:checked~.site-nav__links{align-items:flex-end;gap:var(--space-2);top:calc(100% + var(--space-1));min-width:9rem;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:40;flex-direction:column;display:flex;position:absolute;right:0}.site-nav__toggle-input:checked~.site-nav__links>*{margin:0}}.u-justify-end{justify-content:flex-end}.tag-chip{min-height:var(--space-6);overflow-wrap:anywhere;white-space:normal;align-items:center;max-width:100%;display:inline-flex}.tag-pick{position:relative}.tag-pick input{opacity:0;pointer-events:none;position:absolute;inset:0}.tag-pick:has(input:checked){background:var(--brick);border-color:var(--brick);color:var(--white,#fff)}.skill-btn{width:9rem}.tag-picker{display:inline-block;position:relative}.tag-picker>summary{cursor:pointer;align-items:center;list-style:none;display:inline-flex}.tag-picker>summary::-webkit-details-marker{display:none}.tag-picker__panel{top:calc(100% + var(--space-1));min-width:10rem;padding:var(--space-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);z-index:30;position:absolute;right:0}.tag-picker__panel form+form,.tag-picker__panel p+form,.tag-picker__panel form+p{margin-top:var(--space-1)}.entry-tags{position:relative}@media (width<=767px),(pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px){.tag-picker{position:static}.tag-picker__panel{width:auto;min-width:0;max-width:none;max-height:50vh;margin-top:var(--space-1);position:absolute;inset:100% 0 auto;overflow-y:auto}.tag-picker__panel button{white-space:normal;overflow-wrap:anywhere}}.stage-ribbon{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-xs);color:var(--muted);background:var(--surface);padding:var(--space-2);margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-4)) var(--space-4);font-weight:600}@media (width>=768px) and (not ((pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px))){.stage-ribbon{margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-5)) var(--space-4)}}.answer-pill{top:var(--space-3);right:var(--space-3);z-index:5;text-transform:uppercase;letter-spacing:.05em;color:var(--green);background:var(--surface);border:1px solid var(--green);border-radius:999px;align-items:center;padding:.125rem .625rem;font-size:.7rem;font-weight:600;line-height:1.25;display:inline-flex;position:absolute}@media (width>=768px) and (not ((pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px))){.stage{margin:var(--space-6) auto;padding:var(--space-6) var(--space-5);border-radius:var(--radius)}#review-card,#practice-card{min-height:28rem}.site-nav__toggle,.site-nav__toggle-input{display:none}.site-nav__links{flex-direction:row;align-items:center;gap:0;display:flex}.site-nav__links>:not(:first-child){margin-left:var(--space-3)}}@media (width<=767px),(pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px){.stage,.stage.u-rounded{border-radius:0}body:has(.stage--fill){flex-direction:column;min-height:100dvh;display:flex}.stage--fill{flex-direction:column;flex:auto;min-height:0;display:flex}.stage--fill>#review-card,.stage--fill>#practice-card{flex:auto}.stage--grade-bar{padding-bottom:calc(8rem + env(safe-area-inset-bottom,0px))}.grade-bar{z-index:30;padding:var(--space-2) calc(var(--space-4) + 1px) calc(var(--space-5) + 1px + env(safe-area-inset-bottom,0px));background:var(--surface);margin:0;position:fixed;bottom:0;left:0;right:0}.grade-bar>.u-flex{flex-wrap:nowrap}.grade-bar form{flex:auto;min-width:0}.grade-bar form>div{gap:var(--space-1);flex-wrap:nowrap}.grade-bar button{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;min-width:0;padding:.75rem .1rem;font-size:.85rem;line-height:1.2;overflow:hidden}.grade-word{display:none}}.stage--fill:has(.undo-corner) #review-card>p{padding-right:3rem}@media (pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px){.stage--fill #review-card,.stage--fill #practice-card{min-height:0}.stage--grade-bar{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom,0px))}.stage--fill{max-width:none}}@media (width<=767px),(pointer:coarse) and (orientation:landscape) and (height<=560px) and (width<=1100px){html,body{background-color:var(--surface)}.stage,.stage.u-rounded{width:100%;max-width:none;box-shadow:none;border:none;border-radius:0;margin:0}}option,optgroup,input[type=radio],input[type=checkbox],select{cursor:pointer}.disambig-hanzi{color:#8d95a2;font-size:1.68rem;font-weight:400;line-height:1.3}.enrol-ladder__rung{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;padding:.3rem .25rem;display:flex}.enrol-ladder__rung input{opacity:0;pointer-events:none;position:absolute}html:not(.js) .enrol-ladder__rung input{opacity:1;pointer-events:auto;margin-right:.4rem;position:static}.enrol-ladder__dot{border:2px solid var(--muted);border-radius:50%;flex:none;width:.8rem;height:.8rem;transition:background-color .12s,border-color .12s}html.js .enrol-ladder[data-state="1"] [data-rung="1"] .enrol-ladder__dot,html.js .enrol-ladder[data-state="2"] [data-rung="1"] .enrol-ladder__dot,html.js .enrol-ladder[data-state="2"] [data-rung="2"] .enrol-ladder__dot,html.js .enrol-ladder[data-state="3"] [data-rung] .enrol-ladder__dot{background:var(--brick,#b4503a);border-color:var(--brick,#b4503a)}.enrol-ladder__desc{color:var(--muted);font-weight:400}.enrol-ladder__submit{display:block}.search-result__note-below{display:none}@media (width<=767px){.search-result__note-inline{display:none}.search-result__note-below{display:block}}.help-popover--inline{position:relative;bottom:auto;right:auto}.help-popover--inline .help-popover__panel{inset:calc(100% + .4rem) 0 auto auto}.error-banner{max-width:40rem;margin:var(--space-4) auto 0;padding:var(--space-3);color:var(--ink);background:var(--surface);border:1px solid var(--danger,#b3261e);border-left:.3rem solid var(--danger,#b3261e);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);font-size:var(--text-sm);justify-content:space-between;align-items:flex-start;gap:var(--space-3);line-height:1.5;display:flex}.error-banner__close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.1rem;line-height:1}
