: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}.landing-product-preview{border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#f8fcffd6;border:1px solid #10243f14;gap:16px;padding:18px;display:grid}.preview-toolbar,.preview-stop-list div{justify-content:space-between;align-items:center;gap:12px;display:flex}.preview-toolbar{padding:4px 2px}.preview-toolbar strong{font-size:1.08rem}.preview-toolbar span,.preview-stop-list span{color:var(--accent-dark);background:#1f6fb21a;border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:900}.preview-map{border-radius:var(--radius-md);background:linear-gradient(90deg,#10243f0b 1px,#0000 1px) 0 0/38px 38px,linear-gradient(0deg,#10243f0b 1px,#0000 1px) 0 0/38px 38px,linear-gradient(135deg,#eaf4ff 0%,#d7e9f8 54%,#f8fcff 100%);border:1px solid #10243f14;min-height:260px;position:relative;overflow:hidden}.preview-road,.preview-pin{position:absolute}.preview-road{background:#f8fcffeb;border-radius:999px;box-shadow:0 0 0 1px #10243f0d}.preview-road-main{width:118%;height:30px;top:48%;left:-8%;transform:rotate(-10deg)}.preview-road-cross{width:30px;height:120%;top:-10%;left:58%;transform:rotate(18deg)}.preview-pin{color:#f8fcff;border:3px solid #f8fcff;border-radius:50% 50% 50% 10%;place-items:center;width:34px;height:34px;font-size:0;font-weight:900;line-height:1;display:grid;transform:rotate(-45deg);box-shadow:0 12px 24px #10243f2e}.preview-pin-start,.preview-pin-end{background:#12345f}.preview-pin-stop{background:var(--accent)}.preview-pin-start{top:62%;left:12%}.preview-pin-one{top:42%;left:35%}.preview-pin-two{top:29%;left:57%}.preview-pin-three{top:58%;left:70%}.preview-pin-end{top:36%;left:82%}.preview-pin-start:before,.preview-pin-one:before,.preview-pin-two:before,.preview-pin-three:before,.preview-pin-end:before{font-size:.78rem;transform:rotate(45deg)}.preview-pin-start:before{content:"S"}.preview-pin-one:before{content:"1"}.preview-pin-two:before{content:"2"}.preview-pin-three:before{content:"3"}.preview-pin-end:before{content:"E"}.preview-stop-list{gap:10px;display:grid}.preview-stop-list div{background:#fbfdff;border:1px solid #10243f14;border-radius:8px;align-items:start;padding:12px}.preview-stop-list strong,.preview-stop-list small{display:block}.preview-stop-list strong{color:var(--ink)}.preview-stop-list small{color:var(--ink-soft);margin-top:3px;font-weight:700}.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}.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);height:100vh;min-height:100vh;display:grid;overflow:hidden}.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{gap:6px;padding:0 8px;display:grid}.sidebar-brand strong{font-size:1.16rem}.sidebar-identity{overflow-wrap:anywhere;color:var(--ink-soft);font-size:.82rem;line-height:1.3}.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);height:100vh;margin:0 auto;padding:32px 0 48px;overflow-y:auto}.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{cursor:not-allowed;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}.stats-panel,.forms-panel,.dashboard-grid>.route-calendar-panel,.crapper-tracker-panel{grid-column:1/-1}.stats-grid,.customers-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-schedule-panel{margin-bottom:18px}.route-week-nav{flex-wrap:wrap;justify-content:end;align-items:center;gap:10px;display:flex}.route-map-panel,.route-calendar-panel{margin-bottom:18px}.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 minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.route-calendar-truck-heading{border-bottom:1px solid var(--line);background:var(--surface-muted);justify-content:space-between;align-items:center;gap:8px;min-height:56px;padding:12px;display:flex}.route-calendar-truck-heading span{color:var(--ink-soft);white-space:nowrap;font-size:.82rem;font-weight:800}.route-calendar-stop-list{align-content:start;gap:10px;min-height:180px;margin:0;padding:12px;list-style:none;display:grid}.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-controls{grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) auto;align-items:end;gap:16px;display:grid}.route-plan-actions{flex-wrap:wrap;justify-content:end;gap:10px;margin-top:18px;display:flex}.route-selector-group{border:0;gap:10px;margin:0;padding:0;display:grid}.route-selector-group legend{color:var(--ink-soft);margin-bottom:8px;font-size:.86rem;font-weight:700}.route-toggle-grid{flex-wrap:wrap;gap:8px;display:flex}.route-toggle-grid label{cursor:pointer}.route-toggle-grid input{opacity:0;pointer-events:none;position:absolute}.route-toggle-grid span{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink-soft);border-radius:999px;justify-content:center;align-items:center;padding:8px 12px;font-weight:800;display:inline-flex}.route-toggle-grid input:checked+span{background:var(--ink);color:var(--surface);border-color:var(--ink)}.route-toggle-grid input:focus-visible+span{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: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(2px)}.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-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 34px 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}.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:auto 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-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-clone{border-left:3px solid #b7cbe0;align-items:center;gap:8px;margin-top:2px;padding-left:9px;display:grid}.active-route-clone-chain{gap:6px;display:grid}.active-route-clone-row{grid-template-columns:18px minmax(0,1fr) minmax(104px,.72fr) 34px;align-items:stretch;gap:6px;min-height:40px;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)}.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 .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{color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;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;font-size:.72rem;font-weight:800;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}.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}.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}.customers-grid,.technicians-grid,.inventory-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.inventory-layout{grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);align-items:start;gap:20px;display:grid}.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-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}.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}.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,.inventory-work-panel,.inventory-list-panel,.account-form-panel,.account-summary-panel{min-width:0}.inventory-action-list{gap:10px;display:grid}.inventory-action-list .secondary-button{justify-content:flex-start;width:100%}.inventory-action-list .secondary-button.is-active{color:var(--green-deep);background:#1f5f401f;border-color:#1f5f4052}.inventory-action-panel{margin:0}.forms-panel{gap:16px;display:grid}.form-message{min-height:22px;color:var(--ink-soft);font-weight:700}.auth-panel>.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{grid-template-columns:minmax(0,1fr) minmax(150px,180px);align-items:stretch;gap:18px;display:grid}.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}.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-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-map-summary,.crapper-location-detail{min-width:0}.crapper-map-summary{grid-template-columns:1fr;align-content:start;gap:10px;display:grid}.crapper-map-summary div{border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid #10243f14;gap:4px;padding:12px;display:grid}.crapper-map-summary strong{font-size:1.55rem;line-height:1}.crapper-map-summary span,.crapper-location-item span,.crapper-map-empty span,.crapper-location-empty span{color:var(--ink-soft);font-size:.88rem}.crapper-location-detail{grid-column:1}.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-kind{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:800}.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{z-index:1;border-radius:var(--radius-xl);background:var(--surface-strong);border:1px solid #f8fcffb8;gap:16px;width:min(70vw,980px);max-height:min(70vh,720px);padding:24px;display:grid;position:relative;overflow:hidden auto;box-shadow:0 28px 80px #10243f47}.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(92vw,520px)}.route-precheck-panel{width:min(96vw,1120px);max-height:min(90vh,860px)}.route-optimization-panel .management-form{min-width:0}.route-optimization-copy{color:var(--ink-soft);margin:0;line-height:1.5}.route-optimization-panel .date-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.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-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-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:var(--ink-soft);padding:0;font-size:.86rem;font-weight:700}.unit-needs-list{gap:8px;display:grid}.unit-need-row{grid-template-columns:minmax(0,1.4fr) minmax(86px,.6fr);align-items:end;gap:8px;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:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.unit-summary{gap:8px;display:grid}.inventory-list{flex-wrap:wrap;gap:8px;display:flex}.unit-count{margin-bottom:0;font-size:2rem;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{gap:2px;min-width:0;display:grid}.mobile-dashboard-bar strong,.mobile-dashboard-bar span{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,.feature-grid,.seo-copy-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}.landing-cta-band{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,.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{padding:14px}.preview-map{min-height:220px}.preview-stop-list div{justify-content:stretch;display:grid}.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,.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}.crapper-map-summary{grid-template-columns:1fr}.data-modal{padding:10px}.data-modal-panel{border-radius:22px;width:min(100%,980px);max-height:calc(100vh - 20px);padding:18px}.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))}.crapper-tracker-map{grid-template-columns:minmax(0,1fr)}.crapper-map-summary,.route-schedule-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.route-schedule-controls>.primary-button{grid-column:1/-1;justify-self:start}.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-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{border-radius:18px;width:min(100%,980px);max-height:calc(100dvh - 20px);padding:18px}}@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}.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,.crapper-map-summary{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,.preview-toolbar,.preview-stop-list div{flex-direction:column;align-items:stretch}}@media (width<=430px){.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{max-height:calc(100dvh - 14px);padding:14px}}
