:root{--bg:#f4f4fa;--surface:#fff;--border:#e7e7ed;--border-weak:#f0eff5;--nav-border:#e6e5ed;--thead:#f9f8fd;--hover:#faf9fe;--text:#1e1e29;--text-2:#6f6f83;--text-3:#7f7f8c;--accent:#7c4ddb;--accent-bg:#edecff;--accent-line:#dcd9fe;--accent-deep:#4b4280;--ok:#0b5d2a;--ok-bg:#d6f7dc;--danger:#bd413f;--danger-bg:#fef0ee;--warn:#cf9a35;--warn-bg:#fff4e0;--logo:#1e193a;--track:#f0eff5;--ui:"Plus Jakarta Sans",Helvetica,Arial,sans-serif;--mono:"IBM Plex Mono","SF Mono",Menlo,monospace}@supports (color:lab(0% 0 0)){:root{--bg:lab(96.2156% .880748 -2.87741);--border:lab(91.8076% .881344 -2.87702);--border-weak:lab(94.7076% .880957 -2.87732);--nav-border:lab(91.2091% 1.10662 -3.59308);--thead:lab(97.8579% .657797 -2.15999);--hover:lab(98.2059% .657707 -2.16);--text:lab(11.6446% 2.2293 -7.12302);--text-2:lab(47.5219% 3.13237 -10.7775);--text-3:lab(53.4218% 1.98561 -7.23771);--accent-bg:lab(93.8164% 4.70752 -14.2064);--accent-line:lab(87.9094% 6.03679 -17.6796);--accent-deep:lab(31.4038% 16.368 -34.0861);--ok:lab(34.0894% -33.3935 22.2294);--ok-bg:lab(94.2846% -14.8138 9.47347);--danger:lab(46.203% 50.4327 30.0437);--danger-bg:lab(95.8021% 4.58771 2.46811);--warn:lab(67.5597% 13.356 58.1654);--warn-bg:lab(96.5959% 1.91957 11.4456);--logo:lab(11.0356% 9.99406 -20.4255);--track:lab(94.7076% .880957 -2.87732)}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--ui);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:var(--accent);font-weight:500;text-decoration:none}a:hover{color:#5432b2;color:lab(31.6945% 40.2495 -64.1332)}::selection{background:#dcd9ff;background:lab(87.8002% 7.3961 -21.1431)}.app{min-height:100vh;display:flex}.side{flex-direction:column;flex:0 0 272px;gap:22px;width:272px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:11px;padding:4px 8px;display:flex}.logo{background:var(--logo);color:#fff;letter-spacing:-.02em;border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.brand .nm{letter-spacing:-.01em;font-size:14px;font-weight:700}.brand .sub{font-family:var(--mono);color:var(--text-2);font-size:10.5px}.ws{background:var(--surface);border:1px solid var(--nav-border);border-radius:14px;align-items:center;gap:11px;padding:13px 15px;display:flex}.ws .dotbox{background:var(--accent-bg);border-radius:8px;flex:0 0 26px;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.ws .dot{background:var(--accent);border-radius:3px;width:9px;height:9px}.ws .lbl{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px}.ws .val{margin-top:1px;font-size:13px;font-weight:600}nav{flex-direction:column;gap:3px;display:flex}.nav-item{color:var(--text);border:1px solid #0000;border-radius:12px;align-items:center;gap:11px;padding:9px 11px;font-size:13.5px;font-weight:400;display:flex}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item .gl{width:26px;height:26px;color:var(--text-2);border-radius:9px;flex:0 0 26px;justify-content:center;align-items:center;font-size:14px;display:flex}.nav-item .lb{flex:1}.nav-item .bd{font-family:var(--mono);color:var(--text-3);font-size:11px}.nav-item.on{background:var(--surface);border-color:var(--nav-border);font-weight:600}.nav-item.on .gl{background:var(--accent-bg);color:var(--accent)}.side-card{background:var(--surface);border:1px solid var(--nav-border);border-radius:14px;margin-top:auto;padding:16px}.side-card .t{font-size:12.5px;font-weight:600}.side-card .r{font-family:var(--mono);color:var(--text-2);justify-content:space-between;gap:8px;margin-top:9px;font-size:11px;display:flex}.pulse{background:var(--ok);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.pulse.stale{background:var(--warn)}.work{flex:1;min-width:0;padding:30px clamp(22px,3vw,44px) 64px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:22px;padding:30px clamp(20px,2.4vw,34px) 34px}.crumbs{color:var(--text-3);margin-bottom:12px;font-size:12px}.crumbs b{color:var(--text-2);font-weight:500}.head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}h1{letter-spacing:-.03em;margin:0;font-size:30px;font-weight:700;line-height:1.15}.sub{color:var(--text-2);margin:7px 0 0;font-size:12.5px}.acts{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:11px;padding:8px 14px;font-family:inherit;font-size:12.5px;font-weight:600}.btn:hover{border-color:#c1bcf6;border-color:lab(78.2781% 10.4297 -27.9519)}.btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}.btn.pri:hover{background:#5e3fc0;background:lab(36.5077% 38.5128 -64.1477)}.btn:disabled{opacity:.5;cursor:default}.btn:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stack{flex-direction:column;gap:18px;margin-top:24px;display:flex}.card{border:1px solid var(--border);border-radius:18px;padding:22px 24px}.card.tight{border-radius:16px;padding:18px 20px}h2.sec{letter-spacing:-.01em;margin:0 0 3px;font-size:16px;font-weight:700}.sec-note{color:var(--text-3);margin:0 0 14px;font-size:12px}.grid{gap:14px;display:grid}.g2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}.hero{border:1px solid var(--border);border-radius:18px;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));display:grid;overflow:hidden}.hero>div{border-right:1px solid var(--border-weak);padding:20px 24px}.hero>div:last-child{border-right:none}.hero .k{color:var(--text-2);margin-bottom:8px;font-size:12.5px}.hero .v{font-family:var(--mono);letter-spacing:-.02em;white-space:nowrap;font-size:26px;font-weight:500}.hero .m{color:var(--text-3);margin-top:6px;font-size:11.5px}.hero .total .v{color:var(--accent)}.kv{border-bottom:1px solid var(--border-weak);justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;display:flex}.kv:last-child{border-bottom:none}.kv .n{font-size:13px;font-weight:600}.kv .n small{font-family:var(--mono);color:var(--text-3);font-size:11px;font-weight:400;display:block}.kv .a{font-family:var(--mono);white-space:nowrap;text-align:right;font-size:13px}.kv .a small{color:var(--text-3);font-size:11px;display:block}.pill{background:var(--track);color:var(--text-2);white-space:nowrap;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:#835b00;color:lab(41.9751% 12.2767 54.8985)}.pill.bad{background:var(--danger-bg);color:var(--danger)}.pill.acc{background:var(--accent-bg);color:var(--accent-deep)}.mono{font-family:var(--mono)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--ok)}.neg{color:var(--danger)}.mut{color:var(--text-3)}.bar{background:var(--track);border-radius:3px;height:5px;margin:11px 0 9px;overflow:hidden}.bar>i{background:var(--accent);border-radius:3px;height:100%;display:block}.dirbadge{border-radius:9px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:flex}.dirbadge.in{background:var(--ok-bg);color:var(--ok)}.dirbadge.out{background:var(--danger-bg);color:var(--danger)}.dirbadge.internal{background:var(--accent-bg);color:var(--accent-deep)}.tw{border:1px solid var(--border);border-radius:18px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{background:var(--thead);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);white-space:nowrap;border-bottom:1px solid var(--border-weak);padding:11px 16px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--border-weak);vertical-align:top;padding:14px 16px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--hover)}td .p{font-weight:600}td small{font-family:var(--mono);color:var(--text-3);margin-top:2px;font-size:11px;font-weight:400;display:block}th.r,td.r{text-align:right}.note{border:1px solid var(--accent-line);color:var(--text-2);background:#faf9ff;background:lab(98.1507% 1.33166 -4.30933);border-radius:16px;padding:14px 18px;font-size:12.5px}.note b{color:var(--text)}.note.warn{background:var(--warn-bg);border-color:#eac992;border-color:lab(82.724% 6.50713 31.9344)}.note.bad{background:var(--danger-bg);border-color:#f9bdb7;border-color:lab(81.9429% 21.6049 11.7754)}.ref{font-family:var(--mono);color:var(--accent-deep);background:var(--accent-bg);white-space:nowrap;border-radius:7px;padding:2px 7px;font-size:11px}.foot{color:var(--text-3);margin:12px 0 0;font-size:11.5px}.tree{flex-direction:column;gap:2px;display:flex}.node{border:1px solid var(--border-weak);background:var(--surface);border-radius:14px;align-items:center;gap:12px;padding:13px 16px;display:flex}.node .nm{font-size:13.5px;font-weight:600}.node .cnt{font-family:var(--mono);color:var(--text-3);font-size:11px}.node .sum{font-family:var(--mono);white-space:nowrap;margin-left:auto;font-size:15px}.node.child{margin-left:26px}.swatch{background:var(--accent);border-radius:3px;flex:0 0 9px;width:9px;height:9px}.empty{border:1px dashed var(--border);text-align:center;color:var(--text-2);border-radius:18px;padding:40px 24px}.empty h3{color:var(--text);margin:0 0 6px;font-size:16px;font-weight:700}.empty p{margin:0 0 18px;max-width:44ch;margin-inline:auto;font-size:13px}input[type=text],select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;width:100%;padding:9px 12px;font-family:inherit;font-size:13px}input.mono{font-family:var(--mono)}label{color:var(--text-2);margin-bottom:5px;font-size:12px;display:block}.field{margin-bottom:12px}@media (max-width:900px){.app{flex-direction:column}.side{flex-flow:wrap;flex:none;align-items:center;gap:12px;width:auto;height:auto;position:static}nav{flex-flow:wrap;flex:1}.side-card,.ws{display:none}.work{padding:16px}.panel{border-radius:18px;padding:22px 18px 28px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
