/* Aegis Console — app shell + database UI. Tokens from assets/tokens.css. */
* { box-sizing:border-box; margin:0; padding:0; }
:root {
  --sans:'Manrope', system-ui, sans-serif;
  --mono:'JetBrains Mono', ui-monospace, monospace;
  --accent:#c2724f; --accent-soft:rgba(194,114,79,.14); --teal:#5cb8af;
  --p-sql:#c2724f; --p-doc:#5cb8af; --p-ts:#d9a441; --p-graph:#9b8cff; --p-kv:#6fae6f; --p-stream:#e07a9b;
}
html[data-theme="dark"] {
  --bg:#0b0c0d; --bg-elev:#131416; --bg-panel:#0f1011; --bg-hover:#1a1c1e; --bg-sink:#0a0b0c;
  --ink:#f1ede2; --ink-soft:#c8c4ba; --ink-mute:#85857f; --ink-dim:#54544e;
  --rule:rgba(241,237,226,.08); --rule-2:rgba(241,237,226,.15);
}
html[data-theme="light"] {
  --bg:#f4f1ea; --bg-elev:#ffffff; --bg-panel:#faf9f6; --bg-hover:#f0ede5; --bg-sink:#efece4;
  --ink:#16171a; --ink-soft:#3a3c40; --ink-mute:#6f6f6a; --ink-dim:#a8a499;
  --rule:rgba(14,15,16,.09); --rule-2:rgba(14,15,16,.15);
}
/* kill the marketing film-grain in the console */
body::before { display:none !important; }
body { background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:13px; line-height:1.45; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
::selection { background:var(--accent); color:#fff; }
.mono { font-family:var(--mono); }
.icn { flex:0 0 auto; vertical-align:middle; }
::-webkit-scrollbar { width:9px; height:9px; } ::-webkit-scrollbar-thumb { background:var(--rule-2); border-radius:6px; } ::-webkit-scrollbar-track { background:transparent; }

/* ── App shell ─────────────────────────────────────────── */
.app { display:grid; grid-template-columns:230px 1fr; grid-template-rows:50px 1fr; height:100vh; }
.topbar { grid-column:1/3; display:flex; align-items:center; gap:14px; padding:0 14px; border-bottom:1px solid var(--rule); background:var(--bg-panel); }
.sidebar { grid-row:2; border-right:1px solid var(--rule); background:var(--bg-panel); overflow-y:auto; display:flex; flex-direction:column; }
.main { grid-row:2; overflow-y:auto; background:var(--bg); }
.content { padding:20px 26px; max-width:1280px; }

/* topbar */
.tb-brand { display:flex; align-items:center; gap:9px; font-weight:600; font-size:14px; letter-spacing:-.01em; }
.tb-brand img { width:22px; height:22px; }
.tb-brand b { color:var(--accent); font-weight:700; }
.tb-brand .v { font-family:var(--mono); font-size:9.5px; color:var(--ink-mute); border:1px solid var(--rule-2); padding:1px 5px; border-radius:5px; margin-left:2px; }
.tb-spacer { flex:1; }
.tb-search { display:flex; align-items:center; gap:8px; background:var(--bg); border:1px solid var(--rule); border-radius:8px; padding:7px 11px; width:300px; color:var(--ink-mute); font-size:12.5px; }
.tb-search span { flex:1; } .tb-search kbd { font-family:var(--mono); font-size:9.5px; border:1px solid var(--rule-2); border-radius:4px; padding:1px 5px; color:var(--ink-mute); }
.iconbtn { background:none; border:1px solid var(--rule); border-radius:8px; width:32px; height:32px; cursor:pointer; color:var(--ink-soft); display:grid; place-items:center; }
.iconbtn:hover { background:var(--bg-hover); color:var(--ink); }
.me { width:32px; height:32px; border-radius:8px; background:var(--accent); color:#fff; display:grid; place-items:center; font-weight:700; font-size:11px; font-family:var(--mono); }

/* org switcher */
.org-wrap { position:relative; }
.org { display:flex; align-items:center; gap:9px; background:var(--bg); border:1px solid var(--rule); border-radius:8px; padding:5px 9px 5px 6px; cursor:pointer; }
.org:hover { border-color:var(--rule-2); }
.av { width:24px; height:24px; border-radius:6px; background:var(--accent); display:grid; place-items:center; color:#fff; font-weight:700; font-size:10px; font-family:var(--mono); flex:0 0 auto; }
.av.sm { width:20px; height:20px; font-size:9px; }
.org-t .nm { font-weight:600; font-size:12.5px; line-height:1.2; } .org-t .rl { font-size:10px; color:var(--ink-mute); font-family:var(--mono); }
.menu { position:absolute; top:46px; left:0; background:var(--bg-elev); border:1px solid var(--rule-2); border-radius:10px; box-shadow:0 18px 44px rgba(0,0,0,.4); padding:5px; min-width:240px; z-index:50; }
.menu .mi { padding:8px 10px; border-radius:7px; cursor:pointer; font-size:12.5px; display:flex; align-items:center; gap:9px; }
.menu .mi:hover { background:var(--bg-hover); } .menu .mi.add { color:var(--ink-mute); }
.menu .mi .sub { font-size:10px; color:var(--ink-mute); font-family:var(--mono); margin-left:auto; }
.menu .sep { height:1px; background:var(--rule); margin:4px 0; }

/* sidebar nav */
.nav { flex:1; padding:8px 10px; }
.nav-sec { margin-bottom:4px; }
.nav-grp { font-family:var(--mono); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-dim); padding:12px 8px 5px; }
.nav-i { display:flex; align-items:center; gap:10px; padding:7px 9px; border-radius:7px; color:var(--ink-soft); cursor:pointer; font-size:12.5px; font-weight:500; position:relative; }
.nav-i .icn { color:var(--ink-mute); transition:color .12s; }
.nav-i:hover { background:var(--bg-hover); color:var(--ink); } .nav-i:hover .icn { color:var(--ink-soft); }
.nav-i.on { background:var(--accent-soft); color:var(--ink); font-weight:600; }
.nav-i.on .icn { color:var(--accent); }
.nav-i.on::before { content:""; position:absolute; left:-10px; top:6px; bottom:6px; width:2.5px; border-radius:0 2px 2px 0; background:var(--accent); }
.nav-i .badge { margin-left:auto; font-family:var(--mono); font-size:9px; letter-spacing:.06em; background:rgba(92,184,175,.16); color:var(--teal); border-radius:4px; padding:1px 6px; }
.side-foot { margin:10px; padding:11px 12px; border:1px solid var(--rule); border-radius:9px; background:var(--bg-sink); }
.sf-top { display:flex; align-items:center; justify-content:space-between; }
.side-foot .pl { font-family:var(--mono); font-size:9px; color:var(--ink-mute); letter-spacing:.12em; }
.side-foot .tier { font-weight:700; font-size:12px; }
.bar { height:5px; background:var(--bg); border-radius:3px; overflow:hidden; margin:8px 0 5px; } .bar > span { display:block; height:100%; background:var(--accent); }
.side-foot .use { font-size:10.5px; color:var(--ink-mute); font-family:var(--mono); }

/* ── Page header ───────────────────────────────────────── */
.ph { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; flex-wrap:wrap; }
.ph .eyebrow { font-family:var(--mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); }
.ph h1 { font-size:19px; letter-spacing:-.015em; font-weight:700; margin-top:5px; }
.ph .sub { color:var(--ink-mute); font-size:12px; margin-top:4px; display:flex; align-items:center; flex-wrap:wrap; gap:2px; }
.ph .sub .mono { color:var(--ink-soft); }
.ph-act { display:flex; gap:8px; align-items:center; }

/* buttons */
.btn { font-family:var(--sans); font-size:12px; font-weight:600; text-transform:none; letter-spacing:normal; border:1px solid var(--rule-2); background:var(--bg-elev); color:var(--ink); padding:6px 11px; border-radius:7px; cursor:pointer; display:inline-flex; align-items:center; gap:7px; transition:all .14s; white-space:nowrap; }
.btn:hover { background:var(--bg-elev); }
.btn .icn { color:var(--ink-mute); }
.btn:hover { border-color:var(--ink-mute); } .btn:hover .icn { color:var(--ink-soft); }
.btn.pri { background:var(--accent); border-color:var(--accent); color:#fff; } .btn.pri .icn { color:#fff; }
.btn.pri:hover { filter:brightness(1.07); }
.btn.sm { padding:5px 9px; font-size:11.5px; }
.btn[disabled] { opacity:.5; cursor:default; }
.btn.sel { -webkit-appearance:none; appearance:none; padding-right:9px; }
.filterbox { display:flex; align-items:center; gap:7px; background:var(--bg-elev); border:1px solid var(--rule-2); border-radius:7px; padding:5px 10px; color:var(--ink-mute); }
.filterbox input { background:none; border:none; outline:none; color:var(--ink); font-family:var(--mono); font-size:11.5px; width:150px; }

/* ── Metric tiles ──────────────────────────────────────── */
.tiles { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:18px; }
.tile { background:var(--bg-elev); border:1px solid var(--rule); border-radius:9px; padding:12px 13px 8px; position:relative; overflow:hidden; }
.tile:hover { border-color:var(--rule-2); }
.tile .k { font-size:11px; color:var(--ink-mute); display:flex; align-items:center; gap:7px; }
.tile .k .dot { width:6px; height:6px; border-radius:50%; background:var(--teal); flex:0 0 auto; }
.tile .v { font-family:var(--mono); font-size:21px; font-weight:600; letter-spacing:-.02em; margin-top:6px; }
.tile .v .u { font-size:11px; color:var(--ink-mute); margin-left:5px; font-weight:500; }
.tile .d { font-size:10.5px; margin-top:5px; color:var(--ink-dim); font-family:var(--mono); }
.tile .d .up { color:var(--p-kv); } .tile .d .dn { color:var(--accent); }
.tile-spark { margin:6px -13px -8px; opacity:.9; }

/* ── Panels / cards ────────────────────────────────────── */
.grid2 { display:grid; grid-template-columns:1.55fr 1fr; gap:14px; }
.panel { background:var(--bg-elev); border:1px solid var(--rule); border-radius:10px; }
.panel-h { display:flex; align-items:center; gap:10px; padding:11px 14px; border-bottom:1px solid var(--rule); }
.panel-h h3 { font-size:12.5px; font-weight:600; } .panel-h .meta { font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); }
.panel-h .panel-act { margin-left:auto; display:flex; gap:8px; align-items:center; }
.panel-b { padding:6px 0; }

/* paradigm chips */
.pchip { font-family:var(--mono); font-size:9.5px; font-weight:600; letter-spacing:.04em; padding:2px 7px; border-radius:5px; text-transform:uppercase; flex:0 0 auto; }
.pchip.sql{background:rgba(194,114,79,.16);color:var(--p-sql)} .pchip.doc{background:rgba(92,184,175,.16);color:var(--p-doc)}
.pchip.ts{background:rgba(217,164,65,.16);color:var(--p-ts)} .pchip.graph{background:rgba(155,140,255,.16);color:var(--p-graph)}
.pchip.kv{background:rgba(111,174,111,.16);color:var(--p-kv)} .pchip.stream{background:rgba(224,122,155,.16);color:var(--p-stream)}

/* paradigm rows (overview) */
.prow { display:flex; align-items:center; gap:11px; padding:9px 14px; border-bottom:1px solid var(--rule); }
.prow:last-child { border-bottom:0; }
.prow .t { flex:1; } .prow .t b { font-weight:600; font-size:12.5px; } .prow .t .d { font-size:10.5px; color:var(--ink-mute); font-family:var(--mono); margin-top:1px; }

/* key/value rows (node engine) */
.kvrow { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 14px; border-bottom:1px solid var(--rule); }
.kvrow:last-child { border-bottom:0; } .kvrow b { font-weight:600; font-size:12.5px; } .kvrow span { font-size:11.5px; color:var(--ink-mute); }

/* ── Tables / explorer ─────────────────────────────────── */
.explorer { display:grid; grid-template-columns:262px 1fr; gap:16px; }
.tree { background:var(--bg-elev); border:1px solid var(--rule); border-radius:10px; overflow:hidden; align-self:start; }
.tree-h { padding:10px 12px; border-bottom:1px solid var(--rule); display:flex; align-items:center; gap:8px; color:var(--ink-mute); }
.tree-search { flex:1; background:none; border:none; outline:none; color:var(--ink); font-size:12px; font-family:var(--mono); }
.tree-grp { font-family:var(--mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-dim); padding:11px 14px 4px; }
.tree-i { display:flex; align-items:center; gap:9px; padding:6px 14px; cursor:pointer; font-size:12.5px; }
.tree-i:hover { background:var(--bg-hover); } .tree-i.on { background:var(--accent-soft); }
.tree-i .nm { flex:1; font-family:var(--mono); } .tree-i .ct { font-family:var(--mono); font-size:10px; color:var(--ink-mute); }

.dgrid { width:100%; border-collapse:collapse; font-size:12.5px; }
.dgrid th { text-align:left; font-family:var(--mono); font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-mute); font-weight:500; padding:7px 12px; border-bottom:1px solid var(--rule-2); position:sticky; top:0; background:var(--bg-elev); }
.dgrid td { padding:6px 12px; border-bottom:1px solid var(--rule); font-family:var(--mono); font-size:11px; white-space:nowrap; }
.dgrid tr:hover td { background:var(--bg-hover); }
.dgrid .pk { color:var(--accent); } .dgrid .null { color:var(--ink-dim); font-style:italic; } .dgrid .num { color:var(--teal); } .dgrid .bool { color:var(--p-graph); }
.dgrid .act { color:var(--accent); } .dgrid .dim { color:var(--ink-dim); }
.tbl-toolbar { display:flex; align-items:center; gap:8px; padding:10px 12px; border-bottom:1px solid var(--rule); flex-wrap:wrap; }
.tbl-meta { margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); }
.tbl-scroll { overflow:auto; max-height:60vh; }
.av-sm { width:22px; height:22px; border-radius:6px; background:var(--accent-soft); color:var(--accent); display:inline-grid; place-items:center; font-weight:700; font-size:9.5px; }
.mem { display:flex; align-items:center; }
.rchip { font-family:var(--mono); font-size:10px; padding:2px 8px; border-radius:5px; background:var(--bg-sink); border:1px solid var(--rule-2); color:var(--ink-soft); }

/* status pills */
.pill { font-family:var(--mono); font-size:10.5px; padding:2px 8px; border-radius:6px; display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.pill .dot { width:6px; height:6px; border-radius:50%; flex:0 0 auto; }
.pill.ok { background:rgba(111,174,111,.14); color:var(--p-kv); } .pill.ok .dot{background:var(--p-kv); animation:pulse 1.8s infinite}
.pill.warn { background:rgba(217,164,65,.14); color:var(--p-ts); } .pill.warn .dot{background:var(--p-ts)}
.pill.crit { background:rgba(194,114,79,.16); color:var(--accent); } .pill.crit .dot{background:var(--accent)}
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

/* activity feed */
.feed { padding:4px 0; } .feed-i { display:flex; gap:11px; padding:9px 14px; border-bottom:1px solid var(--rule); align-items:center; }
.feed-i:last-child{border-bottom:0} .feed-i .ic { width:30px; height:30px; border-radius:8px; display:grid; place-items:center; background:var(--bg-sink); border:1px solid var(--rule); color:var(--ink-mute); flex:0 0 auto; }
.feed-i .tx { flex:1; } .feed-i .tx b{font-weight:600; font-size:12.5px} .feed-i .tx .sub{font-size:10.5px; color:var(--ink-mute); font-family:var(--mono); margin-top:1px}
.feed-i .tm { font-family:var(--mono); font-size:10.5px; color:var(--ink-dim); }

/* security / feature rows */
.srow { display:flex; align-items:center; gap:12px; padding:11px 14px; border-bottom:1px solid var(--rule); }
.srow:last-child{border-bottom:0} .srow .ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:0 0 auto}
.srow .t{flex:1} .srow .t b{font-weight:600;font-size:13px} .srow .t .d{font-size:11.5px;color:var(--ink-mute);margin-top:2px}

.empty { padding:46px; text-align:center; color:var(--ink-mute); font-family:var(--mono); font-size:12px; }
@media (max-width:1100px){ .tiles{grid-template-columns:repeat(2,1fr)} .grid2{grid-template-columns:1fr} .explorer{grid-template-columns:1fr} .charts{grid-template-columns:1fr} }

/* ── Query workbench ───────────────────────────────────── */
.qpage { display:grid; grid-template-columns:228px 1fr; gap:16px; }
.qrail { background:var(--bg-elev); border:1px solid var(--rule); border-radius:10px; overflow:hidden; align-self:start; padding-bottom:8px; }
.qrail-grp { font-family:var(--mono); font-size:8.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim); padding:12px 12px 4px; }
.qi { display:flex; align-items:center; gap:8px; padding:5px 12px; font-size:11px; cursor:pointer; color:var(--ink-soft); }
.qi .icn { color:var(--ink-mute); } .qi:hover { background:var(--bg-hover); color:var(--ink); }
.qi .nm { flex:1; font-family:var(--mono); } .qi .nm.trunc { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.qi .ct { font-family:var(--mono); font-size:9.5px; color:var(--ink-dim); flex:0 0 auto; }
.qwork { display:flex; flex-direction:column; gap:14px; min-width:0; }
.qframe { background:var(--bg-elev); border:1px solid var(--rule); border-radius:10px; overflow:hidden; }
.qtabs { display:flex; align-items:center; gap:2px; padding:7px 9px 0; border-bottom:1px solid var(--rule); background:var(--bg-panel); }
.qtab { padding:7px 13px; font-size:12px; font-family:var(--mono); color:var(--ink-mute); border:1px solid transparent; border-bottom:none; border-radius:7px 7px 0 0; cursor:pointer; }
.qtab.on { background:var(--bg-elev); color:var(--ink); border-color:var(--rule); border-bottom:1px solid var(--bg-elev); margin-bottom:-1px; }
.qtab .x { margin-left:8px; color:var(--ink-dim); } .qtab.add { color:var(--ink-mute); }
.qed { display:flex; background:var(--bg-panel); }
.qgutter { font-family:var(--mono); font-size:11px; line-height:1.7; padding:12px 9px 12px 14px; color:var(--ink-dim); text-align:right; user-select:none; border-right:1px solid var(--rule); }
.qta { flex:1; font-family:var(--mono); font-size:11px; line-height:1.7; padding:12px 14px; color:var(--ink); background:var(--bg-panel); border:none; outline:none; resize:vertical; min-height:120px; white-space:pre; }
.qrun { display:flex; align-items:center; gap:8px; padding:9px 13px; border-top:1px solid var(--rule); background:var(--bg-elev); }
.qrun .hint { margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); }
.qlang { background:var(--bg); border:1px solid var(--rule-2); color:var(--ink); border-radius:7px; padding:5px 9px; font-size:11.5px; font-family:var(--mono); cursor:pointer; }
.rtabs { display:flex; gap:16px; padding:0 14px; border-bottom:1px solid var(--rule); align-items:center; }
.rtab { padding:9px 0; font-size:11px; font-weight:600; color:var(--ink-mute); border-bottom:2px solid transparent; cursor:pointer; }
.rtab.on { color:var(--ink); border-bottom-color:var(--accent); }
.rtab .n { font-family:var(--mono); font-size:9.5px; color:var(--ink-dim); margin-left:5px; }
.rmeta { margin-left:auto; font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); display:flex; align-items:center; gap:7px; }
.plan { font-family:var(--mono); font-size:11px; line-height:1.9; padding:13px 15px; }
.qframe .dgrid td { font-size:11px; } .qframe .dgrid th { font-size:9px; }
.plan .node { color:var(--accent); } .plan .cost { color:var(--ink-mute); } .plan .tree { color:var(--ink-dim); }
.plan .plan-foot, .plan-foot { color:var(--ink-mute); margin-top:8px; }

/* ── Charts ────────────────────────────────────────────── */
.charts { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.chart-c { padding:8px 10px 10px; }

/* node gauges */
.gauges { display:flex; gap:6px; padding:8px 6px 4px; }
.gauge { flex:1; text-align:center; }
.gauge-lbl { font-size:11px; color:var(--ink-mute); font-family:var(--mono); margin-top:-6px; }

/* ── Schema cards ──────────────────────────────────────── */
.sgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:14px; }
.scard { background:var(--bg-elev); border:1px solid var(--rule); border-radius:10px; overflow:hidden; }
.scard-h { display:flex; align-items:center; gap:9px; padding:11px 14px; border-bottom:1px solid var(--rule); }
.scard-h .nm { font-weight:600; font-family:var(--mono); font-size:12.5px; } .scard-h .ct{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--ink-mute)}
.scol { display:flex; align-items:center; gap:10px; padding:7px 14px; border-bottom:1px solid var(--rule); font-family:var(--mono); font-size:12px; }
.scol:last-child{border-bottom:0} .scol .cn{flex:1} .scol .ty{color:var(--teal);font-size:10.5px}
.scol .ix{font-size:8.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--rule-2);border-radius:4px;padding:0 5px}
.scol .ix.pk{color:var(--accent);border-color:rgba(194,114,79,.4)} .scol .cn.key{color:var(--accent)}

/* ── Stream tail ───────────────────────────────────────── */
.tail { font-family:var(--mono); font-size:12px; padding:4px 0; max-height:62vh; overflow:auto; }
.trow { display:flex; gap:14px; padding:6px 16px; border-bottom:1px solid var(--rule); align-items:center; }
.trow.new { animation:flash 1s ease; } @keyframes flash { from{background:var(--accent-soft)} to{background:transparent} }
.trow .ts { color:var(--ink-dim); } .trow .ch { color:var(--p-stream); width:78px; } .trow .pl { flex:1; color:var(--ink-soft); }

/* ── Modal / toast / palette ───────────────────────────── */
.modal-ov { position:fixed; inset:0; z-index:200; background:rgba(0,0,0,.55); display:grid; place-items:flex-start center; padding-top:10vh; backdrop-filter:blur(2px); }
.modal { width:100%; max-width:460px; background:var(--bg-elev); border:1px solid var(--rule-2); border-radius:12px; box-shadow:0 24px 60px rgba(0,0,0,.5); overflow:hidden; }
.modal.wide { max-width:680px; }
.modal-h { display:flex; align-items:flex-start; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--rule); }
.modal-h h3 { font-size:14px; font-weight:600; } .modal-sub { font-size:11.5px; color:var(--ink-mute); margin-top:2px; }
.modal-x { background:none; border:none; color:var(--ink-mute); font-size:20px; line-height:1; cursor:pointer; padding:0 2px; }
.modal-x:hover { color:var(--ink); }
.modal-b { padding:16px; }
.modal-foot { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
.modal-b label { display:block; font-size:11px; font-weight:600; color:var(--ink-soft); margin:0 0 5px; }
.modal-b .auth-in { margin-bottom:12px; }
.toast { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:300; display:flex; align-items:center; gap:8px;
  background:var(--bg-elev); border:1px solid var(--rule-2); border-radius:9px; padding:10px 16px; font-size:12.5px; box-shadow:0 12px 36px rgba(0,0,0,.4); animation:toastin .2s ease; }
.toast .icn { color:var(--p-kv); } .toast.warn .icn { color:var(--p-ts); } .toast.err .icn { color:var(--accent); }
@keyframes toastin { from{opacity:0;transform:translate(-50%,8px)} to{opacity:1;transform:translate(-50%,0)} }
.palette { width:100%; max-width:560px; background:var(--bg-elev); border:1px solid var(--rule-2); border-radius:12px; box-shadow:0 24px 60px rgba(0,0,0,.5); overflow:hidden; }
.palette-in { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--rule); color:var(--ink-mute); }
.palette-in input { flex:1; background:none; border:none; outline:none; color:var(--ink); font-size:14px; font-family:var(--sans); }
.palette-in kbd { font-family:var(--mono); font-size:9.5px; border:1px solid var(--rule-2); border-radius:4px; padding:1px 5px; }
.palette-list { max-height:50vh; overflow:auto; padding:6px; }
.palette-i { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:7px; cursor:pointer; font-size:13px; }
.palette-i:hover { background:var(--bg-hover); } .palette-i .icn { color:var(--ink-mute); } .palette-i .nm { flex:1; } .palette-i .ty { font-family:var(--mono); font-size:10px; color:var(--ink-dim); }
.tb-search { font-family:var(--sans); }

/* ── Auth / login screen ───────────────────────────────── */
.auth { min-height:100vh; display:grid; place-items:center; background:var(--bg); padding:24px;
  background-image:radial-gradient(circle at 50% 0%, rgba(194,114,79,.07), transparent 60%); }
.auth-card { width:100%; max-width:380px; background:var(--bg-elev); border:1px solid var(--rule); border-radius:14px; padding:30px 30px 22px; }
.auth-brand { display:flex; align-items:center; justify-content:center; gap:10px; }
.auth-brand img { height:46px; width:auto; }
.auth-word { font-size:19px; font-weight:600; letter-spacing:-.015em; } .auth-word b { color:var(--accent); font-weight:700; }
.auth-v { font-family:var(--mono); font-size:9.5px; color:var(--ink-mute); border:1px solid var(--rule-2); padding:1px 5px; border-radius:5px; }
.auth-sub { text-align:center; color:var(--ink-mute); font-size:12.5px; margin:8px 0 22px; }
.auth-form { display:flex; flex-direction:column; }
.auth-form label { font-size:11px; font-weight:600; color:var(--ink-soft); margin:0 0 5px; }
.auth-in { background:var(--bg); border:1px solid var(--rule-2); border-radius:8px; padding:9px 11px; color:var(--ink); font-size:13px; font-family:var(--sans); outline:none; margin-bottom:13px; width:100%; }
.auth-in:focus { border-color:var(--accent); }
.auth-pass { position:relative; }
.auth-pass .auth-in { margin-bottom:13px; padding-right:38px; }
.auth-eye { position:absolute; right:8px; top:8px; background:none; border:none; cursor:pointer; color:var(--ink-mute); padding:3px; display:grid; place-items:center; }
.auth-eye:hover { color:var(--ink); }
.auth-err { background:rgba(194,114,79,.12); border:1px solid rgba(194,114,79,.3); color:var(--accent); font-size:11.5px; border-radius:7px; padding:7px 10px; margin-bottom:13px; }
.auth-submit { width:100%; justify-content:center; padding:9px; font-size:13px; margin-top:2px; }
.auth-div { display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--ink-dim); font-size:11px; font-family:var(--mono); }
.auth-div::before, .auth-div::after { content:""; flex:1; height:1px; background:var(--rule); }
.auth-google { width:100%; justify-content:center; gap:9px; padding:9px; font-size:12.5px; }
.auth-google .gg { display:inline-grid; place-items:center; }
.auth-alt { text-align:center; font-size:12.5px; color:var(--ink-soft); margin-top:16px; }
.auth-alt button { background:none; border:none; color:var(--accent); cursor:pointer; font-weight:600; font-size:12.5px; font-family:var(--sans); }
.auth-foot { text-align:center; font-size:10.5px; color:var(--ink-mute); margin-top:14px; }

/* ── Console landing (NEHE-style: marketing page → auth modal) ── */
.cl { min-height:100vh; background:var(--bg); color:var(--ink); display:flex; flex-direction:column; }
.cl-nav { position:sticky; top:0; z-index:40; display:flex; align-items:center; gap:22px;
  padding:0 clamp(18px,4vw,46px); height:60px; background:color-mix(in srgb,var(--bg) 86%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--rule); }
.cl-brand { display:flex; align-items:center; gap:10px; font-size:17px; font-weight:600; letter-spacing:-.015em; color:var(--ink); text-decoration:none; }
.cl-brand img { height:34px; width:auto; }
.cl-brand b { font-weight:800; }
.cl-links { display:flex; gap:22px; margin-left:8px; }
.cl-links a { font-size:13px; color:var(--ink-soft); text-decoration:none; font-weight:500; }
.cl-links a:hover { color:var(--ink); }
.cl-nav-cta { margin-left:auto; display:flex; align-items:center; gap:10px; }
.cl-ghost { background:transparent; border:1px solid var(--rule-2); color:var(--ink); border-radius:8px;
  padding:7px 14px; font-size:12.5px; font-weight:600; font-family:var(--sans); cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:7px; }
.cl-ghost:hover { border-color:var(--ink-mute); }
.cl-cta { background:linear-gradient(100deg,#3f8e8a,#b27c64); border:none; color:#fff; border-radius:8px;
  padding:8px 16px; font-size:12.5px; font-weight:700; font-family:var(--sans); cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.cl-cta:hover { filter:brightness(1.07); }
.cl-cta.lg, .cl-ghost.lg { padding:11px 20px; font-size:13.5px; }

.cl-hero { position:relative; overflow:hidden; background:#0c0d0f; color:#f3efe4; padding:clamp(56px,9vw,120px) clamp(18px,4vw,46px); }
.cl-hero::before { content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(90% 80% at 8% 0%, rgba(0,168,168,.30), transparent 50%),
             radial-gradient(90% 90% at 100% 100%, rgba(194,113,79,.38), transparent 52%); }
.cl-hero-grain { position:absolute; inset:0; z-index:0; opacity:.05; mix-blend-mode:screen; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cl-hero-in { position:relative; z-index:1; max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px,4vw,56px); align-items:center; }
.cl-hero-l { min-width:0; }
.cl-eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:.22em; color:rgba(243,239,228,.55); margin-bottom:20px; }
.cl-eyebrow.dark { color:var(--accent); }
.cl-hero-r { min-width:0; }
.cl-preview { border:1px solid rgba(243,239,228,.14); border-radius:12px; overflow:hidden; background:#0f1011;
  box-shadow:0 30px 80px rgba(0,0,0,.5); }
.cl-preview-bar { display:flex; align-items:center; gap:9px; padding:9px 14px; background:#16181b; border-bottom:1px solid rgba(243,239,228,.1); }
.cl-preview-dot { width:7px; height:7px; border-radius:50%; background:#5cb8af; box-shadow:0 0 0 3px rgba(92,184,175,.18); flex:none; }
.cl-preview-url { font-family:var(--mono); font-size:10.5px; letter-spacing:.02em; color:rgba(243,239,228,.55);
  background:rgba(243,239,228,.06); border:1px solid rgba(243,239,228,.1); border-radius:6px; padding:3px 12px; }
.cl-preview-stage { position:relative; width:100%; aspect-ratio:1500/950; background:#0b0c0d; }
.cl-preview-frame { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:top left;
  opacity:0; animation:cl-rotate 18s infinite; }
@keyframes cl-rotate {
  0% { opacity:0; } 2% { opacity:1; } 14.5% { opacity:1; } 17% { opacity:0; } 100% { opacity:0; }
}
@media (prefers-reduced-motion:reduce) {
  .cl-preview-frame { animation:none; opacity:0; }
  .cl-preview-frame:first-child { opacity:1; }
}
.cl-hero-in h1 { font-size:clamp(38px,6vw,72px); line-height:1.02; letter-spacing:-.03em; font-weight:800; margin:0; }
.cl-grad { background:linear-gradient(100deg,#23c4c4,#e0865f); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cl-hero-in p { color:rgba(243,239,228,.72); font-size:15.5px; line-height:1.6; margin:22px 0 28px; max-width:56ch; }
.cl-hero-cta { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.cl-hero-cta.cl-center { justify-content:center; }
.cl-ghost.ondark { border-color:rgba(243,239,228,.28); color:#f3efe4; }
.cl-ghost.ondark:hover { border-color:rgba(243,239,228,.6); }
.cl-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:34px; }
.cl-chip { font-family:var(--mono); font-size:11px; letter-spacing:.02em; color:rgba(243,239,228,.8);
  border:1px solid rgba(243,239,228,.16); border-radius:5px; padding:4px 10px; background:rgba(243,239,228,.04); }

.cl-section { padding:clamp(40px,6vw,76px) clamp(18px,4vw,46px); max-width:1080px; margin:0 auto; width:100%; }
.cl-features { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.cl-feature { border:1px solid var(--rule); border-radius:12px; padding:24px 22px; background:var(--bg-elev); }
.cl-fn { font-family:var(--mono); font-size:12px; color:var(--accent); font-weight:600; margin-bottom:12px; }
.cl-feature h3 { font-size:16px; font-weight:700; letter-spacing:-.01em; margin:0 0 8px; }
.cl-feature p { color:var(--ink-mute); font-size:13px; line-height:1.55; margin:0; }

.cl-sec-head { text-align:center; max-width:60ch; margin:0 auto 36px; }
.cl-sec-head h2 { font-size:clamp(26px,3.4vw,40px); font-weight:800; letter-spacing:-.02em; margin:0 0 10px; }
.cl-sec-head p { color:var(--ink-mute); font-size:14px; line-height:1.6; margin:0; }
.cl-pricing { max-width:1120px; }
.cl-tiers { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.cl-tier { position:relative; border:1px solid var(--rule); border-radius:14px; padding:26px 22px; background:var(--bg-elev); display:flex; flex-direction:column; }
.cl-tier.feat { border-color:var(--accent); box-shadow:0 16px 44px rgba(194,114,79,.16); }
.cl-tier-badge { position:absolute; top:-10px; left:22px; background:linear-gradient(100deg,#3f8e8a,#b27c64); color:#fff;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; padding:3px 9px; border-radius:6px; }
.cl-tier-name { font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-mute); }
.cl-tier-amt { font-size:30px; font-weight:800; letter-spacing:-.02em; margin-top:8px; }
.cl-tier-per { font-family:var(--mono); font-size:11px; color:var(--ink-mute); min-height:2.2em; }
.cl-tier ul { list-style:none; margin:16px 0 20px; padding:0; flex:1; }
.cl-tier li { font-size:13px; color:var(--ink-soft); padding:6px 0 6px 20px; position:relative; }
.cl-tier li::before { content:"▸"; position:absolute; left:0; color:var(--accent); }
.cl-tier-btn { width:100%; justify-content:center; }

.cl-statband { display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(28px,6vw,72px);
  padding:clamp(30px,4vw,52px) 24px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); background:var(--bg-panel); }
.cl-stat { display:flex; flex-direction:column; gap:3px; text-align:center; }
.cl-stat b { font-size:30px; font-weight:800; letter-spacing:-.02em;
  background:linear-gradient(100deg,#00a8a8,#c2714f); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.cl-stat span { font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; color:var(--ink-mute); text-transform:uppercase; }

.cl-cta-band { text-align:center; padding:clamp(52px,7vw,92px) 24px; background:#0c0d0f; color:#f3efe4; position:relative; overflow:hidden; }
.cl-cta-band::before { content:""; position:absolute; inset:0; background:radial-gradient(80% 120% at 50% 120%, rgba(0,168,168,.26), transparent 60%); }
.cl-cta-band > * { position:relative; z-index:1; }
.cl-cta-band h2 { font-size:clamp(26px,3.6vw,40px); font-weight:800; letter-spacing:-.02em; margin:0 0 12px; }
.cl-cta-band p { color:rgba(243,239,228,.72); font-size:14.5px; max-width:52ch; margin:0 auto 26px; line-height:1.6; }

.cl-foot { margin-top:auto; border-top:1px solid var(--rule); background:var(--bg-panel); padding:clamp(36px,5vw,56px) clamp(18px,4vw,46px) 0; }
.cl-foot-grid { max-width:1120px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr 1fr; gap:32px; }
.cl-foot-brandcol .cl-brand { margin-bottom:12px; }
.cl-foot-brandcol .cl-brand img { height:30px; }
.cl-foot-brandcol p { color:var(--ink-mute); font-size:12.5px; line-height:1.6; max-width:40ch; margin:0; }
.cl-foot-col h5 { font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim); margin:0 0 12px; font-weight:600; }
.cl-foot-col a, .cl-foot-link { display:block; color:var(--ink-soft); text-decoration:none; font-size:13px; margin-bottom:9px;
  background:none; border:none; padding:0; cursor:pointer; font-family:var(--sans); text-align:left; }
.cl-foot-col a:hover, .cl-foot-link:hover { color:var(--accent); }
.cl-foot-base { max-width:1120px; margin:0 auto; margin-top:clamp(28px,4vw,44px); padding:18px 0 22px;
  border-top:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  font-size:11.5px; color:var(--ink-mute); }
.cl-foot-brandtag { font-family:var(--mono); }
.cl-foot-brandtag b { color:var(--accent); font-weight:700; }
@media (max-width:860px) { .cl-foot-grid { grid-template-columns:1fr 1fr; } .cl-foot-brandcol { grid-column:1/-1; } }

/* auth modal (form reuses .auth-* field styles) */
.authm-overlay { position:fixed; inset:0; z-index:90; background:rgba(8,9,11,.62); backdrop-filter:blur(4px);
  display:grid; place-items:center; padding:20px; animation:authm-fade .14s ease; }
@keyframes authm-fade { from { opacity:0; } to { opacity:1; } }
.authm { position:relative; width:100%; max-width:392px; background:var(--bg-elev); border:1px solid var(--rule-2);
  border-radius:16px; padding:28px 30px 22px; box-shadow:0 24px 70px rgba(0,0,0,.4); animation:authm-pop .16s ease; }
@keyframes authm-pop { from { transform:translateY(8px) scale(.99); opacity:0; } to { transform:none; opacity:1; } }
.authm-x { position:absolute; top:12px; right:14px; background:none; border:none; color:var(--ink-mute); cursor:pointer; font-size:15px; line-height:1; padding:5px 7px; border-radius:6px; }
.authm-x:hover { color:var(--ink); background:var(--bg-hover); }
.authm-brand { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:600; margin-bottom:16px; }
.authm-brand img { height:36px; width:auto; } .authm-brand b { color:var(--accent); font-weight:800; }
.authm-title { font-size:20px; font-weight:700; letter-spacing:-.02em; margin:0 0 5px; }
.authm-sub { color:var(--ink-mute); font-size:12.5px; line-height:1.5; margin-bottom:22px; }
.authx-submit { width:100%; justify-content:center; padding:11px; font-size:13.5px; font-weight:600; margin-top:4px;
  background:linear-gradient(100deg,#3f8e8a,#b27c64); border:none; color:#fff; }
.authx-submit:hover:not(:disabled) { filter:brightness(1.06); }
.authx-google { width:100%; justify-content:center; gap:9px; padding:10px; font-size:12.5px; }
.authx-google .gg { display:inline-grid; place-items:center; }

@media (max-width:980px) {
  .cl-hero-in { grid-template-columns:1fr; }
  .cl-hero-r { display:none; }
  .cl-tiers { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px) {
  .cl-links { display:none; }
  .cl-features { grid-template-columns:1fr; }
  .cl-tiers { grid-template-columns:1fr; }
}
.verifyx { min-height:100vh; display:grid; place-items:center; padding:24px; background:#0c0d0f; position:relative; overflow:hidden; }
.verifyx::before { content:""; position:absolute; inset:0; background:radial-gradient(80% 90% at 50% -10%, rgba(0,168,168,.22), transparent 55%), radial-gradient(80% 90% at 50% 110%, rgba(194,113,79,.28), transparent 55%); }
.verifyx-card { position:relative; z-index:1; width:100%; max-width:404px; background:var(--bg-elev); border:1px solid var(--rule-2); border-radius:16px; padding:30px 32px 24px; box-shadow:0 24px 70px rgba(0,0,0,.45); }

/* Paradigm pages (vector / fts / geo / columnar / object / wide-column / ledger) */
.px-grid { display:grid; grid-template-columns:260px 1fr; gap:16px; }
.px-rail { border:1px solid var(--rule); border-radius:10px; background:var(--bg-panel); overflow:hidden; align-self:start; }
.px-rail-h { font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim); padding:11px 14px; border-bottom:1px solid var(--rule); }
.px-item { display:flex; align-items:center; gap:8px; padding:8px 12px; cursor:pointer; font-size:13px; border-bottom:1px solid var(--rule); }
.px-item:hover { background:var(--bg-hover); }
.px-item.on { background:var(--accent-soft); }
.px-item .nm { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.px-x { background:none; border:none; color:var(--ink-dim); cursor:pointer; font-size:12px; padding:2px 4px; border-radius:4px; }
.px-x:hover { color:var(--accent); background:var(--bg-hover); }
.px-new { display:flex; gap:6px; padding:10px 12px; }
.px-new .auth-in { margin-bottom:0; flex:1; }
.px-work { border:1px solid var(--rule); border-radius:10px; background:var(--bg-panel); padding:18px; min-height:320px; }
.px-sel { font-size:14px; margin-bottom:14px; } .px-sel .mono { color:var(--ink-mute); font-size:11px; }
.px-ops { display:flex; flex-direction:column; gap:9px; max-width:560px; }
.px-ops .qlang { width:100%; }
.px-ops .auth-in { margin-bottom:0; }
.px-json { font-family:var(--mono); font-size:12px; resize:vertical; }
.px-result { margin-top:16px; background:#0e0f10; color:#f3efe4; border:1px solid #2a2c2f; border-radius:8px; padding:14px; font-size:12px; line-height:1.5; max-height:440px; overflow:auto; white-space:pre-wrap; word-break:break-word; }
.px-result.err { border-color:var(--accent); color:#f0c2af; }
@media (max-width:820px){ .px-grid { grid-template-columns:1fr; } }
.me { font-family:var(--mono); }

/* ── MFA / TOTP ────────────────────────────────────────── */
.mfa-setup { display:flex; gap:20px; align-items:flex-start; flex-wrap:wrap; }
.mfa-qr { background:#fff; border-radius:10px; padding:8px; flex:0 0 auto; }
.mfa-qr img { display:block; width:190px; height:190px; }
.mfa-body { flex:1; min-width:240px; }
.mfa-step { font-size:12.5px; color:var(--ink-mute); margin-bottom:10px; }
.mfa-secret { font-size:13px; letter-spacing:.06em; background:var(--bg-sink); border:1px solid var(--rule-2); border-radius:7px; padding:9px 11px; word-break:break-all; color:var(--ink-soft); margin-bottom:14px; }
.mfa-lbl { display:block; font-size:11px; font-weight:600; color:var(--ink-soft); margin:0 0 5px; }
.mfa-actions { display:flex; gap:8px; margin-top:14px; }
.mfa-done { text-align:center; padding:24px 16px; }
.mfa-done b { font-size:15px; display:block; margin-top:6px; } .mfa-done p { font-size:12.5px; color:var(--ink-mute); margin:6px 0 14px; }
.mfa-badge { width:46px; height:46px; border-radius:50%; background:rgba(111,174,111,.16); color:var(--p-kv); display:inline-grid; place-items:center; }

/* ── Notifications panel ───────────────────────────────── */
.nrow-h { display:flex; align-items:center; gap:8px; color:var(--ink-soft); font-size:12px; margin-bottom:8px; }
.nrow-h b { font-weight:600; } .nrow-h .btn { margin-left:auto; }
.nrow { display:grid; grid-template-columns:180px 1fr auto; gap:8px; margin-bottom:8px; align-items:center; }
.nrow .auth-in { margin-bottom:0; }
.nrow-x { background:none; border:1px solid var(--rule-2); border-radius:7px; width:32px; height:32px; display:grid; place-items:center; color:var(--ink-mute); cursor:pointer; }
.nrow-x:hover { color:var(--accent); border-color:var(--accent); }
.ntog { position:relative; display:inline-block; width:34px; height:18px; cursor:pointer; }
.ntog input { display:none; } .ntog span { position:absolute; inset:0; background:var(--bg-sink); border:1px solid var(--rule-2); border-radius:999px; transition:.15s; }
.ntog span::after { content:""; position:absolute; width:12px; height:12px; border-radius:50%; background:var(--ink-mute); top:2px; left:2px; transition:.15s; }
.ntog input:checked + span { background:var(--accent); border-color:var(--accent); } .ntog input:checked + span::after { background:#fff; transform:translateX(16px); }

/* ── Sentinels ─────────────────────────────────────────── */
.snt-form { padding:14px; }
.snt-g2 { display:grid; grid-template-columns:1fr 1.4fr; gap:12px; margin-bottom:12px; }
.snt-cond { display:flex; gap:10px; align-items:flex-end; margin-bottom:12px; }
.snt-cond .snt-grow { flex:1; } .snt-cond .snt-val { width:90px; }
.snt-cond .auth-in, .snt-form .auth-in { margin-bottom:0; }
.snt-form .qlang { width:100%; }
.snt-g3 { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:12px; margin-bottom:6px; }
.snt-chips { display:flex; gap:7px; }
.snt-chip { font-family:var(--mono); font-size:11px; padding:7px 12px; border-radius:7px; border:1px solid var(--rule-2); background:var(--bg); color:var(--ink-mute); cursor:pointer; }
.snt-chip.on { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
.snt-toggle { width:34px; height:18px; border-radius:999px; border:1px solid var(--rule-2); background:var(--bg-sink); position:relative; cursor:pointer; }
.snt-toggle span { position:absolute; width:12px; height:12px; border-radius:50%; background:var(--ink-mute); top:2px; left:2px; transition:.15s; }
.snt-toggle.on { background:var(--accent); border-color:var(--accent); } .snt-toggle.on span { background:#fff; transform:translateX(16px); }

/* ── Ingest + Shaping ──────────────────────────────────── */
.ing-url { display:flex; align-items:center; gap:8px; background:var(--bg-sink); border:1px solid var(--rule-2); border-radius:8px; padding:9px 11px; }
.ing-url .mono { flex:1; font-size:12px; color:var(--ink-soft); word-break:break-all; }
.ing-url.on { border-color:var(--accent); }
.ing-reveal { margin-top:12px; }
.ing-reveal-h { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--accent); margin-bottom:6px; }
.ing-curl { margin-top:12px; font-size:11px; color:var(--ink-mute); background:var(--bg-sink); border:1px solid var(--rule); border-radius:8px; padding:9px 11px; overflow-x:auto; white-space:nowrap; }
.ing-sub { font-family:var(--mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-dim); margin:16px 0 8px; }
.ntog-row { display:flex; align-items:center; gap:12px; margin:14px 0 4px; }
.ing-kv { display:grid; grid-template-columns:1fr 130px auto; gap:8px; margin-bottom:8px; }
.ing-kv .auth-in, .ing-range .auth-in { margin-bottom:0; }
.ing-range { display:grid; grid-template-columns:1fr 90px 90px auto auto; gap:8px; margin-bottom:8px; align-items:center; }
.ing-clamp { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--ink-mute); font-family:var(--mono); }

/* ── Org admin ─────────────────────────────────────────── */
.org-flash { font-size:12px; color:var(--p-kv); font-family:var(--mono); background:rgba(111,174,111,.12); border:1px solid rgba(111,174,111,.3); border-radius:7px; padding:5px 10px; }
.org-invite { display:flex; gap:8px; padding:12px 14px; align-items:center; }
.org-invite .auth-in { margin-bottom:0; flex:1; } .org-invite .qlang { width:130px; }
.org-role { background:var(--bg); border:1px solid var(--rule-2); color:var(--ink); border-radius:6px; padding:3px 7px; font-size:11px; font-family:var(--mono); cursor:pointer; }
.org-actions { display:flex; gap:6px; }
.tmpl { display:flex; flex-direction:column; gap:7px; padding:11px; border:1px solid var(--rule); border-radius:8px; margin-bottom:10px; background:var(--bg-sink); }
.tmpl .auth-in { margin-bottom:0; }
.tmpl-body { min-height:60px; border:1px solid var(--rule-2); border-radius:7px; font-size:11.5px; line-height:1.5; }
.tmpl-help { font-size:10.5px; color:var(--ink-mute); font-family:var(--mono); margin-top:8px; }

/* ── Billing plans ─────────────────────────────────────── */
.plans { display:grid; grid-template-columns:repeat(4,1fr); }
.plan-card { padding:16px 15px; border-right:1px solid var(--rule); display:flex; flex-direction:column; }
.plan-card:last-child { border-right:0; }
.pc-name { font-family:var(--mono); font-size:10px; color:var(--ink-mute); text-transform:uppercase; letter-spacing:.1em; }
.pc-price { font-size:23px; font-weight:700; margin:7px 0 1px; letter-spacing:-.02em; }
.pc-meta { font-family:var(--mono); font-size:10.5px; color:var(--ink-mute); margin-bottom:13px; }
.plan-card .btn { width:100%; justify-content:center; margin-top:auto; }
@media (max-width:820px){ .plans{grid-template-columns:repeat(2,1fr)} }

/* Sidebar sign-out */
.side-foot .signout{ margin:0 8px 10px; border-radius:8px; cursor:pointer; color:var(--muted,#9a8c80); }
.side-foot .signout:hover{ background:rgba(194,114,79,.12); color:var(--primary,#c2724f); }

/* Billing cycle toggle */
.bill-cycle{ display:flex; gap:6px; padding:14px 16px 0; }
.bill-cycle .cyc{ font:inherit; font-size:12px; padding:6px 14px; border-radius:999px; border:1px solid var(--line,#e3d9cf); background:transparent; color:var(--muted,#9a8c80); cursor:pointer; }
.bill-cycle .cyc.on{ background:var(--primary,#c2724f); border-color:var(--primary,#c2724f); color:#fff; }
.bill-cycle .cyc .save{ font-size:10px; opacity:.85; margin-left:4px; }

/* Platform-wide rollup band (platform admins) */
.plat-band{ margin:0 0 18px; padding:14px 16px 4px; border:1px solid var(--line,#e3d9cf); border-radius:12px; background:linear-gradient(180deg,rgba(194,114,79,.06),transparent); }
.plat-band .pb-head{ display:flex; align-items:baseline; gap:10px; margin-bottom:10px; }
.plat-band .pb-eyebrow{ font-size:11px; letter-spacing:.12em; font-weight:700; color:var(--primary,#c2724f); }
.plat-band .pb-sub{ font-size:12px; color:var(--muted,#9a8c80); }

/* Logs page */
.log-bar{ display:flex; align-items:center; gap:12px; margin:0 0 12px; }
.log-bar .log-lbl{ font-size:11px; letter-spacing:.12em; color:var(--muted,#9a8c80); font-weight:700; }
.log-sel{ font:inherit; font-size:13px; padding:6px 10px; border-radius:8px; border:1px solid var(--line,#e3d9cf); background:var(--panel,#fff); color:var(--ink,#2b2017); }
.log-count{ font-size:12px; color:var(--muted,#9a8c80); margin-left:auto; }
.log-view{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; line-height:1.55; white-space:pre-wrap; word-break:break-word;
  background:#0f0d0b; color:#d8cdbf; border:1px solid var(--line,#2a2420); border-radius:10px; padding:14px 16px;
  height:62vh; overflow:auto; margin:0; user-select:text; }
.log-live{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:999px; }
.log-live.on{ background:rgba(92,184,175,.16); color:#5cb8af; }
.log-live.off{ background:rgba(154,140,128,.16); color:var(--muted,#9a8c80); }

/* Ingest — collections management */
.col-create{ display:flex; gap:8px; align-items:center; margin:8px 0 4px; }
.col-create .auth-in{ flex:1; }
.col-list{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.col-chip{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-family:"JetBrains Mono",monospace;
  padding:5px 10px; border-radius:999px; border:1px solid var(--line,#e3d9cf); background:var(--panel,#fff); color:var(--ink,#2b2017); }
.col-list .dim{ font-size:13px; color:var(--muted,#9a8c80); }
.col-chip .col-x{ display:inline-flex; border:0; background:transparent; cursor:pointer; color:var(--muted,#9a8c80); padding:0 0 0 2px; }
.col-chip .col-x:hover{ color:#c0392b; }

/* Platform fleet table */
.fleet-tbl{ margin-top:12px; overflow-x:auto; }
.fleet-tbl .dgrid{ width:100%; }
.rchip.ok{ background:rgba(92,184,175,.16); color:#5cb8af; }
.rchip.down{ background:rgba(192,57,43,.14); color:#c0392b; }

/* KV + Graph pages */
.kv-set{ display:flex; gap:8px; margin:0 0 14px; }
.kv-set .auth-in:first-child{ flex:0 0 240px; }
.kv-set .auth-in:nth-child(2){ flex:1; }
.kv-val{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; line-height:1.5; white-space:pre-wrap; word-break:break-word; margin:0; padding:14px 16px; max-height:60vh; overflow:auto; }
.tree-main{ flex:1; min-width:0; }
.g-add{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.g-add .auth-in{ width:120px; font-size:12px; padding:5px 8px; }
.tree-i .nrow-x{ margin-left:auto; opacity:.5; }
.tree-i:hover .nrow-x{ opacity:1; }

/* Graph paradigm — node-link visualization */
.g-addbar{ display:flex; flex-wrap:wrap; gap:18px; margin:0 0 14px; }
.g-grp{ display:flex; align-items:center; gap:6px; }
.g-grp .auth-in{ width:130px; font-size:12px; padding:5px 8px; }
.graph-canvas{ width:100%; background:radial-gradient(circle at 50% 40%, rgba(194,114,79,.05), transparent 70%); border-radius:10px; }
.graph-svg{ width:100%; height:auto; display:block; }
.graph-svg .g-node{ cursor:pointer; }
.graph-svg .g-node:hover circle{ fill-opacity:.34; }
.graph-svg .g-nlabel{ font-family:"JetBrains Mono",monospace; font-size:10px; fill:var(--ink,#2b2017); pointer-events:none; }
.graph-svg .g-rel{ font-size:9px; fill:var(--muted,#9a8c80); }
