.confirmation-dialog[data-v-022bde0c]{width:min(28rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-raised);margin:auto;overflow:auto}.confirmation-dialog[data-v-022bde0c]::backdrop{background:var(--color-scrim)}.confirmation-dialog h2[data-v-022bde0c]{margin:0 0 var(--space-3);font-size:1.35rem}.confirmation-dialog p[data-v-022bde0c]{color:var(--color-text-muted);overflow-wrap:anywhere;margin:0;line-height:1.75}.confirmation-dialog__actions[data-v-022bde0c]{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.confirmation-dialog__actions button[data-v-022bde0c]{flex:1;min-height:48px}.confirmation-dialog__danger[data-v-022bde0c]{background:var(--color-danger);border-color:var(--color-danger)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-md:.375rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.flex{display:flex}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}:root{--color-bg:#fffdf6;--color-surface:#fff;--color-surface-warm:#fff2df;--color-surface-mint:#e8f4ec;--color-surface-blue:#e8f0fa;--color-primary:#2f6f5e;--color-on-primary:#fff;--color-secondary:#a84f2a;--color-on-secondary:#fff;--color-reward:#f4c95d;--color-on-reward:#3d2d25;--color-text:#3d2d25;--color-text-muted:#65574e;--color-border:#e8dccb;--color-success:#287a50;--color-danger:#b9382f;--color-focus:#1b6ca8;--color-scrim:#231b1685;--font-sans:"PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", system-ui, sans-serif;--font-hanzi:"PingFang SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--radius-sm:.75rem;--radius-md:1.25rem;--radius-lg:1.75rem;--radius-round:999px;--shadow-card:0 6px 18px #583e2a1a, 0 2px 5px #583e2a0f;--shadow-raised:0 12px 30px #583e2a24, 0 3px 8px #583e2a14;--shadow-pressed:inset 0 2px 4px #583e2a24;--motion-fast:.15s;--motion-normal:.22s;--motion-slow:.3s;--ease-out:cubic-bezier(.22, 1, .36, 1);--z-base:0;--z-sticky:20;--z-dropdown:40;--z-modal:80;--z-toast:100}@media (prefers-reduced-motion:reduce){:root{--motion-fast:1ms;--motion-normal:1ms;--motion-slow:1ms}}*{box-sizing:border-box}:root{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{background:var(--color-bg);scroll-behavior:smooth;min-width:320px}body{background:radial-gradient(circle at 8% 10%, color-mix(in srgb, var(--color-surface-warm) 76%, transparent) 0 7rem, transparent 7.1rem), var(--color-bg);min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit}button:not(:disabled),a[href]{cursor:pointer}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--color-text);text-wrap:balance}h1{margin-bottom:var(--space-4);letter-spacing:-.035em;font-size:clamp(2rem,7vw,2.75rem);font-weight:700;line-height:1.2}h1[tabindex="-1"]:focus{outline:none}h2{margin-bottom:var(--space-2);font-size:clamp(1.35rem,4vw,1.75rem);font-weight:700;line-height:1.35}p{color:var(--color-text-muted);line-height:1.65}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.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}.skip-link{z-index:var(--z-toast);top:var(--space-4);left:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--color-on-primary);background:var(--color-primary);transition:transform var(--motion-fast) var(--ease-out);position:fixed;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.route-fade-enter-active,.route-fade-leave-active{transition:opacity var(--motion-fast) var(--ease-out)}.route-fade-enter-from,.route-fade-leave-to{opacity:0}.app-shell{min-height:100dvh}.main-content{outline:none}.page{width:calc(100% - 2rem);max-width:70rem;padding-block:var(--space-8) calc(6rem + env(safe-area-inset-bottom));margin-inline:auto}.app-header{z-index:var(--z-sticky);border-bottom:1px solid color-mix(in srgb, var(--color-border) 74%, transparent);background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative}.app-header__inner{justify-content:space-between;align-items:center;gap:var(--space-4);width:calc(100% - 2rem);max-width:70rem;min-height:4.5rem;margin-inline:auto;display:flex}.brand{align-items:center;gap:var(--space-2);min-height:44px;color:var(--color-primary);font-size:1.15rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:var(--color-surface-mint);border-radius:.8rem;place-items:center;width:2.25rem;height:2.25rem;display:inline-grid}.brand-mark svg{width:1.8rem;height:1.8rem}.brand-mark__stem{fill:none;stroke:var(--color-primary);stroke-width:4px;stroke-linecap:round}.brand-mark__leaf{fill:color-mix(in srgb, var(--color-primary) 45%, var(--color-surface-mint));stroke:var(--color-primary);stroke-width:2.4px;stroke-linejoin:round}.desktop-nav{align-items:center;gap:var(--space-2);display:none}.desktop-nav a{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-muted);transition:color var(--motion-fast), background var(--motion-fast);align-content:center;font-weight:600;text-decoration:none}.desktop-nav a:hover,.desktop-nav a.router-link-active:not(.main-nav-link--home),.desktop-nav a.main-nav-link--home.router-link-exact-active{color:var(--color-primary);background:var(--color-surface-mint)}.parent-entry,.back-link,.icon-text-button{align-items:center;gap:var(--space-2);min-height:44px;color:var(--color-primary);font-weight:650;text-decoration:none;display:inline-flex}.parent-entry span{display:none}.bottom-nav{z-index:var(--z-sticky);padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 96%, transparent);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -5px 18px #583e2a12}.bottom-nav a{border-radius:var(--radius-sm);min-height:52px;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.78rem;font-weight:650;text-decoration:none;display:flex}.bottom-nav a.router-link-active:not(.main-nav-link--home),.bottom-nav a.main-nav-link--home.router-link-exact-active{color:var(--color-primary);background:var(--color-surface-mint)}.eyebrow{margin-bottom:var(--space-2);color:var(--color-secondary);letter-spacing:.08em;font-size:.875rem;font-weight:700;line-height:1.4}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);transition:background var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast), color var(--motion-fast);border:2px solid #0000;font-weight:700;line-height:1.35;text-decoration:none;display:inline-flex}.button:active:not(:disabled){box-shadow:var(--shadow-pressed);transform:translateY(1px)}.button:disabled{cursor:not-allowed;opacity:.48}.button--large{min-height:56px;padding-inline:var(--space-8);font-size:1.08rem}.button--compact{min-height:44px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:.9rem}.button--primary{color:var(--color-on-primary);background:var(--color-primary);box-shadow:0 7px 0 color-mix(in srgb, var(--color-primary) 78%, var(--color-text))}.button--primary:hover{background:color-mix(in srgb, var(--color-primary) 92%, var(--color-text))}.button--secondary{color:var(--color-primary);border-color:var(--color-primary);background:var(--color-surface)}.button--secondary:hover{background:var(--color-surface-mint)}.text-link{min-height:44px;color:var(--color-primary);text-underline-offset:.25em;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.panel,.status-card,.parent-note,.stage-card,.lesson-card,.stage-hero{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.home-hero{gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-warm);box-shadow:var(--shadow-card);padding:1.25rem;display:grid;overflow:hidden}.home-hero>*{min-width:0}.home-hero__copy{align-self:center}.home-hero__copy h1{max-width:12ch}.home-hero__lead{max-width:31rem;margin-bottom:var(--space-4);font-size:1.125rem;font-weight:500}.home-hero__actions{align-items:stretch;gap:var(--space-3);flex-direction:column;display:flex}.hero-artwork{align-self:end;height:5.5rem;min-height:0}.hero-artwork svg{width:100%;height:100%;display:block}.hero-artwork__sun{fill:var(--color-reward)}.hero-artwork__hill--back{fill:var(--color-surface-blue)}.hero-artwork__hill{fill:var(--color-surface-mint)}.hero-artwork__trunk{fill:color-mix(in srgb, var(--color-secondary) 68%, var(--color-surface-warm))}.hero-artwork__tree{fill:color-mix(in srgb, var(--color-primary) 62%, var(--color-surface-mint))}.hero-artwork__path{fill:none;stroke:var(--color-secondary);stroke-width:14px;stroke-linecap:round;opacity:.42}.hero-artwork__flower{fill:var(--color-secondary)}.hero-artwork__leaf{fill:var(--color-surface-mint);stroke:var(--color-primary);stroke-width:3px}.home-grid{gap:var(--space-4);margin-top:var(--space-6);display:grid}.panel{padding:var(--space-6)}.progress-panel{background:var(--color-surface-mint)}.method-panel{background:var(--color-surface)}.section-heading--inline,.stage-card__heading,.stage-card__progress-label{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.section-heading--inline>strong{color:var(--color-primary);font-variant-numeric:tabular-nums;font-size:1.3rem}.progress{border:1px solid color-mix(in srgb, var(--color-primary) 30%, var(--color-border));border-radius:var(--radius-round);background:color-mix(in srgb, var(--color-border) 70%, var(--color-surface));width:100%;height:.8rem;overflow:hidden}.progress__fill{border-radius:inherit;background:var(--color-primary);height:100%;transition:width var(--motion-normal) var(--ease-out);display:block}.progress-panel .progress{margin-block:var(--space-4)}.learning-steps{gap:var(--space-2);margin:var(--space-6) 0 0;grid-template-columns:repeat(5,1fr);padding:0;list-style:none;display:grid}.learning-steps li{align-items:center;gap:var(--space-1);min-width:0;color:var(--color-text-muted);flex-direction:column;font-size:.82rem;font-weight:650;display:flex;position:relative}.learning-steps__icon{width:2.75rem;height:2.75rem;color:var(--color-secondary);background:var(--color-surface-warm);border-radius:1rem;place-items:center;display:grid}.learning-steps__number{width:1.15rem;height:1.15rem;color:var(--color-on-primary);background:var(--color-primary);border-radius:50%;place-items:center;font-size:.68rem;display:grid;position:absolute;top:-.25rem;right:calc(50% - 1.65rem)}.parent-note{gap:var(--space-6);margin-top:var(--space-6);padding:var(--space-6);background:var(--color-surface-blue);display:grid}.page-intro{max-width:44rem;margin-bottom:var(--space-8)}.page-intro>p:last-child{font-size:1.08rem}.stage-list{gap:var(--space-4);display:grid}.stage-card{gap:var(--space-4);padding:var(--space-6);grid-template-columns:auto 1fr;display:grid}.stage-card--1{background:var(--color-surface-mint)}.stage-card--2{background:var(--color-surface-warm)}.stage-card--3{background:var(--color-surface-blue)}.stage-card__icon{width:3.5rem;height:3.5rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 76%, transparent);border-radius:1.15rem;place-items:center;display:grid}.stage-card__badge{align-items:center;gap:var(--space-1);min-height:1.8rem;padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);color:var(--color-primary);background:var(--color-surface);flex:none;font-size:.78rem;font-weight:700;display:inline-flex}.stage-card__progress-label{margin-block:var(--space-4) var(--space-2);color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:650}.stage-card__link{align-items:center;gap:var(--space-2);min-height:44px;margin-top:var(--space-4);color:var(--color-primary);text-underline-offset:.24em;font-weight:700;display:inline-flex}.stage-hero{gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-6);background:var(--color-surface-warm);display:grid}.stage-hero__progress{grid-column:1/-1}.category-filter{gap:var(--space-2);margin-block:var(--space-6);padding:var(--space-1);scrollbar-width:thin;display:flex;overflow-x:auto}.category-filter button{min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-round);color:var(--color-text-muted);background:var(--color-surface);flex:none;font-weight:650}.category-filter button[aria-pressed=true]{color:var(--color-on-primary);border-color:var(--color-primary);background:var(--color-primary)}.character-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.character-card{min-height:8rem;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);transition:border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);flex-direction:column;justify-content:center;align-items:center;text-decoration:none;display:flex}.character-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-raised)}.character-card:active{transform:translateY(1px)}.character-card--completed{background:var(--color-surface-mint)}.character-card--current{border:3px solid var(--color-primary);background:var(--color-surface-warm)}.character-card__hanzi{font-family:var(--font-hanzi);color:var(--color-text);font-size:3rem;font-weight:700;line-height:1}.character-card__pinyin{margin-top:var(--space-2);color:var(--color-text-muted);letter-spacing:.04em;font-weight:550}.character-card__status{align-items:center;gap:var(--space-1);min-height:1.6rem;margin-top:var(--space-2);color:var(--color-primary);font-size:.78rem;font-weight:700;display:inline-flex}.pagination{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-8);color:var(--color-text-muted);font-variant-numeric:tabular-nums;display:flex}.status-card{max-width:42rem;margin:var(--space-8) auto;padding:var(--space-8);text-align:center}.status-card .button{margin-top:var(--space-4)}.status-card--loading{gap:var(--space-4);text-align:left;flex-direction:column;min-height:15rem;display:flex}.skeleton{border-radius:var(--radius-round);background:var(--color-border);height:1rem;animation:1.2s ease-in-out infinite alternate skeleton-pulse;display:block}.skeleton--title{width:58%;height:2rem}.skeleton--body{width:100%}.skeleton--short{width:72%}@keyframes skeleton-pulse{to{opacity:.48}}.lesson__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-top:var(--space-4);display:flex}.icon-text-button{padding:0 var(--space-3);border-radius:var(--radius-sm);background:0 0;border:0;flex:none}.lesson-steps{gap:var(--space-1);margin:var(--space-4) 0 var(--space-6);grid-template-columns:repeat(6,1fr);padding:0;list-style:none;display:grid}.lesson-steps li{align-items:center;gap:var(--space-1);min-width:0;color:var(--color-text-muted);flex-direction:column;font-size:.72rem;font-weight:650;display:flex}.lesson-steps li>:first-child{border:1px solid var(--color-border);background:var(--color-surface);border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;display:grid}.lesson-steps li.is-active>:first-child,.lesson-steps li.is-complete>:first-child{color:var(--color-on-primary);border-color:var(--color-primary);background:var(--color-primary)}.lesson__grid{gap:var(--space-4);display:grid}.lesson__grid>*{min-width:0}.lesson__scene{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.lesson__scene .scene-placeholder{aspect-ratio:1;border-radius:var(--radius-md);min-height:0;box-shadow:none}.lesson__scene .scene-placeholder__image{object-fit:contain}.lesson__scene .lesson__regenerate{box-shadow:none;align-self:center;margin-top:auto}.lesson__regenerate{align-items:center;gap:var(--space-2);width:fit-content;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface);box-shadow:var(--shadow-card);transition:border-color var(--motion-fast), background-color var(--motion-fast), transform var(--motion-fast);font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.lesson__regenerate:hover{border-color:var(--color-primary);background:var(--color-surface-mint)}.lesson__regenerate:active{transform:translateY(1px)}.scene-placeholder{aspect-ratio:4/3;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-blue);width:100%;min-height:18rem;box-shadow:var(--shadow-card);align-self:start;place-items:center;display:grid;position:relative;overflow:hidden}.scene-placeholder__sun{aspect-ratio:1;background:var(--color-reward);border-radius:50%;width:3.25rem;position:absolute;top:12%;right:14%}.scene-placeholder__hill{background:var(--color-surface-mint);border-radius:50% 50% 0 0;height:72%;position:absolute;bottom:-36%;left:-10%;right:-10%}.scene-placeholder__hill--back{background:color-mix(in srgb, var(--color-primary) 25%, var(--color-surface-mint));bottom:-28%;left:-25%;right:34%}.scene-placeholder__icon{z-index:1;width:5rem;height:5rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 82%, transparent);border-radius:1.5rem;place-items:center;display:grid;position:relative}.scene-placeholder__label{z-index:2;bottom:var(--space-4);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-round);color:var(--color-primary);background:var(--color-surface);font-size:.85rem;font-weight:700;display:inline-flex;position:absolute}.scene-placeholder__image{object-fit:cover;width:100%;height:100%}.scene-placeholder__retry{z-index:2;bottom:calc(var(--space-4) + 2.75rem);min-height:44px;padding:var(--space-2) var(--space-4);border:2px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface);font-weight:700;position:absolute}.lesson-card{min-height:20rem;padding:var(--space-6);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.lesson-card__prompt{max-width:18rem;font-size:1.25rem;font-weight:600}.lesson-card__identity{justify-content:center;align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.lesson-card__identity .lesson-card__hanzi{margin-bottom:0}.lesson-card__pinyin{margin-bottom:var(--space-2);color:var(--color-secondary);letter-spacing:.04em;font-size:1.6rem;font-weight:600}.lesson-card__hanzi{margin-bottom:var(--space-4);font-family:var(--font-hanzi);color:var(--color-text);font-size:clamp(6rem,25vw,8rem);font-weight:700;line-height:1}.audio-button{align-items:center;gap:var(--space-2);min-height:56px;padding:var(--space-3) var(--space-6);border:2px solid var(--color-primary);border-radius:var(--radius-round);color:var(--color-primary);background:var(--color-surface-mint);font-weight:700;display:inline-flex}.lesson-card__words{width:100%;margin-top:var(--space-6);text-align:left;overflow-wrap:anywhere}.lesson-card__words h2{margin:0 0 var(--space-3);color:var(--color-secondary);font-size:1.125rem}.lesson-card__words dl{gap:var(--space-3);margin:0;display:grid}.lesson-card__word{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-warm)}.lesson-card__word dt{color:var(--color-text);font-size:1.5rem;font-weight:700}.lesson-card__word dd{margin:var(--space-2) 0 0;color:var(--color-text);font-size:1.125rem;line-height:1.65}.lesson__sentence{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-warm);color:var(--color-text);text-align:center;margin:0;font-size:1.15rem;font-weight:550;line-height:1.7}.mini-practice{width:min(100%,24rem);margin-top:var(--space-6);padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-warm)}.mini-practice__answer{margin:var(--space-1);align-items:center;gap:var(--space-2);min-height:52px;padding:var(--space-2) var(--space-6);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface);font-size:1.1rem;font-weight:700;display:inline-flex}.mini-practice__answer[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-surface-mint)}.lesson__practice{width:100%;padding:var(--space-6);text-align:center}.mini-practice__feedback{margin:var(--space-3) 0 0;color:var(--color-success);font-weight:700}.lesson__actions{z-index:10;bottom:calc(4.25rem + env(safe-area-inset-bottom));margin-top:var(--space-6);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:center;display:flex;position:sticky}.lesson__actions .button{width:100%}.practice-page,.review-page{max-width:60rem}.practice-page .page-intro,.review-page .page-intro{margin-bottom:var(--space-6)}.practice-empty,.review-empty{margin-block:0 var(--space-8);background:var(--color-surface-warm)}.practice-empty>svg,.review-empty>svg{margin-bottom:var(--space-3);color:var(--color-primary)}.practice-ready,.review-summary{gap:var(--space-4);margin-bottom:var(--space-8);background:var(--color-surface-mint);align-items:center;display:grid}.practice-ready p:last-child,.review-summary p:last-child{margin-bottom:0}.practice-ready__icon,.review-summary__icon,.parent-suggestion__icon{width:4rem;height:4rem;color:var(--color-primary);background:color-mix(in srgb, var(--color-surface) 82%, transparent);border-radius:1.25rem;place-items:center;display:grid}.practice-character-list{margin-bottom:var(--space-8)}.practice-session{max-width:50rem;margin-inline:auto}.practice-session__topline{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);font-variant-numeric:tabular-nums;display:flex}.practice-session__topline .icon-text-button{align-items:center;gap:var(--space-2);min-height:56px;text-decoration:none;display:inline-flex}.practice-progress,.parent-stage-bar{border-radius:var(--radius-round);background:var(--color-border);height:.75rem;position:relative;overflow:hidden}.practice-progress>span,.parent-stage-bar>span{border-radius:inherit;background:var(--color-primary);transform-origin:0;transition:transform var(--motion-normal) var(--ease-out);position:absolute;inset:0}.practice-question{margin-top:var(--space-4);text-align:center}.practice-question h2{margin-bottom:var(--space-6)}.practice-options{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.practice-option{place-items:center;gap:var(--space-1);min-height:7rem;padding:var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-card);transition:border-color var(--motion-fast), background-color var(--motion-fast), box-shadow var(--motion-fast);display:grid}.practice-option strong{font-family:var(--font-hanzi);font-size:3rem;line-height:1}.practice-option span{color:var(--color-success);font-size:.9rem;font-weight:700}.practice-option.is-selected{border-width:3px;border-color:var(--color-primary);background:var(--color-surface-mint)}.practice-option.is-correct{border-color:var(--color-success);background:var(--color-surface-mint)}.practice-option:disabled{opacity:1;cursor:default}.practice-feedback{min-height:4.5rem;color:var(--color-text-muted);justify-content:center;align-items:center;font-weight:700;display:flex}.practice-feedback p{align-items:center;gap:var(--space-2);margin:0;display:inline-flex}.practice-submit{width:100%}@media (width<=767px){.practice-page--active{padding-top:var(--space-4)}.practice-page--active .page-intro{margin-bottom:var(--space-2)}.practice-page--active .page-intro .eyebrow,.practice-page--active .page-intro>p:last-child{display:none}.practice-page--active .page-intro h1{margin-bottom:0;font-size:1.5rem}.practice-page--active .practice-session__topline{margin-bottom:var(--space-2)}.practice-page--active .practice-session__topline .icon-text-button{min-height:44px}.practice-page--active .practice-progress{height:.5rem}.practice-page--active .practice-question{margin-top:var(--space-3);padding:var(--space-4)}.practice-page--active .practice-question>.eyebrow{margin-bottom:var(--space-2)}.practice-page--active .practice-question h2{margin-bottom:var(--space-4);font-size:1.25rem}.practice-page--active .practice-option{min-height:5rem;padding:var(--space-2)}.practice-page--active .practice-option strong{font-size:2.5rem}.practice-page--active .practice-feedback{min-height:3.5rem;font-size:.875rem}.practice-page--active .practice-submit{min-height:48px}}.practice-submit:disabled{opacity:.46;cursor:not-allowed}.practice-complete{background:var(--color-surface-mint)}.practice-complete>svg{color:var(--color-success)}.review-list-heading{margin-bottom:var(--space-4)}.review-list-heading>svg{color:var(--color-primary);flex:none}.review-character-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.review-character-card{min-height:9rem;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);transition:border-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);flex-direction:column;justify-content:center;align-items:center;text-decoration:none;display:flex}.review-character-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-raised)}.review-character-card:active{transform:translateY(1px)}.review-character-card strong{font-family:var(--font-hanzi);font-size:3.5rem;line-height:1}.review-character-card span{margin-top:var(--space-2);color:var(--color-secondary);letter-spacing:.04em;font-weight:650}.review-character-card small{margin-top:var(--space-1);color:var(--color-text-muted);font-size:.9rem}.activity-grid{gap:var(--space-4);margin-top:var(--space-8);display:grid}.activity-grid__heading{grid-column:1/-1}.activity-card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-warm)}.activity-card>svg{margin-bottom:var(--space-3);color:var(--color-secondary)}.activity-card h3{margin-bottom:var(--space-2);font-size:1.2rem}.activity-card p{margin-bottom:0;font-size:1.05rem}.parent-dashboard{max-width:75rem;font-size:1rem}.parent-shell-body{min-width:0}.parent-child-switcher{border-bottom:1px solid var(--color-border);justify-content:flex-end;align-items:center;width:calc(100% - 2rem);max-width:75rem;min-height:3.5rem;margin-inline:auto;display:flex}.parent-child-switcher label{align-items:center;gap:var(--space-2);min-width:0;color:var(--color-text-muted);font-weight:650;display:flex}.parent-child-switcher svg{color:var(--color-primary);flex:none}.parent-child-switcher select{max-width:12rem;min-height:44px;padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);font:inherit;font-weight:700}.parent-child-switcher select:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 18%, transparent);outline:none}.parent-child-switcher select:disabled{cursor:wait;opacity:.6}.parent-navigation{width:calc(100% - 2rem);max-width:75rem;padding-block:var(--space-3);border-bottom:1px solid var(--color-border);margin-inline:auto}.parent-navigation nav{gap:var(--space-2);display:flex;overflow-x:auto}.parent-navigation a{align-items:center;gap:var(--space-2);min-height:44px;padding-inline:var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-muted);transition:color var(--motion-fast), background var(--motion-fast);flex:none;font-weight:650;text-decoration:none;display:inline-flex}.parent-navigation a:hover,.parent-navigation a.router-link-exact-active{color:var(--color-primary);background:var(--color-surface-mint)}.parent-navigation a.parent-admin-entry{min-height:44px;margin-top:var(--space-3);justify-content:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);flex-direction:row}.parent-welcome{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);display:flex}.sync-note{align-items:center;gap:var(--space-2);min-height:2rem;padding-inline:var(--space-3);border-radius:var(--radius-round);color:var(--color-primary);background:var(--color-surface-mint);flex:none;font-size:.875rem;font-weight:700;display:inline-flex}.sync-status{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.sync-retry{align-items:center;gap:var(--space-2);min-height:44px;padding-inline:var(--space-3);border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface);font-weight:700;display:inline-flex}.sync-retry:disabled{opacity:.46;cursor:not-allowed}.parent-suggestion{gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-mint);box-shadow:var(--shadow-card);align-items:center;display:grid}.parent-suggestion p:last-child{margin-bottom:0}.parent-overview-grid{gap:var(--space-4);margin-block:var(--space-6);display:grid}.parent-stages{margin-bottom:var(--space-6)}.parent-stage-grid{gap:var(--space-3);display:grid}.parent-stage-card{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-variant-numeric:tabular-nums;display:grid}.parent-stage-card>span,.parent-stage-card>small{color:var(--color-text-muted)}.parent-stat-card{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card)}.parent-stat-card>svg{margin-bottom:var(--space-3);color:var(--color-primary)}.parent-stat-card p{margin-bottom:var(--space-1)}.parent-stat-card strong{font-variant-numeric:tabular-nums;font-size:1.5rem;display:block}.parent-stat-card small{margin-top:var(--space-2);color:var(--color-text-muted);font-size:.875rem;line-height:1.5;display:block}.parent-recent{border-radius:var(--radius-md)}.recent-character-list{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.recent-character-list a{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-warm);flex-direction:column;justify-content:center;align-items:center;min-height:6.5rem;text-decoration:none;display:flex}.recent-character-list strong{font-family:var(--font-hanzi);font-size:2.5rem;line-height:1}.recent-character-list span{margin-top:var(--space-2);color:var(--color-text-muted);font-size:.875rem}.parent-empty-state{align-items:flex-start;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-warm);display:flex}.parent-empty-state>svg{color:var(--color-primary);flex:none}.parent-empty-state h3{margin-bottom:var(--space-1);font-size:1.05rem}.parent-empty-state p{margin-bottom:0}.data-note{margin-top:var(--space-6);padding:var(--space-4) var(--space-6);border-left:4px solid var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--color-surface-blue)}.data-note p{margin:var(--space-1) 0 0}.parent-progress-page{max-width:75rem}.parent-progress-heading{max-width:46rem}.parent-progress-stats{gap:var(--space-4);margin-bottom:var(--space-6);display:grid}.parent-progress-stages,.parent-progress-list{margin-bottom:var(--space-6);border-radius:var(--radius-md)}.parent-result-count{color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex:none}.parent-progress-filters{gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-warm);display:grid}.parent-progress-filters label{gap:var(--space-2);min-width:0;color:var(--color-text);font-weight:650;display:grid}.parent-progress-filters input,.parent-progress-filters select{width:100%;min-width:0;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);font:inherit}.parent-progress-filters select:focus,.parent-progress-filters input:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 18%, transparent);outline:none}.parent-progress-search__field{padding-left:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-surface);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.parent-progress-search__field:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 18%, transparent)}.parent-progress-search__field input{box-shadow:none;border:0;outline:0}.parent-progress-filter-actions{align-items:end;gap:var(--space-2);flex-wrap:wrap;display:flex}.parent-progress-table-wrap{margin-top:var(--space-6)}.parent-progress-table{border-collapse:collapse;width:100%;display:block}.parent-progress-table thead{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.parent-progress-table tbody,.parent-progress-table tr,.parent-progress-table td{width:100%;display:block}.parent-progress-table tbody{gap:var(--space-3);display:grid}.parent-progress-table tr{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.parent-progress-table td{align-items:center;gap:var(--space-3);min-height:44px;padding-block:var(--space-2);border-bottom:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);color:var(--color-text-muted);grid-template-columns:minmax(6.5rem,42%) minmax(0,1fr);display:grid}.parent-progress-table td:before{content:attr(data-label);color:var(--color-text);font-weight:650}.parent-progress-table td:last-child{border-bottom:0}.parent-progress-table .parent-progress-hanzi{color:var(--color-text);font-family:var(--font-hanzi);font-size:2rem;font-weight:700}.mastery-pill{min-height:2rem;padding-inline:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-round);color:var(--color-text-muted);background:var(--color-bg);white-space:nowrap;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.mastery-pill--learning{background:var(--color-surface-blue);color:var(--color-text)}.mastery-pill--early{background:var(--color-surface-warm);color:var(--color-secondary)}.mastery-pill--basic{background:var(--color-surface-mint);color:var(--color-success)}.mastery-pill--fluent{background:var(--color-primary);color:var(--color-on-primary)}.due-note{margin-top:var(--space-1);color:var(--color-secondary);font-size:.875rem;font-weight:650;display:block}.parent-progress-action{min-height:44px;color:var(--color-primary);text-underline-offset:.25em;align-items:center;font-weight:700;display:inline-flex}.parent-progress-empty{align-items:flex-start;gap:var(--space-3);padding:var(--space-6);border-radius:var(--radius-sm);background:var(--color-surface-warm);flex-direction:column;display:flex}.parent-progress-empty>svg{color:var(--color-primary)}.parent-progress-empty h3{margin-bottom:var(--space-1);font-size:1.1rem}.parent-progress-empty p{margin-bottom:0}.parent-progress-pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.parent-progress-pagination button{align-items:center;gap:var(--space-1);min-height:44px;padding-inline:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);background:var(--color-surface);font-weight:700;display:inline-flex}.parent-progress-pagination button:disabled{cursor:not-allowed;opacity:.46}.parent-progress-pagination span{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.parent-report-page{max-width:75rem}.parent-report-heading{gap:var(--space-4);margin-bottom:var(--space-8);flex-direction:column;display:flex}.parent-report-heading>div:first-child{max-width:46rem}.parent-report-heading p:last-child{margin-bottom:0}.parent-report-period{width:fit-content;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);display:inline-flex}.parent-report-period button{min-height:44px;padding-inline:var(--space-4);border-radius:calc(var(--radius-sm) - 4px);color:var(--color-text-muted);background:0 0;border:0;font-weight:700}.parent-report-period button[aria-pressed=true]{color:var(--color-on-primary);background:var(--color-primary)}.parent-report-period button:disabled{cursor:wait;opacity:.6}.parent-report-loading,.parent-report-error{justify-content:center;align-items:center;gap:var(--space-3);min-height:12rem;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:flex}.parent-report-loading svg{color:var(--color-primary);animation:.9s linear infinite report-spin}.parent-report-error{flex-direction:column}.parent-report-error p{margin-bottom:0}@keyframes report-spin{to{transform:rotate(360deg)}}.parent-report-insight{gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-blue);box-shadow:var(--shadow-card);display:grid}.parent-report-insight>svg{color:var(--color-primary)}.parent-report-insight p:last-child{margin-bottom:0}.parent-report-summary{gap:var(--space-3);margin-block:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.parent-report-summary article{gap:var(--space-2);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.parent-report-summary svg{color:var(--color-primary)}.parent-report-summary span{color:var(--color-text-muted)}.parent-report-summary strong{font-variant-numeric:tabular-nums;font-size:1.35rem}.parent-report-chart{margin-bottom:var(--space-6);border-radius:var(--radius-md)}.parent-report-chart .section-heading--inline>span{max-width:13rem;color:var(--color-text-muted);text-align:right;font-size:.875rem}.parent-report-chart figure{margin:var(--space-6) 0 0}.parent-activity-chart{grid-template-columns:repeat(var(--report-bars,7), minmax(0, 1fr));align-items:end;gap:var(--space-2);min-height:13rem;padding:var(--space-3) var(--space-2) 0;border-bottom:1px solid var(--color-border);display:grid}.parent-activity-column{place-items:end center;gap:var(--space-1);grid-template-rows:1.5rem minmax(0,1fr) 2rem;min-width:0;height:12rem;display:grid}.parent-activity-column small{min-width:2rem;color:var(--color-text-muted);text-align:center;white-space:nowrap;font-size:.75rem}.parent-activity-value{color:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:.75rem}.parent-activity-track{border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;width:min(100%,2.25rem);height:100%;position:relative;overflow:hidden}.parent-activity-track>span{border-radius:inherit;background:var(--color-primary);transform-origin:bottom;transition:transform var(--motion-normal) var(--ease-out);position:absolute;inset:0}.parent-report-page:has(.parent-report-period button:last-child[aria-pressed=true]) .parent-activity-chart{--report-bars:30;gap:2px}.parent-report-page:has(.parent-report-period button:last-child[aria-pressed=true]) .parent-activity-track{width:min(100%,1rem)}.parent-report-data-table{margin-top:var(--space-4);border-top:1px solid var(--color-border)}.parent-report-data-table summary{min-height:44px;padding-block:var(--space-3);color:var(--color-primary);align-content:center;font-weight:700}.parent-report-data-table>div{overflow-x:auto}.parent-report-data-table table{border-collapse:collapse;width:100%;min-width:28rem}.parent-report-data-table th,.parent-report-data-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;font-variant-numeric:tabular-nums}.parent-report-bottom-grid{gap:var(--space-4);display:grid}.parent-report-weak,.parent-report-suggestion{border-radius:var(--radius-md)}.parent-report-weak ul{gap:var(--space-3);margin:var(--space-4) 0 0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.parent-report-weak ul a{min-height:7rem;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-warm);place-items:center;text-decoration:none;display:grid}.parent-report-weak ul strong{font-family:var(--font-hanzi);font-size:2rem}.parent-report-weak ul span,.parent-report-weak ul small{color:var(--color-text-muted)}.parent-report-weak ul small{margin-top:var(--space-1);text-align:center}.parent-report-no-weak{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface-mint);display:flex}.parent-report-no-weak svg{color:var(--color-success);flex:none}.parent-report-no-weak p{margin-bottom:0}.parent-report-suggestion{background:var(--color-surface-mint)}.parent-report-suggestion .button{margin-top:var(--space-3)}.parent-profile-page{max-width:52rem}.parent-profile-heading{max-width:46rem}.parent-profile-form{gap:var(--space-6);display:grid}.parent-profile-section{border-radius:var(--radius-md)}.parent-profile-section fieldset{min-width:0;margin:var(--space-6) 0 0;border:0;padding:0}.parent-profile-section legend,.parent-profile-section label>span{color:var(--color-text);font-weight:700}.parent-profile-section input,.parent-profile-section select{width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);font:inherit}.parent-profile-section input:focus,.parent-profile-section select:focus{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 18%, transparent);outline:none}.parent-avatar-fieldset>p{margin:var(--space-1) 0 var(--space-3);color:var(--color-text-muted);font-size:.875rem}.parent-avatar-options{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.parent-avatar-options label{align-items:center;gap:var(--space-2);min-width:0;min-height:56px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;transition:border-color var(--motion-fast), background var(--motion-fast);display:flex}.parent-avatar-options label:has(input:checked){border-color:var(--color-primary);color:var(--color-primary);background:var(--color-surface-mint)}.parent-avatar-options label:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:3px}.parent-avatar-options input{width:18px;min-height:18px;accent-color:var(--color-primary);padding:0}.parent-avatar-options svg{flex:none}.parent-avatar-options span{min-width:0}.parent-profile-fields{gap:var(--space-4);margin-top:var(--space-6);display:grid}.parent-profile-fields label{gap:var(--space-2);display:grid}.parent-profile-fields small{color:var(--color-text-muted);font-size:.875rem;line-height:1.5}.parent-daily-goal{background:var(--color-surface-blue)}.parent-daily-goal .section-heading--inline output{padding:var(--space-2) var(--space-3);border-radius:var(--radius-round);color:var(--color-primary);background:var(--color-surface);font-variant-numeric:tabular-nums;flex:none;font-weight:700}.parent-daily-goal>label{gap:var(--space-2);max-width:16rem;margin-top:var(--space-6);display:grid}.parent-profile-note{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-4);color:var(--color-text-muted);display:flex}.parent-profile-note svg{color:var(--color-primary);flex:none;margin-top:2px}.parent-profile-note p{margin:0}.parent-profile-success{padding:var(--space-3) var(--space-4);border-left:4px solid var(--color-success);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-success);background:var(--color-surface-mint);margin:0;font-weight:650}.parent-profile-actions{align-items:stretch;gap:var(--space-3);flex-direction:column;display:flex}.parent-profile-actions>span{color:var(--color-text-muted);font-size:.875rem}.parent-profile-actions .button{min-height:48px}.placeholder-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;max-width:42rem;min-height:70dvh;display:flex}.placeholder-page>svg{margin-bottom:var(--space-4);color:var(--color-primary)}.placeholder-page .button{margin-top:var(--space-4)}.placeholder-page--quiet{min-height:60dvh}.simple-header{justify-content:space-between;align-items:center;gap:var(--space-4);border-bottom:1px solid var(--color-border);width:calc(100% - 2rem);max-width:75rem;min-height:4.5rem;margin-inline:auto;display:flex}.parent-logout{align-items:center;gap:var(--space-2);min-height:44px;padding-inline:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);background:var(--color-surface);transition:border-color var(--motion-fast), color var(--motion-fast), background var(--motion-fast);font-weight:650;display:inline-flex}.parent-logout:hover{border-color:var(--color-danger);color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 6%, var(--color-surface))}.parent-login-page{min-height:calc(100dvh - 4.5rem);padding:var(--space-8) var(--space-4) var(--space-12);place-items:center;display:grid}.parent-login-card{width:100%;max-width:26.25rem;padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-raised)}.parent-login-brand{width:3.5rem;height:3.5rem;margin-bottom:var(--space-6);border-radius:var(--radius-md);background:var(--color-surface-mint);place-items:center;display:grid}.parent-login-brand .brand-mark{width:2.75rem;height:2.75rem}.parent-login-intro{margin-bottom:var(--space-6)}.parent-login-form{gap:var(--space-4);display:grid}.form-field{gap:var(--space-2);display:grid}.form-field label{font-weight:700}.form-field>input,.form-field .password-field{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);min-height:48px;transition:border-color var(--motion-fast), box-shadow var(--motion-fast)}.form-field>input{width:100%;padding:var(--space-3) var(--space-4);color:var(--color-text);font:inherit}.form-field>input:focus,.form-field .password-field:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-focus) 18%, transparent);outline:none}.password-field{padding-left:var(--space-3);color:var(--color-text-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.password-field input{min-width:0;height:46px;padding-inline:var(--space-3);color:var(--color-text);font:inherit;background:0 0;border:0;outline:none}.password-toggle{border-radius:var(--radius-sm);width:48px;height:48px;color:var(--color-primary);background:0 0;border:0;place-items:center;display:grid}.password-toggle:hover{background:var(--color-surface-mint)}.form-error{padding:var(--space-3) var(--space-4);border-left:4px solid var(--color-danger);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 7%, var(--color-surface));margin:0;font-weight:600}.parent-login-submit{width:100%;margin-top:var(--space-2)}.parent-login-note{align-items:flex-start;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex}.parent-login-note svg{color:var(--color-primary);flex:none;margin-top:2px}.parent-login-note p{margin:0;font-size:.875rem}@media (width<=479px){.parent-child-switcher{padding-block:var(--space-2);justify-content:stretch}.parent-child-switcher label{width:100%}.parent-child-switcher label>span{flex:none}.parent-child-switcher select{width:100%;min-width:0;max-width:none}.parent-navigation nav{grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:visible}.parent-navigation a{justify-content:center;gap:var(--space-1);min-width:0;min-height:58px;padding:var(--space-1);white-space:nowrap;flex-direction:column;font-size:.875rem}.parent-navigation a svg{width:18px;height:18px}.simple-header>strong{display:none}.parent-login-card{padding:var(--space-6)}}@media (width>=480px){.character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=768px){.page{width:calc(100% - 3rem);max-width:70rem;padding-block:var(--space-12) var(--space-16)}.parent-entry span{display:inline}.home-hero{padding:var(--space-8);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.hero-artwork{height:auto;min-height:15rem}.home-hero__actions{flex-direction:row;align-items:center}.home-grid,.parent-note{grid-template-columns:1fr 1fr}.parent-note{align-items:center}.character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.stage-hero{grid-template-columns:1fr auto;align-items:center}.lesson__grid{align-items:stretch;gap:var(--space-6);grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-card{justify-content:flex-start}.lesson-card__prompt{margin-block:auto}.lesson__actions{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;justify-content:flex-end;padding-inline:0;position:static}.lesson__actions .button{width:auto;min-width:15rem}.practice-ready,.review-summary,.parent-suggestion{grid-template-columns:auto minmax(0,1fr) auto}.review-character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.activity-grid,.parent-overview-grid,.parent-progress-stats,.parent-stage-grid,.parent-progress-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-progress-search,.parent-progress-filter-actions{grid-column:1/-1}.recent-character-list{grid-template-columns:repeat(5,minmax(0,1fr))}.parent-report-heading{flex-direction:row;justify-content:space-between;align-items:flex-start}.parent-report-insight{grid-template-columns:auto minmax(0,1fr)}.parent-report-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.parent-report-bottom-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.parent-report-weak ul,.parent-avatar-options{grid-template-columns:repeat(3,minmax(0,1fr))}.parent-profile-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-profile-actions{flex-direction:row;justify-content:space-between;align-items:center}}@media (width>=1024px){.desktop-nav{display:flex}.bottom-nav{display:none}.stage-list{grid-template-columns:repeat(3,minmax(0,1fr))}.stage-card{grid-template-columns:1fr}.character-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.parent-shell-body:not(.parent-shell-body--login){gap:var(--space-8);grid-template-columns:13.75rem minmax(0,1fr);width:calc(100% - 4rem);max-width:75rem;margin-inline:auto;display:grid}.parent-navigation{width:auto;margin:var(--space-12) 0 0;padding:0 var(--space-6) 0 0;border-right:1px solid var(--color-border);border-bottom:0}.parent-navigation nav{top:var(--space-6);display:grid;position:sticky;overflow:visible}.parent-navigation a{width:100%}.parent-main-content{min-width:0}.parent-main-content>.page{width:100%}.parent-progress-filters{grid-template-columns:minmax(14rem,1.4fr) repeat(3,minmax(8rem,1fr));align-items:end}.parent-progress-search,.parent-progress-filter-actions{grid-column:auto}.parent-progress-filter-actions{grid-column:1/-1}.parent-progress-table{display:table}.parent-progress-table thead{clip:auto;white-space:normal;width:auto;height:auto;position:static;overflow:visible}.parent-progress-table tbody{display:table-row-group}.parent-progress-table tr{background:0 0;border:0;width:auto;padding:0;display:table-row}.parent-progress-table th,.parent-progress-table td{width:auto;min-height:0;padding:var(--space-3);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;display:table-cell}.parent-progress-table th{color:var(--color-text);font-size:.875rem}.parent-progress-table td:before{content:none}.parent-progress-table .parent-progress-hanzi{font-size:1.75rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.app-shell--admin{background:var(--color-bg);min-height:100dvh}.admin-main{min-width:0}.admin-page{width:calc(100% - 2rem);max-width:75rem;padding-block:var(--space-8) var(--space-12);margin-inline:auto}.admin-page-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.admin-page-heading p:last-child{margin-bottom:0}.admin-mobile-header{z-index:var(--z-sticky);align-items:center;gap:var(--space-3);min-height:4.5rem;padding-inline:var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);grid-template-columns:44px 1fr auto;display:grid;position:sticky;top:0}.admin-mobile-header button{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--color-primary);background:0 0;border:0;place-items:center;display:grid}.admin-mobile-header strong{text-align:center}.admin-mobile-header a{min-height:44px;color:var(--color-primary);align-items:center;font-weight:650;text-decoration:none;display:inline-flex}.admin-nav-scrim{z-index:70;background:var(--color-scrim);position:fixed;inset:0}.admin-sidebar{z-index:var(--z-modal);width:min(20rem,86vw);padding:var(--space-4);border-right:1px solid var(--color-border);background:var(--color-surface);transition:transform var(--motion-normal) var(--ease-out);flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.admin-sidebar--open{transform:translate(0)}.admin-sidebar__heading{min-height:3.5rem;padding-inline:var(--space-2);justify-content:space-between;align-items:center;display:flex}.admin-sidebar__heading button{border-radius:var(--radius-sm);background:var(--color-surface-warm);border:0;place-items:center;width:44px;height:44px;display:grid}.admin-sidebar nav{gap:var(--space-2);margin-top:var(--space-6);display:grid}.admin-sidebar nav a,.admin-sidebar__footer a,.admin-sidebar__footer button{align-items:center;gap:var(--space-3);min-height:48px;padding-inline:var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-muted);font:inherit;background:0 0;border:0;font-weight:650;text-decoration:none;display:flex}.admin-sidebar nav a.router-link-active{color:var(--color-primary);background:var(--color-surface-mint);box-shadow:inset 4px 0 var(--color-primary)}.admin-sidebar__footer{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border);margin-top:auto;display:grid}.admin-sidebar__footer button{color:var(--color-danger)}.admin-login-page{min-height:100dvh;padding:var(--space-6) var(--space-4);place-items:center;display:grid}.admin-login-card{width:100%;max-width:26.25rem;padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-raised)}.admin-login-card>svg{margin-bottom:var(--space-4);color:var(--color-primary)}.admin-login-form{gap:var(--space-4);margin-top:var(--space-6);display:grid}.admin-login-form small,.admin-form-grid small{color:var(--color-text-muted);line-height:1.5}.admin-success{padding:var(--space-3) var(--space-4);border-left:4px solid var(--color-success);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-success);background:var(--color-surface-mint);font-weight:650}.admin-stat-grid{gap:var(--space-4);display:grid}.admin-stat-card{gap:var(--space-2);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);display:grid}.admin-stat-card svg{color:var(--color-primary)}.admin-stat-card strong{font-variant-numeric:tabular-nums;font-size:2rem}.admin-stat-card small{color:var(--color-text-muted)}.admin-action-grid{gap:var(--space-3);margin-top:var(--space-8);display:grid}.admin-action-grid h2{grid-column:1/-1}.admin-action-grid a{gap:var(--space-2);min-height:6rem;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);transition:border-color var(--motion-fast), box-shadow var(--motion-fast);text-decoration:none;display:grid}.admin-action-grid a:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card)}.admin-action-grid span{color:var(--color-text-muted);line-height:1.5}.admin-filters{gap:var(--space-3);margin-bottom:var(--space-6);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);display:grid}.admin-filters label,.admin-edit-form label,.admin-create-job label,.admin-assets-filter label,.admin-asset-body label{gap:var(--space-2);font-weight:650;display:grid}.admin-filters input,.admin-filters select,.admin-edit-form input,.admin-edit-form select,.admin-edit-form textarea,.admin-create-job textarea,.admin-create-job select,.admin-assets-filter select,.admin-asset-body textarea{width:100%;min-height:48px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-bg);font:inherit}.admin-search-input{padding-left:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);grid-template-columns:auto 1fr;align-items:center;display:grid}.admin-search-input input{background:0 0;border:0;outline:0}.admin-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.admin-table{border-collapse:collapse;width:100%}.admin-table thead{display:none}.admin-table tbody,.admin-table tr,.admin-table td{display:block}.admin-table tr{padding:var(--space-4);border-bottom:1px solid var(--color-border)}.admin-table tr:last-child{border-bottom:0}.admin-table td{align-items:center;gap:var(--space-3);min-height:2.25rem;padding-block:var(--space-1);grid-template-columns:7rem 1fr;display:grid}.admin-table td:before{content:attr(data-label);color:var(--color-text-muted);font-size:.875rem;font-weight:650}.admin-hanzi{font-family:var(--font-hanzi);font-size:1.75rem;font-weight:700}.status-pill{width:fit-content;min-height:1.75rem;padding-inline:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-round);color:var(--color-text-muted);background:var(--color-surface-warm);align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.status-pill--ready{color:var(--color-success);background:var(--color-surface-mint)}.admin-edit-link{min-height:44px;color:var(--color-primary);align-items:center;font-weight:700;display:inline-flex}.admin-empty{padding:var(--space-8);text-align:center;margin:0}.admin-pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.admin-pagination button,.admin-back-button,.admin-review-actions button{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding-inline:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-weight:650;display:inline-flex}.admin-pagination button:disabled{cursor:not-allowed;opacity:.46}.admin-back-button{margin-bottom:var(--space-4);color:var(--color-primary)}.admin-edit-form{gap:var(--space-4);display:grid}.admin-current-image{gap:var(--space-6);margin-bottom:var(--space-6);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);display:grid}.admin-current-image__preview{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--color-surface-warm);overflow:hidden}.admin-current-image__preview img{object-fit:contain;width:100%;height:100%;display:block}.admin-current-image__empty{justify-content:center;align-items:center;gap:var(--space-3);height:100%;padding:var(--space-4);text-align:center;flex-direction:column;display:flex}.admin-current-image__empty p{color:var(--color-text-muted);margin:0}.admin-current-image__details{overflow-wrap:anywhere;align-self:center;min-width:0}.admin-current-image__details h2{font-size:1.25rem}.admin-current-image__details .status-pill{margin-bottom:var(--space-3)}.admin-edit-form fieldset{gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);margin:0;display:grid}.admin-edit-form legend{padding-inline:var(--space-2);font-size:1.15rem;font-weight:700}.admin-form-grid{gap:var(--space-4);display:grid}.admin-field-note{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-blue);margin:0}.admin-form-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-3);padding-bottom:max(var(--space-3), env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg) 94%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.admin-form-actions>span{color:var(--color-text-muted);flex:100%;font-size:.875rem}.admin-edit-form fieldset{min-width:0}.admin-edit-form fieldset:disabled{opacity:.7}.admin-search-input:focus-within{outline:3px solid var(--color-primary);outline-offset:3px}.admin-review-actions button:disabled{opacity:.55;cursor:wait}.admin-asset-body details summary{min-height:44px;padding-block:var(--space-3);cursor:pointer}.admin-create-job{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.admin-create-job form{gap:var(--space-4);display:grid}.admin-create-job small{color:var(--color-text-muted)}.admin-job-list{gap:var(--space-3);margin-top:var(--space-8);display:grid}.admin-job-list article{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.admin-job-list article>div,.admin-asset-body>div:first-child{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-job-list p{margin-block:var(--space-2)}.admin-job-list small{color:var(--color-text-muted)}.admin-job-error{color:var(--color-danger)}.admin-job-characters{gap:var(--space-3);max-height:24rem;margin-block:var(--space-4);padding:var(--space-1);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));list-style:none;display:grid;overflow:auto}.admin-job-characters li{align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.admin-job-characters a{align-items:center;gap:var(--space-3);min-width:0;min-height:44px;color:var(--color-primary);flex:1;text-decoration:none;display:flex}.admin-job-characters a strong{font-family:var(--font-hanzi);font-size:2rem}.admin-job-characters a span{overflow-wrap:anywhere}.admin-job-characters small{display:block}.admin-job-characters .admin-job-error{flex-basis:100%}.admin-assets-filter{max-width:18rem;margin-bottom:var(--space-6)}.admin-asset-grid{gap:var(--space-4);display:grid}.admin-asset-grid>article{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.admin-asset-heading{align-items:center;gap:var(--space-3);padding:var(--space-4);flex-wrap:wrap;display:flex}.admin-asset-heading h2{margin:0;font-size:2.5rem;line-height:1.2}.admin-asset-heading>div{overflow-wrap:anywhere;flex:1;min-width:0}.admin-asset-heading p{margin:0}.admin-asset-heading small{color:var(--color-text-muted)}.admin-asset-scene{overflow-wrap:anywhere;margin:0}.admin-asset-scene strong{margin-bottom:var(--space-2);display:block}.admin-asset-image{aspect-ratio:1;background:var(--color-surface-warm);place-items:center;display:grid}.admin-asset-image img{object-fit:contain;width:100%;height:100%}.admin-asset-body{gap:var(--space-4);padding:var(--space-4);display:grid}.admin-asset-body details p{max-height:10rem;font-size:.875rem;overflow:auto}.admin-review-actions{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.admin-approve{color:var(--color-success);border-color:var(--color-success)!important}.admin-reject{color:var(--color-danger);border-color:var(--color-danger)!important}@media (width<=767px){.admin-form-actions>button{min-width:0;padding-inline:var(--space-2);flex:1;font-size:.875rem}}@media (width>=768px){.admin-current-image{grid-template-columns:15rem minmax(0,1fr)}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-filters{grid-template-columns:minmax(14rem,2fr) 1fr 1fr auto;align-items:end}.admin-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-create-job form{grid-template-columns:minmax(0,2fr) 1fr auto;align-items:end}.admin-asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.app-shell--admin:not(.app-shell--admin-login){grid-template-columns:15rem minmax(0,1fr);display:grid}.admin-mobile-header,.admin-sidebar__heading button,.admin-nav-scrim{display:none}.admin-sidebar{z-index:var(--z-sticky);width:15rem;height:100dvh;position:sticky;top:0;transform:none}.admin-page{width:calc(100% - 4rem);padding-block:var(--space-12)}.admin-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-table thead{display:table-header-group}.admin-table tbody{display:table-row-group}.admin-table tr{padding:0;display:table-row}.admin-table th,.admin-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;display:table-cell}.admin-table th{color:var(--color-text-muted);background:var(--color-surface-warm);font-size:.875rem}.admin-table td:before{display:none}.admin-hanzi{font-size:1.5rem}.admin-asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
