/* ============================================================
   05 — LAYOUT : page skeletons
   ============================================================ */

/* ---------------------------- header ----------------------- */
.hdr{position:sticky;top:0;z-index:60;padding:14px 0}
.hdr-in{
  display:flex;align-items:center;gap:26px;min-width:0;max-width:var(--maxw);margin:0 auto;padding:0 12px 0 18px;
  height:58px;border:1px solid var(--line);border-radius:999px;
  background:rgba(8,12,23,.72);backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
}
html[data-theme="day"] .hdr-in{background:rgba(255,255,255,.78)}
.hdr{padding-left:24px;padding-right:24px}
.brand{display:flex;align-items:center;gap:10px;font:600 15px/1 var(--display);letter-spacing:-.03em;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden}
.brand .mk{
  width:22px;height:22px;border-radius:7px;background:var(--spectrum);position:relative;flex:0 0 auto;
  box-shadow:0 4px 16px -4px rgba(46,107,255,.9);
}
.brand .mk::after{content:"";position:absolute;left:5px;top:9px;width:12px;height:4px;border-radius:2px;background:rgba(255,255,255,.85)}
.brand .thin{color:var(--faint);font-weight:400}
.nav{display:flex;gap:20px;min-width:0}
.nav a{font-size:13.5px;color:var(--dim);padding:6px 0;position:relative}
.nav a:hover{color:var(--text)}
.nav a.on{color:var(--text)}
.nav a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--spectrum)}
.hdr-r{margin-left:auto;display:flex;align-items:center;gap:9px;flex:0 0 auto}
.iconbtn{
  height:34px;min-width:34px;padding:0 10px;display:grid;place-items:center;cursor:pointer;color:var(--dim);
  background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:999px;
  font:500 11px/1 var(--mono);
}
.iconbtn:hover{color:var(--text);border-color:rgba(46,107,255,.5)}
.burger{display:none}

/* ---------------------------- hero ------------------------- */
.hero{position:relative;padding:76px 0 46px;overflow:visible}
.hero h1{max-width:16ch}
.hero .lead{margin-top:22px}
.kicker{
  display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:26px;padding:7px 14px 7px 8px;
  border:1px solid var(--line);border-radius:999px;background:var(--glass);
  font:500 11.5px/1 var(--mono);letter-spacing:.06em;color:var(--dim);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.kicker .pill{
  padding:4px 9px;border-radius:999px;background:var(--spectrum);color:var(--void);font-weight:600;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}

.console{border-radius:var(--r-lg);overflow:hidden;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%)}
.console .bar{
  display:flex;align-items:center;gap:9px;height:42px;padding:0 16px;border-bottom:1px solid var(--line);
  font:400 11.5px/1 var(--mono);color:var(--faint);
}
.console .bar .lights{display:flex;gap:6px}
.console .bar .lights i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.console .bar .lights i:first-child{background:rgba(255,90,110,.6)}
.console .bar .lights i:nth-child(2){background:rgba(255,201,60,.6)}
.console .bar .lights i:nth-child(3){background:rgba(43,227,160,.6)}
.console .body{padding:16px;display:grid;gap:14px}
.console .alertline{
  font-family:var(--mono);font-size:12.5px;line-height:1.7;color:var(--text);
  word-break:break-word;padding:13px 15px;border-radius:var(--r-sm);
  background:rgba(0,0,0,.3);border:1px solid var(--line);
}
html[data-theme="day"] .console .alertline{background:#F3F5FB}
.ticket{font-family:var(--mono);font-size:12.5px;min-height:150px}

.proof{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);margin-top:0}
.proof div{padding:20px 22px;border-right:1px solid var(--line)}
.proof div:last-child{border-right:0}
.proof .n{font:700 30px/1 var(--display);letter-spacing:-.04em;margin-bottom:6px}
.proof .l{font:400 12px/1.4 var(--mono);color:var(--faint)}

/* three-step */
.steps{counter-reset:s}
.step{position:relative;padding:26px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--glass);overflow:hidden}
.step .n{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;margin-bottom:18px;
  background:var(--spectrum-soft);border:1px solid var(--line);
  font:600 14px/1 var(--mono);color:var(--cyan);
}
.step h3{margin-bottom:8px}
.step p{color:var(--dim);margin:0;font-size:13.5px}

/* ---------------------------- app shell -------------------- */
.app{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh;position:relative;z-index:1}
.side{
  position:sticky;top:0;height:100vh;overflow-y:auto;padding:18px 0;
  border-right:1px solid var(--line);background:rgba(8,12,23,.55);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  display:flex;flex-direction:column;
}
html[data-theme="day"] .side{background:rgba(255,255,255,.8)}
.side .brand{padding:0 18px 18px;margin-bottom:6px}
.side-grp{padding:0 12px;margin-bottom:16px}
.side-grp .lbl{padding:0 8px;margin-bottom:8px}
.side a{
  display:flex;align-items:center;gap:11px;padding:9px 10px;color:var(--dim);font-size:13.5px;
  border-radius:9px;position:relative;transition:background .14s,color .14s;
}
.side a:hover{background:rgba(255,255,255,.05);color:var(--text)}
.side a.on{background:var(--spectrum-soft);color:var(--text);font-weight:500}
.side a.on::before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--spectrum)}
.side a svg{opacity:.85;flex:0 0 auto}
.side .sp{flex:1}
.side .foot{padding:14px 18px 0;border-top:1px solid var(--line);margin-top:14px;display:grid;gap:10px}
.main{min-width:0;display:flex;flex-direction:column}
.page-hd{
  display:flex;align-items:center;gap:14px;padding:0 26px;height:64px;position:sticky;top:0;z-index:50;
  border-bottom:1px solid var(--line);background:rgba(8,12,23,.7);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
html[data-theme="day"] .page-hd{background:rgba(255,255,255,.82)}
.page-hd h1{font-size:19px;margin:0;letter-spacing:-.03em}
.page-hd .crumb{font:400 11.5px/1 var(--mono);color:var(--faint);padding-left:14px;border-left:1px solid var(--line)}
.page-hd{flex-wrap:wrap}
.page-hd .act{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.page-bd{padding:24px 26px 56px;display:grid;gap:var(--gap);align-content:start}
.page-bd > *{min-width:0}

/* ---------------------------- docs ------------------------- */
.docs{display:grid;grid-template-columns:224px minmax(0,1fr);gap:44px;align-items:start;padding:36px 0 80px}
.docs > *{min-width:0}
.docnav{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;font-size:13.5px}
.docnav .lbl{margin:20px 0 9px}
.docnav .lbl:first-child{margin-top:0}
.docnav a{display:block;padding:5px 0 5px 13px;color:var(--dim);border-left:1px solid var(--line);border-radius:0 4px 4px 0}
.docnav a:hover{color:var(--cyan);border-left-color:var(--cyan);background:rgba(46,107,255,.07)}
.doc h2{margin-top:52px;padding-top:22px;border-top:1px solid var(--line)}
.doc h2:first-child{margin-top:0;padding-top:0;border-top:0}
.doc h3{margin-top:26px;color:var(--cyan)}
.doc .tbl-wrap{margin-bottom:18px}

/* ---------------------------- builder ---------------------- */
.bld{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:var(--gap);align-items:start}
.bld > *{min-width:0}
.bld-out{position:sticky;top:96px;display:grid;gap:14px}

/* ---------------------------- footer ----------------------- */
.ftr{position:relative;border-top:1px solid var(--line);padding:60px 0 30px;margin-top:40px}
.ftr-g{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:32px}
.ftr .lbl{margin-bottom:14px}
.ftr a{display:block;color:var(--dim);font-size:13.5px;padding:4px 0}
.ftr a:hover{color:var(--cyan)}
.ftr-b{border-top:1px solid var(--line);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--faint)}
.disclaimer{max-width:760px;font-size:12px;color:var(--dim);line-height:1.7}

/* ---------------------------- responsive ------------------- */
@media(max-width:1100px){
  .hero-grid{grid-template-columns:1fr;gap:34px}
}
@media(max-width:1240px){
  .bld{grid-template-columns:minmax(0,1fr)}
  .bld-out{position:static}
}
@media(max-width:1000px){
  .bld{grid-template-columns:minmax(0,1fr)}
  .bld-out{position:static}
  .docs{grid-template-columns:minmax(0,1fr);gap:22px}
  .docnav{position:static;max-height:none;border:1px solid var(--line);border-radius:var(--r);padding:18px;background:var(--glass)}
  .proof{grid-template-columns:repeat(2,1fr)}
  .proof div:nth-child(2){border-right:0}
  .proof div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:900px){
  .app{grid-template-columns:1fr}
  .side{position:static;height:auto;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;padding:12px 16px;overflow-x:auto}
  .side .brand{padding:0 14px 0 0;margin:0 10px 0 0;border-right:1px solid var(--line)}
  .side-grp{display:flex;gap:4px;padding:0;margin:0}
  .side-grp .lbl{display:none}
  .side a{white-space:nowrap;padding:8px 11px}
  .side a.on::before{display:none}
  .side .sp,.side .foot{display:none}
  .page-hd{position:static;height:auto;padding:14px 18px;flex-wrap:wrap}
}
@media(max-width:1150px){
  .burger{display:grid}
  .nav{
    display:none;position:absolute;top:74px;left:24px;right:24px;flex-direction:column;gap:0;
    background:var(--lift);border:1px solid var(--line);border-radius:var(--r);padding:10px 20px;
  }
  .nav.open{display:flex}
  .nav a{padding:13px 0;border-bottom:1px solid var(--line-2)}
  .nav a.on::after{display:none}
  .ftr-g{grid-template-columns:repeat(2,1fr)}
  .hdr{padding-left:14px;padding-right:14px}
  .hdr-in{gap:10px;padding:0 8px 0 14px;height:54px}
  .hdr-r{gap:6px}
  .hdr-r .btn-primary{display:none}
  .hdr-r [data-palette]{display:none}
  .brand .thin{display:none}
  .nav .btn-primary{display:inline-flex;width:100%;margin-top:10px}
}
@media(max-width:560px){
  .page-bd{padding:16px}
  .hero{padding:48px 0 32px}
  .proof{grid-template-columns:1fr}
  .proof div{border-right:0;border-bottom:1px solid var(--line)}
}

/* ============================================================
   06 — FIT : real-device corrections
   Everything below exists because something actually broke on a
   real width. Grouped here so the cause stays readable.
   ============================================================ */

/* nothing may push the page sideways ------------------------- */
html,body{overflow-x:clip;max-width:100%}
img,svg,video,canvas,iframe,table,pre{max-width:100%}
.wrap,.page-bd,.hdr-in{min-width:0}

/* long unbreakable strings: webhook URLs, license keys, alert lines */
.copyfield .val,.rc-line .v,.acct dd,td.m,td.r{overflow-wrap:anywhere}

/* horizontal scrollers get momentum + a visible edge on touch */
.tbl-wrap,.panel-bd.flush,.side,.pre,.rc-block{-webkit-overflow-scrolling:touch}

/* ---------- header: it overflowed below ~420px -------------- */
.hdr{padding:14px 24px}
.navtheme{display:none}
@media(max-width:1150px){
  .nav .navtheme{display:flex;width:100%;justify-content:center;margin:12px 0 4px;height:38px}
}
@media(max-width:620px){
  .hdr{padding:10px 14px}
  .nav{top:64px;left:14px;right:14px}
  .hdr-in{height:54px;padding:0 8px 0 14px;gap:10px}
  .hdr-r{gap:8px}
  .hdr-in [data-palette]{display:none}          /* no keyboard, no palette */
}
@media(max-width:430px){
  .hdr-in [data-theme-toggle]{display:none}     /* moved into the menu */
  .brand{font-size:14px}
  .brand .thin{display:none}
}

/* ---------- touch targets ----------------------------------- */
@media(pointer:coarse){
  .btn-sm{height:36px;padding:0 14px}
  .iconbtn{height:38px;min-width:38px}
  .side a{padding:11px 12px}
  .nav a{padding:14px 0}
  details.faq summary{padding:18px 18px}
}

/* ---------- code and tickets wrap instead of scrolling ------ */
@media(max-width:700px){
  .pre,.rc-block{white-space:pre-wrap;word-break:break-word}
  .copy-wrap > .btn{position:static;margin-bottom:8px}
}

/* ---------- hero: give the console room before it stacks ---- */
@media(max-width:1240px) and (min-width:1101px){
  .hero-grid{grid-template-columns:1fr .9fr;gap:32px}
}
@media(max-width:1100px){
  .hero{padding-top:56px}
  .hero h1{max-width:20ch}
  .hero .lead{max-width:none}
}

/* ---------- very wide screens: stop the line length drifting - */
@media(min-width:1500px){
  :root{--maxw:1340px}
  .hero h1{max-width:17ch}
}

/* ---------- dashboard: sidebar strip on tablets and phones --- */
@media(max-width:900px){
  /*  The sidebar becomes a horizontal scroller. Without an edge fade there is
      nothing telling anyone there is more nav off to the right. */
  .side{
    gap:8px;scrollbar-width:none;
    -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);
    mask-image:linear-gradient(90deg,#000 88%,transparent);
  }
  .side::-webkit-scrollbar{display:none}
  /*  No keyboard, no command palette. */
  .page-hd [data-palette]{display:none}
  .page-hd .act{width:100%;margin-left:0}
  .page-hd .act .btn{flex:0 0 auto}
}

/* ---------- the Split at phone widths ----------------------- */
@media(max-width:600px){
  .split-rows,.split-scale{--barL:98px;--barR:76px}
  .split-row{grid-template-columns:48px 40px 1fr 52px;padding:0 10px;height:32px}
  .split-row .sr-t{font-size:10px}
  .split-row .sr-s .chip{padding:0 6px;height:19px;font-size:9.5px}
  .split-row .sr-s{font-size:0}                 /* symbol hides, chip carries it */
  .split-legend{gap:12px;padding:10px}
  .split-legend span{font-size:10px}
  .split-hd{height:44px;padding:0 12px}
  .split-hd .lbl{font-size:9.5px;letter-spacing:.1em}
}

/* ---------- stats and proof at phone widths ----------------- */
@media(max-width:560px){
  .stat{padding:16px}
  .stat .v{font-size:26px}
  .proof div{padding:16px 18px}
  .proof .n{font-size:26px}
  .console .body{padding:14px;gap:12px}
  .console .bar{padding:0 12px;font-size:10.5px}
  .console .bar .status{display:none}
  .btns .btn{flex:1 1 auto}
}

/* ---------- keep the aurora cheap on small hardware --------- */
@media(max-width:700px){
  .aurora i{filter:blur(60px);opacity:.42}
  .grain{opacity:.025}
}
