:root{--navy: #1d2142;--navy-deep: #14172e;--navy-soft: #2a2f57;--lime: #aee637;--green: #8fce5a;--lavender: #9aa1c4;--paper: #f7f8f4;--card: #ffffff;--ink: #23263a;--ink-soft: #5a5f76;--ink-faint: #7c82a5;--line: #e4e6dd;--accent-text: #5d9331;--accent-soft: rgba(143, 206, 90, .16);--crit: #b4232a;--crit-soft: #fae4e5;--radius: 14px;--shadow: 0 10px 30px rgba(20, 23, 46, .08)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #14172e;--card: #1d2142;--ink: #e8eaf5;--ink-soft: #ccd0e4;--ink-faint: #9aa1c4;--line: #2a2f57;--accent-text: #aee637;--accent-soft: rgba(174, 230, 55, .13);--crit: #e27075;--crit-soft: #33202b;--shadow: 0 10px 30px rgba(0, 0, 0, .3)}}:root[data-theme=dark]{--paper: #14172e;--card: #1d2142;--ink: #e8eaf5;--ink-soft: #ccd0e4;--ink-faint: #9aa1c4;--line: #2a2f57;--accent-text: #aee637;--accent-soft: rgba(174, 230, 55, .13);--crit: #e27075;--crit-soft: #33202b;--shadow: 0 10px 30px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Poppins,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.55}.layout{display:flex;min-height:100%}.sidebar{width:232px;flex-shrink:0;background:linear-gradient(180deg,var(--navy-deep),var(--navy) 30%);color:#ccd0e4;display:flex;flex-direction:column;padding:18px 12px;gap:4px}.wordmark{font-size:19px;font-weight:700;color:#fff;padding:4px 12px 14px;letter-spacing:-.01em}.wordmark .dot{color:var(--lime)}.navlabel{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:#7c82a5;font-weight:600;padding:12px 12px 4px}.navitem{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px;border-radius:9px;color:#ccd0e4;text-decoration:none;font-weight:500;font-size:13.5px;border:0;background:none;cursor:pointer;text-align:left}.navitem:hover{background:var(--navy-soft);color:#fff}.navitem.active{background:var(--navy-soft);color:var(--lime)}.navitem.disabled{color:#5b6187;cursor:default}.navitem.disabled:hover{background:none;color:#5b6187}.phasebadge{font-size:10px;font-weight:600;color:#7c82a5;border:1px solid #3a4070;border-radius:999px;padding:0 7px;white-space:nowrap}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 28px;border-bottom:1px solid var(--line);background:var(--card)}.topbar select{font-family:inherit;font-size:13px;padding:6px 10px;border-radius:9px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.userbox{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink-soft)}.rolechip{background:var(--navy);color:var(--lime);font-size:11px;font-weight:600;border-radius:999px;padding:2px 10px}.content{padding:26px 28px 60px;max-width:1120px;width:100%}h1.page{font-size:22px;font-weight:600;margin:0 0 4px;letter-spacing:-.01em}.pagesub{color:var(--ink-faint);font-size:13px;margin:0 0 22px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.card h3{margin:0 0 4px;font-size:14.5px;font-weight:600}.card .sub{color:var(--ink-faint);font-size:12.5px}.statnum{font-size:30px;font-weight:700;color:var(--ink);line-height:1.2}.ok{color:var(--accent-text);font-weight:600}.bad{color:var(--crit);font-weight:600}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-top:18px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);font-weight:600;padding:10px 16px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 60%,var(--paper))}td{padding:9px 16px;border-bottom:1px solid var(--line)}tr:last-child td{border-bottom:none}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:12px}.btn{font-family:inherit;font-size:13px;font-weight:600;background:var(--lime);color:var(--navy);border:0;border-radius:999px;padding:8px 18px;cursor:pointer}.btn:hover{filter:brightness(1.05)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink-soft)}.formrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}input,select{font-family:inherit;font-size:13px;padding:8px 12px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--ink)}input:focus-visible,select:focus-visible,.btn:focus-visible,.navitem:focus-visible{outline:2px solid var(--green);outline-offset:1px}.error{color:var(--crit);font-size:13px}.statuschip{font-size:11px;font-weight:600;border-radius:999px;padding:2px 10px;background:var(--accent-soft);color:var(--accent-text)}.statuschip.err{background:var(--crit-soft);color:var(--crit)}.loading{color:var(--ink-faint);padding:40px;text-align:center}.splash{height:100%;display:flex;align-items:center;justify-content:center;background:var(--navy);color:#ccd0e4;font-size:15px;flex-direction:column;gap:10px}.splash .wordmark{font-size:28px;padding:0}.devicegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.devicecard{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;cursor:pointer;color:var(--ink);box-shadow:var(--shadow);transition:transform .12s ease,border-color .12s ease;display:flex;flex-direction:column;gap:6px}.devicecard:hover:not(:disabled){transform:translateY(-2px);border-color:var(--green)}.devicecard:disabled{opacity:.55;cursor:default;box-shadow:none}.devicetop{display:flex;justify-content:space-between;align-items:center}.deviceglyph{font-size:26px;line-height:1}.devicename{font-weight:600;font-size:15px}.devicemeta{color:var(--ink-faint);font-size:12.5px}.devicestate{color:var(--accent-text);font-size:12px;margin-top:4px}.devicecard:disabled .devicestate{color:var(--ink-faint)}.statusdot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.statusdot.on{background:var(--green);box-shadow:0 0 0 3px var(--accent-soft)}.statusdot.off{background:var(--ink-faint)}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg{padding:6px 14px;background:var(--card);color:var(--ink-soft);border:0;border-right:1px solid var(--line);cursor:pointer;font-size:13px;font-family:inherit}.seg:last-child{border-right:0}.seg:hover{background:var(--accent-soft)}.seg.active{background:var(--navy);color:var(--lime)}
