:root{--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--fs-xs: .6875rem;--fs-sm: .75rem;--fs-base: .8125rem;--fs-md: .875rem;--fs-lg: 1rem;--lh: 1.5;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--row-h: 1.75rem;--frame-max: 62rem;--radius: 0;--border-w: 1px;--t-fast: 80ms;--t-med: .12s}@media(prefers-reduced-motion:reduce){:root{--t-fast: 0ms;--t-med: 0ms}}:root,:root[data-theme=mocha]{--bg: #1e1e2e;--bg-dim: #181825;--bg-raised: #313244;--bg-sel: #45475a;--border: #313244;--border-bright: #585b70;--fg: #cdd6f4;--fg-dim: #a6adc8;--fg-faint: #6c7086;--accent: #89b4fa;--accent-alt: #cba6f7;--success: #a6e3a1;--warning: #f9e2af;--danger: #f38ba8;--info: #94e2d5;--series-1: #89b4fa;--series-2: #fab387;--series-3: #a6e3a1;--series-4: #cba6f7}:root[data-theme=gruvbox]{--bg: #282828;--bg-dim: #1d2021;--bg-raised: #3c3836;--bg-sel: #504945;--border: #3c3836;--border-bright: #665c54;--fg: #ebdbb2;--fg-dim: #bdae93;--fg-faint: #928374;--accent: #83a598;--accent-alt: #d3869b;--success: #b8bb26;--warning: #fabd2f;--danger: #fb4934;--info: #8ec07c;--series-1: #83a598;--series-2: #fe8019;--series-3: #b8bb26;--series-4: #d3869b}:root[data-theme=nord]{--bg: #2e3440;--bg-dim: #272c36;--bg-raised: #3b4252;--bg-sel: #434c5e;--border: #3b4252;--border-bright: #4c566a;--fg: #eceff4;--fg-dim: #d8dee9;--fg-faint: #7b88a1;--accent: #88c0d0;--accent-alt: #b48ead;--success: #a3be8c;--warning: #ebcb8b;--danger: #bf616a;--info: #81a1c1;--series-1: #88c0d0;--series-2: #d08770;--series-3: #a3be8c;--series-4: #b48ead}:root[data-theme=tokyonight]{--bg: #1a1b26;--bg-dim: #16161e;--bg-raised: #292e42;--bg-sel: #343a52;--border: #292e42;--border-bright: #414868;--fg: #c0caf5;--fg-dim: #9aa5ce;--fg-faint: #565f89;--accent: #7aa2f7;--accent-alt: #bb9af7;--success: #9ece6a;--warning: #e0af68;--danger: #f7768e;--info: #7dcfff;--series-1: #7aa2f7;--series-2: #ff9e64;--series-3: #9ece6a;--series-4: #bb9af7}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark;background:var(--bg-dim)}body{background:var(--bg-dim);color:var(--fg);font-family:var(--font-mono);font-size:var(--fs-base);line-height:var(--lh);font-variant-numeric:tabular-nums;min-height:100vh;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit;font-variant-numeric:inherit}button{background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:var(--border-w) solid var(--accent);outline-offset:1px}*{scrollbar-width:thin;scrollbar-color:var(--border-bright) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--border-bright)}*::-webkit-scrollbar-track{background:transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:var(--sp-5) var(--sp-4) var(--sp-6)}.frame{position:relative;width:100%;max-width:var(--frame-max);background:var(--bg);border:var(--border-w) solid var(--border-bright)}.frame-label{position:absolute;padding:0 var(--sp-2);background:var(--bg);font-size:var(--fs-sm);letter-spacing:.04em;white-space:nowrap;pointer-events:none}.frame-label--title{top:0;left:var(--sp-4);transform:translateY(-50%);color:var(--accent);font-weight:700}.frame-label--title .filter{color:var(--accent-alt)}.frame-label--count{top:0;right:var(--sp-4);transform:translateY(-50%);color:var(--fg-faint)}.frame-label--hints{bottom:0;left:50%;transform:translate(-50%,50%);color:var(--fg-faint);font-size:var(--fs-xs)}.frame-label--hints kbd{font:inherit;color:var(--fg-dim)}.frame-label--hints .sep{opacity:.5;padding:0 var(--sp-1)}.prompt{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:var(--border-w) solid var(--border)}.prompt-user{color:var(--success);font-weight:700;white-space:nowrap}.prompt-path{color:var(--info)}.prompt-sigil{color:var(--fg-faint)}.prompt-field{position:relative;flex:1;display:flex;align-items:center;min-width:0}.prompt input{width:100%;background:none;border:none;padding:0;color:var(--fg);caret-color:transparent}.prompt input:focus{outline:none}.prompt input::placeholder{color:var(--fg-faint)}.caret{position:absolute;left:calc(var(--caret-ch, 0) * 1ch);width:1ch;height:1.2em;background:var(--accent);opacity:.85;pointer-events:none;animation:blink 1.1s step-end infinite}.prompt-field:not(:focus-within) .caret{animation:none;opacity:.3}@keyframes blink{0%,49%{opacity:.85}50%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.caret{animation:none}}.prompt-actions{display:flex;align-items:center;gap:var(--sp-1)}.body{padding:var(--sp-3) 0 var(--sp-4);max-height:none}@media(max-width:640px){.app{padding:var(--sp-4) 0 var(--sp-5)}.frame{border-left:none;border-right:none}.frame-label--count{display:none}.frame-label--hints{font-size:.625rem}.prompt{padding:var(--sp-3)}}.group-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-1);color:var(--accent-alt);font-size:var(--fs-sm);font-weight:700}.group-head .count{color:var(--fg-faint);font-weight:400}.group-head .rule{flex:1;height:var(--border-w);background:var(--border)}.rows{list-style:none}.row{display:grid;grid-template-columns:3ch 1.25rem minmax(0,1fr) auto auto 1.5rem;align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:0 var(--sp-4);color:var(--fg);cursor:pointer;border-left:2px solid transparent;transition:background var(--t-fast) linear,color var(--t-fast) linear}.row:hover{background:var(--bg-raised)}.row[data-selected=true]{background:var(--bg-sel);border-left-color:var(--accent)}.row-idx{color:var(--fg-faint);font-size:var(--fs-sm);text-align:right}.row[data-selected=true] .row-idx{color:var(--accent)}.row-icon{width:1rem;height:1rem;object-fit:contain;flex-shrink:0}.row-icon-fallback{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;background:var(--bg-raised);color:var(--fg-faint);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase}.row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-name mark{background:none;color:var(--warning);font-weight:700}.row-tags{display:flex;gap:var(--sp-1);color:var(--fg-faint);font-size:var(--fs-xs);white-space:nowrap}.row-host{color:var(--fg-faint);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:18ch}.row-pin{color:var(--warning);font-size:var(--fs-sm)}.row-arrow{color:var(--fg-faint);font-size:var(--fs-sm);text-align:center;opacity:0;transition:opacity var(--t-fast) linear}.row:hover .row-arrow,.row[data-selected=true] .row-arrow{opacity:1;color:var(--accent)}.row-confirm{grid-column:1 / -1;display:flex;align-items:center;gap:var(--sp-2);color:var(--danger);font-size:var(--fs-sm)}.row-confirm .keys{color:var(--fg-dim)}.row-confirm button{color:var(--fg-dim);border:var(--border-w) solid var(--border-bright);padding:0 var(--sp-2);font-size:var(--fs-xs)}.row-confirm button:hover{color:var(--fg);border-color:var(--fg-faint)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.card{position:relative;background:var(--bg-dim);border:var(--border-w) solid var(--border);transition:border-color var(--t-fast) linear,background var(--t-fast) linear}.card:hover{border-color:var(--border-bright)}.card[data-selected=true]{border-color:var(--accent);background:var(--bg-raised)}.card-img-wrap{position:relative;aspect-ratio:16 / 9;background:var(--bg);border-bottom:var(--border-w) solid var(--border);overflow:hidden}.card-img{width:100%;height:100%;object-fit:cover;display:block}.card-img-fallback{display:flex;align-items:center;justify-content:center;height:100%;color:var(--fg-faint);font-size:var(--fs-sm)}.card-body{padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:2px}.card-name{font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-host{color:var(--fg-faint);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-del{position:absolute;top:var(--sp-1);right:var(--sp-1);width:1.25rem;height:1.25rem;background:var(--bg-dim);border:var(--border-w) solid var(--border-bright);color:var(--fg-faint);font-size:var(--fs-xs);line-height:1;opacity:0;transition:opacity var(--t-fast) linear,color var(--t-fast) linear}.card:hover .card-del,.card:focus-within .card-del{opacity:1}.card-del:hover{color:var(--danger);border-color:var(--danger)}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:var(--border-w) solid var(--border);font-size:var(--fs-sm)}.chip{color:var(--fg-faint);border:var(--border-w) solid transparent;padding:0 var(--sp-2);transition:color var(--t-fast) linear,border-color var(--t-fast) linear}.chip:hover{color:var(--fg);border-color:var(--border-bright)}.chip[aria-pressed=true]{color:var(--bg);background:var(--accent);border-color:var(--accent)}.chip .count{opacity:.6;margin-left:var(--sp-1)}.widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));border-bottom:var(--border-w) solid var(--border)}.widget{padding:var(--sp-2) var(--sp-4);border-right:var(--border-w) solid var(--border);min-width:0}.widget:last-child{border-right:none}.widget-label{color:var(--fg-faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.widget-value{color:var(--fg);font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-sub{color:var(--fg-dim);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-error{color:var(--fg-faint);font-size:var(--fs-xs)}.spark{display:flex;align-items:flex-end;gap:1px;height:1.5rem;margin-top:2px}.spark span{flex:1;min-width:2px;background:var(--accent);opacity:.75}.heat{display:flex;gap:2px;margin-top:var(--sp-1)}.heat span{width:.6rem;height:.6rem;background:var(--bg-raised)}.heat span[data-level="1"]{background:color-mix(in srgb,var(--success) 30%,var(--bg-raised))}.heat span[data-level="2"]{background:color-mix(in srgb,var(--success) 55%,var(--bg-raised))}.heat span[data-level="3"]{background:color-mix(in srgb,var(--success) 80%,var(--bg-raised))}.heat span[data-level="4"]{background:var(--success)}.feed-list{list-style:none;font-size:var(--fs-xs)}.feed-list li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--fg-dim)}.feed-list a:hover{color:var(--accent)}.btn{border:var(--border-w) solid var(--border-bright);color:var(--fg-dim);padding:var(--sp-1) var(--sp-3);font-size:var(--fs-sm);white-space:nowrap;transition:color var(--t-fast) linear,border-color var(--t-fast) linear,background var(--t-fast) linear}.btn:hover{color:var(--bg);background:var(--fg-dim);border-color:var(--fg-dim)}.btn--primary{color:var(--accent);border-color:var(--accent)}.btn--primary:hover{color:var(--bg);background:var(--accent)}.btn--danger:hover{color:var(--bg);background:var(--danger);border-color:var(--danger)}.btn--ghost{border-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{color:var(--fg-dim);background:none;border-color:var(--border-bright)}.overlay{position:fixed;inset:0;z-index:50;display:flex;justify-content:center;padding:var(--sp-6) var(--sp-4);background:color-mix(in srgb,var(--bg-dim) 80%,transparent)}.overlay--center{align-items:center}.panel{width:min(38rem,100%);max-height:100%;display:flex;flex-direction:column;background:var(--bg);border:var(--border-w) solid var(--border-bright)}.panel-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:var(--border-w) solid var(--border)}.panel-head input{flex:1;min-width:0;background:none;border:none;outline:none}.panel-head input::placeholder{color:var(--fg-faint)}.panel-title{color:var(--accent);font-weight:700;font-size:var(--fs-sm)}.panel-body{overflow-y:auto;padding:var(--sp-2) 0}.panel-foot{padding:var(--sp-2) var(--sp-4);border-top:var(--border-w) solid var(--border);color:var(--fg-faint);font-size:var(--fs-xs)}.pal-item{display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-4);min-height:var(--row-h);cursor:pointer;border-left:2px solid transparent}.pal-item:hover{background:var(--bg-raised)}.pal-item[data-selected=true]{background:var(--bg-sel);border-left-color:var(--accent)}.pal-kind{color:var(--fg-faint);font-size:var(--fs-xs);text-align:center}.pal-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pal-label mark{background:none;color:var(--warning);font-weight:700}.pal-hint{color:var(--fg-faint);font-size:var(--fs-xs);white-space:nowrap}.pal-empty{padding:var(--sp-4);color:var(--fg-faint);text-align:center;font-size:var(--fs-sm)}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--sp-1) var(--sp-5);padding:var(--sp-3) var(--sp-4)}.help-row{display:flex;align-items:baseline;gap:var(--sp-2);font-size:var(--fs-sm)}.help-row kbd{font:inherit;color:var(--accent);min-width:5ch}.help-row .desc{color:var(--fg-dim)}.help-section{grid-column:1 / -1;color:var(--accent-alt);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--sp-2)}.field{display:flex;flex-direction:column;gap:var(--sp-1);padding:0 var(--sp-4)}.field label,.field-label-text{color:var(--fg-faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em}.field input{background:var(--bg-dim);border:var(--border-w) solid var(--border);padding:var(--sp-2);transition:border-color var(--t-fast) linear}.field input:focus{outline:none;border-color:var(--accent)}.field input::placeholder{color:var(--fg-faint)}.field .note{color:var(--fg-faint);font-size:var(--fs-xs);text-transform:none;letter-spacing:0}.form-body{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-4) 0}.form-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:var(--border-w) solid var(--border)}.tag-input{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);background:var(--bg-dim);border:var(--border-w) solid var(--border);padding:var(--sp-1) var(--sp-2)}.tag-input:focus-within{border-color:var(--accent)}.tag-input input{flex:1;min-width:6ch;background:none;border:none;outline:none;padding:var(--sp-1) 0}.tag-chip{display:inline-flex;align-items:center;gap:var(--sp-1);background:var(--bg-raised);color:var(--fg-dim);padding:0 var(--sp-1);font-size:var(--fs-xs)}.tag-chip button{color:var(--fg-faint);line-height:1}.tag-chip button:hover{color:var(--danger)}.tag-suggest{display:flex;flex-wrap:wrap;gap:var(--sp-1);font-size:var(--fs-xs)}.tag-suggest button{color:var(--fg-faint);border:var(--border-w) solid var(--border);padding:0 var(--sp-1)}.tag-suggest button:hover{color:var(--accent);border-color:var(--accent)}.empty{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--fg-faint);font-size:var(--fs-sm);line-height:2}.empty .cmd{color:var(--accent)}.boot{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--fg-faint);font-size:var(--fs-sm)}.msg-error{color:var(--danger);font-size:var(--fs-sm);padding:0 var(--sp-4)}.login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-4)}.login .frame{max-width:26rem}.login-banner{padding:var(--sp-4) var(--sp-4) var(--sp-2);color:var(--fg-faint);font-size:var(--fs-xs);line-height:1.4;white-space:pre;overflow-x:auto}.login-banner .hi{color:var(--accent)}.stats-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:var(--border-w) solid var(--border);flex-wrap:wrap}.chips--inline{padding:0;border:0}.stats-actions{display:flex;align-items:center;gap:var(--sp-2)}.msg-ok{color:var(--success);font-size:var(--fs-sm);padding:0 var(--sp-4)}.stats-body{padding-bottom:var(--sp-4)}.stats-panel+.stats-panel{margin-top:var(--sp-2)}.stats-empty{padding:var(--sp-4);color:var(--fg-faint);font-size:var(--fs-sm)}.stats-note{margin:0;padding:var(--sp-2) var(--sp-4) 0;color:var(--fg-faint);font-size:var(--fs-xs);line-height:var(--lh)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:var(--border-w);padding:var(--sp-2) var(--sp-4)}.tiles--inset{grid-template-columns:repeat(auto-fit,minmax(6rem,1fr))}.tile{padding:var(--sp-2) var(--sp-3);background:var(--bg-dim);border:var(--border-w) solid var(--border)}.tile--wide{grid-column:1 / -1}.tile-label{color:var(--fg-faint);font-size:var(--fs-xs);text-transform:lowercase}.tile-value{color:var(--fg);font-size:var(--fs-lg);font-weight:700;margin-top:var(--sp-1)}.tile-sub{margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--fg-faint)}.tile-sub.is-up{color:var(--danger)}.tile-sub.is-down{color:var(--success)}.plot{position:relative;padding:var(--sp-2) var(--sp-4)}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);padding:0 var(--sp-4) var(--sp-2);color:var(--fg-dim);font-size:var(--fs-xs)}.legend span{display:inline-flex;align-items:center;gap:var(--sp-1)}.legend i{width:.625rem;height:.625rem;display:inline-block}.tbl-wrap{overflow-x:auto;padding:0 var(--sp-4)}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-xs);white-space:nowrap}.tbl th,.tbl td{padding:var(--sp-1) var(--sp-2);text-align:left;border-bottom:var(--border-w) solid var(--border)}.tbl th{color:var(--fg-faint);font-weight:400}.tbl th button{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}.tbl th button:hover{color:var(--fg)}.tbl th .sort{color:var(--accent);margin-left:var(--sp-1)}.tbl td{color:var(--fg-dim)}.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.tbl .model{color:var(--fg);max-width:18rem;overflow:hidden;text-overflow:ellipsis}.tbl .detail{white-space:normal;max-width:24rem;color:var(--fg-faint)}.tbl tr:last-child td{border-bottom:0}.muted{color:var(--fg-faint)}.state.is-ok{color:var(--success)}.state.is-err{color:var(--danger)}.state.is-off{color:var(--fg-faint)}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}}.chips--tabs{border-bottom:var(--border-w) solid var(--border)}.chips--tabs .chip{font-weight:700}
