:root{--bg: #f4f5f3;--surface: #ffffff;--surface-2: #f0f1ee;--ink: #1b1f1d;--muted: #5f6763;--line: #dde0db;--accent: #1f5fb4;--accent-ink: #ffffff;--accent-soft: #dbe7f7;--danger: #a4291f;--danger-soft: #f8e4e1;--warn: #8a5a00;--warn-soft: #f8edd5;--ok: #1d6b3c;--ok-soft: #dff0e4;--radius: 8px;--shadow: 0 8px 28px rgb(20 28 24 / 14%);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;font-size:15px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #131615;--surface: #1b1f1d;--surface-2: #232826;--ink: #e8ebe8;--muted: #9ca5a0;--line: #303633;--accent: #6aa5ec;--accent-ink: #0d1211;--accent-soft: #1d2d44;--danger: #ef8d82;--danger-soft: #3b201d;--warn: #e0b45c;--warn-soft: #362b14;--ok: #7bcb97;--ok-soft: #1a3323;--shadow: 0 8px 28px rgb(0 0 0 / 45%);color-scheme:dark}}:root[data-theme=dark]{--bg: #131615;--surface: #1b1f1d;--surface-2: #232826;--ink: #e8ebe8;--muted: #9ca5a0;--line: #303633;--accent: #6aa5ec;--accent-ink: #0d1211;--accent-soft: #1d2d44;--danger: #ef8d82;--danger-soft: #3b201d;--warn: #e0b45c;--warn-soft: #362b14;--ok: #7bcb97;--ok-soft: #1a3323;--shadow: 0 8px 28px rgb(0 0 0 / 45%);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.45}h1{font-size:1.45rem;margin:0;font-weight:650;letter-spacing:-.01em}h2{font-size:1.05rem;margin:0 0 12px;font-weight:620}a{color:var(--accent)}code,.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.86em;overflow-wrap:anywhere}.shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}.side{background:var(--surface);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{font-weight:680;padding:4px 10px 14px;letter-spacing:-.01em}.brand small{display:block;font-weight:450;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}.nav-btn{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:6px;color:var(--ink);font:inherit;cursor:pointer}.nav-btn:hover{background:var(--surface-2)}.nav-btn[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-foot{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:2px}.main{padding:26px 30px 60px;min-width:0}.head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.sub{color:var(--muted);margin-top:2px;font-size:.92rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;margin-bottom:16px}table{border-collapse:collapse;width:100%;font-size:.93rem}th{text-align:left;color:var(--muted);font-weight:560;font-size:.82rem;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td.actions{text-align:right;white-space:nowrap}.link{background:none;border:0;padding:0;color:var(--accent);font:inherit;font-weight:560;cursor:pointer;text-align:left}.link:hover{text-decoration:underline}.btn{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 12px;font:inherit;font-size:.9rem;font-weight:520;cursor:pointer}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger)}.btn.small{padding:3px 8px;font-size:.82rem;margin-left:4px;white-space:nowrap;flex:none}.btn:disabled{opacity:.55;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:.85rem;font-weight:540;margin-bottom:4px}label.field small{display:block;color:var(--muted);margin-top:3px;font-size:.8rem}input,select,textarea{width:100%;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font:inherit;min-height:38px}input:hover,select:hover,textarea:hover{border-color:var(--muted)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:32px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%236b7470' stroke-width='1.8' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 11px center;cursor:pointer}select.btn,select.btn.small{min-height:0;padding-right:26px;background-position:right 8px center;width:auto}input[type=date],input[type=datetime-local],input[type=time],input[type=number]{font-variant-numeric:tabular-nums}input::-webkit-calendar-picker-indicator{opacity:.6;cursor:pointer}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;accent-color:var(--accent)}.stat.tile{border:1px solid var(--line);text-align:left;font:inherit;cursor:pointer;color:var(--ink)}.stat.tile:hover{border-color:var(--accent)}.stat.tile.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.stat.tile.s-1 b{color:var(--s1, #2a78d6)}.stat.tile.s-2 b{color:var(--s2, #eb6834)}.stat.tile.s-3 b{color:var(--s3, #1baf7a)}.stat.tile.s-4 b{color:var(--s4, #eda100)}textarea{min-height:84px;resize:vertical}label.check{display:flex;gap:8px;align-items:center;margin:0 0 8px;font-size:.93rem;cursor:pointer}label.check input{width:auto}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0 14px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat b{display:block;font-size:1.5rem;font-weight:640;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:.85rem}.meter{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden;margin-top:8px}.meter i{display:block;height:100%;background:var(--accent)}.meter i.high{background:var(--danger)}.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:.78rem;font-weight:560;background:var(--surface-2);color:var(--muted);white-space:nowrap}.tag.ok{background:var(--ok-soft);color:var(--ok)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.tag.bad{background:var(--danger-soft);color:var(--danger)}.notice{padding:10px 14px;border-radius:6px;margin-bottom:14px;font-size:.92rem}.notice.error{background:var(--danger-soft);color:var(--danger)}.notice.info{background:var(--accent-soft);color:var(--ink)}.banner{background:var(--warn-soft);color:var(--warn);padding:9px 30px;font-weight:560;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e0c73;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:10;overflow-y:auto}.modal{background:var(--surface);border-radius:10px;padding:22px;width:min(520px,100%);box-shadow:var(--shadow)}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.auth{width:min(400px,100%);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:26px}.auth h1{margin-bottom:4px}.auth form{margin-top:18px}.auth .btn{width:100%;padding:10px}.empty{padding:28px 16px;text-align:center;color:var(--muted)}.qr{display:block;width:200px;height:200px;background:#fff;padding:6px;border-radius:6px;margin:8px 0 12px}.spin{color:var(--muted);padding:20px 0}.menu-toggle{display:none}.dnsval{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}.dnsval>span{min-width:0}@media (max-width: 760px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.side.closed .nav-list,.side.closed .side-foot{display:none}.menu-toggle{display:inline-block;align-self:flex-start;margin-left:10px}.main{padding:18px 16px 50px}.banner{padding:9px 16px}}.dash{display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,2fr);gap:16px;margin-bottom:16px;align-items:start}@media (max-width: 900px){.dash{grid-template-columns:minmax(0,1fr)}}.viz-root{--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;color-scheme:light}@media (prefers-color-scheme: dark){:root:where(:not([data-theme=light])) .viz-root{--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;color-scheme:dark}}:root[data-theme=dark] .viz-root{--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;color-scheme:dark}.viz-root .s-1,.sw.s-1{fill:var(--s1, #2a78d6);background:var(--s1, #2a78d6)}.viz-root .s-2,.sw.s-2{fill:var(--s2, #eb6834);background:var(--s2, #eb6834)}.viz-root .s-3,.sw.s-3{fill:var(--s3, #1baf7a);background:var(--s3, #1baf7a)}.viz-root .s-4,.sw.s-4{fill:var(--s4, #eda100);background:var(--s4, #eda100)}.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.viz-root .grid{stroke:var(--line);stroke-width:1}.viz-root .axis{stroke:var(--muted);stroke-width:1}.viz-root .tick{fill:var(--muted);font-size:11px}.viz-root g:focus{outline:none}.viz-root g:focus rect:first-child,.viz-root g:hover rect:first-child{fill:var(--surface-2)}.viz-tip{position:absolute;top:8px;transform:translate(-50%);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:.82rem;box-shadow:var(--shadow);pointer-events:none;white-space:nowrap}.viz-tip-t{color:var(--muted);margin-bottom:2px}.alerts h2{display:flex;gap:10px;align-items:center}.alertrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:.93rem}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-top:6px}.svctable td{vertical-align:top}.svctable .tag{margin:0 4px 2px 0}.svctable tr.rowbad td{background:var(--danger-soft)}.hdot{display:inline-block;width:1.1em;text-align:center;font-size:.85em}.hdot.ok{color:var(--ok)}.hdot.warn{color:var(--warn)}.hdot.bad{color:var(--danger)}button.linklike{border:0;cursor:pointer;font:inherit;font-size:.8rem}table.issues .msgcell{font-size:.82rem;word-break:break-word;max-width:640px}#svc-issues .filters select{width:auto;min-width:170px}#svc-issues .filters label.check{margin:0}tr.clickrow{cursor:pointer}tr.clickrow:hover td{background:var(--surface-2)}tr.detailrow td{background:var(--surface-2);font-size:.85rem}.dash.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 1100px){.dash.three{grid-template-columns:minmax(0,1fr)}}.toptable{table-layout:fixed}.toptable th:not(:first-child),.toptable td:not(:first-child){width:64px;padding-left:4px}.toptable td:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toptable .topname{display:inline-block;max-width:calc(100% - 1.6em);overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.toptable .rank{display:inline-block;width:1.6em;color:var(--muted);font-variant-numeric:tabular-nums}.toptable .topbar-m{display:block;height:3px;margin-top:4px;margin-left:1.6em;border-radius:2px;background:var(--accent);opacity:.55;max-width:calc(100% - 1.6em)}.brand-logo{display:block;max-width:180px;max-height:56px;object-fit:contain;margin-bottom:8px}.auth .brand-logo{margin:0 auto 14px;max-width:220px;max-height:70px}.logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.logo-card h2{margin-top:0}.logo-preview{display:flex;align-items:center;justify-content:center;min-height:100px;border:1px dashed var(--line);border-radius:8px;padding:12px;margin-bottom:8px;background:repeating-conic-gradient(var(--surface-2) 0% 25%,transparent 0% 50%) 50% / 16px 16px}.logo-preview img{max-width:100%;max-height:90px;object-fit:contain}.logo-card .actions{display:flex;gap:8px}
