.terms-page{background:var(--bg-2)}.terms-header{background:#fff;border-bottom:1px solid var(--border);padding:14px 0}.terms-content{padding:32px 0 80px}.terms-card{max-width:740px;margin:0 auto;padding:48px}@media (max-width: 600px){.terms-card{padding:24px}}.terms-logo{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;margin-bottom:24px}.terms-card h1{font-size:28px;margin-bottom:4px}.terms-updated{font-size:13px;color:var(--text-3);margin-bottom:32px}.terms-body section{margin-bottom:28px}.terms-body h2{font-size:17px;margin-bottom:10px;color:var(--text)}.terms-body h3{font-size:14px;font-weight:600;margin:14px 0 6px;color:var(--text)}.terms-body p{font-size:14px;color:var(--text-2);line-height:1.8;margin-bottom:8px}.navbar{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:60px}.navbar-brand{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.5px}.navbar-actions,.navbar-user{display:flex;align-items:center;gap:8px}.navbar-name{font-size:14px;font-weight:500;color:var(--text-2)}.home-page{--hero-gradient-1: #0ea5e9;--hero-gradient-2: #0284c7;--hero-gradient-3: #0369a1}.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--hero-gradient-1) 0%,var(--hero-gradient-2) 50%,var(--hero-gradient-3) 100%);padding:100px 0 80px;min-height:540px}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.bubble{position:absolute;border-radius:50%;background:#ffffff14;border:1px solid rgba(255,255,255,.12);animation:float-up linear infinite}.bubble-1{width:80px;height:80px;left:5%;bottom:-80px;animation-duration:12s;animation-delay:0s}.bubble-2{width:50px;height:50px;left:20%;bottom:-50px;animation-duration:10s;animation-delay:2s}.bubble-3{width:120px;height:120px;left:70%;bottom:-120px;animation-duration:15s;animation-delay:1s}.bubble-4{width:40px;height:40px;left:40%;bottom:-40px;animation-duration:9s;animation-delay:4s}.bubble-5{width:60px;height:60px;left:85%;bottom:-60px;animation-duration:11s;animation-delay:3s}.bubble-6{width:30px;height:30px;left:55%;bottom:-30px;animation-duration:8s;animation-delay:5s}.bubble-7{width:90px;height:90px;left:10%;bottom:-90px;animation-duration:14s;animation-delay:6s}.bubble-8{width:45px;height:45px;left:75%;bottom:-45px;animation-duration:10s;animation-delay:7s}@keyframes float-up{0%{transform:translateY(0) scale(1);opacity:0}10%{opacity:1}90%{opacity:.6}to{transform:translateY(-700px) scale(.3);opacity:0}}.shimmer-line{position:absolute;width:200px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer linear infinite}.shimmer-1{top:30%;left:-200px;animation-duration:6s;animation-delay:0s}.shimmer-2{top:50%;left:-200px;animation-duration:8s;animation-delay:2s;width:300px}.shimmer-3{top:70%;left:-200px;animation-duration:7s;animation-delay:4s;width:150px}@keyframes shimmer{0%{transform:translate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(calc(100vw + 400px));opacity:0}}.water-wave{position:absolute;bottom:-2px;left:0;right:0;height:60px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60'%3E%3Cpath fill='%23f8fafc' d='M0,30 C360,60 720,0 1080,30 C1260,45 1380,30 1440,30 L1440,60 L0,60 Z'/%3E%3C/svg%3E") no-repeat bottom;background-size:cover}.water-wave.wave-2{bottom:-2px;height:40px;opacity:.5;animation:wave-drift 8s ease-in-out infinite;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40'%3E%3Cpath fill='%23f8fafc' d='M0,20 C240,40 480,0 720,20 C960,40 1200,0 1440,20 L1440,40 L0,40 Z'/%3E%3C/svg%3E") no-repeat bottom;background-size:cover}@keyframes wave-drift{0%,to{transform:translate(0)}50%{transform:translate(-30px)}}.hero-content{position:relative;z-index:2;text-align:center;color:#fff;max-width:680px;margin:0 auto}.hero-badge{display:inline-flex;align-items:center;gap:6px;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);padding:6px 16px;border-radius:99px;font-size:13px;font-weight:500;margin-bottom:20px;animation:fade-in-down .6s ease}.hero h1{font-size:44px;font-weight:800;line-height:1.15;margin-bottom:16px;letter-spacing:-.5px;animation:fade-in-down .6s ease .1s both}.hero-highlight{background:linear-gradient(135deg,#bae6fd,#e0f2fe);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-sub{font-size:17px;opacity:.9;line-height:1.6;margin-bottom:32px;animation:fade-in-down .6s ease .2s both}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.hero-search{display:flex;align-items:center;background:#fff;border-radius:12px;padding:6px 6px 6px 16px;box-shadow:0 8px 30px #00000026;max-width:520px;margin:0 auto 28px;animation:fade-in-down .6s ease .3s both}.hero-search-icon{color:#94a3b8;flex-shrink:0}.hero-search input{flex:1;border:none;outline:none;padding:12px;font-size:15px;background:transparent;color:var(--text)}.hero-search .btn{padding:10px 20px;border-radius:8px;white-space:nowrap}.hero-stats{display:flex;align-items:center;justify-content:center;gap:24px;animation:fade-in-down .6s ease .4s both}.hero-stat{text-align:center}.hero-stat strong{display:block;font-size:20px;font-weight:700}.hero-stat span{font-size:12px;opacity:.75}.hero-stat-divider{width:1px;height:32px;background:#ffffff40}.how-section{padding:72px 0;background:var(--bg)}.section-title{text-align:center;font-size:28px;font-weight:700;margin-bottom:6px}.section-sub{text-align:center;color:var(--text-3);font-size:15px;margin-bottom:40px}.steps-grid{display:flex;align-items:center;justify-content:center;gap:12px}.step-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:32px 24px;text-align:center;max-width:220px;position:relative;transition:transform .2s,box-shadow .2s}.step-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000000f}.step-number{position:absolute;top:-14px;left:50%;transform:translate(-50%);width:28px;height:28px;background:var(--brand);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.step-icon-wrap{width:56px;height:56px;background:var(--brand-light);border-radius:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;color:var(--brand)}.step-card h3{font-size:15px;margin-bottom:8px}.step-card p{font-size:13px;color:var(--text-2);line-height:1.5}.step-arrow{color:var(--text-3);flex-shrink:0}@media (max-width: 700px){.steps-grid{flex-direction:column}.step-arrow{transform:rotate(90deg)}.step-card{max-width:100%}.hero h1{font-size:30px}.hero{padding:80px 0 60px;min-height:auto}}.featured-section{padding:72px 0;background:var(--bg-2)}.featured-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.featured-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}.featured-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.featured-photo{height:160px;background:linear-gradient(135deg,#e0f2fe,#bae6fd);position:relative;overflow:hidden}.featured-photo img{width:100%;height:100%;object-fit:cover}.featured-photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--brand);opacity:.4}.featured-verified{position:absolute;top:10px;right:10px;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:4px 10px;border-radius:99px;font-size:11px;font-weight:600;color:#059669;display:flex;align-items:center;gap:4px}.featured-info{padding:16px}.featured-info h3{font-size:16px;margin-bottom:6px}.featured-meta{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-2);margin-bottom:8px}.featured-rating{display:flex;align-items:center;gap:4px;font-size:13px;margin-bottom:10px}.featured-rating strong{color:var(--text)}.featured-rating span{color:var(--text-3)}.featured-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.featured-services{display:flex;flex-wrap:wrap;gap:4px}.featured-service-tag{font-size:11px;padding:3px 8px;background:var(--bg-2);border-radius:6px;color:var(--text-2)}.featured-price{font-size:14px;font-weight:600;color:var(--brand);white-space:nowrap}.cta-section{padding:72px 0;background:var(--bg)}.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:800px;margin:0 auto}@media (max-width: 600px){.cta-grid{grid-template-columns:1fr}}.cta-card{padding:32px;border-radius:16px;cursor:pointer;transition:transform .2s,box-shadow .2s}.cta-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000014}.cta-customer{background:#fff;border:1.5px solid var(--border)}.cta-owner{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff}.cta-icon{margin-bottom:16px}.cta-card h3{font-size:20px;font-weight:700;margin-bottom:8px}.cta-card p{font-size:14px;opacity:.85;line-height:1.5;margin-bottom:16px}.cta-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:var(--brand)}.cta-owner .cta-link{color:#fff}.trust-section{padding:72px 0;background:var(--bg-2)}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:800px;margin:0 auto}@media (max-width: 600px){.trust-grid{grid-template-columns:1fr}}.trust-card{text-align:center;padding:28px 20px;background:#fff;border:1px solid var(--border);border-radius:14px;transition:transform .2s}.trust-card:hover{transform:translateY(-3px)}.trust-icon{width:48px;height:48px;border-radius:12px;background:var(--brand-light);color:var(--brand);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}.trust-card h4{font-size:15px;margin-bottom:8px}.trust-card p{font-size:13px;color:var(--text-2);line-height:1.5}.home-footer{padding:40px 0;border-top:1px solid var(--border)}.footer-inner{text-align:center}.footer-logo{display:inline-flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--text-3);margin-bottom:10px}.home-footer p{font-size:13px;color:var(--text-3);margin-bottom:4px}.browse-page{background:var(--bg-2)}.browse-header{background:#fff;border-bottom:1px solid var(--border);padding:20px 0}.browse-header h1{font-size:26px;margin:12px 0 16px}.back-btn{margin-bottom:4px}.browse-search{display:flex;align-items:center;gap:8px;border:1.5px solid var(--border);border-radius:99px;padding:6px 8px 6px 16px;background:var(--bg-2);max-width:480px}.browse-search-icon{color:var(--text-3);flex-shrink:0}.browse-search input{flex:1;border:none;background:transparent;padding:4px 0;font-size:14px;box-shadow:none}.browse-search input:focus{border:none;box-shadow:none}.browse-content{padding:32px 0 64px}.browse-loading{display:flex;justify-content:center;padding:80px}.browse-empty{text-align:center;padding:80px;color:var(--text-3)}.carwash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.cw-card{overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}.cw-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.cw-card-image{height:160px;background:var(--bg-3);display:flex;align-items:center;justify-content:center;overflow:hidden}.cw-card-image img{width:100%;height:100%;object-fit:cover}.cw-card-placeholder{font-size:48px}.cw-card-body{padding:20px}.cw-card-name{font-size:18px;margin-bottom:6px}.cw-verified-badge{display:inline-flex;align-items:center;gap:4px;background:#d1fae5;color:#065f46;font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;margin-bottom:8px}.cw-card-location{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-2);margin-bottom:8px}.cw-card-rating{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:500;margin-bottom:10px}.cw-rating-count{color:var(--text-3);font-weight:400}.cw-card-desc{font-size:13px;color:var(--text-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:12px}.cw-card-services{display:flex;gap:6px;flex-wrap:wrap}.detail-page{background:var(--bg-2);min-height:100vh}.detail-loading{display:flex;justify-content:center;padding:80px}.detail-header{background:#fff;border-bottom:1px solid var(--border);padding:14px 0}.detail-layout{display:grid;grid-template-columns:1fr 380px;gap:32px;padding:32px 0 64px;align-items:start}@media (max-width: 800px){.detail-layout{grid-template-columns:1fr}}.detail-photo{height:220px;background:var(--bg-3);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:20px}.detail-photo img{width:100%;height:100%;object-fit:cover}.detail-photo-placeholder{font-size:56px}.detail-name{font-size:26px;margin-bottom:10px}.detail-meta{display:flex;gap:16px;font-size:13px;color:var(--text-2);margin-bottom:14px;flex-wrap:wrap}.detail-meta span{display:flex;align-items:center;gap:4px}.detail-desc{font-size:15px;color:var(--text-2);line-height:1.7;margin-bottom:16px}.detail-contacts{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.detail-contacts a{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--brand)}.detail-hours{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2)}.booking-panel{padding:28px;position:sticky;top:80px}.panel-title{font-size:20px;margin-bottom:16px}.step-indicators{display:flex;gap:8px;margin-bottom:24px}.step-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .2s}.step-dot.active{background:var(--brand);transform:scale(1.3)}.step-dot.done{background:var(--success)}.step-label{font-size:13px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.service-list{display:flex;flex-direction:column;gap:8px}.service-item{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.service-item:hover{border-color:var(--brand);background:var(--brand-xlight)}.service-item.selected{border-color:var(--brand);background:var(--brand-light)}.service-name{font-size:15px;font-weight:500;margin-bottom:2px}.service-duration{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-3)}.service-price{font-size:16px;font-weight:600;color:var(--brand)}.panel-totals{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:14px 0;border-top:1px solid var(--border);margin-top:16px;font-size:14px;color:var(--text-2)}.total-label{font-weight:600;color:var(--text)}.total-price{font-weight:700;color:var(--brand);font-size:18px}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:220px;overflow-y:auto;padding:4px 0}.slot-btn{padding:10px 6px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.slot-btn:hover{border-color:var(--brand);color:var(--brand)}.slot-btn.selected{border-color:var(--brand);background:var(--brand);color:#fff}.confirm-rows{display:flex;flex-direction:column;gap:0}.confirm-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.confirm-row span{color:var(--text-2)}.confirm-row.total{border-bottom:none;padding-top:14px}.confirm-row.total span{font-weight:600}.confirm-row.total strong{font-size:18px;color:var(--brand)}.detail-verified-badge{display:inline-flex;align-items:center;gap:5px;background:#d1fae5;color:#065f46;font-size:12px;font-weight:600;padding:3px 10px;border-radius:99px;margin-bottom:10px}.detail-bays{font-size:13px;color:var(--text-2);margin-top:8px}.reviews-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.reviews-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;margin-bottom:16px;color:var(--text)}.reviews-list{display:flex;flex-direction:column;gap:12px}.review-card{padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.review-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}.review-stars{display:flex;gap:2px}.review-author{font-size:13px;font-weight:500;color:var(--text)}.review-date{font-size:12px;color:var(--text-3);margin-left:auto}.review-text{font-size:14px;color:var(--text-2);line-height:1.6;margin-bottom:8px}.review-service{font-size:11px;background:var(--bg-3);color:var(--text-3);padding:2px 8px;border-radius:99px}.price-board{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}.price-board-title{font-size:16px;font-weight:600;margin-bottom:12px}.price-table{width:100%;border-collapse:collapse;font-size:13px}.price-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;border-bottom:1px solid var(--border)}.price-table td{padding:10px;border-bottom:1px solid var(--border)}.price-table tr:last-child td{border-bottom:none}.service-name-cell{font-weight:500}.service-dur{display:block;font-size:11px;color:var(--text-3);font-weight:400}.vehicle-options{display:flex;flex-direction:column;gap:6px}.vehicle-option{padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;transition:all .15s}.vehicle-option:hover{border-color:var(--brand);background:var(--brand-xlight)}.vehicle-option.selected{border-color:var(--brand);background:var(--brand-light);font-weight:500}.my-bookings{background:var(--bg-2)}.my-loading{display:flex;justify-content:center;padding:80px}.my-header{background:#fff;border-bottom:1px solid var(--border);padding:20px 0}.my-header .container{display:flex;align-items:center;justify-content:space-between}.my-header h1{font-size:26px}.my-content{padding:32px 0 64px}.my-empty{text-align:center;padding:80px;display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--text-3)}.bookings-list{display:flex;flex-direction:column;gap:16px}.booking-card{padding:22px 24px}.booking-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.booking-top h3{font-size:17px;margin-bottom:4px}.booking-loc{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-2)}.booking-details{display:flex;gap:16px;font-size:13px;color:var(--text-2);flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:12px}.booking-price{font-weight:600;color:var(--text)}.booking-actions{display:flex;align-items:center;gap:12px}.rate-row{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2)}.star-btn{background:none;border:none;padding:2px;cursor:pointer;line-height:1}.rate-section{width:100%}.review-input{width:100%;margin-top:8px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;resize:none}.review-input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px var(--brand-light)}.rated-section{width:100%}.review-shown{font-size:13px;color:var(--text-2);margin-top:6px;font-style:italic}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-2)}.auth-card{width:100%;max-width:420px;padding:40px}.auth-logo{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:700;margin-bottom:24px}.auth-card h2{font-size:24px;margin-bottom:4px}.auth-sub{color:var(--text-2);font-size:14px;margin-bottom:24px}.auth-card form{display:flex;flex-direction:column;gap:14px}.auth-submit{width:100%;justify-content:center;margin-top:4px}.auth-switch{text-align:center;font-size:13px;color:var(--text-2);margin-top:20px}.role-toggle{display:flex;border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:20px}.role-toggle button{flex:1;padding:10px;background:transparent;border:none;font-size:14px;color:var(--text-2);cursor:pointer;transition:all .15s}.role-toggle button.active{background:var(--brand);color:#fff;font-weight:500}.auth-demo{border-top:1px solid var(--border);padding-top:16px;margin-top:8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.auth-demo p{font-size:12px;color:var(--text-3)}.result-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-2)}.result-card{max-width:440px;width:100%;padding:40px 32px;text-align:center}.result-logo{margin-bottom:20px}.result-icon{margin-bottom:16px}.result-icon.success{color:#10b981}.result-icon.checking{color:#0ea5e9}.result-icon.pending{color:#f59e0b}.result-icon.cancel{color:#ef4444}.result-card h2{font-size:22px;margin-bottom:8px}.result-msg{font-size:14px;color:var(--text-2);line-height:1.6;margin-bottom:24px}.success-text{color:#10b981;font-weight:500}.result-details{text-align:left;border-top:1px solid var(--border);padding-top:20px;margin-bottom:24px}.result-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px}.result-row:last-child{border-bottom:none}.result-row span{color:var(--text-2)}.result-row strong{color:var(--text)}.result-actions{display:flex;flex-direction:column;gap:8px}.result-actions .btn{justify-content:center}.onboard-page{min-height:100vh;background:var(--bg-2);padding-bottom:64px}.onboard-header{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;padding:18px 32px;background:#fff;border-bottom:1px solid var(--border);color:var(--text)}.onboard-progress{display:flex;justify-content:center;gap:0;padding:28px 24px;background:#fff;border-bottom:1px solid var(--border)}.onboard-step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;max-width:140px;position:relative}.onboard-step:not(:last-child):after{content:"";position:absolute;top:14px;left:60%;width:80%;height:2px;background:var(--border);z-index:0}.onboard-step.done:not(:last-child):after{background:var(--brand)}.onboard-step-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--text-3);z-index:1;transition:all .2s}.onboard-step.active .onboard-step-dot{border-color:var(--brand);background:var(--brand);color:#fff}.onboard-step.done .onboard-step-dot{border-color:var(--success);background:var(--success);color:#fff}.onboard-step-label{font-size:12px;color:var(--text-3);text-align:center}.onboard-step.active .onboard-step-label{color:var(--brand);font-weight:500}.onboard-step.done .onboard-step-label{color:var(--success)}.onboard-body{max-width:680px;margin:40px auto;padding:0 24px}.onboard-card{padding:36px 40px}.onboard-card h2{font-size:24px;margin-bottom:6px}.onboard-sub{color:var(--text-2);font-size:14px;margin-bottom:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}.form-grid .form-group{margin:0}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid var(--border);margin-bottom:12px}.toggle-label{font-size:14px;font-weight:500;margin-bottom:2px}.toggle-desc{font-size:12px;color:var(--text-3)}.toggle-btn{padding:6px 16px;border-radius:99px;border:2px solid var(--border);background:var(--bg-3);font-size:13px;font-weight:600;color:var(--text-3);cursor:pointer;min-width:56px;transition:all .15s}.toggle-btn.on{border-color:var(--brand);background:var(--brand);color:#fff}.services-setup{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.service-setup-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);transition:opacity .2s}.service-setup-row.disabled{opacity:.4}.service-setup-left{display:flex;align-items:center;gap:12px}.service-setup-left input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}.service-setup-left label{cursor:pointer}.service-setup-name{font-weight:500;font-size:15px}.service-setup-dur{font-size:12px;color:var(--text-3)}.service-setup-price{display:flex;align-items:center;gap:6px}.price-prefix{font-weight:600;color:var(--text-2)}.onboard-note{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--text-3);background:var(--bg-3);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:8px;line-height:1.5}.vetting-banner{display:flex;align-items:center;gap:8px;background:#fef3c7;color:#92400e;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:20px}.doc-list{display:flex;flex-direction:column;gap:12px;margin-bottom:4px}.doc-row{display:flex;flex-direction:column;gap:6px}.doc-info{display:flex;align-items:center;gap:8px;color:var(--text-2)}.doc-label{font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px}.required-tag{background:var(--danger-light);color:#991b1b;font-size:10px;padding:1px 6px;border-radius:99px;font-weight:600}.service-builder{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:20px;margin-bottom:12px}.service-builder-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.service-builder-header h4{font-size:15px}.price-grid-builder{margin-top:12px}.price-inputs{display:flex;flex-direction:column;gap:8px;margin-top:6px}.price-input-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.price-vehicle-label{font-size:13px;color:var(--text-2);flex:1}.price-input-wrap{display:flex;align-items:center;gap:6px;width:120px}.price-input-wrap input{width:80px;text-align:right}.payfast-section.connected{border:1.5px solid #10b981;background:#f0fdf4}.payfast-section.not-connected{border:1.5px solid #ef4444;background:#fef2f2}.payfast-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.payfast-header h3{display:flex;align-items:center;gap:8px;font-size:16px}.payfast-status{font-size:13px;color:var(--text-2);margin-top:4px}.payfast-details{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.payfast-detail-row{display:flex;justify-content:space-between;font-size:14px;padding:6px 0}.payfast-detail-row span:first-child{color:var(--text-2)}.payfast-detail-row span:last-child{font-weight:500;font-family:monospace}.payfast-edit{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.owner-dashboard{background:var(--bg-2)}.owner-loading{display:flex;justify-content:center;padding:80px}.owner-empty-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.owner-empty{max-width:480px;width:100%;padding:48px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.owner-empty h2{font-size:24px}.owner-empty p{color:var(--text-2);font-size:15px}.owner-header{background:#fff;border-bottom:1px solid var(--border);padding:20px 0}.owner-header-inner{display:flex;align-items:flex-start;justify-content:space-between}.owner-header h1{font-size:24px;margin-bottom:6px}.owner-status-row{display:flex;align-items:center;gap:10px}.verification-banner{display:flex;align-items:flex-start;gap:10px;background:#fef3c7;color:#78350f;border:1px solid #fde68a;border-radius:var(--radius-sm);padding:14px 16px;font-size:14px;margin:20px 0;line-height:1.5}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:24px 0 0}@media (max-width: 700px){.stats-row{grid-template-columns:repeat(2,1fr)}}.stat-card{padding:18px 20px;display:flex;align-items:center;gap:14px}.stat-icon{width:40px;height:40px;border-radius:10px;background:var(--brand-light);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-label{font-size:12px;color:var(--text-3);margin-bottom:2px}.stat-value{font-size:22px;font-weight:700;color:var(--text)}.owner-content{padding:24px 0 64px}.owner-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}.owner-tab{padding:10px 20px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all .15s;margin-bottom:-1px}.no-bookings{text-align:center;padding:60px;color:var(--text-3)}.bookings-table{overflow-x:auto}.bookings-table table{width:100%;border-collapse:collapse;font-size:14px}.bookings-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);background:var(--bg-2)}.bookings-table td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.bookings-table tr:last-child td{border-bottom:none}.bookings-table tr:hover td{background:var(--bg-3)}.booking-time{font-weight:600}.booking-date-small,.booking-phone{font-size:12px;color:var(--text-3)}.action-btns{display:flex;gap:6px}.settings-panel{display:flex;flex-direction:column;gap:20px}.settings-section{padding:24px}.settings-section h3{display:flex;align-items:center;gap:8px;font-size:16px;margin-bottom:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.form-grid .span-2{grid-column:1 / -1}@media (max-width: 600px){.form-grid{grid-template-columns:1fr}}.photo-preview{width:100%;max-width:200px;height:120px;object-fit:cover;border-radius:var(--radius-sm);margin-top:8px;border:1px solid var(--border)}.service-editor-list{display:flex;flex-direction:column;gap:12px}.service-editor-item{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:16px}.service-editor-item.new-service{border-color:var(--brand);background:var(--brand-xlight)}.service-editor-header{display:flex;gap:12px;margin-bottom:12px}.price-editor-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.price-editor-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:var(--text-2)}.price-input-wrap{display:flex;align-items:center;gap:4px}.price-prefix{font-weight:600;color:var(--text-2);font-size:13px}.price-input-wrap input{width:80px;text-align:right;padding:6px 8px;font-size:13px}.service-editor-actions{display:flex;gap:8px}.profile-status{margin-top:10px}.profile-status-bar{height:4px;background:var(--border);border-radius:99px;overflow:hidden;margin-bottom:8px}.profile-status-fill{height:100%;background:var(--success);border-radius:99px;transition:width .3s}.profile-status-items{display:flex;gap:12px;flex-wrap:wrap}.profile-check{font-size:12px;color:var(--text-3)}.profile-check.done{color:var(--success);font-weight:500}.profile-complete-badge{display:inline-block;margin-top:8px;font-size:12px;font-weight:600;color:#065f46;background:#d1fae5;padding:3px 10px;border-radius:99px}@media (max-width: 768px){.bookings-table{overflow-x:auto}.bookings-table table{min-width:600px}.stats-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.owner-header-inner h1{font-size:22px}.owner-tabs{overflow-x:auto;flex-wrap:nowrap}}@media (max-width: 480px){.bookings-table table{min-width:500px;font-size:13px}.bookings-table th,.bookings-table td{padding:8px 6px}}.hours-grid{display:flex;flex-direction:column;gap:4px}.hours-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;transition:background .15s}.hours-row:hover{background:var(--bg-2)}.hours-row.closed{opacity:.5}.hours-day{width:100px;font-size:14px;font-weight:500;flex-shrink:0}.hours-times{display:flex;align-items:center;gap:8px;flex:1}.hours-times input[type=time]{width:110px;padding:6px 8px;font-size:13px}.hours-times span{font-size:12px;color:var(--text-3)}.hours-closed-label{flex:1;font-size:13px;color:var(--text-3);font-style:italic}.hours-toggle{font-size:12px;padding:4px 10px}.hours-toggle.is-closed{color:var(--success)}.blocked-slot-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px}.blocked-slot-info{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}.blocked-slot-info strong{font-size:14px}.blocked-reason{background:var(--bg-2);padding:2px 8px;border-radius:4px;font-size:12px;color:var(--text-2)}.blocked-slot-form{border:1.5px solid var(--brand);background:var(--brand-xlight);border-radius:10px;padding:16px;margin-top:8px;display:flex;flex-direction:column;gap:10px}@media (max-width: 600px){.hours-row{flex-wrap:wrap}.hours-day{width:80px}.hours-times input[type=time]{width:90px}}.admin-page{background:var(--bg-2)}.admin-loading{display:flex;justify-content:center;padding:80px}.admin-header{background:#fff;border-bottom:1px solid var(--border);padding:20px 0}.admin-header-inner{display:flex;align-items:center;justify-content:space-between}.admin-header h1{font-size:26px}.admin-badge{font-size:11px}.admin-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;padding:24px 0 0}@media (max-width: 900px){.admin-stats{grid-template-columns:repeat(3,1fr)}}@media (max-width: 600px){.admin-stats{grid-template-columns:repeat(2,1fr)}}.admin-stat{padding:16px;display:flex;flex-direction:column;gap:4px;text-align:center;align-items:center}.admin-stat.alert{border-color:var(--warning);background:#fffbeb}.admin-stat-icon{color:var(--brand);margin-bottom:4px}.admin-stat-val{font-size:22px;font-weight:700}.admin-stat-label{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px}.admin-tabs{display:flex;border-bottom:1px solid var(--border);margin:24px 0 20px}.owner-tab{padding:10px 20px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;transition:all .15s;margin-bottom:-1px;display:flex;align-items:center;gap:6px}.owner-tab:hover{color:var(--text)}.owner-tab.active{color:var(--brand);border-bottom-color:var(--brand)}.tab-badge{background:var(--danger);color:#fff;font-size:11px;padding:1px 6px;border-radius:99px;font-weight:700}.admin-content{padding-bottom:80px}.admin-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:80px;color:var(--text-3)}.vetting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.vetting-card{padding:20px;cursor:pointer;transition:all .15s;border-width:1.5px}.vetting-card:hover{box-shadow:var(--shadow-md)}.vetting-card.selected{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.vetting-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}.vetting-card-top h3{font-size:16px}.vetting-card-loc{font-size:13px;color:var(--text-2);margin-bottom:4px}.vetting-card-contact{font-size:12px;color:var(--text-3);margin-bottom:12px}.doc-progress{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-3)}.doc-progress-bar{flex:1;height:4px;background:var(--border);border-radius:99px;overflow:hidden}.doc-progress-fill{height:100%;background:var(--brand);border-radius:99px;transition:width .3s}.all-listings{overflow-x:auto}.all-listings table{width:100%;border-collapse:collapse;font-size:14px}.all-listings th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);background:var(--bg-2)}.all-listings td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.all-listings tr:last-child td{border-bottom:none}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:200;display:flex;align-items:flex-start;justify-content:flex-end;padding:24px}.detail-panel{width:100%;max-width:460px;max-height:calc(100vh - 48px);overflow-y:auto;padding:28px;display:flex;flex-direction:column;gap:16px}.detail-panel-header{display:flex;align-items:center;justify-content:space-between}.detail-panel-header h3{font-size:18px}.detail-panel-meta{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--text-2);padding-bottom:16px;border-bottom:1px solid var(--border)}.detail-section-title{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-2)}.completion-badge{font-size:12px;background:var(--bg-3);padding:2px 8px;border-radius:99px;color:var(--text-3);font-weight:400;margin-left:auto}.doc-check-list{display:flex;flex-direction:column;gap:10px}.doc-check-row{display:flex;gap:10px;align-items:flex-start}.doc-check-name{font-size:14px;font-weight:500}.doc-check-link{font-size:12px;color:var(--brand)}.detail-actions{display:flex;flex-direction:column;gap:14px;padding-top:16px;border-top:1px solid var(--border)}.verify-checklist{margin:16px 0;padding:16px;background:var(--bg-2);border-radius:var(--radius-sm)}.verify-checklist h4{font-size:14px;font-weight:600;margin-bottom:12px}.verify-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);cursor:pointer}.verify-item:last-child{border-bottom:none}.verify-item input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--success);flex-shrink:0}.verify-label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500}.verify-desc{font-size:12px;color:var(--text-3);margin-top:2px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--brand: #0ea5e9;--brand-dark: #0284c7;--brand-light: #e0f2fe;--brand-xlight: #f0f9ff;--accent: #06b6d4;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--danger-light: #fee2e2;--text: #0f172a;--text-2: #475569;--text-3: #94a3b8;--bg: #ffffff;--bg-2: #f8fafc;--bg-3: #f1f5f9;--border: #e2e8f0;--border-2: #cbd5e1;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.05);--shadow-lg: 0 10px 15px rgba(0,0,0,.08), 0 4px 6px rgba(0,0,0,.04)}html{font-size:16px}body{font-family:DM Sans,system-ui,sans-serif;color:var(--text);background:var(--bg-2);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:DM Sans,sans-serif;font-weight:600;line-height:1.2;color:var(--text)}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .15s ease}input,select,textarea{font-family:inherit;font-size:15px;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;width:100%;background:var(--bg);color:var(--text);transition:border-color .15s;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}input::placeholder,textarea::placeholder{color:var(--text-3)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:all .15s ease;white-space:nowrap}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active{transform:translateY(0)}.btn-outline{background:transparent;color:var(--brand);border:1.5px solid var(--brand)}.btn-outline:hover{background:var(--brand-xlight)}.btn-ghost{background:transparent;color:var(--text-2);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--bg-3);border-color:var(--border-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:7px 14px;font-size:13px}.btn-lg{padding:13px 28px;font-size:16px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:500}.badge-blue{background:var(--brand-light);color:var(--brand-dark)}.badge-green{background:#d1fae5;color:#065f46}.badge-amber{background:#fef3c7;color:#92400e}.badge-red{background:var(--danger-light);color:#991b1b}.badge-gray{background:var(--bg-3);color:var(--text-2)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--text-2)}.form-error{font-size:12px;color:var(--danger)}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.page{min-height:100vh}.container{max-width:1100px;margin:0 auto;padding:0 24px}.section{padding:48px 0}.star{color:#f59e0b}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .3s ease}
