/* pro-sheet.css — shared spreadsheet-style calculator system (from the Advanced Real Estate Calculator) */
:root {
  --navy: #24425f;
  --navy-deep: #1b3349;
  --cell-input: #fdf8e3;
  --cell-line: #e3e9f1;
  --ink: #1e293b;
  --mut: #64748b;
  --green: #14804a;
  --amber: #b45309;
  --red: #b3362c;
  --blue: #2563eb;
}
body.sheet-page { font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background:#e8edf3; color:var(--ink); font-size:12.5px; }

/* actions row */
.actions { max-width:1010px; margin:14px auto 0; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:0 2px; }
.actions .left { font-size:12px; color:#64748b; font-weight:600; }
.abtn { border:1px solid #d5dee8; background:#fff; color:#33475e; font-family:inherit; font-size:12.5px; font-weight:600; padding:7px 16px; border-radius:8px; cursor:pointer; transition:all .15s; }
.abtn:hover { border-color:#9fb2c6; color:var(--navy); box-shadow:0 1px 6px rgba(20,35,60,.10); }
.abtn.primary { background:var(--navy); border-color:var(--navy); color:#fff; font-weight:700; }
.abtn.primary:hover { background:var(--navy-deep); box-shadow:0 2px 10px rgba(20,35,60,.22); }

/* workbook */
.book { max-width:1010px; margin:12px auto 50px; background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 8px 32px rgba(20,35,60,.12); }
.tband { background:var(--navy); color:#fff; padding:14px 24px 12px; display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.tband .taddr { flex:1; min-width:240px; background:transparent; border:none; outline:none; color:#fff; font-family:inherit; font-size:20px; font-weight:800; letter-spacing:.3px; text-transform:uppercase; }
.tband .taddr::placeholder { color:rgba(255,255,255,.4); text-transform:none; letter-spacing:0; font-weight:600; }
.tband .ttitle { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.strats { display:flex; gap:6px; flex-wrap:wrap; }
.stab { border:1.5px solid rgba(255,255,255,.3); background:transparent; color:rgba(255,255,255,.75); font-family:inherit; font-weight:800; letter-spacing:.08em; padding:5px 13px; font-size:10.5px; border-radius:20px; cursor:pointer; transition:all .15s; }
.stab.active { background:#fff; color:var(--navy); border-color:#fff; }
.print-head { display:none; }

/* verdict banner */
.verdict { padding:16px 24px 14px; border-bottom:1px solid var(--cell-line); }
.v-top { display:grid; grid-template-columns:auto minmax(0,1fr) 232px; gap:20px; align-items:center; }
@media screen and (max-width:860px){ .v-top { grid-template-columns:auto 1fr; } .v-top .photo { display:none; } }
.score-wrap { display:flex; flex-direction:column; align-items:center; gap:4px; }
.gauge { width:62px; height:62px; border-radius:50%; background:conic-gradient(var(--c,#94a3b8) calc(var(--p,0)*1%), #e9edf3 0); display:flex; align-items:center; justify-content:center; position:relative; }
.gauge::after { content:''; position:absolute; inset:6px; background:#fff; border-radius:50%; }
.gauge span { position:relative; z-index:1; font-weight:800; font-size:22px; }
.score-cap { font-size:9px; font-weight:800; letter-spacing:.08em; color:#94a3b8; text-transform:uppercase; }
.hero .cf { font-size:30px; font-weight:800; letter-spacing:-.5px; }
.hero .pill { display:inline-block; font-size:11px; font-weight:700; padding:3px 11px; border-radius:20px; margin-left:8px; vertical-align:6px; }
.pill.good { background:#d5f2e3; color:#14684a; }
.pill.thin { background:#fdf1cc; color:#8f6b0e; }
.pill.bad { background:#fdd9d5; color:#a02c22; }
.hero .sub { font-size:12px; color:var(--mut); font-weight:600; margin-top:2px; }
.flags { display:flex; gap:7px; margin-top:8px; flex-wrap:wrap; }
.rulebadge { font-size:10.5px; font-weight:700; padding:3px 10px; border-radius:7px; background:#f1f5f9; color:#94a3b8; }
.rulebadge.pass { background:#d5f2e3; color:#14684a; }
.rulebadge.fail { background:#fdd9d5; color:#a02c22; }
.photo { height:118px; border-radius:12px; border:1.5px dashed #cbd6e2; background:#f7f9fc; display:flex; align-items:center; justify-content:center; text-align:center; font-size:10.5px; color:#94a3b8; padding:10px; overflow:hidden; }
.kpis { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:14px; }
.kpis.k4 { grid-template-columns:repeat(4,1fr); }
.kpis.k3 { grid-template-columns:repeat(3,1fr); }
@media screen and (max-width:860px){ .kpis, .kpis.k4, .kpis.k3 { grid-template-columns:repeat(2,1fr); } }
.kpi { background:#f8fafc; border:1px solid #edf1f6; border-radius:10px; padding:8px 10px; text-align:center; }
.kpi .kl { font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:#8fa0b3; cursor:help; }
.kpi .kl .i { display:inline-flex; width:11px; height:11px; border-radius:50%; background:#dde5ee; color:#7c8ea3; font-size:8px; align-items:center; justify-content:center; font-style:normal; margin-left:3px; vertical-align:1px; }
.kpi .kv { font-size:16px; font-weight:800; margin-top:2px; font-variant-numeric:tabular-nums; }
.kpi .ks { font-size:9.5px; color:#a5b3c2; font-weight:600; margin-top:1px; }
.kv.pos { color:var(--green); } .kv.warn { color:var(--amber); } .kv.neg { color:var(--red); }

/* sheet */
.sheetwrap { padding:14px 24px 22px; }
.grid2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 18px; align-items:start; }
.grid3 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 236px; gap:0 18px; align-items:start; }
@media screen and (max-width:860px){ .grid2, .grid3 { grid-template-columns:1fr; } }
.band { background:var(--navy); color:#fff; font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; padding:6px 11px; margin-top:14px; border-radius:7px 7px 0 0; }
.band:first-child { margin-top:0; }
.band small { font-weight:600; letter-spacing:.02em; text-transform:none; opacity:.72; }
.band.flexed { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.bandbtn { border:1px solid rgba(255,255,255,.4); background:transparent; color:rgba(255,255,255,.85); font-family:inherit; font-size:9px; font-weight:800; letter-spacing:.04em; padding:2px 9px; border-radius:11px; cursor:pointer; white-space:nowrap; }
.bandbtn.on { background:#fff; color:var(--navy); }
table.sh { width:100%; table-layout:fixed; border-collapse:collapse; font-size:12.5px; background:#fff; }
table.sh td { border:1px solid var(--cell-line); padding:5px 9px; }
table.sh tr:hover td.lbl { background:#fbfcfe; }
table.sh td.lbl { color:#44566b; font-weight:600; width:56%; }
table.sh td.lbl.ind { padding-left:20px; font-weight:500; }
table.sh td.val { text-align:right; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
table.sh tr.total td { background:#eef3f8; border-top:2px solid var(--navy); font-weight:800; }
table.sh tr.total td.lbl { text-transform:uppercase; font-size:11px; letter-spacing:.04em; color:var(--navy); }
table.sh td.pos { color:var(--green); }
table.sh td.neg { color:var(--red); }
table.sh tr.shead td { font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:#8fa0b3; font-weight:700; background:#fbfcfe; }
.permo { font-size:9px; color:#9aa9ba; font-weight:600; line-height:1.2; }

/* input cells with inline units */
td.in { background:var(--cell-input); padding:0 !important; }
.cellu { display:flex; align-items:stretch; }
.cellu .usym { display:flex; align-items:center; padding:0 0 0 8px; font-size:11px; font-weight:700; color:#a08f56; user-select:none; }
.cellu button.usym { border:none; background:#f2e9c4; color:#7c6a2d; cursor:pointer; padding:0 7px; margin:3px 0 3px 4px; border-radius:5px; font-family:inherit; font-size:10.5px; font-weight:800; transition:all .12s; }
.cellu button.usym:hover { background:var(--navy); color:#fff; }
.cellu button.usym::after { content:' ⇄'; font-size:8px; opacity:.6; }
.cellu input, .cellu select { flex:1 1 0; width:0; min-width:0; border:none; outline:none; background:transparent; font:inherit; font-weight:700; color:var(--ink); text-align:right; padding:5px 9px; font-variant-numeric:tabular-nums; }
.cellu select { text-align:left; cursor:pointer; }
.cellu input:focus { background:#fbf0bd; }
.cellu input[readonly] { color:#44566b; cursor:default; }
.cellu input[readonly]:focus { background:transparent; }
td.in.calcd { background:#eef3f8; }

/* expanders / group rows */
.xp { border:1px solid #c9d4e0; background:#fff; color:#7c8ea3; width:16px; height:16px; line-height:1; border-radius:4px; font-size:11px; font-weight:800; cursor:pointer; padding:0; margin-left:6px; vertical-align:-2px; font-family:inherit; }
.xp:hover { border-color:var(--navy); color:var(--navy); }
.xp.open { background:var(--navy); border-color:var(--navy); color:#fff; }
tr.grp { display:none; }
tr.grp.open { display:table-row; }
tr.dim td, tr.dim .cellu input, tr.dim .cellu .usym, tr.dim .cellu button.usym { opacity:.45; }

/* notes rail */
.rail { display:flex; flex-direction:column; }
.rail table.sh td { padding:4px 8px; font-size:11.5px; }
.rail table.sh td.lbl { width:46%; }
.rail table.sh td.lbl.ind { padding-left:12px; white-space:normal; }
.rail .cellu input { padding:4px 7px; font-size:11.5px; }
.rail .cellu .usym, .rail .cellu button.usym { font-size:10px; padding-left:6px; }
.rail table.sh tr.total td { font-size:10.5px; }
.rail textarea { flex:1; width:100%; border:1px solid var(--cell-line); border-top:none; outline:none; padding:11px 12px; font:inherit; font-size:12px; line-height:1.55; color:#44566b; resize:vertical; min-height:340px; background:#fff; border-radius:0 0 8px 8px; }
.rail textarea:focus { background:#fffdf4; }
.notes-print { display:none; }

/* saved deals */
.saved-panel { display:none; max-width:1010px; margin:10px auto 0; background:#fff; border:1px solid var(--cell-line); border-radius:12px; padding:12px 16px; }
.saved-panel.open { display:block; }
.saved-panel .sp-title { font-size:11px; letter-spacing:.05em; color:var(--navy); text-transform:uppercase; font-weight:700; }
.saved-item { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 10px; border-bottom:1px solid #eef2f7; cursor:pointer; }
.saved-item:hover { background:#f7fafc; }
.saved-item .nm { font-weight:700; font-size:.88rem; }
.saved-item .mt { font-size:.74rem; color:#94a3b8; }
.saved-item .del { background:none; border:none; color:#cbd5e1; cursor:pointer; font-size:1rem; }
.saved-item .del:hover { color:#dc2626; }

/* google places dropdown */
.pac-container { z-index:99999 !important; background:#fff; border:1px solid #e2e8f0; border-radius:8px; box-shadow:0 10px 28px rgba(0,0,0,.18); font-family:inherit; padding:4px 0; }
.pac-item { padding:8px 12px !important; font-size:13px !important; color:#334155; cursor:pointer; }
.pac-container:not(:has(.pac-item)) { display:none !important; }
.pac-item:hover, .pac-item-selected { background:#eff6ff; }
.pac-icon, .pac-container img { display:none !important; }

/* print */
@page { margin:0.55in; }
@media print {
  body.sheet-page { background:#fff; font-size:11px; color:#000; }
  .site-header, .actions, .saved-panel, .tband { display:none !important; }
  .book { box-shadow:none; margin:0; max-width:100%; border-radius:0; }
  .print-head { display:block; padding:0 0 10px; border-bottom:2.5px solid #000; margin-bottom:12px; }
  .print-head .ph-addr { font-size:19px; font-weight:800; letter-spacing:.3px; text-transform:uppercase; }
  .print-head .ph-sub { font-size:10.5px; color:#333; margin-top:4px; letter-spacing:.02em; }
  .verdict { border:none; padding:0 0 8px; }
  .v-top { display:none; }
  .kpis, .kpis.k4, .kpis.k3 { gap:0; margin-top:0; border:1px solid #8c8c8c; }
  .kpi { background:#fff; border:none; border-left:1px solid #8c8c8c; border-radius:0; padding:6px 8px; }
  .kpi:first-child { border-left:none; }
  .kpi .kl { color:#000; }
  .kpi .kl .i { display:none; }
  .kpi .kv { color:#000 !important; font-size:14px; }
  .kpi .ks { color:#555; }
  .band { background:#fff; color:#000; border-radius:0; padding:9px 0 3px; border-bottom:2px solid #000; font-size:10.5px; }
  .band small { color:#444; opacity:1; }
  table.sh td { border-color:#c2c2c2; padding:3.5px 8px; }
  td.in { background:#fff !important; }
  .cellu input { background:#fff !important; }
  .cellu .usym, .cellu button.usym { background:none; color:#555; padding:0 0 0 6px; margin:0; }
  .cellu button.usym::after { content:''; }
  table.sh tr.total td { background:#f1f1f1 !important; border-top:2px solid #000; color:#000; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  table.sh td.pos, table.sh td.val { color:#000; }
  table.sh tr:hover td.lbl { background:#fff; }
  .grid3 { grid-template-columns:1fr 1fr; }
  .rail { grid-column:1 / -1; margin-top:8px; }
  .grid2 > .rail { grid-column:auto; margin-top:0; align-self:stretch; }
  .rail textarea { border:1px solid #c2c2c2; border-radius:0; min-height:64px; }
  .rail:has(.notes-print) textarea { display:none; }
  .notes-print { display:block; flex:1; min-height:120px; border:1px solid #c2c2c2; border-top:none; padding:8px 10px; font-size:10.5px; line-height:1.45; color:#222; white-space:pre-wrap; }
  .photo { display:none; }
  .sheetwrap { padding:0; }
  textarea::placeholder, input::placeholder { color:transparent !important; }
  .bandbtn, .xp { display:none !important; }
}

/* ── action bar on phones: title on its own line, four equal buttons underneath ── */
@media screen and (max-width:640px){
  .actions { flex-wrap:wrap; gap:8px; padding:0 10px; }
  .actions .left { width:100%; }
  .actions > span { display:flex; gap:6px; width:100%; }
  .abtn { flex:1 1 0; padding:7px 4px; font-size:12px; white-space:nowrap; text-align:center; }
  .book { margin:10px 6px 40px; border-radius:10px; }
}
