:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--border-strong:#c9c8cd;--code-bg:#f4f3ec;--accent:#15803d;--accent-bg:#15803d1a;--accent-border:#15803d80;--social-bg:#f4f3ec80;--sidebar-bg:#15803d;--sidebar-bg-hover:#ffffff14;--sidebar-bg-active:#ffffff29;--sidebar-text:#ffffffd9;--topbar-bg:#f8f8f8;--zebra-bg:#f4f4f5;--edit-bg:#fdf2f2;--edit-border:#dc262659;--health-good:#16a34a;--health-action:#eab308;--health-risk:#f97316;--health-delinquent:#dc2626;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--border-strong:#454756;--code-bg:#1f2028;--accent:#4ade80;--accent-bg:#4ade8026;--accent-border:#4ade8080;--social-bg:#2f303a80;--zebra-bg:#1c1e26;--edit-bg:#dc262614;--edit-border:#f8717166;--health-good:#4ade80;--health-action:#facc15;--health-risk:#fb923c;--health-delinquent:#f87171;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{min-height:100svh}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px;line-height:1.1}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.app{text-align:left;max-width:640px;margin:0 auto;padding:32px 20px}.app-shell{text-align:left;align-items:stretch;min-height:100svh;display:flex}.sidebar{background:var(--sidebar-bg);width:240px;color:var(--sidebar-text);flex-direction:column;flex-shrink:0;padding:20px 12px;display:flex;position:relative}.sidebar-close{cursor:pointer;background:0 0;border:none;padding:4px;display:none}.menu-toggle{cursor:pointer;color:var(--text-h,#000);background:0 0;border:none;padding:4px;display:none}.app-topbar-left{align-items:center;gap:12px;display:flex}.sidebar-backdrop{display:none}.sidebar-header{border-bottom:1px solid #ffffff26;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:12px;padding:0 12px 20px;display:flex}.sidebar-logo{width:auto;max-width:100%;height:32px}.brand-plate{background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:6px 10px;display:inline-flex}.brand-plate img{max-width:100%;height:auto;display:block}.sidebar-brand{align-self:stretch;margin-bottom:6px}.sidebar-org-name{color:var(--sidebar-text);font-size:13px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-nav button{font:inherit;text-align:left;color:var(--sidebar-text);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;display:flex}.sidebar-nav button:hover{background:var(--sidebar-bg-hover)}.sidebar-nav button.active{background:var(--sidebar-bg-active);color:#fff;font-weight:500}.sidebar-nav-icon{flex-shrink:0}.app-main{flex:1;min-width:0;overflow-y:auto}.app-topbar{background:var(--topbar-bg);border-bottom:1px solid var(--border,#ccc);justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.app-topbar-title{letter-spacing:normal;margin:0;font-size:28px}.app-topbar-user{color:var(--text-muted,#777);align-items:center;gap:12px;font-size:14px;display:flex}.app-content{padding:24px 32px}.app-footer{text-align:center;border-top:1px solid var(--border,#ccc);color:var(--text-muted,#777);background:var(--topbar-bg);margin-top:24px;padding:20px 32px 24px}.app-footer-brand{box-shadow:var(--shadow);margin-bottom:8px}.app-footer-logo{width:220px}.app-footer-copyright{font-size:13px}.property-form{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.property-form input,.property-form select{flex:140px;padding:8px}.property-form .form-field{flex:140px}.property-form .checkbox-field{white-space:nowrap;flex:none}.property-form .checkbox-field input{flex:none;width:16px;height:16px}.time-field{color:var(--text-muted,#777);flex-direction:column;flex:140px;gap:2px;font-size:12px;display:flex}.time-field input{flex:initial;padding:8px}.property-filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.property-filters input{flex:200px;padding:8px}.property-filters select{padding:8px}.property-filters .search-group{flex:200px}.property-filters .search-group input{flex:auto}.search-group{gap:6px;display:flex}.search-group input{flex:auto;min-width:0}.search-group button{flex:none}.primary-button{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:none;border-radius:6px;padding:10px 18px;font-weight:600}.icon-action-button{appearance:none;border:1px solid var(--border,#ccc);background:var(--bg);color:var(--text-h);font:inherit;cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:inline-flex}.icon-action-button:hover{background:var(--zebra-bg);border-color:var(--accent)}.icon-action-button:disabled{opacity:.5;cursor:not-allowed}.icon-action-button-icon{color:var(--accent);flex-shrink:0;width:18px;height:18px}.customers-section-title{margin:0 0 12px}.customers-recent{margin-bottom:44px}.customers-recent-tiles{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.customer-tile{cursor:pointer;border:1px solid var(--border,#ccc);border-top:3px solid var(--accent);background:var(--bg);border-radius:6px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.customer-tile:hover{box-shadow:var(--shadow)}.customer-tile-header{align-items:center;gap:10px;display:flex}.customer-tile-avatar{border:2px solid var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:flex}.customer-tile-avatar-photo{object-fit:cover}.customer-tile-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.customer-tile-health{letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700}.customer-tile-line{color:var(--text-muted,#777);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex;overflow:hidden}.customer-tile-line svg{flex-shrink:0}.invoices-recent{margin-bottom:32px}.invoices-recent-header{justify-content:space-between;align-items:center;display:flex}.invoices-recent-header-controls{align-items:center;gap:8px;display:flex}.invoices-recent-filter{border:1px solid var(--border,#ccc);border-radius:6px;display:flex;overflow:hidden}.invoices-recent-filter-option{appearance:none;background:var(--bg);color:var(--text-muted,#666);font:inherit;cursor:pointer;border:none;padding:5px 12px;font-size:12px;font-weight:600}.invoices-recent-filter-option+.invoices-recent-filter-option{border-left:1px solid var(--border,#ccc)}.invoices-recent-filter-option.active{background:var(--accent);color:#fff}.invoices-recent-toggle{appearance:none;border:1px solid var(--border,#ccc);background:var(--bg);width:28px;height:28px;color:var(--text-muted,#666);cursor:pointer;border-radius:6px;font-size:13px}.invoices-recent-toggle:hover{background:var(--zebra-bg);border-color:var(--accent)}.invoices-recent-tiles{gap:12px;margin-top:12px;padding-bottom:4px;display:flex;overflow-x:auto}.invoices-recent-tiles[hidden]{display:none}.invoice-tile{border:1px solid var(--border,#ccc);border-top:3px solid var(--border,#ccc);background:var(--bg);border-radius:6px;flex-direction:column;flex:0 0 180px;display:flex;overflow:hidden}.invoice-tile-accent-draft{border-top-color:#999}.invoice-tile-accent-sent{border-top-color:#5c8df6}.invoice-tile-accent-viewed,.invoice-tile-accent-partially_paid{border-top-color:#e6a23c}.invoice-tile-accent-paid{border-top-color:#3cb371}.invoice-tile-accent-void{border-top-color:#c0392b}.invoice-tile{font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0}.invoice-tile:hover{box-shadow:var(--shadow);background:var(--bg)}.invoice-tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.invoice-tile-body{flex-direction:column;gap:2px;padding:12px 14px;display:flex}.invoice-tile-number{color:var(--text-muted,#777);font-size:11px}.invoice-tile-customer{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.invoice-tile-date{color:var(--text-muted,#777);margin-bottom:6px;font-size:11px}.invoice-tile-divider{border:none;border-top:1px solid var(--border,#ccc);margin:0 0 6px}.invoice-tile-amount{font-size:15px;font-weight:700}.invoice-tile-status{text-align:center;padding:4px 10px;font-size:12px;font-weight:600}.invoice-tile-status-draft{color:#555;background:#e8e8e8}.invoice-tile-status-sent{color:#1d4ed8;background:#dbe7fd}.invoice-tile-status-viewed,.invoice-tile-status-partially_paid{color:#92400e;background:#fdf1c7}.invoice-tile-status-paid{color:#1f7a3d;background:#d7f0db}.invoice-tile-status-void{color:#991b1b;background:#fbdede}.customers-list-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.list-header-extra{text-align:right;margin:-8px 0 12px;font-size:14px}.customers-list-controls{flex-wrap:wrap;gap:8px;display:flex}.customers-list-controls input{flex:220px;padding:8px}.customers-list-controls select{padding:8px}.customers-list-controls .search-group{flex:220px}.customers-list-controls .search-group input{flex:auto}.pagination{justify-content:center;align-items:center;gap:16px;margin-top:8px;display:flex}.property-list{padding:0;list-style:none}.property-list li{border:1px solid var(--border,#ccc);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:12px 16px;display:flex}.property-list li.entity-edit-card{background:var(--bg);padding:24px;display:block}.property-list li.editing-row{background:var(--bg)}.property-edit-form .form-field{flex:140px}.entity-edit-form{flex-direction:column;gap:16px;width:100%;display:flex}.entity-edit-title{color:var(--text-h);margin:0;font-size:22px}.entity-edit-hint{background:var(--accent-bg,#15803d1a);color:var(--text-muted,#666);border-radius:6px;align-items:center;gap:8px;margin:0;padding:10px 14px;font-size:13px;display:flex}.entity-edit-hint svg{color:var(--accent);flex-shrink:0}.form-field{color:var(--text-muted,#666);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.form-field.form-field input,.form-field.form-field select{flex:initial;font:inherit;border:1px solid var(--border,#ccc);color:var(--text-h);background:var(--bg);border-radius:6px;padding:10px 12px;font-size:15px;font-weight:400}.form-row{flex-wrap:wrap;gap:16px;display:flex}.form-row .form-field{flex:180px}.form-divider{border:none;border-top:1px solid var(--border,#e5e4e7);width:100%;margin:4px 0}.content-divider{border:none;border-top:1px solid var(--border-strong,#c9c8cd);margin:20px 0 32px}.zebra-list li:nth-child(2n){background:var(--zebra-bg)}.field-label{color:var(--accent);font-weight:600}.customer-detail>.link-button{margin-bottom:16px;display:inline-block}.customer-detail-header{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:20px;display:flex}.customer-detail-stats{flex-wrap:wrap;gap:12px;margin-bottom:24px;display:flex}.customer-detail-stat{color:#fff;border-radius:8px;flex-direction:column;flex:120px;padding:14px 12px 12px;display:flex}.customer-detail-stat-inner{flex-direction:column;align-items:center;gap:8px;display:flex}.customer-detail-stat-readout{font-family:var(--mono);letter-spacing:2px;color:#fff;background:#00000059;border-radius:6px;padding:3px 10px;font-size:15px;font-weight:700;box-shadow:inset 0 1px 3px #00000080}.customer-detail-stat span{letter-spacing:.05em;text-transform:uppercase;opacity:.9;font-size:11px;font-weight:600}.customer-detail-table-wrap{border:1px solid var(--border,#ccc);box-shadow:var(--shadow);border-radius:10px;margin-bottom:24px;overflow:hidden}.customer-detail-table{border-collapse:collapse;width:100%}.customer-detail-table th,.customer-detail-table td{text-align:left;border-bottom:1px solid var(--border,#ccc);padding:12px 20px;font-weight:400}.customer-detail-table tr:last-child th,.customer-detail-table tr:last-child td{border-bottom:none}.customer-detail-table th{color:var(--accent);white-space:nowrap;vertical-align:top;width:180px}.customer-avatar{background:var(--accent-bg,#15803d1a);width:48px;height:48px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.customer-avatar-photo{object-fit:cover}.customer-avatar-preview{object-fit:cover;border-radius:50%;flex-shrink:0;width:48px;height:48px}.customer-avatar-initials-preview{background:var(--accent-bg,#15803d1a);width:48px;height:48px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.customer-detail-name{margin:0}.customer-portal-badge{color:var(--accent);background:var(--accent-bg,#15803d1a);border:1px solid var(--accent-border,#15803d80);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500}.customer-detail-section-title{margin:0 0 12px}.customer-detail-properties-header{justify-content:space-between;align-items:center;display:flex}.customer-detail-properties-header .customer-detail-section-title{margin:0}.customer-detail-property{box-shadow:var(--shadow)}.customer-jobs{margin-top:32px}.customer-jobs-filter{margin-bottom:12px}.segmented button.active .customer-jobs-count{color:#fff;background:#ffffff40}.customer-jobs-count{background:var(--zebra-bg);color:var(--text);border-radius:999px;padding:0 6px;font-size:.8em}.customer-jobs-table{border-collapse:collapse;width:100%}.customer-jobs-table th,.customer-jobs-table td{text-align:left;border-bottom:1px solid var(--border,#ccc);padding:10px 16px}.customer-jobs-table th{color:var(--accent);white-space:nowrap;font-weight:500}.customer-jobs-table .num{text-align:right}.customer-jobs-table tbody tr:last-child td{border-bottom:none}.customer-jobs-table tbody tr:nth-child(2n){background:var(--zebra-bg)}.customer-jobs-table tbody tr.clickable{cursor:pointer}.customer-jobs-table tbody tr.clickable:hover,.customer-jobs-table tbody tr.clickable:focus-visible{background:var(--accent-bg);outline:none}:is(.modal-card:has(.customer-job-modal),.modal-card:has(.job-row-modal)){max-width:760px}.customer-job-modal,.job-row-modal{margin:0}.property-list.job-row-modal>li.editing-row,.property-list.job-row-modal>li.entity-edit-card{border:none;padding:0}.quick-create-bar:empty{display:none}.property-list li:has(>.quick-create-bar){flex-direction:column;align-items:stretch}.modal-card:has(.invoice-modal){max-width:760px}.invoice-modal-header{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.modal-discard{background:var(--edit-bg);border:1px solid var(--edit-border);border-radius:6px;margin-bottom:12px;padding:8px 12px}.invoice-locked-hint{font-style:italic}.customer-jobs-status{white-space:nowrap;background:var(--zebra-bg);border-radius:999px;padding:2px 8px;font-size:.85em}.customer-jobs-status-scheduled{background:var(--accent-bg);color:var(--accent)}.customer-jobs-status-in_progress{background:color-mix(in srgb, var(--health-action) 20%, transparent);color:var(--text-h)}.customer-jobs-status-cancelled{text-decoration:line-through}@media (width<=640px){.customer-detail-table-wrap:has(.customer-jobs-table){overflow-x:auto}}.customer-detail-property .address{margin-top:4px}.customer-detail-property .address:first-of-type{margin-top:6px}.address{color:var(--text-muted,#777);font-size:14px}.error{color:#dc143c}.scheduling-conflict{background:#dc143c0f;border:1px solid #dc143c;border-radius:6px;margin-top:8px;padding:10px 14px}.scheduling-conflict p{margin:0 0 6px;font-weight:600}.scheduling-conflict ul{margin:0 0 10px;padding-left:20px}.app-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.app-header div{align-items:center;gap:12px;display:flex}.auth-page{text-align:left;flex-direction:column;gap:20px;max-width:320px;margin:80px auto 0;padding:0 20px;display:flex}.auth-page h1{letter-spacing:-.3px;white-space:nowrap;margin:0;font-size:30px}.auth-page h1.auth-brand{white-space:normal}.auth-brand .brand-plate{box-sizing:border-box;width:100%;box-shadow:var(--shadow);padding:12px 14px}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form input{padding:8px}.link-button{color:var(--accent,#5c8df6);cursor:pointer;text-align:left;background:0 0;border:none;padding:4px 0}.property-list li.clickable{cursor:pointer}.property-list li.clickable:hover{border-color:var(--accent,#5c8df6)}.service-request-form{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.service-request-form input{flex:160px;padding:8px}.service-request-list{padding:0;list-style:none}.service-request-list li{border:1px solid var(--border,#ccc);border-radius:6px;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px 16px;display:flex}.service-request-main p{color:var(--text-muted,#777);margin:4px 0 0;font-size:14px}.service-request-controls{flex-shrink:0;gap:8px;display:flex}.property-row-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.property-edit-form{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.property-edit-form input,.property-edit-form select{flex:120px;padding:8px}.property-edit-form .checkbox-field{white-space:nowrap;flex:none}.property-edit-form .checkbox-field input{flex:none;width:16px;height:16px}.job-create-form{flex-direction:column;gap:4px;width:100%;display:flex}.collapsible-section{border:1px solid var(--border);border-radius:8px;overflow:hidden}.collapsible-section-toggle{background:var(--code-bg);width:100%;font:inherit;color:var(--text-h);cursor:pointer;border:none;justify-content:space-between;align-items:center;padding:10px 14px;font-weight:600;display:flex}.collapsible-section.open .collapsible-section-toggle{border-bottom:1px solid var(--border)}.collapsible-section-chevron{color:var(--accent)}.collapsible-section-body{flex-wrap:wrap;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.collapsible-section-body[hidden]{display:none}.collapsible-section-body input,.collapsible-section-body select{flex:160px;padding:8px}.collapsible-section-body .form-field{flex:160px}.collapsible-section-body .checkbox-field{white-space:nowrap;flex:none}.field-with-hint{flex-direction:column;flex:160px;gap:4px;display:flex}.field-with-hint input{flex:initial;box-sizing:border-box;width:100%}.field-hint{color:var(--text-muted,#666);font-size:12px}.collapsible-section-body .checkbox-field input{flex:none;width:16px;height:16px}.jobs-page-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.modal-card:has(.job-create-form){max-width:1000px}.modal-card .collapsible-section-body input,.modal-card .collapsible-section-body select,.modal-card .collapsible-section-body .form-field{box-sizing:border-box;min-width:0}.job-quick-create-modal{background:var(--bg);border:1px solid var(--accent-border,#15803d80);box-shadow:var(--shadow);border-radius:8px;width:100%;max-width:360px;padding:20px}.job-quick-create-modal h3{margin:0 0 12px}.jobs-view-toggle{border-bottom:2px dashed var(--border);flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.jobs-view-toggle button{appearance:none;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;border-radius:6px 6px 0 0;align-items:center;gap:6px;margin-bottom:-2px;padding:8px 14px;font-size:14px;font-weight:600;display:inline-flex}.jobs-view-toggle button:hover{color:var(--text-h);background:var(--zebra-bg)}.jobs-view-toggle button.active{color:var(--accent);border-bottom-color:var(--accent)}.jobs-view-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.jobs-view-toggle-icon{width:15px;height:15px;color:var(--accent)}.segmented{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{appearance:none;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.segmented button+button{border-left:1px solid var(--border)}.segmented button:hover{background:var(--zebra-bg);color:var(--text-h)}.segmented button.active{background:var(--accent);color:#fff}.segmented button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.jobs-schedule-mode-toggle{margin-bottom:12px}.property-list li.job-row{padding:0;display:block;overflow:hidden}.job-summary{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:10px 12px;display:flex}:is(.activity-feed li:has(>.activity-feed-item),.drill-down-list li:has(>.drill-down-item)){padding:0}.activity-feed-item,.drill-down-item{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:12px;padding:12px 16px;display:flex}.activity-feed-item:hover,.drill-down-item:hover{background:var(--accent-bg,#eef2ff)}.activity-feed-item:focus-visible,.drill-down-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.activity-feed-item-text,.drill-down-item-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.recurring-job-summary{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px;display:flex}.recurring-job-summary:hover{background:var(--accent-bg,#eef2ff)}.recurring-job-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.recurring-job-summary-main{flex:1;min-width:0}.recurring-job-summary-main>*{display:block}.recurring-job-summary-assignees{color:var(--text-muted,#777);flex-shrink:0;font-size:13px}.job-summary:hover{background:var(--accent-bg,#eef2ff)}.job-summary-time{color:var(--text-muted,#777);flex-shrink:0;font-size:13px}.job-summary-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.job-summary-chevron{color:var(--text-muted,#777);flex-shrink:0}.job-summary-dates{padding:0 12px 8px;font-size:13px}.job-status-dot{background:var(--text-muted,#999);border-radius:50%;flex-shrink:0;width:8px;height:8px}.job-status-scheduled{background:var(--accent,#5c8df6)}.job-status-in_progress{background:#e6a23c}.job-status-completed{background:#3cb371}.job-status-cancelled{background:#c0392b}.job-details{border-top:1px solid var(--border,#eee);padding:0 12px 12px}.job-details .address:first-child{margin-top:10px}.job-details .property-row-actions{margin-top:8px}.job-recurring-badge{color:var(--accent,#5c8df6);border:1px solid var(--accent-border,#b7c9f7);border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:12px}.job-invoice-badge{--c:#6b7280;background:color-mix(in srgb, var(--c) var(--tint-badge), var(--bg));color:color-mix(in srgb, var(--c) 85%, var(--text-h));white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 10px;font-size:12px;font-weight:600}.job-invoice-sent{--c:#2563eb}.job-invoice-ready_to_invoice,.job-invoice-viewed,.job-invoice-partially_paid{--c:#d97706}.job-invoice-invoiced,.job-invoice-accepted,.job-invoice-converted,.job-invoice-paid{--c:#16a34a}.job-invoice-declined,.job-invoice-void{--c:#dc2626}.estimate-line-items{flex-direction:column;gap:8px;margin:12px 0;display:flex}.estimate-line-item{border:1px solid var(--border,#ccc);border-radius:6px;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:8px;display:flex}.line-field{flex-direction:column;flex:100px;gap:3px;min-width:90px;display:flex}.line-field-description{flex:2 180px}.line-field-qty,.line-field-tax{flex:0 80px;min-width:70px}.line-field-amount{flex:none;align-items:flex-end}.line-field-label{color:var(--text);font-size:12px;font-weight:600}.line-field input,.line-field select{box-sizing:border-box;width:100%;min-width:0}.line-field .unit-picker{flex-wrap:nowrap}.line-field .unit-picker input{flex:1;width:auto}.estimate-line-item>.checkbox-field{padding-bottom:4px}.estimate-line-total{text-align:right;flex-shrink:0;min-width:70px;font-weight:600}.estimate-totals-summary{border-top:1px solid var(--border,#eee);flex-direction:column;align-items:flex-end;gap:4px;margin-top:8px;padding-top:8px;display:flex}.estimate-grand-total{font-size:16px;font-weight:700}.invoice-sheet{border:1px solid var(--border);background:var(--bg);color:var(--text-h);text-align:left;--sheet-accent:var(--brand-accent,var(--sheet-accent));border-radius:10px;margin:12px 0;padding:24px}@media (prefers-color-scheme:dark){.invoice-sheet.branded{--sheet-accent:color-mix(in srgb, var(--brand-accent) 55%, white)}}.invoice-sheet-letterhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 32px;margin-bottom:24px;display:flex}.invoice-sheet-letterhead.banded{border-radius:9px 9px 0 0;align-items:center;margin:-24px -24px 24px;padding:20px 24px}.invoice-sheet-letterhead.banded .invoice-sheet-company,.invoice-sheet-letterhead.banded .invoice-sheet-company a{color:#ffffffd1}.invoice-sheet-letterhead.banded .invoice-sheet-company strong,.invoice-sheet-letterhead.banded .invoice-sheet-logo-name,.invoice-sheet-letterhead.banded .invoice-sheet-company a:hover{color:#fff}.invoice-sheet-logo img{object-fit:contain;max-width:240px;max-height:96px;display:block}.invoice-sheet-logo-name{font-size:22px;font-weight:700}.invoice-sheet-company{color:var(--text);text-align:right;flex-direction:column;align-items:flex-end;gap:1px;font-size:14px;font-style:normal;display:flex}.invoice-sheet-company strong{color:var(--text-h);font-size:15px}.invoice-sheet-company a{color:inherit;text-decoration:none}.invoice-sheet-company a:hover{color:var(--sheet-accent);text-decoration:underline}.invoice-sheet-banner{border-radius:6px;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin-bottom:20px;padding:8px 14px;font-size:14px;display:flex}.invoice-sheet-banner-paid{color:var(--health-good);background:#16a34a1f}.invoice-sheet-banner-partially_paid{color:#a16207;background:#eab30824}.invoice-sheet-banner-void{color:var(--health-delinquent);background:#dc26261a}.invoice-sheet-banner-draft{background:var(--zebra-bg);color:var(--text)}.invoice-sheet-summary{grid-template-columns:1.4fr 1fr 1fr 1.4fr;gap:16px;margin-bottom:24px;display:grid}.invoice-sheet-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;font-size:11px;font-weight:600}.invoice-sheet-label-spaced{margin-top:12px}.invoice-sheet-strong{font-weight:600}.invoice-sheet-muted{color:var(--text);white-space:nowrap}.invoice-sheet-nowrap{white-space:nowrap}.invoice-sheet-amount-due{text-align:right}.invoice-sheet-amount{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1.1}.invoice-sheet-table{border-collapse:collapse;border-top:3px solid var(--accent);font-variant-numeric:tabular-nums;width:100%}.invoice-sheet-table th{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);text-align:left;padding:10px 8px 8px 0;font-size:11px;font-weight:600}.invoice-sheet-table td{color:var(--text-h);border-bottom:1px solid var(--border);vertical-align:top;padding:10px 8px 10px 0}.invoice-sheet-table .num{text-align:right;white-space:nowrap}.invoice-sheet-table th:last-child,.invoice-sheet-table td:last-child{padding-right:0}.invoice-sheet-totals{font-variant-numeric:tabular-nums;grid-template-columns:auto max-content;row-gap:6px;width:min(100%,320px);margin:16px 0 0 auto;display:grid}.invoice-sheet-totals dt{text-align:right}.invoice-sheet-totals dd{text-align:right;margin:0;padding-left:32px}.invoice-sheet-totals-rule{border-top:1px solid var(--border);padding-top:8px}.invoice-sheet-totals-due{border-top:3px double var(--border-strong);padding-top:8px;font-size:17px;font-weight:700}dt.invoice-sheet-totals-due{color:var(--accent)}.invoice-sheet-section{margin-top:20px}.invoice-sheet-section p{margin:0}.invoice-sheet-payments{margin:0;padding:0;list-style:none}.invoice-sheet-payments li{font-variant-numeric:tabular-nums;justify-content:space-between;gap:16px;padding:4px 0;display:flex}.invoice-sheet-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}@media (width<=640px){.invoice-sheet{padding:16px}.invoice-sheet-letterhead.banded{margin:-16px -16px 20px;padding:16px}.invoice-sheet-summary{grid-template-columns:1fr 1fr}.invoice-sheet-amount-due{text-align:left}.invoice-sheet-company{text-align:left;align-items:flex-start}}.invoice-download-button{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.invoice-download-button:hover{background:var(--accent);color:#fff}.invoice-download-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.invoice-download-button{transition:none}}.admin-suspended-badge{color:#c0392b;border:1px solid #e3a8a0;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px}.admin-superadmin-badge{color:var(--accent,#5c8df6);border:1px solid var(--accent-border,#b7c9f7);border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px}.admin-page{flex-direction:column;gap:32px;display:flex}.admin-security-section h3{margin:0 0 4px}.admin-staff-panel{background:var(--accent-bg,#f4f6fb);border-style:dashed}.admin-staff-panel .property-list,.admin-staff-panel .property-list li:last-child{margin-bottom:0}.weekday-picker{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.weekday-picker label{align-items:center;gap:4px;display:flex}.brand{align-items:center;gap:12px;display:flex}.org-logo{width:auto;max-width:100%;height:40px}.org-name{color:var(--text-muted,#777);font-size:14px}.company-mode-toggle{flex-direction:column;gap:4px;font-size:14px;display:flex}.settings-page{align-items:flex-start;gap:32px;display:flex}.settings-nav{flex-direction:column;flex:0 0 200px;gap:2px;display:flex;position:sticky;top:16px}.settings-nav button{text-align:left;font:inherit;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 12px}.settings-nav button:hover{background:var(--zebra-bg)}.settings-nav button.active{background:var(--accent);color:#fff;font-weight:600}.settings-content{flex-direction:column;flex:1;gap:24px;min-width:0;display:flex}.settings-card{border:1px solid var(--border,#ccc);border-radius:6px;padding:16px}.settings-content>.settings-card:nth-child(2n){background:var(--zebra-bg)}.settings-card h3{margin:0 0 12px}.logo-row{align-items:center;gap:12px;margin-top:12px;display:flex}.logo-preview{border-radius:4px;width:auto;max-width:100%;height:48px}.property-photos{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.property-photo{flex-direction:column;align-items:center;gap:6px;display:flex}.property-photo img{object-fit:cover;border:1px solid var(--border,#ccc);border-radius:6px;width:120px;height:120px}.job-photos-section{flex-direction:column;gap:14px;margin:10px 0;display:flex}.property-zone-map-tile{flex-direction:column;gap:10px;margin:10px 0 20px;display:flex}.property-zone-map-canvas{border:1px solid var(--border,#ccc);border-radius:6px;width:100%;height:420px}.route-map-canvas{border:1px solid var(--border,#ccc);border-radius:6px;width:100%;height:420px;margin:10px 0}.route-stop-draggable{cursor:grab}.route-stop-draggable:active{cursor:grabbing}.route-address-preview{overflow-wrap:break-word}.property-zone-color-dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.property-tile{border:1px solid var(--border,#ccc);background:var(--bg);border-radius:6px;flex-direction:column;gap:8px;margin-bottom:20px;padding:16px 20px;display:flex}.property-tile>p{margin:0}.property-detail-layout{align-items:flex-start;gap:24px;display:flex}.property-detail-main{flex:1 1 0;min-width:0}.property-detail-side{flex:0 0 360px;position:sticky;top:20px}.property-map-tile{padding:12px}.property-map-title{margin:0 0 10px}.property-map-frame{border:0;border-radius:6px;width:100%;height:320px;display:block}@media (width<=768px){.property-detail-layout{flex-direction:column}.property-detail-side{flex-basis:auto;width:100%;position:static}}.property-tile.entity-edit-card{background:var(--bg);padding:24px}.characteristics-checkboxes{flex-wrap:wrap;gap:20px;display:flex}.checkbox-field{color:var(--text-h);cursor:pointer;align-items:center;gap:6px;font-size:14px;font-weight:500;display:flex}.checkbox-field input{cursor:pointer;width:16px;height:16px}.characteristics-checkmarks{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.checkmark-badge{border:1px solid var(--border,#ccc);color:var(--text-muted,#777);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:13px;display:inline-flex}.checkmark-badge.is-set{color:var(--accent);border-color:var(--accent-border);background:var(--accent-bg);font-weight:600}.join-code-row{align-items:center;gap:8px;margin-top:8px;display:flex}.join-code-row code{background:var(--code-bg,#f4f3ec);border-radius:4px;padding:4px 8px;font-size:16px}@media (width<=768px){.sidebar{z-index:100;box-shadow:var(--shadow);transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{color:#fff;display:inline-flex;position:absolute;top:16px;right:12px}.menu-toggle{display:inline-flex}.sidebar-backdrop{z-index:99;background:#0006;display:block;position:fixed;inset:0}.app-topbar{padding:16px 20px}.app-topbar-title{font-size:22px}.app-topbar-user span{display:none}.app-content{padding:16px 20px}.settings-page{flex-direction:column}.settings-nav{flex-flow:wrap;width:100%;position:static}}.jobs-calendar{margin-top:12px}.jobs-calendar-months{flex-wrap:wrap;gap:16px;margin:16px 0;display:flex}.jobs-calendar-month-card{border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);border-radius:10px;padding:12px 14px}.jobs-calendar-month{border-collapse:collapse;font-size:13px}.jobs-calendar-month caption{text-align:left;color:var(--text-h);margin-bottom:8px;font-size:15px;font-weight:600}.jobs-calendar-month th{color:var(--text-muted,#777);padding:4px 6px;font-weight:500}.jobs-calendar-month td{text-align:center;padding:2px}.jobs-calendar-day{width:34px;height:38px;color:var(--text-h);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px}.jobs-calendar-day:hover{border-color:var(--accent,#5c8df6);background:var(--zebra-bg)}.jobs-calendar-day{position:relative;overflow:hidden}.jobs-calendar-half{height:50%;position:absolute;left:0;right:0}.jobs-calendar-morning{top:0}.jobs-calendar-afternoon{bottom:0}.jobs-calendar-day-booked{border-color:var(--border)}.jobs-calendar-day-booked .jobs-calendar-afternoon{border-top:1px solid color-mix(in srgb, var(--text-h) 25%, transparent)}.jobs-calendar-day-number{position:relative}.jobs-calendar-day-booked .jobs-calendar-day-number{background:color-mix(in srgb, var(--bg) 85%, transparent);border-radius:6px;padding:0 4px;font-weight:600}.jobs-calendar-day:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.jobs-calendar-day-today{position:relative}.jobs-calendar-day-today:after{content:"";z-index:1;background:var(--accent);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.jobs-calendar-day-selected{box-shadow:0 0 0 2px var(--accent);border-color:var(--accent)}.jobs-calendar-legend{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:24px;display:flex}.jobs-calendar-legend-item{color:var(--text-muted,#666);align-items:center;gap:6px;font-size:13px;display:flex}.jobs-calendar-swatch{border:1px solid var(--border,#e5e4e7);border-radius:4px;width:14px;height:14px;display:inline-block}.jobs-calendar-swatch-halves{flex-direction:column;display:inline-flex;overflow:hidden}.jobs-calendar-swatch-halves span{background:var(--accent);flex:1}.jobs-calendar-swatch-halves span+span{border-top:1px solid var(--bg);background:var(--zebra-bg)}.schedule-day-panel{border-top:2px dashed var(--border);margin-top:20px;padding-top:16px}.schedule-day-panel-header{align-items:center;gap:8px;margin-bottom:12px;display:flex}.schedule-day-panel-header h3{margin:0;font-size:17px}.schedule-day-panel-icon{width:18px;height:18px;color:var(--accent);flex:none}.week-view{margin-top:12px}.week-view-month-title{margin:12px 0 0;font-size:17px}.week-view-body{grid-template-columns:minmax(0,1fr) 195px;align-items:start;gap:16px;margin-top:16px;display:grid}@media (width<=900px){.week-view-body{grid-template-columns:1fr}}.week-view-days{grid-template-columns:repeat(7,minmax(110px,1fr));gap:10px;display:grid;overflow-x:auto}.week-view-days-day{grid-template-columns:1fr}.week-view-days-day .week-day-column{min-height:240px}.week-day-column{border:1px solid var(--border,#e5e4e7);background:var(--bg);border-radius:6px;min-width:0;min-height:160px;padding:8px}.week-day-column-blank{background:0 0;border:none;min-height:0}.week-day-column .job-details,.unscheduled-sidebar .job-details{background:var(--bg);color:var(--text-h);border-top:1px solid var(--border,#eee);padding:6px}.week-day-column .job-summary,.unscheduled-sidebar .job-summary{flex-wrap:wrap;gap:4px;padding:4px 6px}.week-day-column .job-number,.unscheduled-sidebar .job-number,.week-day-column .job-summary-title,.unscheduled-sidebar .job-summary-title{font-size:11px;font-weight:600}.week-day-column .job-summary-title,.unscheduled-sidebar .job-summary-title{white-space:normal;flex-basis:100%;line-height:1.25}.week-day-column .job-summary-property,.unscheduled-sidebar .job-summary-property{color:inherit;font-size:11px}.week-day-column .job-summary-time,.unscheduled-sidebar .job-summary-time{white-space:normal;color:inherit;flex-shrink:1;font-size:11px}.week-day-column .job-status-dot,.unscheduled-sidebar .job-status-dot,.week-day-column .job-number,.unscheduled-sidebar .job-number,.week-day-column .job-invoice-badge,.unscheduled-sidebar .job-invoice-badge,.week-day-column .job-recurring-badge,.unscheduled-sidebar .job-recurring-badge,.week-day-column .job-summary-dates,.unscheduled-sidebar .job-summary-dates{display:none}:is(.week-day-column li.job-row:has(.job-summary[aria-expanded=true]) .job-status-dot,.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true]) .job-status-dot,.week-day-column li.job-row:has(.job-summary[aria-expanded=true]) .job-number,.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true]) .job-number,.week-day-column li.job-row:has(.job-summary[aria-expanded=true]) .job-invoice-badge,.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true]) .job-invoice-badge,.week-day-column li.job-row:has(.job-summary[aria-expanded=true]) .job-recurring-badge,.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true]) .job-recurring-badge,.week-day-column li.job-row:has(.job-summary[aria-expanded=true]) .job-summary-dates,.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true]) .job-summary-dates){display:revert}:is(.week-day-column li.job-row:has(.job-summary[aria-expanded=true]),.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true])){background:var(--bg)!important;color:var(--text-h)!important}:is(.week-day-column li.job-row:has(.job-summary[aria-expanded=true]) .job-recurring-badge,.unscheduled-sidebar li.job-row:has(.job-summary[aria-expanded=true]) .job-recurring-badge){color:var(--accent,#5c8df6);border-color:var(--accent-border,#b7c9f7)}.week-day-column .job-details *,.unscheduled-sidebar .job-details *,.week-day-column .editing-row *,.unscheduled-sidebar .editing-row *{font-size:11px}.week-day-column .editing-row .form-field input,.week-day-column .editing-row .form-field select,.unscheduled-sidebar .editing-row .form-field input,.unscheduled-sidebar .editing-row .form-field select{box-sizing:border-box;width:100%;min-width:90px;padding:4px 6px;font-size:11px}.week-day-column .editing-row .collapsible-section-toggle,.unscheduled-sidebar .editing-row .collapsible-section-toggle{padding:6px 8px}.week-day-column .editing-row .job-create-form,.unscheduled-sidebar .editing-row .job-create-form,.week-day-column .editing-row .form-field,.unscheduled-sidebar .editing-row .form-field,.week-day-column .editing-row .collapsible-section-body,.unscheduled-sidebar .editing-row .collapsible-section-body{box-sizing:border-box;gap:3px;width:100%;min-width:0}.week-day-column .editing-row .property-row-actions button,.unscheduled-sidebar .editing-row .property-row-actions button{padding:4px 8px}.week-day-column-today{border-color:var(--accent)}.week-day-column.drag-over{background:var(--accent-bg,#eef2ff);border-color:var(--accent,#5c8df6);border-style:dashed}.week-day-column-header{color:var(--text-h);justify-content:space-between;margin-bottom:4px;font-size:11px;font-weight:600;display:flex}.week-day-column-empty{margin:4px 0 0;font-size:10px}.week-day-column .property-list,.unscheduled-sidebar .property-list{margin:0}.week-day-column .property-list li.job-row,.unscheduled-sidebar .property-list li.job-row{margin-bottom:2px}.week-day-column .job-summary:hover,.unscheduled-sidebar .job-summary:hover{background:#00000014}.week-day-column .job-recurring-badge,.unscheduled-sidebar .job-recurring-badge{color:inherit;border-color:currentColor}.week-day-column .job-summary-chevron,.unscheduled-sidebar .job-summary-chevron{color:inherit}.unscheduled-sidebar{border:2px solid var(--text-h,#08060d);background:var(--bg);border-radius:6px;padding:10px}.unscheduled-sidebar h3{margin:0 0 8px;font-size:13px;font-weight:700}.unscheduled-sidebar-create{margin-bottom:10px}.unscheduled-sidebar-create .job-create-form textarea{resize:vertical;min-height:60px}.unscheduled-sidebar-create>.primary-button{width:100%;padding:6px 10px;font-size:12px;font-weight:600}.job-row-draggable .job-summary{cursor:grab}.job-row-draggable:active .job-summary{cursor:grabbing}.modal-backdrop{z-index:200;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg);border:1px solid var(--accent-border,#15803d80);box-shadow:var(--shadow);border-radius:8px;width:100%;max-width:420px;max-height:calc(100vh - 40px);padding:20px;overflow-y:auto}.modal-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.modal-card-header h3{margin:0}.modal-close-button{color:var(--text-muted,#777);cursor:pointer;background:0 0;border:none;flex:none;padding:2px 8px;font-size:20px;line-height:1}.modal-close-button:hover{color:var(--text-h)}.modal-form{flex-direction:column;gap:10px;display:flex}.modal-form .time-field{flex:initial}.modal-form input,.modal-form select{border:1px solid var(--border,#ccc);font:inherit;color:var(--text-h);background:var(--bg);border-radius:6px;padding:10px 12px}.week-drop-confirm{border:1px solid var(--accent-border,#15803d80);background:var(--bg);box-shadow:var(--shadow);border-radius:8px;width:100%;max-width:360px;margin:0;padding:20px}.week-drop-confirm p{margin:0 0 12px}.week-drop-confirm .form-field{margin-bottom:12px}.job-calendar-colors-form{flex-wrap:wrap;align-items:flex-end;gap:20px;display:flex}.job-type-color-row{flex-direction:column;gap:6px;display:flex}.job-type-color-row input:not([type=color]){font:inherit;border:1px solid var(--border,#ccc);color:var(--text-h);background:var(--bg);border-radius:6px;width:160px;padding:8px 10px;font-size:15px}.job-calendar-colors-form input[type=color]{border:1px solid var(--border,#ccc);background:var(--bg);cursor:pointer;border-radius:6px;width:48px;height:32px;padding:2px}.dashboard-greeting h2{margin:0 0 4px}.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:20px 0;display:grid}.dashboard-kpi-card{border:1px solid var(--border,#ccc);border-top:3px solid var(--accent);background:var(--bg);border-radius:8px;padding:16px}button.dashboard-kpi-card{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:box-shadow .15s,transform .15s;display:block}button.dashboard-kpi-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}button.dashboard-kpi-card:focus-visible{outline:2px solid var(--kpi-accent,var(--accent));outline-offset:2px}.dashboard-kpi-card>span{display:block}@media (prefers-reduced-motion:reduce){button.dashboard-kpi-card{transition:none}button.dashboard-kpi-card:hover{transform:none}}.drill-down-group h4{margin:12px 0 8px}.drill-down-footer{justify-content:flex-end;margin-top:12px;display:flex}.modal-card:has(.drill-down){max-width:620px}.dashboard-kpi-icon{width:22px;height:22px;color:var(--kpi-accent,var(--accent));margin-bottom:8px}.dashboard-kpi-value{color:var(--kpi-accent,var(--text-h));font-size:28px;font-weight:700}.dashboard-kpi-label{color:var(--text-muted,#666);margin-top:4px;font-size:13px}.dashboard-card-schedule{border-top:3px solid #5c8df6}.dashboard-card-routes{border-top:3px solid var(--sand)}.dashboard-card-activity{border-top:3px solid #e6a23c}.dashboard-card-actions{border-top:3px solid #3cb371}.dashboard-row{grid-template-columns:1fr 1fr;align-items:start;gap:16px;margin-bottom:16px;display:grid}.dashboard-sections{grid-template-columns:2fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.dashboard-row,.dashboard-sections{grid-template-columns:1fr}}.dashboard-status-pill{white-space:nowrap;border:1px solid var(--border,#ccc);color:var(--text-muted,#777);border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:12px}.dashboard-status-scheduled{color:var(--accent,#5c8df6);border-color:var(--accent,#5c8df6)}.dashboard-status-in_progress{color:#e6a23c;border-color:#e6a23c}.dashboard-status-completed{color:#3cb371;border-color:#3cb371}.dashboard-status-cancelled{color:#c0392b;border-color:#c0392b}.dashboard-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dashboard-section-header h3{margin:0}.dashboard-quick-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.dashboard-quick-action{appearance:none;border:1px solid var(--border,#ccc);background:var(--bg);color:var(--text-h);font:inherit;text-align:center;cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;font-size:13px;display:flex}.dashboard-quick-action:hover{background:var(--zebra-bg);border-color:var(--accent)}.dashboard-quick-action-icon{color:var(--accent);width:26px;height:26px}.beta-badge{background:var(--sand-tint);color:var(--sand-deep);letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.sidebar-beta-badge{color:#fff;background:#ffffff38;margin-left:auto}.routing-page,.routing-planner,.routing-board,.routing-template-detail,.my-route{text-align:left;flex-direction:column;gap:16px;display:flex}.routing-page-header{flex-direction:column;gap:12px;display:flex}.routing-page-header p{margin:0}.routing-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.routing-tabs button{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:8px 14px;font-weight:600}.routing-tabs button.active{border-bottom-color:var(--accent);color:var(--text-h)}.routing-planner-split{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:16px;display:grid}.routing-planner-map{flex-direction:column;gap:8px;display:flex;position:sticky;top:12px}.routing-planner-list{flex-direction:column;gap:10px;min-width:0;display:flex}.routing-filters{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.routing-filters input,.routing-filters select{min-width:0;padding:8px}.routing-filters input{grid-column:1/-1}.routing-list-toolbar{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.routing-list-toolbar .form-field{flex-direction:row;align-items:center;gap:8px}.routing-job-list{border:1px solid var(--border);border-radius:8px;max-height:560px;margin:0;padding:0;list-style:none;overflow-y:auto}.routing-job-list li+li{border-top:1px solid var(--border)}.routing-job-list label{cursor:pointer;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.routing-job-list li.selected{background:var(--accent-bg)}.routing-job-list input[type=checkbox]{margin-top:3px}.routing-dot{vertical-align:baseline;border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:5px;display:inline-block}.routing-legend .routing-dot{margin:0 4px 0 0}.routing-job-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.routing-job-text .address{margin:0}.routing-chip-row{flex-wrap:wrap;gap:4px;display:flex}.routing-chip{border:1px solid var(--border);color:var(--text);border-radius:999px;padding:1px 8px;font-size:12px}.routing-map{position:relative}.routing-map-canvas{border:1px solid var(--border);border-radius:8px;width:100%;height:480px}.routing-map-select{z-index:1;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-h);font:inherit;box-shadow:var(--shadow);cursor:pointer;border-radius:6px;padding:6px 12px;font-weight:600;position:absolute;top:10px;left:10px}.routing-map-unavailable{border:1px dashed var(--border-strong);text-align:center;border-radius:8px;padding:24px}.routing-legend{flex-wrap:wrap;gap:4px 14px;margin:0;display:flex}.routing-options-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 20px;margin-bottom:12px;display:grid}.routing-options-grid fieldset{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.routing-options-grid legend{color:var(--text-h);margin-bottom:6px;font-weight:700}.routing-options-grid .address{margin:0}.routing-success{color:var(--health-good);margin:8px 0 0;font-weight:600}.routing-compare{border-collapse:collapse;font-variant-numeric:tabular-nums}.routing-compare th,.routing-compare td{border-bottom:1px solid var(--border);text-align:left;padding:6px 16px 6px 0}.routing-compare thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--text);font-size:12px}.routing-compare td.better{color:var(--health-good);font-weight:700}.routing-plan{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:16px;display:grid}.routing-plan .routing-save{grid-column:1/-1}.routing-plan-group{border-top:4px solid var(--accent)}.routing-plan-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.routing-plan-header input,.routing-plan-header select{flex:140px;min-width:0;padding:6px 8px}.routing-plan-header input{font-weight:700}.routing-plan-totals{font-variant-numeric:tabular-nums;margin:8px 0}.routing-stop-list{margin:0;padding:0;list-style:none}.routing-stop-list li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.routing-stop-editable{align-items:flex-start!important}.routing-stop-editable input{margin-top:4px;padding:6px 8px}.routing-stop-number{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.routing-stop-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:6px;display:flex}.routing-stop-actions select{max-width:130px}.routing-lock{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.routing-lock.locked{color:#b45309;background:#f59e0b26;border-color:#b45309;font-weight:700}.routing-unassigned{border-top-color:#f97316}.routing-template-heading{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.routing-title-input{flex:260px;padding:6px 8px;font-size:20px;font-weight:700}.routing-status{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.routing-status-active{color:var(--health-good);background:#16a34a24}.routing-status-inactive{background:var(--zebra-bg);color:var(--text)}.routing-status-archived{color:var(--text);background:#6b728029;text-decoration:line-through}.routing-preview{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:8px;margin-top:12px;padding:12px}.routing-preview p{margin:0 0 8px}.routing-save-row{margin-top:12px}.routing-run-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.routing-run-history{margin:0;padding:0;list-style:none}.routing-run-history li{flex-wrap:wrap;gap:4px 12px;padding:4px 0;display:flex}.routing-template-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.routing-template-card{border:1px solid var(--border);background:var(--bg);width:100%;height:100%;color:var(--text-h);font:inherit;text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:14px;transition:box-shadow .15s,border-color .15s;display:flex}.routing-template-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.routing-template-card .address{margin:0}.routing-template-card-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.routing-progress{background:var(--zebra-bg);border-radius:999px;height:6px;margin-bottom:8px;overflow:hidden}.routing-progress span{height:100%;display:block}.routing-stop-status{background:var(--zebra-bg);color:var(--text);white-space:nowrap;border-radius:999px;flex-shrink:0;margin-left:auto;padding:2px 8px;font-size:12px;font-weight:600}.routing-stop-status.active{color:#2563eb;background:#2563eb24}.routing-stop-status.done{color:var(--health-good);background:#16a34a24}.routing-viewing-note{border-left:3px solid var(--sand);background:color-mix(in srgb, var(--sand) 10%, var(--bg));color:var(--text-h);border-radius:4px;margin:0;padding:8px 12px}.my-route-group-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text);margin:8px 0 0;font-size:13px}.my-route-run.collapsible{border:1px solid var(--border);background:var(--bg);border-radius:10px}.my-route-run.collapsible .my-route-stops{margin:0;padding:0 12px 12px}.my-route-run-toggle{width:100%;color:var(--text-h);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.my-route-run-toggle>span:first-child{flex-direction:column;gap:2px;display:flex}.my-route-run-toggle .address{margin:0}.my-route-run-chevron{color:var(--text);font-size:18px}.my-route-run h2{margin:0}.my-route-stops{flex-direction:column;gap:12px;margin:12px 0 0;padding:0;list-style:none;display:flex}.my-route-stop{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.my-route-stop.next{border:2px solid var(--accent);box-shadow:var(--shadow)}.my-route-stop.done{opacity:.65}.my-route-stop-head{align-items:flex-start;gap:10px;display:flex}.my-route-details{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;font-size:14px;display:grid}.my-route-details dt{color:var(--text);font-weight:600}.my-route-details dd{color:var(--text-h);margin:0}.my-route-code{font-family:var(--mono);letter-spacing:.08em;font-size:16px;font-weight:700}.my-route-actions{flex-wrap:wrap;gap:8px;display:flex}.my-route-actions>*{flex:140px;justify-content:center;min-height:44px;text-decoration:none}@media (width<=900px){.routing-planner-split{grid-template-columns:1fr}.routing-planner-map{order:-1;position:static}.routing-map-canvas{height:340px}}@media (width<=640px){.routing-plan,.my-route-details{grid-template-columns:1fr}.my-route-details dd+dt{margin-top:6px}}@media (prefers-reduced-motion:reduce){.routing-template-card{transition:none}}@media (width<=768px){input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea{font-size:16px}.app-content input,.app-content select,.app-content textarea,.modal-backdrop input,.modal-backdrop select,.modal-backdrop textarea{min-width:0;max-width:100%}.jobs-view-toggle,.routing-tabs,.settings-nav,.segmented{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;max-width:100%;overflow-x:auto}.jobs-view-toggle::-webkit-scrollbar{display:none}.routing-tabs::-webkit-scrollbar{display:none}.settings-nav::-webkit-scrollbar{display:none}.segmented::-webkit-scrollbar{display:none}.jobs-view-toggle button,.routing-tabs button,.settings-nav button,.segmented button{white-space:nowrap;flex:none}.settings-page{align-items:stretch;gap:16px}.logo-row,.join-code-row{flex-wrap:wrap}.join-code-row code{overflow-wrap:anywhere;min-width:0}.settings-nav{border-bottom:1px solid var(--border);flex:none;gap:4px;padding-bottom:6px}.menu-toggle,.sidebar-close{justify-content:center;align-items:center;min-width:44px;min-height:44px}.app-topbar-user button,.app-content button:not(.link-button):not(.jobs-calendar-day),.app-content select,.app-content .icon-action-button,.app-content .invoice-download-button,.modal-backdrop button:not(.link-button),.modal-backdrop select,.modal-backdrop .invoice-download-button{min-height:44px}.jobs-calendar-month-card{flex:100%}.jobs-calendar-month{width:100%}.jobs-calendar-day{width:100%;min-width:36px;height:40px}}@media (width<=640px){.week-view-days{grid-template-columns:1fr;overflow-x:visible}.week-day-column-blank{display:none}.week-day-column{min-height:56px}.invoice-sheet-table th,.invoice-sheet-table td{padding-right:6px}.invoice-sheet-table th{letter-spacing:.03em;font-size:10px}.invoice-sheet-table td{font-size:14px}.invoice-sheet-table td:first-child{overflow-wrap:anywhere}}.brand-preview{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-width:420px;margin:12px 0 16px;overflow:hidden}.brand-preview-header{border-bottom:1px solid var(--border);color:var(--text-h);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:13px;display:flex}.brand-preview-header img{object-fit:contain;max-width:120px;max-height:44px}.brand-preview-header.banded{color:#fff;border-bottom:none}.brand-preview-body{color:var(--accent);letter-spacing:.06em;flex-direction:column;gap:8px;padding:12px 14px;font-size:11px;font-weight:600;display:flex}.brand-preview-rule{background:var(--accent);height:3px;display:block}.brand-color-rows{flex-direction:column;gap:10px;margin-top:16px;display:flex}.brand-color-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.brand-color-row label{min-width:100px;color:var(--text-h);font-weight:600}.brand-color-row .address{font-family:var(--mono);margin:0}.request-page{--brand:#15803d;--brand-header:var(--brand);background:var(--code-bg,#f4f3ec);min-height:100vh;color:var(--text-h);text-align:left}.request-header{background:var(--brand-header);color:#fff}.request-header-inner{align-items:center;gap:16px;max-width:960px;margin:0 auto;padding:14px 20px;display:flex}.request-logo{object-fit:contain;max-width:180px;max-height:56px}.request-company{letter-spacing:-.01em;font-size:22px;font-weight:700}.request-main{max-width:960px;margin:0 auto;padding:28px 20px 48px}.request-main h1{color:var(--text-h);margin:0 0 8px;font-size:28px;line-height:1.2}.request-main h1:focus{outline:none}.request-landing{text-align:center;max-width:620px;padding-top:56px}.request-lede{color:var(--text);margin:0 auto 24px;font-size:17px;line-height:1.55}.request-muted{color:var(--text);margin:0 0 16px}.request-points{color:var(--text);flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:28px 0 20px;padding:0;font-size:14px;list-style:none;display:flex}.request-points li:before{content:"✓ ";color:var(--brand);font-weight:700}.request-contact{color:var(--text);margin-top:24px;font-size:14px}.request-contact a{color:var(--brand);font-weight:600}.request-primary,.request-secondary{min-height:48px;font:inherit;cursor:pointer;border-radius:10px;padding:12px 24px;font-size:16px;font-weight:700}.request-primary{background:var(--brand);color:#fff;border:none}.request-primary:hover{filter:brightness(1.08)}.request-primary:disabled{opacity:.6;cursor:progress}.request-secondary{border:1px solid var(--border-strong);background:var(--bg);color:var(--text-h)}.request-primary:focus-visible,.request-secondary:focus-visible,.request-service:focus-visible,.request-step button:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.request-cta{min-width:260px;font-size:18px}.request-steps{background:var(--bg);border-bottom:1px solid var(--border)}.request-steps ol{grid-template-columns:repeat(4,minmax(0,1fr));max-width:960px;margin:0 auto;padding:0;list-style:none;display:grid}.request-step>span,.request-step>button{box-sizing:border-box;white-space:nowrap;width:100%;min-height:52px;color:var(--text);font:inherit;background:0 0;border:none;border-bottom:3px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:14px;font-weight:600;display:flex}.request-step>button{line-height:inherit;cursor:pointer;margin:0}.request-step.current>span{border-bottom-color:var(--brand);color:var(--text-h)}.request-step-number{background:var(--zebra-bg);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:inline-flex}.request-step.current .request-step-number,.request-step.done .request-step-number{background:var(--brand);color:#fff}.request-services{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.request-service{border:2px solid var(--border);background:var(--bg);min-height:150px;color:var(--brand);font:inherit;text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px 16px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.request-service:hover{border-color:var(--brand);box-shadow:var(--shadow)}.request-service.selected{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 8%, var(--bg))}.request-service-tick{background:var(--brand);color:#fff;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:700;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:8px;right:8px;transform:scale(.6)}.request-service.selected .request-service-tick{opacity:1;transform:scale(1)}.request-service-name{color:var(--text-h);font-size:16px;font-weight:700}.request-service-desc{color:var(--text);font-size:13px;line-height:1.4}.request-service-price{color:var(--text);margin-top:auto;font-size:12px;font-weight:600}.request-field{border:none;flex-direction:column;gap:6px;margin:18px 0 0;padding:0;display:flex}.request-field>span,.request-field>legend{color:var(--text-h);margin-bottom:6px;padding:0;font-weight:700}.request-field input,.request-field textarea{box-sizing:border-box;border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--text-h);font:inherit;border-radius:10px;padding:12px 14px;font-size:16px}.request-field input:focus,.request-field textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.request-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 16px;display:grid}.request-choices,.request-sizes{flex-wrap:wrap;gap:10px;display:flex}.request-choice,.request-size{border:2px solid var(--border);background:var(--bg);cursor:pointer;border-radius:10px;align-items:center;gap:8px;min-height:48px;padding:10px 16px;display:flex;position:relative}.request-size{flex-direction:column;flex:140px;align-items:flex-start;gap:2px}.request-size span{color:var(--text);font-size:13px}.request-choice.selected,.request-size.selected{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 8%, var(--bg))}.request-choice input,.request-size input{opacity:0;pointer-events:none;position:absolute}:is(.request-choice:has(input:focus-visible),.request-size:has(input:focus-visible)){outline:3px solid var(--brand);outline-offset:2px}.request-summary{border:1px solid var(--border);background:var(--bg);border-radius:12px;margin-top:24px;padding:16px 18px}.request-summary h2{margin:0 0 8px;font-size:16px}.request-summary dl{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.request-summary dt{color:var(--text);font-weight:600}.request-summary dd{overflow-wrap:anywhere;margin:0}.request-consent{cursor:pointer;align-items:flex-start;gap:10px;margin-top:20px;line-height:1.45;display:flex}.request-consent input{width:20px;height:20px;accent-color:var(--brand);flex-shrink:0;margin-top:1px}.request-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.request-error{min-height:1.5em;color:var(--health-delinquent);margin-top:16px;font-weight:600}.request-nav{justify-content:space-between;gap:12px;margin-top:8px;display:flex}.request-check{background:var(--brand);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:16px;font-size:32px;font-weight:700;display:inline-flex}@media (width<=640px){.request-company{font-size:18px}.request-logo{max-height:44px}.request-main h1{font-size:24px}.request-landing{padding-top:36px}.request-cta{width:100%;min-width:0}.request-step:not(.current)>span,.request-step:not(.current)>button{font-size:0}.request-step:not(.current) .request-step-number{font-size:12px}.request-services{grid-template-columns:1fr 1fr;gap:10px}.request-service{min-height:130px;padding:14px 8px 12px}.request-nav>*{flex:1}.request-summary dl{grid-template-columns:1fr}.request-summary dd+dt{margin-top:6px}}@media (prefers-reduced-motion:reduce){.request-service,.request-service-tick{transition:none}}.communications-page,.communications-send,.email-template-editor{text-align:left;flex-direction:column;gap:16px;display:flex}.communications-intro{margin:0}.communications-send .settings-card>select,.email-audience-options{margin-bottom:8px}.email-audience-options{flex-wrap:wrap;gap:8px;display:flex}.email-body-input{box-sizing:border-box;width:100%;font:inherit;resize:vertical;padding:10px 12px;font-size:14px;line-height:1.55}.merge-field-bar{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;display:flex}.merge-field-chip{border:1px dashed var(--accent-border);background:var(--accent-bg);color:var(--accent);font:inherit;cursor:pointer;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.email-placeholder-warning{color:var(--text-h);overflow-wrap:anywhere;background:#f59e0b1f;border-left:4px solid #d97706;border-radius:6px;margin-bottom:10px;padding:10px 12px;font-size:14px}.email-preview{border:1px solid var(--border);background:#f3f4f6;border-radius:10px;overflow:hidden}.email-preview-subject{border-bottom:1px solid var(--border);background:var(--bg);color:var(--text-h);padding:10px 14px}.email-preview-frame{background:#f3f4f6;border:0;width:100%;height:560px;display:block}.email-audience-summary{margin:12px 0 0}.email-customer-picker input[type=search],.email-customer-picker .routing-list-toolbar input{flex:200px;padding:8px}.email-customer-list{border:1px solid var(--border);border-radius:8px;max-height:320px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.email-customer-list li+li{border-top:1px solid var(--border)}.email-customer-list label{cursor:pointer;align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.email-customer-list label>span{flex-direction:column;display:flex}.email-customer-list .address{margin:0}.email-confirm{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:8px;margin-top:12px;padding:12px}.email-confirm p{margin:0 0 8px}.email-template-group{margin-bottom:16px}.email-editor-preview{position:sticky;top:12px}.email-history{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.email-history>li{padding:0}.email-history-counts{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.routing-stop-status.failed{color:var(--health-delinquent);background:#dc26261f}.email-recipient-table{border-collapse:collapse;width:calc(100% - 28px);margin:0 14px 14px;font-size:14px}.email-recipient-table th,.email-recipient-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:6px 8px 6px 0}.email-recipient-table th{color:var(--text);font-size:12px}@media (width<=900px){.email-editor-preview{position:static}.email-preview-frame{height:480px}}:root{--sand:#a88a5a;--sand-deep:#7a5f32;--sand-tint:#efe5d2;--tint-card:5%;--tint-hero:9%;--tint-badge:13%;--edge-mix:50%}@media (prefers-color-scheme:dark){:root{--sand:#c8ad7f;--sand-deep:#e6d3ad;--sand-tint:#3a3226}}.module-hero{border:1px solid var(--border);background:linear-gradient(120deg, color-mix(in srgb, var(--accent) var(--tint-hero), var(--bg)), color-mix(in srgb, var(--hero-second,#2563eb) calc(var(--tint-hero) * .6), var(--bg)));border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 18px;display:flex}.module-hero-icon{background:color-mix(in srgb, var(--accent) var(--tint-badge), var(--bg));width:44px;height:44px;color:var(--accent);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.module-hero-with-stats{justify-content:space-between;margin-bottom:20px}.module-hero-text{flex:320px}.module-hero-text p{color:var(--text-h);margin:0 0 10px;line-height:1.5}.module-hero-icon svg{width:26px;height:26px}.module-stats{flex-wrap:wrap;gap:8px;display:flex}.module-stat{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:999px;padding:5px 12px;font-size:13px}.module-stat strong{color:var(--text-h);font-size:15px}.module-stat:first-child strong{color:var(--accent)}.soft-badge{background:color-mix(in srgb, var(--c) var(--tint-badge), var(--bg));color:color-mix(in srgb, var(--c) 85%, var(--text-h));border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600}.communications-hero{flex-wrap:nowrap}.communications-hero p{color:var(--text-h);margin:0;line-height:1.5}.email-step{border-top:3px solid color-mix(in srgb, var(--accent) var(--edge-mix), var(--bg))}.email-step-heading{align-items:center;gap:10px;display:flex}.email-step-number{background:color-mix(in srgb, var(--accent) var(--tint-badge), var(--bg));width:28px;height:28px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex}.email-chosen-template{color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px;font-size:14px;display:flex}.email-category-tag{background:color-mix(in srgb, var(--cat) var(--tint-badge), var(--bg));color:color-mix(in srgb, var(--cat) 85%, var(--text-h));border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.email-audience-card{border:2px solid var(--border);background:var(--bg);min-height:52px;color:var(--text-h);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:10px 16px 10px 10px;font-weight:600;transition:border-color .15s,background .15s;display:flex;position:relative}.email-audience-card input{opacity:0;pointer-events:none;position:absolute}.email-audience-card:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.email-audience-icon{background:var(--zebra-bg);width:36px;height:36px;color:var(--text);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.email-audience-card:hover{border-color:var(--accent-border)}.email-audience-card.selected{border-color:var(--accent);background:var(--accent-bg)}.email-audience-card.selected .email-audience-icon{background:color-mix(in srgb, var(--accent) 22%, var(--bg));color:var(--accent)}.email-audience-summary{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.email-count{border-radius:10px;padding:8px 14px;font-size:14px}.email-count-go{background:color-mix(in srgb, var(--health-good) var(--tint-badge), var(--bg));color:var(--text-h)}.email-count-go strong{color:var(--health-good);font-size:16px}.email-count-skip{background:color-mix(in srgb, #d97706 var(--tint-badge), var(--bg));color:var(--text-h)}.email-category-heading{color:var(--cat,var(--text-h));letter-spacing:.02em;align-items:center;gap:8px;margin:8px 0 10px;font-size:15px;display:flex}.email-category-dot{background:var(--cat,var(--accent));border-radius:50%;width:12px;height:12px}.email-template-card{border-left:4px solid color-mix(in srgb, var(--cat) var(--edge-mix), var(--bg));background:linear-gradient(90deg, color-mix(in srgb, var(--cat) var(--tint-card), var(--bg)), var(--bg) 60%)}.email-template-card:hover{border-color:color-mix(in srgb, var(--cat) var(--edge-mix), var(--bg))}.email-editor-card{border-top:3px solid color-mix(in srgb, var(--cat) var(--edge-mix), var(--bg))}.merge-field-chip:hover{background:var(--accent);color:#fff}.email-history-item{border-left:4px solid color-mix(in srgb, var(--health-good) var(--edge-mix), var(--bg))}.email-history-item.has-skipped{border-left-color:color-mix(in srgb, #d97706 var(--edge-mix), var(--bg))}.email-history-item.has-failed{border-left-color:color-mix(in srgb, var(--health-delinquent) 70%, var(--bg))}.routing-stop-status.skipped{color:#b45309;background:#d9770624}@media (width<=640px){.communications-hero{align-items:flex-start}.email-audience-card{flex:100%}}@media (prefers-reduced-motion:reduce){.email-audience-card{transition:none}}.email-step>select{border:1px solid var(--border-strong);background:var(--bg);width:min(100%,420px);min-height:44px;color:var(--text-h);font:inherit;border-radius:8px;padding:8px 12px;font-size:15px}.products-hero{--hero-second:#ea580c}.product-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin:8px 0 0;padding:0;list-style:none;display:grid}.product-card{border:1px solid var(--border);border-top:3px solid color-mix(in srgb, var(--svc) var(--edge-mix), var(--bg));background:linear-gradient(180deg, color-mix(in srgb, var(--svc) var(--tint-card), var(--bg)), var(--bg) 70%);border-radius:12px;flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.product-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.product-card-main{color:var(--text-h);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:flex-start;gap:12px;padding:14px 14px 8px;display:flex}.product-card-main:focus-visible{outline:3px solid var(--svc);outline-offset:-3px}.product-icon-badge{background:color-mix(in srgb, var(--svc) var(--tint-badge), var(--bg));width:52px;height:52px;color:color-mix(in srgb, var(--svc) 85%, var(--text-h));border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.product-icon-badge svg{width:36px;height:36px}.product-card-text{flex-direction:column;gap:4px;min-width:0;display:flex}.product-card-text strong{font-size:16px}.product-card-text .address{margin:0}.product-badges{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.product-price-badge{background:var(--zebra-bg);color:var(--text-h);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.product-tax-badge{background:var(--zebra-bg);color:var(--text-h);border-radius:999px;margin:0;padding:2px 10px;font-size:13px;font-weight:700}.product-tax-badge .field-label{color:inherit}.product-badge-muted{background:var(--zebra-bg);color:var(--text);border-radius:999px;padding:2px 10px;font-size:12px}.product-card .error{margin:0 14px}.product-card-actions{justify-content:flex-end;padding:0 12px 12px}.modal-card:has(.product-editor){border-top:3px solid color-mix(in srgb, var(--accent) var(--edge-mix), var(--bg));max-width:760px}.product-editor{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;display:grid}.product-editor-form{flex-direction:column;gap:12px;display:flex}.product-editor-form input:not([type=checkbox]),.product-editor-form textarea{box-sizing:border-box;width:100%;font:inherit;padding:9px 10px;font-weight:400}.product-editor-form textarea{resize:vertical}.product-editor-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.product-price-input{display:block;position:relative}.product-price-input>span{color:var(--text);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.product-editor-form .product-price-input input{padding-left:24px}.product-tax-box{border:1px dashed var(--border-strong);border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:8px 16px;padding:12px;display:flex}.product-tax-box.on{border-style:solid;border-color:var(--border-strong);background:var(--zebra-bg)}.product-tax-box .form-field{flex:120px}.product-tax-box .checkbox-field{white-space:nowrap;flex:none;align-self:center;font-weight:600}.product-editor-preview{background:var(--code-bg,#f4f3ec);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.product-editor-preview-label{color:var(--text);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:700}.product-editor-preview .address{margin:0;font-size:13px}.product-preview-card{border:2px solid color-mix(in srgb, var(--svc) var(--edge-mix), var(--bg));background:var(--bg);color:var(--text-h);text-align:center;overflow-wrap:anywhere;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:18px 14px;display:flex}.product-preview-card .address{color:var(--text)}@media (width<=640px){.product-editor,.product-editor-row{grid-template-columns:1fr}.products-hero .primary-button{width:100%}}@media (prefers-reduced-motion:reduce){.product-card{transition:none}}.list-view-toggle{justify-content:flex-end;margin:4px 0 10px;display:flex}.product-list{border:1px solid var(--border);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.product-list-row{border-left:3px solid color-mix(in srgb, var(--svc) var(--edge-mix), var(--bg));background:var(--bg);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:4px 12px 4px 0;display:flex}.product-list-row:nth-child(2n){background:var(--zebra-bg)}.product-list-row+.product-list-row{border-top:1px solid var(--border)}.product-list-row .product-card-main{flex:320px;align-items:center;padding:8px 12px}.product-list-row .product-icon-badge{border-radius:10px;width:36px;height:36px}.product-list-row .product-icon-badge svg{width:26px;height:26px}.product-list-row .product-card-text{flex-flow:wrap;flex:1;align-items:center;gap:2px 12px}.product-list-row .product-card-text>strong{flex:none;font-size:15px}.product-list-row .product-card-text>.address{flex:160px}.product-list-row .product-badges{margin-top:0}.product-list-row:nth-child(2n) .product-price-badge,.product-list-row:nth-child(2n) .product-tax-badge{background:var(--bg)}.product-list-row .product-card-actions{padding:0}.product-list-row .error{flex-basis:100%;margin:0 12px 8px}@media (width<=640px){.product-list-row .product-card-text{flex-direction:column;align-items:flex-start}.product-list-row .product-card-actions{padding:0 0 8px 60px}}.amount-badge{background:var(--zebra-bg);color:var(--text-h);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:2px 10px;font-size:13px;font-weight:700}.zebra-list>li:nth-child(2n) .amount-badge{background:var(--bg)}.property-list.record-list{border:1px solid var(--border);border-radius:12px;margin:8px 0 0;overflow:hidden}.property-list.record-list>li{border:none;border-left:3px solid color-mix(in srgb, var(--row-c,var(--border-strong)) var(--edge-mix), var(--bg));border-radius:0;margin:0}.property-list.record-list>li+li{border-top:1px solid var(--border)}.property-list.record-list>p{margin:12px 16px}.property-list.record-list:not(:has(>li)){border:none}.property-list.record-list:not(:has(>li))>p{margin:0}.property-list.record-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:8px 0 0;display:grid}.property-list.record-grid>li{border:1px solid var(--border);border-top:3px solid color-mix(in srgb, var(--row-c,var(--accent)) var(--edge-mix), var(--bg));background:linear-gradient(180deg, color-mix(in srgb, var(--row-c,var(--accent)) var(--tint-card), var(--bg)), var(--bg) 70%);border-radius:12px;flex-direction:column;justify-content:space-between;align-items:stretch;margin:0;padding:14px;transition:box-shadow .15s,transform .15s;overflow:hidden}.property-list.record-grid>li:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.property-list.record-grid>li.record-tile{padding:0}.property-list.record-grid>li>.property-row-actions{justify-content:flex-end}.property-list.record-grid>li.entity-edit-card,.property-list.record-grid>li.editing-row{background:var(--bg);grid-column:1/-1;padding:24px;transform:none}.property-list.record-grid>p{grid-column:1/-1;margin:0}.record-tile-main{width:100%;color:var(--text-h);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:flex-start;gap:12px;padding:14px 14px 10px;display:flex}.record-tile-main:focus-visible{outline:3px solid color-mix(in srgb, var(--row-c) var(--edge-mix), var(--bg));outline-offset:-3px}.record-tile-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.record-tile-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;display:flex}.record-tile-number{color:var(--text);font-size:13px;font-weight:600}.record-tile-title{overflow-wrap:anywhere;font-size:16px}.record-tile-text .address{overflow-wrap:anywhere;margin:0}.record-tile-bottom{flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:6px;display:flex}.record-tile-footnote{color:var(--text);font-size:12px}.record-tile-status{font-size:12px}.record-tile-actions{justify-content:flex-end;padding:0 12px 12px}.record-tile-avatar{background:color-mix(in srgb, var(--row-c) var(--tint-badge), var(--bg));width:44px;height:44px;color:color-mix(in srgb, var(--row-c) 85%, var(--text-h));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:inline-flex}.record-tile-avatar-photo{border:2px solid color-mix(in srgb, var(--row-c) var(--edge-mix), var(--bg));object-fit:cover}@media (prefers-reduced-motion:reduce){.property-list.record-grid>li{transition:none}.property-list.record-grid>li:hover{transform:none}}.line-items-table{border-collapse:collapse;width:100%;margin:10px 0;font-size:14px}.line-items-table th{border-bottom:2px solid var(--border);color:var(--text);text-align:left;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;font-size:12px;font-weight:600}.line-items-table td{border-bottom:1px solid var(--border);color:var(--text-h);vertical-align:top;padding:8px}.line-items-table .num{text-align:right;white-space:nowrap}.unit-picker{flex-wrap:wrap;gap:6px;display:inline-flex}.unit-picker input{width:9em}.product-unit-hint{margin:-4px 0 0}
