:root,:root[data-theme=dark]{--bg: #0f1420;--panel: #171e2e;--panel2: #0d1220;--border: #26304a;--text: #e6ebf5;--muted: #8b97b0;--accent: #4f8cff;--accent-contrast: #ffffff;--ok: #3ddc84;--err: #ff6b6b;--warn: #ffb454;--ok-bg: rgba(61,220,132,.1);--err-bg: rgba(255,107,107,.1);--warn-bg: rgba(255,180,84,.1);--accent-bg: rgba(79,140,255,.1);--shadow: 0 1px 2px rgba(0,0,0,.3)}:root[data-theme=light]{--bg: #f4f6fb;--panel: #ffffff;--panel2: #eef1f7;--border: #dce1ec;--text: #1a2230;--muted: #5c6880;--accent: #2f6fed;--accent-contrast: #ffffff;--ok: #12a150;--err: #d23b3b;--warn: #c26a08;--ok-bg: rgba(18,161,80,.09);--err-bg: rgba(210,59,59,.08);--warn-bg: rgba(194,106,8,.1);--accent-bg: rgba(47,111,237,.08);--shadow: 0 1px 3px rgba(20,30,60,.08)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:15px;transition:background .15s ease,color .15s ease}a{color:var(--accent);text-decoration:none}h1,h2,h3{color:var(--text)}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow)}.login{width:100%;max-width:340px;display:flex;flex-direction:column;gap:12px}.login h1{margin:0;font-size:20px}.muted{color:var(--muted)}p.muted{margin:0}.small-note{font-size:12px;color:var(--muted)}.pos{color:#3aa66a}.neg{color:#d05050}input,select,textarea{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 11px;font-size:14px;width:100%;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{min-height:160px;resize:vertical}input[type=checkbox]{width:auto;accent-color:var(--accent)}button{background:var(--accent);color:var(--accent-contrast);border:0;border-radius:8px;padding:10px 14px;font-size:14px;cursor:pointer;transition:filter .12s ease}button:hover:not(:disabled){filter:brightness(1.08)}button:disabled{opacity:.55;cursor:default}button.ghost{background:transparent;border:1px solid var(--border);color:var(--text)}button.small{padding:6px 10px;font-size:13px}button.danger{background:transparent;border:1px solid var(--err);color:var(--err)}.err{color:var(--err);font-size:14px}.ok{color:var(--ok)}.box{border-radius:10px;padding:11px 13px;font-size:13px;border:1px solid var(--border)}.box.okbox{background:var(--ok-bg);border-color:var(--ok);color:var(--text)}.box.errbox{background:var(--err-bg);border-color:var(--err);color:var(--text)}.box.warnbox{background:var(--warn-bg);border-color:var(--warn);color:var(--text)}.box.infobox{background:var(--accent-bg);border-color:var(--accent);color:var(--text)}.app{display:flex;min-height:100vh}.side{width:224px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 12px}.brand{font-weight:700;padding:6px 10px 16px;display:flex;align-items:center;gap:8px}.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}.side nav{display:flex;flex-direction:column;gap:4px}.side nav a{color:var(--text);padding:9px 11px;border-radius:8px;font-size:14px;display:flex;align-items:center;gap:9px}.side nav a:hover{background:var(--panel2)}.side nav a.active{background:var(--accent);color:var(--accent-contrast)}.side nav a .ic{width:18px;text-align:center;opacity:.9}.side-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px}.content{flex:1;padding:24px;max-width:1040px}.content h1{margin:0 0 6px;font-size:22px}.content .sub{color:var(--muted);font-size:13px;margin:0 0 18px}.theme-toggle{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:6px 9px;border-radius:8px;font-size:13px;cursor:pointer}.section{margin-bottom:18px}.section>h3{margin:0 0 12px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.section .hint{font-size:12px;color:var(--muted);margin:-6px 0 12px}.row{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.row.end{justify-content:flex-end}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field>label{font-size:13px;color:var(--muted)}.inline{display:flex;gap:8px;align-items:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border)}.badge.on{color:var(--ok);border-color:var(--ok)}.badge.off{color:var(--muted)}.testline{font-size:13px;margin-left:6px}.tabs{display:inline-flex;background:var(--panel2);border:1px solid var(--border);border-radius:9px;padding:3px;gap:3px}.tabs button{background:transparent;color:var(--muted);padding:6px 14px;border-radius:7px;font-size:13px}.tabs button.active{background:var(--accent);color:var(--accent-contrast)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--panel2);border:1px solid var(--border);color:var(--text);padding:7px 12px;border-radius:999px;font-size:13px;cursor:pointer}.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.chip .sub{display:block;font-size:11px;opacity:.75}.calc-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:12px}.stat{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.stat .k{font-size:12px;color:var(--muted)}.stat .v{font-size:20px;font-weight:700;margin-top:3px}.stat .v.good{color:var(--ok)}.stat .v.bad{color:var(--err)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.span2{grid-column:1 / -1}.card h2{margin:0 0 4px}.card>h3{margin:0 0 10px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}ul.kv{list-style:none;margin:0;padding:0}ul.kv li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border)}ul.kv li:last-child{border-bottom:0}ul.kv span{color:var(--muted)}ul.kv b{font-weight:600;word-break:break-all;text-align:right}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--muted);font-weight:500}td.mono,.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.lvl-error,.lvl-critical{color:var(--err)}.lvl-warning{color:var(--warn)}.tablewrap{overflow-x:auto}.stage{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.stage:last-child{border-bottom:0}.stage .n{width:26px;height:26px;border-radius:50%;background:var(--accent-bg);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.stage .body{flex:1}.stage .body b{font-size:14px}.stage .cost{font-weight:700}@media (max-width: 760px){.app{flex-direction:column}.side{width:auto;flex-direction:row;align-items:center;overflow-x:auto}.side nav{flex-direction:row}.side nav a .label{display:none}.side-foot{margin:0 0 0 auto;padding-top:0}.brand{padding:6px 10px}.brand .label{display:none}.grid,.grid2,.grid3{grid-template-columns:1fr}}
