body:has(.ops-app){background:#f4f6f2;color:#17211b}.ops-app *,.ops-app *:before,.ops-app *:after{box-sizing:border-box}.scheduler-frame,.scheduler-screen,.ops-app{min-height:100vh}.ops-app{font-family:Manrope,Segoe UI,sans-serif;color:#17211b;background:#f4f6f2}body.ops-modal-open{position:fixed;width:100%;overflow:hidden;overscroll-behavior:none}.ops-login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.ops-login-card,.ops-card,.ops-modal{border:1px solid #d9e0d6;border-radius:8px;background:#fff;box-shadow:0 16px 40px #17211b14}.ops-login-card{width:min(440px,100%);display:grid;gap:16px;padding:28px}.ops-login-card h1,.ops-topbar h1,.ops-section-head h2,.ops-card h2,.ops-modal h2{margin:0;color:#17211b;font-family:Sora,Segoe UI,sans-serif;letter-spacing:0}.ops-muted,.ops-login-card p,.ops-card p,.request-item small{color:#5d6b61}.ops-kicker{margin:0;color:#17633b;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.ops-demo-logins,.ops-control-row,.ops-quick-actions,.ops-section-head,.ops-modal footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.ops-demo-logins button{min-height:40px;padding:0 12px;border:1px solid #cfd8ce;border-radius:8px;background:#f7f9f5;color:#253129;font-weight:800}.ops-shell{min-height:100vh;display:block}.ops-sidebar{position:fixed;top:0;left:0;bottom:0;width:250px;height:100vh;display:grid;grid-template-rows:auto 1fr auto;gap:22px;padding:22px 16px;background:#143725;color:#fff}.ops-brand{display:grid;gap:4px}.ops-brand strong{font-family:Sora,Segoe UI,sans-serif;font-size:1.08rem}.ops-brand span{color:#c7dccd}.ops-nav{display:grid;align-content:start;gap:8px}.ops-nav a{min-height:46px;display:flex;align-items:center;padding:0 12px;border-radius:8px;color:#eef7f0;font-weight:800}.ops-nav a.router-link-active{background:#fff;color:#143725}.ops-main{min-width:0;display:grid;align-content:start;gap:18px;padding:22px;margin-left:250px}.ops-main.schedule-main{width:auto;max-width:none;padding:22px 28px}.ops-main.employee-main{width:min(900px,calc(100vw - 294px));max-width:900px;margin-left:calc(250px + max(22px,(100vw - 250px - 900px) / 2))}.ops-topbar{display:flex;justify-content:space-between;gap:14px;align-items:center}.ops-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.compact-action{min-height:40px}.ops-user-chip{min-height:44px;display:inline-flex;align-items:center;gap:9px;padding:0 12px;border:1px solid #d9e0d6;border-radius:8px;background:#fff;font-weight:800}.ops-user-chip small{color:#5d6b61;font-weight:800}.avatar-button{width:42px;height:42px;display:inline-grid;place-items:center;padding:0;overflow:hidden;border:1px solid #cfd8ce;border-radius:999px;background:#eef4ef;color:#143725;font-size:.86rem;font-weight:900;flex:0 0 auto;box-shadow:0 8px 18px #17211b14}.avatar-button img,.avatar-button span{width:100%;height:100%;display:grid;place-items:center;object-fit:cover;border-radius:inherit}.avatar-button span{color:#fff}.chip-avatar{width:36px;height:36px}.mobile-avatar{width:48px;height:48px}.sr-only-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-drawer-trigger,.mobile-drawer,.mobile-drawer-backdrop{display:none}.ops-stack{display:grid;gap:16px}.ops-dashboard-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ops-stat-card{display:grid;gap:4px;padding:16px;border:1px solid #d9e0d6;border-radius:8px;background:#fff}.employee-dashboard{display:grid;gap:14px}.employee-schedule-workspace .employee-dashboard{max-width:none}.employee-calendar-toolbar{align-items:center}.employee-calendar-toolbar .ops-control-row{flex-wrap:nowrap}.employee-calendar-toolbar .ops-control-row strong{align-self:center}.employee-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.employee-stat-grid .ops-stat-card{min-height:74px;padding:12px 14px;box-shadow:none}.employee-stat-grid .ops-stat-card strong{font-size:1.55rem}.employee-stat-grid .ops-stat-card span{font-size:.86rem}.employee-actions{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:10px}.employee-actions .ops-button{min-height:42px}.next-job-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border:1px solid #d9e0d6;border-radius:12px;background:#fff;box-shadow:0 10px 28px #17211b0f}.next-job-card span{color:#5d6b61;font-size:.82rem;font-weight:900}.next-job-card h2{margin:4px 0 6px;color:#17211b;font-size:1.2rem;letter-spacing:0}.next-job-card p{margin:0;color:#5d6b61;line-height:1.35}.next-job-actions{display:grid;justify-items:end;gap:8px}.empty-next-job{grid-template-columns:1fr}.ops-stat-card strong{color:#143725;font-size:1.9rem;line-height:1}.ops-stat-card span{color:#5d6b61;font-weight:800}.ops-toolbar,.ops-filters,.ops-section-head{padding:12px;border:1px solid #d9e0d6;border-radius:8px;background:#fff}.ops-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center}.schedule-workspace{gap:12px}.schedule-workspace .schedule-metrics{display:none}.schedule-workspace .ops-toolbar{align-items:stretch;padding:14px}.schedule-workspace .ops-control-row{flex-wrap:nowrap}.schedule-workspace .ops-control-row:first-child{flex:1 1 auto}.schedule-workspace .ops-control-row:last-child{flex:0 0 auto}.schedule-workspace .ops-control-row strong{min-width:150px;align-self:center;color:#17211b;font-size:1.05rem}.schedule-workspace .ops-filters{grid-template-columns:repeat(3,minmax(180px,1fr))}.ops-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.schedule-date-input{min-height:44px;padding:0 10px;border:1px solid #cbd6cb;border-radius:8px;background:#fff;color:#17211b;font:inherit;font-weight:800}.ops-field{display:grid;gap:7px;min-width:0}.ops-field.full{grid-column:1 / -1}.ops-field span{color:#2a382e;font-weight:900}.ops-field input,.ops-field select,.ops-field textarea,.request-actions input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #cbd6cb;border-radius:8px;background:#fff;color:#17211b;outline:none}.ops-field textarea{resize:vertical}.ops-field input:focus,.ops-field select:focus,.ops-field textarea:focus,.request-actions input:focus{border-color:#207448;box-shadow:0 0 0 3px #20744824}.ops-field.compact span{font-size:.84rem}.ops-button,.ops-icon-button,.ops-segment{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:1px solid #cbd6cb;border-radius:8px;background:#fff;color:#17211b;font-weight:900}.ops-button.primary{border-color:#17633b;background:#17633b;color:#fff}.ops-button.secondary{border-color:#1769aa;background:#e8f2fb;color:#174467}.ops-button.ghost{background:#f7f9f5}.ops-button.approve{border-color:#18834f;background:#e5f6ed;color:#12623b}.ops-button.deny{border-color:#b84b43;background:#fff0ee;color:#8b2f29}.ops-button.small{min-height:36px;padding:0 10px;font-size:.9rem}.ops-icon-button{width:44px;padding:0;font-size:1.4rem}.ops-segment.active{border-color:#17633b;background:#e5f6ed;color:#143725}.ops-alert{padding:12px 14px;border-radius:8px;font-weight:800}.compact-alert{display:flex;justify-content:space-between;align-items:center;gap:10px;max-width:560px;padding:9px 12px;font-size:.92rem}.compact-alert button{width:30px;height:30px;border:1px solid rgba(18,98,59,.24);border-radius:8px;background:#ffffffad;color:inherit;font-weight:900}.ops-alert.error{border:1px solid #efb5ae;background:#fff0ee;color:#8b2f29}.ops-alert.success{border:1px solid #add6bb;background:#edf8f1;color:#12623b}.ops-alert.warning{border:1px solid #e4c06e;background:#fff8e6;color:#6b4b0b}.ops-alert ul{margin:8px 0 0;padding-left:20px}.schedule-time-grid{min-height:calc(100vh - 240px);display:grid;grid-template-rows:auto minmax(620px,1fr);overflow:hidden;border:1px solid #cbd6cb;border-radius:12px;background:#fff}.schedule-time-grid.day{--calendar-days: 1}.schedule-time-grid.week{--calendar-days: 7}.time-grid-header{display:grid;grid-template-columns:64px repeat(var(--calendar-days),minmax(0,1fr));border-bottom:1px solid #d9e0d6;background:#f8faf7}.time-grid-corner,.time-grid-day-head{min-height:62px;padding:10px;border-right:1px solid #d9e0d6}.time-grid-day-head{display:grid;align-content:center;gap:3px}.time-grid-day-head strong{color:#17211b;font-size:.94rem}.time-grid-day-head span{color:#5d6b61;font-weight:800}.time-grid-body{min-height:0;display:grid;grid-template-columns:64px 1fr;overflow:auto}.time-grid-hours{display:grid;grid-template-rows:repeat(14,72px);border-right:1px solid #d9e0d6;background:#fbfcfa}.time-grid-hour{padding:8px 8px 0 0;border-bottom:1px solid #eef2ec;color:#5d6b61;font-size:.78rem;font-weight:900;text-align:right}.time-grid-days{min-width:760px;display:grid;grid-template-columns:repeat(var(--calendar-days),minmax(130px,1fr))}.time-grid-day{position:relative;min-height:1008px;border-right:1px solid #d9e0d6;background:#fff}.time-grid-day:hover{background:#fbfdf9}.time-grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:repeat(14,72px);pointer-events:none}.time-grid-lines span{border-bottom:1px solid #eef2ec}.calendar-event{position:absolute;left:8px;right:8px;min-height:48px;display:grid;align-content:start;gap:2px;overflow:hidden;padding:8px;border:1px solid var(--crew-border, #bfdbfe);border-left:5px solid var(--crew-color, #2563eb);border-radius:8px;background:var(--crew-bg, #eff6ff);color:#17211b;text-align:left;box-shadow:0 8px 18px #17211b14;touch-action:none;-webkit-user-select:none;user-select:none;z-index:3}.calendar-event.draggable{padding-top:28px;padding-bottom:28px}.calendar-event.draggable{cursor:grab}.calendar-event.draggable:active{cursor:grabbing}.calendar-event.touch-dragging{opacity:.72;outline:2px solid #17633b;outline-offset:2px;z-index:5}.calendar-event.drag-preview{border:2px dashed #17633b;border-left:5px solid #17633b;background:#e5f6ed85;color:#143725;box-shadow:none;pointer-events:none;z-index:4}.calendar-event.readonly{cursor:pointer}.event-resize-controls{position:absolute;left:6px;right:6px;display:flex;justify-content:center;gap:6px;pointer-events:none}.event-resize-controls.top{top:4px}.event-resize-controls.bottom{bottom:4px}.event-resize-controls button{width:24px;height:20px;display:grid;place-items:center;border:1px solid rgba(37,99,235,.34);border-radius:999px;background:#ffffffe0;color:#174ea6;font-size:.78rem;font-weight:900;line-height:1;pointer-events:auto}.event-resize-controls button:hover{background:#fff;border-color:#2563eb}.calendar-event strong,.calendar-event span,.calendar-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event strong{font-size:.78rem}.calendar-event span{font-size:.9rem;font-weight:900}.calendar-event small{color:#405248;font-size:.74rem}.calendar-event.in-progress{border-color:var(--crew-border, #fde68a);border-left-color:var(--crew-color, #f59e0b);background:var(--crew-bg, #fffbeb)}.calendar-event.completed{border-color:var(--crew-border, #bbf7d0);border-left-color:var(--crew-color, #16a34a);background:var(--crew-bg, #f0fdf4)}.calendar-event.canceled{border-color:var(--crew-border, #fecaca);border-left-color:var(--crew-color, #dc2626);background:var(--crew-bg, #fef2f2)}.calendar-event.rescheduled{border-color:var(--crew-border, #ddd6fe);border-left-color:var(--crew-color, #7c3aed);background:var(--crew-bg, #f5f3ff)}.calendar-time-off{position:absolute;left:12px;right:12px;min-height:42px;display:grid;align-content:start;gap:2px;overflow:hidden;padding:8px 10px;border:1px solid var(--crew-border, #cbd5e1);border-left:5px solid var(--crew-color, #64748b);border-radius:8px;background:repeating-linear-gradient(135deg,var(--crew-bg, #f8fafc),var(--crew-bg, #f8fafc) 8px,rgba(255,255,255,.74) 8px,rgba(255,255,255,.74) 16px);color:#17211b;pointer-events:none;z-index:1}.calendar-time-off.pending,.calendar-time-off-month.pending,.time-off-card.pending{border-style:dashed}.calendar-time-off strong,.calendar-time-off span,.calendar-time-off small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-time-off strong{font-size:.78rem}.calendar-time-off span,.calendar-time-off small{color:#405248;font-size:.74rem;font-weight:800}.ops-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #d9e0d6;border-radius:8px;background:#d9e0d6}.ops-calendar.day{grid-template-columns:1fr}.ops-day-cell{min-height:178px;display:grid;grid-template-rows:auto 1fr;gap:8px;padding:10px;background:#fff}.ops-day-cell header{display:flex;justify-content:space-between;gap:8px;color:#5d6b61;font-size:.9rem}.day-jobs{display:grid;align-content:start;gap:7px}.calendar-job{display:grid;gap:3px;width:100%;padding:8px;border:1px solid var(--crew-border, #cbd6cb);border-left:5px solid var(--crew-color, #1769aa);border-radius:8px;background:var(--crew-bg, #f7fbff);color:#17211b;text-align:left}.calendar-job.scheduled{border-left-color:var(--crew-color, #2563eb);background:var(--crew-bg, #eff6ff)}.calendar-job.in-progress{border-left-color:var(--crew-color, #f59e0b);background:var(--crew-bg, #fffbeb)}.calendar-job.completed{border-left-color:var(--crew-color, #16a34a);background:var(--crew-bg, #f0fdf4)}.calendar-job.canceled{border-left-color:var(--crew-color, #dc2626);background:var(--crew-bg, #fef2f2)}.calendar-job.rescheduled{border-left-color:var(--crew-color, #7c3aed);background:var(--crew-bg, #f5f3ff)}.calendar-time-off-month,.time-off-card{border-left-color:var(--crew-color, #64748b);background:repeating-linear-gradient(135deg,var(--crew-bg, #f8fafc),var(--crew-bg, #f8fafc) 8px,#ffffff 8px,#ffffff 16px)}.calendar-job small,.ops-job-row small,.job-time span{color:#5d6b61}.schedule-agenda-list,.agenda-job-stack{display:grid;gap:12px}.agenda-day-group{display:grid;gap:10px;padding:14px;border:1px solid #d9e0d6;border-radius:12px;background:#fff}.agenda-day-group header{display:flex;justify-content:space-between;color:#5d6b61}.schedule-job-card{width:100%;display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--crew-border, #d9e0d6);border-left:5px solid var(--crew-color, #1769aa);border-radius:12px;background:linear-gradient(90deg,var(--crew-bg, #ffffff),#ffffff 54%);color:#17211b;text-align:left}.schedule-job-time{color:#143725;font-weight:900}.schedule-job-main{display:grid;gap:3px}.schedule-job-main span,.schedule-job-main small{color:#5d6b61}.employee-date-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);gap:8px;overflow-x:auto;padding-bottom:2px}.employee-date-strip button{min-height:58px;display:grid;place-items:center;gap:2px;border:1px solid #d9e0d6;border-radius:12px;background:#fff;color:#253129;font-weight:900}.employee-date-strip button.active{border-color:#17633b;background:#e5f6ed;color:#143725}.employee-date-strip span{font-size:.8rem;color:#5d6b61}.ops-job-list,.request-list{display:grid;gap:10px}.job-list-card{padding:14px;border-radius:12px;box-shadow:none}.job-list-card h2{margin-bottom:10px;font-size:1.05rem}.ops-job-row{width:100%;display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #d9e0d6;border-radius:12px;background:#fff;color:#17211b;text-align:left}.job-time,.job-main{display:grid;gap:3px;min-width:0}.job-time strong,.job-main strong{font-size:1rem}.job-main span{color:#253129;font-weight:800}.ops-status{width:fit-content;min-height:28px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;background:#e8eef6;color:#174467;font-size:.78rem;font-weight:900;white-space:nowrap}.ops-status.scheduled,.ops-status.pending{background:#dbeafe;color:#1d4ed8}.ops-status.pending-foreman{background:#e8eef6;color:#174467}.ops-status.pending-owner{background:#fff4db;color:#8a5200}.ops-status.in-progress{background:#ffedd5;color:#c2410c}.ops-status.completed,.ops-status.approved,.ops-status.active{background:#e5f6ed;color:#12623b}.ops-status.canceled,.ops-status.denied,.ops-status.inactive{background:#fff0ee;color:#8b2f29}.ops-status.rescheduled{background:#ede9fe;color:#6d28d9}.ops-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.employee-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px}.employee-avatar{width:64px;height:64px;align-self:start}.person-actions{display:grid;justify-items:end;gap:8px}.employee-card h3,.employee-card p,.request-item p{margin:0}.request-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px;border:1px solid #d9e0d6;border-radius:8px}.timesheet-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.timesheet-summary-card{display:grid;gap:4px;padding:13px 14px;border:1px solid #d9e0d6;border-radius:8px;background:#fff}.timesheet-summary-card span{color:#5d6b61;font-size:.84rem;font-weight:900}.timesheet-summary-card strong{color:#143725;font-size:1.35rem;line-height:1.05}.timesheet-filter-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px;border:1px solid #d9e0d6;border-radius:8px;background:#fff}.timesheet-tabs{display:flex;flex-wrap:wrap;gap:7px}.timesheet-tabs button{min-height:38px;padding:0 12px;border:1px solid #cbd6cb;border-radius:999px;background:#fff;color:#253129;font-weight:900}.timesheet-tabs button.active{border-color:#17633b;background:#e5f6ed;color:#143725}.timesheet-date-filter{display:flex;align-items:center;gap:8px;color:#5d6b61;font-weight:900}.timesheet-date-filter select,.timesheet-date-filter input{min-height:38px;padding:0 10px;border:1px solid #cbd6cb;border-radius:8px;background:#fff;color:#17211b;font:inherit;font-weight:800}.timesheet-list-shell{display:grid;gap:10px}.timesheet-card-list{display:grid;gap:9px}.timesheet-entry-card{display:grid;gap:8px;padding:12px 14px;border:1px solid #d9e0d6;border-radius:8px;background:#fff}.timesheet-entry-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.timesheet-entry-head>div{display:grid;gap:3px}.timesheet-entry-head strong{color:#17211b;font-size:1.05rem}.timesheet-entry-head span{color:#143725;font-size:1.2rem;font-weight:900}.timesheet-entry-body{display:grid;gap:4px}.timesheet-entry-body p,.timesheet-entry-body small{margin:0;color:#5d6b61;line-height:1.35}.timesheet-entry-body small:first-child{color:#253129}.timesheet-card-actions{display:flex;justify-content:flex-start}.timesheet-empty{background:#fff}.timesheet-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.timesheet-mode-tabs button{min-height:42px;border:1px solid #cbd6cb;border-radius:8px;background:#fff;color:#253129;font-weight:900}.timesheet-mode-tabs button.active{border-color:#17633b;background:#e5f6ed;color:#143725}.week-timesheet-editor{display:grid;gap:12px}.week-entry-list{display:grid;gap:8px}.week-entry-row{display:grid;grid-template-columns:130px 1fr 1fr minmax(150px,1.5fr);gap:8px;align-items:end;padding:10px;border:1px solid #d9e0d6;border-radius:8px;background:#f7f9f5}.week-entry-row strong{align-self:center}.approval-reset-note{margin:0;padding:10px 12px;border-radius:8px;background:#fff8e6;color:#6b4b0b;font-weight:800}.history-list{display:grid;gap:10px}.history-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px;border:1px solid #d9e0d6;border-radius:8px}.history-dot{width:12px;height:12px;margin-top:5px;border-radius:999px;background:#17633b}.history-item p{margin:4px 0}.history-item small,.history-item time{color:#5d6b61}.history-item time{display:grid;justify-items:end;gap:2px;white-space:nowrap}.request-actions{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.request-history-section{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #d9e0d6}.request-history-section h3{margin:0;color:#5d6b61;font-size:.9rem;letter-spacing:0;text-transform:uppercase}.request-history-item{align-items:center;padding:12px;background:#f9faf8}.request-history-item p{color:#5d6b61}.history-list-compact{gap:8px}.next-job{display:grid;gap:8px;padding:18px;cursor:pointer}.ops-empty{margin:0;padding:20px;border:1px dashed #cbd6cb;border-radius:8px;color:#5d6b61;text-align:center}.ops-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:16px;background:#1019147a;overscroll-behavior:contain;touch-action:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.ops-modal{width:min(620px,100%);max-height:calc(100dvh - 32px);overflow:auto;display:grid;gap:14px;padding:18px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scroll-padding-top:18px}.ops-modal.wide{width:min(860px,100%)}.ops-modal header{position:sticky;top:-18px;z-index:2;display:flex;justify-content:space-between;gap:12px;align-items:center;margin:-18px -18px 0;padding:18px;border-bottom:1px solid #edf1eb;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ops-modal header button{width:42px;height:42px;display:grid;place-items:center;padding:0;border:1px solid #d7e1d6;border-radius:12px;background:linear-gradient(180deg,#fff,#f4f8f3);color:#1f3127;font-size:1.6rem;font-weight:500;line-height:1;box-shadow:0 6px 14px #17211b14}.ops-modal header button:hover{border-color:#b9cbbd;background:linear-gradient(180deg,#fff,#eef5ef)}.ops-modal header button:active{transform:translateY(1px)}.ops-modal footer{position:sticky;bottom:-18px;z-index:2;margin:0 -18px -18px;padding:14px 18px 18px;border-top:1px solid #edf1eb;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.time-off-quick-row,.time-off-preset-row{display:flex;flex-wrap:wrap;gap:8px}.time-off-summary{display:grid;gap:4px;padding:12px 14px;border:1px solid #d9e0d6;border-radius:10px;background:#f7f9f5}.time-off-summary strong{color:#143725;font-size:.92rem}.time-off-summary span{color:#4e5d52;font-size:.9rem;font-weight:700}.form-grid-ops,.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-grid>div{display:grid;gap:4px;padding:12px;border:1px solid #d9e0d6;border-radius:8px}.detail-grid span{color:#5d6b61;font-size:.86rem;font-weight:900}.admin-note{padding:12px;border-radius:8px;background:#f7f9f5}.employee-picker{display:grid;gap:10px}.foreman-picker,.crew-member-grid,.unassigned-crew>div{display:flex;flex-wrap:wrap;gap:8px}.employee-toggle{min-height:42px;display:inline-flex;gap:6px;align-items:center;padding:0 12px;border:1px solid #cbd6cb;border-radius:999px;background:#fff;color:#17211b;font-weight:900}.employee-toggle small{color:#9a3412;font-size:.72rem;font-weight:900}.employee-toggle.unavailable{border-color:#fed7aa;background:#fff7ed}.employee-toggle.active{border-color:#17633b;background:#e5f6ed;color:#143725}.foreman-toggle{border-radius:12px;padding-right:14px}.foreman-toggle small{color:#426150}.foreman-toggle.expanded{box-shadow:0 0 0 3px #17633b1f}.foreman-crew-panel{display:grid;gap:10px;padding:12px;border:1px solid #d8e3d7;border-radius:12px;background:#f7faf6}.foreman-crew-header{display:flex;gap:12px;align-items:center;justify-content:space-between}.foreman-crew-header>div{display:grid;gap:2px}.foreman-crew-header span,.unassigned-crew>span{color:#607063;font-size:.84rem;font-weight:800}.crew-add-button{min-height:36px;padding:0 12px;border:1px solid #17633b;border-radius:10px;background:#fff;color:#0f5a33;font-weight:900}.crew-toggle{min-height:38px;background:#fff}.unassigned-crew{display:grid;gap:8px;padding-top:2px}.ops-checkbox{display:flex;align-items:center;gap:10px;font-weight:900}.ops-checkbox input{width:22px;height:22px}@media(max-width:980px){.ops-shell{grid-template-columns:1fr}.ops-sidebar{display:none}.ops-main{margin-left:0;width:100%;max-width:none;padding:14px}.ops-main.employee-main{width:100%;max-width:none;margin-left:0}.mobile-drawer-trigger{width:52px;height:52px;position:fixed;top:calc(env(safe-area-inset-top,0px) + 14px);right:calc(env(safe-area-inset-right,0px) + 14px);z-index:2190;display:grid;place-content:center;gap:5px;flex:0 0 auto;border:1px solid rgba(23,99,59,.34);border-radius:16px;background:#17633bd1;box-shadow:0 14px 30px #17211b42;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.mobile-drawer-trigger span{width:19px;height:2px;display:block;border-radius:999px;background:#fff}.mobile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2200;display:block;background:#0f17126b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-drawer{position:fixed;inset:0 auto 0 0;z-index:2210;width:min(340px,calc(100vw - 42px));display:grid;grid-template-rows:auto 1fr auto;gap:16px;padding:18px;background:#fff;border-right:1px solid #d9e0d6;box-shadow:22px 0 52px #17211b2e;transform:translate(-104%);transition:transform .18s ease}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-head{display:flex;justify-content:space-between;gap:12px;align-items:start;padding-bottom:14px;border-bottom:1px solid #d9e0d6}.mobile-drawer-head div{display:grid;gap:4px}.mobile-drawer-head strong{color:#143725;font-size:1.05rem}.mobile-drawer-head span{color:#5d6b61;font-weight:800}.mobile-drawer-close{width:42px;height:42px;border:1px solid #d9e0d6;border-radius:12px;background:#f7f9f5;color:#17211b;font-size:1.35rem;font-weight:900}.mobile-drawer-nav{display:grid;align-content:start;gap:8px}.mobile-drawer-nav a{min-height:50px;display:flex;align-items:center;padding:0 14px;border:1px solid #d9e0d6;border-radius:12px;background:#fff;color:#253129;font-weight:900}.mobile-drawer-nav a.router-link-active{border-color:#17633b;background:#e5f6ed;color:#143725;box-shadow:inset 4px 0 #17633b}.mobile-drawer-logout{width:100%}.ops-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-toolbar{display:grid}.schedule-workspace .ops-toolbar{padding:12px}.ops-filters,.form-grid-ops,.detail-grid,.ops-grid.two{grid-template-columns:1fr}.schedule-workspace .ops-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.ops-calendar{display:grid;grid-template-columns:1fr;gap:10px;border:none;background:transparent}.schedule-metrics{display:none}.ops-toolbar,.ops-filters{display:grid;gap:10px}.ops-control-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-workspace .ops-control-row{flex-wrap:wrap}.ops-control-row strong,.schedule-date-input,.ops-control-row .ops-button.primary{grid-column:1 / -1}.schedule-workspace .ops-control-row:first-child{display:grid;grid-template-columns:auto 44px 44px minmax(0,1fr);align-items:center}.schedule-workspace .ops-control-row:first-child strong{grid-column:1 / -1;min-width:0}.schedule-workspace .ops-control-row:last-child{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-workspace .ops-control-row:last-child .ops-button.primary{grid-column:1 / -1}.schedule-time-grid{min-height:620px;grid-template-rows:auto 1fr}.time-grid-days{min-width:720px}.schedule-job-card{grid-template-columns:1fr}.ops-day-cell{min-height:auto;border:1px solid #d9e0d6;border-radius:8px}}@media(max-width:640px){.ops-topbar{align-items:start;display:grid;grid-template-columns:minmax(0,1fr) auto}.ops-quick-actions .ops-button,.ops-control-row .ops-button.primary{width:100%}.ops-user-chip{grid-column:1 / -1;width:100%;margin-top:12px;padding-right:64px}.employee-card{grid-template-columns:56px minmax(0,1fr)}.employee-avatar{width:56px;height:56px}.person-actions{grid-column:1 / -1;justify-items:start;grid-auto-flow:column;justify-content:start;flex-wrap:wrap}.mobile-drawer-trigger{grid-column:auto;grid-row:auto}.ops-title-row,.compact-action{width:100%}.ops-dashboard-grid,.schedule-workspace .ops-filters{grid-template-columns:1fr}.schedule-workspace .ops-toolbar{overflow:hidden}.employee-calendar-toolbar{padding:12px}.employee-calendar-toolbar .ops-control-row:first-child{grid-template-columns:minmax(0,1fr) 44px 44px;align-items:center}.employee-calendar-toolbar .ops-control-row:first-child strong{grid-column:1 / -1;grid-row:2;padding-top:2px}.employee-calendar-toolbar .ops-control-row:last-child{grid-template-columns:repeat(3,minmax(0,1fr))}.employee-calendar-toolbar .ops-segment{width:100%}.employee-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.employee-stat-grid .ops-stat-card{min-height:68px;padding:10px}.employee-stat-grid .ops-stat-card strong{font-size:1.35rem}.employee-stat-grid .ops-stat-card span{font-size:.78rem;line-height:1.15}.employee-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-actions .ops-button{padding:0 10px;font-size:.92rem}.next-job-card{grid-template-columns:1fr;padding:14px}.next-job-actions{justify-items:start}.timesheet-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timesheet-filter-bar{align-items:stretch;flex-direction:column}.timesheet-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.timesheet-tabs button{padding:0 8px}.timesheet-date-filter{justify-content:space-between}.timesheet-entry-head{align-items:start;flex-direction:column}.week-entry-row{grid-template-columns:1fr 1fr}.week-entry-row strong,.week-entry-row .ops-field:last-child{grid-column:1 / -1}.ops-job-row{grid-template-columns:72px minmax(0,1fr)}.ops-job-row .ops-status{grid-column:2}.request-item,.request-actions{grid-template-columns:1fr}.ops-modal{align-self:start;width:100%;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);border-radius:18px 18px 8px 8px}.ops-modal-backdrop{place-items:start center;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px calc(env(safe-area-inset-bottom,0px) + 12px)}}
