/* Job Forecast v2 — Settings › Price Book (typed price book + materials registry). Tokens come from jf.css; no colors hard-coded. */

/* dynamic pricing strip (Astra chips) */
.pbk-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--shadow)}
.pbk-strip .label{margin:0 4px 0 0}
.pbk-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font-size:13px;white-space:nowrap}
.pbk-chip span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.pbk-chip b{font-weight:500}
.pbk-chip.act{cursor:pointer}
.pbk-chip.act:hover{border-color:var(--brand);color:var(--brand)}
.pbk-chip:disabled{cursor:default}
.pbk-strip .sp{flex:1}

/* items layout — the canvas scrolls, never the table (flex-shrink 0 keeps the rows from becoming an inner scroller) */
.canvas>.pbk-lay,.canvas>.pbk-review,.canvas>.pbk-mat,.canvas>.pbk-strip,.canvas>.toolbar{flex:0 0 auto}
.pbk-lay{display:grid;grid-template-columns:190px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1100px){.pbk-lay{grid-template-columns:1fr}.pbk-lay .pb-cats{flex-direction:row;flex-wrap:wrap;gap:4px}.pbk-lay .pb-cats button{flex:0 0 auto;width:auto;padding:5px 10px;gap:6px}}
.pbk-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.pbk-main .toolbar .search{flex:1 1 200px;max-width:320px}
.pbk-count{font-size:12px;color:var(--ink-2);white-space:nowrap}
.pbk-table{overflow-x:auto}
.pbk-row{grid-template-columns:28px minmax(180px,2fr) 96px 72px 84px 96px 66px 90px 44px;gap:6px 10px;font-size:13px;min-width:820px;align-items:center}
@media (max-width:1300px){.pbk-row{grid-template-columns:28px minmax(160px,2fr) 96px 72px 84px 96px 66px 44px;min-width:700px}.pbk-row>.pbk-last{display:none}}
.pbk-row.head{cursor:default}
.pbk-row .sort{cursor:pointer;user-select:none}
.pbk-row .sort::after{content:" ↕";color:var(--ink-3)}
.pbk-row.head .sort.on{color:var(--ink)}
.pbk-row .row-n{gap:2px 8px}
.pbk-row .row-n>.nml{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;flex:0 1 auto}
.pbk-row .row-n .nm{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbk-row .row-n .nml .pill{flex:0 0 auto}
.pbk-row .row-n .pill{height:18px;padding:0 6px;font-size:10px}
.pbk-row .row-n .mk-muted{font-size:11px;line-height:1.3;margin-top:-2px}
.pbk-table .row{padding-top:6px;padding-bottom:6px}
.pbk-row .pb-thumb{width:22px;height:22px}
.pbk-row .row-v{text-align:right}
.pbk-row .row-t{text-align:right;font-size:12px;color:var(--ink-3)}
.pbk-row input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--brand)}
.pbk-row.sel{background:var(--brand-soft)}
.pbk-row .tg{display:inline-block;vertical-align:middle}
.pbk-row>span:last-child{text-align:right}
.pbk-day{font-size:11px;color:var(--ink-3);font-weight:400}
.pbk-model{font-size:10px;color:var(--ink-3);display:block;text-align:right;font-weight:400;letter-spacing:0}
.pbk-thumb-btn{display:inline-flex;padding:0;border:0;background:none}
.pbk-cat-note{font-size:11px;color:var(--ink-3);padding:6px 10px 0}

/* needs review */
.pbk-review .row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;cursor:default}
.pbk-review .row:hover{background:none}
.pbk-review .row-n{flex-direction:column;align-items:flex-start;gap:4px}
.pbk-review .row-n>span:first-child{white-space:normal}
.pbk-review .why{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-2);flex:0 0 100%;font-weight:400}
.pbk-review .why b{color:var(--ink);font-weight:500}
.pbk-review .fixes{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.pbk-review .fixes select,.pbk-review .fixes input{height:28px;font-size:12px;padding:0 8px;border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font-family:inherit}
.pbk-review .fixes input{width:96px}

/* materials */
.pbk-mat .tbl th.n,.pbk-mat .tbl td.n{text-align:right;font-variant-numeric:tabular-nums}
.pbk-mat .tbl tr.grp td{background:var(--surface-2);font-weight:600;font-size:13px;padding-top:12px;color:var(--ink)}
.pbk-mat .tbl tr.grp td span{font-weight:400;font-size:12px;color:var(--ink-3);margin-left:10px}
.pbk-mat .tbl tr.drop td{background:var(--brand-soft)}
.pbk-mat .tbl tr[draggable=true]{cursor:grab}
.pbk-mat .tbl tr.off td{opacity:.55}
.pbk-mat .tbl td.act{white-space:nowrap}
.pbk-mat .tbl button.link{color:var(--brand);padding:0;background:none;border:0;font:inherit;cursor:pointer;text-align:left}
.pbk-mat .tbl button.link:hover{text-decoration:underline}

/* sheet (bulk changer, category editor, QB import) */
.pbk-sheet-root{position:fixed;inset:0;z-index:70;background:oklch(0.2 0.02 255 / .18);display:grid;place-items:center}
.pbk-sheet{width:min(800px,94vw);max-height:88vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-md);padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.pbk-sheet .sec-h{padding-bottom:6px;border-bottom:1px solid var(--border)}
.pbk-sheet .sec-h h2{font-size:15px;text-transform:none;letter-spacing:0;color:var(--ink)}
.pbk-sheet .rows{max-height:44vh;overflow:auto}
.pbk-prev{grid-template-columns:minmax(0,1fr) 100px 100px 90px 110px;gap:6px 12px;font-size:13px;cursor:default}
.pbk-prev.head{cursor:default}
.pbk-prev .row-v.up{color:var(--ok)!important}
.pbk-prev .row-v.down{color:var(--danger)!important}
.pbk-bulk-ctl{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.pbk-bulk-ctl .fld{min-width:0}
.pbk-bulk-ctl .fld select,.pbk-bulk-ctl .fld input{width:100%}
.pbk-note{font-size:12px;color:var(--ink-2);line-height:1.45}
.pbk-note.warn{color:var(--warn)}
.pbk-note.bad{color:var(--danger)}
.pbk-note.good{color:var(--ok)}
.pbk-checks{display:flex;flex-wrap:wrap;gap:6px 16px}
.pbk-checks .check{font-size:13px}

/* editor drawer */
.pbk-drawer{position:fixed;inset:0;z-index:65;pointer-events:auto}
.pbk-drawer .rd-scrim{position:absolute;inset:0;background:oklch(0.2 0.01 260 / .18)}
.pbk-drawer .rd{position:absolute;top:0;right:0;bottom:0;width:min(780px,94vw);background:var(--surface);border-left:1px solid var(--border);box-shadow:-12px 0 40px oklch(0.2 0.01 260 / .12);overflow:auto;transform:none;display:flex;flex-direction:column}
.pbk-drawer .rd-body{display:flex;flex-direction:column;gap:16px;padding:18px 20px 90px;flex:1}
.pbk-drawer .rd-head{display:flex;gap:12px;align-items:flex-start}
.pbk-drawer .rd-title{flex:1;min-width:0}
.pbk-drawer .rd-title h2{font-size:20px;letter-spacing:-.01em;line-height:1.2;margin-top:2px}
.pbk-drawer .rd-title input.title{width:100%;font-size:20px;font-weight:600;height:40px;padding:0 8px;margin-top:2px;border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font-family:inherit;letter-spacing:-.01em}
.pbk-drawer .rd-stage{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.pbk-drawer .rd-sec{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--border-2)}
.pbk-drawer .rd-sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pbk-drawer .rd-sec-h .mk-eyebrow{color:var(--ink-2)}
.pbk-foot{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 20px;background:var(--surface);border-top:1px solid var(--border);margin-top:auto}
.pbk-foot .sp{flex:1}
.pbk-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.pbk-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
@media (max-width:700px){.pbk-grid2,.pbk-grid3{grid-template-columns:1fr}}
.pbk-drawer .fld input,.pbk-drawer .fld select{width:100%}
.pbk-drawer .fld textarea{width:100%;min-height:70px;line-height:1.5}
.pbk-drawer .check{font-size:13px;color:var(--ink)}
.pbk-calc{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pbk-calc .num{padding:10px 12px;gap:2px}
.pbk-calc .num-v{font-size:18px}
.pbk-calc .num-s{font-size:11px}
.pbk-formula{font-size:12px;color:var(--ink-2);background:var(--bg-sunken);border-radius:var(--r-control);padding:8px 10px;line-height:1.5;font-variant-numeric:tabular-nums}
.pbk-formula b{color:var(--ink)}
.pbk-jobtypes{display:flex;gap:14px;flex-wrap:wrap}
.pbk-bom{display:flex;flex-direction:column;gap:4px}
.pbk-bom .row{grid-template-columns:minmax(0,1fr) 72px 52px 86px 28px;gap:6px;align-items:center;cursor:default;padding:4px 0}
.pbk-bom .row:hover{background:none}
.pbk-bom .row.head{padding:4px 0}
.pbk-bom select,.pbk-bom input{height:30px;font-size:12px;padding:0 6px;border:1px solid var(--border);border-radius:var(--r-control);background:var(--surface);color:var(--ink);font-family:inherit;width:100%;min-width:0}
.pbk-bom .row-v{text-align:right}
.pbk-iconbtn{width:24px;height:24px;border-radius:var(--r-control);display:inline-grid;place-items:center;color:var(--ink-3);border:0;background:none;font-size:12px;cursor:pointer}
.pbk-iconbtn:hover{background:var(--bg-sunken);color:var(--danger)}
.pbk-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.pbk-photos .tile{position:relative;aspect-ratio:4/3;border-radius:var(--r-control);overflow:hidden;background:var(--bg-sunken)}
.pbk-photos .tile img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:auto}
.pbk-photos .tile .rm{position:absolute;top:4px;right:4px;height:22px;padding:0 6px;font-size:11px;border-radius:4px;background:var(--surface);border:1px solid var(--border);color:var(--ink);cursor:pointer}
.pbk-photos .tile .cover{position:absolute;left:6px;bottom:6px}
.pbk-drop{display:grid;place-items:center;border:1px dashed var(--border);background:var(--surface-2);color:var(--ink-2);font-size:12px;text-align:center;cursor:pointer;aspect-ratio:4/3;border-radius:var(--r-control)}
.pbk-drop small{color:var(--ink-3);display:block}
.pbk-drop:hover{border-color:var(--brand);color:var(--brand)}
.pbk-drop input{display:none}
.pbk-rich-toolbar{display:flex;gap:4px;flex-wrap:wrap;border:1px solid var(--border);border-bottom:0;border-radius:var(--r-control) var(--r-control) 0 0;background:var(--surface-2);padding:5px 6px}
.pbk-rich-toolbar button{height:24px;padding:0 8px;font-size:12px;border-radius:4px;color:var(--ink-2);background:var(--surface);border:1px solid var(--border-2)}
.pbk-rich-toolbar button:hover{color:var(--brand);border-color:var(--brand)}
.pbk-rich{min-height:150px;padding:10px 12px;border:1px solid var(--border);border-radius:0 0 var(--r-control) var(--r-control);background:var(--surface);color:var(--ink);font-size:14px;line-height:1.6;outline:0}
.pbk-rich:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}
.pbk-rich p{margin:0 0 8px}
.pbk-rich ul,.pbk-rich ol{margin:0 0 8px;padding-left:20px}
.pbk-hist .row{grid-template-columns:84px minmax(0,1fr) 90px 90px;gap:6px 10px;cursor:default;font-size:12px}
.pbk-hist .row:hover{background:none}
.pbk-hist .row.undone{opacity:.5;text-decoration:line-through}
.pbk-timing p{font-size:13px;color:var(--ink-2);line-height:1.5;margin:0}
.pbk-timing details{font-size:12px;color:var(--ink-2)}
.pbk-timing summary{cursor:pointer}
.pbk-qb{display:flex;flex-direction:column;gap:8px}
.pbk-qb .toolbar{gap:8px}
.pbk-actions{display:flex;gap:6px;flex-wrap:wrap}
.pbk-danger{color:var(--danger)}
.pbk-danger:hover{color:var(--danger)}
.pbk-inline-err{font-size:12px;color:var(--danger);background:var(--danger-soft);border-radius:var(--r-control);padding:8px 10px;line-height:1.45}
.pbk-inline-ok{font-size:12px;color:var(--ok);background:var(--ok-soft);border-radius:var(--r-control);padding:8px 10px;line-height:1.45}
.pbk-menu-wrap{position:relative}
.pbk-menu{position:absolute;right:0;top:34px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-md);display:flex;flex-direction:column;min-width:190px;z-index:20;padding:4px}
.pbk-menu button{text-align:left;padding:8px 10px;border-radius:var(--r-control);font-size:13px;color:var(--ink)}
.pbk-menu button:hover{background:var(--bg-sunken)}
.pbk-menu button small{display:block;font-size:11px;color:var(--ink-3)}
.pbk-empty{padding:16px;border:1px dashed var(--border);border-radius:10px;color:var(--ink-2);font-size:13px;text-align:center}
.pbk-subtabs .v2-tab .n{margin-left:4px}

/* dark: jf.css hard-codes the light lavender on .pill.lab — keep the labor/day pill readable at night */
:root[data-theme="dark"] .pbk-row .pill.lab,:root[data-theme="dark"] .pbk-drawer .pill.lab{background:oklch(0.5 0.14 300 / .25);color:oklch(0.82 0.1 300)}

/* reroof rate block in the item editor (2026-09-14) */
.pbk-reroof{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px dashed var(--border);border-radius:10px;margin:4px 0}
.pbk-reroof .toolbar{gap:12px;flex-wrap:wrap}
.pbk-reroof .fld input{width:100%}
