:root{--text:#565b64;--text-h:#14171f;--muted:#7a808b;--bg:#f6f7f9;--surface:#eef1f5;--surface-soft:#fafbfc;--border:#dfe3ea;--accent:#fe0;--accent-strong:#d8ca00;--accent-soft:#fe03;--danger:#b42318;--danger-soft:#fff1f0;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow:#14171f1f 0 22px 44px -18px, #14171f14 0 8px 18px -12px;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}h1,h2{color:var(--text-h);line-height:1.1}h1{letter-spacing:0;font-size:clamp(32px,5vw,48px);font-weight:850}h2{letter-spacing:0;font-size:28px;font-weight:800}p{margin:0}.login-page{background:linear-gradient(135deg, #ffee0029, transparent 34%), linear-gradient(315deg, #14171f0f, transparent 36%), var(--bg);place-items:center;min-height:100svh;padding:32px;display:grid}.login-panel{border:1px solid var(--border);border-radius:var(--radius-lg);width:min(100%,440px);box-shadow:var(--shadow);background:#fffffff0;padding:36px}.login-brand{justify-content:center;margin-bottom:34px;display:flex}.login-brand img{width:min(100%,300px);height:auto;display:block}.login-copy{margin-bottom:28px}.eyebrow{color:var(--accent-strong);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:800}.login-copy h1,.workspace-header h1{margin:0}.login-form{gap:18px;display:grid}.login-form label{color:var(--text-h);gap:8px;font-size:14px;font-weight:700;display:grid}.login-form input{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-h);font:inherit;background:#fff;outline:none;padding:13px 14px;transition:border-color .2s,box-shadow .2s}.password-field{position:relative}.password-field input{padding-right:78px}.password-toggle{border-radius:var(--radius-sm);min-height:34px;color:var(--text-h);background:var(--surface);font:inherit;cursor:pointer;border:0;padding:0 10px;font-size:12px;font-weight:800;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{background:#e6eaf0}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #ffee0057}.login-button,.sign-out-button{font:inherit;cursor:pointer;border:0;border-radius:999px;font-weight:800}.login-button{color:#12120f;background:var(--accent);min-height:48px;margin-top:8px;transition:background .2s,box-shadow .2s;box-shadow:0 10px 22px #d8ca0038}.login-button:hover{background:var(--accent-strong);box-shadow:0 12px 26px #d8ca0047}.login-error{color:#9b1c1c;margin:0;font-size:13px;font-weight:800}.app-shell{background:linear-gradient(180deg, #f9fafb 0%, var(--surface) 100%);grid-template-columns:286px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{border-right:1px solid var(--border);color:#f7f7ee;background:#12151c;flex-direction:column;gap:28px;min-height:100svh;padding:24px 18px;display:flex}.sidebar-brand{border-radius:var(--radius-md);background:#fff;padding:14px;box-shadow:0 10px 24px #0000002e}.sidebar-brand img{width:100%;display:block}.sidebar-nav{gap:8px;display:grid}.nav-item{border-radius:var(--radius-md);color:#ecece5;width:100%;min-height:46px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:12px;padding:10px 12px;font-size:15px;font-weight:700;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:flex}.nav-item:hover,.nav-item.is-active{color:#12151c;background:var(--accent)}.nav-item:hover:not(.is-active){color:#f7f7ee;background:#ffee0047;border-color:#ffee0057}.nav-mark{border-radius:var(--radius-sm);color:#12151c;background:#fff;flex:none;place-items:center;width:28px;height:28px;font-size:12px;font-weight:900;display:inline-grid}.workspace{min-width:0;padding:36px}.workspace-header{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.sign-out-button{color:#11110f;background:var(--accent);min-height:42px;padding:0 18px;box-shadow:0 8px 18px #d8ca002e}.view-page{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;gap:22px;width:100%;min-width:0;padding:30px;display:grid;box-shadow:0 20px 48px #14171f12}.view-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.view-heading h2{margin:0}.view-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.view-description{max-width:720px}.add-button{color:#11110f;background:var(--accent);min-height:42px;font:inherit;cursor:pointer;border:1px solid #14171f14;border-radius:999px;align-items:center;gap:8px;padding:0 16px;font-weight:800;transition:background .2s,border-color .2s,box-shadow .2s;display:inline-flex;box-shadow:0 10px 22px #d8ca002e}.add-button:hover{background:#fff466;border-color:#14171f2e;box-shadow:0 12px 26px #d8ca003d}.add-button:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.table-action-button:focus-visible,.record-tab:focus-visible,.pagination-button:focus-visible,.rich-text-toolbar button:focus-visible,.modal-close-button:focus-visible,.sign-out-button:focus-visible,.login-button:focus-visible,.nav-item:focus-visible{outline-offset:2px;outline:3px solid #ffee009e}.add-button-icon{color:#fff;background:#14171f;border-radius:999px;place-items:center;width:22px;height:22px;font-size:18px;font-weight:800;line-height:1;display:inline-grid}.button-icon{color:currentColor;place-items:center;display:inline-grid}.view-content{gap:16px;min-width:0;display:grid}.toolbar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft);grid-template-columns:repeat(4,minmax(180px,1fr));align-items:end;gap:14px;padding:16px;display:grid}.toolbar-button{align-self:end}.daily-labor-filters{grid-template-columns:minmax(170px,1.15fr) minmax(170px,1.15fr) minmax(86px,.5fr) minmax(140px,.8fr) minmax(140px,.8fr)}.invoice-filters,.quotation-filters,.receipt-filters{grid-template-columns:minmax(160px,1fr) minmax(170px,1.05fr) minmax(130px,.8fr) minmax(140px,.8fr) minmax(140px,.8fr) auto}.soa-filters{grid-template-columns:minmax(170px,1.1fr) minmax(170px,1.1fr) minmax(140px,.8fr) minmax(140px,.8fr) auto}.payment-summary-bar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;padding:14px 16px;display:flex}.payment-summary-bar span{color:var(--text);font-size:13px;font-weight:800}.payment-summary-bar strong{color:var(--text-h);font-size:22px;line-height:1}.profile-layout{grid-template-columns:minmax(240px,.85fr) minmax(320px,1.15fr);align-items:start;gap:18px;display:grid}.profile-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft);gap:18px;padding:20px;display:grid}.profile-panel-heading h3{margin:0}.profile-details{gap:12px;margin:0;display:grid}.profile-details div{border-bottom:1px solid var(--border);grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);align-items:baseline;gap:12px;padding-bottom:12px;display:grid}.profile-details div:last-child{border-bottom:0;padding-bottom:0}.profile-details dt{color:var(--text);font-size:13px;font-weight:800}.profile-details dd{min-width:0;color:var(--text-h);overflow-wrap:anywhere;margin:0;font-weight:800}.profile-password-form{gap:14px;display:grid}.profile-actions{justify-content:flex-end;display:flex}.profile-message{margin:0;font-size:13px;font-weight:800}.profile-message.is-error{color:#9b1c1c}.profile-message.is-success{color:#166534}.record-tabs{border:1px solid var(--border);background:var(--surface-soft);border-radius:999px;flex-wrap:wrap;gap:6px;width:fit-content;max-width:100%;padding:5px;display:flex}.record-tab{min-height:38px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 16px;font-weight:800}.record-tab.is-active{color:var(--text-h);background:#fff;box-shadow:0 8px 18px #14171f14,inset 0 0 0 1px #14171f0d}.common-field{color:var(--text-h);gap:8px;font-size:13px;font-weight:800;display:grid}.common-field input,.common-field select,.common-field textarea{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text-h);font:inherit;resize:vertical;background:#fff;outline:none;padding:0 13px;transition:border-color .2s,box-shadow .2s}.common-field select{cursor:pointer}.common-field input:focus,.common-field select:focus,.common-field textarea:focus{border-color:var(--accent-strong);box-shadow:0 0 0 4px var(--accent-soft)}.checkbox-field{color:var(--text-h);grid-template-columns:auto 1fr;align-items:center;gap:10px;font-size:13px;font-weight:800;display:inline-grid}.checkbox-field input{width:18px;height:18px;accent-color:var(--accent-strong);margin:0}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;width:100%;max-width:100%;overflow-x:auto;box-shadow:0 14px 34px #14171f0d}.common-table{border-collapse:collapse;text-align:left;width:100%;min-width:640px}.common-table th,.common-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:15px 16px}.common-table th:first-child,.common-table td:first-child{overflow-wrap:anywhere;white-space:normal;min-width:180px;max-width:280px}.common-table th{color:var(--text-h);letter-spacing:.08em;text-transform:uppercase;background:#f8fafc;font-size:12px;font-weight:900}.common-table tbody tr:hover{background:#fcfcf4}.common-table tr:last-child td{border-bottom:0}.empty-cell{color:var(--text);text-align:center}.pagination-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.pagination-button{border:1px solid var(--border);min-height:38px;color:var(--text-h);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:0 12px;font-size:13px;font-weight:800;transition:background .2s,border-color .2s}.pagination-button:hover:not(:disabled){background:#ffee0057;border-color:#d3c400}.pagination-button:disabled{cursor:not-allowed;opacity:.45}.pagination-status{color:var(--text);font-size:13px;font-weight:800}.modal-backdrop{z-index:20;background:#14171f8f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.react-confirm-alert-overlay{z-index:60;background:#14171f8f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.react-confirm-alert{border-radius:var(--radius-lg);background:#fff;border:1px solid #ffffffc7;width:min(100%,420px);padding:24px;box-shadow:0 26px 70px #14171f47}.react-confirm-alert-body{gap:8px;display:grid}.react-confirm-alert-body h3{color:var(--text-h);margin:0;font-size:22px;line-height:1.2}.react-confirm-alert-body p:last-child{color:var(--text);font-size:14px;font-weight:700}.react-confirm-alert-button-group{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.danger-button{color:#fff;background:var(--danger);border-color:#b423181a;box-shadow:0 10px 22px #b423182e}.danger-button:hover:not(:disabled){background:#9f1f16;border-color:#b423182e;box-shadow:0 12px 26px #b423183d}.line-item-modal{border-radius:var(--radius-lg);background:#fff;border:1px solid #ffffffc7;width:min(100%,720px);max-height:min(92svh,760px);padding:26px;overflow:auto;box-shadow:0 26px 70px #14171f47}.modal-header,.modal-actions,.line-item-total{justify-content:space-between;align-items:center;gap:16px;display:flex}.modal-header{margin-bottom:20px}.modal-header h3{color:var(--text-h);margin:0;font-size:24px}.modal-subtitle{color:var(--text);margin:6px 0 0;font-size:13px;font-weight:800}.modal-close-button{border:1px solid var(--border);width:38px;height:38px;color:var(--text-h);background:var(--surface-soft);font:inherit;cursor:pointer;border-radius:999px;font-size:18px;font-weight:900;transition:background .2s,border-color .2s}.modal-close-button:hover{background:#fff;border-color:#cfd5df}.line-item-form{gap:16px;display:grid}.line-item-description textarea{padding:12px;line-height:1.4}.rich-text-field{gap:0}.rich-text-toolbar{border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:#f7f7f2;border-bottom:0;flex-wrap:wrap;gap:6px;padding:8px;display:flex}.rich-text-toolbar button{border:1px solid var(--border);border-radius:var(--radius-sm);min-width:34px;min-height:32px;color:var(--text-h);font:inherit;cursor:pointer;background:#fff;font-size:13px;font-weight:900}.rich-text-toolbar button:hover{background:#ffee0057;border-color:#d3c400}.rich-text-toolbar button.is-active{color:#11110f;background:#ffee00d1;border-color:#11110f;box-shadow:inset 0 0 0 1px #11110f29}.rich-text-editor{border:1px solid var(--border);border-radius:0 0 var(--radius-md) var(--radius-md);min-height:170px;color:var(--text-h);font:inherit;-webkit-user-select:text;user-select:text;background:#fff;outline:none;padding:14px;font-weight:500;line-height:1.55}.rich-text-field-plain{gap:8px}.rich-text-field-plain .rich-text-editor{border-radius:var(--radius-md);min-height:96px}.rich-text-editor:focus{border-color:var(--accent-strong);box-shadow:0 0 0 4px #ffee0038}.rich-text-editor:empty:before{content:attr(data-placeholder);color:var(--text);font-weight:500}.rich-text-editor ul,.rich-text-editor ol{margin:8px 0;padding-left:24px}.letter-head-modal{width:min(100%,820px)}.letter-head-editor{min-height:260px}.line-item-grid{grid-template-columns:minmax(120px,1fr) repeat(2,minmax(150px,1fr));gap:14px;display:grid}.document-details-grid{grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;display:grid}.line-item-total{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);padding:16px}.line-item-total span{color:var(--text);text-transform:uppercase;font-size:13px;font-weight:800}.line-item-total strong{color:var(--text-h);font-size:24px}.primary-button,.secondary-button{min-height:44px;font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:800;transition:background .2s,border-color .2s,box-shadow .2s;display:inline-flex}.primary-button{color:#11110f;background:var(--accent);border:1px solid #14171f14;box-shadow:0 10px 22px #d8ca002e}.primary-button:hover:not(:disabled){background:#fff466;border-color:#14171f2e;box-shadow:0 12px 26px #d8ca003d}.secondary-button{border:1px solid var(--border);color:var(--text-h);background:#fff}.secondary-button:hover:not(:disabled){background:#f8fafc;border-color:#c8ced8}.secondary-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.55}.add-line-button{justify-self:end}.pending-line-items{gap:12px;margin-top:22px;padding-bottom:2px;display:grid;overflow-x:auto}.pending-line-items-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.pending-line-items-header h4{color:var(--text-h);margin:0;font-size:16px}.pending-line-items-header strong{color:var(--text-h);font-size:18px}.pending-line-items-table{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.pending-line-items-table .common-table{min-width:760px}.pending-empty{border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text);text-align:center;margin:0;padding:14px;font-weight:700}.table-action-button{border:1px solid var(--border);min-height:32px;color:var(--text-h);font:inherit;cursor:pointer;background:#fff;border-radius:999px;padding:0 11px;font-size:13px;font-weight:800;transition:background .2s,border-color .2s,color .2s}.table-action-button:hover:not(:disabled){background:#f8fafc;border-color:#c8ced8}.table-action-button.is-danger{color:var(--danger);background:var(--danger-soft);border-color:#b4231838}.table-action-button.is-danger:hover:not(:disabled){background:#ffe7e5;border-color:#b4231857}.table-action-button:disabled{cursor:not-allowed;opacity:.45}.table-actions{gap:8px;display:inline-flex}.icon-action-button{border:1px solid var(--border);width:34px;height:34px;color:var(--text-h);cursor:pointer;background:#fff;border-radius:999px;place-items:center;transition:background .2s,color .2s,border-color .2s;display:inline-grid;position:relative}.icon-action-button:hover:not(:disabled){background:#ffee0057;border-color:#d3c400}.icon-action-button.is-danger{color:var(--danger);background:var(--danger-soft);border-color:#b4231838}.icon-action-button.is-danger:hover:not(:disabled){background:#ffe7e5;border-color:#b4231857}.icon-action-button:after{content:attr(aria-label);z-index:30;border-radius:var(--radius-sm);color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#14171f;width:max-content;max-width:180px;padding:6px 8px;font-size:12px;font-weight:800;line-height:1.2;transition:opacity .16s,transform .16s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);box-shadow:0 10px 22px #14171f33}.icon-action-button:hover:not(:disabled):after,.icon-action-button:focus-visible:after{opacity:1;transform:translate(-50%)}.icon-action-button:disabled{cursor:not-allowed;opacity:.45}.file-links,.file-list{flex-wrap:wrap;gap:8px;display:flex}.file-links a,.file-chip{border:1px solid var(--border);color:var(--text-h);background:#fbfbf8;border-radius:999px;padding:6px 8px;font-size:12px;font-weight:800;text-decoration:none}.file-chip{cursor:pointer}.file-list span{width:100%;color:var(--text);font-size:13px;font-weight:800}.invoice-item-row{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(110px,1fr)) minmax(140px,1fr) auto;align-items:end;gap:12px;min-width:900px;padding:14px;display:grid}.invoice-item-format-bar{border:1px solid var(--border);border-radius:var(--radius-md);background:#f7f7f2;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.invoice-item-format-bar>span{color:var(--text-h);font-size:13px;font-weight:900}.invoice-item-format-bar .rich-text-toolbar{background:0 0;border:0;border-radius:0;padding:0}.invoice-item-row .rich-text-field,.invoice-item-row>.common-field,.invoice-item-row .calculated-rate{grid-column:auto}.invoice-item-row>.icon-action-button{align-self:end;margin-bottom:2px}.invoice-item-row .rich-text-toolbar{gap:4px;padding:6px 8px}.invoice-item-row .rich-text-toolbar button{min-width:30px;min-height:28px}.invoice-item-row .rich-text-editor{min-height:44px;padding:10px 12px;line-height:1.35}.invoice-totals-preview{grid-template-columns:repeat(3,minmax(130px,1fr));gap:12px;display:grid}.invoice-totals-preview div{border:1px solid var(--border);border-radius:var(--radius-md);background:#f7f7f2;padding:12px}.invoice-totals-preview span{color:var(--text);font-size:12px;font-weight:800;display:block}.invoice-totals-preview strong{color:var(--text-h);margin-top:5px;font-size:17px;display:block}.soa-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.soa-picker{border:1px solid var(--border);border-radius:var(--radius-md);background:#fbfbf8;align-content:start;gap:10px;padding:14px;display:grid}.soa-picker h4{color:var(--text-h);margin:0;font-size:15px}.soa-option{border-radius:var(--radius-md);color:var(--text);background:#fff;border:1px solid #e4e4dc;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px;font-size:13px;font-weight:800;display:grid}.soa-option input{margin-top:3px}.soa-option strong{color:var(--text-h);display:block}.status-pill{text-transform:capitalize;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900;display:inline-flex}.status-draft{color:#725600;background:#ffd60a38}.status-confirmed,.status-paid{color:#126238;background:#1262381f}.status-unpaid{color:#9b1c1c;background:#b423181f}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.permission-group{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-soft);gap:9px;min-width:0;margin:0;padding:14px;display:grid}.permission-group legend{color:var(--text-h);letter-spacing:.08em;text-transform:uppercase;padding:0 6px;font-size:12px;font-weight:900}.permission-group label{border-radius:var(--radius-sm);min-height:34px;color:var(--text-h);background:#fff;border:1px solid #edf0f5;align-items:center;gap:10px;padding:7px 9px;font-size:13px;font-weight:800;display:flex}.permission-group input{width:16px;height:16px;accent-color:var(--accent-strong);margin:0}.view-error{border-radius:var(--radius-md);color:var(--danger);background:var(--danger-soft);border:1px solid #b4231833;margin:0;padding:10px 12px;font-size:13px;font-weight:800}.error-toast{z-index:40;border-radius:var(--radius-md);color:#7f1d1d;background:#fff5f5;border:1px solid #9b1c1c47;align-items:center;gap:14px;max-width:min(420px,100vw - 32px);padding:12px 14px;font-size:13px;font-weight:800;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 40px #331e1829}.error-toast button{width:28px;height:28px;color:inherit;font:inherit;cursor:pointer;background:#9b1c1c1a;border:0;border-radius:50%;place-items:center;display:inline-grid}.labor-entry-modal{width:min(100%,860px)}.labor-entry-form,.labor-section{gap:16px;display:grid}.labor-section h4{color:var(--text-h);margin:0;font-size:16px}.labor-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.labor-grid.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.labor-entry-filters{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.labor-entry-filters .common-field:first-child,.labor-entry-filters .common-field:nth-child(2){flex:170px}.labor-entry-filters .common-field:nth-child(3){flex:0 86px}.labor-entry-filters .common-field:nth-child(4),.labor-entry-filters .common-field:nth-child(5){flex:0 140px}.calculated-rate{border:1px solid var(--border);border-radius:var(--radius-md);background:#f7f7f2;align-self:end;gap:7px;min-height:42px;padding:9px 12px;display:grid}.calculated-rate span{color:var(--text);font-size:13px;font-weight:800}.calculated-rate strong{color:var(--text-h);font-size:16px}.week-hours-grid{grid-template-columns:repeat(7,minmax(76px,1fr));gap:10px;display:grid}.labor-entry-actions{flex-wrap:wrap;gap:10px;display:flex}.labor-entry-rows{gap:10px;max-height:520px;padding-right:4px;display:grid;overflow:auto}.labor-entry-row-header{z-index:2;color:var(--text-h);background:#fff;grid-template-columns:minmax(110px,1.2fr) repeat(7,minmax(54px,.7fr)) minmax(112px,auto);gap:8px;padding:0 10px 2px;font-size:13px;font-weight:900;display:grid;position:sticky;top:0}.labor-entry-row-header span{white-space:nowrap;min-width:0}.labor-entry-row{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;grid-template-columns:minmax(110px,1.2fr) repeat(7,minmax(54px,.7fr)) minmax(112px,auto);align-items:end;gap:8px;padding:10px;display:grid;position:relative}.labor-entry-row .common-field{gap:5px}.labor-entry-row .labor-entry-input-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.labor-entry-row .common-field input{min-height:38px;padding:8px 9px}.labor-entry-row-actions{align-items:center;gap:8px;min-height:38px;display:flex}.labor-entry-row-number{color:var(--muted);font-size:11px;font-weight:900;position:absolute;top:8px;right:10px}.employee-modal{width:min(100%,860px)}.customer-modal{gap:18px;width:min(100%,920px);display:grid}.invoice-modal{width:min(96vw,1280px)}.invoice-preview-modal{grid-template-rows:auto minmax(0,1fr);width:min(96vw,1120px);height:min(90svh,860px);display:grid}.invoice-preview-frame{border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;width:100%;height:100%;min-height:0}.employee-form{gap:18px;display:grid}.employee-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.file-field input{padding-top:9px}.view-note{color:var(--text);font-size:14px;font-weight:700}.metric-grid,.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.daily-labor-summary{color:var(--text-h);flex-wrap:wrap;align-items:center;gap:18px;font-size:14px;font-weight:800;display:flex}.metric-grid article,.summary-grid article,.empty-state{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-soft);padding:18px}.metric-grid span,.summary-grid span{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:700;display:block}.metric-grid strong,.summary-grid strong{color:var(--text-h);font-size:28px;line-height:1}.daily-labor-summary span{display:inline-flex}.daily-labor-table-scroll{border:1px solid var(--border);border-radius:var(--radius-lg);max-height:min(64svh,680px);overflow:auto}.daily-labor-table-scroll .table-wrap{box-shadow:none;border:0;border-radius:0}.daily-labor-table-scroll .common-table th{z-index:1;position:sticky;top:0}.empty-state h3{color:var(--text-h);margin:0 0 8px;font-size:20px}@media (width<=840px){.login-page{padding:18px}.login-panel{padding:26px 20px}.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);min-height:auto}.sidebar-brand{max-width:240px}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:24px 18px}.workspace-header{flex-direction:column;align-items:flex-start}.view-heading{flex-direction:column}.view-page{padding:22px}.metric-grid,.summary-grid,.profile-layout,.profile-details div,.toolbar,.line-item-grid,.labor-entry-row{grid-template-columns:1fr}.labor-entry-row-header{display:none}.labor-entry-row .labor-entry-input-label{clip:auto;width:auto;height:auto;font-size:11px;line-height:1;position:static;overflow:visible}.labor-entry-row-actions{min-height:auto}.labor-entry-rows{max-height:420px}.document-details-grid{grid-template-columns:1fr}.invoice-item-row{grid-template-columns:minmax(260px,2fr) repeat(3,minmax(110px,1fr)) minmax(140px,1fr) auto}.invoice-item-row .rich-text-field,.invoice-item-row>.common-field,.invoice-item-row .calculated-rate{grid-column:auto}.invoice-item-row>.icon-action-button{margin-bottom:0}.invoice-totals-preview,.soa-picker-grid,.labor-grid,.labor-grid.two-column,.employee-grid,.permission-grid{grid-template-columns:1fr}.labor-entry-filters .common-field{flex-basis:100%}.week-hours-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.record-tabs{width:100%}.record-tab{flex:auto}.sidebar-nav,.week-hours-grid{grid-template-columns:1fr}}
