:root{--bar:#1e2225;--bar2:#3a4146;--acc:#ff5200;--acc2:#e64900;--bg:#f4f5f6;--line:#d6dadc;--txt:#232729;--mut:#6a767c;--pos:#1b7f3b;--neg:#d9262d;--hl:#eef4fd;--link:#2066df}
*{box-sizing:border-box}body{margin:0;font:13px/1.4 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--txt);background:var(--bg)}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
.top{background:var(--bar);color:#fff;display:flex;align-items:center;height:48px;padding:0 16px;gap:18px;position:sticky;top:0;z-index:20}
.logo{font-weight:700;font-size:15px;letter-spacing:.3px;color:#fff}.logo:hover{text-decoration:none}
.sel{background:var(--bar2);border:0;color:#fff;border-radius:4px;padding:6px 12px;cursor:pointer;font-size:13px;text-align:left}.sel small{display:block;color:#a9c3c9;font-size:10px}
.sp{flex:1}.user{color:#c7d8dc;font-size:12px}.user a{color:#fff;margin-left:10px;cursor:pointer}
.menu{position:absolute;top:48px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 8px 20px #0002;padding:18px 24px;display:flex;gap:48px;z-index:19}
.menu h4{margin:0 0 8px;font-size:11px;text-transform:uppercase;color:var(--mut);letter-spacing:.5px}.menu a{display:block;padding:5px 0;color:var(--txt);font-size:14px}
.head{background:#fff;padding:14px 24px 0;border-bottom:1px solid var(--line)}.crumb{font-size:12px;color:var(--mut);margin-bottom:4px}
.tl{display:flex;align-items:center;gap:10px;margin-bottom:10px}.tl h1{font-size:20px;margin:0;font-weight:600}.tl .sp{flex:1}
.tabs{display:flex;gap:2px;overflow:auto}.tabs a{padding:8px 14px;color:var(--mut);border-bottom:3px solid transparent;white-space:nowrap}.tabs a.on{color:var(--txt);font-weight:600;border-color:var(--acc)}.tabs a:hover{text-decoration:none;color:var(--txt)}
.body{padding:16px 24px 60px}
.btn{border:1px solid var(--line);background:#fff;color:var(--txt);padding:7px 13px;border-radius:4px;cursor:pointer;font-size:13px;white-space:nowrap}.btn:hover{background:#f0f3f4}
.btn.p{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}.btn.p:hover{background:var(--acc2)}.btn.sm{padding:3px 8px;font-size:12px}.btn:disabled{opacity:.5;cursor:default}
.drop{position:relative;display:inline-block}.drop .dm{position:absolute;right:0;top:100%;background:#fff;border:1px solid var(--line);border-radius:4px;box-shadow:0 6px 16px #0002;min-width:180px;z-index:15}.drop .dm a{display:block;padding:8px 12px;color:var(--txt);cursor:pointer}.drop .dm a:hover{background:var(--hl);text-decoration:none}
.bar{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.bar input,.bar select{padding:6px 9px;border:1px solid var(--line);border-radius:4px;font-size:13px;background:#fff}.bar input{width:240px}
.wrap{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:auto;max-height:calc(100vh - 220px)}
table{border-collapse:collapse;width:100%}th{position:sticky;top:0;background:#eef1f2;font-weight:600;font-size:12px;text-align:left;padding:7px 9px;border-bottom:1px solid var(--line);border-right:1px solid #e6eaec;white-space:nowrap;z-index:2;cursor:default}
td{padding:6px 9px;border-bottom:1px solid #eceff0;border-right:1px solid #f1f3f4;vertical-align:top}th.n,td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.c{cursor:pointer}
tr.g td{background:#f6f8f8;font-weight:600}tr.g2 td{background:#fbfcfc;font-weight:600}tfoot td,tr.tot td{position:sticky;bottom:0;background:#e7ecee;font-weight:700;border-top:2px solid var(--line)}
.neg{color:var(--neg)}.pos{color:var(--pos)}.mut{color:var(--mut)}.clip{max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;font-weight:600;background:#e6eaec;color:#3d4b50;white-space:nowrap}.pill.Approved,.pill.Awarded,.pill.Complete,.pill.Paid{background:#dcf2e4;color:#17693a}.pill.Draft{background:#eceef0;color:#556}.pill.Open{background:#dbeafe;color:#1e4e8c}.pill.Under,.pill.Pending,.pill.Soft,.pill.Out{background:#fdf0d3;color:#8a5a00}.pill.Rejected,.pill.Void,.pill.Terminated,.pill.Revise{background:#fde4e1;color:var(--neg)}
.card{background:#fff;border:1px solid var(--line);border-radius:4px;padding:14px 16px;margin-bottom:14px}.card h3{margin:0 0 10px;font-size:14px}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 20px}.kv label{display:block;font-size:11px;color:var(--mut);margin-bottom:2px}.kv div{word-break:break-word}.long{white-space:pre-wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:14px}.kpi{background:#fff;border:1px solid var(--line);border-radius:4px;padding:12px 14px}.kpi b{display:block;font-size:18px;font-variant-numeric:tabular-nums}.kpi span{font-size:11px;color:var(--mut)}
#modal .ov{position:fixed;inset:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;z-index:50;overflow:auto}.mb{background:#fff;border-radius:6px;width:640px;max-width:100%}.mb.w{width:1000px}.mb h2{margin:0;padding:14px 18px;font-size:16px;border-bottom:1px solid var(--line)}.mc{padding:16px 18px;max-height:68vh;overflow:auto}.mf{padding:12px 18px;border-top:1px solid var(--line);text-align:right;display:flex;gap:8px;justify-content:flex-end}
.f{margin-bottom:12px}.f label{display:block;font-size:12px;font-weight:600;margin-bottom:3px}.f input,.f select,.f textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:4px;font:inherit}.f textarea{min-height:70px}.req{color:var(--neg)}.g2c{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
td input.cell{width:100%;min-width:82px;padding:3px 5px;border:1px solid var(--line);border-radius:3px;text-align:right;font:inherit}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:60}#toast div{background:#14323a;color:#fff;padding:9px 16px;border-radius:4px;margin-top:6px}#toast div.e{background:var(--neg)}
.login{max-width:360px;margin:12vh auto;background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px}.login h1{margin:0 0 4px;font-size:22px}
.lv td.a{background:#dcf2e4;font-weight:600}.lv td.pick{cursor:pointer}.lv td.pick:hover{outline:2px solid var(--acc);outline-offset:-2px}.note{background:#fff8e6;border:1px solid #f1deb0;border-radius:4px;padding:9px 12px;margin-bottom:12px}
@media(max-width:700px){.top{gap:8px;padding:0 8px}.body,.head{padding-left:12px;padding-right:12px}.g2c{grid-template-columns:1fr}.user{display:none}}

.printdoc h1{font-size:20px}.printdoc h3{margin:16px 0 6px}.printdoc .kv label{font-size:11px;color:var(--mut)}
@media print{.top,#tm,.no-print,.tabs,.tl .btn,.bar,.drop,#toast{display:none!important}body{background:#fff}.wrap{max-height:none;overflow:visible;border:0}th,tfoot td,tr.tot td{position:static}.body{padding:0}.head{border:0;padding:0}}

.bt th:first-child,.bt td:first-child{position:sticky;left:0;min-width:320px;background:#fff;z-index:3}.bt th:first-child{background:#eef1f2;z-index:4}.bt tr.g td:first-child{background:#f6f8f8}.bt tr.tot td:first-child{background:#e7ecee;z-index:4}
@media(max-width:700px){.bt th:first-child,.bt td:first-child{min-width:170px}.top{overflow:auto}.logo{white-space:nowrap}.sel{white-space:nowrap;flex:none}.tl{flex-wrap:wrap}.bar input{width:100%}}
@media print{.bt th:first-child,.bt td:first-child{position:static}}

.homebtn{background:#e8682a;color:#fff!important;font-weight:700;padding:6px 12px;border-radius:4px;text-decoration:none;white-space:nowrap;flex:none;font-size:15px}.homebtn span{font-size:13px}.homebtn:hover{filter:brightness(1.08)}
.menu{max-height:calc(100vh - 70px);overflow:auto}
@media(max-width:700px){.homebtn span{display:none}}
@media print{.homebtn{display:none}}

/* ===== Procore look (v31) ===== */
body{font:14px/1.45 Inter,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;letter-spacing:.1px}
a{color:var(--link)}.menu a,.tabs a,.drop .dm a{color:var(--txt)}
.top{height:52px;gap:10px;padding:0 12px 0 0}.homebtn{background:var(--acc);border-radius:0;height:52px;display:flex;align-items:center;padding:0 14px}
.logo{font-size:16px;padding:0 6px}.sel{background:var(--bar2);font-size:13px;min-width:150px}.sel small{color:#c9d1d5}
.tl h1{font-size:24px;font-weight:700}.head{padding:16px 24px 0}.crumb{font-size:13px}.crumb a{color:var(--link)}
.tabs a{font-size:14px;padding:8px 2px;margin-right:22px;border-bottom-width:2px}.tabs a.on{border-color:var(--txt);color:var(--txt)}
.btn{background:#e3e6e8;border:1px solid transparent;color:var(--txt);font-weight:600;height:32px;padding:0 14px;border-radius:4px}.btn:hover{background:#d6dadc}
.btn.p{background:var(--acc);border-color:var(--acc)}.btn.p:hover{background:var(--acc2);border-color:var(--acc2)}.btn.sm{height:24px;padding:0 9px;font-size:12px}
th{background:#fff;color:var(--txt);font-size:12px;font-weight:700;border-bottom:1px solid #b9c0c4;padding:9px 10px}td{font-size:13px;padding:7px 10px}
tr.g td{background:#f4f5f6}tfoot td,tr.tot td{background:#eceff1}
.bt th:first-child{background:#fff}.bt tr.g td:first-child{background:#f4f5f6}.bt tr.tot td:first-child{background:#eceff1}
.wrap{border-radius:4px;box-shadow:0 1px 2px #0000000f}.card{border-radius:4px;box-shadow:0 1px 2px #0000000f}.card h3{font-size:16px;font-weight:600}
.pill{font-size:12px;font-weight:600;padding:1px 8px;border:1px solid #c9cfd2;border-radius:10px;background:#eef0f1;color:#454f54}
.pill.Approved,.pill.Awarded,.pill.Complete,.pill.Paid,.pill.Closed,.pill.Received,.pill.Accepted,.pill.Compliant{background:#eaf8eb;border-color:#8fd497;color:#256f2c}
.pill.Open,.pill.Submitted,.pill.Sent,.pill.Signed,.pill.Initiated{background:#eaf1fd;border-color:#a9c4f2;color:#1f5bc4}
.pill.Draft,.pill.Pending,.pill.Under,.pill.Out,.pill.Soft,.pill.Requested,.pill.Processing,.pill.Expiring{background:#fdf6e2;border-color:#f0cf6c;color:#994000}
.pill.Rejected,.pill.Revise,.pill.Terminated,.pill.Problem,.pill.Not{background:#fdecec;border-color:#f3b0b2;color:#c2232a}
.pill.Void,.pill.No{background:#eef0f1;border-color:#c9cfd2;color:#6a767c}
.pcicon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;background:#e3e6e8;color:var(--txt);font-weight:700;font-size:15px}
.pcdesc{color:var(--mut);font-size:13px;margin:-6px 0 10px}
.pcsearch{position:relative;flex:1;max-width:420px;margin-left:6px}.pcsearch input{width:100%;height:32px;border:0;border-radius:4px;padding:0 10px;font:inherit;font-size:13px}
.pcres{position:absolute;top:36px;left:0;right:0;background:#fff;border-radius:4px;box-shadow:0 8px 20px #0003;z-index:30}.pcres a{display:flex;justify-content:space-between;padding:8px 12px;color:var(--txt)}.pcres a:hover{background:var(--hl);text-decoration:none}.pcres small,.pcmut{color:var(--mut);font-size:12px}.pcres .pcmut{display:block;padding:8px 12px}
.pcfav{display:flex;align-items:center;gap:12px;color:#fff;font-size:13px;white-space:nowrap;overflow:hidden;max-width:34vw}.pcfav small{color:#c9d1d5;font-size:11px;margin-right:2px}.pcfav a{color:#fff}.pcfav .pcmut{color:#9aa5ab}
.pcqc .btn{height:32px}.top .user{margin-left:6px}
.pcmenu{gap:40px}.pcti{display:flex;align-items:center;gap:6px}.pcstar{cursor:pointer;color:#c3c9cc;font-size:13px;width:14px}.pcstar.on{color:#f5b400}.pcstar:hover{color:#f5b400}
@media(max-width:900px){.pcfav{display:none}.pcsearch{max-width:200px}}
@media(max-width:700px){.pcsearch{display:none}.homebtn{height:52px}}
@media print{.pcsearch,.pcfav,.pcqc{display:none!important}}

/* ===== Row striping + hover (Blaine standard, 11/4/26) ===== */



.bt td.n{cursor:default}.bt td.n.lk{cursor:pointer}

/* ===== Clickable = blue (Blaine standard, 11/4/26) ===== */


.lv td.pick{color:var(--link)}td a,.note a,.card a{color:var(--link)}

tr.c>td:first-child{white-space:nowrap}

/* ===== Procore list toolbar ===== */
.pcbar{display:flex;gap:8px;align-items:center;margin:0 0 10px;flex-wrap:wrap}.pcbarhost{flex-wrap:wrap}.pcbarhost .pcbar{margin:0;flex:1}
.pcbar select{height:32px;border:1px solid var(--line);border-radius:4px;padding:0 8px;font:inherit;font-size:13px;background:#fff;max-width:220px}
.pccount{color:var(--mut);font-size:13px}tr.pcf-hide{display:none!important}

body.pcsnap .bt td.n{color:var(--txt);cursor:default}body.pcsnap .bt td.n:hover{outline:none}
/* Blaine 11/4/26: group rows only expand/collapse, so they are not links */
tr.g>td:first-child,tr.g>td:first-child b{color:var(--txt)}tr.g:hover>td:first-child{text-decoration:none}

/* Blaine 11/4/26: no row striping, row hover highlight or blue clickable-cell styling (not Procore). Parked as add-on ideas. */

/* Blaine 11/4/26, matched to Procore's Budget screenshot (help library "Read a Budget"): thin light line between rows, no column lines, one divider after the frozen first column on the budget. */
td{border-bottom:1px solid #dfe3e6!important;border-right:0!important;border-left:0!important}th{border-right:0!important;border-left:0!important}.bt td:first-child,.bt th:first-child{border-right:1px solid #cfd5d9!important}
.bt .bcode{font-weight:600}.bt .bdesc{color:var(--mut);font-size:12px;white-space:normal;max-width:340px}
/* Blaine 11/4/26 ("yes"): budget numbers that open records show light blue, as in Procore's budget screenshot. Only those cells. */
body:not(.pcsnap) .bt td.n.lk{color:var(--link)}
