:root{color-scheme:light dark;--bg: oklch(.968 .007 255);--ink: oklch(.23 .035 262);--muted: oklch(.46 .03 262);--line: oklch(.87 .01 255);--card: oklch(.99 .004 255);--primary: oklch(.56 .19 40);--on-primary: oklch(.99 .01 60);--mat: oklch(.205 .028 262);--mat-raised: oklch(.255 .03 262);--mat-line: oklch(.33 .03 262);--on-mat: oklch(.93 .01 255);--on-mat-muted: oklch(.72 .02 258);--current: oklch(.86 .16 92);--on-current: oklch(.25 .05 80);--ready: oklch(.58 .16 150);--penalty: oklch(.58 .2 25);--r: 6px;--display: "Roboto Slab", serif;--sans: "Roboto", system-ui, sans-serif;--mono: "Roboto Mono", ui-monospace, monospace;accent-color:var(--primary)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: oklch(.165 .022 262);--ink: oklch(.93 .01 255);--muted: oklch(.71 .02 258);--line: oklch(.29 .025 262);--card: oklch(.215 .026 262);--primary: oklch(.68 .18 42);--on-primary: oklch(.16 .03 40);--ready: oklch(.66 .16 150);--penalty: oklch(.65 .2 25)}}:root[data-theme=dark]{color-scheme:dark;--bg: oklch(.165 .022 262);--ink: oklch(.93 .01 255);--muted: oklch(.71 .02 258);--line: oklch(.29 .025 262);--card: oklch(.215 .026 262);--primary: oklch(.68 .18 42);--on-primary: oklch(.16 .03 40);--ready: oklch(.66 .16 150);--penalty: oklch(.65 .2 25)}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans)}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{margin:0;display:flex;align-items:baseline;gap:8px;font-family:var(--display);font-size:20px;font-weight:700}.brand .sub{color:var(--primary);font-weight:700}.mark{width:14px;height:14px;align-self:center;border-radius:3px;background:conic-gradient(var(--primary) 0 25%,var(--current) 0 50%,var(--ready) 0 75%,oklch(.55 .17 255) 0)}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.segs{display:flex;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px}.seg{border:0;background:none;padding:6px 14px;border-radius:999px;font-family:var(--mono);font-size:14px;min-height:34px}.seg.on{background:var(--ink);color:var(--bg)}.theme-btn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:500;min-height:40px}.theme-btn:hover{border-color:var(--primary)}.layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:24px;padding:24px;max-width:1440px;margin:0 auto}@media(max-width:960px){.layout{grid-template-columns:1fr;padding:12px;gap:16px}.top{padding:12px}}.stage{position:sticky;top:16px;align-self:start;background:radial-gradient(120% 80% at 50% 35%,var(--mat-raised),var(--mat));color:var(--on-mat);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .4s}.stage.solved{box-shadow:0 0 0 3px var(--ready),0 0 40px -6px var(--ready)}@media(max-width:960px){.stage{position:relative;top:0}}.stage-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.seq-title{margin:0;font-family:var(--display);font-weight:700;font-size:20px}.seq-count{margin:0;color:var(--on-mat-muted);font:14px var(--mono);min-height:21px}.ghost{background:var(--mat-raised);border:1px solid var(--mat-line);color:var(--on-mat);border-radius:var(--r);padding:6px 12px;font-size:14px;min-height:36px}.cube{height:min(50vh,460px);min-height:280px;touch-action:none}.cube canvas{width:100%!important;height:100%!important;display:block;cursor:grab}.chain{display:flex;gap:0;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin;min-height:44px;align-items:center}.link{flex:none;font:500 15px var(--mono);padding:6px 10px;border:1.5px solid var(--mat-line);border-radius:5px;color:var(--on-mat-muted);position:relative;margin-right:14px;transition:background .2s,color .2s,border-color .2s}.link:not(:last-child):after{content:"";position:absolute;right:-15.5px;top:50%;width:14px;height:2px;background:var(--mat-line)}.link.done{background:var(--mat-line);border-color:var(--mat-line);color:var(--on-mat)}.link.now{background:var(--current);border-color:var(--current);color:var(--on-current);box-shadow:0 0 18px -4px var(--current)}.chain-empty{color:var(--on-mat-muted);font-size:14px}.transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tbtn{width:44px;height:40px;border-radius:var(--r);border:1px solid var(--mat-line);background:var(--mat-raised);color:var(--on-mat);font-size:14px}.tbtn.play{width:56px;background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.speed{margin-left:auto;font-size:14px;color:var(--on-mat-muted);display:flex;gap:8px;align-items:center}.speed select{background:var(--mat-raised);color:var(--on-mat);border:1px solid var(--mat-line);border-radius:var(--r);padding:6px;font:14px var(--mono);min-height:36px}.caption{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--mat-line);padding-top:10px;font-size:14px}.caption b{font-family:var(--mono);font-weight:500;color:var(--current)}.caption span{color:var(--on-mat-muted)}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--ink);overflow-x:auto;scrollbar-width:thin}.tab{border:0;background:none;padding:10px 14px;font-weight:500;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap;min-height:44px}.tab.on{color:var(--ink);border-color:var(--primary)}.panel{padding:20px 0;min-width:0}.h{font:700 30px/1.15 var(--display);margin:0 0 14px;letter-spacing:-.01em}.h3{font:700 20px var(--display);margin:24px 0 10px}.lbl{font-size:14px;font-weight:500;display:block;margin-bottom:6px}textarea,input[type=search]{width:100%;font:16px var(--sans);padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:var(--ink)}textarea{font-family:var(--mono);resize:vertical}.row{display:flex;gap:8px;margin:10px 0;align-items:center}.row.wrap{flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--card);border-radius:var(--r);padding:8px 14px;font-size:14px;font-weight:500;min-height:40px}.btn:hover:not(:disabled){border-color:var(--ink)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.right{background:var(--ready);border-color:var(--ready);color:#fff}.btn.wrong{background:var(--penalty);border-color:var(--penalty);color:#fff}.note{color:var(--muted);font-size:14px;margin:6px 0}.mono{font-family:var(--mono)}.small{font-size:14px;color:var(--muted);word-break:break-word}.stats-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:14px}.stat-pills{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font:500 14px var(--mono)}.stat-pill{display:inline-flex;align-items:center;gap:5px}.key-disclosure{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:16px}.key-disclosure summary{cursor:pointer;font-weight:500;font-size:15px}.key-disclosure[open] summary{margin-bottom:10px}.units{display:flex;flex-direction:column;gap:14px}.unit-card{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:14px}.unit-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.unit-head h3{margin:0;font:700 18px var(--display)}.lesson-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:8px}.lesson-node{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 12px;min-height:52px}.lesson-node:hover{border-color:var(--primary)}.lesson-node.done{border-color:var(--ready)}.lesson-badge{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font:700 14px var(--mono)}.lesson-node.done .lesson-badge{background:var(--ready);color:#fff}.lesson-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lesson-meta small{color:var(--muted);font-size:13px}.arena{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.arena-top{display:flex;align-items:center;gap:10px;justify-content:space-between}.prog-track{flex:1;height:8px;background:var(--line);border-radius:999px;overflow:hidden}.prog-fill{height:100%;background:var(--ready);transition:width .25s}.step-tag{align-self:start;font:500 12px var(--mono);color:var(--primary);text-transform:uppercase;letter-spacing:.04em}.slots{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:var(--bg);border:1px solid var(--line);border-radius:8px}.slot{font:500 15px var(--mono);min-width:38px;height:36px;padding:0 8px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--muted)}.slot.done{background:var(--ready);border-color:var(--ready);color:#fff}.slot.now{border-color:var(--primary);color:var(--ink);box-shadow:0 0 0 2px color-mix(in oklch,var(--primary) 30%,transparent)}.slot.blank{border-style:dashed;border-color:var(--primary);color:var(--primary)}.arena-pad{display:flex;flex-wrap:wrap;gap:8px}.arena-pad .key{min-width:54px;padding:10px 12px}.choices{display:flex;flex-direction:column;gap:8px}.choice{width:100%;text-align:left;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px 12px;min-height:44px;font-size:15px}.choice:hover:not(:disabled){border-color:var(--primary)}.choice.right{background:var(--ready);border-color:var(--ready);color:#fff}.choice.wrong{background:var(--penalty);border-color:var(--penalty);color:#fff}.fb{border-radius:8px;padding:10px 12px;font-size:14px;border:1px solid var(--line);background:var(--bg)}.fb.ok{border-color:var(--ready)}.fb.err{border-color:var(--penalty)}.celebrate{text-align:center;padding:16px 8px;display:flex;flex-direction:column;align-items:center;gap:10px}.pad{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}@media(max-width:560px){.pad{grid-template-columns:repeat(6,minmax(0,1fr))}}.key{font:500 15px var(--mono);padding:10px 0;min-height:40px;border:1px solid var(--line);background:var(--card);border-radius:var(--r)}.key:hover{background:var(--ink);color:var(--bg)}.lib-search{display:block;margin-bottom:12px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:14px;min-height:36px}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.count{font-family:var(--mono);opacity:.7}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:12px}.card{display:flex;gap:12px;align-items:start;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px}.card:hover{border-color:var(--primary)}.card svg{flex:none;background:var(--mat);border-radius:6px}.card-body{display:flex;flex-direction:column;gap:4px;min-width:0}.card-body .mono{font-size:14px;word-break:break-word}.tag{align-self:start;font:500 12px var(--mono);color:var(--primary)}.quiz{border:1px dashed var(--primary);border-radius:10px;padding:10px 12px;margin:10px 0}.stages,.milestones,.blocks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.stage-btn{width:100%;display:flex;gap:12px;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:12px}.stage-btn:hover{border-color:var(--primary)}.stage-btn>span:last-child{display:flex;flex-direction:column;gap:2px}.stage-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font:500 14px var(--mono)}.milestones{flex-direction:row;overflow-x:auto;gap:0}.ms{display:flex;flex-direction:column;align-items:start;gap:4px;border:0;background:none;padding:8px 18px 8px 0;min-width:150px;text-align:left;border-top:3px solid var(--line);font-weight:500}.ms small{color:var(--muted);font-weight:400}.ms.on{border-color:var(--primary)}.ms.on .stage-n{background:var(--primary)}.module{margin-top:12px}.kpi{font:500 14px var(--mono);color:var(--primary);margin:0}.warn{border-left:3px solid var(--penalty);padding-left:10px}.blocks li{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px;font-size:15px}.scr{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px}.timer{margin:14px 0 8px;-webkit-user-select:none;user-select:none;touch-action:none;background:var(--mat);color:var(--on-mat);border-radius:14px;padding:28px 16px;display:flex;flex-direction:column;align-items:center;gap:6px;border:3px solid transparent;transition:border-color .15s;cursor:pointer}#timer-digits{font:500 clamp(56px,10vw,96px)/1 var(--mono);letter-spacing:-.03em}.timer .note{color:var(--on-mat-muted)}.timer[data-state=holding]{border-color:var(--penalty)}.timer[data-state=ready]{border-color:var(--ready)}.timer[data-state=ready] #timer-digits{color:var(--ready)}.timer[data-state=inspecting] #timer-digits{color:var(--current)}.toggle{display:flex;gap:8px;align-items:center;font-size:14px;min-height:36px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}@media(max-width:520px){.stats{grid-template-columns:repeat(2,1fr)}}.stats div{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.stats small{color:var(--muted);font-size:12px}.stats b{font-size:20px}.lab-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:20px}.lab-head .h3{margin:0}.sheet{padding-left:32px;margin:8px 0 0;font-size:15px}.sheet li{padding:6px 0;border-bottom:1px dashed var(--line);display:flex;gap:8px;align-items:center}.sheet li .mono{min-width:80px}.mini{border:1px solid var(--line);background:none;border-radius:4px;font-size:12px;padding:3px 8px;color:var(--muted);min-height:28px}.metro{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.metro input{flex:1;min-width:140px;accent-color:var(--primary)}.pulse{width:14px;height:14px;border-radius:50%;background:var(--line)}.pulse.beat{animation:beat .18s ease-out}@keyframes beat{0%{background:var(--primary);transform:scale(1.5)}to{background:var(--line);transform:scale(1)}}.drill-box{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:10px}.drill-timer{font:700 28px var(--mono);color:var(--primary);margin:4px 0}.dlg{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);padding:20px;max-width:400px;width:calc(100% - 24px)}.dlg::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dlg-form .h3{margin-top:0}.dlg-actions{justify-content:flex-end;margin-bottom:0}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
