:root{--bg:#fff;--surface:#fff;--sunk:#f3f5f8;--line:#e3e7ee;--line-2:#d3d9e3;--ink:#17202b;--ink-2:#3e4756;--muted:#5b6575;--primary:#0e8070;--primary-d:#09594e;--primary-soft:#e3f6f1;--primary-ink:#0c6b5b;--warn:#a85308;--warn-d:#7a3c05;--warn-soft:#fff4e8;--warn-line:#f0c9a0;--warn-ink:#8a4300;--dark:#17202b;--dark-d:#000;--people:#3b4bc8;--people-soft:#eef0ff;--process:#0e8070;--process-soft:#e3f6f1;--biz:#a35a00;--biz-fill:#e9a23b;--biz-soft:#fff3e3;--xp:#3b4bc8;--xp-soft:#eef0ff;--streak:#a35a00;--streak-soft:#fff3e3;--heart:#c2334d;--heart-soft:#fdecef;--good:#0e8070;--good-soft:#e3f6f1;--bad:#a85308;--bad-soft:#fff4e8;--mark:#fff1c7;--chart-a:#3b4bc8;--chart-b:#e9862b;--brand-font:"Sora","Lexend",system-ui,sans-serif;--display:"Lexend",system-ui,-apple-system,"Segoe UI",sans-serif;--body:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--r:14px;--shell:560px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f141b;--surface:#161d27;--sunk:#1c2430;--line:#2a3442;--line-2:#364253;--ink:#e8edf3;--ink-2:#c3ccd8;--muted:#97a3b3;--primary:#2fb6a1;--primary-d:#1b7c6d;--primary-soft:#123a34;--primary-ink:#7ddccb;--warn:#e39a52;--warn-d:#9c5a1c;--warn-soft:#3a2614;--warn-line:#6b4626;--warn-ink:#f2bf8a;--dark:#e8edf3;--dark-d:#9aa5b4;--people:#9aa6ff;--people-soft:#232a52;--process:#2fb6a1;--process-soft:#123a34;--biz:#f0b25c;--biz-fill:#e9a23b;--biz-soft:#3a2a12;--xp:#9aa6ff;--xp-soft:#232a52;--streak:#f0b25c;--streak-soft:#3a2a12;--heart:#ff7d93;--heart-soft:#3d1b22;--good:#2fb6a1;--good-soft:#123a34;--bad:#e39a52;--bad-soft:#3a2614;--mark:#4a3d12;--chart-a:#9aa6ff;--chart-b:#f0a35a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f141b;--surface:#161d27;--sunk:#1c2430;--line:#2a3442;--line-2:#364253;--ink:#e8edf3;--ink-2:#c3ccd8;--muted:#97a3b3;--primary:#2fb6a1;--primary-d:#1b7c6d;--primary-soft:#123a34;--primary-ink:#7ddccb;--warn:#e39a52;--warn-d:#9c5a1c;--warn-soft:#3a2614;--warn-line:#6b4626;--warn-ink:#f2bf8a;--dark:#e8edf3;--dark-d:#9aa5b4;--people:#9aa6ff;--people-soft:#232a52;--process:#2fb6a1;--process-soft:#123a34;--biz:#f0b25c;--biz-fill:#e9a23b;--biz-soft:#3a2a12;--xp:#9aa6ff;--xp-soft:#232a52;--streak:#f0b25c;--streak-soft:#3a2a12;--heart:#ff7d93;--heart-soft:#3d1b22;--good:#2fb6a1;--good-soft:#123a34;--bad:#e39a52;--bad-soft:#3a2614;--mark:#4a3d12;--chart-a:#9aa6ff;--chart-b:#f0a35a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink)}body{font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.55}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:30;background:var(--bg);position:fixed;inset:0 0 auto}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--people);outline-offset:2px;border-radius:6px}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;text-wrap:balance;margin:0}h1{font-size:clamp(24px,6vw,30px);font-weight:700;line-height:1.2}h2{font-size:18px;font-weight:700}h3{margin:16px 0 8px;font-size:15px;font-weight:700}p{margin:0}.ic{flex:none;width:20px;height:20px;display:inline-flex}.ic svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.muted{color:var(--muted)}.small{font-size:13px}.note{color:var(--muted);max-width:62ch;font-size:12px}.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.lede{color:var(--ink-2);max-width:60ch}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.grow{flex:1}.center{text-align:center;align-items:center}.boot{min-height:60vh;color:var(--muted);place-items:center;display:grid}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.shell{max-width:var(--shell);padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));margin:0 auto}.topbar{top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);padding:14px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky}.brand{font-family:var(--display);letter-spacing:-.02em;align-items:center;gap:8px;min-width:0;font-size:18px;font-weight:700;display:flex}.brand-mark{flex:none;width:30px;height:30px;display:inline-flex}.brand-mark svg{width:100%;height:100%}.wordmark{font-family:var(--brand-font);letter-spacing:-.045em;font-weight:800}.brand .wordmark{font-size:21px}.stats{gap:6px;display:flex}.chip{font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:14px;font-weight:700;display:inline-flex}.chip .ic{width:16px;height:16px}.chip-streak{background:var(--streak-soft);color:var(--streak)}.chip-heart{background:var(--heart-soft);color:var(--heart)}.chip-xp{background:var(--xp-soft);color:var(--xp)}.chip-heart .ic svg{fill:currentColor}.page{padding:16px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px));flex-direction:column;gap:16px;display:flex}.sec-h{margin-top:12px}.tabbar{z-index:20;background:var(--bg);border-top:2px solid var(--line);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:48px;color:var(--muted);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tab.is-on{color:var(--primary-ink)}.tab .ic{width:22px;height:22px}@media (width>=720px){.tabbar{width:var(--shell);border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:16px 16px 0 0;left:50%;right:auto;transform:translate(-50%)}}.btn{border-radius:var(--r);border:2px solid var(--line-2);background:var(--surface);min-height:46px;box-shadow:0 4px 0 var(--line-2);font-family:var(--display);color:var(--ink);justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:15px;font-weight:700;text-decoration:none;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);transform:translateY(3px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-lg{width:100%;min-height:54px;font-size:17px}.btn-primary{background:var(--primary);border-color:var(--primary);box-shadow:0 5px 0 var(--primary-d);color:#fff}.btn-primary:active:not(:disabled){box-shadow:0 2px 0 var(--primary-d)}.btn-dark{background:var(--dark);border-color:var(--dark);box-shadow:0 5px 0 var(--dark-d);color:var(--bg)}.btn-warn{background:var(--warn);border-color:var(--warn);box-shadow:0 5px 0 var(--warn-d);color:#fff}.btn-ghost{background:var(--surface)}.btn-danger{color:var(--bad)}.link{color:var(--people);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.icon-btn{width:44px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn-lg{border:2px solid var(--line-2);width:54px;height:54px;box-shadow:0 4px 0 var(--line-2);background:var(--surface)}.icon-btn.is-on{color:var(--people)}.icon-btn.is-on svg{fill:currentColor}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn-primary,:root:not([data-theme=light]) .btn-warn{color:#0b1218}}:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .btn-warn{color:#0b1218}.card{background:var(--surface);border:2px solid var(--line);border-radius:16px;padding:16px}.banner{background:var(--xp-soft);color:var(--ink);border-radius:12px;padding:10px 14px;font-size:14px}.banner-warn{background:var(--warn-soft)}.bar{background:var(--sunk);border-radius:6px;height:12px;overflow:hidden}.bar i{background:var(--primary);border-radius:6px;height:100%;transition:width .3s;display:block}.bar-thick{height:18px}.bar-P i{background:var(--people)}.bar-R i{background:var(--process)}.bar-B i{background:var(--biz-fill)}.goal{flex-direction:column;gap:10px;display:flex}.review-card{text-align:left;border-color:var(--people);box-shadow:0 4px 0 var(--people-soft);cursor:pointer;align-items:center;gap:14px;width:100%;display:flex}.review-card>span:last-child{flex-direction:column;display:flex}.review-ic{background:var(--people-soft);width:44px;height:44px;color:var(--people);border-radius:12px;flex:none;place-items:center;display:grid}.seg{background:var(--sunk);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{min-height:42px;font-family:var(--display);color:var(--muted);background:0 0;border:0;border-radius:10px;font-weight:600}.seg button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 2px 0 var(--line-2)}.chapter{flex-direction:column;gap:6px;display:flex}.ch-band{color:#fff;background:var(--people);border-radius:14px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.ch-R .ch-band{background:var(--process)}.ch-B .ch-band{background:#8f4f00}.ch-CS .ch-band,.ch-SET .ch-band{background:#2b3442}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ch-band{color:#0b1218}:root:not([data-theme=light]) .ch-B .ch-band{background:var(--biz)}:root:not([data-theme=light]) .ch-CS .ch-band,:root:not([data-theme=light]) .ch-SET .ch-band{background:#c3ccd8}}:root[data-theme=dark] .ch-band{color:#0b1218}:root[data-theme=dark] .ch-B .ch-band{background:var(--biz)}:root[data-theme=dark] .ch-CS .ch-band,:root[data-theme=dark] .ch-SET .ch-band{background:#c3ccd8}.ch-tag{letter-spacing:.06em;text-transform:uppercase;opacity:.9;font-size:12px;font-weight:600}.ch-band h2{color:inherit}.ch-count{font-variant-numeric:tabular-nums;font-weight:700}.path{flex-direction:column;align-items:center;gap:14px;padding:22px 0 18px;display:flex}.node-wrap{transform:translateX(var(--dx));text-align:center;flex-direction:column;align-items:center;gap:4px;max-width:180px;display:flex;position:relative}@media (width<=380px){.node-wrap{transform:translateX(calc(var(--dx) * .6))}}.node{background:var(--sunk);width:68px;height:68px;box-shadow:0 5px 0 var(--line-2);color:var(--muted);border:0;border-radius:50%;place-items:center;transition:transform 80ms;display:grid}.node .ic{width:28px;height:28px}.node:active{transform:translateY(3px)}.node-sq{border-radius:20px}.node.is-done{background:var(--primary);box-shadow:0 5px 0 var(--primary-d);color:#fff}.ch-P .node.is-done{background:var(--people);box-shadow:0 5px #2a379b}.ch-B .node.is-done{background:#8f4f00;box-shadow:0 5px #5c3300}.node.is-done.is-done .ic svg{stroke-width:3px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .node.is-done{color:#0b1218}}:root[data-theme=dark] .node.is-done{color:#0b1218}.node.is-open{background:var(--surface);border:3px solid var(--line-2);color:var(--ink-2)}.node.is-cur{background:var(--surface);border:6px solid var(--primary);width:82px;height:82px;box-shadow:0 6px 0 var(--primary-d);color:var(--primary-ink)}.ch-P .node.is-cur{border-color:var(--people);color:var(--people);box-shadow:0 6px #2a379b}.ch-B .node.is-cur{border-color:var(--biz);color:var(--biz);box-shadow:0 6px #5c3300}.node-tip{background:var(--dark);color:var(--bg);white-space:nowrap;border-radius:10px;padding:5px 12px;font-size:13px;font-weight:700;position:absolute;top:-34px}.node-lbl{font-size:13px;font-weight:700;line-height:1.3}.node-meta{color:var(--muted);font-size:12px}.node.is-locked+.node-lbl{color:var(--muted)}@media (prefers-reduced-motion:no-preference){.node.is-cur{animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{transform:scale(1.05)}}}.player{max-width:var(--shell);flex-direction:column;min-height:100dvh;margin:0 auto;display:flex;position:relative}.p-top{top:env(safe-area-inset-top,0px);z-index:10;background:var(--bg);padding:12px max(16px,env(safe-area-inset-right,0px)) 10px max(12px,env(safe-area-inset-left,0px));align-items:center;gap:12px;display:flex;position:sticky}.p-bar{background:var(--sunk);border-radius:7px;flex:1;height:14px;overflow:hidden}.p-bar i{background:var(--primary);border-radius:7px;height:100%;transition:width .35s;display:block}.p-body{padding:8px max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px));flex-direction:column;flex:1;gap:14px;display:flex}.p-foot{background:var(--bg);padding:12px max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));border-top:1px solid var(--line);position:sticky;bottom:0}.p-foot.stack{flex-direction:column;gap:12px;display:flex}.pills{flex-wrap:wrap;gap:6px;display:flex}.pill{background:var(--sunk);color:var(--ink-2);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.pill-P{background:var(--people-soft);color:var(--people)}.pill-R{background:var(--process-soft);color:var(--primary-ink)}.pill-B{background:var(--biz-soft);color:var(--biz)}.pill-src{border:1px solid var(--line);color:var(--muted);background:0 0}.stem{font-family:var(--display);flex-direction:column;gap:10px;max-width:66ch;font-size:17px;font-weight:500;line-height:1.5;display:flex}.case{border:2px solid var(--line);background:var(--sunk);border-radius:14px;padding:12px 14px;font-size:14px}.case summary{cursor:pointer;min-height:24px;font-weight:700}.case p{margin-top:8px}.opts{flex-direction:column;gap:10px;display:flex}.opt{text-align:left;border-radius:var(--r);border:2px solid var(--line-2);width:100%;min-height:56px;box-shadow:0 3px 0 var(--line-2);background:var(--surface);align-items:flex-start;gap:12px;padding:13px 14px;font-size:15px;line-height:1.45;transition:transform 80ms;display:flex}.opt:active:not(:disabled){box-shadow:0 1px 0 var(--line-2);transform:translateY(2px)}.opt-k{background:var(--sunk);border-radius:8px;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.opt.is-sel{border-color:var(--people);box-shadow:0 3px 0 var(--people);background:var(--people-soft)}.opt.is-sel .opt-k{background:var(--people);color:#fff}.opt.is-right{border-color:var(--good);box-shadow:0 3px 0 var(--good);background:var(--good-soft)}.opt.is-right .opt-k{background:var(--good);color:#fff}.opt.is-wrong{border-color:var(--bad);box-shadow:0 3px 0 var(--bad);background:var(--bad-soft)}.opt.is-wrong .opt-k{background:var(--bad);color:#fff}.opt:disabled{cursor:default;opacity:1}.match{flex-direction:column;gap:10px;display:flex}.match-row{border:2px solid var(--line);border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:8px 12px;padding:12px;display:grid}.match-row label{font-weight:600}.match-row select{border:2px solid var(--line-2);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:6px 10px}.match-row.is-right{border-color:var(--good);background:var(--good-soft)}.match-row.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.match-fix{color:var(--warn-ink);grid-column:1/-1;font-size:13px;font-weight:600}.sheet{z-index:5;padding:18px max(16px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));border-radius:22px 22px 0 0;flex-direction:column;gap:12px;max-height:72vh;margin-top:auto;display:flex;position:sticky;bottom:0;overflow:auto}@media (prefers-reduced-motion:no-preference){.sheet{animation:.22s ease-out rise}@keyframes rise{0%{opacity:.6;transform:translateY(24px)}}}.sheet-ok{background:var(--good-soft);border-top:3px solid var(--good)}.sheet-no{background:var(--warn-soft);border-top:3px solid var(--warn)}.sheet-h{align-items:center;gap:10px;display:flex}.sheet-ic{color:#fff;border-radius:50%;width:34px;height:34px;padding:7px}.sheet-ok .sheet-ic{background:var(--good)}.sheet-no .sheet-ic{background:var(--warn)}.sheet-ok h2{color:var(--primary-ink)}.sheet-no h2{color:var(--warn-ink)}.sheet-ans{font-size:14px}.why-h{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:700}.why p{font-size:15px}.refs{flex-wrap:wrap;gap:6px;display:flex}.ref{background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.orig{background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2);border-radius:12px;padding:10px 12px;font-size:13px}.orig summary{color:var(--ink);cursor:pointer;min-height:24px;font-weight:700}.orig p{margin-top:8px}.sheet-act{align-items:center;gap:10px;display:flex}.sheet-act .btn{flex:1}.fig{border:2px solid var(--line);border-radius:16px;flex-direction:column;gap:8px;margin:0;padding:12px;display:flex;overflow:hidden}.fig svg{width:100%;height:auto;display:block}.fig-cap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.fig-note{color:var(--muted);font-size:11px}.legend{color:var(--ink-2);align-items:center;gap:6px;font-weight:600;display:flex}.sw{border-radius:2px;width:12px;height:4px;display:inline-block}.sw-a{background:var(--chart-a)}.sw-b{background:var(--chart-b);margin-left:6px}.g-grid{stroke:var(--line);stroke-width:1px}.g-lbl{fill:var(--muted);font-size:10px;font-family:var(--body)}.g-val{fill:var(--ink);font-size:10px;font-weight:700;font-family:var(--body)}.g-line-a{fill:none;stroke:var(--chart-a);stroke-width:2.5px;stroke-linejoin:round}.g-area-a{fill:var(--chart-a);fill-opacity:.12}.g-line-b{fill:none;stroke:var(--chart-b);stroke-width:2.5px;stroke-linejoin:round}.g-area-b{fill:var(--chart-b);fill-opacity:.18}.g-dot-b{fill:var(--chart-b)}.g-bar{fill:var(--line-2)}.g-bar-hi{fill:var(--chart-b)}.gantt{flex-direction:column;gap:4px;display:flex;overflow-x:auto}.gantt-row{text-align:left;border-radius:10px;grid-template-columns:minmax(0,1.1fr) 44px minmax(150px,2fr);align-items:center;gap:6px;min-height:44px;padding:4px 6px;font-size:13px;display:grid}.gantt-head{min-height:32px;color:var(--muted);font-size:11px;font-weight:700}.gantt-task{border:2px solid var(--line);background:var(--surface);width:100%}.gantt-task.is-sel{border-color:var(--people);background:var(--people-soft)}.gantt-task.is-right{border-color:var(--good);background:var(--good-soft)}.gantt-task.is-wrong{border-color:var(--bad);background:var(--bad-soft)}.gantt-group{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px 6px 0;font-size:12px;font-weight:700}.gantt-name{min-width:0;font-weight:600}.gantt-dur{color:var(--muted);font-size:12px}.gantt-days{grid-template-columns:repeat(11,minmax(0,1fr));gap:2px;display:grid}.gantt-days i{background:var(--sunk);border-radius:3px;flex-direction:column;justify-content:center;align-items:center;height:18px;font-size:10px;font-style:normal;line-height:1;display:flex}.gantt-head .gantt-days i{background:0 0;height:auto}.gantt-days i small{color:var(--muted);font-size:9px}.gantt-days i.on{background:var(--chart-a)}.tbl-wrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th,.tbl td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 11px}.tbl tr:last-child td{border-bottom:0}.tbl th{color:var(--muted);background:var(--sunk);font-size:12px;font-weight:600}.tbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl-sm{font-size:13px}.tbl-sm th,.tbl-sm td{padding:7px 9px}.tbl code{font-family:var(--mono);white-space:nowrap;font-size:13px}.result .p-body{gap:18px;padding-top:36px}.trophy{background:var(--primary-soft);width:92px;height:92px;color:var(--primary-ink);border-radius:28px;place-items:center;display:grid}.trophy .ic{width:46px;height:46px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;display:grid}.kpi{border:2px solid var(--line);border-radius:14px;flex-direction:column;align-items:center;padding:12px 8px;display:flex}.kpi b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:20px}.kpi span{color:var(--muted);font-size:12px}.c-xp{color:var(--xp)}.c-streak{color:var(--streak)}.c-P{color:var(--people)}.c-R{color:var(--primary-ink)}.c-B{color:var(--biz)}.dom-bars{text-align:left;flex-direction:column;gap:12px;width:100%;display:flex}.dom-bars>div{flex-direction:column;gap:6px;display:flex}.soft-warn{background:var(--warn-soft);border-color:var(--warn-line);text-align:left;flex-direction:column;gap:6px;width:100%;display:flex}.rating{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.r-at{background:var(--good-soft);color:var(--primary-ink)}.r-t{background:var(--sunk);color:var(--ink)}.r-bt{background:var(--warn-soft);color:var(--warn-ink)}.r-ni{background:var(--warn);color:#fff}.meter-row{justify-content:space-between;font-size:14px;font-weight:600;display:flex}input[type=range]{width:100%;height:44px;accent-color:var(--primary);margin:0}.duo{grid-template-columns:1fr 1fr;gap:10px;display:grid}.badge{border-radius:16px;flex-direction:column;gap:2px;padding:14px;display:flex}.badge span{font-size:12px;font-weight:700}.badge b{font-family:var(--display);font-size:32px;line-height:1.1}.badge small{font-size:13px}.badge-good{background:var(--good-soft);color:var(--primary-ink)}.badge-warn{background:var(--warn-soft);color:var(--warn-ink)}.tokens{flex-wrap:wrap;gap:6px;display:flex}.tokens i{background:var(--chart-a);border-radius:6px;width:22px;height:22px}.tokens i.over{background:var(--chart-b)}.pgrid{grid-template-rows:auto 1fr 1fr;grid-template-columns:1fr 1fr;gap:8px;padding-left:22px;display:grid;position:relative}.pgrid-y{transform-origin:0 0;color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700;position:absolute;top:50%;left:0;transform:rotate(-90deg)translate(50%)}.pgrid-x{text-align:right;color:var(--muted);order:9;grid-area:3/1/auto/-1;font-size:12px;font-weight:700}.pcell{border:2px solid var(--line-2);min-height:96px;box-shadow:0 4px 0 var(--line-2);background:var(--surface);font-family:var(--display);border-radius:14px;padding:10px;font-weight:600}.pcell.is-sel{border-color:var(--people);background:var(--people-soft);box-shadow:0 4px 0 var(--people)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:2px solid var(--line-2);background:var(--surface);border-radius:999px;min-height:40px;padding:6px 14px;font-size:14px;font-weight:600}.chip-btn[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.facts{background:var(--line);border:1px solid var(--line);border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1px;display:grid;overflow:hidden}.fact{background:var(--surface);padding:12px 14px}.fact b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:22px;display:block}.fact span{color:var(--muted);font-size:12px}.ex-lbl{flex:1;font-size:14px;font-weight:700}.timer{font-family:var(--mono);font-variant-numeric:tabular-nums;background:var(--sunk);border-radius:8px;padding:4px 10px;font-size:17px;font-weight:700}.timer.low{background:var(--warn-soft);color:var(--warn-ink)}.dots{padding:0 max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px));flex-wrap:wrap;gap:4px;display:flex}.dots button{border:1px solid var(--line-2);background:var(--surface);width:30px;height:30px;color:var(--muted);border-radius:8px;padding:0;font-size:11px}.dots button.is-done{background:var(--sunk);color:var(--ink);border-color:var(--muted)}.dots button.is-cur{border:2px solid var(--people);color:var(--ink)}.rev summary{cursor:pointer;align-items:center;gap:10px;min-height:28px;font-size:14px;display:flex}.rev summary span[lang]{flex:1;min-width:0}.rev[open]{flex-direction:column;gap:12px;display:flex}.rev-n{background:var(--sunk);border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:grid}.rev-ok .rev-ic{color:var(--good)}.rev-no .rev-ic{color:var(--bad)}.grid2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;display:grid}.pr{border:2px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;min-width:0;padding:14px;display:flex}.pr h3{margin:0}.pr ul{margin:4px 0 0;padding-left:18px;font-size:14px}.bul{flex-direction:column;gap:6px;margin:8px 0 0;padding-left:20px;display:flex}.know section{scroll-margin-top:70px}.search{border:2px solid var(--line-2);background:var(--surface);border-radius:12px;width:100%;min-height:48px;padding:10px 14px}.gl{border:1px solid var(--line);border-radius:14px;overflow:hidden}.gi{border-bottom:1px solid var(--line);grid-template-columns:minmax(140px,36%) minmax(0,1fr);gap:4px 16px;padding:12px 14px;display:grid}.gi:last-child{border-bottom:0}.gi-t{min-width:0;font-weight:700}.gi-t small{color:var(--muted);font-size:13px;font-weight:500;display:block}.gi-c{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:10px;display:block}.gi-d{font-size:14px}mark{background:var(--mark);color:inherit;border-radius:2px}.empty{text-align:center;color:var(--muted);padding:28px}@media (width<=520px){.gi{grid-template-columns:1fr}}.profile{align-items:center;gap:14px;display:flex}.avatar{background:var(--people-soft);width:60px;height:60px;color:var(--people);font-family:var(--display);object-fit:cover;border-radius:50%;place-items:center;font-size:20px;font-weight:700;display:grid}.h-md{font-size:20px}.login{max-width:440px;min-height:100dvh;padding:32px max(20px,env(safe-area-inset-right,0px)) 32px max(20px,env(safe-area-inset-left,0px));flex-direction:column;justify-content:center;gap:16px;margin:0 auto;display:flex}.login-mark{width:84px;height:84px;display:inline-flex}.login-mark svg{width:100%;height:100%}.login h1.wordmark{font-size:44px;line-height:1}.tagline{color:var(--primary-ink);margin-top:6px;font-weight:600}.tm{font-size:11px}.login-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.login-list li{align-items:center;gap:10px;display:flex}.login-list .ic{color:var(--primary)}.login .btn{width:100%}.err{color:var(--warn-ink);background:var(--warn-soft);border-radius:10px;padding:10px 12px;font-size:14px}.modal-bg{z-index:40;background:#0a0f1680;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:440px;margin-bottom:env(safe-area-inset-bottom,0px);border-radius:22px;flex-direction:column;gap:12px;padding:22px;display:flex}.modal-ic{background:var(--heart-soft);width:56px;height:56px;color:var(--heart);border-radius:50%;place-items:center;display:grid}.modal-ic .ic{width:28px;height:28px}.modal-ic svg{fill:currentColor}.modal-act{flex-direction:column;gap:10px;margin-top:6px;display:flex}.toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:50;background:var(--dark);color:var(--bg);border-radius:12px;max-width:calc(100% - 32px);padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%)}.flag{border-radius:50%;flex:none;display:inline-flex;overflow:hidden;box-shadow:0 0 0 1px #00000014}.flag svg{width:100%;height:100%;display:block}.lang-btn{background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}.lang-btn:hover .flag{box-shadow:0 0 0 2px var(--line-2)}.lang-list{flex-direction:column;gap:8px;display:flex}.lang-opt{border:2px solid var(--line-2);background:var(--surface);text-align:left;border-radius:14px;align-items:center;gap:14px;width:100%;min-height:56px;padding:10px 14px;font-size:16px;font-weight:600;display:flex}.lang-opt span:not(.flag){flex:1}.lang-opt.is-on{border-color:var(--primary);background:var(--primary-soft)}.lang-check{color:var(--primary-ink)}.lang-row{flex-wrap:wrap;gap:8px;display:flex}.lang-chip{align-items:center;gap:8px;padding-left:6px;display:inline-flex}.login-top{justify-content:space-between;align-items:center;display:flex}.stats{align-items:center}@media (width<=380px){.stats{gap:4px}.chip{padding:4px 7px;font-size:13px}.brand .wordmark{font-size:18px}}.en-term{color:var(--primary-ink);white-space:nowrap;font-style:italic;font-weight:500}.en-sub{font-family:var(--body);letter-spacing:0;text-transform:none;opacity:.75;margin-top:1px;font-size:.72em;font-weight:500;display:block}.node-lbl .en-sub{color:var(--muted);opacity:1;font-size:11px}.ch-band .en-sub{opacity:.85;font-size:12px}.sheet .en-term{color:inherit;opacity:.8}.toggle-row{border:2px solid var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.switch{background:var(--line-2);border:0;border-radius:16px;flex:none;width:52px;height:32px;padding:0;position:relative}.switch span{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:4px;left:4px;box-shadow:0 1px 2px #00000040}.switch[aria-checked=true]{background:var(--primary)}.switch[aria-checked=true] span{transform:translate(20px)}.hint{color:var(--people);font-size:13px;font-weight:600}.pill-multi{background:var(--people);color:#fff}.opts-multi .opt-k{box-shadow:inset 0 0 0 2px var(--line-2);background:var(--surface);border-radius:6px}.opts-multi .opt.is-sel .opt-k{box-shadow:none}.ch-EP .ch-band{background:#8f4f00}.ch-EPS .ch-band{background:#5c3a12}.ch-EP .node.is-done,.ch-EPS .node.is-done{background:#8f4f00;box-shadow:0 5px #5c3300}.ch-EP .node.is-cur,.ch-EPS .node.is-cur{border-color:var(--biz);color:var(--biz);box-shadow:0 6px #5c3300}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ch-EP .ch-band,:root:not([data-theme=light]) .ch-EPS .ch-band{background:var(--biz)}}:root[data-theme=dark] .ch-EP .ch-band,:root[data-theme=dark] .ch-EPS .ch-band{background:var(--biz)}.wm-year{color:#5b2ee5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .wm-year{color:#a88bff}}:root[data-theme=dark] .wm-year{color:#a88bff}.brand .wordmark{letter-spacing:-.03em;white-space:nowrap;font-size:18px}.login h1.wordmark{letter-spacing:-.03em;font-size:36px}.wm-short{display:none}@media (width<=479px){.brand .wm-full{display:none}.brand .wm-short{display:inline}}.custom{flex-direction:column;gap:10px;display:flex}.custom.is-on{border-color:var(--people);box-shadow:0 4px 0 var(--people-soft)}.btn-sm{min-height:40px;padding:6px 14px;font-size:14px}.pill-on{background:var(--people);color:#fff}.cu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.cu-field{color:var(--ink-2);flex-direction:column;gap:6px;min-width:0;font-size:13px;font-weight:600;display:flex}.stepper{border:2px solid var(--line-2);background:var(--surface);border-radius:12px;align-items:center;display:flex;overflow:hidden}.stepper .icon-btn{color:var(--ink);border-radius:0;font-size:22px;font-weight:700}.stepper input{text-align:center;width:100%;min-width:0;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);-moz-appearance:textfield;background:0 0;border:0;flex:1;padding:8px 0;font-size:18px;font-weight:700}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.warn-txt{color:var(--warn-ink);font-weight:600}.dom-chip[aria-pressed=true].dom-P{background:var(--people);border-color:var(--people);color:#fff}.dom-chip[aria-pressed=true].dom-R{background:var(--process);border-color:var(--process);color:#fff}.dom-chip[aria-pressed=true].dom-B{color:#fff;background:#8f4f00;border-color:#8f4f00}.ch-EPP .ch-band,.ch-EPPS .ch-band{background:#2f3d9e}.ch-EPP .node.is-done,.ch-EPPS .node.is-done{background:var(--people);box-shadow:0 5px #2a379b}.ch-EPP .node.is-cur,.ch-EPPS .node.is-cur{border-color:var(--people);color:var(--people);box-shadow:0 6px #2a379b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ch-EPP .ch-band,:root:not([data-theme=light]) .ch-EPPS .ch-band{background:var(--people)}}:root[data-theme=dark] .ch-EPP .ch-band,:root[data-theme=dark] .ch-EPPS .ch-band{background:var(--people)}.ch-EPR .ch-band{background:var(--process)}.ch-EPRS .ch-band{background:#0f5f55}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ch-EPR .ch-band,:root:not([data-theme=light]) .ch-EPRS .ch-band{background:var(--process)}}:root[data-theme=dark] .ch-EPR .ch-band,:root[data-theme=dark] .ch-EPRS .ch-band{background:var(--process)}.tips h3{margin-top:18px}.tips p{margin:6px 0}.tips .callout{margin-top:12px}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-field{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.auth-or{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.auth-or:before,.auth-or:after{content:"";opacity:.3;background:currentColor;flex:1;height:1px}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:14px;display:flex}.auth-msg{background:var(--process-soft,#15a0851f);border-radius:12px;margin:0;padding:10px 12px;font-size:14px}.chip-lock{vertical-align:-2px;width:14px;height:14px;margin-right:4px}.product{flex-direction:column;gap:8px;display:flex}.product-price{white-space:nowrap;font-size:18px}html,body{overscroll-behavior:none;height:100%;overflow:hidden}#app{height:100dvh;padding-top:env(safe-area-inset-top,0px);flex-direction:column;display:flex;overflow:hidden}.scroller{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.shell{padding-bottom:16px}.topbar,.p-top{top:0}.tabbar{flex:none;position:static}@media (width>=720px){.tabbar{width:100%;max-width:var(--shell);margin:0 auto;left:auto;transform:none}}.player{overscroll-behavior:contain;flex:1;width:100%;min-height:0;overflow-y:auto}.p-body{flex:1 0 auto}.p-foot,.sheet{flex:none}.sheet{max-height:72dvh}.sheet-act{bottom:calc(-18px - env(safe-area-inset-bottom,0px));background:inherit;margin-bottom:calc(-18px - env(safe-area-inset-bottom,0px));padding-block:10px calc(18px + env(safe-area-inset-bottom,0px));flex:none;position:sticky}.player{scroll-padding-block:72px 110px}.login{flex:1;justify-content:flex-start;width:100%;min-height:0;overflow-y:auto}.login>:first-child{margin-top:auto}.login>:last-child{margin-bottom:auto}.boot{flex:1}.sticky-head{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.sticky-head .topbar{border-bottom:0;position:static}.head-search{padding:0 max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px))}.chip-row{scrollbar-width:none;padding:2px max(16px,env(safe-area-inset-right,0px)) 10px max(16px,env(safe-area-inset-left,0px));-webkit-overflow-scrolling:touch;gap:6px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip-row .chip-btn{white-space:nowrap;flex:none}@media (hover:hover) and (pointer:fine){.chip-row{flex-wrap:wrap}}.know-pager{grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;display:grid}.know-pager .btn{white-space:normal;min-width:0}@media (width<=560px){.tbl-stack thead{display:none}.tbl-stack,.tbl-stack tbody,.tbl-stack tr,.tbl-stack td{width:100%;display:block}.tbl-stack tr{border-bottom:1px solid var(--line);padding:10px 12px}.tbl-stack tr:last-child{border-bottom:0}.tbl-stack td{border:0;padding:2px 0}.tbl-stack td[data-label]{margin-top:6px}.tbl-stack td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:600;display:block}.tbl-stack code{white-space:normal;overflow-wrap:anywhere}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.theme-chip{align-items:center;gap:6px;display:inline-flex}.theme-chip .ic{width:18px;height:18px}.sound-btn{width:36px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sound-btn.is-off{opacity:.6}.sound-settings input[type=range]{width:100%}.stats{flex:none}.brand>span:not(.brand-mark){text-overflow:ellipsis;min-width:0;overflow:hidden}@media (width<=559px){.brand .wm-full{display:none}.brand .wm-short{display:inline}}@media (width<=430px){.brand .wm-short .wm-year{display:none}}@media (width<=359px){.brand>span:not(.brand-mark){display:none}}@media (width<=380px){.lang-btn{width:36px}}.topbar .sound-btn{width:32px;margin:0 -2px}@media (width<=430px){.topbar .sound-btn{display:none}}.login .lang-row{flex-wrap:wrap;align-items:center}
