.sb{--u: 27px;--bw: 56px;--rw: 74px;--pad: 14px;--barh: 9px;--footh: 44px;--sb-frame: #6b4f35;--sb-frame-dk: #4a3624;--sb-frame-lt: #a8825c;--sb-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--bar-top: calc(2 * var(--u) + 8px);--low-top: calc(var(--bar-top) + var(--barh) + 2px)}.sb.compact{--u: 24px;--bw: 50px;--rw: 66px;--pad: 12px;--barh: 8px;--footh: 36px}.sb-head{margin-bottom:18px}.sb-eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.sb-title{margin:0 0 8px;font-size:26px;font-weight:600;letter-spacing:-.01em}.sb-lead{margin:0;color:var(--ink-2);font-size:14.5px;max-width:62ch}.sb-modes{display:inline-flex;background:var(--surface-2);border-radius:11px;padding:4px;gap:4px;margin-bottom:14px}.sb-mode{border:0;background:transparent;border-radius:8px;padding:9px 16px;font:600 13.5px inherit;color:var(--ink-2);cursor:pointer}.sb-mode[aria-pressed=true]{background:var(--surface);color:var(--primary-600);box-shadow:var(--shadow-sm)}.sb-mode:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sb-stage{display:flex;flex-direction:column;align-items:center;gap:16px}.sb.compact .sb-stage{gap:12px}.sb-picker{width:100%}.sb-ctl-label{display:block;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.sb-ctl-label.sm{font-size:11px;letter-spacing:.04em;color:var(--ink-2)}.sb-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.sb-chip{display:inline-flex;align-items:center;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 13px;font:600 13px inherit;color:var(--ink-2);cursor:pointer;transition:background .12s,border-color .12s}.sb-chip:hover{border-color:var(--primary)}.sb-chip[aria-pressed=true]{background:var(--primary-050);border-color:var(--primary);color:var(--primary-600)}.sb-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sb-chip.mono{font-family:var(--sb-mono);font-size:12.5px;padding:6px 11px}.sb-block-note{font-size:12.5px;color:var(--muted);margin:-6px 0 12px}.sb-split{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.sb.compact .sb-split{grid-template-columns:1fr;gap:0}@media (max-width: 620px){.sb-split{grid-template-columns:1fr}}.sb-task{width:100%;max-width:560px;display:flex;flex-direction:column;gap:10px}.sb-task-line{font-family:var(--sb-mono);font-size:24px;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.sb.compact .sb-task-line{font-size:20px}.sb-status{padding:11px 14px;border-radius:10px;font-size:13.5px;line-height:1.5;text-align:center}.sb-status.wait{background:var(--primary-050);color:var(--primary-600)}.sb-status.good{background:var(--success-050);color:#1c7a50;font-weight:600}.sb-status.hint{background:var(--warning-050);color:#9a6b12;text-align:left}.sb-f{font-family:var(--sb-mono);font-weight:700}.sb-formula-line{margin-top:6px}.sb-abacus{position:relative;display:flex;border-radius:12px;padding:var(--pad) var(--pad) calc(var(--pad) + var(--footh));background:linear-gradient(180deg,var(--sb-frame),var(--sb-frame-dk));box-shadow:inset 0 0 0 1px var(--sb-frame-lt),var(--shadow);touch-action:manipulation}.sb-rod{position:relative;width:var(--rw);height:calc(var(--low-top) + 5 * var(--u))}.sb-rod:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;transform:translate(-50%);border-radius:2px;background:var(--sb-frame-lt);opacity:.7}.sb-bar{position:absolute;left:var(--pad);right:var(--pad);top:calc(var(--pad) + var(--bar-top));height:var(--barh);border-radius:2px;z-index:3;background:linear-gradient(180deg,var(--sb-frame-lt),var(--sb-frame-dk));box-shadow:0 1px #ffffff24 inset}.sb-bead{position:absolute;left:50%;width:var(--bw);height:var(--u);margin-left:calc(var(--bw) / -2);z-index:2;border:0;padding:0;cursor:pointer;clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);background:linear-gradient(160deg,#d9d2c6,#c4bbab);transition:transform .22s cubic-bezier(.34,.9,.3,1),background .22s}.sb-bead.on{background:linear-gradient(160deg,#4b3ce0,var(--primary))}.sb-bead:hover{filter:brightness(1.12)}.sb-bead:focus-visible{outline:2px solid #fff;outline-offset:1px}.sb-bead.up{top:calc(var(--bar-top) - 2 * var(--u))}.sb-bead.up.on{transform:translateY(var(--u))}.sb-bead.low{top:calc(var(--low-top) + var(--k) * var(--u))}.sb-bead.low.off{transform:translateY(var(--u))}.sb-foot{position:absolute;left:-2px;right:-2px;bottom:calc(4px - var(--footh));text-align:center;pointer-events:none}.sb-place{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.1;color:#fff9}.sb-foot b{display:block;font-family:var(--sb-mono);font-size:17px;letter-spacing:0;margin-top:3px;line-height:1;color:#fff}.sb.compact .sb-place{font-size:9.5px;letter-spacing:.02em}.sb.compact .sb-foot b{font-size:15px;margin-top:2px}.sb-total{display:inline-flex;align-items:baseline;gap:9px}.sb-total-cap{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.sb-total b{font-family:var(--sb-mono);font-size:26px;line-height:1;letter-spacing:-.01em;color:var(--ink)}.sb-free-hint{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.5;text-align:center;max-width:52ch}.sb.compact .sb-free-hint{font-size:12.5px;padding:0 2px}.sb-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.sb-note{margin-top:24px;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:13px}@media (prefers-reduced-motion: reduce){.sb-bead{transition:none}}.abacus-page{max-width:940px}.abacus-btn{display:grid;place-items:center;width:32px;height:32px;flex:none;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--ink-2);cursor:pointer}.abacus-btn:hover{background:var(--surface-2);color:var(--primary-600)}.abacus-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.lang-dd{position:relative;display:inline-block}.lang-dd .lang-trigger{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);border-radius:10px;padding:7px 9px;cursor:pointer;font:600 12.5px inherit;letter-spacing:.03em}.lang-dd .lang-trigger:hover{background:var(--surface-2)}.lang-dd .lang-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.lang-dd .lang-trigger .globe{color:var(--muted);flex:none}.lang-dd .lang-trigger .code{min-width:20px;text-align:left}.lang-dd .lang-trigger .chev{color:var(--muted);flex:none;transition:transform .15s ease}.lang-dd .lang-trigger[aria-expanded=true] .chev{transform:rotate(180deg)}.lang-dd .lang-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:172px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #0f172029;padding:6px;z-index:40;animation:lang-pop .14s ease-out;transform-origin:top right}@keyframes lang-pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.lang-dd .lang-opt{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;padding:9px 10px;border-radius:8px;font:500 14px inherit;color:var(--ink)}.lang-dd .lang-opt:hover{background:var(--surface-2)}.lang-dd .lang-opt:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.lang-dd .lang-opt .badge{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--muted);background:var(--surface-2);border-radius:6px;padding:3px 6px;min-width:30px;text-align:center}.lang-dd .lang-opt.active{color:var(--primary);font-weight:600}.lang-dd .lang-opt.active .badge{background:var(--primary-050);color:var(--primary)}.lang-dd .lang-opt .name{flex:1}.lang-dd .lang-opt .check{color:var(--primary);flex:none}.copy-btn{display:inline-grid;place-items:center;vertical-align:middle;margin-left:6px;padding:3px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;transition:color .12s ease,background .12s ease}.copy-btn:hover{background:var(--surface-2);color:var(--primary)}.copy-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.copy-btn.copied{color:var(--success)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f17206b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:20px;overflow-y:auto;animation:modal-fade .14s ease-out}.modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 60px #0f172047;width:100%;max-width:420px;padding:20px 22px 22px;margin:auto;animation:modal-pop .16s ease-out}.modal.wide{max-width:620px}.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.modal-title{margin:0;font-size:19px;letter-spacing:-.01em;flex:1}.modal-x{border:0;background:var(--surface-2);color:var(--ink-2);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:13px;line-height:1;display:grid;place-items:center;flex:none}.modal-x:hover{background:#e3e7ee;color:var(--ink)}.modal-x:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.modal-body{color:var(--ink-2);font-size:14.5px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.form-section+.form-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.form-eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;color:var(--primary)}.form-section-hint{color:var(--muted);font-size:12.5px;margin:3px 0 12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .span2{grid-column:1 / -1}.field-hint{font-size:12px;color:var(--muted)}.optional-tag{color:var(--muted);font-weight:500;font-size:11px;margin-left:6px}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.modal-overlay,.modal{animation:none}}@media (max-width: 560px){.form-grid{grid-template-columns:1fr}}.shell{display:grid;grid-template-columns:220px 1fr;height:100vh;overflow:hidden;transition:grid-template-columns .15s ease}.shell.nav-closed{grid-template-columns:68px 1fr}.shell.nav-closed .side{padding:16px 8px}.shell.nav-closed .side .label{display:none}.shell.nav-closed .side .logo{justify-content:center}.shell.nav-closed .side .nav a{justify-content:center;padding:10px}.shell.nav-closed .side .nav a .ic{width:auto;font-size:17px}.shell.nav-closed .side .role{display:none}.nav-toggle{border:1px solid var(--border);background:var(--surface);color:var(--ink-2);width:36px;height:36px;border-radius:9px;cursor:pointer;font-size:16px;line-height:1;display:grid;place-items:center}.nav-toggle:hover{background:var(--surface-2);color:var(--ink)}.nav-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.side{background:#150c6b;color:#cdc9f0;padding:16px 12px;display:flex;flex-direction:column}.side .logo{color:#fff;font-weight:800;letter-spacing:-.02em;padding:6px 10px 18px;font-size:20px;display:flex;align-items:center;gap:10px;text-decoration:none;border-radius:10px;transition:opacity .12s ease}.side .logo:hover{opacity:.85}.side .logo:focus-visible{outline:2px solid #fff;outline-offset:2px}.side .nav{display:flex;flex-direction:column;gap:2px}.side .nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:#bdb7e8;text-decoration:none;font-size:13.5px;font-weight:500}.side .nav a:hover{background:#ffffff0f;color:#fff}.side .nav a.on{background:#ffffff1a;color:#fff}.side .nav a .ic{width:18px;text-align:center;opacity:.9}.side .role{margin-top:auto;padding:10px;font-size:11px;color:#8079c0;text-transform:uppercase;letter-spacing:.1em}.content{display:flex;flex-direction:column;min-width:0;min-height:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;height:60px;padding:0 22px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.topbar .avatar{width:34px;height:34px;border-radius:10px;background:var(--primary-050);color:var(--primary-600);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}.user-menu{position:relative}.user-btn{display:flex;align-items:center;gap:10px;max-width:240px;padding:4px 8px 4px 6px;border:1px solid transparent;background:transparent;border-radius:10px;cursor:pointer}.user-btn:hover{background:var(--surface-2)}.user-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.user-btn .uinfo{display:flex;flex-direction:column;line-height:1.2;min-width:0;text-align:left}.user-btn .uname{font-size:13.5px;font-weight:600;color:var(--ink);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-btn .urole{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.user-btn .chev{color:var(--muted);flex:none;transition:transform .15s ease}.user-btn .chev.open{transform:rotate(180deg)}.user-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:250px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #0f172029;padding:8px;z-index:30;animation:modal-pop .14s ease-out}.ud-head{display:flex;align-items:center;gap:10px;padding:8px}.ud-head .avatar.big{width:42px;height:42px;border-radius:11px;font-size:15px}.ud-info{min-width:0}.ud-name{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ud-role{font-size:12px;color:var(--muted)}.ud-school{margin-top:6px;padding:10px 8px;border-top:1px solid var(--border)}.ud-school-name{font-size:12px;color:var(--muted);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ud-school-code{display:flex;align-items:center;justify-content:space-between;gap:8px}.ud-school-label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.ud-school-value{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:15px;color:var(--primary)}.ud-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;padding:10px 8px;border-radius:8px;cursor:pointer;font:600 13.5px inherit;color:var(--ink-2);margin-top:6px;border-top:1px solid var(--border)}.ud-item:hover{background:var(--surface-2)}.ud-item.danger{color:var(--danger)}@media (max-width: 640px){.user-btn .uinfo{display:none}}.main{padding:22px;flex:1;min-height:0;overflow-y:auto}.page-fill{display:flex;flex-direction:column;height:100%}.page-fill>.panel{flex:1;min-height:0;display:flex;flex-direction:column}.page-fill>.panel>.pb{flex:1;min-height:0}.page-fill>.panel>.pb.scroll-y{max-height:none}.lang-switcher{display:inline-flex;gap:4px;background:var(--surface-2);padding:3px;border-radius:999px}.lang-switcher button{border:0;background:transparent;color:var(--ink-2);cursor:pointer;font:600 12px inherit;letter-spacing:.04em;padding:5px 10px;border-radius:999px}.lang-switcher button.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.page-head h1{margin:0;font-size:22px;letter-spacing:-.01em}.page-head .searchbar{flex:1;max-width:340px}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f0c2d73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:modal-fade .15s ease-out}@media (max-width: 900px){.shell,.shell.nav-closed{grid-template-columns:1fr}.side{position:fixed;top:0;left:0;bottom:0;z-index:50;width:264px;max-width:82vw;padding:16px 12px;flex-direction:column;transform:translate(-100%);transition:transform .22s ease;box-shadow:0 20px 60px #0f0c2d66}.shell.mobile-open .side{transform:none}.shell.nav-closed .side .label{display:inline}.shell.nav-closed .side .nav a{justify-content:flex-start;padding:9px 10px}.shell.nav-closed .side .logo{justify-content:flex-start}.side .nav{flex-direction:column;gap:2px}.main{padding:16px}.topbar{padding:0 14px}.page-head h1{font-size:19px}}@media (max-width: 560px){.main{padding:12px}.user-btn{padding:4px}}.flashintro{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:300px;width:100%}.flashintro-cap{text-transform:uppercase;letter-spacing:.3em;font-size:12px;font-weight:700;color:#8079c0;margin-bottom:10px}.flashintro-num{font-size:164px;font-weight:800;letter-spacing:-.045em;line-height:1;color:#fff;min-height:168px;animation:flash-in .55s cubic-bezier(.2,.8,.2,1)}.flashintro-num.sum{color:#8fb2ff;animation:sum-in .6s cubic-bezier(.2,.8,.2,1)}.flashintro-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;min-height:34px}.fchip{background:#ffffff1a;color:#d8d3f5;border-radius:8px;padding:5px 11px;font-size:16px;font-weight:700;animation:chip-in .3s ease-out}@keyframes flash-in{0%{opacity:0;transform:translateY(14px) scale(.9)}to{opacity:1;transform:none}}@keyframes sum-in{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes chip-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.flashintro-num,.fchip{animation:none}}@media (max-width: 820px){.flashintro{min-height:180px}.flashintro-num{font-size:96px;min-height:100px}}.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-page .brandside{background:radial-gradient(120% 120% at 0% 0%,#3423d6,#1d0fb0 60%,#120a72);color:#eeecfb;padding:48px;display:flex;flex-direction:column}.login-page .brand{color:#fff;font-weight:800;font-size:34px;letter-spacing:-.03em;display:flex;align-items:center;gap:13px}.brand-mark{display:block;flex:none;border-radius:7px}.login-page .tagline{color:#c4bef2;margin:14px 0 0;max-width:26ch}.login-page .signup-line{font-size:13px;text-align:center}.login-page .formside{padding:48px;display:flex;flex-direction:column;justify-content:center;gap:14px}.login-page .formside>*{width:100%;max-width:380px;margin-left:auto;margin-right:auto}.login-page .formhead{display:flex;align-items:center;justify-content:space-between;gap:12px}.login-page .formhead h1{margin:0;font-size:26px;letter-spacing:-.02em}.login-page .loginform{display:flex;flex-direction:column;gap:14px}@media (max-width: 820px){.login-page{grid-template-columns:1fr}.login-page .brandside{padding:32px}.login-page .bignum{font-size:64px}}.filter-dd{position:relative;display:inline-block}.filter-dd .filter-trigger{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);border-radius:10px;padding:7px 10px;cursor:pointer;font:600 12.5px inherit}.filter-dd .filter-trigger:hover{background:var(--surface-2)}.filter-dd .filter-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.filter-dd .filter-trigger .funnel{color:var(--muted);flex:none}.filter-dd .filter-trigger .cur{white-space:nowrap}.filter-dd .filter-trigger .chev{color:var(--muted);flex:none;transition:transform .15s ease}.filter-dd .filter-trigger[aria-expanded=true] .chev{transform:rotate(180deg)}.filter-dd .filter-trigger.applied{border-color:var(--primary);color:var(--primary);background:var(--primary-050)}.filter-dd .filter-trigger.applied .funnel{color:var(--primary)}.filter-dd .filter-trigger .dot{width:6px;height:6px;border-radius:50%;background:var(--primary);flex:none}.filter-dd .filter-menu{position:absolute;left:0;top:calc(100% + 6px);min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #0f172029;padding:6px;z-index:40;animation:filter-pop .14s ease-out;transform-origin:top left}@keyframes filter-pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.filter-dd .filter-opt{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;padding:9px 10px;border-radius:8px;font:500 14px inherit;color:var(--ink)}.filter-dd .filter-opt:hover{background:var(--surface-2)}.filter-dd .filter-opt:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.filter-dd .filter-opt.active{color:var(--primary);font-weight:600}.filter-dd .filter-opt .name{flex:1}.filter-dd .filter-opt .check{color:var(--primary);flex:none}.skel{display:block;position:relative;overflow:hidden;background:var(--surface-2)}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:skel-shimmer 1.25s ease-in-out infinite}.skel-table{display:flex;flex-direction:column}.skel-row{display:flex;align-items:center;gap:16px;padding:13px 10px;border-top:1px solid var(--border)}.skel-row:first-child{border-top:0}.skel-row>.skel:first-child{flex:2}.skel-row>.skel{flex:1}@keyframes skel-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion: reduce){.skel:after{animation-duration:2.4s}}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid var(--border);background:var(--surface-2);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius)}.pager-range{font-size:12.5px;color:var(--muted)}.pager-controls{display:inline-flex;align-items:center;gap:4px}.pager-btn{min-width:32px;height:32px;padding:0 8px;display:inline-grid;place-items:center;border:1px solid var(--border);background:var(--surface);color:var(--ink-2);border-radius:8px;cursor:pointer;font:600 13px inherit}.pager-btn:hover:not(:disabled):not(.on){background:var(--surface-2)}.pager-btn.on{background:var(--primary);color:#fff;border-color:var(--primary);cursor:default}.pager-btn:disabled{opacity:.45;cursor:not-allowed}.pager-btn:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.pager-gap{padding:0 4px;color:var(--muted)}.toast-viewport{position:fixed;bottom:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 32px));pointer-events:none}@media (max-width: 560px){.toast-viewport{left:12px;right:12px;bottom:12px;max-width:none}}.toast{position:relative;overflow:hidden;pointer-events:auto;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #0f172029;padding:12px 12px 12px 14px;animation:toast-in .22s cubic-bezier(.2,.8,.2,1)}@keyframes toast-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.toast .toast-ic{flex:none}.toast-success .toast-ic{color:var(--success)}.toast-error .toast-ic{color:var(--danger)}.toast-info .toast-ic{color:var(--primary)}.toast .toast-msg{flex:1;font:500 14px inherit;color:var(--ink);line-height:1.35}.toast .toast-x{flex:none;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:grid;place-items:center}.toast .toast-x:hover{background:var(--surface-2);color:var(--ink)}.toast .toast-x:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.toast:after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;animation:toast-bar 5s linear forwards}.toast-success:after{background:var(--success)}.toast-error:after{background:var(--danger)}.toast-info:after{background:var(--primary)}@keyframes toast-bar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}.toast:after{animation:none;display:none}}.tabs{display:flex;align-items:stretch;gap:4px;margin:16px 0 0;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:10px 14px 11px;border-bottom:2px solid transparent;margin-bottom:-1px;font:600 13.5px inherit;color:var(--muted);text-decoration:none;transition:color .12s,border-color .12s}.tab:hover{color:var(--ink-2)}.tab.on{color:var(--ink);border-bottom-color:var(--primary)}.tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:6px 6px 0 0}.tab-n{font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--surface-2);color:var(--ink-2);border-radius:999px;padding:1px 8px}.tab.on .tab-n{background:var(--primary-050);color:var(--primary-600)}.loader{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px 0;color:var(--muted);font-size:14px}.loader.inline{padding:10px 0}.spinner{width:22px;height:22px;border:2.5px solid var(--surface-2);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:1.6s}}.chip-group{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 13px;font:600 13px inherit;color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,border-color .12s}.chip:hover{border-color:var(--primary)}.chip .chip-box{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--border);display:grid;place-items:center;flex:none;color:#fff}.chip.on{background:var(--primary-050);border-color:var(--primary);color:var(--primary-600)}.chip.on .chip-box{background:var(--primary);border-color:var(--primary)}.type-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.type-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:16px 12px;border:1.5px solid var(--border);background:var(--surface);border-radius:14px;cursor:pointer;transition:border-color .12s,background .12s,transform .06s}.type-card:hover{border-color:var(--primary)}.type-card:active{transform:scale(.98)}.type-card.on{border-color:var(--primary);background:var(--primary-050);box-shadow:0 0 0 3px var(--primary-050)}.type-card-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--surface-2);color:var(--ink-2);transition:background .12s,color .12s}.type-card.on .type-card-ic{background:var(--primary);color:#fff}.type-card-name{font-weight:700;font-size:14.5px;color:var(--ink)}.type-card.on .type-card-name{color:var(--primary-600)}.type-card-hint{font-size:11.5px;color:var(--muted);line-height:1.3}.type-card-check{position:absolute;top:8px;right:8px;width:18px;height:18px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center}@media (max-width: 560px){.type-cards{grid-template-columns:1fr}.type-card{flex-direction:row;text-align:left;gap:12px}}.type-cards.compact .type-card{flex-direction:row;text-align:left;gap:9px;padding:9px 11px}.type-cards.compact .type-card-ic{width:30px;height:30px;border-radius:9px}.type-cards.compact .type-card-hint{display:none}.type-cards.compact .type-card-name{font-size:13px}.type-cards.compact .type-card-check{display:none}.cfg-eyebrow{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.cfg-block{margin-bottom:16px}.cfg-block:last-child{margin-bottom:0}.seg{display:inline-flex;background:var(--surface-2);border-radius:11px;padding:4px;gap:4px;width:100%}.seg button{flex:1;border:0;background:transparent;border-radius:8px;padding:9px 12px;font:600 13.5px inherit;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.seg button.on{background:var(--surface);color:var(--primary-600);box-shadow:var(--shadow-sm)}.pick-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;max-height:220px;overflow-y:auto;padding:2px}.pick-row{display:flex;align-items:center;gap:9px;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:8px 10px;cursor:pointer;font-size:13.5px;text-align:left}.pick-row.on{background:var(--primary-050);border-color:var(--primary)}.pick-row .member-ava{width:26px;height:26px;font-size:12px}.pick-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.member-ava{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary-050);color:var(--primary-600);font-weight:700;font-size:13px;flex:none}.level-mini{display:inline-flex;gap:6px;flex-wrap:wrap}.level-mini .lp{font-size:11px;font-weight:700;padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.cfg-fields{margin-top:16px}.theme-pick-items{margin-top:8px;padding:8px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.chip.sm{padding:5px 11px;font-size:12.5px;min-width:44px;justify-content:center}.theme-owned{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.theme-owned-row{flex:1;font-size:12.5px;color:var(--muted);line-height:1.5}.theme-owned-row b{color:var(--primary-600)}.theme-owned-row b:after{content:" · "}.theme-owned .fact{font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--surface);color:var(--ink-2);border:1px solid var(--border)}.theme-owned .fact.strong{background:var(--primary);color:#fff;border-color:var(--primary)}.cfg-preview{border:1px solid var(--border);border-radius:14px;background:var(--surface-2);padding:12px 14px;margin-top:16px;transition:opacity .18s ease}.cfg-preview.busy{opacity:.55}.cfg-preview-head{display:flex;align-items:center;gap:8px;color:var(--ink-2);margin-bottom:10px}.cfg-preview-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cfg-preview-head .spacer{flex:1}.cfg-preview-skel{height:92px;border-radius:10px;background:var(--surface);opacity:.6}.cfg-score{margin-bottom:12px}.cfg-score-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cfg-score-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cfg-score-val{font-weight:800;font-size:26px;line-height:1.1;letter-spacing:-.01em}.cfg-score-val i{font-style:normal;font-size:13px;font-weight:700;color:var(--muted);margin-left:2px}.cfg-score-meter{margin-top:7px;height:6px;border-radius:999px;background:var(--surface);overflow:hidden}.cfg-score-meter>span{display:block;height:100%;border-radius:999px;transition:width .25s ease}.cfg-score.band-STARTER .cfg-score-val{color:#2e7d32}.cfg-score.band-EASY .cfg-score-val{color:#1565c0}.cfg-score.band-MEDIUM .cfg-score-val{color:var(--primary-600)}.cfg-score.band-HARD .cfg-score-val{color:#e65100}.cfg-score.band-EXPERT .cfg-score-val{color:#c62828}.cfg-score.band-STARTER .cfg-score-meter>span{background:#2e7d32}.cfg-score.band-EASY .cfg-score-meter>span{background:#1565c0}.cfg-score.band-MEDIUM .cfg-score-meter>span{background:var(--primary)}.cfg-score.band-HARD .cfg-score-meter>span{background:#e65100}.cfg-score.band-EXPERT .cfg-score-meter>span{background:#c62828}.band{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}.band-STARTER{background:#e8f5e9;color:#2e7d32}.band-EASY{background:#e3f2fd;color:#1565c0}.band-MEDIUM{background:var(--primary-050);color:var(--primary-600)}.band-HARD{background:#fff3e0;color:#e65100}.band-EXPERT{background:#fdecea;color:#c62828}.cfg-preview-line{font-size:12.5px;color:var(--ink-2);line-height:1.5;margin-bottom:10px}.cfg-preview-line b{color:var(--primary-600)}.cfg-preview-line span{color:var(--muted)}.cfg-preview-facts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.cfg-preview-facts .fact{font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--surface);color:var(--ink-2);border:1px solid var(--border)}.cfg-preview-facts .fact.strong{background:var(--primary);color:#fff;border-color:var(--primary)}.cfg-preview-samples{display:grid;gap:6px}.cfg-preview-samples .sample{min-height:40px}.cfg-preview-samples{margin-top:12px}.cfg-preview-samples .sample{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;background:var(--surface);border-radius:10px;padding:9px 12px;font-size:14px;border:1px solid var(--border)}.sample-terms{display:inline-flex;flex-wrap:wrap;gap:5px;justify-content:flex-start;min-width:0;flex:0 1 auto}.sample-terms .term{min-width:36px;text-align:center;background:var(--surface-2);border-radius:7px;padding:2px 7px;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--ink)}.sample-terms .term:first-child{background:var(--primary-050);color:var(--primary-600)}.term-op{display:inline-flex;align-items:baseline;gap:5px}.term-op>i{font-style:normal;color:var(--muted);font-weight:700}.sample-eq{flex:none;color:var(--muted);padding-inline:2px}.sample-a{flex:none}.sample-eq{color:var(--muted)}.sample-a{font-weight:800;color:var(--primary-600);font-size:15px}.cfg-preview-foot{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:12px;color:var(--muted)}.spin{animation:cfg-spin .9s linear infinite}@keyframes cfg-spin{to{transform:rotate(360deg)}}@media (max-width: 560px){.pick-list{grid-template-columns:1fr 1fr}}.level-spread{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:12px}.level-mini .lp{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cfg-sublabel{font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:6px}.form-grid.triple{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 720px){.form-grid.triple{grid-template-columns:1fr 1fr}}.quick-pick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-pick .cfg-sublabel{display:inline-flex;align-items:center;gap:5px}.chip.qp{padding:6px 14px}.chip.qp:disabled{opacity:.5;cursor:default}.chip.qp-EASY:hover{border-color:#2e7d32;color:#2e7d32}.chip.qp-MEDIUM:hover{border-color:var(--primary);color:var(--primary-600)}.chip.qp-HARD:hover{border-color:#c62828;color:#c62828}.cfg-section{padding-top:14px;margin-top:14px;border-top:1px solid var(--border)}.cfg-section-title{font-size:12.5px;font-weight:800;color:var(--ink);margin-bottom:12px}.cfg-section>.cfg-block:last-child{margin-bottom:0}.chip.qp{gap:6px}.chip.qp .qp-n{font-size:10.5px;font-weight:800;opacity:.75}.qp-hint{font-size:11.5px;flex-basis:100%}@media (min-width: 900px){.qp-hint{flex-basis:auto}}.quick-pick{margin-top:-4px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px dashed var(--border)}.cfg-facts{margin:0 0 4px;display:grid;gap:2px}.cfg-fact{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr);gap:10px;align-items:baseline;padding:3px 0;border-bottom:1px dashed var(--border)}.cfg-fact:last-child{border-bottom:0}.cfg-fact dt{font-size:11.5px;color:var(--muted)}.cfg-fact dd{margin:0;font-size:12.5px;font-weight:600;color:var(--ink)}.member-ava{width:30px;height:30px;border-radius:8px;flex:none;background:var(--primary-050);color:var(--primary-600);display:grid;place-items:center;font-weight:700;font-size:13px}.member-link{display:inline-flex;align-items:center;gap:10px;border:0;padding:0;background:transparent;font:600 13.5px inherit;cursor:pointer;text-align:left}.member-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}.group-coach{flex:none;display:flex;flex-direction:column;gap:6px;align-items:flex-end;text-align:right}.group-coach .coach-name{font-weight:600}.select-wrap{display:inline-block}.select-wrap .coach-select{min-width:220px;border:1px solid var(--border);border-radius:10px;padding:9px 34px 9px 12px;font:14.5px inherit;background-color:var(--surface);color:var(--ink)}.select-wrap .coach-select:focus{outline:2px solid var(--primary-050);border-color:var(--primary)}@media (max-width: 640px){.detail-hero{flex-wrap:wrap}.group-coach{width:100%;align-items:stretch;text-align:left}.select-wrap,.select-wrap .coach-select{width:100%}}.add-list{display:flex;flex-direction:column;gap:2px;max-height:340px;overflow-y:auto}.add-row{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;padding:9px 8px;border-radius:8px;font:600 14px inherit;color:var(--ink)}.add-row:hover{background:var(--surface-2)}.add-row:disabled{opacity:.5;cursor:default}.add-row .chev{color:var(--primary);flex:none}.mstat{display:inline-flex;flex-direction:column;gap:1px;line-height:1.3}.mstat-v{font-weight:600;font-variant-numeric:tabular-nums}.mstat-s{font-size:11.5px;color:var(--muted)}.mstat-s.warn{color:#b23a20;font-weight:600}.proj{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0b0730;color:#fff;display:flex;flex-direction:column}.proj-bar{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#ffffff0f;border-bottom:1px solid rgba(255,255,255,.1);flex:none}.proj-bar .title{min-width:0}.proj-bar h2{margin:0;font-size:clamp(15px,1.5vw,20px);font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}.proj-bar h2 .mode-ic{color:#8f86f5;flex:none}.proj-bar .sub{color:#b9b4e6;font-size:12.5px;margin-top:2px;display:flex;align-items:center;gap:5px}.proj-bar .sub .sub-ic{opacity:.8}.proj-bar .spacer{flex:1}.proj-btn{height:46px;border:0;border-radius:12px;padding:0 20px;font:700 15px inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#ffffff1a;color:#fff;white-space:nowrap}.proj-btn:hover:not(:disabled){background:#ffffff29}.proj-btn:disabled{opacity:.45;cursor:default}.proj-btn.primary{background:#5b4bff}.proj-btn.primary:hover:not(:disabled){background:#6d5eff}.proj-btn.icon{width:46px;padding:0;flex:none}.proj-stage{flex:1;display:flex;flex-direction:column;padding:16px 18px 18px;overflow:hidden;gap:12px;min-height:0}.proj-step{flex:none;text-align:center;color:#cfcbf2;font-size:clamp(13px,1.4vw,17px);font-weight:700;text-transform:uppercase;letter-spacing:.12em}.proj-step b{color:#fff}.proj-dots{display:flex;gap:7px;justify-content:center;flex:none}.proj-dots .d{width:9px;height:9px;border-radius:50%;background:#fff3;transition:background .15s,transform .15s}.proj-dots .d.done{background:#ffffff80}.proj-dots .d.now{background:#6d5eff;transform:scale(1.35)}.pcol-chips{display:flex;flex-wrap:wrap;gap:6px;align-content:center;justify-content:center;padding:4px}.pcol-chips .lc{font-size:clamp(10px,5.5cqmin,15px);font-weight:700;padding:3px 10px;border-radius:999px;background:#ffffff1a;color:#d9d6f5;border:1px solid rgba(255,255,255,.12)}.pcol-chips .lc.accent{background:color-mix(in srgb,var(--c) 22%,transparent);border-color:var(--c);color:#fff}.proj-cols{flex:1;display:grid;gap:clamp(8px,1vw,16px);grid-auto-rows:1fr;min-height:0}.dsheet{flex:1;min-height:0;width:100%;overflow:auto;display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--rows, 5),min-content);grid-auto-columns:minmax(0,420px);align-content:center;justify-content:center;gap:4px clamp(12px,2.5vw,40px);padding:4px 2px}.dsheet-row{display:grid;grid-template-columns:2.4em minmax(0,1fr) 2.6em;align-items:center;gap:clamp(8px,1vw,16px);width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:clamp(5px,.8vh,9px) 12px;color:inherit;font:inherit;cursor:pointer;font-variant-numeric:tabular-nums;transition:background .1s,opacity .1s}.dsheet-row:hover{background:#ffffff0f}.dsheet-row:focus-visible{outline:2px solid #8f86f5;outline-offset:1px}.dsheet-row.done{opacity:.45}.dsheet-row.now{background:#ffffff1c;border-color:#ffffff3d;opacity:1}.dsheet-n{text-align:center;padding:1px 0;border-radius:999px;background:#ffffff1f;color:#cfcbf2;font-size:clamp(11px,.9vw,14px);font-weight:700}.dsheet-row.now .dsheet-n{background:#5b4bff;color:#fff}.dsheet-q{font-size:clamp(15px,1.6vw,26px);font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsheet-a{text-align:right;color:#a7a1dd;font-weight:700;font-size:clamp(13px,1.2vw,19px)}.pcol{container-type:size;position:relative;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-top:4px solid var(--c, #5b8cff);border-radius:16px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;min-height:0;overflow:hidden}.pcol-head{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;flex:none}.pcol-ava{width:clamp(22px,9cqmin,40px);height:clamp(22px,9cqmin,40px);border-radius:50%;background:var(--c, #5b8cff);color:#0b0730;display:grid;place-items:center;font-weight:800;font-size:clamp(11px,4.5cqmin,20px);flex:none}.pcol-name{font-size:clamp(13px,6cqmin,26px);font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.pcol-body{flex:1;display:grid;place-items:center;width:100%;min-height:0}.pcol-flash{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.03em;font-size:clamp(40px,40cqmin,200px);line-height:1}.pcol-flash .term{display:inline-block;animation:proj-pop .32s ease-out}.pcol-list{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-variant-numeric:tabular-nums;font-weight:700;font-size:min(16cqmin,calc(86cqh / var(--n, 5)));overflow:hidden}.pcol-list .q{color:#eceaff;line-height:1.05}.pcol-list .idx{color:#8f8ac2;font-size:.6em;margin-right:6px}.pcol-entry{width:100%;display:flex;flex-direction:column;gap:5px;align-items:center}.pcol-cap{font-size:clamp(10px,4.5cqmin,13px);color:#b9b4e6;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.pcol-entry input{width:min(100%,150px);text-align:center;font-variant-numeric:tabular-nums;font-size:clamp(18px,8cqmin,28px);font-weight:800;padding:7px 8px;border-radius:11px;border:2px solid rgba(255,255,255,.22);background:#fffffff5;color:#10123a}.pcol-entry input::placeholder{color:#b6bad0;font-weight:600}.pcol-entry input:focus{outline:3px solid var(--c, #6c5cff);border-color:var(--c, #6c5cff)}.pcol-entry input.ok{border-color:#46d17f;background:#e9fbf1}.pcol-entry input.bad{border-color:#ff6b73;background:#fdeaea}.pcol-entry.multi{gap:6px;justify-content:flex-start;min-height:0;flex:1;overflow:hidden}.pcol-entry.multi .mgrid{flex:1;width:100%;min-height:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));grid-auto-rows:minmax(0,1fr);gap:4px 6px;align-content:stretch;overflow:hidden}.pcol-entry.multi .mrow{display:flex;align-items:center;gap:5px;width:100%;min-height:0}.pcol-entry.multi .mn{width:clamp(14px,5cqmin,22px);text-align:right;color:#b9b4e6;font-weight:700;font-size:clamp(10px,4.5cqmin,14px);flex:none}.pcol-entry.multi input{width:100%;min-width:0;font-size:clamp(12px,6cqmin,20px);padding:3px 5px;border-radius:8px}.pcol-done{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:100%;text-align:center}.pdone-ic{width:clamp(34px,16cqmin,56px);height:clamp(34px,16cqmin,56px);border-radius:50%;background:#46d17f2e;color:#7ff0af;display:grid;place-items:center}.pdone-t{font-size:clamp(14px,7cqmin,22px);font-weight:800;color:#eafff2}.pdone-s{font-size:clamp(11px,5cqmin,15px);color:#b9b4e6}.pcol-mark{font-size:clamp(11px,4.5cqmin,15px);font-weight:700;min-height:16px;display:flex;align-items:center;gap:5px}.pcol-mark.ok{color:#7ff0af}.pcol-mark.bad{color:#ff9ba0}.pcol-score{display:inline-flex;align-items:center;gap:5px;font-size:clamp(11px,4.5cqmin,14px);color:#8fe6b4;font-weight:700}.pcol-score svg{flex:none;opacity:.9}.pcol-compute{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.02em;color:#cfcbf2;opacity:.55;font-size:clamp(36px,30cqmin,120px)}.proj-results{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px}.proj-results h1{font-size:clamp(26px,4vw,44px);margin:4px 0}.res-grid{width:100%;max-width:820px;display:flex;flex-direction:column;gap:10px}.res-row{display:flex;align-items:center;gap:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-left:4px solid var(--c, #5b8cff);border-radius:14px;padding:13px 16px}.res-row .rava{width:34px;height:34px;border-radius:50%;background:var(--c, #5b8cff);color:#0b0730;display:grid;place-items:center;font-weight:800;font-size:14px;flex:none}.res-row .rname{flex:1;font-size:clamp(15px,1.8vw,21px);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.res-row .rbar{flex:2;height:12px;border-radius:999px;background:#ffffff1f;overflow:hidden}.res-row .rbar>span{display:block;height:100%;background:linear-gradient(90deg,#5b4bff,#46d17f)}.res-row .rpct{font-variant-numeric:tabular-nums;font-weight:800;font-size:clamp(16px,2vw,24px);min-width:104px;text-align:right}@keyframes proj-pop{0%{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.pcol-flash .term{animation:none}}@media (max-width: 560px){.proj-cols{grid-template-columns:1fr 1fr!important;grid-auto-rows:minmax(140px,1fr);overflow-y:auto}.proj-bar{flex-wrap:wrap}}.pdf-dd{position:relative;display:inline-block}.pdf-dd .pdf-chev{margin-left:2px;color:var(--muted);transition:transform .15s ease}.pdf-dd .btn[aria-expanded=true] .pdf-chev{transform:rotate(180deg)}.pdf-dd .pdf-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:172px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #0f172029;padding:6px;z-index:40;animation:pdf-pop .14s ease-out;transform-origin:top right}@keyframes pdf-pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.pdf-dd .pdf-opt{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;cursor:pointer;text-align:left;padding:9px 10px;border-radius:8px;font:500 14px inherit;color:var(--ink)}.pdf-dd .pdf-opt:hover{background:var(--surface-2)}.pdf-dd .pdf-opt:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.pdf-dd .pdf-opt .badge{font-size:11px;font-weight:700;letter-spacing:.03em;color:var(--muted);background:var(--surface-2);border-radius:6px;padding:3px 6px;min-width:30px;text-align:center}.pdf-dd .pdf-opt .name{flex:1}.pdf-dd .pdf-opt .pdf-hidden-check{visibility:hidden}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);padding:56px 0;text-align:center}.empty-state p{margin:0}.flash-run{display:flex;flex-direction:column;align-items:center;gap:18px;padding:20px 24px 24px}.flash-head{width:100%;max-width:520px;display:flex;flex-direction:column;gap:8px;align-items:center}.flash-progress{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.08em}.flash-bar{width:100%;height:4px;border-radius:999px;background:var(--surface-2);overflow:hidden}.flash-bar>i{display:block;height:100%;background:var(--primary);border-radius:999px;transition:width .3s ease}.flash-slot{width:100%;max-width:520px;display:grid;grid-template-rows:240px 60px;gap:16px}.flash-stage{display:grid;place-items:center;background:#140a5e;border-radius:20px;overflow:hidden}.flash-term{color:#fff;font-size:132px;font-weight:800;letter-spacing:-.04em;line-height:1;animation:flash-pop .28s ease-out}.flash-term.sm{font-size:88px}.flash-term.muted-q{color:#ffffff59;animation:none}.flash-lead{display:grid;place-items:center;gap:6px}.flash-lead-txt{color:#fff9;font-size:13px;text-transform:uppercase;letter-spacing:.1em}.flash-answer{display:flex;gap:10px;align-items:stretch;transition:opacity .18s ease}.flash-answer.hidden{opacity:0;pointer-events:none}.flash-answer input{flex:1;text-align:center;font-size:26px;font-weight:700;border:1px solid var(--border);border-radius:14px;padding:10px 14px}.flash-answer input:focus{outline:2px solid var(--primary-050);border-color:var(--primary)}.flash-answer .btn{padding-inline:20px}@keyframes flash-pop{0%{opacity:0;transform:translateY(8px) scale(.94)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.flash-term{animation:none}}.flash-left{min-width:40px;display:grid;place-items:center;font-weight:800;font-size:15px;color:var(--muted);background:var(--surface-2);border-radius:12px;padding:0 8px}@media (max-width: 560px){.flash-slot{grid-template-rows:190px 56px}.flash-term{font-size:92px}.flash-term.sm{font-size:68px}}.static-run{display:flex;flex-direction:column;gap:16px;align-items:center;padding:8px 4px 4px}.static-card{width:100%;max-width:300px;display:flex;flex-direction:column;background:var(--surface-2, #f6f7fb);border:1px solid var(--border, #e6e8f0);border-radius:14px;padding:18px 22px;overflow:auto;min-height:240px;max-height:46vh;align-items:center;justify-content:center}.col-card{align-items:stretch;justify-content:center;gap:4px}.static-rule{border-top:2px solid var(--ink, #12132e);margin:6px 0 2px;opacity:.85}.static-terms{display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.01em;line-height:1.15}.static-terms.col{align-items:flex-end}.static-terms.dict{align-items:center}.static-terms span{font-size:clamp(20px,6vw,34px)}.static-answer{display:flex;align-items:center;justify-content:center;gap:10px}.static-answer.in-card{justify-content:flex-end}.static-answer.in-card input{width:118px;font-size:26px;padding:6px 8px}.static-answer.in-card .eq{font-size:26px}.static-answer .eq{font-size:34px;font-weight:800;color:var(--muted, #8a90a6)}.static-answer input{width:160px;text-align:center;font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;padding:8px 10px;border-radius:12px;border:2px solid var(--border, #d9dcea);background:#fff;color:var(--text, #12132e)}.static-answer input:focus{outline:3px solid var(--primary-050, #c9c2ff);border-color:var(--primary, #6c5cff)}.static-hint{font-size:13px;color:var(--muted, #8a90a6);font-weight:600;margin-top:-6px}.static-next{min-width:160px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:16px;padding:11px 18px}.dict-card{width:100%;max-width:440px;border:1px solid var(--border, #e6e8f0);border-radius:16px;background:var(--surface-2, #f6f7fb);overflow:hidden}.dict-card-head{background:var(--primary, #6c5cff);color:#fff;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;padding:9px 14px;text-align:center;display:flex;align-items:center;justify-content:center;gap:7px}.dict-row{min-height:130px;display:flex;align-items:center;justify-content:center;padding:24px 18px 6px;text-align:center;font-variant-numeric:tabular-nums;font-weight:800;font-size:clamp(22px,6vw,34px);letter-spacing:.01em;word-spacing:.18em;line-height:1.3;color:var(--text, #12132e)}.dict-answer{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px 20px}.dict-answer .lbl{font-weight:700;color:var(--muted, #6b7186);font-size:16px}.dict-answer input{width:150px;text-align:center;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;padding:8px 10px;border-radius:12px;border:2px solid var(--border, #d9dcea);background:#fff;color:var(--text, #12132e)}.dict-answer input:focus{outline:3px solid var(--primary-050, #c9c2ff);border-color:var(--primary, #6c5cff)}.static-head{width:100%;max-width:360px;display:flex;flex-direction:column;gap:8px;align-items:center}:root{--ground: #f4f6fc;--surface: #ffffff;--surface-2: #eceff8;--border: #dee3f1;--ink: #141830;--ink-2: #383f5c;--muted: #6a7290;--brand: #1800ac;--primary: #2417c2;--primary-600: #1c1297;--primary-050: #e9e8f9;--primary-100: #d9d6f2;--sky: #3f82f4;--sky-050: #e8f0fe;--accent: #f0663f;--accent-050: #fdede8;--success: #2e9e6b;--success-050: #e5f4ec;--warning: #e0a126;--warning-050: #fbf1dd;--danger: #db4a55;--danger-050: #fbe7e8;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(23, 32, 46, .05), 0 8px 24px rgba(23, 32, 46, .06);--shadow-sm: 0 1px 2px rgba(23, 32, 46, .06);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.5;color:var(--ink)}*{box-sizing:border-box}html{overscroll-behavior:none}body{margin:0;background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior:none}a{color:var(--primary-600)}.num{font-variant-numeric:tabular-nums}.brand-mark{display:block;flex:none;border-radius:6px}.btn{border:0;border-radius:10px;padding:10px 15px;font:600 14px inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-600)}.btn.ghost{background:transparent;color:var(--primary-600);border:1px solid var(--border)}.btn.accent{background:var(--accent);color:#fff}.btn.danger{background:var(--danger);color:#fff}.btn.sm{padding:7px 11px;font-size:13px;border-radius:8px}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:600;color:var(--ink-2)}.field label .req{color:var(--danger);margin-left:2px}.field input,.field select{border:1px solid var(--border);border-radius:10px;padding:11px 12px;font:15px inherit;background-color:var(--surface);color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid var(--primary-050);border-color:var(--primary)}.field.err input,.field.err select{border-color:var(--danger);background-color:var(--danger-050)}.field select{padding-right:34px}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236a7290' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:34px;cursor:pointer}select:disabled{opacity:.6;cursor:default}.field .msg{font-size:12px;color:var(--danger)}.banner{background:var(--danger-050);border:1px solid #f1c7ca;color:#9c2c34;border-radius:10px;padding:10px 12px;font-size:13px}.banner.ok{background:var(--success-050);border-color:#bfe3cf;color:#1c7a50}.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:999px}.pill.live{background:var(--accent-050);color:#b23a20}.pill.ok{background:var(--success-050);color:#1c7a50}.pill.wait{background:var(--warning-050);color:#9a6b12}.pill.mut{background:var(--surface-2);color:var(--muted)}.pill.dot:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel .ph{padding:13px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.panel .ph h4{margin:0;font-size:14px}.panel .pb{padding:6px;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;padding:9px 10px}td{padding:10px;border-top:1px solid var(--border)}tr:nth-child(2n) td{background:#fafbfd}tr.row-click{cursor:pointer}tr.row-click td{transition:background .06s ease}tr.row-click:hover td{background:var(--primary-050)}tr.row-click:active td{background:var(--primary-100)}.pb.scroll-y{max-height:60vh;overflow-y:auto}.pb.scroll-y thead th{position:sticky;top:0;z-index:2;background:var(--surface)}.pb.scroll-y thead th:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:8px;background:var(--surface)}.pb.scroll-y thead th:after{content:"";position:absolute;left:0;right:0;top:100%;height:1px;background:var(--border)}.pb.scroll-y.fade-b{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 38px),transparent);mask-image:linear-gradient(to bottom,#000 calc(100% - 38px),transparent)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm)}.kpi .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.kpi .v{font-size:27px;font-weight:700;margin-top:6px;letter-spacing:-.02em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.searchbar{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 11px;color:var(--muted);font-size:13px}.searchbar input{border:0;outline:0;background:transparent;font:14px inherit;color:var(--ink);width:100%}.searchbar .s-ic{font-size:15px;line-height:1;opacity:.8}.searchbar:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-050)}.muted{color:var(--muted)}.spacer{flex:1}.school-icon{display:inline-grid;place-items:center;border-radius:9px;background:var(--primary-050);flex:none}.detail-hero{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px 22px;margin-bottom:16px}.detail-hero .school-icon{background:var(--primary-050)}.avatar-lg{width:60px;height:60px;border-radius:14px;background:var(--primary-050);color:var(--primary-600);display:grid;place-items:center;font-weight:700;font-size:24px;flex:none}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:start}.kv{display:flex;flex-direction:column}.kv-row{display:flex;gap:14px;padding:8px 0;border-top:1px solid var(--border);font-size:14px}.kv-row:first-child{border-top:0}.kv-label{color:var(--muted);min-width:160px}.kv-value{color:var(--ink)}.text-link{color:var(--primary);font-weight:600;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1.5px;cursor:pointer}.text-link:hover{color:var(--primary-600);text-decoration-thickness:2px}.text-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:3px}@media (max-width: 900px){.kpis{grid-template-columns:repeat(2,1fr)}}.play-cols{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.play-side{position:sticky;top:8px;display:flex;flex-direction:column;gap:12px}.play-side .cfg-preview{margin-top:0}.play-start{justify-content:center;width:100%;padding:13px;font-size:15px}@media (max-width: 1100px){.play-cols{grid-template-columns:1fr}.play-side{position:static}}
