:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#24354b;background:#f4f6fa;font-size:14px;--nav:#112b49;--accent:#ed7d24;--paper:#fff;--line:#e3e9f0;--muted:#718096;--text:#24354b;--bg:#f4f6fa;--good:#168363;--bad:#c44545;--soft:#fff3e8}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:42px;border:1px solid var(--line);background:var(--paper);color:var(--text);padding:10px 15px;border-radius:8px;font-weight:550}button:hover{border-color:var(--accent)}button:disabled{cursor:wait;opacity:.55}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--bad)}button.quiet{border-color:transparent;background:transparent}button.small{padding:5px 10px;min-height:36px;font-size:12px}button:focus-visible,a:focus-visible{outline:3px solid #eca45e;outline-offset:2px}a{color:#bf631d;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1{font-size:26px;font-weight:650;letter-spacing:-.6px}h2{font-size:17px;letter-spacing:-.2px}h3{font-size:14px}p{line-height:1.6}small,.muted{color:var(--muted)}small{font-size:12px}code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}code{overflow-wrap:anywhere}pre{font-size:12px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:16px;border-radius:8px;max-height:400px;overflow:auto}svg.icon{width:19px;height:19px;stroke:currentColor;stroke-width:1.7;fill:none;flex-shrink:0;vertical-align:middle;stroke-linecap:round;stroke-linejoin:round}.layout{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100dvh}.sidebar{background:var(--nav);color:#bccadd;padding:28px 14px 18px;position:fixed;inset:0 auto 0 0;width:238px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{color:#fff;display:flex;align-items:center;gap:12px;padding:0 15px 28px}.wordmark{font-size:32px;font-weight:850;font-style:italic;letter-spacing:-2px;line-height:1}.brand small{display:block;color:#90a8c2;font-size:10px;letter-spacing:1px;margin-top:7px}.brand-name{border-left:1px solid #52677f;padding-left:12px;font-size:12px;line-height:1.4;letter-spacing:.2px}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:#718ba6;padding:14px 16px 8px}.sidebar nav a{min-height:43px;display:flex;align-items:center;gap:13px;border-radius:7px;color:#b8c9db;padding:10px 15px;font-size:13px;margin-bottom:3px;text-decoration:none}.sidebar nav a:hover{background:#ffffff0a;color:#fff}.sidebar nav a.active{background:#ed7d2420;color:#ffac62;box-shadow:inset 3px 0 0 var(--accent)}.nav-bottom{margin-top:auto;padding:24px 15px 0;font-size:11px;line-height:1.7;color:#819ab4}.main{grid-column:2;min-width:0}.topbar{min-height:78px;padding:16px 32px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;position:sticky;top:0;z-index:20}.topbar-start,.topbar-end{display:flex;gap:16px;align-items:center}.nine-dots{display:grid;grid-template-columns:repeat(3,3px);gap:4px;padding:12px;background:none;border:0;min-width:39px}.nine-dots i{width:3px;height:3px;border-radius:1px;background:var(--muted)}.topbar select{min-width:170px;background:var(--paper);border:0;color:var(--text);font-weight:600;padding:9px}.profile{width:38px;height:38px;min-height:38px;padding:0;border-radius:50%;background:var(--soft);color:#b65d1b;border-color:#edd4be}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.dot{height:7px;width:7px;border-radius:50%;background:#98a5b5;display:inline-block;flex-shrink:0}.dot.online{background:var(--good)}.dot.stale,.dot.offline{background:var(--bad)}.content{padding:30px 32px;max-width:1800px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.heading p{font-size:13px;color:var(--muted);margin-top:7px}.actions,.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.between{justify-content:space-between}.grid{display:grid;gap:20px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px}.card{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:22px}.kpi .label{font-size:12px;color:var(--muted);display:flex;align-items:center;justify-content:space-between}.kpi .value{font-size:30px;font-weight:650;letter-spacing:-1px;margin:14px 0 8px}.kpi small{font-size:11px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.card-head p{font-size:12px;color:var(--muted);margin-top:5px}.cols{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);align-items:start}.stack{display:grid;gap:20px}.table-wrap{overflow-x:auto;margin:0 -22px -22px}.table-wrap table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}.table-wrap th{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);font-weight:550;background:var(--bg);padding:13px 20px;border-block:1px solid var(--line)}.table-wrap td{padding:16px 20px;border-bottom:1px solid var(--line)}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap td strong{font-weight:600}.table-wrap td small{display:block;margin-top:4px;font-size:10px}.badge{font-size:10px;display:inline-flex;padding:5px 8px;border-radius:5px;background:#eef2f6;color:#68798b;align-items:center;gap:5px}.badge.green{background:#e8f6ef;color:#20825f}.badge.red{background:#fceeee;color:#bf4848}.badge.orange{background:#fff1e2;color:#ad651d}.empty{padding:34px 20px;text-align:center;color:var(--muted)}.empty svg{width:36px;height:36px;margin-bottom:16px;color:#9cabbc}.empty h3{color:var(--text);font-size:15px;margin-bottom:8px}.empty p{font-size:12px;max-width:410px;margin:0 auto 18px}.empty.compact{padding:24px 5px}.notice{padding:14px 17px;border-radius:8px;background:var(--soft);border:1px solid #edccad;color:#95531d;font-size:12px;line-height:1.65;margin-bottom:20px}.notice.neutral{background:var(--bg);border-color:var(--line);color:var(--muted)}.incident{display:flex;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.incident:last-child{border:0;padding-bottom:0}.incident .incident-body{min-width:0;flex:1}.incident strong{font-size:12px;font-weight:600;line-height:1.6}.incident p{font-size:11px;color:var(--muted);margin:5px 0}.metric-line{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.metric-line:last-child{border:0}.progress{width:80px;height:5px;border-radius:4px;background:var(--bg);overflow:hidden}.sparkline{width:100%;height:155px;overflow:visible}.sparkline polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.sparkline line{stroke:var(--line);stroke-width:1}.chart-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:9px}.tabs{display:flex;gap:5px;margin-bottom:20px;flex-wrap:wrap}.tabs button.selected{background:var(--soft);border-color:#edccad;color:#aa5a19}.form{display:grid;gap:16px}.form label{display:grid;gap:7px;font-size:12px;font-weight:550}.form input,.form select,.form textarea,.search{width:100%;min-height:44px;border:1px solid var(--line);border-radius:7px;padding:11px 12px;background:var(--paper);color:var(--text)}.form input:focus,.form textarea:focus{outline:2px solid #eca45e;outline-offset:1px}.form textarea{min-height:90px;resize:vertical}.form .check{display:flex;align-items:start;gap:10px;line-height:1.5;font-weight:400}.check input{width:18px;height:18px;min-height:18px;margin:0}.form small{font-weight:400;line-height:1.5}.form hr{border:0;border-top:1px solid var(--line);width:100%}.form-error{color:var(--bad);font-size:12px;line-height:1.5}.auth-page{min-height:100dvh;display:grid;grid-template-columns:minmax(310px,43%) 1fr}.auth-aside{background:var(--nav);color:#fff;padding:50px 55px;display:flex;flex-direction:column;justify-content:space-between}.auth-aside .brand{padding:0}.auth-aside h1{font-size:37px;line-height:1.25;max-width:400px;letter-spacing:-1.1px}.auth-aside p{color:#a5b8cc;font-size:14px;max-width:380px;margin-top:20px}.auth-aside .eyebrow{color:#f5a15d;text-transform:uppercase;font-size:10px;letter-spacing:1.5px;margin-bottom:20px}.auth-form{display:flex;align-items:center;justify-content:center;padding:40px 28px}.auth-box{width:100%;max-width:410px}.auth-box h2{font-size:25px;margin-bottom:12px}.auth-box>.muted{font-size:13px;margin-bottom:28px}.auth-box .primary{width:100%;min-height:48px}.auth-separator{text-align:center;color:var(--muted);margin:22px 0;font-size:11px}.auth-box details{margin-top:20px;font-size:12px}.auth-box summary{cursor:pointer;color:var(--muted)}.auth-box details .form{margin-top:18px}.auth-footer{margin-top:30px;font-size:11px;color:var(--muted);text-align:center;line-height:1.6}.steps{display:flex;gap:6px;margin-bottom:27px}.steps span{height:3px;flex:1;background:var(--line);border-radius:3px}.steps .done{background:var(--accent)}dialog{padding:25px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--text);width:min(560px,calc(100% - 32px));max-height:90dvh;overflow:auto;box-shadow:0 20px 100px #102e4f33}dialog::backdrop{background:#0b233e88;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.dialog-head h2{font-size:19px}.dialog-head button{min-height:36px;padding:5px 10px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#toast{position:fixed;right:24px;bottom:24px;z-index:100;max-width:400px;background:var(--nav);color:white;border-radius:9px;padding:0;box-shadow:0 4px 30px #112b4920;font-size:13px}#toast.visible{padding:15px 20px}.boot{text-align:center;padding:30dvh 24px}.boot strong{font-size:24px}.boot p{color:var(--muted);margin-top:12px}.mobile-menu{display:none}.filters{display:flex;gap:12px;align-items:center;margin-bottom:20px}.search{max-width:320px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.codes{font-size:13px;columns:2;line-height:2}.wordbreak{overflow-wrap:anywhere;word-break:break-word}.service-detail{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.footer{margin-top:28px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;gap:15px}.pill-count{padding:2px 5px;border-radius:4px;background:var(--soft);color:#b66729;font-size:10px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.link-button{border:0;background:none;padding:0;min-height:32px;text-align:left;color:#b66729;font-size:12px}body.dark{--nav:#0c1d32;--paper:#172a40;--line:#2b3f56;--muted:#9badbf;--text:#e2eaf2;--bg:#102034;--soft:#423024;background:var(--bg);color:var(--text)}body.dark .badge.green{background:#1c3f37;color:#8bd6b7}body.dark .badge.red{background:#472c31;color:#eea0a0}body.dark .badge.orange{background:#47372b;color:#f2b57e}body.dark .notice{background:#423024;color:#f3b97f;border-color:#64452c}body.dark .profile{background:#423024;color:#e8ac77}body.dark .nine-dots i{background:#aabbcc}@media(min-width:1600px){.content{padding:36px 45px}.topbar{padding-inline:45px}}@media(max-width:1150px){.layout{grid-template-columns:205px minmax(0,1fr)}.sidebar{width:205px;padding-inline:9px}.sidebar nav a{gap:11px;font-size:12px;padding-inline:12px}.brand{padding-inline:12px;gap:9px}.wordmark{font-size:28px}.brand-name{font-size:10px;padding-left:9px}.content{padding:25px 22px}.topbar{padding:15px 22px}.cols{grid-template-columns:1fr}.kpis{gap:12px}.card{padding:18px}.table-wrap{margin:0 -18px -18px}.topbar .updated{display:none}.auth-aside{padding:40px 35px}.auth-aside h1{font-size:30px}}@media(max-width:760px){.layout{display:block}.sidebar{transform:translateX(-100%);transition:transform .15s;width:238px}.sidebar.open{transform:translateX(0);box-shadow:100px 0 0 100vw #112b4966}.sidebar.open .brand{position:relative}.main{width:100%}.mobile-menu{display:inline-flex;align-items:center;justify-content:center;padding:8px;border:0;min-width:40px}.topbar{padding:12px 14px;min-height:65px;gap:8px}.topbar-start,.topbar-end{gap:7px}.topbar select{min-width:0;width:150px;font-size:12px}.topbar .system-status{display:none}.nine-dots{display:none}.content{padding:22px 16px}.heading{align-items:start;margin-bottom:20px;gap:12px}.heading h1{font-size:22px}.heading p{font-size:12px}.heading .actions{justify-content:flex-end}.heading .actions button{font-size:12px;padding:9px 11px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi .value{font-size:26px;margin:10px 0 6px}.kpi .label{font-size:11px}.card{padding:17px}.table-wrap{margin:0 -17px -17px}.auth-page{display:block}.auth-aside{padding:25px}.auth-aside .auth-pitch,.auth-aside .auth-caption{display:none}.auth-aside .brand{padding:0}.auth-form{padding:32px 24px}.auth-box h2{font-size:23px}.two-fields,.summary-grid{grid-template-columns:1fr}.footer{flex-direction:column;gap:6px}.filters{flex-wrap:wrap}.codes{columns:1}.row{gap:8px}.card-head{flex-wrap:wrap}#toast{bottom:15px;right:15px;left:15px;max-width:none}}

/* Grid children must shrink so wide tables scroll inside their cards on phones. */
.grid>*,.stack>*{min-width:0}
