:root{--bg:#eef6ff;--surface:#f8fcffe6;--surface-strong:#f8fcff;--surface-muted:#d9eaf8;--ink:#10243f;--ink-soft:#506782;--accent:#1f6fb2;--accent-dark:#0b376d;--ok:#23745c;--warn:#b42318;--shadow:0 24px 60px #08244c1f;--line:#10243f1f;--muted:#6b7e94;--ink-muted:#6b7e94;--accent-strong:#0b376d;--green-deep:#197158;--border:#10243f1f;--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--radius-sm:8px}*{box-sizing:border-box}html,body{overflow-x:clip}body{min-height:100vh;color:var(--ink);background:radial-gradient(circle at top left, #1f6fb22e, transparent 24%), radial-gradient(circle at right 20%, #23745c1f, transparent 22%), linear-gradient(180deg, #f7fbff 0%, var(--bg) 100%);margin:0;font-family:Arial,Helvetica,sans-serif}body.modal-open,body.mobile-nav-open{overflow:hidden}[hidden]{display:none!important}html.dashboard-boot-route .public-site-shell,html.dashboard-boot-route .auth-gate{display:none}.public-site-shell{min-height:100vh;padding:24px}.public-header{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fcffc7;border:1px solid #10243f14;border-radius:999px;justify-content:space-between;align-items:center;gap:18px;width:min(1180px,100%);margin:0 auto;padding:14px 16px;display:flex;position:sticky;top:16px;box-shadow:0 16px 42px #08244c14}.public-brand,.public-nav a{color:var(--ink);text-decoration:none}.public-brand{font-size:1.25rem;font-weight:900}.public-nav,.landing-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.public-nav a{color:var(--ink-soft);border-radius:999px;padding:10px 12px;font-weight:800}.public-nav a:hover,.public-nav a:focus-visible,.public-nav a.is-active{background:var(--surface-strong);color:var(--accent-dark)}.compact-button{padding:10px 14px}.public-page{gap:32px;width:min(1180px,100%);margin:0 auto;padding:72px 0 48px;display:grid}.public-landing-section{gap:32px;width:min(1180px,100%);margin:0 auto;padding:28px 0 64px;display:grid}.landing-page{grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);align-items:center;min-height:calc(100vh - 144px)}.landing-hero{gap:20px;display:grid}.landing-hero h1,.public-page-heading h1{letter-spacing:0;max-width:940px;margin:0;font-size:4.35rem;line-height:.98}.landing-copy,.public-page-heading p{max-width:720px;color:var(--ink-soft);font-size:1.24rem;line-height:1.55}.landing-proof-points{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 0;display:grid}.landing-proof-points div{background:#f8fcffb8;border:1px solid #10243f14;border-radius:8px;min-width:0;padding:14px}.landing-proof-points dt{color:var(--accent-dark);font-weight:900}.landing-proof-points dd{color:var(--ink-soft);margin:4px 0 0;font-size:.92rem;line-height:1.4}.landing-actions .secondary-button,.pricing-card .secondary-button{text-decoration:none}.pricing-grid{gap:18px;display:grid}.pricing-card{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);border:1px solid #10243f14;grid-template-rows:auto auto auto auto 1fr auto;gap:14px;padding:24px;display:grid}.pricing-card h2{margin:0;font-size:1.8rem}.pricing-card li{color:var(--ink-soft);line-height:1.5}.legal-page,.support-page{max-width:980px}.legal-content,.support-grid{gap:18px;display:grid}.legal-content section,.support-panel{border-radius:var(--radius-sm);background:#f8fcffc7;border:1px solid #10243f14;padding:24px}.legal-content h2,.support-panel h2{color:var(--accent-dark);margin:0 0 10px;font-size:1.18rem}.legal-content p,.support-panel p{color:var(--ink-soft);margin:0;line-height:1.62}.legal-content p+p,.support-panel p+p{margin-top:10px}.legal-content a,.support-panel a,.public-footer a{color:var(--accent-dark);font-weight:800}.support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-footer{width:min(1180px,100%);color:var(--ink-soft);justify-content:space-between;align-items:center;gap:18px;margin:0 auto;padding:20px 0 8px;font-size:.95rem;display:flex}.public-footer span{font-weight:900}.public-footer nav{flex-wrap:wrap;gap:16px;display:flex}.landing-product-preview{isolation:isolate;border-radius:var(--radius-lg);min-height:620px;box-shadow:var(--shadow);background:linear-gradient(135deg,#f8fcfffa 0%,#e0effae6 56%,#f8fcfff0 100%);border:1px solid #10243f14;padding:24px;position:relative;overflow:hidden}.desktop-device,.phone-device,.dispatch-status-card{z-index:2;position:relative}.desktop-device{background:#f8fcff;border:1px solid #10243f14;border-radius:16px;width:min(100%,560px);position:relative;overflow:hidden;box-shadow:0 22px 46px #08244c29}.device-bar{background:#f8fcfff0;border-bottom:1px solid #10243f14;gap:7px;padding:11px 14px;display:flex}.device-bar span{background:#10243f38;border-radius:50%;width:9px;height:9px}.desktop-device img,.phone-device img{object-fit:cover;width:100%;height:100%;display:block}.desktop-device img{aspect-ratio:16/10;object-position:35% 18%}.phone-device{aspect-ratio:9/19.5;background:#f8fcff;border:7px solid #10243f;border-radius:28px;width:27%;min-width:124px;max-width:170px;position:absolute;bottom:26px;overflow:hidden;box-shadow:0 20px 40px #08244c3d}.phone-device:before{content:"";z-index:3;background:#10243f;border-radius:999px;width:42%;height:13px;position:absolute;top:7px;left:50%;transform:translate(-50%)}.phone-device-one{left:11%;transform:rotate(-7deg)}.phone-device-two{z-index:4;bottom:8px;left:37%}.phone-device-three{right:9%;transform:rotate(7deg)}.dispatch-status-card{background:#f8fcffeb;border:1px solid #1f6fb229;border-radius:8px;gap:5px;max-width:210px;padding:14px 16px;display:grid;position:absolute;top:50%;right:32px;box-shadow:0 18px 34px #08244c1f}.dispatch-status-card strong{color:var(--accent-dark)}.dispatch-status-card span{color:var(--ink-soft);font-size:.88rem;font-weight:800}.dispatch-signal-lines{z-index:1;pointer-events:none;position:absolute;inset:0}.dispatch-signal-lines span{transform-origin:0;background:linear-gradient(90deg,#1f6fb200,#1f6fb280,#23745c00);border-radius:999px;height:2px;position:absolute}.dispatch-signal-lines span:first-child{width:230px;top:45%;left:42%;transform:rotate(26deg)}.dispatch-signal-lines span:nth-child(2){width:260px;top:51%;left:35%;transform:rotate(46deg)}.dispatch-signal-lines span:nth-child(3){width:250px;top:49%;left:53%;transform:rotate(62deg)}.feature-grid,.seo-copy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.feature-panel,.seo-copy-grid>div,.faq-list details{background:#f8fcffc7;border:1px solid #10243f14;border-radius:8px;padding:22px;box-shadow:0 16px 38px #08244c14}.feature-panel h2,.seo-copy-grid h2{margin-bottom:8px;font-size:1.35rem}.feature-panel span{color:var(--accent-dark);background:#1f6fb21a;border-radius:999px;margin-bottom:12px;padding:5px 9px;font-size:.78rem;font-weight:900;display:inline-flex}.feature-panel p,.seo-copy-grid p,.faq-list p{color:var(--ink-soft);margin-bottom:0;line-height:1.55}.seo-copy-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.faq-list{gap:12px;display:grid}.faq-list summary{cursor:pointer;color:var(--ink);font-size:1.08rem;font-weight:900}.faq-list p{padding-top:12px}.public-page-heading{gap:14px;display:grid}.public-page-heading h1{font-size:3.2rem;line-height:1.05}.landing-cta-band{border-radius:var(--radius-lg);background:linear-gradient(135deg,#1f6fb21a,#f8fcffeb);border:1px solid #1f6fb229;justify-content:space-between;align-items:center;gap:18px;padding:22px;display:flex}.landing-cta-band h2{margin:4px 0 0;font-size:1.65rem}.pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pricing-card{align-content:start}.featured-pricing-card{background:#f8fcfff5;border-color:#1f6fb247;transform:translateY(-8px)}.pricing-price{color:var(--accent-dark);margin:0;font-size:1.35rem;font-weight:900}.pricing-tag{width:fit-content;color:var(--accent-dark);background:#1f6fb214;border:1px solid #1f6fb22e;border-radius:8px;margin:-4px 0 0;padding:6px 10px;font-size:.84rem;font-weight:900;line-height:1.25;display:inline-flex}.pricing-card ul{gap:8px;margin:0 0 4px;padding-left:20px;display:grid}.pricing-feature-guide{border-top:1px solid #1f6fb229;margin-top:48px;padding-top:32px}.pricing-feature-guide h2{margin:0;font-size:1.8rem}.pricing-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.pricing-feature-group h3{color:var(--accent-dark);margin:0;font-size:1.1rem}.pricing-feature-group dl{gap:24px;margin:24px 0 0;display:grid}.pricing-feature-group dt{font-weight:800}.pricing-feature-group dd{color:var(--muted);margin:8px 0 0;line-height:1.6}.auth-gate{place-items:center;min-height:100vh;padding:32px 16px;display:grid}.auth-panel{border-radius:var(--radius-lg);background:var(--surface-strong);width:min(100%,520px);box-shadow:var(--shadow);border:1px solid #10243f14;gap:18px;padding:28px;display:grid}.auth-copy h1{margin-bottom:0;font-size:clamp(2rem,8vw,3.2rem);line-height:1}.auth-form-link{color:var(--ink-soft);margin:0;font-weight:700}.auth-panel-note{color:var(--ink-soft);margin:0;font-weight:700;line-height:1.45}.auth-form-link button{appearance:none;color:var(--accent-dark);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-weight:900;text-decoration:underline}.auth-form{gap:14px;display:grid}.invite-summary{color:var(--ink-soft);margin:0;font-weight:800}.invite-mode-fields{gap:14px;display:grid}.auth-form label{color:var(--ink-soft);gap:6px;font-weight:800;display:grid}.auth-form input,.auth-form select{width:100%;color:var(--ink);font:inherit;background:#fbfdff;border:1px solid #10243f24;border-radius:12px;padding:12px}.checkout-choice-field{border:0;gap:8px;margin:0;padding:0;display:grid}.checkout-choice-field legend{color:var(--ink-soft);font-weight:800}.checkout-choice-note{color:var(--ink-soft);margin:-2px 0 2px;font-size:.86rem;font-weight:700}.checkout-choice-grid{gap:8px;display:grid}.checkout-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.checkout-truck-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.checkout-choice-grid label{display:block}.checkout-choice-grid input{opacity:0;pointer-events:none;position:absolute}.checkout-choice-grid span{min-height:48px;color:var(--ink-soft);cursor:pointer;text-align:center;background:#fbfdff;border:1px solid #10243f29;border-radius:8px;place-items:center;padding:8px;font-weight:900;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s;display:grid}.checkout-choice-grid strong,.checkout-choice-grid small{display:block}.checkout-choice-grid small{color:inherit;font-size:.74rem;font-weight:800}.checkout-choice-grid input:checked+span{color:#0f172a;background:#fff;border-color:#10243f3d;box-shadow:0 0 0 2px #10243f1f}.checkout-choice-grid input:focus-visible+span{outline-offset:2px;outline:3px solid #1c345438}.checkout-custom-trucks[hidden]{display:none}.checkout-monthly-total{color:var(--accent-dark);text-align:center;margin:2px 0 -2px;font-size:1.15rem;font-weight:900}.app-shell{grid-template-columns:190px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fcffc7;border-right:1px solid #10243f14;grid-template-rows:auto 1fr auto;align-content:stretch;align-self:start;gap:22px;height:100vh;min-height:100vh;padding:24px 12px;display:grid;position:sticky;top:0;overflow-y:auto}.sidebar-brand{padding:0 8px;display:grid}.sidebar-brand strong,.mobile-dashboard-bar strong{font-size:2rem}.sidebar-nav{align-content:start;gap:8px;display:grid}.sidebar-account-actions{align-self:end;gap:8px;display:grid}.sidebar-account-link{align-self:stretch}.sidebar-signout-link{color:var(--warn)}.onboarding-modal{background:var(--surface-strong);width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);border:0;margin:0;padding:0}.onboarding-modal::backdrop{background:#10243fb8}.onboarding-shell{background:linear-gradient(90deg,#1f6fb21f,#0000 38%),linear-gradient(#f8fcff 0%,#eef6ff 100%);grid-template-rows:auto auto 1fr auto;min-height:100dvh;padding:32px;display:grid}.onboarding-header,.onboarding-footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.onboarding-header h2{margin-bottom:0;font-size:clamp(2rem,5vw,4rem);line-height:1}.onboarding-progress-bar{background:#10243f1f;border-radius:999px;height:10px;margin:24px 0;overflow:hidden}.onboarding-progress-bar span{border-radius:inherit;background:var(--accent);width:0;height:100%;transition:width .18s;display:block}.onboarding-content{align-items:center;width:min(860px,100%);margin:0 auto;padding:24px 0;display:grid}.onboarding-slide{gap:18px;display:grid}.onboarding-slide h3{margin-bottom:0;font-size:clamp(2.2rem,6vw,5rem);line-height:.98}.onboarding-slide p{max-width:760px;color:var(--ink-soft);font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.5}.onboarding-data-slide{grid-template-columns:minmax(0,.85fr) minmax(320px,1fr);align-items:start}.onboarding-step-form{border-radius:var(--radius-md);background:#fbfdff;border:1px solid #10243f1f;padding:22px}.onboarding-step-form fieldset{border:0;gap:14px;margin:0;padding:0;display:grid}.onboarding-step-form fieldset:disabled{opacity:.46}.onboarding-choice-field{border:0;gap:8px;margin:0;padding:0;display:grid}.onboarding-choice-field legend{color:var(--ink-soft);padding:0;font-size:.86rem;font-weight:800}.onboarding-choice-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.onboarding-choice-tiles label{display:block}.onboarding-choice-tiles input{opacity:0;pointer-events:none;position:absolute}.onboarding-choice-tiles span{min-height:44px;color:var(--ink-soft);cursor:pointer;text-align:center;background:#fbfdff;border:1px solid #10243f29;border-radius:8px;place-items:center;font-size:.9rem;font-weight:800;transition:background-color .16s,border-color .16s,color .16s;display:grid}.onboarding-choice-tiles input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--surface)}.onboarding-choice-tiles input:focus-visible+span{outline-offset:2px;outline:3px solid #1c345438}.driver-account-choice-field{max-width:420px}.driver-account-choice-field .onboarding-choice-tiles{grid-template-columns:repeat(2,minmax(0,168px))}.driver-account-choice-field .onboarding-choice-tiles span{border-radius:6px;min-height:34px;padding:0 10px;font-size:.82rem}.team-member-choice-field .onboarding-choice-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.onboarding-inline-note{color:var(--ink-soft);margin:0;font-size:.9rem;font-weight:700;line-height:1.45}.onboarding-plan-lock{margin-bottom:14px}.onboarding-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.sidebar-link{appearance:none;width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 11px;font-weight:800;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:flex}.nav-alert-badge,.tab-alert-badge{color:#fff;background:#b42318;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 7px;font-size:.72rem;font-weight:900;line-height:1;display:inline-grid}.nav-alert-badge[hidden],.tab-alert-badge[hidden]{display:none}.sidebar-link:hover,.sidebar-link:focus-visible,.sidebar-link.is-active{background:var(--surface-strong);color:var(--accent-dark);border-color:#1f6fb238}.sidebar-link.is-plan-locked{color:var(--muted)}.sidebar-link.is-plan-locked:after{content:"Locked";float:right;color:var(--accent-dark);text-transform:uppercase;font-size:.72rem;font-weight:900}.site-shell{width:min(1240px,100% - 32px);margin:0 auto;padding:32px 24px 48px}.site-shell:has(#dashboard-section.is-active){padding-bottom:8px}.app-section{gap:20px;display:grid}.app-section[hidden]{display:none}#customers-section,#jobsite-section{grid-template-rows:auto minmax(0,1fr);min-height:calc(100vh - 80px)}.page-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-heading h1{margin-bottom:0;font-size:clamp(2rem,5vw,4rem)}.page-heading .primary-button{white-space:nowrap}.page-heading-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.page-heading-actions .primary-button,.page-heading-actions .secondary-button{white-space:nowrap}.panel{background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-xl);box-shadow:var(--shadow);border:1px solid #10243f14}.section-kicker{text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);margin:0 0 10px;font-size:.72rem}h1,h2,h3,p{margin-top:0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.routing-status{text-align:right;gap:6px;display:grid}.routing-status span{color:var(--ink-soft);font-size:.9rem}.primary-button,.secondary-button,.route-button{appearance:none;cursor:pointer;border:0;transition:transform .18s,background-color .18s,opacity .18s}.primary-button{background:linear-gradient(135deg, #2f8fd3, var(--accent));color:#f8fbff;border-radius:999px;padding:14px 18px;font-weight:700}.primary-button:hover,.secondary-button:hover,.route-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled,.route-button:disabled{opacity:.5;transform:none}.primary-button.is-plan-locked,.secondary-button.is-plan-locked{box-shadow:inset 0 0 0 2px #1f6fb247}.secondary-button{background:var(--surface-muted);color:var(--ink);border-radius:999px;padding:10px 12px;font-weight:700}.dashboard-grid{grid-template-columns:1.3fr 1fr;gap:20px;display:grid}.panel{padding:24px}.panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px;display:flex}.panel-heading h2{margin-bottom:0}.panel-note{color:var(--ink-soft);text-align:right;max-width:28ch}.panel-subcopy{color:var(--ink-soft);margin:.35rem 0 0;font-size:.92rem;line-height:1.5}.customer-list-search,.jobsite-list-search{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;width:100%;max-width:min(100%,380px);font-size:.76rem;font-weight:800}.customer-list-search input,.jobsite-list-search input{width:100%;color:var(--ink);font:inherit;letter-spacing:0;text-transform:none;background:#fbfdff;border:1px solid #10243f29;border-radius:10px;margin-top:6px;padding:10px 12px;font-size:.9rem;font-weight:700}.customers-list-panel .customer-list-search{margin-bottom:18px;display:block}.jobsite-list-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;margin-bottom:18px;display:flex}.jobsite-panel .jobsite-list-search{flex:520px;max-width:min(100%,560px)}.stats-panel,.dashboard-grid>.create-record-actions,.dashboard-grid>.route-calendar-panel,.crapper-tracker-panel{grid-column:1/-1}.stats-grid,.customers-list,.technicians-grid,.units-grid,.jobs-list{gap:14px;display:grid}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.jobsite-tabs{background:var(--surface-muted);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.jobsite-tab{appearance:none;color:var(--ink-soft);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:10px 14px;font-weight:800;display:inline-flex}.jobsite-tab.is-active,.jobsite-tab:hover,.jobsite-tab:focus-visible{background:var(--surface-strong);color:var(--accent-dark)}.jobsite-tab-panel[hidden]{display:none}.jobsite-tab-panel{min-height:0;padding-right:4px;overflow-y:auto}.customers-list-panel{--customer-focus-duration:.36s;--customer-focus-ease:cubic-bezier(.22, 1, .36, 1);grid-template-rows:minmax(0,1fr);height:100%;min-height:min(720px,100vh - 180px);display:grid;position:relative;overflow:hidden}.customer-list-view{transform-origin:0;min-height:0;transition:transform var(--customer-focus-duration) var(--customer-focus-ease), opacity var(--customer-focus-duration) var(--customer-focus-ease);will-change:transform, opacity;grid-template-rows:auto auto minmax(0,1fr);display:grid;transform:translate(0,0)}.customer-focus-view{z-index:2;background:var(--surface-strong);opacity:0;pointer-events:none;min-width:0;transition:transform var(--customer-focus-duration) var(--customer-focus-ease), opacity var(--customer-focus-duration) var(--customer-focus-ease);will-change:transform, opacity;display:block;position:absolute;inset:0;overflow:hidden;transform:translate(calc(100% + 48px))}.customer-focus-view[hidden]{display:none}.customer-focus-pane,.customer-inline-jobsite-view{align-content:start;gap:16px;min-width:0;padding:24px;display:grid;position:absolute;inset:0;overflow:hidden auto}.customer-focus-body{gap:16px;display:grid}.customer-inline-jobsite-view{opacity:0;pointer-events:none;transition:transform var(--customer-focus-duration) var(--customer-focus-ease), opacity var(--customer-focus-duration) var(--customer-focus-ease);will-change:transform, opacity;transform:translate(calc(100% + 48px))}.customer-inline-jobsite-view[hidden]{display:none}.customer-focus-pane{opacity:1;transition:transform var(--customer-focus-duration) var(--customer-focus-ease), opacity var(--customer-focus-duration) var(--customer-focus-ease);will-change:transform, opacity;transform:translate(0,0)}.customer-focus-view.is-inline-jobsite-active .customer-focus-pane{opacity:0;pointer-events:none;transform:translate(calc(-100% - 48px))}.customer-focus-view.is-inline-jobsite-active .customer-inline-jobsite-view{opacity:1;pointer-events:auto;transform:translate(0,0)}.customer-focus-back-button{justify-self:start;align-items:center;gap:7px;min-height:34px;margin-bottom:8px;padding:7px 11px;display:inline-flex}.customer-focus-back-button span[aria-hidden=true]{font-size:1rem;line-height:1}.customers-list-panel.is-customer-focused .customer-list-view{opacity:0;pointer-events:none;transform:translate(calc(-100% - 48px))}.customers-list-panel.is-customer-focused .customer-focus-view{opacity:1;pointer-events:auto;transform:translate(0,0)}.customers-list-panel.is-customer-transitioning{pointer-events:none}.jobsite-panel{--jobsite-focus-duration:.36s;--jobsite-focus-ease:cubic-bezier(.22, 1, .36, 1);grid-template-rows:minmax(0,1fr);height:100%;min-height:min(720px,100vh - 180px);display:grid;position:relative;overflow:hidden}.jobsite-list-view{transform-origin:0;min-height:0;transition:transform var(--jobsite-focus-duration) var(--jobsite-focus-ease), opacity var(--jobsite-focus-duration) var(--jobsite-focus-ease);will-change:transform, opacity;grid-template-rows:auto auto minmax(0,1fr);display:grid;transform:translate(0,0)}.jobsite-focus-view{z-index:2;background:var(--surface-strong);opacity:0;pointer-events:none;min-width:0;transition:transform var(--jobsite-focus-duration) var(--jobsite-focus-ease), opacity var(--jobsite-focus-duration) var(--jobsite-focus-ease);will-change:transform, opacity;align-content:start;gap:16px;padding:24px;display:grid;position:absolute;inset:0;overflow:hidden auto;transform:translate(calc(100% + 48px))}.jobsite-focus-view[hidden]{display:none}.jobsite-focus-body{gap:16px;display:grid}.jobsite-focus-back-button{justify-self:start;align-items:center;gap:7px;min-height:34px;margin-bottom:8px;padding:7px 11px;display:inline-flex}.jobsite-focus-back-button span[aria-hidden=true]{font-size:1rem;line-height:1}.jobsite-panel.is-jobsite-focused .jobsite-list-view{opacity:0;pointer-events:none;transform:translate(calc(-100% - 48px))}.jobsite-panel.is-jobsite-focused .jobsite-focus-view{opacity:1;pointer-events:auto;transform:translate(0,0)}.jobsite-panel.is-jobsite-transitioning{pointer-events:none}.jobsite-row-card.is-selected,.customer-row-card.is-selected{border-color:#1f6fb28c;transform:translateY(-1px);box-shadow:0 14px 32px #08244c24}.jobsite-open-button{margin-top:8px}@media (prefers-reduced-motion:reduce){.customer-list-view,.customer-focus-view,.customer-focus-pane,.customer-inline-jobsite-view,.jobsite-list-view,.jobsite-focus-view{transition-duration:1ms}}.empty-state{border-radius:var(--radius-lg);background:var(--surface-strong);color:var(--ink-soft);border:1px dashed #10243f2e;gap:6px;padding:18px;display:grid}.empty-state strong{color:var(--ink)}.stat-card,.customer-card,.technician-card,.truck-card,.unit-card,.inventory-card,.office-card,.job-card,.route-card{border-radius:var(--radius-lg);background:var(--surface-strong);border:1px solid #10243f14}.stat-card{padding:18px}.truck-card{gap:8px;padding:18px;display:grid}.truck-configure-button{justify-self:start;margin-top:4px}.empty-seat-card{color:var(--ink-soft);border-style:dashed}.empty-seat-card h3{color:var(--ink)}.stat-card strong{margin-bottom:8px;font-size:2rem;display:block}.stat-card span,.unit-meta,.job-meta,.route-meta{color:var(--ink-soft)}.route-list{gap:18px;margin:0;padding:0;list-style:none;display:grid}.route-tools{flex-wrap:wrap;justify-content:end;align-items:center;gap:16px;display:flex}.route-week-nav{background:#ffffffbd;border:1px solid #1f6fb21f;border-radius:999px;flex-wrap:wrap;justify-content:end;align-items:center;gap:4px;padding:4px;display:flex;box-shadow:inset 0 0 0 1px #ffffff94}.route-week-button{width:34px;min-width:34px;height:34px;min-height:34px;color:var(--ink);cursor:pointer;background:#e8f2fcd6;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;display:inline-flex;position:relative}.route-week-button:hover{background:#ddecf9f0;border-color:#1f6fb233;transform:translateY(-1px);box-shadow:0 6px 14px #1c34541f}.route-week-button:active{box-shadow:none;transform:translateY(0)}.route-week-button:focus-visible{outline-offset:2px;outline:3px solid #1f6fb238}.route-week-arrow{border-top:2px solid;border-right:2px solid;width:9px;height:9px}.route-week-arrow-previous{margin-left:3px;transform:rotate(-135deg)}.route-week-arrow-next{margin-right:3px;transform:rotate(45deg)}.route-schedule-panel{--route-schedule-gap:10px;--route-schedule-padding:10px;padding:14px 16px}.route-schedule-panel .route-selector-group,.route-schedule-topbar{padding:var(--route-schedule-padding);border-radius:var(--radius-sm);background:0 0;border:0}.route-schedule-topbar,.route-schedule-panel .route-day-selector-group{background:0 0}.route-schedule-panel .route-truck-selector-group{background:0 0;align-content:start}.route-schedule-panel .route-plan-selector-group{background:0 0;grid-template-rows:auto minmax(0,1fr);align-content:stretch}.route-schedule-panel .panel-heading{margin-bottom:0}.route-schedule-panel .section-kicker{margin-bottom:2px}.route-schedule-panel h2{font-size:1.18rem}.route-day-selector-group{justify-items:start}.route-schedule-panel .panel-note{white-space:nowrap;max-width:none;margin:0}.route-calendar-day-controls{grid-template-columns:repeat(var(--route-calendar-days,1), minmax(104px, 1fr));gap:8px;margin-bottom:14px;padding-bottom:4px;display:grid;overflow-x:auto}.route-calendar-day{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-width:104px;min-height:58px;color:var(--ink);cursor:pointer;place-items:center;gap:2px;padding:8px 12px;display:grid}.route-calendar-day strong{font-size:.95rem}.route-calendar-day span{color:var(--ink-soft);font-size:.78rem;font-weight:700}.route-calendar-day.is-active{background:var(--ink);border-color:var(--ink);color:var(--surface)}.route-calendar-day.is-active span{color:#f8fcffc7}.route-calendar-grid{min-width:0;padding-bottom:2px;overflow-x:auto}.route-calendar-table{grid-template-columns:repeat(var(--route-calendar-columns), minmax(240px, 1fr));min-width:max(100%, calc(var(--route-calendar-columns) * 240px + (var(--route-calendar-columns) - 1) * 12px));gap:12px;display:grid}.route-calendar-column{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);grid-template-rows:auto;min-width:0;display:grid;overflow:hidden}.route-calendar-truck-heading{border-bottom:1px solid var(--line);background:var(--surface-muted);width:100%;min-height:56px;color:inherit;font:inherit;text-align:left;cursor:pointer;border-top:0;border-left:0;border-right:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.route-calendar-truck-heading:hover,.route-calendar-truck-heading:focus-visible{background:#d2e4f5e0}.route-calendar-truck-summary{align-items:baseline;gap:14px;min-width:0;display:flex}.route-calendar-truck-summary strong{color:var(--ink);white-space:nowrap;font-size:1.02rem;font-weight:800;line-height:1.1}.route-calendar-truck-summary span{color:var(--ink-soft);white-space:nowrap;font-size:.82rem;font-weight:800}.route-calendar-truck-chevron{border-right:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);width:10px;height:10px;transition:transform .18s;transform:rotate(45deg)}.route-calendar-column.is-expanded .route-calendar-truck-chevron{transform:translateY(3px)rotate(225deg)}.route-calendar-stop-list{align-content:start;gap:10px;min-height:180px;margin:0;padding:12px;list-style:none;display:grid}.route-calendar-stop-list[hidden]{display:none}.route-calendar-stop{border-radius:var(--radius-sm);background:var(--surface-strong);border:1px solid #10243f14;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:10px;min-height:76px;padding:10px;display:grid}.route-calendar-stop.is-serviced{background:#2f7d5714;border-color:#2f7d5761}.route-calendar-stop-order{background:var(--surface-muted);border-radius:50%;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.route-calendar-stop-body{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;min-width:0;display:grid}.route-calendar-stop-copy{gap:5px;min-width:0;display:grid}.route-calendar-stop span{overflow-wrap:anywhere}.route-calendar-stop-title{color:#000;min-width:0;font-size:1.35rem;font-weight:900;line-height:1.12}.route-calendar-stop-address{color:var(--ink-soft);font-size:.9rem;line-height:1.25}.route-calendar-work-chips{flex-direction:column;flex:none;align-items:flex-end;gap:5px;display:flex}.route-calendar-work-chip{width:max-content;min-height:22px;color:var(--ok);background:#2f7d5724;border-radius:999px;justify-content:center;align-items:center;padding:3px 8px;font-size:.72rem;font-weight:800;display:inline-flex}.route-calendar-work-chip.is-dropoff{color:var(--accent-dark);background:#1f6fb224}.route-calendar-work-chip.is-pickup{color:var(--warn);background:#b423181a}.route-calendar-empty span{color:var(--ink-soft);font-size:.82rem}.route-calendar-empty{border:1px dashed var(--line);border-radius:var(--radius-sm);background:#f8fcff8a;gap:4px;min-height:76px;padding:12px;display:grid}.route-schedule-layout{gap:var(--route-schedule-gap);grid-template-columns:minmax(0,1fr) minmax(220px,260px);align-content:start;align-items:stretch;display:grid}.route-schedule-controls{gap:var(--route-schedule-gap);grid-template-rows:auto auto 1fr;grid-template-columns:1fr;align-items:stretch;display:grid}.route-schedule-topbar{align-items:center;gap:var(--route-schedule-gap);grid-template-columns:minmax(150px,1fr) auto;display:grid}.route-schedule-panel .primary-button,.route-schedule-panel .secondary-button{min-height:32px;padding:6px 11px;font-size:.86rem}.route-plan-actions{justify-content:stretch;align-self:stretch;gap:var(--route-schedule-gap);grid-template-rows:repeat(4,minmax(32px,1fr));grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.route-plan-actions>button,.route-plan-actions>.route-plan-help-wrap{height:100%}.route-plan-actions>:nth-child(-n+3){grid-column:1/-1}.route-plan-help-wrap{min-width:0;display:grid;position:relative}.route-plan-help-button{text-align:left;justify-content:flex-start;align-items:center;width:100%;height:100%;padding-right:38px;display:inline-flex}.route-plan-button-label{min-width:0}.button-help-icon{color:#f8fbff;cursor:help;opacity:.9;border:1px solid;border-radius:999px;flex:none;place-items:center;width:18px;height:18px;font-size:.72rem;font-weight:800;line-height:1;display:inline-grid;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.route-plan-help-button:disabled+.button-help-icon{opacity:.58}.button-help-icon:focus-visible{outline-offset:2px;outline:3px solid #1f6fb247}.button-help-tooltip{z-index:20;border-radius:var(--radius-sm);color:#fff;opacity:0;pointer-events:none;background:#10243f;border:1px solid #e2e8f02e;width:min(270px,100vw - 32px);padding:8px 10px;font-size:.78rem;font-weight:700;line-height:1.35;transition:opacity .16s,transform .16s;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(4px);box-shadow:0 12px 24px #0f172a38}.button-help-tooltip:after{content:"";background:#10243f;border-bottom:1px solid #e2e8f02e;border-right:1px solid #e2e8f02e;width:10px;height:10px;position:absolute;bottom:-6px;right:18px;transform:rotate(45deg)}.button-help-icon:hover+.button-help-tooltip,.button-help-icon:focus+.button-help-tooltip{opacity:1;transform:translateY(0)}.route-selector-group{border:0;gap:4px;min-width:0;margin:0;padding:0;display:grid}.route-selector-group legend{float:left;width:100%;color:var(--ink-soft);margin-bottom:2px;padding:0;font-size:.78rem;font-weight:700;line-height:1.1}.route-selector-group legend+*{clear:both}.route-toggle-grid{flex-wrap:wrap;gap:5px;display:flex}.route-truck-toggle-grid{align-items:center}.route-toggle-grid label{cursor:pointer}.route-toggle-grid input{opacity:0;pointer-events:none;position:absolute}.route-toggle-grid span,#route-all-trucks-button{border:1px solid var(--line);background:var(--surface);min-height:30px;color:var(--ink-soft);border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:.82rem;font-weight:800;display:inline-flex}#route-all-trucks-button{appearance:none;cursor:pointer;transition:transform .18s,opacity .18s}.route-toggle-grid input:checked+span{background:var(--ink);color:var(--surface);border-color:var(--ink)}#route-all-trucks-button:hover{transform:translateY(-1px)}#route-all-trucks-button:disabled{opacity:.5;transform:none}.route-toggle-grid input:focus-visible+span,#route-all-trucks-button:focus-visible{outline-offset:2px;outline:3px solid #1c345438}.route-assignment-list{gap:12px;display:grid}.route-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;display:grid}.route-group{gap:12px;display:grid}.route-group-heading{border-radius:var(--radius-lg);background:#e8dece99;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.route-group-heading h3{margin-bottom:4px}.route-group-heading span{color:var(--ink-soft);white-space:nowrap;font-weight:800}.route-stop-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.route-stop-list li,.active-route-stop-list li{transition:margin .16s,opacity .16s,transform .16s}.route-stop-list li.is-dragging,.active-route-stop-list li.is-dragging{opacity:.55}.route-stop-list li.is-drop-target,.active-route-stop-list li.is-drop-target{transform:translateY(4px)}.active-route-stop-list li.is-drop-target{margin-top:12px}.route-index{background:var(--surface-muted);border-radius:50%;place-items:center;width:44px;height:44px;font-weight:700;display:grid}.route-actions{gap:8px;display:grid}.route-drag-handle{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:grab;place-items:center;width:28px;height:36px;padding:0;display:grid}.route-drag-handle-icon{background-image:radial-gradient(circle, var(--ink-soft) 1.6px, transparent 2px);opacity:.82;background-position:0 2px;background-size:7px 7px;width:14px;height:22px}.route-drag-handle:active{cursor:grabbing}.route-assign-actions{grid-template-columns:minmax(110px,1fr) minmax(130px,1fr) auto;align-items:end;gap:8px;display:grid}.route-assign-actions label{color:var(--ink-soft);gap:6px;font-size:.86rem;font-weight:700;display:grid}.route-assign-actions select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--ink);padding:8px 10px}.pickup-review-actions{gap:8px;display:grid}#pickup-review-heading{color:var(--warn)}#pickup-review-panel{transform-origin:top;max-height:900px;transition:opacity .22s,transform .22s,max-height .22s,margin .22s,padding .22s;overflow:hidden}#pickup-review-panel.is-collapsing{opacity:0;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;transform:translateY(-6px)}.pickup-review-hide-button{white-space:nowrap;min-height:34px;padding:6px 13px}.pickup-review-action-row{grid-template-columns:minmax(180px,1fr) minmax(150px,auto);align-items:end;gap:8px;display:grid}.pickup-review-action-row label{color:var(--ink-soft);gap:6px;font-size:.86rem;font-weight:700;display:grid}.pickup-review-action-row input{border-radius:var(--radius-sm);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;background:#fbfdff;border:1px solid #10243f57;padding:8px 8px 8px 10px;font-weight:800;box-shadow:inset 0 0 0 1px #ffffffb8,0 1px #10243f14}.pickup-review-action-row input:hover{border-color:var(--ink-soft);background:#fff}.pickup-review-action-row input:focus{border-color:var(--accent);outline-offset:1px;outline:3px solid #1f6fb23d}.pickup-review-action-row input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.82;margin-left:2px}.pickup-review-action-row .route-button,.pickup-review-action-row .secondary-button{white-space:nowrap;width:100%;min-height:40px}.pickup-review-resolved-card{background:var(--surface-muted);grid-template-columns:minmax(0,1fr);padding:10px 14px}.pickup-review-resolved-card h3{margin-bottom:2px}.route-button{background:var(--surface-muted);color:var(--ink);border-radius:999px;padding:8px 12px;font-weight:600}.route-map-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:start;gap:18px;display:grid}.route-map-panel.is-pickup-review-locked{background:#edf1f5}.route-map-panel.is-pickup-review-locked .route-map-layout{pointer-events:none;-webkit-user-select:none;user-select:none;filter:grayscale();opacity:.46}.route-map-panel.is-pickup-review-locked .panel-heading{color:var(--muted)}.route-builder-filters{border:1px solid var(--line);border-radius:var(--radius-sm);background:#f7fafc;grid-template-columns:minmax(124px,.85fr) minmax(132px,.9fr) minmax(164px,1fr) auto;align-items:end;gap:10px;margin-bottom:16px;padding:12px;display:grid}.route-builder-filters label{min-width:0;color:var(--ink-soft);gap:6px;font-size:.84rem;font-weight:800;display:grid}.route-builder-filters select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:40px;color:var(--ink);padding:8px 10px}.route-builder-filters .secondary-button{white-space:nowrap;min-height:40px}.route-assignment-map{gap:12px;min-width:0;display:grid}.route-assignment-map-canvas{aspect-ratio:1;width:min(100%,100dvh);min-height:0}.route-map-pin{background:var(--accent)}.route-map-pin.is-routed{opacity:.42;cursor:default;background:#8aa7bf}.route-map-pin.is-specific-day{background:#c2414b}.route-map-pin:disabled{pointer-events:none}.route-map-pin span{font-size:.72rem}.route-map-legend{color:var(--ink-soft);flex-wrap:wrap;gap:10px 16px;font-size:.86rem;font-weight:700;display:flex}.route-map-legend span{align-items:center;gap:6px;display:inline-flex}.legend-dot{background:var(--accent);border-radius:50%;width:10px;height:10px}.legend-dot.routed{opacity:.55;background:#8aa7bf}.legend-dot.end{background:#12345f}.legend-dot.required{background:#c2414b}.active-route-panel{grid-template-rows:auto minmax(0,1fr);gap:14px;min-width:0;display:grid}.active-route-header{gap:12px;display:grid}.active-route-selectors{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.active-route-selectors label{color:var(--ink-soft);gap:6px;font-size:.86rem;font-weight:700;display:grid}.active-route-selectors select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--ink);padding:8px 10px}.active-route-stops{min-width:0}.active-route-empty-state{margin-top:12px}.active-route-clone{border-left:3px solid #b7cbe0;align-items:center;gap:8px;margin-top:2px;padding-left:9px;display:grid}.active-route-clone-reveal{justify-self:start;min-height:36px;padding:7px 12px}.active-route-clone-chain{gap:6px;display:grid}.active-route-clone-row{grid-template-columns:18px minmax(0,1fr) minmax(104px,.72fr) minmax(156px,auto);align-items:stretch;gap:6px;min-height:40px;display:grid}.active-route-clone-row label{color:var(--ink-soft);gap:4px;font-size:.78rem;font-weight:800;display:grid}.active-route-clone-branch{position:relative}.active-route-clone-branch:before,.active-route-clone-branch:after{content:"";background:var(--line);position:absolute}.active-route-clone-branch:before{width:2px;top:-8px;bottom:50%;left:7px}.active-route-clone-branch:after{width:10px;height:2px;top:50%;left:7px}.active-route-clone select{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--ink);padding:8px 10px}.active-route-clone-row.is-selected select{color:var(--muted)}.active-route-copy-source{min-height:36px;color:var(--ink-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;font-size:.84rem;font-weight:800;display:grid}.active-route-copy-source span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.active-route-clone-actions{grid-template-columns:repeat(2,minmax(72px,auto));align-self:end;gap:6px;display:grid}.active-route-clone-action{white-space:nowrap;align-self:end;width:100%;min-height:40px;padding:8px 12px}.active-route-clone-filter{color:var(--ink-soft);align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:inline-flex}.active-route-clone-filter input{width:16px;height:16px;accent-color:var(--accent)}.icon-button.active-route-clone-remove{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:34px;min-width:34px;min-height:40px;color:var(--ink-soft);cursor:pointer;place-items:center;font-size:1.2rem;font-weight:800;line-height:1;display:inline-grid}.active-route-stop-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.active-route-stop{border-radius:var(--radius-lg);background:var(--surface-strong);border:1px solid #10243f14;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.route-endpoint-stop{background:var(--surface);border-color:#235d7d38;grid-template-columns:auto minmax(0,1fr)}.route-endpoint-stop .route-index{border-radius:var(--radius-sm);color:#f8fcff;text-transform:uppercase;background:#155b8d;width:56px;height:36px;font-size:.76rem}.route-endpoint-stop>div:last-child{gap:3px;min-width:0;display:grid}.route-endpoint-end{border-color:#12345f42}.route-endpoint-sewage{border-color:#1971583d}.route-endpoint-sewage .route-index{background:#197158}.route-sewage-stop{border-color:#1971583d}.route-sewage-stop.is-removed{color:var(--muted);background:#eef2f6;border-color:#64748b2e}.route-sewage-stop.is-removed .route-index{color:#f8fcff;background:#9aa6b2}.route-sewage-stop.is-removed strong,.route-sewage-stop.is-removed span{color:var(--muted)}.route-sewage-stop .route-index{color:#f8fcff;background:#197158}.route-endpoint-end .route-index{background:#12345f}.active-route-stop div:nth-child(3){gap:3px;min-width:0;display:grid}.active-route-stop span{color:var(--ink-soft);font-size:.84rem}.status-chip,.priority-chip{border-radius:999px;margin-right:8px;padding:6px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.status-chip{color:var(--ok);background:#2f7d571f}.priority-chip{color:var(--warn);background:#1f6fb224}.jobs-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.jobsite-panel .jobs-list{grid-template-columns:1fr}.customers-list{grid-template-columns:1fr;align-content:start;min-height:0;padding-right:4px;overflow-y:auto}.customer-table-header{grid-template-columns:minmax(160px,1fr) minmax(130px,.8fr) minmax(120px,.7fr) minmax(110px,.6fr) minmax(220px,1.3fr);gap:14px;margin-bottom:10px;padding:0 18px;display:grid}.jobsite-table-header{grid-template-columns:minmax(130px,.9fr) minmax(130px,1fr) minmax(150px,1fr) minmax(130px,1fr) minmax(220px,1.4fr);gap:14px;margin-bottom:10px;padding:0 18px;display:grid}.customer-sort-button,.jobsite-sort-button{appearance:none;color:var(--ink-soft);cursor:pointer;font:inherit;letter-spacing:.08em;text-align:left;text-transform:uppercase;background:0 0;border:0;min-width:0;padding:0;font-size:.72rem;font-weight:800}.customer-sort-button.is-active,.customer-sort-button:hover,.customer-sort-button:focus-visible,.jobsite-sort-button.is-active,.jobsite-sort-button:hover,.jobsite-sort-button:focus-visible{color:var(--accent-dark);outline:none}.job-card,.customer-card,.customer-row-card,.technician-card,.unit-card,.inventory-card,.office-card{padding:18px}.customer-row-card{border-radius:var(--radius-lg);background:var(--surface-strong);border:1px solid #10243f14;grid-template-columns:minmax(160px,1fr) minmax(130px,.8fr) minmax(120px,.7fr) minmax(110px,.6fr) minmax(220px,1.3fr);align-items:center;gap:14px;display:grid}.customer-row-cell{overflow-wrap:anywhere;min-width:0}.customer-row-name{gap:6px;display:grid}.customer-card h3,.technician-card h3,.job-card h3,.unit-card h3,.office-card h3,.route-card h3{margin-bottom:8px}.jobsite-row-card{grid-template-columns:minmax(130px,.9fr) minmax(130px,1fr) minmax(150px,1fr) minmax(130px,1fr) minmax(220px,1.4fr);align-items:center;gap:14px;display:grid}.jobsite-row-cell{overflow-wrap:anywhere;min-width:0}.jobsite-row-customer{gap:6px;display:grid}.jobsite-row-customer .status-chip{justify-self:start;margin-right:0;display:inline-flex}.jobsite-row-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:10px;padding-top:2px;display:flex}.jobsite-row-actions .primary-button,.jobsite-row-actions .secondary-button{padding:9px 12px;font-size:.86rem}.editable-card{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.editable-card:hover,.editable-card:focus-visible{border-color:#1f6fb270;outline:none;transform:translateY(-1px);box-shadow:0 16px 34px #08244c1f}.technicians-grid,.inventory-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.inventory-layout,.account-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start;gap:20px;display:grid}.account-layout-single{grid-template-columns:1fr}.account-tab-list{background:#ffffffb8;border:1px solid #10243f1a;border-radius:12px;flex-wrap:wrap;gap:8px;width:fit-content;max-width:100%;margin:0 0 16px;padding:6px;display:flex;box-shadow:0 12px 28px #08244c14}.account-tab{min-height:36px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:8px 12px;font-size:.92rem;font-weight:800}.account-tab:hover,.account-tab:focus-visible{color:var(--blue-deep);border-color:#1f6fb247;outline:none}.account-tab.is-active{color:#0f172a;background:#fff;border-color:#1f6fb23d;box-shadow:0 8px 18px #1f6fb22e}.account-tab-panels{gap:20px;display:grid}.billing-management-panel{grid-column:1/-1}.account-import-panel{gap:16px;display:grid}.account-import-panel .primary-button{width:fit-content}.account-data-panel{gap:16px;display:grid}.account-data-actions{flex-wrap:wrap;gap:10px;display:flex}.account-danger-panel{background:snow;border-color:#9a341238}.account-delete-all-form{max-width:420px}.account-intake-panel{grid-column:1/-1;gap:12px;display:grid}.account-intake-panel .primary-button,.account-intake-panel .secondary-button{width:fit-content}.account-intake-actions{flex-wrap:wrap;gap:10px;display:flex}.account-intake-actions [data-customer-intake-prompt-copy]{min-width:218px}.intake-overview{gap:8px;display:grid}.intake-overview p{color:var(--ink-soft);margin:0;line-height:1.55}.intake-schema-note{color:var(--ink-soft);margin:0;font-size:.92rem;font-weight:700}.intake-column-list{border-radius:var(--radius-md);background:var(--surface-muted);color:var(--ink-soft);overflow-wrap:anywhere;border:1px solid #1f5f4024;margin:0;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.55}.intake-guide{border-radius:var(--radius-md);background:#f8fcff8a;border:1px solid #1f5f4024}.intake-guide summary{cursor:pointer;color:var(--ink);padding:12px;font-weight:800}.intake-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 12px 12px;display:grid}.intake-guide-grid section{gap:4px;display:grid}.intake-guide-grid h3{color:var(--ink);margin:0;font-size:.92rem}.intake-guide-grid p{color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.45}.billing-summary{margin-bottom:16px}.billing-card{border-color:#1f5f402e}.billing-plan-choice-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:12px;display:grid}.billing-plan-choice-grid .secondary-button{text-align:center;white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:52px;font-size:1.05rem;display:flex}.billing-plan-choice-grid .secondary-button:disabled{color:#0f172a;opacity:1;background:#fff}.billing-plan-choice-grid span{color:var(--muted);font-size:1rem}.billing-plan-choice-grid .secondary-button:disabled span{color:#0f172a}.billing-confirm-panel{max-width:520px}.dispatch-route-panel{max-width:620px}.dispatch-route-group{border:0;gap:10px;margin:0;padding:0;display:grid}.dispatch-route-group legend{margin-bottom:8px;font-weight:800}.billing-confirmation{gap:12px;display:grid}.billing-confirm-list{gap:10px;margin:0;display:grid}.billing-confirm-list div{border-bottom:1px solid var(--border);gap:4px;padding:10px 0;display:grid}.billing-confirm-list dt{color:var(--muted);text-transform:uppercase;font-size:.82rem;font-weight:700}.billing-confirm-list dd{margin:0}.billing-action-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.customer-intake-modal-panel{max-width:560px}.data-modal-panel.customer-intake-review-panel{width:min(96vw,1320px);max-width:min(1320px,100vw - 24px);height:min(90vh,900px);max-height:min(90vh,900px);overflow:hidden}.data-modal-panel.customer-intake-edit-panel{width:min(92vw,560px);max-height:min(88vh,760px)}.customer-intake-review-panel .management-form{grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0}.customer-intake-review-panel .confirmation-copy{color:var(--ink);background:#d9eaf88a;font-weight:700}.customer-intake-review-panel .confirmation-actions{flex-shrink:0}.weekly-service-log-panel{max-width:860px}.intake-summary{border-radius:var(--radius-md);background:var(--surface-muted);border:1px solid #1f5f4029;gap:6px;padding:14px;display:grid}.intake-summary strong{color:var(--ink)}.intake-summary span{color:var(--muted)}.intake-summary[data-tone=error]{border-color:#9a34124d}.intake-summary[data-tone=error] strong{color:var(--warn)}.intake-working-indicator{color:var(--brand);align-items:center;gap:8px;font-weight:700;display:inline-flex}.intake-working-spinner{border:2px solid #1f5f402e;border-top-color:var(--brand);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite intake-working-spin}@keyframes intake-working-spin{to{transform:rotate(360deg)}}.intake-review-list{gap:12px;min-height:0;display:grid}.intake-preview-summary{grid-template-columns:repeat(6,minmax(112px,1fr));gap:10px;display:grid}.intake-preview-summary div{background:#d9eaf87a;border:1px solid #10243f1a;border-radius:8px;gap:3px;padding:12px;display:grid}.intake-preview-summary strong{color:var(--ink-soft);font-size:1.15rem}.intake-preview-summary span,.intake-preview-mode,.intake-preview-review-note{color:var(--muted);font-size:.86rem;font-weight:700}.intake-preview-mode{color:var(--muted);background:#f8fcffb8;border:1px solid #10243f1a;border-radius:8px;padding:10px 12px}.intake-preview-bulk-actions{background:#f8fcffb8;border:1px solid #10243f1a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.intake-preview-bulk-actions span{color:var(--ink-soft);margin-right:auto;font-size:.86rem;font-weight:800}.intake-preview-bulk-actions .secondary-button{min-height:34px;padding:7px 12px;font-size:.82rem}.intake-preview-review-note{color:var(--warn);background:#9a34120f;border:1px solid #9a341238;border-radius:8px;padding:10px 12px}.intake-preview-table{gap:8px;min-height:0;padding-right:4px;display:grid;overflow:hidden auto}.intake-review-header,.intake-review-row{grid-template-columns:minmax(70px,.5fr) minmax(92px,.72fr) minmax(120px,1fr) minmax(160px,1.25fr) minmax(84px,.72fr) minmax(72px,.58fr) minmax(140px,1.1fr) minmax(82px,.6fr);align-items:start;gap:10px;display:grid}.intake-review-header{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.intake-review-row{background:var(--surface);min-width:0;color:var(--ink-soft);border:1px solid #1f5f4024;border-radius:8px;padding:12px;font-size:.9rem;font-weight:700}.intake-review-row span{overflow-wrap:anywhere;min-width:0}.intake-review-select{color:var(--muted);align-items:center;gap:6px;font-size:.78rem;font-weight:800;display:inline-flex}.intake-review-select input{width:16px;height:16px;accent-color:var(--accent)}.intake-review-edit-button{min-height:34px;padding:7px 12px;font-size:.82rem}.intake-review-row.needs-review{background:#9a34120f;border-color:#9a341247}.intake-review-row.needs-review>span:nth-child(2){color:var(--warn)}.intake-review-row small{color:var(--muted);margin-top:3px;font-size:.78rem;line-height:1.35;display:block}.intake-review-overflow{color:var(--ink-soft);margin:0;font-size:.9rem;font-weight:800}@media (width<=980px){.intake-preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-review-header{display:none}.intake-review-row{grid-template-columns:repeat(2,minmax(0,1fr))}.intake-review-row span:nth-child(2),.intake-review-row span:nth-child(4),.intake-review-row span:nth-child(7),.intake-review-row span:nth-child(8){grid-column:1/-1}}@media (width<=560px){.intake-preview-summary,.intake-review-row{grid-template-columns:1fr}.intake-preview-bulk-actions{display:grid}.intake-preview-bulk-actions span{margin-right:0}.customer-intake-review-panel .confirmation-actions{display:grid}.customer-intake-review-panel .confirmation-actions .primary-button,.customer-intake-review-panel .confirmation-actions .secondary-button{width:100%}}.intake-mode-group{border-radius:var(--radius-md);background:var(--surface);border:1px solid #1f5f4029;gap:10px;margin:0;padding:14px;display:grid}.intake-mode-group[hidden]{display:none}.intake-mode-group legend{color:var(--ink);padding:0 4px;font-weight:800}.weekly-service-log-list{gap:10px;max-height:min(56vh,560px);padding-right:4px;display:grid;overflow:auto}.weekly-service-log-row{background:var(--surface);border:1px solid #1f5f4024;border-radius:8px;gap:10px;margin:0;padding:12px;display:grid}.weekly-service-log-row legend{color:var(--ink);gap:3px;padding:0 4px;font-weight:800;display:grid}.weekly-service-log-row legend small{color:var(--muted);font-size:.78rem;font-weight:700}.weekly-service-log-days{flex-wrap:wrap;gap:8px;display:flex}.weekly-service-log-days label{justify-content:center;align-items:center;display:inline-flex;position:relative}.weekly-service-log-days input{opacity:0;pointer-events:none;position:absolute}.weekly-service-log-days span{background:var(--surface-muted);min-width:46px;color:var(--ink-soft);text-align:center;border:1px solid #1f5f4033;border-radius:8px;padding:8px 10px;font-size:.82rem;font-weight:800}.weekly-service-log-days input:checked+span{color:var(--ink);background:#1f5f401f;border-color:#1f5f40b8}.weekly-service-log-days input:disabled+span{opacity:.72;cursor:not-allowed}.weekly-service-log-empty{background:var(--surface-muted);color:var(--muted);border:1px solid #1f5f4024;border-radius:8px;margin:0;padding:14px;font-weight:700}.danger-button{color:var(--warn);border-color:#9a34125c}.danger-text{color:var(--warn)}.inventory-delete-confirm-label>span{white-space:nowrap}.inventory-update-actions{grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px;display:grid}.danger-icon-button{aspect-ratio:1;color:var(--warn);border:1px solid #9a34125c;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:0;display:inline-flex}.danger-icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:20px;height:20px}.date-label-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.jobsite-date-warning{color:#b42318;font-size:.78rem;font-weight:800;line-height:1.2}.jobsite-date-warning[hidden]{display:none}.technician-dash-layout{grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);align-items:start;gap:20px;display:grid}.technician-route-list{gap:12px;display:grid}.technician-route-card{align-items:start}.technician-stop-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.technician-stop-list li{border-top:1px solid #10243f14;gap:4px;padding-top:10px;display:grid}.technician-stop-list span{color:var(--ink-soft)}.inventory-actions-panel,.account-form-panel,.account-summary-panel{min-width:0}.inventory-actions-panel,.inventory-grid{grid-column:1/-1}.inventory-action-list{flex-wrap:wrap;gap:10px;display:flex}.inventory-action-list .secondary-button{justify-content:center;width:auto;min-width:150px}.inventory-action-panel{margin:0}.inventory-delta{min-height:20px;margin:-6px 0 4px;font-weight:800}.inventory-delta:empty{display:none}.inventory-delta.is-positive{color:#16803d}.inventory-delta.is-negative{color:#c92f2f}.inventory-location{background:#eef5ff;border-color:#28568c29;padding:0;overflow:hidden}.inventory-location-heading{cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;list-style:none;display:flex}.inventory-location-heading::-webkit-details-marker{display:none}.inventory-location-heading:after{border-color:var(--ink-soft);content:"";border-style:solid;border-width:0 2px 2px 0;flex:none;width:8px;height:8px;transform:rotate(225deg)}.inventory-location:not([open]) .inventory-location-heading:after{transform:rotate(45deg)}.inventory-location-heading strong{color:var(--ink);font-size:1rem;display:block}.inventory-location-heading small{color:var(--ink-soft);margin-top:2px;font-size:.84rem;font-weight:700;display:block}.inventory-location-body{padding:0 18px 18px}.inventory-table{border-collapse:collapse;background:#fff;border:1px solid #28568c24;border-radius:8px;width:100%;overflow:hidden}.inventory-table th,.inventory-table td{border-top:1px solid var(--line);text-align:left;padding:10px 14px}.inventory-table th:not(:first-child),.inventory-table td:not(:first-child){text-align:right;width:110px}.inventory-table th{color:var(--ink-soft);letter-spacing:0;text-transform:uppercase;font-size:.76rem}#inventory-grid{grid-template-columns:1fr;gap:14px;display:grid}.forms-panel{gap:16px;display:grid}.form-message{min-height:22px;color:var(--ink-soft);font-weight:700}.auth-panel>.form-message:empty,.management-form>.form-message:empty{display:none}.form-message[data-tone=success]{color:var(--ok)}.form-message[data-tone=error]{color:var(--warn)}.create-record-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.create-record-button{appearance:none;border-radius:var(--radius-lg);background:var(--surface-strong);min-height:96px;color:var(--ink);cursor:pointer;font:inherit;border:1px solid #10243f1a;font-size:1rem;font-weight:800;transition:transform .18s,border-color .18s,box-shadow .18s;box-shadow:0 12px 30px #08244c14}.create-record-button:hover,.create-record-button:focus-visible{border-color:#1f6fb270;transform:translateY(-1px);box-shadow:0 16px 34px #08244c1f}.crapper-tracker-map{display:block}.crapper-map-canvas{aspect-ratio:1;border-radius:var(--radius-lg);background:linear-gradient(90deg,#10243f0d 1px,#0000 1px) 0 0/42px 42px,linear-gradient(0deg,#10243f0d 1px,#0000 1px) 0 0/42px 42px,linear-gradient(135deg,#eaf4ff 0%,#d7e9f8 48%,#edf7ff 100%);border:1px solid #10243f1a;width:min(100%,100dvh);min-height:0;position:relative;overflow:hidden}.crapper-tracker-map .crapper-map-canvas{width:100%;height:75dvh;min-height:360px}.crapper-tracker-map .mapboxgl-canvas,.crapper-tracker-map .mapboxgl-canvas-container{width:100%!important;height:100%!important}.location-picker-map{border-radius:var(--radius-lg);width:100%;min-height:min(64vh,600px);color:var(--ink-muted);text-align:center;background:linear-gradient(90deg,#10243f0d 1px,#0000 1px) 0 0/42px 42px,linear-gradient(0deg,#10243f0d 1px,#0000 1px) 0 0/42px 42px,#eaf4ff;border:1px solid #10243f1a;font-weight:800;display:block;position:relative;overflow:hidden}.crapper-map-road{background:#f8fcffc7;border-radius:999px;position:absolute;box-shadow:0 0 0 1px #10243f0d}.crapper-map-road-primary{width:120%;height:34px;top:46%;left:-10%;transform:rotate(-12deg)}.crapper-map-road-secondary{width:34px;height:125%;top:-12%;left:58%;transform:rotate(18deg)}.crapper-map-road-tertiary{width:78%;height:22px;top:22%;left:8%;transform:rotate(28deg)}.crapper-map-pin{appearance:none;z-index:1;color:#f8fcff;cursor:pointer;border:3px solid #f8fcff;border-radius:50% 50% 50% 10%;place-items:center;width:38px;height:38px;padding:0;font-weight:900;line-height:1;display:grid;position:absolute;transform:translate(-50%,-100%)rotate(-45deg);box-shadow:0 12px 24px #10243f33}.crapper-map-pin:before{content:"";background:#f8fcff33;border-radius:50%;position:absolute;inset:9px}.crapper-map-pin-office,.crapper-map-pin-start{background:#155b8d}.crapper-map-pin-sewageCollection,.crapper-map-pin-end{background:#12345f}.crapper-map-pin-jobsite{background:var(--accent)}.crapper-map-pin.is-selected{background:#f28c28;box-shadow:0 14px 28px #f28c2852}.crapper-map-pin-office,.crapper-map-pin-sewageCollection,.crapper-map-pin-start,.crapper-map-pin-end,.crapper-map-pin-jobsite{font-family:Arial,sans-serif}.crapper-map-pin span{z-index:1;position:relative;transform:rotate(45deg)}.crapper-location-detail{min-width:0}.crapper-location-item span,.crapper-map-empty span,.crapper-location-empty span{color:var(--ink-soft);font-size:.9rem;font-weight:600;line-height:1.35}.crapper-location-item strong{color:var(--ink);font-size:.95rem;font-weight:700;line-height:1.25}.crapper-location-detail{grid-column:1}.crapper-tracker-map .crapper-location-detail{margin-top:10px}.crapper-location-item,.crapper-location-empty{border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid #10243f14;gap:4px;padding:12px;display:grid}.crapper-location-item{grid-template-columns:minmax(0,1fr) minmax(220px,auto);align-items:center;gap:12px 28px}button.crapper-location-item{appearance:none;width:100%;font:inherit;text-align:inherit;color:inherit}.crapper-location-action{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.crapper-location-action:hover,.crapper-location-action:focus-visible{border-color:#f28c2873;transform:translateY(-1px);box-shadow:0 12px 24px #10243f1f}.crapper-location-action:disabled{cursor:default;transform:none}.crapper-location-item-jobsite{grid-template-columns:minmax(0,1fr) minmax(160px,auto) minmax(220px,auto)}.crapper-location-primary,.crapper-location-secondary,.crapper-location-service,.crapper-location-units,.crapper-location-unit-list{gap:4px;min-width:0;display:grid}.crapper-location-service{text-align:center;justify-items:center}.crapper-location-secondary,.crapper-location-units{text-align:right;justify-items:end}.crapper-location-unit-list{justify-items:end}.crapper-location-detail-label,.crapper-location-kind{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;line-height:1.2}.crapper-map-empty{border-radius:var(--radius-lg);background:var(--surface-strong);text-align:center;place-items:center;gap:8px;min-height:220px;padding:24px;display:grid}.data-modal[hidden],.management-form[hidden]{display:none}.data-modal{z-index:2147483647;isolation:isolate;width:100%;max-width:none;height:100%;max-height:none;color:inherit;background:0 0;border:0;place-items:center;margin:0;padding:24px;display:grid;position:fixed;inset:0}.data-modal::backdrop{background:#10243f7a}.data-modal-backdrop{background:#10243f7a;position:absolute;inset:0}.data-modal[open] .data-modal-backdrop{background:0 0}.data-modal-panel{--modal-panel-padding:24px;z-index:1;width:min(70vw,980px);max-height:min(70vh,720px);padding:calc(var(--modal-panel-padding) - 7px);border:8px solid var(--surface-strong);scrollbar-width:thin;scrollbar-color:var(--ink-soft) var(--surface-strong);overscroll-behavior:contain;border-radius:var(--radius-xl);background:var(--surface-strong);outline:1px solid #f8fcffb8;gap:16px;display:grid;position:relative;overflow:hidden auto;box-shadow:0 28px 80px #10243f47}.inventory-action-modal-panel{width:min(92vw,460px)}.jobsite-detail-panel{width:min(86vw,1120px)}.customer-detail-panel{align-content:start;width:min(94vw,1180px);height:min(88vh,760px);overflow:hidden auto}.unit-quantity-panel{width:min(92vw,440px)}.route-optimization-panel{width:min(96vw,760px);max-height:min(92vh,880px);padding-top:calc(var(--modal-panel-padding) - 7px)}.route-precheck-panel{width:min(96vw,1120px);max-height:min(90vh,860px)}.route-optimization-panel .management-form{gap:8px;min-width:0}#route-optimization-form.is-daily-mode{gap:8px}.route-optimization-panel .form-title-row{align-items:flex-start;min-height:0}.route-optimization-panel .form-title-row h4{margin:0;line-height:1.1}#route-optimization-form.is-daily-mode .route-optimization-copy[hidden]{display:none}#route-optimization-form.is-complete{gap:8px}#route-optimization-form.is-complete .form-title-row{display:flex}#route-optimization-form.is-complete .confirmation-actions{margin-top:0}#route-optimization-done-close-button{min-width:180px}.route-optimization-copy{color:var(--ink-soft);margin:0;line-height:1.5}.route-optimization-week-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.route-optimization-week-summary,.route-optimization-jobsite-count{color:var(--ink);font-weight:800}.route-optimization-jobsite-count{color:var(--ink-muted);font-size:.9rem}.route-optimization-dropoff-fields,.route-optimization-priority-fields,.route-optimization-truck-day-fields,.route-front-load-fields{border:0;gap:8px;min-inline-size:0;margin:0;padding:0;display:grid}.route-optimization-dropoff-fields legend,.route-optimization-priority-fields legend,.route-optimization-truck-day-fields legend,.route-front-load-fields legend{width:100%;color:var(--ink);text-align:left;margin:0;padding:0 0 4px;font-size:.9rem;font-weight:800;display:block}.route-front-load-fields[hidden]{display:none}.route-front-load-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.route-front-load-grid label{margin:0}.route-front-load-fields legend{padding-bottom:2px;font-size:1rem}.route-front-load-fields p{color:var(--ink-muted);text-align:left;margin:0;font-size:.85rem;line-height:1.35}.route-optimization-truck-day-rows{gap:8px;display:grid}.route-optimization-truck-day-row{grid-template-columns:minmax(72px,auto) minmax(0,1fr);align-items:center;gap:10px;display:grid}.route-optimization-truck-day-row strong{color:var(--ink);font-size:.86rem}.route-optimization-truck-day-row .route-toggle-grid{gap:4px}.route-optimization-truck-day-row .route-toggle-grid span{min-width:42px}.route-optimization-truck-day-row .route-toggle-grid input:disabled+span{cursor:not-allowed;opacity:.42;background:var(--surface-muted);color:var(--ink-muted);border-color:var(--line)}.route-optimization-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.route-optimization-choice-grid label{min-width:0}.route-optimization-choice-grid input{opacity:0;pointer-events:none;position:absolute}.route-optimization-choice-grid span{border-radius:var(--radius-sm);min-height:38px;color:var(--ink-soft);text-align:center;background:#f8fcffc7;border:1px solid #10243f1f;place-items:center;padding:8px;font-weight:800;display:grid}.route-optimization-choice-grid input:checked+span{color:var(--ink);background:#2a6f971a;border-color:#2a6f975c}.route-optimization-priority-toggle{border-radius:var(--radius-sm);background:#f8fcffd6;border:1px solid #10243f24;grid-template-columns:repeat(2,minmax(0,1fr));min-height:42px;display:grid;overflow:hidden}.route-optimization-mode-toggle{grid-template-columns:repeat(3,minmax(0,1fr))}.route-optimization-priority-toggle input:focus-visible+span{outline:2px solid var(--brand);outline-offset:-3px}.route-optimization-priority-toggle label{min-width:0;position:relative}.route-optimization-priority-toggle label+label{border-left:1px solid #10243f1f}.route-optimization-priority-toggle input{opacity:0;pointer-events:none;position:absolute}.route-optimization-priority-toggle span{height:100%;min-height:42px;color:var(--ink-soft);text-align:center;place-items:center;padding:8px 10px;font-weight:800;display:grid}.route-optimization-priority-toggle input:checked+span{color:var(--ink);background:#2a6f971a}.route-optimization-progress{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.route-optimization-progress:empty{display:none}.route-optimization-row{border-radius:var(--radius-sm);background:#f8fcffc7;border:1px solid #10243f1a;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:38px;padding:8px 10px;display:grid}.route-optimization-route{min-width:0;color:var(--ink);grid-template-columns:minmax(0,1fr) auto;gap:8px;font-weight:700;display:grid}.route-optimization-route span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.route-optimization-route small{color:var(--ink-soft);flex:none;font-size:.85rem;font-weight:700}.route-optimization-indicator{color:#0000;border:1px solid #10243f2e;border-radius:999px;place-items:center;width:24px;height:24px;font-size:.92rem;font-weight:900;display:grid}.route-optimization-row.is-running .route-optimization-indicator{border-width:2px;border-color:#2a6f9738;border-top-color:var(--brand);background:#2a6f970f;animation:.8s linear infinite routeOptimizationSpin}.route-optimization-row.is-complete .route-optimization-indicator{color:#15803d;background:#dcfce7;border-color:#15803d3d}.route-optimization-row.is-error .route-optimization-indicator{color:#b91c1c;background:#fee2e2;border-color:#b91c1c38}.route-optimization-summary{border-radius:var(--radius-sm);color:#14532d;background:#dcfce79e;border:1px solid #15803d2e;grid-column:1/-1;padding:10px 12px}.route-optimization-summary strong{font-size:.95rem;display:block}@keyframes routeOptimizationSpin{to{transform:rotate(360deg)}}.route-precheck-issues{gap:14px;display:grid}.route-precheck-issue{border-radius:var(--radius-md);background:var(--surface);border:1px solid #10243f1a;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:16px;display:grid}.route-precheck-issue strong,.route-precheck-issue span{display:block}.route-precheck-issue span{color:var(--ink-soft);margin-top:4px;font-size:.9rem;line-height:1.4}.route-precheck-issue .route-precheck-reason{color:var(--ink);font-size:.82rem;font-weight:700}.route-precheck-fix-form{border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid #10243f14;gap:10px;margin-top:12px;padding:12px;display:grid}.route-precheck-form-grid{grid-template-columns:minmax(260px,1fr) minmax(180px,.35fr);align-items:end;gap:12px;display:grid}.route-precheck-pin-status{border-radius:var(--radius-sm);background:var(--surface);gap:4px;padding:10px;display:grid}.route-precheck-form-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.route-precheck-save-status,.route-precheck-clear span{color:var(--ink-soft);font-size:.9rem}.route-precheck-clear{border-radius:var(--radius-md);background:var(--surface);border:1px solid #10243f1a;gap:4px;padding:16px;display:grid}@media (width<=720px){.route-precheck-issue,.route-precheck-form-grid{grid-template-columns:1fr}.route-precheck-issue>.secondary-button{width:100%}}.location-picker-panel{width:min(92vw,860px);max-height:min(88vh,760px);overflow:hidden}.location-picker-panel .form-title-row{align-items:center;gap:12px}.location-picker-actions-row{flex-shrink:0}.confirmation-copy{border-radius:var(--radius-md);background:var(--surface-muted);color:var(--ink-muted);margin:0;padding:14px;font-weight:700}.confirmation-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.jobsite-detail-summary{border-radius:var(--radius-md);background:var(--surface-muted);gap:14px;padding:14px;display:grid}.jobsite-summary-heading{gap:4px;display:grid}.jobsite-summary-heading strong{color:var(--ink);font-size:1.16rem;line-height:1.4}.jobsite-summary-map-preview{gap:8px;max-width:460px;display:grid}.jobsite-summary-map-toggle{background:#fff;border:1px solid #1f6fb257;width:fit-content;box-shadow:0 1px 2px #10243f14}.jobsite-summary-map-toggle:hover,.jobsite-summary-map-toggle:focus-visible{background:#f8fbff;border-color:#1f6fb294}.jobsite-summary-map-panel{gap:7px;display:grid}.jobsite-summary-map-panel[hidden]{display:none}.jobsite-summary-map-canvas{min-height:190px}.jobsite-summary-map-panel p{color:var(--ink-muted);margin:0;font-size:.8rem;font-weight:750}.jobsite-summary-grid,.jobsite-summary-chip-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px;display:grid}.jobsite-summary-field{align-content:start;gap:5px;min-width:0;display:grid}.jobsite-summary-field span{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:800}.jobsite-summary-field strong{min-width:0;color:var(--ink);font-size:.92rem;line-height:1.35}.jobsite-summary-field-wide{grid-column:1/-1}.jobsite-last-service-row{gap:12px;display:grid}.jobsite-last-service-card{background:#fff;border:1px solid #1f6fb229;border-radius:8px;gap:7px;min-width:0;padding:12px;display:grid}.jobsite-last-service-heading,.jobsite-history-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.jobsite-last-service-heading h4,.jobsite-history-title-row h4{margin:0}.jobsite-last-service-card strong{color:var(--ink);font-size:.98rem;line-height:1.35}.jobsite-last-service-card p{color:var(--ink-muted);margin:0;line-height:1.45}.jobsite-summary-chip-row{align-items:end;padding-top:2px}.jobsite-summary-chip-row .status-chip,.jobsite-summary-chip-row .priority-chip{justify-self:start;width:fit-content;margin-right:0}.jobsite-detail-grid{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}.jobsite-edit-summary-form{border-radius:var(--radius-md);background:var(--surface-muted);grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.jobsite-edit-summary-form h4,.jobsite-edit-summary-form .location-picker-actions,.jobsite-edit-summary-form .date-fields,.jobsite-edit-summary-form .unit-needs-fieldset,.jobsite-edit-summary-form .restricted-access-notes-slot,.jobsite-edit-summary-form .inline-fields,.jobsite-edit-summary-form .form-action-row{grid-column:1/-1}.jobsite-edit-summary-form label:has(textarea){grid-column:1/-1}.jobsite-edit-summary-form .date-label-actions .secondary-button{background:var(--surface);color:var(--accent-strong);border:1px solid #1f6fb238;box-shadow:0 1px 2px #17304a14}.jobsite-edit-summary-form .date-label-actions .secondary-button:hover{background:#f8fbff}.customer-detail-grid{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}.customer-edit-summary-form{border-radius:var(--radius-md);background:var(--surface-muted);grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.customer-edit-summary-form h4,.customer-edit-summary-form .form-action-row{grid-column:1/-1}.customer-edit-summary-form label:has(textarea){grid-column:1/-1}.modal-title-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.customer-jobsites-panel{gap:12px;min-width:0;display:grid}.customer-jobsites-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.customer-jobsites-heading-row h4{margin:0}.customer-detail-jobsite-form{border-radius:var(--radius-md);background:var(--surface-muted);padding:14px}.customer-detail-jobsite-form .date-label-actions .secondary-button{background:var(--surface);color:var(--accent-strong);border:1px solid #1f6fb238;box-shadow:0 1px 2px #17304a14}.customer-detail-jobsite-form .date-label-actions .secondary-button:hover{background:#f8fbff}.customer-jobsite-table-header,.customer-jobsite-row{grid-template-columns:minmax(240px,1.35fr) minmax(160px,.8fr) minmax(180px,.85fr);align-items:center;gap:14px;display:grid}.customer-jobsite-table-header{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;padding:0 18px;font-size:.72rem;font-weight:800}.customer-jobsite-list{gap:14px;display:grid}.customer-jobsite-row{background:var(--surface);border:1px solid #10243f14;border-radius:8px;padding:18px;box-shadow:0 12px 28px #08244c14}.customer-jobsite-cell{overflow-wrap:anywhere;min-width:0}.customer-jobsite-address{gap:6px;display:grid}.customer-jobsite-address .status-chip{justify-self:start;margin-right:0}.jobsite-log-forms,.jobsite-logs,.jobsite-logs section{gap:12px;display:grid}.jobsite-log-card{border-radius:var(--radius-md);background:var(--surface);border:1px solid #10243f14;gap:6px;padding:14px;display:grid}.jobsite-logs.is-full-history{gap:10px}.jobsite-logs.is-full-history section{gap:8px}.jobsite-logs.is-full-history .jobsite-log-card{gap:3px;padding:10px 12px}.jobsite-logs.is-full-history .jobsite-log-card p,.jobsite-logs.is-full-history .jobsite-log-card strong,.jobsite-logs.is-full-history .jobsite-log-card span{margin:0}.jobsite-logs.is-full-history .jobsite-log-card .job-meta{line-height:1.3}.jobsite-log-photo-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.compact-action-button{padding:7px 10px;font-size:.82rem}.service-log-photo-panel{margin-top:4px}.service-log-photo-grid{grid-template-columns:repeat(auto-fit,minmax(110px,140px));align-items:start;gap:10px;display:grid}.service-log-photo-card{gap:6px;margin:0;display:grid}.service-log-photo-card a{border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid #10243f1a;place-items:center;min-height:72px;max-height:160px;padding:6px;display:grid;overflow:auto}.service-log-photo-card img{object-fit:contain;width:auto;max-width:100%;max-height:148px;display:block}.service-log-photo-card figcaption{color:var(--ink-soft);gap:2px;font-size:.78rem;display:grid}.service-log-photo-card figcaption strong{color:var(--ink);font-size:.82rem}.form-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.form-title-row h4{margin-bottom:0}.modal-close-button{appearance:none;background:var(--surface-muted);color:var(--ink);cursor:pointer;font:inherit;border:0;border-radius:999px;padding:10px 12px;font-weight:700}.management-forms{display:block}.management-form{align-content:start;gap:12px;display:grid}.management-form h4{margin-bottom:0;font-size:1.35rem}.management-form label{color:var(--ink-soft);gap:6px;font-size:.86rem;font-weight:700;display:grid}.service-log-inventory-fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.service-log-inventory-fieldset legend{color:var(--ink-soft);padding:0;font-size:.86rem;font-weight:700}.service-log-inventory-options{gap:8px;display:grid}.service-log-inventory-row{background:#fbfdff;border:1px solid #10243f1f;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.service-log-inventory-row strong,.service-log-inventory-row span{display:block}.service-log-inventory-row span{color:var(--ink-soft);margin-top:2px;font-size:.82rem}.quantity-stepper{flex:none;grid-template-columns:34px 54px 34px;align-items:center;gap:6px;display:grid}.quantity-stepper input[type=number]{text-align:center;padding:8px 6px}.inventory-quantity-button{border-radius:8px;width:34px;height:34px;font-size:1.05rem}.compact-empty-state{padding:12px}.management-form .toggle-field{color:var(--ink);grid-template-columns:auto minmax(0,1fr);align-items:center}.address-sync-row{gap:6px;display:grid}.address-sync-label-row{color:var(--ink-soft);justify-content:flex-start;align-items:center;gap:10px;font-size:.86rem;font-weight:700;display:flex}.management-form .address-sync-toggle{white-space:nowrap}.jobsite-location-preview{gap:7px;max-width:420px;display:grid}.jobsite-location-preview-map{background-color:#0000;background-image:linear-gradient(135deg,#e8eff7eb,#f7fafceb),repeating-linear-gradient(42deg,#2d6a4f1a 0 2px,#0000 2px 16px);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #10243f24;border-radius:8px;min-height:250px;position:relative;overflow:hidden}.jobsite-location-preview-map:after{content:"";pointer-events:none;border:1px solid #ffffff94;position:absolute;inset:0}.jobsite-location-preview:not(.has-map) .jobsite-location-preview-map{min-height:104px}.jobsite-location-preview:not(.has-map) .jobsite-location-preview-map:before{content:"Map preview";color:var(--ink-muted);place-items:center;font-size:.78rem;font-weight:800;display:grid;position:absolute;inset:0}.jobsite-location-preview.is-loading .jobsite-location-preview-map:before{content:"Checking..."}.jobsite-location-preview p{color:var(--ink-muted);margin:0;font-size:.8rem;font-weight:750;line-height:1.35}.address-autocomplete-menu{z-index:10000;background:#fbfdff;border:1px solid #10243f24;border-radius:8px;gap:2px;max-height:min(320px,45vh);padding:6px;display:grid;position:fixed;overflow-y:auto;box-shadow:0 18px 46px #10243f2e}.address-autocomplete-menu[hidden]{display:none}.address-autocomplete-option{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;gap:2px;padding:9px 10px;display:grid}.address-autocomplete-option:hover,.address-autocomplete-option.is-active{background:#2d6a4f1a}.address-autocomplete-option span,.address-autocomplete-option small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.address-autocomplete-option span{font-weight:800}.address-autocomplete-option small{color:var(--ink-muted);font-size:.78rem;font-weight:700}.location-picker-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.location-picker-trigger{width:fit-content}.location-coordinate-status{min-height:1.2em;color:var(--ink-muted);font-size:.84rem;font-weight:800}.work-days-field{border:0;gap:8px;margin:0;padding:0;display:grid}.work-days-field legend,.start-point-field legend{color:var(--ink-soft);padding:0;font-size:.86rem;font-weight:700}.start-point-field{border:0;gap:8px;margin:0;padding:0;display:grid}.start-point-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.start-point-choices label{display:block}.start-point-choices input{opacity:0;pointer-events:none;position:absolute}.start-point-choices span{min-height:38px;color:var(--ink-soft);cursor:pointer;background:#fbfdff;border:1px solid #10243f29;border-radius:8px;place-items:center;font-size:.88rem;font-weight:800;transition:background-color .16s,border-color .16s,color .16s;display:grid}.start-point-choices input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--surface)}.start-point-choices input:focus-visible+span{outline-offset:2px;outline:3px solid #1c345438}.work-day-tiles{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.work-day-tiles label{display:block}.work-day-tiles input{opacity:0;pointer-events:none;position:absolute}.work-day-tiles span{min-height:34px;color:var(--ink-soft);cursor:pointer;background:#fbfdff;border:1px solid #10243f29;border-radius:8px;place-items:center;font-size:.88rem;font-weight:800;transition:background-color .16s,border-color .16s,color .16s;display:grid}.work-day-tiles input:checked+span{border-color:var(--ok);color:var(--ok);background:#2f7d5729}.work-day-tiles input:focus-visible+span{outline-offset:2px;outline:3px solid #1f6fb252}.management-form input,.management-form select,.management-form textarea{width:100%;color:var(--ink);font:inherit;background:#fbfdff;border:1px solid #10243f29;border-radius:10px;padding:10px 12px}.management-form textarea{resize:vertical;min-height:84px}.management-form input[type=checkbox]{width:auto}.team-member-warning,.co-owner-confirmation{color:var(--ink);background:#b2652514;border:1px solid #b2652552;border-radius:8px;gap:8px;padding:12px;font-size:.9rem;display:grid}.team-member-warning[hidden],.co-owner-confirmation[hidden]{display:none}.co-owner-confirmation p{color:var(--ink-soft);margin:0}.co-owner-confirmation label{align-items:flex-start;gap:8px;display:flex}.management-form .intake-mode-group label{color:var(--ink-soft);align-items:flex-start;gap:8px;font-weight:700;line-height:1.35;display:flex}.management-form .intake-mode-group input[type=radio]{flex:none;width:auto;margin-top:3px;padding:0}.intake-mode-copy{gap:4px;display:grid}.intake-delete-warning{color:var(--warn);font-size:.82rem;font-weight:800;line-height:1.35;display:none}.intake-mode-group input[type=radio]:checked+.intake-mode-copy .intake-delete-warning{display:block}.customer-search-field{margin-bottom:-6px}.customer-suggestions{background:#fbfdff;border:1px solid #10243f29;border-radius:10px;overflow:hidden}.customer-suggestion{appearance:none;width:100%;color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-bottom:1px solid #10243f1a;gap:3px;padding:10px 12px;display:grid}.customer-suggestion:last-child{border-bottom:0}.customer-suggestion:hover,.customer-suggestion:focus-visible{background:var(--surface-muted)}.customer-suggestion span{color:var(--ink-soft);font-size:.86rem}.management-form .primary-button{margin-top:4px}.form-action-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:10px;display:grid}.management-form .form-action-row .primary-button,.management-form .form-action-row .secondary-button{width:100%;margin-top:4px}.nested-form-fields{border-radius:var(--radius-md);background:var(--surface-muted);border:0;gap:12px;padding:12px;display:grid}.nested-form-fields:disabled{opacity:.55}.nested-form-fields:disabled input,.nested-form-fields:disabled select,.nested-form-fields:disabled textarea,.nested-form-fields:disabled button{cursor:not-allowed}.inventory-inputs,.inline-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.date-fields{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:10px;display:grid}.date-label-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.unit-needs-fieldset{border:0;gap:10px;margin:0;padding:0;display:grid}.unit-needs-fieldset legend{color:#000;padding:0;font-size:1rem;font-weight:700}.unit-needs-list{gap:16px;display:grid}.unit-need-row{background:#f6f9fe;border:1px solid #c9d9ed;border-left:3px solid #2563eb;border-radius:10px;grid-template-columns:minmax(0,1.4fr) minmax(86px,.6fr);align-items:end;gap:8px;padding:16px;display:grid}.unit-need-row:has(.unit-need-remove){grid-template-columns:minmax(0,1.3fr) minmax(76px,.55fr) auto}.unit-need-remove{align-self:end}.unit-card{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(96px,.28fr));align-items:center;gap:18px;display:grid}.unit-summary{align-content:center;gap:5px;min-width:0;display:grid}.unit-summary:not(:first-child){text-align:center;justify-items:center}.inventory-list{flex-wrap:wrap;gap:8px;display:flex}.unit-count{margin-bottom:0;font-size:1.85rem;font-weight:700;line-height:1}.inventory-pill{background:var(--surface-muted);color:var(--ink-soft);border-radius:999px;padding:6px 10px;font-size:.82rem}.mobile-dashboard-bar,.mobile-nav-backdrop{display:none}.mobile-dashboard-bar{z-index:50;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fcfff0;justify-content:space-between;align-items:center;gap:14px;min-width:0;padding:12px 16px;position:sticky;top:0;box-shadow:0 10px 28px #08244c14}.mobile-dashboard-bar>div{min-width:0;display:grid}.mobile-dashboard-bar strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-nav-toggle{appearance:none;background:var(--surface-strong);min-height:40px;color:var(--accent-dark);cursor:pointer;font:inherit;border:1px solid #1f6fb238;border-radius:999px;padding:9px 14px;font-weight:900}.mobile-nav-backdrop{z-index:59;background:#10243f6b;border:0;position:fixed;inset:0}.primary-button,.secondary-button,.route-button,.sidebar-link,.jobsite-tab,.account-tab,.create-record-button,.icon-button{min-width:0}.primary-button,.secondary-button,.route-button{text-align:center;overflow-wrap:anywhere;min-height:40px}.site-shell,.app-section,.panel,.dashboard-grid,.route-map-layout,.inventory-layout,.account-layout,.technician-dash-layout,.crapper-tracker-map{min-width:0}.crapper-map-canvas,.route-assignment-map-canvas{max-width:100%}@media (width<=980px){.landing-page,.pricing-grid,.pricing-feature-grid,.feature-grid,.seo-copy-grid,.support-grid{grid-template-columns:1fr}.landing-page{min-height:auto}.landing-hero h1{font-size:3.6rem}.public-page-heading h1{font-size:2.8rem}.landing-product-preview{max-width:720px}.dispatch-status-card{top:45%}.landing-cta-band,.public-footer{flex-direction:column;align-items:start}.featured-pricing-card{transform:none}.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.sidebar{border-bottom:1px solid #10243f14;border-right:0;grid-template-rows:none;height:auto;min-height:auto;position:static;overflow-y:visible}.sidebar-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.sidebar-account-link{align-self:stretch}.sidebar-link{text-align:center}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customers-list-panel .panel-heading,.jobsite-panel .panel-heading{align-items:stretch}.customer-list-search,.jobsite-list-search{max-width:none}.customer-table-header,.customer-jobsite-table-header,.customer-jobsite-row,.customer-row-card,.jobsite-table-header,.jobsite-row-card,.intake-review-header,.intake-review-row{grid-template-columns:1fr}.customer-table-header,.jobsite-table-header{padding:0}.management-forms{grid-template-columns:1fr}.create-record-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.data-modal-panel{width:min(92vw,980px);max-height:84vh}.inventory-layout,.account-layout,.technician-dash-layout,.intake-guide-grid,.crapper-tracker-map,.crapper-location-item{grid-template-columns:1fr}.crapper-location-secondary,.crapper-location-service,.crapper-location-units,.crapper-location-unit-list{text-align:left;justify-items:start}.jobsite-detail-grid,.jobsite-summary-grid,.jobsite-summary-chip-row,.customer-detail-grid{grid-template-columns:1fr}.panel-note{text-align:left}}@media (width<=640px){.public-site-shell{padding:14px}.public-header,.public-nav{border-radius:24px;flex-direction:column;align-items:center}.public-nav{justify-content:center;width:100%}.public-nav a{text-align:center;width:100%}.public-nav .secondary-button{width:100%}.public-page{padding-top:44px}.public-landing-section{padding:16px 0 44px}.landing-hero h1{font-size:2.7rem}.public-page-heading h1{font-size:2.2rem}.landing-copy,.public-page-heading p{font-size:1.05rem}.landing-actions{flex-direction:column;align-items:stretch}.landing-actions .primary-button,.landing-actions .secondary-button{text-align:center;width:100%}.landing-proof-points{grid-template-columns:1fr}.landing-product-preview{min-height:520px;padding:14px}.desktop-device{width:100%}.phone-device{border-width:5px;border-radius:22px;width:30%;min-width:98px}.phone-device-one{left:5%}.phone-device-two{left:35%}.phone-device-three{right:4%}.dispatch-status-card{max-width:180px;padding:11px 12px;top:43%;right:14px}.dispatch-signal-lines span:first-child{width:170px;top:43%;left:34%}.dispatch-signal-lines span:nth-child(2){width:190px;top:48%;left:31%}.dispatch-signal-lines span:nth-child(3){width:180px;top:48%;left:46%}.landing-cta-band .primary-button{width:100%}.sidebar{gap:16px;padding:18px 10px}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.site-shell{width:min(100% - 20px,1240px);height:auto;padding-top:20px;overflow-y:visible}.checkout-plan-grid{grid-template-columns:1fr}.checkout-truck-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.onboarding-shell{padding:18px}.onboarding-header,.onboarding-footer{flex-direction:column;align-items:stretch}.onboarding-data-slide{grid-template-columns:1fr}.onboarding-actions{justify-content:stretch}.onboarding-actions .primary-button,.onboarding-actions .secondary-button,.onboarding-header .secondary-button{width:100%}.page-heading{flex-direction:column;align-items:stretch}.page-heading .primary-button,.page-heading-actions,.page-heading-actions .secondary-button{width:100%}.panel{border-radius:22px;padding:18px}.route-tools{justify-content:stretch}.route-tools,.route-tools .primary-button{width:100%}.route-schedule-controls,.route-plan-actions,.route-assign-actions,.route-builder-filters,.pickup-review-actions,.pickup-review-action-row,.route-map-layout,.active-route-clone,.active-route-stop,.active-route-selectors{grid-template-columns:1fr}.route-plan-actions{flex-direction:column;align-items:stretch}.routing-status{text-align:left}.stats-grid,.create-record-actions{grid-template-columns:1fr}.jobsite-table-header{gap:8px}.create-record-button{min-height:72px}.data-modal{padding:10px}.data-modal-panel{--modal-panel-padding:18px;border-radius:22px;width:min(100%,980px);max-height:calc(100vh - 20px)}.route-optimization-panel .date-fields,.route-card{grid-template-columns:1fr}.route-group-heading{flex-direction:column;align-items:start}.route-actions{grid-auto-flow:column;justify-content:start}.management-form .address-sync-toggle{white-space:normal}:is(.unit-need-row,.unit-need-row:has(.unit-need-remove)){grid-template-columns:1fr}}@media (width<=1100px){.app-shell{grid-template-columns:168px minmax(0,1fr)}.sidebar{padding:20px 10px}.sidebar-link{padding:9px 10px;font-size:.92rem}.site-shell{width:min(100% - 24px,1240px);padding:24px 0 40px}.panel{border-radius:18px;padding:20px}.dashboard-grid,.route-map-layout,.inventory-layout,.account-layout,.technician-dash-layout{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-map-layout{align-items:stretch}.route-assignment-map-canvas,.crapper-map-canvas{aspect-ratio:16/10;width:100%}.customer-table-header,.jobsite-table-header,.customer-jobsite-table-header{display:none}.customer-row-card,.jobsite-row-card,.customer-jobsite-row{grid-template-columns:1fr;gap:10px;width:100%;max-width:100%;padding:16px}.customer-row-cell,.jobsite-row-cell,.customer-jobsite-cell{gap:3px;min-width:0;display:grid}.customer-row-cell:before,.jobsite-row-cell:before,.customer-jobsite-cell:before{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900}.customer-row-name:before{content:"Customer"}.customer-row-card .customer-row-cell:nth-child(2):before{content:"Contact"}.customer-row-card .customer-row-cell:nth-child(3):before{content:"Phone"}.customer-row-card .customer-row-cell:nth-child(4):before{content:"Jobsites"}.customer-row-address:before{content:"Address"}.jobsite-row-customer:before{content:"Customer"}.jobsite-row-card .jobsite-row-cell:nth-child(2):before{content:"Timeframe"}.jobsite-row-card .jobsite-row-cell:nth-child(3):before{content:"Frequency"}.jobsite-row-card .jobsite-row-cell:nth-child(4):before{content:"Units"}.jobsite-row-address:before{content:"Address"}.customer-jobsite-address:before{content:"Jobsite"}.customer-jobsite-row .customer-jobsite-cell:nth-child(2):before{content:"Frequency"}.customer-jobsite-row .customer-jobsite-cell:nth-child(3):before{content:"Units"}}@media (width<=980px){body{background:linear-gradient(#f7fbff 0%,#eef6ff 100%)}.app-shell{min-height:100vh;display:block}.mobile-dashboard-bar{display:flex}.mobile-nav-backdrop:not([hidden]){display:block}.sidebar{z-index:60;width:min(84vw,320px);min-height:100dvh;max-height:100dvh;padding:20px 14px calc(20px + env(safe-area-inset-bottom));border-right:1px solid var(--line);background:#f8fcff;border-bottom:0;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;transition:transform .18s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-105%);box-shadow:18px 0 48px #08244c38}body.mobile-nav-open .sidebar{transform:translate(0)}.sidebar-brand{padding:0 6px}.sidebar-nav{grid-template-columns:1fr;overflow-y:auto}.sidebar-account-actions{align-self:auto}.sidebar-link{text-align:left;min-height:44px}.site-shell{width:min(100% - 24px,1240px);padding:18px 0 36px}.page-heading,.panel-heading,.form-title-row,.customer-jobsites-heading-row{flex-direction:column;align-items:stretch}.page-heading .primary-button,.route-tools,.route-tools .primary-button,.account-intake-panel .primary-button,.account-intake-panel .secondary-button,.location-picker-trigger{width:100%}.route-tools,.route-week-nav,.route-plan-actions,.confirmation-actions,.location-picker-actions,.account-intake-actions{justify-content:stretch}.route-day-selector-group{justify-items:start}.route-schedule-layout{grid-template-columns:minmax(0,1fr) minmax(220px,260px)}.route-schedule-topbar{grid-template-columns:minmax(150px,1fr) auto}.route-plan-actions .primary-button,.route-plan-actions .secondary-button,.confirmation-actions .primary-button,.confirmation-actions .secondary-button,.account-intake-actions .primary-button,.account-intake-actions .secondary-button{flex:180px}.routing-status,.panel-note{text-align:left;max-width:none}.customer-table-header,.jobsite-table-header,.customer-jobsite-table-header,.intake-review-header{display:none}.customer-row-card,.jobsite-row-card,.customer-jobsite-row,.intake-review-row{grid-template-columns:1fr;gap:10px;padding:16px}.customer-row-cell,.jobsite-row-cell,.customer-jobsite-cell,.intake-review-row>div{gap:3px;display:grid}.customer-row-cell:before,.jobsite-row-cell:before,.customer-jobsite-cell:before{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:900}.customer-row-name:before{content:"Customer"}.customer-row-card .customer-row-cell:nth-child(2):before{content:"Contact"}.customer-row-card .customer-row-cell:nth-child(3):before{content:"Phone"}.customer-row-card .customer-row-cell:nth-child(4):before{content:"Jobsites"}.customer-row-address:before{content:"Address"}.jobsite-row-customer:before{content:"Customer"}.jobsite-row-card .jobsite-row-cell:nth-child(2):before{content:"Timeframe"}.jobsite-row-card .jobsite-row-cell:nth-child(3):before{content:"Frequency"}.jobsite-row-card .jobsite-row-cell:nth-child(4):before{content:"Units"}.jobsite-row-address:before{content:"Address"}.customer-jobsite-address:before{content:"Jobsite"}.customer-jobsite-row .customer-jobsite-cell:nth-child(2):before{content:"Frequency"}.customer-jobsite-row .customer-jobsite-cell:nth-child(3):before{content:"Units"}.billing-plan-choice-grid .secondary-button{white-space:normal}.data-modal-panel,.jobsite-detail-panel,.customer-detail-panel,.location-picker-panel{--modal-panel-padding:18px;border-radius:18px;width:min(100%,980px);max-height:calc(100dvh - 20px)}}@media (width<=700px){.site-shell{width:min(100% - 20px,1240px);padding-top:14px}.panel{border-radius:14px;padding:16px;box-shadow:0 12px 32px #08244c14}.page-heading h1{font-size:2.15rem}.panel-heading{gap:10px;margin-bottom:14px}.unit-card{grid-template-columns:1fr}.unit-summary:not(:first-child){text-align:center;justify-items:center}.route-schedule-panel{--route-schedule-padding:8px;padding:12px}.route-schedule-panel .panel-heading{margin-bottom:0}.route-schedule-layout,.route-schedule-topbar{grid-template-columns:1fr}.route-plan-selector-group{justify-items:stretch}.stats-grid,.create-record-actions,.inventory-inputs,.inline-fields,.date-fields,.jobsite-edit-summary-form,.customer-edit-summary-form,.route-schedule-controls,.route-assign-actions,.pickup-review-action-row,.active-route-selectors,.start-point-choices,.work-day-tiles{grid-template-columns:1fr}.crapper-map-canvas,.route-assignment-map-canvas,.location-picker-map{aspect-ratio:1;min-height:280px}.route-calendar-day-controls{grid-template-columns:repeat(var(--route-calendar-days,1), minmax(86px, 1fr))}.route-calendar-day{min-width:86px;padding:8px}.route-calendar-table{grid-template-columns:repeat(var(--route-calendar-columns), minmax(220px, 1fr));min-width:max(100%, calc(var(--route-calendar-columns) * 220px + (var(--route-calendar-columns) - 1) * 10px));gap:10px}.route-card,.active-route-stop{grid-template-columns:1fr;align-items:stretch}.route-index{width:36px;height:36px}.route-actions{flex-wrap:wrap;display:flex}.route-actions .route-button{flex:96px}.jobsite-tabs{border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.jobsite-tab{border-radius:8px}.service-log-inventory-row{flex-direction:column;align-items:stretch}}@media (width<=430px){.landing-product-preview{min-height:475px}.desktop-device img{aspect-ratio:4/3}.phone-device{min-width:86px;max-width:112px;bottom:18px}.phone-device-two{bottom:4px}.dispatch-status-card{max-width:168px;top:39%;left:16px;right:auto}.dispatch-status-card span{font-size:.8rem}.mobile-dashboard-bar{padding:10px 12px}.site-shell{width:min(100% - 14px,1240px)}.panel{padding:14px}.primary-button,.secondary-button,.route-button,.create-record-button,.sidebar-link{width:100%}.checkout-truck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-plan-actions,.confirmation-actions,.onboarding-actions,.location-picker-actions,.account-intake-actions,.date-label-actions{flex-direction:column;align-items:stretch}.route-plan-actions .primary-button,.route-plan-actions .secondary-button,.confirmation-actions .primary-button,.confirmation-actions .secondary-button,.account-intake-actions .primary-button,.account-intake-actions .secondary-button{flex-basis:auto}.quantity-stepper{grid-template-columns:40px minmax(52px,1fr) 40px}.data-modal{padding:7px}.data-modal-panel,.jobsite-detail-panel,.customer-detail-panel,.location-picker-panel{--modal-panel-padding:14px;max-height:calc(100dvh - 14px)}}.unit-info-card{color:var(--ink-soft);background:#f0f7ff;border:1px solid #cbdff4;border-radius:10px;grid-column:1/-1;padding:14px 16px;font-size:.85rem;line-height:1.45}.unit-info-card strong{color:var(--ink)}.unit-info-card p{margin:5px 0 0}.accounting-layout{gap:20px;display:grid}.accounting-toolbar{justify-content:space-between;align-items:end;gap:16px;display:flex}.accounting-toolbar label{gap:6px;display:grid}.accounting-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.accounting-metrics .panel{gap:10px;display:grid}.accounting-metrics strong{color:#174a8b;font-size:clamp(1.3rem,2vw,2rem)}.accounting-table-wrap{margin-top:16px;overflow-x:auto}.accounting-table-wrap table{border-collapse:collapse;text-align:left;width:100%}.accounting-table-wrap th,.accounting-table-wrap td{border-bottom:1px solid #dbe5ef;padding:12px}.accounting-job-row td:first-child{padding-left:24px}.accounting-form{margin-top:16px}.accounting-form select{max-width:100%}.accounting-review{border-bottom:1px solid #dbe5ef;padding:16px 0}.accounting-layout summary{cursor:pointer;font-weight:600}.accounting-log-list{grid-column:1/-1;gap:8px;max-height:240px;display:grid;overflow:auto}.accounting-log-list label{overflow-wrap:anywhere;align-items:start;gap:8px;display:flex}.accounting-log-list input{width:auto}@media (width<=800px){.accounting-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=440px){.accounting-metrics{grid-template-columns:1fr}}.job-unit-pricing{border-top:1px solid #dbe5f2;grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:4px;padding-top:12px;display:grid}.unit-title-row{align-items:center;gap:8px;display:flex}.unit-drag-handle{background:var(--blue-soft,#edf4ff);color:var(--ink-soft);cursor:grab;border:0;border-radius:6px;padding:4px 8px;font-size:1.3rem}.unit-drag-handle:active{cursor:grabbing}.unit-drag-handle:disabled{cursor:wait}.unit-drop-placeholder{box-sizing:border-box;background:#edf4ff;border:2px dashed #8aafe0;border-radius:12px}.unit-card.unit-drag-source{pointer-events:none;position:fixed;top:0;left:-10000px}.unit-drag-preview{z-index:10000;box-sizing:border-box;pointer-events:none;margin:0;position:fixed;box-shadow:0 12px 28px #183d6b33}.jobsite-price-estimate{color:#183d6b;background:#edf4ff;border-radius:10px;grid-template-columns:1fr auto;gap:6px 12px;padding:14px 16px;display:grid}.jobsite-price-estimate strong{font-size:1.25rem}.jobsite-price-estimate [data-jobsite-estimate-breakdown]{grid-column:1/-1;font-size:.85rem}
