/* Job Forecast v2 — Finance: Forecast · Dials · Overhead · Per-job P&L (page-specific rules only; tokens from jf.css) */
.fa-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.fa-kpis.n5{grid-template-columns:repeat(5,minmax(0,1fr))}
.fa-kpis .ft{min-height:0}
.fa-kpis .ft .prov{margin-top:2px;white-space:normal;line-height:1.35}
.fa-kpis .ft .ft-s{line-height:1.35}
.fa-2col{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:stretch}
.fa-2col>div{min-width:0}
.fa-half{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.fa-half>details.fold{margin:0}
.fa-chart-wrap{display:flex;flex-direction:column}
.fa-chart-wrap .fchart-wrap{flex:1}
.fa-spark{display:flex;gap:2px;align-items:flex-end;height:32px;margin-top:4px}
.fa-spark i{flex:1;background:var(--brand);opacity:.35;border-radius:2px 2px 0 0;min-height:2px;display:block}
.fa-spark i.cur{opacity:1}
.fa-sbars{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;height:80px;align-items:end}
.fa-sb{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:2px}
.fa-sb i{width:70%;background:var(--brand);opacity:.35;border-radius:2px 2px 0 0;display:block;min-height:2px}
.fa-sb.cur i{opacity:1}
.fa-sb span{font-size:10px;color:var(--ink-3)}
.fa-bars{display:flex;gap:2px;align-items:flex-end;height:60px}
.fa-bars i{flex:1;background:var(--brand);opacity:.45;border-radius:2px 2px 0 0;min-height:1px;display:block}
.fa-bars i.cur{opacity:1}
.fa-bars i.neg{background:var(--danger)}
.fa-detail .rows .row{cursor:default}
.fa-detail .rows .row:hover{background:none}
.fa-detail-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.fa-detail-h h2{font-size:16px;font-weight:600}
.fa-detail-h .sp{flex:1}
.fcol .fstack i.neg{background:var(--danger-soft);border-top:2px solid var(--danger)}
.fa-arow .menu{top:30px;right:0;min-width:130px}
.fa-arow .arow-a{align-items:center}
.fa-arow .pill.drafted{margin-left:6px}
.fa-arow[data-drafted="1"] .draft-btn{display:none}
/* dials */
.fa-dials .dial-c .fld{width:100px;height:32px;text-align:right}
.fa-day{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.fa-status{font-size:11px;color:var(--text-dim)}
.fa-lr-row{grid-template-columns:minmax(150px,1.1fr) minmax(150px,1.4fr) 110px 150px 60px!important;align-items:center}
.fa-lr-row .fld{width:84px;height:30px;text-align:right}
.fa-lr-row .row-v{white-space:nowrap}
.fa-lr-row .tg{display:inline-block;vertical-align:middle}
.fa-people-row{grid-template-columns:minmax(140px,1.2fr) 150px 120px minmax(220px,2fr) 60px 40px!important;align-items:center}
.fa-people-row .fld{height:30px}
.fa-people-row input.fld{width:100%}
.fa-people-row select.fld{width:100%}
.fa-people-row .pay-detail{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--text-dim)}
.fa-people-row .pay-detail input.fld{width:96px;text-align:right}
.fa-people-row .pay-detail select.fld{width:auto}
.fa-add-person{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.fa-add-person label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-dim)}
.fa-lr-wrap{overflow-x:auto}
.fa-lr-wrap .rows{min-width:640px}
/* overhead */
.fa-oh-wrap{overflow-x:auto}
.fa-oh-wrap .rows{min-width:960px}
.fa-oh-row{grid-template-columns:minmax(200px,1.6fr) minmax(150px,1.3fr) 82px 92px 92px 72px 90px minmax(110px,auto)!important;align-items:center}
.fa-oh-row.head{position:static}
.fa-oh-row .row-t{text-align:left;min-width:0}
.fa-oh-row .qb{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-oh-row .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-oh-row .own{font-size:10px;color:var(--text-faint);margin-left:4px}
.fa-oh-row.dim{opacity:.55}
.fa-oh-detail{padding:10px 12px 12px;border-bottom:1px solid var(--line-soft);background:var(--bg-1);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px}
.fa-oh-detail .rows{min-width:0}
.fa-oh-grp{background:var(--surface-2);cursor:default}
.fa-oh-grp:hover{background:var(--surface-2)}
.fa-fbars-16{grid-template-columns:repeat(16,1fr)!important}
.fa-oh-legend{display:flex;gap:14px;font-size:12px;color:var(--ink-2);margin-top:6px;flex-wrap:wrap}
.fa-oh-legend i{width:10px;height:10px;border-radius:2px;display:inline-block;margin-right:6px;vertical-align:middle}
.fa-cats .row{cursor:default}
/* job p&l */
.fa-pol{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
.fa-pol label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-dim)}
.fa-pol label input.fld{width:96px;height:30px;text-align:right}
.fa-pol .cap{font-size:12px;color:var(--text-dim);max-width:420px;line-height:1.4}
.fa-est{font-size:10px;color:var(--warn);margin-left:4px;font-weight:500}
.fa-sched{font-size:10px;letter-spacing:.05em;color:var(--text-faint);margin-left:6px}
.tbl td.dim{color:var(--text-dim)}
.tbl tr.sched td{opacity:.75}
.fa-pnl-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fa-pnl-h input.fld{max-width:320px}
@media (max-width:1100px){.fa-2col,.fa-half,.fa-oh-detail{grid-template-columns:1fr}.dials-lay{grid-template-columns:1fr}.fa-kpis.n5{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
