*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:#0f172a}.page{padding:24px 32px}.container{max-width:1200px;margin:0 auto}.stack-24>*+*{margin-top:16px}.stack-16>*+*{margin-top:16px}.stack-12>*+*{margin-top:12px}.stack-8>*+*{margin-top:8px}.client-list-scroll{max-height:370px;overflow-y:auto;padding-right:4px}.client-contact-form{align-items:start}.client-contact-form .input,.client-contact-add-button{min-height:42px}.client-contact-single-field,.client-contact-add-button{align-self:start}.client-contact-add-button{margin-top:4px}.client-notes-field{grid-column:1 / -1}.contact-email-row{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;align-items:center}.contact-email-add{width:42px;height:42px}.row{display:flex}.row-between{display:flex;justify-content:space-between}.wrap{flex-wrap:wrap}.gap-16{gap:16px}.gap-12{gap:12px}.gap-8{gap:8px}.align-center{align-items:center}.align-start{align-items:flex-start}.justify-end{justify-content:flex-end}.center-screen{display:flex;align-items:center;justify-content:center;min-height:100vh}.page-title{font-size:28px;font-weight:700;margin:0;line-height:1.05}.muted{color:#64748b}.small{font-size:.85rem}.tiny{font-size:.75rem}.semibold{font-weight:600}.notes-text{white-space:pre-wrap}.inventory-detail-notes{margin-top:0}.inventory-item-expanded-details{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);align-items:start;gap:8px 18px;text-align:left}.inventory-inline-barcode-shell{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-width:0;padding-top:2px}.inventory-inline-barcode-shell .inventory-print-label-button{align-self:center}.inventory-inline-barcode{display:block;width:100%;max-width:220px;height:48px}.inventory-item-detail-copy{min-width:0;text-align:left}.inventory-print-label-button{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;width:auto;min-width:0;min-height:30px;gap:8px;padding:3px 10px;line-height:1;white-space:nowrap}.print-label-button-icon{display:block;width:22px;height:22px;flex:0 0 22px;object-fit:contain}.barcode-label-size-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.barcode-label-size-option{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:82px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:14px;text-align:left;cursor:pointer}.barcode-label-size-option:hover{border-color:#4cb3cb;background:#f8fafc}.clickable-row{cursor:pointer}.equipment-toggle{display:inline-flex;align-items:flex-start;gap:8px;color:inherit;text-align:left}.equipment-toggle:hover .semibold{color:#0f172a}.details-indent{margin-left:24px}.field-error{color:#fc0303;font-size:.8rem;font-weight:700;margin-top:4px}.double-booking-warning{margin-top:-4px}.meal-penalty{color:#fc0303;font-size:.82rem;font-weight:700;margin-top:4px}.timecard-filter-row,.timecard-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}.timecard-period-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.timecard-operator-filter{position:relative}.timecard-operator-summary{display:flex;align-items:center;min-height:42px;cursor:pointer;list-style:none;background:#fff}.timecard-operator-summary::-webkit-details-marker{display:none}.timecard-operator-summary:after{content:"v";margin-left:auto;color:#64748b;font-size:.8rem}.timecard-operator-menu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:220px;max-height:260px;overflow-y:auto;padding:8px;border:1px solid #dbe4ee;border-radius:8px;background:#fff;box-shadow:0 14px 32px #0f172a24}.timecard-form-panel{border:1px solid #dbe4ee;border-radius:8px;background:#f8fafc;padding:14px}.timecard-form-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.timecard-entry-type-toggle{display:grid;grid-template-columns:1fr 1fr;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:#fff;flex:0 0 auto}.timecard-entry-type-option{border:0;background:#fff;color:#0f172a;padding:8px 12px;font:inherit;font-size:.86rem;cursor:pointer;white-space:nowrap}.timecard-entry-type-option+.timecard-entry-type-option{border-left:1px solid #cbd5e1}.timecard-entry-type-option.selected{background:#4cb3cb;color:#fff;font-weight:700}.time-select{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.timecard-meal-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) auto;gap:8px;align-items:center}.timecard-operator-group{border:1px solid #e2e8f0;border-radius:8px;background:#fff;overflow:hidden}.timecard-operator-header{width:100%;border:0;background:#fff;padding:12px;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.timecard-operator-header:hover{background:#f8fafc}.timecard-operator-header-total{margin-left:auto;font-weight:700;white-space:nowrap}.timecard-operator-body{border-top:1px solid #e2e8f0;padding:12px;background:#f8fafc}.timecard-entry{border:1px solid #e2e8f0;border-radius:8px;padding:12px;background:#fff}.timecard-entry-main{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.timecard-entry-side{min-width:150px;text-align:right}.timecard-entry-actions{margin-top:4px}.timecard-filter-button{background:#fff;border-color:#cbd5f5;color:#0f172a}.white-button,.timecard-filter-button{background:#fff!important;border-color:#cbd5f5!important;color:#0f172a!important}@media(max-width:700px){.timecard-meal-row,.timecard-entry-main{grid-template-columns:1fr}.timecard-entry-side{min-width:0;text-align:left}.timecard-form-header{display:grid}.timecard-entry-type-toggle{width:100%}}.rotate-90{transform:rotate(90deg)}.card{background:#fff;border-radius:20px;border:1px solid #e2e8f0;padding:12px 16px 16px}.section-card{background:#cfe3e7}.job-card.job-collapsed{padding:8px 12px}.job-card.job-collapsed .job-card-header{margin-bottom:0}.job-card.job-collapsed .card-title{font-size:16px}.job-card.job-collapsed .job-toggle{min-height:24px}.card-header{margin-bottom:8px}.card-title{font-size:18px;font-weight:600;margin:0;line-height:1.18}.card-description{font-size:14px;color:#64748b;margin:3px 0 0;line-height:1.25}.btn{border:none;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:500}.btn-primary{background:#0f172a;color:#fff}.btn-outline{background:transparent;border:1px solid #cbd5f5}.btn.workflow-complete-button{background:#4cb3cb;border-color:#4cb3cb;color:#fff;box-shadow:0 0 0 3px #4cb3cb2e;font-weight:800}.btn.workflow-complete-button:hover{background:#319cb7;border-color:#319cb7}.btn-sm{padding:6px 10px;font-size:.85rem}.btn:disabled{opacity:.6;cursor:not-allowed}.input{width:100%;padding:10px;border-radius:10px;border:1px solid #cbd5e1;margin-top:4px}.multiline-location-input{min-height:58px;line-height:1.25;resize:vertical}.location-title-text{white-space:pre-line}.password-input-shell{position:relative}.password-input{padding-right:42px}.password-toggle-button{position:absolute;right:8px;top:50%;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:999px;background:transparent;color:#475569;cursor:pointer;transform:translateY(-43%)}.password-toggle-button:hover{background:#e2e8f0;color:#0f172a}.search-input-shell{position:relative}.barcode-input-group{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.barcode-input-group .btn{min-height:39px}.inventory-barcode-value{color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:700;letter-spacing:0}.inventory-barcode-label{display:flex;align-items:flex-end;gap:12px;margin-top:12px}.inventory-barcode-preview{width:min(288px,100%);aspect-ratio:2 / 1;padding:10px 12px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;display:grid;grid-template-rows:auto 1fr}.inventory-barcode-name{width:100%;margin-bottom:6px;overflow:hidden;font-size:14px;font-weight:700;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap}.inventory-label-preview-body{display:grid;grid-template-columns:86px minmax(0,1fr);gap:10px;align-items:center;min-height:0}.inventory-label-identity,.inventory-label-barcode-area{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.inventory-label-logo{width:82px;height:82px;object-fit:contain}.inventory-label-phone{width:82px;margin-top:-1px;font-size:11px;font-weight:700;line-height:1;text-align:center;white-space:nowrap}.inventory-barcode-svg{display:block;width:min(166px,100%);height:58px}.inventory-barcode-preview .inventory-barcode-value{margin-top:5px}.barcode-scanner-backdrop{z-index:60}.barcode-scanner-modal{width:min(520px,100%)}.barcode-camera-frame{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;border-radius:8px;background:#0f172a}.barcode-camera-video{display:block;width:100%;height:100%;object-fit:cover}.barcode-camera-guide{position:absolute;left:9%;right:9%;top:50%;height:34%;transform:translateY(-50%);border:3px solid #4cb3cb;border-radius:8px;box-shadow:0 0 0 999px #0f172a47;pointer-events:none}.barcode-scanner-message{min-height:42px;margin-top:12px;padding:10px 12px;border-radius:8px;background:#f8fafc;font-weight:700}.barcode-scanner-message.success{color:#15803d;background:#f0fdf4}.barcode-scanner-message.warning{color:#a16207;background:#fefce8}.barcode-scanner-message.error{color:#fc0303;background:#fef2f2}.barcode-manual-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:12px}@media(max-width:640px){.barcode-label-size-options{grid-template-columns:1fr}.inventory-item-expanded-details{grid-template-columns:1fr;gap:6px}.inventory-barcode-label{align-items:stretch;flex-direction:column}}.search-input{padding-left:34px}.saved-picker-input{padding-right:40px}.saved-picker-toggle{position:absolute;right:6px;top:calc(50% + 2px);transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:6px;background:transparent;color:#64748b;cursor:pointer}.multiline-location-shell .search-input-icon,.multiline-location-shell .saved-picker-toggle{top:18px;transform:none}.saved-picker-toggle:hover,.saved-picker-toggle:focus-visible{background:#e2e8f0;color:#0f172a}.saved-location-picker .search-input-shell .search-input{padding-right:42px}.calendar-search-shell .search-input{padding-right:34px}.search-clear-button{position:absolute;right:8px;top:calc(50% + 2px);transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:999px;background:transparent;color:#64748b;cursor:pointer}.search-clear-button:hover{background:#e2e8f0;color:#0f172a}.search-input-icon{position:absolute;left:11px;top:calc(50% + 2px);transform:translateY(-50%);color:#64748b;pointer-events:none}.pac-container{z-index:10000}.address-autocomplete{position:relative}.address-autocomplete-results{position:absolute;left:0;right:0;z-index:10000;margin-top:6px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:8px;box-shadow:0 10px 24px #0f172a1f;max-height:220px;overflow-y:auto}.saved-location-picker-results,.calendar-search-results,.calendar-operator-menu{margin-top:8px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:8px}.saved-location-picker-results{max-height:180px;overflow-y:auto}.saved-location-picker-result,.calendar-search-result{display:block;width:100%;border:none;border-radius:8px;background:transparent;color:#0f172a;cursor:pointer;padding:8px;text-align:left}.saved-location-picker-result:hover,.saved-location-picker-result.selected,.calendar-search-result:hover{background:#f8fafc}.calendar-controls{position:relative;display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:12px;align-items:center;z-index:5}.calendar-search-panel{display:contents}.calendar-search-dates{display:grid;grid-template-columns:repeat(2,142px);gap:8px}.calendar-search-fields-filter{position:relative}.calendar-filter-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;min-width:98px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:.85rem;font-weight:500;cursor:pointer}.calendar-filter-button:hover{background:#f8fafc}.calendar-search-fields-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:8;min-width:210px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:10px;box-shadow:0 18px 40px #0f172a29}.mini-link-button{border:none;background:transparent;color:#0f7490;font-size:.78rem;font-weight:700;cursor:pointer;padding:2px 0}.mini-link-button:hover{color:#0f172a}.checkbox-row.compact{gap:8px;margin-top:8px;font-size:.84rem}.calendar-search-results{position:absolute;left:0;top:calc(100% + 6px);width:min(640px,100%);max-height:220px;overflow-y:auto;box-shadow:0 18px 40px #0f172a29}.calendar-search-warning{position:absolute;left:0;top:calc(100% + 6px);z-index:7;border:1px solid #fecaca;border-radius:10px;background:#fff;color:#fc0303;font-size:.85rem;font-weight:700;padding:10px 12px;box-shadow:0 18px 40px #0f172a29}.calendar-search-result-date{display:inline-block;min-width:90px;color:#64748b;font-size:.82rem}.calendar-search-result-title{font-weight:600}.calendar-operator-filter{position:relative;width:max-content}.calendar-operator-filter-button{cursor:pointer;font:inherit;font-weight:400;white-space:nowrap;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a}.calendar-operator-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:max-content;max-height:260px;overflow-y:auto;box-shadow:0 18px 40px #0f172a29;z-index:6}.badge{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap}.badge.green{background:#dcfce7;color:#166534}.badge.amber{background:#fef3c7;color:#92400e}.badge.blue{background:#dbeafe;color:#1e40af}.badge.slate{background:#e2e8f0;color:#334155}.badge.emerald{background:#d1fae5;color:#065f46}.badge.red{background:#fee2e2;color:#991b1b}.job-title-with-icon{display:flex;flex-wrap:wrap;column-gap:.25em;row-gap:.1em;align-items:baseline}.job-file-buttons-row{display:flex;align-items:center;gap:8px;margin-top:8px;min-width:0}.job-file-buttons-label{color:#475569;font-size:.85rem;font-weight:700;flex:0 0 auto}.job-file-buttons{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.job-file-button{max-width:220px;min-height:32px;padding:6px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#f1f5f9;color:#0f172a;font:inherit;font-size:.85rem;font-weight:700;line-height:1.15;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-file-button:hover{border-color:#94a3b8;background:#e2e8f0}.job-title-status-label{color:#64748b;font-size:.75em;font-weight:800;text-transform:capitalize;white-space:nowrap}.job-title-status-checked_out,.job-title-status-active{color:#15803d}.job-title-status-completed{color:#475569}.job-status-slot{display:inline-flex;align-items:center;justify-content:center;width:.9em;height:1em}.job-status-icon{width:.78em;height:.78em;flex:0 0 auto;stroke-width:2.5}.job-status-icon.estimated{color:#166534}.job-status-icon.invoiced,.job-status-icon.no-action{color:#0f766e}.unavailable-status-dot{width:.55em;height:.55em;border-radius:50%;background:currentColor}.calendar-billing-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.calendar-billing-legend span{display:inline-flex;align-items:center;gap:4px}.recurring-title-note{color:#64748b;font-size:.85em;font-weight:600;white-space:nowrap}.billing-toggle{display:inline-grid;grid-template-columns:18px minmax(0,1fr) 18px;align-items:center;justify-items:center;gap:8px;min-width:132px;margin-top:6px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;cursor:pointer;font-weight:700;padding:10px 12px;text-align:center}.billing-toggle:after{content:"";width:18px;height:1px}.modal-header-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:12px}.job-payroll-header-status{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:#fc0303;font-size:.82rem;font-weight:700}.job-payroll-option{width:fit-content;font-weight:600}.job-union-prompt{font-weight:700;color:#334155}.job-rate-label{display:flex;align-items:center;gap:8px}.union-job-label{color:#15803d;font-weight:800}.job-payroll-form-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.equipment-heading-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.equipment-status-actors{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.78rem;font-weight:700}.equipment-status-actor.checked-out{color:#15803d}.equipment-status-actor.checked-in{color:#fc0303}.billing-header-control{display:flex;align-items:center;gap:1.25ch}.billing-header-control .billing-toggle{margin-top:0}.copy-job-badge{color:#fc0303;font-size:.9rem;font-weight:700;line-height:40px;white-space:nowrap}.copy-job-status{display:flex;flex-direction:column;align-items:flex-start}.copy-job-link-option{display:inline-flex;align-items:center;gap:6px;margin-top:-8px;color:#0f172a;font-size:.82rem;font-weight:600;white-space:nowrap}.billing-estimated{border-color:#86efac;background:#f0fdf4}.billing-invoiced,.billing-no_action{border-color:#99f6e4;background:#f0fdfa}.soft-box{background:#f1f5f9;border-radius:20px;border:1px solid #e2e8f0;padding:16px}.cancelled-equipment-summary{opacity:.72;background:#e5e7eb}.border-box{border:1px solid #e2e8f0;border-radius:12px;padding:12px;background:#fff}.map-placeholder{display:grid;min-height:360px;place-items:center;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:24px}.map-frame{overflow:hidden;min-height:420px;border:1px solid #cbd5e1;border-radius:12px}.google-map-canvas{width:100%;height:420px}.map-legend{display:flex;flex-wrap:wrap;gap:16px;align-items:center;color:#475569;font-size:.85rem;font-weight:700}.map-legend span{display:inline-flex;align-items:center;gap:6px}.map-legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 auto}.map-legend-dot.assigned{background:#f59e0b}.map-legend-dot.active{background:#16a34a}.map-job-row{width:100%;background:#fff;color:inherit;text-align:left}.map-job-row:hover{border-color:#4cb3cb}.map-operator-links{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.map-operator-link{font-size:.82rem;font-weight:700;text-decoration:underline;text-underline-offset:2px}.map-info-window{display:grid;gap:4px;color:#0f172a;font:13px Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;max-width:240px}.map-info-equipment{margin-top:6px}.map-info-equipment ul{margin:4px 0 0;padding-left:18px}.selectable-box{width:100%;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:16px;cursor:pointer;transition:all .15s ease}.selectable-box:hover{box-shadow:0 2px 8px #0000000f;border-color:#cbd5f5}.selectable-box:active{transform:scale(.98)}.selected-box{background:#fff7ed;border-color:#f59e0b}.inventory-row,.collapsible-row,.timecard-operator-group,.timecard-entry,.employee-row{background:#fff}.collapsible-row .btn,.timecard-entry .btn,.timecard-operator-group .btn{background:#e2e8f0;border-color:#e2e8f0;color:#0f172a}.collapsible-row .btn:disabled,.timecard-entry .btn:disabled,.timecard-operator-group .btn:disabled{color:#0f172a}.brand-title-row{display:flex;align-items:flex-start;gap:4px}.brand-title-row .page-title{margin-top:28px}.brand-logo{width:96px;height:96px;object-fit:contain;flex:0 0 auto}.login-brand-logo{width:36px;height:36px;object-fit:contain;flex:0 0 auto}.brand-subtitle{margin-top:-4px}.logout-button{min-height:42px;height:42px;padding:10px 14px;align-self:center}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{padding:12px}.stat-card .card-content{padding:0}.stat-label{line-height:1.05}.stat-number{font-size:21px;font-weight:700;line-height:1.05;margin-top:2px}.stat-card-icon{width:46px;height:46px;object-fit:contain;border-radius:6px;flex:0 0 auto}.tab-row{display:flex;gap:8px}.tab-button{padding:8px 12px;border-radius:8px;background:#e2e8f0;border:none;cursor:pointer}.tab-active{background:#4cb3cb;color:#fff}.plain-button{background:none;border:none;cursor:pointer;text-align:left}.block-button{width:100%}.checkbox-pill{display:flex;align-items:center;gap:6px;background:#f1f5f9;padding:6px 10px;border-radius:999px}.weekday-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:8px}.recurrence-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700}.recurrence-number{width:64px;min-width:64px;margin-top:0}.rich-text-editor{min-height:96px;width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;padding:10px 12px;outline:none}.rich-text-editor:empty:before{content:attr(data-placeholder);color:#94a3b8}.rich-text-editor:focus{border-color:#334155;box-shadow:0 0 0 3px #3341551f}.rich-text-output{color:#0f172a;line-height:1.45;overflow-wrap:anywhere}.rich-text-output p{margin:0 0 8px}.radio-row,.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row{color:#334155;font-size:.9rem}.optional-time-field{display:flex;flex-direction:column;gap:6px}.optional-time-toggle{margin-bottom:2px}.optional-time-field .input:disabled{background:#f8fafc;color:#94a3b8}.inventory-status-location{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}.inventory-status-location-text{max-width:88px;color:#64748b;font-size:.62rem;line-height:1.05;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-equipment-item .inventory-status-location{align-items:flex-start}.job-equipment-item .inventory-status-location-text{max-width:50ch;text-align:left;overflow:visible;text-overflow:clip;white-space:normal}.inventory-row .inventory-status-location{align-items:flex-end;justify-self:end;text-align:right}.inventory-row .inventory-status-location .badge{align-self:flex-end}.inventory-row .inventory-status-location-text{max-width:50ch;text-align:right;overflow:visible;text-overflow:clip;white-space:normal}.attachment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:8px 10px}.recurring-date-input{width:170px;margin-top:0}.empty-box{padding:20px;text-align:center;color:#64748b}.alert{border-radius:12px;padding:10px}.alert.error{background:#fee2e2;color:#fc0303}.alert.success{background:#dcfce7;color:#166534}.hover-parent .hover-text{opacity:0;transition:opacity .15s ease-in-out;pointer-events:none}.hover-parent:hover .hover-text{opacity:1}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-3.client-contact-form{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) auto}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.mb-6{margin-bottom:6px}.mb-10{margin-bottom:10px}.mt-4{margin-top:4px}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-16{margin-top:16px}.w-full{width:100%}.flex-1{flex:1}.min-w-240{min-width:240px}.color-input{width:48px;height:42px;padding:4px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;margin-top:4px}.employee-color-dot{width:14px;height:14px;border-radius:999px;border:1px solid rgba(15,23,42,.18);flex:0 0 auto}.cancelled-color-input{max-width:140px}.employee-visibility-list{display:flex;flex-wrap:wrap;gap:8px}.calendar-title-row{display:flex;align-items:center;justify-content:center;gap:16px}.calendar-title{font-size:20px;font-weight:700;min-width:180px;text-align:center}.calendar-month-arrow{width:34px;height:34px;border:none;border-radius:50%;background:transparent;color:#334155;cursor:pointer;font-size:1.8rem;line-height:1}.calendar-month-arrow:hover{background:#e2e8f0}.month-picker{width:160px;margin-top:0}.calendar-view-toggle{display:inline-grid;grid-template-columns:repeat(2,auto);border:1px solid #cbd5e1;border-radius:6px;overflow:hidden;background:#fff}.calendar-view-toggle button{min-height:34px;border:none;border-right:1px solid #cbd5e1;background:#fff;color:#334155;padding:0 12px;cursor:pointer}.calendar-view-toggle button:last-child{border-right:none}.calendar-view-toggle button.selected{background:#4cb3cb;color:#fff}.calendar-viewport{width:100%;touch-action:pan-x pan-y pinch-zoom}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays{color:#64748b;font-size:.78rem;font-weight:700;text-align:center}.calendar-cell{min-height:150px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:6px;overflow:visible}.calendar-week-view .calendar-cell{min-height:260px}.calendar-empty,.calendar-outside-month{background:#f8fafc}.calendar-outside-month{background:#e5f6f9}.calendar-today{background:#cfe3e7;border:4px solid #ffffff}.calendar-outside-month{cursor:pointer}.calendar-outside-month:hover{border-color:#cbd5e1}.calendar-outside-month .calendar-day-number{color:#94a3b8}.calendar-day-number{color:#334155;font-size:.82rem;font-weight:700;margin-bottom:4px}.calendar-add-button{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:#334155;cursor:pointer;font-size:.9rem;font-weight:800;line-height:1}.calendar-add-button:hover{background:transparent}.calendar-cell:hover .calendar-add-button{background:#4cb3cb;color:#fff}.calendar-job-list{display:flex;flex-direction:column;gap:1px}.calendar-job{width:100%;border:none;border-radius:4px;background:transparent;cursor:pointer;font-size:.72rem;font-weight:700;line-height:1.12;padding:1px 2px;text-align:left;overflow-wrap:anywhere}.calendar-job-completed{border:1px solid #cbd5e1;background:#f8fafc;opacity:.92}.calendar-job .job-title-with-icon{display:grid;grid-template-columns:.9em minmax(0,1fr);column-gap:.25em;row-gap:0;align-items:start}.calendar-job-title{min-width:0}.calendar-job-location,.calendar-job-cancelled{font-weight:500}.calendar-job-time{font-weight:500;white-space:normal;overflow-wrap:anywhere}.calendar-job:hover{background:#f8fafc;text-decoration:underline}.calendar-job-completed:hover{background:#f1f5f9}.equipment-list-week{display:flex;flex-direction:column;gap:10px}.equipment-list-day{--equipment-list-card-width: clamp(132px, 18vw, 176px);--equipment-list-card-gap: 8px;display:flex;flex-direction:column;gap:6px;min-width:0;overflow:hidden;border:1px solid #dbe6ea;border-radius:8px;background:#fff;padding:8px}.equipment-list-day-label{display:flex;align-items:center;justify-content:flex-start;color:#334155;font-size:.78rem;font-weight:700;line-height:1.15}.equipment-list-carousel{position:relative;min-width:0;overflow:hidden}.equipment-list-arrow{position:absolute;top:50%;z-index:2;width:30px;height:44px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;cursor:pointer;font-size:1.4rem;line-height:1;transform:translateY(-50%)}.equipment-list-arrow-left{left:4px}.equipment-list-arrow-right{right:4px}.equipment-list-arrow:hover:not(:disabled){background:#f1f5f9}.equipment-list-arrow:disabled{cursor:default;opacity:.28}.equipment-list-jobs{display:flex;align-items:start;gap:var(--equipment-list-card-gap);min-height:132px;min-width:max-content;transform:translate(calc(var(--equipment-list-offset, 0) * -1 * (var(--equipment-list-card-width) + var(--equipment-list-card-gap))));transition:transform .18s ease}.equipment-list-jobs-viewport{width:100%;min-width:0;overflow:hidden;touch-action:pan-y pinch-zoom}.equipment-list-job-card,.equipment-list-empty{flex:0 0 var(--equipment-list-card-width);min-height:132px;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;padding:8px;text-align:left}.equipment-list-job-card{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-self:start;cursor:pointer}.equipment-list-job-card:hover{border-color:#4cb3cb;background:#fff}.equipment-list-job-title{font-size:.78rem;font-weight:800;line-height:1.2;margin-bottom:6px;overflow-wrap:anywhere}.equipment-list-items{display:flex;flex-direction:column;gap:3px;margin:0;padding-left:15px;color:#334155;font-size:.7rem;line-height:1.2}.equipment-list-card-notes{margin-top:8px;padding-top:6px;border-top:1px solid #e2e8f0;color:#334155;font-size:.7rem;line-height:1.2}.equipment-list-missing{color:inherit;font-weight:400}.equipment-list-empty{display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:.78rem;font-weight:700}@media(max-width:640px){.equipment-list-day{--equipment-list-card-width: clamp(118px, 42vw, 148px)}.equipment-list-arrow{display:none}}.inventory-category-group,.inventory-subcategory-group{overflow:hidden;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.inventory-group-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;border:none;background:#e2e8f0;color:#1e293b;padding:10px 12px;text-align:left;cursor:pointer}.inventory-category-header{font-size:.95rem}.inventory-subcategory-list{padding:10px;background:#fff}.inventory-subcategory-header{background:#f1f5f9;font-size:.88rem}.inventory-subcategory-items{padding:8px;background:#fff}.job-equipment-picker{overflow:hidden;border:1px solid #cbd5e1;border-radius:6px;background:#fff}.job-equipment-picker-header{background:#e2e8f0}.job-equipment-picker-body{max-height:440px;overflow-y:auto;padding:10px;background:#fff}.job-equipment-selected-title{padding:2px 2px 0;color:#475569}.job-equipment-item{width:100%;text-align:left}.accessory-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.accessory-quantity-control{display:inline-flex;align-items:center;gap:6px}.accessory-quantity-value{min-width:22px;text-align:center;font-weight:700}.additional-item-row,.additional-item-display{border-top:1px solid #e2e8f0;padding-top:10px}.additional-item-row:first-child,.additional-item-display:first-child{border-top:none;padding-top:0}.task-form-grid{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(160px,1fr) minmax(180px,1.2fr);gap:12px;align-items:start}.task-notes-field{grid-column:1 / -1}.calendar-unavailable{background:#f8fafc;font-style:italic;display:block;text-align:left}.unavailable-private-toggle{white-space:nowrap;font-size:.85rem;font-weight:600}.unavailable-private-toggle.private{color:#fc0303}.calendar-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:12px}.calendar-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700}.calendar-legend-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.workflow-checklist{display:grid;gap:8px}.workflow-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#0f172a;padding:9px 10px;text-align:left}.workflow-item>span:first-child{display:grid;gap:2px;min-width:0}.workflow-item .btn{flex:0 0 auto}.workflow-checked{border-color:#86efac;background:#f0fdf4}.workflow-box{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px;border:1px solid #94a3b8;border-radius:5px;color:#166534}.workflow-checked .workflow-box{border-color:#16a34a}.workflow-warning{color:#fc0303;font-size:.85rem;font-weight:700}.payroll-due-warning{color:#fc0303;font-weight:800}.payroll-due-trigger{border:none;background:transparent;padding:4px 0;cursor:pointer;font-family:inherit;font-size:18px;line-height:1.18}.payroll-due-trigger:hover,.payroll-due-trigger:focus-visible{text-decoration:underline}.timecard-entry .btn.timecard-paid-button,.timecard-entry .btn.timecard-paid-button:disabled{color:#15803d;font-weight:700}.timecard-entry .btn.timecard-unpaid-button,.timecard-entry .btn.timecard-unpaid-button:disabled{color:#fc0303;font-weight:700}.payroll-due-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:10px 12px;cursor:pointer;text-align:left}.payroll-due-link:hover{background:#f8fafc}.workflow-confirm{width:min(440px,100%)}.modal-title{color:#0f172a;font-size:1.05rem;font-weight:800}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#0f172a75;padding:24px}.priority-modal-backdrop{z-index:12000}.modal-card{width:min(760px,100%);max-height:calc(100vh - 48px);overflow-y:auto;background:#fff;border-radius:16px;border:1px solid #e2e8f0;padding:20px;box-shadow:0 24px 70px #0f172a47}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;cursor:pointer}@media(max-width:900px){.stats-grid,.grid-4,.grid-3,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-grid{gap:6px}.calendar-cell{min-height:132px;padding:5px}.calendar-controls{grid-template-columns:minmax(180px,1fr) auto}.calendar-search-panel{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:8px}.calendar-search-dates{grid-template-columns:repeat(2,132px)}}@media(max-width:640px){.page{padding:16px}.stats-grid,.grid-4,.grid-3,.grid-2,.detail-grid{grid-template-columns:1fr}.tab-row{flex-wrap:wrap}.calendar-grid{grid-template-columns:repeat(7,minmax(96px,1fr));min-width:760px}.calendar-viewport{overflow-x:auto;overscroll-behavior-x:contain}.calendar-cell{min-height:120px}.calendar-controls,.calendar-search-panel{grid-template-columns:1fr}.calendar-search-dates{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-operator-filter,.calendar-operator-filter-button{width:100%}.calendar-operator-menu{left:0;right:auto}.calendar-job{font-size:.68rem;padding:1px}}
