@layer exception{.login-screen{--lg-navy:var(--brand-navy);--lg-navy-hover:var(--brand-navy-hover);--lg-blue:var(--brand-blue);--lg-blue-deep:var(--brand-blue-deep);--lg-green:var(--brand-green);--lg-yellow:var(--brand-yellow);--lg-pink:var(--brand-pink);--lg-cream:var(--brand-cream);--lg-muted:var(--brand-muted);--lg-focus:0 0 0 3px #409ec440;background:var(--paper);min-height:100dvh;color:var(--ink);grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);display:grid}.login-aside{background:radial-gradient(720px 460px at 4% 2%, #fff 0%, #fff0 62%), linear-gradient(158deg, var(--lg-cream) 0%, #f3f8fc 58%, #e8f0f8 100%);border-right:1px solid var(--paper-line);align-items:center;padding:56px 52px;display:flex;position:relative;overflow:hidden}.la-dots{pointer-events:none;opacity:.55;background-repeat:no-repeat;background-image:radial-gradient(circle at center, var(--lg-yellow) 0 12px, transparent 12.5px), radial-gradient(circle at center, var(--lg-blue) 0 9px, transparent 9.5px), radial-gradient(circle at center, var(--lg-pink) 0 7px, transparent 7.5px), radial-gradient(circle at center, var(--lg-green) 0 6px, transparent 6.5px);background-position:94% 9%,86% 13%,96% 18%,89% 24%;background-size:24px 24px,18px 18px,14px 14px,12px 12px;position:absolute;inset:0}.la-inner{z-index:1;flex-direction:column;gap:22px;width:100%;max-width:480px;margin:0 auto;display:flex;position:relative}.la-logo{object-fit:contain;align-self:flex-start;width:auto;height:46px;display:block}.la-slogan{letter-spacing:.02em;color:var(--lg-navy);margin:0;font-size:25px;font-weight:600;line-height:1.55}.la-points{color:var(--lg-muted);flex-direction:column;gap:11px;margin:0;padding:0;font-size:13.5px;line-height:1.6;list-style:none;display:flex}.la-points li{padding-left:20px;position:relative}.la-points li:before{content:"";background:var(--lg-blue);border-radius:50%;width:9px;height:9px;position:absolute;top:7px;left:0}.la-points li[data-dot=green]:before{background:var(--lg-green)}.la-points li[data-dot=yellow]:before{background:var(--lg-yellow)}.la-foot{color:var(--lg-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12.5px;display:flex}.la-org{color:var(--lg-navy);letter-spacing:.02em;background:#fff;border:1px solid #dbe4ee;border-radius:999px;padding:3px 10px;font-weight:600}.la-subjects{letter-spacing:.06em}.login-panel{padding:36px 24px calc(24px + env(safe-area-inset-bottom));background:var(--paper);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.login-card{border:1px solid var(--paper-line);border-top:3px solid var(--lg-navy);background:#fff;border-radius:6px;flex-direction:column;gap:14px;width:100%;max-width:400px;padding:26px 24px 22px;display:flex;box-shadow:0 16px 40px #10203a1a}.lg-head{flex-direction:column;gap:6px;display:flex}.lg-title{letter-spacing:.02em;color:var(--ink);font-size:19px;font-weight:650;font-family:var(--font-display);margin:0}.lg-back{color:var(--lg-muted);align-self:flex-start;margin-bottom:2px;font-size:12.5px;text-decoration:none}.lg-back:hover{color:var(--brand-navy)}.lg-note{color:var(--lg-muted);margin:0;font-size:12.5px;line-height:1.65}.lg-note strong{color:var(--lg-navy)}.lg-alert{color:#8f2b21;background:var(--red-wash);border:1px solid #f0c9c4;border-left:3px solid var(--red);border-radius:5px;flex-direction:column;gap:6px;padding:11px 13px;font-size:12.5px;line-height:1.6;display:flex}.lg-alert h2{margin:0;font-size:13px;font-weight:700}.lg-alert p{margin:0}.lg-alert ul{margin:0;padding-left:17px}.lg-alert a{color:inherit}.lg-alert:focus{outline:none}.lg-alert-server{align-items:flex-start;gap:8px;width:100%;max-width:400px}.lg-retry{color:#8f2b21;cursor:pointer;background:#fff;border:1px solid #e2b4ae;border-radius:5px;align-self:flex-start;min-height:36px;padding:0 14px;font-size:13px}.lg-retry:hover:not(:disabled){background:#fff7f6}.lg-retry:disabled{opacity:.6;cursor:progress}.lg-field{flex-direction:column;gap:5px;display:flex}.lg-label{letter-spacing:.04em;color:var(--lg-muted);font-size:12.5px;font-weight:600}.lg-input{display:block;position:relative}.lg-input input{width:100%;height:44px;color:var(--ink);background:#fff;border:1px solid #d3dae2;border-radius:5px;padding:0 12px;font-size:15px;transition:border-color .16s,box-shadow .16s}.lg-input input::placeholder{color:#9aa4b0}.lg-input input:hover{border-color:#bcc6d2}.lg-input input:focus{border-color:var(--lg-blue);box-shadow:var(--lg-focus);outline:none}.lg-input input:focus-visible{outline:2px solid var(--lg-blue-deep);outline-offset:1px}.lg-input input[aria-invalid=true]{border-color:var(--red);background:#fffbfb}.lg-input.has-eye input{padding-right:46px}.lg-eye{width:44px;height:44px;color:var(--lg-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;transition:color .16s,background .16s;display:grid;position:absolute;top:0;right:0}.lg-eye:hover{color:var(--lg-navy);background:#f1f5f9}.lg-eye[aria-pressed=true]{color:var(--lg-blue-deep)}.lg-err{color:#8f2b21;font-size:12.5px;line-height:1.5}.lg-caps{color:#7a5f14;background:#fff9e6;border:1px solid #f0e0b0;border-radius:4px;padding:5px 9px;font-size:12px;line-height:1.45}.lg-rules{color:var(--lg-muted);flex-direction:column;gap:5px;margin:3px 0 0;padding:0;font-size:12.5px;line-height:1.5;list-style:none;display:flex}.lg-rules li{align-items:flex-start;gap:7px;display:flex}.lg-rules li svg{color:#c3cbd5;flex:none;margin-top:3px}.lg-rules li[data-ok=true],.lg-rules li[data-ok=true] svg{color:#3d6b16}.lg-rules li[data-soft=true] svg{color:#c3cbd5}.lg-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.lg-check{min-height:44px;color:var(--lg-muted);cursor:pointer;align-items:flex-start;gap:9px;padding:6px 0;font-size:13px;line-height:1.5;display:flex;position:relative}.lg-check input{opacity:0;width:1px;height:1px;position:absolute}.lg-check-box{color:#0000;background:#fff;border:1.5px solid #b9c2cc;border-radius:4px;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;transition:background .16s,border-color .16s;display:grid}.lg-check:hover .lg-check-box{border-color:var(--lg-blue)}.lg-check input:checked+.lg-check-box{background:var(--lg-navy);border-color:var(--lg-navy);color:#fff}.lg-check input:focus-visible+.lg-check-box{outline:2px solid var(--lg-blue-deep);outline-offset:2px}.lg-check-text{flex-direction:column;display:flex}.lg-check-text em{color:var(--lg-muted);font-size:11.5px;font-style:normal}.lg-submit{letter-spacing:.06em;color:#fff;background:var(--lg-navy);cursor:pointer;touch-action:manipulation;border:0;border-radius:5px;justify-content:center;align-items:center;gap:9px;width:100%;height:46px;margin-top:2px;font-size:15px;font-weight:600;transition:background .16s,transform .12s;display:flex}.lg-submit:hover:not(:disabled){background:var(--lg-navy-hover)}.lg-submit:active:not(:disabled){transform:translateY(1px)}.lg-submit:disabled{opacity:.62;cursor:progress}.lg-spin{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite lg-spin}@keyframes lg-spin{to{transform:rotate(360deg)}}.lg-help{color:var(--lg-muted);margin-top:2px;font-size:12.5px;line-height:1.6}.lg-help summary{min-height:24px;color:var(--lg-blue-deep);cursor:pointer;padding:3px 0;font-weight:600}.lg-help summary:hover{color:var(--lg-navy)}.lg-help ul{flex-direction:column;gap:5px;margin:6px 0 0;padding-left:18px;display:flex}.lg-dev{color:var(--lg-muted);margin:0;font-size:12px;line-height:1.7}.lg-dev code{font-family:var(--font-data);background:#f2f5f8;border-radius:3px;padding:1px 5px;font-size:11.5px}.lg-wait{min-height:120px;color:var(--lg-muted);justify-content:center;align-items:center;font-size:13.5px}.login-legal{text-align:center;max-width:400px;color:var(--lg-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 14px;font-size:12px;line-height:1.6;display:flex}.login-legal a{color:inherit;border-bottom:1px dotted;text-decoration:none}.login-legal a:hover{color:var(--lg-navy)}@media (width<=820px){.login-screen{grid-template-columns:1fr}.login-aside{border-right:0;border-bottom:1px solid var(--paper-line);align-items:flex-start;padding:22px 18px 20px}.la-inner{gap:12px;max-width:none}.la-logo{height:34px}.la-slogan{font-size:17px;line-height:1.5}.la-points{display:none}.la-dots{opacity:.4;background-position:90% 22%,78% 60%,95% 74%,72% 30%}.login-panel{padding:18px 16px calc(20px + env(safe-area-inset-bottom));justify-content:flex-start}.login-card{padding:20px 18px 18px}.lg-input input{height:48px;font-size:16px}.lg-eye{height:48px}.lg-submit{height:50px;font-size:16px}}@media (prefers-reduced-motion:reduce){.lg-spin{animation-duration:2.4s}}.pwd-mask{z-index:60;background:#0a0c0f8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pwd-card{background:var(--paper);border-radius:var(--r-md);border-top:3px solid var(--red);width:100%;max-width:340px;box-shadow:var(--shadow-sheet);flex-direction:column;gap:12px;padding:22px 20px 18px;display:flex}.pwd-card h2{color:var(--ink);margin:0;font-size:16px}.pwd-card .pwd-note{color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.pwd-card .pwd-row{justify-content:flex-end;gap:8px;margin-top:2px;display:flex}.pv-page{z-index:50;-webkit-overflow-scrolling:touch;color:#1e242c;-webkit-text-size-adjust:100%;background:#f5f6f3;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;position:fixed;inset:0;overflow-y:auto}.pv-wrap{max-width:520px;margin:0 auto;padding:20px 16px 48px}.pv-head{margin-bottom:16px}.pv-brand{color:#2a7e97;letter-spacing:.08em;background:#3aa5c41f;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.pv-title{letter-spacing:.01em;margin:10px 0 4px;font-size:24px;font-weight:700;line-height:1.3}.pv-sub{color:#5b6875;margin:0;font-size:16px}.pv-card{background:#fff;border:1px solid #dce1e7;border-radius:12px;margin:0 0 12px;padding:16px 16px 14px;box-shadow:0 1px 2px #1e242c0a}.pv-h2{margin:22px 0 10px;font-size:17px;font-weight:700}.pv-mute{color:#8b96a3;margin:6px 0 0;font-size:13px}.pv-loading{color:#5b6875;align-items:center;gap:10px;display:flex}.pv-dot{background:#3aa5c4;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite pv-pulse}@keyframes pv-pulse{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.pv-fail{background:#fdf1ef;border-color:#f0c9c4}.pv-fail b{color:#bc3b31;font-size:17px;display:block}.pv-fail p{margin:6px 0 0}.pv-balance{color:#fff;background:linear-gradient(150deg,#2a7e97,#3aa5c4);border-color:#0000;align-items:center;gap:16px;padding:18px 16px;display:flex}.pv-hours{border-right:1px solid #ffffff59;flex-direction:column;align-items:center;min-width:100px;padding-right:16px;display:flex}.pv-hours b{letter-spacing:-.02em;font-size:40px;font-weight:800;line-height:1.1}.pv-hours span,.pv-metrics span{opacity:.92;font-size:13px}.pv-metrics{flex:1;gap:12px;display:flex}.pv-metrics>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pv-metrics b{white-space:nowrap;font-size:22px;font-weight:700}.pv-renew{background:#fffaea;border-color:#f3d9a8}.pv-renew b{color:#9a6a12;font-size:17px;display:block}.pv-renew p{margin:6px 0 0}.pv-lesson{padding:0;overflow:hidden}.pv-lesson>summary{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.pv-lesson>summary::-webkit-details-marker{display:none}.pv-lesson>summary:after{content:"";border-bottom:2px solid #8b96a3;border-right:2px solid #8b96a3;flex:none;width:8px;height:8px;margin-left:auto;transition:transform .15s;transform:rotate(45deg)}.pv-lesson[open]>summary:after{transform:rotate(-135deg)}.pv-lesson[open]>summary{border-bottom:1px solid #eef1f4}.pv-when{flex-direction:column;flex:none;align-items:center;width:52px;display:flex}.pv-when b{font-size:19px;font-weight:700}.pv-when i{color:#8b96a3;font-size:12px;font-style:normal}.pv-what{flex-direction:column;min-width:0;display:flex}.pv-what b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.pv-what i{color:#8b96a3;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-style:normal;overflow:hidden}.pv-tag{border-radius:999px;flex:none;align-self:flex-start;padding:2px 8px;font-size:12px;font-weight:600}.pv-tag-final{color:#2a7e97;background:#3aa5c424}.pv-tag-draft{color:#8b96a3;background:#f0f1f3}.pv-sections{margin:0;padding:6px 16px 16px}.pv-section{border-bottom:1px dashed #e6eaee;padding:10px 0}.pv-section:last-child{border-bottom:none;padding-bottom:0}.pv-section dt{color:#2a7e97;letter-spacing:.02em;margin:0 0 4px;font-size:13px;font-weight:700}.pv-section dd{white-space:pre-line;word-break:break-word;margin:0;font-size:16px}.pv-empty{color:#8b96a3;margin:0;padding:14px 16px;font-size:14px}.pv-card.pv-empty{padding:16px}.pv-foot{text-align:center;border-top:1px solid #e6eaee;margin-top:22px;padding-top:14px}.pv-micro{color:inherit;border-left:3px solid #3aa5c4;align-items:center;gap:12px;text-decoration:none;display:flex}.pv-micro-icon{color:#2a7e97;background:#3aa5c424;border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;height:34px;font-size:13px;display:flex}.pv-micro-body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.pv-micro-body b{font-size:15px;line-height:1.4}.pv-micro-body i{color:#8b96a3;font-size:12px;font-style:normal}.pv-micro-go{color:#2a7e97;flex:none;font-size:13px;font-weight:700}@media (width>=720px){.pv-page{background:#eef1f4}.pv-wrap{max-width:560px;padding-top:32px}.pv-card{box-shadow:0 2px 10px #1e242c0f}}@media (hover:none){.pv-lesson>summary{padding:16px}}.wq{--wq-bg:#05070e;--wq-bg-2:#080c17;--wq-surface:#ffffff0b;--wq-surface-2:#ffffff13;--wq-ink:#eef3ff;--wq-ink-2:#a9b8d1;--wq-ink-3:#74849d;--wq-line:#96b2e624;--wq-line-2:#96b2e642;--wq-cyan:#4cc9ff;--wq-violet:#7c6cff;--wq-amber:#ffa96b;--wq-grad:linear-gradient(112deg, #4cc9ff 0%, #7c6cff 52%, #ffa96b 100%);--wq-radius:18px;--wq-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, monospace;background:var(--wq-bg);min-height:100dvh;color:var(--wq-ink);-webkit-font-smoothing:antialiased;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,system-ui,-apple-system,sans-serif;line-height:1.62;position:relative;overflow-x:clip}.wq *,.wq :before,.wq :after{box-sizing:border-box}.wq img{max-width:100%;display:block}.wq a{color:inherit;text-decoration:none}.wq button,.wq input,.wq select,.wq textarea{font:inherit}.wq ::selection{color:#fff;background:#7c6cff59}.wq-mono{font-family:var(--wq-mono);letter-spacing:.08em;font-variant-numeric:tabular-nums}.wq-wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 28px}[data-reveal]{opacity:0;transition:opacity .7s cubic-bezier(.22,.8,.32,1),transform .7s cubic-bezier(.22,.8,.32,1);transform:translateY(18px)}[data-reveal].is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transition:none;transform:none}}.wq-progress{z-index:60;transform-origin:0;background:var(--wq-grad);width:100%;height:2px;position:fixed;top:0;left:0;box-shadow:0 0 14px #7c6cff8c}.wq-header{z-index:50;border-bottom:1px solid #0000;transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:sticky;top:0}.wq-header.is-stuck{border-bottom-color:var(--wq-line);-webkit-backdrop-filter:saturate(150%)blur(16px);background:#05070eb8}.wq-header-inner{align-items:center;gap:26px;height:74px;display:flex}.wq-brand{flex:none;align-items:center;gap:11px;display:inline-flex}.wq-brand-logo-foot{opacity:.94;height:38px}.wq-brand-logo{width:auto;height:44px;display:block}.wq-nav{align-items:center;gap:4px;margin-left:auto;display:flex}.wq-nav a{color:var(--wq-ink-2);border-radius:999px;padding:8px 13px;font-size:14px;transition:color .2s,background .2s}.wq-nav a:hover{color:var(--wq-ink);background:#ffffff0f}.wq-header-cta{flex:none}.wq-menu{border:1px solid var(--wq-line-2);cursor:pointer;background:#ffffff0a;border-radius:12px;width:40px;height:40px;padding:0;display:none}.wq-menu span{background:var(--wq-ink);border-radius:2px;width:16px;height:1.5px;margin:4px auto;display:block}.wq-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;height:46px;padding:0 22px;font-size:14.5px;font-weight:600;transition:transform .18s,box-shadow .25s,background .25s,border-color .25s;display:inline-flex}.wq-btn:active{transform:translateY(1px)}.wq-btn-solid{color:#06080f;background:linear-gradient(112deg,#8fe4ff,#b9b0ff 48%,#ffd3ad);box-shadow:0 10px 30px #6c8cff47,inset 0 1px #ffffffb3}.wq-btn-solid:hover{transform:translateY(-1px);box-shadow:0 16px 40px #6c8cff6b,inset 0 1px #ffffffbf}.wq-btn-solid:disabled{opacity:.6;cursor:default;box-shadow:none;transform:none}.wq-btn-ghost{color:var(--wq-ink);border-color:var(--wq-line-2);background:#ffffff08}.wq-btn-ghost:hover{background:#ffffff14;border-color:#a0beff66}.wq-actions{flex-wrap:wrap;gap:12px;display:flex}.wq-hero-sub{color:var(--wq-ink-3);flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 0;font-size:12.5px;display:flex}.wq-hero-sub a{color:#c9d6ff;border-bottom:1px solid #7c6cff80;padding-bottom:1px}.wq-hero-sub a:hover{border-bottom-color:#c9d6ff}.wq-hero{isolation:isolate;padding:96px 0 0;position:relative}.wq-hero-bg{z-index:-1;position:absolute;inset:-74px 0 0;overflow:hidden}.wq-particles{pointer-events:none;opacity:.95;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(100deg,#00000038 0%,#0000008c 34%,#000 64%);mask-image:linear-gradient(100deg,#00000038 0%,#0000008c 34%,#000 64%)}@media (width<=900px){.wq-particles{opacity:.8;-webkit-mask-image:none;mask-image:none}}.wq-aurora{filter:blur(90px);opacity:.5;border-radius:50%;animation:22s ease-in-out infinite alternate wq-drift;position:absolute}.wq-aurora-1{background:radial-gradient(circle at 30% 30%,#4cc9ff8c,#0000 62%);width:620px;height:620px;top:-8%;left:-6%}.wq-aurora-2{background:radial-gradient(circle at 60% 40%,#7c6cff80,#0000 64%);width:720px;height:720px;animation-delay:-8s;top:6%;right:-10%}.wq-grid-mask{background-image:linear-gradient(#8caae612 1px,#0000 1px),linear-gradient(90deg,#8caae612 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 32%,#000 30%,#0000 78%);mask-image:radial-gradient(70% 60% at 50% 32%,#000 30%,#0000 78%)}@keyframes wq-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(4%,5%)scale(1.12)}}.wq-hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);align-items:center;gap:56px;padding-bottom:72px;display:grid}.wq-kicker{border:1px solid var(--wq-line-2);font-family:var(--wq-mono);letter-spacing:.1em;color:var(--wq-ink-2);background:#ffffff09;border-radius:999px;align-items:center;gap:9px;margin:0 0 22px;padding:6px 14px 6px 10px;font-size:11.5px;display:inline-flex}.wq-dot{background:#4ce6a4;border-radius:50%;width:7px;height:7px;animation:2.4s ease-in-out infinite wq-pulse;box-shadow:0 0 0 4px #4ce6a424}@keyframes wq-pulse{0%,to{box-shadow:0 0 0 3px #4ce6a41a}50%{box-shadow:0 0 0 7px #4ce6a405}}.wq-hero h1{letter-spacing:-.02em;margin:0 0 22px;font-size:clamp(40px,5.2vw,68px);font-weight:800;line-height:1.1}.wq-hero h1 em{background:var(--wq-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.wq-lead{max-width:560px;color:var(--wq-ink-2);margin:0 0 30px;font-size:16px;line-height:1.85}.wq-hero-tags{flex-wrap:wrap;gap:8px 10px;margin:30px 0 0;padding:0;list-style:none;display:flex}.wq-hero-tags li{border:1px solid var(--wq-line);color:var(--wq-ink-3);border-radius:999px;padding:5px 12px;font-size:12.5px}.wq-map{border:1px solid var(--wq-line-2);-webkit-backdrop-filter:blur(14px);background:linear-gradient(#ffffff12,#ffffff06);border-radius:22px;padding:22px 22px 18px;position:relative;box-shadow:0 30px 80px #03061099,inset 0 1px #ffffff14}.wq-map:before{content:"";-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(160deg,#7c6cff8c,#0000 42%,#4cc9ff59);border-radius:22px;padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.wq-map-head{border-bottom:1px solid var(--wq-line);justify-content:space-between;align-items:baseline;padding-bottom:14px;display:flex}.wq-map-head b{font-size:15px}.wq-map-head span{color:var(--wq-ink-3);font-size:10px}.wq-map ol{margin:6px 0 0;padding:0;list-style:none}.wq-map li{border-bottom:1px dashed #96b2e61a;align-items:center;gap:14px;padding:15px 0 15px 4px;display:flex;position:relative}.wq-map li:last-child{border-bottom:0}.wq-map li i{font-family:var(--wq-mono);color:var(--wq-ink-3);letter-spacing:.1em;font-size:11px;font-style:normal}.wq-map li div{flex:1;min-width:0}.wq-map li b{font-size:15px;font-weight:650;display:block}.wq-map li span{color:var(--wq-ink-3);font-size:12px;display:block}.wq-node{background:var(--wq-cyan);border-radius:50%;flex:none;width:8px;height:8px;position:relative;box-shadow:0 0 0 4px #4cc9ff1f,0 0 18px #4cc9ffb3}.wq-map li:nth-child(2) .wq-node{background:#8f86ff;box-shadow:0 0 0 4px #8f86ff1f,0 0 18px #8f86ffb3}.wq-map li:nth-child(3) .wq-node{background:#b7a4ff;box-shadow:0 0 0 4px #b7a4ff1f,0 0 18px #b7a4ffb3}.wq-map li:nth-child(4) .wq-node{background:var(--wq-amber);box-shadow:0 0 0 4px #ffa96b1f,0 0 18px #ffa96bb3}.wq-map-foot{border-top:1px solid var(--wq-line);flex-wrap:wrap;gap:8px;padding-top:14px;display:flex}.wq-map-foot span{color:var(--wq-ink-2);background:#ffffff0d;border-radius:999px;padding:4px 10px;font-size:11.5px}.wq-facts-wrap{padding-bottom:72px}.wq-facts{border:1px solid var(--wq-line);background:var(--wq-line);border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.wq-fact{background:#080c17db;padding:20px 20px 18px}.wq-fact b{font-family:var(--wq-mono);letter-spacing:-.01em;background:var(--wq-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:26px;line-height:1.2;display:block}.wq-fact b i{letter-spacing:.04em;color:var(--wq-ink-3);-webkit-text-fill-color:var(--wq-ink-3);margin-left:5px;font-size:12px;font-style:normal}.wq-fact span{color:var(--wq-ink-3);margin-top:4px;font-size:12.5px;display:block}.wq-section{padding:88px 0;position:relative}.wq-section-head{max-width:720px;margin-bottom:40px}.wq-eyebrow{color:var(--wq-ink-3);letter-spacing:.18em;margin-bottom:14px;font-size:11px;display:inline-block}.wq-section-head h2,.wq-fit-copy h2,.wq-faq-grid h2,.wq-contact-copy h2,.wq-edu-head h2{letter-spacing:-.015em;margin:0 0 12px;font-size:clamp(28px,3.2vw,40px);font-weight:750;line-height:1.22}.wq-section-head p,.wq-fit-copy p,.wq-faq-grid>div>p,.wq-contact-copy p{color:var(--wq-ink-2);margin:0;font-size:14.5px;line-height:1.8}.wq-caps{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.wq-cap{border:1px solid var(--wq-line);border-radius:var(--wq-radius);background:linear-gradient(#ffffff0d,#ffffff05);flex-direction:column;padding:24px 24px 20px;transition:border-color .3s,transform .3s,box-shadow .3s,background .3s;display:flex;position:relative;overflow:hidden}.wq-cap:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:radial-gradient(420px at 15% 0,#7c6cff29,#0000 62%);transition:opacity .35s;position:absolute;inset:0}.wq-cap:hover{border-color:#96b4ff5c;transform:translateY(-3px);box-shadow:0 24px 60px #040814a6}.wq-cap:hover:after{opacity:1}.wq-cap.is-wide{grid-column:span 2}.wq-cap-top{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.wq-cap-icon{border:1px solid var(--wq-line-2);color:#b9c9ff;background:#ffffff0a;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.wq-cap-no{color:var(--wq-ink-3);font-size:11px}.wq-cap h3{letter-spacing:-.01em;margin:0 0 4px;font-size:19px;font-weight:680}.wq-cap-en{color:var(--wq-ink-3);letter-spacing:.16em;margin-bottom:12px;font-size:9.5px;display:block}.wq-cap p{color:var(--wq-ink-2);margin:0 0 18px;font-size:13.5px;line-height:1.8}.wq-cap-out{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.wq-cap-out em{border:1px solid var(--wq-line);color:var(--wq-ink-2);background:#ffffff08;border-radius:999px;padding:3px 9px;font-size:11.5px;font-style:normal}.wq-fit-section{border-top:1px solid var(--wq-line);background:linear-gradient(#ffffff05,#0000 60%)}.wq-fit-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:56px;display:grid}.wq-text-link{color:#c9d6ff;border-bottom:1px solid #7c6cff80;margin-top:18px;padding-bottom:3px;font-size:14px;display:inline-block}.wq-text-link:hover{border-bottom-color:#c9d6ff}.wq-fit-list{gap:12px;display:grid}.wq-fit-list article{border:1px solid var(--wq-line);background:#ffffff08;border-radius:14px;padding:20px 22px 20px 24px;transition:border-color .25s,background .25s,transform .25s;position:relative}.wq-fit-list article:before{content:"";background:var(--wq-grad);opacity:.85;border-radius:2px;width:2px;position:absolute;top:18px;bottom:18px;left:-1px}.wq-fit-list article:hover{background:#ffffff0e;transform:translate(2px)}.wq-fit-tag{color:var(--wq-ink-3);letter-spacing:.16em;margin-bottom:8px;font-size:10px;display:inline-block}.wq-fit-list h3{gap:10px;margin:0 0 6px;font-size:16.5px;font-weight:650;display:flex}.wq-fit-list h3 i{font-family:var(--wq-mono);color:var(--wq-ink-3);padding-top:3px;font-size:11px;font-style:normal}.wq-fit-list p{color:var(--wq-ink-2);margin:0;font-size:13.5px;line-height:1.8}.wq-delivery-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:56px;display:grid}.wq-delivery-photo{border:1px solid var(--wq-line-2);border-radius:20px;position:relative;overflow:hidden}.wq-delivery-photo img{object-fit:cover;filter:saturate(.85)contrast(1.05)brightness(.78);width:100%;height:100%;min-height:380px}.wq-delivery-photo:after{content:"";background:linear-gradient(#05070e1a 20%,#05070eeb 100%);position:absolute;inset:0}.wq-delivery-photo-cap{z-index:1;flex-direction:column;gap:2px;display:flex;position:absolute;bottom:20px;left:22px;right:22px}.wq-delivery-photo-cap b{font-size:15px}.wq-delivery-photo-cap span{color:var(--wq-ink-3);font-size:12.5px}.wq-section-head.compact{margin-bottom:26px}.wq-steps{margin:0;padding:0 0 0 4px;list-style:none;position:relative}.wq-steps:before{content:"";opacity:.55;background:linear-gradient(#4cc9ffb3,#7c6cff8c,#ffa96b73);width:1px;position:absolute;top:14px;bottom:22px;left:21px}.wq-steps li{gap:18px;padding:0 0 26px;display:flex;position:relative}.wq-steps li:last-child{padding-bottom:0}.wq-step-no{z-index:1;border:1px solid var(--wq-line-2);color:#c3d2ff;background:#080c17;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:11px;display:grid;position:relative}.wq-steps h3{margin:2px 0 5px;font-size:16.5px;font-weight:650}.wq-steps p{color:var(--wq-ink-2);margin:0 0 6px;font-size:13.5px;line-height:1.8}.wq-steps em{font-style:normal;font-family:var(--wq-mono);letter-spacing:.06em;color:var(--wq-ink-3);font-size:11px}.wq-edu{border-top:1px solid var(--wq-line);background:radial-gradient(70% 60% at 78% 0,#7c6cff1f,#0000 60%)}.wq-edu-head{max-width:760px;margin-bottom:40px}.wq-edu-head h2 em{background:var(--wq-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.wq-edu-head p{color:var(--wq-ink-2);margin:0;font-size:14.5px;line-height:1.8}.wq-edu-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:48px;display:grid}.wq-edu-visual{padding:6px 0 26px;position:relative}.wq-sheet{z-index:1;color:#16324f;background:#fffbe8;border-radius:10px;padding:22px 24px 18px;font-family:Songti SC,STSong,SimSun,serif;position:relative;transform:rotate(-1.2deg);box-shadow:0 40px 90px #02050eb3,0 0 0 1px #ffffff59}.wq-sheet-head{border-bottom:1.5px solid #16324f;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.wq-sheet-head b{letter-spacing:.04em;font-family:Yuanti SC,PingFang SC,sans-serif;font-size:13px}.wq-sheet-head span{color:#6a7f95;font-size:10.5px}.wq-sheet h4{letter-spacing:.02em;margin:14px 0 12px;font-family:Yuanti SC,PingFang SC,sans-serif;font-size:19px}.wq-sheet-rows{gap:8px;display:grid}.wq-sheet-rows>div{border-top:1px dashed #16324f38;grid-template-columns:74px minmax(0,1fr);gap:10px;padding:7px 0;display:grid}.wq-sheet-rows span{color:#4c637a;font-size:11.5px}.wq-sheet-rows p{margin:0;font-size:12.5px;line-height:1.72}.wq-sheet-foot{color:#4c637a;border-top:1.5px solid #16324f;justify-content:space-between;align-items:center;margin-top:14px;padding-top:10px;font-size:11px;display:flex}.wq-edu-photo{z-index:2;border:1px solid #ffffff29;border-radius:12px;width:190px;margin:0;position:absolute;bottom:-12px;right:6px;overflow:hidden;transform:rotate(5deg);box-shadow:0 24px 50px #02050eb3}.wq-edu-photo img{object-fit:cover;filter:saturate(.9)brightness(.9);width:100%;height:140px}.wq-edu-points{gap:14px;margin:0 0 26px;padding:0;list-style:none;display:grid}.wq-edu-points li{border:1px solid var(--wq-line);background:#ffffff09;border-radius:14px;padding:16px 18px}.wq-edu-points b{margin-bottom:4px;font-size:15px;display:block}.wq-edu-points span{color:var(--wq-ink-2);font-size:13.5px;line-height:1.78}.wq-roles{border-top:1px solid var(--wq-line);background:radial-gradient(62% 58% at 12% 0,#4cc9ff1a,#0000 62%)}.wq-roles-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.wq-role{border:1px solid var(--wq-line);border-radius:var(--wq-radius);background:linear-gradient(#ffffff0e,#ffffff05);flex-direction:column;padding:24px;transition:border-color .3s,transform .3s,box-shadow .3s;display:flex;position:relative}.wq-role:hover{border-color:#96b4ff57;transform:translateY(-3px);box-shadow:0 24px 60px #04081499}.wq-role-tag{border:1px solid var(--wq-line-2);letter-spacing:.12em;color:#b9c9ff;background:#ffffff0a;border-radius:999px;align-self:flex-start;margin-bottom:14px;padding:4px 10px;font-size:10.5px}.wq-role h3{letter-spacing:-.01em;margin:0 0 6px;font-size:17px;font-weight:680;line-height:1.45}.wq-role-pain{color:var(--wq-ink-2);margin:0 0 16px;font-size:13.5px;line-height:1.78}.wq-role-list{gap:9px;margin:0 0 18px;padding:0;list-style:none;display:grid}.wq-role-list li{padding-left:18px;font-size:13px;line-height:1.7;position:relative}.wq-role-list li:before{content:"";background:var(--wq-grad);opacity:.85;border-radius:2px;width:7px;height:7px;position:absolute;top:8px;left:2px}.wq-role-result{border-top:1px dashed var(--wq-line);color:var(--wq-ink-2);margin:auto 0 0;padding-top:14px;font-size:12.5px;line-height:1.72}.wq-role-result b{letter-spacing:.12em;color:var(--wq-ink-3);margin-bottom:3px;font-size:10.5px;font-weight:500;display:block}.wq-pricing{border-top:1px solid var(--wq-line);border-bottom:1px solid var(--wq-line);background:var(--wq-bg-2)}.wq-plans{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:16px;display:grid}.wq-plan{border:1px solid var(--wq-line);border-radius:var(--wq-radius);background:linear-gradient(#ffffff0b,#ffffff04);flex-direction:column;padding:26px 24px 24px;display:flex;position:relative}.wq-plan.is-featured{background:linear-gradient(#7c6cff29,#4cc9ff0d 46%,#ffffff05);border-color:#96b4ff6b;box-shadow:0 30px 70px #060a1aa6,inset 0 1px #ffffff1a}.wq-plan.is-featured:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(160deg,#7c6cffbf,#0000 46%,#4cc9ff80);padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.wq-plan-badge{color:#06080f;letter-spacing:.04em;background:linear-gradient(112deg,#8fe4ff,#b9b0ff 52%,#ffd3ad);border-radius:999px;padding:3px 11px;font-size:11px;font-weight:650;position:absolute;top:-11px;right:20px;box-shadow:0 8px 20px #6c8cff52}.wq-plan-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:14px;display:flex}.wq-plan-head h3{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:680}.wq-plan-en{color:var(--wq-ink-3);letter-spacing:.16em;font-size:9.5px}.wq-plan-price{font-family:var(--wq-mono);color:var(--wq-ink);font-variant-numeric:tabular-nums;align-items:baseline;gap:3px;margin:0 0 16px;display:flex}.wq-plan-price i{color:var(--wq-ink-2);font-size:17px;font-style:normal}.wq-plan-price b{letter-spacing:-.02em;font-size:40px;font-weight:500;line-height:1}.wq-plan.is-featured .wq-plan-price b{background:var(--wq-grad);color:#0000;-webkit-background-clip:text;background-clip:text}.wq-plan-price span{color:var(--wq-ink-3);margin-left:3px;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:12.5px}.wq-plan-limits{flex-wrap:wrap;gap:6px;margin:0 0 18px;display:flex}.wq-plan-limits div{border:1px solid var(--wq-line);background:#ffffff08;border-radius:999px;align-items:baseline;gap:5px;padding:4px 10px;font-size:11.5px;display:flex}.wq-plan-limits dt{color:var(--wq-ink-3)}.wq-plan-limits dd{color:var(--wq-ink);font-family:var(--wq-mono);margin:0}.wq-plan-feats{gap:9px;margin:0 0 22px;padding:0;list-style:none;display:grid}.wq-plan-feats li{color:var(--wq-ink-2);padding-left:20px;font-size:13px;line-height:1.66;position:relative}.wq-plan-feats li:before{content:"";border:1.5px solid #8fc4ff;border-width:0 1.5px 1.5px 0;width:5px;height:9px;position:absolute;top:6px;left:3px;transform:rotate(42deg)}.wq-plan .wq-btn{width:100%;margin-top:auto}.wq-plan-note{text-align:center;color:var(--wq-ink-3);margin:22px 0 0;font-size:12px;line-height:1.8}.wq-proof{background:linear-gradient(#ffffff04,#0000 46%)}.wq-proof-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.wq-proof-card{border:1px solid var(--wq-line);border-radius:var(--wq-radius);background:#ffffff07;flex-direction:column;padding:16px 16px 20px;transition:border-color .3s,transform .3s;display:flex}.wq-proof-card:hover{border-color:#96b4ff4d;transform:translateY(-2px)}.wq-demo{border:1px solid var(--wq-line);background:#0408129e;border-radius:12px;height:200px;margin-bottom:18px;padding:14px;position:relative;overflow:hidden}.wq-proof-card h3{margin:0 0 6px;font-size:16px;font-weight:660}.wq-proof-card p{color:var(--wq-ink-2);margin:0;font-size:13px;line-height:1.75}.wq-proof-note{text-align:center;color:var(--wq-ink-3);margin:24px 0 0;font-size:13px}.wq-demo-sheet{color:#16324f;background:#fffbe8;border-radius:4px;flex-direction:column;height:100%;padding:12px 14px 10px;font-family:Songti SC,STSong,SimSun,serif;display:flex;transform:rotate(-1deg);box-shadow:0 10px 26px #00000073}.wq-demo-sheet-head{border-bottom:1.4px solid #16324f;justify-content:space-between;align-items:center;gap:8px;padding-bottom:7px;display:flex}.wq-demo-sheet-head b{letter-spacing:.03em;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:10.5px}.wq-demo-sheet-head span{color:#6a7f95;font-size:8.5px}.wq-demo-row{border-bottom:1px dashed #16324f33;grid-template-columns:28px minmax(0,1fr);gap:7px;padding:7px 0;font-size:9.5px;line-height:1.62;display:grid}.wq-demo-row i{color:#4c637a;font-style:normal}.wq-demo-sheet-foot{letter-spacing:.04em;color:#4c637a;border-top:1.4px solid #16324f;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px;font-size:8px;display:flex}.wq-demo-chat{flex-direction:column;height:100%;display:flex}.wq-chat-head{color:var(--wq-ink-2);align-items:center;gap:8px;margin-bottom:12px;font-size:11.5px;display:flex}.wq-chat-avatar{background:var(--wq-grad);opacity:.75;border-radius:6px;width:22px;height:22px}.wq-chat-bubble{color:#12210f;background:#95ec69;border-radius:10px 10px 10px 2px;padding:11px 13px;font-size:11px;line-height:1.7;box-shadow:0 10px 26px #00000059}.wq-chat-bubble p{font-size:inherit;color:inherit;line-height:inherit;margin:0 0 5px}.wq-chat-bubble p:last-child{margin-bottom:0}.wq-chat-status{font-family:var(--wq-mono);letter-spacing:.1em;color:var(--wq-ink-3);align-items:center;gap:6px;margin-top:10px;font-size:9.5px;display:flex}.wq-chat-status:before{content:"";border:1.5px solid #4ce6a4;border-width:0 1.5px 1.5px 0;width:5px;height:9px;transform:rotate(42deg)}.wq-demo-table{height:100%;font-family:var(--wq-mono);flex-direction:column;justify-content:center;display:flex}.wq-tbl-head,.wq-tbl-row{grid-template-columns:minmax(0,1fr) 76px;align-items:center;padding:9px 10px;display:grid}.wq-tbl-head{border-bottom:1px solid var(--wq-line);letter-spacing:.1em;color:var(--wq-ink-3);padding-bottom:10px;font-size:9.5px}.wq-tbl-head span:last-child{text-align:right}.wq-tbl-row{border-bottom:1px dashed #96b2e61a;font-size:11.5px}.wq-tbl-row:last-child{border-bottom:0}.wq-tbl-row b{color:var(--wq-ink-2);font-family:PingFang SC,Microsoft YaHei,sans-serif;font-weight:500}.wq-tbl-row span{text-align:right;font-variant-numeric:tabular-nums;color:#9fd8ff;font-size:16px}.wq-tbl-row.is-empty b{color:var(--wq-ink)}.wq-tbl-row.is-empty span{color:#ff8f8f}.wq-stack-section{border-top:1px solid var(--wq-line)}.wq-stack{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.wq-stack>div{border:1px solid var(--wq-line);background:#ffffff08;border-radius:14px;padding:20px}.wq-stack h3{color:var(--wq-ink-2);letter-spacing:.04em;margin:0 0 12px;font-size:13px;font-weight:650}.wq-stack ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.wq-stack li{font-family:var(--wq-mono);color:#c8d6f2;background:#ffffff0e;border-radius:8px;padding:3px 9px;font-size:11.5px}.wq-faq-grid{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:start;gap:56px;display:grid}.wq-faq-list{gap:10px;display:grid}.wq-faq-list details{border:1px solid var(--wq-line);background:#ffffff07;border-radius:14px;transition:border-color .25s,background .25s}.wq-faq-list details[open]{background:#ffffff0d;border-color:#96b4ff4d}.wq-faq-list summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;font-size:14.5px;font-weight:600;list-style:none;display:flex}.wq-faq-list summary::-webkit-details-marker{display:none}.wq-faq-list summary:after{content:"+";font-family:var(--wq-mono);color:var(--wq-ink-3);font-size:15px}.wq-faq-list details[open] summary:after{content:"−"}.wq-faq-list p{color:var(--wq-ink-2);margin:0;padding:0 18px 16px;font-size:13.5px;line-height:1.85}.wq-contact{border-top:1px solid var(--wq-line);padding:92px 0 96px;position:relative;overflow:hidden}.wq-contact-glow{filter:blur(70px);pointer-events:none;background:radial-gradient(circle,#7c6cff38,#0000 68%);border-radius:50%;width:900px;height:620px;position:absolute;top:-30%;left:50%;transform:translate(-50%)}.wq-contact-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:52px;display:grid;position:relative}.wq-contact-note{border-left:2px solid #7c6cff80;flex-direction:column;gap:4px;margin-top:28px;padding-left:16px;display:flex}.wq-contact-note b{font-size:14.5px}.wq-contact-note span{color:var(--wq-ink-3);font-size:12.5px}.wq-form{border:1px solid var(--wq-line-2);-webkit-backdrop-filter:blur(12px);background:linear-gradient(#ffffff0f,#ffffff05);border-radius:20px;gap:14px;padding:26px;display:grid;box-shadow:0 30px 80px #0306108c}.wq-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.wq-form label,.wq-form-full{flex-direction:column;gap:6px;display:flex}.wq-form label>span,.wq-form-full>span,.wq-fieldset legend{color:var(--wq-ink-3);letter-spacing:.03em;font-size:12px}.wq-form input,.wq-form select,.wq-form textarea{border:1px solid var(--wq-line);width:100%;color:var(--wq-ink);background:#04081299;border-radius:10px;outline:none;padding:11px 13px;font-size:14px;transition:border-color .2s,box-shadow .2s,background .2s}.wq-form textarea{resize:vertical;min-height:96px}.wq-form input::placeholder,.wq-form textarea::placeholder{color:#55637a}.wq-form input:focus,.wq-form select:focus,.wq-form textarea:focus{background:#060a16cc;border-color:#7c6cff99;box-shadow:0 0 0 3px #7c6cff29}.wq-form select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#7f8faa 50%),linear-gradient(135deg,#7f8faa 50%,#0000 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.wq-form select option{color:#eef3ff;background:#0a0f1c}.wq-fieldset{border:0;margin:0;padding:0}.wq-fieldset legend{padding:0 0 8px}.wq-chips{flex-wrap:wrap;gap:8px;display:flex}.wq-chip{border:1px solid var(--wq-line);color:var(--wq-ink-2);cursor:pointer;background:#ffffff08;border-radius:999px;padding:7px 13px;font-size:13px;transition:all .2s}.wq-chip:hover{color:var(--wq-ink);border-color:#96b4ff66}.wq-chip.is-on{color:#05070e;background:linear-gradient(112deg,#4cc9ffe6,#7c6cffe6);border-color:#0000;font-weight:600;box-shadow:0 8px 22px #6c8cff4d}.wq-form-full{margin:0}.wq-hp{opacity:0;width:1px;height:1px;left:-9999px;position:absolute!important}.wq-form-error{color:#ffb3b3;background:#ff5a5a1a;border:1px solid #ff787859;border-radius:10px;margin:0;padding:9px 12px;font-size:13px}.wq-form-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:4px;display:flex}.wq-form-actions span{color:var(--wq-ink-3);font-size:12px}.wq-thanks{background:#4ce6a40f;border:1px solid #4ce6a447;border-radius:20px;padding:40px 30px}.wq-thanks b{font-size:20px}.wq-thanks p{color:var(--wq-ink-2);margin:8px 0 20px;font-size:14px}.wq-footer{border-top:1px solid var(--wq-line);background:#04060c;padding:46px 0 40px}.wq-footer-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1fr);align-items:start;gap:36px;display:grid}.wq-footer p{max-width:320px;color:var(--wq-ink-3);margin:14px 0 0;font-size:12.5px;line-height:1.8}.wq-footer nav{color:var(--wq-ink-2);flex-wrap:wrap;gap:8px 16px;font-size:13px;display:flex}.wq-footer nav a:hover{color:var(--wq-ink)}.wq-footer-legal{color:var(--wq-ink-3);flex-wrap:wrap;gap:6px 16px;font-size:11.5px;display:flex}.wq-footer-legal a:hover{color:var(--wq-ink-2)}.wq-mobile-cta{z-index:40;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--wq-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#05070ee6;transition:transform .3s;display:none;position:fixed;bottom:0;left:0;right:0;transform:translateY(110%)}.wq-mobile-cta.is-on{transform:none}.wq-mobile-cta .wq-btn{width:100%}@media (width<=900px){.wq-roles-grid,.wq-plans,.wq-proof-grid{grid-template-columns:1fr;width:100%;max-width:560px;margin:0 auto}.wq-role,.wq-plan{padding:22px 20px}.wq-role h3{font-size:16px}.wq-role-pain,.wq-role-list li,.wq-proof-card p,.wq-plan-feats li{font-size:12.5px}.wq-plan-price b{font-size:34px}.wq-plan .wq-btn{width:100%}.wq-demo{height:176px}.wq-plan-badge{right:16px}}@media (width<=1080px){.wq-nav a{padding:8px 9px;font-size:13.5px}.wq-hero-grid{grid-template-columns:1fr;gap:40px;padding-bottom:56px}.wq-map{max-width:560px}.wq-fit-grid,.wq-delivery-grid,.wq-edu-grid,.wq-faq-grid,.wq-contact-grid,.wq-footer-grid{grid-template-columns:1fr;gap:36px}.wq-caps{grid-template-columns:repeat(2,minmax(0,1fr))}.wq-cap.is-wide{grid-column:span 2}.wq-stack,.wq-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.wq-delivery-photo img{min-height:280px}.wq-edu-photo{width:150px;bottom:-8px;right:8px}.wq-edu-photo img{height:110px}}@media (width<=860px){.wq-nav{border:1px solid var(--wq-line-2);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080c17f5;border-radius:16px;flex-direction:column;align-items:stretch;gap:2px;padding:10px;display:none;position:absolute;top:74px;left:16px;right:16px;box-shadow:0 24px 60px #00000080}.wq-nav.is-open{display:flex}.wq-nav a{border-radius:10px;padding:11px 12px}.wq-menu{margin-left:auto;display:block}.wq-header-cta{display:none}.wq-mobile-cta{display:block}.wq-hero{padding-top:56px}.wq-section{padding:62px 0}.wq-wrap{padding:0 20px}.wq-footer{padding-bottom:96px}}@media (width<=640px){.wq-caps,.wq-stack,.wq-form-row,.wq-facts{grid-template-columns:1fr}.wq-cap.is-wide{grid-column:span 1}.wq-hero h1{font-size:clamp(32px,9vw,42px)}.wq-lead{font-size:14.5px}.wq-actions{width:100%}.wq-actions .wq-btn{flex:auto}.wq-sheet{padding:18px 16px 14px}.wq-sheet-rows>div{grid-template-columns:62px minmax(0,1fr)}.wq-edu-photo{display:none}.wq-form{padding:18px}}@media (prefers-reduced-motion:reduce){.wq-aurora,.wq-dot{animation:none}.wq-progress{transition:none}}.pf{flex-direction:column;gap:12px;min-height:0;display:flex}.pf-head{align-items:flex-start;gap:16px;display:flex}.pf-head h2{margin:0 0 4px}.pf-head p{max-width:760px;margin:0;font-size:12.5px;line-height:1.6}.pf-head .btn{flex:none;margin-left:auto}.pf-filters{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:9px 12px;display:flex}.pf-filters label{color:var(--ink-2);flex-direction:column;gap:3px;font-size:11.5px;display:flex}.pf-filters select{min-width:128px}.pf-count{color:var(--ink-2);margin-left:auto;font-size:12px}.pf-count b{font-family:var(--font-data);color:var(--ink);font-size:15px}.pf-msg,.pf-err{border-radius:var(--r-md);margin:0;padding:7px 11px;font-size:12.5px}.pf-msg{color:#177a51;background:#eef9f1;border:1px solid #bfe0c8}.pf-err{background:var(--red-wash);color:var(--red-deep);border:1px solid #f0c2bd}.pf-grid{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:12px;display:grid}.pf-list{max-height:calc(100vh - 250px);padding:6px;overflow:auto}.pf-list ul{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.pf-item{border-radius:var(--r-md);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;gap:5px;width:100%;padding:9px 10px;display:flex}.pf-item:hover{background:var(--paper-2,#f8f7f4)}.pf-item.active{border-color:var(--red);background:var(--red-wash)}.pf-item-top{align-items:center;gap:7px;font-size:13px;display:flex}.pf-item-top b{font-weight:700}.pf-item-top .mute{margin-left:auto;font-size:11.5px}.pf-item-sum{-webkit-line-clamp:2;color:var(--ink-2);-webkit-box-orient:vertical;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.pf-item-foot{align-items:center;gap:7px;font-size:11px;display:flex}.pf-priority{white-space:nowrap;background:var(--paper-line);color:var(--ink-2);border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:700}.pf-priority.high{background:var(--red-wash);color:var(--red-deep)}.pf-priority.low{color:#4f6b80;background:#eef3f7}.pf-status{color:#4f6b80;background:#eef3f7;border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:600}.pf-status.open{color:#9a6412;background:#fff4e5}.pf-status.planned{color:#25628f;background:#eaf4ff}.pf-status.done{color:#177a51;background:#eef9f1}.pf-detail{flex-direction:column;gap:14px;min-height:320px;padding:14px 16px;display:flex}.pf-form,.pf-current{flex-direction:column;gap:12px;display:flex}.pf-form>header,.pf-current-head{align-items:flex-start;gap:12px;display:flex}.pf-form h3,.pf-current-head h3{align-items:center;gap:8px;margin:0 0 3px;font-size:16px;display:flex}.pf-current-head .mute{margin:0;font-size:12px}.pf-current-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;display:flex}.pf-current-tools .mini{white-space:nowrap}.pf-current-tools select{width:auto;min-width:104px}.pf-form>header .mini{margin-left:auto}.pf-form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.pf-form label,.pf-fields label,.pf-profile-form label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.pf-form input,.pf-form select,.pf-form textarea,.pf-fields input,.pf-fields textarea,.pf-fields select,.pf-profile-form input,.pf-profile-form textarea,.pf-profile-form select{width:100%}.pf-raw textarea{font-family:var(--font-body);line-height:1.65}.pf-form-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pf-form-actions .mute{font-size:11.5px}.pf-raw-box{border:1px solid var(--paper-line);border-radius:var(--r-md);background:var(--paper-2,#f8f7f4)}.pf-raw-box summary{color:var(--ink-2);cursor:pointer;padding:7px 10px;font-size:12px}.pf-raw-box pre{max-height:240px;font-family:var(--font-body);white-space:pre-wrap;word-break:break-word;color:var(--ink);margin:0;padding:0 12px 12px;font-size:12.5px;line-height:1.7;overflow:auto}.pf-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pf-fields>label:first-child,.pf-field-block{grid-column:1/-1}.pf-field-block{flex-direction:column;gap:6px;display:flex}.pf-field-block>span{color:var(--ink-2);font-size:12px}.pf-points-edit{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;flex-direction:column;gap:6px;padding:8px;display:flex}.pf-point-row{grid-template-columns:minmax(120px,.9fr) minmax(160px,1.4fr) 92px 34px;align-items:center;gap:6px;display:grid}.pf-point-row select{width:100%}.pf-points-edit>.mini{align-self:flex-start}.pf-points{flex-direction:column;gap:4px;margin:4px 0 0;padding:0;font-size:12.5px;list-style:none;display:flex}.pf-points li{align-items:baseline;gap:6px;display:flex}.pf-level{color:#4f6b80;background:#eef3f7;border-radius:999px;flex:none;padding:1px 5px;font-size:10px;font-weight:700}.pf-level.high{background:var(--red-wash);color:var(--red-deep)}.pf-level.low{color:#7a7a7a;background:#f2f2f2}.pf-empty{text-align:center;color:var(--ink-2);flex-direction:column;gap:5px;margin:auto;padding:28px;font-size:12.5px;display:flex}.pf-empty b{color:var(--ink);font-size:15px}.pf-profile{border-top:2px solid var(--red);margin-top:4px;padding:13px 14px}.pf-profile-head{flex-wrap:wrap;align-items:flex-start;gap:10px 12px;margin-bottom:10px;display:flex}.pf-profile-head h3{margin:0 0 3px;font-size:15px}.pf-profile-head p{max-width:640px;margin:0;font-size:11.5px;line-height:1.55}.pf-profile-tools{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.pf-profile-tools .mini{white-space:nowrap}.pf-profile-body{flex-direction:column;gap:10px;display:flex}.pf-profile-body .cap,.pf-profile-form label>span{letter-spacing:.08em;color:var(--ink-3);margin-bottom:3px;font-size:11px;font-weight:700;display:block}.pf-profile-body p{margin:0;font-size:13px;line-height:1.7}.pf-profile-summary p{border-left:3px solid var(--red);background:var(--red-wash);border-radius:0 var(--r-md) var(--r-md) 0;padding:9px 11px;font-size:13px}.pf-chips{flex-wrap:wrap;gap:5px;display:flex}.pf-chips span{color:#177a51;background:#eef9f1;border-radius:999px;padding:2px 8px;font-size:11.5px}.pf-profile-meta{font-size:11px}.pf-profile-form{gap:10px;display:grid}.pf-empty-profile{border:1px dashed var(--paper-line);border-radius:var(--r-md);color:var(--ink-2);flex-direction:column;gap:4px;padding:16px;font-size:12px;display:flex}.pf-empty-profile b{color:var(--ink);font-size:13px}@media (width<=1180px){.pf-grid{grid-template-columns:1fr}.pf-list{max-height:320px}}.stu-fb{flex-direction:column;gap:10px;display:flex}.stu-fb-bar{align-items:flex-start;gap:12px;display:flex}.stu-fb-bar h3{margin:0;font-size:14px}.stu-fb-bar p{margin:2px 0 0;font-size:11.5px}.stu-fb-bar .mini{white-space:nowrap;flex:none;margin-left:auto}.stu-fb-profile{border:1px solid var(--paper-line);border-left:3px solid var(--red);border-radius:var(--r-md);background:#fffdfc;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.stu-fb-profile p{margin:0;font-size:12.5px;line-height:1.65}.stu-fb-profile p b{letter-spacing:.06em;color:var(--ink-3);margin-right:7px;font-size:11px}.stu-fb-summary{border-radius:0 var(--r-md) var(--r-md) 0;background:var(--red-wash);padding:7px 10px}.stu-fb-list-title{margin:4px 0 0;font-size:14px}.stu-fb-table td{vertical-align:top;font-size:12.5px;line-height:1.55}.stu-fb-table .pf-points{margin:0}.stu-fb-empty{align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}.stu-fb-empty .mini{flex:none}.stu-fb-subject{font-size:11px}.pf-embedded .pf-head-compact{align-items:center}.pf-embedded .pf-head-compact p{max-width:none}.pf-embedded .pf-list{max-height:460px}.pf-sheet-mask{z-index:70;background:#0f172a8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pf-sheet{background:var(--card,#fff);border-radius:14px;flex-direction:column;width:min(1180px,96vw);max-height:92vh;padding:14px 16px;display:flex;box-shadow:0 24px 60px #00000059}.pf-sheet-head{border-bottom:1px solid var(--paper-line,#e5e9f2);justify-content:space-between;align-items:center;padding-bottom:8px;font-size:14px;display:flex}.pf-sheet>.pf{flex:1;min-height:0;padding-top:10px;overflow:auto}.sheet{--fs:14px;--label-w:26%;background:var(--sheet-paper);color:#0e1b33;width:210mm;height:297mm;font-size:var(--fs);box-shadow:var(--shadow-sheet);flex-direction:column;gap:3.4mm;padding:11mm 12mm 9mm;line-height:1.5;display:flex}.sheet.auto-height{height:auto;min-height:297mm}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head img{height:11mm;display:block}.sheet-head .htitle{font-family:var(--font-round);letter-spacing:.42em;color:var(--sheet-line);opacity:.9;padding-left:.4em;font-size:1.42em;font-weight:700}.dots{gap:1.2mm;margin-top:-1.4mm;display:flex}.dots i{border-radius:50%;width:1.7mm;height:1.7mm}.dots i:first-child{background:#f2c230}.dots i:nth-child(2){background:#e4574c}.dots i:nth-child(3){background:#4f9bd9}.dots i:nth-child(4){background:#8bc34a}.title-block{text-align:center}.sheet-title{font-family:var(--font-round);letter-spacing:.045em;color:var(--sheet-line);text-wrap:balance;margin:0;font-size:2.3em;font-weight:700;line-height:1.22}.sheet-title .missing{border-bottom:.13em dashed #c7d6e2;min-width:4.6em;display:inline-block}.title-block .rule{border-top:1.2px solid var(--sheet-line);width:100%;margin:2.6mm auto 0;position:relative}.title-block .rule:after{content:"";border-top:.5px solid #9fbdd8;position:absolute;top:1.4mm;left:0;right:0}.sheet-who{font-family:var(--font-ui);color:#1c3b5c;font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:4mm;margin-top:4.2mm;font-size:1.02em;display:flex}.sheet-who .who-seg{align-items:baseline;gap:.44em;min-width:0;display:flex}.sheet-who .cap{letter-spacing:.18em;text-indent:.18em;color:#6b8aa6;flex:none;font-size:.9em;font-style:normal;font-weight:600}.sheet-who .val{min-width:0;color:var(--sheet-line);white-space:nowrap;font-size:1.06em;font-weight:700}.sheet-who .val.name{font-family:var(--font-round);letter-spacing:.08em;border-bottom:1.4px solid #7fa8cf;padding:0 .16em .06em;font-size:1.3em}.sheet-who .val.blank{border-bottom:1.2px dashed #b9cadb;min-width:4.4em;display:inline-block}.ph{color:#b6c4d2;font-weight:400}.tbl-wrap{flex:1;min-height:0;overflow:hidden}.kw-table{border-collapse:collapse;table-layout:fixed;width:100%;height:100%}.kw-table th,.kw-table td{border:1px solid var(--sheet-line);word-break:break-word;padding:.6em .72em}.kw-table thead th{background:var(--sheet-head);color:#2b2620;font-family:var(--font-ui);letter-spacing:.36em;text-align:center;padding:.44em .72em;font-size:1.04em;font-weight:700}.kw-table td{background:var(--sheet-row);color:#2b2620;font-family:var(--font-song);vertical-align:middle;font-size:1.16em;line-height:1.62}.kw-table td.lbl{width:var(--label-w);background:var(--sheet-label);color:#3a3128;font-family:var(--font-ui);letter-spacing:.14em;text-align:center;vertical-align:middle;text-indent:.14em;font-size:1.03em;font-weight:700;line-height:1.5}.lines{display:block}.line{gap:.5em;margin:.14em 0;display:flex}.line .n{color:#164a78;height:1.5em;font-family:var(--font-ui);font-variant-numeric:tabular-nums;background:#164a7817;border-radius:50%;flex:0 0 1.5em;justify-content:center;align-items:center;margin-top:.12em;font-size:.84em;font-weight:700;display:inline-flex}.line .t{flex:1;min-width:0}.line.sub{padding-left:1.5em}.line.sub .n{color:#4a7ba6;background:0 0;flex:0 0 1em;height:1em;font-weight:400}.line.plain .n{display:none}.line.plain .t{font-family:var(--font-ui);letter-spacing:.01em;color:#233c58;font-size:.96em}.sheet-foot{text-align:center;color:#3c5a78;margin-top:auto;padding-top:.6mm}.sheet-foot .line-1{font-family:var(--font-round);letter-spacing:.42em;padding-left:.42em;font-size:1.05em;font-weight:700}.sheet-foot .promo{letter-spacing:.02em;color:#6b7f94;margin-top:1.3mm;font-size:.8em}.sheet.ink{--sheet-row:#fff;--sheet-label:#fff;--sheet-head:#fff;--sheet-line:#2b2b2b;background:#fff}.sheet.ink .sheet-foot{color:#333}.sheet.ink .dots{opacity:.35}.sheet.ink .line .n{background:0 0}@page{size:A4;margin:0}@media print{html,body,#root{background:#fff;height:auto;overflow:visible}body *{visibility:hidden}.sheet,.sheet *{visibility:visible}.layout,.stage,.stage-scroll{background:#fff;height:auto;padding:0;display:block;overflow:visible}.slot,.paper{display:block;width:auto!important;height:auto!important;animation:none!important;position:static!important;transform:none!important}.roster,.editor,.bar,.jobticket,.rule-h,.rule-v,.corner,.origin,.banner{display:none!important}.sheet{height:297mm;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin:0;padding:11mm 12mm 9mm;position:absolute;top:0;left:0;width:210mm!important}.sheet.auto-height{height:auto;min-height:297mm}.ph{display:none}}}@layer legacy{.ui-toast-host{z-index:300;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.ui-toast{border:1px solid var(--paper-line);border-radius:var(--r-md);max-width:380px;font-family:var(--font-ui);color:var(--ink);white-space:pre-line;background:#fff;padding:9px 13px 9px 15px;font-size:12.5px;line-height:1.6;animation:.18s ease-out both ui-toast-in;position:relative;box-shadow:0 10px 26px #141e3229}.ui-toast:before{content:"";background:var(--ink-2);border-radius:0 2px 2px 0;width:3px;position:absolute;top:6px;bottom:6px;left:0}.ui-toast--ok:before{background:var(--cyan)}.ui-toast--err:before{background:var(--red)}.ui-toast--info:before{background:var(--ink-2)}.ui-toast.is-out{animation:.18s ease-in both ui-toast-out}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ui-toast-out{to{opacity:0;transform:translateY(4px)}}.ui-confirm-mask{z-index:400;background:#141c266b;justify-content:center;align-items:center;padding:24px;animation:.14s ease-out both ui-confirm-fade;display:flex;position:fixed;inset:0}.ui-confirm{border:1px solid var(--paper-line);border-radius:var(--r-md);width:min(420px,100%);font-family:var(--font-ui);background:#fff;padding:16px 18px 14px;animation:.16s ease-out both ui-confirm-rise;box-shadow:0 18px 40px #0000002e}.ui-confirm h2{letter-spacing:.04em;color:var(--ink);margin:0 0 8px;font-size:14px;font-weight:700}.ui-confirm-body{color:var(--ink-2);white-space:pre-line;margin:0 0 12px;font-size:12.5px;line-height:1.75}.ui-confirm-require{margin:0 0 14px}.ui-confirm-require label{color:var(--ink-2);margin-bottom:5px;font-size:11.5px;line-height:1.6;display:block}.ui-confirm-require b{font-family:var(--font-data);color:var(--ink);font-weight:600}.ui-confirm-require input{width:100%;font-family:var(--font-data);color:var(--ink);border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;padding:6px 8px;font-size:12.5px}.ui-confirm-require input:focus{border-color:var(--cyan);box-shadow:var(--focus);outline:none}.ui-confirm-foot{justify-content:flex-end;gap:8px;display:flex}.ui-confirm-btn{border:1px solid var(--paper-line);border-radius:var(--r-md);color:var(--ink-2);cursor:pointer;background:#fff;padding:6px 14px;font-family:inherit;font-size:12.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.ui-confirm-btn:hover:not(:disabled){border-color:var(--ink-3);color:var(--ink)}.ui-confirm-btn:focus-visible{box-shadow:var(--focus);outline:none}.ui-confirm-btn--primary{border-color:var(--ink);background:var(--ink);color:#fff}.ui-confirm-btn--primary:hover:not(:disabled){color:#fff;background:#2b333d;border-color:#2b333d}.ui-confirm-btn--danger{border-color:var(--red);background:var(--red);color:#fff}.ui-confirm-btn--danger:hover:not(:disabled){border-color:var(--red-deep);background:var(--red-deep);color:#fff}.ui-confirm-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes ui-confirm-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-confirm-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ui-empty{text-align:center;flex-direction:column;align-items:center;gap:4px;padding:32px 16px;display:flex}.ui-empty.is-compact{padding:18px 12px}.ui-empty-art{width:76px;height:28px;margin-bottom:6px;position:relative}.ui-empty-art .rule{background:#c9d1da;height:1px;position:absolute;bottom:4px;left:0;right:0}.ui-empty-art .stub{background:#fff;border:1px solid #b3bdc8;border-radius:1px;width:14px;height:14px;position:absolute;bottom:4px;left:30px}.ui-empty.is-compact .ui-empty-art{width:56px;height:22px;margin-bottom:4px}.ui-empty.is-compact .ui-empty-art .stub{width:10px;height:10px;left:22px}.ui-empty-title{color:var(--ink);margin:0;font-size:12.5px;font-weight:600}.ui-empty-hint{max-width:340px;color:var(--ink-3);margin:0;font-size:11.5px;line-height:1.65}.ui-empty-action{border:1px solid var(--paper-line);border-radius:var(--r-sm);color:var(--ink-2);cursor:pointer;background:#fff;margin-top:8px;padding:4px 12px;font-family:inherit;font-size:12px;transition:border-color .15s,color .15s,background .15s}.ui-empty-action:hover{border-color:var(--cyan);background:var(--cyan-wash);color:var(--cyan-deep)}.ui-empty-action:focus-visible{box-shadow:var(--focus);outline:none}.ui-sk{flex-direction:column;gap:8px;padding:6px 0;display:flex}.ui-sk-row{background:#eef1f4;border-radius:2px;position:relative;overflow:hidden}.ui-sk-row:nth-child(3n+2){width:92%}.ui-sk-row:nth-child(3n){width:78%}.ui-sk-row:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb8,#0000);animation:1.15s ease-in-out infinite ui-sk-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes ui-sk-shimmer{to{transform:translate(100%)}}.ui-form-error{border-left:3px solid var(--red);border-radius:var(--r-sm);background:var(--red-wash);color:var(--red-deep);margin:8px 0 0;padding:6px 9px;font-size:12px;line-height:1.6}@media (prefers-reduced-motion:reduce){.ui-toast,.ui-toast.is-out,.ui-confirm-mask,.ui-confirm{animation:none}.ui-sk-row:after{opacity:0;animation:none}}.cp-mask{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#141a2275;justify-content:center;align-items:flex-start;padding:12vh 12px 24px;animation:.12s ease-out cp-fade;display:flex;position:fixed;inset:0}.cp-panel{box-sizing:border-box;width:640px;color:var(--ink);font-family:var(--font-ui);background:#fff;border-radius:6px;animation:.14s ease-out cp-rise;overflow:hidden;box-shadow:0 24px 60px #00000047}@media (width<=720px){.cp-panel{width:calc(100vw - 24px)}}.cp-inputrow{border-bottom:1px solid var(--paper-line);align-items:center;gap:10px;height:44px;padding:0 12px 0 14px;display:flex}.cp-search-icon{border:2px solid var(--ink-3);border-radius:50%;flex:none;width:12px;height:12px;position:relative}.cp-search-icon:after{content:"";background:var(--ink-3);transform-origin:0;border-radius:1px;width:6px;height:2px;position:absolute;bottom:-3px;right:-4px;transform:rotate(45deg)}.cp-input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-family:inherit;font-size:15px}.cp-input::placeholder{color:var(--ink-3)}.cp-esc{color:var(--ink-3);font-family:var(--font-data);letter-spacing:.06em;background:#f8fafb;border:1px solid #d5dce3;border-bottom-width:2px;border-radius:3px;flex:none;padding:1px 5px 0;font-size:10px;line-height:1.5}.cp-list{overscroll-behavior:contain;max-height:min(420px,88vh - 110px);padding:6px 0 8px;overflow-y:auto}.cp-list-empty{padding:0}.cp-group-title{color:var(--ink-3);letter-spacing:.08em;padding:8px 14px 4px;font-size:11px;font-weight:600}.cp-row{cursor:pointer;-webkit-user-select:none;user-select:none;border-left:2px solid #0000;align-items:center;height:40px;padding:0 14px;font-size:13.5px;display:flex}.cp-row-on{border-left-color:var(--cyan);background:#eef4f7}.cp-label{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;font-weight:500;overflow:hidden}.cp-sub{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;margin-left:10px;font-size:12px;overflow:hidden}.cp-row-on .cp-sub{color:var(--cyan-deep)}.cp-skel-row{align-items:center;height:40px;padding:0 14px;display:flex}.cp-skel-bar{background:linear-gradient(90deg,#eef1f4 0%,#f8fafb 50%,#eef1f4 100%) 0 0/200% 100%;border-radius:3px;height:10px;animation:1.1s linear infinite cp-shimmer;display:block}.cp-skel-a{width:52%}.cp-skel-b{width:34%}.cp-error{border-top:1px solid var(--paper-line);background:var(--red-wash);color:var(--red-deep);padding:7px 14px;font-size:12px}.cp-footer{border-top:1px solid var(--paper-line);height:32px;color:var(--ink-3);background:#fbfcfc;align-items:center;padding:0 14px;font-size:11px;display:flex}@keyframes cp-fade{0%{opacity:0}to{opacity:1}}@keyframes cp-rise{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes cp-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.cp-mask,.cp-panel{animation:none}.cp-skel-bar{background:#eef1f4;animation:none}}.pager{border-top:1px dashed var(--line,#e6e6e6);color:var(--ink-2,#6b7280);flex-wrap:wrap;align-items:center;gap:4px 5px;margin-top:6px;padding-top:6px;font-size:11px;display:flex}.pager-grow{flex:1}.pager-info{white-space:nowrap}.pager-info b{color:var(--ink,#111827);font-weight:600}.pager-size{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.pager-size select{border:1px solid var(--line,#e6e6e6);background:#fff;border-radius:4px;height:22px;padding:0 3px;font-size:11px}.pager-gap{padding:0 2px}.ac{flex-direction:column;gap:12px;display:flex}.ac-head h1{color:var(--ink);margin:0 0 4px;font-size:19px}.ac-head p{color:var(--ink-2);margin:0;font-size:12.5px}.ac-tabs{border-bottom:1px solid var(--paper-line);gap:6px;padding-bottom:8px;display:flex}.ac-tabs button{border:1px solid var(--paper-line);border-radius:var(--r-sm);height:30px;color:var(--ink-2);cursor:pointer;background:0 0;padding:0 14px;font-size:13px}.ac-tabs button[aria-current=page]{background:var(--red-wash);color:var(--red-deep);border-color:#eec7c2;font-weight:600}.ac-ok,.ac-err{border-radius:var(--r-sm);border-left:3px solid;padding:8px 11px;font-size:12.5px;line-height:1.5}.ac-ok{color:#1d5c46;background:#eefaf3;border-color:#2f9a72}.ac-err{color:#7d1f18;background:var(--red-wash);border-color:var(--red)}.ac-temp{background:var(--sheet-paper);border:1px dashed var(--cyan-deep);border-radius:var(--r-sm);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;font-size:12.5px;display:flex}.ac-temp code{font-family:var(--font-data);letter-spacing:.06em;color:var(--ink);border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;padding:2px 8px;font-size:15px;font-weight:700}.ac-form{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:10px;padding:12px;display:grid}.ac-form label{flex-direction:column;gap:4px;display:flex}.ac-form label>span{color:var(--ink-3);letter-spacing:.06em;font-size:11.5px}.ac-form input,.ac-form select{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;height:32px;padding:0 8px;font-size:13px}.ac-form input:focus,.ac-form select:focus{border-color:var(--cyan);box-shadow:var(--focus);outline:none}.ac-form>button{grid-column:1/-1;justify-self:start}.ac-hint{color:var(--ink-3);margin:0;font-size:12px;line-height:1.6}.ac-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ac-toolbar input[type=text],.ac-toolbar>input:not([type]){border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;width:240px;height:30px;padding:0 8px;font-size:13px}.ac-check{color:var(--ink-2);align-items:center;gap:6px;font-size:12.5px;display:flex}.ac-tbl{border-collapse:collapse;border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;width:100%;font-size:13px;overflow:hidden}.ac-tbl th,.ac-tbl td{text-align:left;border-bottom:1px solid var(--paper-line);vertical-align:middle;padding:7px 9px}.ac-tbl thead th{background:var(--paper);letter-spacing:.08em;color:var(--ink-3);white-space:nowrap;font-size:11.5px;font-weight:600}.ac-tbl tbody tr:hover{background:var(--cyan-wash)}.ac-tbl select{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;min-width:104px;height:28px;padding:0 4px;font-size:13px}.ac-tbl.ac-matrix td:not(:first-child),.ac-tbl.ac-matrix th:not(:first-child){text-align:center;width:96px}.ac-acts{min-width:190px}.ac-empty{text-align:center;color:var(--ink-3);padding:16px 0}.ac-mono{font-family:var(--font-data);font-size:12.5px}.ac-dim{color:var(--ink-3);font-size:12px}.ac-ua{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.ac-me,.ac-warn{letter-spacing:.04em;border-radius:2px;margin-left:6px;padding:0 5px;font-size:10.5px;font-style:normal;display:inline-block}.ac-me{background:var(--cyan-wash);color:var(--cyan-deep);border:1px solid #bfe3ec}.ac-warn{background:var(--red-wash);color:var(--red-deep);border:1px solid #eec7c2}.ac-off td{color:var(--ink-3);background:#fbfbf9}.ac-acts{flex-wrap:wrap;gap:5px;display:flex}.ac-danger{color:var(--red-deep)!important;border-color:#eec7c2!important}.ac-chip{border:1px solid var(--paper-line);color:var(--ink-2);cursor:pointer;background:#fff;border-radius:999px;margin:0 4px 3px 0;padding:2px 9px;font-size:11.5px;line-height:1.6}.ac-chip:hover{border-color:var(--cyan);color:var(--cyan-deep)}.ac-chip.on{border-color:var(--cyan-deep);background:var(--cyan-deep);color:#fff;font-weight:600}.ac-chip:disabled{opacity:.5;cursor:default}.ac-subj{min-width:108px}.ac-subj-field .ac-subj-pick{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;flex-wrap:wrap;align-items:center;min-height:28px;padding:2px 6px;display:flex}.last-lesson{border:1px solid #f0d9d5;border-left:3px solid var(--red);background:linear-gradient(180deg, var(--red-wash), #fff 62%);border-radius:6px;margin:12px 0 0;padding:9px 11px 8px}.last-lesson.loading,.last-lesson.empty{border-left-color:var(--paper-line);background:#fafbfc;align-items:center;gap:8px;display:flex}.last-lesson .ll-head{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.last-lesson .cap{border-radius:var(--r-sm);background:var(--red);color:#fff;letter-spacing:.04em;padding:1px 6px;font-size:11px;font-weight:700}.last-lesson .ll-date{font-family:var(--font-round);color:var(--red-deep);font-size:15px}.last-lesson .ll-pills{flex-wrap:wrap;gap:6px;display:inline-flex}.last-lesson .ll-pills em{border:1px solid var(--paper-line);color:var(--ink-2);background:#fff;border-radius:999px;padding:1px 6px;font-size:11px;font-style:normal}.last-lesson .ll-pills em.warn{color:var(--red-deep);background:#fff6f4;border-color:#f2c9c4;font-weight:700}.last-lesson .ll-pills em.mute{color:var(--ink-3)}.last-lesson .ll-note{color:var(--red-deep);font-size:11px}.last-lesson .ll-body{max-height:188px;margin-top:6px;padding-right:4px;overflow:auto}.last-lesson .ll-sec{border-top:1px dashed #f1e3e1;gap:8px;padding:2px 0;font-size:12.5px;line-height:1.55;display:flex}.last-lesson .ll-sec:first-child{border-top:0}.last-lesson .ll-lbl{color:var(--ink-2);text-align:right;flex:0 0 96px;font-weight:700}.last-lesson .ll-lines{min-width:0;color:var(--ink);flex:1}.last-lesson .ll-line{overflow-wrap:anywhere;display:block}.last-lesson .ll-line.sub{color:var(--ink-2);padding-left:10px}.last-lesson .ll-line i{color:var(--red);margin-right:4px;font-style:normal;font-weight:700}.last-lesson .ll-more{color:var(--ink-3);font-size:11px}.last-lesson .ll-foot{border-top:1px dashed #f1e3e1;align-items:center;gap:6px;margin-top:6px;padding-top:6px;display:flex}.last-lesson .ll-foot .cap{color:var(--ink-2);background:0 0;padding:0;font-weight:600}.last-lesson .ll-err{color:var(--red-deep);margin-top:6px;font-size:12px}.prep-flip{margin-top:5px;display:block}.prep-flip .mini{border-style:dashed;border-color:var(--red);color:var(--red-deep);padding:3px 8px;font-size:11px}.archive .item.flip{border-style:dashed;border-color:var(--red);color:var(--red-deep);font-weight:700}.archive .item.flip:before{content:"▸";color:var(--red)}.reader-mask{z-index:60;background:#181b219e;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.reader{background:var(--paper);border-radius:10px;flex-direction:column;width:min(1180px,97vw);height:min(980px,96vh);display:flex;overflow:hidden;box-shadow:0 26px 70px #00000080}.reader-head{border-bottom:1px solid var(--paper-line);background:#fff;align-items:center;gap:10px;padding:9px 14px;display:flex}.reader-head .who{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.reader-head .who b{font-family:var(--font-round);font-size:17px}.reader-head .pos{background:var(--red-wash);color:var(--red-deep);border-radius:999px;padding:1px 7px;font-size:12px;font-weight:700}.reader-head .meta{color:var(--ink-2);font-size:12.5px}.reader-head .mini{margin-left:auto}.reader-bar{border-bottom:1px solid var(--paper-line);background:#fff;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px;display:flex}.reader-bar .grow{flex:1}.reader-bar input.date{width:140px}.reader-bar .sw{color:var(--ink-2);font-size:12px}.reader-hint{background:var(--red-wash);color:var(--red-deep);padding:6px 14px;font-size:12px}.reader-err{margin:8px 14px 0}.reader-meta{border-bottom:1px solid var(--paper-line);color:var(--ink-2);background:#fbfcfd;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:6px 14px;font-size:12px;display:flex}.reader-meta b{color:var(--ink)}.reader-meta b.hw-done{color:#177a51}.reader-meta b.hw-partial,.reader-meta b.hw-none{color:var(--red-deep)}.reader-meta .hw{align-items:center;gap:5px;display:inline-flex}.reader-stage{background:var(--board);background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:10px 10px;flex:1;justify-content:center;align-items:center;min-height:0;padding:10px;display:flex;overflow:auto}.reader-slot{flex:none;margin:auto;position:relative}.reader-paper{transform-origin:0 0;width:max-content}.reader-paper .sheet{box-shadow:0 12px 30px #00000073}.reader.wide{width:min(1620px,98vw)}.reader-paper.spread{display:block}.reader-book{perspective:2400px;background:linear-gradient(155deg,#4d2c27 0%,#2c1a18 55%,#3d2320 100%);border-radius:8px 10px 10px 8px;align-items:flex-start;gap:0;padding:13px;display:flex;position:relative;box-shadow:0 28px 60px #0000008c,inset 0 0 0 1px #ffffff12}.reader-book.single{box-shadow:none;background:0 0;border-radius:0;padding:0}.reader-book:before{content:"";pointer-events:none;z-index:3;background:linear-gradient(90deg,#0000 0%,#00000024 40%,#0000004d 50%,#00000024 60%,#0000 100%);width:30px;position:absolute;top:13px;bottom:13px;left:50%;transform:translate(-50%)}.reader-book.single:before{display:none}.reader-page{flex-direction:column;gap:6px;display:flex}.reader-page .reader-cap{margin:0 8px}.reader-page[data-side=prev] .sheet{border-radius:3px 0 0 3px;box-shadow:inset -18px 0 22px -20px #00000080,0 12px 26px #0006}.reader-page[data-side=cur] .sheet{border-radius:0 3px 3px 0;box-shadow:inset 18px 0 22px -20px #00000080,0 12px 26px #0006}.reader-page[data-side=prev] .reader-empty{border-radius:3px 0 0 3px}.reader-page[data-side=cur] .reader-empty{border-radius:0 3px 3px 0}.reader-page[data-side=cur]{transform-origin:0}.reader-page[data-side=prev]{transform-origin:100%;animation:.26s ease-out both leaf-settle}.reader-book[data-turn=next] .reader-page[data-side=cur]{animation:.3s cubic-bezier(.22,.7,.3,1) both leaf-drop}.reader-book[data-turn=prev] .reader-page[data-side=cur]{animation:.3s cubic-bezier(.22,.7,.3,1) both leaf-rise}@keyframes leaf-drop{0%{opacity:.34;transform:rotateY(-17deg)}to{opacity:1;transform:none}}@keyframes leaf-rise{0%{opacity:.34;transform:rotateY(15deg)}to{opacity:1;transform:none}}@keyframes leaf-settle{0%{opacity:.45}to{opacity:1}}.reader-page .reader-empty{box-sizing:border-box;justify-content:center;width:210mm;min-height:297mm}@media (prefers-reduced-motion:reduce){.reader-page,.reader-book .reader-page{animation:none!important}}@media print{.reader-mask{display:none!important}}.mini.ai-polish{font-variant-numeric:tabular-nums;flex:none}.mini.ai-polish:disabled,.mini.ai-polish:disabled:hover{border-color:var(--paper-line);background:var(--paper);color:var(--ink-3);cursor:not-allowed}.editor-body .banner.ai-polish-banner{margin:4px 0 12px}.ai-polish-wrap{flex:none;align-items:center;gap:6px;display:inline-flex}.ai-polish-err{color:var(--red);max-width:24em;font-size:12px;line-height:1.3}.ai-inline{align-items:flex-start;gap:6px;display:flex}.ai-inline>input,.ai-inline>textarea{flex:auto;min-width:0}.ai-inline>.ai-polish-wrap{padding-top:5px}.ai-field-foot{align-items:center;gap:6px;margin-top:6px;display:flex}.prep-count-row{align-items:center;gap:8px;display:flex}.prep-count-row .prep-count{margin:0}.recite-box{border:1px dashed var(--board-line);border-radius:var(--r-sm);background:#3aa5c40f;margin-top:8px;padding:8px 10px 6px}.recite-cap{color:var(--ink-3);margin-bottom:6px;font-size:12px;line-height:1.6}.recite-row{border-top:1px solid #3b3f4780;align-items:center;gap:8px;padding:3px 0;display:flex}.recite-row:first-of-type{border-top:0}.recite-row .sw{color:var(--ink-2);white-space:nowrap;flex:none;font-size:12px}.recite-text{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.recite-kind{color:var(--cyan);border:1px solid var(--cyan);background:0 0;border-radius:999px;flex:none;padding:1px 7px;font-size:12px}.recite-badge{color:var(--cyan-deep);background:var(--cyan-wash);white-space:nowrap;border-radius:999px;flex:none;padding:1px 8px;font-size:12px}.fee-rules{border:1px solid var(--paper-line);border-radius:3px;border-radius:var(--r-md);background:var(--cyan-wash);color:var(--ink);border-left-width:3px;margin-bottom:12px;padding:9px 12px;font-size:12.5px;line-height:1.7;display:block}.fee-rules b{letter-spacing:.04em;margin-right:6px;font-size:12px}.fee-rules.ok{border-left-color:var(--cyan)}.fee-rules.ok .fee-rules-ok{color:#1f7a5c}.fee-rules.bad{border-color:#edc9c5;border-left-color:var(--red);background:var(--red-wash)}.fee-rules.bad b{color:var(--red-deep)}.fee-rules .fee-rules-meta{font-family:var(--font-data);color:var(--ink-2)}.fee-rules ul{margin:6px 0 0;padding-left:18px}.fee-rules li{margin:2px 0}.fee-rules li em{font-style:normal;font-family:var(--font-data);color:var(--red-deep)}.fee-hint{color:var(--ink-3);margin-top:4px;font-size:11.5px;line-height:1.5;display:block}.fee-hint.bad{color:var(--red-deep);font-weight:600}.fee-flag{font-family:var(--font-data);color:var(--red);white-space:nowrap;background:#fdecea;border-radius:10px;margin-left:6px;padding:1px 6px;font-size:10.5px;display:inline-block}.fee-refund-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fee-refund-head select{width:auto;min-width:152px;height:30px;padding:0 8px;font-size:12px}.fee-refund-total{font-family:var(--font-data);color:var(--ink-2);font-size:12px}.fee-refund-sums{color:var(--ink-2);margin-top:8px;font-size:12px}.fee-refund-sums b{font-family:var(--font-data);color:var(--ink)}.refund-voided td{color:var(--ink-3);text-decoration:line-through}.refund-voided .pill{text-decoration:none}.fee-refund-why{max-width:220px;color:var(--ink-2)}.subj-tag{white-space:nowrap;border:1px solid;border-radius:999px;padding:1px 7px;font-size:11px;line-height:1.5;display:inline-block}.subj-tag.none{color:var(--ink-3);border-style:dashed}.subj-sum-row{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px;margin:0 0 14px;display:grid}.subj-sum{border:1px solid var(--paper-line);background:var(--paper);border-left-width:3px;border-radius:3px;flex-direction:column;gap:3px;padding:9px 11px;display:flex}.subj-sum b{font-family:var(--font-data);font-size:16px;line-height:1.2}.subj-sum b em{color:var(--ink-3);margin-left:2px;font-size:11px;font-style:normal}.subj-sum .k{color:var(--ink-3);letter-spacing:.02em;font-size:11px}.subj-sum .s{color:var(--ink-2);font-size:11px}.subj-sum .s .neg{color:var(--red)}.subj-warn{color:var(--ink-2);border:1px dashed var(--red);background:var(--red-wash);border-radius:3px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;padding:7px 10px;font-size:12px;display:flex}.fee-form{background:0 0;border:none;flex-direction:column;gap:14px;margin:0;padding:0;display:flex;container-type:inline-size}.fee-row{align-items:start;gap:12px 14px;display:grid}.fee-row-main{grid-template-columns:minmax(0,1.3fr) minmax(0,1.15fr) minmax(0,.95fr) minmax(0,.8fr)}.fee-row-meta{grid-template-columns:minmax(118px,1fr) minmax(0,2.8fr) auto}.fee-row-note{grid-template-columns:minmax(0,1fr) auto}.fee-row-paid{grid-template-columns:auto minmax(0,1fr) auto}.fee-row-refund{grid-template-columns:minmax(0,1.15fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.4fr) auto}.fee-target{border-radius:var(--r-sm);border-left:3px solid var(--brand-blue);background:#f4f6fa;grid-template-columns:minmax(0,1.25fr) minmax(0,1.45fr);align-items:start;gap:12px 14px;margin:0 0 2px;padding:11px 13px;display:grid}.fee-row-hero{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.fee-row-hero>.fee-field,.fee-amount-hero{grid-template-rows:15px 46px auto}.fee-amount-hero .amount-input{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--r-ctrl);background:var(--surface);align-items:center;gap:6px;max-width:280px;height:46px;padding:0 12px;display:flex}.fee-amount-hero.over .amount-input{border-color:var(--red);background:var(--red-wash)}.fee-amount-hero .amount-input .cur{color:var(--ink-2);font-size:22px;font-weight:700;line-height:1}.fee-amount-hero .amount-input input{min-width:0;height:100%;font-family:var(--font-data);text-align:left;color:var(--ink);background:0 0;border:none;flex:1;padding:0;font-size:26px;font-weight:700;line-height:1}.fee-value .ended-flag{color:var(--ink-3);border:1px solid var(--paper-line);white-space:nowrap;border-radius:3px;padding:0 4px;font-size:10px;font-weight:600;line-height:15px}.fee-value.muted{color:var(--ink-3)}.fee-value.idle.muted{border:1px dashed var(--paper-line);background:0 0}.fee-field{grid-template-rows:15px 34px auto;row-gap:4px;min-width:0;display:grid}.fee-field>.k{letter-spacing:.04em;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;line-height:15px;overflow:hidden}.fee-field>input,.fee-field>select,.fee-field>textarea{box-sizing:border-box;border:1px solid var(--paper-line);border-radius:var(--r-sm);width:100%;min-width:0;height:34px;color:var(--ink);background:#fff;padding:0 9px;font-size:12.5px}.fee-field>select{padding:0 6px}.fee-field.fee-num>input{font-family:var(--font-data);letter-spacing:-.01em;text-align:right;font-size:18px;font-weight:700;line-height:1}.fee-field.fee-qty>input{font-family:var(--font-data);text-align:right;font-size:15px;font-weight:600}.fee-field.over>input{border-color:var(--red);background:var(--red-wash)}.fee-field>.fee-value{min-width:0;height:34px;color:var(--ink);align-items:center;gap:6px;font-size:12.5px;display:flex}.fee-value .nm{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fee-value.idle{color:var(--ink-2);gap:6px}.fee-field>.sw{height:34px;font-size:12.5px}.fee-field>.fee-hint{min-height:15px;color:var(--ink-2);margin:0;font-size:11px;line-height:1.45}.fee-field>.fee-hint.bad{color:var(--red-deep)}.fee-field.fee-action{justify-self:stretch}.fee-action>button{box-sizing:border-box;min-width:92px;height:34px;padding:0 20px;font-size:13px;font-weight:600}.fee-split{border-top:1px solid var(--paper-line);margin-top:16px;padding-top:14px}.fee-split>h3{margin-top:0}@container (width<=545px){.fee-row-main,.fee-row-meta,.fee-row-note,.fee-row-paid,.fee-row-refund{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fee-row-meta>.fee-action,.fee-row-note>.fee-action,.fee-row-paid>.fee-action,.fee-row-refund>.fee-action{grid-column:1/-1;justify-self:end}}@container (width<=420px){.fee-row-main,.fee-row-meta,.fee-row-note,.fee-row-paid,.fee-row-refund{grid-template-columns:minmax(0,1fr)}.fee-row-meta>.fee-action,.fee-row-note>.fee-action,.fee-row-paid>.fee-action,.fee-row-refund>.fee-action{justify-self:stretch}}.fee-submit{box-sizing:border-box;width:100%;min-width:92px;height:36px;font-family:var(--font-display);letter-spacing:3px;color:var(--edu-brand-deep);cursor:pointer;border-radius:var(--edu-r-sm);background:linear-gradient(var(--edu-paper-2), var(--edu-paper-2)) padding-box, linear-gradient(110deg, var(--edu-brand), var(--edu-mark), var(--edu-brand-deep), var(--edu-brand)) border-box;background-size:100% 100%,300% 100%;border:2px solid #0000;padding:0 20px;font-size:15px;font-weight:700;transition:transform .12s,box-shadow .2s;animation:4s linear infinite edu-flow}.fee-submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px #1f9e8a47}.fee-submit:active{transform:translateY(1px)}.fee-field.fee-action>.fee-submit{height:34px}@keyframes edu-flow{to{background-position:0 0,300% 0}}@media (prefers-reduced-motion:reduce){.fee-submit{background:linear-gradient(135deg, var(--edu-brand), var(--edu-brand-deep));color:#fff;border-color:#0000;animation:none}}.fee-method-row{align-items:center;gap:12px;display:flex}.fee-method-row>.k{letter-spacing:.04em;color:var(--edu-ink);flex:none;font-size:11px;font-weight:600}.fee-method-row>.seg-ctrl{flex:1}.onb{background:var(--sheet-paper);border:1px solid #ecdfb9;border-radius:10px;margin-bottom:16px;padding:16px 18px 8px;position:relative;box-shadow:0 1px #16324f0d}.onb-skip{color:var(--ink-3);cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:11.5px;position:absolute;top:10px;right:12px}.onb-skip:hover{color:var(--ink-2);text-decoration:underline}.onb h2{letter-spacing:.04em;color:var(--sheet-line);margin:0;padding-right:64px;font-size:15px;font-weight:700}.onb-sub{font-family:var(--font-data);color:var(--ink-2);margin:4px 0 12px;font-size:11px}.onb-steps{margin:0;padding:0;list-style:none}.onb-step{border-top:1px dashed #e9dcb6;align-items:center;gap:10px;padding:9px 0;display:flex}.onb-step:first-child{border-top:none}.onb-dot{background:0 0;border:1.5px solid #c3cbd3;border-radius:50%;flex:none;width:13px;height:13px}.onb-step.done .onb-dot{background:#2f8a5f;border-color:#2f8a5f}.onb-txt{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.onb-txt b{color:var(--ink);font-size:12.5px;font-weight:600}.onb-step.done .onb-txt b{color:var(--ink-2)}.onb-txt span{color:var(--ink-3);font-size:11px}.onb-act{color:var(--sheet-line);border-bottom:1px solid #16324f47;flex:none;padding:3px 0 2px 8px;font-size:12px;font-weight:600;text-decoration:none}.onb-act:hover{border-bottom-color:var(--cyan-deep);color:var(--cyan-deep)}.onb-done{color:#2f8a5f;flex:none;font-size:11px}.mt-page{background:var(--paper);-webkit-overflow-scrolling:touch;flex:1;min-width:0;padding:18px 14px 24px;overflow-y:auto}.mt-inner{max-width:560px;margin:0 auto}.mt-head{margin-bottom:14px}.mt-date{font-family:var(--font-data);letter-spacing:.08em;color:var(--ink-3);font-size:11.5px}.mt-head h1{letter-spacing:.01em;color:var(--sheet-line);margin:3px 0 0;font-size:20px;font-weight:700;line-height:1.32}.mt-loading{color:var(--ink-3);text-align:center;margin:26px 0;font-size:12.5px}.mt-notice{border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:12px;padding:9px 11px;font-size:12px;line-height:1.6;display:flex}.mt-notice.err{color:#96352c;background:#fdecea;border:1px solid #f3cdc7}.mt-notice.info{background:var(--cyan-wash);color:#26454f;border:1px solid #cfe7ef}.mt-notice span{flex:1;min-width:0}.mt-notice button{color:inherit;opacity:.65;cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:12px;line-height:1.4}.mt-notice button:hover{opacity:1}.mt-card{border:1px solid var(--paper-line);background:#fff;border-radius:12px;margin-bottom:10px;padding:13px 14px 12px;box-shadow:0 1px 2px #16324f0d}.mt-card.cancelled{opacity:.72;background:#f7f8f8}.mt-card-top{align-items:baseline;gap:8px;display:flex}.mt-time{font-family:var(--font-data);letter-spacing:.02em;color:var(--sheet-line);white-space:nowrap;font-size:15px;font-weight:600}.mt-meta{font-family:var(--font-data);color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:11px;display:flex}.mt-who{color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:6px;margin-top:7px;font-size:13px;display:flex}.mt-who b{color:var(--ink);font-size:14.5px;font-weight:600}.mt-chip{font-family:var(--font-ui);color:var(--ink-3);background:#eff1f3;border-radius:999px;padding:1px 7px;font-size:10.5px}.mt-chip.todo{background:var(--red-wash);color:var(--red-deep)}.mt-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px;display:grid}.mt-btn{border:1px solid var(--paper-line);color:var(--ink-2);white-space:nowrap;cursor:pointer;background:#f7f8f8;border-radius:8px;padding:9px 4px;font-size:12.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.mt-btn:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan-deep);background:#fff}.mt-btn.primary{border-color:var(--sheet-line);background:var(--sheet-line);color:#fff}.mt-btn.primary:hover:not(:disabled){color:#fff;background:#0f2740;border-color:#0f2740}.mt-btn.ok{color:#2f8a5f;background:#eaf5ee;border-color:#c8e3d3}.mt-btn:disabled{opacity:.6;cursor:default}.mt-empty{border:1px dashed var(--paper-line);text-align:center;background:#fff;border-radius:12px;padding:44px 12px}.mt-empty p{color:var(--ink-2);margin:0 0 10px;font-size:13.5px}.mt-link{color:var(--sheet-line);border-bottom:1px solid #16324f4d;font-size:13px;font-weight:600;text-decoration:none}.mt-link:hover{border-bottom-color:var(--cyan-deep);color:var(--cyan-deep)}.mt-toast{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));z-index:60;color:#fff;text-align:center;background:#1e242ceb;border-radius:999px;max-width:calc(100vw - 40px);padding:9px 14px;font-size:12.5px;animation:.18s ease-out mt-rise;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #0000002e}@keyframes mt-rise{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.mt-mask{z-index:70;background:#0e16206b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.mt-drawer{background:#fff;border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:560px;max-height:82vh;animation:.22s ease-out mt-up;display:flex;box-shadow:0 -8px 28px #0000002e}@keyframes mt-up{0%{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:none}}.mt-drawer-grip{background:#e2e6ea;border-radius:2px;flex:none;width:36px;height:4px;margin:8px auto 0}.mt-drawer-head{border-bottom:1px solid var(--paper-line);align-items:flex-start;gap:10px;padding:10px 16px 12px;display:flex}.mt-drawer-head b{color:var(--ink);font-size:14.5px;display:block}.mt-drawer-head span{font-family:var(--font-data);color:var(--ink-3);margin-top:3px;font-size:11px;display:block}.mt-drawer-x{width:28px;height:28px;color:var(--ink-2);cursor:pointer;background:#f2f4f6;border:none;border-radius:50%;flex:none;margin-left:auto;font-size:13px;line-height:1}.mt-drawer-x:hover{background:#e8ebee}.mt-drawer-body{min-height:0;padding:4px 16px calc(24px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.mt-drawer-body section{border-bottom:1px dashed var(--paper-line);padding:10px 0}.mt-drawer-body section:last-child{border-bottom:none}.mt-drawer-body h3{letter-spacing:.06em;color:var(--sheet-line);margin:0 0 4px;font-size:12px;font-weight:700}.mt-drawer-body p{color:var(--ink);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.75}.mt-drawer-empty{color:var(--ink-3);text-align:center;padding:26px 0;font-size:12.5px}@media (width<=640px){.onb{padding:14px 14px 6px}.mt-page{padding-left:12px;padding-right:12px}.mt-head h1{font-size:18.5px}}.crm .module-head{align-items:center}.crm-msg{border-radius:var(--r-md);background:var(--cyan-wash);color:var(--ink);border:1px solid #bfe0f7;align-items:center;gap:10px;margin-bottom:12px;padding:8px 12px;font-size:12.5px;display:flex}.crm-msg .mini{margin-left:auto}.crm-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:12px 0 14px;display:grid}.crm-stat{border:1px solid var(--paper-line);border-left:3px solid var(--paper-line);border-radius:var(--r-md);background:#fff;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.crm-stat .k{letter-spacing:.06em;color:var(--ink-2);font-size:11.5px;font-weight:600}.crm-stat b{font-family:var(--font-data);color:var(--ink);font-size:22px;font-weight:600;line-height:1.2}.crm-stat b em{color:var(--ink-3);margin-left:3px;font-size:11px;font-style:normal}.crm-stat .s{color:var(--ink-3);font-size:11px}.crm-stat.danger{border-left-color:var(--red);background:var(--red-wash)}.crm-stat.danger b{color:var(--red-deep)}.crm-stat.warn{background:#fff8ec;border-left-color:#e8a33d}.crm-table-wrap{overflow-x:auto}.crm-table{min-width:900px;margin-top:4px}.crm-table .crm-nowrap,.crm-table .crm-name-cell b,.crm-table .crm-name-cell .mute{white-space:nowrap}.crm-table .crm-name-cell .pill{white-space:nowrap;width:fit-content;margin-top:3px;display:block}.crm-table th:first-child{min-width:96px}.crm-table td{vertical-align:top;line-height:1.45}.crm-row-renew td:first-child{box-shadow:inset 3px 0 0 var(--red)}.crm-table .crm-excerpt{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:150px;display:inline-block;overflow:hidden}.crm-table .seg{white-space:nowrap;flex-wrap:nowrap;gap:5px}.crm-filter{align-items:flex-end;gap:10px;margin-bottom:8px}.crm-filter .crm-count{font-family:var(--font-data);padding-bottom:6px;font-size:11.5px}.crm-logs-wrap{overflow-x:auto}.crm-logs-wrap table{min-width:900px}.crm-logs-wrap td:first-child,.crm-logs-wrap td:nth-child(2),.crm-logs-wrap td:nth-child(3),.crm-logs-wrap td:nth-child(4),.crm-logs-wrap td:nth-child(6),.crm-logs-wrap td:nth-child(7),.crm-logs-wrap td:nth-child(8){white-space:nowrap}.table .crm-content{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:320px;display:inline-block;overflow:hidden}.crm-modal-backdrop{z-index:40;background:#141c266b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.crm-modal{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;width:min(720px,100%);max-height:88vh;padding:16px 18px 14px;overflow:auto;box-shadow:0 18px 40px #141e3247}.crm-modal-head{border-bottom:1px solid var(--paper-line);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.crm-modal-head h3{margin:0;font-size:14px}.crm-modal-head .mini{margin-left:auto}.crm-quick{align-items:center;gap:6px;margin:-2px 0 10px;display:flex}.crm-textarea{width:100%;display:block}.crm-textarea textarea{width:100%;font:inherit;color:var(--ink);border:1px solid var(--paper-line);border-radius:var(--r-sm);resize:vertical;background:#fff;padding:7px 9px;font-size:13px}.crm-textarea textarea:focus{border-color:var(--cyan);box-shadow:var(--focus);outline:none}.crm-modal-foot{border-top:1px solid var(--paper-line);align-items:center;gap:8px;margin-top:14px;padding-top:10px;display:flex}.crm-modal-foot .mute{font-size:11.5px}.crm-follow-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;display:grid}.crm-follow-item{text-align:left;border:1px solid var(--paper-line);border-left:3px solid var(--paper-line);border-radius:var(--r-md);cursor:pointer;background:#fff;flex-direction:column;gap:2px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.crm-follow-item:hover{border-color:var(--cyan);box-shadow:0 2px 8px #1428500f}.crm-follow-item .k{color:var(--ink-2);font-size:11.5px;font-weight:600}.crm-follow-item b{font-family:var(--font-data);color:var(--ink);font-size:15px;font-weight:600}.crm-follow-item .s{color:var(--ink-3);font-size:11px;line-height:1.5}.crm-follow-item.danger{border-left-color:var(--red);background:var(--red-wash)}.crm-follow-item.danger b{color:var(--red-deep)}.crm-follow-item.warn{background:#fff8ec;border-left-color:#e8a33d}.crm-follow-item.calm{border-left-color:var(--paper-line);background:#fff}.crm-follow-item.calm b{color:var(--ink-2)}.crm-follow-item.calm .k{color:var(--ink-3)}.crm-follow-item.calm:hover{border-color:var(--cyan)}@media (width<=900px){.crm-table .crm-excerpt,.table .crm-content{max-width:160px}}.reader-page .exam-paper{box-shadow:0 12px 26px #0006;margin:0!important}.reader-page[data-side=prev] .exam-paper{border-radius:3px 0 0 3px;box-shadow:inset -18px 0 22px -20px #00000080,0 12px 26px #0006}.reader-page[data-side=cur] .exam-paper{border-radius:0 3px 3px 0;box-shadow:inset 18px 0 22px -20px #00000080,0 12px 26px #0006}.reader-book.single .reader-page[data-side=cur] .exam-paper{border-radius:3px;box-shadow:0 14px 32px #00000073}.reader-page .reader-cap{color:var(--ink-2);font-size:12px}.reader-page .reader-empty.paper-reader-end{text-align:center;border:1px solid var(--paper-line);color:var(--ink-2);background:#fff;border-radius:0 3px 3px 0;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:12.5px;display:flex;box-shadow:0 12px 26px #0006}.exam-layout{grid-template-columns:clamp(360px,25vw,440px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1180px){.exam-layout{grid-template-columns:minmax(0,1fr)}}.exam-form{max-height:calc(100vh - 40px);position:sticky;top:12px;overflow:auto}.exam-form .f{margin-bottom:10px;display:block}.exam-form .f>span{color:var(--ink-2);margin-bottom:4px;font-size:12px;display:block}.exam-form .f input,.exam-form .f select,.exam-form .f textarea{width:100%}.exam-blocks{border:1px solid var(--paper-line);border-radius:var(--r-md);margin:6px 0 10px;overflow:hidden}.exam-blocks .row{border-bottom:1px dashed var(--paper-line);align-items:center;gap:8px;padding:5px 9px;font-size:12px;display:flex}.exam-blocks .row:last-child{border-bottom:none}.exam-blocks .row.on{background:var(--cyan-wash)}.exam-blocks .row b{font-weight:600}.exam-blocks .row .pts{font-family:var(--font-data);color:var(--ink-2);margin-left:auto}.exam-block-head,.exam-block-foot{align-items:center;gap:8px;margin:6px 0;font-size:12px;display:flex}.exam-block-head b{font-size:12.5px}.exam-blocks .row .nm{min-width:0;font:inherit;color:inherit;border-radius:var(--r-sm);background:0 0;border:1px solid #0000;flex:1;padding:2px 5px;font-weight:600}.exam-blocks .row .nm:hover,.exam-blocks .row .nm:focus{border-color:var(--paper-line);background:#fff;outline:none}.exam-blocks .row .num{width:46px;font:inherit;font-family:var(--font-data);text-align:center;color:inherit;border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;padding:2px 4px}.exam-blocks .row .num:focus{border-color:var(--cyan-deep);outline:none}.exam-blocks .row .x{color:var(--ink-3)}.exam-blocks .row .del{width:20px;height:20px;color:var(--ink-3);border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;margin-left:2px;padding:0;font-size:13px;line-height:1}.exam-blocks .row .del:hover{color:#c0392b;background:#fdf3f2;border-color:#e8b4ae}.exam-block-foot .grow{flex:1}.exam-block-foot .add-kind{height:26px;color:var(--ink-2);border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;padding:0 6px;font-size:12px}.exam-tpl-name{min-width:0;height:26px;font:inherit;border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;flex:1;padding:0 8px;font-size:12.5px}.exam-tpl-name:focus{border-color:var(--cyan-deep);outline:none}.exam-progress{border-radius:var(--r-sm);background:var(--cyan-wash);color:var(--cyan-deep);margin:8px 0;padding:8px 10px;font-size:12.5px}.exam-pending{border-radius:var(--r-sm);color:#8a6a1f;background:#fff8e6;border:1px solid #f0dcae;align-items:center;gap:8px;margin:8px 0 4px;padding:7px 10px;font-size:12.5px;line-height:1.5;display:flex}.exam-pending span{flex:1;min-width:0}.exam-history{margin-top:12px}.exam-history button{text-align:left;border:1px solid var(--paper-line);border-radius:var(--r-sm);cursor:pointer;background:#fff;width:100%;margin-bottom:4px;padding:6px 8px;font-size:12px;line-height:1.4;display:block}.exam-history button:hover{border-color:var(--cyan)}.exam-history button.on{border-color:var(--cyan);background:var(--cyan-wash)}.exam-history .t{color:var(--ink);font-weight:600;display:block}.exam-history .m{color:var(--ink-3);font-family:var(--font-data);font-size:11px}.bank-box.collapsed .bank-body,.exam-sheet.collapsed .sheet-body,.exam-block-head.collapsed+.blocks-body,.exam-history-box.collapsed .history-body{display:none}.bank-toggle,.exam-sheet-toggle,.exam-history-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 8px;padding:0;display:flex}.bank-toggle:hover b,.exam-sheet-toggle:hover b,.exam-history-toggle:hover b{color:var(--brand)}.bank-chev,.exam-sheet-toggle .chev,.exam-history-toggle .chev,.exam-block-toggle .chev{color:var(--ink-3);white-space:nowrap;font-size:11px}.exam-sheet{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:var(--paper-2,#f8f8f6);margin:6px 0 10px;padding:8px 10px}.exam-sheet-toggle{margin-bottom:0}.exam-sheet:not(.collapsed) .exam-sheet-toggle{margin-bottom:8px}.exam-block-toggle{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:0;display:flex}.exam-block-head.collapsed b{color:var(--ink)}.exam-submit{z-index:3;background:linear-gradient(to bottom, #fff0, var(--paper,#fff) 40%);padding:8px 0 2px;position:sticky;bottom:-1px}.exam-history-box{border-top:1px dashed var(--paper-line);margin-top:10px;padding-top:8px}.exam-history-box .exam-history{margin-top:0}.exam-tabs{border-radius:var(--r-md);background:var(--paper-2,#f1f1ee);gap:4px;margin:0 0 12px;padding:3px;display:flex}.exam-tabs button{font:inherit;color:var(--ink-2);text-align:left;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:1px;padding:6px 10px;font-size:13px;font-weight:500;display:flex}.exam-tabs button .mute{color:var(--ink-3);font-size:11px;font-weight:400}.exam-tabs button.on{color:var(--ink);background:var(--paper,#fff);border:1px solid var(--paper-line)}.exam-tabs button.on .mute,.exam-tabs button:hover b{color:var(--brand)}.exam-tabpane.is-hidden{display:none}.exam-more{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:var(--paper-2,#f8f8f6);margin:6px 0 10px;padding:8px 10px}.exam-more-toggle{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;padding:0;display:flex}.exam-more:not(.collapsed) .exam-more-toggle{margin-bottom:8px}.exam-more.collapsed .more-body{display:none}.exam-more-toggle .chev{color:var(--ink-3);white-space:nowrap;font-size:11px}.exam-more-toggle:hover b{color:var(--brand)}.exam-history-box.right{border:1px solid var(--paper-line);border-radius:var(--r-md);background:var(--paper,#fff);margin:0 0 12px;padding:10px 12px}.exam-paper-stage{background:var(--board);border-radius:var(--r-md);flex-direction:column;align-items:center;gap:14px;padding:18px;display:flex;overflow:auto}.exam-paper{--paper-fs:11pt;color:#111;font-family:var(--font-ui);font-size:var(--paper-fs);background:#fff;flex-direction:column;line-height:1.62;display:flex;position:relative;box-shadow:0 14px 32px #00000073}.exam-paper.a4{width:210mm;height:297mm;padding:14mm 15mm 12mm}.exam-paper.a3{transform-origin:0 0;width:420mm;height:297mm;padding:12mm 14mm 10mm}.exam-paper-body{flex:1;gap:10mm;min-height:0;display:flex}.exam-paper.a3 .exam-paper-body{gap:9mm}.exam-col{flex:1;min-width:0;overflow:hidden}.exam-col-rule{border-left:1px dashed #b9c2cc;width:0}.exam-paper-head{text-align:center;margin-bottom:4mm}.exam-paper-head .school{letter-spacing:.32em;color:#2a2a2a;font-size:.92em}.exam-paper-head h1{letter-spacing:.06em;margin:1.2mm 0 2mm;font-size:1.62em;font-weight:700}.exam-paper-head .meta{color:#333;flex-wrap:wrap;justify-content:center;gap:6mm;font-size:.92em;display:flex}.exam-paper-head .exam-fill{text-align:center;border-bottom:1px solid #555;min-width:26mm;padding:0 1mm;display:inline-block}.exam-paper-head .exam-score{border-collapse:collapse;table-layout:fixed;border:1px solid #333;width:100%;margin-top:2.6mm}.exam-paper-head .exam-score th,.exam-paper-head .exam-score td{text-align:center;border:1px solid #333;height:7mm;padding:1.1mm 0;font-size:.88em}.exam-paper-head .exam-score th{background:#f2f4f6;font-weight:600}.exam-paper-note{color:#444;text-align:left;margin-top:1.6mm;font-size:.86em}.exam-sec{align-items:baseline;gap:2mm;margin:3.2mm 0 1.6mm;font-size:1.02em;font-weight:700;display:flex}.exam-sec .pt{color:#555;margin-left:auto;font-size:.86em;font-weight:400}.exam-sec-hint{color:#555;font-size:.86em;font-weight:400}.exam-q{break-inside:avoid;margin:0 0 1.8mm}.exam-cont{color:#777;margin-right:.3em;font-size:.82em}.exam-q .no{margin-right:.4em;font-weight:600}.exam-q .exam-opts{flex-wrap:wrap;gap:1.2mm 6mm;margin-top:.6mm;padding-left:1.2em;display:flex}.exam-q .exam-opts>span{flex:none;min-width:22mm;max-width:100%}.exam-paper .math{white-space:nowrap}.exam-q .exam-blank{border-bottom:1px solid #666;height:6mm;margin:1.2mm 0 0 1.2em;display:block}.exam-q .exam-work{border-bottom:1px dotted #999;height:16mm;margin:1mm 0 0 1.2em}.exam-q.script{color:#333}.exam-q.script .en{font-family:Times New Roman,Georgia,serif}.exam-paper-foot{color:#666;border-top:1px solid #ccc;justify-content:space-between;margin-top:auto;padding-top:2mm;font-size:.8em;display:flex}.exam-seal{border-right:1px dashed #999;justify-content:center;align-items:center;width:8mm;display:flex;position:absolute;top:34mm;bottom:20mm;left:4mm}.exam-seal span{writing-mode:vertical-rl;color:#666;letter-spacing:.4em;font-size:.8em;transform:rotate(180deg)}.exam-paper.exam-answers .exam-sec{color:#0a6b4a}.exam-paper.exam-answers .exam-q .ans{color:#0a6b4a;font-weight:600}.exam-paper-zoom{transform-origin:top}.exam-print-only{display:none}@media print{html,body,#root{background:#fff;height:auto;overflow:visible}body *{visibility:hidden}.exam-doc,.exam-doc *{visibility:visible}.exam-doc{background:#fff;position:absolute;top:0;left:0;width:auto!important;height:auto!important;display:block!important}.exam-paper{box-shadow:none;page-break-after:always;break-after:page;overflow:hidden;height:296mm!important;margin:0!important}.exam-paper.a3{width:419mm!important}.exam-paper:last-child{page-break-after:auto;break-after:auto}.exam-paper-zoom{transform:none!important}}.bank-box{border:1px dashed var(--line-strong,var(--line));background:var(--paper-2,var(--surface-2));border-radius:10px;margin:2px 0 12px;padding:10px 10px 12px}.bank-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.bank-head>b{font-size:13px}.bank-head>.mute{font-size:11px}.bank-row{gap:8px;display:flex}.bank-units{grid-template-columns:1fr 1fr;gap:4px;margin:2px 0 8px;display:grid}.bank-unit{border:1px solid var(--line-faint,var(--line));background:var(--paper,#fff);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:5px 7px;font-size:12px;transition:border-color .12s,background .12s;display:flex}.bank-unit:hover{border-color:var(--line-strong,var(--line))}.bank-unit.on{border-color:var(--brand);background:var(--brand-soft)}.bank-unit>input{flex:none;margin:0}.bank-unit>.t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.bank-unit>.n{color:var(--ink-3);flex:none;font-size:11px}.bank-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.bank-actions>.mute{font-size:11px}.bank-diff{color:var(--ink-3);align-items:center;gap:4px;font-size:11px;display:inline-flex}.bank-diff select{border:1px solid var(--line-faint,var(--line));color:var(--ink);background:#fff;border-radius:4px;padding:2px 4px;font-family:inherit;font-size:11px}.bank-assign{border-top:1px solid var(--line-faint,var(--line));margin-top:10px;padding-top:10px}.bank-sep{color:var(--ink-3);align-items:center;gap:8px;margin:12px 0 10px;font-size:11px;display:flex}.bank-sep:before,.bank-sep:after{content:"";border-top:1px solid var(--line-faint,var(--line));flex:1}.exam-print-bar{z-index:3;background:var(--brand-soft);border:1px solid var(--line-faint,var(--line));border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex;position:sticky;top:0}.exam-print-bar .hint{color:var(--ink-3);margin-left:auto;font-size:12px}@media (width<=720px){.exam-print-bar .hint{flex-basis:100%;margin-left:0}}.bank-own{border:1px dashed var(--line-strong,var(--line));border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 10px;padding:8px 10px;display:flex}.bank-own .mute{font-size:11px}.exam-skill-hint{background:var(--edu-brand-soft,#1f9e8a0f);border:1px solid #1f9e8a38;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;padding:7px 9px;font-size:11.5px;line-height:1.5;display:flex}.exam-skill-hint .k{color:var(--edu-ink-2);letter-spacing:.04em}.exam-skill-hint .tag{color:var(--edu-brand-deep,#157a6a);background:#fff;border:1px solid #1f9e8a4d;border-radius:999px;padding:1px 7px;font-size:11px}.exam-skill-hint button.tag{cursor:pointer;font-family:inherit;line-height:1.6}.exam-skill-hint button.tag:hover{border-color:var(--edu-brand-deep,#157a6a);background:#f1fbf8}.exam-skill-hint .skill-add{height:22px;color:var(--edu-brand-deep,#157a6a);cursor:pointer;background:#fff;border:1px dashed #1f9e8a80;border-radius:999px;padding:0 6px;font-family:inherit;font-size:11px}.exam-skill-hint .skill-add:hover{border-style:solid}.exam-skill-hint .mute{color:var(--edu-ink-2);font-size:10.5px}.exam-used-skills{color:var(--edu-ink-2);margin-left:auto;font-size:10.5px}.bank-hint{color:var(--ink-3);margin-top:6px;font-size:11px;line-height:1.6}.bank-hint b{color:var(--ink)}.bank-adopt{color:var(--brand-deep);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-family:inherit;font-size:11px;text-decoration:underline}.bank-adopted{color:var(--ok)}.score-capture{margin-bottom:12px}.score-capture .form-row{padding:8px 12px}.score-pick-head{color:var(--ink-2);margin:6px 2px;font-size:12px}.score-pick{border:1px solid var(--paper-line);border-radius:var(--r-md);background:var(--paper);max-height:260px;overflow:auto}.score-pick-grp+.score-pick-grp{border-top:1px dashed var(--paper-line)}.score-pick-grp .grp-head{border-bottom:1px solid var(--paper-line);background:#fff;padding:5px 10px;font-size:12px}.score-pick .line{grid-template-columns:minmax(0,1fr) 120px 160px;align-items:center;gap:8px;padding:5px 10px;font-size:13px;display:grid}.score-pick .line.on{background:var(--cyan-wash);box-shadow:inset 3px 0 0 var(--cyan)}.score-pick .line .pick{cursor:pointer;align-items:baseline;gap:6px;min-width:0;display:flex}.score-pick .line .pick .p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.score-pick .line .ans{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.score-pick .line .wrong-ans{padding:2px 6px;font-size:12px}.score-pick-foot{align-items:center;padding:8px 12px 2px}.score-summary{border:1px solid var(--paper-line);border-left:4px solid var(--cyan);border-radius:var(--r-md);background:var(--cyan-wash);flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:10px;padding:10px 12px;font-size:13px;display:flex}.score-summary .s{color:var(--cyan-deep);font-weight:600}.score-mastery{margin-bottom:14px}.score-mastery .m-row{grid-template-columns:70px minmax(60px,140px) minmax(0,1fr);align-items:center;gap:10px;padding:3px 0;font-size:12px;display:grid}.score-mastery .m-row .s{font-weight:600}.score-mastery .track{background:var(--paper-line);border-radius:999px;height:8px;overflow:hidden}.score-mastery .track i{background:var(--red);border-radius:999px;min-width:4px;height:100%;display:block}.score-mastery .n{color:var(--ink-2)}.score-trend{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;align-items:flex-end;gap:10px;margin-bottom:8px;padding:10px 12px 4px;display:flex}.score-trend .t{font-family:var(--font-data);color:var(--ink-2);flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.score-trend .t .bar{background:linear-gradient(180deg, var(--cyan), var(--cyan-deep));border-radius:3px 3px 0 0;width:18px}.score-trend .t .v{color:var(--ink)}.score-trend .t .d{color:var(--ink-3)}.score-entry{border:1px solid var(--paper-line);border-left:3px solid var(--cyan);border-radius:var(--r-md);background:#fbfcfd;margin:0 0 12px;padding:9px 12px}.score-entry-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:7px;display:flex}.score-entry-head b{font-size:13px}.score-entry-head .mute{font-size:11px}.score-entry .form-row{align-items:flex-end;margin:0}.score-entry .btn{flex:none;height:32px}.leads{flex-direction:column;gap:12px;width:100%;padding-top:14px;display:flex}.leads-head{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.leads-head h2{margin:0 0 3px}.leads-head p{max-width:760px;color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.6}.leads-head .mini{flex:none;margin-left:auto}.leads-stats{flex-wrap:wrap;gap:6px;display:flex}.leads-stat{border:1px solid var(--paper-line);border-radius:var(--r-md);cursor:pointer;background:#fff;align-items:baseline;gap:7px;padding:7px 11px;display:flex}.leads-stat span{color:var(--ink-2);font-size:11.5px}.leads-stat b{font-family:var(--font-data);color:var(--ink);font-size:16px}.leads-stat.active{border-color:var(--red);background:var(--red-wash)}.leads-stat.active b{color:var(--red-deep)}.leads-filters{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;flex-wrap:wrap;align-items:flex-end;gap:10px;padding:9px 12px;display:flex}.leads-filters label{color:var(--ink-2);flex-direction:column;gap:3px;font-size:11.5px;display:flex}.leads-filters .grow{flex:220px}.leads-msg,.leads-err{border-radius:var(--r-sm);margin-left:auto;padding:4px 8px;font-size:12px}.leads-msg{color:#177a51;background:#eef9f1}.leads-err{background:var(--red-wash);color:var(--red-deep)}.leads-grid{grid-template-columns:minmax(0,1.62fr) minmax(340px,.78fr);align-items:start;gap:12px;width:100%;display:grid}.leads-list{min-width:0;padding:6px 8px 10px}.leads-list tbody tr{cursor:pointer}.leads-list tbody tr.is-current{background:var(--red-wash)}.leads-chips,.leads-tags{flex-wrap:wrap;gap:4px;display:flex}.leads-chips span,.leads-tags span{color:#4f6b80;white-space:nowrap;background:#eef3f7;border-radius:999px;padding:1px 6px;font-size:10.5px}.leads-tags span{background:var(--paper-2,#f5f3ee);color:var(--ink-2);font-size:11.5px}.leads-tags span.ghost{border:1px solid var(--paper-line);background:0 0}.leads-status{color:#4f6b80;white-space:nowrap;background:#eef3f7;border-radius:999px;padding:1px 6px;font-size:10.5px;font-weight:600;display:inline-block}.leads-status.new{color:#9a6412;background:#fff4e5}.leads-status.meeting,.leads-status.proposal{color:#25628f;background:#eaf4ff}.leads-status.won{color:#177a51;background:#eef9f1}.leads-status.lost{color:#7a7a7a;background:#f2f2f2}.leads-detail{flex-direction:column;gap:9px;min-height:360px;padding:12px 14px;display:flex}.leads-detail-head{align-items:flex-start;gap:8px;display:flex}.leads-detail-head h3{margin:0 0 2px;font-size:16px}.leads-detail-head p{margin:0;font-size:11.5px}.leads-detail-head .leads-status{margin-left:auto}.leads-contact{flex-wrap:wrap;gap:6px;display:flex}.leads-note{border-left:3px solid var(--red);background:var(--red-wash);border-radius:0 var(--r-md) var(--r-md) 0;margin:0;padding:8px 10px;font-size:12.5px;line-height:1.6}.leads-form{grid-template-columns:1fr 1fr;gap:8px;display:grid}.leads-form label,.leads-note-edit{color:var(--ink-2);flex-direction:column;gap:3px;font-size:11.5px;display:flex}.leads-note-edit{margin-top:2px}.leads-actions{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.leads-empty{text-align:center;color:var(--ink-2);flex-direction:column;gap:4px;margin:auto;padding:26px;font-size:12.5px;display:flex}.leads-empty b{color:var(--ink);font-size:14px}@media (width<=1180px){.leads-grid{grid-template-columns:1fr}}.ml-wrap{grid-template-columns:clamp(340px,24vw,420px) minmax(0,1fr);align-items:start;gap:14px;display:grid}@media (width<=1000px){.ml-wrap{grid-template-columns:minmax(0,1fr)}}.ml-up{border:1px solid var(--paper-line);border-radius:var(--r-md);background:var(--paper);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.ml-up code{font-family:var(--font-data);color:var(--ink);font-size:11px}.ml-dot{background:var(--ink-3);border-radius:50%;width:8px;height:8px}.ml-dot.on{background:#2f9e6f}.ml-dot.off{background:var(--red)}.ml-form{flex-direction:column;gap:10px;display:flex}.ml-form label{color:var(--ink-2);flex-direction:column;gap:4px;font-size:12px;display:flex}.ml-form select,.ml-form input,.ml-form textarea{font:inherit;border:1px solid var(--paper-line);border-radius:var(--r-sm);color:var(--ink);background:#fff;padding:6px 8px;font-size:13px}.ml-form textarea{resize:vertical;min-height:62px}.ml-hint{color:var(--ink-3);font-size:11px;line-height:1.5}.ml-list{flex-direction:column;gap:10px;display:flex}.ml-card{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;padding:10px 12px}.ml-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ml-card-head b{font-size:14px}.ml-meta{color:var(--ink-3);margin:4px 0 0;font-size:12px}.ml-focus{color:var(--ink-2);margin:6px 0 0;font-size:12px}.ml-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ml-bar{background:var(--paper-line);border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.ml-bar>i{background:var(--cyan);height:100%;transition:width .4s;display:block}.ml-err{border-radius:var(--r-sm);background:var(--red-wash);color:var(--red-deep);word-break:break-all;margin:8px 0 0;padding:6px 8px;font-size:12px}.ml-req{border-radius:var(--r-sm);background:var(--paper);max-height:220px;font-family:var(--font-data);white-space:pre-wrap;color:var(--ink-2);margin:8px 0 0;padding:8px;font-size:11px;overflow:auto}.ml-tag{background:var(--paper-line);color:var(--ink-2);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.ml-tag-succeeded{color:#24724f;background:#2f9e6f24}.ml-tag-failed{background:var(--red-wash);color:var(--red-deep)}.ml-tag-running,.ml-tag-queued{color:var(--cyan-deep);background:#3aa5c429}.ml-link{font-family:var(--font-data);color:var(--cyan-deep);word-break:break-all;font-size:11px}.og{flex-direction:column;gap:12px;display:flex}.og-empty{color:var(--ink-3);padding:22px;font-size:12.5px}.og-head h1{color:var(--ink);margin:0 0 4px;font-size:19px}.og-head p{color:var(--ink-2);margin:0;font-size:12.5px}.og-note{border-left:3px solid var(--paper-line);border-radius:var(--r-sm);color:var(--ink-2);background:#fff;padding:8px 11px;font-size:12.5px}.og-ok,.og-err{border-radius:var(--r-sm);border-left:3px solid;align-items:center;gap:10px;padding:8px 11px;font-size:12.5px;line-height:1.5;display:flex}.og-ok{color:#1d5c46;background:#eefaf3;border-color:#2f9a72}.og-err{color:#7d1f18;background:var(--red-wash);border-color:var(--red)}.og-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:12px;display:grid}.og-wide{grid-column:1/-1}.og-field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.og-field:last-child{margin-bottom:0}.og-field>span{letter-spacing:.06em;color:var(--ink-2);font-size:11.5px;font-weight:600}.og-field input,.og-field textarea{border:1px solid var(--paper-line);border-radius:var(--r-sm);width:100%;font-family:var(--font-ui);color:var(--ink);resize:vertical;background:#fff;padding:7px 9px;font-size:13px}.og-field input:focus,.og-field textarea:focus{border-color:var(--cyan);box-shadow:var(--focus);outline:none}.og-field input:disabled,.og-field textarea:disabled{color:var(--ink-2);cursor:default;background:#f7f8f9}.og-hint{letter-spacing:0;color:var(--ink-3);margin-left:4px;font-style:normal;font-weight:400}.og-facts{flex-wrap:wrap;gap:8px 22px;margin:0 0 10px;display:flex}.og-facts:last-child{margin-bottom:0}.og-facts>div{min-width:96px}.og-facts dt{letter-spacing:.06em;color:var(--ink-3);font-size:11px}.og-facts dd{font-family:var(--font-data);color:var(--ink);margin:2px 0 0;font-size:15px}.og-muted{color:var(--ink-3);margin:0;font-size:12px;line-height:1.7}.og-mono{font-family:var(--font-data);color:var(--ink-2)}.og-link{color:var(--cyan-deep);margin:0 2px}.og-actions{align-items:center;gap:12px;display:flex}.og .og-save{background:var(--sheet-line);border-color:var(--sheet-line);color:#fff}.og .og-save:hover:not(:disabled){color:#fff;background:#1f4466;border-color:#1f4466}.prep-reader-sheet{--fs:11.6px;overflow:hidden}.prep-reader-cont{color:#a6342b;border-bottom:1px solid #c0392b;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:1.6mm;display:flex}.prep-reader-cont b{letter-spacing:.02em;font-size:1.08em}.prep-reader-cont span{color:#7a6560;flex:none;font-size:.86em}.prep-reader-body{flex:auto;min-height:0;overflow:hidden}.prep-reader-pager{border:1px solid var(--paper-line);font-family:var(--font-data);color:var(--ink-2);background:#fff;border-radius:999px;align-items:baseline;gap:4px;padding:1px 9px;font-size:12.5px;display:inline-flex}.prep-reader-pager i{color:var(--ink-3);font-style:normal}.prep-reader-hint{font-size:11px}.prep-zoom{border:1px solid var(--paper-line);background:#fff;border-radius:999px;align-items:center;gap:2px;padding:1px 3px;display:inline-flex}.prep-zoom .mini{background:0 0;border:0;min-width:26px;padding:2px 6px}.prep-zoom .prep-zoom-val{font-family:var(--font-data);color:var(--ink-2);cursor:pointer;font-size:12px}.prep-zoom .prep-zoom-val:disabled{cursor:default;color:var(--ink-3)}.reader-book.single .sheet.prep-reader-sheet{border-radius:3px;box-shadow:0 12px 30px #00000073}.prep-reader-end{border:1px solid var(--paper-line);color:var(--ink-2);background:#fff;border-radius:0 3px 3px 0;font-size:12.5px;box-shadow:0 12px 26px #0006}@media (width<=1100px){.prep-reader-hint{display:none}}.pbp{border:1px solid var(--paper-line);border-left:3px solid var(--brand);border-radius:var(--r-md);background:var(--brand-soft);margin:0 0 10px;padding:7px 10px}.pbp-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pbp-head b{letter-spacing:.02em;color:var(--ink);flex:none;font-size:12.5px}.pbp-head select{border:1px solid var(--paper-line);border-radius:var(--r-xs);min-width:0;color:var(--ink);font-family:var(--font-ui);background:#fff;padding:3px 6px;font-size:12px;line-height:1.5}.pbp-head select:disabled{color:var(--ink-3);background:0 0}.pbp-book{flex:none;max-width:172px}.pbp-unit{flex:150px;max-width:260px}.pbp-head .mini{flex:none}.pbp-meta{color:var(--ink-2);margin:5px 0 0;font-size:11.5px;line-height:1.55}.pbp-dim{color:var(--ink-3)}.pbp-near{color:var(--amber);margin-top:2px;font-style:normal;font-weight:600;display:block}.pbp-msg{border-radius:var(--r-xs);background:var(--ok-soft);color:var(--brand-deep);margin:5px 0 0;padding:4px 8px;font-size:11.5px;line-height:1.55}.pbp-msg.bad{background:var(--warn-soft);color:var(--warn-deep)}.pbp-err{color:var(--warn-deep);font-size:11.5px}.pbp-recent{flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px;display:flex}.pbp-cap{color:var(--ink-3);font-size:11px}.pbp-chip{border:1px solid var(--paper-line);border-radius:var(--r-pill);max-width:220px;color:var(--ink-2);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#fff;align-items:baseline;gap:4px;padding:1px 7px;font-family:inherit;font-size:11px;line-height:1.6;display:inline-flex;overflow:hidden}.pbp-chip:disabled{cursor:default}.pbp-chip.is-open{border-color:var(--brand-deep);background:var(--brand-soft)}.pbp-chip em{font-size:10.5px;font-style:normal;font-weight:700}.pbp-chip.done{border-color:var(--ok);color:var(--ink-3);background:var(--ok-soft)}.pbp-chip.done em{color:var(--ok)}.pbp-chip.overdue{border-color:var(--warn);background:var(--warn-soft);color:var(--warn-deep)}.pbp-chip.overdue em{color:var(--warn-deep)}.pbp-chip.open em{color:var(--amber)}.pbp-last{width:100%;color:var(--ink-2);text-align:left;background:0 0;border:0;margin:4px 0 0;padding:0;font-family:inherit;font-size:11.5px;line-height:1.55;display:block}.pbp-last.clickable{cursor:pointer}.pbp-last.clickable:hover{color:var(--ink)}.pbp-last:disabled{cursor:default}.pbp-last b{font-weight:600}.pbp-last.weak b{color:var(--warn-deep)}.pbp-last.fair b{color:var(--amber)}.pbp-last.good b{color:var(--ok)}.pbp-detail{border:1px solid var(--paper-line);border-left:3px solid var(--brand);border-radius:var(--r-md);background:#fff;margin-top:6px;padding:8px 10px}.pbp-detail-head{color:var(--ink-2);align-items:baseline;gap:8px;font-size:11.5px;display:flex}.pbp-detail-head b{color:var(--ink);font-size:12.5px}.pbp-detail-x{color:var(--ink-3);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-family:inherit;font-size:11px}.pbp-detail-x:hover{color:var(--ink)}.pbp-kps{gap:4px;margin:7px 0 0;padding:0;list-style:none;display:grid}.pbp-kp{color:var(--ink-2);font-size:11.5px}.pbp-kp-row{align-items:center;gap:8px;display:flex}.pbp-kp-why{color:var(--ink-3);margin:1px 0 0 2px;padding-bottom:2px;font-size:10.5px;display:block}.pbp-kp-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.pbp-kp-bar{background:var(--paper-line);border-radius:2px;flex:0 0 56px;height:4px;overflow:hidden}.pbp-kp-bar i{background:var(--ok);height:100%;display:block}.pbp-kp-num{text-align:right;color:var(--ink-3);font-variant-numeric:tabular-nums;flex:0 0 44px}.pbp-kp.weak .pbp-kp-name{color:var(--warn-deep);font-weight:600}.pbp-kp.weak .pbp-kp-bar i{background:var(--warn)}.pbp-kp.weak .pbp-kp-num{color:var(--warn-deep)}.pbp-note{color:var(--ink-3);margin:6px 0 0;font-size:11px;line-height:1.5}.pbp-note.bad{color:var(--warn-deep)}.pbp-wrongbox{border-top:1px dashed var(--paper-line);margin-top:8px;padding-top:7px}.pbp-wrong-btn{color:var(--brand-deep);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-family:inherit;font-size:11px;text-decoration:underline}.pbp-wrong-btn:hover{color:var(--ink)}.pbp-wrong-list{counter-reset:wq;gap:7px;max-height:260px;margin:7px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.pbp-wrong-list>li{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fcfcfb;padding:6px 8px}.pbp-wrong-q{color:var(--ink);white-space:pre-line;word-break:break-word;margin:0;font-size:11.5px;line-height:1.55}.pbp-wrong-a{color:var(--warn-deep);margin:3px 0 0;font-size:11px}.pbp-wrong-e{color:var(--ink-3);white-space:pre-line;word-break:break-word;margin:3px 0 0;font-size:11px;line-height:1.55}.dxq{border:1px solid var(--paper-line);border-left:3px solid var(--ink-3);border-radius:var(--r-md);background:#fff;margin:0 0 10px;padding:7px 10px}.dxq.is-open{border-left-color:var(--brand)}.dxq-head{text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;width:100%;padding:0;font-family:inherit;display:flex}.dxq-head b{letter-spacing:.02em;color:var(--ink);flex:none;font-size:12.5px}.dxq-sub{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-3);flex:auto;font-size:11.5px;overflow:hidden}.dxq-head em{color:var(--brand-deep);flex:none;font-size:11px;font-style:normal}.dxq-body{margin-top:7px}.dxq-tabs{align-items:center;gap:6px;display:flex}.dxq-tab{border:1px solid var(--paper-line);border-radius:var(--r-pill);color:var(--ink-2);cursor:pointer;background:#fff;padding:2px 9px;font-family:inherit;font-size:11px}.dxq-tab.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-deep)}.dxq-hint{color:var(--ink-3);margin-left:auto;font-size:10.5px}.dxq-group{margin-top:7px}.dxq-grade{color:var(--ink-3);letter-spacing:.04em;margin-bottom:3px;font-size:10.5px;display:block}.dxq-chips{flex-wrap:wrap;gap:4px;max-height:88px;display:flex;overflow-y:auto}.dxq-chip{border:1px solid var(--paper-line);border-radius:var(--r-pill);max-width:100%;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:#fff;padding:1px 8px;font-family:inherit;font-size:11px;line-height:1.7;overflow:hidden}.dxq-chip:hover{border-color:var(--brand)}.dxq-chip.on{border-color:var(--warn);background:var(--warn-soft);color:var(--warn-deep);font-weight:600}.dxq-more{color:var(--ink-3);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;margin-top:6px;padding:0;font-family:inherit;font-size:11px;text-decoration:underline}.dxq-actions{align-items:center;gap:8px;margin-top:9px;display:flex}.dxq-clear{color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:11px}.dxq-clear:hover{color:var(--ink)}.dxq-note{color:var(--ink-3);margin:6px 0 0;font-size:11px;line-height:1.55}.dxq-note.bad{color:var(--warn-deep)}.dxq-result{border:1px solid var(--paper-line);border-left:3px solid var(--warn);border-radius:var(--r-md);background:var(--warn-soft);margin-top:9px;padding:8px 10px}.dxq-summary{color:var(--warn-deep);margin:0;font-size:11.5px;line-height:1.55}.dxq-cap{color:var(--ink-2);margin-top:6px;font-size:10.5px;display:block}.dxq-chain{color:var(--ink);margin:5px 0 0;padding-left:16px;font-size:11.5px}.dxq-chain li{margin:2px 0;line-height:1.5}.dxq-chain b{font-weight:600}.dxq-chain em{color:var(--ink-3);margin-left:6px;font-size:10.5px;font-style:normal}.prep{background:var(--board);flex-direction:column;flex:auto;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.prep-grow{flex:1;min-width:0}.prep-grid{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:clamp(300px,21vw,380px) minmax(0,1fr) clamp(560px,42vw,820px);min-height:0;display:grid}.prep .banner.notice{color:#245c33;background:#f1faf3;border-color:#bfe3c8}.prep .banner.warn{color:#7a4a1c;background:#fff6ec;border-color:#f0c9a8}.prep-card{text-align:left;align-items:flex-start}.prep-last{font-family:var(--font-data);color:var(--ink-3);font-size:10px}.prep-att{margin-top:3px;display:block}.prep-att em{background:var(--red-wash);font-family:var(--font-ui);color:var(--red-deep);border:1px solid #f3d6d2;border-radius:999px;margin:0 4px 2px 0;padding:0 6px;font-size:10px;font-style:normal;display:inline-block}.prep-hw{flex-wrap:wrap;align-items:center;gap:4px;margin-top:5px;display:flex}.prep-hw.attention .cap{color:var(--red,#c0392b);font-weight:600}.prep-hw .cap{color:var(--ink-3);font-size:10px}.prep-hw .mini{padding:3px 7px;font-size:11px}.prep-hw .mini.active{border-color:var(--cyan);background:var(--cyan-wash);color:var(--cyan-deep)}.prep-hw-note{flex:1;min-width:60px;padding:3px 6px!important;font-size:11px!important}.mark.prep-none i{border-style:dashed}.mark.prep-ready i{background:#2f7d3f;border-color:#2f7d3f}.mark.prep-edited i{background:var(--red);border-color:var(--red)}.pill.prep-state{border:1px solid var(--paper-line);border-radius:999px;flex:none;padding:1px 8px;font-size:11px}.pill.prep-state.prep-none{color:var(--ink-3);border-color:#d7dde3}.pill.prep-state.prep-ready{color:#245c33;background:#f1faf3;border-color:#bfe3c8}.pill.prep-state.prep-edited{background:var(--red-wash);color:var(--red-deep);border-color:#f3d6d2}.prep-bar{border-bottom:1px solid var(--paper-line);background:#fff;align-items:center;gap:10px;padding:10px 16px;display:flex}.prep-who{flex:1;min-width:0}.prep-who b{color:var(--ink);font-size:13.5px;display:block}.prep-who .mute{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;display:block;overflow:hidden}.prep-meta{border-bottom:1px solid var(--paper-line);font-family:var(--font-data);color:var(--ink-3);background:#fff;flex-wrap:wrap;gap:4px 14px;padding:7px 16px;font-size:10.5px;display:flex}.prep-meta b{color:var(--ink-2);font-weight:600}.prep-actions{border-bottom:1px solid var(--paper-line);background:#fff;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 16px;display:flex}.prep-actions .btn{flex:none}.prep-note-input{flex:1;min-width:150px;padding:6px 9px!important;font-size:11.5px!important}.prep-wait{background:var(--cyan-wash);border-bottom:1px solid var(--paper-line);color:var(--cyan-deep);margin:0;padding:8px 16px;font-size:11.5px}.prep-spin{vertical-align:-1px;border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;width:10px;height:10px;margin-right:5px;animation:.8s linear infinite prep-spin;display:inline-block}.prep-spin.dark{border-color:#d2453a4d;border-top-color:var(--red)}@keyframes prep-spin{to{transform:rotate(360deg)}}.prep-hist{border-bottom:1px solid var(--paper-line);background:#fff;padding:8px 16px}.prep-recent{border-top:1px dashed var(--paper-line);max-width:46ch;margin-top:14px;padding-top:12px}.prep-recent .cap{color:var(--ink-3);margin-bottom:8px;font-size:11px;display:block}.prep-recent ul{flex-direction:column;gap:6px;margin:0 0 8px;padding:0;list-style:none;display:flex}.prep-recent li{margin:0}.prep-recent button.mini{text-align:left;white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.prep-recent .mute{font-size:11px}.prep-hist-body{max-height:36vh;padding-top:6px;overflow:auto}.prep-hist-table th,.prep-hist-table td{padding:5px 6px;font-size:11.5px}.prep-hist-table td .mute{white-space:nowrap;font-size:10.5px}.prep-hist-flag{background:var(--red-wash);color:#7d2a20;border-bottom:1px solid #f3d6d2;align-items:center;gap:8px;padding:7px 16px;font-size:11.5px;display:flex}.prep-hist-flag b{color:var(--red-deep)}.prep-hist-flag .mini{flex:none}.prep-lbl{align-items:baseline;gap:6px;display:flex!important}.prep-hint{font-style:normal;font-family:var(--font-data);color:var(--ink-3);font-size:10px;font-weight:400}.prep-minutes input{width:110px}.prep-count{margin-top:4px}.prep-item .cap{align-items:center;margin-bottom:0}.prep-no{font-family:var(--font-data);letter-spacing:.06em;color:var(--cyan-deep);font-size:11px;font-weight:700}.prep-item>input,.prep-item>textarea{margin-top:6px}.prep-item>textarea{min-height:54px}.sheet.prep-sheet{--fs:11.6px;--sheet-paper:#fff;--sheet-row:#fff;--sheet-label:#fdf1ef;--sheet-head:#f7dcd9;--sheet-line:#c0392b;color:#241d1c;gap:2.6mm;padding:10mm 12mm 8mm;overflow:hidden}.prep-sheet .sheet-head .htitle{letter-spacing:.3em;color:var(--red);opacity:1;font-size:1.24em}.prep-sheet .sheet-title{color:#a6342b;font-size:1.78em}.prep-sheet .title-block .rule{border-top:1.2px solid #c0392b}.prep-sheet .title-block .rule:after{border-top:.5px solid #e7b8b2}.prep-sheet .sheet-who{margin-top:3.4mm;font-size:.98em}.prep-sheet .sheet-who .cap{color:#b5796f}.prep-sheet .sheet-who .val{color:#5a1f19}.prep-sheet .sheet-who .val.name{border-bottom:1.4px solid #daa49d}.prep-sheet .sheet-foot .line-1{color:#a6342b}.prep-sheet .sheet-foot .promo{color:#9c8480}.prep-body{flex-direction:column;flex:1;gap:2.3mm;min-height:0;display:flex;overflow:hidden}.prep-sec{break-inside:avoid}.prep-sec-t{font-family:var(--font-ui);letter-spacing:.14em;color:#a6342b;border-bottom:1px solid #ecc9c4;align-items:baseline;gap:.5em;margin:0 0 1mm;padding-bottom:.5mm;font-size:1.06em;font-weight:700;display:flex}.prep-sec-t:before{content:"■";color:var(--red);font-size:.58em}.prep-sec-t em{font-style:normal;font-family:var(--font-data);letter-spacing:.02em;color:#b5796f;font-size:.78em;font-weight:600}.prep-ol{margin:0;padding:0;list-style:none}.prep-ol li{font-family:var(--font-song);gap:.55em;margin:.1em 0;font-size:1.05em;line-height:1.5;display:flex}.prep-ol li .n,.prep-teach .n{height:1.45em;font-family:var(--font-ui);font-variant-numeric:tabular-nums;color:#a6342b;background:#fbe6e3;border-radius:50%;flex:0 0 1.45em;justify-content:center;align-items:center;margin-top:.16em;font-size:.8em;font-weight:700;display:inline-flex}.prep-ol li .t{flex:1;min-width:0}.prep-ol li .ans{color:#8a3a30;border-left:2px solid #f0d3cf;margin-top:.12em;padding-left:.2em;font-size:.93em;display:block}.prep-teach{font-family:var(--font-song);margin:.3mm 0 1.1mm;font-size:1.05em;line-height:1.5}.prep-teach .pt-point{font-family:var(--font-ui);color:#7d2a20;gap:.55em;font-weight:700;display:flex}.prep-teach .pt-line{color:#3d2c29;padding-left:2em;font-size:.96em}@media (width<=1280px){.prep-grid{grid-template-rows:minmax(0,3fr) minmax(0,2fr);grid-template-columns:300px minmax(0,1fr)}.prep-grid>.roster{grid-row:1/span 2}.prep-grid>.editor{grid-row:1}.prep-grid>.stage{grid-row:2;min-height:0}}@media (width<=820px){.prep-grid{display:block}.prep-grid>.roster,.prep-grid>.editor{border-right:none;border-bottom:1px solid var(--board-line)}.prep-grid .roster-list{max-height:260px}.prep-grid .stage-scroll{padding:14px 12px}}.prep-add{padding:8px 12px 0}.prep-add .mini.block{width:100%}.prep-add-form{border:1px dashed var(--paper-line);background:#fff;border-radius:6px;flex-direction:column;gap:6px;margin:8px 0 4px;padding:9px 10px;display:flex}.prep-add-form .f{flex-direction:column;gap:3px;display:flex}.prep-add-form .f>span{color:var(--ink-2);font-size:11px}.prep-add-form .f>span.prep-add-cap{justify-content:space-between;align-items:center;gap:6px;display:flex}.prep-add-form .prep-add-cap .mini{padding:1px 6px;font-size:10px;line-height:1.5}.prep-add-link{color:var(--red-deep);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.prep-add-form select,.prep-add-form input{border:1px solid var(--paper-line);width:100%;height:28px;font:inherit;background:#fff;border-radius:4px;padding:0 6px;font-size:12px}.prep-add-form .mini.primary{background:var(--sheet-line);border-color:var(--sheet-line);color:#fff;margin-top:2px;padding:7px 8px}.prep-add-hint{color:var(--ink-3);font-size:11px;line-height:1.5}.prep-add-err{color:var(--red-deep);font-size:11.5px}.prep-drop{border:1px dashed var(--paper-line);background:#fbfcfd;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;font-size:11.5px;display:flex}.prep-drop.on{border-color:var(--red);background:var(--red-wash)}.prep-drop input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.prep-drop-btn{border:1px solid var(--paper-line);cursor:pointer;background:#fff;border-radius:4px;align-items:center;padding:5px 10px;font-weight:700;display:inline-flex}.prep-drop-btn:hover{border-color:var(--red);color:var(--red-deep)}.prep-att-err{color:var(--red-deep);margin-top:6px;font-size:11.5px}.prep-atts-none{margin:6px 0 0;line-height:1.7}.prep-atts{margin:8px 0 0;padding:0;list-style:none}.prep-atts li{border-bottom:1px dashed #eef1f4;align-items:center;gap:8px;padding:6px 0;font-size:12px;display:flex}.prep-att-thumb{object-fit:cover;border:1px solid var(--paper-line);background:#fff;border-radius:4px;width:34px;height:34px}.prep-att-tag{border:1px solid var(--paper-line);background:var(--red-wash);width:40px;height:34px;color:var(--red-deep);font-family:var(--font-data);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:inline-flex}.prep-att-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.prep-atts-sheet{border-top:.4mm solid var(--sheet-line);margin-top:3mm;padding-top:2mm}.prep-atts-title{font-family:var(--font-round);color:var(--sheet-line);margin-bottom:1.6mm;font-size:.95em;font-weight:700}.prep-atts-grid{flex-wrap:wrap;gap:2.4mm;display:flex}.prep-atts-grid figure{text-align:center;margin:0}.prep-atts-grid img{background:#fff;border:.3mm solid #cbd6e2;border-radius:1mm;max-width:62mm;max-height:58mm;display:block}.prep-atts-grid .prep-atts-qr{border:none;width:30mm;height:30mm;max-height:none}.prep-atts-grid figcaption{color:#3d4a58;margin-top:.8mm;font-size:.74em}.prep-skills{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 10px;display:flex}.prep-skills .cap{color:var(--ink-3);font-size:12px}.prep-skill{border:1px solid var(--red-line,#e6c8c4);background:var(--red-wash,#fdf1ef);color:var(--red-deep,#bc3b31);border-radius:999px;align-items:center;gap:4px;padding:2px 6px 2px 8px;font-size:12px;font-style:normal;display:inline-flex}.prep-skill .x{color:inherit;cursor:pointer;background:0 0;border:0;padding:2px;font-size:11px;line-height:1}.prep-skill .x:hover{color:var(--red)}.prep-md-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.prep-md-bar .grow{flex:auto}.prep-md-file{display:none}.prep-md-filelabel{cursor:pointer;align-items:center;display:inline-flex}.prep-md-filelabel.is-off{opacity:.6}.prep-att-file{display:none}.prep-md-input{border:1px solid var(--paper-line,#e6e2da);background:var(--paper,#fff);width:100%;min-height:460px;color:var(--ink,#2b2b2b);resize:vertical;border-radius:8px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Noto Sans Mono CJK SC,monospace;font-size:13px;line-height:1.7}.prep-md-input:focus{outline:2px solid var(--red-wash,#fdf1ef);border-color:var(--red-line,#e6c8c4)}.prep-md-hint{margin-top:6px;line-height:1.6}.prep-md-hint code{background:var(--wash,#f6f4f0);border-radius:4px;padding:1px 4px;font-size:12px}.prep-md-bar>.mini,.prep-md-bar>.ai-polish-wrap{flex:none}.md-body .md-h2{border-bottom:1px solid var(--red-wash,#fdf1ef);color:var(--red-deep,#bc3b31);letter-spacing:.5px;margin:10px 0 5px;padding-bottom:3px;font-size:13px}.md-body .md-h3{color:var(--ink,#2b2b2b);margin:8px 0 4px;font-size:12.5px}.md-body .md-p{margin:4px 0;font-size:12px;line-height:1.65}.md-body .md-list{margin:4px 0 4px 1.1em;padding:0;font-size:12px;line-height:1.6}.md-body .md-list li{margin:2px 0}.md-body .md-sub{color:var(--ink-3,#6b6b6b);margin:2px 0 2px 1em;padding:0;list-style:circle}.md-body .md-hr{border:0;border-top:1px dashed var(--paper-line,#e6e2da);margin:8px 0}.md-body .md-quote{border-left:3px solid var(--red-line,#e6c8c4);background:var(--red-wash,#fdf1ef);margin:6px 0;padding:4px 8px;font-size:12px}.md-body .md-table{border-collapse:collapse;width:100%;margin:6px 0;font-size:11.5px}.md-body .md-table th,.md-body .md-table td{border:1px solid var(--paper-line,#e6e2da);text-align:left;padding:3px 6px}.md-body .md-table th{background:var(--wash,#f6f4f0)}.md-body .md-figure{text-align:center;margin:8px 0}.md-body .md-figure img{border:1px solid var(--paper-line,#e6e2da);border-radius:4px;max-width:62mm;max-height:56mm}.md-body .md-figure figcaption{color:var(--ink-3,#6b6b6b);margin-top:3px;font-size:10.5px}.md-body .md-inline-img{vertical-align:middle;max-width:40mm;max-height:34mm}.md-body code{background:var(--wash,#f6f4f0);border-radius:3px;padding:0 3px;font-size:11.5px}.md-body a{color:var(--red-deep,#bc3b31)}.md-editor{margin:2px 0 4px}.md-editor-loading{margin:8px 0}.md-editor .milkdown{background:var(--paper,#fff);border:1px solid var(--paper-line,#e6e2da);border-radius:10px;min-height:480px;padding:6px 0 10px;overflow:visible}.md-editor .milkdown .ProseMirror{min-height:460px;color:var(--ink,#2b2b2b);padding:10px 20px 24px;font-size:15px;line-height:1.75}.md-editor .milkdown .ProseMirror h1{margin:14px 0 6px;font-size:22px}.md-editor .milkdown .ProseMirror h2{border-bottom:1px solid var(--wash,#f6f4f0);margin:14px 0 6px;padding-bottom:4px;font-size:18px}.md-editor .milkdown .ProseMirror h3{margin:12px 0 4px;font-size:16px}.md-editor .milkdown .ProseMirror p{margin:6px 0}.md-editor .milkdown .ProseMirror ul,.md-editor .milkdown .ProseMirror ol{margin:6px 0;padding-left:1.4em}.md-editor .milkdown .ProseMirror table{border-collapse:collapse;margin:10px 0;font-size:14px}.md-editor .milkdown .ProseMirror th,.md-editor .milkdown .ProseMirror td{border:1px solid var(--paper-line,#e6e2da);padding:5px 9px}.md-editor .milkdown .ProseMirror th{background:var(--wash,#f6f4f0)}.md-editor .milkdown .ProseMirror img{border-radius:6px;max-width:100%}.md-editor .milkdown .ProseMirror blockquote{border-left:3px solid var(--red-line,#e6c8c4);background:var(--red-wash,#fdf1ef);color:var(--ink-2,#464646);margin:8px 0;padding:6px 12px}.prep-title-field{margin:2px 0 10px}.prep-title-field .prep-lbl{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.prep-title-field input{width:100%;font-size:15px;font-weight:600}.prep-context{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fffdf6;border-left:3px solid #c9a227;margin:0 0 10px;padding:9px 11px}.prep-context.hot{border-left-color:var(--red);background:var(--red-wash)}.prep-context-head{cursor:pointer;align-items:center;gap:8px;list-style:none;display:flex}.prep-context-head::-webkit-details-marker{display:none}.prep-context-head b{letter-spacing:.02em;font-size:12.5px}.prep-context-head em{background:var(--red);color:#fff;border-radius:999px;padding:1px 6px;font-size:10.5px;font-style:normal;font-weight:700}.prep-context-toggle{color:var(--ink-3);font-size:11px}.prep-context-head .mini{margin-left:auto}.prep-context-sum{color:var(--ink);margin:6px 0 5px;font-size:12.5px;line-height:1.6}.prep-context-line{color:var(--ink-2);gap:6px;margin:0 0 3px;font-size:12px;line-height:1.55;display:flex}.prep-context-line .cap{color:var(--ink-3);flex:none;font-weight:700}.prep-fb{border-top:1px dashed var(--paper-line);margin-top:7px;padding-top:7px}.prep-fb-head{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;line-height:1.5;display:flex}.prep-fb-head b{font-family:var(--font-data);color:var(--ink-2);font-size:11.5px;font-weight:600}.prep-fb-head em{background:var(--red);color:#fff;border-radius:999px;padding:0 5px;font-size:10px;font-style:normal;font-weight:700}.prep-fb-head span{min-width:180px;color:var(--ink);flex:240px}.prep-fb-points{flex-wrap:wrap;gap:4px;margin:5px 0 0;display:flex}.prep-fb-point{color:#4f6b80;background:#eef3f7;border-radius:999px;padding:1px 7px;font-size:11px}.prep-fb-point.high{color:var(--red-deep);background:#f7dcd9;font-weight:700}.prep-fb-point.low{color:#7a7a7a;background:#f2f2f2}.prep-fb-actions{color:var(--ink-2);margin:4px 0 0;font-size:11.5px;line-height:1.55}.prep-context-empty{border:1px dashed var(--paper-line);border-radius:var(--r-md);color:var(--ink-3);background:#fff;align-items:center;gap:8px;margin:0 0 10px;padding:6px 10px;font-size:11.5px;display:flex}.prep-context-empty .mini{margin-left:auto}.del-panel{background:#fff7f6;border:1px solid #f0c8c2;border-left:3px solid #d94f3d;border-radius:6px;margin:8px 0 12px;padding:12px 14px}.del-warn{color:#8a1f10;margin:0 0 8px;font-size:13px;line-height:1.6}.del-list{color:#4b5563;flex-wrap:wrap;gap:4px 18px;margin:0 0 8px;padding-left:18px;font-size:12px;display:flex}.del-list li b{color:#b3261e}.del-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:6px;display:flex}.del-row .f{min-width:220px}.bind-code{border:1px solid var(--board-line);border-radius:var(--r-sm);background:#3aa5c40f;margin:0 0 12px;padding:10px 12px}.bind-code-head{color:var(--ink-2);font-size:13px;line-height:1.7}.bind-code-body{flex-wrap:wrap;align-items:baseline;gap:14px;margin:8px 0;display:flex}.bind-code-num{letter-spacing:6px;color:var(--cyan-deep);font-variant-numeric:tabular-nums;font-size:30px;font-weight:700}.bind-code-meta{flex-wrap:wrap;gap:14px;display:flex}.bind-code-acts{flex-wrap:wrap;gap:8px;display:flex}.bind-code-warn{margin:8px 0 0;font-size:12px;line-height:1.6}.bind-code .err{color:#b3261e;margin:6px 0 0;font-size:13px}.trend-chart-wrap{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;padding:10px 12px 6px}.trend-chart{width:100%;height:auto;display:block}.tc-grid{stroke:var(--paper-line);stroke-width:1px}.tc-axis{stroke:#c7ced6;stroke-width:1px}.tc-pass{stroke:var(--red);stroke-width:1px;stroke-dasharray:4 4;opacity:.45}.tc-pass-label{font-family:var(--font-data);fill:var(--red);opacity:.75;text-anchor:end;font-size:10px}.tc-ytick{font-family:var(--font-data);fill:var(--ink-3);text-anchor:end;font-size:11px}.tc-xtick{font-family:var(--font-data);fill:var(--ink-3);text-anchor:middle;font-size:11px}.tc-line{fill:none;stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round}.tc-dot{fill:#fff;stroke-width:2.2px}.tc-dot:hover{fill:currentColor}.tc-band{stroke:none;fill-opacity:.14}.tc-median{fill:none;stroke-width:1.4px;stroke-dasharray:5 4;opacity:.6}.trend-chart-empty{border:1px dashed var(--paper-line);border-radius:var(--r-md);text-align:center;color:var(--ink-3);background:var(--paper);padding:26px 12px;font-size:13px}.trend-legend{flex-wrap:wrap;align-items:center;gap:14px;padding:6px 2px 2px;font-size:12px;display:flex}.trend-legend .lg{align-items:center;gap:6px;display:inline-flex}.trend-legend .lg i{border-radius:2px;width:10px;height:10px}.trend-legend .lg b{font-weight:400}.trend-legend .lg-note{margin-left:auto}.trend-card{border:1px solid var(--paper-line);border-left:4px solid var(--cyan);border-radius:var(--r-md);background:var(--cyan-wash);margin-top:10px;padding:10px 12px}.trend-head{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.trend-head b{font-weight:600}.trend-chip{border:1px solid;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;display:inline-flex}.trend-chip.up{color:#2f7a4f;background:#eef7f1}.trend-chip.down{color:var(--red-deep);background:var(--red-wash)}.trend-chip.flat{color:var(--ink-2);background:#f2f4f6}.trend-lines{color:var(--ink);margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.65}.trend-peers{border-left:2px solid var(--paper-line);border-radius:0 var(--r-md) var(--r-md) 0;background:#f7f9fb;margin-top:6px;padding:6px 10px 6px 14px}.trend-sugg{border-radius:var(--r-md);border:1px solid var(--paper-line);background:#fff;margin:8px 0 0;padding:8px 10px;font-size:13px}.trend-sugg .row{align-items:baseline;gap:6px;display:flex}.trend-sugg .row+.row{margin-top:4px}.trend-stats{color:var(--ink-2);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px 12px;margin-top:8px;font-size:12px;display:grid}.trend-stats .k{color:var(--ink-3);display:block}.trend-stats .v{font-family:var(--font-data);color:var(--ink);font-size:15px}.vocab-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);align-items:start;gap:12px;display:grid}.vocab-grid.is-empty{grid-template-columns:minmax(0,1fr)}.book-strip{border:1px solid var(--paper-line);border-radius:var(--r-lg,var(--r-md));background:#fff;flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;padding:8px 10px;display:flex}.strip-filters{gap:6px;display:flex}.strip-filters select{flex:none;width:auto}.search-box{border:1px solid var(--paper-line);width:216px;color:var(--ink-3);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:0 8px;display:flex;position:relative}.search-box:focus-within{border-color:var(--cyan);box-shadow:0 0 0 2px var(--cyan-wash)}.search-box svg{color:var(--ink-3);flex:none}.search-box input{min-width:0;font:inherit;color:var(--ink);background:0 0;border:0;flex:auto;padding:5px 0;font-size:12.5px}.search-box input:focus{outline:none}.search-box .sb-clear{background:var(--paper-line);width:16px;height:16px;font:inherit;color:var(--ink-2,var(--ink-3));cursor:pointer;border:0;border-radius:999px;flex:none;padding:0;font-size:12px;line-height:1}.search-box .sb-clear:hover{background:var(--ink-3);color:#fff}.strip-empty .mini{margin-left:6px}.strip-books{flex-wrap:wrap;flex:240px;gap:6px;min-width:0;display:flex}.book-chip{border:1px solid var(--paper-line);max-width:260px;font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12.5px;display:inline-flex}.book-chip .dot{border-radius:999px;flex:none;width:7px;height:7px}.book-chip .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.book-chip .meta{color:var(--ink-3);font-size:11px;font-family:var(--font-data);white-space:nowrap}.book-chip:hover{border-color:var(--cyan)}.book-chip.on{border-color:var(--cyan);background:var(--cyan-wash);box-shadow:inset 0 0 0 1px var(--cyan)}.strip-total{color:var(--ink-3);white-space:nowrap;font-size:11px}.strip-empty{color:var(--ink-3);font-size:12px}.strip-new-btn{border:1px dashed var(--cyan);font:inherit;color:var(--cyan-deep,var(--cyan));cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;flex:none;margin-left:auto;padding:4px 11px;font-size:12.5px}.strip-new-btn.on{background:var(--cyan-wash)}.book-new-panel{border:1px dashed var(--cyan);border-radius:var(--r-lg,var(--r-md));background:var(--cyan-wash);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;padding:9px 10px;display:flex}.book-new-panel input{flex:200px;min-width:0}.book-new-panel select{flex:none;width:auto}.vocab-shelf{border:1px solid var(--paper-line);border-radius:var(--r-lg,var(--r-md));background:#fff;grid-column:1/-1;padding:12px 12px 14px}.shelf-head{align-items:flex-start;gap:10px;margin-bottom:11px;display:flex}.shelf-head .sh-text{flex-direction:column;gap:3px;min-width:0;display:flex}.shelf-head b{font-size:14px}.shelf-head .mute{color:var(--ink-3);font-size:12px}.shelf-head>.mini{flex:none;margin-left:auto}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:10px;display:grid}.shelf-card{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;flex-direction:column;display:flex;position:relative;overflow:hidden}.shelf-card:hover{border-color:var(--cyan)}.sc-bar{width:3px;position:absolute;top:0;bottom:0;left:0}.sc-main{font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:3px;padding:11px 12px 8px 15px;display:flex}.sc-name{color:var(--ink);font-size:13.5px;font-weight:600}.sc-meta{color:var(--ink-3);font-size:11.5px}.sc-nums{font-size:12px;font-family:var(--font-data);color:var(--ink-3)}.sc-assign{border:1px solid var(--cyan);background:var(--cyan-wash);font:inherit;color:var(--cyan-deep,var(--cyan));cursor:pointer;text-align:center;border-radius:999px;margin:0 12px 10px 15px;padding:5px 10px;font-size:12px}.sc-assign:hover{background:var(--cyan);color:#fff}.vocab-col{min-width:0}.vocab-col>.card{margin-bottom:12px}.vocab-col h4{margin:0 0 8px;font-size:13px;font-weight:600}.words-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.words-head .wn{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.words-head .wc{white-space:nowrap;font-size:12px}.vocab-import{border-top:1px dashed var(--paper-line);margin-top:10px;padding-top:8px}.vocab-import>summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--cyan-deep,var(--cyan));font-size:12.5px;font-weight:600;list-style:none}.vocab-import>summary::-webkit-details-marker{display:none}.vocab-import>summary:after{content:" ▾";font-size:10px}.vocab-import[open]>summary:after{content:" ▴"}.card-div{border:0;border-top:1px dashed var(--paper-line);margin:10px 0}.sub-head{margin:0 0 6px;font-size:12.5px;font-weight:600}.student-progress .progress-card{background:0 0;border:0;margin-top:0;padding:0}@media (width<=1280px){.vocab-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=640px){.strip-filters{flex:100%}.strip-filters input{flex:auto;width:auto}.book-new-panel input,.book-new-panel select{flex:100%}}.tag-subj{border:1px solid;border-radius:999px;padding:1px 7px;font-size:11px;line-height:1.5;display:inline-block}.unit-bar{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.import-box textarea{width:100%;min-height:108px;font-family:var(--font-data);font-size:12px;line-height:1.6}.import-box .field .row2>input{flex:0 0 190px;min-width:0}.import-hint{color:var(--ink-2);font-size:12px;line-height:1.7}.import-hint code{font-family:var(--font-data);border:1px solid var(--paper-line);background:#fff;border-radius:3px;padding:0 4px}.import-result{border-radius:var(--r-md);background:var(--cyan-wash);border:1px solid var(--paper-line);margin-top:6px;padding:7px 9px;font-size:12px}.import-result.warn{background:var(--red-wash);border-color:#f0cfca}.word-table td.w{font-family:var(--font-data);font-size:13px}.word-table .ex-cell{align-items:center;gap:6px;display:flex}.word-table .ex-cell input{min-width:0;font-size:12px}.word-table .ai-flag{border:1px solid var(--cyan);background:var(--cyan-wash);color:var(--cyan-deep,var(--cyan));letter-spacing:.04em;border-radius:3px;flex:none;padding:0 4px;font-size:9.5px;line-height:1.6}.word-table td .ph{color:var(--ink-3);margin-left:6px;font-size:11px}.word-table input{width:100%}.mastery-track{background:#e7ebef;border-radius:999px;height:8px;display:block;overflow:hidden}.mastery-track>i{background:var(--cyan);height:100%;display:block}.mastery-line{grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:8px;margin-top:4px;display:grid}.mastery-line .n{font-family:var(--font-data);color:var(--ink-2);text-align:right;font-size:12px}.progress-card{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;margin-top:8px;padding:9px 11px}.progress-card .top{flex-wrap:wrap;align-items:baseline;gap:10px;font-size:13px;display:flex}.progress-card .big{font-family:var(--font-data);color:var(--ink);font-size:20px}.progress-card .today{margin-top:6px;font-size:13px}.week-bars{align-items:flex-end;gap:3px;height:46px;margin-top:8px;display:flex}.week-bars .d{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:2px;min-width:0;display:flex}.week-bars .b{background:var(--cyan);border-radius:2px 2px 0 0;width:100%}.week-bars .b.zero{background:#e7ebef}.week-bars .l{color:var(--ink-3);font-size:9px;font-family:var(--font-data)}.gap-chips{flex-wrap:wrap;gap:6px;margin:2px 0 8px;display:flex}.gap-chips .mini.on{border-color:var(--cyan);background:var(--cyan-wash);color:var(--cyan-deep,var(--cyan))}.people-list{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;max-height:208px;margin-top:6px;padding:4px;overflow:auto}.person{border-radius:var(--r-sm);align-items:center;gap:6px;padding:3px 6px;display:flex}.person+.person{margin-top:2px}.person:hover{background:#fbf7ee}.person.on{background:var(--cyan-wash)}.person.focus{box-shadow:inset 2px 0 0 var(--cyan)}.person .pick{cursor:pointer;flex:auto;align-items:center;gap:6px;min-width:0;font-size:12.5px;display:flex}.person .nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person .gr{color:var(--ink-3);font-size:11px}.people-foot{align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.book-new-panel{flex-direction:column;align-items:stretch}.new-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.new-sep{color:var(--ink-2);border-top:1px dashed #1f9e8a59;margin-top:8px;padding:8px 0 2px;font-size:11.5px}.new-note{font-size:11.5px;line-height:1.6}.gen-num{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.gen-num input{width:76px}.dictation-wrap{z-index:60;background:#2c27218c;flex-direction:column;padding:16px;display:flex;position:fixed;inset:0;overflow:auto}.dictation-bar{border:1px solid var(--edu-line,var(--paper-line));border-radius:var(--r-lg,var(--r-md));background:#fffdf8;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;display:flex}.dictation-bar .hint-toggle{align-items:center;gap:5px;font-size:12.5px;display:inline-flex}.dictation-sheet{color:#2b2620;background:#fff;border-radius:4px;width:100%;max-width:720px;margin:0 auto;padding:28px 32px 24px;box-shadow:0 12px 40px #0000002e}.ds-title{text-align:center;flex-direction:column;gap:2px;margin-bottom:14px;display:flex}.ds-title b{font-size:17px}.ds-title span{color:#6b6257;font-size:12px}.ds-meta{color:#3a3128;border-bottom:1px solid #e7dfcf;flex-wrap:wrap;gap:18px;padding-bottom:8px;font-size:12.5px;display:flex}.ds-list{grid-template-columns:1fr 1fr;gap:10px 22px;margin:14px 0 0;padding:0;list-style:none;display:grid}.ds-list li{align-items:baseline;gap:8px;font-size:12.5px;display:flex}.ds-list .cn{color:#3a3128;flex:auto;min-width:0}.ds-list .line{min-height:18px;font-family:var(--font-data);color:#8a7c66;letter-spacing:.06em;border-bottom:1px solid #c9bfaa;flex:0 0 40%}.ds-foot{text-align:center;color:#9a8f7c;margin-top:18px;font-size:10.5px}@media print{@page{margin:12mm}body *{visibility:hidden}.dictation-wrap,.dictation-wrap *{visibility:visible}.dictation-wrap{background:#fff;padding:0;display:block;position:static}.dictation-bar{display:none}.dictation-sheet{max-width:none;box-shadow:none;border-radius:0;padding:0}}.stage-viz{flex-direction:column;gap:6px;display:flex}.stage-viz.compact{flex-direction:row;align-items:center;gap:8px}.stage-bar{background:var(--paper-line);border:1px solid var(--paper-line);border-radius:999px;height:14px;display:flex;overflow:hidden}.stage-viz.compact .stage-bar{flex:auto;min-width:56px;height:8px}.stage-bar .seg{flex:none;min-width:3px;height:100%}.stage-bar .seg.recognize{background:color-mix(in srgb, var(--cyan) 26%, transparent)}.stage-bar .seg.recall{background:color-mix(in srgb, var(--cyan) 52%, transparent)}.stage-bar .seg.spell{background:color-mix(in srgb, var(--cyan) 78%, transparent)}.stage-bar .seg.mastered{background:var(--cyan)}.stage-bar .seg.empty{background:0 0;flex:auto}.stage-legend{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;display:flex}.stage-legend .lg{align-items:center;gap:5px;display:inline-flex}.stage-legend .sw{border-radius:2px;width:10px;height:10px;display:inline-block}.stage-legend .sw.recognize{background:color-mix(in srgb, var(--cyan) 26%, transparent)}.stage-legend .sw.recall{background:color-mix(in srgb, var(--cyan) 52%, transparent)}.stage-legend .sw.spell{background:color-mix(in srgb, var(--cyan) 78%, transparent)}.stage-legend .sw.mastered{background:var(--cyan)}.stage-legend b{font-family:var(--font-data);color:var(--ink);font-weight:600}.stage-alert{border:1px solid var(--red);background:var(--red-wash);color:var(--red-deep);border-radius:999px;margin-left:auto;padding:0 8px;font-size:12px}.stage-mini-note{font-family:var(--font-data);color:var(--ink-3);white-space:nowrap;font-size:12px}.stage-mini-note.warn{color:var(--red-deep)}.word-stage-list{flex-direction:column;gap:4px;max-height:264px;margin-top:8px;display:flex;overflow:auto}.word-stage-row{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 8px;display:grid}.word-stage-row .w{font-family:var(--font-data);font-size:13px}.word-stage-row .m{color:var(--ink-3);margin-left:6px;font-size:12px}.word-stage-row .side{align-items:center;gap:6px;display:inline-flex}.stage-now{border:1px dashed var(--paper-line);color:var(--ink-2);border-radius:999px;padding:0 7px;font-size:11px}.gate-dots{gap:4px;display:inline-flex}.gate-dots .gate{border:1px solid var(--paper-line);color:var(--ink-3);background:#fff;border-radius:999px;padding:0 6px;font-size:11px}.gate-dots .gate.pass{color:var(--cyan-deep);border-color:var(--cyan);background:var(--cyan-wash)}.gate-dots .gate.now{color:var(--ink);border-style:dashed}.rewrite-flag{border:1px solid var(--red);background:var(--red-wash);color:var(--red-deep);border-radius:999px;padding:0 7px;font-size:11px}.assign-form .field{margin-bottom:8px}.assign-units{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.unit-pick{border:1px solid var(--paper-line);border-radius:var(--r-sm);cursor:pointer;background:#fff;align-items:center;gap:5px;padding:3px 9px;font-size:12px;display:inline-flex}.unit-pick:has(input:checked){border-color:var(--cyan);background:var(--cyan-wash);color:var(--cyan-deep)}.banner.bad{background:var(--red-wash);color:#7d2b23;border-color:#f0cfca}.app-shell{flex-direction:column;height:100%;min-height:0;display:flex}.app-shell>.topnav{flex:none;height:56px}.app-main{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.app-main>.page,.app-main>.layout{flex:auto;height:auto;min-height:0}.nav-groups{scrollbar-width:none;flex:auto;align-items:flex-end;gap:2px;min-width:0;height:100%;margin-left:8px;display:flex;overflow-x:auto}.nav-groups::-webkit-scrollbar{display:none}.nav-groups button{border-radius:var(--r-md) var(--r-md) 0 0;height:36px;color:var(--ticket);letter-spacing:.06em;white-space:nowrap;cursor:pointer;background:0 0;border:none;flex:none;padding:0 14px;font-size:13px;font-weight:600;transition:color .15s,background .15s}.nav-groups button:hover{color:#fff}.nav-groups button[aria-current=page]{background:var(--sheet-paper);box-shadow:0 1px 0 var(--sheet-paper);color:var(--sheet-line)}.nav-actions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.nav-actions>.mini,.nav-actions>.btn{white-space:nowrap;flex:none}.nav-search{align-items:center;gap:6px;display:inline-flex}.nav-search kbd{border:1px solid var(--paper-line);font-family:var(--font-data);color:var(--ink-2);background:#eef1f3;border-radius:3px;padding:1px 4px;font-size:10px;font-weight:600;line-height:1.5}.subnav{border-bottom:1px solid var(--board-line);scrollbar-width:none;background:#1c1f24;flex:none;align-items:center;gap:6px;height:40px;padding:0 16px;display:flex;overflow-x:auto}.subnav::-webkit-scrollbar{display:none}.subnav button{color:var(--ticket);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex:none;padding:5px 12px;font-size:12.5px;font-weight:600;transition:color .15s,background .15s}.subnav button:hover{color:#fff}.subnav button[aria-current=page]{background:var(--sheet-paper);color:var(--sheet-line);border-color:#16324f1f}.tabbar{z-index:40;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--board-2);border-top:1px solid var(--board-line);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{color:var(--ticket);letter-spacing:.06em;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1 1 0;align-items:center;gap:4px;padding:7px 4px 6px;font-size:11px;font-weight:600;display:flex}.tabbar button i{background:#4c535c;border-radius:2px;width:18px;height:2px}.tabbar button[aria-current=page]{color:#fff}.tabbar button[aria-current=page] i{background:var(--red)}.m-scrim{z-index:60;background:#0a0c0f8c;align-items:flex-end;display:flex;position:fixed;inset:0}.m-drawer{width:100%;max-height:82vh;padding:8px 16px calc(16px + env(safe-area-inset-bottom));background:var(--board);border-top:1px solid var(--board-line);border-radius:14px 14px 0 0;overflow-y:auto}.m-handle{background:#4c535c;border-radius:2px;width:36px;height:4px;margin:4px auto 12px}.m-group-label{letter-spacing:.16em;color:#e4eaf0;align-items:baseline;gap:8px;margin:14px 0 8px;font-size:12px;font-weight:700;display:flex}.m-group-label span{letter-spacing:.02em;color:var(--ticket);font-size:10.5px;font-weight:400}.m-items{flex-wrap:wrap;gap:8px;display:flex}.m-items button{border:1px solid var(--board-line);border-radius:var(--r-md);color:#d6dee7;cursor:pointer;background:0 0;padding:9px 14px;font-size:12.5px;font-weight:600}.m-items button[aria-current=page]{background:var(--sheet-paper);border-color:var(--sheet-paper);color:var(--sheet-line)}.m-links{border-top:1px dashed var(--board-line);flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;display:flex}.m-empty{color:var(--ticket);margin:16px 0;font-size:12px}@media (width<=1180px){.topnav .who{display:none}}@media (width<=820px){.app-shell>.topnav{flex-wrap:nowrap;gap:10px;height:56px;padding:0 12px}.topnav .who,.nav-groups,.nav-actions .m-hide,.nav-search kbd{display:none}.app-main{padding-bottom:calc(50px + env(safe-area-inset-bottom));overflow-y:auto}.app-main>.layout{flex:none}}@media (width>=821px){.tabbar,.m-scrim{display:none}}body{font-family:var(--font-ui);background:var(--board);color:var(--ink);-webkit-font-smoothing:antialiased}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.bar{background:var(--board-2);border-bottom:1px solid var(--board-line);align-items:center;gap:14px;height:56px;padding:0 16px;display:flex}.bar .plate{background:var(--sheet-paper);border-radius:var(--r-sm);align-items:center;padding:5px 9px;display:flex;box-shadow:0 1px #00000059}.bar .plate img{height:22px;display:block}.bar .who{flex-direction:column;line-height:1.3;display:flex}.bar .who b{color:#f2f5f8;letter-spacing:.06em;white-space:nowrap;font-size:14px;font-weight:600}.bar .who span{color:var(--ticket);letter-spacing:.04em;white-space:nowrap;font-size:11px}.modules{scrollbar-width:none;flex:auto;align-items:stretch;min-width:0;height:56px;margin-left:6px;display:flex;overflow-x:auto}.modules::-webkit-scrollbar{display:none}.modules button{color:var(--ticket);letter-spacing:.02em;white-space:nowrap;cursor:pointer;background:0 0;border:none;flex:none;padding:0 8px;font-size:12.5px;font-weight:600;position:relative}.modules button[aria-current=page]{color:#fff}.modules button[aria-current=page]:after{content:"";background:var(--red);height:2px;position:absolute;bottom:0;left:12px;right:12px}.modules button:disabled{color:#5c646e;cursor:not-allowed}.modules button:disabled:before{content:"· "}.bar .grow{flex:1}.bar>.mini,.bar>.btn{white-space:nowrap;flex:none}.bar>.grow{flex:0 0 8px}.bar .note{max-width:300px;color:var(--ticket);text-align:right;font-size:11.5px;line-height:1.5}.bar .note b{color:#d6dee7;font-weight:600}.source{border:1px solid var(--board-line);border-radius:var(--r-sm);font-family:var(--font-data);color:var(--ticket);white-space:nowrap;flex:none;align-items:center;gap:7px;padding:5px 9px;font-size:11px;display:flex}.source b{color:#e4eaf0;font-weight:600}.source select{color:#e4eaf0;font-family:var(--font-data);cursor:pointer;background:0 0;border:none;font-size:11px}.source select option{color:#1e242c}.btn{border-radius:var(--r-md);color:#d6dee7;letter-spacing:.02em;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #4a5058;padding:8px 14px;font-size:12.5px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.btn:hover:not(:disabled){color:#fff;background:#383d45}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--red);border-color:var(--red);color:#fff;padding:9px 18px}.btn.primary:hover:not(:disabled){background:var(--red-deep);border-color:var(--red-deep)}.layout{grid-template-rows:minmax(0,1fr);grid-template-columns:clamp(300px,21vw,380px) minmax(0,1fr) clamp(560px,42vw,820px);height:calc(100% - 56px);min-height:0;display:grid}.roster{background:var(--paper);border-right:1px solid var(--board-line);flex-direction:column;min-height:0;display:flex}.roster-head{border-bottom:1px solid var(--paper-line);padding:14px 14px 10px}.roster-head h2{letter-spacing:.2em;color:var(--ink);align-items:baseline;gap:8px;margin:0 0 10px;font-size:12px;font-weight:700;display:flex}.roster-head h2 span{font-family:var(--font-data);letter-spacing:.04em;color:var(--ink-3);font-size:10px;font-weight:600}.roster-head .date{font-family:var(--font-data);color:var(--cyan-deep);font-size:11px}.roster-tools{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.roster-tools input{flex:1;min-width:0}.roster-dates{align-items:center;gap:5px;margin:0 0 8px;display:flex}.roster-dates .mini.step{flex:none;padding:5px 8px;font-size:13px;line-height:1}.roster-dates input.date{min-width:0;font-family:var(--font-data);flex:1;padding:5px 6px;font-size:11px}.roster-dates .mini.active{border-color:var(--cyan);color:var(--cyan-deep);background:#f2fbfd}.roster-list{flex:1;min-height:0;padding:8px 10px 24px;overflow-y:auto}.roster-group{letter-spacing:.16em;color:var(--ink-3);margin:12px 4px 6px;font-size:10.5px;font-weight:700}.student{border-radius:var(--r-md);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:9px;width:100%;margin-bottom:4px;padding:9px 10px;display:flex}.student:hover{border-color:var(--paper-line);background:#fff}.student[aria-pressed=true]{border-color:var(--paper-line);box-shadow:inset 2px 0 0 var(--cyan);background:#fff}.student .nm{flex:1;min-width:0}.student .nm b{color:var(--ink);font-size:13.5px;font-weight:600;display:block}.student .nm span{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;display:block;overflow:hidden}.student .nm span.slot{font-family:var(--font-data);color:var(--cyan-deep);font-size:10.5px}.student .nm span.course-chip{border:1px solid var(--paper-line);color:var(--ink-2);background:#fff;border-radius:999px;margin-top:3px;padding:1px 6px;font-size:10.5px;display:inline-block}.mark{font-family:var(--font-data);color:var(--ink-3);white-space:nowrap;align-items:center;gap:5px;font-size:10px;display:flex}.mark i{border:1.5px solid #b9c2cb;border-radius:50%;width:9px;height:9px;display:block}.mark.draft i{border-style:dashed;border-color:var(--cyan)}.mark.final i,.mark.sent i{background:var(--sheet-line);border-color:var(--sheet-line)}.mark .tick{color:var(--red);font-family:var(--font-ui);font-size:13px;font-weight:700;line-height:1}.new-student{border:1px dashed var(--paper-line);border-radius:var(--r-md);background:#fff;margin:6px 0 2px;padding:10px}.new-student .row{gap:6px;margin-top:6px;display:flex}.new-student .mini.primary{border-color:var(--sheet-line);background:var(--sheet-line);color:#fff}.new-student .mini.primary:disabled{opacity:.55}.new-student .hint,.new-student .err,.new-student .ok{margin-top:7px;font-size:11.5px;line-height:1.6}.new-student .hint{color:var(--ink-3)}.new-student .hint .link{color:var(--red-deep,#bc3b31);font:inherit;cursor:pointer;background:0 0;border:none;margin:0 2px;padding:0;text-decoration:underline}.new-student .err{color:var(--red-deep,#bc3b31)}.new-student .ok{color:var(--cyan-deep,#2a7e97)}.roster-foot{border-top:1px solid var(--paper-line);font-family:var(--font-data);color:var(--ink-3);padding:9px 14px;font-size:10.5px}.nums{font-family:var(--font-data);color:var(--ink-3);white-space:nowrap;flex-direction:column;align-items:flex-end;gap:2px;margin-right:8px;font-size:10px;display:flex}.nums em{color:#a95d16;background:#fff2e6;border-radius:8px;padding:0 4px;font-style:normal}.nums em.owed{color:var(--red);background:#fdecea}.editor{background:var(--paper);border-right:1px solid var(--board-line);flex-direction:column;min-height:0;display:flex}.editor-body{flex:1;min-height:0;padding:0 16px 24px;overflow-y:auto}.editor h3{border-bottom:1px solid var(--paper-line);letter-spacing:.2em;color:var(--ink);align-items:center;gap:8px;margin:22px 0 11px;padding-bottom:7px;font-size:12px;font-weight:700;display:flex}.editor h3:first-child{margin-top:16px}.archive{border-bottom:1px solid var(--paper-line);background:#fff;align-items:center;gap:6px;padding:9px 16px;display:flex;overflow-x:auto}.archive .cap{letter-spacing:.1em;color:var(--ink-2);white-space:nowrap;flex:none;font-size:11px;font-weight:700}.archive .item{border:1px solid var(--paper-line);color:var(--ink-2);white-space:nowrap;cursor:pointer;background:#fff;border-radius:20px;flex:none;align-items:center;gap:5px;padding:4px 9px;font-size:11.5px;display:flex}.archive .item:hover{border-color:var(--cyan);color:var(--cyan-deep)}.archive .item[aria-pressed=true]{background:var(--sheet-line);border-color:var(--sheet-line);color:#fff}.archive .item b{font-family:var(--font-data);font-weight:600}.archive .item i{border:1.5px solid #c3ccd5;border-radius:50%;width:7px;height:7px}.archive .item.sent i{background:var(--red);border-color:var(--red)}.archive .item.final i{background:var(--sheet-line);border-color:var(--sheet-line)}.archive .item.draft i{border-style:dashed;border-color:var(--cyan)}.editor h3:before{content:"";background:var(--cyan);width:12px;height:2px}.editor h3 em{font-family:var(--font-data);letter-spacing:.04em;color:var(--ink-3);font-size:10px;font-style:normal}.lead{border-left:2px solid var(--cyan);color:var(--ink-2);margin-bottom:14px;padding:2px 0 2px 10px;font-size:11.5px;line-height:1.65}.field{margin-bottom:11px}.field>label,.field>.lbl{letter-spacing:.06em;color:var(--ink-2);margin-bottom:5px;font-size:11.5px;font-weight:600;display:block}.field .row2{gap:7px;display:flex}.field .row2>:first-child{flex:1;min-width:0}.f-auto{font-family:var(--font-data);letter-spacing:.08em;color:var(--cyan-deep);background:#3aa5c41f;border-radius:2px;margin-left:6px;padding:1px 5px;font-size:9.5px;font-weight:600;display:inline-block}input[type=text],input:not([type]),input[type=date],input[type=search],input[type=number],textarea,select{border:1px solid var(--paper-line);border-radius:var(--r-sm);width:100%;color:var(--ink);background:#fff;padding:8px 10px;font-size:13px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--cyan);box-shadow:var(--focus);outline:none}textarea{resize:vertical;min-height:64px;font-size:12.8px;line-height:1.62}input:disabled,textarea:disabled,select:disabled{color:var(--ink-2);background:#f2f4f6}.seg{gap:5px;display:inline-flex}.card{border:1px solid var(--paper-line);border-radius:var(--r-lg);box-shadow:var(--elev-1);background:#fff;margin-bottom:10px;padding:10px}.card .cap{gap:7px;margin-bottom:8px;display:flex}.card .cap input{color:var(--sheet-line);border-color:#e7ebef;flex:1;font-size:12.5px;font-weight:700}.card textarea{border-color:#e7ebef;min-height:70px}.editor .card textarea{min-height:var(--sec-min-h,70px);line-height:var(--sec-lh,1.62)}.row-tools{justify-content:space-between;align-items:center;gap:12px;display:flex}.row-tools .lead{flex:1;margin-bottom:10px}.rowh{color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;margin-bottom:10px;font-size:11.5px;display:flex}.card .foot{color:var(--ink-2);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;font-size:11px;display:flex}.sw{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;display:inline-flex}.sw input{accent-color:var(--cyan-deep);margin:0}.icon-btn{color:#b7c0c9;cursor:pointer;background:0 0;border:none;padding:2px 5px;font-size:15px;line-height:1}.icon-btn:hover{color:var(--red)}.mini{border:1px solid var(--paper-line);border-radius:var(--r-sm);color:var(--ink);cursor:pointer;background:#fff;padding:6px 10px;font-size:11.5px;font-weight:600;transition:border-color .15s,color .15s}.mini:hover{border-color:var(--cyan);color:var(--cyan-deep)}.mini:active:not(:disabled){transform:translateY(1px)}a.mini{align-items:center;text-decoration:none;display:inline-flex}.mini.block{text-align:center;width:100%;padding:8px;display:block}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{border:1px solid var(--paper-line);border-radius:var(--r-sm);color:var(--cyan-deep);cursor:pointer;background:#fff;padding:4px 9px;font-size:11.5px;transition:all .15s}.chip:hover{background:var(--cyan-deep);border-color:var(--cyan-deep);color:#fff}input[type=range]{width:100%;accent-color:var(--cyan-deep);margin:8px 0 0}.readout{font-family:var(--font-data);color:var(--cyan-deep);background:#eff7fa;border-color:#d6e9ef;font-size:11.5px;font-weight:600}.editor-foot{border-top:1px solid var(--paper-line);background:#eef1f3;flex-direction:column;gap:8px;padding:10px 16px;display:flex}.editor-foot .actions{gap:8px;display:flex}.editor-foot .actions .btn{text-align:center;flex:1;padding:9px 8px}.editor-foot .state{font-family:var(--font-data);color:var(--ink-2);font-size:11px}.editor-foot .btn{border-color:var(--paper-line);color:var(--ink);background:#fff}.editor-foot .btn:hover:not(:disabled){border-color:var(--cyan);color:var(--cyan-deep);background:#fff}.editor-foot .btn.primary{background:var(--sheet-line);border-color:var(--sheet-line);color:#fff}.editor-foot .btn.primary:hover:not(:disabled){background:#0f2740;border-color:#0f2740}.empty-state{text-align:center;color:var(--ink-2);padding:26px 18px;font-size:12.5px;line-height:1.8}.empty-state b{color:var(--ink);margin-bottom:6px;font-size:13.5px;display:block}.banner{border-radius:var(--r-md);color:#7a4a1c;background:#fff6ec;border:1px solid #f0c9a8;align-items:center;gap:10px;margin:12px 16px 0;padding:9px 12px;font-size:12px;line-height:1.6;display:flex}.banner button{flex:none}.note-card{border-radius:var(--r-md);background:var(--cyan-wash);color:#26454f;border:1px solid #cfe7ef;margin-bottom:12px;padding:10px 12px;font-size:11.5px;line-height:1.7}.note-card b{color:var(--cyan-deep)}.note-card .chips{margin-top:8px}.stage{background:var(--board);background-image:linear-gradient(#ffffff07 1px,#0000 1px),linear-gradient(90deg,#ffffff07 1px,#0000 1px);background-size:10px 10px;flex-direction:column;min-width:0;min-height:0;display:flex}.stage-scroll{flex:1;justify-content:center;align-items:flex-start;min-height:0;padding:22px 24px 18px;display:flex;overflow:auto}.slot{flex:none;animation:.5s cubic-bezier(.2,.8,.2,1) both settle;position:relative}.paper{transform-origin:0 0;grid-template-rows:9mm 297mm;grid-template-columns:16mm 210mm;width:max-content;display:grid}.origin{justify-content:flex-end;align-items:flex-end;padding:0 3mm 3mm 0;display:flex}.origin i{border:1px solid #5aaac4d9;border-radius:50%;width:4mm;height:4mm;position:relative}.origin i:before,.origin i:after{content:"";background:#5aaac4d9;position:absolute}.origin i:before{width:8.4mm;height:1px;margin-top:-.5px;top:50%;left:-2.2mm}.origin i:after{width:1px;height:8.4mm;margin-left:-.5px;top:-2.2mm;left:50%}.rule-h{background:repeating-linear-gradient(90deg,#7c8794 0 1px,#0000 1px 10mm) 0 100%/auto 5mm repeat-x;width:210mm;height:9mm;animation:.6s .12s both fade;position:relative}.rule-h:after{content:"";opacity:.55;background:#7c8794;height:1px;position:absolute;bottom:0;left:0;right:0}.rule-h span,.rule-v span{font-family:var(--font-data);color:#8d98a5;font-size:6.4pt;position:absolute}.rule-h span{bottom:6mm;transform:translate(-50%)}.rule-v{background:repeating-linear-gradient(#7c8794 0 1px,#0000 1px 10mm) 100% 0/5mm repeat-y;width:16mm;height:297mm;animation:.6s .18s both fade;position:relative}.rule-v:after{content:"";opacity:.55;background:#7c8794;width:1px;position:absolute;top:0;bottom:0;right:0}.rule-v span{right:6mm;transform:translateY(-50%)}.paper-board{position:relative}.corner{width:0;height:0;position:absolute}.corner:before,.corner:after{content:"";background:#7e8894;position:absolute}.corner:before{width:9mm;height:1px}.corner:after{width:1px;height:9mm}.corner.tl{top:0;left:0}.corner.tr{top:0;right:0}.corner.bl{bottom:0;left:0}.corner.br{bottom:0;right:0}.corner.tl:before{left:-13mm}.corner.tl:after{top:-13mm}.corner.tr:before{right:-13mm}.corner.tr:after{top:-13mm}.corner.bl:before{left:-13mm}.corner.bl:after{bottom:-13mm}.corner.br:before{right:-13mm}.corner.br:after{bottom:-13mm}.jobticket{border-top:1px solid var(--board-line);background:var(--board-2);font-family:var(--font-data);letter-spacing:.02em;color:var(--ticket);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:7px 14px;font-size:10.5px;display:flex}.jobticket b{color:#e4eaf0;font-weight:600}.jobticket .grow{flex:1}.jobticket .warn{color:#f0a98c}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes settle{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=1280px){.layout{grid-template-rows:auto minmax(320px,1fr);grid-template-columns:300px minmax(0,1fr);height:auto}.roster{grid-row:1/span 2}.stage{min-height:70vh}}@media (width<=820px){.bar{flex-wrap:wrap;row-gap:10px;height:auto;padding:10px 12px}.bar .note,.bar .grow{display:none}.modules{height:40px}.modules button{padding:0 10px}.layout{height:auto;display:block}.roster,.editor{border-right:none;border-bottom:1px solid var(--board-line)}.roster-list{max-height:240px}.stage-scroll{padding:14px 12px}.jobticket{gap:14px;font-size:10.5px}}.roster-subj{flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.roster-subj .cap{font-family:var(--font-data);color:var(--ink-3);font-size:10.5px}.roster-tools .mini.subj{border-radius:999px;padding:3px 8px;font-size:11px;line-height:1.5}.roster-tools .mini.subj.on{border-color:var(--cyan-deep);background:var(--cyan-deep);color:#fff;font-weight:600}.roster-tools .mini.subj.warn{border-color:var(--red);color:var(--red-deep);background:var(--red-wash)}.student .nm span.subject-chip{color:#fff;background:var(--cyan-deep);border-radius:999px;margin:3px 4px 0 0;padding:1px 7px;font-size:10.5px;font-weight:600;display:inline-block}.module{background:var(--paper);flex:1;min-height:0;padding:18px 22px 40px;overflow-y:auto}.page{height:calc(100% - 56px);min-height:0;display:flex}.module-head{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.module-head h2{letter-spacing:.1em;color:var(--ink);margin:0;font-size:15px;font-weight:700}.module-head .mute,.mute{font-family:var(--font-data);color:var(--ink-3);font-size:11px}.module h3{letter-spacing:.18em;color:var(--ink);align-items:center;gap:8px;margin:0 0 10px;font-size:12px;font-weight:700;display:flex}.module h3:before{content:"";background:var(--cyan);width:10px;height:2px}.module h3 .mute{letter-spacing:0}.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:16px;display:grid}.stat{border:1px solid var(--paper-line);border-radius:var(--r-lg);text-align:left;cursor:pointer;box-shadow:var(--elev-1);transition:border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);background:#fff;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.stat:hover{border-color:var(--cyan);box-shadow:var(--elev-2)}.stat .k{letter-spacing:.08em;color:var(--ink-2);font-size:11.5px;font-weight:600}.stat b{font-family:var(--font-data);color:var(--ink);font-size:26px;font-weight:600;line-height:1.2}.stat b em{color:var(--ink-3);margin-left:3px;font-size:12px;font-style:normal}.stat .s{color:var(--ink-3);font-size:11px}.stat b.neg{color:var(--red-deep)}.two-col{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:12px;display:grid}.panel-card{border:1px solid var(--paper-line);border-radius:var(--r-lg);box-shadow:var(--elev-1);background:#fff;padding:14px}.todo{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.todo-group ul{color:var(--ink-2);margin:0;padding-left:16px;font-size:12px;line-height:1.75}.todo-head{width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:7px;margin-bottom:4px;padding:0;font-size:12.5px;font-weight:600;display:flex}.todo-head:hover b{color:var(--cyan-deep)}.todo-head .count{background:var(--cyan-wash);font-family:var(--font-data);color:var(--cyan-deep);border-radius:10px;padding:0 6px;font-size:11px}.table{border-collapse:collapse;width:100%;font-size:12.5px}.table th{border-bottom:1px solid var(--paper-line);letter-spacing:.08em;color:var(--ink-2);text-align:left;white-space:nowrap;padding:7px 8px;font-size:11px;font-weight:700}.table td{color:var(--ink);vertical-align:top;border-bottom:1px solid #eef1f4;padding:8px}.table tbody tr:hover td{background:#fafcfd}.table .num{font-family:var(--font-data);text-align:right;white-space:nowrap}.table .pos{color:#1f7a5c}.table .neg{color:var(--red)}@media (width<=768px){.table{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;display:block;overflow-x:auto}.table th:first-child,.table td:first-child{z-index:2;background:var(--surface);box-shadow:1px 0 0 0 var(--line);position:sticky;left:0}.table th:first-child{z-index:3}}.row-click{cursor:pointer}.row-click[aria-pressed=true] td{background:var(--cyan-wash)}.form-row{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:14px;padding:12px 14px;display:flex}.form-row .f{flex-direction:column;gap:4px;display:flex}.form-row .f>span{color:var(--ink-2);letter-spacing:.06em;font-size:11px;font-weight:600}.form-row input,.form-row select{padding:6px 8px;font-size:12.5px}.form-row input[type=number]{width:92px}.form-row .w-grow{flex:1;min-width:140px}.form-row .w-md{min-width:150px}.kv{color:var(--ink-2);align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px;display:flex}.kv b{color:var(--ink);font-weight:600}.mini.active{background:var(--sheet-line);border-color:var(--sheet-line);color:#fff}.cycle-price{border-radius:var(--r-sm);background:var(--cyan-wash);font-family:var(--font-data);color:var(--cyan-deep);white-space:nowrap;border:1px solid #cfe7ef;padding:7px 10px;font-size:12.5px;font-weight:600;display:inline-block}.loads{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.load{border:1px solid var(--paper-line);border-radius:var(--r-md);background:#fff;padding:10px 12px}.load-head{border-bottom:1px dashed var(--paper-line);align-items:baseline;gap:8px;padding-bottom:6px;display:flex}.load-head b{font-size:14px}.load-head .count{font-family:var(--font-data);color:var(--ink-2);margin-left:auto;font-size:12px}.load ul{margin:8px 0 0;padding:0;list-style:none}.load li{align-items:baseline;gap:7px;padding:3px 0;font-size:12.5px;display:flex}.load li .t{font-family:var(--font-data);color:var(--cyan-deep);min-width:40px;font-weight:600}.load li .mute{margin-left:auto}.load .dot{background:var(--cyan);border-radius:50%;flex:none;width:7px;height:7px}.load .dot.done{background:#6bbf59}.load .dot.cancelled{background:#c9ced6}.grid-bar{border:1px solid var(--paper-line);border-radius:var(--r-md);background:var(--paper);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:6px 0 10px;padding:8px 12px;font-size:12.5px;display:flex}.grid-bar .f-inline{color:var(--ink-2);align-items:center;gap:5px;display:inline-flex}.grid-bar input[type=time],.grid-bar select{font-family:var(--font-data);padding:3px 6px;font-size:12.5px}.timetable{border-collapse:separate;border-spacing:0}.timetable .cell-empty{cursor:copy}.timetable .cell-empty:hover{background:var(--cyan-wash)}.timetable td,.timetable th{vertical-align:top}.timetable th{text-align:center;font-size:12px}.timetable th em{font-style:normal;font-family:var(--font-data);color:var(--ink-3);font-size:11px;display:block}.timetable th.today{background:var(--red-wash);color:var(--red-deep)}.timetable th.today em{color:var(--red)}.timetable .time-col{text-align:center;width:58px;font-family:var(--font-data);color:var(--ink-2);font-size:12px}.timetable .cell{height:62px;padding:4px!important}.slot{text-align:left;border:1px solid #cfe7ef;border-left:3px solid var(--cyan);border-radius:var(--r-sm);background:var(--cyan-wash);width:100%;font:inherit;cursor:pointer;margin-bottom:4px;padding:5px 7px;font-size:11.5px;line-height:1.35;display:block;position:relative}.slot:hover{background:#e6f5fa}.slot b{color:var(--ink);font-size:12.5px;display:block}.slot span{color:var(--ink-2);display:block}.slot .mute{font-size:10.5px}.slot.done{background:#f2f9f0;border-left-color:#6bbf59}.slot.cancelled{opacity:.7;background:#f6f7f8;border-left-color:#c9ced6;text-decoration:line-through}.slot .tick{color:#4f9f3f;font-style:normal;font-weight:700;position:absolute;top:6px;right:6px}.slot-add{border:1px dashed var(--paper-line);border-radius:var(--r-sm);width:100%;height:26px;color:var(--ink-3);cursor:copy;font-size:11.5px;font-family:var(--font-data);opacity:.55;background:0 0}.slot-add:hover{border-color:var(--cyan);color:var(--cyan-deep);background:var(--cyan-wash);opacity:1}.mini.danger{color:var(--red-deep);border-color:#edc9c5}.mini.danger:hover{background:#fdf1ef}.seg .mini{margin-right:5px}.pill{font-family:var(--font-data);background:var(--cyan-wash);color:var(--cyan-deep);border-radius:10px;padding:1px 7px;font-size:10.5px;display:inline-block}.pill.warn{color:#a95d16;background:#fff2e6}.pill.danger{color:var(--red);background:#fdecea}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:14px;display:grid}.detail-grid .cell{border:1px solid var(--paper-line);border-radius:var(--r-sm);background:#fff;padding:9px 11px}.detail-grid .cell i{color:var(--ink-2);font-size:11px;font-style:normal;display:block}.detail-grid .cell b{font-family:var(--font-data);font-size:17px;font-weight:600}.tabs{border-bottom:1px solid var(--paper-line);gap:4px;margin-bottom:10px;display:flex}.tabs button{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 12px;font-size:12.5px;font-weight:600}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--cyan)}.split{grid-template-columns:minmax(380px,46%) minmax(0,1fr);align-items:start;gap:14px;display:grid}.mini-row{font-family:var(--font-data);color:var(--ink-3);margin-top:10px;font-size:11px}@media (width<=1100px){.two-col,.split{grid-template-columns:1fr}}.table .cell-input{width:100%;min-width:0;font:inherit;color:var(--ink);border:1px solid var(--cyan);border-radius:var(--r-sm);background:#fff;padding:4px 6px;font-size:12px}.table td .seg{justify-content:flex-start}.prism-container canvas,.noise-overlay{display:block}}@layer primitives{.seg-ctrl{background:var(--edu-paper-2,#fff);border:1px solid var(--edu-line,#ece3d4);border-radius:999px;padding:4px;display:flex;position:relative}.seg-ctrl-ind{width:calc((100% - 8px) / var(--seg-n,4));background:linear-gradient(135deg, var(--edu-brand,#1f9e8a), var(--edu-brand-deep,#157e6e));z-index:0;border-radius:999px;transition:transform .4s cubic-bezier(.34,1.56,.64,1);position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 4px 10px #1f9e8a59}.seg-ctrl-item{z-index:1;font-family:var(--font-ui,sans-serif);color:var(--edu-ink-2,#6e655a);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:1;padding:8px 4px;font-size:13px;transition:color .25s;position:relative}.seg-ctrl-item.on{color:#fff;font-weight:600}.seg-ctrl.is-disabled{opacity:.55}.seg-ctrl.is-disabled .seg-ctrl-item{cursor:not-allowed}@media (prefers-reduced-motion:reduce){.seg-ctrl-ind{transition:none}}.chart{width:100%;position:relative}.chart svg{display:block;overflow:visible}.chart-grid-line{stroke:var(--chart-grid);stroke-width:1px;stroke-dasharray:2 4}.chart-base{stroke:#2b26202e;stroke-width:1px}.chart-col{transition:opacity .2s var(--ease,ease)}.chart-col.dim{opacity:.32}.chart-bar{transform-box:fill-box;transform-origin:50% 100%;animation:.68s cubic-bezier(.2,.8,.2,1) both chart-grow;animation-delay:calc(var(--i,0) * 38ms)}@keyframes chart-grow{0%{opacity:.4;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.chart-zero{fill:var(--chart-5);opacity:.5}.chart-label{fill:var(--chart-axis);font-family:var(--font-data);letter-spacing:.02em;font-size:9.5px}.chart-tip{z-index:5;border:1px solid var(--edu-line);background:var(--edu-paper-2);color:var(--edu-ink-2);white-space:nowrap;pointer-events:none;animation:tip-in .14s var(--ease,ease) both;border-radius:10px;flex-direction:column;gap:3px;padding:7px 10px 8px;font-size:11px;line-height:1.45;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 12px 28px #2b262024,0 3px 8px #2b26200f}.chart-tip:after{content:"";border-right:1px solid var(--edu-line);border-bottom:1px solid var(--edu-line);background:var(--edu-paper-2);width:8px;height:8px;margin-left:-4px;position:absolute;bottom:-5px;left:50%;transform:rotate(45deg)}.chart-tip b{font-family:var(--font-data);color:var(--edu-ink);letter-spacing:.04em;font-size:10.5px;font-weight:600}.chart-tip em{font-style:normal;font-family:var(--font-data);color:var(--edu-ink);font-weight:700}.chart-tip .sw{vertical-align:0;border-radius:2px;width:7px;height:7px;margin-right:5px;display:inline-block}.sw-att{background:var(--chart-1)}.sw-miss{background:var(--chart-4)}@keyframes tip-in{0%{opacity:0;transform:translate(-50%,calc(4px - 100%))}to{opacity:1;transform:translate(-50%,-100%)}}.chart-empty{border-top:1px dashed var(--edu-line);color:var(--edu-ink-2);text-align:center;margin:0;padding:28px 0 0;font-size:12px}.chart-legend{color:var(--edu-ink-2);gap:14px;margin-bottom:8px;font-size:11px;display:flex}.chart-legend i{border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.chart-legend .lg-att{background:var(--chart-1)}.chart-legend .lg-miss{background:var(--chart-4)}.sparkline{display:block;overflow:visible}.spark-line{fill:none;stroke:var(--chart-1);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.1s cubic-bezier(.2,.8,.2,1) .15s forwards spark-draw}.spark-area{opacity:0;animation:.7s .5s forwards spark-fade}.spark-dot{fill:var(--chart-1);stroke:var(--edu-paper-2);stroke-width:1.4px;opacity:0;animation:.4s .95s forwards spark-fade}@keyframes spark-draw{to{stroke-dashoffset:0}}@keyframes spark-fade{to{opacity:1}}.module .stat-b-row{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.module .stat-b-row>b{min-width:0}.module .stat-spark{opacity:.95;transition:opacity var(--t-base,.22s) var(--ease,ease);flex:none;transform:translateY(2px)}.module .stat.has-spark:hover .stat-spark{opacity:1}@media (width<=640px){.module .stat-spark{display:none}}@media (prefers-reduced-motion:reduce){.chart-bar{opacity:1;animation:none;transform:none}.chart-col{transition:none}.chart-tip{animation:none}.spark-line{stroke-dashoffset:0;animation:none}.spark-area,.spark-dot{opacity:1;animation:none}.module .stat-spark{transition:none}}.card-spotlight{border:1px solid var(--line);border-radius:var(--r-card);background-color:var(--surface);padding:var(--sp-5);--mouse-x:50%;--mouse-y:50%;--spotlight-color:#1f9e8a24;position:relative;overflow:hidden}.card-spotlight:before{content:"";background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), var(--spotlight-color), transparent 80%);opacity:0;transition:opacity var(--t-base) var(--ease);pointer-events:none;position:absolute;inset:0}.card-spotlight:hover:before,.card-spotlight:focus-within:before{opacity:.6}@media (prefers-reduced-motion:reduce){.card-spotlight:before{transition:none}}.grow{flex:auto;min-width:0}:where(.module,.layout,.prep) :where(.num){font-family:var(--font-data);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}:where(.module,.layout,.prep) :where(.mute){color:var(--text-2)}:where(.module,.layout,.prep) :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button])){min-height:var(--kit-h);border:1px solid var(--line);border-radius:var(--r-ctrl);background-color:var(--surface);color:var(--text);font-family:var(--font-ui);font-size:var(--kit-fs);transition:border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease), background-color var(--t-fast) var(--ease);padding:5px 9px;line-height:1.4}:where(.module,.layout,.prep) :where(textarea){border:1px solid var(--line);border-radius:var(--r-ctrl);background-color:var(--surface);min-height:68px;color:var(--text);font-family:var(--font-ui);font-size:var(--kit-fs);line-height:var(--lh-base);resize:vertical;transition:border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);padding:7px 9px}:where(.module,.layout,.prep) :where(select){min-height:var(--kit-h);border:1px solid var(--line);border-radius:var(--r-ctrl);background-color:var(--surface);background-image:var(--kit-arrow);color:var(--text);font-family:var(--font-ui);font-size:var(--kit-fs);appearance:none;cursor:pointer;text-overflow:ellipsis;transition:border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);background-position:right 9px center;background-repeat:no-repeat;background-size:9px 6px;padding:5px 27px 5px 9px;line-height:1.4}:where(.module,.layout,.prep) :where(input,textarea,select):focus{border-color:var(--brand);box-shadow:var(--kit-ring);outline:none}:where(.module,.layout,.prep) :where(input,textarea,select):hover:not(:focus):not(:disabled){border-color:var(--line-strong)}:where(.module,.layout,.prep) :where(input,textarea,select):disabled{background-color:var(--surface-2);color:var(--text-3);cursor:not-allowed;opacity:.85}:where(.module,.layout,.prep) :where(input,textarea):read-only{background-color:var(--surface-2)}:where(.module,.layout,.prep) :where(input,textarea)::placeholder{color:var(--text-3);opacity:1}:where(.module,.layout,.prep) :where(input[type=checkbox],input[type=radio]){accent-color:var(--brand);cursor:pointer;width:14px;height:14px}:where(.module,.layout,.prep) :where(.btn){min-height:var(--kit-h);border:1px solid var(--line-strong);border-radius:var(--r-ctrl);background-color:var(--surface);color:var(--text);font-family:var(--font-ui);font-size:var(--fs-base);letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);justify-content:center;align-items:center;gap:5px;padding:6px 13px;font-weight:600;line-height:1.2;display:inline-flex}:where(.module,.layout,.prep) :where(.btn):hover:not(:disabled){border-color:var(--brand);color:var(--brand-deep);background-color:var(--brand-soft)}:where(.module,.layout,.prep) :where(.btn):active:not(:disabled){transform:translateY(1px)}:where(.module,.layout,.prep) :where(.btn):disabled{opacity:.45;cursor:not-allowed}:where(.module,.layout,.prep) :where(.btn):focus-visible{box-shadow:var(--kit-ring);outline:none}:where(.module,.layout,.prep) :where(.btn.primary){background-image:linear-gradient(180deg, #24a992 0%, var(--brand) 100%);background-color:var(--brand);color:#fff;border-color:#0000;box-shadow:0 1px 2px #157e6e3d,inset 0 1px #ffffff38}:where(.module,.layout,.prep) :where(.btn.primary):hover:not(:disabled){color:#fff;background-image:linear-gradient(#2bb49c 0%,#1a8b79 100%);border-color:#0000}:where(.module,.layout,.prep) :where(.btn.danger){background-color:var(--warn);color:#fff;border-color:#0000}:where(.module,.layout,.prep) :where(.btn.danger):hover:not(:disabled){background-color:var(--warn-deep);color:#fff}:where(.module,.layout,.prep) :where(.btn.ghost){color:var(--text-2);background-color:#0000;border-color:#0000}:where(.module,.layout,.prep) :where(.btn.ghost):hover:not(:disabled){background-color:var(--surface-2);color:var(--text)}:where(.module,.layout,.prep) :where(.mini){min-height:var(--kit-h-sm);border:1px solid var(--line);background-color:var(--surface);color:var(--text-2);font-family:var(--font-ui);font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:3px 9px;font-weight:600;line-height:1.4;display:inline-flex}:where(.module,.layout,.prep) :where(.mini):hover:not(:disabled){border-color:var(--brand);color:var(--brand-deep);background-color:var(--brand-soft)}:where(.module,.layout,.prep) :where(.mini):active:not(:disabled){transform:translateY(1px)}:where(.module,.layout,.prep) :where(.mini.active),:where(.module,.layout,.prep) :where(.mini)[aria-pressed=true]{background-color:var(--brand-soft);color:var(--brand-deep);border-color:#0000;box-shadow:inset 0 0 0 1px #1f9e8a4d}.ui-iconbtn{width:var(--kit-h-sm);height:var(--kit-h-sm);border-radius:var(--r-xs);color:var(--text-2);cursor:pointer;transition:background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);background-color:#0000;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-iconbtn:hover{background-color:var(--brand-soft);color:var(--brand-deep)}:where(.module,.layout,.prep) :where(.table){border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-base);font-variant-numeric:tabular-nums;background-color:#0000;border:none}:where(.module,.layout,.prep) :where(.table) thead th{border:none;border-bottom:1px solid var(--line);background-color:var(--surface-2);color:var(--text-2);font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:0;text-align:left;white-space:nowrap;vertical-align:middle;padding:8px 12px;font-weight:700;line-height:1.5}:where(.module,.layout,.prep) :where(.table) thead th:first-child{border-radius:var(--r-xs) 0 0 var(--r-xs);padding-left:12px}:where(.module,.layout,.prep) :where(.table) thead th:last-child{border-radius:0 var(--r-xs) var(--r-xs) 0;padding-right:12px}:where(.module,.layout,.prep) :where(.table) tbody td{border:none;border-bottom:1px solid var(--line-faint);color:var(--text);vertical-align:middle;padding:8px 12px;line-height:1.55}:where(.module,.layout,.prep) :where(.table) tbody tr:last-child td{border-bottom:none}:where(.module,.layout,.prep) :where(.table) tbody tr:hover td{background-color:#1f9e8a0b}:where(.module,.layout,.prep) :where(.table) tbody tr:where(.is-on,.row-on) td,:where(.module,.layout,.prep) :where(.table) tbody tr[aria-pressed=true] td{background-color:var(--brand-soft)}:where(.module,.layout,.prep) :where(.table) tbody tr:where(.is-on,.row-on) td:first-child,:where(.module,.layout,.prep) :where(.table) tbody tr[aria-pressed=true] td:first-child{box-shadow:inset 3px 0 0 var(--brand)}:where(.module,.layout,.prep) :where(.table) :where(input:not([type=checkbox]):not([type=radio]),select){min-height:var(--kit-h-sm);font-size:var(--fs-sm);border-radius:var(--r-xs);padding:2px 6px}:where(.module,.layout,.prep) :where(.table) :where(select){background-position:right 6px center;padding-right:22px}:where(.module,.layout,.prep) :where(.table) :where(textarea){min-height:40px;font-size:var(--fs-sm);padding:4px 6px}:where(.module,.layout,.prep) :where(.table) :where(.btn,.mini){font-size:var(--fs-xs);min-height:22px;padding:3px 8px}:where(.module,.layout,.prep) :where(.table) tfoot td{border-top:1px solid var(--line-strong);background-color:var(--surface-2);border-bottom:none;font-weight:700}:where(.module,.layout,.prep) :where(.table) tbody td>div.mute{font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-weight:400;line-height:1.45;overflow:hidden}:where(.module,.layout,.prep) :where(.table) tbody td>b:first-child{color:var(--text);font-weight:600}:where(.module,.layout) :where(.table.timetable) :where(td,th){border-right:1px solid var(--line-faint);text-align:center}:where(.module,.layout) :where(.table.timetable) :where(td,th):last-child{border-right:none}:where(.module,.layout,.prep) :where(.ui-tag,.tag){border-radius:var(--r-pill);font-family:var(--font-ui);font-size:var(--fs-xs);white-space:nowrap;vertical-align:1px;border:1px solid #0000;align-items:center;gap:4px;padding:1px 7px;font-weight:600;line-height:1.7;display:inline-flex}:where(.module,.layout,.prep) :where(.ui-tag--brand){background-color:var(--brand-soft);color:var(--brand-deep);border-color:#1f9e8a38}:where(.module,.layout,.prep) :where(.ui-tag--mark){background-color:var(--amber-soft);color:var(--mark-ink);border-color:#c98a1b3d}:where(.module,.layout,.prep) :where(.ui-tag--warn){background-color:var(--warn-soft);color:var(--warn-deep);border-color:#e2603f3d}:where(.module,.layout,.prep) :where(.ui-tag--mute){border-color:var(--line);background-color:var(--surface-2);color:var(--text-2)}:where(.module,.layout,.prep) :where(.pill){border-radius:var(--r-pill);background-color:var(--brand-soft);color:var(--brand-deep);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:4px;padding:1px 8px;font-weight:600;line-height:1.7;display:inline-flex}:where(.module,.layout,.prep) :where(.pill.warn){background-color:var(--amber-soft);color:var(--mark-ink)}:where(.module,.layout,.prep) :where(.pill.danger){background-color:var(--warn-soft);color:var(--warn-deep)}:where(.module,.layout,.prep) :where(.pill.ok){background-color:var(--ok-soft);color:var(--ok)}:where(.module,.layout,.prep) :where(.card,.panel-card){border:1px solid var(--line);border-radius:var(--r-card);background-color:var(--surface);box-shadow:var(--shadow-1);position:relative}.ui-cardhead{align-items:center;gap:8px;margin-bottom:9px;display:flex}.ui-cardhead>h3,.ui-cardhead>h4{font-family:var(--font-display);letter-spacing:.02em;color:var(--text);margin:0;font-size:14px;font-weight:600}.ui-cardhead>.grow{flex:1}:where(.module,.layout,.prep) :where(.field){min-width:0;margin-bottom:11px}:where(.module,.layout,.prep) :where(.field)>:where(label){font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.05em;color:var(--text-2);margin-bottom:4px;font-weight:600;line-height:1.5;display:block}:where(.module,.layout,.prep) :where(.field)>:where(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%}.ui-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.ui-row>.ui-cell{flex-direction:column;gap:4px;min-width:0;display:flex}.ui-row>.ui-cell>label{font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.05em;color:var(--text-2);font-weight:600}.ui-row>.ui-cell.grow{flex:140px}.ui-empty,:where(.module,.layout) :where(.empty-state){border:1px dashed var(--line);border-radius:var(--r-card);text-align:center;background-color:#fffdf8a8;flex-direction:column;align-items:center;gap:7px;padding:26px 16px;display:flex}.ui-empty>b{font-family:var(--font-display);font-size:var(--fs-md);color:var(--text);font-weight:600}.ui-empty>span{max-width:34em;font-size:var(--fs-sm);color:var(--text-2);line-height:1.66}:where(.module,.layout,.prep,.stage) :where(*):where(){width:9px;height:9px}:where(.module,.layout,.prep,.stage)::-webkit-scrollbar{width:9px;height:9px}:where(.module,.layout,.prep,.stage) :where(*):where(){border-radius:var(--r-pill);background-clip:content-box;background-color:var(--line-strong);border:2px solid #0000}:where(.module,.layout,.prep,.stage)::-webkit-scrollbar-thumb{border-radius:var(--r-pill);background-clip:content-box;background-color:var(--line-strong);border:2px solid #0000}:where(.module,.layout,.prep,.stage) :where(*):where(){background-color:var(--text-3)}:where(.module,.layout,.prep,.stage)::-webkit-scrollbar-thumb:hover{background-color:var(--text-3)}:where(.module,.layout,.prep,.stage) :where(*):where(){background:0 0}:where(.module,.layout,.prep,.stage)::-webkit-scrollbar-track{background:0 0}:where(.module,.layout,.prep) :where(.tabs){border-bottom:1px solid var(--line);gap:2px;display:flex}:where(.module,.layout,.prep) :where(.tabs) :where(button){color:var(--text-2);font-family:var(--font-ui);font-size:var(--fs-base);cursor:pointer;transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background-color:#0000;border:none;border-bottom:2px solid #0000;border-radius:0;padding:7px 12px;font-weight:600;position:relative}:where(.module,.layout,.prep) :where(.tabs) :where(button):hover{color:var(--brand-deep)}:where(.module,.layout,.prep) :where(.tabs) :where(button)[aria-selected=true]{border-bottom-color:var(--brand);color:var(--text)}:where(.module,.layout,.prep) :where(.pager){border-top:1px solid var(--line);color:var(--text-2);font-size:var(--fs-sm);align-items:center;gap:8px;padding-top:10px;display:flex}:where(.module,.layout,.prep) :where(.pager) :where(select){min-height:var(--kit-h-sm);font-size:var(--fs-sm);background-position:right 6px center;padding:2px 22px 2px 7px}:where(.module,.layout,.prep) :where(.pager) :where(.mini,.btn){min-width:26px}:where(.module,.layout) :where(.form-row){border:1px solid var(--line);border-radius:var(--r-card);background-color:var(--surface);box-shadow:var(--shadow-1);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:12px 14px;display:flex}:where(.module,.layout) :where(.form-row)>:where(.f){flex-direction:column;gap:4px;min-width:0;display:flex}:where(.module,.layout) :where(.form-row)>:where(.f)>:where(span,label){font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text-2);font-weight:600}:where(.module,.layout) :where(.form-row)>:where(.f)>:where(input[type=number]){min-width:86px}:where(.module,.layout) :where(.form-row)>:where(.f)>:where(select){min-width:128px}:where(.module,.layout) :where(.form-row)>:where(button){min-width:76px;min-height:var(--kit-h);flex:none;padding:0 14px}:where(.module,.layout) :where(.form-row)>:where(.f.w-grow){flex:150px}@media (prefers-reduced-motion:reduce){:where(.module,.layout,.prep) :where(input,textarea,select,.btn,.mini,.card,.panel-card){transition:none}:where(.module,.layout,.prep) :where(.btn,.mini):active{transform:none}}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,math,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.19.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.katex-newline{display:block}.katex .katex-base{white-space:nowrap;width:min-content;position:relative}.katex .katex-base,.katex .katex-strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .katex-vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .katex-thinbox{flex-direction:row;width:0;max-width:0;display:inline-flex}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline,.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-rule,.katex .katex-underline .underline-line,.katex .mfrac .frac-line{min-height:1px}.katex .mspace{display:inline-block}.katex .katex-smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.katex-inner,.katex .llap>.katex-inner,.katex .rlap>.katex-inner{position:absolute}.katex .clap>.katex-fix,.katex .llap>.katex-fix,.katex .rlap>.katex-fix{display:inline-block}.katex .llap>.katex-inner{right:0}.katex .clap>.katex-inner,.katex .rlap>.katex-inner{left:0}.katex .clap>.katex-inner>span{margin-left:-50%;margin-right:50%}.katex .katex-rule{border:0 solid;display:inline-block;position:relative}.katex .katex-hline,.katex .katex-overline .overline-line,.katex .katex-underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .katex-hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.katex-root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .katex-sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .katex-sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .katex-sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .katex-sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .katex-sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .katex-sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .katex-sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .katex-sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .katex-sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .katex-sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .katex-sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .katex-sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .katex-sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .katex-sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .katex-sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .katex-sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .katex-sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .katex-sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .katex-sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .katex-sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .katex-sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .katex-sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .katex-sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .katex-sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .katex-sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .katex-sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .katex-sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .katex-sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .katex-sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .katex-sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .katex-sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .katex-sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .katex-sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .katex-sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .katex-sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .katex-sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .katex-sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .katex-sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .katex-sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .katex-sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .katex-sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .katex-sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .katex-sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .katex-sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .katex-sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .katex-sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .katex-sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .katex-sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .katex-sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .katex-sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .katex-sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .katex-sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .katex-sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .katex-sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .katex-sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .katex-sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .katex-sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .katex-sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .katex-sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .katex-sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .katex-sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .katex-sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .katex-sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .katex-sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .katex-sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .katex-sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .katex-sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .katex-sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .katex-sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .katex-sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .katex-sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .katex-sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .katex-sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .katex-sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .katex-sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .katex-sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .katex-sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .katex-sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .katex-sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .katex-sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .katex-sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .katex-sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .katex-sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .katex-sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .katex-sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .katex-sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .katex-sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .katex-sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .katex-sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .katex-sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .katex-sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .katex-sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .katex-sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .katex-sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .katex-sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .katex-sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .katex-sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .katex-sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .katex-sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .katex-sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .katex-sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .katex-sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .katex-sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .katex-sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .katex-sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .katex-sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .katex-sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .katex-sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .katex-sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .katex-sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .katex-sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .katex-sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .katex-sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .katex-sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .katex-sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .katex-sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .katex-sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .katex-sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .katex-sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .katex-sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .katex-sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .katex-accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .katex-accent .accent-body{position:relative}.katex .katex-accent .accent-body:not(.accent-full){width:0}.katex .katex-overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .katex-stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .katex-stretchy:after,.katex .katex-stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .katex-sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .reflectbox{display:inline-block;transform:scaleX(-1)}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.katex-tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.katex-tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}@layer tokens{:root{--r-xs:6px;--r-ctrl:11px;--r-card:16px;--r-pill:999px;--r-sm:var(--r-xs);--r-md:var(--r-ctrl);--r-lg:var(--r-card);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--fs-xs:10.5px;--fs-sm:11.5px;--fs-base:12.5px;--fs-md:13.5px;--fs-lg:17px;--fs-xl:22px;--lh-tight:1.35;--lh-base:1.62;--t-fast:.13s;--t-base:.22s;--ease:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--edu-ease-spring:var(--ease-spring);--brand:#1f9e8a;--brand-deep:#157e6e;--brand-soft:#e3f3ef;--brand-ring:#1f9e8a26;--mark:#ffd166;--mark-ink:#8a6410;--warn:#e2603f;--warn-deep:#b8482a;--warn-soft:#fbe6df;--amber:#c98a1b;--amber-soft:#fbf0d9;--info:#3b6fd1;--info-soft:#e7eefb;--ok:#3fa66a;--ok-soft:#e5f5ec;--font-ui:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-display:"LXGW WenKai", "霞鹜文楷", "Yuanti SC", STKaiti, "KaiTi", "楷体", serif;--font-data:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-body:"Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--font-round:"Yuanti SC", "Yuanti TC", "PingFang SC", sans-serif;--font-song:"Songti SC", "STSong", SimSun, serif;--shadow-1:0 1px 2px #2b26200d, 0 6px 18px #2b262012;--shadow-2:0 4px 10px #2b262014, 0 16px 36px #1f9e8a21;--shadow-pop:0 12px 40px #2b26202e, 0 2px 6px #2b262014;--elev-1:var(--shadow-1);--elev-2:var(--shadow-2);--edu-shadow:var(--shadow-1);--edu-shadow-hover:var(--shadow-2);--shadow-sheet:0 18px 40px #00000073;--subj-en:#2f7fa8;--subj-math:#c2762a;--subj-sci:#6f5bd0;--subj-other:#6b7683;--chart-1:#1f9e8a;--chart-1-soft:#e3f3ef;--chart-2:#c98a1b;--chart-2-soft:#fbf0d9;--chart-3:#3b6fd1;--chart-3-soft:#e7eefb;--chart-4:#e2603f;--chart-4-soft:#fbe6df;--chart-5:#a89c8c;--chart-5-soft:#f3ecdd;--chart-grid:#2b26201f;--chart-axis:#b3a794;--kit-h:32px;--kit-h-sm:26px;--kit-r:var(--r-ctrl);--kit-pad-x:10px;--kit-fs:var(--fs-base);--kit-ring:0 0 0 3px var(--brand-ring);--kit-arrow:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%236E655A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--bg:#fbf7ee;--bg-2:#f3ecdd;--surface:#fffdf8;--surface-2:#f7f1e4;--surface-3:#fdf9f0;--text:#2b2620;--text-2:#6e655a;--text-3:#9c9184;--text-invert:#fffdf8;--line:#ece3d4;--line-strong:#d9cdb8;--line-faint:#f4ede0;--focus:0 0 0 3px var(--brand-ring);--texture:radial-gradient(circle at 1px 1px, #2b26200b 1px, transparent 0), linear-gradient(90deg, transparent 38px, #e2603f1a 38px, #e2603f1a 39px, transparent 39px);--texture-size:22px 22px, 100% 100%;--edu-paper:var(--bg);--edu-paper-2:var(--surface);--edu-ink:var(--text);--edu-ink-2:var(--text-2);--edu-line:var(--line);--edu-brand:var(--brand);--edu-brand-deep:var(--brand-deep);--edu-brand-soft:var(--brand-soft);--edu-mark:var(--mark);--edu-warn:var(--warn);--edu-warn-soft:var(--warn-soft);--edu-ok:var(--ok);--edu-r:var(--r-card);--edu-r-sm:var(--r-ctrl);--edu-texture:var(--texture);--edu-texture-size:var(--texture-size);--paper:var(--surface);--paper-2:var(--surface-2);--paper-line:var(--line);--ink:var(--text);--ink-2:var(--text-2);--ink-3:var(--text-3);--cyan:var(--brand);--cyan-deep:var(--brand-deep);--cyan-wash:var(--brand-soft);--red:var(--warn);--red-deep:var(--warn-deep);--red-wash:var(--warn-soft);--red-line:var(--warn);--border-primary:var(--line-strong);--card:var(--surface);--sheet-paper:#fffbe8;--sheet-row:#fffdf6;--sheet-label:#f4ecd9;--sheet-head:#e9dfc9;--sheet-line:#16324f;--brand-navy:#0a1a60;--brand-navy-hover:#16266f;--brand-blue:#409ec4;--brand-blue-deep:#2a7e97;--brand-green:#91b44f;--brand-yellow:#f5c63b;--brand-pink:#d5396e;--brand-cream:#fffdf6;--brand-muted:#66707c}.stage,.board{--bg:#2c2721;--bg-2:#221e19;--surface:#35302a;--surface-2:#2b2721;--surface-3:#3d372f;--text:#f5eee2;--text-2:#bfb4a3;--text-3:#8e8474;--text-invert:#2b2620;--line:#423b32;--line-strong:#574e42;--line-faint:#362f28;--shadow-1:0 1px 2px #0000004d, 0 6px 18px #00000042;--shadow-2:0 6px 14px #0000005c, 0 18px 40px #00000052;--board:#2c2721;--board-2:#221e19;--board-line:#3a342c;--ticket:#a89c8c}}@layer base{*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}}@layer layout{:root{--board:#2c2721;--board-2:#221e19;--board-line:#3a342c;--ticket:#a89c8c}body{background:var(--edu-paper);color:var(--edu-ink)}.app-shell>.topnav,.bar.topnav{border-bottom:1px solid var(--edu-line);background:linear-gradient(#fffdf8 0%,#fbf7ee 100%);box-shadow:inset 0 1px #ffffffe6,0 6px 18px #2b26200b}.bar .plate{background:var(--edu-paper-2);border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);transition:border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);padding:5px 10px;box-shadow:0 1px 2px #2b26200f}.bar .plate:hover{border-color:#1f9e8a73;box-shadow:0 3px 10px #1f9e8a24}.bar .who b{color:var(--edu-ink);letter-spacing:.04em;font-weight:700}.bar .who span{color:var(--edu-ink-2)}.nav-groups{align-items:center}.nav-groups button{height:34px;color:var(--edu-ink-2);letter-spacing:.03em;transition:color var(--t-base) var(--ease), background var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);border-radius:999px;padding:0 14px;font-weight:600}.nav-groups button:hover{color:var(--edu-brand-deep);background:#1f9e8a14}.nav-groups button[aria-current=page]{background:var(--edu-brand-soft);color:var(--edu-brand-deep);box-shadow:inset 0 0 0 1px #1f9e8a2e}.nav-actions>.mini{border:1px solid var(--edu-line);background:var(--edu-paper-2);color:var(--edu-ink);border-radius:9px;box-shadow:0 1px 2px #2b26200d}.nav-actions>.mini:hover{color:var(--edu-brand-deep);background:#fff;border-color:#1f9e8a80}.nav-actions>.btn{border:1px solid var(--edu-brand-deep);background:linear-gradient(180deg, #24b09a 0%, var(--edu-brand) 100%);color:#fff;transition:transform var(--t-fast) var(--ease), box-shadow var(--t-base) var(--ease), filter var(--t-base) var(--ease);border-radius:9px;font-weight:600;box-shadow:0 2px 6px #1f9e8a47,inset 0 1px #ffffff47}.nav-actions>.btn:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 14px #1f9e8a57,inset 0 1px #ffffff47}.nav-actions>.btn:active:not(:disabled){transform:translateY(1px)}.nav-actions>.btn:disabled{filter:grayscale(.35)opacity(.75);box-shadow:none;cursor:default}.nav-search kbd{border:1px solid var(--edu-line);color:var(--edu-ink-2);background:#f5efe2}.subnav{background:var(--edu-paper);border-bottom:1px solid var(--edu-line);box-shadow:0 1px #2b262005}.subnav button{color:var(--edu-ink-2);transition:color var(--t-base) var(--ease), background var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease), border-color var(--t-base) var(--ease);border-radius:999px;padding:5px 13px;font-weight:600}.subnav button:hover{color:var(--edu-brand-deep);background:#1f9e8a12}.subnav button[aria-current=page]{background:var(--edu-paper-2);color:var(--edu-brand-deep);border-color:#1f9e8a52;box-shadow:0 1px 3px #2b262012}.source{border:1px solid var(--edu-line);background:var(--edu-paper-2);color:var(--edu-ink-2)}.source b{color:var(--edu-ink)}.tabbar{-webkit-backdrop-filter:blur(14px)saturate(1.5);border-top:1px solid var(--edu-line);background:#fffdf8f0;box-shadow:0 -6px 20px #2b26200f}.tabbar button{color:var(--edu-ink-2);border-radius:var(--edu-r-sm);transition:color var(--t-base) var(--ease), background var(--t-base) var(--ease)}.tabbar button i{transition:background var(--t-base) var(--ease), width var(--t-base) var(--ease-spring);background:#d9cfbd}.tabbar button[aria-current=page]{color:var(--edu-brand-deep);background:#1f9e8a0f}.tabbar button[aria-current=page] i{background:var(--edu-brand);width:26px}.m-scrim{-webkit-backdrop-filter:blur(2px);background:#2b26206b}.m-drawer{background:var(--edu-paper);border-top:1px solid var(--edu-line);border-radius:22px 22px 0 0;box-shadow:0 -18px 48px #2b26202e}.m-handle{background:#d9cfbd}.m-group-label{color:var(--edu-ink);font-family:var(--font-display);letter-spacing:.1em}.m-group-label span{color:var(--edu-ink-2)}.m-items button{border:1px solid var(--edu-line);background:var(--edu-paper-2);color:var(--edu-ink);transition:color var(--t-base) var(--ease), background var(--t-base) var(--ease), border-color var(--t-base) var(--ease);border-radius:999px}.m-items button:hover{color:var(--edu-brand-deep);border-color:#1f9e8a73}.m-items button[aria-current=page]{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-color:#1f9e8a47}.m-links{border-top-color:var(--edu-line)}.m-links .mini,.m-links .btn{border:1px solid var(--edu-line);background:var(--edu-paper-2);color:var(--edu-ink)}.m-empty{color:var(--edu-ink-2)}:focus-visible{outline-offset:2px;outline:2px solid #1f9e8a8c}@media (prefers-reduced-motion:reduce){.nav-groups button,.subnav button,.tabbar button,.tabbar button i,.bar .plate,.nav-actions>.btn,.m-items button{transition:none}}.layout{background:var(--edu-paper)}.roster,.editor{border-color:var(--edu-line);background:#fffdf8}.roster{border-right:1px solid var(--edu-line)}.stage{background:radial-gradient(120% 70% at 50% -10%, #fffdf812 0%, transparent 62%), var(--board);box-shadow:inset 0 1px #fffdf80f}.roster-head{border-bottom:1px solid var(--edu-line);background:linear-gradient(#fffefa 0%,#fffdf8 100%);padding:15px 14px 11px}.roster-head h2{font-family:var(--font-display);letter-spacing:.06em;color:var(--edu-ink);font-size:15px;font-weight:500}.roster-head h2 span{font-family:var(--font-data);letter-spacing:.02em;color:var(--edu-ink-2);opacity:.75;font-size:10px}.roster-dates{border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);background:#fdfaf2;gap:4px;margin-bottom:9px;padding:3px}.roster-dates input.date{color:var(--edu-ink);background:0 0;border:none;padding:4px 6px;font-size:11px}.roster-dates input.date:focus{background:#fff;border-radius:7px;outline:none;box-shadow:0 0 0 2px #1f9e8a29}.roster-dates .mini.step{color:var(--edu-ink-2);background:0 0;border:none;border-radius:7px;padding:4px 7px}.roster-dates .mini.step:hover{color:var(--edu-brand-deep);background:#fff;border:none}.roster-dates .mini{color:var(--edu-ink-2);background:0 0;border:none;border-radius:7px;font-size:11px}.roster-dates .mini:hover{color:var(--edu-brand-deep);background:#fff;border:none}.roster-dates .mini.active{background:var(--edu-brand-soft);color:var(--edu-brand-deep);font-weight:600;box-shadow:inset 0 0 0 1px #1f9e8a3d}.roster-progress{border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);background:linear-gradient(160deg,#fffefa 0%,#fbf6e9 100%);margin:0 2px 10px;padding:10px 12px 11px}.roster-progress-top{align-items:baseline;gap:6px;margin-bottom:7px;display:flex}.roster-progress-top b{font-family:var(--font-data);letter-spacing:-.02em;color:var(--edu-brand-deep);font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;line-height:1}.roster-progress-top i{font-family:var(--font-data);color:var(--edu-ink-2);font-size:11px;font-style:normal}.roster-progress-top .lbl{letter-spacing:.08em;color:var(--edu-ink-2);margin-left:auto;font-size:10.5px}.roster-att{color:var(--edu-brand-deep);cursor:pointer;background:#fff;border:1px solid #1f9e8a57;border-radius:999px;margin-left:8px;padding:1px 9px 2px;font-size:10.5px;font-weight:600;line-height:1.5;transition:background .16s,color .16s,border-color .16s}.roster-att:hover{background:#1f9e8a17}.roster-att.active{background:var(--edu-brand);border-color:var(--edu-brand);color:#fff}.roster-att.done{border-color:var(--edu-line);color:var(--edu-ink-2);cursor:pointer}.roster-progress-track{background:#efe7d6;border-radius:999px;height:5px;overflow:hidden}.roster-progress-fill{background:linear-gradient(90deg, #2bb49c 0%, var(--edu-brand) 100%);transform-origin:0;height:100%;transition:width .52s var(--edu-ease-spring);border-radius:999px}.roster-list{padding:6px 10px 26px}.roster-group{font-family:var(--font-display);letter-spacing:.14em;color:var(--edu-ink-2);opacity:.85;align-items:center;gap:7px;margin:14px 6px 7px;font-size:11px;font-weight:500;display:flex}.roster-group:after{content:"";background:linear-gradient(90deg, var(--edu-line) 0%, transparent 100%);flex:1;height:1px}.student{transition:background .18s ease, border-color .18s ease, box-shadow .22s ease, transform .22s var(--edu-ease-spring);background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:9px;margin-bottom:5px;padding:9px 11px 9px 13px;display:flex;position:relative}.student:before{content:"";background:var(--edu-line);width:3px;height:0;transition:height .22s var(--edu-ease-spring), background .2s ease;border-radius:0 3px 3px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.student.state-none:before{background:#c9ba9d;height:44%}.student.state-draft:before{background:var(--edu-mark);height:46%}.student.state-final:before,.student.state-sent:before{background:var(--edu-brand);height:54%}.student:hover{border-color:var(--edu-line);background:#fff;box-shadow:0 1px #2b262005,0 3px 10px #2b26200b}.student[aria-pressed=true]{background:#fff;border-color:#1f9e8a57;transform:translateY(-1px);box-shadow:inset 0 0 0 1px #1f9e8a1a,0 4px 14px #1f9e8a1f}.student[aria-pressed=true]:before{background:var(--edu-brand);height:62%}.student .nm b{letter-spacing:.01em;color:var(--edu-ink);font-size:13.5px;font-weight:600}.student .nm span{color:var(--edu-ink-2);opacity:.8;margin-top:2px;font-size:11px}.student .nm span.slot{color:var(--edu-brand-deep);opacity:1;font-size:10.5px}.student .nm span.course-chip,.student .nm span.subject-chip{border:1px solid var(--edu-line);color:var(--edu-ink-2);background:#fdfaf2;border-radius:999px;margin-top:3px;padding:1px 7px;font-size:10px}.student .nm span.subject-chip{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-color:#1f9e8a47}.student .nm span.group-chip{color:#8a6212;background:#fdf6e6;border:1px solid #c48a1852;border-radius:999px;margin-top:3px;padding:1px 7px;font-size:10px}.mark{color:var(--edu-ink-2);opacity:.85;font-size:10px}.mark i{background:0 0;border:1.5px dashed #c4b596;border-radius:50%;width:8px;height:8px}.mark.draft i{background:var(--edu-mark);border:none;box-shadow:0 0 0 3px #ffd16638}.mark.final i,.mark.sent i{background:var(--edu-brand);border:none}.mark .tick{color:var(--edu-brand-deep)}.student .nums em{background:var(--edu-warn-soft);color:#b8482a;border-radius:5px;padding:1px 5px;font-size:9.5px;font-style:normal}.student .nums em.owed{background:#e2603f21}.student .nums:empty{display:none}.roster-foot{border-top:1px solid var(--edu-line);color:var(--edu-ink-2);opacity:.8;background:#fdfaf2;font-size:10px}.new-student{border:1px dashed var(--edu-line);border-radius:var(--edu-r-sm);background:#fdfaf2}.new-student .mini.primary{background:linear-gradient(180deg, #24a992 0%, var(--edu-brand) 100%);color:#fff;border-color:#0000}.editor{border-left:1px solid var(--edu-line)}.editor-body{padding:16px 18px 28px}.editor-body h3{border-left:3px solid var(--edu-brand);font-family:var(--font-display);letter-spacing:.05em;color:var(--edu-ink);align-items:baseline;gap:8px;margin:22px 0 10px;padding-left:10px;font-size:14px;font-weight:500;display:flex}.editor-body h3:first-child{margin-top:4px}.editor-body h3 em{font-family:var(--font-ui);letter-spacing:0;color:var(--edu-ink-2);opacity:.7;font-size:10.5px;font-style:normal;font-weight:400}.editor .field label,.editor label{letter-spacing:.1em;color:var(--edu-ink-2);font-size:10.5px}.editor .field{margin-bottom:11px}.editor input[type=text],.editor input[type=date],.editor input[type=number],.editor select,.editor textarea{border:1px solid var(--edu-line);color:var(--edu-ink);background:#fff;border-radius:9px;transition:border-color .16s,box-shadow .16s,background .16s}.editor input[type=text]:hover:not(:disabled),.editor input[type=date]:hover:not(:disabled),.editor select:hover,.editor textarea:hover{border-color:#ddd1ba}.editor input[type=text]:focus,.editor input[type=date]:focus,.editor input[type=number]:focus,.editor select:focus,.editor textarea:focus{border-color:#1f9e8a9e;outline:none;box-shadow:0 0 0 3px #1f9e8a24}.editor input:disabled{color:var(--edu-ink-2);-webkit-text-fill-color:var(--edu-ink-2);opacity:1;background:#fdfaf2}.editor select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--edu-ink-2) 50%), linear-gradient(135deg, var(--edu-ink-2) 50%, transparent 50%);background-position:calc(100% - 14px) calc(50% + 1px),calc(100% - 9px) calc(50% + 1px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:26px}.editor-meta{border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);background:linear-gradient(160deg,#fffefa 0%,#fbf6e9 100%);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 12px;display:flex}.editor-meta-main{min-width:0;color:var(--edu-ink);flex-wrap:wrap;flex:1;align-items:center;gap:3px 8px;font-size:12px;display:flex}.editor-meta-main .who{font-family:var(--font-display);letter-spacing:.03em;color:var(--edu-ink);font-size:13.5px;font-weight:500}.editor-meta-main .dot{color:var(--edu-line)}.editor-meta-main .kv{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-family:var(--font-data);color:var(--edu-ink-2);font-size:10.5px;overflow:hidden}.editor-meta-main .kv b{color:var(--edu-ink);font-weight:600}.editor-meta-toggle{border:1px solid var(--edu-line);color:var(--edu-ink-2);cursor:pointer;background:#fff;border-radius:999px;flex:none;padding:3px 9px;font-size:10.5px;transition:color .16s,border-color .16s,background .16s}.editor-meta-toggle:hover{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-color:#1f9e8a80}.editor-meta-form{border-top:1px dashed var(--edu-line);animation:edu-meta-in .24s var(--edu-ease-spring);margin-top:11px;padding-top:11px}@keyframes edu-meta-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.editor .card{border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);background:#fff;margin-bottom:8px;padding:0;transition:border-color .18s,box-shadow .2s}.editor .card:focus-within{border-color:#1f9e8a70;box-shadow:0 0 0 3px #1f9e8a17}.editor .card .cap{border-radius:var(--edu-r-sm) var(--edu-r-sm) 0 0;background:#fdfaf2;border-bottom:1px solid #f4eddd;align-items:center;gap:6px;padding:7px 10px 7px 12px;display:flex}.editor .card .cap input{min-width:0;font-family:var(--font-display);letter-spacing:.04em;color:var(--edu-brand-deep);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;padding:2px 4px;font-size:12.5px;font-weight:500}.editor .card .cap input:hover:not(:disabled){border-color:var(--edu-line);background:#fff}.editor .card .cap input:focus{background:#fff;border-color:#1f9e8a80;box-shadow:0 0 0 2px #1f9e8a1a}.editor .card .cap input:disabled{color:var(--edu-ink-2);opacity:.8;background:0 0}.editor .card .cap .icon-btn{opacity:0;transition:opacity .16s}.editor .card:hover .cap .icon-btn,.editor .card:focus-within .cap .icon-btn{opacity:.55}.editor .card .cap .icon-btn:hover{opacity:1;color:#b8482a}.editor .card textarea{width:100%;font-size:13px;line-height:var(--sec-lh,1.62);color:var(--edu-ink);resize:vertical;background:#fff;border:none;border-radius:0;padding:10px 13px;display:block}.editor .card textarea:focus{box-shadow:none;background:#fffefa;outline:none}.editor .card textarea::placeholder{color:#b8ac96}.editor .card .foot{border-radius:0 0 var(--edu-r-sm) var(--edu-r-sm);opacity:.62;background:#fdfaf2;border-top:1px solid #f7f1e4;align-items:center;gap:8px;padding:5px 10px 6px 13px;transition:opacity .18s;display:flex}.editor .card:hover .foot,.editor .card:focus-within .foot{opacity:1}.editor .card .foot .sw{color:var(--edu-ink-2);font-size:10.5px}.editor .card .foot .mini{margin-left:auto}.editor .recite-box{border-top:1px dashed var(--edu-line);border-radius:0 0 var(--edu-r-sm) var(--edu-r-sm);background:linear-gradient(#f4fbf9 0%,#eef8f5 100%);padding:8px 12px 9px}.editor .recite-cap{color:var(--edu-brand-deep);opacity:.85;margin-bottom:6px;font-size:10px;line-height:1.5}.editor .recite-row{color:var(--edu-ink);align-items:center;gap:7px;padding:2px 0;font-size:11.5px;display:flex}.editor .recite-row .sw{color:var(--edu-brand-deep);flex:none;font-size:10.5px}.editor .recite-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.editor .recite-badge{color:var(--edu-brand-deep);background:#fff;border-radius:999px;flex:none;padding:1px 6px;font-size:9.5px;box-shadow:inset 0 0 0 1px #1f9e8a38}.editor .chips{flex-wrap:wrap;gap:5px;display:flex}.editor .chips .chip{border:1px solid var(--edu-line);color:var(--edu-ink-2);transition:background .15s ease, border-color .15s ease, color .15s ease, transform .18s var(--edu-ease-spring);background:#fdfaf2;border-radius:999px;padding:3px 9px;font-size:11px}.editor .chips .chip:hover{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-color:#1f9e8a6b;transform:translateY(-1px)}.editor .chips .chip:active{transform:translateY(0)scale(.97)}.editor .att-field .seg-ctrl{width:100%}.editor .att-hint{color:var(--edu-ink-2);opacity:.8;margin-top:5px;font-size:10.5px;line-height:1.5;display:block}.editor .seg-ctrl-sm .seg-ctrl-item{padding:3px 9px;font-size:10.5px}.editor-advanced{border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);background:#fdfaf2;margin:20px 0 4px;overflow:hidden}.editor-advanced>summary{cursor:pointer;font-family:var(--font-display);letter-spacing:.06em;color:var(--edu-ink-2);align-items:center;gap:8px;padding:10px 13px;font-size:12.5px;font-weight:500;list-style:none;transition:color .16s;display:flex}.editor-advanced>summary::-webkit-details-marker{display:none}.editor-advanced>summary:after{content:"▾";margin-left:auto;font-size:10px;transition:transform .2s}.editor-advanced[open]>summary:after{transform:rotate(180deg)}.editor-advanced>summary:hover{color:var(--edu-brand-deep)}.editor-advanced>summary .cnt{font-family:var(--font-data);color:var(--edu-ink-2);background:#efe7d6;border-radius:999px;padding:0 6px;font-size:9.5px;font-style:normal}.editor-advanced-body{border-top:1px dashed var(--edu-line);padding:2px 13px 14px}.editor-advanced-body h3{margin:14px 0 8px;font-size:12.5px}.editor-foot{border-top:1px solid var(--edu-line);background:linear-gradient(#fffefa 0%,#fffdf8 100%);box-shadow:0 -6px 18px #2b26200d}.editor-foot .state{font-family:var(--font-data);color:var(--edu-ink-2);font-size:10.5px}.last-lesson{border:1px solid var(--edu-line);border-left:3px solid var(--edu-brand);border-radius:var(--edu-r-sm);background:linear-gradient(#f4fbf9 0%,#fffdf8 54%);margin:12px 0 4px;padding:10px 12px 8px}.last-lesson.loading,.last-lesson.empty{border-left-color:var(--edu-line);background:#fdfaf2}.last-lesson .cap{background:var(--edu-brand-soft);color:var(--edu-brand-deep);letter-spacing:.06em;border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:600}.last-lesson .ll-date{font-family:var(--font-display);color:var(--edu-brand-deep);font-size:14px;font-weight:500}.last-lesson .ll-pills em{border:1px solid var(--edu-line);color:var(--edu-ink-2);background:#fff;font-size:10.5px}.last-lesson .ll-pills em.warn{background:var(--edu-warn-soft);color:#b8482a;border-color:#e2603f52}.last-lesson .ll-sec{border-top:1px dashed #efe8d8;font-size:12.5px}.last-lesson .ll-lbl{color:var(--edu-ink-2);flex:0 0 92px;font-weight:500}.last-lesson .ll-lbl,.last-lesson .ll-line i{font-family:var(--font-display)}.last-lesson .ll-line i{color:var(--edu-brand-deep);font-weight:500}.last-lesson .ll-foot{border-top:1px dashed #efe8d8;margin-top:6px;padding-top:7px}.last-lesson .ll-foot .cap{font-family:var(--font-ui);color:var(--edu-ink-2);font-size:10.5px}.last-lesson .ll-head .mini.active{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-color:#1f9e8a6b;font-weight:600}.last-lesson .ll-head .mini.active:hover{border-color:var(--edu-brand);background:#d7efe9}.last-lesson .ll-toggle{color:var(--edu-brand-deep);text-underline-offset:3px;background:0 0;border:none;padding:2px 4px;font-size:10.5px;-webkit-text-decoration:underline #1f9e8a59;text-decoration:underline #1f9e8a59}.last-lesson .ll-toggle:hover{-webkit-text-decoration-color:var(--edu-brand);text-decoration-color:var(--edu-brand)}.last-lesson .ll-brief{color:var(--edu-ink);align-items:baseline;gap:7px;margin:8px 0 2px;font-size:12.5px;line-height:1.55;display:flex}.last-lesson .ll-brief-cap{letter-spacing:.04em;color:var(--edu-ink-2);background:#efe7d6;border-radius:999px;flex:none;padding:0 6px;font-size:10px}.prep .btn.primary,.prep .prep-add .btn.primary{background:linear-gradient(180deg, #24a992 0%, var(--edu-brand) 100%);color:#fff;border-color:#0000;box-shadow:0 1px 2px #157e6e3d,inset 0 1px #ffffff38}.prep .btn.primary:hover{background:linear-gradient(#2bb49c 0%,#1a8b79 100%)}.prep .student.prep-card{border-radius:11px;align-items:flex-start;padding:10px 11px 10px 13px}.prep .student.prep-card:not([aria-pressed=true]) .prep-hw,.prep .student.prep-card:not([aria-pressed=true]) .prep-flip{display:none}.prep .student.prep-card[aria-pressed=true] .prep-hw,.prep .student.prep-card[aria-pressed=true] .prep-flip{animation:prep-card-open .22s var(--edu-ease-spring)}@keyframes prep-card-open{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.prep .prep-last{font-family:var(--font-data);color:var(--edu-ink-2);opacity:.82;margin-top:3px;font-size:10px}.prep .prep-att em{font-family:var(--font-ui);color:#8a6114;background:#ffd1662e;border:1px solid #c98a1b47;border-radius:999px;margin:0 4px 3px 0;padding:1px 7px;font-size:10px;font-style:normal}.prep .prep-hw{gap:4px;margin-top:6px}.prep .prep-hw .cap{color:var(--edu-ink-2);opacity:.85;font-size:10px}.prep .prep-hw .mini{border-radius:999px;padding:2px 8px;font-size:10px}.prep .prep-hw .mini.active{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-color:#0000;font-weight:600;box-shadow:inset 0 0 0 1px #1f9e8a4d}.prep .prep-hw.attention .mini.active{color:#8a6114;background:#ffd1664d;border-color:#0000;box-shadow:inset 0 0 0 1px #c98a1b59}.prep .prep-hw-note{border:1px solid var(--edu-line);background:#fff;border-radius:999px;height:22px;padding:0 7px;font-size:10.5px}.prep .prep-flip .mini{border:1px dashed var(--edu-line);color:var(--edu-ink-2);background:0 0;border-radius:999px;padding:2px 9px;font-size:10px}.prep .prep-flip .mini:hover{background:var(--edu-brand-soft);color:var(--edu-brand-deep);border-style:solid;border-color:#1f9e8a73}.prep .roster-head .mute{color:var(--edu-ink-2);opacity:.85;font-size:10.5px;line-height:1.5}.prep .prep-who .mute{white-space:normal;text-overflow:clip;color:var(--edu-ink-2);margin-top:3px;font-size:11.5px;line-height:1.55;overflow:visible}.prep .prep-who b{font-family:var(--font-display);letter-spacing:.03em;color:var(--edu-ink);font-size:15px;font-weight:500}.prep .prep-state{border-radius:999px;font-size:10.5px}@media (width<=1280px){.editor{min-height:74vh}.stage{min-height:58vh}}.roster-list::-webkit-scrollbar{width:9px}.editor-body::-webkit-scrollbar{width:9px}.roster-list::-webkit-scrollbar-thumb{background-color:#ddd1ba;background-clip:padding-box;border:3px solid #0000;border-radius:999px}.editor-body::-webkit-scrollbar-thumb{background-color:#ddd1ba;background-clip:padding-box;border:3px solid #0000;border-radius:999px}.roster-list::-webkit-scrollbar-thumb:hover{background-color:#c9bba0}.editor-body::-webkit-scrollbar-thumb:hover{background-color:#c9bba0}.roster-list::-webkit-scrollbar-track{background:0 0}.editor-body::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){.student,.student:before,.editor .chips .chip,.roster-progress-fill,.editor-advanced>summary:after{transition:none}.student[aria-pressed=true]{transform:none}.editor-meta-form{animation:none}}.roster-batch{background:#e3f3ef7a;border:1px dashed #1f9e8a57;border-radius:11px;margin-bottom:10px;padding:8px 9px 9px}.roster-batch-title{letter-spacing:.05em;color:var(--edu-brand-deep);margin-bottom:5px;font-size:10px;font-weight:700}.roster-batch-item{text-align:left;cursor:pointer;width:100%;transition:border-color var(--t-fast,.14s) var(--ease,ease), transform var(--t-fast,.14s) var(--ease,ease);background:#fffdf8;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:5px 8px;display:flex}.roster-batch-item+.roster-batch-item{margin-top:4px}.roster-batch-item:hover{border-color:#1f9e8a6b;transform:translate(1px)}.roster-batch-item .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--edu-ink);flex:1;font-size:11.5px;font-weight:600;overflow:hidden}.roster-batch-item .n{font-family:var(--font-data);color:var(--edu-ink-2);font-size:10.5px}.roster-batch-item .go{color:var(--edu-brand-deep);font-size:10px;font-weight:600}.batch{border-left:1px solid var(--edu-line);background:#fffdf8;flex-direction:column;min-width:0;height:100%;min-height:0;padding:12px 14px 0;display:flex;overflow:auto}.batch-head{border-bottom:1px dashed var(--edu-line);align-items:flex-start;gap:10px;margin-bottom:11px;padding-bottom:10px;display:flex}.batch-head h2{font-family:var(--font-display);letter-spacing:.02em;color:var(--edu-ink);margin:0;font-size:16px;font-weight:600}.batch-meta{color:var(--edu-ink-2);margin-top:2px;font-size:11px;display:block}.batch-head-actions{margin-left:auto}.batch-card{border:1px solid var(--edu-line);border-radius:var(--edu-r-sm);background:var(--edu-paper-2);margin-bottom:12px;padding:11px 12px 12px;box-shadow:0 1px 2px #2b26200a}.batch-cardhead{align-items:baseline;gap:8px;margin-bottom:9px;display:flex}.batch-cardhead>b{font-family:var(--font-display);color:var(--edu-ink);font-size:13.5px;font-weight:600}.batch-cardhead .mute{color:var(--edu-ink-2);font-size:10.5px;line-height:1.5}.batch-cardhead .grow{flex:1}.batch-shared{grid-template-columns:172px minmax(0,1fr) minmax(0,1fr);align-items:start;gap:9px;display:grid}.batch-field{flex-direction:column;gap:4px;min-width:0;display:flex}.batch-field>label{letter-spacing:.04em;color:var(--edu-ink-2);font-size:10.5px;font-weight:600}.batch-field>textarea{min-height:74px;font-size:12px;line-height:1.66}.batch .batch-table th{font-size:10px}.batch .batch-table td{padding:7px 10px}.batch-name{color:var(--edu-ink);font-size:12.5px;font-weight:600}.batch .seg-ctrl-sm{--seg-h:26px}.batch .seg-ctrl-sm .seg-ctrl-item{padding:3px 8px;font-size:10.5px}.batch-foot{border-top:1px solid var(--edu-line);background:linear-gradient(#fffdf8b3,#fffdf8 34%);align-items:center;gap:10px;width:100%;margin-top:auto;padding:10px 0 12px;display:flex;position:sticky;bottom:0}.batch-count{color:var(--edu-ink-2);font-size:11.5px}.batch-count b{font-family:var(--font-data);color:var(--edu-brand-deep);font-size:13px}.batch-save{min-width:148px}@media (width<=1180px){.batch-shared{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.batch-shared>.batch-field:first-child{grid-column:1/-1}.batch-shared>.batch-field:first-child select{max-width:240px}}.batch-stage{justify-content:center;align-items:center;padding:28px;display:flex}.batch-stage-note{text-align:center;border:1px dashed #fffdf83d;border-radius:14px;max-width:330px;padding:22px 20px}.batch-stage-note>b{font-family:var(--font-display);letter-spacing:.02em;color:#fffdf8;margin-bottom:8px;font-size:14px;font-weight:600;display:block}.batch-stage-note>span{color:#fffdf8b3;font-size:11.5px;line-height:1.74;display:block}.batch .batch-table td:first-child .mute{text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;display:block;overflow:hidden}.layout.batch-mode{grid-template-columns:clamp(280px,19vw,340px) minmax(0,1fr) minmax(260px,300px)}@media (width<=1180px){.layout.batch-mode{grid-template-columns:clamp(260px,22vw,320px) minmax(0,1fr)}.layout.batch-mode>.batch-stage{display:none}}}@layer variant{.module{color:var(--text);background-color:var(--bg);background-image:var(--texture);background-size:var(--texture-size);background-attachment:fixed}.module h2{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:.06em;color:var(--text);font-weight:700}.module h3{font-family:var(--font-display);font-size:var(--fs-md);letter-spacing:.1em;color:var(--text)}.module h3:before{background:var(--brand)}.module h3 .mute{font-family:var(--font-ui);letter-spacing:0}.module .module-head{border-bottom:1px dashed var(--line);padding-bottom:10px}.module .module-head h2{color:var(--text)}.module .card,.module .panel-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1);transition:transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease)}.module .card:after,.module .panel-card:after{content:"";border-radius:inherit;opacity:0;transition:opacity var(--t-base) var(--ease);pointer-events:none;z-index:0;background:radial-gradient(380px at 50% 0,#1f9e8a1a,#0000 70%);position:absolute;inset:0}.module .card>*,.module .panel-card>*{z-index:1;position:relative}.module .card:hover,.module .panel-card:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}.module .card:hover:after,.module .panel-card:hover:after{opacity:1}.module .card-spotlight.panel-card{--spotlight-color:#1f9e8a29;background-color:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1)}.module .card-spotlight.panel-card:hover{box-shadow:var(--shadow-2);transform:translateY(-3px)}.module .stat{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1);transition:transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease), border-color var(--t-base) var(--ease)}.module .stat:hover{border-color:var(--brand);box-shadow:var(--shadow-2);transform:translateY(-3px)}.module .stat:before{background:var(--brand)}.module .stat.info:before{background:var(--info)}.module .stat.soft:before{background:var(--amber)}.module .stat.warn:before{background:var(--warn)}.module .stat b{color:var(--text)}.module .stat b.neg{color:var(--warn)}.module .subj-sum{background-color:var(--surface);border:1px solid var(--line);border-left-width:3px}.module .fee-rules{border-color:var(--line);background-color:var(--brand-soft)}.module .fee-rules.ok{border-left-color:var(--brand)}.module .fee-rules.bad{border-left-color:var(--warn);background-color:var(--warn-soft)}.module .fee-target{background-color:var(--brand-soft);border-left:3px solid var(--brand)}.module .fee-amount-hero .amount-input{border-color:var(--line);background-color:var(--surface)}.module .fee-amount-hero.over .amount-input{border-color:var(--warn);background-color:var(--warn-soft)}.module .fee-field>input,.module .fee-field>select,.module .fee-field>textarea{border-color:var(--line);background-color:var(--surface)}.module .fee-field.over>input{border-color:var(--warn);background-color:var(--warn-soft)}.module .table .pos{color:var(--ok)}.module .table .neg{color:var(--warn)}.module .timetable th.today{background-color:var(--brand-soft);color:var(--brand-deep)}.module .timetable .cell-empty:hover{background-color:#1f9e8a12}.module .grid-bar,.module .timetable td,.module .timetable th{border-color:var(--line)}.module .todo-head{color:var(--text)}.module .todo-head:hover b{color:var(--brand-deep)}.module .todo-head .count,.module .load-head .count{border-radius:var(--r-pill);background-color:var(--brand-soft);color:var(--brand-deep)}.module .todo-group ul{color:var(--text-2)}.module .todo-group li::marker{color:var(--line-strong)}.module .load .dot{background-color:var(--line-strong)}.module .load .dot.done{background-color:var(--ok)}.module .load .dot.cancelled{background-color:var(--text-3)}.module .stat .k,.module .stat .s,.module .bar-item span,.module .kv,.module .load li .t{color:var(--text-2)}.module .kv b,.module .load-head b{color:var(--text)}@media (width<=640px){.module{padding:14px 14px 32px}.module-head{flex-wrap:wrap;row-gap:4px}.module-head h2{white-space:nowrap;flex:none}.module-head .mute{flex:1 0 100%}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:10px 11px}.stat b{overflow-wrap:anywhere;font-size:21px}.module .subj-sum-row,.module .two-col{grid-template-columns:1fr}}.edu-reveal{opacity:0;filter:blur(8px);animation:.7s cubic-bezier(.2,.7,.3,1) forwards edu-rise;transform:translateY(14px)}@keyframes edu-rise{to{opacity:1;filter:blur();transform:none}}.edu-d1{animation-delay:50ms}.edu-d2{animation-delay:.14s}.edu-d3{animation-delay:.23s}.edu-d4{animation-delay:.32s}.edu-d5{animation-delay:.41s}.edu-d6{animation-delay:.5s}@media (prefers-reduced-motion:reduce){.module .card,.module .panel-card,.module .card-spotlight.panel-card,.module .stat{transition:none}.module .card:hover,.module .panel-card:hover,.module .card-spotlight.panel-card:hover,.module .stat:hover{transform:none}.module .card:after,.module .panel-card:after{opacity:0!important}.edu-reveal{opacity:1!important;filter:none!important;animation:none!important;transform:none!important}}}@media print{.exam-doc,.exam-doc *{visibility:visible}.exam-doc{width:auto;height:auto;display:block;position:static;overflow:visible;transform:none}}
