:root{--bg:#f2f5f3;--surface:#fff;--surface2:#f6f8f7;--line:#e2e8e5;--line2:#cfd9d4;--ink:#17231e;--mut:#6a7b73;--ac:#0d7a68;--ac-ink:#fff;--ac-soft:#dcf1ec;--ok:#1d9b69;--warn:#b86e00;--warn-soft:#fdf0d8;--bad:#c3412e;--bad-soft:#fbe5e1;--c1:#0d7a68;--c2:#8da2d6;--c3:#e2a73b;--bl:30%;--shadow:0 1px 2px #1b2b240d,0 6px 20px #1b2b2409;--r:16px }[data-theme=dark]{--bg:#0e1413;--surface:#151e1c;--surface2:#1a2523;--line:#243330;--line2:#33463f;--ink:#e5eeea;--mut:#8ea39a;--ac:#3dd0b0;--ac-ink:#06231d;--ac-soft:#123a33;--ok:#47d49a;--warn:#f0b24d;--warn-soft:#3a2d12;--bad:#ff7d6b;--bad-soft:#40211d;--c1:#3dd0b0;--c2:#7f94c8;--c3:#e8b04a;--bl:72%;--shadow:none }*{box-sizing:border-box}html{color-scheme:light dark}body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.7 Readex Pro,system-ui,sans-serif;transition:background .2s}code,.mono{font-family:JetBrains Mono,monospace;font-size:12.5px;direction:ltr;unicode-bidi:isolate}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ac);outline-offset:2px}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{padding:22px 16px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;border-inline-end:1px solid var(--line);background:var(--surface)}.brand{display:flex;align-items:center;gap:11px;padding:2px 8px 24px;font-weight:600;font-size:17px}.logo{width:36px;height:36px;border-radius:11px;background:var(--ac);color:var(--ac-ink);display:grid;place-items:center}.nav{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:0;background:none;color:var(--mut);cursor:pointer;width:100%;text-align:start;font-weight:400}.nav:hover{background:var(--surface2);color:var(--ink)}a.nav{text-decoration:none}.nav.on{background:var(--ac-soft);color:var(--ac);font-weight:500}.sp{flex:1}main{padding:36px clamp(16px,4vw,52px) 60px;max-width:1100px;width:100%}.head{margin-bottom:26px}.head h1{font-size:27px;font-weight:600;letter-spacing:-.3px}.head p{color:var(--mut);margin-top:6px;max-width:62ch}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grow{flex:1;min-width:0}.mut{color:var(--mut);font-size:13px}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--ac);color:var(--ac-ink);border:0;border-radius:11px;padding:9px 16px;font-weight:500;cursor:pointer;transition:opacity .15s,transform .05s}.btn:hover{opacity:.9}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line2)}.btn.ghost:hover{background:var(--surface2);opacity:1}.btn.soft{background:var(--ac-soft);color:var(--ac)}.btn.sm{padding:5px 12px;font-size:13px;border-radius:9px}.btn.dangerous{background:var(--bad-soft);color:var(--bad)}.icon{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;border:0;background:none;color:var(--mut);cursor:pointer;flex:none}.icon:hover{background:var(--surface2);color:var(--ink)}.icon.danger:hover{color:var(--bad);background:var(--bad-soft)}.field,.lbl input,.lbl select,.lbl textarea{background:var(--surface2);border:1px solid var(--line);border-radius:11px;padding:9px 13px;min-width:0;width:100%;transition:border-color .15s}.field{flex:1 1 170px;width:auto}.field:focus,.lbl input:focus,.lbl textarea:focus,.lbl select:focus{border-color:var(--ac);outline:none}::placeholder{color:var(--mut);opacity:.7}.lbl{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--mut);flex:1 1 220px}.lbl textarea{resize:vertical;min-height:70px}.form{display:flex;flex-direction:column;gap:14px}.fields{display:flex;gap:14px;flex-wrap:wrap}.pill{font-size:12px;padding:2px 10px;border-radius:99px;background:var(--surface2);color:var(--mut);white-space:nowrap}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.ok{background:var(--ac-soft);color:var(--ac)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.badge{--h:200;font-size:12px;font-weight:500;padding:2px 10px;border-radius:8px;white-space:nowrap;background:hsl(var(--h) 60% 50% / .14);color:hsl(var(--h) 55% var(--bl))}.empty{color:var(--mut);padding:30px;text-align:center;border:1.5px dashed var(--line2);border-radius:var(--r)}.sw{position:relative;width:40px;height:23px;flex:none}.sw input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer;z-index:1;width:100%;height:100%}.sw i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--line2);border-radius:99px;transition:.18s}.sw i:after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.18s;box-shadow:0 1px 3px #0003}.sw input:checked+i{background:var(--ac)}.sw input:checked+i:after{inset-inline-start:20px}.chip{border:1px solid var(--line2);background:none;color:var(--mut);border-radius:99px;padding:3px 13px;font-size:13px;cursor:pointer}.chip:hover{color:var(--ink);border-color:var(--mut)}.chip.on{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.grid .card{margin:0}.avatar{--h:200;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-weight:600;font-size:18px;flex:none;background:hsl(var(--h) 60% 50% / .15);color:hsl(var(--h) 55% var(--bl))}.meta{display:flex;flex-direction:column;gap:2px;margin-top:12px;font-size:13px;color:var(--mut)}.meta p{overflow:hidden;text-overflow:ellipsis}.rh{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.rh h3{font-size:20px;font-weight:600}.hint{font-size:12.5px;color:var(--mut);margin-bottom:14px;max-width:80ch}.bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;margin-bottom:10px;background:var(--ac-soft);border-radius:12px;color:var(--ac)}.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.it{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--surface2);border:1px solid var(--line);border-radius:13px;transition:border-color .12s,background .12s}.it.off{opacity:.55}.it.sel{background:var(--ac-soft);border-color:var(--ac)}.it.over{border-color:var(--ac);box-shadow:0 -3px 0 var(--ac)}.it.drag{opacity:.35}.grip{cursor:grab;color:var(--mut);display:grid;place-items:center;width:20px;flex:none}.it input[type=checkbox],.models input{accent-color:var(--ac);width:16px;height:16px;margin:0;flex:none}.rank{width:24px;height:24px;border-radius:50%;background:var(--surface);border:1px solid var(--line2);display:grid;place-items:center;font-size:12px;font-weight:500;flex:none}.it.first .rank{background:var(--ac);border-color:var(--ac);color:var(--ac-ink)}.main{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex:1;min-width:0}.cap{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mut)}.cap input{width:104px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-size:13px;text-align:center}.cap input:focus{border-color:var(--ac);outline:none}.acts{display:flex;align-items:center;gap:2px}.panel{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.tbar{display:flex;flex-direction:column;gap:0}.tres{margin-top:12px;display:flex;flex-direction:column;gap:5px;font-size:13px;border-inline-start:3px solid var(--line2);padding-inline-start:12px}.tres .trow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tres .trow.err code{color:var(--bad);word-break:break-all;font-size:11.5px;white-space:pre-wrap}.tres code{word-break:break-all}.hashurl{font-size:11px;color:var(--mut);-webkit-user-select:all;user-select:all;display:inline-block;margin-top:6px;opacity:.75}@media (max-width:780px){.hashurl{display:none}}.models{max-height:270px;overflow-y:auto;margin-top:10px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:var(--surface2)}.models label{display:flex;gap:10px;align-items:center;padding:3px 0;cursor:pointer}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}.kpi b{display:block;font-size:30px;font-weight:600;line-height:1.25;margin:2px 0}.kpi small{color:var(--mut)}.chart{display:flex;align-items:flex-end;gap:7px;height:180px;margin-top:14px}.col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;min-width:0}.bar{width:100%;max-width:40px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:7px 7px 2px 2px;overflow:hidden;min-height:3px;background:var(--line)}.bar i{display:block}.col span{font-size:11px;color:var(--mut)}.legend{display:flex;gap:16px;font-size:13px;color:var(--mut);flex-wrap:wrap}.legend b{display:inline-block;width:10px;height:10px;border-radius:3px;margin-inline-end:6px}.chartwrap{position:relative}.col.hov .bar{filter:brightness(1.12) saturate(1.05)}.col.hov span{color:var(--ac);font-weight:600}.tip{position:absolute;z-index:4;pointer-events:none;min-width:196px;background:var(--surface);border:1px solid var(--line2);border-radius:13px;padding:11px 13px;box-shadow:0 12px 30px #00000026;color:var(--ink);font-size:12.5px;line-height:1.65}.tip-h{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin-bottom:5px}.tip-h b{font-size:13.5px;font-weight:600}.tip-h .mut{white-space:nowrap}.tip-r{display:flex;justify-content:space-between;align-items:center;gap:14px}.tip-r .mono{font-size:12.5px;white-space:nowrap}.tip-r .bad{color:var(--bad)}.tip-l{display:flex;align-items:center;gap:7px;color:var(--mut)}.tip-l i{width:9px;height:9px;border-radius:3px;flex:none}.tip-sep{height:1px;background:var(--line);margin:7px 0}.tip-bar{display:flex;height:7px;border-radius:99px;overflow:hidden;background:var(--line);margin-top:9px}.tip-bar i{display:block;height:100%}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{color:var(--mut);font-weight:400;text-align:start;padding:8px 12px;font-size:13px;white-space:nowrap}td{padding:10px 12px;border-top:1px solid var(--line);font-size:13.5px;white-space:nowrap}h2.sec{font-size:16px;font-weight:600;margin:26px 0 12px}.seg{display:inline-flex;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:3px}.seg button{background:none;border:0;padding:5px 16px;color:var(--mut);cursor:pointer;border-radius:9px}.seg button.on{background:var(--ac-soft);color:var(--ac);font-weight:500}.auth{max-width:400px;margin:13vh auto;padding:32px;display:flex;flex-direction:column;gap:14px}.auth .brand{padding:0 0 6px}.toast{position:fixed;bottom:24px;inset-inline-start:50%;transform:translate(50%);background:var(--ink);color:var(--bg);padding:10px 20px;border-radius:12px;z-index:9;box-shadow:0 10px 30px #0004}@media (max-width:780px){.app{grid-template-columns:1fr;padding-bottom:70px}aside{position:fixed;bottom:0;inset-inline:0;top:auto;height:auto;flex-direction:row;padding:6px 8px;border-top:1px solid var(--line);border-inline-end:0;z-index:5;justify-content:space-around}.brand,.sp,.nav span{display:none}.nav{justify-content:center;width:auto;padding:10px 16px}main{padding-top:22px}.grid{grid-template-columns:1fr}}.route{padding:15px 20px}.rhead{display:flex;align-items:center;gap:11px;cursor:pointer;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.rhead h3{font-size:18px;font-weight:600}.chev{color:var(--mut);display:grid;place-items:center;flex:none}.rtotal{font-size:12px;font-weight:500;color:var(--ac);background:var(--ac-soft);padding:3px 11px;border-radius:99px;white-space:nowrap}.itemmain{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.usage{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--mut);flex-wrap:wrap}.usage .ucache{color:var(--ac);font-weight:500}.usage .ubar{flex:none;width:54px;height:4px;border-radius:99px;background:var(--line);overflow:hidden}.usage .ubar i{display:block;height:100%;background:var(--c1)}.usage.zero{font-size:11px;opacity:.65}.psec-h{display:flex;align-items:center;gap:10px;padding:2px 2px 10px;flex-wrap:wrap}.dtin{background:var(--surface2);border:1px solid var(--line);border-radius:9px;padding:5px 9px;font-size:13px;color:inherit}.dtin:focus{border-color:var(--ac);outline:none}
