:root{--brand-500:#33526b;--brand-600:#26405a;--brand-400:#5a7691;--brand-50:#e9eef3;--brand-100:#d3dee8;--on-brand:#fdf8ef;--bg:#f4f0e6;--bg-raised:#fdfbf5;--bg-sunken:#eae3d3;--ink:#1b241f;--ink-soft:#3e4a43;--ink-faint:#7d867e;--muted-fg:#5d6860;--line:#1b241f17;--line-strong:#1b241f26;--blue:#33526b;--green:#34805a;--red:#c7432f;--orange:#c07b1e;--purple:#6d5ba8;--teal:#2e8b8b;--gold:#a8821f;--cta-gold-fill:linear-gradient(180deg, #e2c88c, #cfa95f);--cta-gold-ink:#1a150e;--cta-gold-line:#fff0c859;--cta-gold-glow:0 4px 18px #d4b97a47, 0 1px 3px #0000004d;--cta-gold-glow-hover:0 8px 28px #d4b97a61, 0 2px 6px #00000052;--green-soft:#e2eee4;--red-soft:#f7e4de;--blue-soft:#e9eef3;--orange-soft:#f6ecd4;--gold-soft:#f2e7c8;--fill-hover:#1b241f0b;--fill-active:#1b241f12;--font-sans:-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", "Microsoft YaHei UI", "Microsoft YaHei", system-ui, sans-serif;--font-display:"Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "Noto Serif CJK SC", Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", Menlo, "JetBrains Mono", monospace;--radius:18px;--radius-md:12px;--radius-sm:8px;--pill:980px;--nav-w:248px;--tabbar-h:56px;--spacing:.24rem;--sh-2xs:0 1px 2px -1px #1b241f0d;--sh-xs:0 1px 2px 0 #1b241f0d;--sh-sm:0 1px 2px 0 #1b241f0f, 0 1px 3px -1px #1b241f0f;--sh:0 2px 4px -1px #1b241f12, 0 1px 2px -1px #1b241f0f;--sh-md:0 4px 8px -2px #1b241f12, 0 2px 4px -2px #1b241f0f;--sh-lg:0 8px 24px -8px #1b241f1a, 0 4px 8px -4px #1b241f0f;--sh-xl:0 16px 40px -10px #1b241f1f, 0 8px 16px -8px #1b241f12;--sh-2xl:0 24px 64px -12px #1b241f24;--ease:cubic-bezier(.32, .72, 0, 1);--wood:#3a2214;--wood-deep:#1a0e0a;--nav-ink:#f3eee3;--nav-ink-soft:#d5cfc2;--nav-ink-faint:#9a9386;--nav-gold:#d4b97a;--nav-line:#f3eee31f;--nav-fill-hover:#f3eee312;--nav-fill-active:#d4b97a2e;--glass:color-mix(in srgb, var(--bg-raised) 64%, transparent);--glass-blur:blur(28px) saturate(170%);--overlay-scrim:#1b241f4d;--chart-grid:var(--line);--chart-label:var(--ink-soft);--chart-value:var(--ink);--chart-tooltip-bg:var(--bg-raised);--chart-tooltip-border:var(--line-strong);--chart-tooltip-shadow:var(--sh-md);--chart-empty:var(--bg-sunken);--chart-ok:var(--green);--chart-warn:var(--orange);--chart-danger:var(--red);--chart-info:var(--blue);--chart-ok-soft:var(--green-soft);--chart-warn-soft:var(--orange-soft);--chart-danger-soft:var(--red-soft);--chart-enter:.6s cubic-bezier(.32, .72, 0, 1)}@media (prefers-color-scheme:dark){:root{--brand-500:#e8e2d2;--brand-600:#f4efe2;--brand-400:#c6c2b4;--brand-50:#262b26;--brand-100:#323832;--on-brand:#26405a;--bg:#14110d;--bg-raised:#1d1915;--bg-sunken:#292219;--ink:#ede8db;--ink-soft:#c6c2b4;--ink-faint:#8a8a80;--muted-fg:#a3a89e;--line:#ede8db1a;--line-strong:#ede8db29;--fill-hover:#ede8db0f;--fill-active:#ede8db1f;--blue:#e8e2d2;--green:#4da878;--red:#e0604a;--orange:#d9993f;--gold:#d4b97a;--green-soft:#1d2c22;--red-soft:#38201b;--blue-soft:#262b26;--orange-soft:#332814;--gold-soft:#2e2814;--sh-sm:0 1px 2px 0 #0006;--sh:0 2px 8px -2px #00000080;--sh-md:0 4px 12px -2px #00000080;--sh-lg:0 8px 24px -8px #0009;--chart-tooltip-bg:var(--bg-raised);--chart-tooltip-border:var(--line-strong);--chart-tooltip-shadow:0 8px 24px #00000073;--glass:color-mix(in srgb, var(--bg-raised) 58%, transparent);--overlay-scrim:#0806047a}}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-sunken) 25%, var(--line) 50%, var(--bg-sunken) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-pulse}.skeleton-line{height:14px;margin:10px 0}.skeleton-line.w-40{width:40%}.skeleton-line.w-70{width:70%}.skeleton-line.w-90{width:90%}.skeleton-block{border-radius:var(--radius);height:160px}.skeleton-chart{border-radius:var(--radius);height:240px}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg);letter-spacing:0;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;line-height:1.47}h1,h2,h3{font-family:var(--font-sans);letter-spacing:-.011em;font-weight:600}code,.mono{font-family:var(--font-mono)}.staff-rule{background:repeating-linear-gradient(to bottom, transparent 0 3px, var(--line) 3px 4px) top left / 100% 17px no-repeat;border:0;height:17px;margin:0}::selection{background:var(--brand-100);color:var(--ink)}.indie-logout-mobile{display:none}.nav{width:var(--nav-w);color:var(--nav-ink);isolation:isolate;background-color:#14110d;background-image:radial-gradient(80% 50% at 50% 108%,#c4a57424,#0000 62%),radial-gradient(55% 40% at 88% -8%,#33526b1f,#0000 70%),radial-gradient(40% 36% at 8% 18%,#d4b97a14,#0000 68%);background-repeat:no-repeat;border-right:1px solid #d4b97a38;flex-direction:column;flex-shrink:0;align-self:stretch;gap:0;height:100%;padding:22px 12px 16px;display:flex;position:sticky;top:0;overflow:hidden}.nav>.brand-block,.nav>.nav-scroll,.nav>.child-switch-wrap,.nav>.nav-profile,.nav>.nav-foot{z-index:1;position:relative}.note-bubbles{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.note-bubble{left:var(--x);font-family:Apple Symbols,Segoe UI Symbol,Noto Music,"Noto Sans Symbols 2",Georgia,serif;font-size:var(--size);color:#e4c98a;opacity:0;will-change:transform, opacity;animation:note-rise var(--dur) linear var(--delay) infinite;text-shadow:0 0 22px #e4c98a59;-webkit-user-select:none;user-select:none;line-height:1;position:absolute;bottom:-12%}html.portal-open[data-theme=light] .note-bubble{color:#9a7530;text-shadow:0 0 16px #9a753038}@keyframes note-rise{0%{opacity:0;transform:translate(0,0)scale(.55)rotate(0)}7%{opacity:var(--op)}78%{opacity:var(--op)}to{transform:translate3d(var(--drift), calc(-112vh - 40px), 0) scale(1.05) rotate(var(--spin));opacity:0}}@media (prefers-reduced-motion:reduce){.note-bubble{opacity:.16;animation:none;top:18%;bottom:auto}.note-bubble:nth-child(3n){top:42%}.note-bubble:nth-child(3n+2){top:68%}}.page-boot{background:var(--bg,#f4f0e6);min-height:40vh}.brand-block{padding:4px 10px 18px}.nav .brand-kicker{color:var(--nav-gold);letter-spacing:.14em;margin:0 0 6px;font-size:11px;font-weight:600}.nav .brand{font-family:var(--font-display);letter-spacing:.01em;color:var(--nav-ink);margin:0;font-size:24px;font-weight:700;line-height:1.15}.nav .brand .mirror{color:var(--nav-ink-faint);letter-spacing:0;margin-left:6px;font-size:.72em;font-weight:500}.nav .brand-ids{flex-direction:column;gap:2px;margin-top:6px;display:flex}.nav .brand-sub{color:var(--nav-ink-faint);letter-spacing:0;text-transform:none;margin:0;font-size:12px;font-weight:400;line-height:1.35}.nav-scroll{flex-direction:column;flex:1;gap:2px;min-height:0;padding:0 2px;display:flex;overflow-y:auto}.nav-group{flex-direction:column;gap:1px;margin-bottom:14px;display:flex}.nav-group:last-child{margin-bottom:0}.nav-group-label{color:var(--nav-ink-faint);letter-spacing:.02em;padding:0 12px 5px;font-size:11px;font-weight:600}.nav-item{color:var(--nav-ink-soft);font-size:13.5px;font-weight:500;font-family:var(--font-sans);cursor:pointer;text-align:left;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:7px 12px;display:flex;position:relative}.nav-item:hover{background:var(--nav-fill-hover);color:var(--nav-ink)}.nav-item:hover .nav-icon{color:var(--nav-ink)}.nav-item.active{background:var(--nav-fill-active);color:var(--nav-ink);font-weight:600}.nav-item.active .nav-icon{color:var(--nav-gold)}.nav-badge{border-radius:var(--pill);background:var(--red);color:#fff;text-align:center;letter-spacing:-.02em;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:11px;font-weight:600;line-height:18px}.chip-warn{border-color:var(--red);color:var(--red)}.nav-icon{width:17px;height:17px;color:var(--nav-ink-faint);flex:none}.nav-foot{color:var(--nav-ink-faint);margin-top:8px;padding:0 10px;font-size:12px;line-height:1.6}.nav-profile{border:1px solid var(--nav-line);box-shadow:none;background:#f3eee314;border-radius:14px;align-items:center;gap:10px;margin-top:10px;padding:10px;display:flex}.nav-avatar{width:36px;height:36px;color:var(--nav-ink);letter-spacing:0;background:#f3eee31f;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex;overflow:hidden}.nav-avatar img{object-fit:cover;width:100%;height:100%;display:block}.nav-profile-copy{flex:1;min-width:0}.nav-profile-name{color:var(--nav-ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.nav-profile-meta{color:var(--nav-ink-faint);font-variant-numeric:tabular-nums;margin-top:1px;font-size:11px}.nav-logout{color:var(--nav-gold);cursor:pointer;background:0 0;border:none;flex:none;padding:4px 2px;font-family:inherit;font-size:12px;font-weight:500}.nav-logout:hover{opacity:.72}.ai-status{letter-spacing:.2px;color:var(--nav-ink-faint);align-items:center;gap:8px;margin:16px 4px 0;font-size:12px;display:flex}.ai-dot{background:var(--line-strong);border-radius:50%;flex:none;width:9px;height:9px;transition:background .3s}.ai-dot.online{background:var(--green);animation:2.4s ease-in-out infinite ai-breathe}.ai-label.online{color:var(--green);font-weight:600}@keyframes ai-breathe{0%,to{opacity:1;box-shadow:0 0 #34c75973}50%{opacity:.6;box-shadow:0 0 0 7px #34c75900}}.tabbar{display:none}.main{background-color:var(--bg);background-image:url(/portal/book/paper-grain.svg);background-repeat:repeat;background-size:180px 180px;flex:1;min-width:0;max-width:1080px;min-height:0;padding:48px clamp(24px,4.5vw,72px) 88px;overflow:clip auto}.shell{background:var(--bg);height:100%;display:flex;overflow:hidden}.page-title{font-family:var(--font-display);letter-spacing:.005em;margin:0 0 8px;font-size:clamp(32px,4.2vw,40px);font-weight:700;line-height:1.16}.page-sub{color:var(--ink-faint);letter-spacing:-.01em;margin:0 0 32px;font-size:17px;font-weight:400;line-height:1.4}.page-sub .dot{color:var(--blue);margin:0 6px}.page-head{margin-bottom:28px}.page-head h2{font-family:var(--font-display);letter-spacing:.005em;margin:0;font-size:clamp(30px,4vw,38px);font-weight:700;line-height:1.16}.page-head .sub{color:var(--ink-faint);letter-spacing:-.011em;margin-top:6px;font-size:17px;font-weight:400;display:block}.page-head:not(:first-child){margin-top:40px}.page-head:not(:first-child) h2{font-family:var(--font-sans);letter-spacing:-.01em;font-size:21px;font-weight:600}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--sh-xs);margin-bottom:16px;padding:22px 24px}.card-title{letter-spacing:-.02em;align-items:center;gap:10px;margin:0 0 12px;font-size:19px;font-weight:600;display:flex}.btn{font-family:var(--font-sans);letter-spacing:-.01em;border-radius:var(--pill);background:var(--bg-sunken);color:var(--ink);cursor:pointer;white-space:nowrap;appearance:none;transition:background .2s var(--ease), color .2s var(--ease), filter .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease), opacity .15s var(--ease);border:none;padding:10px 18px;font-size:15px;font-weight:500}.btn:hover{background:var(--line-strong);color:var(--ink)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.38;cursor:not-allowed}.btn:focus-visible{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px var(--gold);outline:none}.btn-primary,.btn.primary,.btn-gold{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow);font-weight:600}.btn-primary:hover,.btn.primary:hover,.btn-gold:hover{background:var(--cta-gold-fill);color:var(--cta-gold-ink);filter:brightness(1.06);box-shadow:var(--cta-gold-glow-hover);transform:translateY(-1px)}.btn-primary:disabled:hover,.btn.primary:disabled:hover,.btn-gold:disabled:hover{filter:none;box-shadow:var(--cta-gold-glow);transform:none}.btn-row{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.btn-sm{padding:6px 14px;font-size:13px}@keyframes btn-save-ok{0%{transform:scale(.97)}45%{transform:scale(1.03)}to{transform:scale(1)}}.btn.is-saved,.btn.btn-primary.is-saved,.btn.primary.is-saved,.btn-gold.is-saved,.dropzone.is-saved{animation:btn-save-ok .32s var(--ease,ease);pointer-events:none;background:var(--green)!important;color:#fff!important;border-color:color-mix(in srgb, var(--green) 80%, #000)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 28%, transparent)!important;filter:none!important}.dropzone.is-saved .dz-main,.dropzone.is-saved .dz-sub{color:#fff!important}@media (prefers-reduced-motion:reduce){.btn.is-saved,.btn.btn-primary.is-saved,.btn.primary.is-saved,.btn-gold.is-saved,.dropzone.is-saved{animation:none}}.option-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.option{border-radius:var(--radius-md);background:var(--bg-raised);cursor:pointer;text-align:left;transition:background .15s var(--ease);color:var(--ink-soft);border:none;width:100%;padding:14px 16px;font-family:inherit;font-size:14px}.option .opt-main{color:var(--ink);letter-spacing:-.015em;margin-bottom:2px;font-size:16px;font-weight:600;display:block}.option .opt-sub{color:var(--ink-faint);font-size:13px;line-height:1.4}a.option{box-sizing:border-box;text-decoration:none;display:block}.option:hover{background:var(--fill-hover)}.option.selected{background:var(--fill-active)}.option.selected .opt-main{color:var(--ink)}.field{margin-bottom:16px}.field-label{color:var(--ink-faint);margin-bottom:7px;font-size:13px;font-weight:500;display:block}input[type=range]{width:100%;accent-color:var(--blue)}select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=button]):not([type=submit]):not([type=hidden]):not([type=image]):not([type=reset]){font-family:var(--font-sans);background:var(--bg-sunken);color:var(--ink);letter-spacing:-.01em;width:100%;transition:border-color .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease);border:1px solid #0000;border-radius:12px;padding:12px 14px;font-size:16px}textarea{resize:vertical;min-height:88px;line-height:1.5}select:focus,textarea:focus,input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=button]):not([type=submit]):not([type=hidden]):focus{background:var(--bg-raised);border-color:var(--blue);outline:none;box-shadow:0 0 0 4px #33526b33}select::placeholder,input::placeholder,textarea::placeholder{color:var(--ink-faint)}.card.form>label{color:var(--ink-faint);margin-bottom:14px;font-size:13px;font-weight:500;display:block}.card.form>label input,.card.form>label select,.card.form>label textarea{color:var(--ink);margin-top:7px;font-weight:400}.row-check{color:var(--ink);align-items:flex-start;gap:12px;margin-bottom:16px;font-size:15px;font-weight:400;display:flex}.row-check input{width:auto;accent-color:var(--blue);margin-top:3px}.dropzone{border-radius:var(--radius);background:var(--bg-sunken);text-align:center;cursor:pointer;width:100%;font:inherit;color:inherit;transition:background .2s var(--ease);border:none;padding:clamp(28px,5vw,48px)}.dropzone:hover,.dropzone.dragover{background:var(--blue-soft)}.dropzone .dz-icon{margin-bottom:10px;font-size:32px}.dropzone .dz-main{margin-bottom:6px;font-size:17px;font-weight:600}.dropzone .dz-sub{color:var(--ink-faint);font-size:12px}.score-wrap{border:1px solid var(--line);border-radius:var(--radius-md);background:#fff;min-height:300px;padding:12px;overflow-x:auto}.score-wrap svg{max-width:none;margin:0 auto;display:block}.measure-hot{cursor:pointer}.measure-hot:hover{filter:drop-shadow(0 0 4px #33526b80)}.preview-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:16px;margin-bottom:20px;display:grid}.preview-layout>.card{margin-bottom:0}.preview-annot{max-height:calc(100vh - 48px);position:sticky;top:24px;overflow:auto}.main:has(.preview-layout){max-width:1320px}@media (width<=1100px){.preview-layout{grid-template-columns:1fr}.preview-annot{max-height:none;position:static}}.annot-panel{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.annot-target{color:var(--blue);margin-bottom:12px;font-size:14px;font-weight:600}.chip-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.chip{border-radius:var(--pill);background:var(--bg-sunken);cursor:pointer;color:var(--ink-soft);transition:background .12s var(--ease), color .12s var(--ease);border:none;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500}.chip:hover{background:var(--fill-active);color:var(--ink)}.chip.selected{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow)}.notice{background:var(--bg-sunken);color:var(--ink-soft);border:none;border-radius:12px;margin-bottom:16px;padding:12px 16px;font-size:14px;line-height:1.45}.notice.error{background:var(--red-soft);color:var(--red)}.notice.ok{background:var(--green-soft);color:#248a3d}.notice.warn{background:var(--orange-soft);color:#c93400}.task-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:14px 6px;display:flex}.task-row:last-child{border-bottom:none}.task-name{font-size:15px;font-weight:600}.task-meta{color:var(--ink-faint);margin-top:3px;font-size:12px}.task-badge{border-radius:var(--pill);white-space:nowrap;margin-left:auto;padding:4px 11px;font-size:11px;font-weight:600}.badge-ok{background:var(--green-soft);color:#1e7e34}.badge-run{background:var(--blue-soft);color:var(--blue)}.badge-warn{color:#c41d1d;background:#fff1f0}.badge-fail{background:var(--red-soft);color:var(--red)}.dz-preview{text-align:center;margin-top:16px}.dz-preview img{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-raised);max-width:240px;max-height:160px}.dz-preview-caption{color:var(--ink-faint);margin-top:6px;font-size:12px}.compare-grid{grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 18px;display:grid}@media (width<=960px){.compare-grid{grid-template-columns:1fr}}.compare-pane{min-width:0}.compare-label{letter-spacing:.04em;color:var(--ink-faint);margin-bottom:8px;font-size:12px;font-weight:600}.compare-scroll{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-raised);max-height:420px;padding:10px;overflow:auto}.compare-img{max-width:100%;margin:0 auto;display:block}.compare-scroll .score-wrap svg{max-width:100%;height:auto}.progress-ring-wrap{flex-direction:column;align-items:center;gap:8px;padding:10px 0;display:flex}.ring-bg{fill:none;stroke:var(--line);stroke-width:5px}.ring-fg{fill:none;stroke:var(--blue);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .45s var(--ease)}.ring-text{fill:var(--ink);font-size:15px;font-weight:600}.ring-label{color:var(--ink-soft);letter-spacing:.2px;font-size:12.5px}.ring-elapsed{color:var(--ink-faint);font-size:11.5px}.ring-hint{color:var(--ink-soft);text-align:center;max-width:280px;font-size:12px;line-height:1.45}.imslp-search{gap:10px;display:flex}.imslp-search-box{flex:1;position:relative}.imslp-search input{box-sizing:border-box;border:1px solid var(--line-strong);border-radius:var(--radius-md);width:100%;color:var(--ink);background:var(--bg-raised);outline:none;padding:10px 14px;font-family:inherit;font-size:14px}.imslp-search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #33526b29}.imslp-suggest-list{z-index:30;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--sh-lg);max-height:320px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.imslp-suggest-list li{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.imslp-suggest-list li.active{background:var(--bg-sunken)}.suggest-tag{background:var(--bg-sunken);color:var(--ink-soft);border-radius:20px;flex-shrink:0;padding:1px 7px;font-size:11px;font-weight:600}.suggest-tag.tag-ai{background:var(--blue-soft);color:var(--blue)}.suggest-tag.tag-history{background:var(--bg-sunken);color:var(--ink-faint)}.suggest-tag.tag-library{background:var(--green-soft);color:#1e7e34}.suggest-label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.suggest-hint{color:var(--ink-faint);flex-shrink:0;margin-left:auto;font-size:11.5px}.imslp-search-hint{color:var(--ink-faint);margin:6px 0 0;font-size:12px}.imslp-list{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-raised);margin:12px 0 0;padding:0;list-style:none;overflow:hidden}.imslp-list>li+li{border-top:1px solid var(--line)}.imslp-work{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:13.5px;display:flex}.imslp-work:hover{background:var(--bg-sunken)}.imslp-title{font-weight:600}.imslp-toggle{color:var(--blue);flex:none;font-size:12px}.imslp-files{border-top:1px dashed var(--line);background:var(--bg-sunken);padding:4px 14px 10px}.imslp-file-row{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.imslp-file-row+.imslp-file-row{border-top:1px solid var(--line)}.imslp-file-info{flex-direction:column;gap:2px;min-width:0;display:flex}.imslp-file-desc{color:var(--ink);align-items:center;gap:2px;display:flex}.imslp-file-meta{color:var(--ink-faint);font-size:11.5px}.library-toolbar{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;margin-bottom:16px;padding-bottom:12px;display:flex}.library-toolbar-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.library-toolbar-label{color:var(--ink-faint);letter-spacing:.04em;flex:none;width:36px;font-size:12px;font-weight:600}.library-sort{width:auto;min-width:132px;padding:6px 10px;font-size:13px}.library-count{color:var(--ink-faint);margin-left:auto;font-size:12px}.library-search{flex:1;min-width:160px;max-width:360px;padding:6px 10px;font-size:13px}.library-groups{flex-direction:column;gap:12px;display:flex}.library-group-toggle{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;align-items:baseline;gap:8px;padding:8px 2px;font-family:inherit;display:flex}.library-group-toggle:hover{color:var(--blue)}.library-group-caret{width:14px;color:var(--blue);flex:none;font-size:12px}.library-group-title{align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.library-group-n{color:var(--blue);background:var(--blue-soft);border-radius:var(--pill);padding:1px 8px;font-size:11px;font-weight:600}.library-group-hint{color:var(--ink-faint);margin:0;font-size:12px;font-weight:400}.library-list{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-raised);overflow:hidden}.library-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:0 6px 0 0;display:flex}.library-row:last-child{border-bottom:none}.library-row:hover{background:var(--bg-sunken)}.library-row-main{cursor:pointer;text-align:left;min-width:0;color:inherit;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:8px 12px;font-family:inherit;display:flex}.library-row .library-name{flex:1;min-width:0;margin:0;font-size:13.5px;font-weight:550}.library-row .library-meta{flex:none;margin:0}.library-row-act{flex:none;gap:2px;display:flex}.library-icon-btn{width:26px;height:26px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:14px;line-height:1}.library-icon-btn:hover{background:var(--blue-soft);color:var(--blue)}.library-icon-btn.danger:hover{background:var(--red-soft);color:var(--red)}.library-more{border:1px dashed var(--line);border-radius:var(--radius-md);width:100%;color:var(--ink-soft);cursor:pointer;background:0 0;margin-top:8px;padding:7px;font-family:inherit;font-size:12.5px;display:block}.library-more:hover{border-color:var(--blue);color:var(--blue)}@media (width<=640px){.library-row-main{flex-direction:column;align-items:flex-start;gap:4px}}.lib-tag-stage-ready{background:var(--green-soft);color:#1e7e34}.lib-tag-stage-needs_omr{background:var(--blue-soft);color:var(--blue)}.lib-tag-stage-archive{background:var(--bg-sunken);color:var(--ink-soft)}.library-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.library-card{border:1px solid var(--line);border-radius:var(--radius-md);transition:box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.library-card:hover{border-color:var(--blue);box-shadow:var(--sh-md)}.library-card-body{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:12px 14px;font-family:inherit;display:block}.library-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:14px;font-weight:600;overflow:hidden}.library-meta{color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:8px;font-size:11.5px;display:flex}.lib-tag{border-radius:4px;padding:1px 8px;font-size:10.5px;font-weight:600}.lib-tag-imslp{background:var(--blue-soft);color:var(--blue)}.lib-tag-omr{background:var(--orange-soft);color:#b86b00}.lib-tag-upload{background:var(--green-soft);color:#1e7e34}.fmt-tag{letter-spacing:.3px;background:var(--bg-sunken);color:var(--ink-soft);border-radius:4px;margin-right:6px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.fmt-pdf{background:var(--red-soft);color:var(--red)}.fmt-mxl,.fmt-musicxml,.fmt-xml{background:var(--green-soft);color:#1e7e34}.fmt-mid,.fmt-midi{background:var(--blue-soft);color:var(--blue)}.imslp-actions{flex:none;gap:6px;display:flex}.imslp-suggestion{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--blue-soft);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;display:flex}.ai-chip{border-radius:var(--pill);background:var(--blue);color:#fff;letter-spacing:.4px;flex:none;padding:1px 8px;font-size:11px;font-weight:700}.imslp-suggestion-note{flex:1;min-width:120px}.imslp-suggestion-queries{flex-wrap:wrap;gap:6px;display:flex}.imslp-suggestion-queries code{color:var(--brand-600);background:#33526b1a;border-radius:4px;padding:1px 6px;font-size:11.5px}.library-download,.library-del{width:22px;height:22px;color:var(--ink-faint);cursor:pointer;opacity:0;background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,background .2s;display:flex;position:absolute;top:6px}.library-download{font-size:13px;right:30px}.library-del{font-size:16px;right:6px}.library-card:hover .library-download,.library-card:hover .library-del{opacity:1}.library-download:hover{background:var(--blue-soft);color:var(--blue)}.library-del:hover{background:var(--red-soft);color:var(--red)}.abc-edit-panel{border:1px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--bg-sunken);margin:4px 0 16px;padding:14px}.abc-edit-hint{color:var(--ink-faint);margin:0 0 10px;font-size:12px;line-height:1.8}.abc-edit-hint code{background:#33526b1a;border-radius:3px;padding:0 4px}.abc-editor{width:100%;min-height:96px;font-family:var(--font-mono);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--bg-raised);color:var(--ink);resize:vertical;box-sizing:border-box;padding:10px 12px;font-size:12.5px;line-height:1.7}.abc-editor:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #33526b29}.task-row.clickable{cursor:pointer;border-radius:var(--radius-md);transition:background .15s}.task-row.clickable:hover{background:var(--bg-sunken)}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger:hover{color:#fff;background:#d93425;border-color:#d93425}.btn-danger-ghost{color:var(--red)}.btn-danger-ghost:hover{border-color:var(--red);color:var(--red);background:var(--red-soft)}.provider-block{border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:10px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}.provider-block.matched{border-color:var(--blue);box-shadow:0 0 0 1px var(--brand-400), var(--sh-md)}.provider-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.provider-name{font-size:15px;font-weight:600}.provider-key-hint{color:var(--ink-faint);font-size:11px}.model-chip{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.model-chip.flagship{border-color:var(--blue)}.tier-tag{color:var(--blue);border:1px solid var(--brand-400);border-radius:3px;padding:0 4px;font-size:10px;line-height:1.5}.model-chip.selected .tier-tag{color:#fff;border-color:#fff}.tier-tag.vision{color:var(--green);border-color:#34c75973}.model-chip.selected .tier-tag.vision{color:#e8f8ee;border-color:#e8f8ee}.fit-note{color:var(--ink-faint);font-size:12px;line-height:1.7}.key-hint{margin-top:6px;font-size:12px;line-height:1.6}.key-hint.ok{color:#1e7e34}.key-hint.warn{color:#8a5600}.key-hint.bad{color:var(--red)}.modal-overlay{background:var(--overlay-scrim);-webkit-backdrop-filter:blur(18px)saturate(140%);z-index:100;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);border:1px solid color-mix(in srgb, var(--bg-raised) 55%, #ffffff73);border-radius:20px;width:100%;max-width:440px;padding:28px 26px 22px;box-shadow:inset 0 1px #ffffff6b,0 24px 64px -16px #1b241f47}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.modal,.sprite-panel{background:var(--bg-raised)}}.modal-title{letter-spacing:-.022em;margin:0 0 8px;font-size:21px;font-weight:600}.modal-body{color:var(--ink-soft);margin:0 0 22px;font-size:14px;line-height:1.7}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.crop-overlay{z-index:180}.crop-modal{max-width:min(520px,100vw - 24px)}.crop-hint{margin:0 0 14px;font-size:13px}.crop-frame{cursor:grab;touch-action:none;background:#1b241f;border-radius:14px;margin:0 auto 14px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}.crop-frame:active{cursor:grabbing}.crop-frame img{pointer-events:none;-webkit-user-select:none;user-select:none;max-width:none;position:absolute;top:0;left:0}.crop-frame-avatar,.crop-frame-logo{border-radius:50%}.crop-zoom{color:var(--ink-faint);align-items:center;gap:12px;margin:0 0 16px;font-size:12px;display:flex}.crop-zoom input[type=range]{flex:1;margin:0}.library-action-title{font-weight:600}.library-action-list{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.library-action-btn{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-raised);cursor:pointer;text-align:left;width:100%;color:inherit;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.library-action-btn:hover:not(:disabled),.library-action-btn.primary:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft)}.library-action-btn:disabled{opacity:.45;cursor:not-allowed}.library-action-name{font-size:15px;font-weight:600}.library-action-desc{color:var(--ink-faint);font-size:12px}.progress-stages{gap:6px;margin:18px 0;display:flex}.stage{text-align:center;color:var(--ink-faint);flex:1;padding-top:10px;font-size:12px;position:relative}.stage:before{content:"";background:var(--line);border-radius:2px;height:3px;position:absolute;top:0;left:10%;right:10%}.stage.done{color:#1e7e34}.stage.done:before{background:var(--green)}.stage.active{color:var(--blue)}.stage.active:before{background:var(--blue)}.ai-tag{letter-spacing:.5px;color:var(--blue);border:1px solid var(--brand-400);vertical-align:middle;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}@media (width<=1100px){:root{--nav-w:196px}}@media (width<=767px){html{overscroll-behavior-x:none;-webkit-text-size-adjust:100%;overflow-x:clip}html,body,#root{width:100%;max-width:100%;height:auto;min-height:100dvh}body{overscroll-behavior-x:none;overflow-x:clip}#root,.shell{max-width:100%;overflow-x:clip}.shell{height:auto;min-height:100dvh;overflow:visible}.nav{height:auto;display:none}.main{width:100%;max-width:100%;padding:20px 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px) + 20px);overflow:clip visible}.shell-indie .main{padding-bottom:28px}.indie-logout-mobile{display:inline-flex}.tabbar{height:calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:saturate(140%)blur(20px);z-index:50;padding:4px 4px env(safe-area-inset-bottom,0);overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:#14110deb;border-top:1px solid #d4b97a38;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:auto hidden}.tabbar::-webkit-scrollbar{display:none}.tabbar .nav-item{text-align:center;border-radius:8px;flex-direction:column;flex:none;justify-content:center;gap:2px;min-width:64px;padding:6px 10px;font-size:10px;font-weight:500;position:relative}.tabbar .nav-badge{margin:0;position:absolute;top:2px;right:8px}.tabbar .nav-item.active{color:var(--nav-gold);background:0 0;font-weight:600}.tabbar .nav-item.active .nav-icon{color:var(--nav-gold)}.tabbar .nav-icon{width:22px;height:22px}.option-grid{grid-template-columns:repeat(2,1fr)}.btn-row .btn{flex:1}.page-title,.page-head h2{font-size:28px}.login-card-wide{padding:24px 18px}}@media (width<=767px) and (prefers-color-scheme:dark){.tabbar{background:#14110deb}}@media (width>=768px) and (width<=1100px){.main{padding:26px 26px 56px}}.login-wrap{justify-content:center;align-items:center;min-height:100%;padding:56px 20px;display:flex;position:relative}.back-link{font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;margin:0 0 14px;padding:0;font-size:13px;font-weight:500;line-height:1.3;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.back-link svg{flex:none;width:16px;height:16px}.form-section-desc{color:var(--ink-faint);margin:-4px 0 14px;font-size:13px;line-height:1.45}.login-studio{background:var(--bg-raised);border-radius:16px;align-items:center;gap:14px;margin:0 0 22px;padding:14px 16px;display:flex}.login-studio-mark{background:var(--ink);width:48px;height:48px;color:var(--bg);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:600;display:flex}.login-studio-kicker{color:var(--ink-faint);margin:0 0 2px;font-size:12px;font-weight:600}.login-studio-name{letter-spacing:-.03em;font-size:18px;font-weight:600;line-height:1.2}.login-studio-sub{color:var(--ink-faint);margin-top:3px;font-size:12px}.studio-brand{isolation:isolate;background:color-mix(in srgb, var(--bg-raised) 78%, transparent);border:1px solid var(--line);border-radius:0;align-items:center;gap:16px;margin:0 0 28px;padding:16px 18px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff8c}.studio-brand-cover{z-index:0;pointer-events:none;position:absolute;inset:0}.studio-brand-cover img{object-fit:cover;width:100%;height:100%;display:block}.studio-brand-cover:after{content:"";background:linear-gradient(100deg, color-mix(in srgb, var(--bg-raised) 88%, transparent) 0%, color-mix(in srgb, var(--bg-raised) 62%, transparent) 48%, color-mix(in srgb, var(--bg-raised) 28%, transparent) 100%);position:absolute;inset:0}.studio-brand.has-cover{background:color-mix(in srgb, var(--bg-raised) 22%, transparent)}.studio-brand-mark{z-index:1;background:var(--ink);width:56px;height:56px;color:var(--bg);letter-spacing:-.03em;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;font-weight:600;display:flex;position:relative;overflow:hidden}.studio-brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.studio-brand-copy{z-index:1;flex:1;min-width:0;position:relative}.studio-brand-actions{z-index:1;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex;position:relative}.studio-brand-actions .btn{padding:5px 10px;font-size:12px}.studio-brand-kicker{color:var(--ink-faint);margin:0 0 2px;font-size:12px;font-weight:600}.studio-brand-name{letter-spacing:-.03em;color:var(--ink);margin:0;font-size:22px;font-weight:600;line-height:1.15}.studio-brand-sub{color:var(--ink-faint);margin:4px 0 0;font-size:13px}.login-wrap-top{align-items:flex-start;padding-top:48px;padding-bottom:64px}.login-card{width:min(420px,100%);box-shadow:none;background:0 0;padding:8px 4px 24px}.login-card-wide{background:var(--bg-raised);border-radius:22px;width:min(560px,100%);padding:40px 36px}.login-kicker{letter-spacing:.01em;color:var(--ink-faint);margin:0 0 10px;font-size:13px;font-weight:600}.gate-head{justify-content:space-between;align-items:center;gap:12px;margin:0 0 10px;display:flex}.gate-head .login-kicker{margin:0}.gate-badge{border-radius:var(--pill);background:var(--ink);height:32px;color:var(--bg);letter-spacing:-.01em;flex-shrink:0;align-items:center;padding:0 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.gate-badge:hover{opacity:.88}.form-section{color:var(--ink-faint);letter-spacing:0;border-top:none;margin:28px 0 10px;padding-top:0;font-size:13px;font-weight:600}.dropzone-sm{padding:18px 16px}.license-preview{margin:8px 0 12px}.license-img{border-radius:var(--radius-md);border:1px solid var(--line);background:#fff;max-width:100%;max-height:320px;display:block}.role-switch{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;display:grid}.gate-switch{background:var(--bg-raised);border-radius:16px;flex-direction:column;grid-template-columns:none;gap:0;margin-bottom:28px;display:flex;overflow:hidden}.gate-switch .option{text-align:left;background:0 0;border-radius:0;padding:16px 44px 16px 18px;position:relative}.gate-switch .option+.option{border-top:1px solid var(--line)}.gate-switch .option:hover{background:var(--fill-hover)}.gate-switch .option:after{content:"";border-right:1.5px solid var(--ink-faint);border-top:1.5px solid var(--ink-faint);width:7px;height:7px;position:absolute;top:50%;right:18px;transform:translateY(-50%)rotate(45deg)}.gate-slug{margin-bottom:18px}.member-list{margin:8px 0 0;padding:0;list-style:none}.member-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px;display:flex}.member-row:last-child{border-bottom:none}.member-role{color:var(--ink-faint);flex-shrink:0;font-size:12px}.otp-row{gap:8px;display:flex}.otp-row input{flex:1}.otp-row .btn{white-space:nowrap}.saved-accounts{margin:8px 0 0}.saved-accounts-label{color:var(--ink-faint);margin-bottom:6px;font-size:12px;display:block}.saved-accounts-list{flex-wrap:wrap;gap:6px;display:flex}.saved-account{border:1px solid var(--line);background:var(--bg-raised);border-radius:999px;align-items:center;gap:2px;display:inline-flex;overflow:hidden}.saved-account.active{border-color:var(--accent,#c4a574);background:var(--bg)}.saved-account>button{font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:0;padding:5px 10px;font-size:12px}.saved-account-phone{color:var(--ink-faint);margin-left:6px}.saved-forget{line-height:1;color:var(--ink-faint)!important;padding:5px 8px 5px 0!important}.login-card-auth{width:min(440px,100%)}.auth-panel{margin-top:8px}.auth-tabs{border:1px solid var(--line);background:var(--bg-raised);border-radius:12px;gap:0;margin:0 0 18px;padding:3px;display:flex}.auth-tabs button{font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.auth-tabs button svg{flex:none}.auth-tabs button.active{background:var(--bg);color:var(--ink);box-shadow:0 1px 2px #0000000f}.auth-extra{border:1px solid var(--line);background:var(--bg-raised);border-radius:12px;margin:8px 0 16px;padding:10px 12px}.auth-extra summary{cursor:pointer;color:var(--ink-faint);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.auth-extra summary svg{flex:none}.wechat-box{flex-direction:column;align-items:center;gap:12px;display:flex}.wechat-qr-wrap{border-radius:var(--radius-md,14px);border:1px solid color-mix(in srgb, var(--line) 80%, #d4cfc4);background:#f7f5f0;flex:none;place-items:center;width:220px;height:220px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffa6,0 4px 16px #1418200f}.wechat-qr-wrap.is-official{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--line) 65%, #cfc8bb);background:linear-gradient(#faf8f3 0%,#f3f0e8 100%);width:min(310px,100%);height:410px;padding:5px;box-shadow:inset 0 1px #ffffffb3,0 3px 14px #14182012}.wechat-qr{background:#fff;border-radius:10px;width:200px;height:200px;display:block}.wechat-qr-frame{border-radius:calc(var(--radius-md,14px) - 4px);pointer-events:auto;background:#fff;border:0;width:100%;max-width:100%;height:100%}.wechat-qr-ph{color:var(--ink-faint);border:1px dashed var(--line);border-radius:10px;justify-content:center;align-items:center;width:200px;height:200px;font-size:13px;display:flex}.wechat-qr-mark{pointer-events:none;background:#fff;border-radius:9px;place-items:center;width:38px;height:38px;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff}.wechat-qr-mark svg{display:block}.wechat-consent-hint{z-index:1;box-sizing:border-box;color:#f5f5f7;letter-spacing:.02em;text-align:center;pointer-events:none;background:#141820d1;border-radius:10px;place-items:center;min-height:44px;padding:10px 12px;font-size:12px;font-weight:600;display:grid;position:absolute;bottom:10px;left:10px;right:10px}.wechat-success-overlay{z-index:2;border-radius:inherit;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:#f5f5f7;letter-spacing:.02em;background:#0c0e12c7;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:15px;font-weight:600;animation:.35s ease-out wechat-success-in;display:flex;position:absolute;inset:0}.wechat-success-check{color:#fff;background:#07c160;border-radius:50%;place-items:center;width:52px;height:52px;font-size:28px;line-height:1;animation:.45s cubic-bezier(.2,.9,.3,1.25) wechat-check-pop;display:grid;box-shadow:0 8px 24px #07c16059}@keyframes wechat-success-in{0%{opacity:0}to{opacity:1}}@keyframes wechat-check-pop{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}.wechat-copy{text-align:center;width:100%;max-width:320px}.wechat-title{justify-content:center;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:650;display:flex}.wechat-title svg{flex:none}.wechat-hint{color:var(--ink-faint);margin:0 0 4px;font-size:13px;font-weight:450;line-height:1.5}.wechat-status-ok{color:var(--green);text-align:center;margin:0 0 4px;font-size:13px}.wechat-demo,.wechat-bind{text-align:left;margin-top:10px}.wechat-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 16px;margin-top:10px;display:flex}.wechat-fallback,.wechat-refresh{appearance:none;min-height:44px;font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;margin:0;padding:10px 4px;font-size:13px;font-weight:500;line-height:1.2;text-decoration:none}.wechat-fallback{opacity:.62;color:var(--ink-faint);order:2;font-size:12px;font-weight:400}.wechat-refresh{order:1}.wechat-fallback:hover,.wechat-refresh:hover{color:var(--ink-soft);text-underline-offset:3px;text-decoration:underline}.wechat-fallback:hover{opacity:.9}.wechat-refresh:disabled{opacity:.45;cursor:default;text-decoration:none}.wechat-nick{color:var(--ink-faint);text-align:left;margin:0 0 8px;font-size:12px}.wechat-url{word-break:break-all;margin:8px 0 0}.login-foot{margin-top:18px}@media (width<=520px){.wechat-qr-wrap{width:200px;height:200px}.wechat-qr{width:180px;height:180px}.wechat-qr-wrap.is-official{width:min(294px,100%);height:394px;padding:4px}}.user-chip{color:var(--ink-faint);margin:8px 4px 16px;font-size:12px;line-height:1.6}.user-chip button{color:var(--blue);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px;font-weight:500}.user-chip button:hover{opacity:.72}.child-switch-wrap{margin:0 4px 10px}.child-switch-wrap.is-busy{opacity:.62;pointer-events:none}.child-switch-group+.child-switch-group{margin-top:8px}.child-switch-studio{color:var(--nav-ink-soft);letter-spacing:.04em;margin:0 2px 6px;font-size:11px}.child-switch-group.is-remote .child-switch-studio{opacity:.78}.child-switch-empty{color:var(--nav-ink-soft);margin:0 2px;font-size:12px}.child-switch{flex-wrap:wrap;gap:6px;display:flex}.child-switch button{border:1px solid var(--nav-line);color:var(--nav-ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-family:inherit;font-size:12px}.child-switch button.selected{color:var(--wood-deep);background:var(--nav-gold);border-color:#0000;font-weight:600}.child-switch-group.is-remote button{opacity:.78}.studio-pick{flex-direction:column;gap:10px;margin-top:4px;display:flex}.studio-pick-title{margin:0;font-size:14px;font-weight:600}.studio-pick-list{flex-direction:column;gap:8px;display:flex}.studio-pick-item{text-align:left;border:1px solid var(--line);background:var(--bg-raised);width:100%;color:inherit;border-radius:var(--radius-md);cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;font-family:inherit;display:flex}.studio-pick-item:hover{background:var(--fill-hover)}.studio-pick-name{font-size:15px;font-weight:600}.studio-pick-meta{color:var(--ink-faint);font-size:12px}.student-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.student-card{border-radius:var(--radius-md);background:var(--bg-raised);cursor:pointer;text-align:left;color:inherit;transition:background .15s var(--ease);border:none;padding:16px 14px;font-family:inherit}.student-card:hover{background:var(--fill-hover)}.student-card .nick{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;font-size:17px;font-weight:600;display:flex}.student-card .meta{color:var(--ink-faint);font-size:12px;line-height:1.6}.tl-page .page-sub{margin-bottom:16px}.tl-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.tl-toolbar .chip-row{margin-bottom:0}.tl-upload{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tl-upload .chip-row{margin-bottom:0}@media (width<=767px){.tl-toolbar{flex-direction:column;align-items:stretch;gap:10px}}.tl-day{margin:0 0 22px}.tl-day-label{color:var(--ink-faint);letter-spacing:.01em;margin:0 0 10px;font-size:13px;font-weight:600}.timeline{flex-direction:column;gap:12px;display:flex}.tl-item{border-left:2px solid var(--brand-100);padding:0 0 2px 16px;position:relative}.tl-item:before{content:"";background:var(--blue);border-radius:50%;width:8px;height:8px;position:absolute;top:8px;left:-5px}.tl-item.is-work:before{background:var(--teal)}.tl-kicker{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.tl-kind{border-radius:var(--pill);background:var(--blue-soft);color:var(--blue);padding:1px 8px;font-size:11px;font-weight:600}.tl-kind.is-work{background:var(--bg-sunken);color:var(--ink-soft)}.tl-vis{color:var(--ink-faint);font-size:12px}.tl-time{color:var(--ink-faint);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.tl-title{margin-bottom:6px;font-size:15px;font-weight:600}.tl-lead{color:var(--ink);font-size:15px;font-weight:600;line-height:1.45}.tl-body{color:var(--ink-soft);font-size:13px;line-height:1.7}.tl-fb>summary{cursor:pointer;padding-right:18px;list-style:none;position:relative}.tl-fb>summary::-webkit-details-marker{display:none}.tl-fb>summary:after{content:"";border-right:1.5px solid var(--ink-faint);border-bottom:1.5px solid var(--ink-faint);width:6px;height:6px;position:absolute;top:10px;right:2px;transform:rotate(45deg)}.tl-fb[open]>summary:after{top:14px;transform:rotate(-135deg)}.tl-more{flex-direction:column;gap:8px;margin:10px 0 0;display:flex}.tl-more dt{color:var(--ink-faint);margin:0 0 2px;font-size:11px;font-weight:600}.tl-more dd{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.6}.tl-play,.tl-player{margin-top:8px}.tl-player audio,.tl-player video{width:100%;max-width:100%;display:block}.feedback-form .chip-row{margin-top:6px}.timer-pill{font-variant-numeric:tabular-nums;color:var(--blue);font-size:13px;font-weight:600}.timer-pill.warn{color:var(--red)}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=767px){.two-col{grid-template-columns:1fr}}.muted{color:var(--ink-soft);font-size:14px;line-height:1.5}.muted a{color:var(--blue);text-decoration:none}.muted a:hover{text-decoration:underline}.invite-body{flex-wrap:wrap;align-items:flex-start;gap:20px;margin-top:12px;display:flex}.invite-qr-wrap{text-align:center}.invite-qr{border:1px solid var(--line);background:#fff;border-radius:12px;width:196px;height:196px;display:block}.invite-qr-placeholder{color:var(--ink-faint);justify-content:center;align-items:center;font-size:13px;display:flex}.invite-slots{color:var(--ink-soft);margin-top:8px;font-size:13px;font-weight:600}.invite-actions{flex:1;min-width:220px}.invite-actions .btn-row{margin-top:10px}.tag{border-radius:var(--pill);background:var(--blue-soft);color:var(--blue);margin-right:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.stat-row{flex-wrap:wrap;gap:14px;margin-bottom:16px;display:flex}.stat{background:var(--bg-raised);border:none;border-radius:16px;flex:1;min-width:120px;padding:18px 20px}.stat .n{letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:32px;font-weight:600;line-height:1.05}.stat .l{color:var(--ink-faint);margin-top:6px;font-size:13px}.dim-list{margin-top:12px}.dim-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:8px 2px;display:flex}.dim-row:last-child{border-bottom:none}.dim-label{color:var(--ink-soft);flex:1;font-size:14px}.dim-score{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.delta{font-variant-numeric:tabular-nums;border-radius:var(--pill);text-align:center;min-width:40px;padding:1px 8px;font-size:12px;font-weight:700}.delta-up{background:var(--green-soft);color:var(--green)}.delta-down{background:var(--red-soft);color:var(--red)}.delta-flat{background:var(--bg-sunken);color:var(--ink-faint)}.card-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.input-inline{border-radius:var(--pill);width:auto;padding:6px 12px;font-size:13px}.trend-wrap{max-width:none;margin:0}.trend-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.trend-toolbar .chip-row{margin:0}.medal-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.medal{border-radius:var(--radius-md);text-align:center;background:var(--bg-raised);border:none;padding:16px}.medal.unlocked{background:linear-gradient(180deg, var(--blue-soft), var(--bg-raised));border-color:var(--blue);box-shadow:var(--sh-sm)}.medal.locked{opacity:.75}.medal-glyph{margin-bottom:6px;font-size:26px;line-height:1}.medal-name{color:var(--ink);font-size:14px;font-weight:700}.medal-hint{color:var(--ink-faint);margin-top:3px;font-size:12px;line-height:1.5}.medal-progress{align-items:center;gap:8px;margin-top:8px;display:flex}.medal-frac{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:11px}.progress-track{border-radius:var(--pill);background:var(--bg-sunken);height:8px;overflow:hidden}.progress-track.sm{flex:1;height:6px}.progress-fill{border-radius:var(--pill);background:var(--blue);height:100%;transition:width .6s var(--ease)}.next-medal-card{border:1px solid var(--blue);background:linear-gradient(180deg, var(--blue-soft), var(--bg-raised))}.next-medal-name{color:var(--ink);margin:2px 0;font-size:18px;font-weight:700}.empty-state{text-align:center;padding:40px 24px}.empty-glyph{color:var(--blue);margin-bottom:10px;font-size:40px;line-height:1}.empty-title{color:var(--ink);margin:0 0 6px;font-size:17px;font-weight:700}.tl-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-md);margin:12px 0}.gen-link{color:var(--ink-faint);margin-top:12px;font-size:12px;line-height:1.6}.gen-link a{color:var(--blue);font-weight:600;text-decoration:none}.gen-link a:hover{text-decoration:underline}.cal-nav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.cal-week,.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-weekday{text-align:center;color:var(--ink-faint);padding:4px 0 8px;font-size:12px}.cal-cell{appearance:none;background:var(--bg-sunken);border-radius:var(--radius-sm);cursor:pointer;min-height:64px;color:var(--ink);text-align:left;transition:border-color .15s var(--ease), background .15s var(--ease);border:1px solid #0000;flex-direction:column;align-items:flex-start;gap:6px;padding:6px 4px 8px;display:flex}.cal-cell.empty{cursor:default;background:0 0;min-height:24px}.cal-cell:hover:not(.empty){background:var(--fill-hover)}.cal-cell.today{background:0 0}.cal-cell.today .cal-num{background:var(--blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.cal-cell.selected{background:var(--fill-active);box-shadow:none}.cal-num{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.cal-count{font-variant-numeric:tabular-nums;color:var(--blue);background:var(--blue-soft);border-radius:var(--pill);text-align:center;min-width:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.cal-dots{flex-wrap:wrap;gap:3px;display:flex}.cal-dot{border-radius:50%;width:7px;height:7px;display:inline-block}.cal-dot.cal-kind-lesson{background:var(--blue)}.tag.cal-kind-lesson{background:var(--blue-soft);color:var(--blue)}.cal-dot.cal-kind-activity{background:var(--purple)}.tag.cal-kind-activity{color:var(--purple);background:#eeedfb}.cal-dot.cal-kind-exam{background:var(--red)}.tag.cal-kind-exam{background:var(--red-soft);color:#9b1c1c}.cal-dot.cal-kind-performance{background:#c9a227}.tag.cal-kind-performance{color:#7a5b10;background:#f8f1d8}.cal-dot.cal-kind-homework{background:var(--orange)}.tag.cal-kind-homework{background:var(--orange-soft);color:#8a5600}.cal-dot.cal-kind-other{background:var(--teal)}.tag.cal-kind-other{color:#1a7a88;background:#e6f6f8}.cal-legend{color:var(--ink-faint);flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12px;display:flex}.cal-leg{align-items:center;gap:6px;display:flex}.cal-split{grid-template-columns:1fr 1fr;gap:18px;display:grid}.cal-item{border-top:1px solid var(--line);padding:10px 0}.cal-item:first-of-type{border-top:none;padding-top:0}.cal-item-head{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;display:flex}.cal-item-head .task-name{flex:1;min-width:0}.cal-item-body{padding:8px 0 4px}.cal-notes{color:var(--ink-soft);margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.7}.cal-check{color:var(--ink-soft);align-items:center;gap:8px;margin:8px 0;font-size:14px;display:flex}.cal-check input{width:auto;accent-color:var(--blue)}.cal-scope{margin:0 0 14px}.cal-scope-gap{flex:1;min-width:8px}.cal-week-hint{color:var(--ink-faint);margin:-6px 0 10px;font-size:12px}.cal-weekboard{border:1px solid var(--line);background:var(--bg-raised);border-radius:12px;overflow:hidden}.cal-dayboard .cal-week-headrow,.cal-dayboard .cal-week-allday,.cal-dayboard .cal-week-timed{grid-template-columns:52px minmax(0,1fr)}.cal-dayboard .cal-weekboard{margin-bottom:8px}.cal-week-headrow,.cal-week-allday,.cal-week-timed{grid-template-columns:52px repeat(7,minmax(0,1fr));display:grid}.cal-week-gutter{color:var(--ink-faint);text-align:right;padding:6px 4px 0 0;font-size:10px}.cal-weekcol-head{border:0;border-bottom:1px solid var(--line);cursor:pointer;width:100%;color:inherit;background:0 0;flex-direction:column;align-items:center;gap:2px;padding:8px 0;display:flex}.cal-weekcol-head.today{background:0 0}.cal-weekcol-head.today .cal-weekcol-d{background:var(--blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.cal-weekcol-head.selected{box-shadow:none;background:var(--fill-active)}.cal-weekcol-w{color:var(--ink-faint);font-size:11px}.cal-weekcol-d{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.cal-week-allday{border-bottom:1px solid var(--line);background:var(--bg-sunken);min-height:44px}.cal-week-allday-col{border-left:1px solid var(--line);min-height:44px;padding:4px}.cal-week-allday-col.today{background:var(--blue-soft)}.cal-week-scroll{scrollbar-gutter:stable;max-height:560px;overflow:auto}.cal-week-headrow,.cal-week-allday{scrollbar-gutter:stable;overflow:hidden}.cal-week-timed,.cal-week-hours{position:relative}.cal-week-hour{color:var(--ink-faint);font-size:10px;transform:translateY(-7px)}.cal-week-col{border-left:1px solid var(--line);touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;position:relative}.cal-week-col.today{background:color-mix(in srgb, var(--blue-soft) 55%, transparent)}.cal-week-col.selected{box-shadow:inset 0 0 0 1px var(--blue)}.cal-week-col.drop{background:color-mix(in srgb, var(--blue) 8%, transparent)}.cal-week-col.holding{background:color-mix(in srgb, var(--blue) 14%, transparent)}.cal-week-hline{border-top:1px solid var(--line);pointer-events:none;position:absolute;left:0;right:0}.cal-week-block{z-index:1;text-align:left;cursor:pointer;color:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 6%, transparent);border:0;border-radius:8px;padding:4px 7px 8px;position:absolute;overflow:hidden}.cal-week-block.draggable{cursor:grab;touch-action:none}.cal-week-block.dragging,.cal-week-ev.dragging{opacity:.72;cursor:grabbing;z-index:3}.cal-dragging{-webkit-user-select:none;user-select:none}.cal-week-resize{cursor:ns-resize;border-radius:0 0 8px 8px;height:10px;position:absolute;bottom:0;left:8px;right:8px}.cal-week-resize:after{content:"";background:color-mix(in srgb, var(--ink) 22%, transparent);border-radius:99px;width:28px;height:3px;margin:4px auto 0;display:block}.cal-week-empty{color:var(--ink-faint);text-align:center;padding:8px 0;font-size:11px}.cal-week-ev{text-align:left;cursor:pointer;width:100%;color:inherit;border:0;border-radius:8px;margin-bottom:6px;padding:6px 7px;display:block}.cal-week-ev.draggable{cursor:grab;touch-action:none}.cal-cell-edit{cursor:pointer;min-height:92px;overflow:hidden}.cal-month-evs{flex-direction:column;gap:3px;width:100%;min-width:0;display:flex}.cal-month-ev{text-overflow:ellipsis;white-space:nowrap;text-align:left;cursor:grab;width:100%;color:inherit;border:0;border-radius:6px;padding:2px 5px;font-size:11px;line-height:1.35;display:block;overflow:hidden}.cal-month-more{color:var(--ink-faint);padding-left:4px;font-size:11px}.cal-week-ev.cal-kind-lesson,.cal-week-block.cal-kind-lesson,.cal-month-ev.cal-kind-lesson{background:var(--blue-soft)}.cal-week-ev.cal-kind-activity,.cal-week-block.cal-kind-activity,.cal-month-ev.cal-kind-activity{background:#eeedfb}.cal-week-ev.cal-kind-exam,.cal-week-block.cal-kind-exam,.cal-month-ev.cal-kind-exam{background:var(--red-soft)}.cal-week-ev.cal-kind-performance,.cal-week-block.cal-kind-performance,.cal-month-ev.cal-kind-performance{background:#f8f1d8}.cal-week-ev.cal-kind-homework,.cal-week-block.cal-kind-homework,.cal-month-ev.cal-kind-homework{background:var(--orange-soft)}.cal-week-ev.cal-kind-other,.cal-week-block.cal-kind-other,.cal-month-ev.cal-kind-other{background:#e6f6f8}.cal-week-ev.cal-st-pending,.cal-week-block.cal-st-pending,.cal-month-ev.cal-st-pending,.cal-item-pending{background-image:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--blue-soft) 88%, transparent), color-mix(in srgb, var(--blue-soft) 88%, transparent) 5px, transparent 5px, transparent 10px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--blue) 55%, transparent);outline:1px dashed var(--blue);outline-offset:-1px}.tag.cal-st-pending{background:var(--blue-soft);color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.booking-decide{margin:8px 0 4px}.booking-decide-hint{margin:0 0 8px}.booking-propose{border:1px dashed var(--line-strong);background:color-mix(in srgb, var(--blue-soft) 45%, transparent);border-radius:10px;margin-top:10px;padding:10px 12px}.cal-week-ev.cal-st-cancelled,.cal-week-block.cal-st-cancelled,.cal-month-ev.cal-st-cancelled{opacity:.55;text-decoration:line-through}.cal-week-ev.cal-st-closed,.cal-week-block.cal-st-closed,.cal-month-ev.cal-st-closed{opacity:.78}.cal-week-ev-kicker{opacity:.75;font-size:10px;display:block}.cal-week-ev-title{font-size:12px;font-weight:600;line-height:1.35;display:block}.cal-item-muted{opacity:.72}.tag.cal-st-cancelled{background:var(--line);color:var(--ink-faint)}.tag.cal-st-closed{background:var(--green-soft);color:#1e7e34}.cal-today{margin-bottom:14px}.cal-today-row{text-align:left;border:0;border-top:1px solid var(--line);cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;align-items:center;gap:8px;padding:10px 0;display:flex}.cal-today-row .task-name{flex:1;min-width:0}.cal-tt-block-btn{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit}.cal-tt-block-btn.selected{box-shadow:inset 0 0 0 1px var(--blue)}.cal-day-row-btn{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;border:0;display:block}.cal-day-row-btn.selected{background:var(--blue-soft);border-radius:8px}.cal-day-focus{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.cal-day-focus-pending{border:1px solid color-mix(in srgb, var(--gold) 35%, var(--line));background:color-mix(in srgb, var(--gold-soft,#f6ecd4) 55%, var(--panel));border-radius:12px;margin-top:0;margin-bottom:12px;padding:12px 12px 10px}@media (width<=900px){.cal-weekboard{overflow-x:auto}.cal-week-headrow,.cal-week-allday,.cal-week-timed{min-width:760px}.cal-dayboard .cal-week-headrow,.cal-dayboard .cal-week-allday,.cal-dayboard .cal-week-timed{min-width:0}}@media (width<=1100px) and ((hover:none) or (pointer:coarse)){.cal-week-headrow,.cal-week-allday,.cal-week-timed{min-width:0}}@media (width<=767px){.cal-weekboard{overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto hidden}.cal-week-scroll{scrollbar-gutter:auto;max-height:none;overflow:visible}.cal-week-headrow,.cal-week-allday{scrollbar-gutter:auto}.cal-week-block.draggable,.cal-week-ev.draggable,.cal-week-resize{touch-action:pan-y;cursor:pointer}.cal-nav .card-title{text-align:center;flex:1;min-width:0;font-size:16px}.student-table-card{overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x pan-y;max-width:100%}}.cal-sum-row{flex-wrap:wrap;gap:10px;margin:0 0 14px;display:flex}.cal-sum{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-md);min-width:92px;box-shadow:var(--sh-xs);flex:1;padding:10px 12px}.cal-sum .n{letter-spacing:-.02em;color:var(--blue);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.cal-sum .l{color:var(--ink-faint);margin-top:2px;font-size:12px}.cal-group-title{color:var(--ink-faint);letter-spacing:.06em;margin:14px 0 4px;font-size:12px;font-weight:700}.cal-group-title:first-child{margin-top:0}.cal-stu-row{appearance:none;width:100%;color:inherit;cursor:pointer;text-align:left;border:0;border-top:1px solid var(--line);background:0 0;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 0;font-family:inherit;font-size:13px;display:flex}.cal-stu-row:first-of-type{border-top:none}.cal-stu-name{min-width:3em;font-weight:600}.cal-stu-meta{color:var(--ink-soft);text-align:right;flex:1;line-height:1.6}@media (width<=860px){.cal-split{grid-template-columns:1fr}.cal-cell{min-height:52px}}.hw-list{margin-top:4px}.hw-row{border-bottom:1px solid var(--line)}.hw-row:last-child{border-bottom:none}.hw-row-top{align-items:flex-start;gap:12px;padding:12px 2px;display:flex}.hw-box{border:2px solid var(--line-strong);background:var(--bg-raised);color:#fff;cursor:pointer;border-radius:6px;flex-shrink:0;width:22px;height:22px;margin-top:2px;padding:0;font-family:inherit;font-size:13px;line-height:18px}.hw-box.on{background:var(--cta-gold-fill);border-color:var(--cta-gold-line);color:var(--cta-gold-ink);box-shadow:var(--cta-gold-glow)}.hw-box.overdue{border-color:var(--red)}.hw-box:disabled{cursor:default;opacity:.85}.hw-main{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:3px;padding:0;font-family:inherit;display:flex}.hw-row.done .task-name{color:var(--ink-faint);text-decoration:line-through}.hw-row.overdue .task-meta{color:var(--red)}.hw-row-body{padding:0 2px 12px 34px}.hw-media{padding:0 2px 18px 34px}.hw-works{flex-direction:column;gap:10px;margin:10px 0 4px;display:flex}.hw-work{border:1px solid var(--line);background:var(--bg-sunken);border-radius:12px;padding:10px 12px}.hw-work-kicker{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 8px;display:flex}.hw-work audio,.hw-work video{width:100%;display:block}.hw-work video{background:#111;border-radius:8px;max-height:220px}.hw-feedback{flex-direction:column;gap:8px;margin:4px 0 8px;display:flex;position:relative}.hw-feedback .field-label{margin-top:4px}.hw-file-native{clip:rect(0, 0, 0, 0);white-space:nowrap;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hw-file-btn{cursor:pointer;align-self:flex-start}.hw-file-btn.is-busy{pointer-events:none;opacity:.7}@media (width<=720px){.hw-file-btn{justify-content:center;width:100%}}.hw-progress-wrap{margin:4px 0 8px}.hw-progress{background:var(--bg-sunken);border-radius:99px;height:6px;overflow:hidden}.hw-progress>span{background:var(--blue);border-radius:99px;height:100%;display:block}.pf-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.pf-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.pf-stage{background:var(--bg-sunken);justify-content:center;align-items:center;min-height:140px;padding:12px;display:flex}.pf-stage audio,.pf-stage video{width:100%;max-height:220px;display:block}.pf-play{color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:18px;display:flex}.pf-play:disabled{opacity:.6;cursor:default}.pf-play-icon{background:var(--cta-gold-fill);width:52px;height:52px;color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow);border-radius:50%;place-items:center;padding-left:3px;font-size:18px;display:grid}.pf-body{padding:14px 16px 16px}.pf-kicker{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.pf-title{margin:0 0 4px;font-size:16px;font-weight:650;line-height:1.35}.pf-kicker .task-badge{margin-left:0}.sprite-root{--sprite-nav:var(--nav-w);--sprite-main:1080px;z-index:80;right:max(36px, calc(100vw - var(--sprite-nav) - var(--sprite-main) + 36px));pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:56px}.shell-indie .sprite-root{--sprite-nav:0px}.sprite-root.is-moved{bottom:56px;right:36px}.sprite-root>*{pointer-events:auto}.sprite-orb{box-sizing:border-box;background:var(--bg-raised);width:56px;height:56px;color:inherit;cursor:grab;animation:sprite-idle 3.2s var(--ease) infinite;touch-action:none;appearance:none;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;margin:0;padding:2px;font-size:0;line-height:0;position:relative;box-shadow:0 6px 20px #33526b3d,0 0 0 1px #0000000a}.sprite-orb:active{cursor:grabbing}.sprite-orb .sprite-face-video{pointer-events:none;object-fit:contain;filter:drop-shadow(0 10px 18px #141c2447);background:0 0;width:100%;height:100%}.sprite-orb .sprite-face-video.sprite-skin-jing{mix-blend-mode:screen}.sprite-orb:has(.sprite-face-video){width:88px;height:88px;box-shadow:none;background:0 0;border-radius:0;padding:0;animation:none;overflow:visible}:is(.sprite-orb:has(.sprite-skin-tuohai),.sprite-orb:has(.sprite-skin-tianjing)){width:72px;height:112px}:is(.sprite-root.mood-listen .sprite-orb:has(.sprite-face-video),.sprite-root.mood-speak .sprite-orb:has(.sprite-face-video),.sprite-root.mood-think .sprite-orb:has(.sprite-face-video),.sprite-root.mood-alert .sprite-orb:has(.sprite-face-video),.sprite-root.mood-happy .sprite-orb:has(.sprite-face-video),.sprite-root.mood-error .sprite-orb:has(.sprite-face-video)){box-shadow:none;animation:none}.sprite-root.mood-listen .sprite-orb{animation:.9s ease-in-out infinite sprite-listen;box-shadow:0 0 0 8px #33526b33,0 8px 24px #33526b52}.sprite-root.mood-speak .sprite-orb{animation:.7s ease-in-out infinite sprite-listen;box-shadow:0 0 0 7px #33526b2e,0 8px 24px #33526b4d}.sprite-root.mood-think .sprite-orb{animation:1.4s ease-in-out infinite sprite-think-orb}.sprite-root.mood-alert .sprite-orb{animation:1.1s ease-in-out infinite sprite-alert-nudge}.sprite-root.mood-happy .sprite-orb{animation:sprite-happy-hop .7s var(--ease)}.sprite-root.mood-error .sprite-orb{animation:.45s ease-in-out sprite-error-shake}.sprite-face{width:100%;height:100%;display:block}.sprite-note-body{transform-origin:50% 58%}.sprite-note-waves,.sprite-note-spark{opacity:0}.sprite-face.is-listen .sprite-note-body{animation:.45s ease-in-out infinite sprite-note-bob}.sprite-face.is-think .sprite-note-body{animation:1.2s ease-in-out infinite sprite-note-think}.sprite-face.is-speak .sprite-note-body{animation:.28s ease-in-out infinite sprite-note-speak}.sprite-face.is-speak .sprite-note-waves{opacity:1}.sprite-face.is-speak .sprite-wave.w1{animation:.7s ease-out infinite sprite-wave}.sprite-face.is-speak .sprite-wave.w2{animation:.7s ease-out .18s infinite sprite-wave}.sprite-face.is-alert .sprite-note-body{animation:.9s ease-in-out infinite sprite-note-alert}.sprite-face.is-happy .sprite-note-body{animation:sprite-note-happy .7s var(--ease)}.sprite-face.is-happy .sprite-note-spark{opacity:1;animation:sprite-spark .7s var(--ease)}.sprite-face.is-error .sprite-note-body{animation:.5s ease-in-out both sprite-note-droop}.jing-body-bob{transform-box:fill-box;transform-origin:50% 88%;animation:3.6s ease-in-out infinite jing-breathe}.jing-flag{transform-box:fill-box;transform-origin:0 60%;animation:2.8s ease-in-out infinite jing-flag}.jing-eye{transform-box:fill-box;transform-origin:50%;animation:4.6s ease-in-out infinite jing-blink}.jing-eye-r{animation-delay:50ms}.jing-eyes{transform-box:fill-box;transition:transform .28s var(--ease), opacity .18s ease}.jing-eyes-dizzy{opacity:0;transition:opacity .18s}.jing-mouth{transition:opacity .15s}.jing-mouth-open,.jing-mouth-wavy{opacity:0}.jing-mouth-oval{transform-box:fill-box;transform-origin:50%}.jing-alert-mark{opacity:0;transform-box:fill-box;transform-origin:50%}.jing-notes{opacity:0}.jing-note{transform-box:fill-box;transform-origin:50%}.jing-think-dots{opacity:0}.jing-think-dots circle{transform-box:fill-box;transform-origin:50%}.jing-arm{transform-box:fill-box;transition:transform .3s var(--ease)}.jing-arm-l{transform-origin:100% 10%}.jing-arm-r{transform-origin:0 10%}.jing-stem{transform-box:fill-box;transform-origin:50% 100%}.sprite-face.is-listen .jing-stem{animation:.9s ease-in-out infinite jing-stem-wiggle}.sprite-face.is-listen .jing-mouth-smile{opacity:0}.sprite-face.is-listen .jing-mouth-open{opacity:1}.sprite-face.is-listen .jing-mouth-oval{transform:scale(.62)}.sprite-face.is-think .jing-eyes{transform:translate(1.6px,-2px)}.sprite-face.is-think .jing-think-dots{opacity:1}.sprite-face.is-think .jing-think-dots .d1{animation:1.2s ease-in-out infinite jing-dot}.sprite-face.is-think .jing-think-dots .d2{animation:1.2s ease-in-out .2s infinite jing-dot}.sprite-face.is-think .jing-think-dots .d3{animation:1.2s ease-in-out .4s infinite jing-dot}.sprite-face.is-speak .jing-mouth-smile{opacity:0}.sprite-face.is-speak .jing-mouth-open{opacity:1}.sprite-face.is-speak .jing-mouth-oval{animation:.3s ease-in-out infinite jing-talk}.sprite-face.is-alert .jing-alert-mark{opacity:1;animation:1.1s ease-in-out infinite jing-pop}.sprite-face.is-alert .jing-body-bob{animation:1.1s ease-in-out infinite jing-lean}.sprite-face.is-happy .jing-mouth-smile{opacity:0}.sprite-face.is-happy .jing-mouth-open{opacity:1}.sprite-face.is-happy .jing-mouth-oval{transform:scaleY(1.2)}.sprite-face.is-happy .jing-arm-l{transform:rotate(-132deg)translateY(-1px)}.sprite-face.is-happy .jing-arm-r{transform:rotate(132deg)translateY(-1px)}.sprite-face.is-happy .jing-notes{opacity:1}.sprite-face.is-happy .jing-note.n1{animation:jing-note-fly .9s var(--ease)}.sprite-face.is-happy .jing-note.n2{animation:jing-note-fly .9s .12s var(--ease)}.sprite-face.is-error .jing-eyes{opacity:0}.sprite-face.is-error .jing-eyes-dizzy{opacity:1}.sprite-face.is-error .jing-mouth-smile{opacity:0}.sprite-face.is-error .jing-mouth-wavy{opacity:1}.sprite-face.is-error .jing-stem{transform:rotate(14deg)}@keyframes jing-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,.992)translateY(.6px)}}@keyframes jing-flag{0%,to{transform:rotate(0)}50%{transform:rotate(7deg)}}@keyframes jing-blink{0%,90.5%,96.5%,to{transform:scaleY(1)}93.5%{transform:scaleY(.06)}}@keyframes jing-talk{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1.15)}}@keyframes jing-pop{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2.4px)scale(1.1)}}@keyframes jing-lean{0%,to{transform:rotate(0)}35%{transform:rotate(-4deg)translateY(-1px)}70%{transform:rotate(3.5deg)}}@keyframes jing-stem-wiggle{0%,to{transform:rotate(0)}30%{transform:rotate(-9deg)}65%{transform:rotate(8deg)}}@keyframes jing-dot{0%,to{opacity:.25;transform:scale(.85)}45%{opacity:1;transform:scale(1.12)}}@keyframes jing-note-fly{0%{opacity:0;transform:translateY(4px)scale(.5)rotate(0)}35%{opacity:1}to{opacity:0;transform:translateY(-9px)scale(1.05)rotate(-14deg)}}.sprite-badge{border-radius:var(--pill);background:var(--red);color:#fff;text-align:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-2px;right:-2px}.sprite-panel{background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--bg-raised) 40%, #ffffff80);border-radius:20px;flex-direction:column;width:min(340px,100vw - 24px);max-height:min(560px,100vh - 120px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff61,0 24px 64px -16px #1b241f47}.sprite-head{align-items:center;gap:10px;padding:12px 12px 10px 14px;display:flex}.sprite-head-face{width:44px;height:44px;box-shadow:none;cursor:pointer;appearance:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:0;flex:none;margin:0;padding:0;overflow:visible}.sprite-head-face .sprite-face-video{object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 8px #141c2438);background:0 0;width:100%;height:100%}.sprite-head-face:has(.sprite-skin-jing){background:0 0;width:56px;height:56px;overflow:visible}.sprite-head-face .sprite-face-video.sprite-skin-jing{mix-blend-mode:normal;filter:drop-shadow(0 3px 6px #141c2438);width:100%;height:100%;margin:0}:is(.sprite-head-face:has(.sprite-skin-tuohai),.sprite-head-face:has(.sprite-skin-tianjing)){width:34px;height:56px}.sprite-head-face:focus-visible{outline:2px solid color-mix(in srgb, var(--blue) 55%, transparent);outline-offset:2px}.sprite-head-copy{flex:1;min-width:0}.sprite-head-copy strong{font-size:15px;line-height:1.2;display:block}.sprite-head-copy span{color:var(--ink-faint);margin-top:2px;font-size:11px;display:block}.sprite-head-actions{flex:none;align-items:center;gap:2px;margin-left:auto;display:flex}.sprite-fs{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px;line-height:0;display:none}.sprite-fs:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}.sprite-fs svg{display:block}.sprite-x{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.sprite-voice{border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);background:color-mix(in srgb, var(--bg-raised) 28%, transparent);align-items:center;gap:8px;padding:8px 12px 10px;display:flex}.sprite-voice>span{color:var(--ink-faint);flex:none;font-size:12px;font-weight:600}.sprite-voice em{min-width:0;color:var(--ink-faint);flex:1;font-size:12px;font-style:normal}.sprite-voice select{background:color-mix(in srgb, var(--bg-raised) 52%, transparent);flex:1;min-width:0;margin:0;padding:5px 8px;font-size:12px}.sprite-voice .btn{flex-shrink:0;padding:5px 10px;font-size:12px}.sprite-scroll{flex-direction:column;flex:1;gap:10px;min-height:160px;max-height:280px;padding:12px;display:flex;overflow:auto}.sprite-msg{align-items:flex-start;gap:8px;max-width:100%;display:flex}.sprite-msg.mine{flex-direction:row;justify-content:flex-end;align-self:stretch}.sprite-msg.theirs{flex-direction:row;justify-content:flex-start;align-self:stretch}.sprite-msg-avatar{width:36px;height:36px;color:var(--ink);background:color-mix(in srgb, var(--blue-soft) 80%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--line) 70%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.sprite-msg-avatar img{object-fit:cover;width:100%;height:100%}.sprite-msg-col{flex-direction:column;gap:3px;min-width:0;max-width:min(78%,280px);display:flex}.sprite-msg.mine .sprite-msg-col{align-items:flex-end}.sprite-msg.theirs .sprite-msg-col{align-items:flex-start}.sprite-time-chip{text-align:center;width:100%;color:var(--ink-faint);letter-spacing:.02em;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;align-self:center;padding:6px 0 2px;font-size:11px;line-height:1.2}.sprite-time-chip time{font-variant-numeric:tabular-nums}.sprite-bubble{word-break:break-word;white-space:pre-line;border-radius:14px;max-width:100%;padding:8px 12px;font-size:13px;line-height:1.55}.sprite-bubble.sprite{background:color-mix(in srgb, var(--blue-soft) 72%, transparent);color:var(--ink);border-top-left-radius:4px;align-self:flex-start}.sprite-bubble.user{background:color-mix(in srgb, var(--ink) 82%, transparent);color:#fff;border-top-right-radius:4px;align-self:flex-end}.sprite-at-sheet{z-index:8;pointer-events:none;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.sprite-at-sheet.open,.sprite-at-sheet.closing{pointer-events:auto}.sprite-at-backdrop{cursor:pointer;background:color-mix(in srgb, var(--ink) 28%, transparent);opacity:0;border:0;margin:0;padding:0;transition:opacity .32s;position:absolute;inset:0}.sprite-at-sheet.open .sprite-at-backdrop{opacity:1}.sprite-at-sheet.closing .sprite-at-backdrop{opacity:0}.sprite-at-panel{z-index:1;background:color-mix(in srgb, var(--bg-raised) 96%, transparent);border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);width:100%;height:min(72%,380px);max-height:72%;box-shadow:0 -12px 40px color-mix(in srgb, var(--ink) 14%, transparent);border-radius:18px 18px 0 0;flex-direction:column;transition:transform .34s cubic-bezier(.22,1,.36,1);display:flex;position:relative;overflow:hidden;transform:translateY(108%)}.sprite-at-sheet.open .sprite-at-panel{transform:translateY(0)}.sprite-at-sheet.closing .sprite-at-panel{transition-timing-function:cubic-bezier(.4,0,.7,.2);transform:translateY(108%)}.sprite-at-handle{background:color-mix(in srgb, var(--ink-faint) 55%, transparent);border-radius:999px;flex:none;width:36px;height:4px;margin:10px auto 4px}.sprite-at-head{flex-direction:column;flex:none;gap:2px;padding:4px 16px 10px;display:flex}.sprite-at-head strong{color:var(--ink);font-size:15px;font-weight:650}.sprite-at-head span{color:var(--ink-faint);font-size:12px}.sprite-at-list{-webkit-overflow-scrolling:touch;flex:1;padding:0 8px 12px;overflow:auto}.sprite-at-empty{color:var(--ink-faint);text-align:center;padding:28px 16px;font-size:13px}.sprite-at-item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:12px 10px;display:flex}.sprite-at-item:hover{background:color-mix(in srgb, var(--blue-soft) 70%, transparent)}.sprite-at-item:active{transform:scale(.985)}.sprite-at-avatar{width:44px;height:44px;color:var(--ink);background:color-mix(in srgb, var(--blue-soft) 85%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--line) 65%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:650;display:inline-flex;overflow:hidden}.sprite-at-avatar img{object-fit:cover;width:100%;height:100%}.sprite-at-copy{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sprite-at-copy strong{font-size:15px;font-weight:650}.sprite-at-copy em{color:var(--ink-faint);font-size:12px;font-style:normal}.sprite-at-unread{background:color-mix(in srgb, var(--ink) 78%, transparent);color:#fff;text-align:center;border-radius:999px;flex:none;min-width:20px;height:20px;padding:0 6px;font-size:11px;line-height:20px}@media (prefers-reduced-motion:reduce){.sprite-at-backdrop,.sprite-at-panel{transition:none}}.sprite-msg.sprite-thinking .sprite-bubble{opacity:.72;font-size:12px;animation:1.2s ease-in-out infinite sprite-think-text}@keyframes sprite-think-text{0%,to{opacity:.45}50%{opacity:.9}}.sprite-meta{opacity:.65;margin-top:4px;font-size:11px}.sprite-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.sprite-capsule{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-raised) 70%, transparent);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500;line-height:1.2}.sprite-capsule:hover{background:color-mix(in srgb, var(--bg-sunken) 55%, transparent)}.sprite-capsule.primary{border-color:color-mix(in srgb, var(--blue) 35%, var(--line));background:color-mix(in srgb, var(--blue-soft) 85%, transparent);color:var(--ink)}.sprite-capsule.primary:hover{background:color-mix(in srgb, var(--blue-soft) 100%, transparent)}.sprite-rate{align-items:center;gap:2px;margin-top:6px;display:flex}.sprite-rate button{width:28px;height:28px;color:var(--ink-faint);opacity:.45;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.sprite-rate button:hover:not(:disabled){opacity:.9;color:var(--ink);background:color-mix(in srgb, var(--bg-sunken) 40%, transparent)}.sprite-rate button.on{opacity:1;color:var(--blue)}.sprite-rate button:disabled{cursor:default}.sprite-rate .sprite-meta{margin-top:0;margin-left:4px}.sprite-chips{flex-wrap:wrap;gap:6px;padding:0 12px 8px;display:flex}.sprite-chips .chip{padding:4px 10px;font-size:12px}.sprite-seg{background:var(--bg-sunken);border:1px solid color-mix(in srgb, var(--line) 85%, transparent);border-radius:12px;flex:none;grid-template-columns:1fr 1fr;gap:4px;margin:0 12px 10px;padding:4px;display:grid}.sprite-seg>button{letter-spacing:.02em;cursor:pointer;min-height:34px;color:var(--ink-soft);transition:background .15s var(--ease,ease), color .15s var(--ease,ease), box-shadow .15s var(--ease,ease);background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex;position:relative}.sprite-seg-ai.is-on{background:color-mix(in srgb, var(--gold-soft) 70%, var(--bg-raised));color:color-mix(in srgb, var(--gold) 55%, var(--ink));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 35%, transparent)}.sprite-seg-mail.is-on{background:color-mix(in srgb, var(--blue-soft) 75%, var(--bg-raised));color:var(--blue);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--blue) 32%, transparent)}.sprite-seg-badge{text-align:center;background:var(--blue);color:#fff;border-radius:980px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-style:normal;font-weight:700;line-height:16px}.sprite-panel.is-ai .sprite-head{background:color-mix(in srgb, var(--gold-soft) 28%, var(--bg-raised))}.sprite-panel.is-ai.is-dock .sprite-head{background:color-mix(in srgb, var(--gold-soft) 22%, var(--bg-raised))}.sprite-panel.is-mail{--sprite-mail-accent:var(--blue);--sprite-mail-soft:var(--blue-soft)}.sprite-panel.is-mail .sprite-head{background:color-mix(in srgb, var(--blue-soft) 42%, var(--bg-raised));border-bottom:1px solid color-mix(in srgb, var(--blue) 14%, var(--line))}.sprite-head-mail-icon{background:color-mix(in srgb, var(--blue-soft) 70%, var(--bg-raised));width:44px;height:44px;color:var(--blue);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--blue) 22%, transparent);border-radius:12px;flex:none;place-items:center;display:grid;position:relative}.sprite-head-mail-at{color:var(--blue);background:var(--bg-raised);border-radius:4px;padding:1px 3px;font-size:10px;font-weight:800;line-height:1;position:absolute;bottom:4px;right:4px}.sprite-mail-list{flex-direction:column;flex:auto;gap:4px;min-height:min(280px,42vh);padding:4px 8px 12px;display:flex;overflow:auto}.sprite-mail-row{text-align:left;width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:10px;display:flex}.sprite-mail-row:hover{background:color-mix(in srgb, var(--blue-soft) 35%, var(--bg-raised));border-color:color-mix(in srgb, var(--blue) 12%, var(--line))}.sprite-mail-row.is-unread{background:color-mix(in srgb, var(--blue-soft) 28%, transparent)}.sprite-mail-row-av{width:36px;height:36px;color:var(--ink);background:color-mix(in srgb, var(--blue-soft) 70%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--blue) 16%, var(--line));border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex;overflow:hidden}.sprite-mail-row-av img{object-fit:cover;width:100%;max-width:100%;height:100%;max-height:100%;display:block}.sprite-panel.is-mail img{max-width:100%;height:auto}.sprite-panel.is-mail .sprite-mail-row-av img,.sprite-panel.is-mail .sprite-at-avatar img{object-fit:cover;width:100%;max-width:100%;height:100%;max-height:100%}.sprite-root.open.is-mail-surface:not(.is-dock) .sprite-orb{display:none}.sprite-mail-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sprite-mail-row-main strong{color:var(--ink);font-size:14px;font-weight:650}.sprite-mail-row-main em{color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-style:normal;overflow:hidden}.sprite-mail-row-badge{background:var(--blue);color:#fff;text-align:center;border-radius:980px;flex:none;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.sprite-mail-empty,.sprite-ai-empty{text-align:left;border-radius:14px;margin:18px 12px;padding:18px 16px}.sprite-mail-empty{background:color-mix(in srgb, var(--blue-soft) 40%, var(--bg-sunken));border:1px solid color-mix(in srgb, var(--blue) 16%, var(--line))}.sprite-ai-empty{background:color-mix(in srgb, var(--gold-soft) 45%, var(--bg-sunken));border:1px solid color-mix(in srgb, var(--gold) 22%, var(--line))}.sprite-mail-empty strong,.sprite-ai-empty strong{color:var(--ink);margin-bottom:6px;font-size:14px;display:block}.sprite-mail-empty p,.sprite-ai-empty p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.5}.sprite-mail-back{color:var(--blue);cursor:pointer;background:0 0;border:none;align-self:flex-start;margin:0 0 10px;padding:4px 2px;font-size:12px;font-weight:600}.sprite-mail-back:hover{text-decoration:underline}.sprite-mail-letter{border:1px solid color-mix(in srgb, var(--blue) 14%, var(--line));background:var(--bg-raised);border-radius:10px;margin:0 0 10px;padding:10px 12px 12px}.sprite-mail-letter.is-in{background:color-mix(in srgb, var(--blue-soft) 32%, var(--bg-raised))}.sprite-mail-letter.is-out{background:color-mix(in srgb, var(--bg-sunken) 70%, var(--bg-raised));border-color:var(--line-strong)}.sprite-mail-letter-head{color:var(--ink-faint);flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:6px;font-size:12px;display:flex}.sprite-mail-letter-head strong{color:var(--ink-soft);font-size:12px;font-weight:650}.sprite-mail-letter-kind{background:color-mix(in srgb, var(--blue-soft) 70%, transparent);color:var(--blue);border-radius:980px;padding:1px 6px;font-size:11px}.sprite-mail-letter-body{color:var(--ink);white-space:pre-wrap;word-break:break-word;margin:0;font-size:14px;line-height:1.55}.sprite-mail-letter-actions{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.sprite-mail-letter-more{appearance:none;color:var(--ink-faint);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:6px;padding:2px 6px;font-size:16px;line-height:1;transition:opacity .12s,background .12s,color .12s}.sprite-mail-letter:hover .sprite-mail-letter-more,.sprite-mail-letter:focus-within .sprite-mail-letter-more,.sprite-mail-letter-more:focus-visible{opacity:1}.sprite-mail-letter-more:hover,.sprite-mail-letter-more:focus-visible{background:color-mix(in srgb, var(--blue-soft) 55%, transparent);color:var(--blue)}@media (hover:none){.sprite-mail-letter-more{opacity:.55}}.sprite-mail-quote{border:0;border-left:3px solid color-mix(in srgb, var(--blue) 55%, transparent);background:color-mix(in srgb, var(--blue-soft) 40%, var(--bg-raised));text-align:left;cursor:pointer;box-sizing:border-box;border-radius:8px;flex-direction:column;gap:2px;width:100%;margin:0 0 8px;padding:8px 10px;display:flex}.sprite-mail-letter.is-out .sprite-mail-quote{background:color-mix(in srgb, var(--bg-sunken) 55%, transparent);border-left-color:color-mix(in srgb, var(--ink) 28%, transparent)}.sprite-mail-quote-label{color:var(--blue);font-size:11px;font-weight:650;line-height:1.3}.sprite-mail-letter.is-out .sprite-mail-quote-label{color:var(--ink-soft)}.sprite-mail-quote-text{color:var(--ink-soft);-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.sprite-mail-quote.is-deleted .sprite-mail-quote-text{color:var(--ink-faint);font-style:italic}.sprite-mail-letter.is-quote-flash{outline:2px solid color-mix(in srgb, var(--blue) 55%, transparent);outline-offset:2px;transition:outline-color .3s}.sprite-mail-quote-bar{background:color-mix(in srgb, var(--blue-soft) 45%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--blue) 22%, var(--line));box-sizing:border-box;border-radius:10px;flex:1 0 100%;align-items:center;gap:8px;margin:0 0 6px;padding:8px 10px;display:flex}.sprite-mail-quote-bar-main{border-left:3px solid var(--blue);flex-direction:column;flex:1;gap:2px;min-width:0;padding-left:10px;display:flex}.sprite-mail-quote-bar-label{color:var(--blue);font-size:11px;font-weight:650;line-height:1.3}.sprite-mail-quote-bar-text{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.sprite-mail-quote-bar-close{width:28px;height:28px;color:var(--ink-soft);background:color-mix(in srgb, var(--bg-sunken) 80%, transparent);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:18px;line-height:1;display:inline-flex}.sprite-mail-quote-bar-close:hover{color:var(--ink)}.sprite-mail-ctx{z-index:10050;background:var(--bg-raised);border:1px solid var(--line-strong);min-width:132px;box-shadow:0 8px 24px color-mix(in srgb, var(--ink) 16%, transparent);border-radius:10px;padding:4px;position:fixed}.sprite-mail-ctx-item{appearance:none;text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 12px;font-size:13px;font-weight:600}.sprite-mail-ctx-item:hover,.sprite-mail-ctx-item:focus-visible{background:color-mix(in srgb, var(--blue-soft) 70%, transparent);color:var(--blue)}.sprite-composer{flex-wrap:wrap}.sprite-composer-label{letter-spacing:.04em;color:var(--ink-faint);flex:1 0 100%;margin:0 0 2px 2px;font-size:11px;font-weight:600}.sprite-composer.is-ai .sprite-composer-label{color:color-mix(in srgb, var(--gold) 45%, var(--ink-faint))}.sprite-composer.is-mail{background:color-mix(in srgb, var(--blue-soft) 22%, var(--bg-raised));border-top-color:color-mix(in srgb, var(--blue) 16%, var(--line))}.sprite-composer.is-mail .sprite-composer-label{color:var(--blue)}.sprite-mail-send{border:1px solid color-mix(in srgb, var(--blue) 45%, var(--line-strong))!important;background:color-mix(in srgb, var(--blue-soft) 65%, var(--bg-raised))!important;color:var(--blue)!important;box-shadow:none!important}.sprite-mail-send:hover:not(:disabled){filter:brightness(1.03)}.sprite-panel.is-mail .sprite-scroll{background:color-mix(in srgb, var(--blue-soft) 12%, var(--bg-raised))}.sprite-mail-bar{border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);background:linear-gradient(105deg, color-mix(in srgb, var(--blue-soft) 28%, transparent) 0%, color-mix(in srgb, var(--blue) 14%, transparent) 42%, color-mix(in srgb, var(--blue-soft) 36%, transparent) 58%, color-mix(in srgb, var(--blue-soft) 22%, transparent) 100%);color:var(--ink);background-size:220% 100%;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;font-size:12px;animation:2.4s ease-in-out infinite sprite-mail-shimmer;display:flex;position:relative;overflow:hidden}.sprite-mail-bar:after{content:"";pointer-events:none;opacity:.55;background:linear-gradient(105deg,#0000 0% 38%,#ffffff8c 50%,#0000 62% 100%) 0 0/220% 100%;animation:2.4s ease-in-out infinite sprite-mail-shimmer;position:absolute;inset:0}@keyframes sprite-mail-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.sprite-mail-bar,.sprite-mail-bar:after{animation:none}}.sprite-mail-bar-label{z-index:1;letter-spacing:.02em;font-weight:600;position:relative}.sprite-mail-at{color:var(--blue);margin-left:1px}.sprite-mail-bar button{z-index:1;color:var(--ink-faint);font:inherit;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:12px;position:relative}.sprite-mail-bar button:hover{color:var(--ink)}.sprite-composer{border-top:1px solid color-mix(in srgb, var(--line) 55%, transparent);background:var(--bg-raised);align-items:center;gap:6px;padding:10px 12px 12px;display:flex}.sprite-composer input{background:var(--bg-sunken);flex:1;margin:0}.sprite-mic{border:1px solid var(--line);background:var(--bg-sunken);width:36px;height:36px;color:var(--ink);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sprite-mic svg{width:18px;height:18px;display:block}.sprite-mic.on{background:var(--red);color:#fff;border-color:var(--red)}.sprite-composer.is-recording{gap:8px}.sprite-mic.is-hold,.sprite-mic.sprite-rec-bar{border-color:color-mix(in srgb, var(--gold) 55%, var(--line));color:#1a150e;-webkit-user-select:none;user-select:none;touch-action:none;cursor:grabbing;background:linear-gradient(#e8d4a8,#d4b46a);border-radius:20px;flex:auto;justify-content:flex-start;gap:10px;width:auto;min-width:0;height:40px;padding:0 14px;box-shadow:inset 0 1px #ffffff73,0 2px 8px #a8821f38}.sprite-rec-dot{background:#c7432f;border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 0 3px #c7432f38}.sprite-rec-wave{flex:auto;align-items:center;gap:2px;min-width:0;height:22px;display:flex}.sprite-rec-bar-seg{transform-origin:50%;will-change:transform;background:#392d16;border-radius:2px;flex:1 1 0;min-width:2px;max-width:4px;height:100%;display:block}.sprite-rec-hint{letter-spacing:.02em;color:#1a150ec7;white-space:nowrap;flex:none;font-size:12px;font-style:normal;font-weight:600}@media (prefers-reduced-motion:reduce){.sprite-rec-bar-seg{transform:scaleY(.45)!important}.sprite-rec-dot{box-shadow:none}}@keyframes sprite-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes sprite-listen{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes sprite-think-orb{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(.97)}}@keyframes sprite-alert-nudge{0%,to{transform:translateY(0)rotate(0)}30%{transform:translateY(-6px)rotate(-6deg)}60%{transform:translateY(-2px)rotate(5deg)}}@keyframes sprite-happy-hop{0%{transform:translateY(0)scale(1)}35%{transform:translateY(-10px)scale(1.08)}70%{transform:translateY(1px)scale(.98)}to{transform:translateY(0)scale(1)}}@keyframes sprite-error-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes sprite-note-bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-3px)rotate(3deg)}}@keyframes sprite-note-think{0%,to{opacity:1;transform:rotate(-4deg)}50%{opacity:.72;transform:rotate(4deg)}}@keyframes sprite-note-speak{0%,to{transform:scaleY(1)rotate(-1deg)}50%{transform:scaleY(1.08)rotate(2deg)}}@keyframes sprite-note-alert{0%,to{transform:rotate(0)}40%{transform:rotate(-8deg)}70%{transform:rotate(7deg)}}@keyframes sprite-note-happy{0%{transform:translateY(0)scale(1)}40%{transform:translateY(-4px)scale(1.08)rotate(-8deg)}to{transform:translateY(0)scale(1)}}@keyframes sprite-note-droop{0%{transform:rotate(0)}to{transform:rotate(12deg)translateY(3px)}}@keyframes sprite-wave{0%{opacity:0}35%{opacity:.9}to{opacity:0}}@keyframes sprite-spark{0%{opacity:0;transform:scale(.4)}40%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1)}}@media (width<=767px){.sprite-root{--sprite-nav:0px;left:auto;right:16px;bottom:calc(12px + var(--tabbar-h) + env(safe-area-inset-bottom,0px));z-index:90}.sprite-orb{touch-action:manipulation;cursor:pointer}.sprite-root.is-moved{left:auto;right:16px;bottom:calc(12px + var(--tabbar-h) + env(safe-area-inset-bottom,0px))}.sprite-panel{width:min(340px,100vw - 20px);max-height:min(560px, calc(100dvh - var(--tabbar-h) - env(safe-area-inset-bottom,0px) - 88px));background:var(--bg-raised);-webkit-backdrop-filter:none}.sprite-fs{justify-content:center;align-items:center;min-width:36px;min-height:36px;display:inline-flex}.sprite-root.is-panel-fs{z-index:120;pointer-events:auto;align-items:stretch;width:100%;height:100%;inset:0}.sprite-root.is-panel-fs .sprite-orb{display:none}.sprite-panel.is-fullscreen{inset:0 0 calc(var(--tabbar-h) + env(safe-area-inset-bottom,0px)) 0;width:100%;max-width:none;height:auto;max-height:none;padding-top:env(safe-area-inset-top,0px);box-shadow:none;overscroll-behavior:contain;touch-action:pan-y;border-bottom:none;border-left:none;border-right:none;border-radius:0;position:fixed}.sprite-panel.is-fullscreen .sprite-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;max-height:none}.sprite-capsule,.sprite-x,.sprite-fs,.sprite-mic,.sprite-voice select,.sprite-voice .btn{appearance:none}}html.sprite-chat-fs,html.sprite-chat-fs body{overscroll-behavior:none;overflow:hidden!important}:root{--sprite-dock-w:clamp(380px, 28vw, 440px)}html.sprite-dock-on .shell>.main{padding-right:calc(var(--sprite-dock-w) + 12px)}.sprite-magnet-rail{z-index:79;pointer-events:none;background:linear-gradient(90deg, transparent 0%, color-mix(in srgb, var(--gold) 12%, transparent) 42%, color-mix(in srgb, var(--gold) 28%, var(--bg-raised)) 100%);border-left:1px solid color-mix(in srgb, var(--gold) 45%, var(--line-strong));width:max(72px,5.5vw);box-shadow:inset 3px 0 0 color-mix(in srgb, var(--gold) 55%, transparent);animation:sprite-magnet-in .16s var(--ease,ease-out);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;right:0}.sprite-magnet-label{writing-mode:vertical-rl;letter-spacing:.12em;color:color-mix(in srgb, var(--gold) 70%, var(--ink));text-orientation:mixed;font-size:12px;font-weight:600}@keyframes sprite-magnet-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.sprite-magnet-rail,.sprite-root.is-dock .sprite-panel.is-dock{animation:none}}.sprite-dock-toggle{border:1px solid var(--line-strong);background:var(--bg-sunken);color:var(--ink-soft);letter-spacing:.02em;border-radius:var(--pill,980px);cursor:pointer;white-space:nowrap;padding:6px 10px;font-size:12px;font-weight:500;line-height:1.2}.sprite-dock-toggle:hover{color:var(--ink);background:var(--fill-hover)}.sprite-dock-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 55%, var(--brand-500));outline-offset:2px}.sprite-root.is-dock{width:var(--sprite-dock-w);z-index:70;pointer-events:auto;justify-content:stretch;align-items:stretch;gap:0;height:100%;max-height:100dvh;position:fixed;inset:0 0 0 auto}.sprite-root.is-dock .sprite-orb{display:none}.sprite-panel.is-dock{border:none;border-left:1px solid var(--line);background:var(--bg-raised);width:100%;max-width:none;height:100%;max-height:none;animation:sprite-dock-slide .22s var(--ease,ease-out);border-radius:0;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:inset 1px 0 #ffffff8c,-18px 0 48px -28px #1b241f47}@keyframes sprite-dock-slide{0%{opacity:.72;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.sprite-panel.is-dock .sprite-head{border-bottom:1px solid color-mix(in srgb, var(--line) 90%, transparent);background:color-mix(in srgb, var(--bg-raised) 92%, var(--bg-sunken));flex:none;padding:14px 14px 12px 16px}.sprite-panel.is-dock .sprite-scroll{flex:auto;min-height:0;max-height:none;padding:14px 16px 10px}.sprite-panel.is-dock .sprite-composer{border-top:1px solid color-mix(in srgb, var(--line) 90%, transparent);background:color-mix(in srgb, var(--bg-raised) 88%, var(--bg-sunken));flex:none;padding:12px 14px 14px}.sprite-panel.is-dock .sprite-composer textarea{width:calc(100% - 4px);min-height:72px;margin:2px}.sprite-panel.is-dock .sprite-chips{padding-inline:14px}.sprite-panel.is-dock .sprite-voice{padding:8px 14px 12px}@media (width<=1099px){html.sprite-dock-on .shell>.main{padding-right:inherit}.sprite-dock-enter{display:none!important}}.cal-day-overlay{z-index:140}.cal-edit-overlay{z-index:150}.cal-edit-modal{max-width:520px;max-height:min(90vh,800px);position:relative;overflow:auto}.cal-day-modal{max-width:560px;max-height:min(86vh,760px);padding:22px 22px 18px;position:relative;overflow:auto}.cal-day-modal-tt{max-width:720px}.cal-day-modal-board{max-width:560px}.cal-day-modal-board .cal-week-scroll{max-height:min(52vh,520px)}.cal-day-live .cal-week-hint{margin-top:0}.cal-confirm-overlay{z-index:160}.cal-day-pick{max-width:440px}.cal-tt{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-raised);overflow:hidden}.cal-tt-untimed{background:var(--bg-sunken);border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.cal-tt-untimed-label{color:var(--ink-faint);font-size:12px;font-weight:600}.cal-tt-row{border-top:1px solid var(--line);grid-template-columns:58px 1fr;min-height:58px;display:grid}.cal-tt-row:first-child{border-top:none}.cal-tt-hour{font-variant-numeric:tabular-nums;color:var(--ink-faint);text-align:right;border-right:1px solid var(--line);background:var(--bg-sunken);padding:8px 10px 0 6px;font-size:12px;font-weight:600}.cal-tt-cell{flex-direction:column;gap:6px;min-height:56px;padding:6px 8px;display:flex}.cal-tt-cell.empty{background-image:linear-gradient(#0000 50%,#00000004 50%)}.cal-tt-block{border-left:4px solid var(--blue);text-align:left;border-radius:8px;padding:8px 10px}.cal-tt-block.cal-kind-lesson{background:var(--blue-soft);border-left-color:var(--blue);color:#8a3c1c}.cal-tt-block.cal-kind-activity{border-left-color:var(--purple);color:#3d3a9e;background:#eeedfb}.cal-tt-block.cal-kind-exam{background:var(--red-soft);border-left-color:var(--red);color:#9b1c1c}.cal-tt-block.cal-kind-performance{color:#7a5b10;background:#f8f1d8;border-left-color:#c9a227}.cal-tt-block.cal-kind-other{border-left-color:var(--teal);color:#14606c;background:#e6f6f8}.cal-time-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=519px){.cal-time-pair{grid-template-columns:1fr}}.cal-tt-block-kicker{letter-spacing:.02em;opacity:.8;font-size:11px;font-weight:600}.cal-tt-block-title{margin-top:2px;font-size:14px;font-weight:700;line-height:1.35}.cal-tt-block-detail{opacity:.85;margin-top:4px;font-size:12px;line-height:1.5}.cal-tt-block-who{opacity:.7;margin-top:4px;font-size:11px}.cal-day-dialog-title{margin-bottom:12px}.cal-day-close{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;width:36px;height:36px;font-family:inherit;font-size:22px;line-height:1;position:absolute;top:10px;right:12px}.cal-day-close:hover{color:var(--ink)}.cal-day-brand{color:var(--ink-faint);letter-spacing:.04em;margin-bottom:4px;font-size:12px}.cal-day-title{letter-spacing:-.022em;margin:0 0 4px;font-size:22px;font-weight:600}.cal-day-sub{color:var(--ink-soft);margin:0 0 16px;font-size:13px}.cal-day-row{padding:12px 0}.cal-day-row+.cal-day-row{border-top:1px solid var(--line)}.cal-day-row-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cal-day-detail{margin:6px 0 0}.cal-day-who{margin:4px 0 0;font-size:12px}.cal-day-actions{margin-top:16px}@media (prefers-color-scheme:dark){.gate-switch,.login-card-wide,.login-studio{background:var(--bg-raised)}::selection{color:#f5f5f7;background:#163a66}.notice.ok{color:#30d158}}@media print{.nav,.tabbar,.sprite-root,.cal-day-actions,.cal-day-close,.notice,.user-chip,.nav-foot,.nav-profile{display:none!important}.modal-overlay.cal-day-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;padding:0;display:block;position:static;inset:auto}.cal-day-modal,.shell .card{box-shadow:none;border:none;max-width:none;max-height:none;padding:0;overflow:visible}.shell{display:block}.main{padding:12px!important}}button.stat{text-align:left;cursor:pointer;transition:background .15s var(--ease), transform .12s var(--ease);font-family:inherit}@media (hover:hover) and (pointer:fine){button.stat:hover{background:var(--fill-hover)}}button.stat:active{transform:scale(.98)}@media (hover:none){button.stat:active{transform:none}}button.stat.warn .n{color:var(--orange)}button.stat.danger .n{color:var(--red)}.wb-tabs{margin:4px 0 10px}.wb-scope{margin-bottom:18px}.wb-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.wb-chart-hit{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}@media (width<=767px){.wb-grid{grid-template-columns:1fr}}.wb-bars{align-items:flex-end;gap:10px;height:168px;padding:8px 4px 0;display:flex}.wb-bar-col{flex-direction:column;flex:1;align-items:center;min-width:0;height:100%;display:flex;position:relative}.wb-bar-track{background:var(--chart-empty);width:100%;max-width:36px;transition:background .15s var(--ease);border-radius:10px 10px 6px 6px;flex:1;align-items:flex-end;display:flex;overflow:hidden}.wb-bar-col:hover .wb-bar-track{background:var(--fill-hover)}.wb-bar-fill{background:var(--chart-info);transform-origin:bottom;width:100%;transition:height var(--chart-enter), opacity .15s var(--ease);border-radius:10px 10px 6px 6px}.wb-bar-col:hover .wb-bar-fill{opacity:.92}.wb-bar-col.is-today .wb-bar-fill{background:var(--brand-500)}.wb-bar-col.is-today:hover .wb-bar-fill{opacity:.9}.wb-bar-n{font-variant-numeric:tabular-nums;color:var(--chart-label);margin-bottom:6px;font-size:12px;font-weight:600}.wb-bar-col.is-today .wb-bar-n{color:var(--brand-500)}.wb-bar-l{color:var(--ink-faint);margin-top:8px;font-size:11px}.wb-bar-tip{background:var(--chart-tooltip-bg);border:1px solid var(--chart-tooltip-border);box-shadow:var(--chart-tooltip-shadow);color:var(--chart-value);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease);z-index:5;border-radius:8px;padding:5px 8px;font-size:11px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.wb-bar-col:hover .wb-bar-tip{opacity:1}.wb-donut-wrap{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.wb-donut{flex-shrink:0;width:148px;height:148px}.wb-donut-num{fill:var(--chart-value);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.wb-donut-cap{fill:var(--chart-label);font-size:10px}.wb-donut-slice{transition:stroke-dasharray .8s var(--ease), opacity .15s var(--ease);cursor:pointer}.wb-donut-slice:hover{opacity:.85}.wb-legend{flex:1;min-width:140px;margin:0;padding:0;list-style:none}.wb-legend li{color:var(--chart-label);border-bottom:1px solid var(--line);cursor:pointer;transition:color .15s var(--ease);align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.wb-legend li:last-child{border-bottom:none}.wb-legend li:hover{color:var(--chart-value)}.wb-legend i{border-radius:50%;flex-shrink:0;width:8px;height:8px}.wb-legend span{flex:1}.wb-legend b{font-variant-numeric:tabular-nums;color:var(--chart-value)}.wb-legend small{color:var(--ink-faint);font-size:11px}.wb-hbars{flex-direction:column;gap:6px;display:flex}.wb-hbar-row{grid-template-columns:90px 1fr auto;align-items:center;gap:10px;display:grid}button.wb-hbar-row{text-align:left;cursor:pointer;width:100%;color:inherit;transition:background .15s var(--ease);background:0 0;border:none;border-radius:12px;padding:8px 10px;font-family:inherit}button.wb-hbar-row:hover{background:var(--fill-hover)}button.wb-hbar-row.is-on{background:var(--blue-soft)}.wb-hbar-hint{color:var(--ink-faint);margin-left:auto}@media (width<=640px){.wb-hbar-row{grid-template-columns:1fr;gap:4px}}.wb-hbar-name{color:var(--chart-value);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex;overflow:hidden}.wb-hbar-name:before{content:"";background:0 0;border-radius:50%;flex-shrink:0;width:6px;height:6px}button.wb-hbar-row.is-on .wb-hbar-name:before{background:var(--brand-500)}.wb-hbar-tracks{flex-direction:column;gap:5px;display:flex}.wb-hbar-track{border-radius:var(--pill);background:var(--chart-empty);height:8px;overflow:hidden}.wb-hbar-fill{border-radius:var(--pill);width:0;height:100%;transition:width var(--chart-enter);min-width:0}.wb-hbar-fill.is-lessons{background:var(--chart-info)}.wb-hbar-fill.is-fb{background:var(--chart-warn)}.wb-hbar-fill.is-overdue{background:repeating-linear-gradient(135deg, var(--chart-danger), var(--chart-danger) 4px, var(--chart-danger-soft) 4px, var(--chart-danger-soft) 8px)}.wb-hbar-meta{color:var(--chart-label);font-variant-numeric:tabular-nums;text-align:right;font-size:11px;line-height:1.45}.wb-hbar-meta span{display:block}.wb-hbar-meta .is-warn{color:var(--chart-danger)}.wb-hbar-key{color:var(--chart-label);gap:16px;margin-top:4px;font-size:12px;display:flex}.wb-hbar-key i{vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.wb-hbar-key i.is-lessons{background:var(--chart-info)}.wb-hbar-key i.is-fb{background:var(--chart-warn)}.wb-hbar-tip{background:var(--chart-tooltip-bg);border:1px solid var(--chart-tooltip-border);box-shadow:var(--chart-tooltip-shadow);color:var(--chart-value);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease);z-index:5;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.wb-hbar-row{position:relative}.wb-hbar-row:hover .wb-hbar-tip{opacity:1}.spider-panel{flex-wrap:wrap;justify-content:center;align-items:center;gap:28px;margin:4px 0 8px;display:flex}.spider-wrap{max-width:360px;margin:0 auto}.spider-grid{stroke:var(--chart-grid);transition:stroke .2s var(--ease)}.spider-axis{stroke:var(--chart-grid)}.spider-label{fill:var(--chart-label);font-size:12px;font-family:var(--font-sans)}.spider-area-me{fill:var(--brand-100);fill-opacity:.35;stroke:var(--brand-500);stroke-width:2px}.spider-area-peer{fill:var(--chart-warn);fill-opacity:.16;stroke:var(--chart-warn);stroke-width:1.5px}.spider-point{fill:var(--brand-500);stroke:var(--bg-raised);stroke-width:2px}.spider-legend{color:var(--chart-label);flex-direction:column;gap:10px;min-width:7.5em;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.spider-legend li{align-items:center;gap:8px;display:flex}.spider-legend li.is-muted{color:var(--ink-faint)}.spider-legend i{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.spider-legend i.is-me{background:var(--brand-500,#3f6f5e);box-shadow:inset 0 0 0 1px var(--brand-500,#3f6f5e)}.spider-legend i.is-peer{background:var(--chart-warn,#d3b76a);box-shadow:inset 0 0 0 1px var(--chart-warn,#d3b76a)}.spider-tip{background:var(--chart-tooltip-bg);border:1px solid var(--chart-tooltip-border);box-shadow:var(--chart-tooltip-shadow);color:var(--chart-value);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s var(--ease);z-index:5;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.spider-svg-wrap{position:relative}.spider-svg-wrap:hover .spider-tip{opacity:1}@keyframes sprite-hl-pulse{0%{box-shadow:0 0 #33526b61}70%{box-shadow:0 0 0 12px #33526b00}to{box-shadow:0 0 #33526b00}}.sprite-hl{outline:2px solid var(--blue);outline-offset:2px;border-radius:10px;scroll-margin-block:88px;animation:1.15s 2 sprite-hl-pulse}@media (prefers-reduced-motion:reduce){.sprite-hl{animation:none}.wb-bar-fill,.wb-hbar-fill,.wb-donut-slice,.spider-area-me,.spider-area-peer{transition:none!important}.sprite-orb,.sprite-root.mood-listen .sprite-orb,.sprite-root.mood-speak .sprite-orb,.sprite-root.mood-think .sprite-orb,.sprite-root.mood-alert .sprite-orb,.sprite-root.mood-happy .sprite-orb,.sprite-root.mood-error .sprite-orb,.sprite-note-body,.sprite-wave,.sprite-note-spark,.jing-body-bob,.jing-flag,.jing-eye,.jing-mouth-oval,.jing-alert-mark,.jing-note,.jing-think-dots circle,.jing-arm,.jing-stem{animation:none!important}.wb-bar-fill,.wb-hbar-fill,.wb-donut circle{transition:none!important}}@media (hover:none),(pointer:coarse){.library-download,.library-del{opacity:.72;background:color-mix(in srgb, var(--bg-raised) 88%, transparent);width:36px;height:36px;box-shadow:0 1px 2px color-mix(in srgb, var(--ink) 8%, transparent);top:4px}.library-download{right:42px}.library-del{right:4px}.library-card:focus-within .library-download,.library-card:focus-within .library-del,.library-download:focus-visible,.library-del:focus-visible{opacity:1}.sprite-mail-letter-more{opacity:.7;min-width:44px;min-height:44px;padding:10px 12px}.library-icon-btn{width:44px;height:44px;font-size:16px}.sprite-x,.sprite-fs{box-sizing:border-box;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;display:inline-flex}.sprite-mail-quote-bar-close{width:44px;height:44px;font-size:20px}.sprite-mic:not(.is-hold):not(.sprite-rec-bar){width:44px;height:44px}.sprite-rate button{opacity:.7;width:44px;height:44px}.sprite-dock-toggle{min-width:44px;min-height:44px}}.cal-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cal-nav .card-title,.cal-nav .cal-nav-title{text-align:center;flex:1;min-width:0}.cal-nav-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.cal-nav-create{min-height:36px;padding:6px 14px;font-weight:600}@media (hover:none),(pointer:coarse){.cal-nav-create{min-height:44px;padding:8px 16px}.cal-week-block .cal-touch-retiming,.cal-week-ev .cal-touch-retiming{display:inline-flex}}.cal-touch-retiming{z-index:2;min-height:28px;color:var(--ink);background:color-mix(in srgb, var(--bg-raised) 92%, transparent);box-shadow:0 1px 3px color-mix(in srgb, var(--ink) 14%, transparent);cursor:pointer;border:0;border-radius:999px;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:600;line-height:1.2;display:none;position:absolute;bottom:4px;right:4px}.cal-week-block{position:relative}@media (hover:none),(pointer:coarse){.cal-week-hint:after{content:" · 点「新建」或长按空白；点安排或「改时间」改时段"}}@media (width>=768px) and (width<=1100px){:root{--nav-w:76px}.nav{padding:16px 8px 12px}.nav .brand-kicker,.nav .brand-ids,.nav .brand-sub,.nav .nav-group-label,.nav .nav-profile-copy,.nav .nav-foot,.nav .nav-logout{display:none}.nav .brand{text-align:center;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.nav-item{justify-content:center;gap:0;min-height:44px;padding:10px 8px;font-size:0}.nav-item .nav-icon{width:22px;height:22px;margin:0}.nav-badge{margin:0;position:absolute;top:4px;right:4px}.nav-profile{justify-content:center;padding:8px 0}.main{padding:22px 18px 48px}}@media (width<=1099px){html.sprite-dock-on .shell>.main{padding-right:inherit}.sprite-dock-enter{display:none!important}}@media (width<=1100px){.cal-week-headrow,.cal-week-allday,.cal-week-timed{min-width:0}}@media (width<=900px){.cal-weekboard{overflow-x:auto}.cal-week-headrow,.cal-week-allday,.cal-week-timed{min-width:min(640px,100%)}.cal-dayboard .cal-week-headrow,.cal-dayboard .cal-week-allday,.cal-dayboard .cal-week-timed{min-width:0}}@media (width<=900px) and ((hover:none) or (pointer:coarse)){.cal-week-headrow,.cal-week-allday,.cal-week-timed{min-width:0}.cal-prefer-day .cal-weekboard{overflow-x:visible}}@media (pointer:coarse){.student-table-card{-webkit-overflow-scrolling:touch}}.sprite-panel{max-height:min(560px,100dvh - 88px)}.sprite-root.is-vv-kb .sprite-panel:not(.is-dock):not(.is-fullscreen){max-height:var(--sprite-vv-h,min(560px, calc(100dvh - 88px)))}.sprite-root.is-vv-kb .sprite-composer{padding-bottom:calc(12px + var(--sprite-kb-inset,0px))}@media (width<=767px){.sprite-panel{max-height:min(560px, calc(100dvh - var(--tabbar-h) - env(safe-area-inset-bottom,0px) - 88px))}.sprite-root.is-vv-kb .sprite-panel:not(.is-dock):not(.is-fullscreen){max-height:var(--sprite-vv-h,min(560px, calc(100dvh - var(--tabbar-h) - env(safe-area-inset-bottom,0px) - 88px)))}}.cal-create-chip,.chip.chip-cta.cal-create-chip{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow);font-weight:650}.cal-nav-create.btn-primary{min-width:64px}.legal-consent-stack{gap:8px;margin:14px 0 4px;display:grid}.legal-consent-stack .legal-consent{margin:0}.legal-consent{color:var(--ink,#1c1915);align-items:flex-start;gap:10px;margin:14px 0 4px;font-size:13px;line-height:1.55;display:flex}.legal-consent input{flex:none;margin-top:3px}.legal-consent a{color:inherit;text-underline-offset:2px;text-decoration:underline}.legal-consent em{color:var(--muted,#6b645b);margin-top:4px;font-size:12px;font-style:normal;display:block}.legal-gate{z-index:80;background:#0c0a089e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.legal-gate-card{background:var(--bg-raised,#fff);width:min(480px,100%);color:var(--ink,#1c1915);border-radius:20px;flex-direction:column;max-height:min(92dvh,920px);padding:0;display:flex;overflow:hidden}.legal-gate-kicker{letter-spacing:.04em;color:var(--muted,#6b645b);margin:0 0 6px;font-size:12px}.legal-gate-card h2,.legal-gate-body h2{margin:0 0 8px;font-size:22px}.legal-gate-card p,.legal-gate-body p{margin:0 0 12px;font-size:14px;line-height:1.6}.legal-gate-docs{margin:0 0 8px;padding-left:1.1em}.legal-gate-docs a{color:inherit}.legal-consent-toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:4px;display:flex}.legal-consent-all{min-height:36px;padding:6px 12px;font-size:13px}.legal-consent-toolbar-hint{color:var(--muted,#6b645b);font-size:12px}.legal-consent-ok{color:var(--ink-soft,#4a453e);background:color-mix(in srgb, var(--accent,#33526b) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent,#33526b) 22%, var(--line,#e6e1d8));border-radius:12px;margin:0;padding:10px 12px;font-size:13px;line-height:1.55}.legal-consent-remembered{margin:14px 0 4px}.legal-gate-card{flex-direction:column;max-height:min(92dvh,920px);padding:0;display:flex;overflow:hidden}.legal-gate-body{-webkit-overflow-scrolling:touch;min-height:0;padding:28px 26px 12px;overflow:hidden auto}.legal-gate-actions{border-top:1px solid var(--line,#e6e1d8);background:var(--bg-raised,#fff);flex-shrink:0;margin:0;padding:12px 26px 22px}.consent-sheet-dialog{-webkit-overflow-scrolling:touch;text-align:left;max-height:min(52vh,420px);margin:.75rem 0 0;overflow:auto}.app-module{--app-ease:var(--ease,cubic-bezier(.32, .72, 0, 1));min-width:0;max-width:100%}.app-module .page-head{justify-content:space-between;align-items:flex-end;gap:var(--spacing,.24rem);background:repeating-linear-gradient(to bottom, transparent 0 4px, color-mix(in srgb, var(--line) 55%, transparent) 4px 5px) bottom left / 100% 16px no-repeat;flex-wrap:wrap;margin-bottom:24px;padding-bottom:20px;display:flex;position:relative}.app-module .page-head:after{content:"♪";color:color-mix(in srgb, var(--gold) 45%, var(--ink-faint));opacity:.35;pointer-events:none;font-size:11px;line-height:1;position:absolute;bottom:1px;left:1px}.app-module .page-head .back-link{margin-bottom:8px}.app-module .page-head h2,.app-module h1.page-title{font-family:var(--font-display);letter-spacing:0;font-weight:700;line-height:1.12}.app-module .page-head .sub,.app-module p.page-sub{color:var(--ink-faint);margin-top:6px;font-size:16px;line-height:1.45}.app-module .page-summary{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.app-module .page-summary .pill{color:var(--ink-soft);border:1px solid var(--line-strong);background:0 0;border-radius:4px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:500;display:inline-flex}.app-module .page-summary .pill strong{font-family:var(--font-mono);color:var(--ink);font-weight:600}.app-module .page-summary .pill.warn{border-color:var(--orange);color:var(--orange)}.app-module .page-summary .pill.warn strong{color:var(--orange)}.app-module .page-summary .pill.danger{border-color:var(--red);color:var(--red)}.app-module .page-summary .pill.danger strong{color:var(--red)}.app-module .card{background:var(--bg-raised);border-radius:var(--radius,18px);box-shadow:var(--sh-sm,0 1px 2px 0 #0000000d);border:1px solid var(--line);transition:box-shadow .2s var(--app-ease), transform .2s var(--app-ease);margin-bottom:16px;padding:22px 24px}.app-module .card.form,.app-module .card.empty-state{border-color:var(--line)}.app-module .card:hover{box-shadow:var(--sh-md,0 4px 8px -2px #0000000f);transform:none}.app-module .card-title{letter-spacing:-.02em;align-items:center;gap:10px;margin:0 0 14px;font-size:18px;font-weight:600;display:flex}.app-module .card-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.app-module .card-title-row .card-title{margin:0}.app-module .faculty-card{cursor:pointer}.app-module .faculty-card:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 55%, transparent);outline-offset:2px}.app-module .faculty-card-meta{margin:0 0 8px}.app-module .faculty-card-tagline{color:var(--ink-soft);margin:0 0 8px;font-size:14px;line-height:1.45}.app-module .faculty-card-hint{color:var(--ink-faint);margin:0 0 12px;font-size:12px}.app-module .indie-modal-tagline{font-family:var(--font-display);margin:14px 2px 0;font-size:16px;line-height:1.45}.app-module .indie-modal-bio{background:var(--bg-sunken);white-space:pre-wrap;border-radius:12px;margin:0;padding:12px 14px;font-size:14px;line-height:1.6}.app-module .stat-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:18px;display:grid}.app-module .stat-row>.stat,.app-module .stat-row>button.stat{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius,18px);box-shadow:var(--sh-sm);text-align:left;transition:transform .12s var(--app-ease), box-shadow .15s var(--app-ease), background .15s var(--app-ease);padding:16px 14px}.app-module .stat-row>button.stat{cursor:pointer;width:100%}.app-module .stat-row>button.stat:hover{background:var(--bg-raised);box-shadow:var(--sh-md);transform:translateY(-1px)}.app-module .stat-row>button.stat:active{transform:scale(.98)}.app-module .stat .n{font-family:var(--font-mono);color:var(--brand-500);letter-spacing:-.02em;font-size:26px;font-weight:600;line-height:1}.app-module .stat .l{color:var(--ink-faint);margin-top:6px;font-size:12px;line-height:1.35}.app-module .stat.warn .n{color:var(--orange)}.app-module .stat.danger .n{color:var(--red)}.app-module .stat.ok .n{color:var(--green)}.app-module .btn{letter-spacing:-.01em;border-radius:var(--pill,980px);transition:background .15s var(--app-ease), color .15s var(--app-ease), transform .1s var(--app-ease), box-shadow .15s var(--app-ease);font-weight:500}.app-module .btn:hover{transform:translateY(-1px)}.app-module .btn:active{transform:scale(.98)}.app-module .btn-primary,.app-module .btn.primary{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow);font-weight:600}.app-module .btn-primary:hover,.app-module .btn.primary:hover{background:var(--cta-gold-fill);color:var(--cta-gold-ink);filter:brightness(1.06);box-shadow:var(--cta-gold-glow-hover)}.app-module .chip{border-radius:var(--pill,980px);transition:background .12s var(--app-ease), color .12s var(--app-ease), transform .1s var(--app-ease);font-weight:500}.app-module .chip.selected{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow)}.app-module .tag{border-radius:var(--pill,980px);align-items:center;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.app-module .notice{border-radius:var(--radius-md,12px);border:1px solid #0000;font-size:14px;line-height:1.5}.app-module .notice.ok{background:var(--green-soft);color:#1e7e34;border-color:#34c7592e}.app-module .notice.error{background:var(--red-soft);color:var(--red);border-color:#ff3b302e}.app-module .notice.warn{background:var(--orange-soft);color:#9b4d00;border-color:#ff95002e}.app-module .empty-state{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius,18px);background:0 0;flex-direction:column;align-items:center;padding:44px 24px;display:flex}.app-module .empty-glyph{background:var(--bg-sunken);width:56px;height:56px;color:var(--brand-500);border-radius:50%;place-items:center;margin-bottom:14px;font-size:24px;display:grid}.app-module .empty-title{color:var(--ink);margin:0 0 6px;font-size:17px;font-weight:600}.app-module .skeleton{border-radius:var(--radius-md,12px);background:linear-gradient(90deg, var(--bg-sunken) 25%, var(--line) 50%, var(--bg-sunken) 75%);background-size:200% 100%;animation:1.2s ease-in-out infinite app-skeleton}@keyframes app-skeleton{0%{background-position:100% 0}to{background-position:-100% 0}}.app-module .cal-upgrade .cal-wrap{border:1px solid var(--line);border-radius:var(--radius,18px);background:var(--bg-raised);box-shadow:var(--sh-sm);padding:18px}.app-module .cal-upgrade .cal-cell{border-radius:var(--radius-md,12px);transition:background .12s var(--app-ease), border-color .12s var(--app-ease), transform .12s var(--app-ease);border:1px solid #0000}.app-module .cal-upgrade .cal-cell:hover:not(.empty):not(.selected){background:var(--fill-hover);border-color:var(--line-strong)}.app-module .cal-upgrade .cal-cell.selected{background:var(--blue-soft);border-color:var(--brand-500);box-shadow:0 0 0 1px var(--brand-500)}.app-module .cal-upgrade .cal-cell.today .cal-num{background:var(--brand-500);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-weight:700;display:inline-flex}.app-module .cal-upgrade .cal-dot{width:6px;height:6px;box-shadow:0 0 0 1px var(--bg-raised)}.app-module .cal-upgrade .cal-weekcol-head{border-radius:var(--radius-md,12px);transition:background .12s var(--app-ease), border-color .12s var(--app-ease);border:1px solid #0000}.app-module .cal-upgrade .cal-weekcol-head.selected{background:var(--blue-soft);border-color:var(--brand-500)}.app-module .cal-upgrade .cal-week-col.today,.app-module .cal-upgrade .cal-week-allday-col.today{background:color-mix(in srgb, var(--blue-soft) 40%, transparent)}.app-module .cal-upgrade .cal-week-block,.app-module .cal-upgrade .cal-week-ev,.app-module .cal-upgrade .cal-month-ev{transition:transform .12s var(--app-ease), box-shadow .12s var(--app-ease), opacity .12s var(--app-ease);border-radius:8px;box-shadow:0 1px 2px #0000000a}.app-module .cal-upgrade .cal-week-block:hover,.app-module .cal-upgrade .cal-week-ev:hover,.app-module .cal-upgrade .cal-month-ev:hover{z-index:2;transform:translateY(-1px);box-shadow:0 3px 8px #00000014}.app-module .cal-upgrade .cal-week-block.dragging,.app-module .cal-upgrade .cal-week-ev.dragging{opacity:.85;box-shadow:0 8px 24px #0000001f}.app-module .cal-day-feed{margin:14px 0 16px;padding:16px 18px 12px}.app-module .cal-day-feed .card-title{margin:0 0 4px}.app-module .ev-upgrade.cal-item{border:none;border-top:1px solid var(--line);background:0 0;border-radius:0;margin:0;padding:0}.app-module .ev-upgrade.cal-item:first-of-type{border-top:none}.app-module .ev-upgrade .cal-item-head{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;border-radius:0;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:12px 0;font-family:inherit;display:flex}.app-module .ev-upgrade .cal-item-head:hover{background:0 0}.app-module .ev-upgrade .cal-item-head .task-name{flex:1;min-width:8rem;font-weight:600}.app-module .ev-upgrade .cal-item-fold{opacity:0;pointer-events:none;transition:grid-template-rows .36s var(--app-ease), opacity .24s ease;grid-template-rows:0fr;display:grid}.app-module .ev-upgrade.is-open .cal-item-fold{opacity:1;pointer-events:auto;grid-template-rows:1fr}.app-module .ev-upgrade .cal-item-fold-inner{min-height:0;overflow:hidden}.app-module .ev-upgrade .cal-item-body{padding:6px 6px 14px}.app-module .ev-upgrade .ev-detail{margin:0 0 8px}.app-module .ev-upgrade .ev-act{margin:4px 0 10px}.app-module .ev-upgrade .ev-wait{margin:0 0 10px;font-size:13px}.app-module .ev-upgrade .ev-composer{grid-template-columns:1fr auto;align-items:end;gap:6px 8px;margin-top:8px;padding:2px;display:grid}.app-module .ev-upgrade .ev-composer .field-label{grid-column:1/-1;margin:0}.app-module .ev-upgrade .ev-composer textarea{resize:none;background:var(--bg-sunken);border-color:#0000;min-height:44px}.app-module .badge-wait{background:var(--bg-sunken);color:var(--ink-faint)}.app-module .ev-upgrade .cal-notes{margin:8px 0 0;padding:0;list-style:none}.app-module .ev-upgrade .cal-notes li{border-top:1px solid var(--line);color:var(--ink-soft);padding:6px 0;font-size:13px;line-height:1.6}.app-module .hw-row{border-bottom:1px solid var(--line);transition:background .12s var(--app-ease);border-radius:0}.app-module .hw-row:last-child{border-bottom:none}.app-module .hw-row-top{border-radius:var(--radius-md,12px);transition:background .12s var(--app-ease);margin:0 -10px;padding:14px 10px}.app-module .hw-row-top:hover{background:var(--fill-hover)}.app-module .hw-box{width:24px;height:24px;transition:background .15s var(--app-ease), border-color .15s var(--app-ease), transform .1s var(--app-ease);border-width:2px;border-radius:8px}.app-module .hw-box:not(:disabled):hover{transform:scale(1.08)}.app-module .hw-box.on{background:var(--green);border-color:var(--green)}.app-module .hw-box.overdue{border-color:var(--red)}.app-module .hw-row.overdue .task-meta{color:var(--red);font-weight:500}.app-module .hw-media{padding:0 10px 18px 34px}.app-module .hw-file-btn{min-height:44px}.app-module .hw-progress-wrap{margin:10px 0 14px}.app-module .hw-progress{background:var(--bg-sunken);border-radius:99px;height:8px;overflow:hidden}.app-module .hw-progress>span{background:linear-gradient(90deg, var(--brand-500), var(--brand-400));transition:width .45s var(--app-ease);border-radius:99px}.app-module .pf-upgrade.pf-card{border-radius:var(--radius,18px);border:1px solid var(--line);box-shadow:var(--sh-sm);transition:transform .2s var(--app-ease), box-shadow .2s var(--app-ease);overflow:hidden}.app-module .pf-upgrade.pf-card:hover{box-shadow:var(--sh-lg);transform:translateY(-3px)}.app-module .pf-upgrade .pf-stage{aspect-ratio:16/9;background:linear-gradient(165deg, var(--bg-sunken), var(--bg));min-height:160px}.app-module .pf-upgrade .pf-play-icon{transition:transform .2s var(--app-ease), box-shadow .2s var(--app-ease)}.app-module .pf-upgrade .pf-play:hover .pf-play-icon{transform:scale(1.08);box-shadow:0 10px 28px #33526b57}.app-module .pf-upgrade .pf-title{font-size:17px;font-weight:600}.app-module .modal-upgrade.modal-overlay,.modal-upgrade.modal-overlay{background:var(--overlay-scrim);-webkit-backdrop-filter:blur(18px)saturate(140%)}.app-module .modal-upgrade .modal,.modal-upgrade .modal{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);border:1px solid color-mix(in srgb, var(--bg-raised) 55%, #ffffff73);border-radius:var(--radius,18px);box-shadow:inset 0 1px #ffffff6b,0 24px 64px -16px #1b241f47}.app-module .modal-upgrade .modal-actions,.modal-upgrade .modal-actions{gap:12px}.app-module .cal-day-upgrade.cal-day-modal,.cal-day-upgrade.cal-day-modal{padding:24px}.app-module .cal-day-upgrade .cal-day-focus,.cal-day-upgrade .cal-day-focus{background:var(--bg-sunken);border-radius:var(--radius-md,12px);margin-top:16px;padding:14px 16px}.app-module .cal-day-upgrade .cal-tt-block,.cal-day-upgrade .cal-tt-block{transition:transform .12s var(--app-ease), box-shadow .12s var(--app-ease);border-radius:10px}.app-module .cal-day-upgrade .cal-tt-block:hover,.cal-day-upgrade .cal-tt-block:hover{transform:translateY(-1px);box-shadow:0 3px 10px #0000000f}.app-module .invite-upgrade.card{border-color:var(--line-strong);border-radius:16px;box-shadow:inset 0 1px #ffffffb3}.app-module .invite-upgrade.card:hover{transform:none}.app-module .invite-upgrade .invite-qr-wrap{background:var(--bg-sunken);border-radius:var(--radius-md,12px);padding:16px}.app-module .invite-upgrade .invite-qr{border-radius:var(--radius-sm,8px);box-shadow:var(--sh-sm)}.app-module .password-reset-body{flex-wrap:wrap;align-items:flex-start;gap:20px;margin-bottom:12px;display:flex}.app-module .password-reset-fields{flex:1;min-width:220px}.app-module .captcha-panel{background:var(--bg-sunken);border-radius:var(--radius-md,12px);border:1px solid #0000;min-width:228px;padding:14px}.app-module .captcha-panel.passed{background:#f4faf5;border-color:#3d7a4a}.app-module .captcha-pass{margin:10px 0 0}.app-module .captcha-prompt{margin:0 0 10px;font-size:15px;font-weight:600}.app-module .captcha-grid{grid-template-columns:repeat(3,68px);gap:8px;display:grid}.app-module .captcha-tile{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;width:68px;height:68px;padding:0;font-size:32px;line-height:1;display:flex}.app-module .captcha-tile:hover{border-color:var(--blue)}.app-module .captcha-tile.selected{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);background:var(--blue-soft)}.app-module .captcha-tile.selected.passed{background:#e8f5e9;border-color:#3d7a4a;box-shadow:0 0 0 3px #3d7a4a38}.app-module .brand-upgrade.studio-brand{background:color-mix(in srgb, var(--bg-raised) 78%, transparent);border:1px solid var(--line);box-shadow:var(--sh-sm);border-radius:0;align-items:center;gap:14px;margin-bottom:16px;padding:18px 20px;display:flex}.app-module .brand-upgrade.studio-brand.has-cover{background:color-mix(in srgb, var(--bg-raised) 18%, transparent)}.app-module .brand-upgrade .studio-brand-mark{background:var(--ink);width:44px;height:44px;color:var(--bg-raised);border-radius:50%;flex-shrink:0;place-items:center;font-size:18px;font-weight:600;display:grid;overflow:hidden}.app-module .brand-upgrade .studio-brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.app-module .brand-upgrade .studio-brand-kicker{color:var(--ink-faint);letter-spacing:.04em;margin:0 0 2px;font-size:11px;font-weight:600}.app-module .brand-upgrade .studio-brand-name{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:600}.app-module .brand-upgrade .studio-brand-sub{color:var(--ink-faint);margin:2px 0 0;font-size:13px}.app-module .chart-upgrade .wb-bar-fill{background:var(--brand-500);border-radius:10px 10px 6px 6px}.app-module .chart-upgrade .wb-bar-col.is-today .wb-bar-fill{background:var(--brand-600)}.app-module .chart-upgrade .wb-donut-slice{transition:stroke-dasharray .8s var(--app-ease), opacity .15s var(--app-ease)}.app-module .chart-upgrade .wb-hbar-row.is-on{background:var(--blue-soft)}.app-module .chart-upgrade .spider-area-me{fill:var(--brand-100);fill-opacity:.35;stroke:var(--brand-500)}.app-module .tl-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.app-module .tl-day-label{color:var(--ink-soft);margin:0 0 10px;font-size:14px;font-weight:600}.app-module .tl-item{border-left:2px solid var(--line-strong);padding:0 0 6px 18px}.app-module .tl-item:before{border:2px solid var(--bg-raised);width:10px;height:10px;top:6px;left:-6px}.app-module .tl-kind{border-radius:var(--pill,980px);padding:3px 9px;font-size:11px;font-weight:600}.app-module .student-grid{grid-template-columns:repeat(auto-fill,minmax(244px,1fr));gap:14px;margin-bottom:18px;display:grid}.app-module .student-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius,18px);text-align:left;cursor:pointer;box-shadow:var(--sh-sm);transition:transform .15s var(--app-ease), box-shadow .15s var(--app-ease), border-color .15s var(--app-ease);padding:18px}.app-module .student-card:hover{box-shadow:var(--sh-md);border-color:var(--line-strong);transform:translateY(-2px)}.app-module .student-card .nick{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;font-size:17px;font-weight:600;display:flex}.app-module .student-card .nick-teacher{color:var(--ink-faint);font-size:13px;font-weight:500}.app-module .student-title-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.app-module .student-title-row .page-title{margin:0}.app-module .page-title-aside{color:var(--ink-faint);font-size:15px;font-weight:500}.assign-student-overlay,.app-module .assign-student-overlay{z-index:180}.assign-student-modal{max-width:420px}.assign-picks{margin:12px 0 4px}.app-module .student-card.hours-low{border-color:var(--orange)}.app-module .student-card.hours-empty{border-color:var(--red)}.app-module .hours-tag.low{color:var(--orange)}.app-module .hours-tag.empty{color:var(--red);font-weight:600}.app-module .hours-split{color:var(--ink-faint);margin:8px 0 0;padding:0;font-size:13px;list-style:none}.app-module .hours-split li+li{margin-top:4px}.app-module .medal-overview{margin-bottom:16px}.app-module .medal-overview-list{margin:10px 0 0;padding:0;list-style:none}.app-module .medal-row{text-align:left;cursor:pointer;border:0;border-bottom:1px solid var(--line);background:0 0;align-items:center;gap:10px;width:100%;padding:8px 0;display:flex}.app-module .medal-row .nick{min-width:4em;font-weight:600}.app-module .medal-row em{color:var(--ink-faint);margin-left:auto;font-size:12px;font-style:normal}.app-module .medal-dots{align-items:center;gap:4px;display:inline-flex}.app-module .medal-dots i{background:#d1d1d6;border-radius:50%;width:8px;height:8px;display:inline-block}.app-module .medal-dots i.on{background:var(--gold)}.app-module .wb-roster{margin:8px 0 0;padding:0;list-style:none}.app-module .wb-roster li{justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.app-module .wb-roster .hours-tag.low,.app-module .wb-list-meta.is-low{color:var(--orange)}.app-module .wb-roster .hours-tag.empty,.app-module .wb-list-meta.is-empty{color:var(--red)}.app-module .wb-list-hit.is-archived{opacity:.72}.app-module .sm-section{box-shadow:none;background:0 0;border:0;margin-bottom:22px;padding:0}.app-module .sm-section .wb-section-head{margin-bottom:8px;padding:0 2px 10px}.app-module .sm-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.app-module .sm-card{border:1px solid var(--line);border-radius:var(--radius,18px);background:linear-gradient(180deg, #fff8eb8c, transparent 42%), var(--bg-raised);width:100%;min-height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;box-shadow:inset 0 1px 0 #ffffffb8, var(--sh-sm);transition:transform .15s var(--app-ease), box-shadow .15s var(--app-ease), border-color .15s var(--app-ease);flex-direction:column;align-items:stretch;gap:12px;padding:16px 16px 14px;display:flex}.app-module .sm-card:hover{border-color:var(--line-strong);box-shadow:inset 0 1px 0 #fffc, var(--sh-md);transform:translateY(-2px)}.app-module .sm-card:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 55%, transparent);outline-offset:2px}.app-module .sm-card.is-archived{opacity:.7}.app-module .sm-card.is-warn{border-color:color-mix(in srgb, var(--orange) 45%, var(--line))}.app-module .sm-card-top{align-items:center;gap:12px;min-width:0;display:flex}.app-module .sm-avatar{background:var(--gold-soft);width:52px;height:52px;color:color-mix(in srgb, var(--gold) 35%, var(--ink));font-family:var(--font-display);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 28%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:20px;font-weight:650;display:flex;overflow:hidden}.app-module .sm-avatar img{object-fit:cover;width:100%;height:100%;display:block}.app-module .sm-card-who{flex-direction:column;gap:4px;min-width:0;display:flex}.app-module .sm-card-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.app-module .sm-card-name{font-family:var(--font-display);letter-spacing:.01em;font-size:18px;font-weight:700;line-height:1.2}.app-module .sm-role{letter-spacing:.04em;background:var(--bg-sunken);color:var(--ink-soft);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.app-module .sm-role.is-owner{background:var(--gold-soft);color:color-mix(in srgb, var(--gold) 20%, #5a4018)}.app-module .sm-card-no{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.04em;font-size:12px}.app-module .sm-card-bio{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.app-module .sm-card-bio em{background:color-mix(in srgb, var(--gold) 12%, var(--bg-sunken));color:var(--ink-soft);border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-style:normal;display:inline-flex}.app-module .sm-card-stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:10px;display:grid}.app-module .sm-card-stats>span{flex-direction:column;gap:2px;min-width:0;display:flex}.app-module .sm-card-stats b{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:20px;font-weight:700;line-height:1.1}.app-module .sm-card-stats i{color:var(--ink-faint);letter-spacing:.04em;font-size:11px;font-style:normal}.app-module .sm-card-note{color:var(--orange);font-size:12px}.app-module .sm-card-note.is-quiet{color:var(--ink-faint)}.app-module .member-profile-overlay,.member-profile-overlay{z-index:160;align-items:flex-start;padding-top:5vh}.app-module .member-profile-modal,.member-profile-modal{flex-direction:column;max-width:min(620px,100vw - 24px);max-height:min(88vh,820px);padding:22px 22px 16px;display:flex;overflow:auto}.app-module .mp-head{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:0 2px 16px;display:flex}.app-module .mp-avatar{background:var(--bg-sunken);width:64px;height:64px;color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 10%, transparent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:22px;font-weight:650;display:flex;overflow:hidden}.app-module .mp-avatar img{object-fit:cover;width:100%;height:100%;display:block}.app-module .mp-head-copy{flex:1;min-width:0}.app-module .mp-name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-module .mp-name-row h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700;line-height:1.2}.app-module .mp-role{border-radius:var(--pill,980px);background:var(--blue-soft);color:var(--blue);padding:3px 9px;font-size:11px;font-weight:650}.app-module .mp-meta{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin:8px 0 0;font-size:13px;display:flex}.app-module .mp-meta span+span{position:relative}.app-module .mp-section{margin:16px 0 0}.app-module .mp-section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.app-module .mp-section-title{font-family:var(--font-display);letter-spacing:.06em;color:var(--ink-faint);margin:0 0 10px;font-size:13px;font-weight:700}.app-module .mp-section-head .mp-section-title{margin:0}.app-module .mp-n{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:14px;font-weight:700}.app-module .mp-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.app-module .mp-fact{background:var(--bg-sunken);border-radius:12px;min-width:0;padding:10px 12px}.app-module .mp-fact dt{color:var(--ink-faint);font-size:11px}.app-module .mp-fact dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:14px;font-weight:600;line-height:1.35}.app-module .mp-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.app-module .mp-stat{background:var(--bg-sunken);text-align:center;border-radius:12px;min-width:0;padding:12px 10px}.app-module .mp-stat b{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;overflow-wrap:anywhere;font-size:18px;font-weight:700;line-height:1.2;display:block}.app-module .mp-stat span,.app-module .mp-stat em{color:var(--ink-faint);margin-top:4px;font-size:11px;font-style:normal;display:block}.app-module .mp-join{color:var(--ink-faint);margin:8px 2px 0;font-size:12px}.app-module .mp-admin{flex-wrap:wrap;gap:8px;margin:14px 0 0;display:flex}.app-module .mp-empty{background:var(--bg-sunken);color:var(--ink-faint);border-radius:12px;margin:0;padding:14px 12px;font-size:13px}.app-module .mp-kids{border:1px solid var(--line);border-radius:14px;margin:10px 0 0;padding:0;list-style:none;overflow:hidden}.app-module .mp-kid{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.app-module .mp-kid+.mp-kid{border-top:1px solid var(--line)}.app-module .mp-kid-main{min-width:0}.app-module .mp-kid-main b{font-size:14px;display:block}.app-module .mp-kid-meta{color:var(--ink-faint);margin-top:3px;font-size:12px;display:block}.app-module .mp-kid-side{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.app-module .mp-hours{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:12px;font-weight:650}.app-module .mp-hours.is-low{color:var(--orange)}.app-module .mp-hours.is-empty{color:var(--red)}.app-module .mp-actions{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.app-module .tag.wb-warn{background:var(--orange-soft);color:#8a5600}.app-module .tag.wb-off{background:var(--bg-sunken);color:var(--ink-faint)}.app-module .offboard-panel{margin-top:14px}.app-module .offboard-panel p{margin:0 0 6px;font-weight:600}.app-module .offboard-panel ul{margin:0;padding-left:1.1em}.app-module .offboard-lessons{padding:8px 0 0;list-style:none}.app-module .offboard-lessons li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.app-module .wb-xfer{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.app-module .member-brief-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.app-module .member-brief-copy .tag{margin-left:8px}@media (width<=640px){.app-module .mp-facts,.app-module .mp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.app-module .mp-kid{flex-direction:column;align-items:stretch}.app-module .mp-kid-side{justify-content:flex-start}}.app-module .feedback-form .timer-pill{color:var(--ink-faint);background:var(--bg-sunken);border-radius:var(--pill,980px);margin-left:auto;padding:4px 10px;font-size:12px;font-weight:500}.app-module .feedback-form .timer-pill.warn{color:var(--red);background:var(--red-soft)}.app-module .fb-dictate-overlay,.fb-dictate-overlay{z-index:170}.app-module .fb-dictate-modal,.fb-dictate-modal{max-width:520px}.fb-dictate-sub{margin:-4px 0 14px}.fb-dictate-hint{color:var(--ink-soft);align-items:center;gap:8px;margin:0 0 10px;font-size:13px;display:flex}.fb-dictate-dot{background:var(--red,#c0392b);border-radius:50%;flex:none;width:8px;height:8px;animation:1s ease-in-out infinite fb-dictate-pulse}@keyframes fb-dictate-pulse{0%,to{opacity:1}50%{opacity:.28}}.fb-dictate-live,.fb-dictate-transcript{background:var(--bg-sunken);min-height:88px;color:var(--ink);border-radius:12px;margin:0 0 16px;padding:12px 14px;font-size:15px;line-height:1.65}.fb-dictate-transcript{min-height:0;color:var(--ink-soft);font-size:13px}.fb-dictate-interim,.fb-dictate-placeholder{color:var(--ink-faint)}.fb-dictate-modal .field{margin-bottom:10px}.fb-dictate-modal .field textarea{min-height:56px}@media (width<=767px){.app-module .page-head{flex-direction:column;align-items:flex-start}.app-module .stat-row{grid-template-columns:repeat(2,1fr)}.app-module .card{max-width:100%;padding:18px 16px}.app-module .tl-toolbar{flex-direction:column;align-items:stretch}}.app-module .trend-wrap svg{display:block}.app-module .trend-wrap path{stroke:var(--chart-info,var(--brand-500));stroke-width:2.5px}.app-module .trend-wrap circle{fill:var(--chart-info,var(--brand-500));stroke:var(--bg-raised);stroke-width:1.5px}.app-module .trend-wrap line{stroke:var(--chart-grid,var(--line))}.app-module .trend-wrap text{fill:var(--chart-label,var(--ink-faint))}.app-module .wb-list-hit{border-radius:var(--radius-md,12px);width:100%;color:inherit;text-align:left;cursor:pointer;transition:background .12s var(--app-ease);background:0 0;border:none;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.app-module .wb-list-hit:hover{background:var(--fill-hover)}.app-module .wb-list-main{font-weight:500}.app-module .wb-list-main b{font-family:var(--font-mono);color:var(--brand-500);margin-right:8px}.app-module .wb-list-meta{color:var(--ink-faint);font-size:13px}.app-module .wb-list-meta.is-warn{color:var(--orange)}.app-module .member-block.is-off{opacity:.72}@media (prefers-reduced-motion:reduce){.app-module .card,.app-module .stat-row>.stat,.app-module .btn,.app-module .chip,.app-module .cal-upgrade .cal-cell,.app-module .cal-upgrade .cal-week-block,.app-module .cal-upgrade .cal-week-ev,.app-module .pf-upgrade.pf-card,.app-module .student-card,.app-module .sm-card,.app-module .hw-row,.app-module .hw-row-top,.app-module .hw-box,.app-module .wb-list-hit,.app-module .ev-upgrade.cal-item,.app-module .ev-upgrade .cal-item-head,.app-module .ev-upgrade .cal-item-fold,.app-module .ev-upgrade .cal-item-body,.app-module .ev-upgrade .cal-item-chev{transition:none!important;transform:none!important}.app-module .hw-progress>span,.app-module .chart-upgrade .wb-donut-slice,.app-module .chart-upgrade .wb-bar-fill,.app-module .chart-upgrade .wb-hbar-fill{transition:none!important}}.app-module{--chart-info:var(--blue,var(--brand-500));--chart-ok:var(--green);--chart-warn:var(--orange);--chart-danger:var(--red);--chart-empty:var(--bg-sunken);--chart-grid:var(--line);--chart-label:var(--ink-faint);--chart-value:var(--ink-soft)}.app-module .invite-upgrade .invite-body{grid-template-columns:auto 1fr;gap:20px;margin-top:16px;display:grid}.app-module .invite-upgrade .invite-qr-wrap{text-align:center}.app-module .invite-upgrade .invite-slots{color:var(--ink-soft);margin-top:10px;font-size:13px;font-weight:500}.app-module .invite-upgrade .invite-actions{flex-direction:column;gap:10px;display:flex}.app-module .invite-upgrade .invite-actions .btn-row{flex-wrap:wrap;gap:10px;display:flex}@media (width<=767px){.app-module .invite-upgrade .invite-body{grid-template-columns:1fr}}.app-module .task-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-md,12px);transition:background .12s var(--app-ease), border-color .12s var(--app-ease);margin-bottom:10px;padding:14px 16px}.app-module .task-row:hover{border-color:var(--line-strong)}.app-module .task-name{letter-spacing:-.01em;font-weight:600}.app-module .task-badge{border-radius:var(--pill,980px);padding:3px 9px;font-size:11px;font-weight:600}.app-module .badge-ok{background:var(--green-soft);color:#1e7e34}.app-module .badge-run{background:var(--blue-soft);color:var(--blue)}.app-module .cal-sum-row{margin-bottom:18px}.app-module .cal-sum{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-md,12px);min-width:90px;box-shadow:var(--sh-sm);padding:12px 16px}.app-module .cal-sum .n{font-family:var(--font-mono);color:var(--brand-500);font-size:22px;font-weight:600}.app-module .set-kid{border:1px solid var(--line);border-radius:var(--radius-md,12px);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;padding:12px 14px;display:flex}.app-module .set-kid:hover,.app-module .set-kid.is-on{background:var(--fill-hover);border-color:var(--line-strong)}.app-module .set-kid .task-name{flex:1;min-width:4rem}.app-module .set-kid-studio{color:var(--ink-soft);margin:16px 0 0;font-size:13px}.app-module .cal-today-row{border-radius:var(--radius-md,12px);transition:background .12s var(--app-ease), border-color .12s var(--app-ease);border:1px solid #0000}.app-module .cal-today-row:hover{background:var(--fill-hover);border-color:var(--line-strong)}.app-module .tl-item{padding-bottom:16px;position:relative}.app-module .tl-item:before{content:"";background:var(--brand-500);border-radius:50%;position:absolute}.app-module .tl-kind.is-work{background:var(--orange-soft);color:#9b4d00}.app-module .tl-fb{border-radius:var(--radius-md,12px)}.app-module .tl-fb>summary{cursor:pointer;padding:2px 0;list-style:none}.app-module .tl-empty{border:1px dashed var(--line-strong);background:0 0}.app-module .jr-page .jr-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.app-module .jr-compose{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.app-module .jr-compose-lead{color:var(--ink-soft);margin:0}.app-module .jr-compose.is-anim{animation:jr-rise .32s var(--app-ease)}.app-module .jr-hero{touch-action:pan-y;background:radial-gradient(ellipse 70% 80% at 8% 0%, color-mix(in srgb, var(--gold) 16%, transparent), transparent 62%), repeating-linear-gradient(to bottom, transparent 0 21px, color-mix(in srgb, var(--line) 70%, transparent) 21px 22px), var(--bg-raised);box-shadow:inset 3px 0 0 var(--gold), var(--sh-sm);margin-bottom:28px;padding:22px 22px 16px}.app-module .jr-hero.is-anim.is-jump{animation:jr-rise .42s var(--app-ease)}.app-module .jr-hero.is-anim.is-older{animation:jr-flip-older .38s var(--app-ease)}.app-module .jr-hero.is-anim.is-newer{animation:jr-flip-newer .38s var(--app-ease)}.app-module .jr-hero-top{align-items:center;gap:16px;margin-bottom:16px;display:flex}.app-module .jr-seal{background:var(--bg);width:76px;height:88px;box-shadow:inset 0 0 0 1.5px var(--gold), var(--sh-xs);color:var(--gold);border-radius:18px;flex-direction:column;flex:0 0 76px;justify-content:center;align-items:center;display:flex}.app-module .jr-seal em{letter-spacing:.14em;font-size:11px;font-style:normal;font-weight:700}.app-module .jr-seal strong{font-family:var(--font-display);letter-spacing:-.04em;color:var(--ink);font-size:34px;line-height:1}.app-module .jr-seal span{color:var(--ink-soft);margin-top:4px;font-size:12px;font-weight:600}.app-module .jr-hero-meta{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.app-module .jr-kicker{letter-spacing:.16em;color:var(--gold);font-size:11px;font-weight:700}.app-module .jr-hero-meta time,.app-module .jr-who{color:var(--ink-faint);font-size:13px}.app-module .jr-quote{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 18px;font-size:clamp(24px,3.4vw,34px);font-weight:700;line-height:1.28}.app-module .jr-trio{grid-template-columns:1fr 1fr;gap:12px;display:grid}.app-module .jr-cell{background:color-mix(in srgb, var(--bg) 72%, transparent);box-shadow:inset 0 0 0 1px var(--line);border-radius:14px;padding:12px 14px}.app-module .jr-cell h3{letter-spacing:.08em;color:var(--ink-faint);margin:0 0 6px;font-size:12px;font-weight:600}.app-module .jr-cell p{color:var(--ink);margin:0;font-size:15px;line-height:1.5}.app-module .jr-player{margin-bottom:4px}.app-module .jr-player audio,.app-module .jr-player video{border-radius:12px;width:100%}.app-module .jr-dots{justify-content:center;align-items:center;gap:8px;margin:16px 0 4px;display:flex}.app-module .jr-dot{background:color-mix(in srgb, var(--ink-faint) 45%, transparent);cursor:pointer;width:8px;height:8px;transition:transform .16s var(--app-ease), background .16s var(--app-ease);border:0;border-radius:980px;padding:0}.app-module .jr-dot.is-on{background:var(--gold);transform:scale(1.35)}.app-module .jr-dot .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}.app-module .jr-dots-lab{color:var(--ink-faint);font-size:12px}.app-module .jr-pager{box-shadow:inset 0 1px 0 var(--line);justify-content:space-between;align-items:center;gap:10px;margin:16px 0 0;padding-top:14px;display:flex}.app-module .jr-arrow{background:color-mix(in srgb, var(--bg) 80%, transparent);min-width:76px;box-shadow:inset 0 0 0 1px var(--line);font:inherit;color:var(--ink-soft);cursor:pointer;transition:transform .16s var(--app-ease), background .16s var(--app-ease);border:0;border-radius:980px;padding:6px 12px;font-size:13px}.app-module .jr-arrow:hover:not(:disabled){background:var(--fill-hover);transform:translateY(-1px)}.app-module .jr-arrow:disabled{opacity:.55;color:var(--ink-faint);cursor:default}.app-module .jr-index{font-variant-numeric:tabular-nums;color:var(--gold);letter-spacing:.04em;flex-direction:column;align-items:center;gap:2px;font-size:13px;font-weight:600;display:flex}.app-module .jr-latest{font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:500}.app-module .jr-latest:hover{color:var(--gold)}.app-module .jr-month{margin:0 0 22px}.app-module .jr-month-h{align-items:baseline;gap:8px;margin:0 0 10px;font-size:15px;font-weight:700;display:flex}.app-module .jr-month-h span{color:var(--ink-faint);font-size:12px;font-weight:500}.app-module .jr-days{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:8px;padding:2px 2px 10px;display:flex;overflow-x:auto}.app-module .jr-day{scroll-snap-align:start;background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--line), var(--sh-xs);font:inherit;color:inherit;cursor:pointer;transition:transform .18s var(--app-ease), box-shadow .18s var(--app-ease), background .18s var(--app-ease);border:0;border-radius:16px;flex-direction:column;flex:0 0 64px;align-items:center;gap:2px;padding:10px 6px 12px;display:flex;position:relative}.app-module .jr-day:hover{box-shadow:inset 0 0 0 1px var(--line-strong), var(--sh-md);transform:translateY(-3px)}.app-module .jr-day.is-on{background:var(--gold-soft);box-shadow:inset 0 0 0 1.5px var(--gold), var(--sh-sm);transform:translateY(-2px)}.app-module .jr-day:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 55%, transparent);outline-offset:2px}.app-module .jr-day em{color:var(--ink-faint);font-size:11px;font-style:normal}.app-module .jr-day strong{font-family:var(--font-display);letter-spacing:-.03em;font-size:22px;line-height:1}.app-module .jr-day-n{background:var(--gold);min-width:16px;height:16px;color:var(--on-brand);border-radius:980px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px}.app-module .jr-day-n.is-quiet{display:none}.app-module .jr-empty{margin-top:8px}@keyframes jr-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes jr-flip-older{0%{opacity:0;transform:translate(-22px)}to{opacity:1;transform:none}}@keyframes jr-flip-newer{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:none}}@media (width<=767px){.app-module .jr-trio{grid-template-columns:1fr}.app-module .jr-quote{font-size:22px}.app-module .jr-seal{flex-basis:64px;width:64px;height:76px}.app-module .jr-seal strong{font-size:28px}}@media (prefers-reduced-motion:reduce){.app-module .jr-hero.is-anim,.app-module .jr-compose.is-anim,.app-module .jr-day:hover,.app-module .jr-arrow:hover:not(:disabled),.app-module .jr-dot.is-on{animation:none;transform:none}}.app-module .next-medal-card{background:linear-gradient(135deg, var(--bg-raised), var(--bg))}.app-module .medal-grid{margin-top:10px}.app-module .medal{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-md,12px);text-align:center;transition:transform .15s var(--app-ease), box-shadow .15s var(--app-ease);padding:14px}.app-module .medal:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}.app-module .medal.locked{opacity:.72}.app-module .medal-glyph{margin-bottom:8px;font-size:28px}.app-module .medal-name{font-size:14px;font-weight:600}.app-module .progress-track{background:var(--bg-sunken);border-radius:99px;height:10px;overflow:hidden}.app-module .progress-track.sm{height:6px}.app-module .progress-fill{background:linear-gradient(90deg, var(--brand-500), var(--brand-400));height:100%;transition:width .5s var(--app-ease);border-radius:99px}.app-module .dim-list{margin-top:14px}.app-module .dim-row{border-bottom:1px solid var(--line);padding:10px 4px}.app-module .dim-row:last-child{border-bottom:none}.app-module .dim-score{font-family:var(--font-mono);color:var(--brand-500);margin-left:auto;font-weight:600}.app-module .delta{border-radius:var(--pill,980px);padding:2px 8px;font-size:12px;font-weight:600}.app-module .delta-up{background:var(--green-soft);color:#1e7e34}.app-module .delta-down{background:var(--red-soft);color:var(--red)}.app-module .delta-flat{background:var(--bg-sunken);color:var(--ink-faint)}.app-module .field{margin-bottom:14px;display:block}.app-module .field-label{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.app-module input[type=text],.app-module input[type=tel],.app-module input[type=number],.app-module input[type=password],.app-module input[type=search],.app-module input[type=date],.app-module input[type=time],.app-module textarea,.app-module select{width:100%;color:var(--ink);background:var(--bg-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm,8px);transition:border-color .15s var(--app-ease), box-shadow .15s var(--app-ease);outline:none;padding:10px 12px;font-family:inherit;font-size:15px}.app-module input:focus,.app-module textarea:focus,.app-module select:focus{border-color:var(--brand-500);outline:2px solid color-mix(in srgb, var(--brand-500) 45%, transparent);outline-offset:2px;box-shadow:none}.app-module textarea{resize:vertical;min-height:90px}.app-module .chart-upgrade{width:100%}.app-module .chart-upgrade .wb-bar-col.is-today .wb-bar-n{color:var(--brand-600);font-weight:700}.app-module .chart-upgrade .wb-legend i{border-radius:50%;width:10px;height:10px}.app-module .chart-upgrade .wb-hbar-row{border-radius:var(--radius-md,12px);transition:background .12s var(--app-ease), border-color .12s var(--app-ease);border:1px solid #0000;padding:10px}.app-module .chart-upgrade .wb-hbar-row:hover{border-color:var(--line-strong)}.app-module .spider-wrap{max-width:320px;margin:0 auto}.app-module .spider-wrap polygon[fill*="rgba(63,111,94"]{fill:var(--brand-100);fill-opacity:.35;stroke:var(--brand-500)}.app-module .spider-wrap polygon[fill*="rgba(176,141,60"]{fill:var(--orange-soft);fill-opacity:.35;stroke:var(--orange)}.app-module .wb-fold{margin-top:16px;padding:2px 16px 10px}.app-module .wb-fold>summary{cursor:pointer;padding:12px 0;font-weight:500;list-style:none}.app-module .license-img{border-radius:var(--radius-md,12px);border:1px solid var(--line);max-width:100%}@media (width<=767px){.app-module .cal-sum-row{gap:8px}.app-module .cal-sum{min-width:78px;padding:10px 12px}}.app-module .report-samples{color:var(--ink-soft);margin:0;padding-left:18px;font-size:14px;line-height:1.8}.app-module .report-samples li{margin-bottom:4px}.app-module .ca-page .ca-block{margin:8px 0 28px}.app-module .ca-h{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 12px;font-size:20px;font-weight:700}.app-module .ca-analysis{color:var(--ink-soft);margin:0 0 12px;line-height:1.6}.app-module .ca-engine{margin-top:10px}.app-module .ca-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app-module .ca-guide .ca-why{color:var(--ink-soft);margin:0 0 8px;line-height:1.55}.app-module .ca-guide .btn{margin-top:8px}.app-module .ca-topic{text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;display:block}.app-module .ca-topic.is-on{box-shadow:inset 0 0 0 1px var(--gold), var(--sh-xs)}.app-module .ca-timeline{margin:0;padding:0;list-style:none}.app-module .ca-timeline>li+li{border-top:1px solid var(--line)}.app-module .ca-line{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:12px 4px;display:block}.app-module .ca-line:hover{background:var(--fill-hover)}.app-module .ca-line-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-module .ca-line-body{color:var(--ink-soft);margin:6px 0 0;line-height:1.55}.app-module .ca-charts{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}.app-module .ca-share{flex-direction:column;gap:8px;display:flex}.app-module .ca-share-row{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:minmax(72px,120px) 1fr 28px;align-items:center;gap:10px;padding:6px 4px;display:grid}.app-module .ca-share-row:hover,.app-module .ca-share-row.is-on{background:var(--fill-hover)}.app-module .ca-share-track{background:var(--bg-sunken);border-radius:99px;height:8px;overflow:hidden}.app-module .ca-share-fill{border-radius:inherit;background:color-mix(in srgb, var(--gold) 70%, var(--ink-soft));height:100%}.app-module .ca-share-row b{font-variant-numeric:tabular-nums;text-align:right}.app-module .ca-families{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app-module .ca-family-signal{color:var(--ink-soft);flex-wrap:wrap;gap:10px;margin:8px 0 0;font-size:13px;display:flex}.app-module .ca-family-signal .is-warn{color:var(--orange);font-weight:600}.app-module .ca-last{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:8px 0 12px;display:-webkit-box;overflow:hidden}@media (width<=767px){.app-module .ca-guide-grid,.app-module .ca-charts,.app-module .ca-families{grid-template-columns:1fr}}.app-module .rec-page{--rec-studio:#8a6a2a;--rec-teacher:#3d5c6e}.app-module .rec-scenes{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px;display:grid}.app-module .rec-scene{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-raised) 88%, transparent), var(--bg-raised)), var(--bg-raised);box-shadow:inset 0 0 0 1px var(--line), var(--sh-xs);border-radius:18px;padding:18px 18px 16px}.app-module .rec-scene-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;font-size:11px}.app-module .rec-scene h3{font-family:var(--font-display);margin:0 0 8px;font-size:20px;font-weight:500}.app-module .rec-scene p{color:var(--ink-soft);margin:0;font-size:14px;line-height:1.65}.app-module .rec-pledge{background:color-mix(in srgb, var(--gold-soft) 55%, var(--bg-raised));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 18%, transparent);border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 22px;padding:16px 18px;display:grid}.app-module .rec-pledge strong{font-family:var(--font-display);margin-bottom:4px;font-size:17px;display:block}.app-module .rec-pledge span{color:var(--ink-soft);font-size:13px;line-height:1.55}.app-module .rec-compose{flex-direction:column;gap:0;display:flex}.app-module .rec-compose-body{grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr);align-items:start;gap:22px;display:grid}.app-module .rec-compose-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.app-module .rec-compose-head .card-title{margin:0}.app-module .rec-scope-toggle{grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px;display:grid}.app-module .rec-scope-btn{text-align:left;background:var(--bg-sunken);color:var(--ink);cursor:pointer;border:0;border-radius:14px;padding:12px 14px}.app-module .rec-scope-btn em{color:var(--ink-faint);margin-top:2px;font-size:12px;font-style:normal;display:block}.app-module .rec-scope-btn.is-on{background:color-mix(in srgb, var(--gold-soft) 70%, var(--bg-raised));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 35%, transparent)}.app-module .rec-cat-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.app-module .rec-cat-chip{cursor:pointer;background:var(--bg-sunken);color:var(--ink-soft);border:0;border-radius:999px;padding:5px 12px;font-size:13px}.app-module .rec-cat-chip.is-on{color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 16%, transparent);background:var(--bg-raised)}.app-module .rec-preview-kicker{letter-spacing:.08em;color:var(--ink-faint);margin-bottom:10px;font-size:12px}.app-module .rec-toolbar{flex-direction:column;gap:10px;margin:8px 0 16px;display:flex}.app-module .rec-filters{flex-wrap:wrap;gap:8px;display:flex}.app-module .rec-shelf{margin:8px 0 28px}.app-module .rec-shelf-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px;display:flex}.app-module .rec-shelf-head h2{font-family:var(--font-display);margin:0;font-size:22px;font-weight:500}.app-module .rec-shelf-head p{color:var(--ink-faint);margin:0;font-size:13px}.app-module .rec-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:8px;display:grid}.app-module .rec-queue{background:color-mix(in srgb, var(--gold) 12%, var(--bg-raised));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 28%, var(--line));border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 18px;padding:14px 16px;display:flex}.app-module .rec-queue strong{font-size:15px}.app-module .rec-queue span{color:var(--ink-soft);flex:1;font-size:13px}.app-module .rec-note{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-raised) 92%, #fff), var(--bg-raised));box-shadow:inset 0 0 0 1px var(--line), var(--sh-sm);border-radius:18px;padding:20px 20px 16px;position:relative;overflow:hidden}.app-module .rec-note-media{aspect-ratio:4/3;background:var(--bg-sunken);border-radius:12px;margin:0 0 14px;position:relative;overflow:hidden}.app-module .rec-note-media[role=button]{cursor:pointer}.app-module .rec-photo,.app-module .rec-photo img{object-fit:cover;width:100%;height:100%;display:block}.app-module .rec-photo-empty{height:100%;color:var(--ink-faint);place-items:center;font-size:13px;display:grid}.app-module .rec-note-tags{z-index:1;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:10px;right:10px}.app-module .rec-tag{letter-spacing:.04em;color:#fff;background:#1c160ec7;border-radius:999px;padding:3px 8px;font-size:11px}.app-module .rec-tag-新上架{background:#2f6b4f}.app-module .rec-tag-热门{background:#b45309}.app-module .rec-tag-待审批{background:#8a6a2a}.app-module .rec-tag-未通过{background:#8b3a3a}.app-module .rec-tag-已下架{background:#5c5c5c}.app-module .rec-tag-已撤架{background:#3d3d3d}.app-module .rec-note-pending{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--gold) 40%, var(--line)), var(--sh-sm)}.app-module .rec-note-shelved,.app-module .rec-note-removed,.app-module .rec-note-rejected{opacity:.72}.app-module .rec-note-link-btn{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.app-module .rec-history-backdrop{z-index:40;background:#14110d6b;position:fixed;inset:0}.app-module .rec-history{z-index:41;background:var(--bg-raised);width:min(380px,92vw);box-shadow:var(--sh-lg);padding:20px;position:fixed;top:0;bottom:0;right:0;overflow:auto}.app-module .rec-history-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.app-module .rec-history-head h3{font-family:var(--font-display);margin:0;font-weight:500}.app-module .rec-history-list{margin:16px 0 0;padding:0;list-style:none}.app-module .rec-history-list li{border-bottom:1px dashed var(--line);gap:4px;padding:12px 0;display:grid}.app-module .rec-history-list span,.app-module .rec-history-list em{color:var(--ink-faint);font-size:12px;font-style:normal}.app-module .rec-note:before{content:"";background:var(--rec-teacher);width:4px;position:absolute;top:0;bottom:0;left:0}.app-module .rec-note-studio:before{background:var(--gold)}.app-module .rec-note.is-off{opacity:.62}.app-module .rec-note.is-compact{box-shadow:inset 0 0 0 1px var(--line)}.app-module .rec-note-kicker{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.app-module .rec-seal{letter-spacing:.08em;background:var(--bg-sunken);min-height:22px;color:var(--ink-soft);border-radius:4px;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.app-module .rec-seal-instrument{background:var(--blue-soft);color:var(--blue)}.app-module .rec-seal-accessory{background:var(--gold-soft);color:var(--gold)}.app-module .rec-seal-care{background:var(--green-soft);color:var(--green)}.app-module .rec-seal-book{background:color-mix(in srgb, var(--purple) 12%, var(--bg-raised));color:var(--purple)}.app-module .rec-scope{color:var(--ink-faint);font-size:12px}.app-module .rec-note-title{font-family:var(--font-display);margin:0 0 10px;font-size:22px;font-weight:500;line-height:1.3}.app-module .rec-note-why{border-left:2px solid color-mix(in srgb, var(--gold) 35%, var(--line));color:var(--ink-soft);margin:0 0 14px;padding-left:12px;font-size:14.5px;line-height:1.7}.app-module .rec-note-link{color:var(--brand-600);margin-bottom:14px;font-size:13px;display:inline-flex}.app-module .rec-note-foot{color:var(--ink-faint);justify-content:space-between;gap:12px;font-size:12px;display:flex}.app-module .rec-note-actions{border-top:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}@media (width<=860px){.app-module .rec-scenes,.app-module .rec-pledge,.app-module .rec-compose-body{grid-template-columns:1fr}.app-module .rec-shelf-head{flex-direction:column;align-items:flex-start}}.app-module .ability-visual{grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);align-items:center;gap:16px;margin-top:10px;display:grid}@media (width<=720px){.app-module .ability-visual{grid-template-columns:1fr}}.app-module .ability-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:10px;display:grid}.app-module .ability-field .field-label strong{font-family:var(--font-mono);color:var(--brand-500);margin-left:4px}.app-module input[type=range]{appearance:none;background:var(--bg-sunken);cursor:pointer;border:none;border-radius:99px;width:100%;height:6px;padding:0}.app-module input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--brand-500);border:2px solid var(--bg-raised);width:18px;height:18px;box-shadow:var(--sh-sm);border-radius:50%}.app-module input[type=range]::-moz-range-thumb{background:var(--brand-500);border:2px solid var(--bg-raised);width:18px;height:18px;box-shadow:var(--sh-sm);border-radius:50%}.app-module input[type=file]{width:100%;color:var(--ink-soft);padding:10px 0;font-size:14px}.app-module input[type=file]::file-selector-button{border-radius:var(--pill,980px);border:1px solid var(--line-strong);background:var(--bg-raised);color:var(--ink);cursor:pointer;transition:background .15s var(--app-ease), border-color .15s var(--app-ease);margin-right:12px;padding:8px 14px;font-weight:500}.app-module input[type=file]::file-selector-button:hover{background:var(--fill-hover);border-color:var(--line-strong)}.app-module .row-check{cursor:pointer;align-items:center;gap:10px;padding:12px 0;display:flex}.app-module .row-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand-500)}.app-module .otp-row{align-items:stretch;gap:10px;display:flex}.app-module .otp-row input{flex:1;min-width:0}.app-module .badge-warn{background:var(--red-soft);color:var(--red)}.app-module .empty-glyph{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-module .chip.chip-warn{background:var(--red-soft);color:var(--red)}.app-module .chip.chip-warn.selected{background:var(--red);color:#fff}@media (prefers-reduced-motion:reduce){.app-module .rec-card{transition:none!important;transform:none!important}.app-module input[type=range]::-webkit-slider-thumb{transition:none!important;transform:none!important}.app-module input[type=range]::-moz-range-thumb{transition:none!important;transform:none!important}.app-module input[type=file]::file-selector-button{transition:none!important;transform:none!important}}.app-module .login-card:not(.login-card-wide){box-shadow:none;background:0 0;border:none;margin-bottom:0;padding:8px 4px 24px}.app-module .login-card:not(.login-card-wide):hover{box-shadow:none}.app-module .login-card-wide{background:var(--bg-raised);border-radius:22px;width:min(560px,100%);margin-bottom:0;padding:40px 36px}@media (width<=767px){.app-module .login-card-wide{padding:24px 18px}}.app-module .consent-sheet{background:var(--bg-sunken,#f6f5f2);border:1px solid var(--line,#e6e2da);white-space:pre-wrap;border-radius:12px;max-height:280px;margin:8px 0 14px;padding:14px 16px;overflow:auto}.app-module .consent-sheet p{margin:0 0 8px;font-size:13px;line-height:1.65}.medal-hero{background:radial-gradient(ellipse 60% 90% at 12% 50%, #d4b97a24, transparent 70%), var(--bg-raised);align-items:center;gap:22px;padding:20px 24px;display:flex}.medal-hero-emblem{flex:none;place-items:center;width:128px;height:128px;display:grid;position:relative}.medal-hero-ring{width:100%;height:100%;position:absolute;inset:0}.medal-hero-coin{filter:drop-shadow(0 6px 14px #0000002e);position:relative}.medal-hero-pct{border-radius:var(--pill);background:var(--gold);color:#fff;font-variant-numeric:tabular-nums;box-shadow:var(--sh-sm);padding:2px 9px;font-size:12px;font-weight:700;position:absolute;bottom:6px;right:-2px}.medal-hero-body{flex:1;min-width:0}.medal-hero-kicker{letter-spacing:2px;color:var(--gold);margin-bottom:4px;font-size:11px;font-weight:700}.medal-hero-title{font-family:var(--font-display);letter-spacing:.01em;margin-bottom:4px;font-size:22px;font-weight:700}.medal-hero-title em{color:var(--gold);font-style:normal}.medal-hero-body .progress-track{margin-top:10px}.medal-hero-foot{margin-top:8px;font-size:12px}.medal-wall{flex-direction:column;gap:14px;margin-top:14px;display:flex}.medal-fam{padding:16px 20px 18px}.medal-fam-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.medal-fam-name{font-family:var(--font-display);font-size:17px;font-weight:700}.medal-fam-meta{margin-top:2px;font-size:12px}.medal-fam-badge{border-radius:var(--pill);background:var(--blue-soft);color:var(--blue);flex:none;padding:3px 12px;font-size:11.5px;font-weight:700}.medal-fam-badge.tier-0{color:#8a5a26;background:#f3e2cd}.medal-fam-badge.tier-1{color:#5b6c82;background:#e6ebf2}.medal-fam-badge.tier-2{background:var(--gold-soft);color:var(--gold)}.medal-fam-badge.tier-3{color:#3a7ca6;background:#e0f1fb}.medal-fam-badge.tier-4{color:#6444a0;background:#ece4f7}.medal-fam-badge.is-none{background:var(--fill-hover);color:var(--ink-faint)}.pill-royal{color:#6444a0;background:#ece4f7}.medal-ladder{grid-template-columns:repeat(5,1fr);align-items:end;padding-top:8px;display:grid;position:relative}.medal-step{text-align:center;flex-direction:column;align-items:center;min-width:0;display:flex;position:relative}.medal-step-coin{place-items:center;display:grid;position:relative}.medal-step-label{margin-top:6px;font-size:12.5px;font-weight:700}.medal-step-goal{font-variant-numeric:tabular-nums;font-size:11px}.medal-step.is-locked .medal-emblem{color:#9aa0a6}.medal-step.is-locked .medal-step-label{color:var(--ink-faint);font-weight:500}.medal-step-q{background:var(--bg-sunken);border:1px solid var(--line-strong);width:17px;height:17px;color:var(--ink-faint);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid;position:absolute;top:2px;right:2px}.medal-step.is-current .medal-step-coin{filter:drop-shadow(0 4px 12px #d4b97a8c);transform:scale(1.1)}.medal-step.is-current .medal-step-label{color:var(--gold)}.medal-step.is-next .medal-emblem{animation:2.4s ease-in-out infinite medal-kindle}.medal-step-progress{flex-direction:column;align-items:center;gap:3px;width:76%;margin-top:5px;display:flex}.medal-step-frac{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:10.5px}.medal-emblem.is-locked{filter:grayscale();opacity:.4}.medal-emblem .medal-halo{animation:3.2s ease-in-out infinite medal-halo}.medal-step.is-unlocked.step-2 .medal-step-coin:after,.medal-step.is-unlocked.step-3 .medal-step-coin:after,.medal-step.is-unlocked.step-4 .medal-step-coin:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 38%,#ffffffa6 50%,#0000 62%) 0 0/260% 100%;border-radius:42% 42% 48% 48%/26% 26% 62% 62%;animation:3.8s ease-in-out infinite medal-shine;position:absolute;inset:4%}@keyframes medal-shine{0%,55%{background-position:120% 0}85%,to{background-position:-40% 0}}@keyframes medal-kindle{0%,to{filter:grayscale()brightness(.52);opacity:.68}50%{filter:grayscale(.55)brightness(1.08);opacity:1}}@keyframes medal-halo{0%,to{opacity:.35}50%{opacity:.62}}@media (width<=640px){.medal-hero{flex-direction:column;align-items:flex-start;gap:14px}.medal-ladder{grid-template-columns:repeat(5,minmax(0,1fr))}.medal-step .medal-emblem{width:44px;height:44px}.medal-step-goal{display:none}}@media (prefers-reduced-motion:reduce){.medal-emblem .medal-halo,.medal-step.is-unlocked .medal-step-coin:after{animation:none}}.page-head:has(>.view-switch){flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.view-switch{border-radius:var(--pill);background:var(--fill-hover);border:1px solid var(--line);flex:none;margin-top:6px;padding:3px;display:inline-flex}.view-switch button{font:inherit;color:var(--ink-soft);border-radius:var(--pill);cursor:pointer;background:0 0;border:none;padding:5px 16px;font-size:12.5px;font-weight:600}.view-switch button.on{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow)}.medal-strip{flex-wrap:wrap;align-items:center;gap:1px;max-width:100%;margin:6px 0 2px;display:inline-flex}.medal-strip .medal-emblem{flex:none}.student-card .medal-strip .medal-emblem{width:22px;height:22px}.medal-strip-count{color:var(--gold);font-variant-numeric:tabular-nums;margin-left:6px;font-size:11px;font-style:normal;font-weight:700}.medal-strip.compact{margin:0}.medal-strip.compact .medal-strip-count{font-size:10.5px}.student-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.student-tags i{border-radius:var(--pill);background:var(--gold-soft);color:var(--gold);padding:1px 8px;font-size:10.5px;font-style:normal;font-weight:600}.student-tags.inline{margin-top:0}.student-table-card{padding:6px 0;overflow-x:auto}.student-table{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}.student-table th{text-align:left;letter-spacing:1px;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.student-table td{border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:10px 12px}.student-table tbody tr{cursor:pointer;transition:background .15s var(--ease)}.student-table tbody tr:hover{background:var(--fill-hover)}.student-table tbody tr:last-child td{border-bottom:none}.student-table .nick{font-size:14px;font-weight:700}.student-table .num{font-variant-numeric:tabular-nums;font-weight:600}.student-table .muted{font-size:12px}.warn-text{color:var(--orange);font-size:12.5px;font-weight:600}.app-module .set-page{max-width:760px}.app-module .set-head{margin-bottom:16px}.app-module .set-jump{z-index:4;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap;gap:8px;margin:-4px 0 18px;padding:10px 0 12px;display:flex;position:sticky;top:0}.app-module .set-sheet{background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--ink) 16%, transparent);border-radius:16px;padding:0;scroll-margin-top:16px;overflow:hidden;box-shadow:inset 0 1px #ffffffc7,0 1px 2px #1b241f0f}.app-module .set-sheet.card:hover{box-shadow:inset 0 1px #ffffffc7,0 1px 2px #1b241f0f}.app-module .set-sheet-head{border-bottom:1px solid var(--line);padding:16px 18px 14px}.app-module .set-sheet-head h2{font-family:var(--font-display);letter-spacing:.01em;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:700;display:flex}.app-module .set-sheet-head p{color:var(--ink-soft);margin:6px 0 0;font-size:13px;line-height:1.55}.app-module .set-block{border-top:1px solid color-mix(in srgb, var(--ink) 10%, var(--line));padding:16px 18px 18px}.app-module .set-fields-2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.app-module .set-sheet-head+.set-block{border-top:0}.app-module .set-block .card-title{margin-bottom:10px;font-size:15px;font-weight:650}.app-module .set-block-note{color:var(--ink-soft);border-top:1px solid var(--line);margin:0;padding:12px 18px 16px;font-size:13px;line-height:1.55}.app-module .set-block .avatar-edit-row{margin-bottom:0}.app-module .set-block .btn-row{margin-top:12px}.avatar-lg{width:64px;height:64px;font-size:24px}.avatar-edit-row{align-items:center;gap:16px;margin-bottom:12px;display:flex}.avatar-edit-side{flex:1;min-width:0}.avatar-edit-side input[type=file]{color:var(--ink-soft);font-size:12.5px}.studio-logo-box{background:var(--fill-hover);border:1px solid var(--line);width:64px;height:64px;color:var(--ink-soft);border-radius:16px;flex:none;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex;overflow:hidden}.studio-logo-box img{object-fit:cover;width:100%;height:100%;display:block}.studio-cover-preview{background:var(--fill-hover);border:1px solid var(--line);width:100%;height:88px;color:var(--ink-faint);border-radius:14px;justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.studio-cover-preview img{object-fit:cover;width:100%;height:100%;display:block}.logo-compare{flex-wrap:wrap;align-items:center;gap:14px;margin:10px 0 14px;display:flex}.logo-compare .studio-cover-preview{width:200px;height:62px}.logo-compare-item{flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.logo-compare-arrow{color:var(--ink-faint);font-size:20px}.app-module .wb-head-copy{min-width:0}.app-module .wb-head-copy .sub{margin-top:6px;display:block}.app-module .wb-head-count{color:var(--ink-faint);align-items:baseline;gap:8px;padding-bottom:4px;font-size:13px;display:flex}.app-module .wb-head-count b{font-family:var(--font-display);color:var(--ink);letter-spacing:-.03em;font-size:32px;font-weight:700;line-height:1}.app-module .wb-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 14px;display:flex}.app-module .wb-toolbar .wb-head-copy{padding-bottom:8px}.app-module .wb-toolbar h2{font-family:var(--font-display);letter-spacing:.005em;margin:0;font-size:clamp(26px,3.4vw,32px);font-weight:700;line-height:1.16}.app-module .wb-toolbar .wb-seg{border-bottom:0;margin:0}.app-module .wb-toolbar .wb-seg-btn{padding-bottom:10px}.app-module .wb-hero{grid-template-columns:minmax(0,1fr) 220px;align-items:stretch;gap:16px;margin:0 0 20px;display:grid}.app-module .wb-hero.is-quiet{grid-template-columns:minmax(0,1fr) 220px;gap:16px;margin:0 0 16px}.app-module .wb-hero.is-quiet .wb-ticket{min-height:168px}.app-module .wb-hero.is-quiet .wb-ticket-hit{grid-template-columns:72px minmax(0,1fr)}.app-module .wb-hero.is-quiet .wb-ticket-body{gap:2px;padding:14px 18px 12px 16px}.app-module .wb-hero.is-quiet .wb-ticket-title{font-size:18px}.app-module .wb-hero.is-quiet .wb-ticket-time{font-size:20px}.app-module .wb-hero.is-quiet .wb-ticket-foot{margin-top:0}.app-module .wb-ticket{border:1px solid var(--line-strong);background-color:var(--bg-raised);width:100%;min-height:176px;color:inherit;box-shadow:inset 0 1px 0 #ffffffb3, var(--sh-sm);background-image:linear-gradient(#fff8eb73,#0000 42%),url(/portal/book/paper-grain.svg);background-repeat:no-repeat,repeat;background-size:100% 100%,180px 180px;border-radius:16px;grid-template-columns:minmax(288px,340px) minmax(0,1fr);padding:0;display:grid;overflow:hidden}.app-module .wb-ticket-hit{min-width:0;min-height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s var(--app-ease);background:0 0;border:0;grid-template-columns:104px minmax(0,1fr);padding:0;display:grid}.app-module .wb-ticket-hit:hover{background:color-mix(in srgb, var(--gold) 7%, transparent)}.app-module .wb-ticket-stub{background:linear-gradient(#d4b97a29,#0000 78%);flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:18px 10px;display:flex;position:relative}.app-module .wb-ticket-stub:after{content:"";border-right:1px dashed color-mix(in srgb, var(--gold) 55%, var(--line));position:absolute;top:12px;bottom:12px;right:0}.app-module .wb-ticket-time{font-family:var(--font-display);letter-spacing:-.03em;text-align:center;font-size:clamp(22px,2.8vw,30px);font-weight:700;line-height:1.05}.app-module .wb-ticket-time.is-blank{color:var(--ink-faint)}.app-module .wb-ticket-end{font-family:var(--font-mono);color:var(--ink-faint);letter-spacing:.04em;font-size:12px}.app-module .wb-ticket-body{flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:22px 24px 18px 26px;display:flex}.app-module .wb-ticket-kicker{letter-spacing:.16em;color:var(--gold);font-size:11px;font-weight:600}.app-module .wb-ticket.is-done .wb-ticket-kicker{color:var(--ink-faint)}.app-module .wb-ticket-title{font-family:var(--font-display);letter-spacing:.01em;font-size:clamp(22px,2.5vw,28px);font-weight:700;line-height:1.2}.app-module .wb-ticket-meta{color:var(--ink-soft);font-size:14px}.app-module .wb-ticket-foot{color:var(--ink-faint);margin-top:4px;font-size:12px}.app-module .wb-ticket.is-empty .wb-ticket-title{color:var(--ink-soft);font-weight:600}.app-module .wb-rail{flex-direction:column;justify-content:center;min-width:0;padding:6px 16px;display:flex}.app-module .wb-rail-item{border:0;border-bottom:1px solid var(--line);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:1fr auto;align-items:baseline;gap:8px 12px;margin:0;padding:11px 0;display:grid}.app-module .wb-rail-item:last-child{border-bottom:0}.app-module .wb-rail-item:hover .wb-rail-label{color:var(--ink)}.app-module .wb-rail-label{color:var(--ink-soft);font-size:13px}.app-module .wb-rail-n{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:22px;font-weight:700;line-height:1}.app-module .wb-rail-item.is-warn .wb-rail-n{color:var(--orange)}.app-module .wb-rail-item.is-danger .wb-rail-n{color:var(--red)}.app-module .wb-rail-item.is-zero .wb-rail-n,.app-module .wb-rail-item.is-zero .wb-rail-label{color:var(--ink-faint)}.app-module .wb-rail-note{color:var(--ink-faint);grid-column:1/-1;margin-top:-6px;font-size:11px}.app-module .wb-seg{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:0;margin:0 0 16px;display:flex}.app-module .wb-seg-btn{font:inherit;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin:0 0 -1px;padding:8px 14px 10px;font-size:14px}.app-module .wb-seg-btn.is-on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}.app-module .wb-scope-row{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}.app-module .wb-scope-btn{border:1px solid var(--line-strong);font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:4px;margin:0;padding:4px 10px;font-size:13px}.app-module .wb-scope-btn.is-on{border-color:var(--ink);color:var(--ink)}.app-module .wb-section,.app-module .wb-side-block,.app-module .wb-rail,.app-module .wb-fold{background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--ink) 16%, transparent);border-radius:16px;box-shadow:inset 0 1px #ffffffc7,0 1px 2px #1b241f0f}.app-module .wb-section{margin-bottom:16px;padding:14px 14px 10px}.app-module .wb-side-block{margin-bottom:16px;padding:14px 14px 12px}.app-module .wb-section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 10px;padding:0 2px 10px;display:flex}.app-module .wb-section-head .wb-section-title{margin:0}.app-module .wb-section>.wb-section-title,.app-module .wb-side-block>.wb-section-title{border-bottom:1px solid var(--line);margin:0 0 10px;padding:0 2px 10px}.app-module .wb-section-n{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:15px;font-weight:700}.app-module .wb-section-n.is-warn{color:var(--orange)}.app-module .wb-section-title{font-family:var(--font-display);letter-spacing:.01em;margin:0 0 4px;font-size:17px;font-weight:700}.app-module .wb-board{grid-template-columns:minmax(0,1.15fr) minmax(240px,.85fr);align-items:start;gap:16px 20px;display:grid}.app-module .wb-board.is-single{grid-template-columns:1fr;max-width:720px}.app-module .wb-board-main .wb-section{margin-bottom:16px}.app-module .wb-side-block .wb-section-title{font-size:16px}.app-module .wb-side-copy{color:var(--ink-soft);margin:0 0 8px;font-size:13px;line-height:1.5}.app-module .wb-side-meta,.app-module .wb-side-note{color:var(--ink-faint);margin:8px 0 0;font-size:12px;line-height:1.45}.app-module .wb-section .wb-list-hit,.app-module .wb-side-block .wb-list-hit{border-radius:8px;padding:10px 8px}.app-module .wb-empty{color:var(--ink-faint);margin:0;font-size:13px}.app-module .wb-board-main>.wb-empty{background:var(--bg-raised);border:1px solid color-mix(in srgb, var(--ink) 16%, transparent);border-radius:16px;padding:16px;box-shadow:inset 0 1px #ffffffc7,0 1px 2px #1b241f0f}.app-module .wb-more{font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;margin:8px 0 0;padding:0;font-size:13px}.app-module .wb-more:hover{color:var(--ink)}.app-module .wb-section-head .wb-more{margin:0}.app-module .wb-section-lead{color:var(--ink-faint);margin:0 0 14px;font-size:13px;line-height:1.45}.app-module .wb-list{margin:0;padding:0;list-style:none}.app-module .wb-list>li+li{border-top:1px solid var(--line)}.app-module .wb-mail .wb-mail-hit{flex-direction:column;align-items:stretch;gap:4px;display:flex}.app-module .wb-mail-top{align-items:center;gap:8px;min-width:0;display:flex}.app-module .wb-mail-top .wb-list-main{flex:1;min-width:0}.app-module .wb-mail-top .task-badge{flex-shrink:0;margin-left:0}.app-module .wb-mail-body{-webkit-line-clamp:2;color:var(--ink-soft);text-align:left;-webkit-box-orient:vertical;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.app-module .wb-mail-hit.is-unread{box-shadow:inset 3px 0 0 var(--orange)}.app-module .wb-mail-empty{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding:10px 8px;display:flex}.app-module .wb-mail-empty:hover{background:var(--fill-hover)}.app-module .wb-page .wb-grid{gap:32px;margin-bottom:8px}.app-module .wb-board-side .wb-bars{height:120px}.app-module .wb-board-side .wb-hbar-key{display:none}.app-module .wb-board-side .wb-hbar-row{border-radius:8px;grid-template-columns:72px 1fr;padding:6px 4px}.app-module .wb-board-side .wb-hbar-meta{text-align:left;grid-column:1/-1}@media (width<=900px){.app-module .wb-hero,.app-module .wb-hero.is-quiet{grid-template-columns:1fr;gap:12px}.app-module .wb-ticket,.app-module .wb-hero.is-quiet .wb-ticket{grid-template-columns:1fr}.app-module .wb-board{grid-template-columns:1fr;gap:12px}.app-module .wb-toolbar{flex-wrap:wrap;align-items:flex-start}.app-module .wb-rail{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;padding:6px 12px;display:grid}.app-module .wb-rail-item:nth-last-child(-n+2){border-bottom:0}}.app-module .hm-card{padding-bottom:14px}.app-module .hm-lead{color:var(--ink-soft);margin:4px 0 0;font-size:13px;line-height:1.45}.app-module .hm-head-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.app-module .hm-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px;display:grid}.app-module .hm-kpi{background:linear-gradient(180deg, color-mix(in srgb, var(--bg-sunken) 55%, transparent), transparent), color-mix(in srgb, var(--ink) 4%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:12px;padding:12px 12px 10px}.app-module .hm-kpi b{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--ink);font-size:26px;font-weight:700;line-height:1;display:block}.app-module .hm-kpi span{color:var(--ink-faint);margin-top:6px;font-size:12px;display:block}.app-module .hm-kpi.is-warn{background:color-mix(in srgb, var(--orange-soft) 70%, var(--bg-raised));border-color:color-mix(in srgb, var(--orange) 28%, transparent)}.app-module .hm-kpi.is-warn b{color:var(--orange)}.app-module .hm-kpi.is-danger{background:color-mix(in srgb, var(--red-soft,#f8e6e4) 70%, var(--bg-raised));border-color:color-mix(in srgb, var(--red,#c0453a) 28%, transparent)}.app-module .hm-kpi.is-danger b{color:var(--red,#c0453a)}.app-module .hm-grid{grid-template-columns:minmax(240px,.92fr) minmax(0,1.08fr);align-items:start;gap:18px 24px;margin-bottom:6px;display:grid}.app-module .hm-pane-title{color:var(--ink-soft);margin:0 0 10px;font-size:13px;font-weight:600}.app-module .hm-donut-wrap{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.app-module .hm-donut-stage{flex-shrink:0;width:168px;height:168px;position:relative}.app-module .hm-donut{width:168px;height:168px;display:block}.app-module .hm-donut-slice{cursor:pointer;transition:opacity .18s var(--app-ease,ease), stroke-dasharray .8s var(--app-ease,ease), stroke-width .18s ease}.app-module .hm-donut-center{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.app-module .hm-donut-center b{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--ink);font-size:28px;font-weight:700;line-height:1}.app-module .hm-donut-center span{color:var(--ink-faint);margin-top:4px;font-size:11px}.app-module .hm-legend{flex:1;min-width:148px;margin:0;padding:0;list-style:none}.app-module .hm-legend li{color:var(--ink-soft);cursor:default;border-radius:8px;grid-template-columns:10px 1fr auto auto;align-items:center;gap:8px;padding:8px 6px;font-size:13px;display:grid}.app-module .hm-legend li.is-on,.app-module .hm-legend li:hover{background:var(--fill-hover);color:var(--ink)}.app-module .hm-legend i{border-radius:50%;width:8px;height:8px}.app-module .hm-legend small{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:11px}.app-module .hm-legend b{font-variant-numeric:tabular-nums;color:var(--ink)}.app-module .hm-bars{flex-direction:column;gap:4px;display:flex}.app-module .hm-bar{width:100%;font:inherit;color:inherit;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:72px minmax(0,1fr) 52px;align-items:center;gap:2px 10px;margin:0;padding:7px 8px;display:grid}button.hm-bar{cursor:pointer}button.hm-bar:hover,.app-module .hm-bar.is-on{background:var(--fill-hover)}.app-module .hm-bar-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.app-module .hm-bar-track{border-radius:var(--pill,999px);background:var(--chart-empty,var(--bg-sunken));height:8px;overflow:hidden}.app-module .hm-bar-fill{border-radius:inherit;background:var(--chart-ok,var(--green));height:100%;transition:width .7s var(--app-ease,ease);display:block}.app-module .hm-bar.is-low .hm-bar-fill{background:var(--chart-warn,var(--orange))}.app-module .hm-bar.is-empty .hm-bar-fill{background:var(--chart-danger,var(--red))}.app-module .hm-bar-n{font-variant-numeric:tabular-nums;color:var(--ink-soft);text-align:right;font-size:12px}.app-module .hm-bar-note{color:var(--ink-faint);grid-column:2/-1;font-size:11px}.app-module .hm-bar.is-low .hm-bar-n,.app-module .hm-bar.is-empty .hm-bar-n{color:inherit}.app-module .hm-bar.is-low .hm-bar-n{color:var(--orange)}.app-module .hm-bar.is-empty .hm-bar-n{color:var(--red,#c0453a)}.app-module .hm-risk{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.app-module .hm-risk-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.app-module .hm-risk-head .hm-pane-title{margin:0}.app-module .hm-risk-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.app-module .hm-risk-hit{border:1px solid color-mix(in srgb, var(--ink) 10%, transparent);background:color-mix(in srgb, var(--orange-soft) 42%, var(--bg-raised));width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;padding:10px 12px;display:grid}.app-module .hm-risk-hit.is-empty{background:color-mix(in srgb, var(--red-soft,#f8e6e4) 48%, var(--bg-raised))}.app-module .hm-risk-hit:hover{border-color:color-mix(in srgb, var(--ink) 22%, transparent)}.app-module .hm-risk-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.app-module .hm-risk-meta{color:var(--ink-faint);grid-column:1;font-size:12px}.app-module .hm-risk-tag{font-variant-numeric:tabular-nums;color:var(--orange);grid-row:1/span 2;font-size:12px;font-weight:600}.app-module .hm-risk-hit.is-empty .hm-risk-tag{color:var(--red,#c0453a)}.app-module .hm-leftover{border-top-style:dashed}.app-module .hm-leftover-lead{color:var(--ink-faint);margin:0 0 8px;font-size:12px}.app-module .hm-risk-hit.is-leftover{background:color-mix(in srgb, var(--bg-sunken) 70%, var(--bg-raised))}@media (width<=900px){.app-module .hm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.app-module .hm-grid,.app-module .hm-risk-list{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.app-module .hm-donut-slice,.app-module .hm-bar-fill{transition:none}}.app-module .ls-card{padding-bottom:14px}.app-module .ls-lead{color:var(--ink-soft);margin:4px 0 0;font-size:13px;line-height:1.45}.app-module .ls-bar{flex-wrap:wrap;align-items:flex-end;gap:10px 12px;margin:0 0 12px;display:flex}.app-module .ls-field{min-width:140px;margin:0}.app-module .ls-presets{flex-wrap:wrap;gap:6px;display:flex}.app-module .ls-export{margin-left:auto}.app-module .ls-kpis{color:var(--ink-soft);flex-wrap:wrap;gap:8px 14px;margin:0 0 12px;font-size:13px;display:flex}.app-module .ls-kpis strong{font-variant-numeric:tabular-nums;color:var(--ink)}.app-module .ls-table-wrap{overflow-x:auto}.app-module .ls-table{min-width:720px}.app-module .ls-table tbody tr{cursor:default}.app-module .ls-plus{color:var(--green,#2f7d4a)}.app-module .ls-minus{color:var(--orange)}@media (width<=767px){.app-module{min-width:0;max-width:100%}.app-module .wb-ticket{min-width:0;min-height:0}.app-module .ls-export{margin-left:0}.app-module .wb-ticket-hit{grid-template-columns:84px minmax(0,1fr)}.app-module .wb-ticket-body{padding:16px 16px 14px 18px}.app-module .wb-ticket-title{font-size:22px}.app-module .wb-head-count b{font-size:26px}.app-module .set-fields-2{grid-template-columns:1fr}.app-module .hm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.app-module .jr-days{overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x pan-y}.app-module .ls-table-wrap{overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x pan-y;max-width:100%}}@media (hover:none){.app-module .btn:hover,.app-module .chip:hover,.app-module .stat-row>button.stat:hover,.app-module .sm-card:hover,.app-module .jr-day:hover,.app-module .medal:hover,.app-module .cal-upgrade .cal-week-block:hover,.app-module .cal-upgrade .cal-week-ev:hover,.app-module .cal-upgrade .cal-month-ev:hover,.app-module .btn:active,.app-module .stat-row>button.stat:active{transform:none}}.shell>.main.app-module{--ws-sheen:#ffffffb8;--ws-lift:inset 0 1px 0 var(--ws-sheen), 0 1px 2px #1b241f0b, 0 14px 32px -22px #1b241f38;--ws-lift-hover:inset 0 1px 0 var(--ws-sheen), var(--sh-md);--ws-dur:.16s;--ws-dur-fast:.12s;--ws-focus:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 70%, var(--brand-500));--ws-gap:16px;--ws-gap-lg:20px;--ws-gap-xl:24px}@media (prefers-color-scheme:dark){.shell>.main.app-module{--ws-sheen:#ffffff1a;--ws-lift:inset 0 1px 0 var(--ws-sheen), 0 1px 2px #00000059, 0 16px 36px -20px #0000008c;--ws-lift-hover:inset 0 1px 0 var(--ws-sheen), var(--sh-md)}}@media (width>=768px){.shell>.main.app-module{max-width:none;padding:32px clamp(24px,3vw,40px) 80px}.shell>.main.app-module>*{width:min(1080px,100%);margin-inline:auto}}.shell>.main.app-module :is(.card,.student-card,.sm-card,.stat-row>.stat,.stat-row>button.stat,.wb-section,.wb-side-block,.wb-rail,.wb-fold,.wb-ticket,.brand-upgrade.studio-brand,.wb-board-main>.wb-empty,.cal-sum,.empty-state){box-shadow:var(--ws-lift);border-color:var(--line)}.shell>.main.app-module .card{margin-bottom:var(--ws-gap);transition:box-shadow var(--ws-dur) var(--app-ease,var(--ease)), border-color var(--ws-dur) var(--app-ease,var(--ease)), transform var(--ws-dur) var(--app-ease,var(--ease));padding:20px 22px}.shell>.main.app-module .card-title{margin-bottom:12px;line-height:1.3}.shell>.main.app-module .card.empty-state,.shell>.main.app-module .empty-state{border-style:dashed;border-color:var(--line-strong);background:color-mix(in srgb, var(--bg-raised) 55%, transparent);padding:40px 24px}.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat,.wb-ticket-hit,.wb-rail-item,.wb-list-hit,.hw-row-top,.cal-today-row,.jr-day,.set-kid){transition:background-color var(--ws-dur-fast) var(--app-ease,var(--ease)), border-color var(--ws-dur) var(--app-ease,var(--ease)), box-shadow var(--ws-dur) var(--app-ease,var(--ease)), transform var(--ws-dur) var(--app-ease,var(--ease)), color var(--ws-dur-fast) var(--app-ease,var(--ease))}.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat):hover{box-shadow:var(--ws-lift-hover);border-color:var(--line-strong);transform:translateY(-1px)}.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat):active{box-shadow:var(--ws-lift);transform:translateY(0)scale(.985)}.shell>.main.app-module .page-head{margin-bottom:var(--ws-gap-lg);padding-bottom:var(--ws-gap)}.shell>.main.app-module :is(.page-head h2,h1.page-title,.wb-toolbar h2,.card-title,.wb-section-title){text-wrap:balance}.shell>.main.app-module :is(.page-head .sub,p.page-sub,.wb-head-copy .sub){max-width:62ch;color:var(--ink-soft);text-wrap:pretty;margin-top:8px}.shell>.main.app-module .wb-toolbar{margin-bottom:var(--ws-gap);align-items:flex-end;gap:var(--ws-gap)}.shell>.main.app-module .wb-hero,.shell>.main.app-module .wb-hero.is-quiet{gap:var(--ws-gap);margin-bottom:var(--ws-gap-lg)}.shell>.main.app-module .wb-scope-row,.shell>.main.app-module .chip-row,.shell>.main.app-module .tl-toolbar,.shell>.main.app-module .jr-toolbar{margin-bottom:var(--ws-gap);align-items:center;gap:8px}.shell>.main.app-module .notice{margin:0 0 var(--ws-gap)}.shell>.main.app-module .stat .n{font-variant-numeric:tabular-nums;letter-spacing:-.03em}.shell>.main.app-module .stat .l{margin-top:8px}.shell>.main.app-module .cal-sum{border-radius:var(--radius-md,12px);padding:12px 16px}.shell>.main.app-module .student-grid,.shell>.main.app-module .sm-grid{gap:var(--ws-gap);margin-bottom:var(--ws-gap-lg)}.shell>.main.app-module .wb-board{gap:var(--ws-gap)}.shell>.main.app-module .wb-section,.shell>.main.app-module .wb-side-block{margin-bottom:var(--ws-gap);padding:16px 18px 14px}.shell>.main.app-module .hw-row-top{min-height:48px;padding-block:14px;padding-inline:12px}.shell>.main.app-module .wb-list-hit,.shell>.main.app-module .wb-section .wb-list-hit,.shell>.main.app-module .wb-side-block .wb-list-hit{border-radius:var(--radius-sm,8px);min-height:44px;padding:12px 10px}.shell>.main.app-module .wb-list-hit:hover,.shell>.main.app-module .hw-row-top:hover,.shell>.main.app-module .cal-today-row:hover,.shell>.main.app-module .wb-rail-item:hover{background:var(--fill-hover)}.shell>.main.app-module .wb-rail-item{min-height:44px;padding-block:12px}.shell>.main.app-module .cal-today-row{margin-inline:-4px;padding:10px 12px}.shell>.main.app-module .tl-item{padding-block:12px}.shell>.main.app-module .wb-seg-btn{transition:color var(--ws-dur-fast) var(--app-ease,var(--ease)), border-color var(--ws-dur-fast) var(--app-ease,var(--ease))}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary):active:not(:disabled){transform:scale(.98)}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.chip,.wb-seg-btn,.wb-scope-btn,.wb-list-hit,.wb-rail-item,.wb-ticket-hit,.wb-more,.stat-row>button.stat,a.card,button.card,.faculty-card,.student-card,.sm-card,.hw-row-top,.hw-box,.jr-day,.set-kid,.cal-today-row):focus-visible{box-shadow:var(--ws-focus);outline:none}.shell>.main.app-module :is(.btn,.chip,.wb-scope-btn,.stat-row>button.stat):disabled,.shell>.main.app-module :is(.btn,.chip,.wb-scope-btn,.stat-row>button.stat)[aria-disabled=true]{opacity:.48;cursor:not-allowed;box-shadow:none;transform:none}.shell>.main.app-module .skeleton{border-radius:var(--radius-md,12px)}.shell>.main.app-module p.muted,.shell>.main.app-module .wb-empty{color:var(--ink-faint);line-height:1.5}.shell>.main.app-module .wb-fold>summary,.shell>.main.app-module .tl-fb>summary{transition:background-color var(--ws-dur-fast) var(--app-ease,var(--ease));border-radius:var(--radius-sm,8px)}.shell>.main.app-module .wb-fold>summary:hover,.shell>.main.app-module .tl-fb>summary:hover{background:var(--fill-hover)}.shell>.main.app-module .modal:not(.cal-edit-modal){box-shadow:var(--ws-lift), var(--sh-lg);border-radius:var(--radius,18px)}@media (width>=1100px){.shell>.main.app-module .wb-board{gap:var(--ws-gap-xl)}}@media (width<=900px){.shell>.main.app-module .wb-board,.shell>.main.app-module .stat-row{gap:12px}}@media (width<=767px){.shell>.main.app-module{min-width:0;max-width:100%;padding-inline:16px;overflow-x:clip}.shell>.main.app-module>*{width:100%;min-width:0;max-width:100%}.shell>.main.app-module .card{padding:16px}.shell>.main.app-module .card.empty-state,.shell>.main.app-module .empty-state{padding:32px 16px}.shell>.main.app-module .stat-row{gap:10px;margin-bottom:16px}.shell>.main.app-module .student-grid,.shell>.main.app-module .sm-grid{grid-template-columns:minmax(0,1fr);gap:12px}.shell>.main.app-module .hw-row-top{padding-inline:8px}.shell>.main.app-module .wb-toolbar{align-items:flex-start}.shell>.main.app-module .chip-row,.shell>.main.app-module .wb-scope-row,.shell>.main.app-module .cal-sum-row{max-width:100%}.shell>.main.app-module .cal-sum-row{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:2px;overflow-x:auto}}@media (hover:none){.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat,.chip):hover{box-shadow:var(--ws-lift);transform:none}.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat):active{transform:scale(.985)}}@media (prefers-reduced-motion:reduce){.shell>.main.app-module,.shell>.main.app-module :is(.card,a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>.stat,.stat-row>button.stat,.btn,.chip,.wb-seg-btn,.wb-scope-btn,.wb-list-hit,.wb-rail-item,.wb-ticket-hit,.hw-row-top,.hw-box,.jr-day,.set-kid,.cal-today-row,.wb-fold>summary,.tl-fb>summary){transition:none!important;animation:none!important}.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat,.chip,.btn):hover,.shell>.main.app-module :is(a.card,button.card,.faculty-card,.student-card,.sm-card,.stat-row>button.stat,.btn):active{transform:none!important}}.shell>.main.app-module{--ws-fs-page:clamp(26px, 3.2vw, 34px);--ws-fs-section:1.0625rem;--ws-fs-card:1rem;--ws-fs-body:.9375rem;--ws-fs-label:.8125rem;--ws-fs-meta:.8125rem;--ws-fs-badge:.75rem;--ws-lh-title:1.2;--ws-lh-body:1.55;--ws-lh-meta:1.4;--ws-ctrl-h:44px;--ws-ctrl-h-sm:36px;--ws-chip-h:34px;--ws-pill-h:30px;--ws-ctrl-pad-x:18px;--ws-chip-pad-x:14px;--ws-icon-gap:8px;--ws-bubble-radius:var(--radius-md,12px);--ws-meta-opacity:.9;--ws-deco-opacity:.4}.shell>.main.app-module :is(.page-head h2,h1.page-title,.wb-toolbar h2){font-size:var(--ws-fs-page);line-height:var(--ws-lh-title);letter-spacing:.002em;font-weight:700}.shell>.main.app-module :is(.card-title,.wb-section-title,.empty-title){font-size:var(--ws-fs-section);letter-spacing:-.01em;font-weight:600;line-height:1.3}.shell>.main.app-module .wb-side-block .wb-section-title{font-size:var(--ws-fs-card)}.shell>.main.app-module .wb-section-n{font-size:var(--ws-fs-label);letter-spacing:.02em;font-weight:600}.shell>.main.app-module :is(.page-head .sub,p.page-sub,.wb-head-copy .sub){font-size:var(--ws-fs-body);line-height:var(--ws-lh-body);letter-spacing:-.005em}.shell>.main.app-module :is(.wb-list-main,.wb-side-copy,.faculty-card-tagline,.empty-state>p,.empty-state .muted){font-size:var(--ws-fs-body);line-height:var(--ws-lh-body)}.shell>.main.app-module .empty-state>p,.shell>.main.app-module .empty-state .muted{color:var(--ink-soft);max-width:40ch}.shell>.main.app-module :is(.wb-list-meta,.wb-side-meta,.wb-side-note,.wb-section-lead,.wb-empty,.stat .l,.faculty-card-hint,.faculty-card-meta,p.muted,.student-table .muted,.dz-sub,.wb-bar-l,.wb-hbar-meta,.wb-legend small,.wb-hbar-key,.medal-row em,.medal-fam-meta,.medal-hero-foot,.medal-step-goal,.opt-sub){font-size:var(--ws-fs-meta);line-height:var(--ws-lh-meta);letter-spacing:.01em}.shell>.main.app-module .stat .l{color:var(--ink-soft);font-weight:500}.shell>.main.app-module :is(.faculty-card-hint,.wb-side-note,.wb-section-lead,.dz-sub,.wb-donut-cap){opacity:var(--ws-meta-opacity)}.shell>.main.app-module .wb-donut-cap{font-size:var(--ws-fs-badge)}.shell>.main.app-module :is(.field-label,.card.form>label){font-size:var(--ws-fs-label);color:var(--ink-soft);letter-spacing:.02em;font-weight:500;line-height:1.35}.shell>.main.app-module :is(button.chip,.chip,button.wb-scope-btn,.wb-scope-btn,button.rec-cat-chip,.rec-cat-chip,.chip-row>button.chip,.wb-scope-row>button.wb-scope-btn):not(.chip-warn):not(.selected):not(.is-on){min-height:var(--ws-chip-h,34px);padding:6px var(--ws-chip-pad-x,14px);font-size:var(--ws-fs-label,.8125rem);letter-spacing:.01em;border-radius:var(--pill,980px);cursor:pointer;justify-content:center;align-items:center;gap:6px;font-weight:500;line-height:1.25;display:inline-flex;border:1px solid var(--line-strong)!important;background:var(--bg-sunken)!important;color:var(--ink-soft)!important;box-shadow:none!important}.shell>.main.app-module :is(button.chip,.chip,button.wb-scope-btn,.wb-scope-btn,button.rec-cat-chip,.rec-cat-chip):not(.chip-warn):not(.selected):not(.is-on):hover:not(:disabled):not([aria-disabled=true]){filter:none;background:var(--fill-hover)!important;color:var(--ink)!important;border:1px solid var(--line-strong)!important;box-shadow:none!important}.shell>.main.app-module :is(.chip.selected,button.chip.selected,.wb-scope-btn.is-on,button.wb-scope-btn.is-on,.rec-cat-chip.is-on,button.rec-cat-chip.is-on){border-radius:var(--pill,980px);box-shadow:var(--cta-gold-glow);font-weight:600;border:1px solid var(--cta-gold-line)!important;background:var(--cta-gold-fill)!important;color:var(--cta-gold-ink)!important}.shell>.main.app-module :is(.chip.selected,.wb-scope-btn.is-on,.rec-cat-chip.is-on):hover:not(:disabled):not([aria-disabled=true]){filter:brightness(1.05);box-shadow:var(--cta-gold-glow-hover);background:var(--cta-gold-fill)!important;color:var(--cta-gold-ink)!important;border:1px solid var(--cta-gold-line)!important}.shell>.main.app-module .page-summary>button.pill:not(.warn):not(.danger):not(.on),.shell>.main.app-module button.pill:not(.warn):not(.danger):not(.on){min-height:var(--ws-pill-h,30px);border-radius:var(--pill,980px);cursor:pointer;font-weight:500;border:1px solid var(--line-strong)!important;background:var(--bg-sunken)!important;color:var(--ink-soft)!important;box-shadow:none!important}.shell>.main.app-module .page-summary>button.pill.on,.shell>.main.app-module button.pill.on{border-radius:var(--pill,980px);box-shadow:var(--cta-gold-glow);font-weight:600;border:1px solid var(--cta-gold-line)!important;background:var(--cta-gold-fill)!important;color:var(--cta-gold-ink)!important}.shell>.main.app-module .chip.chip-warn:not(.selected){border-radius:var(--pill,980px);border:1px solid color-mix(in srgb, var(--red) 45%, var(--line-strong))!important;background:var(--bg-sunken)!important;color:var(--red)!important;box-shadow:none!important}.shell>.main.app-module .rec-cat-chip{min-height:var(--ws-chip-h,34px);font-size:var(--ws-fs-label,.8125rem);align-items:center;padding:6px 14px;line-height:1.25;display:inline-flex}.shell>.main.app-module .page-summary .pill{min-height:var(--ws-pill-h);font-size:var(--ws-fs-label);letter-spacing:.01em;border-radius:var(--radius-sm,8px);align-items:center;gap:6px;padding:4px 12px;font-weight:500;line-height:1.25;display:inline-flex}.shell>.main.app-module .page-summary .pill strong{letter-spacing:0;font-size:.95em}.shell>.main.app-module .page-summary .pill.on{background:var(--fill-active);border-color:var(--line-strong);color:var(--ink)}.shell>.main.app-module :is(.tag,.task-badge,.badge-wait){min-height:24px;font-size:var(--ws-fs-badge);letter-spacing:.02em;border-radius:var(--pill,980px);align-items:center;gap:4px;padding:4px 10px;font-weight:600;line-height:1.25;display:inline-flex}.shell>.main.app-module .feedback-form .timer-pill{min-height:26px;font-size:var(--ws-fs-badge);letter-spacing:.02em;border-radius:var(--ws-bubble-radius);align-items:center;padding:4px 10px;font-weight:600;display:inline-flex}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold,.btn-danger,.btn-danger-ghost){justify-content:center;align-items:center;gap:var(--ws-icon-gap,8px);min-height:var(--ws-ctrl-h,44px);padding:10px var(--ws-ctrl-pad-x,18px);font-size:var(--ws-fs-body,.9375rem);letter-spacing:-.01em;box-sizing:border-box;border-style:solid;border-width:1px;font-weight:500;line-height:1.25;display:inline-flex}.shell>.main.app-module .btn-sm{min-height:var(--ws-ctrl-h-sm,36px);font-size:var(--ws-fs-label,.8125rem);gap:6px;padding:7px 14px}.shell>.main.app-module :is(.btn-primary,.btn.primary,.btn-gold){background:var(--cta-gold-fill);color:var(--cta-gold-ink);border-color:var(--cta-gold-line);box-shadow:var(--cta-gold-glow);font-weight:600}.shell>.main.app-module :is(.btn-primary,.btn.primary,.btn-gold):hover:not(:disabled):not([aria-disabled=true]){background:var(--cta-gold-fill);color:var(--cta-gold-ink);border-color:var(--cta-gold-line);filter:brightness(1.06);box-shadow:var(--cta-gold-glow-hover)}.shell>.main.app-module :is(.btn-primary,.btn.primary,.btn-gold):focus-visible{box-shadow:var(--cta-gold-glow), 0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 70%, var(--brand-500));outline:none}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold).is-saved,.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold).is-saved:hover,.shell>.main.app-module .dropzone.is-saved,.shell>.main.app-module .dropzone.is-saved:hover{transform:none;background:var(--green)!important;color:#fff!important;border-color:color-mix(in srgb, var(--green) 80%, #000)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 28%, transparent)!important;filter:none!important}.shell>.main.app-module .dropzone.is-saved .dz-main,.shell>.main.app-module .dropzone.is-saved .dz-sub{color:#fff!important}.shell>.main.app-module :is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost),.shell>.main.app-module .btn-row>:is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost),.shell>.main.app-module .app-module :is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost){border-radius:var(--pill,980px);filter:none;font-weight:500;border:1px solid var(--line-strong)!important;background:var(--bg-raised)!important;color:var(--ink)!important;box-shadow:none!important}.shell>.main.app-module :is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost):hover:not(:disabled):not([aria-disabled=true]),.shell>.main.app-module .btn-row>:is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost):hover:not(:disabled):not([aria-disabled=true]),.shell>.main.app-module .app-module :is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost):hover:not(:disabled):not([aria-disabled=true]){filter:none;background:var(--fill-hover)!important;color:var(--ink)!important;border:1px solid color-mix(in srgb, var(--ink) 22%, var(--line-strong))!important;box-shadow:none!important}.shell>.main.app-module :is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost):focus-visible,.shell>.main.app-module .btn-row>:is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost):focus-visible,.shell>.main.app-module .app-module :is(button.btn,a.btn,.btn):not(.btn-primary):not(.primary):not(.btn-gold):not(.btn-danger):not(.btn-danger-ghost):focus-visible{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 70%, var(--brand-500));outline:none}.shell>.main.app-module .btn-danger{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 1px 2px color-mix(in srgb, var(--red) 35%, transparent);font-weight:600}.shell>.main.app-module .btn-danger:hover:not(:disabled):not([aria-disabled=true]){color:#fff;filter:none;box-shadow:0 2px 8px color-mix(in srgb, var(--red) 40%, transparent);background:#d93425;border-color:#d93425}.shell>.main.app-module .btn-danger:focus-visible{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--red) 55%, transparent);outline:none}.shell>.main.app-module .btn-danger-ghost{min-height:var(--ws-ctrl-h-sm,36px);font-size:var(--ws-fs-label,.8125rem);background:color-mix(in srgb, var(--red-soft) 70%, var(--bg-raised));color:var(--red);border-color:color-mix(in srgb, var(--red) 55%, transparent);box-shadow:none;gap:6px;padding:7px 14px;font-weight:600}.shell>.main.app-module .btn-danger-ghost:hover:not(:disabled):not([aria-disabled=true]){background:var(--red-soft);color:var(--red);border-color:var(--red);filter:none}.shell>.main.app-module .btn-danger-ghost:focus-visible{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--red) 50%, transparent);outline:none}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold,.btn-danger,.btn-danger-ghost):disabled,.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold,.btn-danger,.btn-danger-ghost)[aria-disabled=true]{opacity:.42;cursor:not-allowed;filter:none;box-shadow:none;transform:none}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold,.btn-danger,.btn-danger-ghost):disabled:hover,.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold,.btn-danger,.btn-danger-ghost)[aria-disabled=true]:hover{filter:none;transform:none}.shell>.main.app-module .btn-row{align-items:center;gap:10px}.shell>.main.app-module .wb-more{min-height:32px;font-size:var(--ws-fs-label);letter-spacing:.01em;align-items:center;padding:4px 2px;font-weight:500;display:inline-flex}.shell>.main.app-module .notice{font-size:var(--ws-fs-body);line-height:var(--ws-lh-body);border-radius:var(--ws-bubble-radius);letter-spacing:-.005em;padding:12px 16px}.shell>.main.app-module :is(.wb-bar-tip,.wb-hbar-tip,.spider-tip,.feedback-trend-tooltip){font-size:var(--ws-fs-label);letter-spacing:.01em;border-radius:var(--ws-bubble-radius);box-shadow:var(--ws-lift,none), var(--chart-tooltip-shadow,var(--sh-md));padding:8px 12px;font-weight:500;line-height:1.35}@media (width<=900px){.shell>.main.app-module{--ws-fs-page:clamp(24px, 4vw, 30px);--ws-fs-section:1rem}}@media (width<=767px){.shell>.main.app-module{--ws-fs-page:clamp(22px, 5.5vw, 28px);--ws-chip-h:36px;--ws-pill-h:32px;--ws-ctrl-pad-x:16px;--ws-chip-pad-x:12px}.shell>.main.app-module :is(.page-head .sub,p.page-sub,.wb-head-copy .sub){font-size:var(--ws-fs-body);max-width:none}.shell>.main.app-module :is(.btn,.btn-primary,.btn.primary,.btn-gold,.btn-danger){min-height:44px}.shell>.main.app-module .chip,.shell>.main.app-module .wb-scope-btn,.shell>.main.app-module .wb-seg-btn{min-height:36px}}@media (prefers-reduced-motion:reduce){.shell>.main.app-module :is(.wb-bar-tip,.wb-hbar-tip,.spider-tip,.feedback-trend-tooltip){transition:none!important}}.shell>.main.app-module :is(.cal-week-ev.cal-st-pending,.cal-week-block.cal-st-pending,.cal-month-ev.cal-st-pending,.cal-item-pending){border-radius:var(--radius-sm,8px);outline-offset:0!important;box-shadow:inset 3px 0 0 color-mix(in srgb, var(--blue) 75%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--blue) 18%, transparent)!important;background-image:none!important;background:color-mix(in srgb, var(--blue-soft) 70%, var(--bg-raised))!important;border:none!important;outline:none!important}.shell>.main.app-module .booking-decide-hint{border-radius:var(--radius-sm,8px);background:color-mix(in srgb, var(--blue-soft) 55%, var(--bg-raised));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--blue) 70%, transparent);color:var(--ink-soft);font-size:var(--ws-fs-body,.9375rem);border:none;margin:0 0 12px;padding:10px 14px 10px 16px;line-height:1.5}.shell>.main.app-module .booking-propose{border-radius:var(--radius-md,12px);background:color-mix(in srgb, var(--bg-sunken) 70%, var(--bg-raised));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--blue) 55%, transparent), inset 0 0 0 1px var(--line);margin-top:12px;padding:14px 16px;border:none!important}.shell>.main.app-module .cal-day-focus-pending{border-radius:var(--radius-md,12px);background:color-mix(in srgb, var(--blue-soft) 50%, var(--bg-raised));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--blue) 70%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--blue) 16%, transparent);border:none!important}.shell>.main.app-module .cal-nav>.btn,.shell>.main.app-module .cal-nav>button.btn{gap:0;width:36px;min-width:36px;height:36px;font-size:18px;font-weight:500;line-height:1;border-radius:var(--radius-sm,8px)!important;border:1px solid var(--line-strong)!important;background:var(--bg-raised)!important;min-height:36px!important;color:var(--ink-soft)!important;box-shadow:none!important;padding:0!important}.shell>.main.app-module .cal-nav>.btn:hover:not(:disabled),.shell>.main.app-module .cal-nav>button.btn:hover:not(:disabled){filter:none;transform:none;background:var(--fill-hover)!important;color:var(--ink)!important;border-color:var(--line-strong)!important;box-shadow:none!important}.shell>.main.app-module .cal-nav>.btn:focus-visible,.shell>.main.app-module .cal-nav>button.btn:focus-visible{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--brand-500) 45%, var(--line-strong));outline:none}.shell>.main.app-module .cal-nav .card-title{font-size:var(--ws-fs-section,1.0625rem);font-weight:600}.shell>.main.app-module{--ws-focus-gold:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 55%, var(--brand-500));--ws-focus-danger:0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--red) 45%, transparent);--ws-control-radius:var(--radius-md,12px);--ws-row-pad-y:12px;--ws-row-pad-x:12px}.shell>.main.app-module .field{margin-bottom:var(--ws-gap,16px);display:block}.shell>.main.app-module .field:last-child{margin-bottom:0}.shell>.main.app-module :is(.field-label,.card.form>label){font-size:var(--ws-fs-label,.8125rem);letter-spacing:.02em;color:var(--ink-soft);margin-bottom:8px;font-weight:500;line-height:1.35;display:block}.shell>.main.app-module .field>.muted,.shell>.main.app-module .field-hint,.shell>.main.app-module .field .helper{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);margin-top:6px;line-height:1.4;display:block}.shell>.main.app-module :is(input[type=text],input[type=tel],input[type=number],input[type=password],input[type=search],input[type=email],input[type=url],input[type=date],input[type=time],input[type=datetime-local],textarea,select){box-sizing:border-box;width:100%;min-height:44px;font-family:var(--font-sans);font-size:var(--ws-fs-body,.9375rem);letter-spacing:-.01em;color:var(--ink);background:var(--bg-sunken);border:1px solid var(--line-strong);border-radius:var(--ws-control-radius);transition:border-color var(--ws-dur-fast,.12s) var(--app-ease,var(--ease)), box-shadow var(--ws-dur-fast,.12s) var(--app-ease,var(--ease)), background-color var(--ws-dur-fast,.12s) var(--app-ease,var(--ease));padding:11px 14px;font-weight:400;line-height:1.4}.shell>.main.app-module textarea{resize:vertical;min-height:96px;padding-block:12px;line-height:1.55}.shell>.main.app-module select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-faint) 50%), linear-gradient(135deg, var(--ink-faint) 50%, transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:36px}.shell>.main.app-module :is(input[type=text],input[type=tel],input[type=number],input[type=password],input[type=search],input[type=email],input[type=url],input[type=date],input[type=time],input[type=datetime-local],textarea,select):hover:not(:disabled):not(:focus):not(:focus-visible){border-color:color-mix(in srgb, var(--ink) 22%, var(--line-strong))}.shell>.main.app-module :is(input[type=text],input[type=tel],input[type=number],input[type=password],input[type=search],input[type=email],input[type=url],input[type=date],input[type=time],input[type=datetime-local],textarea,select):focus,.shell>.main.app-module :is(input[type=text],input[type=tel],input[type=number],input[type=password],input[type=search],input[type=email],input[type=url],input[type=date],input[type=time],input[type=datetime-local],textarea,select):focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 55%, var(--brand-500));outline-offset:2px;background:var(--bg-raised);border-color:color-mix(in srgb, var(--gold) 45%, var(--brand-500));box-shadow:none}.shell>.main.app-module :is(input,textarea,select):disabled{opacity:.52;cursor:not-allowed;background:var(--bg-sunken)}.shell>.main.app-module :is(.field.is-error,.field.has-error,.field.error) :is(input,textarea,select),.shell>.main.app-module :is(input,textarea,select):is([aria-invalid=true],.is-error){outline:2px solid color-mix(in srgb, var(--red) 55%, transparent);outline-offset:2px;box-shadow:none;border-color:var(--red)!important}.shell>.main.app-module :is(.field.is-error,.field.has-error,.field.error) .field-label{color:var(--red)}.shell>.main.app-module .row-check{margin-bottom:var(--ws-gap,16px);font-size:var(--ws-fs-body,.9375rem);color:var(--ink);gap:12px;line-height:1.45}.shell>.main.app-module .cal-check{font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);align-items:flex-start;gap:10px;margin:8px 0 16px;line-height:1.45;display:flex}.shell>.main.app-module .dropzone{border-radius:var(--ws-control-radius);background:var(--bg-sunken);border:1px solid var(--line);transition:background var(--ws-dur,.16s) var(--app-ease,var(--ease)), border-color var(--ws-dur,.16s) var(--app-ease,var(--ease));padding:clamp(24px,4vw,40px)}.shell>.main.app-module .dropzone:hover,.shell>.main.app-module .dropzone.dragover{background:color-mix(in srgb, var(--gold-soft) 35%, var(--bg-sunken));border-color:var(--line-strong)}.shell>.main.app-module .dropzone .dz-sub{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint)}.shell>.main.app-module :is(.card.empty-state,.empty-state){border-style:dashed;border-color:var(--line-strong);background:color-mix(in srgb, var(--bg-sunken) 40%, var(--bg-raised));gap:4px;padding:40px 24px}.shell>.main.app-module .empty-glyph{opacity:.72;margin-bottom:12px}.shell>.main.app-module .empty-title{font-size:var(--ws-fs-section,1.0625rem);color:var(--ink);margin:0 0 8px;font-weight:600;line-height:1.3}.shell>.main.app-module :is(.empty-state>p,.empty-state .muted,.wb-empty){max-width:36ch;font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);margin:0 auto;line-height:1.55}.shell>.main.app-module p.muted{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);line-height:1.5}.shell>.main.app-module .student-table-card{padding:4px 0 8px}.shell>.main.app-module .student-table{font-size:var(--ws-fs-label,.8125rem)}.shell>.main.app-module .student-table th{letter-spacing:.04em;text-transform:none;color:var(--ink-soft);border-bottom-color:var(--line-strong);background:color-mix(in srgb, var(--bg-sunken) 55%, transparent);padding:12px 14px;font-size:12px;font-weight:600}.shell>.main.app-module .student-table td{border-bottom-color:color-mix(in srgb, var(--line) 85%, transparent);vertical-align:middle;padding:12px 14px}.shell>.main.app-module .student-table .nick{font-size:var(--ws-fs-body,.9375rem);color:var(--ink);font-weight:600}.shell>.main.app-module .student-table .muted{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint)}.shell>.main.app-module .student-table tbody tr:hover{background:var(--fill-hover)}.shell>.main.app-module .student-table tbody tr:focus-within{background:color-mix(in srgb, var(--fill-active) 70%, transparent)}.shell>.main.app-module .hw-list{flex-direction:column;gap:0;display:flex}.shell>.main.app-module .hw-row{border-bottom-color:color-mix(in srgb, var(--line) 88%, transparent)}.shell>.main.app-module .hw-row-top{padding-block:var(--ws-row-pad-y);padding-inline:var(--ws-row-pad-x);border-radius:var(--radius-sm,8px);gap:10px;min-height:48px}.shell>.main.app-module .hw-row-top:hover{background:var(--fill-hover)}.shell>.main.app-module .hw-row .btn-row,.shell>.main.app-module .task-row .btn-row,.shell>.main.app-module .set-kid+.btn-row,.shell>.main.app-module .ev-act{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.shell>.main.app-module .task-row{padding-block:var(--ws-row-pad-y);border-bottom-color:color-mix(in srgb, var(--line) 88%, transparent)}.shell>.main.app-module .task-row.clickable{border-radius:var(--radius-sm,8px);margin-inline:-4px;padding-inline:8px}.shell>.main.app-module .task-row.clickable:hover{background:var(--fill-hover)}.shell>.main.app-module .set-kid{border-radius:var(--radius-sm,8px);border:1px solid var(--line);background:var(--bg-raised);min-height:44px;transition:background var(--ws-dur-fast,.12s) var(--app-ease,var(--ease)), border-color var(--ws-dur-fast,.12s) var(--app-ease,var(--ease));gap:10px;margin-bottom:8px;padding:10px 12px}.shell>.main.app-module .set-kid:hover{background:var(--fill-hover);border-color:var(--line-strong)}.shell>.main.app-module .set-kid.is-on{background:var(--fill-active);border-color:var(--line-strong)}.shell>.main.app-module .wb-list>li+li{border-top-color:color-mix(in srgb, var(--line) 82%, transparent)}.shell>.main.app-module .wb-list-hit{border-radius:var(--radius-sm,8px);gap:6px;min-height:44px;padding:12px 10px}.shell>.main.app-module .wb-list-main{font-size:var(--ws-fs-body,.9375rem);line-height:1.4}.shell>.main.app-module .wb-list-meta{font-size:var(--ws-fs-meta,.8125rem);line-height:1.4}.shell>.main.app-module .page-head{margin-bottom:var(--ws-gap-lg,20px);padding-bottom:var(--ws-gap,16px);align-items:flex-end;gap:12px 16px}.shell>.main.app-module .page-summary{gap:8px;margin-top:10px}.shell>.main.app-module .wb-toolbar{justify-content:space-between;align-items:flex-end;gap:var(--ws-gap,16px);margin-bottom:var(--ws-gap,16px);flex-wrap:wrap;display:flex}.shell>.main.app-module .wb-toolbar .wb-head-copy{flex:12rem;min-width:0}.shell>.main.app-module .wb-seg{align-items:stretch;gap:0;display:inline-flex}.shell>.main.app-module .cal-sum-row{margin-bottom:var(--ws-gap-lg,20px);gap:12px}.shell>.main.app-module .cal-split{gap:var(--ws-gap,16px);display:grid}.shell>.main.app-module .modal:not(.cal-edit-modal){border-radius:var(--radius,18px);border:1px solid var(--line);padding:22px 24px}.shell>.main.app-module .modal-title{letter-spacing:-.02em;color:var(--ink);margin:0 0 10px;font-size:clamp(1.125rem,2.2vw,1.35rem);font-weight:600;line-height:1.25}.shell>.main.app-module .modal-body{font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);margin:0 0 20px;line-height:1.6}.shell>.main.app-module .modal-actions{gap:10px;margin-top:4px}.shell>.main.app-module .cal-edit-modal .modal-title{margin-bottom:12px}.shell>.main.app-module .cal-edit-modal .field{margin-bottom:14px}.shell>.main.app-module .notice{margin:0 0 var(--ws-gap,16px);border-radius:var(--radius-md,12px);font-size:var(--ws-fs-body,.9375rem);letter-spacing:-.005em;border:1px solid #0000;padding:12px 16px;line-height:1.5}.shell>.main.app-module .notice.ok{border-color:color-mix(in srgb, var(--green) 22%, transparent)}.shell>.main.app-module .notice.error{border-color:color-mix(in srgb, var(--red) 28%, transparent)}.shell>.main.app-module .notice.warn{border-color:color-mix(in srgb, var(--orange) 28%, transparent)}.shell>.main.app-module :is(.tag,.task-badge,.badge-wait){letter-spacing:.02em;border-radius:var(--pill,980px);border:1px solid #0000;align-items:center;gap:4px;min-height:24px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.25;display:inline-flex}.shell>.main.app-module .page-summary .pill{min-height:28px;font-size:var(--ws-fs-label,.8125rem);border-radius:var(--radius-sm,8px);background:color-mix(in srgb, var(--bg-sunken) 70%, transparent);padding:4px 11px}.shell>.main.app-module .student-tags i{align-items:center;min-height:22px;padding:3px 9px;font-size:12px;display:inline-flex}.shell>.main.app-module>.card,.shell>.main.app-module .page>.card,.shell>.main.app-module .app-module>.card{margin-bottom:var(--ws-gap,16px)}.shell>.main.app-module .card+.card{margin-top:0}.shell>.main.app-module .card-title{margin-bottom:12px}.shell>.main.app-module .card-title-row{gap:12px;margin-bottom:12px}.shell>.main.app-module .btn-row{align-items:center;gap:10px;margin-top:16px}.shell>.main.app-module .chip-row{gap:8px;margin-bottom:12px}.shell>.main.app-module .stat-row{gap:var(--ws-gap,16px);margin-bottom:var(--ws-gap-lg,20px)}.shell>.main.app-module .wb-section,.shell>.main.app-module .wb-side-block{margin-bottom:var(--ws-gap,16px)}.shell>.main.app-module .wb-section-head{margin-bottom:12px;padding-bottom:10px}@media (width<=767px){.shell>.main.app-module :is(input[type=text],input[type=tel],input[type=number],input[type=password],input[type=search],input[type=email],input[type=date],input[type=time],textarea,select){min-height:44px;font-size:16px}.shell>.main.app-module .page-head,.shell>.main.app-module .wb-toolbar{align-items:flex-start}.shell>.main.app-module .student-table th,.shell>.main.app-module .student-table td{padding:10px}.shell>.main.app-module :is(.card.empty-state,.empty-state){padding:32px 16px}}@media (hover:none){.shell>.main.app-module .student-table tbody tr:hover{background:0 0}}@media (prefers-reduced-motion:reduce){.shell>.main.app-module :is(input,textarea,select,.dropzone,.set-kid,.hw-row-top,.task-row.clickable,.wb-list-hit,.student-table tbody tr){transition:none!important}}.shell>.main.app-module .page-head:after{opacity:.28;font-size:10px}.shell>.main.app-module .page-head .back-link{min-height:32px;font-size:var(--ws-fs-label,.8125rem);color:var(--ink-soft);border-radius:var(--radius-sm,8px);align-items:center;margin-bottom:6px;padding:4px 2px;font-weight:500;text-decoration:none;display:inline-flex}.shell>.main.app-module .page-head .back-link:hover{color:var(--ink)}.shell>.main.app-module .page-head .back-link:focus-visible{box-shadow:var(--ws-focus-gold,0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 55%, var(--brand-500)));outline:none}.shell>.main.app-module .view-switch{border-radius:var(--pill,980px);background:var(--bg-sunken);border:1px solid var(--line);padding:3px}.shell>.main.app-module .view-switch button{min-height:32px;font-size:var(--ws-fs-label,.8125rem);color:var(--ink-soft);box-shadow:none;background:0 0;border:1px solid #0000;padding:6px 14px;font-weight:500}.shell>.main.app-module .view-switch button:hover:not(.on){color:var(--ink);background:var(--fill-hover)}.shell>.main.app-module .view-switch button.on{background:var(--cta-gold-fill);color:var(--cta-gold-ink);border:1px solid var(--cta-gold-line);box-shadow:var(--cta-gold-glow);font-weight:600}.shell>.main.app-module .jr-arrow{width:auto;min-width:36px;height:36px;min-height:36px;color:var(--ink-soft);padding:0 12px;font-size:13px;font-weight:500;transform:none;border-radius:var(--radius-sm,8px)!important;border:1px solid var(--line-strong)!important;background:var(--bg-raised)!important;box-shadow:none!important}.shell>.main.app-module .jr-arrow:hover:not(:disabled){color:var(--ink);background:var(--fill-hover)!important;transform:none!important}.shell>.main.app-module .jr-day:hover{box-shadow:inset 0 0 0 1px var(--line-strong);background:var(--fill-hover);transform:none}.shell>.main.app-module .jr-day.is-on{background:color-mix(in srgb, var(--gold-soft) 70%, var(--bg-raised));box-shadow:inset 0 0 0 1.5px var(--gold);transform:none}.shell>.main.app-module .jr-latest:hover{color:var(--ink)}.shell>.main.app-module .jr-dot.is-on{background:var(--gold);transform:scale(1.2)}.shell>.main.app-module .cal-week-hint{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);margin:0 0 12px;line-height:1.45}.shell>.main.app-module .cal-upgrade .cal-cell{border-radius:var(--radius-sm,8px);min-height:68px}.shell>.main.app-module .cal-upgrade .cal-cell.selected{background:var(--blue-soft);border-color:color-mix(in srgb, var(--brand-500) 55%, var(--line-strong));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand-500) 35%, transparent)}.shell>.main.app-module .cal-upgrade .cal-weekcol-head.selected{background:var(--blue-soft);border-color:color-mix(in srgb, var(--brand-500) 55%, var(--line-strong))}.shell>.main.app-module .cal-upgrade .cal-week-block:hover,.shell>.main.app-module .cal-upgrade .cal-week-ev:hover,.shell>.main.app-module .cal-upgrade .cal-month-ev:hover{transform:none;box-shadow:0 1px 3px #1b241f14}.shell>.main.app-module .ev-upgrade.cal-item{padding-block:4px}.shell>.main.app-module .ev-upgrade .cal-item-head{border-radius:var(--radius-sm,8px);gap:8px;min-height:44px;padding:10px 8px}.shell>.main.app-module .ev-upgrade .cal-item-head:hover{background:var(--fill-hover)}.shell>.main.app-module .ev-upgrade .cal-item-head .task-name{font-size:var(--ws-fs-body,.9375rem);font-weight:600}.shell>.main.app-module .cal-day-feed{margin:12px 0 16px;padding:14px 16px 10px}.shell>.main.app-module .wb-ticket-stub:after{border-right:1px solid color-mix(in srgb, var(--line-strong) 80%, transparent)!important;border-right-style:solid!important}.shell>.main.app-module .wb-more{min-height:36px;font-size:var(--ws-fs-label,.8125rem);color:var(--ink-soft);border-radius:var(--radius-sm,8px);padding:6px 4px;font-weight:500}.shell>.main.app-module .wb-more:hover{color:var(--ink);background:var(--fill-hover)}.shell>.main.app-module .wb-more:focus-visible{box-shadow:var(--ws-focus-gold,0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 55%, var(--brand-500)));outline:none}.shell>.main.app-module .wb-section-head{align-items:center}.shell>.main.app-module .wb-board-main>.wb-empty,.shell>.main.app-module .wb-empty{color:var(--ink-soft);padding:14px 4px}.shell>.main.app-module .wb-list-hit:active{background:var(--fill-active)}.shell>.main.app-module .card:hover,.shell>.main.app-module .btn:hover,.shell>.main.app-module .chip:hover{transform:none}.shell>.main.app-module .hw-file-btn{border-radius:var(--radius-sm,8px);min-height:40px}.shell>.main.app-module a:not(.btn):not(.card):not(.wb-list-hit){color:var(--ink-soft)}.shell>.main.app-module .rec-note-link-btn{border-radius:var(--radius-sm,8px);min-height:32px;color:var(--ink-soft);font-size:var(--ws-fs-label,.8125rem);background:0 0;border:1px solid #0000;padding:4px 8px}.shell>.main.app-module .rec-note-link-btn:hover{background:var(--fill-hover);color:var(--ink)}.shell>.main.app-module :is(.row-check,.cal-check) input[type=checkbox],.shell>.main.app-module :is(.row-check,.cal-check) input[type=radio]{width:18px;height:18px;accent-color:var(--brand-500);flex-shrink:0;margin-top:2px}@media (prefers-reduced-motion:reduce){.shell>.main.app-module :is(.jr-arrow,.jr-day,.jr-dot,.cal-upgrade .cal-week-block,.cal-upgrade .cal-week-ev){transition:none!important;transform:none!important}}.grant-hours-modal{max-width:440px}.grant-hours-lead{margin:0 0 12px;line-height:1.5}.grant-hours-check{align-items:flex-start;gap:8px;margin:12px 0;display:flex}.grant-hours-modal .captcha-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.grant-hours-modal .captcha-tile{min-height:52px;font-size:1.6rem}.ls-voucher{color:var(--brand-700,var(--gold));cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.shell>.main.app-module .growth-shell .growth-hero-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;display:flex}.shell>.main.app-module .growth-shell .growth-filters{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.shell>.main.app-module .growth-shell .growth-filters .field{flex-direction:row;align-items:center;gap:8px;display:flex;margin:0!important}.shell>.main.app-module .growth-shell .growth-filters .field-label{letter-spacing:.02em;color:var(--ink-soft);white-space:nowrap;padding:0;font-size:13px;font-weight:500;line-height:1.2;display:inline-block;margin:0!important}.shell>.main.app-module .growth-shell .growth-filters select{min-width:8.75rem;max-width:14rem;border:1px solid var(--line-strong)!important;background-color:var(--bg-sunken)!important;background-image:linear-gradient(45deg, transparent 50%, var(--ink-faint) 50%), linear-gradient(135deg, var(--ink-faint) 50%, transparent 50%)!important;width:auto!important;height:40px!important;min-height:40px!important;box-shadow:none!important;color:var(--ink)!important;background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px)!important;background-repeat:no-repeat!important;background-size:6px 6px,6px 6px!important;border-radius:10px!important;margin:0!important;padding:0 36px 0 12px!important;font-size:14px!important;line-height:1.2!important}.shell>.main.app-module .growth-shell .growth-filters select:hover:not(:disabled){border-color:color-mix(in srgb, var(--ink) 22%, var(--line-strong))!important}.shell>.main.app-module .growth-shell .growth-filters select:focus,.shell>.main.app-module .growth-shell .growth-filters select:focus-visible{outline:none;background-color:var(--bg-raised)!important;border-color:color-mix(in srgb, var(--gold) 45%, var(--brand-500))!important;box-shadow:var(--ws-focus-gold,0 0 0 3px var(--bg), 0 0 0 5px color-mix(in srgb, var(--gold) 55%, var(--brand-500)))!important}.shell>.main.app-module .growth-shell .growth-tabs{box-sizing:border-box;align-items:center;min-height:40px;display:flex}.shell>.main.app-module .growth-shell .growth-tabs button.is-on{background:var(--bg-raised);color:var(--ink);box-shadow:var(--sh-xs)}.shell>.main.app-module .growth-shell>.field:has(>.field-label+select){flex-direction:row;align-items:center;gap:8px;max-width:20rem;display:flex;margin:0 0 16px!important}.shell>.main.app-module .growth-shell>.field:has(>.field-label+select)>.field-label{white-space:nowrap;margin:0!important}.shell>.main.app-module .growth-shell>.field:has(>.field-label+select)>select{min-width:8.75rem;width:auto!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0 36px 0 12px!important}.shell>.main.app-module .showcase-apply-page{--sc-gap:16px;--sc-radius:var(--radius-md,12px)}.shell>.main.app-module .showcase-apply-page .page-head{margin-bottom:var(--sc-gap)}.shell>.main.app-module .showcase-apply-page .page-summary{gap:8px;margin-top:10px}.shell>.main.app-module .showcase-apply-page .page-summary .pill{background:color-mix(in srgb, var(--bg-sunken) 75%, transparent);border:1px solid var(--line-strong);min-height:28px}.shell>.main.app-module .showcase-apply-page .showcase-eligible-card,.shell>.main.app-module .showcase-apply-page .showcase-apps-card,.shell>.main.app-module .showcase-apply-page .showcase-form-card{margin-bottom:var(--sc-gap);padding:20px 22px}.shell>.main.app-module .showcase-apply-page .showcase-eligible-card>.muted,.shell>.main.app-module .showcase-apply-page .showcase-apps-card>.muted{max-width:52ch;color:var(--ink-soft);line-height:1.5;font-size:var(--ws-fs-body,.9375rem);margin:0 0 12px}.shell>.main.app-module .showcase-apply-page .showcase-eligible-row{gap:8px;margin-top:4px;margin-bottom:0}.shell>.main.app-module .showcase-apply-page .showcase-eligible-row .chip{text-align:left;white-space:normal;justify-content:flex-start;max-width:100%;min-height:36px;padding:8px 14px;line-height:1.35}.shell>.main.app-module .showcase-apply-page .showcase-eligible-row .chip:hover{background:var(--fill-hover)!important;border-color:var(--line-strong)!important;color:var(--ink)!important}.shell>.main.app-module .showcase-apply-page .showcase-app-card{border-radius:var(--sc-radius);border:1px solid var(--line);background:color-mix(in srgb, var(--bg-sunken) 45%, var(--bg-raised));box-shadow:none;transition:background var(--ws-dur-fast,.12s) var(--app-ease,var(--ease)), border-color var(--ws-dur-fast,.12s) var(--app-ease,var(--ease));margin:0 0 12px;padding:14px 16px;display:block}.shell>.main.app-module .showcase-apply-page .showcase-app-card:last-child{margin-bottom:0}.shell>.main.app-module .showcase-apply-page .showcase-app-card:hover{background:var(--fill-hover);border-color:var(--line-strong)}.shell>.main.app-module .showcase-apply-page .showcase-app-card .pf-kicker{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.shell>.main.app-module .showcase-apply-page .showcase-app-title{font-size:var(--ws-fs-section,1.0625rem);letter-spacing:-.01em;color:var(--ink);margin:0 0 6px;font-weight:600;line-height:1.3}.shell>.main.app-module .showcase-apply-page .showcase-app-meta{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);margin:0;line-height:1.4}.shell>.main.app-module .showcase-apply-page .showcase-app-reason{font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);margin:10px 0 0;line-height:1.55}.shell>.main.app-module .showcase-apply-page .showcase-app-card .muted{font-size:var(--ws-fs-meta,.8125rem);margin:8px 0 0}.shell>.main.app-module .showcase-apply-page .task-badge{min-height:24px;padding:3px 10px;font-size:12px;font-weight:600}.shell>.main.app-module .showcase-apply-page .task-badge:not(.badge-ok):not(.badge-run):not(.badge-warn){background:var(--bg-sunken);color:var(--ink-soft);border:1px solid var(--line)}.shell>.main.app-module .showcase-apply-page .showcase-form-kicker{border-radius:var(--radius-sm,8px);background:color-mix(in srgb, var(--bg-sunken) 80%, transparent);box-shadow:inset 3px 0 0 color-mix(in srgb, var(--brand-500) 45%, transparent);color:var(--ink-soft);margin:0 0 16px;padding:10px 14px;line-height:1.45}.shell>.main.app-module .showcase-apply-page .showcase-score-field .showcase-score-val{font-family:var(--font-mono);color:var(--ink);margin-left:4px;font-weight:600}.shell>.main.app-module .showcase-apply-page .showcase-score-field input[type=range]{width:100%;min-height:28px;accent-color:var(--brand-500);margin-top:4px}.shell>.main.app-module .showcase-apply-page .consent-sheet{border-radius:var(--sc-radius);border:1px solid var(--line);background:var(--bg-sunken);max-height:min(320px,42vh);margin:10px 0 16px;padding:16px 18px;box-shadow:inset 0 1px #ffffff8c}.shell>.main.app-module .showcase-apply-page .consent-sheet p{font-size:var(--ws-fs-label,.8125rem);color:var(--ink-soft);margin:0 0 10px;line-height:1.65}.shell>.main.app-module .showcase-apply-page .consent-sheet p:last-child{margin-bottom:0}.shell>.main.app-module .showcase-apply-page .showcase-consent-check{border-radius:var(--radius-sm,8px);background:color-mix(in srgb, var(--bg-sunken) 70%, transparent);border:1px solid var(--line);margin:0 0 8px;padding:12px 14px}.shell>.main.app-module .showcase-apply-page .btn-row{justify-content:flex-start;gap:10px;margin-top:18px}.shell>.main.app-module .showcase-apply-page .btn-row .btn-primary{margin-left:0}.shell>.main.app-module .showcase-apply-page .showcase-apps-card>.muted:only-of-type,.shell>.main.app-module .showcase-apply-page .showcase-eligible-card>.muted+.muted{padding:12px 0 4px}@media (width<=767px){.shell>.main.app-module .showcase-apply-page .showcase-eligible-card,.shell>.main.app-module .showcase-apply-page .showcase-apps-card,.shell>.main.app-module .showcase-apply-page .showcase-form-card{padding:16px}.shell>.main.app-module .showcase-apply-page .btn-row{flex-direction:column;align-items:stretch}.shell>.main.app-module .showcase-apply-page .btn-row .btn{width:100%}}.shell>.main.app-module .showcase-apply-page .showcase-eligible-card.is-empty{min-height:148px;padding-right:clamp(120px,28%,220px);position:relative;overflow:hidden}.shell>.main.app-module .showcase-apply-page .showcase-eligible-empty-hint{z-index:1;max-width:36ch;margin:0;position:relative}.shell>.main.app-module .showcase-apply-page .showcase-eligible-empty-stamp{z-index:0;border:2px solid color-mix(in srgb, var(--orange) 55%, var(--gold));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--orange) 28%, transparent), 0 0 0 3px color-mix(in srgb, var(--bg-raised) 88%, transparent);font-family:var(--font-display);letter-spacing:.12em;white-space:nowrap;color:color-mix(in srgb, var(--orange) 70%, var(--gold));background:color-mix(in srgb, var(--orange-soft) 55%, transparent);opacity:.92;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:6px;justify-content:center;align-items:center;padding:10px 18px;font-size:clamp(1.05rem,2.4vw,1.35rem);font-weight:700;line-height:1.2;display:inline-flex;position:absolute;top:50%;right:clamp(12px,4vw,36px);transform:translateY(-50%)rotate(-22deg)}@media (width<=560px){.shell>.main.app-module .showcase-apply-page .showcase-eligible-card.is-empty{min-height:168px;padding-bottom:72px;padding-right:20px}.shell>.main.app-module .showcase-apply-page .showcase-eligible-empty-stamp{letter-spacing:.1em;font-size:1.05rem;top:auto;bottom:18px;right:50%;transform:translate(50%)rotate(-18deg)}}.shell>.main.app-module .rec-page{--rec-studio:#8a6a2a;--rec-teacher:#3d5c6e}.shell>.main.app-module .rec-page .page-head .page-sub{max-width:58ch}.shell>.main.app-module .rec-page .page-summary .pill{background:color-mix(in srgb, var(--bg-sunken) 75%, transparent);border:1px solid var(--line-strong);min-height:28px}.shell>.main.app-module .rec-page .rec-scenes{gap:12px;margin:0 0 20px}.shell>.main.app-module .rec-page .rec-scene{border-radius:var(--radius-md,12px);background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--line);padding:16px 16px 14px}.shell>.main.app-module .rec-page .rec-scene-kicker{letter-spacing:.06em;text-transform:none;color:var(--ink-faint);margin-bottom:6px;font-size:12px;font-weight:600}.shell>.main.app-module .rec-page .rec-scene h3{letter-spacing:-.01em;margin:0 0 6px;font-size:1.0625rem;font-weight:600;line-height:1.3}.shell>.main.app-module .rec-page .rec-scene p{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-soft);line-height:1.55}.shell>.main.app-module .rec-page-parent .rec-pledge{border-radius:var(--radius-md,12px);background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--line);gap:0;margin:0 0 20px;padding:0;overflow:hidden}.shell>.main.app-module .rec-page-parent .rec-pledge>div{border-right:1px solid var(--line);padding:14px 16px}.shell>.main.app-module .rec-page-parent .rec-pledge>div:last-child{border-right:0}.shell>.main.app-module .rec-page-parent .rec-pledge strong{font-family:var(--font-sans);color:var(--ink);margin-bottom:4px;font-size:.9375rem;font-weight:600}.shell>.main.app-module .rec-page-parent .rec-pledge span{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-soft)}.shell>.main.app-module .rec-page .rec-queue{border-radius:var(--radius-md,12px);background:color-mix(in srgb, var(--orange-soft) 55%, var(--bg-raised));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--orange) 70%, transparent);border:none;margin:0 0 16px;padding:12px 16px}.shell>.main.app-module .rec-page .rec-queue strong{font-size:var(--ws-fs-body,.9375rem);color:var(--ink)}.shell>.main.app-module .rec-page .rec-queue span{font-size:var(--ws-fs-meta,.8125rem)}.shell>.main.app-module .rec-page .rec-compose{margin-bottom:20px;padding:20px 22px}.shell>.main.app-module .rec-page .rec-compose-head{align-items:center;margin-bottom:12px}.shell>.main.app-module .rec-page .rec-compose-body{align-items:start;gap:20px}.shell>.main.app-module .rec-page .rec-compose-preview{border-radius:var(--radius-md,12px);background:var(--bg-sunken);border:1px solid var(--line);padding:14px}.shell>.main.app-module .rec-page .rec-preview-kicker{letter-spacing:.04em;color:var(--ink-faint);margin-bottom:12px;font-size:12px;font-weight:600}.shell>.main.app-module .rec-page .rec-scope-btn{text-align:left;border-radius:var(--radius-md,12px);min-height:52px;font-size:var(--ws-fs-body,.9375rem);letter-spacing:.01em;color:var(--ink);flex-direction:column;justify-content:center;align-items:flex-start;padding:10px 14px;font-weight:500;line-height:1.35;display:flex;border:1px solid var(--line-strong)!important;background:var(--bg-sunken)!important;box-shadow:none!important}.shell>.main.app-module .rec-page .rec-scope-btn em{letter-spacing:.01em;color:var(--ink-faint);margin-top:2px;font-size:12px;font-style:normal;font-weight:500;line-height:1.35;display:block}.shell>.main.app-module .rec-page .rec-scope-btn:hover:not(.is-on){color:var(--ink);background:var(--fill-hover)!important}.shell>.main.app-module .rec-page .rec-scope-btn.is-on{font-size:var(--ws-fs-body,.9375rem);letter-spacing:.01em;padding:10px 14px;font-weight:500;line-height:1.35;background:var(--cta-gold-fill)!important;color:var(--cta-gold-ink)!important;border:1px solid var(--cta-gold-line)!important;box-shadow:var(--cta-gold-glow)!important}.shell>.main.app-module .rec-page .rec-scope-btn.is-on em{letter-spacing:.01em;color:color-mix(in srgb, var(--cta-gold-ink) 72%, transparent);margin-top:2px;font-size:12px;font-weight:500;line-height:1.35}.shell>.main.app-module .rec-page .rec-cat-chip{min-height:34px;padding:6px 14px;font-weight:500;border:1px solid var(--line-strong)!important;background:var(--bg-sunken)!important;color:var(--ink-soft)!important;box-shadow:none!important}.shell>.main.app-module .rec-page .rec-cat-chip:hover:not(.is-on){background:var(--fill-hover)!important;color:var(--ink)!important}.shell>.main.app-module .rec-page .rec-cat-chip.is-on{font-weight:600;background:var(--cta-gold-fill)!important;color:var(--cta-gold-ink)!important;border:1px solid var(--cta-gold-line)!important;box-shadow:var(--cta-gold-glow)!important}.shell>.main.app-module .rec-page .rec-toolbar{gap:10px;margin:4px 0 18px}.shell>.main.app-module .rec-page .rec-filters{align-items:center;gap:8px}.shell>.main.app-module .rec-page-parent>.rec-filters{margin:0 0 18px}.shell>.main.app-module .rec-page .rec-shelf{margin:0 0 24px}.shell>.main.app-module .rec-page .rec-shelf-head{border-bottom:1px solid color-mix(in srgb, var(--line) 88%, transparent);align-items:baseline;margin-bottom:14px;padding-bottom:10px}.shell>.main.app-module .rec-page .rec-shelf-head h2{letter-spacing:-.01em;font-size:1.125rem;font-weight:600}.shell>.main.app-module .rec-page .rec-shelf-head p{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);text-align:right;max-width:36ch}.shell>.main.app-module .rec-page .rec-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.shell>.main.app-module .rec-page .rec-note{border-radius:var(--radius-md,12px);background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--line);transition:border-color var(--ws-dur-fast,.12s) var(--app-ease,var(--ease)), box-shadow var(--ws-dur-fast,.12s) var(--app-ease,var(--ease));padding:0 0 14px}.shell>.main.app-module .rec-page .rec-note:hover{box-shadow:inset 0 0 0 1px var(--line-strong);transform:none}.shell>.main.app-module .rec-page .rec-note:before{border-radius:0;width:3px}.shell>.main.app-module .rec-page .rec-note-media{border-radius:var(--radius-md,12px) var(--radius-md,12px) 0 0;aspect-ratio:4/3;margin:0 0 12px}.shell>.main.app-module .rec-page .rec-note-kicker,.shell>.main.app-module .rec-page .rec-note-title,.shell>.main.app-module .rec-page .rec-note-why,.shell>.main.app-module .rec-page .rec-note-foot,.shell>.main.app-module .rec-page .rec-note-actions,.shell>.main.app-module .rec-page .rec-note>.rec-note-link,.shell>.main.app-module .rec-page .rec-note>a.rec-note-link{margin-left:16px;margin-right:16px}.shell>.main.app-module .rec-page .rec-note-kicker{margin-top:0;margin-bottom:8px}.shell>.main.app-module .rec-page .rec-note-title{letter-spacing:-.015em;color:var(--ink);margin-top:0;margin-bottom:8px;font-size:1.125rem;font-weight:600;line-height:1.3}.shell>.main.app-module .rec-page .rec-note-why{border-left:2px solid color-mix(in srgb, var(--line-strong) 80%, transparent);font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);margin-bottom:12px;padding-left:10px;line-height:1.6}.shell>.main.app-module .rec-page-parent .rec-note-why{border-left-color:color-mix(in srgb, var(--brand-500) 35%, var(--line))}.shell>.main.app-module .rec-page .rec-seal{letter-spacing:.04em;min-height:22px;font-size:11px;font-weight:600}.shell>.main.app-module .rec-page .rec-tag{padding:4px 9px;font-size:11px;font-weight:600}.shell>.main.app-module .rec-page .rec-note-foot{border-top:1px solid color-mix(in srgb, var(--line) 85%, transparent);font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;padding-top:10px;display:flex}.shell>.main.app-module .rec-page .rec-note-actions{border-top:1px solid color-mix(in srgb, var(--line) 88%, transparent);flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;margin-left:16px;margin-right:16px;padding-top:12px;display:flex}.shell>.main.app-module .rec-page .rec-note-actions .btn{min-height:36px}.shell>.main.app-module .rec-page .rec-note-pending{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--orange) 35%, var(--line))}.shell>.main.app-module .rec-page .rec-note.is-compact{box-shadow:inset 0 0 0 1px var(--line);padding-bottom:14px}.shell>.main.app-module .rec-page .empty-state{padding:36px 20px}.shell>.main.app-module .rec-page .wb-empty{color:var(--ink-soft);font-size:var(--ws-fs-body,.9375rem);margin:0;padding:12px 2px}.shell>.main.app-module .rec-page .rec-history-list li{border-bottom:1px solid color-mix(in srgb, var(--line) 88%, transparent)}.shell>.main.app-module .rec-page .rec-history{border-left:1px solid var(--line);padding:20px 18px}@media (width<=900px){.shell>.main.app-module .rec-page .rec-scenes,.shell>.main.app-module .rec-page-parent .rec-pledge{grid-template-columns:1fr}.shell>.main.app-module .rec-page-parent .rec-pledge>div{border-right:0;border-bottom:1px solid var(--line)}.shell>.main.app-module .rec-page-parent .rec-pledge>div:last-child{border-bottom:0}.shell>.main.app-module .rec-page .rec-compose-body{grid-template-columns:1fr}.shell>.main.app-module .rec-page .rec-shelf-head{flex-direction:column;align-items:flex-start;gap:4px}.shell>.main.app-module .rec-page .rec-shelf-head p{text-align:left}}@media (width<=767px){.shell>.main.app-module .rec-page .rec-compose{padding:16px}.shell>.main.app-module .rec-page .rec-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.shell>.main.app-module .rec-page .rec-note{transition:none!important}}.shell>.main.app-module .rec-page .rec-results{scroll-margin-top:16px}.shell>.main.app-module .cal-sum-row{flex-wrap:wrap;align-items:stretch;gap:10px;margin:0 0 16px;display:flex}.shell>.main.app-module .cal-sum{border-radius:var(--radius-md,12px);flex-direction:column;flex:5.5rem;justify-content:center;gap:2px;min-width:5.5rem;max-width:100%;padding:10px 14px;display:flex;border:1px solid var(--line)!important;background:var(--bg-raised)!important;box-shadow:none!important}.shell>.main.app-module .cal-sum .n{font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:1.25rem;font-weight:600;line-height:1.2}.shell>.main.app-module .cal-sum .l{font-size:var(--ws-fs-meta,.75rem);letter-spacing:.02em;color:var(--ink-faint);margin-top:0;font-weight:500;line-height:1.3}.shell>.main.app-module .cal-page .cal-scope{margin-bottom:12px}.shell>.main.app-module .cal-page .page-summary{gap:8px;margin-top:10px}.shell>.main.app-module .cal-page .page-summary .pill{min-height:28px;font-size:var(--ws-fs-meta,.8125rem);letter-spacing:.01em;border-radius:var(--pill,980px);padding:4px 10px;font-weight:500;border:1px solid var(--line-strong)!important;background:var(--bg-sunken)!important;color:var(--ink-soft)!important;box-shadow:none!important}.shell>.main.app-module .cal-page .page-summary .pill strong{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)!important}.shell>.main.app-module .cal-page .page-summary .pill.warn{border-color:color-mix(in srgb, var(--orange) 45%, var(--line-strong))!important;background:color-mix(in srgb, var(--orange-soft) 55%, var(--bg-raised))!important;color:var(--orange)!important}.shell>.main.app-module .cal-page .page-summary .pill.warn strong{color:var(--orange)!important}.shell>.main.app-module .cal-page .cal-today,.shell>.main.app-module .cal-page .cal-day-feed{border:1px solid var(--line);border-radius:var(--radius,16px);background:var(--bg-raised);margin-bottom:14px;padding:16px 18px 14px;box-shadow:none!important}.shell>.main.app-module .cal-page .cal-today .card-title,.shell>.main.app-module .cal-page .cal-day-feed .card-title{font-size:var(--ws-fs-section,1rem);letter-spacing:-.01em;color:var(--ink);margin:0 0 8px;font-weight:600;line-height:1.3}.shell>.main.app-module .cal-page .cal-today-meta{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-faint);margin:0 0 10px;line-height:1.45}.shell>.main.app-module .cal-page .cal-today-empty{border-radius:var(--radius-sm,8px);background:var(--bg-sunken);font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);border:1px solid #0000;margin:4px 0 0;padding:14px 12px;line-height:1.5}.shell>.main.app-module .cal-page .cal-today-row{margin:0;border:0;border-top:1px solid color-mix(in srgb, var(--line) 90%, transparent);border-radius:var(--radius-sm,8px);text-align:left;width:100%;min-height:44px;color:inherit;font:inherit;cursor:pointer;transition:background .12s var(--app-ease,ease);background:0 0;align-items:center;gap:10px;margin-inline:0;padding:10px;display:flex}.shell>.main.app-module .cal-page .cal-today-row:first-of-type{border-top-color:#0000}.shell>.main.app-module .cal-page .cal-today-row:hover{background:var(--fill-hover)}.shell>.main.app-module .cal-page .cal-today-row .task-name{min-width:0;font-size:var(--ws-fs-body,.9375rem);color:var(--ink);flex:1;font-weight:500;line-height:1.35}.shell>.main.app-module .cal-page .cal-today-row .tag{letter-spacing:.02em;flex-shrink:0;font-size:11px;font-weight:600}.shell>.main.app-module .cal-page .cal-today-row .task-badge{font-size:var(--ws-fs-meta,.75rem);flex-shrink:0;font-weight:500}.shell>.main.app-module .cal-page .cal-today .btn-row{margin-top:12px;padding-top:4px}.shell>.main.app-module .cal-page .cal-sum-row+.cal-wrap,.shell>.main.app-module .cal-page .cal-day-feed+.cal-wrap{margin-top:4px}.shell>.main.app-module .cal-page .cal-today+.cal-day-feed{margin-top:0}@media (width<=720px){.shell>.main.app-module .cal-page .cal-sum{flex:calc(50% - 10px);min-width:calc(50% - 10px)}.shell>.main.app-module .cal-page .cal-today,.shell>.main.app-module .cal-page .cal-day-feed{padding:14px 14px 12px}}.shell .cal-edit-modal,.shell .cal-day-modal,.shell .fb-dictate-modal{scroll-padding:12px}.shell .fb-dictate-modal{max-height:min(90vh,820px);overflow:auto}.shell>.main.app-module .card>textarea:first-child{margin-top:2px}.shell>.main.app-module .growth-shell .growth-intent{padding:14px 18px 15px 20px;overflow:visible}.shell>.main.app-module .growth-shell .growth-node,.shell>.main.app-module .rec-page .rec-compose-form,.shell>.main.app-module .showcase-apply-page .showcase-form-card{overflow:visible}.shell>.main.app-module .orders-page{--og-gap:16px;--og-radius:var(--radius-md,12px)}.shell>.main.app-module .orders-page .page-head{margin-bottom:12px}.shell>.main.app-module .orders-page .page-summary{gap:8px;margin-top:10px}.shell>.main.app-module .orders-page .page-summary .pill{background:color-mix(in srgb, var(--bg-sunken) 75%, transparent);border:1px solid var(--line-strong);min-height:28px}.shell>.main.app-module .orders-page .orders-flow{margin:0 0 var(--og-gap);border-radius:var(--og-radius);border:1px solid var(--line);background:color-mix(in srgb, var(--brand-50,#e9eef3) 55%, var(--bg-raised));box-shadow:inset 3px 0 0 color-mix(in srgb, var(--brand-500,#33526b) 55%, transparent);flex-wrap:wrap;align-items:center;gap:6px 4px;padding:12px 14px;list-style:none;display:flex}.shell>.main.app-module .orders-page .orders-flow>li{font-size:var(--ws-fs-meta,.8125rem);color:var(--ink-soft);align-items:center;gap:8px;margin:0;padding:0 10px 0 0;line-height:1.35;display:inline-flex}.shell>.main.app-module .orders-page .orders-flow>li:not(:last-child):after{content:"";background:color-mix(in srgb, var(--brand-400,#5a7691) 45%, var(--line));vertical-align:middle;width:18px;height:1px;margin-left:6px;display:inline-block}.shell>.main.app-module .orders-page .orders-flow-n{width:22px;height:22px;font-family:var(--font-mono);color:var(--brand-600,#26405a);background:color-mix(in srgb, var(--brand-100,#d3dee8) 80%, var(--bg-raised));border:1px solid color-mix(in srgb, var(--brand-400,#5a7691) 40%, var(--line));border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}.shell>.main.app-module .orders-page .orders-flow-t{letter-spacing:.01em;color:var(--ink);font-weight:560}.shell>.main.app-module .orders-page .orders-compose-card{margin-bottom:var(--og-gap);padding:20px 22px;overflow:visible}.shell>.main.app-module .orders-page .orders-compose-card .card-title-row{align-items:baseline;gap:10px;margin-bottom:14px}.shell>.main.app-module .orders-page .orders-compose-hint{font-size:var(--ws-fs-meta,.8125rem)}.shell>.main.app-module .orders-page .orders-char{float:right;font-family:var(--font-mono);color:var(--ink-faint);font-size:11px;font-weight:500}.shell>.main.app-module .orders-page .orders-compose-card .btn-row{gap:10px;margin-top:16px}.shell>.main.app-module .orders-page .orders-loading{margin:0 0 var(--og-gap)}.shell>.main.app-module .orders-page .orders-section{margin-bottom:22px}.shell>.main.app-module .orders-page .orders-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 12px;margin:0 0 10px;padding:0 2px;display:flex}.shell>.main.app-module .orders-page .orders-section-head .wb-section-title{margin:0}.shell>.main.app-module .orders-page .orders-section-head .muted{font-size:var(--ws-fs-meta,.8125rem)}.shell>.main.app-module .orders-page .orders-item{border-radius:var(--og-radius);transition:background var(--ws-dur-fast,.12s) var(--app-ease,var(--ease)), border-color var(--ws-dur-fast,.12s) var(--app-ease,var(--ease));margin:0 0 12px;padding:16px 18px;display:block;overflow:visible}.shell>.main.app-module .orders-page .orders-item:last-child{margin-bottom:0}.shell>.main.app-module .orders-page .orders-item.is-quoted{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--brand-500,#33526b) 55%, transparent);background:color-mix(in srgb, var(--brand-50,#e9eef3) 35%, var(--bg-raised))}.shell>.main.app-module .orders-page .orders-item.is-delivered{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--green,#2f8f4e) 50%, transparent)}.shell>.main.app-module .orders-page .orders-item.is-history{background:color-mix(in srgb, var(--bg-sunken) 40%, var(--bg-raised))}.shell>.main.app-module .orders-page .orders-item-kicker{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px;display:flex}.shell>.main.app-module .orders-page .orders-item-no{font-family:var(--font-mono);letter-spacing:.02em;margin-left:auto;font-size:12px}.shell>.main.app-module .orders-page .orders-item-title{font-size:var(--ws-fs-section,1.0625rem);letter-spacing:-.01em;color:var(--ink);margin:0 0 6px;font-weight:600;line-height:1.3}.shell>.main.app-module .orders-page .orders-item-detail{font-size:var(--ws-fs-body,.9375rem);color:var(--ink-soft);white-space:pre-wrap;word-break:break-word;margin:0;line-height:1.55}.shell>.main.app-module .orders-page .orders-item-meta{font-size:var(--ws-fs-meta,.8125rem);margin:8px 0 0;line-height:1.45}.shell>.main.app-module .orders-page .orders-due{font-size:var(--ws-fs-meta,.8125rem);margin:10px 0 0;line-height:1.45}.shell>.main.app-module .orders-page .orders-quote{border-radius:var(--radius-sm,8px);border:1px solid var(--line);background:color-mix(in srgb, var(--bg-sunken) 55%, var(--bg-raised));margin-top:12px;padding:12px 14px}.shell>.main.app-module .orders-page .orders-quote-fee{font-size:var(--ws-fs-body,.9375rem);color:var(--ink);margin:0 0 6px}.shell>.main.app-module .orders-page .orders-quote-fee strong{font-family:var(--font-mono);color:var(--brand-600,#26405a);letter-spacing:-.02em;font-size:1.125rem;font-weight:700}.shell>.main.app-module .orders-page .orders-quote-note{font-size:var(--ws-fs-meta,.8125rem);margin:0 0 6px;line-height:1.5}.shell>.main.app-module .orders-page .orders-quote .btn-row{gap:10px;margin-top:12px}.shell>.main.app-module .orders-page .orders-item .btn-row{gap:10px;margin-top:14px}.shell>.main.app-module .orders-page .task-badge{min-height:24px;padding:3px 10px;font-size:12px;font-weight:600}.shell>.main.app-module .orders-page .task-badge:not(.badge-ok):not(.badge-run):not(.badge-warn):not(.badge-wait){background:var(--bg-sunken);color:var(--ink-soft);border:1px solid var(--line)}.shell>.main.app-module .orders-page .empty-state{margin-bottom:0;padding:28px 22px}.shell>.main.app-module .orders-page .orders-history-empty{min-height:0;padding:22px}.shell>.main.app-module .orders-page-parent .orders-flow{display:none}@media (width<=767px){.shell>.main.app-module .orders-page .orders-compose-card,.shell>.main.app-module .orders-page .orders-item{padding:16px}.shell>.main.app-module .orders-page .orders-flow{padding:10px 12px}.shell>.main.app-module .orders-page .orders-flow>li:not(:last-child):after{width:10px}.shell>.main.app-module .orders-page .btn-row{flex-direction:column;align-items:stretch}.shell>.main.app-module .orders-page .btn-row .btn{width:100%}.shell>.main.app-module .orders-page .orders-item-no{width:100%;margin-left:0}}@media (pointer:coarse),(hover:none){.shell>.main.app-module{--ws-chip-h:44px;--ws-pill-h:36px}.shell>.main.app-module .chip,.shell>.main.app-module .wb-scope-btn,.shell>.main.app-module .wb-seg-btn{min-height:var(--ws-chip-h,44px)}}@media (width>=768px) and (width<=1100px){.shell>.main.app-module{--ws-chip-h:40px}}
