:root{
  --bg:#f5f7fb;--panel:#ffffff;--ink:#172033;--muted:#647086;--line:#dfe5ef;--accent:#1f6feb;--accent2:#0b3a75;--good:#0f7b40;--warn:#b36b00;--bad:#b42318;--soft:#eef4ff;
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:var(--accent);text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:280px;background:#0e1b31;color:white;padding:24px;display:flex;flex-direction:column;gap:28px}.brand{display:flex;gap:12px;align-items:center}.brand-mark{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#2f80ed,#78b7ff);display:grid;place-items:center;font-weight:800}.brand span,.userbox span{color:#aebbd0;font-size:13px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:12px 14px;border-radius:12px;color:#dce7fb}.sidebar nav a:hover{background:#172942;color:white}.userbox{margin-top:auto;font-size:14px;line-height:1.5;background:#132540;border:1px solid #243854;border-radius:16px;padding:14px}.main{flex:1;padding:26px;overflow:auto}.topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:22px}.topbar h1{margin:0 0 4px;font-size:28px}.topbar p{margin:0;color:var(--muted)}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(15,23,42,.05);margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.col-1{grid-column:span 1}.col-2{grid-column:span 2}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.metric{padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#fff,#f9fbff)}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;font-size:24px;margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:11px 14px;background:var(--accent);color:white;font-weight:700;cursor:pointer}.btn.secondary{background:#e7edf8;color:#142033}.btn.danger{background:var(--bad)}.btn.small{padding:7px 10px;border-radius:9px;font-size:13px}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.field{display:grid;gap:6px}.field label{font-size:13px;color:var(--muted);font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit;background:white}.field textarea{min-height:100px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:separate;border-spacing:0;background:white}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}th{background:#f7f9fd;color:#42506a;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:0}.badge{display:inline-flex;gap:5px;align-items:center;border-radius:999px;padding:5px 9px;font-weight:800;font-size:12px}.badge.good{background:#e8f7ee;color:var(--good)}.badge.warn{background:#fff4df;color:var(--warn)}.badge.bad{background:#ffeceb;color:var(--bad)}.badge.gray{background:#edf1f7;color:#536174}.notice{padding:13px 15px;border-radius:14px;background:#edf6ff;border:1px solid #cfe6ff;color:#11365f;margin-bottom:16px}.notice.error{background:#fff0ef;border-color:#ffd0cb;color:#7a1a13}.notice.success{background:#effaf2;border-color:#ccefd7;color:#155f32}.split{display:flex;justify-content:space-between;gap:10px;align-items:center}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(520px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 12px 45px rgba(15,23,42,.12)}.login-card h1{margin:0 0 8px}.muted{color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.kicker{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.code{font-family:Consolas,Menlo,monospace;background:#0e1b31;color:#dce7fb;border-radius:14px;padding:14px;overflow:auto}.pillrow{display:flex;gap:8px;flex-wrap:wrap}.nowrap{white-space:nowrap}.right{text-align:right}
@media(max-width:900px){.shell{display:block}.sidebar{width:auto;border-radius:0 0 22px 22px}.sidebar nav{grid-template-columns:repeat(2,1fr)}.main{padding:18px}.col-1,.col-2,.col-3,.col-4,.col-6,.col-8{grid-column:span 12}.topbar{display:block}}
.staff-row{border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px;background:#fbfcff}
small.muted{display:block;margin-top:4px;font-size:12px}
.steps{display:grid;gap:12px}.step{display:flex;gap:14px;border:1px solid var(--line);border-radius:16px;padding:14px;background:#fbfcff}.step.active{border-color:#bcd5ff;background:#f2f7ff}.step.done{border-color:#ccefd7;background:#f2fbf5}.step-num{width:34px;height:34px;border-radius:999px;background:#e7edf8;color:#142033;font-weight:900;display:grid;place-items:center;flex:0 0 34px}.step.active .step-num{background:var(--accent);color:#fff}.step.done .step-num{background:var(--good);color:#fff}.step p{margin:4px 0 8px;color:var(--muted)}button:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed}.review-row h2{margin-top:0}.workflow-grid{margin-bottom:18px}code{background:#edf1f7;border-radius:6px;padding:1px 5px}

.small-link{font-size:12px;font-weight:800}.everyday-card{border-color:#cfe0ff}.payout-card h2{margin:0 0 4px}.payout-head{align-items:flex-start}.payout-money strong{display:block;font-size:26px}.payout-money span{display:block;color:var(--muted);font-size:13px}.payout-grid{margin:18px 0}.payout-lines{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;margin-top:12px}.payout-line{display:grid;grid-template-columns:150px 1fr 105px 125px 115px;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.payout-line:last-child{border-bottom:0}.payout-line-head{background:#f7f9fd;color:#42506a;text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:.04em}.payout-line input{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font:inherit}.extra-line{background:#fbfcff}.payout-foot{margin-top:14px}.admin-note{font-size:13px;color:var(--muted)}
@media(max-width:900px){.payout-line{grid-template-columns:1fr}.payout-line-head{display:none}.payout-line .right{text-align:left}.payout-foot,.payout-head{display:block}.payout-foot .actions{margin-top:12px}}

.tabrow{margin-top:10px}.hourly-row{align-items:end}

.payout-setup{margin:18px 0}.cap-warning{margin-top:12px}.clean-lines .payout-line input.right{max-width:110px;justify-self:end}.cap-override-field label{color:var(--ink);font-size:14px;display:flex;gap:8px;align-items:center}.cap-override-field input[type=checkbox]{width:auto}.payout-line .muted{color:var(--muted)}
@media(max-width:900px){.clean-lines .payout-line input.right{justify-self:stretch;max-width:none}}

/* v9.0.4 compact payroll job cards */
.compact-payout-card{padding:14px 16px;margin-bottom:12px;border-radius:16px}.compact-payout-card .payout-head{margin-bottom:8px}.compact-payout-card h2{font-size:19px}.compact-payout-card .payout-money strong{font-size:22px}.compact-payout-settings{display:grid;grid-template-columns:1.1fr 110px 145px 130px 85px;gap:10px;align-items:end;margin:10px 0}.mini-field input,.mini-field select{padding:8px 9px;border-radius:10px}.mini-field label{font-size:12px}.advanced-payout-details{margin:6px 0 10px}.advanced-payout-details summary{cursor:pointer;font-size:13px;font-weight:800;color:var(--muted)}.advanced-payout-grid{margin-top:10px}.compact-payout-card .payout-lines{margin-top:8px;border-radius:14px}.compact-payout-card .payout-line{grid-template-columns:120px minmax(180px,1fr) 90px 105px 105px;padding:7px 10px;gap:8px}.compact-payout-card .payout-line input{padding:7px 8px;border-radius:9px}.compact-payout-card .payout-foot{margin-top:10px}.helper-stack{display:grid;gap:4px}.default-helper-toggle{font-size:12px;color:var(--muted);display:flex;gap:5px;align-items:center}.default-helper-toggle input{width:auto}.compact-staff-form{gap:10px}.compact-staff-form .field input,.compact-staff-form .field select{padding:9px 10px}@media(max-width:1100px){.compact-payout-settings{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-payout-card .payout-line{grid-template-columns:1fr}.compact-payout-card .payout-line-head{display:none}.compact-payout-card .right{text-align:left}.compact-payout-card .clean-lines .payout-line input.right{justify-self:stretch;max-width:none}}@media(max-width:900px){.compact-payout-settings{grid-template-columns:1fr}.compact-payout-card{padding:14px}.compact-payout-card .split{display:block}.compact-payout-card .payout-money{text-align:left;margin-top:8px}}

/* v9.0.5 PC-first Job Payouts and Approved Payroll view */
.week-hero{border-color:#b9d3ff;background:linear-gradient(180deg,#ffffff,#f7fbff)}
.week-picker-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.week-range-block{min-width:280px;margin-right:auto}.week-range-block span{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:900}.week-range-block strong{display:block;font-size:26px;line-height:1.15;margin:2px 0}.week-range-block small{color:var(--muted)}.week-date-field{width:150px}.job-page-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.compact-metrics{margin-bottom:14px}.compact-metrics .metric{padding:12px 14px}.compact-metrics .metric strong{font-size:21px}
.payout-job-card{padding:12px 14px;border-radius:15px;margin-bottom:10px}.job-row-header{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px}.job-title-block h2{font-size:18px;margin:0 0 3px}.small-meta{font-size:13px}.row-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:52%}.job-money-strip{display:grid;grid-template-columns:130px 135px 115px 135px 115px 115px 130px 80px;gap:8px;align-items:end;margin:8px 0}.micro-field label{font-size:11px}.micro-field input,.micro-field select{padding:7px 8px;border-radius:9px;font-size:14px}.important-money input{font-weight:900;background:#f7fbff}.payout-type-select{max-width:130px}.tiny-select select{max-width:80px}.crew-control-bar{display:flex;justify-content:space-between;gap:12px;align-items:end;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:8px 10px;margin:8px 0}.crew-control-fields{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.inline-check{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap}.inline-check input{width:auto}.cap-field{width:88px}.payout-table{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:white}.payout-table-head,.payout-table-line{display:grid;grid-template-columns:112px minmax(180px,1fr) 70px 100px 85px;gap:8px;align-items:center}.payout-table-head{padding:7px 10px;background:#f7f9fd;color:#42506a;text-transform:uppercase;font-size:11px;font-weight:900;letter-spacing:.04em}.payout-table-line{padding:6px 10px;border-top:1px solid var(--line)}.payout-table-line input{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit;font-size:14px}.percent-input{max-width:68px;justify-self:end}.helper-cell{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:8px;align-items:center}.helper-cell .default-helper-toggle{white-space:nowrap}.extra-line{background:#fbfcff}.job-row-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px}.footer-math{font-size:14px}.slim-details{margin-top:8px}.slim-details summary{font-size:12px;color:var(--muted);font-weight:900;cursor:pointer}.slim-details .advanced-payout-grid{margin-top:8px}.approved-person-head h2{margin:0 0 4px}.approved-total{text-align:right}.approved-total span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.approved-total strong{font-size:25px}.approved-lines table td,.approved-lines table th{padding:9px 10px}
@media(max-width:1250px){.job-money-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.row-badges{max-width:none}.job-row-header{display:block}.row-badges{justify-content:flex-start;margin-top:8px}.payout-table-head,.payout-table-line{grid-template-columns:105px minmax(160px,1fr) 70px 95px 80px}}
@media(max-width:900px){.week-picker-row,.crew-control-bar,.job-row-footer{display:block}.week-range-block{min-width:0;margin:0 0 10px}.week-picker-row .btn,.week-picker-row .field{margin:4px 0}.job-money-strip{grid-template-columns:1fr 1fr}.payout-table-head{display:none}.payout-table-line{grid-template-columns:1fr}.payout-table-line .right{text-align:left}.percent-input{max-width:none;justify-self:stretch}.helper-cell{grid-template-columns:1fr}.crew-control-fields{display:grid;grid-template-columns:1fr}.cap-field{width:auto}.approved-person-head{display:block}.approved-total{text-align:left;margin-top:8px}}

/* v9.0.6 layout tune-up: crew first, smaller detail fields, collapsed staff, hourly in summary */
.primary-crew-controls{align-items:center}.primary-crew-controls .pay-type-mini{width:120px;flex:0 0 120px}.crew-cap-title{margin-right:auto}.payout-job-card .payout-table{margin-top:8px}.money-details{background:#fbfcff;border:1px solid var(--line);border-radius:12px;padding:8px 10px}.money-details summary{color:#42506a}.detail-money-strip{grid-template-columns:repeat(7,minmax(86px,1fr));gap:7px;margin:8px 0 10px}.detail-money-strip .micro-field input,.detail-money-strip .micro-field select{padding:6px 7px;font-size:13px}.detail-money-strip .micro-field label{font-size:10px}.payout-table-head,.payout-table-line{grid-template-columns:105px minmax(170px,1fr) 64px 94px 80px}.payout-table-line{padding:5px 8px}.payout-table-line input{padding:5px 7px}.job-row-header{margin-bottom:6px}.payout-job-card{max-width:1500px}.job-row-footer{border-top:1px solid var(--line);padding-top:8px}.pay-type-mini select{max-width:118px}
.staff-add-details summary,.staff-person summary,.hourly-quick-add summary,.hourly-person-card summary{cursor:pointer}.staff-add-details summary{font-size:17px}.staff-accordion-list{display:grid;gap:8px}.staff-person{border:1px solid var(--line);border-radius:14px;background:#fbfcff;overflow:hidden}.staff-person summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none}.staff-person summary::-webkit-details-marker,.staff-add-details summary::-webkit-details-marker{display:none}.staff-person summary small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.staff-private-form{padding:12px 14px;border-top:1px solid var(--line);background:white}.privacy-note-card{border-color:#cfe0ff}.staff-directory-card h2{margin-top:0}
.hourly-quick-add{border:1px solid var(--line);border-radius:14px;background:#fbfcff;padding:10px 12px;margin:10px 0}.compact-hourly-form{gap:9px;margin-top:10px}.compact-hourly-form .field input,.compact-hourly-form .field select,.hourly-inline-row .field input,.hourly-inline-row .field select{padding:7px 8px;border-radius:9px;font-size:13px}.compact-hourly-form .field label,.hourly-inline-row .field label{font-size:11px}.hourly-summary-accordion{display:grid;gap:8px;margin-top:12px}.hourly-person-card{border:1px solid var(--line);border-radius:14px;background:#fbfcff;overflow:hidden}.hourly-person-card summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;list-style:none}.hourly-person-card summary::-webkit-details-marker{display:none}.hourly-person-card summary small{display:block;color:var(--muted);font-size:12px}.hourly-person-card > form,.hourly-person-card > p{margin:10px 12px}.hourly-inline-row{gap:7px;border-top:1px solid var(--line);padding:9px 12px;background:white;align-items:end}.hourly-add-action{align-self:end}.tiny-actions{display:flex;gap:5px;align-self:end}.tiny-actions .btn{padding:6px 8px;font-size:12px}
@media(max-width:1250px){.detail-money-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.primary-crew-controls{display:flex}.payout-table-head,.payout-table-line{grid-template-columns:100px minmax(150px,1fr) 64px 90px 78px}}
@media(max-width:900px){.primary-crew-controls{display:block}.primary-crew-controls .pay-type-mini{width:auto}.detail-money-strip{grid-template-columns:1fr 1fr}.staff-person summary,.hourly-person-card summary{align-items:flex-start}.hourly-inline-row{grid-template-columns:1fr}.tiny-actions{justify-content:flex-start}}

/* v9.0.7 spreadsheet-inspired Job Payouts layout + cache-busted CSS */
.payout-week-hero{padding:16px 18px}.wide-week-range strong{font-size:30px}.payout-sheet-list{display:grid;gap:10px}.sheet-job-card{padding:10px 12px;border-radius:14px;margin-bottom:0;max-width:none}.sheet-job-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:7px;margin-bottom:9px}.sheet-job-title h2{margin:0 0 2px;font-size:17px;line-height:1.15}.sheet-status-strip{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;max-width:58%}.sheet-payout-grid{display:grid;grid-template-columns:minmax(150px,1.15fr) 74px 92px minmax(150px,1.15fr) 76px 102px minmax(170px,1.3fr) 76px 102px;gap:7px;align-items:end}.sheet-field{display:grid;gap:3px}.sheet-field label,.sheet-pay-readout span{font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:900}.sheet-field input,.sheet-field select{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 7px;font:inherit;font-size:13px;background:white}.pct-field input{font-weight:800;max-width:74px;justify-self:end}.sheet-pay-readout{border:1px solid #e6ecf5;background:#fbfcff;border-radius:8px;padding:5px 7px;min-height:48px;text-align:right}.sheet-pay-readout strong{display:block;font-size:13px;margin-top:3px}.sheet-pay-readout small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.helper-person-field{position:relative}.helper-person-field .default-helper-toggle{font-size:11px;margin-top:2px;white-space:nowrap;color:#516079}.helper-person-field .default-helper-toggle input{width:auto}.extra-helper-details,.controls-details,.money-details{margin-top:7px}.extra-helper-details summary,.controls-details summary,.money-details summary{cursor:pointer;font-size:12px;font-weight:900;color:#42506a}.extra-helper-grid{display:grid;grid-template-columns:minmax(170px,1fr) 76px 104px minmax(170px,1fr) 76px 104px;gap:7px;align-items:end;background:#fbfcff;border:1px solid var(--line);border-radius:10px;padding:8px;margin-top:6px}.sheet-summary-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding:7px 9px;border-radius:10px;background:#f8fafc;border:1px solid var(--line);font-size:13px}.controls-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:end;background:#fbfcff;border:1px solid var(--line);border-radius:10px;padding:8px;margin-top:6px}.controls-strip .micro-field{width:100px}.controls-strip .micro-field select,.controls-strip .micro-field input,.sheet-money-strip .micro-field input{padding:6px 7px;border-radius:8px;font-size:13px}.sheet-money-strip{display:flex!important;flex-wrap:wrap;gap:7px;margin:8px 0}.sheet-money-strip .micro-field{width:112px;min-width:112px}.sheet-money-strip .important-money{width:122px;min-width:122px}.sheet-actions-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.sheet-actions-row .actions{justify-content:flex-end}.sheet-job-card .cap-warning{margin-top:7px;padding:9px 10px}.sheet-job-card .advanced-payout-grid{gap:8px}.sheet-job-card .advanced-payout-grid input{padding:7px 8px;border-radius:8px;font-size:13px}
@media(max-width:1450px){.sheet-payout-grid{grid-template-columns:minmax(150px,1fr) 70px 88px minmax(150px,1fr) 72px 95px}.helper-person-field,.sheet-payout-grid>.pct-field:nth-of-type(6),.sheet-payout-grid>.sheet-pay-readout:nth-of-type(9){grid-column:auto}.sheet-payout-grid .helper-person-field{grid-column:1 / span 3}.extra-helper-grid{grid-template-columns:minmax(160px,1fr) 72px 95px}.sheet-summary-row{display:block}.sheet-summary-row div+div{margin-top:4px}}
@media(max-width:1100px){.sheet-job-head{display:block}.sheet-status-strip{justify-content:flex-start;max-width:none;margin-top:7px}.sheet-payout-grid{grid-template-columns:minmax(160px,1fr) 72px 95px}.sheet-payout-grid .helper-person-field{grid-column:auto}.extra-helper-grid{grid-template-columns:minmax(160px,1fr) 72px 95px}.sheet-actions-row{display:block}.sheet-actions-row .actions{margin-top:8px;justify-content:flex-start}}
@media(max-width:900px){.sheet-payout-grid,.extra-helper-grid{grid-template-columns:1fr}.pct-field input{max-width:none;justify-self:stretch}.sheet-pay-readout{text-align:left}.sheet-money-strip .micro-field,.sheet-money-strip .important-money,.controls-strip .micro-field{width:calc(50% - 5px);min-width:0}.wide-week-range strong{font-size:24px}}

/* v9.0.8 cleaner weekly hub, approved payroll table, and staff role privacy */
.clean-workflow-hero,.clean-approved-hero{border-color:#cfe0ff}.clean-workflow-actions .action-tile{min-height:180px;display:flex;flex-direction:column;justify-content:space-between}.action-tile h2{margin-top:0;font-size:20px}.workflow-metrics-row{margin-bottom:16px}.approved-summary-table th,.approved-summary-table td{padding:10px 12px;white-space:nowrap}.approved-summary-table td:first-child,.approved-summary-table th:first-child{white-space:normal}.zero-pay-row{color:#7b8496;background:#fbfcff}.zero-pay-row strong{color:#596276}.clean-approved-card h2{margin-top:0}.approved-detail-list{display:grid;gap:8px}.approved-person-detail{border:1px solid var(--line);border-radius:14px;background:#fbfcff;overflow:hidden}.approved-person-detail summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 13px;cursor:pointer;list-style:none}.approved-person-detail summary::-webkit-details-marker{display:none}.approved-person-detail summary small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.approved-person-detail .table-wrap,.approved-person-detail p{margin:10px 12px}.staff-field[hidden]{display:none!important}.staff-role-form .staff-hourly{background:#fff}.staff-person summary .badge{white-space:nowrap}
@media(max-width:1000px){.clean-workflow-actions .col-4{grid-column:span 12}.approved-summary-table th,.approved-summary-table td{padding:8px 9px}.approved-person-detail summary{align-items:flex-start}.approved-summary-table{font-size:13px}}

/* v9.0.11 readability, inline hourly, deposit allocations */
body{color:#101827}.topbar{align-items:center}.today-chip{flex:0 0 auto;border:1px solid #c8d5ea;background:#ffffff;border-radius:14px;padding:10px 12px;text-align:right;box-shadow:0 5px 18px rgba(15,23,42,.05)}.today-chip span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#52617a;font-weight:900}.today-chip strong{display:block;font-size:15px;color:#101827}.strong-metrics .metric{border-color:#cdd8ea;background:#fff}.strong-metrics .metric span{color:#42506a;font-weight:800}.strong-metrics .metric strong{color:#0f172a;font-weight:900}
.v9010-job-head{display:grid;grid-template-columns:minmax(620px,1fr) auto;align-items:start}.job-title-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.job-title-line h2{font-size:20px!important;color:#0f172a;margin-right:8px!important}.job-head-controls{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.mini-control{display:grid;gap:2px}.mini-control label{font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.06em;color:#4a5871;font-weight:900}.mini-control select,.mini-control input{border:1px solid #bdc9dc;border-radius:8px;padding:5px 7px;background:#fff;font:inherit;font-size:13px;font-weight:800;color:#111827}.mini-control select{width:100px}.mini-control.cap-mini input{width:70px;text-align:right}.job-money-topline{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.job-money-topline span{border:1px solid #cfd8e8;background:#f8fbff;border-radius:10px;padding:5px 8px;font-size:13px;color:#152238}.job-money-topline b{font-weight:900;color:#0f172a;margin-right:4px}.compact-rule-strip{max-width:360px!important}.sheet-payout-grid{grid-template-columns:minmax(170px,1fr) 70px 96px minmax(170px,1fr) 70px 96px minmax(170px,1fr) 70px 96px!important}.sheet-field label,.sheet-pay-readout span{color:#38465d!important}.sheet-field input,.sheet-field select{border-color:#bdc8d9;color:#0f172a;font-weight:700}.sheet-pay-readout{border-color:#cbd6e8;background:#f8fbff}.sheet-pay-readout strong{color:#0f172a;font-weight:900}.helper-person-field small{display:block;color:#536174;font-size:11px;font-weight:800;margin-top:2px}.sheet-summary-row{background:#eef4ff;border-color:#c7d6ee;color:#132033}.sheet-summary-row strong{color:#0f172a}.sheet-actions-row{background:#fbfcff;margin-left:-12px;margin-right:-12px;margin-bottom:-10px;padding:8px 12px;border-radius:0 0 14px 14px}.sheet-job-card{border-color:#cbd6e8}.sheet-job-card:nth-child(even){background:#fcfdff}.sheet-job-card:nth-child(odd){background:#ffffff}.cap-warning.notice.error{font-weight:900}.money-details{background:#f8fafc}.detail-money-strip .micro-field input{border-color:#bdc8d9;font-weight:800;color:#111827}
.readable-payroll-card{border-color:#c8d5ea}.approved-grid-table{border:1px solid #bfcbe0;border-radius:14px;overflow:hidden;background:#fff}.approved-grid-head,.approved-grid-row{display:grid;grid-template-columns:minmax(210px,1.45fr) minmax(120px,.78fr) minmax(120px,.78fr) minmax(95px,.55fr) minmax(135px,.85fr) minmax(100px,.65fr) minmax(135px,.9fr);align-items:center}.approved-grid-head{background:#dfe8f6;color:#132033;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.approved-grid-head>div{padding:10px 11px;border-right:1px solid #c0ccdf}.approved-grid-head>div:last-child{border-right:0}.approved-grid-row{min-height:54px;border-top:1px solid #cbd6e8}.approved-grid-row:nth-child(odd){background:#ffffff}.approved-grid-row:nth-child(even){background:#f4f7fc}.approved-grid-row>div{padding:9px 11px;border-right:1px solid #d3ddec;height:100%;display:flex;align-items:center;justify-content:flex-end;color:#111827}.approved-grid-row>div:first-child{justify-content:flex-start}.approved-grid-row>div:last-child{border-right:0}.emp-cell{display:block!important}.emp-cell strong{font-size:15px;color:#0f172a}.emp-cell span{display:block;color:#52617a;font-size:12px;font-weight:800;margin-top:2px}.money-cell{font-variant-numeric:tabular-nums;font-weight:800}.total-cell{background:#eef4ff;color:#0b326f!important}.total-cell strong{font-size:16px}.inline-hourly-cell input{width:82px;border:1px solid #aebbd0;border-radius:8px;padding:6px 7px;background:#fff;font:inherit;font-weight:900;color:#111827}.inline-hourly-form{margin:0}.inline-edit-note{margin-top:10px;font-weight:700}.zero-pay-row{opacity:.88}.zero-pay-row .total-cell{background:#f8fafc}.deposit-grid-table .approved-grid-head,.deposit-grid-table .approved-grid-row{grid-template-columns:minmax(220px,1fr) 160px minmax(320px,2fr)}.deposit-total-row{background:#eaf2ff!important}.deposit-total-row>div{font-weight:900}.payroll-line-backup{border-color:#d7e0ef}.payroll-line-backup h2{color:#152238}.approved-person-detail summary{background:#f4f7fc;color:#111827}.approved-lines table th{background:#dfe8f6;color:#132033}.approved-lines table td{color:#111827}
@media(max-width:1250px){.v9010-job-head{grid-template-columns:1fr}.compact-rule-strip{max-width:none!important;justify-content:flex-start}.sheet-payout-grid{grid-template-columns:minmax(150px,1fr) 70px 90px!important}.approved-grid-head,.approved-grid-row{grid-template-columns:minmax(170px,1.1fr) repeat(6,minmax(95px,1fr));font-size:13px}.approved-grid-table{overflow:auto}.approved-grid-head,.approved-grid-row{min-width:890px}}
@media(max-width:900px){.topbar{display:block}.today-chip{text-align:left;margin-top:10px}.job-title-line{display:block}.job-head-controls{margin-top:8px}.sheet-payout-grid{grid-template-columns:1fr!important}.approved-grid-table{overflow:auto}.approved-grid-head,.approved-grid-row{min-width:850px}.deposit-grid-table .approved-grid-head,.deposit-grid-table .approved-grid-row{min-width:760px}}

.approved-total-only .primary-payroll-total{border:2px solid #b8c8e4;background:#eef4ff}.primary-payroll-total strong{font-size:28px;color:#0b326f}.primary-payroll-total small{display:block;margin-top:4px;color:#42526a;font-weight:700}


/* v9.0.12 version footer */
.app-footer{margin:26px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#ffffff;color:#44546d;display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:13px;box-shadow:0 5px 18px rgba(15,23,42,.04)}
.app-footer strong{color:#0f172a;font-weight:900}.app-version-chip{margin-top:12px;border-top:1px solid #243854;padding-top:10px;color:#c9d7ea;font-size:12px;font-weight:800}.app-version-chip::before{content:'Build ';color:#8fa3bf;font-weight:700}
@media(max-width:900px){.app-footer{display:block}.app-footer strong{display:block;margin-top:3px}}
/* v9.0.13 password tools */
.narrow-card{max-width:620px}.checkline{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:#31415a}.checkline input{width:auto!important}.notice.warning{background:#fff8e6;border-color:#ffe0a8;color:#6f4700}.compact-notice{padding:9px 10px;margin:0 0 8px;border-radius:10px;font-size:13px}.attention-row td{background:#fffdf4!important}.readable-table tbody tr:nth-child(even) td{background:#f8fbff}.readable-table tbody tr:nth-child(odd) td{background:#fff}.readable-table td,.readable-table th{border-right:1px solid #e5eaf3}.readable-table td:last-child,.readable-table th:last-child{border-right:0}

/* v9.0.14 payroll processing guard */
.payroll-process-banner{display:flex;justify-content:space-between;gap:18px;align-items:center;margin:16px 0;padding:16px 18px;border-radius:16px;border:2px solid #d8dee9;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.06)}
.payroll-process-banner strong{display:block;font-size:1.2rem;letter-spacing:.02em;margin-bottom:4px}
.payroll-process-banner span{display:block;font-weight:600;line-height:1.35}
.payroll-process-banner.stop{border-color:#dc2626;background:#fff1f2;color:#7f1d1d}
.payroll-process-banner.stop strong{color:#b91c1c}
.payroll-process-banner.ready{border-color:#2563eb;background:#eff6ff;color:#1e3a8a}
.payroll-process-banner.ready strong{color:#1d4ed8}
.payroll-process-banner.paid{border-color:#16a34a;background:#f0fdf4;color:#14532d}
.payroll-process-banner.paid strong{color:#15803d}
.process-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.paid-check-form{font-weight:800;background:#fff;border:1px solid rgba(15,23,42,.16);border-radius:12px;padding:10px 12px;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;color:#0f172a}
.paid-check-form input{width:18px;height:18px;accent-color:#16a34a}
.paid-check-form.disabled{opacity:.55;color:#64748b;background:#f8fafc}
.payroll-not-released-card{border:2px dashed #dc2626;background:#fff7f7;color:#7f1d1d;margin-top:16px}
.payroll-not-released-card h2{color:#b91c1c;margin-top:0}
@media(max-width:900px){.payroll-process-banner{align-items:flex-start;flex-direction:column}.process-actions{justify-content:flex-start}}

/* v9.0.18 deposit allocation reconciliation */
.allocation-scoreboard .metric small{display:block;margin-top:4px;color:#52617a;font-weight:800}.allocation-scoreboard .good-metric{border-color:#b7e2c7;background:#f2fbf5}.allocation-scoreboard .good-metric strong{color:#0f7b40}.allocation-scoreboard .bad-metric{border-color:#ffc3bd;background:#fff4f2}.allocation-scoreboard .bad-metric strong{color:#b42318}.deposit-reconcile-table .approved-grid-head,.deposit-reconcile-table .approved-grid-row{grid-template-columns:minmax(230px,1.1fr) 160px minmax(360px,2fr)}.allocation-table .approved-grid-head,.allocation-table .approved-grid-row{grid-template-columns:minmax(230px,1.1fr) 160px minmax(150px,.75fr) minmax(360px,1.8fr)}.deposit-reconcile-table .money-cell{display:block;text-align:right}.deposit-reconcile-table .money-cell small{display:block;margin-top:3px;color:#536174;font-size:11px;font-weight:900}.allocation-leftover-row{background:#effaf2!important}.allocation-leftover-row>div:first-child,.allocation-leftover-row .total-cell strong{color:#0f7b40}.allocation-short-row{background:#fff0ef!important}.allocation-short-row>div:first-child,.allocation-short-row .total-cell strong{color:#b42318}.money-in-table .deposit-total-row{background:#eaf2ff!important}
@media(max-width:900px){.deposit-reconcile-table .approved-grid-head,.deposit-reconcile-table .approved-grid-row{min-width:820px}.allocation-table .approved-grid-head,.allocation-table .approved-grid-row{min-width:960px}}

/* v9.0.20 bank transfer folders */
.bank-transfer-card{border-color:#b7c9ee;background:linear-gradient(180deg,#ffffff,#f7faff)}
.bank-transfer-card h2{margin:0;color:#0f172a}.bank-transfer-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-top:14px}.bank-transfer-tile{border:1px solid #b9c8df;border-radius:16px;background:#fff;padding:14px;min-height:132px;box-shadow:0 7px 20px rgba(15,23,42,.05)}.bank-transfer-tile span{display:block;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.bank-transfer-tile strong{display:block;font-size:25px;margin:8px 0;color:#0f172a}.bank-transfer-tile small{display:block;color:#52617a;font-weight:700;line-height:1.35}.bank-transfer-total-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.bank-transfer-total-row>div{border:1px solid #b9c8df;border-radius:16px;padding:14px;background:#eef4ff}.bank-transfer-total-row span{display:block;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.bank-transfer-total-row strong{display:block;font-size:24px;margin:6px 0;color:#0b326f}.bank-transfer-total-row small{display:block;color:#52617a;font-weight:700}.bank-transfer-total-row .bank-left{background:#effaf2;border-color:#b7e2c7}.bank-transfer-total-row .bank-left strong{color:#0f7b40}.bank-transfer-total-row .bank-short{background:#fff0ef;border-color:#ffc3bd}.bank-transfer-total-row .bank-short strong{color:#b42318}
@media(max-width:1200px){.bank-transfer-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}}
@media(max-width:800px){.bank-transfer-grid,.bank-transfer-total-row{grid-template-columns:1fr}.bank-transfer-tile strong{font-size:22px}}

/* v9.0.22 */
.hidden-payroll-row { opacity: .82; background: repeating-linear-gradient(135deg, rgba(99, 102, 241, .06), rgba(99, 102, 241, .06) 8px, rgba(255,255,255,.02) 8px, rgba(255,255,255,.02) 16px); }
.hidden-payroll-row .badge { display: inline-block; margin-top: 4px; }
.notification-status-row.sent { background: rgba(22, 163, 74, .08); }
.notification-status-row.failed { background: rgba(220, 38, 38, .08); }

/* v9.0.23 completed payroll + PWA */
.status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:10px 13px;font-weight:900;border:1px solid rgba(15,23,42,.14);background:#f8fafc;color:#0f172a;white-space:nowrap}.status-pill.completed{background:#e8f7ee;border-color:#b7e2c7;color:#0f7b40}.admin-correction-details{font-size:13px;color:#334155}.admin-correction-details summary{cursor:pointer;font-weight:900}.admin-correction-details form{margin-top:8px}.pwa-card{border-color:#b7c9ee;background:linear-gradient(180deg,#fff,#f7faff)}.pwa-card .actions{margin:10px 0}.pwa-card .btn{min-height:42px}
