:root{--navy-950:#071f38;--navy-900:#0b2b4d;--navy-700:#194b75;--navy-100:#dce9f3;--green-700:#237348;--green-100:#e7f5ec;--yellow-100:#fff7d6;--yellow-700:#765900;--red-700:#a72a2a;--gray-50:#f7f8fa;--gray-100:#eef1f4;--gray-200:#dce1e6;--gray-500:#687582;--gray-700:#35414d;--white:#fff;--shadow:0 10px 30px #071f3814;--font-sans:"Founders Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html{background:var(--gray-50);min-width:320px}body{min-height:100vh;color:var(--navy-950);background:var(--gray-50);font-family:var(--font-sans);margin:0;font-size:14px;line-height:1.45}a{color:inherit}button,input,select,textarea{font:inherit}button,.button{min-height:40px;color:var(--white);background:var(--navy-900);text-align:center;cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:9px 14px;font-weight:700;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--navy-700)}button:disabled{color:var(--gray-500);background:var(--gray-200);cursor:not-allowed}.button-secondary{border-color:var(--navy-900);color:var(--navy-900);background:var(--white)}.button-secondary:hover{color:var(--white)}.button-success{background:var(--green-700)}.pay-form{gap:10px;display:grid}.pay-row{grid-template-columns:170px minmax(0,1fr);align-items:center;gap:12px;display:grid}.pay-row>label{color:var(--navy-950);text-align:right;justify-self:end;font-weight:600}.pay-row>label span{color:var(--red-700);margin-left:2px}.pay-field{min-width:0}.pay-field input,.pay-field select,.pay-field textarea{width:100%}.pay-hint{color:var(--gray-500);margin:4px 0 0;font-size:13px}.pay-hint-warning{color:var(--yellow-700)}.pay-hint-error{color:var(--red-700)}.pay-receipts{border-top:1px solid var(--gray-200);margin:0;padding:16px 0 4px}.pay-receipts-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.pay-receipts-title{color:var(--navy-900);margin:0;font-size:15px;font-weight:600}.receipt-lines{gap:10px;margin:0 0 12px;padding:0;list-style:none;display:grid}.receipt-line{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;gap:10px;padding:12px;display:grid}.receipt-line-draft{background:var(--white);border-style:dashed}.receipt-line-fields{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.receipt-line-part{gap:4px;min-width:0;display:grid}.receipt-line-cost{flex:0 9rem}.receipt-line-actions{flex-wrap:wrap;gap:8px;display:flex}.receipt-line-caption{color:var(--gray-500);margin:0;font-size:13px}.receipt-line-image{min-width:0;color:var(--navy-700);align-items:center;gap:8px;display:inline-flex}.receipt-line-thumb{object-fit:cover;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:6px;width:44px;height:44px}.receipt-line-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.receipt-lines-add{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.receipt-lines-status{color:var(--gray-500);margin:8px 0 0;font-size:13px}.pay-readonly{border:1px solid var(--gray-200);background:var(--gray-50);font-variant-numeric:tabular-nums;border-radius:4px;padding:9px 10px;display:block}.pay-total{font-size:17px;font-weight:700}.pay-addons{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:6px;grid-column:1/-1;padding:10px 12px}.pay-addons-waiting{color:var(--gray-500);margin:0;font-size:14px}.pay-addons>summary{cursor:pointer;color:var(--navy-950);font-weight:600}.labor-picker{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.labor-picker>li{border:1px solid var(--gray-200);background:var(--white);border-radius:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.labor-item{gap:1px;min-width:0;display:grid}@media (max-width:640px){.pay-row{grid-template-columns:minmax(0,1fr);gap:4px}.pay-row>label{text-align:left;justify-self:start}}.button-danger{background:var(--red-700)}.file-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.file-row{border:1px solid var(--gray-200);background:var(--white);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.file-meta{overflow-wrap:anywhere;gap:2px;min-width:0;display:grid}@media (max-width:640px){.file-row{flex-direction:column;align-items:stretch}}.site-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:960px;min-height:48px;margin:0 auto;padding:6px 16px;display:flex}.brand{color:var(--white);letter-spacing:-.5px;align-items:baseline;gap:6px;font-size:22px;font-weight:700;text-decoration:none;display:inline-flex}.brand-product{color:#8bcf62;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.page-shell{width:min(100% - 32px,1100px);margin:20px auto 56px}.auth-shell{width:min(100% - 24px,390px);margin:48px auto}.stack{gap:16px;display:grid}.stack-tight{gap:10px;display:grid}.card{border:1px solid var(--gray-200);background:var(--white);box-shadow:var(--shadow);border-radius:6px;padding:18px}.page-title,.card h1,.card h2,.card h3,.section-title{color:var(--navy-950);margin-top:0}.page-title{margin-bottom:4px;font-size:24px;line-height:1.2}.page-intro{color:var(--gray-700);margin:0}.eyebrow{color:var(--navy-700);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:700}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{gap:5px;display:grid}.field-wide{grid-column:1/-1}.field label,.field-label{color:var(--gray-700);font-size:12px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-height:40px;color:var(--navy-950);background:var(--white);border:1px solid #aeb8c2;border-radius:3px;padding:8px 9px}.field textarea{resize:vertical;min-height:84px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--navy-700);outline:3px solid #194b7533}.form-section{border:0;gap:12px;margin:0;padding:0;display:grid}.form-section+.form-section{border-top:1px solid var(--gray-200);margin-top:20px;padding-top:20px}.section-title{margin-bottom:0;font-size:16px}.actions{flex-wrap:wrap;gap:10px;display:flex}.actions>*{flex:130px}.notice{color:var(--yellow-700);background:var(--yellow-100);border:1px solid #e3cd74;border-radius:4px;padding:10px 12px;font-size:12px}.notice strong{margin-bottom:2px;display:block}.status-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.status-badge{color:var(--green-700);background:var(--green-100);text-transform:uppercase;border-radius:999px;align-items:center;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.job-context{border-left:4px solid var(--navy-700);background:var(--navy-100);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.job-context p{margin:0}.job-context-reference{overflow-wrap:anywhere;font-weight:700}.app-tabs{border:1px solid var(--gray-200);background:var(--white);scrollbar-width:thin;display:flex;overflow-x:auto}.app-tabs a{border-right:1px solid var(--gray-200);color:var(--navy-900);white-space:nowrap;flex:none;padding:9px 11px;font-size:12px;font-weight:700;text-decoration:none}.app-tabs a:last-child{border-right:0}.app-tabs a[aria-current=page]{color:var(--white);background:var(--navy-900)}.muted{color:var(--gray-500)}.small{font-size:12px}.link-inline{color:var(--navy-700);font-weight:700}.empty-state{color:var(--gray-500);text-align:center;padding:12px 0}@media (max-width:640px){.site-header-inner{padding-inline:12px}.header-links{gap:10px}.field-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}}.read-only-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.read-only-grid>div{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:4px;gap:2px;padding:9px 10px;display:grid}.read-only-grid span{color:var(--gray-500);text-transform:uppercase;font-size:11px;font-weight:700}.form-message{color:var(--navy-900);background:var(--navy-100);border-radius:4px;margin:0;padding:10px 12px;font-size:12px;font-weight:700}.form-message-error{color:var(--red-700);background:#fbeaea}.form-message-success{color:var(--green-700);background:var(--green-100)}.field input:read-only,.field input:disabled,.field select:disabled{color:var(--gray-700);background:var(--gray-100)}.app-tabs .tab-pending{border-right:1px solid var(--gray-200);color:var(--gray-500,#6b7280);background:var(--gray-100,#f3f4f6);white-space:nowrap;cursor:not-allowed;flex:none;padding:9px 11px;font-size:12px;font-weight:700}.labor-table-scroll{overflow-x:auto}.labor-table{border-collapse:collapse;width:100%;font-size:13px}.labor-table th,.labor-table td{border-bottom:1px solid var(--gray-200);text-align:left;vertical-align:middle;padding:6px 8px}.labor-table thead th{border-bottom:2px solid var(--navy-900);color:var(--navy-900);text-transform:none;font-size:12px}.labor-table tbody th{font-weight:700}.labor-table .labor-quantity{text-align:center;width:4rem;font-weight:700}.labor-stepper{justify-content:flex-end;gap:6px;display:flex}.stepper-button{border:1px solid var(--gray-200);background:var(--white);width:26px;height:26px;color:var(--navy-900);cursor:pointer;border-radius:50%;font-size:15px;font-weight:700;line-height:1}.stepper-button:disabled{opacity:.35;cursor:not-allowed}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{color:var(--navy-950);background:var(--white);border-bottom:3px solid #55a848}.site-header-inner{gap:12px;max-width:1100px}.brand{color:var(--navy-950);align-items:center;gap:10px}.brand-words{flex-direction:column;line-height:1.05;display:flex}.brand-name{letter-spacing:-.4px;font-size:21px;font-weight:700}.site-header .brand-product{color:var(--gray-500);letter-spacing:2px;text-transform:uppercase;font-size:11px;font-weight:700}.header-links{align-items:center;gap:14px;font-size:13px;font-weight:700;display:flex}.header-links a{color:var(--navy-900);text-decoration:none}.header-links a:hover{text-decoration:underline}.button-logout{border:2px solid var(--navy-900);color:var(--navy-900);background:var(--white);cursor:pointer;border-radius:22px;padding:7px 16px;font-size:13px;font-weight:700}.button-logout:hover{color:var(--white);background:var(--navy-900)}.payroll-sheet-table th[scope=row]{white-space:nowrap}.labor-table td.numeric,.labor-table th.numeric{text-align:right;font-variant-numeric:tabular-nums}.payroll-row-selected{background:var(--navy-100)}.button-small{padding:4px 10px;font-size:12px}.pill{white-space:nowrap;border-radius:10px;margin-right:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.pill-open{color:var(--navy-900);background:var(--navy-100)}.pill-filed{color:var(--gray-700);background:var(--gray-200)}.pill-approved{color:var(--green-700);background:var(--green-100)}.pill-revision{color:var(--yellow-700);background:var(--yellow-100)}.sheet-total{font-variant-numeric:tabular-nums;font-size:20px}.decision-block{border-top:1px solid var(--gray-200);padding-top:12px}@media (max-width:720px){.status-row{flex-direction:column;align-items:flex-start;gap:8px}.actions{flex-wrap:wrap}.labor-table{font-size:12px}.labor-table th,.labor-table td{padding:5px 6px}.sheet-total{font-size:18px}}@media (max-width:480px){.brand-name{font-size:18px}.brand-mark{height:28px}.header-links{gap:10px;font-size:12px}.page-title{font-size:20px}}.brand-mark{width:auto;height:30px}@media (max-width:480px){.brand-mark{height:26px}}@media (max-width:640px){.page-shell{width:min(100% - 16px,1100px);margin-top:12px}.app-tabs{flex-wrap:wrap;overflow-x:visible}.app-tabs a,.app-tabs .tab-pending{text-align:center;flex:auto}.card{padding-inline:14px}.labor-table-scroll{margin-inline:-14px;padding-inline:14px}.read-only-grid{grid-template-columns:1fr 1fr}}@media (max-width:420px){.read-only-grid{grid-template-columns:1fr}.actions{flex-direction:column;align-items:stretch}.actions>*{flex-basis:auto;width:100%}.button,.button-success,.button-secondary{text-align:center}}body{overflow-x:hidden}h2.sheet-banner{color:var(--white);background:var(--navy-950);text-align:center;border-radius:4px;margin:0;padding:9px 12px;font-size:15px;font-weight:700}.sheet-controls{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.sheet-controls .field{min-width:220px}.sheet-total-pay{background:var(--yellow-100);color:var(--navy-950);border:1px solid #e6d9a8;border-radius:4px;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px;font-size:13px;font-weight:700;display:flex}.sheet-total-pay strong{font-variant-numeric:tabular-nums;font-size:18px}.total-pay-col{background:var(--yellow-100)}.sheet-status{white-space:nowrap}.pill-group{flex-wrap:wrap;gap:4px;display:inline-flex}.labor-item-cell,.notes-cell{white-space:normal;min-width:7rem;max-width:11rem}.sheet-table-wrap .payroll-sheet-table{min-width:max-content}.sheet-table-wrap{overflow-x:auto}.sheet-cards{display:none}@media (max-width:760px){.sheet-table-wrap{display:none}.sheet-cards{gap:10px;margin:0;padding:0;list-style:none;display:grid}.sheet-controls .field{min-width:100%}}.sheet-card{border:1px solid var(--gray-200);background:var(--white);border-radius:6px;gap:9px;padding:12px;display:grid}.sheet-card-selected{border-color:var(--navy-900);box-shadow:0 0 0 1px var(--navy-900)}.sheet-card-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.sheet-card-job{color:var(--navy-950);font-size:15px;font-weight:700;line-height:1.2;display:block}.sheet-card-sub{color:var(--gray-500);margin-top:2px;font-size:12px;display:block}.sheet-card-total{color:var(--navy-950);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:20px}.sheet-card-grid{border-top:1px solid var(--gray-200);grid-template-columns:1fr 1fr;gap:6px 12px;margin:0;padding-top:9px;display:grid}.sheet-card-grid dt{color:var(--gray-500);font-size:11px}.sheet-card-grid dd{color:var(--navy-950);font-variant-numeric:tabular-nums;margin:0;font-size:14px;font-weight:700}.sheet-card-items{color:var(--gray-700);margin:0;font-size:12px;line-height:1.35}.sheet-card-foot{border-top:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:10px;padding-top:9px;display:flex}.payroll-steps{gap:14px;display:grid}.step{border:1px solid var(--gray-200);background:var(--white);box-shadow:var(--shadow);border-radius:6px;padding:14px}.step-head{align-items:flex-start;gap:11px;margin-bottom:12px;display:flex}.step-number{width:28px;height:28px;color:var(--white);background:var(--navy-900);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.step-title{color:var(--navy-950);margin:0;font-size:16px;font-weight:700}.step-hint{color:var(--gray-500);margin:2px 0 0;font-size:12px;line-height:1.35}.step-body{gap:12px;display:grid}.field-readout{min-height:40px;color:var(--gray-700);background:var(--gray-50);border:1px dashed #aeb8c2;border-radius:3px;padding:9px;font-weight:700;display:block}.labor-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.labor-item{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;display:flex}.labor-item-text{gap:1px;display:grid}.labor-item-name{color:var(--navy-950);font-size:13px;font-weight:700;line-height:1.25}.labor-item-payout{color:var(--gray-500);font-size:12px}.labor-stepper{flex:none;align-items:center;gap:4px;display:flex}.labor-list .labor-quantity{text-align:center;font-variant-numeric:tabular-nums;min-width:2rem;font-size:15px;font-weight:700}.labor-list .stepper-button{border-color:var(--navy-900);width:40px;height:40px;font-size:20px}.payroll-summary{border:2px solid var(--navy-900);background:var(--white);border-radius:6px;gap:8px;padding:14px;display:grid}.payroll-summary-total{color:var(--navy-950);justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;font-weight:700;display:flex}.payroll-summary-total strong{font-variant-numeric:tabular-nums;font-size:26px}.payroll-summary-parts{color:var(--gray-500);margin:0;font-size:12px;line-height:1.35}.button-block{width:100%;min-height:48px;font-size:15px}.form-message-locked{color:var(--yellow-700);background:var(--yellow-100)}@media (max-width:640px){.field input,.field select,.field textarea,.pay-field input,.pay-field select,.pay-field textarea{min-height:46px;font-size:16px}.step{padding:12px}}.tab-bar{gap:6px;display:grid}.role-badge{color:var(--gray-500);margin:0;font-size:12px}.role-badge strong{color:var(--navy-900)}.lookup-title{color:var(--navy-950);margin:0;font-size:15px;font-weight:700}.lookup-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.lookup-form .field{flex:12rem}.section-divider{color:var(--gray-500);letter-spacing:.04em;text-align:center;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.payroll-status{border:1px solid var(--gray-200);background:var(--gray-50);color:var(--gray-500);border-radius:5px;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px;font-size:12px;font-weight:700;display:flex}.payroll-status strong{color:var(--navy-950);font-size:14px}
