/* ============================================================
   Appraiser console. Loads after site.css and adds only
   what the data-entry screens need.
   ============================================================ */
:root{
  --g-exc:#1F6B45; --g-exc-bg:#E3F0E9;
  --g-vg:#2C6B7A;  --g-vg-bg:#E1EEF1;
  --g-good:#87620F;--g-good-bg:#F7F0DC;
  --g-fair:#A85A15;--g-fair-bg:#FAEBDD;
  --g-poor:#A8202A;--g-poor-bg:#FAE7E8;
  --g-na:#71767E;  --g-na-bg:#ECECE8;
}



/* ---------- file header ---------- */
.fileband{background:var(--surface);border-bottom:1px solid var(--rule)}
.fileband-in{padding-block:1.15rem 0}
.fb-top{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:flex-start}
.fb-id{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.fb-num{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;color:var(--accent);font-weight:600;
  display:inline-flex;align-items:center;gap:.6rem;
}
.fb-num .chip{
  border:1.5px solid var(--accent);color:var(--accent);background:var(--accent-soft);
  padding:.15rem .45rem;border-radius:2px;font-size:.625rem;letter-spacing:.12em;
}
.fb-veh{font-size:clamp(1.35rem,3.2vw,1.85rem);letter-spacing:-.03em;font-weight:700}
.fb-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.2rem}
.fb-act{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}

.metarow{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden;margin-top:1.25rem;
}
.metarow > div{background:var(--surface-2);padding:.65rem .8rem;display:flex;flex-direction:column;gap:.15rem}
.metarow dt{font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.metarow dd{margin:0;font-size:.875rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ---------- console tabs ---------- */
.ctabs{display:flex;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--rule);margin-top:1.25rem}
.ctabs button{
  appearance:none;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;
  font-family:var(--sans);font-size:.875rem;font-weight:550;color:var(--muted);
  padding:.85rem 1.05rem;white-space:nowrap;letter-spacing:-.01em;
}
.ctabs button:hover{color:var(--ink)}
.ctabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.ctabs .dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--brass);margin-left:.4rem;vertical-align:middle}

.panel{padding-block:clamp(1.5rem,4vw,2.5rem)}
.panel[hidden]{display:none}
.panel-head{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:baseline;justify-content:space-between;margin-bottom:1.35rem}
.panel-head h2{font-size:1.125rem;letter-spacing:-.02em}
.panel-head p{font-size:.875rem;max-width:64ch}

/* ---------- dense field grid ---------- */
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem 1.35rem}
.f{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.f > label{font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.f input,.f select,.f textarea{
  font-family:var(--sans);font-size:.9375rem;color:var(--ink);background:var(--surface);
  border:1px solid var(--rule-2);border-radius:3px;padding:.55rem .65rem;width:100%;
}
.f textarea{resize:vertical;min-height:88px;line-height:1.5;font-size:.9375rem}
.f input:hover,.f select:hover,.f textarea:hover{border-color:var(--ink-2)}
.f input[readonly]{background:var(--surface-2);color:var(--muted)}
.f .hint{font-family:var(--mono);font-size:.5625rem;letter-spacing:.08em;color:var(--muted)}
.f.wide{grid-column:1/-1}
.fblock{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:1.25rem 1.35rem;display:flex;flex-direction:column;gap:1.1rem}
.fblock > h3{font-family:var(--mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600}
.fstack{display:flex;flex-direction:column;gap:1rem}

/* ---------- condition grid ---------- */
.cond{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:.6rem 1.35rem}
.cond-sec{margin-bottom:1.5rem}
.cond-sec > h3{
  font-family:var(--mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);
  font-weight:600;padding-bottom:.5rem;border-bottom:2px solid var(--brass);margin-bottom:.9rem;
}
.ci{display:grid;grid-template-columns:1fr 118px;gap:.65rem;align-items:center}
.ci > span{font-size:.875rem;color:var(--ink-2);letter-spacing:-.01em}
.ci select{
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;
  border:1px solid transparent;border-radius:2px;padding:.4rem .5rem;width:100%;cursor:pointer;appearance:none;
  text-align:left;
}
.ci[data-grade="excellent"] select{background:var(--g-exc-bg);color:var(--g-exc);border-color:var(--g-exc)}
.ci[data-grade="very-good"] select{background:var(--g-vg-bg);color:var(--g-vg);border-color:var(--g-vg)}
.ci[data-grade="good"] select{background:var(--g-good-bg);color:var(--g-good);border-color:var(--g-good)}
.ci[data-grade="fair"] select{background:var(--g-fair-bg);color:var(--g-fair);border-color:var(--g-fair)}
.ci[data-grade="poor"] select{background:var(--g-poor-bg);color:var(--g-poor);border-color:var(--g-poor)}
.ci[data-grade="na"] select{background:var(--g-na-bg);color:var(--g-na);border-color:var(--rule-2)}

.overall{
  display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--brass);
  border-radius:0 4px 4px 0;padding:1.15rem 1.35rem;
}
.overall-l{display:flex;flex-direction:column;gap:.25rem}
.overall-l .lbl{font-family:var(--mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.overall-l .val{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.overall-l .sub{font-size:.8125rem;color:var(--muted)}
.spread{display:flex;height:8px;border-radius:2px;overflow:hidden;min-width:190px;flex:1;border:1px solid var(--rule)}
.spread i{display:block;height:100%}

/* ---------- options builder ---------- */
.optwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.5fr);gap:1rem}
@media (max-width:960px){.optwrap{grid-template-columns:minmax(0,1fr)}}
.optcol{background:var(--surface);border:1px solid var(--rule);border-radius:4px;display:flex;flex-direction:column;overflow:hidden}
.optcol > header{padding:.7rem .9rem;border-bottom:1px solid var(--rule);background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.optcol > header h3{font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.optcol ul{max-height:340px;overflow-y:auto}
.optcol li{padding:.45rem .9rem;font-size:.8125rem;color:var(--ink-2);border-bottom:1px solid var(--rule);cursor:pointer;display:flex;gap:.6rem}
.optcol li:hover{background:var(--accent-soft);color:var(--accent)}
.optcol li:last-child{border-bottom:none}
.optcol li .n{font-family:var(--mono);font-size:.6875rem;color:var(--accent);font-weight:600;flex:none;min-width:1.75rem;font-variant-numeric:tabular-nums}
.optcol li.sub{padding-left:1.9rem}
.optcol li.sub .n{color:var(--brass)}

/* ---------- notes split ---------- */
.notesplit{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1.35rem}
.notebox{border:1px solid var(--rule);border-radius:4px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}
.notebox > header{padding:.8rem 1rem;border-bottom:1px solid var(--rule);display:flex;flex-direction:column;gap:.3rem}
.notebox > header .t{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.notebox > header h3{font-size:.9375rem;letter-spacing:-.01em}
.notebox > header p{font-size:.8125rem;color:var(--muted);line-height:1.45}
.notebox textarea{border:0;border-radius:0;background:transparent;padding:1rem;min-height:210px;resize:vertical;font-size:.875rem;line-height:1.6;color:var(--ink);font-family:var(--sans);width:100%}
.notebox.private{border-color:var(--accent)}
.notebox.private > header{background:var(--accent-soft)}
.notebox.prints > header{background:var(--ok-soft)}
.notebox.prints{border-color:var(--ok)}

/* ---------- photo slots ---------- */
.slotwrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:.7rem}
.pslot{
  border:1px solid var(--rule);border-radius:4px;background:var(--surface);overflow:hidden;
  display:flex;flex-direction:column;
}
.pslot .thumb{aspect-ratio:4/3;display:grid;place-items:center;background:var(--surface-2);position:relative}
.pslot .thumb svg{width:24px;height:24px;color:var(--rule-2)}
.pslot.filled .thumb{background:var(--g-exc-bg)}
.pslot.filled .thumb svg{color:var(--g-exc)}
.pslot .cap{padding:.5rem .6rem;display:flex;flex-direction:column;gap:.2rem;border-top:1px solid var(--rule)}
.pslot .cap strong{font-size:.75rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.25}
.pslot .cap span{font-family:var(--mono);font-size:.5625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pslot.filled .cap span{color:var(--g-exc)}
.pslot.empty{border-style:dashed;border-color:var(--rule-2)}

.importbar{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:1rem 1.25rem;margin-bottom:1.25rem;
}
.importbar .l{display:flex;flex-direction:column;gap:.2rem}
.importbar .l strong{font-size:.9375rem;color:var(--ink)}
.importbar .l span{font-family:var(--mono);font-size:.625rem;letter-spacing:.08em;color:var(--muted)}

/* ---------- flags ---------- */
.flagrow{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.5rem}
.cflag{
  display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:start;
  background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:.85rem 1rem;
}
.cflag.crit{border-left:3px solid var(--accent)}
.cflag.warn{border-left:3px solid var(--brass)}
.cflag > svg{width:18px;height:18px;margin-top:.1rem;flex:none}
.cflag.crit > svg{color:var(--accent)}
.cflag.warn > svg{color:var(--brass)}
.cflag div{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.cflag strong{font-size:.875rem;color:var(--ink);font-weight:620;letter-spacing:-.01em}
.cflag span{font-size:.8125rem;color:var(--muted);line-height:1.5}

.stub{
  border:1.5px dashed var(--rule-2);border-radius:4px;padding:2.5rem 1.5rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;
}
.stub strong{font-size:.9375rem;color:var(--ink)}
.stub p{font-size:.875rem;color:var(--muted);max-width:52ch}

/* ---------- AI detection ---------- */
.detectbar{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--accent);
  border-radius:0 4px 4px 0;padding:1rem 1.25rem;margin-bottom:1.25rem;
}
.detectbar .l{display:flex;flex-direction:column;gap:.2rem}
.detectbar strong{font-size:.9375rem;color:var(--ink)}
.detectbar span{font-size:.8125rem;color:var(--muted)}
.det{display:grid;grid-template-columns:auto auto 1fr auto;gap:.85rem;align-items:center;
  padding:.7rem 1rem;border-bottom:1px solid var(--rule)}
.det:last-child{border-bottom:none}
.det .num{font-family:var(--mono);font-size:.75rem;color:var(--accent);font-weight:700;min-width:1.75rem;font-variant-numeric:tabular-nums}
.det .conf{
  font-family:var(--mono);font-size:.5625rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;
  padding:.2rem .45rem;border-radius:2px;white-space:nowrap;min-width:4.1rem;text-align:center;
}
.det[data-conf="high"] .conf{background:var(--g-exc-bg);color:var(--g-exc)}
.det[data-conf="med"] .conf{background:var(--g-good-bg);color:var(--g-good)}
.det[data-conf="low"] .conf{background:var(--g-fair-bg);color:var(--g-fair)}
.det .txt{font-size:.875rem;color:var(--ink);min-width:0}
.det .txt em{font-style:normal;color:var(--muted);font-size:.8125rem;display:block;margin-top:.1rem}
.det .act{display:flex;gap:.35rem}
.iconbtn{
  appearance:none;background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;
  width:28px;height:28px;display:grid;place-items:center;cursor:pointer;color:var(--muted);
}
.iconbtn:hover{border-color:var(--ink);color:var(--ink)}
.iconbtn svg{width:14px;height:14px}
@media (max-width:620px){.det{grid-template-columns:auto 1fr;gap:.5rem}.det .conf{grid-row:2}.det .act{grid-column:2;justify-self:start}}

/* ---------- comps ---------- */
.comptable{width:100%;border-collapse:collapse;font-size:.875rem;min-width:640px}
.comptable th{text-align:left;font-family:var(--mono);font-size:.5625rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);font-weight:600;padding:.65rem .9rem;
  background:var(--surface-2);border-bottom:1px solid var(--rule-2);white-space:nowrap}
.comptable td{padding:.75rem .9rem;border-bottom:1px solid var(--rule);color:var(--ink-2);vertical-align:top}
.comptable .n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.comptable tfoot td{border-top:1.5px solid var(--rule-2);background:var(--surface-2);color:var(--ink);font-weight:700;border-bottom:none}
.src{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--mono);font-size:.625rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--brass);font-weight:600}
.valuebox{
  display:flex;flex-wrap:wrap;gap:1rem 2.5rem;align-items:center;justify-content:space-between;
  background:var(--brass-soft);border:1px solid var(--brass);border-radius:4px;padding:1.15rem 1.35rem;margin-top:1rem;
}
.valuebox .lbl{font-family:var(--mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:700}
.valuebox .big{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}
.valuebox .how{font-size:.8125rem;color:var(--ink-2);max-width:44ch;line-height:1.5}

/* ---------- brand logo ---------- */
.brand-logo{height:34px;width:auto;display:block;flex:none}
.brand.with-logo{gap:.85rem}
.brand.with-logo .brand-text{padding-left:.85rem;border-left:1px solid var(--rule-2)}
@media (max-width:620px){.brand.with-logo .brand-text{display:none}.brand.with-logo{gap:0}}

/* ---------- admin nav ---------- */
.adminnav{display:flex;gap:.25rem;align-items:center}
.adminnav a{
  font-size:.875rem;font-weight:550;color:var(--muted);padding:.45rem .75rem;border-radius:3px;
}
.adminnav a:hover{color:var(--ink);background:var(--surface-2)}
.adminnav a[aria-current="page"]{color:var(--ink);background:var(--surface-2)}
@media (max-width:820px){.adminnav{display:none}}

/* ---------- KPI tiles ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden;margin-bottom:1.5rem}
.kpi{background:var(--surface);padding:1.05rem 1.15rem;display:flex;flex-direction:column;gap:.3rem}
.kpi dt{font-family:var(--mono);font-size:.5625rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.kpi dd{margin:0;font-size:1.65rem;font-weight:700;letter-spacing:-.035em;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1}
.kpi .sub{font-family:var(--mono);font-size:.5625rem;letter-spacing:.08em;color:var(--muted)}
.kpi.alert dd{color:var(--accent)}
.kpi.alert .sub{color:var(--accent)}
.kpi.good dd{color:var(--g-exc)}

/* ---------- alert band ---------- */
.alertband{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;align-items:center;
  background:var(--accent-soft);border:1px solid var(--accent);border-radius:4px;
  padding:.9rem 1.15rem;margin-bottom:1.5rem}
.alertband svg{width:19px;height:19px;color:var(--accent);flex:none}
.alertband .t{flex:1;min-width:200px;display:flex;flex-direction:column;gap:.1rem}
.alertband strong{font-size:.9375rem;color:var(--accent);font-weight:650}
.alertband span{font-size:.8125rem;color:var(--ink-2)}

/* ---------- data table ---------- */
.dtable{width:100%;border-collapse:collapse;font-size:.875rem;min-width:820px}
.dtable th{text-align:left;font-family:var(--mono);font-size:.5625rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);font-weight:600;padding:.7rem .9rem;
  background:var(--surface-2);border-bottom:1px solid var(--rule-2);white-space:nowrap}
.dtable td{padding:.8rem .9rem;border-bottom:1px solid var(--rule);color:var(--ink-2);vertical-align:middle}
.dtable tbody tr:hover{background:var(--surface-2)}
.dtable tbody tr:last-child td{border-bottom:none}
.dtable .n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.dtable .fno{font-family:var(--mono);font-size:.75rem;color:var(--accent);font-weight:600;white-space:nowrap}
.dtable .who{color:var(--ink);font-weight:560}
.dtable .veh{font-size:.8125rem;color:var(--muted)}
.due{font-family:var(--mono);font-size:.6875rem;font-weight:700;white-space:nowrap}
.due.over{color:var(--accent)}
.due.soon{color:var(--warn)}
.due.ok{color:var(--muted)}

/* ---------- pipeline ---------- */
.pipeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden;margin-bottom:1.5rem}
.pstage{background:var(--surface);padding:.85rem .9rem;display:flex;flex-direction:column;gap:.35rem;
  border-top:3px solid var(--rule-2)}
.pstage.hot{border-top-color:var(--accent)}
.pstage.warm{border-top-color:var(--brass)}
.pstage.done{border-top-color:var(--g-exc)}
.pstage .c{font-size:1.35rem;font-weight:700;color:var(--ink);letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1}
.pstage .l{font-family:var(--mono);font-size:.5625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.pstage .v{font-family:var(--mono);font-size:.625rem;color:var(--brass)}

/* ---------- CRM ---------- */
.crmfilter{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.15rem}
.chip{appearance:none;cursor:pointer;font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:600;padding:.42rem .7rem;border-radius:2px;
  border:1px solid var(--rule-2);background:var(--surface);color:var(--muted)}
.chip:hover{border-color:var(--ink-2);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.noteline{font-size:.8125rem;color:var(--muted);line-height:1.45;max-width:46ch}

/* ---------- guided flow ---------- */
.wizwrap{max-width:860px;margin:0 auto}
.wizsteps{display:flex;overflow-x:auto;gap:0;border-bottom:1px solid var(--rule);margin-bottom:1.75rem}
.wizstep{flex:1 0 auto;display:flex;flex-direction:column;gap:.3rem;padding:.85rem 1rem .8rem 0;
  border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;opacity:.5}
.wizstep .n{font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;color:var(--muted);font-weight:700}
.wizstep .t{font-size:.8125rem;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.wizstep[data-state="current"]{opacity:1;border-bottom-color:var(--accent)}
.wizstep[data-state="current"] .n{color:var(--accent)}
.wizstep[data-state="done"]{opacity:1}
.wizstep[data-state="done"] .n{color:var(--g-exc)}
.wizstep[data-state="done"] .n::after{content:" ✓"}

.wizpanel[hidden]{display:none}
.wizhead{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.35rem}
.wizhead h2{font-size:clamp(1.35rem,3vw,1.75rem);letter-spacing:-.025em}
.wizhead p{font-size:.9375rem;color:var(--muted);max-width:60ch}
.wizfoot{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;
  margin-top:1.75rem;padding-top:1.35rem;border-top:1px solid var(--rule)}
.wizfoot .right{display:flex;gap:.6rem;align-items:center}
.wizhint{font-family:var(--mono);font-size:.625rem;letter-spacing:.09em;color:var(--muted)}

/* purpose cards */
.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:.75rem}
.pick{appearance:none;text-align:left;cursor:pointer;background:var(--surface);
  border:1px solid var(--rule-2);border-radius:4px;padding:1rem 1.1rem;
  display:flex;flex-direction:column;gap:.3rem;font-family:var(--sans)}
.pick:hover{border-color:var(--ink-2)}
.pick[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.pick .pt{font-size:.9375rem;font-weight:650;color:var(--ink);letter-spacing:-.01em}
.pick .pv{font-family:var(--mono);font-size:.5625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--brass);font-weight:600}
.pick .pf{font-family:var(--mono);font-size:.75rem;color:var(--ink-2);font-variant-numeric:tabular-nums}

/* quick condition */
.quickgrade{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.15rem;align-items:center}
.quickgrade .lbl{font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-right:.35rem}

/* summary */
.sumrow{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1rem;align-items:baseline;
  padding:.65rem 0;border-bottom:1px solid var(--rule)}
.sumrow dt{font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);min-width:8rem}
.sumrow dd{margin:0;font-size:.9375rem;color:var(--ink)}
.sumrow.missing dd{color:var(--accent)}

/* ---------- comp viewer ---------- */
.sheet{position:fixed;inset:0;z-index:80;display:none;background:rgba(20,22,26,.55);
  padding:clamp(.75rem,4vw,3rem);overflow-y:auto}
.sheet[data-open="1"]{display:block}
.sheetcard{max-width:820px;margin:0 auto;background:var(--surface);border:1px solid var(--rule);
  border-radius:5px;box-shadow:var(--shadow-lg);overflow:hidden}
.sheethead{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;
  padding:1rem 1.25rem;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.sheethead h3{font-size:1rem;letter-spacing:-.015em;line-height:1.3}
.sheethead .sub{font-family:var(--mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.25rem}
.sheetbody{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}
.sheetimg{width:100%;border:1px solid var(--rule);border-radius:4px;background:var(--surface-2);
  aspect-ratio:16/10;object-fit:cover;display:block}
.sheetfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden}
.sheetfacts div{background:var(--surface);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.15rem}
.sheetfacts dt{font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sheetfacts dd{margin:0;font-size:.875rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.sheetsum{font-size:.875rem;line-height:1.55;color:var(--ink-2)}
.sheetfoot{padding:.9rem 1.25rem;border-top:1px solid var(--rule);background:var(--surface-2);
  display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:space-between}
.sheetload{padding:3rem 1.25rem;text-align:center;font-family:var(--mono);font-size:.6875rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.comptable tbody tr{cursor:pointer}
.comptable tbody tr:hover{background:var(--surface-2)}
.thumbcell{width:64px}
.thumbcell img{width:56px;height:38px;object-fit:cover;border-radius:3px;border:1px solid var(--rule);display:block}

/* the stage control belongs with the file, not in the action bar */
.statusline{display:flex;align-items:center;gap:.6rem;margin:.6rem 0 .15rem}
.statusline label{font-family:var(--mono);font-size:.5625rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);font-weight:600}
.statusline select{
  font-family:var(--sans);font-size:.875rem;font-weight:600;color:var(--ink);
  background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;
  padding:.4rem 2rem .4rem .65rem;cursor:pointer;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) 54%,calc(100% - 10px) 54%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat,no-repeat}
.statusline select:hover{border-color:var(--ink-2)}
.appbar-who{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--ink-2)}

/* comp selection */
.pickcell{width:34px;text-align:center}
.pickcell input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.comptable tr.archived td{opacity:.5}
.comptable tr.archived .lead-cell{text-decoration:line-through;text-decoration-color:var(--muted)}
.selbar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;justify-content:space-between;
  background:var(--surface-2);border:1px solid var(--rule);border-radius:4px;padding:.7rem 1rem;margin-bottom:.75rem}
.selbar .c{font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.selbar .c b{color:var(--ink)}
.archhead{font-family:var(--mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);padding:.75rem 1rem .35rem;background:var(--surface-2);border-top:1px solid var(--rule-2)}

/* ============================================================
   Mobile. He works from a driveway, not a desk.
   ============================================================ */
@media (max-width:760px){
  .appbar-in{height:auto;padding-block:.65rem;flex-wrap:wrap;gap:.6rem}
  .appbar-who{display:none}
  .fb-top{flex-direction:column;align-items:stretch}
  .fb-act{width:100%}
  .fb-act .btn,.fb-act a.btn{flex:1;justify-content:center;text-align:center}
  .fb-veh{font-size:1.25rem}
  .metarow{grid-template-columns:repeat(2,1fr)}
  .statusline{flex-direction:column;align-items:flex-start;gap:.3rem}
  .statusline select{width:100%}
  .ctabs{gap:0;-webkit-overflow-scrolling:touch}
  .ctabs button{padding:.8rem .8rem;font-size:.8125rem}
  .panel-head{flex-direction:column;align-items:stretch;gap:.75rem}
  .panel-head .btn{align-self:flex-start}
  .fgrid{grid-template-columns:1fr}
  .cond{grid-template-columns:1fr}
  .ci{grid-template-columns:1fr 120px}
  .split{grid-template-columns:1fr !important}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .pipeline{grid-template-columns:repeat(3,1fr)}
  .importbar,.detectbar,.selbar,.overall,.valuebox{flex-direction:column;align-items:stretch;gap:.75rem}
  .valuebox .big{font-size:1.5rem}
  .alertband{flex-direction:column;align-items:stretch}
  .alertband .btn{width:100%;justify-content:center}
  .slotwrap{grid-template-columns:repeat(2,1fr)}
  .sheetcard{margin:0}
  .sheetfacts{grid-template-columns:repeat(2,1fr)}

  /* wide tables become stacked cards, no sideways scrolling */
  .comptable,.dtable{min-width:0;width:100%;display:block}
  .comptable thead,.dtable thead{display:none}
  .comptable tbody,.dtable tbody,
  .comptable tfoot,.dtable tfoot{display:block}
  .comptable tr,.dtable tr{
    display:grid;grid-template-columns:auto 1fr;gap:.15rem .6rem;
    padding:.75rem .85rem;border-bottom:1px solid var(--rule);align-items:center}
  .comptable td,.dtable td{border:0;padding:.1rem 0;display:block}
  .comptable td.pickcell{grid-row:1;grid-column:1}
  .comptable td.thumbcell{grid-row:1 / span 2;grid-column:1}
  .comptable td.thumbcell img{width:52px;height:36px}
  .comptable td.lead-cell,.dtable td.who{grid-column:2;font-weight:600;color:var(--ink)}
  .comptable td.n:before,.dtable td.n:before{
    content:attr(data-l) " ";font-family:var(--mono);font-size:.5625rem;
    letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .comptable td.n,.dtable td.n{grid-column:2;text-align:left}
  .comptable tfoot tr,.dtable tfoot tr{grid-template-columns:1fr auto;background:var(--surface-2)}
  .scroll{overflow-x:visible}
}
@media (max-width:420px){
  .kpis,.slotwrap{grid-template-columns:1fr}
  .metarow{grid-template-columns:1fr}
  .pipeline{grid-template-columns:repeat(2,1fr)}
}

/* ---------- mobile, second pass: it was too tall and too loose ---------- */
@media (max-width:760px){
  .shellbar-in{padding-block:.4rem}
  .shellbar p,.shellbar a{font-size:.5625rem;letter-spacing:.08em}

  .appbar-in{height:56px;padding-block:0;flex-wrap:nowrap;gap:.5rem}
  .brand-logo{height:26px}
  .appbar .fb-act{width:auto;margin-left:auto}
  .appbar .fb-act .btn{flex:0 0 auto;padding:.45rem .7rem;font-size:.75rem}

  /* the seven stat tiles were a mile of scrolling; make them one swipe */
  .metarow{display:flex;overflow-x:auto;gap:1px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
  .metarow > div{flex:0 0 42%;scroll-snap-align:start;padding:.55rem .7rem}
  .metarow dd{font-size:.8125rem}

  .fileband-in{padding-block:.85rem 0}
  .fb-veh{font-size:1.15rem;margin-top:.15rem}
  .fb-num{font-size:.6875rem}
  .fb-tags{gap:.3rem}
  .statusline{margin:.5rem 0 .1rem}

  /* actions sit side by side, not stacked full width */
  .fileband .fb-act{display:flex;gap:.5rem;margin-top:.6rem}
  .fileband .fb-act .btn{flex:1;padding:.7rem .5rem;font-size:.8125rem}

  /* tabs stay reachable while scrolling a long panel */
  .ctabs{position:sticky;top:56px;z-index:20;background:var(--surface);
    box-shadow:0 1px 0 var(--rule);scrollbar-width:none}
  .ctabs::-webkit-scrollbar{display:none}
  .ctabs button{padding:.7rem .75rem;font-size:.8125rem}

  .panel{padding-block:1rem}
  .panel-head h2{font-size:1.0625rem}
  .fblock{padding:1rem}
  .f input,.f select,.f textarea{font-size:16px;padding:.6rem .65rem}  /* 16px stops iOS zooming on focus */
  .ci select{font-size:.75rem}

  .sheet{padding:0}
  .sheetcard{border-radius:0;min-height:100vh}
  .sheetimg{aspect-ratio:4/3}

  .btn{min-height:44px}          /* a real tap target */
  .iconbtn{width:36px;height:36px}
  .chip{padding:.55rem .8rem}
}

/* ---------- pipeline, readable version ---------- */
.pipeline{border-top:0}
.pstage{
  appearance:none;font-family:var(--sans);text-align:left;cursor:pointer;
  background:var(--surface);padding:.85rem .9rem .7rem;
  display:flex;flex-direction:column;gap:.3rem;border:0;border-top:2px solid var(--rule);
  transition:background-color .15s ease;
}
.pstage:hover:not(:disabled){background:var(--surface-2)}
.pstage:disabled{cursor:default}
.pstage .c{font-size:1.35rem;font-weight:700;letter-spacing:-.03em;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums}
.pstage .l{font-family:var(--mono);font-size:.5625rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted)}
.pstage .bar{display:block;height:3px;border-radius:2px;background:var(--surface-2);margin-top:.15rem;overflow:hidden}
.pstage .bar i{display:block;height:100%;border-radius:2px;background:var(--rule-2)}

/* an empty stage should recede, not shout a zero */
.pstage.idle{border-top-color:var(--rule)}
.pstage.idle .c{color:var(--rule-2);font-weight:400}
.pstage.idle .bar{visibility:hidden}
.pstage.hot{border-top-color:var(--accent)}
.pstage.hot .c{color:var(--accent)}
.pstage.hot .bar i{background:var(--accent)}
.pstage.warm{border-top-color:var(--brass)}
.pstage.warm .bar i{background:var(--brass)}
.pstage.done{border-top-color:var(--g-exc)}
.pstage.done .c{color:var(--g-exc)}
.pstage.done .bar i{background:var(--g-exc)}

/* ---------- step navigation ---------- */
.stepnav{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;
  margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--rule)}
.stepwhere{font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted)}
.ctabs .dot{background:var(--brass)}
.ctabs .dot.ok{background:var(--g-exc)}
@media (max-width:760px){
  .stepnav{margin-top:1.35rem;padding-top:1rem}
  .stepnav .btn{flex:1;justify-content:center;min-width:0}
  .stepnav .stepwhere{order:3;width:100%;text-align:center}
}

/* VIN lookup */
.vinrow{display:flex;gap:.5rem;align-items:stretch}
.vinrow input{flex:1;min-width:0;font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase}
.vinrow .btn{flex:0 0 auto;white-space:nowrap}
.vinmsg{margin:.5rem 0 0;font-size:.8125rem;line-height:1.5;padding:.6rem .75rem;border-radius:3px;
  background:var(--surface-2);border-left:3px solid var(--line)}
.vinmsg.good{border-left-color:var(--g-exc)}
.vinmsg.note{border-left-color:var(--warn,#b7791f)}
.vinmsg.bad{border-left-color:var(--accent)}
.vinmsg .vh{color:var(--ink-3);display:inline-block;margin-top:.15rem}
.vinmsg .btn.sm{margin-top:.4rem;font-family:var(--mono);font-size:.75rem}

/* Photos: taken on the phone, or added from the device */
.photobar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}
.phbtn{cursor:pointer}
.phcount{font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3)}
.phdrop{border:1px dashed var(--rule-2);border-radius:4px;padding:1.5rem 1.25rem;
  text-align:center;background:var(--surface-2);transition:border-color .15s ease,background-color .15s ease}
.phdrop.over{border-color:var(--accent);background:var(--accent-soft)}
.phdrop p{margin:0}
.phdrop .hint{font-size:.8125rem;color:var(--ink-3);margin-top:.3rem}
.phprogress{margin-top:.8rem;font-family:var(--mono);font-size:.75rem;color:var(--ink-3)}
.phgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.85rem;margin-top:1.1rem}
.phcard{margin:0;border:1px solid var(--rule);border-radius:4px;overflow:hidden;background:var(--surface)}
.phcard img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--surface-2)}
.phcard figcaption{display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:.5rem .6rem;font-size:.75rem;color:var(--ink-3);border-top:1px solid var(--rule)}
.phcard figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phdel{border:0;background:none;color:var(--accent);font:inherit;cursor:pointer;padding:.15rem .2rem;flex:none}
.phdel:hover{text-decoration:underline}
@media (max-width:520px){.phgrid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}}

/* In-page confirm, so no native browser dialog ever shows */
.cfm-back{position:fixed;inset:0;background:rgba(20,22,26,.42);display:grid;place-items:center;
  padding:1.25rem;z-index:200}
.cfm{background:var(--surface);border:1px solid var(--rule-2);border-radius:5px;
  padding:1.4rem 1.5rem;max-width:24rem;width:100%;box-shadow:0 24px 60px -20px rgba(0,0,0,.4)}
.cfm h3{margin:0;font-size:1.0625rem;letter-spacing:-.02em}
.cfm p{margin:.5rem 0 0;font-size:.9375rem;color:var(--ink-3);line-height:1.5}
.cfm-row{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.25rem}

/* Stripe payment block */
.payblock{margin-top:1.25rem;padding-top:1.1rem;border-top:1px solid var(--rule)}
.payhead{display:flex;align-items:flex-start;gap:.75rem}
.payhead svg{width:22px;height:22px;color:var(--accent);flex:none;margin-top:.15rem}
.payhead h4{margin:0;font-size:.9375rem;letter-spacing:-.015em}
.payhead p{margin:.2rem 0 0;font-size:.8125rem;line-height:1.5;color:var(--ink-3)}
.paymode{margin-left:auto;flex:none;font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;
  text-transform:uppercase;padding:.25rem .5rem;border-radius:2px;background:var(--surface-2);color:var(--ink-3)}
.paymode.live{background:var(--g-exc-soft,#E5EFEA);color:var(--g-exc)}
.payrow{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.9rem}
.paymsg{margin:.75rem 0 0;font-size:.8125rem;line-height:1.5;padding:.55rem .7rem;border-radius:3px;
  background:var(--surface-2);border-left:3px solid var(--rule)}
.paymsg.good{border-left-color:var(--g-exc)}
.paymsg.note{border-left-color:var(--brass,#b7791f)}
.paymsg.bad{border-left-color:var(--accent)}

/* Checkbox rows in settings */
.checks{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}
.ck{display:flex;align-items:center;gap:.6rem;font-size:.9375rem;color:var(--ink-2);cursor:pointer}
.ck input{width:17px;height:17px;accent-color:var(--accent);flex:none;cursor:pointer}

/* The VIN leads the vehicle step, because it fills the rest in */
.vinlead{border-left:3px solid var(--accent);padding-left:1.1rem}
.vinlead-sub{margin:.35rem 0 .9rem;font-size:.875rem;line-height:1.55;color:var(--ink-3);max-width:58ch}
.vinlead .vinrow{max-width:34rem}
.vinlead .vinrow input{font-size:1rem;padding:.7rem .8rem}

/* The client link button lives on the file header */
.statusline #sharebtn{margin-right:.75rem}
.sharemsg{font-size:.8125rem;color:var(--ink-3);margin-right:.75rem}
.sharemsg.good{color:var(--g-exc)}
.sharemsg.bad{color:var(--accent)}

/* Condition: graded, ungraded, and the running total */
.condacts select{font-family:var(--sans);font-size:.8125rem;padding:.5rem .7rem;
  border:1px solid var(--rule-2);border-radius:3px;background:var(--surface);color:var(--ink)}
.condprog{font-size:.875rem;padding:.7rem .9rem;border-radius:3px;margin-bottom:1.25rem;
  background:var(--surface-2);border-left:3px solid var(--rule-2)}
.condprog.warn{border-left-color:var(--brass,#87620F)}
.condprog.done{border-left-color:var(--g-exc)}
.condprog span{color:var(--ink-3)}
.condgroup{margin-bottom:1.5rem}
.condgroup h3{font-family:var(--mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass,#87620F);margin:0 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule)}
.condgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem .9rem}
.ci{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.ci > span{font-size:.875rem;color:var(--ink-2)}
.ci select{font-family:var(--mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;
  padding:.4rem .5rem;border:1px solid var(--rule-2);border-radius:3px;background:var(--surface);
  color:var(--ink-3);min-width:8.5rem}
.ci.g-todo select{border-style:dashed;color:var(--ink-3)}
.ci.g-exc select{border-color:var(--g-exc);color:var(--g-exc)}
.ci.g-vg  select{border-color:var(--g-vg,#2f6f4f);color:var(--g-vg,#2f6f4f)}
.ci.g-good select{border-color:#7a7a2e;color:#7a7a2e}
.ci.g-fair select{border-color:var(--brass,#87620F);color:var(--brass,#87620F)}
.ci.g-poor select{border-color:var(--accent);color:var(--accent)}
.overridewrap{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}
.overridewrap label{font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.overridewrap select{font-size:.8125rem;padding:.35rem .5rem;border:1px solid var(--rule-2);
  border-radius:3px;background:var(--surface);color:var(--ink)}
.spread i.s-exc{background:var(--g-exc)} .spread i.s-vg{background:var(--g-vg,#2f6f4f)}
.spread i.s-good{background:#7a7a2e} .spread i.s-fair{background:var(--brass,#87620F)}
.spread i.s-poor{background:var(--accent)}
.val.g-poor{color:var(--accent)} .val.g-fair{color:var(--brass,#87620F)}
.val.g-exc{color:var(--g-exc)}

/* A document the appraisal cannot proceed without (portal checklist). */
.req-must{display:inline-block;margin-left:.4rem;padding:.05rem .5rem;border:1px solid var(--brass,#87620F);
  border-radius:99px;color:var(--brass,#87620F);font-size:.625rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;vertical-align:2px;white-space:nowrap}

/* The valuation bench: adding an adjustment. Fixed columns on a desktop,
   stacked on a phone, because he works this from a driveway. */
.bn-addrow{grid-template-columns:10rem 8rem minmax(0,1fr) auto;align-items:end;margin-top:.6rem}
.bn-addrow .f{min-width:0}
@media (max-width:760px){
  .bn-addrow{grid-template-columns:1fr 1fr}
  .bn-addrow .f:nth-child(3),.bn-addrow .f:nth-child(4){grid-column:1/-1}
}

/* The scroll wrapper had no base rule at all: it only appeared inside the
   760px block, so wide tables overflowed the body on a desktop. */
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---- the valuation bench, three zones ---- */
.bn-zone{margin-top:1rem}
.bn-strip{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;
  padding:.7rem 1rem;border:1px solid var(--rule-2);border-radius:4px;background:var(--surface)}
.bn-strip-range{font-family:var(--mono);font-size:1.0625rem;font-weight:600}
.bn-strip-meta{font-size:.8125rem;color:var(--muted)}
.bn-chip{display:inline-block;padding:.1rem .55rem;border:1px solid;border-radius:99px;
  font-size:.6875rem;font-weight:600;letter-spacing:.03em;white-space:nowrap}
.bn-card{border:1px solid var(--rule-2);border-radius:4px;background:var(--surface);margin-top:.5rem}
.bn-card.is-open{border-color:var(--rule-1,#c9c4ba)}
.bn-row{display:flex;align-items:center;gap:.9rem;width:100%;padding:.65rem .9rem;background:none;
  border:0;cursor:pointer;text-align:left;font:inherit;color:inherit;min-height:56px}
.bn-row-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.bn-row-t strong{font-size:.9375rem}
.bn-row-t .hint{font-size:.75rem}
.bn-row-n{display:flex;flex-direction:column;align-items:flex-end;font-family:var(--mono)}
.bn-row-n strong{font-size:1rem}
.bn-card-body{padding:0 .9rem .9rem;border-top:1px solid var(--rule-2)}
.bn-adjtable{width:100%;border-collapse:collapse;margin-top:.6rem}
.bn-adjtable th{font-family:var(--mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--rule-2)}
.bn-adjtable td{padding:.45rem .5rem;border-bottom:1px solid var(--rule-2);font-size:.875rem;vertical-align:top}
.bn-adjtable td.n,.bn-adjtable th.n{text-align:right}
.bn-aside{margin-top:.75rem}
.bn-aside summary{cursor:pointer;font-size:.875rem;color:var(--muted);padding:.4rem 0}
.bn-conclude{border-top:3px solid var(--brass);padding-top:1rem}
.bn-point{font-family:var(--mono);font-size:clamp(1.75rem,5vw,2.375rem);font-weight:700;letter-spacing:-.01em}
.bn-ask{position:fixed;inset:0;background:rgba(20,18,14,.45);display:flex;align-items:center;
  justify-content:center;z-index:60;padding:1rem}
.bn-ask-card{background:var(--paper,#fff);border-radius:6px;padding:1.25rem;max-width:26rem;width:100%;
  display:flex;flex-direction:column;gap:.9rem;box-shadow:0 12px 40px rgba(0,0,0,.25)}
@media (max-width:760px){
  .bn-adjtable thead{display:none}
  .bn-adjtable tr{display:grid;grid-template-columns:auto 1fr;gap:.1rem .6rem;padding:.45rem 0;border-bottom:1px solid var(--rule-2)}
  .bn-adjtable td{display:block;border:0;padding:.1rem 0}
  .bn-adjtable td[data-l]::before{content:attr(data-l);display:block;font-family:var(--mono);
    font-size:.5625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .bn-adjtable td.n{text-align:left}
  .bn-row{flex-wrap:wrap}
}
@media (max-width:760px){
  /* On a phone the wide tables become stacked cards, so the wrapper must not
     scroll; this re-assertion keeps the earlier mobile rule winning. */
  .scroll{overflow-x:visible}
}

/* The invoice: line items he can add to */
.invblock{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--rule)}
.invhead h4{margin:0;font-size:1rem;letter-spacing:-.015em}
.invhead p{margin:.2rem 0 1rem;font-size:.8125rem;line-height:1.55;color:var(--ink-3);max-width:60ch}
.invtable{width:100%;border-collapse:collapse;font-size:.875rem}
.invtable th{text-align:left;font-family:var(--mono);font-size:.5625rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);padding:.4rem .5rem;border-bottom:1px solid var(--rule)}
.invtable th.n,.invtable td.n{text-align:right}
.invtable td{padding:.35rem .5rem;border-bottom:1px solid var(--rule);vertical-align:middle}
.invtable input{width:100%;font:inherit;font-size:.875rem;padding:.4rem .5rem;
  border:1px solid var(--rule);border-radius:3px;background:var(--surface);color:var(--ink)}
.invtable td.n input{text-align:right}
.invtable td:nth-child(2) input{max-width:4.5rem}
.invtable td:nth-child(3) input{max-width:7rem}
.invtable tfoot td{border-bottom:0;padding-top:.6rem;font-size:.9375rem}
.invempty{color:var(--ink-3);font-style:italic;padding:.9rem .5rem}
.invdel{border:0;background:none;color:var(--accent);font:inherit;font-size:.8125rem;cursor:pointer;padding:.2rem}
.invdel:hover{text-decoration:underline}
.invadd{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.85rem}
.invadd select{font:inherit;font-size:.8125rem;padding:.45rem .6rem;border:1px solid var(--rule-2);
  border-radius:3px;background:var(--surface);color:var(--ink);max-width:22rem}
.invterms{font-size:.8125rem;color:var(--ink-3);display:flex;align-items:center;gap:.4rem;margin-left:auto}
.invrow{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.invmsg{margin:.8rem 0 0;font-size:.875rem;line-height:1.55;padding:.6rem .75rem;border-radius:3px;
  background:var(--surface-2);border-left:3px solid var(--rule)}
.invmsg.good{border-left-color:var(--g-exc)}
.invmsg.note{border-left-color:var(--brass,#87620F)}
.invmsg.bad{border-left-color:var(--accent)}
@media (max-width:640px){
  .invtable td:nth-child(2) input,.invtable td:nth-child(3) input{max-width:none}
  .invterms{margin-left:0}
}

/* The demo login says what it is, at the top of every screen, so nobody
   discovers the limits by pressing a button and getting a refusal. */
.demobar{
  background:var(--accent-soft,#fbf1e2);
  border-bottom:1px solid var(--rule-2,#e3ded5);
  color:var(--ink,#221f1c);
  font-size:.8125rem; line-height:1.5;
  padding:.6rem 1.25rem; text-align:center;
  position:sticky; top:0; z-index:60;
}

/* ---- the comparable search, while it runs ----------------------------------
   A search takes thirty seconds on a common car and can reach two minutes when
   the market is thin and the AI goes hunting. A static "Working" line for that
   long reads as a hung page, so the panel shows what is actually happening:
   the stages light up as they are reached, and the bar keeps moving. */
.searching{
  background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;
  padding:1.1rem 1.2rem;
}
.searching h4{
  font-family:var(--sans);font-weight:600;font-size:.9375rem;margin:0 0 .2rem;
  display:flex;align-items:center;gap:.55rem;
}
.searching .el{
  margin-left:auto;font-family:var(--mono);font-size:.75rem;color:var(--muted);
  font-variant-numeric:tabular-nums;
}
.searching > p{font-size:.875rem;color:var(--muted);margin:0 0 .9rem}

/* the moving bar: an indeterminate sweep, because the finish is not knowable */
.sweep{height:3px;background:var(--rule);border-radius:2px;overflow:hidden;margin:0 0 1rem}
.sweep i{
  display:block;height:100%;width:38%;border-radius:2px;background:var(--accent);
  animation:sweep 1.5s ease-in-out infinite;
}
@keyframes sweep{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(320%)}
}

.stages{display:grid;gap:.5rem;margin:0}
.stage{
  display:flex;align-items:center;gap:.6rem;font-size:.875rem;
  color:var(--muted);transition:color .3s ease;
}
.stage .dot{
  width:.5rem;height:.5rem;border-radius:50%;background:var(--rule-2);flex:none;
  transition:background .3s ease,box-shadow .3s ease;
}
.stage.on{color:var(--ink)}
.stage.on .dot{
  background:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
  animation:pulse 1.4s ease-in-out infinite;
}
.stage.done{color:var(--ink-2)}
.stage.done .dot{background:var(--g-exc);box-shadow:none;animation:none}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}
  50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 6%, transparent)}
}

/* Someone who has switched motion off gets the same information, held still. */
@media (prefers-reduced-motion: reduce){
  .sweep i{animation:none;width:100%;opacity:.55}
  .stage.on .dot{animation:none}
}

/* The set-aside list is a defensibility record, not reading material. It
   collapses to one line and opens when the figure is being argued. */
.skipbox > summary{
  cursor:pointer;list-style:none;
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brass);
}
.skipbox > summary::-webkit-details-marker{display:none}
.skipbox > summary::before{content:"+ ";font-weight:600}
.skipbox[open] > summary::before{content:"- "}
.skipbox > summary:hover{color:var(--ink)}
.skipbox ul{margin:.7rem 0 0}
.skipbox li{margin-bottom:.35rem}

/* ---- the bench headline -----------------------------------------------------
   The figure was the last thing on a nine screen page, behind sixteen cards.
   It is the first thing now: the answer, the range it rests on, and the
   paragraph that prints, which the appraiser owns and can rewrite. */
.bn-hl{
  background:var(--surface);border:2px solid var(--ink);border-radius:4px;
  padding:1.4rem 1.4rem 1.2rem;margin:0 0 1.25rem;
}
.bn-hl.stale{border-color:var(--accent)}
.bn-hl-main{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-start}
.bn-hl-main > div:first-child{flex:1 1 18rem;min-width:0}
.bn-hl-lbl{
  font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.3rem;
}
.bn-hl.stale .bn-hl-lbl{color:var(--accent)}
.bn-hl-fig{
  font-family:var(--sans);font-weight:700;font-size:clamp(2.2rem,6vw,3.1rem);
  line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;
}
.bn-hl-none{
  font-family:var(--sans);font-weight:600;font-size:1.4rem;color:var(--muted);line-height:1.15;
}
.bn-hl-sub{margin:.5rem 0 0;font-size:.9063rem;color:var(--ink-2);max-width:46ch}
.bn-hl-act{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;flex:0 0 auto}

.bn-hl-range{
  display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;
  margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--rule);
}
.bn-hl-range .l{font-size:.8125rem;color:var(--muted)}
.bn-hl-range .v{
  font-family:var(--mono);font-size:1rem;margin-left:auto;
  font-variant-numeric:tabular-nums;color:var(--ink);
}

.bn-hl-why{margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--rule)}
.bn-hl-why label{
  font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.4rem;
}
.bn-hl-why textarea{
  width:100%;font:inherit;font-size:.9063rem;line-height:1.55;
  padding:.7rem .8rem;border:1px solid var(--rule-2);border-radius:3px;
  background:var(--paper);color:var(--ink);resize:vertical;min-height:6rem;
}
.bn-hl-why textarea:focus{outline:2px solid var(--ink);outline-offset:1px}
.bn-hl-whyact{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.5rem}
.bn-hl-note{margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--rule);
  font-size:.875rem;color:var(--muted)}

/* ---- the file header ---------------------------------------------------
   The client was a line of grey text under three buttons about other things.
   They are the reason the file exists, so they sit where the eye lands, and
   everything occasional moves behind More. */
.fb-who{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin-top:.45rem}
.fb-who .nm{font-family:var(--sans);font-weight:600;font-size:1.0625rem;color:var(--ink)}
.fb-who a{color:var(--ink-2);text-decoration:none;font-size:.9375rem;
  display:inline-flex;align-items:center;gap:.3rem}
.fb-who a:hover{color:var(--accent)}
.fb-who .sep{color:var(--rule-2)}
.fb-who .kind{font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--brass);border:1px solid var(--rule-2);
  border-radius:2px;padding:.1rem .4rem}

.fb-more{position:relative;display:inline-block}
.fb-menu{position:absolute;right:0;top:calc(100% + .4rem);z-index:40;
  background:var(--surface);border:1px solid var(--rule-2);border-radius:3px;
  box-shadow:0 10px 28px rgba(0,0,0,.12);min-width:17rem;padding:.4rem}
.fb-menu a,.fb-menu button{display:block;width:100%;text-align:left;
  background:none;border:0;font:inherit;font-size:.9063rem;color:var(--ink);
  padding:.5rem .6rem;border-radius:2px;cursor:pointer;text-decoration:none}
.fb-menu a:hover,.fb-menu button:hover{background:var(--paper)}
.fb-menu label{display:block;font-family:var(--mono);font-size:.5938rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.2rem .6rem .3rem}
.fb-menu select{width:calc(100% - 1.2rem);margin:0 .6rem .4rem;font:inherit;font-size:.875rem;
  padding:.35rem .4rem;border:1px solid var(--rule-2);border-radius:2px;
  background:var(--paper);color:var(--ink)}
.fb-menu-sep{height:1px;background:var(--rule);margin:.35rem .6rem}
