/* ── Editor side: Holoprism console skin ─────────────────── */
.r-shell{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 40px);font:13px/1.45 var(--sans);color:var(--r-ink)}
@media(max-width:860px){.r-shell{grid-template-columns:1fr}}
.r-side{background:var(--surface);border-right:1px solid var(--border);padding-block:16px;padding-inline:12px;display:flex;flex-direction:column;gap:18px}
@media(max-width:860px){.r-side{border-right:0;border-bottom:1px solid var(--border);padding-inline:16px}}
.r-brand{display:flex;flex-direction:column;gap:4px;padding-inline:6px}
.r-brand b{font:700 13px/1 var(--sans);letter-spacing:.28em;background:linear-gradient(90deg,#00d4ff,#7ee8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.r-brand span{font:500 11px/1.3 var(--mono);color:var(--muted)}
.r-nav{display:flex;flex-direction:column;gap:2px}
@media(max-width:860px){.r-nav{flex-direction:row;flex-wrap:wrap}}
.r-nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:5px;text-decoration:none;color:var(--r-soft);border:1px solid transparent}
.r-nav a:hover{background:var(--surface-2)}
.r-nav a.on{background:var(--accent-soft);border-color:var(--accent-border);color:var(--r-ink)}
.r-nav a .ic{width:16px;text-align:center;color:var(--muted);font:500 12px/1 var(--mono)}
.r-nav a.on .ic{color:var(--accent)}
.r-nav a .ct{margin-left:auto;font:600 10.5px/1 var(--mono);background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px 6px;color:var(--r-soft)}
.r-nav a .ct.hot{background:var(--warn-soft);border-color:var(--warn-border);color:var(--warn)}
.r-budget{margin-top:auto;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}
@media(max-width:860px){.r-budget{display:none}}
.r-budget .l{display:flex;justify-content:space-between;font:500 10.5px/1.3 var(--mono);color:var(--muted)}
.r-budget .bar{height:5px;background:var(--surface-2);border-radius:3px;margin-block:7px;overflow:hidden}
.r-budget .bar i{display:block;height:100%;background:linear-gradient(90deg,#00d4ff,#0099bb)}
.r-main{min-width:0;display:flex;flex-direction:column}
.r-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-block:10px;padding-inline:22px;border-bottom:1px solid var(--border);background:var(--surface);font:500 11.5px/1.2 var(--mono);color:var(--muted)}
.r-top .env{border:1px solid var(--ok-border);color:var(--ok);background:var(--ok-soft);padding:3px 7px;border-radius:4px}
.r-top .sp{flex:1}
.r-top .me{display:flex;align-items:center;gap:8px;font-family:var(--sans);color:var(--r-soft)}
.r-top .av{width:24px;height:24px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);display:grid;place-items:center;font:600 10px/1 var(--sans);color:var(--accent)}
.r-content{padding-block:20px 60px;padding-inline:22px;min-width:0}
@media(max-width:600px){.r-content,.r-top{padding-inline:16px}}
.r-h1{font:600 19px/1.25 var(--sans);margin:0;letter-spacing:-.01em}
.r-sub{color:var(--muted);margin:4px 0 16px;max-width:80ch}
.r-lbl{font:600 10.5px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.mono{font-family:var(--mono)}
.muted{color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:5px;font:600 10.5px/1 var(--mono);padding:3px 7px;border-radius:4px;border:1px solid var(--border);color:var(--r-soft);background:var(--surface-2);white-space:nowrap}
.pill.ok{color:var(--ok);border-color:var(--ok-border);background:var(--ok-soft)}
.pill.warn{color:var(--warn);border-color:var(--warn-border);background:var(--warn-soft)}
.pill.bad{color:var(--bad);border-color:var(--bad-border);background:var(--bad-soft)}
.pill.ac{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft)}
.pill.vi{color:var(--violet);border-color:rgba(192,132,252,.35);background:var(--violet-soft)}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--r-ink);padding:7px 12px;border-radius:5px;font:500 12.5px/1 var(--sans)}
.btn:hover{border-color:var(--muted)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:#04161c;font-weight:600}
.btn.pri:hover{background:#33ddff}
.btn.pri[disabled]{opacity:.35;cursor:not-allowed}
.btn.dng{color:var(--bad);border-color:var(--bad-border);background:var(--bad-soft)}
.kbd{font:600 10px/1 var(--mono);border:1px solid var(--border);border-bottom-width:2px;border-radius:3px;padding:2px 5px;color:var(--r-soft);background:var(--bg)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:14px;overflow-x:auto}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:9px 12px;color:var(--muted);font:500 12.5px/1 var(--sans);white-space:nowrap;display:flex;gap:7px;align-items:center}
.tabs button.on{color:var(--r-ink);border-bottom-color:var(--accent)}
.tabs button .ct{font:600 10px/1 var(--mono);background:var(--surface-2);border-radius:8px;padding:2px 6px}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px}

/* queue */
.split{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:14px;align-items:start}
@media(max-width:1000px){.split{grid-template-columns:1fr}}
.qlist{display:flex;flex-direction:column;gap:6px}
.qi{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px}
.qi:hover{border-color:var(--muted)}
.qi.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-border)}
.qi.done{opacity:.45}
.qi .t{font:500 13px/1.35 var(--sans);color:var(--r-ink);display:block;margin-bottom:6px}
.qi .m{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font:500 10.5px/1.2 var(--mono);color:var(--muted)}
.sbar{flex:1;min-width:50px;height:4px;background:var(--surface-2);border-radius:2px;overflow:hidden}
.sbar i{display:block;height:100%;background:var(--accent)}
.hint{margin-top:10px;font:500 11px/1.6 var(--mono);color:var(--faint)}
.ev{padding:18px}
.ev h2{font:600 18px/1.3 var(--sans);margin:6px 0 6px;letter-spacing:-.01em}
.ev .hl{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--r-ink);font:600 16px/1.35 var(--sans);padding:8px 10px;resize:vertical}
.ev .sum{color:var(--r-soft);margin:0 0 12px;max-width:75ch}
.ev .sec{border-top:1px solid var(--border-soft);padding-block:14px}
.ev .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ev .row .sp{flex:1}
.wl{display:flex;flex-direction:column;gap:8px}
.wroot{border:1px solid var(--border);border-radius:6px;overflow:hidden}
.wroot .h{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--surface-2);font:500 12px/1.3 var(--sans)}
.wroot .h .mono{color:var(--muted);font-size:10.5px}
.wrow{padding:8px 10px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:5px}
.wrow .who{font:500 12px/1.3 var(--sans);color:var(--r-soft)}
.span{display:flex;gap:8px;align-items:baseline;font:400 12px/1.45 var(--mono);color:var(--r-soft)}
.span .f{flex:none;width:92px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.span .tx{flex:1;min-width:0}
.span .tx mark{background:rgba(0,212,255,.16);color:var(--r-ink);padding:0 2px;border-radius:2px}
.span .ck{flex:none;font-weight:700}.span .ck.y{color:var(--ok)}.span .ck.n{color:var(--bad)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font:400 12px/1.45 var(--sans)}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--border);padding-top:14px;margin-top:4px}
.acts select{background:var(--bg);border:1px solid var(--border);color:var(--r-ink);border-radius:5px;padding:6px 8px;font:500 12px/1 var(--sans)}
.warnbox{border:1px solid var(--warn-border);background:var(--warn-soft);color:var(--warn);border-radius:6px;padding:9px 11px;font:500 12px/1.45 var(--sans)}
.badbox{border:1px solid var(--bad-border);background:var(--bad-soft);color:#fecaca;border-radius:6px;padding:9px 11px;font:500 12px/1.45 var(--sans)}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:600px){.cmp{grid-template-columns:1fr}}
.cmp .c{border:1px solid var(--border);border-radius:6px;padding:12px;background:var(--bg)}
.cmp .c .v{font:600 22px/1.2 var(--mono);color:var(--r-ink);margin:6px 0}

/* tables, tiles, funnel */
.tw{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font:400 12.5px/1.4 var(--sans)}
table.t th{text-align:left;font:600 10px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
table.t td{padding:9px 10px;border-bottom:1px solid var(--border-soft);vertical-align:top}
table.t td.n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}
.tile{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 14px}
.tile .l{font:600 10px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tile .v{font:600 24px/1.1 var(--mono);margin-top:8px;font-variant-numeric:tabular-nums}
.tile .v small{font-size:12px;color:var(--muted);font-weight:500}
.tile .d{font:500 11px/1.4 var(--mono);color:var(--muted);margin-top:4px}
.grid2{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;align-items:start}
@media(max-width:1000px){.grid2{grid-template-columns:1fr}}
.pad{padding:14px 16px}
.fun{display:flex;flex-direction:column;gap:9px}
.fr{display:grid;grid-template-columns:170px 1fr 54px;gap:10px;align-items:center;font:500 12px/1.3 var(--sans)}
@media(max-width:600px){.fr{grid-template-columns:110px 1fr 44px}}
.fr .lab{color:var(--r-soft)}.fr .lab small{display:block;color:var(--faint);font:500 10px/1.3 var(--mono)}
.fr .tr{height:18px;background:var(--surface-2);border-radius:3px;overflow:hidden;display:flex}
.fr .tr i{display:block;height:100%}
.fr .n{font:600 12.5px/1 var(--mono);text-align:right;font-variant-numeric:tabular-nums}
.drops{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.hb{display:flex;flex-direction:column;gap:8px}
.hb div{display:grid;grid-template-columns:14px 90px 1fr auto;gap:8px;align-items:center;font:500 12px/1.3 var(--mono)}
.hb .dt{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}
.hb .dt.w{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.hb .dt.i{background:var(--faint);box-shadow:none}
.spark{width:100%;height:auto;display:block}
.spark .grid{stroke:var(--border-soft);stroke-width:1}
.spark .ax{fill:var(--muted);font:500 9.5px var(--mono)}
.spark .ln{fill:none;stroke:var(--accent);stroke-width:2}
.spark .ar{fill:rgba(0,212,255,.12)}
.spark .ln2{fill:none;stroke:var(--violet);stroke-width:1.5;stroke-dasharray:3 3}
.spark .end{fill:var(--accent)}

/* graph */
.gwrap{display:grid;grid-template-columns:1fr 360px;gap:14px;align-items:start}
@media(max-width:1100px){.gwrap{grid-template-columns:1fr}}
.gcanvas{overflow-x:auto}
.gsvg{display:block;width:100%;min-width:560px;height:auto;background:radial-gradient(circle at 50% 50%,#0f1826 0,#0a0d12 70%);border-radius:8px}
.gsvg .e{stroke:#33415a;stroke-width:1.3}
.gsvg .e.w{stroke:#4b5563;stroke-dasharray:3 4}
.gsvg .el{fill:var(--muted);font:500 9.5px var(--mono)}
.gsvg .nd{cursor:pointer}
.gsvg .nd text{fill:var(--r-ink);font:500 11px var(--sans)}
.gsvg .nd text.ty{fill:var(--muted);font:500 9px var(--mono);letter-spacing:.06em}
.gsvg .nd:hover .sh{stroke:#fff}
.gsvg .sh{stroke-width:1.5}
.gsvg .story .sh{fill:#2a1116;stroke:#e0707f}
.gsvg .organisation .sh{fill:#0b2530;stroke:var(--accent)}
.gsvg .person .sh{fill:#221733;stroke:var(--violet)}
.gsvg .place .sh{fill:#11261c;stroke:var(--ok)}
.gsvg .source .sh{fill:#1a1d24;stroke:#6b7280}
.gsvg .ctr .sh{stroke-width:3}
.glegend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font:500 11px/1.3 var(--mono);color:var(--muted)}
.glegend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;border:1.5px solid}
pre.rowjson{margin:0;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font:400 11.5px/1.55 var(--mono);color:var(--r-soft);white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto}
pre.rowjson .k{color:var(--accent)}pre.rowjson .s{color:#fcd34d}pre.rowjson .n{color:var(--violet)}

/* digest preview: the newsletter is Bohemie-branded, so it renders on paper inside the console */
.dg{display:grid;grid-template-columns:1fr 330px;gap:14px;align-items:start}
@media(max-width:1100px){.dg{grid-template-columns:1fr}}
.paperpv{background:var(--paper);color:var(--ink);border-radius:6px;padding:28px 30px;font:16px/1.6 var(--serif-body)}
@media(max-width:600px){.paperpv{padding:20px 18px}}
.paperpv .mh{text-align:center;border-bottom:3px double var(--ink);padding-bottom:12px;margin-bottom:18px}
.paperpv .mh b{font:700 26px/1.1 var(--serif-display);letter-spacing:.04em}
.paperpv .mh span{display:block;font:500 11px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px}
.paperpv .it{padding-block:12px;border-bottom:1px solid var(--line)}
.paperpv .it .k{font:600 10px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.paperpv .it b{display:block;font:600 17px/1.3 var(--serif-display);margin:4px 0}
.paperpv .it p{margin:0;font-size:14px;color:var(--ink-soft)}
.paperpv .corr{background:var(--paper-deep);border-left:3px solid var(--garnet);padding:10px 14px;font:400 13px/1.5 var(--sans);margin-bottom:14px}
.checks{display:flex;flex-direction:column;gap:8px}
.checks div{display:flex;justify-content:space-between;gap:10px;font:500 12px/1.35 var(--sans);padding-block:6px;border-bottom:1px solid var(--border-soft)}
.sign input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--r-ink);padding:8px 10px;font:500 13px/1 var(--sans);margin-block:8px}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:#0b1f26;border:1px solid var(--accent-border);color:var(--r-ink);padding:10px 14px;border-radius:7px;font:500 12.5px/1.4 var(--sans);box-shadow:0 12px 32px rgba(0,0,0,.5);z-index:50;max-width:calc(100% - 32px)}
body[data-mode="pub"] .toast{background:var(--ink);color:var(--paper);border-color:var(--ink)}
