:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f7f8fa;--foreground:#17202a;--muted:#5c6b7a;--panel:#fff;--border:#d9e0e8;--accent:#0f766e;--accent-soft:#dff4f0}*{box-sizing:border-box}html{min-height:100%}body{background:var(--background);min-height:100%;color:var(--foreground);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.page-shell{place-items:center;min-height:100vh;padding:32px;display:grid}.hero-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(100%,760px);padding:clamp(32px,8vw,72px);box-shadow:0 20px 55px #17202a14}.auth-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(100%,560px);padding:clamp(28px,6vw,48px);box-shadow:0 20px 55px #17202a14}.auth-panel h1{font-size:clamp(2rem,5vw,3rem);line-height:1}.brand-logo{width:160px;height:auto;margin:0 0 24px;display:block}.brand-logo-compact{width:120px;margin-bottom:18px}.eyebrow{background:var(--accent-soft);color:var(--accent);letter-spacing:0;text-transform:uppercase;border-radius:999px;margin:0 0 18px;padding:6px 10px;font-size:.78rem;font-weight:700;display:inline-flex}h1{letter-spacing:0;margin:0;font-size:clamp(2.25rem,7vw,4.75rem);line-height:.96}.lede{max-width:620px;color:var(--muted);margin:24px 0 0;font-size:clamp(1.1rem,3vw,1.45rem);line-height:1.45}.auth-lede{margin-top:18px;font-size:1rem}.auth-form{gap:12px;margin-top:28px;display:grid}.field-label{color:var(--muted);font-size:.9rem;font-weight:700}.field-input{border:1px solid var(--border);width:100%;color:var(--foreground);font:inherit;background:#fff;border-radius:8px;padding:12px 14px}.field-input:focus{border-color:var(--accent);outline:3px solid var(--accent-soft)}.primary-button,.secondary-button{min-height:44px;font:inherit;border-radius:8px;justify-content:center;align-items:center;gap:8px;font-weight:700;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fff;padding:12px 16px}.primary-button:disabled{cursor:wait;opacity:.72}.secondary-button{border:1px solid var(--border);color:var(--foreground);background:#fff;padding:10px 14px}.secondary-button:disabled{cursor:wait;opacity:.72}.primary-button.is-loading,.secondary-button.is-loading{pointer-events:none}.button-spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:1em;height:1em;animation:.7s linear infinite button-spin}@keyframes button-spin{to{transform:rotate(360deg)}}.form-message,.form-error,.secondary-action{margin:8px 0 0;font-size:.94rem;line-height:1.4}.form-message{color:var(--muted)}.form-error{color:#b42318}.secondary-action a,.form-message a{color:var(--accent);font-weight:700}.contractor-access-result{gap:10px;margin-top:10px;display:grid}.detail-list{gap:10px;margin-top:24px;display:grid}.detail-list p{border-bottom:1px solid var(--border);gap:4px;margin:0;padding-bottom:10px;display:grid}.detail-list span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:700}.button-row{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.profile-page-shell{width:min(100%,1040px);margin:0 auto;padding:32px}.profile-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.profile-header h1{font-size:clamp(2rem,5vw,3.25rem)}.profile-actions{margin-top:0}.profile-message{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(100%,760px);margin:0 0 14px;padding:12px 14px}.profile-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;display:grid}.profile-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:24px;box-shadow:0 16px 36px #17202a0f}.profile-panel+.profile-panel{margin-top:18px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-heading h2{margin:0;font-size:1.1rem;line-height:1.2}.status-badge,.count-pill{letter-spacing:0;white-space:nowrap;border-radius:999px;align-items:center;min-height:30px;padding:5px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.status-badge{background:var(--accent-soft);color:var(--accent);border:1px solid #b8d8d4}.status-needs_review{color:#8a4d00;background:#fff3d9;border-color:#f3c98b}.status-approved,.status-complete{color:#176331;background:#e7f7eb;border-color:#b7dfc2}.count-pill{color:var(--muted);background:#eef2f6}.compact-detail-list{margin-top:0}.profile-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.profile-form .primary-button{align-self:end}.pending-review-list{gap:12px;display:grid}.pending-review-item{border:1px solid var(--border);border-radius:8px;padding:14px}.pending-review-item p{gap:3px;margin:0 0 10px;display:grid}.pending-review-item p span,.pending-review-item li span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:700}.pending-review-item ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pending-review-item li{gap:3px;display:grid}.dashboard-shell{width:min(100%,1520px);margin:0 auto;padding:32px clamp(24px,4vw,48px)}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:18px;display:flex}.dashboard-header h1{max-width:760px;font-size:clamp(2rem,5vw,3.25rem)}.dashboard-subtitle{color:var(--muted);margin:12px 0 0;font-size:1rem}.dashboard-actions{margin-top:0}.dashboard-label{color:var(--muted);text-transform:uppercase;margin-bottom:5px;font-size:.78rem;font-weight:800;display:block}.dashboard-banner,.dashboard-panel,.assignment-card{border:1px solid var(--border);background:var(--panel);border-radius:8px;box-shadow:0 16px 36px #17202a0f}.dashboard-banner{justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px;padding:18px 20px;display:flex}.dashboard-banner strong{font-size:1.05rem}.dashboard-banner p{max-width:620px;color:var(--muted);margin:0;line-height:1.45}.dashboard-section{gap:16px;display:grid}.dashboard-section .section-heading{margin-bottom:0}.dashboard-section h2,.dashboard-panel h2{margin:0;font-size:1.35rem}.dashboard-panel{padding:24px}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:18px;display:grid}.dashboard-metric{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:5px;padding:14px;display:grid}.dashboard-metric strong{font-size:1.45rem}.sync-skipped-list{gap:12px;margin-top:18px;display:grid}.sync-skipped-list h2{margin:0;font-size:1.15rem}.sync-skipped-item{background:#fff8e8;border:1px solid #f3c98b;border-radius:8px;gap:10px;padding:14px;display:grid}.sync-skipped-item p{margin:0}.sync-skipped-item ul{gap:5px;margin:0;padding-left:20px;display:grid}.worker-access-list{gap:16px;margin-top:22px;display:grid}.worker-access-card{border:1px solid var(--border);background:var(--panel);border-radius:8px;gap:18px;padding:20px;display:grid;box-shadow:0 16px 36px #17202a0f}.worker-access-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.worker-access-header h2,.worker-access-header p{margin:0}.worker-access-header p{color:var(--muted);overflow-wrap:anywhere}.worker-access-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;display:grid}.worker-access-grid div{gap:4px;min-width:0;display:grid}.worker-access-grid dt{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.worker-access-grid dd{overflow-wrap:anywhere;margin:0;line-height:1.4}.worker-access-actions{margin-top:0}.worker-access-actions form{margin:0}.dashboard-panel p{color:var(--muted);margin:10px 0 0}.empty-state,.error-state{min-height:150px}.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.assignment-card{gap:16px;padding:24px;display:grid}.assignment-card-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.assignment-card h3{margin:0;font-size:1.35rem;line-height:1.2}.assignment-client-name{color:var(--muted);margin:5px 0 0;font-weight:700}.outstanding-timesheet-list{gap:8px;display:grid}.outstanding-timesheet-item{border:1px solid var(--border);color:inherit;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.outstanding-timesheet-item:hover{border-color:var(--accent)}.outstanding-timesheet-item strong{color:var(--accent);white-space:nowrap}.assignment-warning{color:#7a4500;background:#fff8e8;border:1px solid #f3c98b;border-radius:8px;margin:0;padding:10px 12px;line-height:1.4}.assignment-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin:0;display:grid}.assignment-details div{gap:4px;display:grid}.assignment-details dt{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.assignment-details dd{margin:0;line-height:1.4}.assignment-wide-row{grid-column:1/-1}.assignment-actions{margin-top:0}.timesheet-selector,.timesheet-panel,.timesheet-list-item{border:1px solid var(--border);background:var(--panel);border-radius:8px;box-shadow:0 16px 36px #17202a0f}.timesheet-selector{grid-template-columns:minmax(0,1.3fr) minmax(180px,.7fr) auto;align-items:end;gap:14px;margin-bottom:18px;padding:18px;display:grid}.timesheet-panel{padding:24px}.timesheet-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.timesheet-header h1{max-width:760px;font-size:clamp(2rem,5vw,3.25rem)}.timesheet-summary,.timesheet-totals{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0;display:grid}.timesheet-summary div,.timesheet-totals p{gap:4px;margin:0;display:grid}.timesheet-summary dt,.timesheet-totals span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.timesheet-summary dd{margin:0;line-height:1.4}.timesheet-totals{border-bottom:1px solid var(--border);border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));padding:14px 0}.timesheet-totals strong{font-size:1.25rem}.timesheet-result-banner{background:#eefbf7;border:1px solid #9ed8c9;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;margin:18px 0;padding:14px;display:flex}.timesheet-result-banner p{color:var(--muted);margin:4px 0 0}.timesheet-result-banner .button-row{flex-shrink:0;margin-top:0}.timesheet-days{gap:12px;display:grid}.timesheet-day-row{border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(160px,.7fr) minmax(110px,.45fr) minmax(0,1.5fr);align-items:start;gap:12px;padding:14px;display:grid}.timesheet-day-row strong{line-height:1.35;display:block}.timesheet-notes{resize:vertical;min-height:88px}.overtime-evidence{border-top:1px solid var(--border);grid-column:1/-1;padding-top:12px}.overtime-evidence summary{cursor:pointer;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:.9rem;font-weight:800;display:flex}.overtime-evidence-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.overtime-evidence-note{grid-column:1/-1}.evidence-warning,.evidence-message{margin-top:12px}.timesheet-day-approval{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding-top:12px;display:grid}.timesheet-day-approval div{gap:3px;display:grid}.timesheet-day-approval dt{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:800}.timesheet-day-approval dd{margin:0}.timesheet-warning{color:#7a4500;background:#fff8e8;border:1px solid #f3c98b;border-radius:8px;margin:14px 0;padding:10px 12px;line-height:1.4}.timesheet-info-banner{color:#10463f;background:#eefbf7;border:1px solid #9ed8c9;border-radius:8px;margin:14px 0;padding:10px 12px;line-height:1.4}.timesheet-day-row-required{background:#f2fffb;border-color:#0f8f7e;box-shadow:inset 4px 0 #0f8f7e}.timesheet-day-row-locked{background:#f8fafc}.month-end-chip{color:#00796b;background:#dff5ef;border-radius:999px;width:fit-content;margin-top:8px;padding:4px 8px;font-size:.72rem;font-weight:800;display:inline-flex}.field-hint{color:var(--muted);margin-top:6px;font-size:.82rem;line-height:1.35;display:block}.entry-type-callout{background:#fff;border:1px solid #8ed2c2;border-radius:8px;padding:10px}.entry-type-callout .field-label:after{content:" required";color:#00796b;text-transform:none;font-weight:900}.timesheet-day-lock-note{color:var(--muted);grid-column:1/-1;margin:0;font-size:.9rem}.timesheet-actions{margin-top:18px}.submit-status{border:1px solid var(--border);color:var(--foreground);background:#fff;border-radius:999px;align-self:center;padding:8px 12px;font-weight:800}@media (min-width:980px){.timesheet-form{overflow-x:auto}.timesheet-days{grid-template-columns:repeat(7,minmax(190px,1fr));align-items:stretch}.timesheet-day-row{grid-template-rows:auto auto 1fr auto;grid-template-columns:1fr;min-width:190px}.timesheet-day-row .field-label{min-height:0}.timesheet-notes{min-height:132px}.overtime-evidence-grid,.timesheet-day-approval{grid-template-columns:1fr}}.timesheet-list{gap:14px;display:grid}.timesheet-list-item{grid-template-columns:minmax(150px,1fr) minmax(120px,.8fr) minmax(150px,1fr) minmax(120px,.75fr) minmax(150px,.9fr) minmax(100px,.6fr) minmax(130px,.7fr) minmax(110px,.6fr) auto;align-items:center;gap:14px;padding:18px;display:grid}.timesheet-list-meta strong{color:var(--muted);text-transform:uppercase;font-size:.72rem;display:block}.internal-timesheet-day-row{grid-template-columns:minmax(180px,.65fr) minmax(0,2fr);align-items:start}.internal-timesheet-day-row .timesheet-list-meta{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.internal-timesheet-day-row .timesheet-list-meta span{word-break:break-word;min-width:0}.timesheet-row-alert,.timesheet-row-note{border-radius:8px;grid-column:1/-1;padding:12px 14px}.timesheet-row-alert{color:#7f1d1d;background:#fff5f5;border:1px solid #f3b5b5}.timesheet-row-note{color:var(--text);background:#f8fafc;border:1px solid #cbd5e1}.timesheet-row-alert ul,.timesheet-row-note ul{margin:6px 0 0;padding-left:18px}.inline-approval-form{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:12px;padding-top:14px;display:grid}.timesheet-list-item h2,.timesheet-list-item p{margin:0}.leave-list{gap:14px;display:grid}.leave-list-item{border:1px solid var(--border);background:var(--panel);border-radius:8px;grid-template-columns:minmax(150px,1fr) minmax(180px,1.2fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(140px,.8fr) auto;align-items:start;gap:14px;padding:18px;display:grid;box-shadow:0 16px 36px #17202a0f}.leave-list-item h2,.leave-list-item p{margin:0}.leave-list-item .timesheet-warning{grid-column:1/-1;margin:0}.leave-list-actions{margin-top:0}.leave-form{gap:14px;display:grid}.leave-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.leave-wide-field{grid-column:1/-1}.leave-cancel-form{border-top:1px solid var(--border);gap:12px;margin-top:18px;padding-top:18px;display:grid}.checkbox-field{color:var(--muted);align-items:center;gap:10px;font-size:.94rem;font-weight:700;display:flex}.checkbox-field input{width:18px;height:18px;accent-color:var(--accent)}.audit-filters{margin-bottom:18px}.audit-filter-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.audit-filter-actions{align-self:end;margin-top:0}.audit-event-list{gap:12px;display:grid}.audit-event-row{border:1px solid var(--border);background:var(--panel);border-radius:8px;grid-template-columns:minmax(170px,.75fr) minmax(120px,.5fr) minmax(180px,1fr) minmax(150px,.8fr) minmax(110px,.45fr);gap:14px;padding:18px;display:grid;box-shadow:0 16px 36px #17202a0f}.audit-event-row>div{min-width:0}.audit-event-row span,.audit-event-row strong,.audit-event-row time{overflow-wrap:anywhere}.audit-summary,.audit-metadata{grid-column:1/-1}.audit-metadata summary{cursor:pointer;color:var(--muted);font-size:.9rem;font-weight:800}.audit-metadata pre{border:1px solid var(--border);color:var(--foreground);background:#f3f6f8;border-radius:8px;margin:10px 0 0;padding:12px;font-size:.86rem;line-height:1.45;overflow:auto}@media (max-width:560px){.page-shell{padding:18px}.hero-panel,.auth-panel{padding:28px}.profile-page-shell{padding:18px}.profile-header,.section-heading{flex-direction:column;align-items:flex-start}.profile-grid,.profile-form{grid-template-columns:1fr}.profile-actions{width:100%}.dashboard-shell{padding:18px}.dashboard-header,.dashboard-banner,.assignment-card-header,.worker-access-header,.timesheet-result-banner{flex-direction:column;align-items:flex-start}.dashboard-actions{width:100%}.assignment-grid,.dashboard-grid,.worker-access-grid,.assignment-details,.timesheet-selector,.timesheet-header,.timesheet-result-banner,.timesheet-day-row,.inline-approval-form,.timesheet-list-item,.leave-list-item,.audit-filter-form,.audit-event-row,.leave-form-grid{grid-template-columns:1fr}.timesheet-header{flex-direction:column}.timesheet-summary,.timesheet-totals,.overtime-evidence-grid{grid-template-columns:1fr}}
