:root{color-scheme:light;--ink:#0f1a14;--green:#17513c;--green-2:#267553;--lime:#d9f36a;--canvas:#fbfbf9;--surface:#fff;--line:#ecece7;--muted:#5b655f;--soft:#f1f4ef;--amber:#9b5c08;--amber-bg:#fff3d9;--red:#a83d36;--red-bg:#fff0ee;--blue:#385d8a;--blue-bg:#edf4ff;--radius-card:14px;--radius-control:10px;--shadow:0 12px 30px rgba(15,26,20,.08)}
*{box-sizing:border-box}html{min-width:320px;background:var(--canvas)}body{margin:0;background:var(--canvas);color:var(--ink);font:14px/1.5 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #17513c55;outline-offset:2px}a{color:inherit}
.sidebar{width:254px;position:fixed;inset:0 auto 0 0;background:var(--surface);border-right:1px solid var(--line);padding:25px 16px 18px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:10px;margin:0 8px 34px;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:-.55px;white-space:nowrap}.brand b,.mobilebrand b{width:34px;height:34px;display:grid;place-items:center;background:var(--ink);color:var(--lime);border-radius:10px;font-size:17px}.sidebar>small{margin:0 10px 10px;color:#758078;font-size:10px;font-weight:700;letter-spacing:1.2px}.sidebar nav{display:grid;gap:4px}.navlink{min-height:44px;width:100%;display:flex;align-items:center;gap:11px;padding:0 12px;border:0;border-radius:10px;background:transparent;color:#48544d;text-align:left;font-size:13px;font-weight:500;transition:background .16s,color .16s}.navlink:hover{background:#f4f6f2}.navlink.active{background:#edf2ed;color:var(--green);font-weight:650}.navlink .nav-icon{width:22px;color:currentColor;text-align:center;font-size:16px}.bottom{margin-top:auto}.help{padding:15px;background:#f5f6f1;border:1px solid #eef0e9;border-radius:12px;margin-bottom:16px;font-size:12px}.help b{font-size:12px}.help p{color:var(--muted);margin:4px 0}.help span{font-size:11px;color:var(--muted)}.user{border-top:1px solid var(--line);padding:14px 4px 0;display:flex;align-items:center;gap:10px;font-size:12px}.user i,.avatar{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:#e5eee6;color:var(--green);font-style:normal;font-weight:700}.user small{display:block;margin-top:2px;color:var(--muted);font-size:11px;text-transform:capitalize}.user>div{min-width:0;overflow:hidden;text-overflow:ellipsis}
.main{min-height:100vh;margin-left:254px;display:flex;flex-direction:column}header{height:68px;position:sticky;top:0;z-index:8;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,54px)}.crumb{font-size:13px;color:var(--muted)}.crumb b{color:var(--ink);font-weight:600}.right{display:flex;align-items:center;gap:10px}.mobilebrand{display:none}.content{width:100%;max-width:1320px;padding:34px clamp(20px,4vw,54px) 46px;margin:0 auto;flex:1}.main>footer{border-top:1px solid var(--line);padding:15px clamp(20px,4vw,54px);color:#7a847e;font-size:11px}.main>footer span{float:right}
.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:24px}.eyebrow{margin-bottom:7px;color:var(--green);font-size:10px;font-weight:700;letter-spacing:1.1px;text-transform:uppercase}.heading h1{margin:0 0 5px;font-size:30px;line-height:1.18;font-weight:600;letter-spacing:-1px}.heading p{margin:0;color:var(--muted);font-size:13px}.heading>.primary{flex:none}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:23px 0 10px}.sectionhead h3{margin:0;font-size:18px;line-height:1.25;font-weight:600;letter-spacing:-.4px}.sectionhead a{font-size:12px;color:var(--green);font-weight:600;text-decoration:none}.panel,.stat,.job,.service-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card)}.panel{padding:18px}.sectionhead+.panel{margin-top:0}.panel+.sectionhead{margin-top:25px}
.primary,.secondary,.install-button,.danger-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 17px;border:1px solid transparent;border-radius:10px;text-decoration:none;font-size:13px;font-weight:600;transition:transform .14s,background .14s,border-color .14s}.primary{min-height:48px;background:var(--ink);color:var(--lime)}.primary:hover{background:#22392b;transform:translateY(-1px)}.secondary{background:#fff;border-color:#dfe3dc;color:var(--ink)}.secondary:hover{background:#f5f7f3;border-color:#cbd4cb}.install-button{background:var(--ink);color:var(--lime);min-height:40px}.install-button:hover{background:#22392b}.danger-button{background:var(--red-bg);color:var(--red);border-color:#f4d2cd}.hidden{display:none!important}.text-button{padding:4px 0;border:0;background:transparent;color:var(--green);font-size:12px;font-weight:600}.fine,.note{color:var(--muted);font-size:12px}.fine{margin:10px 0 0}.note{margin-top:4px}.label{margin-bottom:8px;color:var(--muted);font-size:12px}.value{font-size:24px;font-weight:600;letter-spacing:-.6px}.stats,.adminstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 22px}.adminstats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat{padding:16px}.stat .ico{width:36px;height:36px;display:grid;place-items:center;float:right;background:#f0f4ef;border-radius:10px;color:var(--green)}.stat .note em{font-style:normal;color:var(--green);font-weight:600}.lower,.adminlower{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:18px}.service-list{display:grid;gap:8px}.service,.service-card{display:flex;align-items:center;gap:12px;padding:12px}.service .thumb,.thumb{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:10px;background:#f0f4ef;color:var(--green);font-size:17px}.service strong,.info strong{display:block;font-size:13px;font-weight:600}.service small,.info small,.subcell{display:block;margin-top:3px;color:var(--muted);font-size:11px}.service .price{margin-left:auto}
.hero{position:relative;overflow:hidden;min-height:235px;display:grid;grid-template-columns:1.3fr .7fr;align-items:center;padding:30px 34px;border:1px solid #e8ece5;border-radius:18px;background:#f0f4ec}.hero-copy{position:relative;z-index:1}.hero-kicker{color:var(--green);font-size:10px;font-weight:700;letter-spacing:1.2px}.hero h2{max-width:520px;margin:8px 0;font-size:30px;line-height:1.15;letter-spacing:-1px;font-weight:600}.hero p{max-width:420px;margin:0 0 18px;color:var(--muted);font-size:13px}.hero-art{position:absolute;inset:0 0 0 auto;width:43%;overflow:hidden}.sun{position:absolute;width:160px;height:160px;right:25%;top:18px;border-radius:50%;background:#dce9c9}.car{position:absolute;width:250px;height:74px;right:8%;bottom:35px;border-radius:50px 70px 18px 18px;background:var(--green)}.car:before{content:"";position:absolute;width:120px;height:50px;left:55px;top:-30px;border-radius:70px 70px 0 0;background:#71917a}.car:after{content:"●       ●";position:absolute;bottom:-15px;left:25px;color:#27352d;font-size:25px;letter-spacing:58px}.spark{position:absolute;right:20%;top:32px;color:var(--lime);font-size:25px}
.tablewrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:white}.data{width:100%;border-collapse:collapse;white-space:nowrap}.data th{padding:12px 14px;background:#f7f8f5;border-bottom:1px solid var(--line);color:#68736c;text-align:left;font-size:10px;font-weight:700;letter-spacing:.65px;text-transform:uppercase}.data td{padding:13px 14px;border-bottom:1px solid #f0f1ed;vertical-align:middle;font-size:12px}.data tbody tr:last-child td{border-bottom:0}.data tbody tr:hover{background:#fcfcfa}.data td b{font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:4px 10px;border:1px solid #dfe6df;border-radius:999px;background:#f4f6f3;color:#46534b;font-size:10px;font-weight:600;white-space:nowrap}.badge:before{content:"•";font-size:13px;line-height:0}.badge.done,.badge.approved,.badge.online{background:#edf7ef;border-color:#d7eadb;color:#28643f}.badge.progress,.badge.pending{background:var(--amber-bg);border-color:#f0dfb9;color:var(--amber)}.badge.cancelled,.badge.rejected,.badge.blocked,.badge.error{background:var(--red-bg);border-color:#f2d6d1;color:var(--red)}.badge.info{background:var(--blue-bg);border-color:#d9e6f7;color:var(--blue)}.price{font-size:13px;font-weight:650;white-space:nowrap}.empty-state{padding:28px 18px;border:1px dashed #d8ded6;border-radius:12px;color:var(--muted);text-align:center;background:#fff}.empty-state b{display:block;margin-bottom:4px;color:var(--ink);font-size:14px}.tablewrap .secondary{min-height:36px;padding:0 11px;font-size:11px}
.formrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.field{display:block;min-width:0;margin:0 0 14px}.field>span{display:block;margin-bottom:6px;color:#27352d;font-size:12px;font-weight:600}.field input,.field select,.field textarea,input.field,select.field{width:100%;min-height:46px;padding:10px 12px;border:1px solid #dce1db;border-radius:var(--radius-control);background:#fff;color:var(--ink);font-size:13px}.field textarea{min-height:110px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#9aa39d}.formrow>.primary,.field+.primary{justify-self:start}.total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line);font-size:13px}.total b{font-size:22px;font-weight:600}.form-help{margin:-7px 0 14px;color:var(--muted);font-size:11px}
.workerhero{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:20px 22px;border:1px solid #e4e9e2;border-radius:14px;background:#f4f6f1}.workerhero h2{margin:0 0 4px;font-size:20px;font-weight:600}.workerhero p{margin:0;color:var(--muted);font-size:12px}.toggle{width:50px;height:28px;padding:3px;border:0;border-radius:999px;background:#c6cdc6;transition:background .2s}.toggle span{display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .2s}.toggle.on{background:var(--green)}.toggle.on span{transform:translateX(22px)}.job{margin-bottom:12px;padding:17px}.jobtop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.jobtop b{font-size:15px;font-weight:600}.jobtop small{color:var(--muted);font-size:11px}.jobdetails{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;color:var(--muted);font-size:11px}.jobdetails b{display:block;margin-top:3px;color:var(--ink);font-size:12px;font-weight:500}.actions{display:flex;gap:8px}.actions button{flex:1}
.auth-wrap{min-height:calc(100vh - 155px);display:grid;place-items:center;padding:30px 0}.auth-card{width:min(100%,450px);padding:30px;border:1px solid var(--line);border-radius:18px;background:#fff}.auth-card h1{margin:0 0 7px;font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.8px}.auth-card>p{margin:0 0 20px;color:var(--muted);font-size:13px}.auth-card .primary{width:100%;margin-top:5px}.auth-card .fine{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:11px}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.google-button{min-height:44px;margin:16px 0 0}.google-button [role="button"]{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;width:min(100%,320px)!important;max-width:400px!important;min-width:200px!important;height:44px!important;min-height:44px!important;max-height:44px!important;margin:0 auto!important;padding:0 14px!important;overflow:hidden!important;border:1px solid #dadce0!important;border-radius:8px!important;background:#fff!important;color:#3c4043!important;font:500 14px/20px Arial,sans-serif!important;letter-spacing:.25px!important;white-space:nowrap!important;cursor:pointer!important}.google-button [role="button"]>div:first-child{display:none!important}.google-button [role="button"]>div:nth-child(2){position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;width:100%!important;height:100%!important}.google-button [role="button"]>div:nth-child(2)>div{display:flex!important;align-items:center!important;justify-content:center!important;width:18px!important;height:18px!important;flex:0 0 18px!important}.google-button [role="button"] svg{display:block!important;width:18px!important;height:18px!important}.google-button [role="button"] .L6cTce{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:rgba(15,26,20,.48);backdrop-filter:blur(3px)}.modal{width:min(100%,520px);max-height:min(90dvh,760px);overflow:auto;padding:24px;border:1px solid #e6e9e4;border-radius:16px;background:#fff;box-shadow:var(--shadow)}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.modal h2{margin:0 0 5px;font-size:22px;line-height:1.2;font-weight:600;letter-spacing:-.5px}.modal p{color:var(--muted);font-size:12px}.close{width:38px;height:38px;flex:none;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font-size:18px}.modal form>.primary{width:100%;margin-top:8px}.preview-image{display:block;max-width:100%;max-height:70dvh;margin:16px auto 0;border-radius:10px}.install-modal{text-align:center;padding:30px}.install-mark{width:58px;height:58px;display:grid;place-items:center;margin:0 auto 16px;border-radius:17px;background:var(--ink);color:var(--lime);font-size:28px;font-weight:700}.install-modal h2{margin:0 0 8px}.install-modal p{max-width:350px;margin:0 auto 18px;font-size:13px}.install-actions{display:grid;gap:9px}.install-actions .primary,.install-actions .secondary{width:100%}.install-unavailable{padding:10px 12px;border-radius:10px;background:#f5f6f3;color:var(--muted);font-size:11px!important}
.toast{position:fixed;left:50%;bottom:24px;z-index:70;max-width:calc(100vw - 32px);padding:12px 16px;border:1px solid #25352b;border-radius:10px;background:var(--ink);color:#fff;font-size:12px;box-shadow:var(--shadow);opacity:0;transform:translate(-50%,10px);pointer-events:none;transition:opacity .18s,transform .18s}.toast.show{opacity:1;transform:translate(-50%,0)}
.mobile-nav{display:none}
@media(max-width:1050px){.sidebar{width:220px}.main{margin-left:220px}.content{padding-left:24px;padding-right:24px}.lower,.adminlower{grid-template-columns:1fr}.adminstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){body{font-size:14px}.sidebar{display:none}.main{margin-left:0;min-height:100dvh;padding-bottom:calc(70px + env(safe-area-inset-bottom))}header{height:58px;padding:0 16px}.desktopcrumb{display:none}.mobilebrand{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:650;letter-spacing:-.35px}.mobilebrand b{width:30px;height:30px;border-radius:9px;font-size:15px}.right{gap:7px}.install-button{width:40px;min-height:40px;padding:0;font-size:0}.install-button:before{content:"↓";font-size:18px}.right #logout{min-height:38px;padding:0 11px;font-size:11px}.content{padding:23px 16px 30px}.heading{display:block;margin-bottom:18px}.heading h1{font-size:25px}.heading p{font-size:12px}.heading>.primary{width:100%;margin-top:14px}.sectionhead{margin:20px 0 10px}.sectionhead h3{font-size:16px}.panel{padding:15px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:13px}.adminstats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.adminlower,.lower{grid-template-columns:1fr;gap:5px}.hero{min-height:0;display:block;padding:22px 18px;border-radius:15px}.hero h2{max-width:310px;font-size:24px}.hero p{max-width:290px;font-size:12px}.hero-art{opacity:.45;width:45%}.hero-art .car{right:-75px;bottom:18px;transform:scale(.72);transform-origin:right bottom}.hero-art .sun{right:5%;width:120px;height:120px}.formrow{grid-template-columns:1fr;gap:0}.field{margin-bottom:12px}.field input,.field select,.field textarea{min-height:48px;font-size:16px}.primary,.secondary,.danger-button{min-height:46px}.primary{min-height:52px}.tablewrap{border:0;overflow:visible;background:transparent}.data{white-space:normal}.data thead{display:none}.data tbody{display:grid;gap:11px}.data tr{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.data td{display:block;padding:6px 0;border:0;font-size:12px}.data td:first-child,.data td:last-child{grid-column:1/-1}.data td:last-child{display:flex;gap:7px;flex-wrap:wrap;padding-top:10px}.data td:nth-child(2):before{content:"VEHICLE / CUSTOMER"}.data td:nth-child(3):before{content:"SCHEDULED"}.data td:nth-child(4):before{content:"STATUS"}.data td:nth-child(5):before{content:"TOTAL"}.data td:nth-child(2):before,.data td:nth-child(3):before,.data td:nth-child(4):before,.data td:nth-child(5):before{display:block;margin-bottom:3px;color:#79837d;font-size:9px;font-weight:700;letter-spacing:.45px}.workerhero{padding:15px}.workerhero h2{font-size:17px}.job{padding:14px}.jobdetails{grid-template-columns:1fr;gap:9px}.jobtop{display:block}.jobtop small{display:block;margin-top:3px}.actions{flex-direction:column}.main>footer{display:none}.mobile-nav{position:fixed;inset:auto 0 0;z-index:20;display:flex;justify-content:space-around;gap:3px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.mobile-nav .navlink{min-width:0;min-height:48px;flex:1;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:3px 2px;border-radius:9px;font-size:9px}.mobile-nav .nav-icon{width:auto;font-size:17px;line-height:1.1}.mobile-nav .nav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-wrap{min-height:calc(100dvh - 100px);padding:18px 0}.auth-card{padding:23px 19px;border-radius:16px}.auth-card h1{font-size:25px}.modal{padding:19px;border-radius:15px}.install-modal{padding:25px 20px}.toast{bottom:calc(82px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.customer-overview{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.85fr);gap:18px;align-items:start}.overview-main,.overview-services{min-width:0}.booking-cards{display:none}.booking-card{padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}.booking-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.booking-card-top strong{display:block;font-size:14px;font-weight:600}.booking-card-top small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.booking-card-meta{display:grid;gap:5px;margin:13px 0;color:#4f5a53;font-size:12px}.booking-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}.booking-actions{display:flex;gap:7px;flex-wrap:wrap}.booking-actions .secondary{min-height:40px;padding:0 12px;font-size:11px}.install-modal .eyebrow{margin-bottom:9px}.install-modal .primary{min-height:50px}
@media(max-width:1050px){.customer-overview{grid-template-columns:1fr}.overview-services{order:2}}
@media(max-width:700px){.customer-overview{grid-template-columns:1fr;gap:2px}.booking-list.customer-booking-list .desktop-booking-table{display:none}.booking-list.customer-booking-list .booking-cards{display:grid;gap:10px}.booking-card{padding:14px}.booking-card-bottom{align-items:flex-start}.booking-card-bottom>.badge{margin-top:2px}.booking-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.booking-actions:has([data-pay]:only-child){grid-template-columns:1fr}.booking-actions .secondary{min-height:44px}.data td:last-child .secondary{min-height:40px;flex:1}.data td:first-child b{font-size:13px}.modal{width:100%;max-height:calc(100dvh - 8px);align-self:end;border-radius:17px 17px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom))}}
.booking-actions [data-pay],.data [data-pay],.data [data-assign]{background:var(--green);border-color:var(--green);color:#fff}.booking-actions [data-pay]:hover,.data [data-pay]:hover,.data [data-assign]:hover{background:#216747;border-color:#216747}
@media(max-width:700px){.mobile-nav{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav .navlink{min-width:68px;flex:0 0 68px}}

.location-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.location-toolbar .fine{font-size:11px;line-height:1.5}.field-wide{grid-column:1/-1}#address-map{width:100%;height:300px;border:1px solid var(--line);border-radius:12px;background:#f3f5f1}.form-help{margin-top:8px}.map-unavailable #address-map,.map-unavailable .form-help{display:none}.map-unavailable{margin-bottom:14px}@media(max-width:700px){.location-toolbar{align-items:flex-start;flex-direction:column;gap:8px}#address-map{height:240px}.field-wide{grid-column:auto}}

.page-loading{min-height:220px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:13px}.page-loading span{width:15px;height:15px;border:2px solid #dce5dc;border-top-color:var(--green);border-radius:50%;animation:page-spin .7s linear infinite}@keyframes page-spin{to{transform:rotate(360deg)}}
