:root{--bg:#0d1117;--panel:#161b22;--panel-2:#1c2330;--border:#2d3748;--text:#e6edf3;--muted:#9aa7b4;--green:#2ea043;--green-dim:#1a3a24;--red:#f85149;--red-dim:#3a1a1a;--amber:#d29922;--accent:#58a6ff;--hvac:#4cc9f0;--plumbing:#80ed99;--electrical:#ffd166}html{font-size:clamp(14px,.8vw,30px)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:110rem;margin:0 auto;padding:1rem 1.4rem 3.75rem}.topbar{display:flex;align-items:center;gap:1.1rem;padding:.55rem 1.4rem;background:var(--panel);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar h1{font-size:1.25rem;margin:0;letter-spacing:.5px}.topbar .brand{font-weight:800;color:var(--accent)}.topbar nav{display:flex;gap:.4rem;margin-left:auto;flex-wrap:wrap}.daypill,.topbar nav a{padding:.38rem .75rem;border-radius:.45rem;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-size:.875rem;font-weight:600}.topbar nav a.active{background:var(--accent);color:#04203f;border-color:var(--accent)}.daystrip{display:grid;grid-gap:.3rem;gap:.3rem;margin:.9rem 0}.daypill{font-size:.8rem;text-align:center;padding:.45rem .2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;line-height:1.1}.daypill-dow{display:none}.daypill.active{background:var(--accent);color:#04203f;border-color:var(--accent)}.daypill.has-data{border-color:var(--green)}.daypill.overdue{animation:pulse-overdue 1.3s ease-in-out infinite}.daypill.active.overdue{outline:.16rem solid var(--accent);outline-offset:.1rem;box-shadow:0 0 0 .34rem rgba(88,166,255,.35);font-weight:800}@keyframes pulse-overdue{0%,to{background:var(--red-dim);border-color:var(--red);color:#ffd7d5}50%{background:var(--red);border-color:var(--red);color:#fff}}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));grid-gap:.75rem;gap:.75rem;margin:.5rem 0 1.25rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:.6rem;padding:.9rem 1rem}.card .k{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.card .v{font-size:1.6rem;font-weight:800;margin-top:.25rem}.card.current{position:relative;border-color:var(--accent);animation:card-glow 2.4s ease-in-out infinite}.card.current .current-tag{position:absolute;top:-.6rem;right:.7rem;background:var(--accent);color:#04203f;font-size:.6rem;font-weight:800;letter-spacing:.8px;padding:.12rem .45rem;border-radius:.4rem}@keyframes card-glow{0%,to{box-shadow:0 0 .5rem rgba(88,166,255,.35),0 0 0 1px rgba(88,166,255,.25)}50%{box-shadow:0 0 1.5rem rgba(88,166,255,.75),0 0 0 1px rgba(88,166,255,.55)}}.card.good{border-color:var(--green)}.card.bad{border-color:var(--red)}.v.pos{color:var(--green)}.v.neg{color:var(--red)}table{border-collapse:collapse;width:100%}td,th{padding:.45rem .55rem;text-align:right;border-bottom:1px solid var(--border);font-size:.875rem}td.l,th.l{text-align:left}thead th{position:-webkit-sticky;position:sticky;top:3.1rem;background:var(--panel);z-index:5;letter-spacing:.5px}thead th,tr.section td{font-size:.75rem;color:var(--muted);text-transform:uppercase}tr.section td{font-weight:700;letter-spacing:.6px}.role,tr.section td{background:var(--panel-2)}.role{display:inline-block;font-size:.62rem;font-weight:800;padding:.06rem .38rem;border-radius:.3rem;color:var(--muted);border:1px solid var(--border);margin-right:.5rem}.trade-hvac{color:var(--hvac)}.trade-plumbing{color:var(--plumbing)}.trade-electrical{color:var(--electrical)}input.cell{width:5.75rem;text-align:right;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:.38rem;padding:.3rem .45rem;font-size:.875rem}input.cell:focus{outline:none;border-color:var(--accent);background:#0a1830}input.cell::-webkit-inner-spin-button,input.cell::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.cell[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input.cell.committed{border-left:.18rem solid var(--amber)}input.cell.actual{border-left:.18rem solid var(--accent)}.saved{border-color:var(--green)!important}.saving{opacity:.55}.gap-row{background:var(--red-dim)}.derived{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bp-dept,.pill{font-weight:800}.pill{font-size:.7rem;padding:.12rem .5rem;border-radius:1.25rem}.pill.on{background:var(--green-dim);color:var(--green)}.pill.off{background:var(--red-dim);color:var(--red)}.muted{color:var(--muted)}.small{font-size:.75rem}h2{font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:1.6rem 0 .6rem}.wrap.huddle{max-width:100%;padding-left:1.75rem;padding-right:1.75rem}.scoreboard{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,auto);grid-auto-flow:column;grid-gap:1rem;gap:1rem;margin-bottom:1.1rem}.tile{background:var(--panel);border-radius:1rem;padding:2.05rem 1.8rem;border:1px solid var(--border);border-top:.45rem solid var(--border)}.tile.ok{border-top-color:var(--green)}.tile.behind{border-top-color:var(--red)}.tile-h{font-size:1.5rem;font-weight:700}.tile-pace{font-size:3.6rem;font-weight:800;margin-top:.35rem;line-height:1.05}.tile.ok .tile-pace{color:var(--green)}.tile.behind .tile-pace{color:var(--red)}.tile-sub{margin-top:.25rem}.tile-sub,.tile-sub2{font-size:1.15rem;color:var(--muted)}.tile-sub2{margin-top:.5rem}.tile-need{font-size:1.4rem;font-weight:800;color:var(--amber);margin-top:.55rem}.tile-bar{height:.8rem;background:var(--bg);border-radius:.4rem;margin-top:.85rem;overflow:hidden}.tile-bar-fill{height:100%;border-radius:.4rem;transition:width .2s ease}.daytotals{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1rem;gap:1rem;margin-bottom:.6rem}.total{background:var(--panel-2);border:1px solid var(--border);border-radius:.9rem;padding:1.75rem 1.6rem}.total .k{font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.total .v{font-size:2.7rem;font-weight:800;margin-top:.25rem}.total .small{font-size:.95rem}.legend{font-size:.8rem;color:var(--muted);margin:-.12rem 0 .6rem}table.grid input.cell{width:100%;min-width:4.5rem}table.grid input.cell.money{min-width:7.5rem}table.grid td,table.grid th{padding:.3rem .5rem}.leftfig{font-size:.7rem;color:var(--muted);text-align:right;margin-top:.12rem}.leftfig.neg{color:var(--red);font-weight:700}.newmonth-btn{background:var(--green);color:#04210d;padding:.5rem 1rem;border-radius:.5rem;font-weight:800}.newmonth-btn:hover{filter:brightness(1.08);text-decoration:none}.mform{max-width:60rem}.mrow{display:flex;gap:1.5rem;align-items:flex-end;flex-wrap:wrap}.mrow label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.mrow select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:.5rem;padding:.5rem .7rem;font-size:1.1rem}.mtotal{display:flex;flex-direction:column;gap:.2rem}.mtotal-v{font-size:1.6rem;font-weight:800}.mcal{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.4rem,1fr));grid-gap:.4rem;gap:.4rem}.mday{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem 0;cursor:pointer;background:var(--bg);border:1px solid var(--border);border-radius:.45rem;color:var(--muted)}.mday-dow{font-size:.6rem;text-transform:uppercase;letter-spacing:.5px}.mday-n{font-size:1.1rem;font-weight:700;color:var(--text)}.mday.on{background:var(--green-dim);border-color:var(--green)}.mday.on .mday-n{color:var(--green)}.mday.weekend{opacity:.45}.mgrid{width:100%;max-width:52rem}.mgrid td,.mgrid th{padding:.3rem .5rem}.mgrid thead th{font-size:.85rem}.mseed{width:100%;min-width:6rem;text-align:right;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:.45rem;padding:.4rem .55rem;font-size:1rem}.mseed.money{min-width:8rem}.mseed:focus{outline:none;border-color:var(--accent)}.mseed::-webkit-inner-spin-button,.mseed::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mseed[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.mtotal-budget{margin:1rem 0;font-size:1.2rem}.merr{padding:.7rem 1rem;margin-bottom:.8rem}.merr,.mexists{background:var(--red-dim);color:var(--red);border-radius:.5rem;font-weight:700}.mexists{padding:.6rem 1rem;margin-top:.8rem}.reminder-overlay{position:fixed;inset:0;z-index:200;background:rgba(5,8,13,.92);display:flex;align-items:center;justify-content:center;padding:4vh 4vw;animation:reminder-in .4s ease}@keyframes reminder-in{0%{opacity:0}to{opacity:1}}.reminder-modal{text-align:center;background:var(--panel);border:1px solid var(--border);border-top:.6rem solid var(--accent);border-radius:1.2rem;padding:3.5rem 4rem;max-width:60rem}.reminder-bell{font-size:5rem;animation:bell-swing 1.2s ease-in-out infinite}@keyframes bell-swing{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.reminder-title{font-size:3.4rem;font-weight:800;margin:1rem 0 .6rem;color:var(--accent)}.reminder-sub{font-size:1.6rem;color:var(--muted)}.reminder-dismiss{margin-top:2rem;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:.7rem;padding:.8rem 2.5rem;font-size:1.3rem;font-weight:700;cursor:pointer}.reminder-dismiss:hover{filter:brightness(1.15)}.reminder-overlay.overdue{background:rgba(40,8,8,.95)}.reminder-modal.overdue{border-top-color:var(--red);animation:reminder-pulse 1.2s ease-in-out infinite}@keyframes reminder-pulse{0%,to{box-shadow:0 0 0 0 rgba(248,81,73,0)}50%{box-shadow:0 0 3.5rem .3rem rgba(248,81,73,.55)}}.reminder-modal.overdue .reminder-title{color:var(--red)}.reminder-start{margin-top:2.2rem;background:var(--green);color:#04210d;border:none;border-radius:.8rem;padding:1rem 3rem;font-size:1.9rem;font-weight:800;cursor:pointer}.reminder-start:hover{filter:brightness(1.08)}.huddle-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem;margin:.4rem 0 .9rem}.start-huddle{display:block;width:100%;background:var(--green);color:#04210d;border:none;border-radius:.7rem;padding:.85rem;font-size:1.4rem;font-weight:800;letter-spacing:.5px;cursor:pointer}.start-huddle:hover{filter:brightness(1.08)}.start-huddle.commit{background:var(--accent);color:#04203f}.start-huddle:disabled{background:var(--panel-2);color:var(--muted);cursor:not-allowed;border:1px solid var(--border)}.start-huddle:disabled:hover{filter:none}.huddle-overlay{position:fixed;inset:0;z-index:100;background:rgba(5,8,13,.94);display:flex;align-items:center;justify-content:center;padding:2vh 2vw}.huddle-modal{position:relative;width:100%;max-width:86rem;min-height:70vh;background:var(--panel);border:1px solid var(--border);border-radius:1rem;display:flex;flex-direction:column;padding:1.5rem 2rem 1.2rem}.huddle-x{position:absolute;top:1rem;right:1rem;background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:.5rem;width:2.2rem;height:2.2rem;font-size:1.1rem;cursor:pointer}.huddle-progress{font-size:.9rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.huddle-body{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.4rem}.huddle-trade{font-size:2.4rem;font-weight:800}.huddle-role{font-size:1.4rem;color:var(--muted);font-weight:700}.huddle-metric{font-size:3.2rem;font-weight:800;margin:.3rem 0 1rem;line-height:1.05}.huddle-vs{display:flex;gap:3rem;align-items:stretch;justify-content:center}.huddle-stat{display:flex;flex-direction:column;gap:.4rem;min-width:14rem}.huddle-stat-k{font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.huddle-stat-v{font-size:4rem;font-weight:800}.huddle-stat-v.hit{color:var(--green)}.huddle-stat-v.miss{color:var(--red)}.huddle-input{font-size:4rem;font-weight:800;width:14rem;text-align:center;background:var(--bg);color:var(--text);border:2px solid var(--border);border-radius:.7rem;padding:.3rem .5rem}.huddle-input:focus{outline:none;border-color:var(--accent)}.huddle-input.hit{border-color:var(--green);color:var(--green)}.huddle-input.miss{border-color:var(--red);color:var(--red)}.huddle-input.money{width:20rem;font-size:3rem}.huddle-input::-webkit-inner-spin-button,.huddle-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.huddle-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.huddle-banner{margin-top:1.2rem;font-size:1.5rem;font-weight:800;padding:.5rem 1.4rem;border-radius:.6rem}.huddle-banner.hit{background:var(--green-dim);color:var(--green)}.huddle-banner.miss{background:var(--red-dim);color:var(--red)}.huddle-banner.neutral{background:var(--panel-2);color:var(--muted)}.huddle-sub{margin-top:.9rem;font-size:1.1rem;color:var(--muted)}.huddle-combo{display:flex;gap:2.5rem;justify-content:center;align-items:flex-start;flex-wrap:wrap}.huddle-metric-block{display:flex;flex-direction:column;align-items:center;gap:.4rem}.huddle-combo.merged .huddle-metric-block{border:1px solid var(--border);border-radius:.8rem;padding:1rem 1.6rem 1.3rem}.huddle-combo.merged .huddle-metric{font-size:2.2rem;margin:.2rem 0 .6rem}.huddle-combo.merged .huddle-vs{gap:1.5rem}.huddle-combo.merged .huddle-stat{min-width:10rem}.huddle-combo.merged .huddle-stat-v{font-size:3rem}.huddle-combo.merged .huddle-input{font-size:3rem;width:10rem}.huddle-combo.merged .huddle-input.money{font-size:2.4rem;width:13rem}.huddle-summary{display:flex;gap:2rem;margin-top:1rem}.huddle-line{min-width:26rem;border:1px solid var(--border);border-top:.3rem solid var(--border);border-radius:.8rem;padding:1.4rem 1.8rem}.huddle-line.hit{border-top-color:var(--green)}.huddle-line.miss{border-top-color:var(--red)}.huddle-line-h{font-size:1.2rem;font-weight:700}.huddle-line-pace{font-size:3rem;font-weight:800}.huddle-line.hit .huddle-line-pace{color:var(--green)}.huddle-line.miss .huddle-line-pace{color:var(--red)}.huddle-line-sub{font-size:1.1rem;color:var(--muted);margin-top:.7rem}.huddle-breakdown{margin-top:.6rem;display:flex;flex-direction:column;gap:.35rem}.bd-row{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;font-size:1.6rem}.bd-row span{color:var(--muted);font-weight:600}.bd-row b{font-size:2.1rem;font-weight:800}.bd-row.hit b,.bd-row.hit span{color:var(--green)}.bd-row.miss b,.bd-row.miss span{color:var(--red)}.huddle-tmrw-label{margin-top:1.8rem;font-size:1.2rem;color:var(--muted);font-weight:600}.huddle-summary.tomorrow{margin-top:.7rem}.huddle-line.tmrw{padding:1.6rem 2rem}.tmrw-val{font-size:4rem;font-weight:800;line-height:1.05;margin-top:.3rem}.tmrw-unit{font-size:1.8rem;color:var(--muted);font-weight:700;margin-left:.4rem}.huddle-line.tmrw.hit .tmrw-val{color:var(--green)}.huddle-line.tmrw.miss .tmrw-val{color:var(--red)}.huddle-done{font-size:3rem;font-weight:800}.huddle-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.2rem}.hbtn{font-size:1.3rem;font-weight:800;padding:.7rem 2rem;border-radius:.7rem;cursor:pointer;border:1px solid var(--border)}.hbtn.ghost{background:var(--panel-2);color:var(--text)}.hbtn.primary{background:var(--accent);color:#04203f;border-color:var(--accent)}.hbtn:disabled{opacity:.4;cursor:default}.stale-banner{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--red);color:#fff;text-align:center;font-weight:800;padding:.4rem;font-size:.95rem;letter-spacing:.5px}.kiosk .huddle-overlay{align-items:safe center;justify-content:safe center;overflow-y:auto;padding:3vh 3vw}.kiosk .huddle-modal{max-width:94vw;min-height:80vh;padding:2.6rem 3.4rem 2rem;border-radius:1.6rem}.kiosk .huddle-x{top:1.5rem;right:1.5rem;width:4rem;height:4rem;font-size:2rem}.kiosk .huddle-progress{font-size:1.7rem}.kiosk .huddle-trade{font-size:4.4rem}.kiosk .huddle-role{font-size:2.6rem}.kiosk .huddle-metric{font-size:6rem;margin:.5rem 0 1.8rem}.kiosk .huddle-vs{gap:5.5rem}.kiosk .huddle-stat{min-width:26rem;gap:.7rem}.kiosk .huddle-stat-k{font-size:1.9rem}.kiosk .huddle-stat-v{font-size:7.4rem}.kiosk .huddle-input{width:26rem;font-size:7.4rem}.kiosk .huddle-input.money{width:36rem;font-size:5.6rem}.kiosk .huddle-banner{font-size:2.8rem;padding:.9rem 2.4rem;margin-top:2rem;border-radius:1rem}.kiosk .huddle-sub{font-size:2rem;margin-top:1.4rem}.kiosk .huddle-summary{gap:3rem;margin-top:1.6rem}.kiosk .huddle-line{min-width:40rem;padding:2.4rem 3rem;border-radius:1.2rem}.kiosk .huddle-line-h{font-size:2.2rem}.kiosk .huddle-line-pace{font-size:5.5rem}.kiosk .huddle-line-sub{font-size:2rem;margin-top:1.1rem}.kiosk .huddle-breakdown{gap:.6rem;margin-top:1rem}.kiosk .bd-row{font-size:3rem;gap:3rem}.kiosk .bd-row b{font-size:3.9rem}.kiosk .huddle-tmrw-label{font-size:2.2rem;margin-top:3rem}.kiosk .huddle-line.tmrw{padding:2.6rem 3rem}.huddle-line.tmrw.pulse-red{border-color:var(--red);animation:tmrw-pulse-red 1.5s ease-in-out infinite}.huddle-line.tmrw.pulse-green{border-color:var(--green);animation:tmrw-pulse-green 1.5s ease-in-out infinite}@keyframes tmrw-pulse-red{0%,to{box-shadow:0 0 0 1px rgba(248,81,73,.45),0 0 .5rem rgba(248,81,73,.3)}50%{box-shadow:0 0 0 2px rgba(248,81,73,.95),0 0 1.6rem rgba(248,81,73,.75)}}@keyframes tmrw-pulse-green{0%,to{box-shadow:0 0 0 1px rgba(46,160,67,.45),0 0 .5rem rgba(46,160,67,.3)}50%{box-shadow:0 0 0 2px rgba(46,160,67,.95),0 0 1.6rem rgba(46,160,67,.75)}}.kiosk .tmrw-val{font-size:7.2rem}.kiosk .tmrw-unit{font-size:3.2rem}.kiosk .huddle-nav{margin-top:2.2rem}.kiosk .hbtn{font-size:2.4rem;padding:1.2rem 3.4rem;border-radius:1.1rem}.kiosk .huddle-done{font-size:5.5rem}.kiosk .huddle-combo.merged .huddle-metric{font-size:3.2rem}.kiosk .huddle-combo.merged .huddle-vs{gap:2.4rem}.kiosk .huddle-combo.merged .huddle-stat{min-width:15rem}.kiosk .huddle-combo.merged .huddle-stat-v{font-size:5rem}.kiosk .huddle-combo.merged .huddle-input{font-size:5rem;width:15rem}.kiosk .huddle-combo.merged .huddle-input.money{font-size:4rem;width:22rem}.kiosk .entry-section,.kiosk .huddle-actions,.kiosk .huddle-nav{display:none}.kiosk .daypill-dow{display:block;width:100%;font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding-bottom:.15rem;margin-bottom:.1rem;border-bottom:1px solid var(--border)}.kiosk .daypill.active .daypill-dow{color:#04203f;border-bottom-color:rgba(4,32,63,.35)}.kiosk .daypill-date{font-size:1.05rem;font-weight:700}