:root{--bg:#14171b;--panel:#161a1feb;--line:#2b323b;--txt:#e7eaee;--mut:#8b95a3;--acc:#ff7a2f;--blue:#4c8dff;--ok:#49c37a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--txt);margin:0;font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}#view{width:100%;height:100%;display:block;position:fixed;inset:0}button,select,input{font:inherit;color:inherit}button{border:1px solid var(--line);cursor:pointer;background:#232a32;border-radius:7px;padding:6px 11px}button:hover{border-color:#4a5563}button.on,button.primary{background:var(--acc);border-color:var(--acc);color:#1a0d04;font-weight:600}button.good{background:var(--ok);border-color:var(--ok);color:#06210f;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}select{border:1px solid var(--line);background:#232a32;border-radius:7px;padding:5px 8px}#top{background:var(--panel);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3;justify-content:space-between;align-items:center;height:52px;padding:0 14px;display:flex;position:fixed;top:0;left:0;right:0}.brand b{letter-spacing:.2px;font-size:16px}.brand span{color:var(--mut);margin-left:10px}.tools{gap:8px;display:flex}aside{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2;flex-direction:column;width:300px;display:flex;position:fixed;top:52px;bottom:112px}#left{border-right:1px solid var(--line);left:0}#right{border-left:1px solid var(--line);width:330px;right:0}#search{border:1px solid var(--line);background:#11151a;border-radius:7px;outline:none;margin:10px;padding:7px 10px}#search:focus{border-color:var(--blue)}#tree{flex:1;padding:0 6px 10px;overflow:auto}.grp>.gh{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:6px;padding:6px;font-weight:600;display:flex}.grp>.gh:hover{background:#1e242b}.gh .cnt{color:var(--mut);margin-left:auto;font-size:12px;font-weight:400}.gh .arr{width:10px;color:var(--mut);transition:transform .12s}.grp.open>.gh .arr{transform:rotate(90deg)}.grp>.gb{border-left:1px solid var(--line);margin-left:10px;padding-left:4px;display:none}.grp.open>.gb{display:block}.grp .grp>.gh{color:#c5ccd6;font-weight:500}.it{cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:4px 6px;display:flex}.it:hover{background:#1e242b}.it.sel{background:#1d3157}.it .dot{background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px}.it.gone .dot{background:#5b6470}.it.gone .nm{color:var(--mut);text-decoration:line-through}.it.hid .nm{opacity:.5}.it .nm{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.it .eye{opacity:0;color:var(--mut);background:0 0;border:0;padding:0 4px}.it:hover .eye,.it.hid .eye{opacity:1}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{color:var(--mut);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1;padding:11px}.tabs button.on{color:var(--txt);border-bottom-color:var(--acc);background:0 0;font-weight:600}#tabPart,#tabProc{flex:1;padding:14px;overflow:auto}h2{margin:0 0 2px;font-size:18px;line-height:1.25}h3{text-transform:uppercase;letter-spacing:.8px;color:var(--mut);margin:16px 0 6px;font-size:12px}.sub{color:var(--mut);font-size:13px}p{color:#cfd5dd;margin:10px 0}table{border-collapse:collapse;width:100%}td{border-bottom:1px solid var(--line);vertical-align:top;padding:5px 0}td:first-child{color:var(--mut);padding-right:10px}td:last-child{text-align:right}.acts{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.badge{color:#7be3a4;background:#1c3a27;border-radius:20px;padding:2px 8px;font-size:12px;display:inline-block}.badge.off{color:#aab2bd;background:#33383f}.warn{background:#2a2113;border:1px solid #5a4320;border-radius:8px;margin-top:12px;padding:10px;font-size:13px}.chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{cursor:pointer;background:#3a2e17;border:1px solid #6b5326;border-radius:20px;padding:2px 9px;font-size:12.5px}.chip:hover{border-color:var(--acc)}.proc{border:1px solid var(--line);cursor:pointer;border-radius:9px;margin-bottom:10px;padding:11px 12px}.proc:hover{border-color:#4a5563}.proc b{display:block}.proc span{color:var(--mut);font-size:13px}.step{border-radius:7px;gap:10px;padding:8px 6px;display:flex}.step.cur{background:#1d3157}.step.done{opacity:.55}.step .n{background:#2b323b;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:12px;display:grid}.step.done .n{background:var(--ok);color:#06210f}.step small{color:var(--mut);display:block}#bottom{background:var(--panel);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3;flex-direction:column;justify-content:center;gap:10px;height:112px;padding:10px 14px;display:flex;position:fixed;bottom:0;left:0;right:0}.row{align-items:center;gap:14px;display:flex}.sl{color:var(--mut);white-space:nowrap;align-items:center;gap:8px;display:flex}.sl.grow{flex:1}.sl input{min-width:90px;accent-color:var(--acc);flex:1}.sl output{color:var(--txt);font-variant-numeric:tabular-nums;min-width:74px}.chk{align-items:center;gap:6px;display:flex}.chk input{accent-color:var(--acc)}.play{flex:none;width:40px;height:36px;padding:0;font-size:15px}#strokes{gap:4px;display:flex}.stk{text-align:center;color:#0d1014;border-radius:6px;width:62px;padding:3px 0;font-size:11.5px;font-weight:600;line-height:1.2}.stk b{font-size:13px;display:block}.stk.s0{background:#ff8a3a}.stk.s1{background:#9aa0a8}.stk.s2{background:#5aa9ff}.stk.s3{background:#a393ff}#toast{z-index:5;background:#2a2113;border:1px solid #6b5326;border-radius:9px;max-width:520px;padding:9px 14px;position:fixed;bottom:128px;left:50%;transform:translate(-50%)}#loading{background:var(--bg);z-index:10;color:var(--mut);place-items:center;font-size:18px;display:grid;position:fixed;inset:0}@media (width<=1100px){aside{width:240px}#right{width:270px}#strokes{display:none}}@media (width<=760px){#left{display:none}#right{border-left:0;border-top:1px solid var(--line);width:auto;max-height:38vh;inset:auto 0 112px}.brand span{display:none}}
