@font-face{
  font-family:"Outfit";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("/fonts/outfit-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Outfit";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("/fonts/outfit-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"Outfit fallback";
  src:local("Segoe UI"),local("Helvetica Neue"),local("Arial");
  size-adjust:104%;
  ascent-override:92%;
  descent-override:24%;
  line-gap-override:0%;
}
:root{
  --bg:#050506;
  --panel:#111318;
  --panel-2:#0b0c10;
  --raise:#171a21;
  --line:rgba(232,234,242,.09);
  --line-2:rgba(232,234,242,.18);
  --line-3:rgba(232,234,242,.3);
  --text:#eceef4;
  --mist:#b0b2bf;
  --mute:#8a8c99;
  --ember:#e6a85c;
  --ember-2:#f3c48a;
  --ember-soft:rgba(230,168,92,.12);
  --ok:#7dcea0;
  --ok-soft:rgba(125,206,160,.12);
  --bad:#e07a7a;
  --bad-soft:rgba(224,122,122,.13);
  --warn-soft:rgba(230,168,92,.14);
  --info:#9ec5e8;
  --info-soft:rgba(120,170,220,.12);
  --radius:14px;
  --side:252px;
  --display:"Outfit","Outfit fallback",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:rgba(230,168,92,.35);color:#fff}
a{color:var(--ember);text-decoration:none;text-underline-offset:.18em}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--ember);outline-offset:2px;border-radius:6px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ember);outline-offset:2px;border-color:rgba(230,168,92,.75);box-shadow:0 0 0 3px rgba(230,168,92,.16)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:99;background:var(--ember);color:#16120c;padding:8px 12px;border-radius:8px}
.skip:focus,.skip:focus-visible{top:12px}

/* Icon sprite. Inline display:none is blocked by CSP and the SVG then occupies the default 150px. */
.lx-sprite{position:absolute;width:0;height:0;overflow:hidden}
.lx-sprite symbol{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* Reading progress. Fixed, so the bar takes no layout space. One element per page. */
.lx-scroll{position:fixed;top:0;left:0;right:0;height:3px;z-index:80;margin:0;padding:0;pointer-events:none;background:transparent}
.lx-scroll[hidden]{display:none}
.lx-scroll-bar{height:100%;width:100%;background:var(--ember);opacity:.9;transform:scaleX(0);transform-origin:left center}
@media (prefers-reduced-motion:no-preference){
  .lx-scroll-bar{transition:transform 70ms linear}
}
@media (prefers-reduced-motion:reduce){
  .lx-scroll-bar{transition:none}
}

.page-intro{display:flex;align-items:flex-start;gap:12px;min-width:0}
.page-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border-radius:10px;border:1px solid var(--line);background:color-mix(in srgb,var(--text) 4%,var(--panel));color:var(--mist)}
.page-icon svg{width:18px;height:18px}
.lead-sentence{max-width:38rem}
.prose-read{max-width:42rem;color:var(--mist);font-size:14.5px;line-height:1.65}
.how-it-works{margin:0 0 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.015)}
.how-it-works>summary{cursor:pointer;padding:12px 16px;font-size:13.5px;font-weight:550;color:var(--mist);list-style:none}
.how-it-works>summary::-webkit-details-marker{display:none}
.how-it-works>summary::before{content:"";display:inline-block;width:.45em;height:.45em;margin-right:10px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(-45deg) translateY(-1px);transition:transform .15s var(--ease)}
.how-it-works[open]>summary::before{transform:rotate(45deg) translateY(-2px)}
.how-body{padding:0 16px 14px}
.blank-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;border:1px dashed var(--line-2);color:var(--ember);opacity:.9}
.blank-body{max-width:22rem}
.tech-term{margin-left:.35em;font-size:.82em;font-weight:500;color:var(--mute);cursor:help;border-bottom:1px dotted var(--line-2);text-decoration:none}

/* Shell */
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh;min-height:100dvh}
.side{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:6px;padding:16px 12px 12px;border-right:1px solid var(--line);background:linear-gradient(180deg,#0b0c10 0%,#070709 100%)}
.side .brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px;color:var(--text)}
.side .brand:hover{text-decoration:none}
.side .brand .mark{width:28px;height:28px}
.side .brand .word{width:7.2rem;height:auto}
.jump{display:flex;align-items:center;gap:8px;width:100%;margin:0 0 8px;padding:8px 10px;border:1px solid var(--line-2);border-radius:10px;background:var(--panel-2);color:var(--mist);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.jump:hover{border-color:var(--line-3);color:var(--text);background:rgba(255,255,255,.04)}
.jump svg{width:16px;height:16px;opacity:.85;color:var(--ember)}
.jump kbd{margin-left:auto}
kbd{font:500 11px/1 var(--mono);padding:3px 6px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;color:var(--mist);background:#0d0e12}
.nav{flex:1;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:14px;padding-bottom:8px}
.nav-group p{margin:0 0 4px;padding:0 10px;font:500 .64rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.nav a{position:relative;display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;color:var(--mist);font-size:14px;transition:background .15s var(--ease),color .15s var(--ease)}
.nav a svg{width:17px;height:17px;flex:0 0 auto;opacity:.75}
.nav a:hover{background:rgba(255,255,255,.06);color:var(--text);text-decoration:none}
.nav a.on{background:rgba(255,255,255,.07);color:var(--text)}
.nav a.on::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--ember);box-shadow:0 0 12px var(--ember)}
.nav a.on svg{opacity:1;color:var(--ember)}
.nav .count{margin-left:auto;min-width:1.3rem;height:1.25rem;padding:0 6px;border-radius:99px;background:var(--ember);color:#16120c;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.nav .count.quiet{background:var(--raise);color:var(--mist);font-weight:500}

/* User menu */
.user{position:relative;border-top:1px solid var(--line);padding-top:10px}
.user>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;cursor:pointer}
.user>summary::-webkit-details-marker{display:none}
.user>summary:hover,.user[open]>summary{background:rgba(255,255,255,.04)}
.avatar{flex:0 0 auto;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:600 12px/1 var(--sans);color:#16120c;background:linear-gradient(135deg,var(--ember-2),var(--ember));box-shadow:0 0 0 2px #0b0c10,0 0 0 3px rgba(230,168,92,.35)}
.user .id{min-width:0;flex:1;line-height:1.25}
.user .id strong{display:block;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user .id span{display:block;font-size:12px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user .chev{width:16px;height:16px;color:var(--mute);transition:transform .2s var(--ease)}
.user[open] .chev{transform:rotate(180deg)}
.menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:40;padding:6px;border:1px solid var(--line-2);border-radius:12px;background:#121419;box-shadow:0 24px 60px -20px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05);animation:pop .16s var(--ease)}
.menu header{padding:10px 10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.menu header strong{display:block;font-size:13.5px}
.menu header span{font-size:12px;color:var(--mute);overflow-wrap:anywhere}
.menu header .plan{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px;color:var(--mist)}
.menu a,.menu button{display:flex;width:100%;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--mist);font:inherit;font-size:13.5px;text-align:left;cursor:pointer;justify-content:flex-start}
.menu a svg,.menu button svg{width:16px;height:16px}
.menu a:hover,.menu button:hover{background:rgba(255,255,255,.05);color:var(--text);text-decoration:none}
.menu form{margin:0}
.menu hr{border:0;border-top:1px solid var(--line);margin:6px 0}
.menu .danger:hover{color:#f0c2c2;background:var(--bad-soft)}
@keyframes pop{from{opacity:0;transform:translateY(4px) scale(.98)}to{opacity:1;transform:none}}

/* Mobile bar */
.mbar{display:none}
@media (max-width:60em){
  .shell{grid-template-columns:1fr}
  .mbar{display:flex;position:sticky;top:0;z-index:30;align-items:center;gap:10px;height:52px;padding:0 14px;border-bottom:1px solid var(--line);background:rgba(5,5,6,.9);backdrop-filter:blur(18px) saturate(1.15)}
  .mbar .brand img{display:block;height:24px;width:auto}
  .mbar .grow{flex:1}
  .side{position:fixed;inset:0 auto 0 0;z-index:50;width:min(84vw,var(--side));transform:translateX(-102%);transition:transform .25s var(--ease);box-shadow:30px 0 80px rgba(0,0,0,.6)}
  body.nav-open .side{transform:none}
  body.nav-open .scrim{opacity:1;pointer-events:auto}
}
.scrim{position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.6);opacity:0;pointer-events:none;transition:opacity .2s}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:10px;border:1px solid var(--line);background:transparent;color:var(--mist)}
.icon-btn svg{width:18px;height:18px}
.icon-btn:focus-visible{border-color:rgba(230,168,92,.75);box-shadow:0 0 0 3px rgba(230,168,92,.16)}

/* Content */
.content{min-width:0;display:flex;flex-direction:column}
main{width:100%;max-width:min(1120px,100%);margin:0 auto;padding:16px clamp(16px,3vw,28px) 48px}
body.app main:focus,body.app main:focus-visible,body.lx main:focus,body.lx main:focus-visible{outline:none}
@media (max-width:36em){main{padding:12px 16px 40px}}
h1{font:360 clamp(1.7rem,2.6vw,2.15rem)/1.12 var(--display);letter-spacing:-.03em;margin:0;text-wrap:balance;font-feature-settings:"ss01" 1}
.page h1{font-size:clamp(1.4rem,2.1vw,1.75rem)}
h2{font:380 1.15rem/1.25 var(--display);letter-spacing:-.005em;margin:0}
h3{font:600 .92rem/1.3 var(--sans);margin:0 0 8px}
.crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px;font:500 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.crumbs a{color:var(--mute)}
.crumbs a:hover{color:var(--text);text-decoration:none}
.crumbs span[aria-hidden]{opacity:.5}
.kicker{margin:0 0 8px;font:500 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.kicker a{color:var(--mute)}
.kicker a:hover{color:var(--text);text-decoration:none}
.sub{margin:8px 0 0;color:var(--mist);max-width:44rem}
.page{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 14px;flex-wrap:wrap}
.page h1 a{color:inherit}
.page h1 .dot{width:11px;height:11px;vertical-align:4px}
.page-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.page-actions form{margin:0;display:flex}
.block-label,.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 8px;font:500 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.section-head a{font:500 .72rem/1 var(--sans);letter-spacing:0;text-transform:none}

.panel{background:linear-gradient(180deg,#14161c 0%,#0f1116 100%);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:0 0 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
a.panel{display:block;color:var(--text);transition:border-color .15s,transform .15s var(--ease)}
a.panel:hover{text-decoration:none;border-color:var(--line-2)}
.panel.flush:not(.table-wrap){padding:0;overflow:hidden}
.panel.table-wrap{padding:4px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.panel-head h2{font:600 .95rem/1.3 var(--sans);letter-spacing:0}
.panel-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line);color:var(--mist);font-size:12.5px}
.summary{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}
.summary h1{margin-bottom:4px}

.cols{display:grid;grid-template-columns:minmax(16rem,20rem) minmax(0,1fr);gap:16px;align-items:start}
.cols>.panel:first-child{position:sticky;top:20px}
.split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.stack{display:flex;flex-direction:column;gap:12px}
.stack>.panel{margin:0}
.item-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.meta{margin:0 0 12px;color:var(--mist);font-size:13px;overflow-wrap:anywhere}
.blank{border:1px dashed var(--line-2);border-radius:var(--radius);min-height:0;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;text-align:center;color:var(--mist);padding:22px 18px;background:rgba(255,255,255,.015)}
.blank strong{font:400 1.15rem/1.2 var(--display);color:var(--text)}
.note{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--warn-soft);color:var(--mist);font-size:13.5px}

/* Tables */
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
thead th,tr:first-child>th{position:sticky;top:0;z-index:1;background:#101217;color:var(--mute);font:500 .64rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
th a{color:inherit;display:inline-flex;align-items:center;gap:4px}
th a:hover{color:var(--text);text-decoration:none}
th a.on{color:var(--ember)}
tbody tr:last-child td,table tr:last-child td{border-bottom:0}
tbody tr{transition:background .1s}
tbody tr:hover td{background:rgba(255,255,255,.025)}
tr.clickable{cursor:pointer}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td.nowrap{white-space:nowrap}
td.time{white-space:nowrap;color:var(--mute);font:12.5px/1.4 var(--mono)}
td.actions-cell{white-space:nowrap;text-align:right}
tr.day td{position:sticky;top:33px;background:#0c0d11;padding:7px 14px;font:500 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
tr.day td span{float:right;letter-spacing:0;text-transform:none}
tr.fresh td:first-child{box-shadow:inset 3px 0 0 var(--ember)}
tr.is-critical td{background:rgba(224,122,122,.035)}
.empty{margin:0;padding:28px 16px;color:var(--mist);text-align:center}
.mono{font-family:var(--mono);font-size:12.5px}
.trunc{display:block;max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.split .trunc{max-width:15rem}
.cell-sub{display:block;margin-top:2px;color:var(--mist);font-size:12px;font-weight:400}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Status */
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;background:var(--mute);vertical-align:1px;flex:0 0 auto}
.dot.up,.dot.ok{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.dot.down,.dot.warn{background:var(--ember);box-shadow:0 0 0 3px var(--warn-soft),0 0 8px var(--ember)}
.dot.critical,.dot.bad{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft),0 0 8px var(--bad)}
.dot.down{animation:beat 1.6s ease-in-out infinite}
@keyframes beat{50%{box-shadow:0 0 0 6px transparent,0 0 14px var(--ember)}}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;letter-spacing:.02em;border:1px solid var(--line-2);border-radius:999px;padding:2px 9px;color:var(--mist);vertical-align:middle;white-space:nowrap;background:rgba(255,255,255,.02)}
.badge.live{color:#16120c;background:var(--ember);border-color:transparent;font-weight:700}
.badge.ok{color:var(--ok);border-color:rgba(125,206,160,.35);background:var(--ok-soft)}
.badge.warn{color:var(--ember-2);border-color:rgba(230,168,92,.4);background:var(--warn-soft)}
.badge.bad,.badge.critical{color:#f2b3b3;border-color:rgba(224,122,122,.4);background:var(--bad-soft)}
.badge.info{color:var(--mist)}

/* Buttons */
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:rgba(255,255,255,.02);color:var(--text);border:1px solid var(--line-2);border-radius:10px;padding:8px 14px;font:inherit;font-size:13.5px;font-weight:550;line-height:1.2;cursor:pointer;text-decoration:none;transition:border-color .15s,background .15s,transform .1s}
.btn svg,button svg{width:15px;height:15px}
.btn:hover,button:hover{text-decoration:none;border-color:var(--line-3);background:rgba(255,255,255,.05);color:var(--text)}
.btn:active,button:active{transform:translateY(1px)}
.btn.primary,button.primary{background:linear-gradient(180deg,var(--ember-2),var(--ember));color:#1a1309;border-color:transparent;font-weight:650;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 20px -8px rgba(230,168,92,.6)}
.btn.primary:hover,button.primary:hover{color:#1a1309;filter:brightness(1.06)}
.btn.ghost,button.ghost{border-color:transparent;background:none;color:var(--mist);font-weight:500}
.btn.ghost:hover,button.ghost:hover{background:rgba(255,255,255,.05);color:var(--text)}
.btn.danger,button.danger{color:#f0b0b0;border-color:rgba(224,122,122,.3)}
.btn.danger:hover,button.danger:hover{background:var(--bad-soft);border-color:rgba(224,122,122,.55);color:#ffd6d6}
.btn.sm,button.sm{padding:5px 10px;font-size:12.5px;border-radius:8px}
button.link{background:none;border:0;border-radius:0;padding:0;color:var(--ember);font-weight:500;box-shadow:none}
button:disabled,.btn:disabled,.btn[aria-disabled=true]{opacity:.4;cursor:not-allowed;pointer-events:none}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.lead-actions{margin-bottom:16px}
.actions form,.inline-form{margin:0;display:inline-flex}

/* Segmented filters */
.seg{display:inline-flex;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);gap:2px}
.seg a{padding:5px 11px;border-radius:7px;color:var(--mist);font-size:13px;white-space:nowrap}
.seg a:hover{color:var(--text);text-decoration:none;background:rgba(255,255,255,.04)}
.seg a.on{background:var(--raise);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}
.seg a .n{margin-left:6px;color:var(--mute);font-variant-numeric:tabular-nums}

/* Forms */
input,select,textarea{width:100%;background:#08090c;color:var(--text);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;min-height:42px;font:inherit;transition:border-color .15s,box-shadow .15s}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a8c99' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}
textarea{min-height:110px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:var(--line-3)}
input::placeholder,textarea::placeholder{color:var(--mute)}
label{display:block;margin:14px 0 6px;color:var(--mist);font-size:13px;font-weight:500}
.hint{margin:6px 0 0;color:var(--mist);font-size:12.5px}
.sig-meta{color:var(--mist)}
label.check{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--text);font-weight:400}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--ember)}
.switch{position:relative;display:inline-block;width:36px;height:20px;flex:0 0 auto}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}
.switch span{position:absolute;inset:0;border-radius:99px;background:#2a2c34;transition:background .15s}
.switch span::after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:#d6d8e2;transition:transform .18s var(--ease)}
.switch input:checked+span{background:var(--ember)}
.switch input:checked+span::after{transform:translateX(16px);background:#1a1309}
.switch input:focus-visible+span{box-shadow:0 0 0 3px rgba(230,168,92,.3)}
.switch.inline{vertical-align:middle;margin-right:8px}
select.compact{width:auto;min-width:9rem;min-height:34px;padding-block:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 16px}
.grid .wide{grid-column:1/-1}
.baseline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.baseline button{height:42px;padding-inline:18px}
.compose{max-width:36rem;width:100%}
.hero .compose{margin:0;padding:0;background:none;border:0;box-shadow:none;flex:1}
.compose>label:first-of-type,.panel>label:first-of-type,.field label{margin-top:0}
.aside{margin:12px 0 0;font-size:13.5px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center}
.toolbar .grow{flex:1 1 14rem}
.toolbar select,.toolbar input{min-height:36px;padding-top:7px;padding-bottom:7px;font-size:13.5px}
.toolbar select{width:auto}
.toolbar .search{position:relative}
.toolbar .search svg{position:absolute;left:11px;top:50%;width:15px;height:15px;margin-top:-7.5px;color:var(--mute);pointer-events:none}
.toolbar .search input{padding-left:34px}
.field.slim{flex:0 0 16rem;max-width:100%}
.toolbar .actions{margin-top:0;flex:1}
.form-section{display:grid;grid-template-columns:minmax(12rem,18rem) minmax(0,1fr);gap:24px;padding:22px 0;border-top:1px solid var(--line)}
.form-section:first-child,.form-section:first-of-type{border-top:0;padding-top:4px}
.form-section>div:first-child h2{font:600 .95rem/1.3 var(--sans);letter-spacing:0;margin-bottom:6px}
.form-section>div:first-child p{margin:0;color:var(--mist);font-size:13px}
.form-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid var(--line);margin-top:4px}
.field-err{margin:6px 0 0;color:var(--bad);font-size:12.5px}
.has-err input,.has-err select,.has-err textarea{border-color:rgba(224,122,122,.6)}
.toggle-row{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.toggle-row:first-of-type{border-top:0}
.toggle-row strong{display:block;font-weight:550}
.toggle-row span.hint{display:block;margin-top:2px}

/* Flash / toast */
.toasts{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:min(26rem,calc(100vw - 40px))}
.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--line-2);border-radius:12px;background:#15171d;box-shadow:0 20px 50px -20px rgba(0,0,0,.9);animation:pop .2s var(--ease);font-size:13.5px}
.toast .dot{margin-top:6px}
.toast button{margin-left:auto;padding:0 4px;border:0;background:none;color:var(--mute);font-size:18px;line-height:1}
.toast.err{border-color:rgba(224,122,122,.45)}
.flash{border:1px solid var(--line);border-left:3px solid var(--ember);border-radius:12px;padding:12px 14px;background:#12141a;margin-bottom:16px}
.flash.err{border-left-color:var(--bad);color:#f0c2c2}
.err{color:var(--bad)}
.mute{color:var(--mute)}
code{font-family:var(--mono);font-size:12.5px;background:#08090c;border:1px solid var(--line);padding:2px 6px;border-radius:6px;word-break:break-all}
.copy{display:flex;align-items:stretch;gap:0;margin-top:6px;border:1px solid var(--line-2);border-radius:10px;background:#08090c;overflow:hidden}
.copy code{flex:1;border:0;background:none;padding:10px 12px;white-space:pre-wrap}
.copy button{border:0;border-left:1px solid var(--line-2);border-radius:0;font-size:12.5px;padding:0 14px;background:rgba(255,255,255,.02)}
code.block{display:block;padding:10px 12px;margin-top:6px;white-space:pre-wrap}
.stat{font:400 1.8rem/1.1 var(--display);margin-top:4px;font-variant-numeric:tabular-nums}
.stat-label{color:var(--mist);font:500 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.ai{white-space:pre-wrap;border-left:2px solid var(--ember);padding-left:14px;margin:0}

/* Metrics */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:12px;margin:0 0 4px}
.metric{position:relative;display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(180deg,#14161c,#0f1116);color:var(--text);overflow:hidden}
a.metric:hover{text-decoration:none;color:var(--text);border-color:rgba(230,168,92,.45)}
.metric strong{font:350 1.9rem/1 var(--display);white-space:nowrap;font-variant-numeric:tabular-nums}
.metric strong small{font-size:.5em;color:var(--mist);font-family:var(--sans)}
.metric>span,.metric>em{font-style:normal;color:var(--mute);font:500 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.metric>em{letter-spacing:0;text-transform:none;font:400 12.5px/1.3 var(--sans)}
.metric.good strong{color:var(--ok)}
.metric.alert{border-color:rgba(230,168,92,.4)}
.metric.alert strong{color:var(--ember)}
.meter{height:5px;border-radius:99px;background:#22242c;overflow:hidden}
.meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ember),var(--ember-2))}

/* Uptime strip */
.strip{display:flex;align-items:flex-end;gap:2px;height:34px}
.strip i{flex:1 1 0;min-width:2px;height:100%;border-radius:2px;background:var(--ok);opacity:.85;transition:opacity .1s,transform .1s}
.strip i.bad{background:var(--bad)}
.strip i.none{background:#24262e}
.strip i:hover{opacity:1;transform:scaleY(1.12)}
.strip-legend{display:flex;justify-content:space-between;margin-top:8px;color:var(--mist);font-size:12px}

.hero{display:flex;justify-content:space-between;align-items:center;gap:20px}
.hero .meta{margin:8px 0 0;font-family:var(--mono);font-size:12.5px}
.status-line{margin:0}
a.row{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--text);border-bottom:1px solid var(--line)}
a.row:last-child{border-bottom:0}
a.row:hover{text-decoration:none;color:var(--text);background:rgba(255,255,255,.025)}
a.row .name{flex:1;min-width:0}
a.row.on{background:rgba(230,168,92,.06)}
.rows{padding:0}
.feed{list-style:none;margin:0;padding:0}
.feed li{display:flex;gap:10px;align-items:flex-start;padding:11px 16px;border-bottom:1px solid var(--line)}
.feed li:last-child{border-bottom:0}
.feed .t{flex:1;min-width:0}
.feed .t strong{display:block;font-weight:550;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed .t span{color:var(--mist);font-size:12px}
.feed .dot{margin-top:7px}

/* Signals log */
.sig-title{font-weight:550}
.sig-body{margin-top:4px;color:var(--mist);white-space:pre-wrap;font-size:13px}
details.more>summary{list-style:none;cursor:pointer;color:var(--mist);font-size:12.5px;margin-top:4px}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::before{content:"Show detail";}
details.more[open]>summary::before{content:"Hide detail"}
details.more>summary:hover{color:var(--text)}

/* Pagination */
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--mute)}
.pager.bare{border-top:0;padding:12px 0}
.pager .pages{display:flex;gap:4px;flex-wrap:wrap}
.pager .pages a,.pager .pages span{min-width:30px;height:30px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid transparent;color:var(--mist);font-variant-numeric:tabular-nums}
.pager .pages a:hover{border-color:var(--line-2);text-decoration:none;color:var(--text)}
.pager .pages .on{background:var(--raise);border-color:var(--line-2);color:var(--text)}
.pager .pages .off{opacity:.35}

/* Plans */
.plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
.plan-card{display:flex;flex-direction:column;min-height:15rem;background:linear-gradient(180deg,#14161c,#0f1116);border:1px solid var(--line);border-radius:16px;padding:20px 18px 18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04);transition:border-color .15s}
.plan-card:hover{border-color:var(--line-2)}
.plan-card.current{border-color:rgba(230,168,92,.55);box-shadow:inset 0 0 0 1px rgba(230,168,92,.25),0 20px 50px -30px rgba(230,168,92,.5)}
.plan-card h2{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.plan-card .price{margin:0;font-size:1.9rem;font-weight:650;letter-spacing:-.03em}
.plan-card .price span,.summary .price span{font-size:.9rem;font-weight:500;color:var(--mist)}
.summary .price{margin:0 0 8px;font-size:1.75rem;font-weight:650;letter-spacing:-.03em}
.plan-card .one{color:var(--mist);margin:12px 0 0;font-size:.92rem}
.limits{list-style:none;margin:14px 0 16px;padding:14px 0 0;border-top:1px solid var(--line);color:var(--mist);font-size:.9rem;flex:1}
.limits li{position:relative;margin:0 0 6px;padding-left:20px}
.limits li::before{content:"";position:absolute;left:2px;top:.5em;width:8px;height:5px;border-left:1.5px solid var(--ember);border-bottom:1.5px solid var(--ember);transform:rotate(-45deg)}
.plan-card .act{margin-top:auto;min-height:42px;display:flex;align-items:center}
.plan-card .act p{margin:0;width:100%;text-align:center;border:1px solid var(--line-2);border-radius:10px;padding:10px 14px;color:var(--mist)}
.plan-card .act form{margin:0;flex:1}
.plan-card .act .btn,.plan-card .act button{width:100%}

/* Onboarding */
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.step{display:flex;gap:14px;align-items:flex-start;margin:0}
.step-mark{flex:0 0 auto;width:1.9rem;height:1.9rem;border-radius:50%;border:1px solid var(--line-2);display:flex;align-items:center;justify-content:center;font:500 .75rem/1 var(--mono);color:var(--mist)}
.step.now{border-color:rgba(230,168,92,.45)}
.step.now .step-mark{border-color:var(--ember);color:var(--ember);box-shadow:0 0 14px rgba(230,168,92,.35)}
.step.done .step-mark{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.step h2{margin:0 0 6px}
.step .sub{margin:0 0 12px}
.progress{display:flex;align-items:center;gap:12px;margin:0 0 16px;color:var(--mist);font-size:13px}
.progress .meter{flex:1;max-width:20rem}

.presence{width:6.5rem;height:6.5rem;border-radius:50%;border:1px solid var(--line-2);background:radial-gradient(circle,#07080a 58%,transparent 59%);position:relative;flex:0 0 auto}
.presence::before{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid transparent}
.presence.up::before{border-color:rgba(125,206,160,.35);animation:ring 3s ease-out infinite}
.presence::after{content:"";position:absolute;left:50%;top:50%;width:1.05rem;height:1.05rem;margin:-.525rem 0 0 -.525rem;border-radius:50%;background:var(--mute)}
.presence.up::after{background:var(--ok);box-shadow:0 0 14px var(--ok)}
.presence.down::after{background:var(--ember);box-shadow:0 0 16px var(--ember)}
.presence.pending::after{background:var(--mute)}
.presence.paused{background:transparent}
.presence.paused::after{background:transparent;box-shadow:inset 0 0 0 1px var(--mute)}
@keyframes ring{from{transform:scale(1);opacity:1}to{transform:scale(1.35);opacity:0}}

/* Command palette */
dialog.palette{width:min(36rem,calc(100vw - 32px));margin:12vh auto auto;padding:0;border:1px solid var(--line-2);border-radius:14px;background:#121419;color:var(--text);box-shadow:0 40px 100px -30px #000}
dialog.palette::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(3px)}
dialog.palette input{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:16px 18px;font-size:15px;box-shadow:none}
dialog.palette input:focus-visible{border-bottom-color:rgba(230,168,92,.75);outline:2px solid var(--ember);outline-offset:-2px;box-shadow:0 0 0 3px rgba(230,168,92,.16)}
dialog.palette li a:focus-visible{background:var(--ember-soft);color:var(--text);outline:2px solid var(--ember);outline-offset:-2px}
dialog.palette ul{list-style:none;margin:0;padding:6px;max-height:50vh;overflow-y:auto}
dialog.palette li a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;color:var(--mist)}
dialog.palette li a span{margin-left:auto;color:var(--mute);font-size:12px}
dialog.palette li a.on,dialog.palette li a:hover{background:var(--ember-soft);color:var(--text);text-decoration:none}
dialog.palette footer{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--line);color:var(--mute);font-size:12px}

/* Admin */
.res-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:10px}
.res-grid a.panel{margin:0;display:flex;flex-direction:column;gap:4px}
.res-grid strong{font-weight:600}
.res-grid .n{font:350 1.6rem/1.1 var(--display);font-variant-numeric:tabular-nums}
.res-grid .mute{font-size:12.5px}

/* Auth stage (guest) */
body.stage{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:safe center;padding:28px 18px 64px;background:radial-gradient(42rem 26rem at 16% 42%,rgba(230,168,92,.13),transparent 64%),#000}
body.stage main{width:min(26rem,100%);max-width:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.auth{background:linear-gradient(180deg,#16181e 0%,#0c0d11 70%);border:1px solid var(--line-2);border-radius:18px;padding:28px 24px 22px;box-shadow:0 40px 90px -36px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.07)}
.lockup{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 0 18px}
.lockup:hover{text-decoration:none}
.lockup img{display:block;height:auto}
.lockup .mark{width:9.5rem}
.lockup .word{width:11.5rem}
.auth h1{font:325 1.85rem/1.1 var(--display);letter-spacing:-.01em;text-align:center;margin:0 0 8px}
.auth .lede{text-align:center;margin:0 0 8px}
.auth input{padding:12px 14px}
.auth .row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px}
.auth .row label{margin:0;display:flex;align-items:center;gap:8px}
.auth button.primary{width:100%;margin-top:16px;padding:12px 16px}
.auth .foot{text-align:center;margin:16px 0 0}
.stage-home{position:fixed;left:0;right:0;bottom:16px;margin:0;text-align:center;font-size:13px}
.stage-home a{color:var(--mute)}
.door{display:flex;flex-direction:column;gap:22px}
.door-copy .lockup{align-items:flex-start}
.door-copy .lede{margin:0;text-align:left;font:325 clamp(1.7rem,4vw,2.6rem)/1.15 var(--display);letter-spacing:-.01em;color:var(--text)}
.honest{color:var(--mist)}
.door .honest{margin:12px 0 0}
@media (min-width:60em){
  body.stage main:has(.door){width:min(58rem,100%)}
  .door{display:grid;grid-template-columns:1fr .92fr;gap:40px;align-items:center}
}

@media (max-width:72em){.plan-grid{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}}
@media (max-width:52em){
  .metrics{grid-template-columns:1fr 1fr}
  .cols{grid-template-columns:1fr}
  .cols>.panel:first-child{position:static}
  .baseline{grid-template-columns:1fr}
  .baseline button{width:100%}
  .form-section{grid-template-columns:1fr;gap:10px}
  .hide-sm{display:none}
}
@media (max-width:36em){
  .metrics,.plan-grid{grid-template-columns:1fr}
  .hero{flex-direction:column;align-items:flex-start}
}
html[data-theme="light"]{
  --bg:#f4f5f9;
  --panel:#fff;
  --panel-2:#eef0f6;
  --raise:#e8eaf2;
  --line:rgba(12,14,22,.1);
  --line-2:rgba(12,14,22,.16);
  --line-3:rgba(12,14,22,.28);
  --text:#12131a;
  --mist:#4a4d5c;
  --mute:#6a6d7c;
}
@media (max-width:720px){
  .icon-btn,.mbar .icon-btn{min-width:44px;min-height:44px;width:44px;height:44px}
  .page-actions .btn,.page-actions button{min-height:44px;padding-block:10px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
