.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;height:61px;padding:0 20px;background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .brand{margin-right:auto}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;flex:none}.nav-toggle{display:none}.search-btn{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);cursor:pointer;min-width:240px}.search-btn .search-label{flex:1;text-align:left;font-size:13px}.layout{display:grid;grid-template-columns:268px minmax(0,1fr);max-width:1560px;margin:0 auto}.sidebar{position:sticky;top:61px;align-self:start;height:calc(100vh - 61px);overflow-y:auto;padding:16px 12px 24px 18px;border-right:1px solid var(--line);scrollbar-width:thin}.side-head{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 8px 8px}.side-count{letter-spacing:0;text-transform:none;font-weight:500}.side-group{border-top:1px solid var(--line)}.side-group summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px;border-radius:9px;cursor:pointer;list-style:none;font-weight:650;font-size:13.5px}.side-group summary::-webkit-details-marker{display:none}.side-group summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);margin-left:4px;transition:transform .15s}.side-group[open] summary:after{transform:rotate(45deg)}.side-group summary .ico{color:var(--accent)}.side-group summary span:first-of-type{flex:1}.g-count{font-size:11px;font-weight:600;color:var(--muted);padding:1px 7px;border-radius:999px;background:var(--soft)}.side-group summary:hover{background:var(--surface)}.side-group ul{list-style:none;margin:0 0 8px;padding:0 0 0 18px}.side-group a{display:flex;align-items:center;gap:8px;padding:7px 8px;min-height:36px;color:var(--ink);text-decoration:none;font-size:13.5px;border-left:2px solid var(--line);border-radius:0 8px 8px 0}.side-group a:hover{background:var(--surface)}.side-group a[aria-current=page]{background:var(--accent-2);color:#fff;border-left-color:var(--accent-2)}.side-group a span{flex:1}.side-group a[aria-current=page] .tag-new{background:#fff3;color:#fff}.dot{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line);flex:none}.dot.seen{border-color:var(--bar);background:color-mix(in srgb,var(--bar) 35%,transparent)}.dot.done{border-color:var(--done);background:var(--done)}.side-foot{display:flex;justify-content:space-between;gap:10px;padding:14px 8px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.side-foot a{color:var(--muted)}main{padding:20px 26px 40px;min-width:0;outline:none}.algo-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.crumb{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-right:4px}.pill{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:var(--surface)}.pill.new{border-color:var(--accent);color:var(--accent)}.path-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 16px;margin-bottom:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);font-size:13px}.pb-label{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.pb-steps{display:flex;gap:5px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.pb-steps a{display:block;width:20px;height:8px;border-radius:4px;background:var(--line)}.pb-steps .past a{background:var(--done)}.pb-steps .cur a{background:var(--accent-2)}.pb-pos{color:var(--muted)}.pb-done{color:var(--done);font-weight:600}.path-bar .btn{margin-left:auto}.path-bar .linkish{color:var(--muted);font-size:12px}.topic-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.tn{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);text-decoration:none;color:var(--ink);font-weight:600}.tn small{font-size:11.5px;color:var(--muted);font-weight:500}.tn.next{text-align:right}.tn:hover{border-color:var(--accent-2)}.lab-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;margin-top:30px;padding-top:18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.lab-footer a{color:var(--muted)}.workspace{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}.workspace>*{min-width:0}@media(min-width:1100px){.workspace{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:start}}.board{background-color:var(--panel);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:22px 22px;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 14px 40px #0000000a}.board:fullscreen{overflow:auto;border-radius:0;padding:24px 4vw}.boardtop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:10px}.boardtop h1{font-size:clamp(18px,2.2vw,22px);font-weight:700;outline:none}.board-tools{display:flex;gap:6px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);padding:0 0 8px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:9px;height:9px;border-radius:3px;display:inline-block}#stage svg{width:100%;height:auto;display:block}.msg{border-top:1px solid var(--line);margin-top:8px;padding:14px 0 0;font-size:14.5px;font-weight:600;min-height:58px}.aux{display:grid;gap:6px;padding:8px 0 0}.auxrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12.5px}.auxl{color:var(--muted);min-width:8em}.cells{display:flex;gap:4px;flex-wrap:wrap}.cell{font-family:var(--mono);font-size:12px;padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:var(--soft)}.cell.empty{border-style:dashed;color:var(--muted)}.controls{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.ib{width:44px;height:44px;border-radius:9px;border:1px solid var(--line);background:var(--panel);display:grid;place-items:center;cursor:pointer;color:var(--ink)}.ib svg{width:20px;height:20px;fill:currentColor}.ib.play{width:56px;background:var(--accent-2);border-color:var(--accent-2);color:#fff;box-shadow:0 4px 16px #3b82f62b}.scrub{flex:1 1 160px;accent-color:var(--accent-2);min-width:120px}.meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--muted);align-items:center}.speeds{display:flex;gap:4px}.speeds button{border:1px solid var(--line);background:var(--panel);border-radius:8px;min-height:36px;padding:4px 10px;cursor:pointer;font-size:12.5px;font-variant-numeric:tabular-nums}.speeds button[aria-pressed=true]{background:color-mix(in srgb,var(--accent-2) 18%,transparent);border-color:var(--accent-2)}.stats{display:flex;gap:14px;font-variant-numeric:tabular-nums}.stats b{color:var(--ink)}.side{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}.side>*{min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}.card h2{font-size:13.5px;font-weight:650;margin-bottom:12px}.card-top{display:flex;justify-content:space-between;align-items:baseline}.code{font-family:var(--mono);font-size:12px;line-height:1.75;max-height:360px;overflow:auto;background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 0}.code .in{min-width:max-content}.ln{display:flex;white-space:pre;padding:0 12px 0 9px;border-left:3px solid transparent}.ln .n{color:var(--muted);width:2.4em;flex:none;-webkit-user-select:none;user-select:none;opacity:.7}.ln.on{background:var(--hl);border-left-color:var(--cmp);font-weight:600}.keys{font-size:11.5px;color:var(--muted);margin-top:10px}.fields{display:grid;gap:10px}.fields label{display:grid;gap:5px;font-size:12.5px;color:var(--muted)}.fields input[type=text],.fields textarea,.fields select{border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:var(--soft);font-size:15px;width:100%;color:var(--ink)}.fields textarea{font-family:var(--mono);font-size:14px;min-height:84px;resize:vertical}.fields textarea.gridtext{letter-spacing:.3em;line-height:1.5}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row .btn{flex:1 1 auto}.err{color:var(--swap);font-size:12.5px;margin:0;min-height:1.2em}.range{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--muted)}.range input{flex:1;accent-color:var(--accent-2)}.cx{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.cx th{font-weight:600;color:var(--muted);text-align:left;padding:4px 6px 4px 0;font-size:11px}.cx td{padding:4px 6px 4px 0;font-family:var(--mono);font-size:12px}.idea{margin:12px 0 6px;font-size:13.5px;line-height:1.7}.tip{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--pivot);background:var(--soft);border-radius:0 8px 8px 0;font-size:13px;line-height:1.7}.quiz{margin-top:20px}.quiz-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.quiz-top h2{font-size:16px;margin:0}.quiz-score{font-size:12.5px;color:var(--muted);font-weight:600}.quiz-score.good{color:var(--done)}.qq{border:1px solid var(--line);border-radius:12px;padding:12px 14px 10px;margin:12px 0 0}.qq legend{font-weight:600;font-size:14px;padding:0 4px;display:flex;gap:8px;align-items:baseline}.qn{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:6px;background:var(--soft);border:1px solid var(--line);font-size:12px}.qo{display:flex;gap:10px;align-items:flex-start;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13.5px}.qo:hover{background:var(--soft)}.qo input{margin-top:4px;accent-color:var(--accent-2)}.qq.right{border-color:var(--done)}.qq.wrong{border-color:var(--swap)}.qq.right .qo.is-answer,.qq.wrong .qo.is-answer{background:color-mix(in srgb,var(--done) 14%,transparent)}.why{margin:6px 0 2px;font-size:13px;color:var(--muted)}.why b{color:var(--ink)}.quiz .btns{margin-top:14px}.dlg{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);padding:0;width:min(640px,calc(100vw - 32px));box-shadow:0 24px 80px #00000059}.dlg::backdrop{background:#0308128c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.search-dlg{margin-top:10vh}.search-row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.search-row input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:16px;padding:8px 4px;outline:none}.search-list{list-style:none;margin:0;padding:8px;max-height:60vh;overflow-y:auto}.search-list a{display:flex;gap:12px;align-items:flex-start;padding:9px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}.search-list a .ico{margin-top:3px;color:var(--accent)}.search-list a span{display:flex;flex-direction:column;gap:1px}.search-list small{color:var(--muted);font-size:12px}.search-list [aria-selected=true] a,.search-list a:hover{background:var(--soft)}.search-list .empty{padding:16px;color:var(--muted)}.keys-dlg{padding:22px 24px;width:min(440px,calc(100vw - 32px))}.keys-dlg h2{font-size:18px;margin-bottom:12px}.keys-list{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;margin:0 0 18px;font-size:13.5px}.keys-list dd{margin:0;color:var(--muted)}.keys-dlg .btn{background:var(--accent-2);border-color:var(--accent-2);color:#fff}@media(max-width:1100px){.search-btn{min-width:0}.search-btn .search-label,.search-btn kbd,.brand-divider,.brand-lab{display:none}}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}.nav-toggle{display:inline-grid}.sidebar{position:fixed;top:61px;left:0;bottom:0;height:auto;width:min(310px,86vw);z-index:25;background:var(--paper);transform:translate(-100%);transition:transform .2s;padding-left:12px}.nav-open .sidebar{transform:none;box-shadow:0 0 40px #00000059}.scrim{position:fixed;inset:61px 0 0;z-index:24;background:#03081273}main{padding:16px 16px 32px}}@media(max-width:640px){.topbar{gap:8px;padding:0 12px}.brand{font-size:17px}.brandmark{width:30px;height:30px;margin-right:8px}.brand-name,.theme-seg span{display:none}.theme-seg button{padding:6px 8px}.board{padding:12px}.card{padding:15px}.controls{gap:6px;padding:8px}.topic-nav{grid-template-columns:1fr}.tn.next{text-align:left}.path-bar .btn{margin-left:0}.auxl{min-width:0;width:100%}}@media(prefers-reduced-motion:reduce){.bar{transition:none}}.gc.land rect{fill:color-mix(in srgb,var(--bar) 22%,var(--panel));stroke:var(--bar)}.gc.land text{fill:var(--bar)}.board{position:relative;overflow:hidden;box-shadow:0 1px #ffffff0a inset,0 24px 60px -30px #2563eb59}.board:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#22d3ee,#3b82f6 50%,#a78bfa)}.board-tools{flex-wrap:wrap}.toggle.tool{display:inline-flex;align-items:center;gap:6px}.toggle.tool .ico{width:15px;height:15px}#favBtn[aria-pressed=true]{background:color-mix(in srgb,var(--cmp) 22%,var(--panel));border-color:var(--cmp);color:var(--ink)}#favBtn[aria-pressed=true] .ico{fill:var(--cmp);stroke:var(--cmp)}#narrateBtn[aria-pressed=true]{background:var(--pivot);border-color:var(--pivot);color:#fff}.stepbar{height:4px;border-radius:2px;background:var(--soft);margin:0 0 10px;overflow:hidden}.stepbar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .25s ease}.msg{display:flex;gap:10px;align-items:flex-start;animation:msgIn .3s ease}.msg:before{content:"";flex:none;width:8px;height:8px;margin-top:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 20%,transparent)}@keyframes msgIn{0%{opacity:.4}to{opacity:1}}.steplist{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 85%,transparent)}.steplist summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px;cursor:pointer;font-weight:650;font-size:13px;list-style:none}.steplist summary::-webkit-details-marker{display:none}.steplist summary:before{content:"▸";color:var(--accent);transition:transform .15s}.steplist[open] summary:before{transform:rotate(90deg)}.steplist summary small{color:var(--muted);font-weight:500;font-size:11.5px}.steplist ol{position:relative;list-style:none;margin:0;padding:4px 6px 8px;max-height:260px;overflow-y:auto;border-top:1px solid var(--line)}.steplist button{display:flex;gap:10px;width:100%;text-align:left;padding:6px 8px;border:0;border-radius:8px;background:none;color:var(--muted);font-size:12.5px;line-height:1.5;cursor:pointer}.steplist button:hover{background:var(--soft);color:var(--ink)}.steplist .sn{flex:none;min-width:2.4em;font:600 11px/1.9 var(--mono);color:var(--muted);opacity:.8}.steplist li.on button{background:color-mix(in srgb,var(--accent-2) 16%,transparent);color:var(--ink);font-weight:600}.notes textarea{width:100%;min-height:96px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--soft);color:var(--ink);font:14px/1.6 var(--font)}.notes h2 label{cursor:pointer}.note-state{font-size:11.5px;color:var(--done);font-weight:600}.surprise{display:flex;align-items:center;gap:10px;width:100%;margin:2px 0 10px;padding:9px 10px;border:1px dashed color-mix(in srgb,var(--accent) 50%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--ink);font:600 13px var(--font);cursor:pointer;transition:background .15s,transform .15s}.surprise:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.surprise:hover .ico{transform:rotate(90deg)}.surprise .ico{color:var(--accent);transition:transform .3s}.surprise span{flex:1;text-align:left}.streak{display:inline-flex;align-items:center;gap:2px;margin-right:8px;color:var(--cmp);font-weight:700}.streak .ico{width:14px;height:14px}.fav-group summary .ico{color:var(--cmp)}.side-group summary .ico{transition:transform .2s}.side-group summary:hover .ico{transform:scale(1.12)}.side-group a[aria-current=page]{background:linear-gradient(90deg,var(--accent-2),color-mix(in srgb,var(--accent-2) 70%,var(--pivot)));box-shadow:0 6px 18px -8px var(--accent-2)}.ib{transition:transform .12s,border-color .15s}.ib:hover{border-color:var(--accent-2)}.ib:active{transform:scale(.94)}.ib.play{background:linear-gradient(135deg,var(--accent-2),var(--pivot));border:0}.card{transition:border-color .2s}.card:hover{border-color:color-mix(in srgb,var(--accent-2) 35%,var(--line))}.tn{transition:transform .15s,border-color .15s}.tn:hover{transform:translateY(-2px)}.pill.new{background:color-mix(in srgb,var(--accent) 12%,transparent)}@media(max-width:640px){.toggle.tool span{display:none}.toggle.tool{padding:6px 9px}.steplist summary small{display:none}}@media(prefers-reduced-motion:reduce){.msg{animation:none}.stepbar span{transition:none}}.sidebar .side-sub{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:6px 8px}.sidebar .side-sub .ico{width:14px;height:14px;color:var(--cmp)}.fav-group ul{list-style:none;margin:0 0 10px;padding:0}.fav-group a{display:block;padding:6px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13px}.fav-group a:hover{background:var(--surface)}.mod-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.mod-list>li{border-bottom:1px solid var(--line);padding:3px 0}.mod-list a{display:flex;align-items:center;gap:9px;padding:9px 8px;min-height:40px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:600}.mod-list a:hover{background:var(--surface)}.mod-list a span{flex:1}.mod-list>li>a .ico{color:var(--accent)}.mod-list kbd{font-size:10px;padding:2px 5px;opacity:.7}.mod-list a[aria-current=page]{background:linear-gradient(90deg,var(--accent-2),color-mix(in srgb,var(--accent-2) 70%,var(--pivot)));color:#fff;box-shadow:0 6px 18px -8px var(--accent-2)}.mod-list a[aria-current=page] .ico{color:#fff}.mod-list a[aria-current=page] .tag-new{background:#fff3;color:#fff}.mod-list .sub{list-style:none;margin:2px 0 6px;padding:0 0 0 22px}.mod-list .sub a{font-weight:500;font-size:13px;min-height:32px;padding:6px 8px;border-left:2px solid var(--line);border-radius:0 8px 8px 0}.mod-list .sub a[aria-current=page]{background:color-mix(in srgb,var(--accent-2) 22%,transparent);color:var(--ink);box-shadow:none;border-left-color:var(--accent-2)}.mod-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 20px;margin-bottom:16px}.mod-head h1{font-size:clamp(22px,2.8vw,30px);font-weight:750;letter-spacing:-.02em;outline:none}.crumb{display:flex;align-items:center;gap:8px;margin:0 0 6px}.crumb .ico{width:15px;height:15px}.mod-blurb{color:var(--muted);margin:6px 0 0;max-width:72ch;font-size:14px}#mod{min-height:300px}#mod .card,.notes{margin-bottom:0}.notes{margin-top:18px}.grid2{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:980px){.grid2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.grid2>*{min-width:0}.card h2{font-size:16px;font-weight:700;margin:0 0 8px}.card h3{font-size:14px;font-weight:700;margin:16px 0 6px}.card h3 small{font-weight:500;color:var(--muted);font-size:11.5px;margin-left:6px}.card p,.card li{font-size:14px;line-height:1.65}.card ul,.card ol{padding-left:20px}.hint,.muted{color:var(--muted)}.scen{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:14px}.scen button{text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 13px;color:var(--ink);cursor:pointer;transition:border-color .15s,transform .15s}.scen button:hover{border-color:var(--accent-2);transform:translateY(-1px)}.scen button b{display:flex;align-items:center;gap:6px;font-size:14px}.scen button span{display:block;font-size:12px;color:var(--muted);line-height:1.4;margin-top:2px}.scen button[aria-pressed=true]{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 14%,var(--panel));box-shadow:0 0 0 1px var(--accent-2) inset}.opts{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:flex-end;margin-bottom:14px}.opts.card{padding:14px 16px}.field label,.flabel{display:block;font-size:12px;color:var(--muted);margin-bottom:5px;font-weight:600}.field input,.field select,.search,.decode input,#pin,#tin,.notes textarea{font:15px var(--font);padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);min-width:0;max-width:100%}.field input{width:150px}.search{width:100%;margin-bottom:12px}#pin,#tin{width:100%;font:13px/1.5 var(--mono);resize:vertical}.seg.pills{display:flex;flex-wrap:wrap;gap:6px;border:0;background:none;overflow:visible}.seg.pills button{flex:none;border:1px solid var(--line);border-radius:999px;background:var(--panel);min-height:34px;padding:6px 12px;font-size:12.5px}.seg.pills button[aria-pressed=true]{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.sim{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@media(min-width:1000px){.sim{grid-template-columns:290px minmax(0,1fr)}}.sim-left{padding:14px}.nodes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;position:relative}.node{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--soft);border-radius:10px;padding:8px 10px;transition:background .25s,border-color .25s,transform .25s}.node .dot{width:10px;height:10px;border-radius:50%;background:var(--line);flex:none}.node b{font-size:13.5px;display:block;line-height:1.25}.node small{color:var(--muted);font-size:11.5px}.node.from{border-color:var(--cmp);background:color-mix(in srgb,var(--cmp) 14%,var(--panel))}.node.from .dot{background:var(--cmp)}.node.to,.node.self{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 16%,var(--panel));transform:translate(4px)}.node.to .dot,.node.self .dot{background:var(--accent-2);animation:pulse 1s ease-out}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--accent-2)}to{box-shadow:0 0 0 10px transparent}}.log{list-style:none;margin:0;padding:0;font-size:12.5px;max-height:260px;overflow:auto;position:relative}.log li{border-bottom:1px dashed var(--line)}.log li:last-child{border-bottom:0}.log button{display:flex;gap:8px;width:100%;padding:6px 4px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;border-radius:6px;font-size:12.5px}.log button:hover{background:var(--soft)}.log li.later button{color:var(--muted);opacity:.65}.log li.on button{background:color-mix(in srgb,var(--accent-2) 16%,transparent);font-weight:600}.log .m{font-family:var(--mono);color:var(--cmp);min-width:52px}.log.plain li{display:flex;gap:8px;padding:6px 0}.step-card{position:relative;overflow:hidden}.step-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#22d3ee,#3b82f6 50%,#a78bfa)}.stephead{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px;font-size:12.5px;color:var(--muted)}.route{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:650;color:var(--ink)}.packet{display:inline-block;font:600 12px var(--mono);background:color-mix(in srgb,var(--cmp) 16%,transparent);color:var(--cmp);border:1px solid var(--cmp);padding:1px 8px;border-radius:6px;animation:slide .5s ease-out}@keyframes slide{0%{transform:translate(-14px);opacity:0}to{transform:none;opacity:1}}.status{font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px}.status.ok{background:color-mix(in srgb,var(--done) 18%,transparent);color:var(--done)}.status.bad{background:color-mix(in srgb,var(--swap) 18%,transparent);color:var(--swap)}#stepTitle{font-size:19px;margin:2px 0 8px}.body p{max-width:72ch}.ctrl{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}.ctrl .btn .ico{width:15px;height:15px}.btn:disabled{opacity:.45;cursor:not-allowed}.scroll{overflow-x:auto;margin:10px 0;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--soft);font-weight:650;color:var(--muted);font-size:11.5px}tr:last-child td,tr:last-child th{border-bottom:0}td.v,.mono{font-family:var(--mono);font-size:12.5px;word-break:break-all}td.n{font-family:var(--mono);color:var(--accent);white-space:nowrap;font-weight:600}td.dbl,td.hl{color:var(--cmp);font-weight:700}td.pos,.pos{color:var(--done);font-weight:700}td.neg{color:var(--swap);font-weight:700}.msgmeta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:12.5px;margin-top:12px}.msgmeta span{color:var(--muted)}.msgmeta code{font-family:var(--mono);color:var(--ink)}.msgmeta .linkish{margin-left:auto;color:var(--link)}.note{font-size:13px;color:var(--muted);border-left:3px solid var(--line);padding-left:10px;margin:10px 0}.bits{display:grid;grid-template-columns:repeat(16,1fr);gap:3px;margin:12px 0}.bit{aspect-ratio:1;border:1px solid var(--line);background:var(--soft);border-radius:4px;font:500 10px var(--mono);color:var(--muted);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .12s}.bit:hover{border-color:var(--accent-2)}.bit.on{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.bit.sys{background:color-mix(in srgb,var(--cmp) 25%,transparent);border-color:var(--cmp);color:var(--cmp)}.big{font:600 28px var(--mono);letter-spacing:.12em;margin:8px 0}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 14px;font-size:13.5px}.kv>*{min-width:0;overflow-wrap:anywhere}.kv span{color:var(--muted)}.decode{margin-top:12px}.decode label{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:5px}.decode input{flex:1;min-width:0}.anat{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.anat div{border-radius:9px;padding:7px 10px;text-align:center;border:1px solid;max-width:100%;min-width:0}.anat code{display:block;font:600 17px var(--mono);letter-spacing:.06em;word-break:break-all}.anat small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.c1{background:color-mix(in srgb,var(--cmp) 16%,transparent);border-color:var(--cmp)!important}.c2{background:color-mix(in srgb,var(--accent-2) 16%,transparent);border-color:var(--accent-2)!important}.c3{background:var(--soft);border-color:var(--line)!important}.c4{background:color-mix(in srgb,var(--done) 16%,transparent);border-color:var(--done)!important}.binrow{font:12px/1.8 var(--mono);word-break:break-all}.binrow .b1{color:var(--accent-2)}.binrow .b2{color:var(--muted)}.binrow .b3{color:var(--cmp);font-weight:700}.binrow small{font-family:var(--font);color:var(--muted)}.timeline{list-style:none;margin:8px 0;padding:0;border-left:2px solid var(--line)}.timeline li{position:relative;padding:0 0 14px 16px}.timeline li:before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--accent-2)}.timeline b{display:block}.paycard{position:relative;border-radius:18px;padding:20px;color:#fff;background:linear-gradient(135deg,#1d3b82,#0e6b6b 60%,#22d3ee);min-height:190px;max-width:380px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 20px 50px -20px #0a1e46cc;overflow:hidden}.paycard:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-80px;top:-90px;background:#ffffff14}.paycard .chip{width:42px;height:31px;border-radius:7px;background:linear-gradient(135deg,#e9ce7a,#b8913a)}.pc-top,.pc-bot{display:flex;justify-content:space-between;align-items:flex-start}.pc-bot{align-items:flex-end}.paycard .bal{font-size:32px;font-weight:800;line-height:1}.paycard small{opacity:.85;font-size:12px}.paycard .pan{font-family:var(--mono);letter-spacing:.12em;font-size:14px}.gap{margin:12px 0 4px}.gap-bar{height:8px;border-radius:4px;background:color-mix(in srgb,var(--swap) 35%,var(--soft));overflow:hidden}.gap-bar span{display:block;height:100%;background:var(--done);transition:width .4s}.gap small{font-size:12px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:10px 0}.flash{border-radius:10px;padding:10px 12px;font-size:13.5px;margin:10px 0;line-height:1.55}.flash.ok{background:color-mix(in srgb,var(--done) 14%,transparent);border-left:4px solid var(--done)}.flash.bad{background:color-mix(in srgb,var(--swap) 14%,transparent);border-left:4px solid var(--swap)}.flash.info{background:color-mix(in srgb,var(--accent-2) 14%,transparent);border-left:4px solid var(--accent-2)}.split{display:flex;height:38px;border-radius:9px;overflow:hidden;margin:12px 0;font-size:12px;font-weight:700;gap:2px}.split div{display:flex;align-items:center;justify-content:center;color:#fff;white-space:nowrap;overflow:hidden;min-width:0;transition:flex .3s}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);align-items:center}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:middle}.legend b{color:var(--ink)}.owe input{width:84px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--ink);font:13px var(--mono)}.gloss{display:grid;gap:10px;grid-template-columns:minmax(0,1fr);margin-top:12px}@media(min-width:900px){.gloss{grid-template-columns:1fr 1fr}}.gloss details{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:11px 13px;transition:border-color .15s}.gloss details[open]{border-color:var(--accent-2);background:var(--panel)}.gloss summary{cursor:pointer;list-style:none}.gloss summary::-webkit-details-marker{display:none}.gloss summary b{display:block;font-size:15px}.gloss summary span{display:block;font-size:13px;color:var(--muted)}.gloss em{font-style:normal;font-size:11px;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.gloss .d{font-size:13.5px;margin:10px 0 6px}.gloss .ex{font-size:13px;background:var(--soft);border-radius:8px;padding:8px 10px;margin:0}.ptable input.pv{width:100%;min-width:140px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--soft);color:var(--ink);font:12.5px var(--mono)}.addrow{margin:10px 0}.addrow select{flex:1 1 240px;min-height:38px;padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--soft);color:var(--ink)}.wire{font:13px/2 var(--mono);word-break:break-all;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);min-height:48px}.w{border-radius:4px;padding:2px 1px}.w.mti{background:color-mix(in srgb,var(--pivot) 30%,transparent)}.w.bitmap{background:color-mix(in srgb,var(--cmp) 30%,transparent)}.w.len{background:color-mix(in srgb,var(--swap) 30%,transparent)}.w.value{background:color-mix(in srgb,var(--accent-2) 18%,transparent);margin-right:2px}.legend i.w{width:14px;height:12px;padding:0}.tlv{list-style:none;margin:10px 0 0;padding:0;font-size:13px}.tlv .tlv{margin:6px 0 4px 18px;padding-left:10px;border-left:2px solid var(--line)}.tlv li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line)}.tlv .tag{font:700 13px var(--mono);color:var(--accent);min-width:46px}.tlv .tn{font-weight:600}.tlv .tl{color:var(--muted);font-size:12px}.tlv .tv{flex-basis:100%;font:12.5px var(--mono);color:var(--cmp);word-break:break-all;padding-left:56px}.tat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0}.tat div{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft);display:flex;flex-direction:column;gap:2px}.tat small{font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.tat b{font-size:20px;font-variant-numeric:tabular-nums}.tat span{font-size:12px;color:var(--muted)}.tat .owed{border-color:var(--cmp);background:color-mix(in srgb,var(--cmp) 14%,var(--panel))}.reasons{list-style:none;padding:0;margin:0;display:grid;gap:8px}.reasons li{display:flex;flex-direction:column;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.reasons span{font-size:13px;color:var(--muted)}.lifecycle{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;counter-reset:l}.lifecycle button{width:100%;height:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);cursor:pointer}.lifecycle .lt{font-size:11px;color:var(--muted);font-weight:600}.lifecycle b{font-size:13.5px}.lifecycle small{font-size:11.5px;color:var(--muted)}.lifecycle li.past button{border-color:color-mix(in srgb,var(--done) 60%,var(--line))}.lifecycle li.on button{border-color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 16%,var(--panel));box-shadow:0 0 0 1px var(--accent-2) inset}.life-detail{padding:12px 14px;border-radius:12px;border:1px solid var(--line);margin-bottom:12px}.life-detail h3{margin-top:0}.money{font-weight:600}.tag-new{font-style:normal;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}@media(max-width:640px){.tat{grid-template-columns:1fr}.field input{width:100%}.opts .field{flex:1 1 140px}.mod-head .board-tools{width:100%}.bits{gap:2px}.bit{font-size:8px}}@media(prefers-reduced-motion:reduce){.node .dot,.packet{animation:none!important}}.field{min-width:0;max-width:100%}.field select{max-width:100%;text-overflow:ellipsis}@media(max-width:640px){.opts .field{flex:1 1 100%}.field select,.field input{width:100%}.lifecycle{grid-template-columns:1fr 1fr}}.pro-tag{display:inline-block;margin-left:4px;font-size:10px;font-weight:800;letter-spacing:.04em;padding:2px 6px;border-radius:6px;background:linear-gradient(135deg,#22d3ee,#38bdf8);color:#03131d;vertical-align:middle}.notes .card-top{gap:8px;align-items:center}.notes .card-top .note-state{margin-left:auto}.note-save{min-height:30px;padding:5px 12px}.note-state.off{color:var(--muted)}
