/* Same palette as the discovery app, so the two feel like one shop's tools. */
:root{
  --bg:#F7F5F2; --panel:#FFFFFF; --ink:#1C1917; --ink-2:#57534E; --ink-3:#8A827B;
  --line:#E4DFD9; --line-2:#D6D0C8;
  --accent:#B45309; --accent-soft:#FDF2E3;
  --must:#9A3412; --must-bg:#FEF0E6; --must-line:#F0C9A8;
  --ok:#15803D; --ok-bg:#EDF7EF; --ok-line:#BFE3C9;
  --info:#1D4ED8; --info-bg:#EEF3FE;
  --warn:#92400E; --warn-bg:#FEF6E7; --warn-line:#F3D9A8;
  --shadow:0 1px 2px rgba(28,25,23,.05),0 4px 16px rgba(28,25,23,.05);
  --r:10px;
}
html[data-theme="dark"]{
  --bg:#17150F; --panel:#211E18; --ink:#F5F1EA; --ink-2:#B8B0A4; --ink-3:#8A8176;
  --line:#332F27; --line-2:#413C32;
  --accent:#F0A840; --accent-soft:#2A2317;
  --must:#F5B77A; --must-bg:#2E2118; --must-line:#6B4527;
  --ok:#6EE7A0; --ok-bg:#1A2A20; --ok-line:#2C4A36;
  --info:#9DB8FF; --info-bg:#1B2133;
  --warn:#F3C77A; --warn-bg:#2B2214; --warn-line:#5E4520;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 4px 20px rgba(0,0,0,.25);
}
/* Height of the fixed chrome above every screen: the POC strip plus the app
   header. Screens size themselves against these rather than against magic
   numbers, so the strip can change height without hunting for calc()s. */
:root{ --pocnav:30px; --headbar:52px; --chrome:calc(var(--pocnav) + var(--headbar)); }
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
body{background:var(--bg);color:var(--ink);
  font:15px/1.55 ui-sans-serif,-apple-system,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none !important}
h2{font-size:19px;margin:0;letter-spacing:-.02em}
h3{font-size:15px;margin:0;letter-spacing:-.01em}
.sub{color:var(--ink-2);font-size:13px;margin:4px 0 0}
.foot{color:var(--ink-3);font-size:11.5px;margin:14px 0 0;line-height:1.5}
.opt{color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}
.row{display:flex;align-items:center}
.row.gap{gap:8px}
.row.end{justify-content:flex-end}

/* ───────── sign in ───────── */
.gate{min-height:100vh;display:grid;place-items:center;padding:24px}
.gatecard{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--accent);
  border-radius:14px;padding:30px 32px;width:min(440px,100%);box-shadow:var(--shadow)}
.gatecard h1{font-size:20px;margin:0 0 8px;letter-spacing:-.02em}
.lede{color:var(--ink-2);font-size:13.5px;margin:0 0 22px}
label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;color:var(--ink-3);margin:0 0 6px}
.gatecard input,.gatecard select,#new input,#new select{width:100%;padding:10px 12px;
  border:1px solid var(--line-2);border-radius:8px;background:var(--bg)}
.gatecard input,.gatecard select{margin-bottom:18px}
input:focus,select:focus{outline:none;border-color:var(--accent);background:var(--panel)}
.primary{padding:11px;border-radius:8px;background:var(--accent);color:#fff;font-weight:700;width:100%}
.primary.sm{width:auto;padding:8px 16px;font-size:13.5px}
html[data-theme="dark"] .primary{color:#17150F}
.primary:disabled{opacity:.5;cursor:default}
.err{color:#B91C1C;font-size:13px;margin:14px 0 0;font-weight:600}
html[data-theme="dark"] .err{color:#FCA5A5}

/* ───────── header ───────── */
header{position:sticky;top:var(--pocnav);z-index:40;background:var(--panel);border-bottom:1px solid var(--line)}
.bar{padding:9px 18px;display:flex;align-items:center;gap:18px}
.brand{display:flex;flex-direction:column;line-height:1.25;flex:none}
.brand b{font-size:14.5px;letter-spacing:-.01em}
.brand span{font-size:11.5px;color:var(--ink-3)}
.crumbs{margin-right:auto;font-size:12.5px;color:var(--ink-3);display:flex;gap:8px;align-items:center}
.crumbs b{color:var(--ink);font-weight:600}
.tools{display:flex;align-items:center;gap:10px}
.btn{padding:6px 12px;border:1px solid var(--line-2);border-radius:7px;font-size:12.5px;
  font-weight:600;color:var(--ink-2);background:var(--panel);white-space:nowrap}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.wide{width:100%;justify-content:center}
.btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
html[data-theme="dark"] .btn.on{color:#17150F}
.tiny{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--accent);text-decoration:underline}
.me{display:flex;flex-direction:column;align-items:flex-end;line-height:1.3}
.me span{font-size:12.5px;font-weight:650}
.link{font-size:11px;color:var(--ink-3);text-decoration:underline}
.link:hover{color:var(--accent)}
.save{font-size:11.5px;color:var(--ink-3);font-weight:600;min-width:74px;text-align:right}
.save.on{color:var(--ok)}
.save.bad{color:#B91C1C}

/* ───────── queue / new ───────── */
.screen{min-height:calc(100vh - var(--chrome))}
.qwrap{max-width:900px;margin:0 auto;padding:26px 20px 80px}
.qwrap.narrow{max-width:560px}
.qhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.erow{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);
  text-align:left;width:100%}
.erow:last-child{border-bottom:none}
.erow:hover{background:var(--accent-soft)}
.erow .who{flex:1;min-width:0}
.erow .who b{display:block;font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.erow .who span{font-size:11.5px;color:var(--ink-3)}
.erow .tag{flex:none}
.tag{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  border-radius:20px;padding:3px 9px;border:1px solid var(--line-2);color:var(--ink-3);white-space:nowrap}
.tag.draft{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
.tag.ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok)}
.empty{color:var(--ink-3);font-size:13.5px;text-align:center;padding:34px 16px}
.results{margin-top:8px}
.results .hit{display:block;width:100%;text-align:left;padding:9px 12px;border:1px solid var(--line);
  border-radius:8px;background:var(--panel);margin-bottom:6px;font-size:13px}
.results .hit:hover{border-color:var(--accent)}
.results .hit b{display:block;font-weight:600}
.results .hit span{font-size:11.5px;color:var(--ink-3)}
.results.float{position:absolute;top:38px;left:0;right:0;z-index:12;max-height:260px;overflow:auto;
  background:var(--panel);border-radius:8px;box-shadow:var(--shadow);padding:6px}
.results.float:empty{display:none}

/* ───────── canvas screen ───────── */
.canvas{display:grid;grid-template-columns:1fr 344px;height:calc(100vh - var(--chrome));min-height:0}
.mapwrap{position:relative;min-width:0}
#map{position:absolute;inset:0}
#map canvas{outline:none}
.maplibregl-ctrl-attrib{font-size:10.5px}

.flightband{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:9px;
  padding:7px 14px;background:var(--warn-bg);border-bottom:1px solid var(--warn-line);
  color:var(--warn);font-size:12px}
.flightband b{font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:10.5px}
.flightband span{flex:1;color:var(--ink-2)}

.maptools{position:absolute;top:44px;left:12px;z-index:10;display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
.searchbox{position:relative;width:320px}
.searchbox input{width:100%;padding:8px 11px;border:1px solid var(--line-2);border-radius:8px;
  background:var(--panel);box-shadow:var(--shadow);font-size:13px}
.seg{display:flex;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;
  overflow:hidden;box-shadow:var(--shadow)}
.seg button{padding:8px 11px;font-size:12px;font-weight:600;color:var(--ink-2);border-right:1px solid var(--line)}
.seg button:last-child{border-right:none}
.seg button[aria-pressed="true"]{background:var(--accent);color:#fff}
html[data-theme="dark"] .seg button[aria-pressed="true"]{color:#17150F}
.maptools .btn{box-shadow:var(--shadow);padding:8px 12px}

.drawbar{position:absolute;bottom:16px;left:12px;z-index:10;display:flex;align-items:center;gap:10px}
.drawbar .hint{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 11px;
  font-size:12px;color:var(--ink-2);box-shadow:var(--shadow)}
.drawbar .hint:empty{display:none}

.badge{position:absolute;bottom:16px;right:12px;z-index:10;background:var(--ink);color:var(--bg);
  border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:650;font-variant-numeric:tabular-nums}
.toastbar{position:absolute;top:78px;left:50%;transform:translateX(-50%);z-index:14;max-width:min(560px,80%);
  background:var(--panel);border:1px solid var(--must-line);border-left:3px solid var(--must);
  border-radius:8px;padding:9px 14px;font-size:12.5px;color:var(--ink-2);box-shadow:var(--shadow)}

/* ───────── rail ───────── */
.rail{border-left:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}
.railhead{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:flex-start}
.railhead>div{flex:1;min-width:0}
.railhead h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini{padding:5px 7px;border:1px solid var(--line-2);border-radius:7px;background:var(--bg);font-size:12px;max-width:132px}
.totals{padding:12px 16px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px}
.totals .t{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.totals .t b{display:block;font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.totals .t span{font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.arealist{flex:1;overflow-y:auto;padding:10px 12px}
.area{border:1px solid var(--line);border-radius:9px;padding:9px 11px;margin-bottom:8px;background:var(--panel)}
.area.on{border-color:var(--accent);background:var(--accent-soft)}
.area .atop{display:flex;align-items:center;gap:8px}
.area .swatch{width:10px;height:10px;border-radius:3px;flex:none}
.area input.nm{flex:1;min-width:0;border:none;background:transparent;font-size:13.5px;font-weight:600;padding:2px 0}
.area input.nm:focus{outline:none;border-bottom:1px solid var(--accent)}
.area .meta{font-size:11.5px;color:var(--ink-2);margin-top:3px;font-variant-numeric:tabular-nums}
.area .acts{display:flex;gap:10px;margin-top:6px}
.area .acts button{font-size:11px;color:var(--ink-3);text-decoration:underline}
.area .acts button:hover{color:var(--accent)}
.area .acts button.danger:hover{color:#B91C1C}
.parcelbox{border-top:1px solid var(--line);padding:12px 16px;font-size:12px;color:var(--ink-2);max-height:220px;overflow:auto}
.parcelbox h4{margin:0 0 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.parcelbox .p{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px dotted var(--line)}
.parcelbox .p:last-child{border-bottom:none}
.parcelbox .p b{font-weight:600;color:var(--ink);text-align:right}
.railfoot{border-top:1px solid var(--line);padding:12px 16px}

/* ───────── drawer ───────── */
.drawer{position:fixed;inset:0;z-index:80}
.drawer-scrim{position:absolute;inset:0;background:rgba(28,25,23,.45)}
.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--panel);
  border-left:1px solid var(--line);display:flex;flex-direction:column;box-shadow:-8px 0 40px rgba(0,0,0,.15)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 20px;border-bottom:1px solid var(--line)}
.drawer-body{overflow-y:auto;padding:18px 20px 60px;font-size:13px;line-height:1.6;color:var(--ink-2)}
.drawer-body h4{margin:18px 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.drawer-body h4:first-child{margin-top:0}
.drawer-body code{background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:11.5px;
  word-break:break-all}
.drawer-body .kv{display:flex;justify-content:space-between;gap:14px;padding:4px 0;border-bottom:1px dotted var(--line)}
.drawer-body .kv b{color:var(--ink);font-weight:600;text-align:right}
.chip{padding:4px 11px;border:1px solid var(--line-2);border-radius:20px;font-size:12px;font-weight:600;color:var(--ink-2)}
.chip:hover{border-color:var(--accent);color:var(--accent)}

@media (max-width:1000px){
  .canvas{grid-template-columns:1fr;height:auto}
  .mapwrap{height:62vh;position:relative}
  .rail{border-left:none;border-top:1px solid var(--line)}
  .searchbox{width:min(60vw,320px)}
}

/* ═════════════════ cost sheet ═════════════════ */
.sheethead{max-width:1280px;margin:0 auto;padding:20px 20px 10px;display:flex;align-items:flex-start;
  justify-content:space-between;gap:20px;flex-wrap:wrap}
.sheethead h2{margin:0}
.legend{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.sheetwrap{max-width:1280px;margin:0 auto;padding:0 20px 90px;display:grid;
  grid-template-columns:1fr 320px;gap:20px;align-items:start}
.sheetmain{min-width:0;display:flex;flex-direction:column;gap:16px}
.sheetside{display:flex;flex-direction:column;gap:16px;position:sticky;top:calc(var(--chrome) + 20px)}
.sheetside .card,.sheetmain .card{padding:16px 18px}
.sheetside h3,.sheetmain h3{margin:0 0 4px}
.sechead{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:10px}
.sechead .sub{margin:0}

/* ─── provenance chips ─── */
.pv{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  border-radius:5px;padding:2px 6px;border:1px solid;white-space:nowrap;vertical-align:1px}
.pv.sm{font-size:9px;padding:1px 5px}
.pv-measured{background:#EEF3FE;border-color:#BFD0F7;color:#1D4ED8}
.pv-book{background:#EDF7EF;border-color:#BFE3C9;color:#15803D}
.pv-placeholder{background:#FEF6E7;border-color:#F3D9A8;color:#92400E}
.pv-override{background:#FDECEC;border-color:#F5C2C2;color:#B91C1C}
.pv-computed{background:var(--bg);border-color:var(--line-2);color:var(--ink-3)}
.pv-index{background:#F3EEFE;border-color:#D8C9F7;color:#6D28D9}
.pv-field{background:#E9F7F6;border-color:#B6E2DE;color:#0F766E}
.pv-unknown{background:#FDECEC;border-color:#F5C2C2;color:#B91C1C}
html[data-theme="dark"] .pv-measured{background:#1B2133;border-color:#2E3A5C;color:#9DB8FF}
html[data-theme="dark"] .pv-book{background:#1A2A20;border-color:#2C4A36;color:#6EE7A0}
html[data-theme="dark"] .pv-placeholder{background:#2B2214;border-color:#5E4520;color:#F3C77A}
html[data-theme="dark"] .pv-override{background:#2E1A1A;border-color:#5C2E2E;color:#FCA5A5}
html[data-theme="dark"] .pv-index{background:#241C33;border-color:#463467;color:#C4B5FD}
html[data-theme="dark"] .pv-field{background:#122A28;border-color:#245049;color:#5EEAD4}

/* ─── clickable numbers ─── */
.n{font-variant-numeric:tabular-nums;font-weight:650;font-size:13.5px;padding:1px 4px;border-radius:5px;
  border-bottom:1px dotted var(--line-2);color:var(--ink)}
.n:hover{background:var(--accent-soft);border-bottom-color:var(--accent);color:var(--accent)}
.n:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.n.big{font-size:34px;font-weight:700;letter-spacing:-.03em;padding:0 4px;border-bottom-width:2px;display:block}

/* ─── price card ─── */
.price-card{border-top:3px solid var(--accent)}
.price-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.price-top .k{display:block;font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.persf{display:inline-block;margin-top:2px;font-size:12px;color:var(--ink-2)}
.price-flags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tag.over{background:#FDECEC;border-color:#F5C2C2;color:#B91C1C}
.tag.below{background:var(--must-bg);border-color:var(--must-line);color:var(--must)}
.tag.min{background:var(--info-bg);border-color:#BFD0F7;color:var(--info)}

.ladder{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}
.rung{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:13px;color:var(--ink-2);flex-wrap:wrap}
.rung>span:first-child{flex:1;min-width:120px}
.rung.floor{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0;
  padding:8px 0;font-weight:650;color:var(--ink)}
.rung.floor em{flex-basis:100%;font-style:normal;font-size:11.5px;color:var(--ink-3);font-weight:400}

/* Named sendgate, not gate: .gate is the sign-in card, and it carries
   min-height:100vh. Reusing the word here quietly stretched this block to a
   full viewport of white space inside the price card. */
.sendgate{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;display:flex;gap:14px;
  align-items:flex-start;flex-wrap:wrap}
.sendgate .primary{flex:none}
.sendgate-why{flex:1;min-width:220px;font-size:12.5px;color:var(--ink-2)}
.sendgate-why p{margin:0 0 4px}
.sendgate.shut .primary{opacity:.45}
.sendgate-why .foot{margin-top:6px}

/* ─── draft panel ─── */
.draft-card{border-left:3px solid var(--warn)}
.draft-top{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
.stamp{flex:none;font-size:12px;font-weight:900;letter-spacing:.14em;color:var(--warn);
  border:2px solid var(--warn-line);border-radius:6px;padding:5px 10px;transform:rotate(-4deg);background:var(--warn-bg)}
.qgroups{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:10px;
  align-items:start}
.qgroup{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.qgroup .qhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.qgroup .qhead b{font-size:13px;color:var(--warn)}
.qgroup .qhead span{font-size:10.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.qgroup ul{margin:0;padding:0;list-style:none}
.qgroup li{padding:4px 0;border-top:1px dotted var(--line);font-size:12px;color:var(--ink-2);line-height:1.45}
.qgroup li:first-child{border-top:none}
.qgroup li b{display:inline;color:var(--ink);font-weight:600}
.qgroup li em{font-style:normal;font-variant-numeric:tabular-nums;color:var(--warn);font-weight:650}
.qgroup li span{display:block;color:var(--ink-3);font-size:11.5px}
.ok-card{border-left:3px solid var(--ok)}
.warn-card{border-left:3px solid var(--must)}
.warn-card ul{margin:8px 0 0;padding-left:18px;font-size:12.5px;color:var(--ink-2)}
.warn-card li{margin-bottom:5px}
.warn-card b{text-transform:uppercase;font-size:10px;letter-spacing:.06em;color:var(--must);margin-right:5px}

/* ─── buckets and lines ─── */
.bucket{border:1px solid var(--line);border-radius:9px;margin-bottom:7px;background:var(--panel)}
.bucket>summary{display:flex;align-items:center;gap:11px;padding:9px 12px;cursor:pointer;list-style:none;font-size:13px}
.bucket>summary::-webkit-details-marker{display:none}
.bucket>summary::before{content:"▸";color:var(--ink-3);font-size:11px;transition:transform .15s}
.bucket[open]>summary::before{transform:rotate(90deg)}
.bucket .bname{font-weight:650;min-width:104px}
.bucket .bbar{flex:1;height:5px;background:var(--line);border-radius:3px;overflow:hidden;min-width:50px}
.bucket .bbar i{display:block;height:100%;background:var(--accent)}
.bucket .bshare{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;min-width:30px;text-align:right}
.bucket .bsum{min-width:96px;text-align:right}
.lines{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.lines td{padding:6px 12px;font-size:12.5px;border-bottom:1px solid var(--line);vertical-align:top}
.lines tr:last-child td{border-bottom:none}
.l-label{color:var(--ink)}
.l-note{display:block;font-size:11px;color:var(--ink-3)}
.l-qty,.l-unit{text-align:right;white-space:nowrap;color:var(--ink-2)}
.l-cents{text-align:right;white-space:nowrap}
.direct-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  border-top:2px solid var(--line-2);margin-top:8px;padding-top:9px;font-weight:650;font-size:13.5px}

/* ─── side panels ─── */
.qty-rows .qr{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;
  border-bottom:1px dotted var(--line);font-size:12.5px;color:var(--ink-2)}
.qty-rows .qr:last-child{border-bottom:none}
.mini.wide{width:100%}
textarea.mini{border:1px solid var(--line-2);border-radius:7px;background:var(--bg);padding:7px 9px;
  font-size:12.5px;resize:vertical;width:100%}
.adjnote{margin:4px 0 0;font-size:11.5px;color:var(--ink-3)}
.check{display:flex;align-items:flex-start;gap:7px;margin-top:11px;font-size:12.5px;font-weight:500;
  text-transform:none;letter-spacing:0;color:var(--ink)}
.check input{margin-top:2px;flex:none}
.check span{display:block;font-size:11px;color:var(--ink-3)}
.over-card{border-left:3px solid #B91C1C}
.ov-live b{display:block;font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.ov-live p{margin:4px 0;font-size:12.5px;color:var(--ink-2);font-style:italic}
.ov-live .foot{margin:0 0 10px}
.revs{max-height:190px;overflow-y:auto}
.rev-row{display:flex;gap:9px;align-items:baseline;padding:4px 0;border-bottom:1px dotted var(--line);font-size:11.5px}
.rev-row:last-child{border-bottom:none}
.rev-row b{font-weight:650;min-width:62px;color:var(--ink)}
.rev-row span{flex:1;color:var(--ink-2)}
.rev-row em{font-style:normal;color:var(--ink-3)}
.rev-row.pricing b{color:var(--accent)}

/* ─── derivation tree ─── */
.tv-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line)}
.tv-kind{font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.tv-big{font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.tv-what{font-size:12.5px;color:var(--ink-2);flex-basis:100%}
.tv-roots{margin:10px 0 0;display:flex;gap:5px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--ink-3)}
.tv-body{margin-top:14px}
.tv{margin-bottom:8px}
.tv-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.tv-label{font-size:12px;color:var(--ink-2);min-width:120px}
.tv-value{font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink)}
.tv-formula{margin:3px 0 0;font-size:12px;color:var(--ink-2);background:var(--bg);border:1px solid var(--line);
  border-radius:7px;padding:6px 9px;line-height:1.5;font-variant-numeric:tabular-nums}
.tv-note{margin:3px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.5}
.tv-kids{margin-top:5px}
.tv-kids>summary{font-size:11px;color:var(--ink-3);cursor:pointer;padding:2px 0;list-style:none}
.tv-kids>summary::-webkit-details-marker{display:none}
.tv-kids>summary::before{content:"▸ ";transition:none}
.tv-kids[open]>summary::before{content:"▾ "}
.tv-kids>summary:hover{color:var(--accent)}
.tv-rail{border-left:2px solid var(--line);margin-left:3px;padding-left:12px;margin-top:6px}
.tv.leaf .tv-head{padding:4px 0}
.pv-measured-edge{border-left:2px solid #1D4ED8;padding-left:9px;margin-left:-11px}
.pv-book-edge{border-left:2px solid #15803D;padding-left:9px;margin-left:-11px}
.pv-placeholder-edge{border-left:2px solid #92400E;padding-left:9px;margin-left:-11px}
.pv-override-edge{border-left:2px solid #B91C1C;padding-left:9px;margin-left:-11px}
.pv-index-edge{border-left:2px solid #6D28D9;padding-left:9px;margin-left:-11px}
.pv-field-edge{border-left:2px solid #0F766E;padding-left:9px;margin-left:-11px}
.drawer-panel:focus{outline:none}

@media (max-width:1080px){
  .sheetwrap{grid-template-columns:1fr}
  .sheetside{position:static}
}

/* ═════════════════ POC nav strip ═════════════════
   Three separate proof-of-concept apps, one row of links so the family can move
   between them without being handed three URLs. Static anchors and nothing else:
   no shared code, no shared session, no cross-app requests, no build coupling.
   Each app stays deployable, breakable and deletable on its own. */
.pocnav{position:sticky;top:0;z-index:50;height:var(--pocnav);display:flex;align-items:center;gap:2px;
  padding:0 18px;background:var(--ink);border-bottom:1px solid rgba(0,0,0,.2)}
html[data-theme="dark"] .pocnav{background:#0E0D09}
.pocnav .pocbrand{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.42);margin-right:12px;white-space:nowrap}
.pocnav a,.pocnav span.here{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.62);
  text-decoration:none;padding:4px 10px;border-radius:6px;white-space:nowrap}
.pocnav a:hover{color:#fff;background:rgba(255,255,255,.1)}
.pocnav span.here{color:var(--accent);background:rgba(255,255,255,.08)}
html[data-theme="dark"] .pocnav span.here{color:var(--accent)}
.pocnav .spacer{margin-left:auto}
.pocnav .note{font-size:10.5px;color:rgba(255,255,255,.34);white-space:nowrap}
@media (max-width:720px){
  .pocnav .pocbrand,.pocnav .note{display:none}
}

/* ─── calibration ─── */
.tag.calib{background:var(--info-bg);border-color:#BFD0F7;color:var(--info)}
html[data-theme="dark"] .tag.calib{background:#1B2133;border-color:#2E3A5C;color:#9DB8FF}
.calib-card{border-left:3px solid var(--info)}
.calib-card h3 .tag{margin-left:6px;vertical-align:2px}
