:root{--bg:#f4f5f7;--panel:#fff;--ink:#1e2126;--muted:#6b7280;--hair:#e2e5ea;--accent:#2f6fed;--accent-ink:#fff;--sel:#fff3bf;--off:#9aa0a6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font:13px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#15171a;--panel:#1e2126;--ink:#e6e8eb;--muted:#9aa3ad;--hair:#2c3138;--accent:#5b8def;--sel:#4a3f14;--off:#6b7280}}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--hair);cursor:pointer;border-radius:6px;padding:4px 10px}button:hover{border-color:var(--accent)}button.on,button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}input[type=search],input[type=text]{border:1px solid var(--hair);background:var(--panel);border-radius:6px;width:100%;padding:5px 8px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}#top{background:var(--panel);border-bottom:1px solid var(--hair);align-items:center;gap:10px;height:44px;padding:0 12px;display:flex}#top .brand{letter-spacing:.08em;font-weight:700}#top .spacer{flex:1}#top select{border:1px solid var(--hair);background:var(--panel);border-radius:6px;max-width:320px;padding:4px 6px}#status{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:40vw;overflow:hidden}#live{color:var(--off);font-size:11px}#live.on{color:#2fa36b}main{grid-template-rows:minmax(0,1fr);grid-template-columns:300px 1fr 320px;height:calc(100% - 44px);display:grid}aside{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}#left{border-right:1px solid var(--hair);padding:8px}#right{border-left:1px solid var(--hair)}#center{min-width:0;position:relative}canvas#c{outline:none;width:100%;height:100%;display:block}#toolbar{pointer-events:none;z-index:2;flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:absolute;top:10px;left:10px;right:10px}#toolbar>*{pointer-events:auto}#toolbar .sep{background:var(--hair);width:1px;height:20px}#toolbar .inline{background:var(--panel);border:1px solid var(--hair);border-radius:6px;align-items:center;gap:6px;padding:3px 8px;display:flex}#toolbar input[type=range]{width:90px}#section-bar{background:var(--panel);border:1px solid var(--hair);z-index:2;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;display:flex;position:absolute;bottom:10px;left:10px;right:10px}#section-bar[hidden]{display:none}#section-bar .axes label{margin-right:8px}#section-bar input[type=range]{flex:1}#section-val{text-align:right;min-width:90px;font-family:ui-monospace,Consolas,monospace}#hud{background:var(--panel);border:1px solid var(--hair);z-index:2;border-radius:8px;max-width:calc(100% - 130px);padding:6px 10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.6;position:absolute;bottom:60px;left:10px}#hud[hidden]{display:none}#drop{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border:2px dashed var(--accent);z-index:5;pointer-events:none;place-items:center;font-size:20px;display:grid;position:absolute;inset:0}#drop[hidden]{display:none}#progress{background:var(--panel);border:1px solid var(--hair);z-index:6;text-align:center;border-radius:8px;width:320px;padding:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#progress[hidden]{display:none}#progress .bar{background:var(--hair);border-radius:3px;height:6px;margin-bottom:8px;overflow:hidden}#progress .bar:after{content:"";height:100%;width:var(--p,0%);background:var(--accent);transition:width .2s;display:block}#tree{-webkit-user-select:none;user-select:none;flex:1;margin-top:8px;overflow:auto}#tree ul{margin:0;padding-left:14px;list-style:none}#tree>ul{padding-left:0}#tree .row{cursor:default;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:1px 4px;display:flex}#tree .row:hover{background:color-mix(in srgb, var(--accent) 10%, transparent)}#tree .row.sel{background:var(--sel)}#tree .row.off .name{color:var(--off);text-decoration:line-through}#tree .tw{text-align:center;width:14px;color:var(--muted);cursor:pointer;font-size:10px}#tree .eye{cursor:pointer;opacity:.7;width:16px;font-size:11px}#tree .sw{border:1px solid var(--hair);border-radius:2px;flex:none;width:10px;height:10px}#tree .name{text-overflow:ellipsis;overflow:hidden}#tree .cnt{color:var(--muted);font-size:11px}.tabs{border-bottom:1px solid var(--hair);display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:0;flex:1;padding:8px}.tabs button.on{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent);background:0 0}.tab{padding:10px;display:none;overflow:auto}.tab.on{display:block}.tab h3{margin:0 0 4px;font-size:14px}.tab h4{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:12px 0 6px;font-size:12px}.kv{border-collapse:collapse;width:100%}.kv td{border-bottom:1px solid var(--hair);vertical-align:top;padding:3px 4px}.kv td:first-child{color:var(--muted);width:38%}.kv input{background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:2px 4px}.kv input:focus{border-color:var(--accent);background:var(--panel);outline:none}.actions{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}table.bom{border-collapse:collapse;width:100%;font-size:12px}table.bom th,table.bom td{text-align:left;border-bottom:1px solid var(--hair);padding:3px 4px}table.bom th{color:var(--muted);background:var(--panel);font-weight:500;position:sticky;top:0}table.bom tr:hover td{background:color-mix(in srgb, var(--accent) 10%, transparent);cursor:pointer}table.bom td.n{text-align:right;font-family:ui-monospace,Consolas,monospace}.view-row{border-bottom:1px solid var(--hair);align-items:center;gap:6px;padding:4px 0;display:flex}.view-row .nm{flex:1}.grp{flex-wrap:wrap}.grp .nm{cursor:pointer}.grp .nm:hover{color:var(--accent)}.grp .btns{flex-basis:100%;gap:4px;display:flex}.grp .btns button{padding:2px 7px;font-size:12px}.clash-row{cursor:pointer}.clash-row:hover{background:var(--sel)}#clash .inline{align-items:center;gap:4px;display:inline-flex}#clash-tol{border:1px solid var(--hair);background:var(--panel);border-radius:6px;width:60px;padding:3px 6px}#groups select{border:1px solid var(--hair);background:var(--panel);border-radius:6px;padding:4px 6px}pre.diff{white-space:pre-wrap;background:var(--bg);border-radius:6px;max-height:40vh;padding:8px;font-size:11px;overflow:auto}@media (max-width:900px){main{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr}#left{display:none}#right{max-height:40vh}#top select{max-width:40vw}}#login{z-index:10;background:var(--bg);place-items:center;display:grid;position:fixed;inset:0}#login[hidden],#login form[hidden],#login .card[hidden]{display:none}#login form,#login .card{background:var(--panel);border:1px solid var(--hair);border-radius:10px;gap:10px;width:min(360px,100vw - 32px);padding:24px;display:grid}#login h2{letter-spacing:.04em;margin:0;font-size:18px}#login p{margin:0}#login input{border:1px solid var(--hair);background:var(--bg);border-radius:6px;width:100%;padding:8px 10px;font-size:16px}#login input[hidden]{display:none}#login button{background:var(--accent);color:var(--accent-ink);border:0;border-radius:6px;padding:8px 10px;font-weight:600}#login button:disabled{opacity:.6}.err{color:#c0392b;min-height:1.2em;font-size:13px}#user{text-overflow:ellipsis;white-space:nowrap;max-width:24vw;font-size:12px;overflow:hidden}
