:root{--sc-bg:#fbfcfe;--sc-surface:#fff;--sc-surface-2:#f4f8fd;--sc-line:#e4eaf3;--sc-line-2:#c7d3e4;--sc-ink:#1b2536;--sc-dim:#64718a;--sc-dim-2:#8a97ad;--sc-on-accent:#fff;--sc-accent:#ff7a2f;--sc-accent-ink:#c8500a;--sc-accent-soft:#fff3eb;--sc-accent-hover:#ff8d4d;--sc-primary:#556582;--sc-primary-hover:#46536c;--sc-good:#1f9d57;--sc-warn:#c77a0a;--sc-bad:#e0483b;--sc-r:6px;--sc-r-md:8px;--sc-r-lg:10px;--sc-r-xl:16px;--soc:#2d7ff9;--soc-ink:#1a5ac4;--soc-soft:#eaf3ff;--nie:#7a3ff2;--nie-ink:#6229d6;--nie-soft:#f1eafe;--con:#e5484d;--con-ink:#b0272c;--con-soft:#fdeceb;--kan:#d9a300;--kan-ink:#8f6b00;--kan-soft:#fbf3dc;--lao:#49c5c1;--lao-ink:#167673;--lao-soft:#e6f7f6;--wash-soc:linear-gradient(135deg, #eaf3ff, #f8fbff);--wash-nie:linear-gradient(135deg, #f1eafe, #faf7ff);--wash-con:linear-gradient(135deg, #fdeceb, #fef8f7);--wash-kan:linear-gradient(135deg, #fbf3dc, #fefbf2);--wash-lao:linear-gradient(135deg, #e6f7f6, #f6fcfc);--wash-accent:linear-gradient(135deg, #ffefe3, #fff9f4);--sc-glass-1-bg:linear-gradient(180deg, #ffffff8a, #fff6);--sc-glass-1-blur:blur(16px) saturate(150%);--sc-glass-1-shadow:0 10px 28px #1b253614;--sc-glass-2-bg:linear-gradient(180deg, #ffffff9e, #ffffff75);--sc-glass-2-blur:blur(18px) saturate(150%);--sc-glass-2-shadow:0 16px 40px #1b25361c;--sc-glass-3-bg:linear-gradient(180deg, #ffffffbd, #fff9);--sc-glass-3-blur:blur(24px) saturate(150%);--sc-glass-3-shadow:0 24px 64px #1b253624;--sc-glass-edge:inset 0 1px 0 #ffffffd9, inset 0 0 0 1px #ffffff73;--sc-glass-bg:var(--sc-glass-1-bg);--sc-glass-border:transparent;--sc-glass-shadow:var(--sc-glass-1-shadow);--sc-glass-blur:var(--sc-glass-1-blur);--sc-ground:#1a1a1a;--sc-ground-2:#24262b;--sc-page-bg:linear-gradient(180deg, #23262b 0%, #17191c 100%);--sc-on-ground:#eceef0;--sc-on-ground-dim:#b4b7bd;--sc-select-ring:inset 0 0 0 2px var(--sc-accent);--sc-motion:.18s cubic-bezier(.2, .7, .2, 1);--sc-shadow-1:0 1px 3px #1b25360f;--sc-shadow-2:0 8px 24px #1b25361f}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){:root{--sc-glass-1-bg:#ffffffeb;--sc-glass-2-bg:#fffffff2;--sc-glass-3-bg:#fffffff7}}@media (prefers-reduced-transparency:reduce){:root{--sc-glass-1-bg:var(--sc-surface);--sc-glass-2-bg:var(--sc-surface);--sc-glass-3-bg:var(--sc-surface);--sc-glass-1-blur:none;--sc-glass-2-blur:none;--sc-glass-3-blur:none;--sc-glass-edge:inset 0 0 0 1px var(--sc-line)}}
:root[data-art-style=chibi] .btn,:root[data-art-style=chibi] .btn-gold,:root[data-art-style=chibi] .btn-primary,:root[data-art-style=chibi] .btn-danger{border-radius:999px}:root[data-art-style=chibi] .pixel-frame,:root[data-art-style=chibi] .panel{border-radius:var(--sc-r-xl)}:root[data-art-style=chibi] .hud .seg{border-radius:999px}:root[data-art-style=chibi] .char.is-speaking,:root[data-art-style=chibi] .char.speaking-shake{--char-scale:1.06}
:root{--bg-0:var(--sc-bg);--bg-1:var(--sc-surface-2);--bg-2:var(--sc-surface);--ink:var(--sc-ink);--paper:var(--sc-surface);--paper-edge:var(--sc-line-2);--gold:var(--sc-accent-ink);--gold-dim:#ff7a2f59;--text-primary:var(--sc-ink);--text-secondary:var(--sc-dim);--text-tertiary:var(--sc-dim-2);--text-inverse:var(--sc-on-accent);--surface-base:var(--sc-surface);--surface-raised:var(--sc-glass-2-bg);--surface-subtle:#1b25360a;--surface-selected:var(--sc-accent-soft);--surface-field:var(--sc-surface-2);--line-subtle:var(--sc-line);--line-default:var(--sc-line-2);--line-strong:var(--sc-accent);--button-bg:var(--sc-surface);--button-bg-hover:var(--sc-surface-2);--button-text:var(--sc-ink);--button-selected-bg:var(--sc-accent-soft);--button-selected-text:var(--sc-accent-ink);--button-gold-bg:var(--sc-accent);--button-gold-text:var(--sc-on-accent);--good:var(--sc-good);--warn:var(--sc-warn);--bad:var(--sc-bad);--muted:var(--sc-dim);--pixel:4px;--device-toolbar-height:0px;--app-bottom-gap:24px;--app-canvas-height:calc(100dvh - var(--device-toolbar-height) - var(--app-bottom-gap) - env(safe-area-inset-bottom,0px));--app-page-pad-x:clamp(14px, 2vw, 28px);--app-page-pad-y:clamp(16px, 3dvh, 32px);--top-menu-control-height:34px;--font-size-caption:12px;--font-size-small:12px;--font-size-body:16px;--font-size-title:24px;--font-size-display:clamp(28px, 3.2vw, 40px);--font-size-lead:var(--font-size-body);--font-size-micro:var(--font-size-caption);--font-size-label:var(--font-size-small);--font-size-section:var(--font-size-title);--font-size-display-sm:var(--font-size-display);--font-size-display-compact:var(--font-size-display);--font-size-icon-lg:var(--font-size-display)}.sc-glass-1,.sc-glass-2,.sc-glass-3{background:var(--sc-glass-1-bg);-webkit-backdrop-filter:var(--sc-glass-1-blur);backdrop-filter:var(--sc-glass-1-blur);box-shadow:var(--sc-glass-1-shadow), var(--sc-glass-edge);border-radius:var(--sc-r-lg);border:0}.sc-glass-2{background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge)}.sc-glass-3{background:var(--sc-glass-3-bg);-webkit-backdrop-filter:var(--sc-glass-3-blur);backdrop-filter:var(--sc-glass-3-blur);box-shadow:var(--sc-glass-3-shadow), var(--sc-glass-edge);border-radius:var(--sc-r-xl)}.sc-glass-1,.sc-glass-2,.sc-glass-3,.pixel-frame,.panel,.app-modal,.app-toast{color:var(--sc-ink)}.sc-selected{box-shadow:var(--sc-select-ring), var(--sc-glass-2-shadow), var(--sc-glass-edge)}*{box-sizing:border-box}html,body{background:var(--sc-page-bg);min-height:100%;color:var(--sc-on-ground);font-family:var(--sc-font,var(--font-noto-kr)), "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;font-size:var(--font-size-body);letter-spacing:.2px;-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;padding:0;line-height:1.7}:is(html:has(.vn),html:has(.student-dashboard-screen),html:has(.home-title)){height:100%;overflow:hidden}:is(html:has(.vn) body,html:has(.student-dashboard-screen) body,html:has(.home-title) body){overscroll-behavior:none;height:100%;overflow:hidden}html[lang=ja] body{font-family:var(--font-noto-jp), "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", var(--font-noto-kr), system-ui, sans-serif}body{min-height:100dvh;overflow-x:hidden}button{cursor:pointer;font-family:inherit}a{color:var(--sc-accent-ink)}.crt:after,.crt:before{content:none}.pixel-frame{background:var(--sc-surface);border:1px solid var(--sc-line);border-radius:var(--sc-r);box-shadow:var(--sc-shadow-1)}.btn{color:var(--sc-ink);border-radius:var(--sc-r-md);box-shadow:var(--sc-shadow-1);font-size:var(--font-size-body);text-transform:none;background:#ffffffb8;border:none;padding:12px 18px;transition:transform .12s,background .15s,color .15s,box-shadow .15s}.btn:hover:not(:disabled){background:var(--sc-accent-soft);color:var(--sc-accent-ink);box-shadow:var(--sc-glass-1-shadow);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn-primary{background:var(--sc-primary);color:var(--sc-on-accent)}.btn-primary:hover:not(:disabled){background:var(--sc-primary-hover);color:var(--sc-on-accent)}.btn-gold,.btn.tab-active,.btn-gold.tab-active{background:var(--sc-accent);color:var(--sc-on-accent);font-weight:700}.btn-gold:hover:not(:disabled),.btn.tab-active:hover:not(:disabled){background:var(--sc-accent-hover);color:var(--sc-on-accent)}.btn-danger{background:var(--sc-bad);color:#fff}.btn-danger:hover:not(:disabled){color:#fff;background:#c93a2e}.btn:disabled{opacity:1;color:var(--sc-dim-2);background:var(--sc-surface-2);box-shadow:none;cursor:not-allowed}.btn-gold:disabled,.btn.tab-active:disabled{background:var(--sc-accent-soft);color:var(--sc-dim)}.top-menu-controls{flex-wrap:nowrap;align-items:center;gap:8px;display:inline-flex}.top-menu-controls .btn{height:var(--top-menu-control-height);min-height:var(--top-menu-control-height);white-space:nowrap;justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex;padding:0 10px!important}.top-menu-controls .icon-btn{width:var(--top-menu-control-height);min-width:var(--top-menu-control-height);padding:0!important}.screen{min-height:var(--app-canvas-height);height:var(--app-canvas-height);padding:var(--app-page-pad-y) var(--app-page-pad-x) calc(var(--app-page-pad-y) + env(safe-area-inset-bottom,0px));margin-bottom:calc(var(--app-bottom-gap) + env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 50% 18%, var(--sc-ground-2), var(--sc-ground) 70%);color:var(--sc-on-ground);flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex;overflow:clip}.screen-list{height:auto;min-height:calc(100dvh - env(safe-area-inset-bottom,0px));justify-content:flex-start;margin-bottom:0;padding-top:32px;overflow:visible}.mobile-cache-clear{display:none}@media (max-width:720px){:root{--app-bottom-gap:0px;--device-toolbar-height:0px;--app-canvas-height:calc(100dvh - var(--device-toolbar-height))}.mobile-cache-clear{width:min(100%,360px);padding-bottom:env(safe-area-inset-bottom,0px);text-align:center;gap:6px;margin-top:auto;display:grid}.mobile-cache-clear .btn{width:100%;font-size:var(--font-size-small);padding:8px 12px}.mobile-cache-clear p{font-size:var(--font-size-micro);margin:0}}@media (max-height:480px){:root{--app-bottom-gap:0px;--app-page-pad-y:10px}.screen{gap:10px}.screen:not(.screen-list) .title-pixel{font-size:var(--font-size-display-compact)!important}.screen:not(.screen-list) .panel{padding:16px}}.intro-screen{padding-top:calc(var(--app-page-pad-y) + 56px)}.intro-preparing{background:var(--art-bg-dashboard,url(/game/backgrounds/dashboard/base.webp)) left bottom / cover no-repeat var(--sc-bg)}.student-dashboard-header{width:min(1720px,100%);box-shadow:var(--sc-shadow-1);background:var(--sc-surface);border:none;border:1px solid var(--sc-line);justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.student-dashboard-header h1,.student-dashboard-header h2{margin:0;line-height:1.1}.student-dashboard-header h2{color:var(--sc-accent-ink);font-size:var(--font-size-lead)}.student-dashboard-header .title-pixel{font-size:var(--font-size-display-sm)}.header-kicker{color:var(--sc-dim);font-size:var(--font-size-caption);margin-bottom:4px;line-height:1.2;display:block}.student-dashboard-screen{isolation:isolate;background:var(--sc-ground);height:calc(100dvh - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - env(safe-area-inset-bottom,0px));color:var(--sc-ink);gap:8px;padding-top:clamp(14px,2.4vh,24px);position:relative;overflow:hidden}.student-dashboard-screen .dashboard-scroll{scrollbar-width:none;-ms-overflow-style:none;flex-direction:column;flex:auto;align-self:center;align-items:center;gap:16px;width:90%;max-width:1548px;min-height:0;padding-top:8px;padding-bottom:150px;display:flex;overflow:hidden auto;-webkit-mask-image:linear-gradient(#0000 0,#000 28px calc(100% - 140px),#0000 calc(100% - 24px));mask-image:linear-gradient(#0000 0,#000 28px calc(100% - 140px),#0000 calc(100% - 24px))}.student-dashboard-screen .dashboard-scroll::-webkit-scrollbar{display:none}.student-dashboard-screen:before{content:"";z-index:-1;pointer-events:none;background:var(--art-bg-dashboard,url(/game/backgrounds/dashboard/base.webp)) left bottom / cover no-repeat;position:fixed;inset:0}@media (min-width:1080px){.student-dashboard-screen{align-items:stretch;padding-left:max(420px,60%)}}@media (max-width:1079px){.student-dashboard-screen:before{background:var(--art-bg-dashboard,url(/game/backgrounds/dashboard/base.webp)) center bottom / cover no-repeat}.student-dashboard-screen>.dashboard-ai-warning,.student-dashboard-screen>.student-summary-card{margin-top:44px}.student-dashboard-screen>.dashboard-ai-warning~.student-summary-card{margin-top:0}}.student-dashboard-screen .student-summary-card,.student-dashboard-screen .week-select-panel,.student-dashboard-screen .panel.week-select-panel,.student-dashboard-screen .week-card{background:var(--sc-glass-1-bg);-webkit-backdrop-filter:var(--sc-glass-1-blur);backdrop-filter:var(--sc-glass-1-blur);border:1px solid var(--sc-glass-border);box-shadow:var(--sc-glass-1-shadow), var(--sc-glass-edge)}.ds-icon{vertical-align:-.18em;flex:none;width:18px;height:18px}.lesson-loading{z-index:3000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fbfcfeb8;flex-direction:column;justify-content:center;align-items:center;gap:14px;animation:.2s lesson-loading-in;display:flex;position:fixed;inset:0}@keyframes lesson-loading-in{0%{opacity:0}to{opacity:1}}.lesson-loading-orbit{width:76px;height:76px;animation:1.5s linear infinite lesson-spin;position:relative}@keyframes lesson-spin{to{transform:rotate(360deg)}}.lesson-loading-core{background:var(--sc-accent,#ff7a2f);border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;animation:1.5s ease-in-out infinite lesson-core-pulse;position:absolute;top:50%;left:50%;box-shadow:0 0 18px #ff7a2fb3}@keyframes lesson-core-pulse{0%,to{opacity:.8;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.lesson-loading-dot{border-radius:50%;width:12px;height:12px;margin-left:-6px;position:absolute;top:0;left:50%}.lesson-loading-dot.d1{background:#2d7ff9;transform:rotate(0)translateY(0)}.lesson-loading-dot.d2{transform-origin:6px 38px;background:#e5484d;transform:rotate(120deg)translateY(0)}.lesson-loading-dot.d3{transform-origin:6px 38px;background:#7ee2a8;transform:rotate(240deg)translateY(0)}.lesson-loading-dot.d2,.lesson-loading-dot.d3{top:32px}.lesson-loading-title{color:var(--sc-ink);font-size:1.05rem;font-weight:800}.lesson-loading-sub{color:var(--sc-dim);font-size:var(--font-size-small)}.lesson-loading-bar{background:#1b25361a;border-radius:999px;width:min(240px,60vw);height:5px;margin-top:2px;overflow:hidden}.lesson-loading-bar>span{background:linear-gradient(90deg,#2d7ff9,#ff7a2f);border-radius:999px;width:40%;height:100%;animation:1.15s ease-in-out infinite lesson-bar;display:block}@keyframes lesson-bar{0%{transform:translate(-120%)}to{transform:translate(320%)}}@media (prefers-reduced-motion:reduce){.lesson-loading-orbit,.lesson-loading-core,.lesson-loading-bar>span{animation-duration:0s}}.prof-readonly-banner{color:var(--sc-accent-ink,#ffb280);font-weight:700;font-size:var(--font-size-small);background:#ff7a2f1f;border:1px solid #ff7a2f59;border-radius:10px;align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;display:flex}.prof-readonly-body :is(input,textarea,select,button,[role=button],.canvas-card-grip,.canvas-palette-card,[draggable=true]){opacity:.55;pointer-events:none!important;cursor:default!important}.dashboard-home-btn.dashboard-notice-btn{cursor:pointer;color:var(--sc-ink);background:var(--sc-glass-2-bg);left:66px}.dashboard-notice-btn.has-unseen:after{content:"";background:var(--sc-accent,#ff7a2f);border-radius:50%;width:9px;height:9px;position:absolute;top:7px;right:7px;box-shadow:0 0 6px #ff7a2fcc}.dashboard-home-btn{z-index:5;color:#fff;background:var(--sc-accent,#ff7a2f);width:44px;height:44px;-webkit-backdrop-filter:var(--sc-glass-blur);backdrop-filter:var(--sc-glass-blur);box-shadow:var(--sc-glass-2-shadow);border:none;border-radius:50%;place-items:center;transition:background .15s,transform .15s;display:grid;position:absolute;top:14px;left:14px}.dashboard-home-btn:hover{background:var(--sc-accent-hover);transform:translateY(-1px)}.dashboard-home-btn.dashboard-notice-btn:hover{background:var(--sc-surface)}.dashboard-home-btn .ds-icon{stroke-width:2px;width:22px;height:22px}.dashboard-ai-warning{border-radius:var(--sc-r);width:min(1720px,100%);color:var(--sc-bad);-webkit-backdrop-filter:var(--sc-glass-blur);backdrop-filter:var(--sc-glass-blur);background:#e0483b29;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.dashboard-ai-warning .ds-icon{width:22px;height:22px;margin-top:1px}.dashboard-ai-warning p{margin:0;font-weight:700}.dashboard-ai-warning p.muted{margin-top:4px;font-weight:400}.student-summary-card{flex-direction:column;flex:none;align-self:center;gap:0;width:90%;max-width:1548px;padding:0;display:flex;overflow:hidden}.student-dashboard-screen .student-summary-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none}.summary-top{background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);color:var(--sc-ink);align-items:center;gap:14px;padding:16px 18px;display:flex}.summary-top .summary-id h2{color:var(--sc-ink)}.summary-top .student-info-tags span{color:var(--sc-ink);background:#1b253614}.summary-top .summary-avatar-fallback{color:var(--sc-ink);background:#1b25361a}.summary-bottom{background:var(--sc-glass-1-bg);-webkit-backdrop-filter:var(--sc-glass-1-blur);backdrop-filter:var(--sc-glass-1-blur);flex-direction:column;gap:10px;padding:12px 18px 4px;display:flex}.summary-progress-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.summary-progress-head b{color:var(--sc-accent);font-size:var(--font-size-title);line-height:1}.summary-avatar{object-fit:cover;border-radius:50%;flex:0 0 56px;width:56px;height:56px;box-shadow:0 4px 12px #1b25362e}.summary-avatar-fallback{color:var(--sc-ink);background:#1b25361a;place-items:center;display:grid}.summary-avatar-fallback .ds-icon{width:30px;height:30px}.summary-id{flex:auto;min-width:0}.summary-id h2{color:var(--sc-ink);font-size:var(--font-size-title);margin:0 0 6px;line-height:1.1}.student-info-tags{flex-wrap:wrap;gap:6px;display:flex}.student-info-tags span{min-height:22px;color:var(--sc-dim);font-size:var(--font-size-caption);background:#1b25360f;border:none;border-radius:999px;align-items:center;padding:2px 9px;display:inline-flex}.dashboard-progress-bar{background:#1b253614;border:none;border-radius:999px;flex:none;height:12px;overflow:hidden}.dashboard-progress-bar span{background:linear-gradient(90deg, var(--sc-good), var(--sc-accent));border-radius:999px;height:100%;display:block}.dashboard-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.dashboard-stat-grid div{background:#1b25360d;border:none;border-radius:8px;min-width:0;padding:5px 8px}.dashboard-stat-grid b{color:var(--sc-ink);font-size:var(--font-size-body);margin-top:0;display:block}.student-dashboard-screen .btn{justify-content:center;align-items:center;gap:6px;display:inline-flex}.student-dashboard-screen .status-chip{align-items:center;gap:4px;display:inline-flex}.student-dashboard-screen .status-chip .ds-icon{width:14px;height:14px}.lesson-meta{align-items:center;gap:4px;display:inline-flex}.lesson-meta .ds-icon{width:14px;height:14px}.analytics-collapse{grid-template-rows:0fr;transition:grid-template-rows .32s;display:grid}.analytics-collapse.open{grid-template-rows:1fr}.analytics-collapse-inner{min-height:0;overflow:hidden}.analytics-body{max-height:46vh;overflow-y:auto}.analytics-collapse.open .analytics-body{padding-top:12px}.analytics-more-toggle{cursor:pointer;width:100%;color:var(--sc-dim);font-size:var(--font-size-small);letter-spacing:.3px;background:0 0;border:none;justify-content:center;align-items:center;gap:6px;padding:4px 0 2px;font-weight:600;transition:color .15s;display:flex}.analytics-more-toggle:hover{color:var(--sc-accent)}.more-tri{border-top:6px solid;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;transition:transform .2s}.analytics-more-toggle.is-open .more-tri{transform:rotate(180deg)}.dashboard-stat-badges{flex-wrap:wrap;justify-content:center;gap:6px;width:100%;padding-top:2px;display:flex}.dashboard-stat-badges .stat-badge{background:var(--sc-surface-2,#ffffff14);border:1px solid var(--sc-line,#ffffff24);color:var(--sc-ink);font-size:var(--font-size-small);white-space:nowrap;border-radius:999px;flex:none;padding:3px 11px;line-height:1.3}.dashboard-stat-badges .stat-badge-label{color:var(--sc-dim,#b7c2d6);font-weight:600}.dashboard-stat-badges .stat-badge b{font-weight:800}.student-dashboard-screen.analytics-open .dashboard-scroll{display:none}.student-dashboard-screen.analytics-open .student-summary-card,.student-dashboard-screen.analytics-open .summary-bottom,.student-dashboard-screen.analytics-open .analytics-collapse{flex:auto;min-height:0}.student-dashboard-screen.analytics-open .analytics-collapse-inner{height:100%}.student-dashboard-screen.analytics-open .analytics-body{height:100%;max-height:none}.my-insights{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.insight-chips{flex-wrap:wrap;gap:6px;display:flex}.insight-chip{color:var(--sc-dim);font-size:var(--font-size-caption);background:#1b25360f;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;display:inline-flex}.insight-chip b{color:var(--sc-ink)}.insight-chip em{font-style:normal;font-weight:700}.insight-chip em.up{color:var(--sc-good)}.insight-chip em.down{color:var(--sc-bad)}.insight-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;display:grid}.insight-box{border-radius:var(--sc-r-lg);background:#1b25360d;padding:10px 12px}.insight-box-title{font-size:var(--font-size-caption);color:var(--sc-dim);margin-bottom:6px;display:block}.insight-box-title.good{color:var(--sc-good)}.insight-box-title.warn{color:var(--sc-accent)}.insight-box ul{flex-direction:column;gap:4px;margin:0;padding-left:16px;display:flex}.insight-score{color:var(--sc-dim-2);font-size:var(--font-size-caption)}.insight-week-links{gap:4px;margin-left:6px;display:inline-flex}.insight-week-link{cursor:pointer;color:var(--sc-accent);font-size:var(--font-size-caption);background:#ff7a2f2e;border:none;border-radius:999px;padding:1px 8px;font-weight:700;transition:background .15s,color .15s}.insight-week-link:hover{background:var(--sc-accent);color:#fff}.insight-feedback{border-radius:var(--sc-r-lg);background:#1b25360d;padding:10px 12px}.insight-feedback blockquote{border-left:2px solid var(--sc-accent);color:var(--sc-dim);font-size:var(--font-size-small);margin:6px 0 0;padding:0 0 0 10px;line-height:1.5}.insight-feedback-src{color:var(--sc-accent);margin-right:6px;font-weight:700;display:inline-block}.student-dashboard-screen .student-summary-card,.student-dashboard-screen .panel,.student-dashboard-screen .week-card,.student-dashboard-screen .dashboard-ai-warning{border-radius:var(--sc-r-lg)}.student-dashboard-screen .dashboard-stat-grid div,.student-dashboard-screen .lesson-row{border-radius:8px}.student-dashboard-screen .week-select-panel,.student-dashboard-screen .panel.week-select-panel{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border:none;width:100%;max-width:100%;padding:0}.student-dashboard-screen .week-card{background:var(--sc-glass-1-bg);-webkit-backdrop-filter:var(--sc-glass-1-blur);backdrop-filter:var(--sc-glass-1-blur);box-shadow:var(--sc-glass-1-shadow), var(--sc-glass-edge);min-height:0}.student-dashboard-screen .week-card-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.student-dashboard-screen .week-card-top h3{min-width:0;color:var(--sc-accent);margin:0}.student-dashboard-screen .week-outcomes{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;gap:6px;max-width:56%;display:flex}.student-dashboard-screen .week-outcomes .tag{color:#143a7a;border-radius:999px;padding:2px 10px}.student-dashboard-screen .lesson-row{background:0 0}.btn.is-loading,.btn.is-loading:disabled{background:var(--sc-accent);color:#fff;opacity:1}.week-select-panel{width:100%;max-width:min(1720px,100%);padding:14px}.panel.week-select-panel{max-width:min(1720px,100%)}.week-grid{grid-template-columns:1fr;gap:18px;display:grid}.week-card{flex-direction:column;min-height:210px;margin-bottom:0;padding:18px;display:flex}.week-card h3{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;line-height:1.35;display:flex}.week-card .meta{margin-bottom:8px}.week-card p{margin-bottom:10px}.week-action{flex-wrap:wrap;gap:8px;margin-top:4px;padding-top:0;display:flex}.week-action .btn{padding:9px 14px}.lesson-list{flex-direction:column;gap:12px;width:100%;margin-top:4px;display:flex}.lesson-row{background:var(--sc-surface-2);border:none;flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px;display:flex}.lesson-info{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.student-dashboard-screen .lesson-info .lesson-done-chip{border-radius:999px;margin-left:auto;padding:2px 12px}.lesson-name{word-break:keep-all;overflow-wrap:anywhere;font-weight:700}.lesson-actions{gap:8px;display:flex}.lesson-row.locked{opacity:.55}.lesson-meta{font-size:var(--font-size-small);color:var(--sc-dim);white-space:nowrap}.lesson-timeline{flex:100%;margin-top:2px}.lesson-timeline--row{align-items:center;gap:8px;display:flex}.lesson-timeline--row .lt-bar{flex:auto;min-width:0}.lesson-timeline--row .lt-check{color:var(--sc-good);flex:none;display:inline-flex}.lesson-timeline--row .lt-check svg{width:18px;height:18px}.week-timeline-full{flex:100%;width:100%;margin-top:4px}.lesson-timeline--redo{align-items:center;gap:8px;display:flex}.lesson-timeline--redo .redo-tag{font-size:var(--font-size-caption);color:var(--sc-dim);border:1px solid var(--sc-line-2);border-radius:999px;flex:none;padding:1px 7px}.lesson-timeline--redo .redo-bar{flex:auto;min-width:0}.lesson-timeline--redo .redo-check{color:var(--sc-good);flex:none;display:inline-flex}.lesson-timeline--redo .redo-check svg{width:18px;height:18px}.dashboard-legend{font-size:var(--font-size-caption);color:var(--sc-dim);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:12px;display:flex}.lesson-progress{background:var(--sc-line);border-radius:3px;flex:100%;height:6px;display:block;overflow:hidden}.lesson-progress-fill{background:var(--sc-accent);border-radius:3px;height:100%;transition:width .4s;display:block}.lesson-actions .btn{font-size:var(--font-size-small);white-space:nowrap;flex:auto;padding:6px 16px}.admin-screen{flex-direction:column;align-items:stretch;height:100dvh;min-height:0;margin-bottom:0;padding:0;display:flex;position:relative;overflow:hidden}.admin-screen>.admin-inner{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.admin-screen{background:var(--sc-ground);color:var(--sc-on-ground);isolation:isolate}.admin-screen:before{content:"";z-index:-1;pointer-events:none;background:var(--art-bg-library,url(/game/backgrounds/library/base.webp)) center / cover no-repeat;position:fixed;inset:0}.admin-screen .pixel-frame,.admin-screen .panel{background:var(--sc-glass-1-bg);-webkit-backdrop-filter:var(--sc-glass-1-blur);backdrop-filter:var(--sc-glass-1-blur);border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-1-shadow), var(--sc-glass-edge);border:none}.admin-screen input,.admin-screen textarea,.admin-screen select,.admin-screen .input{color:var(--sc-ink);background:#ffffffb8;border:none;border-radius:8px;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #1b25360f}.admin-screen input:focus,.admin-screen textarea:focus,.admin-screen select:focus,.admin-screen .input:focus{background:#ffffffeb;outline:none;box-shadow:inset 0 1px #ffffffe6,0 0 0 2px #ff7a2f59}.admin-screen input::placeholder,.admin-screen textarea::placeholder{color:var(--sc-dim)}.admin-screen select option{background:var(--sc-surface);color:var(--sc-ink)}.admin-screen .table th{color:var(--sc-dim);border-color:var(--sc-line)}.admin-screen .table td{border-color:var(--sc-line)}.admin-screen a{color:var(--sc-accent-ink)}.admin-screen .title-pixel{text-align:left}.admin-screen .panel{max-width:none}.title-pixel{font-size:var(--font-size-display);color:var(--sc-accent-ink);text-shadow:none;letter-spacing:2px;text-align:center;margin:0}.subtitle{color:var(--sc-dim);text-align:center;margin:0}.home-logo{width:512px;max-width:70vw;height:auto;margin:0 auto -52px;display:block}.home-logo+.title-pixel{margin-top:0;line-height:1}@media (max-width:760px){.home-logo{width:280px;max-width:80vw;margin-bottom:-26px}}.app-viewport-shell.view-mobile .home-logo{width:280px;max-width:80vw;margin-bottom:-26px}.home-screen{justify-content:center;gap:26px;position:relative}.home-title{background:var(--art-ui-title,url(/game/ui/title/main-title.webp)) center / cover no-repeat;height:100dvh;min-height:100dvh;margin-bottom:0;padding:0;position:relative;overflow:hidden}.home-title .title-slides{z-index:0;pointer-events:none;position:absolute;inset:0}.home-title .title-slide{opacity:0;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:opacity 1.4s;position:absolute;inset:0}.home-title .title-slide.on{opacity:1}@media (prefers-reduced-motion:reduce){.home-title .title-slide{transition-duration:0s}}.home-logo-img{z-index:2;filter:drop-shadow(0 5px 10px #1b25368c)drop-shadow(0 1px 2px #1b253659);width:clamp(300px,44vw,460px);height:auto;position:absolute;top:clamp(14px,3.5vh,38px);left:clamp(14px,3vw,40px)}.home-menu-dock{z-index:2;background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);border-radius:var(--sc-r-xl);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);border:none;flex-direction:column;align-items:center;gap:10px;padding:20px 22px 18px;display:flex;position:absolute;bottom:clamp(28px,7vh,58px);left:50%;transform:translate(-50%)}.home-title .home-menu{width:min(300px,80vw)}.app-credit{z-index:80;pointer-events:none;color:#ffffffe6;font-size:var(--font-size-caption);letter-spacing:.3px;text-shadow:0 1px 4px #000000bf,0 0 10px #0006;position:fixed;bottom:clamp(10px,1.8vh,18px);right:clamp(12px,2vw,22px)}.home-menu{flex-direction:column;align-items:stretch;gap:9px;width:min(300px,82vw);display:flex}.home-menu-item{font-size:var(--font-size-body);justify-content:center;padding:11px 18px}.home-title .home-menu-item,.home-title .home-menu-logout{font-size:var(--font-size-body);padding:9px 18px;font-weight:700}.home-title .home-menu-logout{opacity:1;align-self:center;padding:6px 18px}.home-menu-logout{opacity:.72;align-self:center;margin-top:8px;padding:6px 18px}.home-menu-rest{flex-direction:column;align-items:stretch;gap:9px;display:flex;overflow:visible}.home-menu--converging,.home-menu--converging .home-menu-rest{transition:gap .22s}.home-menu--converging .home-menu-item,.home-menu--converging .home-menu-logout{will-change:transform, opacity, max-height;max-height:120px;transition:transform .24s cubic-bezier(.4,0,.2,1),opacity .19s,max-height .23s,margin .22s,padding .22s,border-width .19s;overflow:hidden}.home-menu--converging.is-exiting,.home-menu--converging.is-exiting .home-menu-rest{gap:0}.home-menu--converging.is-exiting .home-menu-item:not(.is-selected),.home-menu--converging.is-exiting .home-menu-logout:not(.is-selected){transform:translateY(var(--conv-dy,0px)) scale(.9);opacity:0;pointer-events:none;border-width:0;max-height:0;margin:0;padding-top:0;padding-bottom:0}.home-menu--converging .home-menu-item.is-selected{z-index:3;cursor:default}.home-demo-row{gap:6px;display:flex}.title-demo-input{border:1px solid var(--sc-line);background:var(--sc-surface-2);min-width:0;color:var(--sc-ink);font-size:var(--font-size-body);border-radius:4px;flex:1;padding:9px 12px}.title-auth-error{color:var(--sc-bad);text-align:center;margin:4px 0 0}.manage-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:18px;display:flex}.admin-screen .manage-header{z-index:30;background:var(--sc-glass-2-bg);width:100%;-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);box-shadow:var(--sc-glass-1-shadow);border-bottom:none;flex:none;margin:0;padding:12px 24px}.manage-home-btn{background:var(--sc-accent);color:#fff;box-shadow:var(--sc-glass-2-shadow);flex:none;position:static}.manage-home-btn:hover{background:var(--sc-accent-hover);transform:translateY(-1px)}.manage-body{flex:1;align-items:stretch;gap:22px;width:100%;min-width:0;min-height:0;padding:18px 24px 16px;display:flex;overflow:hidden}.manage-content{min-width:0;min-height:0;padding-left:16px;padding-right:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));flex:1;overflow:hidden auto}.settings-page{width:100%;max-width:none}.pc-recommend-banner{z-index:25;background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);color:var(--sc-dim);font-size:var(--font-size-caption);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border:none;border-radius:999px;align-items:center;gap:6px;max-width:94vw;padding:6px 14px;display:none;position:fixed;bottom:10px;left:50%;overflow:hidden;transform:translate(-50%)}.manage-bottom-fade{pointer-events:none;z-index:20;background:0 0;height:56px;display:none;position:absolute;bottom:0;left:0;right:0}.manage-sidebar{background:var(--sc-glass-1-bg);border-radius:var(--sc-r-lg);width:200px;height:100%;-webkit-backdrop-filter:var(--sc-glass-1-blur);backdrop-filter:var(--sc-glass-1-blur);box-shadow:var(--sc-glass-1-shadow), var(--sc-glass-edge);border:none;flex-direction:column;flex:none;align-self:stretch;padding:8px;transition:width .25s;display:flex;overflow:hidden auto}.manage-sidebar.is-collapsed{width:60px}.manage-sidebar.is-collapsed .side-label{display:none}.manage-side-fold{width:28px;height:28px;color:var(--sc-dim);cursor:pointer;font-size:var(--font-size-small);background:#1b25360f;border:none;border-radius:8px;align-self:flex-end;margin:2px 2px 6px;line-height:1}.manage-side-fold:hover{background:var(--sc-accent);color:#fff}.manage-side-nav{flex-direction:column;gap:2px;display:flex}.manage-side-link{color:var(--sc-ink);font-size:var(--font-size-small);white-space:nowrap;border-radius:10px;align-items:center;gap:10px;padding:9px 11px;text-decoration:none;transition:background .15s,color .15s;display:flex}.manage-side-link:hover{background:var(--sc-accent-soft);color:var(--sc-accent-ink)}.manage-side-link.on{background:var(--sc-accent);color:#fff;font-weight:700}.manage-side-sep{background:var(--sc-line);height:1px;margin:8px 6px;display:block}.manage-hamburger{padding:6px 11px;display:none}.manage-side-dim{display:none}@media (max-width:760px){.manage-hamburger{display:inline-flex}.manage-side-dim{z-index:55;background:#1b253652;display:block;position:fixed;inset:0}.manage-sidebar{z-index:60;border-radius:0 var(--sc-r-xl) var(--sc-r-xl) 0;background:var(--sc-glass-3-bg);width:230px;max-height:none;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%)}.manage-sidebar.is-open{transform:none}.manage-sidebar .manage-side-fold{display:none}}.device-preview-card{background:var(--sc-surface);border:1px solid var(--sc-line-2)}.device-preview-card .role-switch-trigger:hover{background:var(--sc-surface-2)}.device-preview-card.is-open .role-switch-body{max-width:420px}.device-preview-card .role-switch-opt{align-items:center;gap:5px;display:inline-flex}.manage-header-left{align-items:center;gap:10px;min-width:0;display:flex}.manage-title{font-size:var(--font-size-title);white-space:nowrap;margin:0}.manage-user{align-items:center;gap:8px;display:flex}.manage-avatar{object-fit:cover;border:1px solid var(--sc-line);border-radius:50%;flex:none;width:34px;height:34px}.manage-avatar-fallback{background:var(--sc-accent-soft);color:var(--sc-accent-ink);font-weight:700;font-size:var(--font-size-body);place-items:center;display:grid}.manage-user-name{color:var(--sc-dim);font-size:var(--font-size-small);text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.manage-logout{opacity:.78;padding:4px 12px}@media (max-width:760px){.manage-title{font-size:var(--font-size-display-sm)}.manage-user-name{display:none}}.panel{width:100%;max-width:720px;padding:26px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--sc-accent-ink);font-size:var(--font-size-label)}.input,select,textarea{background:var(--sc-surface);color:var(--sc-ink);border:1px solid var(--sc-line-2);border-radius:var(--sc-r);box-shadow:none;font-family:inherit;font-size:var(--font-size-body);width:100%;padding:10px 12px}.input:focus,textarea:focus{border-color:var(--sc-accent);outline:none;box-shadow:0 0 0 3px #ff7a2f38}.row{flex-wrap:wrap;gap:12px;display:flex}.app-modal-scrim{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1b253652;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.app-modal{background:var(--sc-glass-3-bg);width:min(520px,100%);-webkit-backdrop-filter:var(--sc-glass-3-blur);backdrop-filter:var(--sc-glass-3-blur);border-radius:var(--sc-r-xl);box-shadow:var(--sc-glass-3-shadow), var(--sc-glass-edge);color:var(--sc-ink);border:none;padding:18px 20px 20px}.app-modal-head{color:var(--sc-accent-ink);font-size:var(--font-size-lead);align-items:center;gap:10px;margin-bottom:12px;display:flex}.app-modal-x{border:1px solid var(--sc-line-2);width:28px;height:28px;color:var(--sc-accent-ink);font-size:var(--font-size-body);cursor:pointer;background:0 0;flex-shrink:0;line-height:1}.app-modal-x:hover{background:var(--sc-surface-2);border-color:var(--sc-ink)}.app-modal-icon{background:var(--sc-accent);width:28px;height:28px;color:var(--sc-on-accent);box-shadow:none;border:none;justify-content:center;align-items:center;display:inline-flex}.app-modal p{color:var(--sc-ink);margin:0;line-height:1.7}.app-modal-body{color:var(--sc-ink);line-height:1.7}.app-modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.app-toast{left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));z-index:120;border-radius:var(--sc-r-lg);max-width:min(560px,100vw - 32px);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);color:var(--sc-ink);cursor:pointer;border:none;align-items:center;gap:10px;padding:12px 16px;line-height:1.55;animation:.18s ease-out app-toast-in;display:inline-flex;position:fixed;transform:translate(-50%)}.app-toast--tr{left:auto;right:14px;top:calc(14px + env(safe-area-inset-top,0px));z-index:2650;animation:.22s toast-tr-in;bottom:auto;transform:none}@keyframes toast-tr-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.app-toast.warn .app-toast-icon{background:var(--sc-warn);color:#fff}.app-toast-icon{background:var(--sc-accent);width:24px;height:24px;color:var(--sc-on-accent);border:none;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.app-toast.error .app-toast-icon{background:var(--sc-bad);color:#fff}.app-toast.success .app-toast-icon{background:var(--sc-good)}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width:720px){.app-toast{bottom:calc(16px + env(safe-area-inset-bottom,0px));font-size:var(--font-size-small)}}.tag{background:var(--soc-soft);color:var(--soc-ink);font-size:var(--font-size-caption);border:none;margin:2px;padding:2px 8px;display:inline-block}.admin-screen .tag{color:var(--sc-dim);background:#1b25360f;border:none;border-radius:999px;padding:2px 10px}.card{text-align:left;width:100%;margin-bottom:12px}.card h3{color:var(--sc-accent-ink);margin:0 0 4px}.card .meta{color:var(--sc-dim);font-size:var(--font-size-small);margin-bottom:8px}.card.done{box-shadow:0 0 0 2px var(--sc-good)}.center{text-align:center}.muted{color:var(--sc-dim)}.small{font-size:var(--font-size-small)}.role-switch{z-index:9000;position:fixed;top:10px;right:10px}.role-switch.inline{z-index:auto;display:inline-block;position:relative;top:auto;right:auto}.home-top-controls{z-index:9000;justify-content:flex-end;align-items:flex-start;gap:8px;display:flex;position:fixed;top:10px;right:10px}.role-switch-card{background:var(--sc-glass-bg);-webkit-backdrop-filter:blur(12px)saturate(140%);backdrop-filter:blur(12px)saturate(140%);border-radius:var(--sc-r);min-width:0;box-shadow:var(--sc-shadow-1);transform-origin:100%;border:none;align-items:center;transition:box-shadow .24s;display:flex;overflow:hidden}.role-switch-card.is-open{box-shadow:var(--sc-shadow-2)}.role-switch-trigger{cursor:pointer;font-family:inherit;font-size:var(--font-size-small);color:var(--sc-ink);white-space:nowrap;background:0 0;border:none;flex:none;align-items:center;gap:7px;padding:11px 15px;font-weight:700;display:flex}.scene-test .role-switch-card{background:var(--sc-surface);border:1px solid var(--sc-line-2)}.scene-test .role-switch-trigger:hover{background:var(--sc-surface-2)}.scene-test-exit{font-size:var(--font-size-small);border-color:var(--sc-accent);color:var(--sc-accent-ink,#ffb280);white-space:nowrap;padding:11px 15px;font-weight:700}.role-switch-opt.scene-test-end{color:var(--sc-accent-ink,#ffb280);font-weight:800}.role-switch-ic{width:17px;height:17px;color:var(--sc-dim);flex:none}.role-switch-chevron{color:var(--sc-dim);transition:transform .24s}.role-switch-card.is-open .role-switch-chevron{transform:rotate(90deg)}.role-switch-body{opacity:0;white-space:nowrap;max-width:0;padding:0;transition:max-width .26s,opacity .2s,padding .26s;overflow:hidden}.role-switch-card.is-open .role-switch-body{opacity:1;max-width:340px;padding-left:10px}.role-switch-opts{gap:6px;display:flex}.role-switch-opt{cursor:pointer;font-family:inherit;font-size:var(--font-size-small);white-space:nowrap;background:var(--sc-surface-2);border:1px solid var(--sc-line-2);color:var(--sc-ink);border-radius:8px;padding:6px 12px;transition:border-color .15s,background .15s,transform .1s}.role-switch-opt:hover:not(:disabled){border-color:var(--sc-ink)}.role-switch-opt:active:not(:disabled){transform:translateY(1px)}.role-switch-opt.is-active{background:var(--sc-accent);border-color:var(--sc-accent);color:#fff;cursor:default}.role-switch:not(.inline) .role-switch-card{border-radius:999px;padding:0 3px}.role-switch:not(.inline) .role-switch-trigger{border-radius:999px;padding:9px 15px}.role-switch:not(.inline) .role-switch-opts{gap:5px;padding-left:4px}.role-switch:not(.inline) .role-switch-opt{font-size:var(--font-size-caption);border-radius:999px;padding:4px 11px}@media (prefers-reduced-motion:reduce){.role-switch-card,.role-switch-body,.role-switch-chevron{transition:none}}.role-switch.scene-test .role-switch-card.is-open .role-switch-body{max-width:460px}.lang-switch{z-index:60;position:absolute;top:14px;right:14px}.lang-switch-btn{height:40px;color:var(--sc-ink);background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);font-family:inherit;font-size:var(--font-size-small);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-weight:700;display:inline-flex}.lang-switch-btn svg{width:18px;height:18px}.lang-switch-btn:hover{background:var(--sc-surface)}.lang-switch-menu{border-radius:var(--sc-r-lg);background:var(--sc-glass-3-bg);min-width:132px;-webkit-backdrop-filter:var(--sc-glass-3-blur);backdrop-filter:var(--sc-glass-3-blur);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);border:none;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:46px;right:0}.lang-switch-opt{color:var(--sc-ink);font-family:inherit;font-size:var(--font-size-small);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-weight:600}.lang-switch-opt:hover{background:#00000012}.lang-switch-opt.on{color:var(--sc-accent,#ff7a2f);font-weight:800}.lang-switch--inline{z-index:300;position:relative;top:auto;right:auto}.lang-switch--inline .lang-switch-btn{height:auto;font-size:var(--font-size-small);box-shadow:none;padding:4px 10px}.lang-switch--inline .lang-switch-btn svg{width:15px;height:15px}.lang-switch-menu--portal{z-index:99995;position:fixed}.report-summary-btns{justify-content:center;gap:8px;margin-top:10px;display:flex}.report-btn{font-size:var(--font-size-small);padding:6px 14px}.report-btn:disabled{opacity:.55;cursor:not-allowed}.week-report-btn{align-self:flex-start;margin-top:8px}.report-overlay{z-index:9400;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#080c148c;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.report-modal{flex-direction:column;width:min(760px,96vw);max-height:86dvh;padding:0;display:flex;overflow:hidden}.report-modal-head{border-bottom:1px solid var(--sc-line);font-size:var(--font-size-body);justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.report-close{padding:3px 10px;line-height:1}.report-modal-body{scrollbar-width:thin;flex:1;min-height:120px;padding:16px 22px 20px;overflow-y:auto}.report-generating,.report-error{text-align:center;color:var(--sc-dim);margin:24px 0}.report-error{color:#e5484d}.report-md h2{margin:4px 0 12px;font-size:1.15em}.report-md h3{border-bottom:1px solid var(--sc-line);margin:18px 0 8px;padding-bottom:4px;font-size:1.02em}.report-md h4{margin:14px 0 6px;font-size:.96em}.report-md p{margin:0 0 10px;line-height:1.75}.report-md ul{margin:0 0 10px;padding-left:20px}.report-md li{margin:4px 0;line-height:1.7}.report-modal-foot{border-top:1px solid var(--sc-line);justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;display:flex}.report-meta{font-size:var(--font-size-caption);color:var(--sc-dim)}.badge-cele-overlay{z-index:9450;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#080c14a8;justify-content:center;align-items:center;animation:.25s badge-fade-in;display:flex;position:fixed;inset:0}@keyframes badge-fade-in{0%{opacity:0}to{opacity:1}}.badge-cele{text-align:center;color:#fff;flex-direction:column;align-items:center;gap:6px;padding:40px 52px 30px;display:flex;position:relative}.badge-cele-stage{place-items:center;width:130px;height:130px;margin:6px 0 2px;display:grid;position:relative}.badge-cele-rays-img{object-fit:contain;opacity:0;pointer-events:none;width:460px;height:460px;animation:.5s .1s forwards badge-rays-in,14s linear infinite badge-rays-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes badge-rays-in{to{opacity:.85}}@keyframes badge-rays-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}.badge-cele-glow{object-fit:contain;opacity:0;pointer-events:none;width:260px;height:260px;animation:.85s cubic-bezier(.22,1,.36,1) .35s forwards badge-glow-burst;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.35)}@keyframes badge-glow-burst{0%{opacity:.9;transform:translate(-50%,-50%)scale(.35)}to{opacity:0;transform:translate(-50%,-50%)scale(1.7)}}.badge-cele-sparkle{pointer-events:none;mix-blend-mode:screen;opacity:.95;background-image:url(/game/badges/fx/sparkle-sheet.webp);background-position:0 0;background-repeat:no-repeat;background-size:1024px 128px;width:128px;height:128px;animation:.72s steps(8,end) .45s infinite badge-sparkle-frames;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes badge-sparkle-frames{0%{background-position:0 0}to{background-position:-1024px 0}}.badge-cele-confetti{object-fit:contain;opacity:0;pointer-events:none;width:min(560px,90vw);height:auto;animation:1.15s cubic-bezier(.16,1,.3,1) .3s forwards badge-confetti-burst;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.15)}@keyframes badge-confetti-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}15%{opacity:1}70%{opacity:1}to{opacity:0;transform:translate(-50%,-62%)scale(1.5)}}.badge-cele-medal{width:130px;height:auto;filter:drop-shadow(0 0 18px color-mix(in srgb, var(--badge-c,#ff7a2f) 65%, transparent));animation:.55s cubic-bezier(.34,1.56,.64,1) badge-pop}.badge-cele-medal--imgwrap{border:3px solid color-mix(in srgb, var(--badge-c,#ff7a2f) 72%, #fff 6%);background:#ffffff0f;border-radius:50%;width:130px;height:130px;display:block;overflow:hidden}.badge-cele-medal-inner{object-fit:cover;object-position:center;width:100%;height:100%;transform:scale(1.6)}@keyframes badge-pop{0%{opacity:0;transform:scale(.2)rotate(-14deg)}70%{transform:scale(1.12)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.badge-cele-kicker{font-size:var(--font-size-small);letter-spacing:.24em;color:var(--badge-c,#ff7a2f);text-transform:uppercase;z-index:3;margin:10px 0 0;font-weight:800;position:relative}.badge-cele-title{z-index:3;margin:0;font-size:1.5em;font-weight:800;position:relative}.badge-cele-desc{color:#ffffffd9;z-index:3;max-width:380px;margin:2px 0 0;line-height:1.6;position:relative}.badge-cele-count{font-size:var(--font-size-caption);color:#ffffffa6;z-index:3;margin:4px 0 0;position:relative}.badge-cele-confirm{z-index:3;opacity:0;margin-top:16px;padding:9px 34px;animation:.4s 1.1s forwards badge-confirm-in;position:relative}@keyframes badge-confirm-in{to{opacity:1}}@media (prefers-reduced-motion:reduce){.badge-cele-medal{animation:none}.badge-cele-rays-img{opacity:.7;animation:.3s forwards badge-rays-in}.badge-cele-glow,.badge-cele-sparkle{opacity:0;animation:none}.badge-cele-confetti{opacity:.85;animation:none;transform:translate(-50%,-50%)scale(1)}.badge-cele-confirm{opacity:1;animation:none}}.earned-badges-row{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px;display:flex}.earned-badge-chip{border:1px solid color-mix(in srgb, var(--badge-c,#ff7a2f) 55%, transparent);background:color-mix(in srgb, var(--badge-c,#ff7a2f) 14%, transparent);font-size:var(--font-size-caption);border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-weight:700;display:inline-flex}.earned-badge-chip .badge-dot{background:var(--badge-c,#ff7a2f);border-radius:50%;width:8px;height:8px}.summary-badge-rail{color:inherit;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;align-items:center;gap:4px;margin-left:auto;padding:6px 10px;font-family:inherit;display:flex}.summary-badge-rail:hover{background:#ffffff38}.rail-medal{object-fit:contain;width:26px;height:32px}img.rail-medal{border-radius:50%;width:30px;height:30px}.rail-count{font-size:var(--font-size-caption);white-space:nowrap;margin-left:2px;font-weight:800}.badge-collection-body{padding-top:0}.badge-tabs{z-index:5;background:0 0;border-bottom:none;gap:6px;padding:12px 0 10px;display:flex;position:sticky;top:0}.badge-tab{color:var(--sc-ink);font-family:inherit;font-size:var(--font-size-small);cursor:pointer;background:#ffffffb8;border:none;border-radius:999px;padding:5px 14px;font-weight:700;box-shadow:inset 0 1px #ffffffe6,0 1px 2px #1b25360f}.badge-tab:hover{background:#ffffffe6}.badge-tab.on{background:var(--sc-accent);color:#fff;box-shadow:none}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:14px;padding:16px 2px 6px;display:grid}.badge-item{text-align:center;border:1px solid var(--sc-line);background:var(--sc-surface-2);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px 10px;display:flex}.badge-item-art{object-fit:contain;width:64px;height:80px}img.badge-item-art{object-fit:contain;filter:drop-shadow(0 4px 8px #1b25362e);border:none;border-radius:0;width:78px;height:78px}.badge-item-art.locked{filter:grayscale()brightness(.72)opacity(.5)}.badge-item.earned{border-color:color-mix(in srgb, var(--sc-accent) 45%, transparent)}.badge-item-title{font-size:var(--font-size-small)}.badge-item:not(.earned) .badge-item-title{color:var(--sc-dim)}.badge-item-sub{font-size:var(--font-size-caption);color:var(--sc-dim-2,var(--sc-dim));-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.badge-admin-row{border-bottom:1px solid var(--sc-line);grid-template-columns:44px minmax(120px,1fr) minmax(160px,1.4fr) 110px 70px 130px 64px 60px;align-items:center;gap:8px;padding:8px 0;display:grid}.badge-admin-row--v2{grid-template-columns:40px 76px minmax(110px,.9fr) minmax(140px,1.2fr) minmax(150px,1fr) 58px 76px 52px minmax(140px,1fr) 42px 56px}.badge-img-cell{border-radius:8px;place-items:center;width:36px;height:36px;display:grid;overflow:hidden}.badge-img-cell img{object-fit:cover;border:1px solid var(--sc-line);background:var(--sc-surface-2);border-radius:8px;width:36px;height:36px}.badge-img-cell input[type=color]{cursor:pointer;background:0 0;border:none;block-size:44px;inline-size:44px;padding:0}.badge-admin-panel{flex-direction:column;min-height:0;max-height:calc(100dvh - 160px);display:flex}.badge-admin-list{scrollbar-width:thin;scrollbar-gutter:stable;flex:1;min-height:0;overflow-y:auto}.badge-admin-actions{border-top:1px solid var(--sc-line);align-items:center;gap:8px;padding-top:12px;display:flex}.badge-admin-row input:not([type=color]):not([type=checkbox]),.badge-admin-row select{box-sizing:border-box;width:100%;min-width:0;height:30px;font-family:inherit;font-size:var(--font-size-small);color:inherit;background:var(--sc-surface-2);border:1px solid var(--sc-line);border-radius:var(--sc-r);padding:0 8px}.badge-admin-row input[type=checkbox]{justify-self:center;width:16px;height:16px}.badge-admin-row .btn,.badge-admin-actions .btn{font-size:var(--font-size-small);white-space:nowrap;padding:5px 12px;line-height:1.2}.badge-admin-head{font-size:var(--font-size-caption);color:var(--sc-dim);font-weight:700}.content-source-bar{z-index:5;border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-edge);background:#ffffff80;border-bottom:none;margin-bottom:10px;padding:8px 12px 10px;position:sticky;top:0}.content-source-bar .btn{font-size:var(--font-size-small);padding:4px 10px;line-height:1.3}.content-source-bar .btn b,.content-source-bar .btn .count{font-size:var(--font-size-caption)}.progress-layout{align-items:flex-start;gap:16px;width:100%;display:flex}.progress-list{flex-direction:column;flex:none;gap:10px;width:280px;max-height:calc(100vh - 140px);display:flex}.progress-list-tools{gap:6px;display:grid}.progress-list-scroll{gap:4px;min-height:0;display:grid;overflow-y:auto}.progress-item{text-align:left;border:1px solid var(--line-subtle);color:inherit;cursor:pointer;background:0 0;border-radius:8px;gap:2px;padding:9px 12px;font-family:inherit;display:grid}.progress-item:hover{background:#ffffff0d}.progress-item.on{border-color:color-mix(in srgb, var(--sc-accent,#ff7a2f) 60%, transparent);background:color-mix(in srgb, var(--sc-accent,#ff7a2f) 10%, transparent)}.progress-item-name{font-size:var(--font-size-small)}.progress-item-sub{font-size:var(--font-size-caption);color:var(--muted)}.progress-main{flex:1;min-width:0}.progress-empty{text-align:center;place-items:center;gap:8px;padding:60px 20px;display:grid}.progress-stats{font-size:var(--font-size-small);color:var(--muted);flex-wrap:wrap;gap:14px;display:flex}.progress-stats b{color:inherit}.progress-report{border-top:1px solid var(--line-subtle);padding-top:10px}.prof-comment-input{resize:vertical;width:100%;min-height:90px}@media (max-width:860px){.progress-layout{flex-direction:column}.progress-list{width:100%;max-height:320px}}.home-top-controls .role-switch-trigger,.home-top-controls .role-switch-opt,.home-top-controls .role-switch-chevron,.home-top-controls .role-switch-ic{color:#1b2536}.tier-badge{border:1px solid var(--sc-line,#0000001f);background:var(--sc-surface,#fff);border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 6px;display:inline-flex}.tier-badge--compact{gap:6px;padding:2px 8px 2px 4px}.tier-badge--gm{box-shadow:0 0 0 2px color-mix(in srgb, var(--tier-c) 35%, transparent), 0 0 14px color-mix(in srgb, var(--tier-c) 35%, transparent)}.tier-badge-text{flex-direction:column;gap:2px;line-height:1.1;display:flex}.tier-badge-name{color:var(--tier-c);letter-spacing:.02em;font-size:13px;font-weight:700}.tier-badge-gauge{background:color-mix(in srgb, var(--tier-c) 18%, transparent);border-radius:999px;width:84px;height:5px;display:block;overflow:hidden}.tier-badge-gauge-fill{border-radius:inherit;background:var(--tier-c);height:100%;transition:width .6s;display:block}.tier-badge-hint{font-size:10.5px}.tier-cele-overlay{z-index:1200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0c129e;place-items:center;animation:.25s tier-fade-in;display:grid;position:fixed;inset:0}.tier-cele{background:var(--sc-surface,#fff);border:1px solid var(--sc-line,#0000001a);text-align:center;border-radius:20px;width:min(480px,92vw);padding:28px 24px 22px;animation:.45s cubic-bezier(.2,.9,.3,1.2) tier-pop;position:relative;box-shadow:0 24px 60px #00000059}.tier-cele-stage{place-items:center;height:170px;display:grid;position:relative;overflow:visible}.tier-cele-from{opacity:0;animation:.9s forwards tier-from-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tier-cele-to{opacity:0;filter:drop-shadow(0 6px 18px color-mix(in srgb, var(--tier-c) 45%, transparent));animation:.7s cubic-bezier(.2,.9,.3,1.25) .35s forwards tier-to-in;display:block;position:relative;transform:scale(.4)}.tier-cele--top .tier-cele-to{animation-duration:1s;animation-delay:.5s}.tier-cele--down .tier-cele-to{animation-timing-function:ease}.tier-cele-kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--tier-c);margin:6px 0 0;font-size:13px;font-weight:700}.tier-cele--down .tier-cele-kicker{color:color-mix(in srgb, var(--sc-ink) 68%, transparent)}.tier-cele-title{justify-content:center;align-items:baseline;gap:10px;margin:4px 0 6px;font-size:26px;display:flex}.tier-cele-fromname{color:var(--tier-from);opacity:.55;font-size:18px;font-weight:600}.tier-cele-arrow{color:color-mix(in srgb, var(--sc-ink) 45%, transparent)}.tier-cele-toname{color:var(--tier-c);font-weight:800}.tier-cele--top .tier-cele-toname{text-shadow:0 0 18px color-mix(in srgb, var(--tier-c) 55%, transparent)}.tier-cele-desc{color:color-mix(in srgb, var(--sc-ink) 68%, transparent);margin:0 0 16px;font-size:14px}.tier-cele-confirm{min-width:140px}.tier-cele-stage .badge-cele-rays-img,.tier-cele-stage .badge-cele-glow,.tier-cele-stage .badge-cele-confetti{pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tier-cele-stage .badge-cele-rays-img{opacity:0;width:340px;animation:.5s .1s forwards badge-rays-in,14s linear infinite badge-rays-spin}.tier-cele-stage .badge-cele-glow{opacity:.8;width:260px}.tier-cele-stage .badge-cele-confetti{opacity:.9;width:320px}@keyframes tier-fade-in{0%{opacity:0}}@keyframes tier-pop{0%{opacity:0;transform:translateY(14px)scale(.96)}}@keyframes tier-from-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-140%)scale(.6)}}@keyframes tier-to-in{to{opacity:1;transform:scale(1)}}.student-dashboard-screen .lang-switch{left:66px;right:auto}.student-dashboard-screen:has(.dashboard-notice-btn) .lang-switch{left:118px}.student-dashboard-screen .lang-switch-btn{height:44px}.lang-switch--expand .lang-switch-btn{transition:padding .18s}.lang-switch--expand.open .lang-switch-btn{padding-right:6px}.lang-switch-row{align-items:center;gap:2px;display:inline-flex}.lang-switch-btn--open{cursor:default}.lang-switch-chip{color:var(--sc-ink-2,var(--sc-ink));cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 9px;font-family:inherit;font-size:12px;font-weight:700;line-height:1.2;transition:background .12s}.student-dashboard-screen .art-style-switch{z-index:5;position:absolute;top:18px;left:190px}.student-dashboard-screen .art-style-switch select{border:1px solid var(--sc-line,#0000001f);background:var(--sc-glass-2-bg,#ffffffb3);height:30px;color:var(--sc-ink);font:inherit;border-radius:999px;padding:0 10px;font-size:12px}.lang-switch-chip:hover{background:#0000000f}.lang-switch-chip.on{background:var(--sc-accent);color:#fff}.admin-screen .manage-header{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0}.admin-screen .role-switch-card,.admin-screen .device-preview-card,.admin-screen .manage-logout{border-radius:999px}.admin-screen .role-switch-card{padding:3px}main.screen.admin-screen .manage-header .manage-user .role-switch-trigger{font-size:var(--font-size-small);border-radius:999px;padding:7px 16px 7px 12px}.admin-screen .role-switch-chevron{display:none}.admin-screen .role-switch-card.is-open .role-switch-body{padding-left:4px}.admin-screen .role-switch-opts{gap:4px}main.screen.admin-screen .manage-header .manage-user .role-switch-opt{border-radius:999px;min-height:0;padding:3px 10px;font-size:12px;line-height:1.3}main.screen.admin-screen .manage-header .manage-user .manage-logout{opacity:.9;border-radius:999px;padding:8px 16px}.admin-screen .manage-user{gap:10px}.settings-page .settings-card{background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);border-radius:var(--sc-r-xl);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);color:var(--sc-ink);border:none;max-width:none;padding:22px 24px}.settings-page .settings-card+.settings-card{margin-top:16px}.settings-page .settings-h{color:var(--sc-ink);letter-spacing:-.01em;margin:0 0 4px;font-size:17px;font-weight:800}.settings-page .settings-h--sub{margin-top:28px}.settings-page .settings-desc{font-size:var(--font-size-body);color:var(--sc-ink-2,#4a5568);word-break:keep-all;margin:0 0 12px;line-height:1.6}.settings-page .settings-steps{font-size:var(--font-size-body);color:var(--sc-ink-2,#4a5568);margin:4px 0 12px 20px;padding:0;line-height:1.7}.settings-page .settings-note{border-radius:var(--sc-r-lg);font-size:var(--font-size-body);color:var(--sc-ink);word-break:keep-all;background:#ff7a2f1f;border:1px solid #ff7a2f66;margin:0 0 12px;padding:10px 14px;line-height:1.6}.settings-page .settings-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.settings-page .settings-label{color:var(--sc-ink-2,#4a5568);font-size:13px;font-weight:700}.settings-page .settings-field{gap:5px;display:grid}.settings-page input:not([type=checkbox]):not([type=range]),.settings-page select,.settings-page .input{font-size:var(--font-size-body)}.settings-page .settings-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.settings-page .settings-kv{font-size:var(--font-size-body);grid-template-columns:max-content 1fr;gap:6px 14px;margin:12px 0 0;display:grid}.settings-page .settings-kv>div{display:contents}.settings-page .settings-kv dt{color:var(--sc-ink-2,#4a5568);white-space:nowrap;background:#ffffffb3;border-radius:999px;align-self:center;padding:8px 12px;font-size:13px;font-weight:700}.settings-page .settings-kv dd{border-radius:var(--sc-r-lg);word-break:keep-all;background:#ffffff73;align-self:center;margin:0;padding:8px 12px;line-height:1.5}.settings-page .settings-status{font-size:var(--font-size-body)}.settings-page .settings-status.is-ok{color:var(--sc-accent-ink,#b8560f);font-weight:700}.settings-page .settings-status.is-err{color:var(--sc-danger,#c0392b);font-weight:700}.settings-page .settings-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}@media (max-width:760px){.settings-page .settings-card{border-radius:var(--sc-r-lg);padding:16px}.settings-page .settings-kv{grid-template-columns:1fr}}.admin-screen .prof-page .pixel-frame{background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);border-radius:var(--sc-r-xl);box-shadow:var(--sc-glass-2-shadow), var(--sc-glass-edge);color:var(--sc-ink);border:none;max-width:none}main.screen.admin-screen .prof-page .pixel-frame.panel:not(.course-designer){padding:22px 24px}main.screen.admin-screen .prof-page .pixel-frame.panel+.pixel-frame.panel{margin-top:16px}.admin-screen .prof-page .row>.pixel-frame:not(.panel){padding:14px 16px}.admin-screen .prof-page .panel-h{color:var(--sc-ink);letter-spacing:-.01em;margin:0 0 12px;font-size:17px;font-weight:800}.admin-screen .prof-page h4{color:var(--sc-ink);font-weight:800}.admin-screen .prof-page .table th{color:var(--sc-ink-2,#4a5568);font-weight:700}.admin-screen .prof-page .dash-expand{background:#ffffff59;padding:12px 14px}.admin-screen .prof-page .dash-box{border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-edge);background:#ffffff73;padding:10px 12px}.admin-screen .prof-page .dash-path-row{border-bottom:1px solid #1b253614}.admin-screen .prof-page .dash-path-row:last-child{border-bottom:none}.admin-screen .prof-page .log{border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-edge);background:#ffffff73}.admin-screen .prof-page .progress-item{border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-edge);background:#ffffff73;border:none;padding:10px 14px}.admin-screen .prof-page .progress-item:hover{background:#ffffffa6}.admin-screen .prof-page .progress-item.on{background:color-mix(in srgb, var(--sc-accent,#ff7a2f) 14%, #fff9);box-shadow:var(--sc-select-ring), var(--sc-glass-edge)}.admin-screen .prof-page .progress-item-name{color:var(--sc-ink)}.admin-screen .prof-page .progress-item-sub{color:var(--sc-ink-2,#4a5568)}.admin-screen .prof-page .progress-stats{color:var(--sc-ink-2,#4a5568);gap:8px}.admin-screen .prof-page .progress-stats>span{background:#ffffff80;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-weight:700;display:inline-flex}.admin-screen .prof-page .progress-stats b{color:var(--sc-ink)}.admin-screen .prof-page .progress-report{border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-edge);background:#ffffff73;border-top:none;margin-top:6px;padding:14px 16px}.admin-screen .prof-page .progress-empty{color:var(--sc-ink-2,#4a5568)}@media (max-width:760px){.admin-screen .prof-page .pixel-frame{border-radius:var(--sc-r-lg)}main.screen.admin-screen .prof-page .pixel-frame.panel:not(.course-designer){padding:16px}}.admin-screen .manage-header{justify-content:flex-start;gap:16px}.admin-screen .manage-header .manage-title{display:none}.admin-screen .manage-header .manage-user{gap:8px}.admin-screen .manage-header .role-switch-card{transform-origin:0;background:var(--sc-glass-2-bg);-webkit-backdrop-filter:var(--sc-glass-2-blur);backdrop-filter:var(--sc-glass-2-blur);box-shadow:var(--sc-glass-1-shadow), var(--sc-glass-edge);border:none;flex-direction:row-reverse;padding:3px}.admin-screen .manage-header .role-switch-card.is-open .role-switch-body{padding-left:0;padding-right:4px}main.screen.admin-screen .manage-header .manage-user .role-switch-trigger{justify-content:center;min-width:128px;height:30px;padding:0 16px 0 14px}.admin-screen .manage-header .device-preview-card .role-switch-trigger:hover,.admin-screen .manage-header .role-switch-trigger:hover{background:var(--sc-surface-2);border-radius:999px}.admin-screen .role-switch-opt{background:#ffffffbf;border:none;box-shadow:inset 0 1px #ffffffe6}.admin-screen .role-switch-opt:hover:not(:disabled){background:#fff}.admin-screen .role-switch-opt.is-active{background:var(--sc-accent);color:#fff}.admin-screen .device-preview-card{border:none}.admin-screen .chip-editor{border-radius:var(--sc-r-lg);background:#ffffff8c;border:none}.admin-screen .chip-editor-chip{background:#ff7a2f24;border:none}.admin-screen .eval-model-item{text-align:left;cursor:pointer;border-radius:var(--sc-r-lg);width:100%;box-shadow:var(--sc-glass-edge);color:var(--sc-ink);font:inherit;background:#ffffff8c;border:none;padding:10px 12px;display:block}.admin-screen .eval-model-item.is-selected{background:#ff7a2f29;box-shadow:inset 0 0 0 2px #ff7a2f73}.admin-screen .eval-model-item:hover{background:#ffffffbf}.admin-screen .table{border-radius:var(--sc-r-lg);border-collapse:separate;border-spacing:0;background:#ffffff73;overflow:hidden}.admin-screen .table th{white-space:nowrap;background:#ffffff80;border-bottom:1px solid #1b253614}.admin-screen .table td{border-bottom:1px solid #1b25360f}.admin-screen .table tr:last-child td{border-bottom:none}.admin-screen .table select{min-width:96px}.color-swatch{height:var(--adm-ctl-h,30px);cursor:pointer;letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;min-width:112px;padding:0 14px;font-size:12px;font-weight:800;display:inline-flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff59,0 1px 2px #1b25361f}.color-swatch--sm{border-radius:50%;width:36px;min-width:0;height:36px;padding:0}.color-swatch--sm .color-swatch-hex{display:none}.color-swatch input[type=color]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.admin-screen .mat-chunk--row{border-radius:var(--sc-r-lg);box-shadow:var(--sc-glass-edge);background:#ffffff73;margin-bottom:8px;padding:10px 12px}.admin-screen .mat-chunk--row h4{margin:0}.seg-toggle{height:var(--adm-ctl-h,30px);box-sizing:border-box;isolation:isolate;background:#ffffff8c;border-radius:999px;grid-auto-columns:1fr;grid-auto-flow:column;align-items:center;padding:3px;display:inline-grid;position:relative;box-shadow:inset 0 1px #ffffffe6,inset 0 0 0 1px #ffffff59}.seg-toggle-thumb{width:calc((100% - 6px) / var(--seg-n,2));transform:translateX(calc(100% * var(--seg-i,0)));background:var(--sc-accent);z-index:0;border-radius:999px;transition:transform .22s cubic-bezier(.22,1,.36,1);position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 2px 8px #ff7a2f59}main.screen.admin-screen .seg-toggle .seg-toggle-opt,.seg-toggle-opt{z-index:1;height:100%;min-height:0;color:var(--sc-ink);line-height:1;font:inherit;font-size:var(--font-size-small);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0 14px 1px;font-weight:700;transition:color .18s;display:inline-flex;position:relative}.seg-toggle-opt.is-on{color:#fff}.seg-toggle-opt:focus-visible{outline-offset:1px;outline:2px solid #ff7a2f99}.seg-toggle--sm{height:26px}.seg-toggle--sm .seg-toggle-opt{padding:0 10px 1px;font-size:12px}.eval-head{grid-template-columns:minmax(240px,300px) 1fr;align-items:stretch;gap:12px 18px;display:grid}.eval-head-list{align-content:start;gap:6px;display:grid}.eval-head-list .eval-model-item{width:100%;padding:8px 12px}.eval-head-edit{grid-template-columns:1fr 1.4fr;align-content:space-between;gap:8px 14px;display:grid}.eval-head-edit .eval-head-actions{grid-column:1/-1}@media (max-width:1100px){.eval-head{grid-template-columns:1fr}.eval-head-list{grid-auto-columns:minmax(200px,1fr);grid-auto-flow:column}}@media (max-width:760px){.eval-head-edit{grid-template-columns:1fr}.eval-head-list{grid-auto-flow:row}}.admin-screen .adm-sec-head{flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0 8px;display:flex}.admin-screen .adm-sec-head:first-child{margin-top:0}.admin-screen .adm-key-state{font-size:var(--font-size-small);align-items:center;gap:4px;font-weight:700;display:inline-flex}.admin-screen .adm-line{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.admin-screen .adm-inline{font-size:var(--font-size-small);align-items:center;gap:8px;display:inline-flex}.admin-screen .adm-inline select{flex:none;width:auto;min-width:200px}.admin-screen .adm-lbl{white-space:nowrap;font-weight:700}.admin-screen .adm-check{cursor:pointer}.admin-screen .adm-check input{width:14px;height:14px;margin:0}.admin-screen .adm-hint{font-size:var(--font-size-micro);line-height:1.35}.admin-screen .adm-sliders{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 18px;margin-top:10px;display:grid}.admin-screen .adm-slider{gap:3px;min-width:0;display:grid}.admin-screen .adm-slider input[type=range]{width:100%;margin:0}.admin-screen .adm-slider-head{font-size:var(--font-size-small);justify-content:space-between;align-items:baseline;font-weight:700;display:flex}.admin-screen .adm-slider-head b{font-variant-numeric:tabular-nums}.admin-screen .adm-slider--inline{grid-template-columns:auto 200px;align-items:center;gap:10px}.admin-screen .adm-slider--inline .adm-slider-head{gap:8px}@media (max-width:1200px){.admin-screen .adm-sliders{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.admin-screen .adm-sliders,.admin-screen .adm-slider--inline{grid-template-columns:1fr}}.admin-screen .tag.on{color:var(--sc-accent-ink);background:#ff7a2f2e;font-weight:700}
