/* Job Forecast v2 — Sales › New proposal (proposal builder). Page-specific rules only; tokens and .dj-* structure come from jf.css. */
.jfp .dj{max-width:1200px}
.jfp .dj-h{flex-wrap:wrap}
.jfp .dj-h-l{flex:1 1 520px;min-width:0}
.jfp .dj-h-info{flex:1;min-width:0;gap:6px}
.jfp .dj-h-r{flex:0 0 auto;min-width:160px}
.jfp .dj-h-r .num-v{font-size:24px;font-weight:600;font-family:var(--mono);font-variant-numeric:tabular-nums}
.jfp .dj-name input.fld{font-size:16px;font-weight:600;color:var(--ink);height:32px;padding:0 8px}
.jfp .dj-linked{min-width:0;max-width:560px}
.jfp .jfp-cust{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 10px}
.jfp .jfp-cust>label:first-child{grid-column:1 / -1}
.jfp .jfp-field{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.jfp .jfp-field .fld{width:100%;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink);height:30px;padding:0 8px}
.jfp .jfp-field select.fld{height:30px;padding:0 8px}
.jfp input.fld{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-0);color:var(--text);font-size:13px}
.jfp input.fld:focus{outline:0;border-color:var(--accent)}
.jfp input.fld:disabled,.jfp textarea.fld:disabled,.jfp select.fld:disabled,.jfp .dj-desc:disabled{opacity:.7}
.jfp .jfp-caption{font-size:12px;color:var(--ink-2);white-space:normal}
.jfp .dj-linked .menu-wrap{margin-top:4px}
.jfp .dj-linked .menu{top:34px}
.jfp .menu.dj-menu .rows{max-height:320px;overflow:auto;box-shadow:none;border:0;background:transparent}
.jfp .menu.dj-menu .row{cursor:pointer}
.jfp .menu.dj-menu .row:hover{background:var(--bg-sunken)}
.jfp .jfp-menu-search{max-width:none}
.jfp .pb-thumb{width:40px;height:30px;border-radius:4px;background:var(--bg-sunken) center/cover no-repeat;flex:0 0 auto}
/* line items */
.jfp .jfp-lines .row{grid-template-columns:minmax(0,2fr) 84px 118px 112px 100px 32px;align-items:start}
.jfp .jfp-lines .row.head{align-items:center}
.jfp .jfp-lines .row .fld{height:30px;padding:0 8px;width:100%}
.jfp .jfp-lines .row-n>input.jfp-name{font-weight:500;max-width:100%}
.jfp .jfp-lines .row-n>.jfp-caption{overflow:visible;white-space:normal;text-overflow:clip}
.jfp .jfp-lines .dj-desc{margin-top:2px;resize:vertical}
.jfp .jfp-lines .check{padding-top:6px}
.jfp .jfp-lines b.mono{padding-top:7px;display:block;font-variant-numeric:tabular-nums}
.jfp .jfp-ex{display:flex;gap:4px;align-items:center;margin-top:4px;flex-wrap:wrap}
.jfp .jfp-ex img{width:56px;height:42px;object-fit:cover;border-radius:4px;border:1px solid var(--border);cursor:zoom-in}
.jfp .jfp-tot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:baseline;padding:10px 12px;font-size:13px;background:var(--surface-2)}
.jfp .jfp-tot .big{font-size:20px;font-weight:600}
.jfp .jfp-tot b.mono{font-variant-numeric:tabular-nums;text-align:right}
.jfp .jfp-provs{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}
/* banners */
.jfp .jfp-ro{padding:10px 14px;border:1px solid var(--info);background:var(--info-soft);border-radius:var(--r-card);font-size:13px;color:var(--ink)}
.jfp .jfp-queued{padding:10px 14px;border:1px solid var(--warn);background:var(--warn-soft);border-radius:var(--r-card);font-size:13px;color:var(--ink)}
.jfp .jfp-queued a{color:var(--brand)}
/* photos */
.jfp .jfp-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.jfp .jfp-photos .tile{cursor:pointer;border:2px solid transparent}
.jfp .jfp-photos .tile.on{border-color:var(--brand)}
.jfp .jfp-photos .tile .x{position:absolute;top:4px;right:4px;background:var(--surface);border:1px solid var(--border)}
.jfp .jfp-tile-cap{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;font-size:10px;color:var(--ink-inv);background:oklch(0 0 0 / .55);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* log + text */
.jfp .jfp-log .row{grid-template-columns:150px minmax(0,1fr) auto;cursor:default}
.jfp pre.jfp-pre{white-space:pre-wrap;font:inherit;font-size:13px;color:var(--ink-2);margin:0;line-height:1.5}
.jfp .pb-bulk .sheet .rows{max-height:50vh;overflow:auto}
.jfp .pb-bulk .sheet .jfp-photos{max-height:52vh;overflow:auto}
.jfp .dj-foot .btn.quiet{margin-left:auto}
.jfp .dj-tabs .dj-tab i{font-style:normal;font-size:11px}
@media (max-width:1100px){.jfp .jfp-lines .row{grid-template-columns:minmax(0,1.6fr) 70px 100px 96px 88px 28px}.jfp .dj-foot .btn.quiet{margin-left:0}}
@media (max-width:1000px){.jfp .dj-h-actions{gap:6px}.jfp .dj-h-meta{flex-wrap:wrap;gap:8px 18px}.jfp .jfp-lines .row{grid-template-columns:minmax(0,1.4fr) 62px 92px 88px 84px 26px;gap:6px 8px}.jfp .dj-h-r{align-items:flex-start;text-align:left}}

/* Reroof option (2026-09-14): picker sheet, category chips, option comparison */
.jfp-rr-grid{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:18px;align-items:start}
.jfp-rr-list{max-height:340px;overflow:auto;margin-top:8px}
.jfp-rr-row{cursor:pointer}
.jfp-rr-row.on{background:color-mix(in srgb,var(--accent,#a35d35) 12%,transparent)}
.jfp-rr-lines{margin-top:10px}
.jfp-rr-lines .row{display:flex;justify-content:space-between;gap:12px}
.jfp-rr-note{margin:6px 0 0;font-size:12.5px;color:var(--muted)}
.jfp-cat{margin-right:6px;font-size:11px}
.jfp-cat.reroof{background:#fbc02d22;color:#8a6100}
.jfp-cat.repair{background:#e5393522;color:#a02622}
.jfp-rr-cmp{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 0}
.jfp-rr-cmp>div{display:flex;gap:10px;align-items:baseline;border:1px solid var(--border);border-radius:10px;padding:6px 12px;font-size:13px}
.jfp-rr-cmp>div.on{border-color:var(--accent,#a35d35);font-weight:600}
@media (max-width:900px){.jfp-rr-grid{grid-template-columns:1fr}}
.jfp-rr-warn{margin:8px 0 0;font-size:12.5px;color:var(--warn-ink,#8a6100);background:color-mix(in srgb,#fbc02d 12%,transparent);border-radius:8px;padding:7px 10px}
.jfp-efee{margin:6px 0 0;font-size:12.5px;padding:8px 12px;border-radius:8px;background:color-mix(in srgb,var(--good,#2e7d32) 10%,transparent);color:inherit}
.jfp-efee.on{background:color-mix(in srgb,var(--good,#2e7d32) 16%,transparent)}
.jfp-efee a{text-decoration:underline}
