/* Report Builder page (report.html). Shares tokens, header, buttons and gate with styles.css and dev.css.
   Layout: report list on the left; work area with job header, progress bar, field cards by group, and an
   open-items rail. The report itself (preview and print) is a paper page in Aptos, the report font (typography spec 2026-10-16). */
.app.rb{grid-template-rows:auto 1fr}
.rbmain{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:0}
.rbmain>aside{overflow:auto}
.rbwork{overflow:auto;min-width:0;padding-block:18px 60px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.rbempty{color:var(--muted);padding:40px 0;text-align:center}
.rblist{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.rblist a{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:8px 10px;border-radius:6px;color:var(--ink);text-decoration:none;border:1px solid transparent}
.rblist a:hover{background:var(--soft)}
.rblist a[aria-current="page"]{background:var(--gold-soft);border-color:var(--gold)}
.rblist b{font-variant-numeric:tabular-nums;color:var(--green)}
.rblist span{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rblist small{grid-column:2;color:var(--muted);font-size:12px}
.rbnote{margin-top:14px;line-height:1.4}

.rbhead{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:flex-start;max-width:1200px}
.rbtitle{min-width:0}
.rbtitle .job{font:600 12px/1 var(--f-cond);letter-spacing:.08em;color:var(--green);background:var(--soft);border:1px solid var(--line);border-radius:4px;padding:3px 6px}
.rbtitle h1{margin:8px 0 2px;font-size:22px;text-wrap:balance}
.rbtitle p{margin:0;color:var(--muted)}
.rbmeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px 18px;margin:0;flex:1;min-width:260px}
.rbmeta div{min-width:0}
.rbmeta dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.rbmeta dd{margin:2px 0 0;font-size:13px}

.rbbar{position:sticky;top:-18px;z-index:5;display:flex;flex-wrap:wrap;gap:10px 20px;align-items:center;justify-content:space-between;background:var(--bg);padding-block:12px;margin-block:14px 6px;border-bottom:1px solid var(--line);max-width:1200px}
.prog{display:flex;align-items:center;gap:10px;font-size:13px;flex-wrap:wrap}
.prog a{color:var(--warn);font-weight:600}
.meter{width:180px;height:8px;border-radius:99px;background:var(--soft);border:1px solid var(--line);overflow:hidden}
.meter span{display:block;height:100%;background:var(--green-2)}
.acts{display:flex;gap:8px;flex-wrap:wrap}

.rbcols{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start;max-width:1200px}
h2.sec{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 8px}
.rbg{margin-bottom:22px}
.rbg h3{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:16px;margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid var(--gold)}
.rbg h3 small{font-size:12px;font-weight:500;color:var(--muted)}
.rbf{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:8px;display:grid;gap:6px}
.rbf.open.k-confirm{border-left-color:var(--gold)}
.rbf.open.k-enter{border-left-color:var(--warn)}
.rbf.done{border-left-color:var(--green-2)}
.rbf-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.rbf-h label{font-weight:600;flex:1;min-width:160px}
.kind{font:500 11px/1 var(--f-cond);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pill{font:600 11px/1 var(--f-cond);padding:3px 7px;border-radius:99px;border:1px solid}
.pill.ok{color:var(--green-2);border-color:var(--green-2)}
.pill.warn{color:#7a5a00;background:var(--gold-soft);border-color:var(--gold)}
.pill.need{color:var(--warn);border-color:var(--warn)}
.rbin{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:5px;background:var(--bg);line-height:1.45;resize:vertical}
.rbf.done .rbin{background:transparent}
.src{font-size:12px;color:var(--muted)}
.note{font-size:12px;color:var(--ink);background:var(--soft);border-radius:4px;padding:5px 8px;line-height:1.4}
.rbf-a{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.who{font-size:12px;color:var(--muted)}
.rbopen{position:sticky;top:60px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px;max-height:calc(100vh - 160px);overflow:auto}
.rbopen ol{margin:0;padding-left:20px;display:grid;gap:8px}
.rbopen li a{color:var(--ink);font-weight:600}
.rbopen li small{display:block;color:var(--muted);font-size:12px}

/* report page (fixed paper colors on purpose: it is the printed document) */
.rp{--rp-body:Aptos,"Segoe UI",Calibri,Arial,sans-serif;--rp-disp:"Aptos Display",Aptos,"Segoe UI",Calibri,Arial,sans-serif;--rp-semi:"Aptos SemiBold",Aptos,"Segoe UI",Calibri,Arial,sans-serif;--rp-green:#244636;--rp-ink:#333333;--rp-gold:#B59A5A}
.rbpreview{max-width:900px;background:#e9ebe6;padding:24px;border-radius:8px}
.rp{background:#fff;color:var(--rp-ink);font-family:var(--rp-body);font-size:10.5pt;line-height:1.45;padding:48px 56px;max-width:8.5in;margin:0 auto;box-shadow:0 2px 10px rgba(0,0,0,.15);position:relative}
.rp-run{display:flex;justify-content:flex-end;font-size:9pt;letter-spacing:.04em;color:var(--rp-ink);border-bottom:1px solid var(--rp-gold);padding-bottom:4px;margin-bottom:18px}
.rp-h{font-family:var(--rp-disp);font-size:16pt;font-weight:700;margin:22px 0 10px;color:var(--rp-green)}
.rp-h:first-of-type{margin-top:0}
.rp-sec{margin-bottom:14px;break-inside:avoid}
.rp-sec h3{font-family:var(--rp-semi);font-size:12pt;font-weight:600;color:var(--rp-ink);border-bottom:1px solid var(--rp-gold);padding:0 0 3px;margin:0 0 4px}
.rp table{width:100%;border-collapse:collapse}
.rp th{width:30%;text-align:left;vertical-align:top;font-family:var(--rp-semi);font-weight:600;font-size:10.5pt;padding:5px 8px;border-bottom:1px solid #e6e2d6;color:var(--rp-ink)}
.rp td{vertical-align:top;font-size:10.5pt;padding:5px 8px;border-bottom:1px solid #e6e2d6}
/* the site-wide table rule (styles.css) keeps cells on one line; report text cells wrap, number columns in grids stay on one line */
.rp th,.rp td{white-space:normal}
/* fact tables (Braden, 2026-10-17): gold title bar per group (white bold text, left), no label shading, no row rules, tight rows */
.rp-sec h3,.rp h3.rp-band{background:var(--rp-gold);color:#fff;font-family:var(--rp-semi);font-weight:700;text-transform:none;letter-spacing:0;text-align:left;font-size:10.5pt;line-height:1.3;padding:4px 8px;border:0;margin:14px 0 4px;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-after:avoid}
.rp table:not(.rp-grid) th{background:none;border:0;padding:2px 14px 2px 2px;width:28%}
.rp table:not(.rp-grid) td{background:none;border:0;padding:2px 2px;text-align:justify}
.rp table:not(.rp-grid) tr+tr th,.rp table:not(.rp-grid) tr+tr td{padding-top:3px}
.rp table.rp-grid td:not(:first-child){white-space:nowrap}
.rp table.rp-grid th{width:auto;text-align:right;font-weight:600;border-bottom:1px solid var(--rp-gold);font-size:10pt;line-height:1.25;vertical-align:bottom}
.rp table.rp-grid th:first-child,.rp table.rp-grid td:first-child{text-align:left}
.rp table.rp-grid td{text-align:right;font-variant-numeric:tabular-nums;padding:4px 8px;font-size:9.5pt}
.rp table.rp-grid tr.tot td{font-weight:700;border-top:1px solid var(--rp-ink);border-bottom:0}
.rp.draft table.rp-grid.unconf{background:#fffbe8}
.rp-p{margin:10px 0}
.rp-foot{margin-top:28px;border-top:1px solid var(--rp-gold);padding-top:4px;font-size:9pt;letter-spacing:.04em;color:var(--rp-ink);text-align:right}
.rp .pend{background:#fff3c4;color:#7a5a00;padding:0 3px;border-radius:2px}
.rp.draft td.unconf,.rp.draft p.unconf{background:#fffbe8}
.print{display:none}

@media (max-width:900px){
  .rbmain{grid-template-columns:1fr}
  .rbmain>aside{border-right:0;border-bottom:1px solid var(--line);max-height:30vh}
  .rbcols{grid-template-columns:1fr}
  .rbopen{position:static;max-height:none}
  .rp{padding:28px 20px}
}
@media print{
  @page{size:letter;margin:0.6in}
  body{background:#fff}
  #app,#gate,.flash{display:none!important}
  .print{display:block}
  .rp{box-shadow:none;padding:0;max-width:none}
  .rp.draft td.unconf,.rp.draft p.unconf{background:none}
  .wm{position:fixed;top:40%;left:0;right:0;text-align:center;font:700 120pt/1 "Aptos Display",Aptos,Arial,sans-serif;color:rgba(180,60,30,.12);transform:rotate(-30deg);z-index:0;pointer-events:none}
}

/* field cards: not used for this report, live hints */
.rbf.na{opacity:.6;border-left-color:var(--line);padding:6px 12px}
.rbf.na .lbl{flex:1;font-weight:600}
.note.hint{background:var(--gold-soft)}

/* report sections added for the letter, scope, assumptions, HBU, reconciliation, certification */
.rp-page+.rp-page{margin-top:28px;padding-top:18px;border-top:1px dashed var(--rp-gold)}
.rp-sub{font-family:var(--rp-semi);font-size:12pt;font-weight:600;margin:16px 0 6px;color:var(--rp-ink)}
.rp-letter p{margin:0 0 10px}
.rp-letter .rp-sig{margin-top:6px}
.rp-rev{font-style:italic}
.rp-ol,.rp-ul{margin:6px 0 10px;padding-left:22px}
.rp-ol li,.rp-ul li{margin:0 0 6px}
.rp-note{font-size:9pt;color:#555}
.rp table.rp-grid td{font-size:9.5pt}
.rp table.rp-small th,.rp table.rp-small td{font-size:9pt;padding:3px 5px}
.rp-cert{break-inside:avoid;page-break-inside:avoid}
.rp-cert+.rp-cert{break-before:page;page-break-before:always}
.rp-cert{font-size:9.5pt;line-height:1.35}
.rp-cert .rp-h{margin-top:0;margin-bottom:6px}
.rp-cert .rp-p{margin:4px 0}
.rp-cert .rp-ul{margin:4px 0 6px}
.rp-cert .rp-ul li{margin:0 0 3px}
.rp-cert .rp-sigimg{height:40px}
.rp-sigblock{margin-top:14px;line-height:1.35}
.rp-sigimg{display:block;height:46px;width:auto;margin-bottom:2px}
.rp-sigline{width:240px;height:40px;border-bottom:1px solid #333;margin-bottom:4px}

/* sales grid editor */
.sg{max-width:1400px}
.sgopts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:8px 0 12px;font-size:13px}
.sgwrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.sgt{border-collapse:collapse;font-size:12.5px;font-variant-numeric:tabular-nums;min-width:100%}
.sgt th,.sgt td{padding:4px 7px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;vertical-align:top}
.sgt thead th{position:sticky;top:0;background:var(--soft);font-weight:600}
.sgt tbody th{text-align:left;font-weight:500;position:sticky;left:0;background:var(--panel);z-index:1;max-width:260px;white-space:normal}
.sgt td small{color:var(--muted)}
.sgt td b{white-space:normal}
.sgt tr.grp th{background:var(--soft);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.sgt tr.sub td,.sgt tr.fin td,.sgt tr.net td{font-weight:600}
.sgt tr.fin td{border-top:2px solid var(--ink)}
.sgt tr.par td,.sgt tr.par th{color:var(--muted)}
.sgt td.need{background:#fde8e3}
.sgt td.res .calc{font-weight:600}
.sgt td.ovr{background:var(--gold-soft)}
.sgt .addrow{font-weight:400;font-size:12px;color:var(--muted);background:transparent}
.sgt .addrow .btn{margin-left:6px}
.sgt.small{min-width:0;width:auto;margin:6px 0 4px}
.sgin{font:inherit;padding:3px 5px;border:1px solid var(--line);border-radius:4px;background:var(--bg);text-align:right;max-width:100%}
.sgin.nm{text-align:left;width:14em}
select.sgin{text-align:left}
.sgedit,.sgreset,.sgdel{border:0;background:transparent;cursor:pointer;color:var(--muted);padding:0 3px;font-size:12px}
.sgedit:hover,.sgreset:hover,.sgdel:hover{color:var(--ink)}
.sgask{white-space:normal;font-size:11.5px;margin-top:4px;text-align:left;background:var(--gold-soft);border-radius:4px;padding:4px 6px;max-width:220px}
.sgask .btn{margin:3px 4px 0 0}
.sgh{font-size:16px;margin:22px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--gold)}
.sgbr{margin:4px 0 8px;padding-left:20px;line-height:1.6}
.sgwarn{color:var(--warn);font-weight:600}
.sgnote{display:grid;gap:3px;margin:0 0 10px;max-width:900px}
.sgnote span{font-weight:600;font-size:13px}
.sgnote textarea{text-align:left;width:100%;resize:vertical;line-height:1.45}
@media print{.rp-page+.rp-page{border-top:0;margin-top:0;padding-top:0;break-before:page}}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* addenda */
.adwrap{max-width:900px}
.adhelp{max-width:70ch;line-height:1.5;margin:0 0 12px}
.adpick,.adgo{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}
.adpick label.btn{cursor:pointer}
.adlist{list-style:none;margin:14px 0;padding:0;display:grid;gap:8px}
.adlist li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:6px;padding:8px 10px}
.adn{font:600 13px/1 var(--f-cond);color:var(--green);text-align:center}
.adt{display:grid;gap:3px;min-width:0}
.adt small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.adw{color:var(--warn);font-weight:600}
.adb{display:flex;gap:6px}
.adchk{display:flex;gap:6px;align-items:center;font-size:13px}
@media (max-width:600px){.adlist li{grid-template-columns:24px minmax(0,1fr)}.adb{grid-column:2}}

/* invoice form */
.ivwrap{max-width:900px}
.ivgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 16px;margin:10px 0}
.ivgrid label,.ivfull{display:grid;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
.ivfull{margin:10px 0}.ivfull small{font-weight:400}
.ivgrid .ivfull2{grid-column:span 2}
.ivh{font-size:15px;margin:22px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--gold)}
.ivt{width:100%;border-collapse:collapse;margin:8px 0;font-size:13px}
.ivt th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px;border-bottom:1px solid var(--line)}
.ivt td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.ivt .r{text-align:right}
.ivt tfoot td{border-bottom:0;font-size:13px}
.ivt tr.shared td{background:var(--gold-soft)}
.ivjob{width:7em}.ivfee{width:8.5em;text-align:right;font-variant-numeric:tabular-nums}
.rbin.need{border-color:var(--warn)}
.ivadd,.ivpay{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.ivadd select{width:auto;max-width:100%}
.ivsum{margin:16px 0 0 auto;max-width:320px;display:grid;gap:4px;font-size:14px}
.ivsum div{display:flex;justify-content:space-between;gap:20px}
.ivsum .bal{border-top:2px solid var(--gold);padding-top:6px;font-size:16px}
.ivsum b{font-variant-numeric:tabular-nums}
@media (max-width:600px){.ivgrid .ivfull2{grid-column:auto}.ivt{display:block;overflow-x:auto}}

/* printed invoice (fixed paper colors; matches the firm's invoice) */
.iv{font-family:Arial,Helvetica,sans-serif;color:#222;font-size:10pt;line-height:1.35;background:#fff}
.iv-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.iv-logo{width:1.75in;height:auto}
.iv h1{font-size:26pt;margin:0 1.1in 0 0}
.iv-row{display:flex;justify-content:space-between;gap:24px}
.iv-l p{margin:0 0 10px}
.iv-r{display:grid;grid-template-columns:auto auto;gap:0 6px;margin:0 1.1in 0 0;align-content:start}
.iv-r dt{text-align:right}.iv-r dd{margin:0 0 10px}
.iv hr{border:0;border-top:1px solid #999;margin:4px 0 22px}
.iv h2{font-size:11pt;text-decoration:underline;margin:22px 0 12px}
.iv-items{border-collapse:collapse;width:100%;font:inherit}
.iv-items th,.iv-items td{font:inherit;font-size:10pt;letter-spacing:0;text-transform:none;color:#222}
.iv-items th{font-weight:700}
.iv-items th,.iv-items td{text-align:left;padding:3px 8px 3px 0;border-bottom:1px solid #ddd}
.iv-items th:last-child,.iv-items td:last-child{text-align:right}
.iv-thanks{font-style:italic;margin:34px 0 30px}
@media print{.iv{font-size:10pt}}

/* Comparables panel (report order) */
.rbcomps{max-width:900px}
.cmpord{list-style:none;margin:0;padding:0}
.cmpord li{display:flex;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.cmpord .rpos{display:inline-block;min-width:54px;text-align:center;background:var(--green);color:#fff;border-radius:4px;padding:1px 6px;font-size:12px;font-weight:700}
.cmpord .cmpnm{flex:1;min-width:180px;display:flex;flex-direction:column}
.cmpord .cmpnm span,.cmpord .cmpdet{color:var(--muted);font-size:12px}
.cmpord .mv{display:inline-flex;gap:4px}
.btn.sm{padding:2px 8px;font-size:12px}
.btn:disabled{opacity:.4;cursor:default}

/* cover page (Cover page specs): full bleed, forest green ribbon and footer, Aptos */
.rp-cover{position:relative;height:11in;margin:-48px -56px 28px;background:#f7f5ef;overflow:hidden;color:var(--rp-ink);font-family:var(--rp-body);line-height:1.35;break-after:page}
.cv-rib{display:flex;align-items:center;justify-content:space-between;background:var(--rp-green);padding:26px 56px}
.cv-lock{display:flex;align-items:flex-start;gap:14px}.cv-mk{height:50px}.cv-wd{height:50px}
.cv-contact{border-left:1px solid rgba(255,255,255,.35);padding-left:18px;font-size:7.5pt;letter-spacing:.16em;line-height:1.9;color:#fff;text-transform:uppercase}
.cv-ttl{padding:30px 56px 0}
.cv-t{font-family:var(--rp-disp);font-size:25pt;font-weight:700;letter-spacing:.06em;color:var(--rp-green);text-transform:uppercase;line-height:1.1}
.cv-bar{width:46px;height:4px;background:var(--rp-gold);margin:14px 0 18px}
.cv-name{font-family:var(--rp-disp);font-size:26pt;font-weight:700;color:var(--rp-green);line-height:1.15;text-wrap:balance}
.cv-addr{font-size:12pt;margin-top:4px;letter-spacing:.02em}
.cv-desc{font-size:9.5pt;color:#6a6a62;margin-top:6px}
.cv-photo{display:block;width:100%;height:4.6in;object-fit:cover;margin-top:24px}
.cv-nophoto{background:#e6e2d6;display:flex;align-items:center;justify-content:center;color:#7a6a2a;font-size:11pt}
.cv-cards{display:grid;grid-template-columns:1fr 1fr 1fr;margin:24px 56px 0}
.cv-card{padding:0 20px;border-left:1px solid #c9bfa3;min-width:0}.cv-card:first-child{border-left:0;padding-left:4px}
.cv-ic{height:30px;display:flex;align-items:flex-end;margin-bottom:8px}
.cv-ic svg{width:22px;height:22px;stroke:var(--rp-gold);fill:none;stroke-width:1.6}.cv-ic img{height:24px}
.cv-lab{font-family:var(--rp-semi);font-size:7pt;letter-spacing:.2em;text-transform:uppercase;color:#6a6a62;font-weight:600;margin-bottom:4px}
.cv-v{font-size:10pt;line-height:1.4}.cv-v b{font-family:var(--rp-semi);font-weight:600}
.cv-facts{display:flex;justify-content:space-between;gap:16px;margin:18px 56px 0;padding-top:12px;border-top:1px solid #ded6bf}
.cv-facts .cv-v{font-size:9.5pt}
.cv-ft{position:absolute;left:0;right:0;bottom:0;background:var(--rp-green);color:#fff;font-size:7.5pt;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:15px 20px}
.cv-ft img{height:20px;vertical-align:-5px;margin-right:12px}
.rbcover{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rbcover img{height:90px;width:auto;border-radius:4px;border:1px solid var(--line)}
@media (max-width:900px){.rp-cover{margin:-28px -20px 28px;height:auto;min-height:11in}}
@media print{
  @page cover{size:letter;margin:0}
  .rp-cover{page:cover;margin:0;width:8.5in;height:10.99in;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* comp maps at the start of each approach (drawn from compmap.js) */
.rp-map{break-inside:avoid;margin-bottom:18px}
.rp-mapimg{display:block;width:6.5in;max-width:100%;aspect-ratio:1;margin:6px auto 12px;border:1px solid #d9d4c4}
.rp-mapnone{background:#f3f1ea;display:flex;align-items:center;justify-content:center;color:#7a6a2a;font-size:10pt;text-align:center;padding:20px}
.rp table.rp-mapkey th:first-child,.rp table.rp-mapkey td:first-child{white-space:nowrap;width:1%}
.rp table.rp-mapkey td,.rp table.rp-mapkey th{text-align:left}

/* land valuation */
.lgtabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.lg .sgopts label{display:inline-flex;align-items:center;gap:6px}
.sgt tr.need>th,.sgt tr.need>td{background:var(--gold-soft)}
.rp table.lgsum th:nth-child(-n+5),.rp table.lgsum td:nth-child(-n+5){text-align:left}
.rp table.lgsum td:nth-child(-n+5){white-space:normal}

/* comp write-ups in the report: one page per comp */
.rp-wu{break-before:page;page-break-before:always;margin-top:24px;padding-top:12px;border-top:1px dashed var(--rp-gold)}
.wu-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:14pt;color:#1f2421}
.wu-head b{font-weight:700}.wu-head span{font-size:9pt;color:#6b716d}
.wu-sub{font-size:9.5pt;color:#6b716d;margin:2px 0 10px}
.wu-pics{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 10px}.wu-pics.one{grid-template-columns:minmax(0,60%);justify-content:center}
.wu-pics figure{margin:0}.wu-pics img{display:block;width:100%;aspect-ratio:64/42;object-fit:cover}
.wu-pics figcaption{font-size:7pt;color:#6b716d;margin-top:3px;min-height:1em}.wu-pics.one figcaption{text-align:center}
.wu-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.wu-bar{background:#b59b3a;color:#fff;font-weight:700;font-size:8.5pt;padding:2.5px 4px}
.wu-blk{margin-bottom:8px}
.rp .wu-blk table{width:100%;border-collapse:collapse;border:.5px solid #d6d2c4;border-top:0}
.rp .wu-blk table tr{border-bottom:.5px solid #d6d2c4}
.rp .wu-blk table th{width:46%;font-size:8pt;padding:2px 4px;font-weight:400;color:#6b716d;text-align:left;background:none}
.rp .wu-blk table td{font-size:8pt;padding:2px 4px;color:#1f2421}
.wu-rem p{font-size:8.5pt;line-height:1.2;margin:3px 4px 0;color:#1f2421}
.rp .wu-sched{width:100%;border-collapse:collapse;border:.5px solid #d6d2c4;border-top:0}
.rp .wu-sched th{font-size:7.5pt;font-weight:700;color:#6b716d;background:#f7f5ee;padding:2px 4px;text-align:left}
.rp .wu-sched td{font-size:7.5pt;padding:2px 4px;border-top:.5px solid #d6d2c4}
.wu-note{font-size:7pt;color:#6b716d;margin:2px 0 0}
@media (max-width:700px){.wu-cols,.wu-pics{grid-template-columns:1fr}}

/* report layout (proposal approved 2026-10-17): section titles with a short gold bar, conclusion box, map pages */
.rp-h::after{content:"";display:block;width:40px;height:3px;background:var(--rp-gold);margin:8px 0 4px}
.rp-concl{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#f6f4ee;border-left:3px solid var(--rp-gold);padding:10px 14px;margin:12px 0;break-inside:avoid}
.rp-concl span{font-size:10pt}.rp-concl b{font-family:var(--rp-disp);font-size:15pt;color:var(--rp-green);white-space:nowrap}
@media print{
  @page{size:letter;margin:0.85in 0.75in 0.8in}
  .rp-map{break-before:page;break-after:page;min-height:9.2in;display:flex;flex-direction:column;justify-content:center}
  .rp-map .rp-h::after{display:none}
  .rp-map .rp-h{font-family:var(--rp-semi);font-size:12pt;font-weight:600;color:var(--rp-ink);margin:0 0 6px}
}
@media print{.rp,.rp *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* summary of salient facts */
.rp table.rp-kv{width:100%;border-collapse:collapse;margin:0 0 4px}
.rp table.rp-kv th{width:34%;font-family:var(--rp-semi);font-weight:600;font-size:10pt;text-align:left;padding:4px 8px 4px 0;border-bottom:1px solid #e6e2d6;vertical-align:top;font-size:10.5pt}
.rp table.rp-kv td{font-size:10.5pt;padding:4px 0;border-bottom:1px solid #e6e2d6}
.rp table.rp-kv td small{color:#6b6b63}
.rp-swot{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.rp-swot h4{font-family:var(--rp-semi);font-size:10pt;margin:6px 0 2px}
.rp table.rp-vt th,.rp table.rp-vt td{text-align:left}.rp table.rp-vt th:last-child,.rp table.rp-vt td:last-child{text-align:right}
/* One exhibit = one page (Site exhibits specs; Brady, Oct 22, 2026, 13360's tall city zoning map spilled onto the next page):
   the page body is 9.35 in, and the title, caption, source line and image margins take about 1.2 in, so a tall
   uploaded image is capped at 7.9 in and shrinks to fit (keeping its proportions). */
.rp-mapimg.rp-tall{aspect-ratio:auto;height:auto;max-height:7.9in;width:auto;max-width:100%;object-fit:contain}
@media print{.rp-map{break-inside:avoid}}

/* site exhibits */
.ex-frame{position:relative;width:100%;aspect-ratio:7/5;border:1px solid #d9d4c4;background:#eef0ec;overflow:hidden;margin:6px 0 8px}
.ex-frame img,.ex-frame .ex-ov{position:absolute;inset:0;width:100%;height:100%;display:block}
.ex-failmsg{display:none}.ex-frame.ex-fail .ex-failmsg{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;color:#7a6a2a;font-size:10pt}
.expanel{max-width:900px}.exauto{margin:0 0 12px;padding-left:18px;font-size:13px}
.exrow{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:6px;margin:0 0 8px;background:var(--panel)}
.exrow.need{border-left:4px solid var(--warn)}.exthumb{height:84px;display:flex;align-items:center;justify-content:center;background:var(--soft);border-radius:4px;overflow:hidden;font-size:12px;color:var(--muted)}
.exthumb img{max-width:100%;max-height:100%}.exinfo{display:grid;gap:6px;font-size:13px}.exinfo label{display:grid;gap:2px;font-size:12px;color:var(--muted)}.exbtns{display:flex;gap:8px}

/* subject photos: six per page, two columns, caption under each */
.rp-photos{break-inside:avoid}.rp-photos.rp-cont{break-before:page;margin-top:18px}
.rp-phgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.rp-phgrid figure{margin:0;break-inside:avoid}.rp-phgrid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.rp-phgrid figcaption{font-size:9.5pt;margin-top:4px}
.phpanel{max-width:900px}.phrow{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:10px;border:1px solid var(--line);border-radius:6px;margin:0 0 8px;background:var(--panel)}
.phrow.need{border-left:4px solid var(--gold)}.phrow img{width:160px;height:120px;object-fit:cover;border-radius:4px}
.phinfo{display:grid;gap:6px;font-size:13px}.phinfo label{display:grid;gap:2px;font-size:12px;color:var(--muted)}.phinfo small{color:var(--muted)}.phbtns{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* page estimate for the table of contents: the report is laid out in page-sized columns (one column = one printed page) */
.rp-measuring{padding:0!important;max-width:none!important;box-shadow:none!important}
.rp-measuring .rp-page{break-before:column;margin:0;padding:0;border:0}
.rp-measuring .rp-page:first-child{break-before:auto}
.rp-measuring .rp-map{break-before:column;break-after:column;min-height:9.2in;margin:0;display:flex;flex-direction:column;justify-content:center}
.rp-measuring .rp-wu,.rp-measuring .rp-photos.rp-cont{break-before:column;margin-top:0;border-top:0}
.rp-measuring .rp-h::after{display:block}
.rp-measuring .rp-map .rp-h::after{display:none}
.rp-measuring .rp-map .rp-h{font-family:var(--rp-semi);font-size:12pt;font-weight:600;color:var(--rp-ink);margin:0 0 6px}

/* table of contents and glossary */
.rp ol.rp-toc{list-style:none;margin:8px 0 0;padding:0}
.rp ol.rp-toc li{display:flex;align-items:baseline;gap:6px;padding:5px 0;font-size:11pt}
.rp ol.rp-toc li span{flex:none}.rp ol.rp-toc li::after{content:"";order:1;flex:1;border-bottom:1px dotted #b8b2a0;transform:translateY(-3px)}
.rp ol.rp-toc li b{order:2;font-weight:400;font-variant-numeric:tabular-nums;min-width:2em;text-align:right}
.rp-gloss dt{font-family:var(--rp-semi);font-weight:600;margin:10px 0 2px;break-after:avoid}.rp-gloss dd{margin:0;font-size:10pt;line-height:1.45}

/* headings never end a page; the land adjustment grid starts on its own page after the write-ups */
.rp h2,.rp h3,.rp .rp-sub{break-after:avoid;page-break-after:avoid}
.rp-newpg{break-before:page;page-break-before:always}
.rp-measuring .rp-newpg{break-before:column}
.rp-sigblock{break-inside:avoid;page-break-inside:avoid}

/* land cover: aerial with parcel outline in place of the cover photo */
.cv-photo.cv-aerial{position:relative;overflow:hidden;background:#dfe3dc;aspect-ratio:auto}
.cv-aerial img,.cv-aerial .ex-ov{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover}

/* field source labels */
.og{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:9px;margin-right:4px;border:1px solid transparent;vertical-align:1px}
.og-standard{background:#eceae3;color:#555}
.og-copied{background:#fdf0d5;color:#7a5200;border-color:#e8c88a}
.og-document{background:#e3edf7;color:#1d4f7a}
.og-researched{background:#e1f1e6;color:#1d5e33}
.og-drafted{background:#efe6f6;color:#5b2c82}
.og-calculated{background:#e0f2f1;color:#165e58}
.og-entered{background:#e8eef0;color:#2f4a55}
.og-none{background:#fff;color:#a33;border-color:#e6b4b4}
.og-warn{color:#a33;font-size:11px}.og-by{font-size:11px;color:#6b6b63}
.linkbtn{background:none;border:0;padding:0 0 0 6px;color:var(--green,#2f5d3a);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.rbhist{margin:4px 0 6px;padding:6px 10px;background:#faf9f5;border:1px solid #e6e2d6;border-radius:6px;font-size:12px}
.rbhist ul{margin:0;padding-left:16px}.rbhist li{margin:2px 0}.hwhen{color:#6b6b63}
.ogfilter{font-size:13px;color:var(--muted,#666);display:flex;gap:6px;align-items:center}.ogfilter select{font:inherit;padding:3px 6px}
/* market area charts and broker comments (market.js) */
.rp-fig{margin:30px 0 26px;padding-top:4px;break-inside:avoid}
.rp-fig+.rp-fig{border-top:1px solid #e6e1d3;padding-top:22px}
.rp-figsum{margin:12px 0 0}
.rp-figcap{font-family:var(--rp-semi);font-weight:600;font-size:10pt;margin:0 0 4px}
.rp-chart{display:block;height:auto}
.rp-figimg{display:block;max-width:100%;margin:0 auto}
.rp-cm{border-left:3px solid var(--rp-gold);background:#faf6ec;padding:8px 12px;margin:8px 0;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rp-cm .rp-p{margin:4px 0}
.rp-cm-who{margin:0;font-size:10pt}
.rp-cm-when{color:#6b6b66;font-size:9pt;margin-left:6px}

/* salient facts tables match the fact tables: gold bar, no row rules, tight rows (Braden, 2026-10-17) */
.rp table.rp-kv th{border:0;padding:2px 14px 2px 2px;width:34%}
.rp table.rp-kv td{border:0;padding:2px 2px}
/* cost approach editor */
.ca .ca-pick{margin:6px 0}.ca .cite{color:var(--muted);margin-left:4px}
.ca .ca-rows td.tx{white-space:normal;text-align:left;max-width:220px;font-size:11.5px}
.ca .ca-rows tr.on td,.ca .ca-rows tr.on th{background:#eef5f0;font-weight:600}
.ca .ca-in td{text-align:left}.ca .ca-ok{margin-left:6px;font-size:12px;color:var(--muted)}
.ca .ca-notes{font-size:12px;color:var(--muted);margin:6px 0 0 18px}
.ca .ca-find{margin:8px 0}
.rp table.ca-out td small{font-size:8pt;color:#555;white-space:normal}
/* addenda at the back of the printed report (addenda.js printHTML) */
.rp-adpg{break-before:page;display:flex;flex-direction:column;height:9.3in}
.rp-adpg .rp-adhead{margin-top:0}
.rp-adttl{font-family:var(--rp-semi);font-weight:600;font-size:12pt;margin:0 0 6px;padding-bottom:3px;border-bottom:1px solid var(--rp-gold)}
.rp-adimg{flex:1;min-height:0;display:flex;align-items:flex-start;justify-content:center}
.rp-adimg img{max-width:100%;max-height:100%;object-fit:contain;border:1px solid #eee}
@media screen{.rp-adpg{height:auto}.rp-adimg img{max-height:9in}}
.rp-measuring .rp-adpg{break-before:column;height:9.2in}
.rp ol.rp-toc li.sub{padding:3px 0 3px 18px;font-size:10pt}
dialog.rbattach{max-width:560px;width:calc(100% - 32px);border:1px solid #d9d4c4;border-radius:8px;padding:20px 22px}
dialog.rbattach::backdrop{background:rgba(0,0,0,.35)}
dialog.rbattach h3{margin:0 0 6px}
dialog.rbattach ol{margin:10px 0 12px;padding-left:20px}
dialog.rbattach li{margin:0 0 8px}dialog.rbattach li small{display:block;color:#6b6b63}
dialog.rbattach .acts{display:flex;gap:8px;justify-content:flex-end}
.rp-adhtml{flex:1;min-height:0}.rp-adhtml .rp-grid{margin-bottom:10px}
.rp-note{font-size:9pt;color:#555;margin-top:10px}
.ca-mode{border-left:3px solid var(--gold,#B59A5A);padding-left:10px}
/* roof replacement calculator (roofcalc.js) */
.roofhost{margin:6px 0}
.roofcalc{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--bg);display:grid;gap:8px}
.roofcalc .rc-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}
.roofcalc label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}
.roofcalc label.rc-chk{flex-direction:row;align-items:center;gap:6px;color:var(--ink)}
.roofcalc input:not([type=checkbox]),.roofcalc select{padding:5px 7px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink);font-size:13px;min-width:8em}
.roofcalc .msg{margin:0}
.rc-tbl{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px}
.rc-tbl table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
.rc-tbl th{position:sticky;top:0;background:var(--soft);text-align:left;padding:4px 6px;font-weight:600}
.rc-tbl td{padding:3px 6px;border-top:1px solid var(--line)}
.rc-tbl .r{text-align:right}
.rc-out{font-size:14px;padding-bottom:6px}
dialog.rbattach input.adttl{width:100%;font:600 14px inherit;padding:4px 6px;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit}
dialog.rbattach input.adttl:hover,dialog.rbattach input.adttl:focus{border-color:#d9d4c4;background:#fff}
dialog.rbattach input.adttl[readonly]{border-color:transparent;background:transparent}
dialog.rbattach .linkbtn{border:0;background:none;color:#1b5e20;text-decoration:underline;padding:0;font-size:12px}

/* charts shown beside a market comment field (2026-10-19) */
.rbcharts{border:1px solid var(--line);border-radius:4px;background:#fff}
.rbcharts>summary{cursor:pointer;font-size:12px;font-weight:600;padding:6px 8px;color:var(--ink)}
.rbcharts-in.rp{max-height:560px;overflow:auto;padding:0 10px 8px;font-size:10pt;max-width:none;box-shadow:none;margin:0}
.rbcharts-in .rp-fig{margin:12px 0}
.rbcharts-in .rp-chart{max-width:100%!important}
.rbcharts-wait{font-size:12px;color:var(--muted,#6b6b66)}

.adwarn{background:#fbeee6;border-left:3px solid #b5542e;padding:6px 8px;border-radius:3px}

/* panel buttons: the current view is underlined (2026-10-19) */
.rbhead .acts .btn[aria-pressed="true"],.acts .btn[aria-pressed="true"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;font-weight:700;border-color:var(--green,#244636)}

/* "Show in report" preview (2026-10-19) */
dialog.rbwhere{width:min(980px,96vw);height:92vh;padding:0;border:1px solid var(--line,#ccc);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}
dialog.rbwhere:not([open]){display:none}
dialog.rbwhere::backdrop{background:rgba(0,0,0,.35)}
.rbwhere-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line,#ccc);background:var(--panel,#fff)}
.rbwhere-t{display:grid;gap:2px;min-width:0}.rbwhere-t b{font-size:14px}
.rbwhere-path{font-size:12px;color:#244636}
.rbwhere-a{display:flex;gap:6px;flex-shrink:0}
.rbwhere-msg{padding:8px 14px;font-size:13px;background:#fbeee6;border-bottom:1px solid #ecd2c4}
.rbwhere-b{flex:1;overflow:auto;max-width:none;border-radius:0}
.rp .rp-here{background:#fff3c4!important;outline:2px solid #B59A5A;outline-offset:3px;border-radius:2px}
@media print{.rp .rp-here{background:none!important;outline:none}}

/* client requirements box (2026-10-21) */
.rbclient{margin:8px 0 10px;border:1px solid var(--line,#ddd);border-left:4px solid #B59A5A;border-radius:6px;background:#fffdf6;padding:6px 12px}
.rbclient>summary{cursor:pointer;font-size:13px}
.rbclient-req{font-size:13px;line-height:1.45;margin:6px 0}
/* Print scale guard (2026-10-21): one element wider than the page (a reconciliation cell that wouldn't wrap) made
   Edge/Chrome shrink the whole printout to 2/3 (10.5 pt text printed at 7 pt, cover in the top-left corner, TOC page
   numbers off). Clipping horizontal overflow keeps every page at full size; printReport also warns about the element. */
@media print{.rp{overflow-x:clip}}
/* report tables use the report font (the site-wide table font fell back to Arial Narrow in print) */
.rp th,.rp td{font-family:var(--rp-body)}
.rp th{font-family:var(--rp-semi)}
/* market analysis (Brady, 2026-10-21): charts and tables centered side to side */
.rp-mkt .rp-chart,.rp-mkt .rp-figimg{margin-left:auto;margin-right:auto}
.rp-mkt .rp-figcap,.rp-mkt .rp-fig>.rp-note{text-align:center}
.rp-mkt table{margin-left:auto;margin-right:auto}
.rp-mkt .rp-mapimg{margin-left:auto;margin-right:auto}

/* fitTables() levels for grid tables wider than the 7 in printed text width (2026-10-21) */
.rp table.rp-grid.fit1 td.tx,.rp table.rp-grid.fit1 th{white-space:normal}
.rp table.rp-grid.fit1 td,.rp table.rp-grid.fit1 th{padding:3px 4px}
.rp table.rp-grid.fit2 td.tx,.rp table.rp-grid.fit2 th{white-space:normal}
.rp table.rp-grid.fit2 td,.rp table.rp-grid.fit2 th{padding:2px 3px;font-size:8pt}
.rp table.rp-grid.fit3 td,.rp table.rp-grid.fit3 th{white-space:normal;padding:2px 3px;font-size:7.5pt;overflow-wrap:anywhere}
/* print progress panel (2026-10-21) */
.rbbusy{position:fixed;inset:0;z-index:9999;background:rgba(20,30,25,.35);display:flex;align-items:center;justify-content:center}
.rbbusy[hidden]{display:none}
.rbbusy-box{background:var(--panel,#fff);color:var(--ink,#222);border-radius:10px;padding:22px 28px;min-width:280px;max-width:90vw;box-shadow:0 8px 30px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.rbbusy-step{font-size:13px;color:var(--muted,#666)}
.rbbusy-spin{width:34px;height:34px;border-radius:50%;border:4px solid #e6e2d6;border-top-color:#244636;animation:rbspin .9s linear infinite}
@keyframes rbspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.rbbusy-spin{animation-duration:3s}}
@media print{.rbbusy{display:none!important}}
.rbscope{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.rbscope input{margin:0}

dialog.rbplace{max-width:820px}
.rbps-find{display:flex;gap:8px;align-items:center;margin:8px 0}.rbps-find input{flex:1;min-width:0;padding:6px 8px;border:1px solid #d9d4c4;border-radius:4px;font:inherit}
.rbps-map{height:min(480px,60vh);border:1px solid #d9d4c4;border-radius:6px;cursor:crosshair}
.rbps-pin span{display:block;width:26px;height:26px;border-radius:50%;background:#c62828;color:#fff;font:700 13px/26px Arial,sans-serif;text-align:center;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4)}

/* letterhead on the transmittal letter (Brady, 2026-10-21): option B, house mark with the name beside it, centered
   on the house's wall (between the eave at 32.1% of the mark's height and the floor), address on the right, gold rule.
   The letter page prints on named page "letter" with no running header or footer (report.js PAGE_CSS). */
.rp-lh{--mk:0.78in;--wd:0.46in;display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid var(--rp-gold);margin-bottom:24px}
.rp-lh-lock{display:flex;align-items:flex-start;gap:0.16in}
.rp-lh-mk{height:var(--mk);width:auto;display:block}
.rp-lh-wd{height:var(--wd);width:auto;display:block;margin-top:calc(var(--mk) * 0.6604 - var(--wd) / 2)}
.rp-lh-ad{text-align:right;font-size:8.5pt;color:#555;line-height:1.45;padding-top:4px}
/* letter spacing (Brady, 2026-10-21): more room after the address, the Re line, the opening paragraph and the value table */
.rp-letter p.rp-l-addr{margin-bottom:20px}
.rp-letter p.rp-l-re{margin-bottom:18px}
.rp-letter p.rp-l-open{margin-bottom:18px}
.rp-letter table.rp-vt{margin-bottom:20px}
@media print{.rp-first{page:letter}}
