/* THE DEVELOPER CONSOLE (2026-10-01 overhaul). Its own app frame in the site's palette (Erik's design tokens), no
   marketing header or footer. Every number on these screens is read from the Router, the Indexer or the account store. */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

:root{color-scheme:dark;--bg:#0e0d12;--bg2:#121017;--surface:#17141d;--surface2:#1d1924;--raise:#231e2b;--text:#f5f0fa;--muted:#ada4b9;--faint:#7d7389;
  --lavender:#d8c5fd;--light:#e7d9fd;--cream:#fff2d9;--purple:#502792;--line:#d8c5fd1f;--line2:#d8c5fd33;
  --good:#9ff0c3;--warn:#ffd59a;--bad:#ff9fb0;--info:#a9d2ff;--gradient:linear-gradient(115deg,#d8c5fd 15%,#e7d9fd 58%,#fff2d9);
  --mono:'DM Mono',ui-monospace,monospace;--sans:Manrope,system-ui,-apple-system,sans-serif;--r:14px;--side:252px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
code,.mono{font-family:var(--mono);font-size:.92em}
::selection{background:#d8c5fd55}
:focus-visible{outline:2px solid var(--lavender);outline-offset:2px;border-radius:6px}

/* ---------- frame ---------- */
.cx{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}
.cx-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:6px;padding:18px 14px;border-right:1px solid var(--line);background:linear-gradient(180deg,#15121b,#0f0d13)}
.cx-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px;font-weight:600;font-size:17px;letter-spacing:-.4px}
.cx-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--gradient);color:#20142f;flex-shrink:0}
.cx-mark svg{width:26px;height:26px}
.cx-brand small{display:block;font:500 10.5px/1.2 var(--mono);color:var(--faint);letter-spacing:.06em;text-transform:uppercase;margin-top:3px}
.cx-org{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#d8c5fd08;margin-bottom:10px}
.cx-org .av{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#502792;color:var(--light);font-weight:700;font-size:13px}
.cx-org b{display:block;font-size:13px;font-weight:600}
.cx-org span{font-size:11.5px;color:var(--muted)}
.cx-nav{display:flex;flex-direction:column;gap:2px}
.cx-nav .grp{font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:14px 10px 6px}
.cx-nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:9px;color:#c9c0d4;font-weight:500;transition:background .15s,color .15s}
.cx-nav a svg{width:17px;height:17px;opacity:.8;flex-shrink:0}
.cx-nav a:hover{background:#d8c5fd0d;color:var(--text)}
.cx-nav a[aria-current=page]{background:#d8c5fd17;color:var(--text);box-shadow:inset 2px 0 0 var(--lavender)}
.cx-nav a[aria-current=page] svg{opacity:1;color:var(--lavender)}
.cx-nav .count{margin-left:auto;font:500 11px var(--mono);color:var(--muted);background:#d8c5fd12;border-radius:20px;padding:1px 7px}
.cx-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.cx-health{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:7px;font-size:12px}
.cx-health div{display:flex;align-items:center;gap:8px;color:var(--muted)}
.cx-health div b{margin-left:auto;font-weight:500;color:var(--text);font-family:var(--mono);font-size:11.5px}
.cx-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px}
.cx-user img,.cx-user .ph{width:30px;height:30px;border-radius:50%;background:var(--raise)}
.cx-user b{display:block;font-size:13px;font-weight:600}
.cx-user span{font-size:11.5px;color:var(--muted)}
.cx-user form{margin-left:auto}
.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid transparent;background:none;cursor:pointer;color:var(--muted);transition:all .15s}
.icon-btn:hover{background:#d8c5fd12;color:var(--text);border-color:var(--line)}
.icon-btn svg{width:16px;height:16px}

.cx-main{min-width:0;display:flex;flex-direction:column}
.cx-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:12px 32px;border-bottom:1px solid var(--line);background:#0e0d12d9;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.crumbs{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;min-width:0}
.crumbs b{color:var(--text);font-weight:600}
.crumbs .sep{opacity:.4}
.cx-top .spacer{flex:1}
.kbd{font:500 11px var(--mono);border:1px solid var(--line2);border-bottom-width:2px;border-radius:6px;padding:1px 6px;color:var(--muted);background:#d8c5fd08}
.search-btn{display:flex;align-items:center;gap:10px;min-width:240px;padding:7px 10px 7px 12px;border-radius:10px;border:1px solid var(--line);background:#d8c5fd07;color:var(--faint);cursor:pointer;font-size:13px;transition:border-color .15s}
.search-btn:hover{border-color:var(--line2);color:var(--muted)}
.search-btn svg{width:15px;height:15px}
.search-btn .kbd{margin-left:auto}
.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:30px;border:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap}
.dot{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px #9ff0c31f;flex-shrink:0}
.dot.warn{background:var(--warn);box-shadow:0 0 0 3px #ffd59a1f}.dot.bad{background:var(--bad);box-shadow:0 0 0 3px #ff9fb01f}.dot.off{background:var(--faint);box-shadow:none}
.dot.live{animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px #9ff0c31f}50%{box-shadow:0 0 0 6px #9ff0c308}}
.menu-btn{display:none}

.page{padding:30px 32px 80px;max-width:1240px;width:100%}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.page-head h1{margin:0;font-size:30px;line-height:1.1;letter-spacing:-.04em;font-weight:600}
.page-head p{margin:8px 0 0;color:var(--muted);max-width:640px}
.eyebrow{font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lavender);margin:0 0 8px}
.actions{display:flex;gap:10px;flex-wrap:wrap}

/* ---------- buttons, badges ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:10px;border:1px solid var(--line2);background:#d8c5fd0a;color:var(--text);font-weight:600;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}
.btn:hover{background:#d8c5fd16;border-color:#d8c5fd4d}
.btn svg{width:15px;height:15px}
.btn.primary{background:var(--gradient);color:#1d1229;border-color:transparent}
.btn.primary:hover{filter:brightness(1.06);box-shadow:0 6px 24px #d8c5fd2e}
.btn.danger{color:var(--bad);border-color:#ff9fb040;background:#ff9fb00a}
.btn.danger:hover{background:#ff9fb018}
.btn.ghost{border-color:transparent;background:none}
.btn.ghost:hover{background:#d8c5fd10}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:8px}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;box-shadow:none}
.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:20px;font:500 11px var(--mono);letter-spacing:.02em;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.badge.live{color:var(--good);border-color:#9ff0c340;background:#9ff0c30c}
.badge.test{color:var(--warn);border-color:#ffd59a40;background:#ffd59a0c}
.badge.off{color:var(--faint)}
.badge.bad{color:var(--bad);border-color:#ff9fb040;background:#ff9fb00c}
.badge.info{color:var(--info);border-color:#a9d2ff40;background:#a9d2ff0c}
.badge.role{color:var(--lavender);border-color:#d8c5fd40;background:#d8c5fd0c}

/* ---------- cards ---------- */
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-main{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start}
.card{border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,#18151e,#141118);padding:20px;min-width:0}
.card.flush{padding:0;overflow:hidden}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.card.flush .card-head{padding:18px 20px 0;margin-bottom:12px}
.card h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}
.card h2 small{font-weight:500;color:var(--muted);font-size:12.5px;margin-left:8px}
.card .sub{color:var(--muted);font-size:12.5px;margin:3px 0 0}
.stat{position:relative;overflow:hidden}
.stat .label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12.5px;font-weight:500}
.stat .label svg{width:15px;height:15px;color:var(--lavender)}
.stat .value{font-size:28px;font-weight:600;letter-spacing:-.035em;margin:10px 0 2px;line-height:1.1}
.stat .value small{font-size:14px;color:var(--muted);font-weight:500;letter-spacing:0;margin-left:4px}
.stat .foot{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;flex-wrap:wrap}
.stat .spark{position:absolute;right:16px;top:16px;opacity:.9}
.delta{font:500 11.5px var(--mono);padding:1px 6px;border-radius:6px}
.delta.up{color:var(--good);background:#9ff0c312}.delta.down{color:var(--bad);background:#ff9fb012}.delta.flat{color:var(--muted);background:#d8c5fd0d}
.muted{color:var(--muted)}.faint{color:var(--faint)}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}

/* ---------- tables ---------- */
.tbl-wrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{text-align:left;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:10px 20px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:12px 20px;border-bottom:1px solid #d8c5fd10;vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover{background:#d8c5fd06}
.tbl tr.clickable{cursor:pointer}
.tbl tr.open{background:#d8c5fd08}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .name b{font-weight:600}
.tbl .name span{display:block;font:12px var(--mono);color:var(--faint);margin-top:2px}
.tbl td.detail{padding:0;background:#0f0d14}
.bar{height:6px;border-radius:6px;background:#d8c5fd14;overflow:hidden;min-width:60px}
.bar i{display:block;height:100%;border-radius:6px;background:var(--gradient)}
.empty{display:grid;place-items:center;text-align:center;gap:10px;padding:40px 20px;color:var(--muted)}
.empty svg{width:28px;height:28px;color:var(--lavender);opacity:.7}
.empty b{color:var(--text);font-size:14px}

/* ---------- charts ---------- */
.chart{position:relative}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart .gridline{stroke:#d8c5fd14;stroke-dasharray:2 4}
.chart .axis{fill:var(--faint);font:10.5px var(--mono)}
.chart rect.hit{fill:transparent;cursor:crosshair}
.chart .tip{position:absolute;pointer-events:none;z-index:5;min-width:170px;background:#221d2a;border:1px solid var(--line2);border-radius:10px;padding:10px 12px;font-size:12px;box-shadow:0 10px 30px #0008;transform:translate(-50%,-100%);margin-top:-10px}
.chart .tip b{display:block;margin-bottom:6px;font-size:12px}
.chart .tip div{display:flex;align-items:center;gap:8px;color:var(--muted);margin-top:3px}
.chart .tip div span:last-child{margin-left:auto;color:var(--text);font-family:var(--mono)}
.legend{display:flex;gap:6px;flex-wrap:wrap}
.legend button{display:inline-flex;align-items:center;gap:7px;padding:4px 9px;border-radius:20px;border:1px solid var(--line);background:none;cursor:pointer;font-size:12px;color:var(--muted);transition:all .15s}
.legend button[aria-pressed=false]{opacity:.45}
.legend i,.sw{width:9px;height:9px;border-radius:3px;display:inline-block;flex-shrink:0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px;background:#0f0d14}
.seg button{border:0;background:none;padding:4px 10px;border-radius:7px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
.seg button[aria-pressed=true]{background:#d8c5fd1a;color:var(--text)}
.ring{display:block}

/* ---------- forms, dialogs, toasts ---------- */
.field{display:grid;gap:6px}
.field label{font-size:12.5px;font-weight:600;color:#d9d0e3}
.field .hint{font-size:12px;color:var(--faint)}
.input,select.input,textarea.input{width:100%;padding:9px 12px;border-radius:10px;border:1px solid var(--line2);background:#0f0d14;color:var(--text);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}
.input:focus{border-color:var(--lavender);box-shadow:0 0 0 3px #d8c5fd22}
.input-icon{position:relative}.input-icon svg{position:absolute;left:11px;top:50%;width:15px;height:15px;transform:translateY(-50%);color:var(--faint)}.input-icon .input{padding-left:34px}
.dlg-back{position:fixed;inset:0;z-index:60;background:#07060acc;backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;animation:fade .15s}
.dlg{width:min(520px,100%);border:1px solid var(--line2);border-radius:18px;background:#19151f;box-shadow:0 30px 80px #000b;padding:24px;animation:pop .18s ease-out}
.dlg.wide{width:min(680px,100%)}
.dlg h3{margin:0 0 6px;font-size:18px;letter-spacing:-.02em}
.dlg p{color:var(--muted);margin:0 0 16px}
.dlg .row{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}
@keyframes fade{from{opacity:0}}@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.98)}}
.secret{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid #9ff0c340;background:#9ff0c30a;font:500 13.5px var(--mono);word-break:break-all}
.secret span{flex:1;user-select:all}
.callout{display:flex;gap:10px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#d8c5fd08;font-size:12.5px;color:var(--muted)}
.callout svg{width:16px;height:16px;flex-shrink:0;margin-top:1px;color:var(--lavender)}
.callout.warn{border-color:#ffd59a33;background:#ffd59a08}.callout.warn svg{color:var(--warn)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;cursor:pointer}
.check input{accent-color:#d8c5fd;width:16px;height:16px;margin-top:2px}
.toasts{position:fixed;right:20px;bottom:20px;z-index:80;display:grid;gap:10px}
.toast{display:flex;align-items:center;gap:10px;min-width:260px;max-width:380px;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:#221d2a;box-shadow:0 12px 30px #0009;font-size:13px;animation:pop .2s}
.toast svg{width:16px;height:16px;flex-shrink:0;color:var(--good)}.toast.err svg{color:var(--bad)}

/* ---------- code ---------- */
.code{border:1px solid var(--line);border-radius:12px;background:#0c0b10;overflow:hidden}
.code-top{display:flex;align-items:center;gap:4px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line);background:#121017}
.code-top .tabs{display:flex;gap:2px}
.code-top .tabs button{border:0;background:none;padding:5px 10px;border-radius:7px;font:500 12px var(--mono);color:var(--faint);cursor:pointer}
.code-top .tabs button[aria-pressed=true]{background:#d8c5fd14;color:var(--text)}
.code-top .label{font:500 11.5px var(--mono);color:var(--faint)}
.code-top .copy{margin-left:auto}
.code pre{margin:0;padding:14px 16px;overflow:auto;font:12.5px/1.65 var(--mono);color:#e6dff0;max-height:420px}
.code .k{color:#d8c5fd}.code .s{color:#9ff0c3}.code .n{color:#ffd59a}.code .c{color:#7d7389}

/* ---------- palette ---------- */
.pal-back{position:fixed;inset:0;z-index:70;background:#07060aaa;backdrop-filter:blur(3px);display:flex;justify-content:center;padding-top:12vh;animation:fade .12s}
.pal{width:min(600px,calc(100% - 32px));height:max-content;border:1px solid var(--line2);border-radius:16px;background:#1a1620;box-shadow:0 30px 80px #000c;overflow:hidden;animation:pop .15s}
.pal input{width:100%;padding:16px 18px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);font:500 15px var(--sans);outline:none}
.pal ul{list-style:none;margin:0;padding:6px;max-height:360px;overflow:auto}
.pal li{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:9px;cursor:pointer;color:#d6cde0}
.pal li svg{width:16px;height:16px;color:var(--faint)}
.pal li[aria-selected=true]{background:#d8c5fd16;color:var(--text)}
.pal li[aria-selected=true] svg{color:var(--lavender)}
.pal li small{margin-left:auto;color:var(--faint);font-size:11.5px}
.pal .grp{padding:8px 12px 4px;font:500 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}

/* ---------- pieces ---------- */
.steps{display:grid;gap:4px}
.step{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px}
.step:hover{background:#d8c5fd08}
.step .tick{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line2);flex-shrink:0;color:#16101f}
.step.done .tick{background:var(--good);border-color:var(--good)}
.step.done .t{color:var(--muted);text-decoration:line-through;text-decoration-color:#ada4b955}
.step .tick svg{width:13px;height:13px}
.step a.go{margin-left:auto;color:var(--lavender);font-size:12.5px;font-weight:600}
.progress{height:6px;border-radius:6px;background:#d8c5fd14;overflow:hidden}
.progress i{display:block;height:100%;background:var(--gradient);border-radius:6px;transition:width .4s}
.feed{display:grid}
.feed-row{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid #d8c5fd10;align-items:flex-start}
.feed-row:last-child{border-bottom:0}
.feed-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#d8c5fd10;color:var(--lavender);flex-shrink:0}
.feed-ic svg{width:15px;height:15px}
.feed-ic.good{background:#9ff0c312;color:var(--good)}.feed-ic.bad{background:#ff9fb012;color:var(--bad)}.feed-ic.warn{background:#ffd59a12;color:var(--warn)}
.feed-row .what{font-size:13px}.feed-row .what b{font-weight:600}
.feed-row .meta{font-size:12px;color:var(--faint);margin-top:2px}
.feed-row time{margin-left:auto;font-size:12px;color:var(--faint);white-space:nowrap}
.kv{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:10px 22px;font-size:13px}
.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0;word-break:break-word}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{padding:5px 11px;border-radius:20px;border:1px solid var(--line);background:none;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
.chips button[aria-pressed=true]{background:#d8c5fd16;color:var(--text);border-color:var(--line2)}
.stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.stepper div{padding:12px;border-radius:12px;border:1px solid var(--line);background:#d8c5fd05}
.stepper b{display:flex;align-items:center;gap:8px;font-size:13px}
.stepper b span{font:500 11px var(--mono);color:var(--lavender)}
.stepper p{margin:6px 0 0;font-size:12px;color:var(--muted)}
.limits{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.limits div{padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#0f0d14}
.limits span{display:block;font-size:11.5px;color:var(--faint);text-transform:capitalize}
.limits b{font:600 15px var(--mono)}
.limits small{color:var(--faint);font-size:11px}
.terms-box{max-height:52vh;overflow:auto;padding:4px 22px 4px 0}
.terms-box h2{font-size:15px;margin:22px 0 6px}
.terms-box p{color:var(--muted);line-height:1.65;margin:0 0 10px;font-size:13.5px}
.ok-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;border:1px solid #9ff0c333;background:#9ff0c30a;font-size:13px;color:#cdf6df}
.ok-banner svg{width:16px;height:16px;color:var(--good)}

/* ---------- responsive ---------- */
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:1fr}.stepper,.limits{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){
  .cx{grid-template-columns:1fr}
  .cx-side{position:fixed;inset:0 auto 0 0;z-index:50;width:min(300px,86vw);transform:translateX(-102%);transition:transform .22s ease;box-shadow:20px 0 60px #000a}
  .cx-side.open{transform:none}
  .cx-scrim{position:fixed;inset:0;z-index:45;background:#07060a99}
  .menu-btn{display:inline-grid}
  .cx-top{padding:10px 16px}
  .search-btn{min-width:0}.search-btn span,.search-btn .kbd{display:none}
  .cx-top .pill{display:none}
  .page{padding:22px 16px 70px}
  .g2,.g3{grid-template-columns:1fr}
  .page-head h1{font-size:25px}
  .tbl th,.tbl td{padding:10px 14px}
  .card.flush .card-head{padding:16px 16px 0}
  .stepper,.limits{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:520px){.g4{grid-template-columns:1fr}.stat .spark{display:none}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:10px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:860px){.pg-row{grid-template-columns:1fr!important}.pg-row .icon-btn{justify-self:start}}

/* ---------- first run ---------- */
.onboard{position:relative;overflow:hidden;padding:28px;background:radial-gradient(700px 260px at 90% -20%,#50279255,transparent),linear-gradient(180deg,#1b1722,#141118)}
.onboard h2{font-size:22px;letter-spacing:-.03em}
.onboard-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
.ob{border:1px solid var(--line);border-radius:14px;padding:18px;background:#0f0d14b3;display:flex;flex-direction:column;gap:10px;min-width:0}
.ob.done{border-color:#9ff0c340}
.ob.now{border-color:#d8c5fd66;box-shadow:0 0 0 1px #d8c5fd22,0 10px 40px #50279233}
.ob-n{display:flex;align-items:center;gap:10px;font-weight:600}
.ob-n span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:600 12px var(--mono);border:1.5px solid var(--line2);color:var(--lavender)}
.ob.done .ob-n span{background:var(--good);border-color:var(--good);color:#16101f}
.ob.done .ob-n span svg{width:14px;height:14px}
.ob p{margin:0;color:var(--muted);font-size:12.5px}
.ob .code pre{font-size:11.5px;max-height:none}
.waiting{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--lavender)}
.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.product{display:flex;flex-direction:column;gap:10px}
.product .ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#d8c5fd12;color:var(--lavender)}
.product .ic svg{width:19px;height:19px}
.product h3{margin:0;font-size:16px}
.product p{margin:0;color:var(--muted);font-size:13px;flex:1}
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:6px}
.how div{padding:14px;border-radius:12px;border:1px solid var(--line);background:#0f0d14}
.how b{display:flex;gap:8px;align-items:center;font-size:13px}.how b span{font:500 11px var(--mono);color:var(--lavender)}
.how p{margin:6px 0 0;font-size:12.5px;color:var(--muted)}
@media (max-width:1100px){.onboard-steps,.products,.how{grid-template-columns:1fr}}

/* ---------- operator cockpit (/admin): warm accent so it never reads as a customer's view ---------- */
.cx.admin .cx-side{background:linear-gradient(180deg,#1a1512,#100d0c);border-right-color:#fff2d922}
.cx.admin .cx-mark{background:linear-gradient(115deg,#fff2d9,#ffd59a)}
.cx.admin .cx-org .av{background:#6b4a1f;color:var(--cream)}
.cx.admin .cx-nav a[aria-current=page]{background:#fff2d914;box-shadow:inset 2px 0 0 var(--cream)}
.cx.admin .cx-nav a[aria-current=page] svg{color:var(--cream)}
.cx.admin .eyebrow{color:var(--cream)}
.cx.admin .cx-top{border-bottom-color:#fff2d91c}
.badge.staff{color:var(--cream);border-color:#fff2d945;background:#fff2d90d}
.lens{display:inline-flex;align-items:center;gap:6px;font:500 11px var(--mono);padding:2px 8px;border-radius:20px}
.lens.ext{color:var(--info);background:#a9d2ff12;border:1px solid #a9d2ff33}
.lens.int{color:#f0a6e0;background:#f0a6e012;border:1px solid #f0a6e033}

.tbl .name span.badge{display:inline-flex;margin-top:0;font-size:10.5px;padding:1px 6px;vertical-align:1px}

/* THE PUBLIC PAGES of developer.moonyversal.com (2026-10-07): home, sign-in, request, terms. Same tokens as the console. */
.dv{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1100px 520px at 50% -12%,#50279230,transparent),var(--bg)}
.dv-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid var(--line);background:#09090bf0}
.dv-brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:600;font-size:17px;letter-spacing:-.02em;text-decoration:none}
.dv-brand img{width:32px;height:32px;border-radius:8px;display:block}
.dv-brand span{color:var(--lavender);font-weight:500}
.dv-bar nav{display:flex;align-items:center;gap:8px}
.dv-main{flex:1;width:min(1040px,100%);margin:0 auto;padding:56px 24px 40px}
.dv-hero h1{font-size:clamp(36px,5vw,56px);letter-spacing:-.05em;line-height:1.04;margin:10px 0 14px}
.dv-hero p{color:var(--muted);font-size:17px;line-height:1.6;max-width:600px;margin:0}
.dv-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.dv-apis{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:44px}
.dv-api{display:flex;flex-direction:column;gap:10px}
.dv-api h3{margin:0;font-size:18px;display:flex;align-items:center;gap:10px}
.dv-api p{margin:0;color:var(--muted);line-height:1.55;font-size:14px}
.dv-api .links{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.dv-api.soon{border-style:dashed;opacity:.85}
.dv-narrow{width:min(560px,100%);margin:0 auto}
.dv-foot{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;padding:22px 24px 28px;color:var(--faint);font-size:13px;border-top:1px solid var(--line)}
.dv-foot a{color:var(--muted);text-decoration:none}.dv-foot a:hover{color:var(--text)}
.dv-form{display:grid;gap:14px;margin-top:20px}
.dv-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dv-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.dv-terms h2{font-size:17px;margin:22px 0 6px}.dv-terms p{color:var(--muted);line-height:1.65;margin:0 0 8px}
@media (max-width:600px){.dv-bar{padding:12px 16px}.dv-main{padding:36px 16px 28px}.dv-form .row2{grid-template-columns:1fr}.dv-bar nav .wide{display:none}}

/* Sign-in steps (2026-10-08): a centered confirmation card with a status mark, one call to action. */
.dv-confirm{padding:38px 34px 30px;text-align:center}
.dv-confirm h1{font-size:32px;letter-spacing:-.04em;line-height:1.1;margin:6px 0 12px}
.dv-confirm .muted{margin:0 auto;max-width:420px;line-height:1.6}
.dv-confirm .muted b{color:var(--text);font-weight:600;word-break:break-word}
.dv-confirm .eyebrow{margin-top:18px}
.dv-confirm-mark{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;margin:0 auto}
.dv-confirm-mark.good{background:#3ee08f1a;color:#3ee08f;box-shadow:inset 0 0 0 1px #3ee08f40,0 12px 36px -14px #3ee08f80}
.dv-confirm-mark.warn{background:#ffd59a14;color:#ffd59a;box-shadow:inset 0 0 0 1px #ffd59a3d}
.dv-confirm-mark.mail{background:#d8c5fd14;color:var(--lavender);box-shadow:inset 0 0 0 1px #d8c5fd3d,0 12px 36px -14px #d8c5fd66}
.dv-cta{width:100%;max-width:360px;padding:13px 18px!important;font-size:15px!important;margin-top:24px;gap:10px}
.dv-small{font-size:12.5px;line-height:1.55;max-width:380px;margin:16px auto 0}
.dv-confirm form.dv-inline-form{display:flex;justify-content:center}   /* the one-button forms only (expired link) */
.dv-confirm-logo{display:block;width:60px;height:60px;border-radius:16px;margin:0 auto;box-shadow:0 14px 40px -14px #d8c5fd66}
.dv-signin-form{display:grid;gap:4px;max-width:360px;margin:22px auto 0;text-align:left}
.dv-signin-form .field,.dv-signin-form .input{width:100%}
.dv-signin-form .dv-cta{margin-top:10px;max-width:none}
.dv-alert{max-width:360px;margin:16px auto 0;padding:10px 12px;border-radius:10px;background:#ffd59a12;border:1px solid #ffd59a33;color:#ffd59a;font-size:13.5px;line-height:1.5}
/* The access request in the confirmation style (2026-10-08): a wider card, the form left-aligned under centered copy. */
.dv-request{width:min(620px,100%)}
.dv-request .muted{max-width:480px}
.dv-request-form{max-width:500px;margin:24px auto 0;text-align:left}
.dv-request-form .dv-cta{max-width:none;margin-top:6px}
.dv-request-form .dv-small{text-align:center}
.dv-apis-pick{border:0;padding:0;margin:0;display:grid;gap:8px}
.dv-apis-pick legend{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px;padding:0}
.dv-api-opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:#d8c5fd08;cursor:default}
.dv-api-opt.on{border-color:#d8c5fd55;background:#d8c5fd10}
.dv-api-opt input{accent-color:#d8c5fd;width:16px;height:16px;margin-top:3px}
.dv-api-opt b{display:block;font-size:14px;color:var(--text)}
.dv-api-opt small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.45}
