:root{font-family:Inter,system-ui,sans-serif;color:#17231f;background:#f4f7f5}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.loading,.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-shell{background:linear-gradient(145deg,#173f32,#0d251e)}.login-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:32px}.brand-mark{width:68px;height:68px;display:grid;place-items:center;border-radius:18px;background:#173f32;color:#efd66e;font-size:24px;font-weight:900}.login-card form{display:grid;gap:10px;margin-top:24px}.login-card input{padding:13px;border:1px solid #ccd6d1;border-radius:12px}.login-card button,.primary{padding:12px 16px;border:0;border-radius:10px;background:#173f32;color:#fff;font-weight:800}.error{margin-top:16px;color:#a32121;background:#fff1f1;padding:12px;border-radius:10px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 28px;background:#173f32;color:#fff}.brand-inline{font-size:22px;font-weight:900;color:#efd66e}.brand-inline span{color:#fff}.brand-inline.dark span{color:#173f32}.subtle{font-size:12px;color:#bfd1ca}.ghost{border:1px solid #4c7465;background:transparent;color:#fff;border-radius:10px;padding:9px 12px}.nav{display:flex;gap:8px;padding:10px 28px;background:#fff;border-bottom:1px solid #e0e8e4;overflow:auto}.nav button{border:0;background:transparent;padding:10px 14px;border-radius:10px;font-weight:700;color:#53655d}.nav button.active{background:#e8f2ed;color:#173f32}.content{width:100%;max-width:1640px;margin:auto;padding:28px 32px}.hero{display:flex;justify-content:space-between;gap:20px;align-items:center}.hero h1{margin:0}.hero p{color:#607069}.pill{background:#dff5e8;color:#16643d;padding:7px 12px;border-radius:999px;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px;margin-top:24px}.metric,.panel{background:#fff;border:1px solid #e3e9e6;border-radius:18px;padding:20px;box-shadow:0 5px 18px #1432270a}.metric div{color:#607069;font-size:13px}.metric strong{display:block;font-size:30px;margin-top:8px}.panel{margin-top:22px}.panel h2{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px}.form-grid label{display:grid;gap:6px;font-size:13px;font-weight:700}.form-grid input,.form-grid select{padding:11px 12px;border:1px solid #ccd6d1;border-radius:10px;background:#fff}.wide{grid-column:1/-1}.notice{margin-top:14px;padding:10px 12px;background:#eef7f2;border-radius:10px;color:#285942}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e8eeeb;white-space:nowrap}th{font-size:12px;color:#607069;text-transform:uppercase}td button{border:1px solid #ccd6d1;background:#fff;border-radius:8px;padding:7px 10px}.danger{color:#9b2929!important}.mini-label{font-size:13px;font-weight:700;color:#53655d}.calculated{font-size:24px;font-weight:900;margin-top:8px}.action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.action-row button:not(.primary){border:1px solid #ccd6d1;background:#fff;border-radius:8px;padding:9px 12px}.staff-link{width:100%;margin-top:14px;border:0!important;background:transparent!important;color:#315f4e!important;text-decoration:underline;font-weight:700!important}.staff-shell{min-height:100vh;background:#edf3f0;padding:18px;display:flex;justify-content:center;align-items:flex-start}.staff-card{width:min(620px,100%);background:#fff;border-radius:22px;padding:20px;box-shadow:0 12px 36px #1432271f}.staff-login{margin-top:10vh}.staff-login form{display:grid;gap:12px}.pin-input{font-size:30px;letter-spacing:10px;text-align:center;padding:16px;border:2px solid #bfd1ca;border-radius:14px;width:100%}.staff-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.staff-head h1{margin:4px 0 0}.staff-head button{border:1px solid #ccd6d1;background:#fff;border-radius:9px;padding:8px 11px}.staff-status{display:flex;justify-content:space-between;margin:20px 0;padding:14px 16px;border-radius:14px;background:#f3f5f4}.staff-status.good{background:#dff5e8;color:#16643d}.current-box{display:grid;gap:5px;padding:18px;border-radius:16px;background:#fff8d8;border:1px solid #eadb8a;margin-bottom:16px}.current-box>div{font-size:13px;font-weight:800;color:#75620a}.current-box strong{font-size:25px}.current-box span{color:#6e746f}.break-box{background:#e9f3ff;border-color:#b9d6f2}.staff-controls label{display:grid;gap:7px;font-weight:800}.staff-controls select{padding:14px;border:1px solid #ccd6d1;border-radius:12px;background:#fff}.activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.activity-grid button,.break-grid button,.big-action,.clockout{padding:16px 12px;border:0;border-radius:13px;font-weight:900}.activity-grid button{background:#edf2ef;color:#173f32}.activity-grid .cleaning{grid-column:1/-1;background:#173f32;color:#fff}.big-action{width:100%;margin:12px 0}.stop{background:#9b2929;color:#fff}.break-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.break-grid button{background:#e8eef6;color:#254b6e}.clockout{width:100%;margin-top:16px;background:#343c38;color:#fff}.staff-card button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){.metrics,.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.content,.topbar,.nav{padding-left:16px;padding-right:16px}.metrics,.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.hero{align-items:flex-start}.activity-grid{grid-template-columns:1fr}.activity-grid .cleaning{grid-column:auto}}.live-money .metric small{display:block;margin-top:7px;font-size:12px;color:#607069;font-weight:700}.metric-profit{border-color:#bfe3cf;background:#fbfffc}.metric-loss{border-color:#efc8c8;background:snow}.metric-profit strong,.positive{color:#147a49}.metric-loss strong,.negative{color:#b42318}.section-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.section-head h2{margin-bottom:4px}.section-head p{margin:0 0 14px;color:#607069;font-size:13px;max-width:850px;line-height:1.45}.history-filter .section-head{align-items:flex-end;gap:18px}.preset-row{display:flex;flex-wrap:wrap;gap:8px}.preset-row button{border:1px solid #d4dfda;background:#fff;color:#173f32;border-radius:10px;padding:9px 12px;font-weight:700}.compact-grid{grid-template-columns:repeat(5,minmax(150px,1fr));align-items:end}.filter-action{display:flex;align-items:flex-end}.filter-action button{width:100%}.history-metrics{grid-template-columns:repeat(6,minmax(140px,1fr))}.warning-cell{background:#fff2cc;color:#7a4f00;font-weight:800}@media(max-width:1100px){.compact-grid{grid-template-columns:repeat(2,1fr)}.history-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.compact-grid,.history-metrics{grid-template-columns:1fr}}.job-metrics{grid-template-columns:repeat(5,minmax(140px,1fr))}.schedule-notice{margin-top:18px}.job-status{display:inline-block;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:900}.job-status.scheduled{background:#edf3f0;color:#315f4e}.job-status.in-progress{background:#fff3cd;color:#7a5b00}.job-status.completed{background:#dff5e8;color:#16643d}.job-status.overdue{background:#ffe7e5;color:#a52b21}.job-status.missed{background:#f3e7ff;color:#6a2ca0}.job-status.cancelled{background:#ececec;color:#666}.subtle-dark{color:#7b8882}@media(max-width:1100px){.job-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.job-metrics{grid-template-columns:1fr}}.expense-filter{grid-template-columns:repeat(4,minmax(160px,1fr))}.expense-metrics{grid-template-columns:repeat(3,minmax(160px,1fr))}.profit-metrics{grid-template-columns:repeat(6,minmax(145px,1fr))}.reconcile-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.reconcile-grid>div{border:1px solid #e3e9e6;border-radius:14px;padding:15px;background:#f8fbf9}.reconcile-grid span{display:block;color:#607069;font-size:12px;font-weight:700}.reconcile-grid strong{display:block;margin-top:7px;font-size:20px}@media(max-width:1100px){.profit-metrics{grid-template-columns:repeat(3,1fr)}.reconcile-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.expense-filter,.expense-metrics,.profit-metrics,.reconcile-grid{grid-template-columns:1fr}}.stock-alert{border-color:#e5c55d;background:#fff9df}.stock-filter-row{display:flex;gap:8px;flex-wrap:wrap}.stock-filter-row button{border:1px solid #ccd6d1;background:#fff;border-radius:10px;padding:9px 12px;font-weight:800;color:#53655d}.stock-filter-row button.active{background:#173f32;color:#fff;border-color:#173f32}.stock-metrics{grid-template-columns:repeat(4,minmax(140px,1fr))}.stock-status{display:inline-block;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900}.stock-status.open{background:#ffe9b8;color:#755400}.stock-status.ordered{background:#e5efff;color:#23528a}.stock-status.delivered{background:#dff5e8;color:#16643d}.stock-status.closed{background:#ecefee;color:#5d6964}.stock-items{white-space:normal;min-width:190px;max-width:360px}.staff-stock-section{margin-top:24px;padding-top:22px;border-top:1px solid #e3e9e6}.staff-stock-section h2{margin:0 0 4px}.staff-stock-section>p{margin-top:0;color:#607069}.staff-stock-section form{display:grid;gap:12px}.staff-stock-section label{display:grid;gap:7px;font-weight:800}.staff-stock-section select,.staff-stock-section textarea{width:100%;padding:13px;border:1px solid #ccd6d1;border-radius:12px;background:#fff}.staff-stock-section textarea{min-height:96px;resize:vertical}.recent-stock{margin-top:22px}.recent-stock h3{margin-bottom:10px}.recent-stock-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(180px,2fr) auto;gap:10px;align-items:start;padding:12px 0;border-top:1px solid #e8eeeb}.recent-stock-row>div:first-child{display:grid;gap:2px}.recent-stock-row span{font-size:12px;color:#607069}.recent-stock-row .stock-status{color:inherit}.recent-stock-row small{grid-column:1/-1;color:#53655d}.stock-request-text{white-space:pre-wrap}@media(max-width:700px){.stock-metrics{grid-template-columns:repeat(2,1fr)}.recent-stock-row{grid-template-columns:1fr auto}.stock-request-text{grid-column:1/-1}}.site-location-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border:1px dashed #b8c9c1;border-radius:12px;background:#f8fbf9}.site-location-tools small{color:#607069;max-width:620px}.site-verified-chip{display:inline-block;margin-top:8px;padding:6px 9px;border-radius:999px;background:#dff5e8;color:#16643d;font-size:12px;font-weight:900}.site-address-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.site-address-tools small{flex-basis:100%;line-height:1.45}.site-advanced{border:1px solid #dde6e1;border-radius:12px;padding:12px 14px;background:#fafcfb}.site-advanced summary{cursor:pointer;font-weight:800;color:#42574e}.site-coordinate-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;margin-top:12px}.site-advanced small{display:block;margin-top:8px;color:#607069}@media(max-width:700px){.site-coordinate-grid{grid-template-columns:1fr}.site-address-tools button{width:100%}}.timesheet-print-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:18px}.timesheet-company{font-size:14px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#315f4e}.timesheet-print-header h2{margin:4px 0 0;font-size:28px}.timesheet-period{display:grid;gap:6px;text-align:right}.timesheet-table th,.timesheet-table td{white-space:nowrap}.timesheet-table tfoot th{background:#f2f6f4;border-top:2px solid #8fa69c}.timesheet-summary{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;margin-top:18px}.timesheet-summary>div{border:1px solid #dde6e1;border-radius:14px;padding:16px;background:#f8fbf9}.timesheet-summary span{display:block;color:#607069;font-size:12px;font-weight:800}.timesheet-summary strong{display:block;margin-top:6px;font-size:24px}.timesheet-signatures{display:grid;grid-template-columns:repeat(2,1fr);gap:46px;margin-top:44px}.timesheet-signatures span{font-weight:800}.signature-line{height:34px;border-bottom:1px solid #333;margin-bottom:7px}.timesheet-signatures small{color:#66756f}.timesheet-note{margin-top:30px;font-size:12px;color:#607069;line-height:1.5}@media(max-width:800px){.timesheet-print-header{display:grid}.timesheet-period{text-align:left}.timesheet-summary,.timesheet-signatures{grid-template-columns:1fr}}@media print{body{background:#fff!important}.topbar,.nav,.no-print{display:none!important}.app-shell,.content,.timesheet-page{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important}.printable-timesheet{box-shadow:none!important;border:none!important;padding:0!important;margin:0!important}.timesheet-table-wrap{overflow:visible!important}.timesheet-table{width:100%!important;font-size:10pt!important}.timesheet-table th,.timesheet-table td{padding:7px 5px!important}.timesheet-print-header{display:flex!important}.timesheet-summary,.timesheet-signatures{grid-template-columns:repeat(2,1fr)!important}@page{size:A4 landscape;margin:12mm}}.timesheet-controls-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1fr);gap:24px;align-items:start}.staff-multi-select{border:1px solid #dde6e1;border-radius:14px;padding:14px;background:#fafcfb}.multi-select-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.multi-select-head span{font-size:12px;color:#607069;font-weight:800}.staff-select-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.staff-select-actions button{padding:7px 10px}.staff-check-list{display:grid;gap:3px;max-height:240px;overflow:auto;border-top:1px solid #e6ece9;padding-top:8px}.staff-check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;padding:7px 5px;font-weight:700!important;cursor:pointer}.staff-check-row input{width:auto!important;margin:0}.timesheet-date-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.timesheet-date-controls label{display:grid;gap:7px;font-weight:800}.timesheet-load-actions{grid-column:1/-1;margin-top:4px}.timesheet-print-stack{display:grid;gap:22px}.employee-timesheet-sheet{break-inside:avoid}@media(max-width:800px){.timesheet-controls-grid,.timesheet-date-controls{grid-template-columns:1fr}.timesheet-load-actions{grid-column:auto}}@media print{.timesheet-print-stack{display:block!important}.employee-timesheet-sheet{break-after:page;page-break-after:always;break-inside:auto!important;page-break-inside:auto!important;box-shadow:none!important;border:none!important;padding:0!important;margin:0!important}.employee-timesheet-sheet:last-child{break-after:auto;page-break-after:auto}}.ready-payroll-panel{border-color:#cfe3d9;background:#fbfefc}.timesheet-approval-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;padding:12px;border:1px solid #e0e8e4;border-radius:12px;background:#fafcfb}.approval-status{display:inline-block;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:900}.approval-status.pending{background:#f0f2f1;color:#5b6862}.approval-status.employee-signed{background:#fff0c9;color:#725300}.approval-status.owner-signed{background:#dff5e8;color:#16643d}.timesheet-signoff-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:18px;margin-top:26px}.timesheet-signoff-grid>div{border:1px solid #dde6e1;border-radius:14px;padding:16px;min-height:108px;background:#fafcfb}.timesheet-signoff-grid span{display:block;color:#607069;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px}.timesheet-signoff-grid strong{display:block;font-size:20px;margin-bottom:6px}.timesheet-signoff-grid small{display:block;color:#5d6e66;line-height:1.45;margin-top:3px}.staff-timesheet-section{margin-top:24px;padding-top:22px;border-top:1px solid #e3e9e6}.staff-section-head h2{margin:0 0 4px}.staff-section-head p{margin:0;color:#607069;line-height:1.45}.staff-week-buttons{display:flex;gap:8px;margin:14px 0 12px}.staff-week-buttons button{border:1px solid #ccd6d1;background:#fff;border-radius:10px;padding:9px 12px;font-weight:800}.staff-week-buttons button.active{background:#173f32;color:#fff;border-color:#173f32}.staff-timesheet-period{margin-bottom:10px;color:#41564d}.staff-timesheet-table{border:1px solid #dde6e1;border-radius:12px;overflow:hidden;background:#fff}.staff-timesheet-row{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:10px;padding:10px 12px;border-top:1px solid #edf1ef;align-items:center}.staff-timesheet-row:first-child{border-top:0}.staff-timesheet-row.head{background:#f4f8f6;color:#566961;font-size:11px;font-weight:900;text-transform:uppercase}.staff-timesheet-row strong{text-align:right}.staff-timesheet-empty{padding:14px;color:#68766f}.staff-timesheet-total{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;font-weight:800}.staff-timesheet-total strong{font-size:22px}.staff-sign-box{display:grid;gap:10px;margin-top:8px;padding:14px;border:1px solid #dbe5e0;border-radius:12px;background:#fafcfb}.staff-sign-box label{display:grid;gap:7px;font-weight:800}.staff-sign-box input{width:100%;padding:12px;border:1px solid #ccd6d1;border-radius:10px}.staff-sign-box small{color:#67766f;line-height:1.45}.timesheet-staff-status{display:grid;gap:4px;padding:13px 14px;border-radius:12px;margin-top:8px}.timesheet-staff-status.signed{background:#fff5d7;color:#6c5200}.timesheet-staff-status.complete{background:#e4f6eb;color:#165f3a}.timesheet-staff-status span{font-size:12px}@media(max-width:700px){.timesheet-signoff-grid{grid-template-columns:1fr}.staff-timesheet-row{grid-template-columns:1.15fr .8fr .7fr;font-size:13px}}@media print{.timesheet-signoff-grid{grid-template-columns:repeat(2,1fr)!important}.timesheet-signoff-grid>div{background:#fff!important}}.export-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.export-grid button{display:grid;gap:5px;text-align:left;padding:16px;border:1px solid #d8e2dd;background:#fafcfb;border-radius:14px}.export-grid button strong{font-size:15px}.export-grid button span{font-size:12px;color:#607069;line-height:1.4}.backup-panel{border-color:#dacb98;background:#fffdf5}.backup-warning{font-size:12px;color:#6f6040;margin-bottom:0}.customer-report-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:1px solid #dfe7e3;padding-bottom:14px;margin-bottom:18px}.customer-report-header h2{margin:4px 0 0}.customer-report-header>div:last-child{text-align:right}.customer-report-metrics{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin-bottom:24px}.customer-report-metrics>div{border:1px solid #dfe7e3;border-radius:12px;padding:13px;background:#fafcfb}.customer-report-metrics span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#607069;font-weight:800}.customer-report-metrics strong{display:block;font-size:20px;margin-top:5px}.customer-print-report h3{margin-top:26px}@media(max-width:1000px){.export-grid,.customer-report-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.export-grid,.customer-report-metrics{grid-template-columns:1fr}.customer-report-header{display:grid}.customer-report-header>div:last-child{text-align:left}}@media print{.reports-page>.panel.no-print,.reports-page>.hero.no-print{display:none!important}.customer-print-report{display:block!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important}}html{-webkit-text-size-adjust:100%}button,input,select,textarea{touch-action:manipulation}.staff-shell{padding-bottom:max(18px,env(safe-area-inset-bottom))}.staff-card{width:min(680px,100%)}.staff-card button{min-height:44px}.pin-input{font-size:24px!important;letter-spacing:.18em;text-align:center}@media(max-width:700px){.staff-shell{padding:0;background:#f4f7f5}.staff-card{min-height:100dvh;border-radius:0!important;border:0!important;box-shadow:none!important;padding:18px 16px 28px!important}.staff-head{position:sticky;top:0;z-index:5;background:#fff;padding:8px 0 12px;border-bottom:1px solid #e6ece9}.staff-status,.current-box{border-radius:14px}.activity-grid{grid-template-columns:1fr!important}.activity-grid button,.big-action,.clockout,.break-grid button{min-height:56px;font-size:16px}.break-grid{grid-template-columns:1fr 1fr}.staff-controls select,.staff-stock-section select,.staff-stock-section textarea,.staff-sign-box input{font-size:16px}.staff-timesheet-row{grid-template-columns:1.1fr .9fr .8fr!important}}@media(display-mode:standalone){body{overscroll-behavior-y:none}}.staff-jobs-section{margin:16px 0;padding:14px;border:1px solid #dfe7e3;border-radius:16px;background:#fff}.staff-jobs-section h2{margin:0}.staff-jobs-section p{margin:4px 0 0;color:#607069;font-size:13px}.staff-job-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.staff-job-summary>div{padding:10px;border:1px solid #e2e8e5;border-radius:12px;background:#fafcfb;text-align:center}.staff-job-summary>div.warn{border-color:#e9b9b9;background:#fff7f7}.staff-job-summary span{display:block;font-size:11px;color:#66746e;font-weight:800;text-transform:uppercase}.staff-job-summary strong{display:block;font-size:20px;margin-top:3px}.staff-job-group{display:grid;gap:8px;margin-top:10px}.staff-job-group h3{margin:6px 0 0;font-size:14px}.staff-job-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid #e2e8e5;border-radius:12px;background:#fafcfb}.staff-job-row.overdue{border-color:#efc6c6;background:#fff8f8}.staff-job-row.today{border-color:#c7ddd3;background:#f6fbf8}.staff-job-main{min-width:0;display:grid;gap:4px}.staff-job-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.staff-job-badge{font-size:10px;font-weight:900;border-radius:999px;padding:3px 7px;background:#edf2ef}.staff-job-badge.overdue{background:#f7dddd;color:#8d2020}.staff-job-badge.today{background:#dff0e8;color:#205c43}.staff-job-badge.upcoming{background:#e8edf1;color:#40505c}.staff-job-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:#5f6c66}.staff-job-row small{color:#66746e}.staff-job-row>button{min-width:70px}.staff-upcoming{margin-top:10px}.staff-upcoming summary{cursor:pointer;font-weight:800;padding:10px 0}.staff-no-jobs{padding:12px;color:#66746e;text-align:center;background:#fafcfb;border-radius:12px}@media(max-width:600px){.staff-job-summary{grid-template-columns:repeat(3,1fr)}.staff-job-row{align-items:flex-start}.staff-job-row>button{min-width:64px}.staff-job-meta{display:grid;gap:2px}}.price-override-note{margin-top:3px;font-size:11px;line-height:1.3;color:#7b5f13;font-weight:700}.compact-actions{gap:6px!important;flex-wrap:wrap}.compact-actions button{padding:7px 9px;white-space:nowrap}.history-revenue-cell{min-width:125px}.history-price-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.history-price-actions button{padding:6px 8px;font-size:11px;white-space:nowrap}@media screen{.app-shell .report-table-wrap{width:100%;max-width:100%;max-height:64vh;overflow-y:auto;overflow-x:hidden;border:1px solid #e4ebe7;border-radius:12px;scrollbar-gutter:stable;background:#fff}.app-shell .report-table-wrap .fit-table{width:100%;min-width:0!important;table-layout:fixed;border-collapse:separate;border-spacing:0}.app-shell .report-table-wrap .fit-table th,.app-shell .report-table-wrap .fit-table td{white-space:normal!important;overflow-wrap:anywhere;word-break:normal;vertical-align:top;line-height:1.25;padding:8px 6px;font-size:11px}.app-shell .report-table-wrap .fit-table thead th{position:sticky;top:0;z-index:8;background:#f5f9f7;color:#4f6259;font-size:10px;font-weight:900;line-height:1.15;text-transform:uppercase;border-bottom:2px solid #cfdcd6;box-shadow:0 1px #173f320f}.app-shell .report-table-wrap .fit-table tbody tr:nth-child(2n){background:#fbfdfc}.app-shell .report-table-wrap .fit-table td button{max-width:100%;white-space:normal;line-height:1.15;padding:6px 7px;font-size:10px}.completed-visits-table th:nth-child(1),.completed-visits-table td:nth-child(1){width:8%}.completed-visits-table th:nth-child(2),.completed-visits-table td:nth-child(2){width:13%}.completed-visits-table th:nth-child(3),.completed-visits-table td:nth-child(3){width:9%}.completed-visits-table th:nth-child(4),.completed-visits-table td:nth-child(4){width:9%}.completed-visits-table th:nth-child(5),.completed-visits-table td:nth-child(5){width:9%}.completed-visits-table th:nth-child(6),.completed-visits-table td:nth-child(6),.completed-visits-table th:nth-child(7),.completed-visits-table td:nth-child(7){width:8%}.completed-visits-table th:nth-child(8),.completed-visits-table td:nth-child(8){width:8%}.completed-visits-table th:nth-child(9),.completed-visits-table td:nth-child(9){width:11%}.completed-visits-table th:nth-child(10),.completed-visits-table td:nth-child(10){width:9%}.completed-visits-table th:nth-child(11),.completed-visits-table td:nth-child(11){width:8%}.completed-visits-table .history-price-actions{display:grid;grid-template-columns:1fr;gap:4px;margin-top:5px}.app-shell .report-table-wrap .dense-report-table th{font-size:9px;padding:7px 3px}.app-shell .report-table-wrap .dense-report-table td{font-size:10px;padding:7px 3px}.app-shell .report-table-wrap .dense-report-table td button{font-size:9px;padding:5px 4px}.staff-shift-report-table th:nth-child(3),.staff-shift-report-table td:nth-child(3){width:14%}.profitability-report-table th:first-child,.profitability-report-table td:first-child{width:10%}.profitability-report-table th:not(:first-child),.profitability-report-table td:not(:first-child){font-variant-numeric:tabular-nums}.customer-performance-table th:first-child,.customer-performance-table td:first-child{width:14%}.customer-performance-table th:nth-child(2),.customer-performance-table td:nth-child(2){width:12%}.app-shell .report-table-wrap .action-row{gap:4px;align-items:flex-start}.app-shell .report-table-wrap small,.app-shell .report-table-wrap .subtle-dark,.app-shell .report-table-wrap .price-override-note{white-space:normal!important;overflow-wrap:anywhere}}@media screen and (max-width:900px){.app-shell .report-table-wrap{max-height:58vh}.app-shell .report-table-wrap .fit-table th{font-size:8px;padding:6px 2px}.app-shell .report-table-wrap .fit-table td{font-size:9px;padding:6px 2px}.app-shell .report-table-wrap .fit-table td button{font-size:8px;padding:5px 3px}}@media print{.report-table-wrap{max-height:none!important;overflow:visible!important;border:0!important}.report-table-wrap .fit-table{table-layout:auto!important}.report-table-wrap .fit-table thead th{position:static!important}}.topbar{background:linear-gradient(135deg,#173f32,#102f26);box-shadow:0 2px 12px #0a251d24}.nav{position:sticky;top:0;z-index:30;box-shadow:0 2px 9px #132d240d}.nav button.active{background:#e5f0eb;color:#173f32;box-shadow:inset 0 -2px #c3a93e}@media screen and (min-width:1000px){.app-shell .report-table-wrap .fit-table th{font-size:11px;padding:9px 7px}.app-shell .report-table-wrap .fit-table td{font-size:12px;padding:9px 7px}.app-shell .report-table-wrap .dense-report-table th{font-size:10px;padding:8px 4px}.app-shell .report-table-wrap .dense-report-table td{font-size:11px;padding:8px 4px}}.dashboard-hero{padding:22px 24px;border:1px solid #dfe8e3;border-radius:20px;background:radial-gradient(circle at 92% 15%,rgba(239,214,110,.22),transparent 22%),linear-gradient(135deg,#fff,#f8fbf9);box-shadow:0 8px 28px #1432270d}.dashboard-eyebrow{color:#927b22;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;margin-bottom:4px}.dashboard-hero h1{font-size:34px;letter-spacing:-.02em}.dashboard-hero p{margin-bottom:0}.dashboard-hero-actions{display:grid;gap:10px;justify-items:end}.dashboard-period-switch{display:flex;padding:4px;border:1px solid #d7e2dd;border-radius:12px;background:#f4f8f6}.dashboard-period-switch button{border:0;background:transparent;color:#596b63;border-radius:9px;padding:9px 13px;font-weight:850;white-space:nowrap}.dashboard-period-switch button.active{background:#173f32;color:#fff;box-shadow:0 3px 10px #173f3229}.dashboard-live-actions{justify-content:flex-end}.dashboard-metrics{grid-template-columns:repeat(5,minmax(170px,1fr));gap:16px}.dashboard-kpi{position:relative;overflow:hidden;min-height:128px;padding:18px 18px 16px;border-top-width:4px;transition:transform .15s ease,box-shadow .15s ease}.dashboard-kpi:hover{transform:translateY(-1px);box-shadow:0 9px 24px #14322714}.dashboard-kpi:after{content:"";position:absolute;width:72px;height:72px;border-radius:50%;right:-28px;top:-28px;background:currentColor;opacity:.035}.dashboard-kpi div{font-weight:800;color:#52645c}.dashboard-kpi strong{font-size:27px;letter-spacing:-.02em}.dashboard-kpi small{display:block;margin-top:7px;color:#6b7973;font-size:11px;font-weight:700}.dashboard-card-live{border-top-color:#3c7fbe;color:#295d91}.dashboard-card-info{border-top-color:#4c9180;color:#34705f}.dashboard-card-revenue{border-top-color:#1e8b5a;color:#187347}.dashboard-card-payroll{border-top-color:#7562a8;color:#5f4d90}.dashboard-card-expense{border-top-color:#c78632;color:#9a651f}.dashboard-card-neutral{border-top-color:#82918a;color:#5f6d67}.dashboard-card-success{border-color:#bfe3cf;border-top-color:#15935a;background:#fbfffc;color:#147a49}.dashboard-card-success-soft{border-top-color:#65a983;background:#fcfffd;color:#47795c}.dashboard-card-warning{border-color:#ead89b;border-top-color:#cf9d29;background:#fffdf6;color:#9a6e0f}.dashboard-card-danger{border-color:#efc8c8;border-top-color:#c84238;background:snow;color:#a72d25}.dashboard-card-danger strong{color:#b42318}.dashboard-card-warning strong{color:#956b0e}.dashboard-card-success strong{color:#147a49}.dashboard-panel{border-radius:20px}.dashboard-section-chip{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#edf4f0;color:#365e4e;font-size:11px;font-weight:900;white-space:nowrap}.dashboard-live-status{display:inline-block;padding:5px 8px;border-radius:999px;background:#e8f2ed;color:#245943;font-size:11px;font-weight:850}.dashboard-positive-row td:last-child{background:#f5fbf7}.dashboard-negative-row td:last-child{background:#fff3f2}.dashboard-contribution-table th:first-child,.dashboard-contribution-table td:first-child{width:34%}@media screen and (min-width:1450px){.app-shell .report-table-wrap{max-height:66vh}}@media(max-width:1250px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(160px,1fr))}}@media(max-width:900px){.content{padding-left:20px;padding-right:20px}.dashboard-hero{align-items:flex-start}.dashboard-hero-actions{justify-items:start}.dashboard-live-actions{justify-content:flex-start}.dashboard-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.dashboard-period-switch{width:100%}.dashboard-period-switch button{flex:1;padding-left:7px;padding-right:7px}.dashboard-metrics{grid-template-columns:1fr}.dashboard-hero{padding:18px}}.print-report-button{border-color:#b9cec4;background:#f5faf7;color:#173f32;font-weight:850;white-space:nowrap}.print-report-button:hover{background:#eaf4ef}.print-report-button:disabled{opacity:.45;cursor:not-allowed}.history-range-presets button.active{background:#173f32;color:#fff;border-color:#173f32}.standalone-print-root{display:none}@media print{body.standalone-printing{background:#fff!important}body.standalone-printing #root{display:none!important}body.standalone-printing .standalone-print-root{display:block!important;width:100%;color:#10251e;background:#fff;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.standalone-print-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;padding:0 0 12px;margin-bottom:14px;border-bottom:2px solid #173f32}.standalone-print-company{color:#927b22;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.standalone-print-header h1{margin:3px 0 0;font-size:24px;line-height:1.1}.standalone-print-period{text-align:right;font-size:11px;font-weight:750;color:#4f6259;max-width:45%}.standalone-print-root .panel{box-shadow:none!important;border:1px solid #dbe5e0!important;border-radius:10px!important;padding:12px!important;margin:0 0 12px!important;break-inside:avoid-page}.standalone-print-root .section-head{margin-bottom:10px!important}.standalone-print-root .section-head p,.standalone-print-root .panel>p{font-size:10px!important;margin-top:3px!important}.standalone-print-root .metrics{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;margin:0 0 12px!important}.standalone-print-root .metric{min-height:auto!important;padding:10px!important;border:1px solid #dce6e1!important;border-top-width:3px!important;box-shadow:none!important;break-inside:avoid}.standalone-print-root .metric div{font-size:9px!important}.standalone-print-root .metric strong{font-size:17px!important}.standalone-print-root .metric small{font-size:8px!important}.standalone-print-root .report-table-wrap,.standalone-print-root .table-wrap{max-height:none!important;overflow:visible!important;border:1px solid #dce6e1!important;border-radius:8px!important}.standalone-print-root table,.standalone-print-root .fit-table{width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important}.standalone-print-root th{position:static!important;background:#eaf2ee!important;color:#173f32!important;font-size:7.5px!important;line-height:1.08!important;padding:5px 3px!important;white-space:normal!important;overflow-wrap:anywhere!important;border-bottom:1px solid #bfcfc7!important}.standalone-print-root td{font-size:7.5px!important;line-height:1.1!important;padding:5px 3px!important;white-space:normal!important;overflow-wrap:anywhere!important;vertical-align:top!important;border-bottom:1px solid #e0e7e3!important}.standalone-print-root tbody tr:nth-child(2n){background:#f8fbf9!important}.standalone-print-root .positive{color:#167347!important;font-weight:800!important}.standalone-print-root .negative{color:#b42318!important;font-weight:800!important}.standalone-print-root .warning-cell{background:#fff1c7!important}.standalone-print-root .reconcile-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important}.standalone-print-root .reconcile-grid>div{padding:9px!important;border:1px solid #dce6e1!important;border-radius:8px!important}.standalone-print-root .reconcile-grid span{font-size:8px!important}.standalone-print-root .reconcile-grid strong{font-size:13px!important}.standalone-print-root .history-price-actions,.standalone-print-root .price-override-note{display:none!important}@page{size:A4 landscape;margin:9mm}}.attention-panel{border-top:4px solid #c6a53b}.attention-total{display:inline-flex;align-items:center;padding:8px 11px;border-radius:999px;background:#edf4f0;color:#37604f;font-size:12px;font-weight:900}.attention-total.has-items{background:#fff1c7;color:#8b6310}.attention-grid{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:9px;margin-bottom:15px}.attention-card{border:1px solid #dfe7e3;border-radius:12px;padding:11px;background:#fafcfb;text-align:center}.attention-card span{display:block;font-size:9px;font-weight:900;text-transform:uppercase;color:#64746d;line-height:1.2}.attention-card strong{display:block;font-size:22px;margin-top:4px}.attention-card.danger{background:#fff5f4;border-color:#efc5c2;color:#a82c24}.attention-card.warning{background:#fffaf0;border-color:#ead599;color:#8d6715}.attention-card.info{background:#f3f8ff;border-color:#c9d9ef;color:#315f94}.attention-card.clear{background:#f7fbf8;color:#3d7458}.attention-list{margin-top:12px}.attention-list h3{font-size:13px;margin:0 0 7px}.attention-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-top:1px solid #e7ece9}.attention-row>div{display:grid;gap:2px;min-width:0}.attention-row span,.attention-row small{font-size:11px;color:#687770}.attention-badge{font-size:10px!important;font-weight:900!important;border-radius:999px;padding:5px 8px;white-space:nowrap}.attention-badge.warning{background:#fff0c2;color:#7f5d12}.attention-badge.danger{background:#f8d9d6;color:#94271f}.attention-badge.info{background:#deebfa;color:#2c5b91}.price-required-chip{display:inline-block;margin-top:4px;padding:3px 6px;border-radius:999px;background:#fff0c2;color:#7f5d12;font-size:9px;font-weight:900}.site-update-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.site-update-card{border:1px solid #dce5e1;border-radius:15px;padding:14px;background:#fff;display:grid;gap:10px}.site-update-card.open{border-left:4px solid #c84238}.site-update-card.resolved{border-left:4px solid #55906f}.site-update-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.site-update-title{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.site-update-meta{font-size:11px;color:#687770;margin-top:3px}.site-update-type,.site-update-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase}.site-update-type.completion_note{background:#e7f1ec;color:#35614d}.site-update-type.access_issue,.site-update-type.customer_request,.site-update-type.other{background:#fff0c2;color:#805d11}.site-update-type.damage,.site-update-type.safety,.site-update-status.open{background:#f8d9d6;color:#91261f}.site-update-status.resolved{background:#e1f0e7;color:#34624b}.site-update-status.info{background:#e8eef4;color:#4a6072}.site-update-card p{margin:0;white-space:pre-wrap}.site-update-photo-link{display:grid;gap:5px;text-decoration:none;color:#173f32;font-size:11px;font-weight:800}.site-update-photo-link img{width:100%;max-height:260px;object-fit:cover;border-radius:11px;border:1px solid #dce5e1}.site-update-owner-note{padding:9px;border-radius:9px;background:#f6f9f7;font-size:12px}.empty-state{padding:26px;text-align:center;color:#687770;background:#fafcfb;border-radius:12px}.staff-job-update-section{margin-top:16px;padding:14px;border:1px solid #dfe7e3;border-radius:16px;background:#fff}.staff-job-update-form{display:grid;gap:10px}.staff-job-update-form label{display:grid;gap:6px;font-weight:800}.staff-job-update-form select,.staff-job-update-form textarea,.staff-job-update-form input{font-size:16px}.staff-job-update-form textarea{min-height:90px}.staff-photo-input input{padding:9px;background:#fafcfb;border:1px solid #dbe4df;border-radius:10px}.staff-photo-preview{display:grid;gap:7px}.staff-photo-preview img{width:100%;max-height:240px;object-fit:cover;border-radius:12px;border:1px solid #dce5e1}.recent-job-updates{margin-top:16px;display:grid;gap:8px}.recent-job-updates h3{margin:0}.recent-job-update{display:grid;gap:5px;padding:10px;border:1px solid #e2e8e5;border-radius:11px;background:#fafcfb}.recent-job-update>div{display:flex;justify-content:space-between;gap:10px}.recent-job-update span,.recent-job-update small{font-size:10px;color:#697870}.recent-job-update p{margin:0;font-size:12px}@media(max-width:1250px){.attention-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:850px){.attention-grid{grid-template-columns:repeat(2,1fr)}.site-update-list{grid-template-columns:1fr}}.site-alert-owner textarea{border-color:#e2c767;background:#fffdf5}.owner-site-alert-mini{margin-top:4px;font-size:9px;font-weight:850;color:#9a6c0c;white-space:normal}.schedule-exception-form{margin-bottom:16px;padding:14px;border:1px solid #e0e8e4;border-radius:13px;background:#fafcfb}.moved-job-audit{margin-top:14px;border:1px solid #e1e8e4;border-radius:12px;padding:10px}.moved-job-audit>summary{cursor:pointer;font-weight:900;color:#315a49}.moved-job-audit>p{font-size:11px;color:#64736c}.staff-job-actions{display:grid;gap:6px;align-content:start;min-width:86px}.staff-job-actions button{padding:7px 9px}.staff-site-alert{margin-top:7px;padding:7px 9px;border-radius:9px;background:#fff0c2;color:#7b5910;font-size:11px;font-weight:900;white-space:pre-wrap}.staff-site-alert.prominent{font-size:12px;border:1px solid #e8cf7c}.staff-job-site-details{margin-top:8px;border:1px solid #dfe7e3;border-radius:9px;padding:7px;background:#f9fbfa}.staff-job-site-details summary{cursor:pointer;font-size:11px;font-weight:900;color:#315b4a}.staff-job-site-details>div{display:grid;gap:2px;margin-top:7px}.staff-job-site-details strong{font-size:10px;color:#53665d;text-transform:uppercase}.staff-job-site-details span{font-size:11px;white-space:pre-wrap}.staff-selected-site{margin:14px 0;padding:14px;border:1px solid #d9e5df;border-radius:16px;background:#fbfdfc;display:grid;gap:9px}.staff-selected-site .staff-section-head{margin-bottom:0}.staff-selected-site .staff-section-head button{padding:8px 10px}.staff-site-line{display:grid;grid-template-columns:95px 1fr;gap:9px;padding:7px 0;border-top:1px solid #e8eeeb}.staff-site-line strong{font-size:10px;text-transform:uppercase;color:#52665d}.staff-site-line span{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.staff-schedule-warning{padding:8px 10px;border-radius:10px;background:#f8d9d6;color:#8c271f;font-size:11px;font-weight:900}@media(max-width:720px){.staff-job-row{align-items:flex-start}.staff-job-actions{min-width:76px}.staff-site-line{grid-template-columns:1fr;gap:2px}}.customer-schedule-setup{border:1px solid #dbe6e1;border-radius:14px;background:#f8fbf9;padding:14px}.customer-schedule-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.customer-schedule-title span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e8f1ec;color:#315c49;font-size:10px;font-weight:900}.customer-schedule-setup>p{margin:0 0 8px;color:#5d6f67;font-size:12px}.schedule-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.schedule-config-warning{margin-top:10px;padding:8px 10px;border-radius:9px;background:#fff2cf;color:#805d11;font-size:11px;font-weight:850}.schedule-config-ok{margin-top:10px;color:#2d744f;font-size:11px;font-weight:850}.customer-schedule-problem-row td{background:#fffaf0!important}.schedule-table-warning{margin-top:4px;color:#986a0b;font-size:9px;font-weight:900}.fit-table td small{display:block;margin-top:3px}@media(max-width:850px){.schedule-field-grid{grid-template-columns:1fr}}.customer-row-actions{display:flex;gap:5px;flex-wrap:wrap}.customer-row-actions button{padding:6px 8px!important;font-size:9px!important}.warning-button{border-color:#dfbe66!important;background:#fff8e7!important;color:#7c5a11!important}.subtle-danger{background:#fff7f6!important;color:#9e3029!important}.customer-active-chip,.customer-closing-chip,.pause-chip{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900;white-space:nowrap}.customer-active-chip{background:#e3f1e9;color:#326549}.customer-closing-chip{background:#fff0c7;color:#806010}.pause-chip{background:#fff0c7;color:#7c5b0e}.closed-customers-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none}.closed-customers-panel>summary::-webkit-details-marker{display:none}.closed-customers-panel>summary span{font-size:11px;color:#687770}.closed-customers-panel[open]>summary{margin-bottom:14px}.schedule-exceptions-panel{border-top:4px solid #d1aa38}.active-pause-row td{background:#fffdf5!important}.export-format-switch{display:flex;gap:4px;padding:4px;border:1px solid #d6e1dc;border-radius:12px;background:#f4f8f6}.export-format-switch button{border:0;background:transparent;padding:9px 13px;border-radius:9px;font-weight:850;color:#596b63}.export-format-switch button.active{background:#173f32;color:#fff;box-shadow:0 3px 10px #173f3226}.export-format-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;margin:12px 0 16px;font-size:12px}.export-format-banner strong{white-space:nowrap}.export-format-banner.csv{background:#f1f7f4;border:1px solid #d4e6dd;color:#315f4c}.export-format-banner.pdf{background:#fff9eb;border:1px solid #ead9a5;color:#7c6218}.export-grid button em{display:inline-flex;margin-top:5px;width:max-content;padding:4px 7px;border-radius:999px;background:#edf4f0;color:#355f4e;font-size:10px;font-style:normal;font-weight:900}.export-centre-panel .export-grid button:hover{background:#f4f8f6;border-color:#b9cec4}@media(max-width:700px){.export-format-switch{width:100%}.export-format-switch button{flex:1}.export-format-banner{align-items:flex-start;flex-direction:column;gap:3px}}@media print{.standalone-print-summary{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;margin-bottom:12px!important}.standalone-data-report{break-inside:auto!important}.standalone-data-report .pdf-data-table{table-layout:fixed!important}}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}.app-shell,.staff-shell,.staff-card,.content{min-width:0;max-width:100%}.app-shell *,.staff-shell *{min-width:0}input,select,textarea,button{max-width:100%}textarea{width:100%}@media screen and (max-width:760px){.app-shell{width:100%;overflow-x:hidden}.topbar{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;padding:14px;overflow:hidden}.topbar>div:first-child{min-width:0}.topbar .brand-inline{font-size:18px;line-height:1.15;overflow-wrap:anywhere}.topbar .subtle{display:block;margin-top:3px;font-size:10px;line-height:1.25;overflow-wrap:anywhere;word-break:break-word}.topbar .ghost{flex:0 0 auto;padding:9px 11px;white-space:nowrap}.nav{width:100%;max-width:100%;padding:7px 10px;gap:3px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav button{flex:0 0 auto;max-width:115px;padding:9px 10px;font-size:12px;line-height:1.15;text-align:center;white-space:normal}.content{width:100%;max-width:100%;margin:0;padding:14px 12px 28px!important;overflow-x:hidden}.hero,.dashboard-hero{width:100%;max-width:100%;display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:start!important;gap:14px!important}.dashboard-hero{padding:16px!important}.dashboard-hero h1{font-size:30px;line-height:1.05;overflow-wrap:anywhere}.dashboard-hero p{font-size:13px;line-height:1.4}.dashboard-hero-actions{width:100%;max-width:100%;display:grid;gap:9px;justify-items:stretch!important}.dashboard-period-switch{width:100%!important;max-width:100%;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.dashboard-period-switch button{width:100%;min-width:0;padding:9px 4px!important;font-size:12px;line-height:1.1;white-space:normal!important}.dashboard-live-actions{width:100%;max-width:100%;display:flex;align-items:center;justify-content:flex-start!important;flex-wrap:wrap;gap:8px}.dashboard-live-actions button{flex:1 1 170px}.metrics,.dashboard-metrics,.job-metrics,.history-metrics,.expense-metrics,.profit-metrics,.stock-metrics{width:100%;max-width:100%}.metric,.panel{width:100%;max-width:100%;min-width:0}.metric strong{overflow-wrap:anywhere}.section-head,.history-filter .section-head{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;align-items:start}.section-head>*{min-width:0;max-width:100%}.preset-row{width:100%;max-width:100%}.preset-row button{flex:1 1 auto;min-width:82px}.form-grid,.compact-grid,.expense-filter,.export-grid,.schedule-field-grid{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr)!important}.form-grid label,.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;max-width:100%}.table-wrap,.report-table-wrap{width:100%;max-width:100%}.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.attention-row{align-items:flex-start}.site-update-list{grid-template-columns:minmax(0,1fr)!important}}@media screen and (max-width:430px){.content{padding-left:10px!important;padding-right:10px!important}.topbar{padding-left:12px;padding-right:12px}.dashboard-hero h1{font-size:28px}.dashboard-period-switch button{font-size:11px}.dashboard-kpi{min-height:112px;padding:15px}.dashboard-kpi strong{font-size:24px}.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px}}@media screen and (max-width:700px){.staff-shell{width:100%;max-width:100vw;overflow-x:hidden}.staff-card{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;overflow-x:hidden}.staff-head{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.staff-head>div{min-width:0}.staff-head h1{font-size:24px;line-height:1.1;overflow-wrap:anywhere}.staff-head button{white-space:nowrap}.staff-controls,.staff-stock-section,.staff-timesheet-section,.staff-jobs-section,.staff-job-update-section,.staff-selected-site{width:100%;max-width:100%;min-width:0;overflow:hidden}.staff-job-update-section{padding:13px 12px}.staff-section-head,.staff-section-head>div{width:100%;max-width:100%;min-width:0}.staff-section-head h2{font-size:21px;line-height:1.15;overflow-wrap:anywhere}.staff-section-head p{font-size:13px;line-height:1.42;overflow-wrap:anywhere}.staff-job-update-form,.staff-job-update-form label{width:100%;max-width:100%;min-width:0}.staff-job-update-form select,.staff-job-update-form textarea,.staff-job-update-form input,.staff-controls select,.staff-stock-section select,.staff-stock-section textarea,.staff-sign-box input{display:block;width:100%!important;max-width:100%!important;min-width:0!important}.staff-job-update-form select,.staff-controls select{text-overflow:ellipsis}.staff-job-update-form textarea{min-height:105px;resize:vertical}.staff-photo-input{width:100%;min-width:0;overflow:hidden}.staff-photo-input input[type=file]{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden;font-size:13px!important;padding:8px!important}.staff-photo-input input[type=file]::file-selector-button{max-width:120px;margin-right:7px;padding:7px 8px;border:0;border-radius:8px;background:#e8eeeb;color:#173f32;font-weight:800}.activity-grid,.break-grid{width:100%;max-width:100%}.activity-grid button,.break-grid button,.big-action,.clockout{width:100%;min-width:0}.staff-job-row{width:100%;max-width:100%;min-width:0}.staff-job-main{min-width:0!important;overflow:hidden}.staff-job-title,.staff-job-meta,.staff-job-row small{max-width:100%;overflow-wrap:anywhere}.staff-job-actions{min-width:68px!important;max-width:90px}.recent-job-update,.recent-job-update>div{width:100%;max-width:100%;min-width:0}.recent-job-update>div{display:grid!important;gap:3px!important}}@media screen and (max-width:480px){.staff-card{padding-left:12px!important;padding-right:12px!important}.staff-head h1{font-size:22px}.break-grid{gap:8px}.break-grid button{padding-left:7px;padding-right:7px;font-size:14px}.staff-job-update-section{padding-left:10px;padding-right:10px}}
