:root{--bg:#f4f6fb;--surface:#fff;--surface-2:#eef1f8;--border:#d7deec;--text:#121826;--text-dim:#57607a;--accent:#0e7490;--accent-soft:#e0f4f8;--good:#15803d;--warn:#b45309;--critical:#b91c1c;--info:#1d4ed8;--font-display:"JetBrains Mono", ui-monospace, Menlo, monospace;--font-body:"IBM Plex Sans", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a0f1c;--surface:#111a2d;--surface-2:#172338;--border:#253349;--text:#e8edf7;--text-dim:#8d9bb5;--accent:#22d3ee;--accent-soft:#0e2a33;--good:#4ade80;--warn:#fbbf24;--critical:#f87171;--info:#60a5fa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a0f1c;--surface:#111a2d;--surface-2:#172338;--border:#253349;--text:#e8edf7;--text-dim:#8d9bb5;--accent:#22d3ee;--accent-soft:#0e2a33;--good:#4ade80;--warn:#fbbf24;--critical:#f87171;--info:#60a5fa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:600}.tnum{font-variant-numeric:tabular-nums;font-family:var(--font-display)}a{color:var(--accent)}button{font-family:var(--font-body)}html,body{height:100%}.app-shell{grid-template-columns:200px 1fr;align-items:stretch;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;grid-column:1;gap:28px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.main-col{flex-direction:column;grid-column:2;min-width:0;min-height:100vh;display:flex}.shell{flex-direction:column;flex:1;width:100%;padding:24px 32px;display:flex}.shell main{flex-direction:column;flex:1;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:linear-gradient(145deg,var(--accent),var(--info));border-radius:8px;flex:none;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.brand-mark svg{width:20px;height:20px}.brand-text h1{font-size:18px}.brand-text p{color:var(--text-dim);margin:0;font-size:12px}nav.tabs{flex-direction:column;gap:3px;display:flex}nav.tabs a{color:var(--text-dim);font-size:13.5px;font-weight:500;font-family:var(--font-body);border-radius:8px;padding:9px 12px;text-decoration:none;display:block}nav.tabs a:hover{color:var(--text)}nav.tabs a.active{background:var(--surface-2);color:var(--text);font-weight:600}.right-controls{align-items:center;margin-top:auto;display:flex}.theme-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-dim);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.theme-btn svg{width:17px;height:17px}.theme-btn:hover{color:var(--text);border-color:var(--text-dim)}main{padding-top:4px}section.view{display:none}section.view.active{margin-bottom:30px;display:block}h2.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:12px;font-size:13px}.grid{gap:16px;display:grid}.grid-hosts{grid-template-columns:repeat(4,1fr)}.grid-mid{grid-template-columns:1.4fr 1fr}.grid-bottom{grid-template-columns:1fr 1fr}@media (width<=1100px){.grid-hosts{grid-template-columns:repeat(3,1fr)}}@media (width<=900px){.grid-hosts{grid-template-columns:repeat(2,1fr)}.grid-mid,.grid-bottom{grid-template-columns:1fr}}@media (width<=520px){.grid-hosts{grid-template-columns:1fr}.dur-row{grid-template-columns:96px 1fr 40px;gap:6px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px 18px}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill.online{color:var(--good);background:color-mix(in srgb, var(--good) 15%, transparent)}.pill.degraded{color:var(--warn);background:color-mix(in srgb, var(--warn) 15%, transparent)}.pill.offline,.pill.sev-critical{color:var(--critical);background:color-mix(in srgb, var(--critical) 15%, transparent)}.pill.sev-high{color:var(--warn);background:color-mix(in srgb, var(--warn) 15%, transparent)}.pill.sev-medium{color:var(--info);background:color-mix(in srgb, var(--info) 15%, transparent)}.pill.sev-low,.pill.st-pending{color:var(--text-dim);background:var(--surface-2)}.pill.st-running{color:var(--info);background:color-mix(in srgb, var(--info) 15%, transparent)}.pill.st-done{color:var(--good);background:color-mix(in srgb, var(--good) 15%, transparent)}.pill.st-failed{color:var(--critical);background:color-mix(in srgb, var(--critical) 15%, transparent)}.pill.lv-info{color:var(--info);background:color-mix(in srgb, var(--info) 15%, transparent)}.pill.lv-warn{color:var(--warn);background:color-mix(in srgb, var(--warn) 15%, transparent)}.pill.lv-error{color:var(--critical);background:color-mix(in srgb, var(--critical) 15%, transparent)}.pill.lv-critical{color:#fff;background:var(--critical)}.host-card h3{margin-bottom:2px;font-size:14px}.host-top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.host-role{color:var(--text-dim);font-size:11px}.host-seen{color:var(--text-dim);margin-top:10px;font-size:11px}.gauges{gap:10px;display:flex}.gauge{text-align:center;flex:1}.gauge-ring{border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;margin:0 auto 6px;display:flex;position:relative}.gauge-ring .val{font-size:13px;font-weight:600;font-family:var(--font-display)}.gauge-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.trend-wrap{overflow-x:auto}.legend{color:var(--text-dim);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:2px;width:9px;height:9px;display:inline-block}.donut-row{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.donut{border-radius:50%;flex:none;justify-content:center;align-items:center;width:128px;height:128px;display:flex}.donut-hole{background:var(--surface);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:78px;height:78px;display:flex}.donut-hole .num{font-size:20px;font-weight:700}.donut-hole .lbl{color:var(--text-dim);font-size:10px}.donut-legend{flex-direction:column;gap:6px;font-size:12px;display:flex}.donut-legend .row{align-items:center;gap:8px;display:flex}.donut-legend i{border-radius:2px;width:9px;height:9px;display:inline-block}.donut-legend .count{font-family:var(--font-display);margin-left:auto}.quota-item{margin-bottom:16px}.quota-item:last-child{margin-bottom:0}.quota-top{justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.quota-top .lbl{color:var(--text-dim)}.quota-top .pct{font-family:var(--font-display);font-weight:600}.quota-bar{background:var(--surface-2);border-radius:5px;height:8px;overflow:hidden}.quota-bar>div{background:var(--accent);border-radius:5px;height:100%}.quota-reset{color:var(--text-dim);margin-top:5px;font-size:11px}.filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filters select,.filters input{font-family:var(--font-body);border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:7px;padding:6px 9px;font-size:12px}.filters input{min-width:160px}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border-bottom:1px solid var(--border);padding:8px 10px;font-size:11px;font-weight:500}tbody td{border-bottom:1px solid var(--border);padding:9px 10px}tbody tr:last-child td{border-bottom:none}.mono{font-family:var(--font-display);color:var(--text-dim);font-size:12px}.table-wrap{overflow-x:auto}.dur-row{grid-template-columns:140px 1fr 48px;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;display:grid}.dur-row:last-child{margin-bottom:0}.dur-track{background:var(--surface-2);border-radius:5px;height:10px;overflow:hidden}.dur-track>div{background:var(--info);border-radius:5px;height:100%}.dur-val{font-family:var(--font-display);color:var(--text-dim);text-align:right}.log-stream{border:1px solid var(--border);border-radius:10px}.log-line{border-bottom:1px solid var(--border);grid-template-columns:230px 1fr;align-items:start;gap:10px;padding:9px 12px;font-size:12.5px;display:grid}.log-line:last-child{border-bottom:none}.log-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.log-time{color:var(--text-dim);font-family:var(--font-display);font-size:11px}.log-host{font-family:var(--font-display);font-size:11px}.log-bottom{color:var(--text)}.log-bottom code{font-family:var(--font-display);background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:11px}.sparkline-wrap{margin-top:4px}footer.note{color:var(--text-dim);border-top:1px solid var(--border);margin-top:auto;padding-top:14px;font-size:12px}.section-head-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-head-row .section-title{margin-bottom:0}.add-host-btn{font-family:var(--font-body);color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:8px;padding:7px 13px;font-size:12px;font-weight:600}.add-host-btn:hover{filter:brightness(1.08)}.modal-backdrop{z-index:50;background:#0a0f198c;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-backdrop.open{display:flex}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:560px;padding:22px 24px;box-shadow:0 20px 60px #00000059}.modal h3{margin-bottom:4px;font-size:16px}.modal p.desc{color:var(--text-dim);margin:4px 0 16px;font-size:13px}.modal label{color:var(--text-dim);margin-bottom:6px;font-size:12px;display:block}.modal input[type=text]{width:100%;font-family:var(--font-body);border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:7px;margin-bottom:14px;padding:7px 9px;font-size:13px}.cmd-box{background:var(--surface-2);border:1px solid var(--border);border-radius:9px;align-items:flex-start;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.cmd-box code{font-family:var(--font-display);word-break:break-all;color:var(--text);flex:1;font-size:12px}.copy-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:7px;flex:none;padding:5px 10px;font-size:11px;font-weight:600}.copy-btn:hover{border-color:var(--accent);color:var(--accent)}.modal-note{color:var(--warn);margin-bottom:16px;font-size:11.5px}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.modal-actions button{font-family:var(--font-body);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:12px;font-weight:600}.btn-secondary{background:var(--surface);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{color:var(--text);border-color:var(--text-dim)}.modal select{width:100%;font-family:var(--font-body);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;margin-bottom:10px;padding:7px 9px;font-size:13px;display:block}.host-outdated{color:var(--warn)}.host-updating{color:var(--accent)}.host-btns{gap:6px;display:inline-flex}.danger-btn{color:var(--critical)}.danger-btn:hover:not(:disabled){border-color:var(--critical)}.danger-btn:disabled{opacity:.4;cursor:not-allowed}.host-delete{color:var(--critical);border:1px solid var(--critical);background:0 0}.host-delete:disabled,.modal select:disabled{opacity:.5;cursor:default}.report-btn{font-family:var(--font-body);color:var(--accent);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:7px;padding:4px 10px;font-size:11.5px;font-weight:600}.report-btn:hover{border-color:var(--accent)}.report-modal{max-width:620px}.report-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:4px;display:flex}.report-target{color:var(--text-dim);margin:0 0 14px;font-size:12px}.report-conclusion{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;margin-bottom:14px;padding:10px 12px;font-size:13px;line-height:1.6}.report-findings{flex-direction:column;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.report-findings li{border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-size:12.5px}.report-findings .f-head{align-items:center;gap:8px;margin-bottom:4px;font-weight:600;display:flex}.report-findings .f-desc{color:var(--text-dim)}.report-action{color:var(--text-dim);border-top:1px solid var(--border);padding-top:10px;font-size:12px}.report-empty{color:var(--text-dim);text-align:center;padding:20px 0;font-size:13px}.scan-summary-list{flex-direction:column;gap:12px;display:flex}.scan-summary-item{border-bottom:1px solid var(--border);padding-bottom:12px}.scan-summary-item:last-child{border-bottom:none;padding-bottom:0}.scan-summary-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.scan-summary-head .mono{font-size:12.5px}.scan-summary-conclusion{color:var(--text-dim);margin:0;font-size:12.5px;line-height:1.6}.overall-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.overall-list li{align-items:flex-start;gap:10px;font-size:13px;line-height:1.55;display:flex}.overall-list li .pill{flex:none;margin-top:1px}.merge-row{grid-template-columns:1fr 280px;gap:24px;display:grid}.merge-right{border-left:1px solid var(--border);padding-left:24px}@media (width<=900px){.merge-row{grid-template-columns:1fr}.merge-right{border-left:none;border-top:1px solid var(--border);padding-top:16px;padding-left:0}}@media (width<=700px){.app-shell{display:block}.sidebar{border-right:none;border-bottom:1px solid var(--border);z-index:20;grid-template-columns:1fr auto;grid-template-areas:"brand controls";align-items:center;gap:0;width:100%;height:auto;padding:12px 14px;display:grid;position:sticky;top:0}.sidebar .brand{grid-area:brand}.sidebar .right-controls{grid-area:controls;margin-top:0}.shell{padding:20px 16px calc(84px + env(safe-area-inset-bottom))}nav.tabs{z-index:30;background:var(--bg);border-top:1px solid var(--border);width:100%;padding:8px 10px calc(8px + env(safe-area-inset-bottom));flex-direction:row;gap:4px;position:fixed;bottom:0;left:0;right:0}nav.tabs a{text-align:center;border-radius:8px;flex:1;padding:10px 0}nav.tabs a.active{background:var(--surface-2)}.section-head-row{flex-wrap:wrap;gap:8px}.add-host-btn{flex:none}.filters{flex-direction:column;align-items:stretch}.filters select,.filters input{width:100%;min-width:0}.donut-row{flex-direction:column;align-items:flex-start}.modal{padding:18px}.log-stream{background:0 0;border:none;padding:0 0 2px}.log-line{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-bottom:10px;padding:0;display:block}.log-line:last-child{border-bottom:1px solid var(--border);margin-bottom:0}.log-line .log-top{padding:10px 13px}.log-line .log-bottom{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 10px 10px;padding:10px 13px}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap th,.table-wrap tr{display:block}.table-wrap thead{display:none}.table-wrap tbody tr{border:1px solid var(--border);border-radius:10px;margin-bottom:10px;padding:10px 12px}.table-wrap tbody tr:last-child{margin-bottom:0}.table-wrap tbody td{text-align:right;border-bottom:none;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.table-wrap tbody td:before{content:attr(data-label);color:var(--text-dim);text-align:left;font-size:11px;font-weight:600}}.report-conclusion,.scan-summary-conclusion,.overall-list .c-bottom,.report-findings .f-desc,.report-action{overflow-wrap:anywhere}.scan-summary-conclusion{color:var(--text)}.report-conclusion strong{margin-bottom:4px;display:block}.modal.xl{max-width:1100px;max-height:88vh;overflow:auto}.tabbar{border-bottom:1px solid var(--border);gap:6px;margin:10px 0 14px;display:flex}.tabbar button{font-family:var(--font-body);color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 12px;font-size:13px;font-weight:600}.tabbar button.active{color:var(--text);border-bottom-color:var(--accent)}.detail-meta{color:var(--text-dim);margin:0 0 10px;font-size:12px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:11.5px}.chip b{font-family:var(--font-display);margin-left:4px}.detail-table{font-size:12px}.detail-table td.cmd{text-overflow:ellipsis;white-space:nowrap;max-width:420px;font-family:var(--font-display);color:var(--text-dim);font-size:11px;overflow:hidden}@media (width<=700px){.detail-table td.cmd{white-space:normal;overflow-wrap:anywhere;max-width:none}}h3.sub{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:16px 0 8px;font-size:12px}.modal{max-height:calc(100dvh - 40px)}.modal.report-modal{flex-direction:column;display:flex}.modal-scroll{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.modal-scroll,.modal.xl{scrollbar-width:none;-ms-overflow-style:none}.modal-scroll::-webkit-scrollbar{display:none}.modal.xl::-webkit-scrollbar{display:none}.modal.report-modal .modal-actions{flex:none;margin-top:12px}.modal.xl{max-height:calc(100dvh - 40px)}.overall-list li.c-item{display:block}.overall-list .c-top{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.overall-list .c-host{font-family:var(--font-display);color:var(--text-dim);background:var(--surface-2);overflow-wrap:anywhere;border-radius:5px;padding:1px 7px;font-size:11px}.scan-summary-head .c-host{margin-left:8px}.overall-list .c-title{overflow-wrap:anywhere;font-size:13px}.overall-list .c-bottom{color:var(--text-dim);margin:6px 0 0;font-size:12.5px}.overall-list .c-bottom :where(p,ul,ol){margin-bottom:4px}@media (width<=700px){.overall-list{gap:10px}.overall-list li.c-item{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:0}.overall-list .c-top{padding:10px 13px}.overall-list .c-bottom{border-top:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:0 0 10px 10px;margin:0;padding:10px 13px}}.modal.xl{overflow-x:hidden}.modal.xl .card{min-width:0;max-width:100%}.detail-table td{overflow-wrap:anywhere;min-width:0}.detail-table td .addrs{flex-direction:column;gap:2px;min-width:0;display:flex}.detail-table td .addr{overflow-wrap:anywhere;display:block}@media (width<=700px){.detail-table tbody td{min-width:0}.detail-table tbody td .addrs{text-align:right;align-items:flex-end}}.login-wrap.svelte-2jpsc9{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card.svelte-2jpsc9{max-width:440px}.brand.svelte-2jpsc9{margin-bottom:18px}.login-card.svelte-2jpsc9 input[type=password]:where(.svelte-2jpsc9){width:100%;font-family:var(--font-body);border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:7px;margin-bottom:14px;padding:7px 9px;font-size:13px}.danger.svelte-2jpsc9{background:var(--critical)}.login-link.svelte-2jpsc9{border-radius:8px;padding:7px 14px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.right-controls.svelte-12qhfyh{gap:10px}.live.svelte-12qhfyh{color:var(--text-dim);align-items:center;gap:6px;font-size:11px;display:inline-flex}.live.svelte-12qhfyh i:where(.svelte-12qhfyh){background:var(--critical);border-radius:50%;width:7px;height:7px}.live.on.svelte-12qhfyh i:where(.svelte-12qhfyh){background:var(--good)}
