@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@700;800&family=DM+Sans:wght@400;500;600;700&family=DM+Mono:ital,wght@0,400;0,500;1,400&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{font-family:DM Sans,Helvetica Neue,sans-serif;font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{line-height:1.2;letter-spacing:-.025em}.serif,h1,h2,h3,h4,h5,h6{font-family:Plus Jakarta Sans,sans-serif}:root{--fs-2xs:9.5px;--fs-xs:10.5px;--fs-sm:11.5px;--fs-md:12.5px;--fs-base:13px;--fs-lg:14px;--fs-xl:16px;--fs-2xl:19px;--fs-3xl:22px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-full:999px;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--navy:#27435f;--navy-dark:#203850;--navy-soft:#f2f5f8;--navy-border:#c7d4e1}@media (max-width:767px){:root{--fs-2xs:8.5px;--fs-xs:9.5px;--fs-sm:10px;--fs-md:11px;--fs-base:11.5px;--fs-lg:12.5px;--fs-xl:14px;--fs-2xl:16px;--fs-3xl:18px}}.mono{font-family:DM Mono,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button,input,select,textarea{font-family:inherit;outline:none}button{cursor:pointer;border:none}textarea{resize:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.2)}[data-theme=customer],[data-theme=vendor]{--green:#166534;--green-bg:#f0fdf4;--red:#991b1b;--red-bg:#fef2f2;--shadow:0 1px 3px rgba(0,0,0,.05),0 4px 12px rgba(0,0,0,.05);--shadow-lg:0 4px 6px rgba(0,0,0,.05),0 14px 32px rgba(0,0,0,.11)}[data-theme=admin],[data-theme=customer],[data-theme=vendor]{--bg:#f4f4f5;--bg2:#e4e4e7;--bg3:#d4d4d8;--card:#fff;--border:#e4e4e7;--border2:#a1a1aa;--ink:#09090b;--ink2:#3f3f46;--ink3:#71717a;--acc:var(--navy);--acc2:var(--navy-dark);--acc-bg:rgba(39,67,95,.07);--acc-bd:rgba(39,67,95,.24);--amber:#854d0e;--amber-bg:#fefce8;color:var(--ink);background:var(--bg)}[data-theme=admin]{--green:#166534;--green-bg:#f0fdf4;--red:#991b1b;--red-bg:#fef2f2;--shadow:0 1px 3px rgba(0,0,0,.05),0 4px 12px rgba(0,0,0,.05);--shadow-lg:0 4px 6px rgba(0,0,0,.05),0 14px 32px rgba(0,0,0,.11)}[data-theme=admin] .nav-bot{background:#09090b;border-right-color:hsla(0,0%,100%,.06)}[data-theme=admin] .nav-brand{border-bottom-color:hsla(0,0%,100%,.08)}[data-theme=admin] .nav-brand-name{color:#fff}[data-theme=admin] .nav-item{color:hsla(0,0%,100%,.5)}[data-theme=admin] .nav-item.on{background:hsla(0,0%,100%,.12);color:#fff}[data-theme=admin] .nav-item:hover:not(.on){background:hsla(0,0%,100%,.06);color:hsla(0,0%,100%,.85)}[data-theme=admin] .nav-signout-wrap{border-top-color:hsla(0,0%,100%,.08)}[data-theme=admin] .nav-signout{color:hsla(0,0%,100%,.45)}[data-theme=admin] .nav-signout:hover{background:rgba(220,38,38,.15);color:#fca5a5}[data-theme=admin] .nav-toggle-btn{border-color:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.45)}[data-theme=admin] .nav-toggle-btn:hover{border-color:hsla(0,0%,100%,.4);color:#fff}[data-theme=admin] .nav-close-btn{border-color:hsla(0,0%,100%,.15);color:hsla(0,0%,100%,.45)}[data-theme=admin] .nav-close-btn:hover{border-color:hsla(0,0%,100%,.4);color:#fff}[data-theme=admin] .nav-hamburger{background:#09090b;border-color:#3f3f46;color:hsla(0,0%,100%,.75)}.page-enter{animation:fadeUp .36s var(--ease-out) both}.pop-enter{animation:popIn .28s var(--ease-out) both}.toast-enter{animation:toastIn .28s var(--ease-out) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes illusEnter{0%{opacity:0;transform:translateY(24px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.field{width:100%;background:var(--bg2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 16px;font-size:var(--fs-base);color:var(--ink);transition:border-color .2s,box-shadow .2s,background .2s}.field:focus{border-color:var(--acc);box-shadow:0 0 0 3.5px var(--acc-bd);background:var(--card)}.field:hover:not(:focus){border-color:var(--border2)}.field::placeholder{color:var(--ink3)}select.field{color:var(--ink)}.btn-pri{background:var(--acc);color:#fff;border-radius:var(--radius-sm);padding:12px 22px;font-size:var(--fs-md);font-weight:700;width:100%;transition:all .2s var(--ease-out);letter-spacing:-.01em;box-shadow:0 2px 8px var(--acc-bd)}.btn-pri:hover{background:var(--acc2);transform:translateY(-2px);box-shadow:0 6px 20px var(--acc-bd)}.btn-pri:active{transform:translateY(0) scale(.98);box-shadow:0 1px 4px var(--acc-bd)}.btn-ghost{background:transparent;color:var(--ink2);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 20px;font-size:var(--fs-md);font-weight:600;transition:all .2s var(--ease-out);width:100%}.btn-ghost:hover{border-color:var(--acc);color:var(--acc);background:var(--acc-bg)}@media (min-width:768px){.btn-ghost,.btn-pri{max-width:340px}}.btn-success{background:var(--green-bg);color:var(--green);border:1.5px solid rgba(34,197,94,.15);border-radius:var(--radius-sm);padding:10px 18px;font-size:var(--fs-sm);font-weight:700;transition:all .2s var(--ease-out)}.btn-success:hover{filter:brightness(.92);transform:translateY(-1px)}.btn-danger{background:var(--red-bg);color:var(--red);border:1.5px solid rgba(239,68,68,.15);border-radius:var(--radius-sm);padding:10px 18px;font-size:var(--fs-sm);font-weight:700;transition:all .2s var(--ease-out)}.btn-danger:hover{filter:brightness(.92);transform:translateY(-1px)}.card{background:var(--card);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);font-weight:700;padding:3px 10px;border-radius:var(--radius-full);letter-spacing:.02em}.tag-acc{background:var(--acc-bg);color:var(--acc);border:1px solid var(--acc-bd)}.tag-green{background:var(--green-bg);color:var(--green)}.tag-red{background:var(--red-bg);color:var(--red)}.tag-amber{background:var(--amber-bg,#fef3c7);color:var(--amber,#d97706)}.tag-ink{background:var(--bg3);border:1px solid var(--border)}.chip,.tag-ink{color:var(--ink2)}.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-full);font-size:var(--fs-sm);font-weight:600;border:1.5px solid var(--border);cursor:pointer;transition:all .2s var(--ease-out)}.chip.on{background:var(--acc);color:#fff;border-color:var(--acc);box-shadow:0 2px 8px var(--acc-bd)}.chip:hover:not(.on){border-color:var(--acc);color:var(--acc);background:var(--acc-bg)}.toggle-sw{position:relative;width:44px;height:26px;background:var(--bg3);border-radius:var(--radius-full);border:1.5px solid var(--border);cursor:pointer;transition:all .25s var(--ease-out);flex-shrink:0}.toggle-sw.on{background:var(--acc);border-color:var(--acc)}.toggle-sw:after{content:"";position:absolute;top:2.5px;left:2.5px;width:17px;height:17px;background:#fff;border-radius:50%;transition:transform .25s var(--ease-spring);box-shadow:0 1px 4px rgba(0,0,0,.2)}.toggle-sw.on:after{transform:translateX(18px)}.progress-track{background:var(--bg3);height:5px;overflow:hidden}.progress-fill,.progress-track{border-radius:var(--radius-full)}.progress-fill{background:var(--acc);height:100%;transition:width .5s var(--ease-out)}.divider{height:1px;background:var(--border)}.app-shell{display:flex;min-height:100vh;background:var(--bg)}.app-content{flex:1 1;min-width:0;padding-bottom:80px}.nav-hamburger{position:fixed;top:12px;left:12px;z-index:201;width:40px;height:40px;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--ink2);box-shadow:var(--shadow);transition:all .2s var(--ease-out)}.nav-hamburger:hover{color:var(--acc);border-color:var(--acc);box-shadow:var(--shadow-lg)}.nav-hamburger--hidden{display:none}.nav-overlay{position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.nav-bot{position:fixed;top:0;left:0;bottom:0;width:260px;transform:translateX(-100%);transition:transform .3s var(--ease-out),box-shadow .3s;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:200;overflow:hidden}.nav-bot.mobile-open{transform:translateX(0);box-shadow:8px 0 40px rgba(0,0,0,.12)}.nav-brand{gap:10px;padding:18px 14px 14px;border-bottom:1px solid var(--border);margin-bottom:8px;min-width:0}.nav-brand,.nav-brand-logo{display:flex;align-items:center;flex-shrink:0}.nav-brand-logo{width:28px;height:28px;border-radius:8px;justify-content:center;color:#fff}.nav-brand-name{font-size:var(--fs-lg);font-weight:800;color:var(--ink);flex:1 1;letter-spacing:-.02em;white-space:nowrap;overflow:hidden}.nav-toggle-btn{display:none}.nav-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;margin-left:auto;background:none;border:1.5px solid var(--border);border-radius:8px;color:var(--ink3);cursor:pointer;transition:all .2s var(--ease-out)}.nav-close-btn:hover{border-color:var(--acc);color:var(--acc)}.nav-items-wrap{display:flex;flex-direction:column;gap:2px;padding:0 8px;flex:1 1;overflow-y:auto}.nav-item{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;padding:10px 12px;gap:10px;font-size:var(--fs-md);font-weight:600;color:var(--ink3);text-transform:none;letter-spacing:normal;border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;transition:all .18s var(--ease-out)}.nav-item.on{background:var(--acc-bg);color:var(--acc)}.nav-item:hover:not(.on){background:var(--bg2);color:var(--ink)}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-label{overflow:hidden}@media (min-width:768px){.nav-hamburger{display:none}.nav-overlay{display:none!important}.nav-close-btn{display:none}.app-shell{flex-direction:row}.app-content{padding-bottom:0;padding-left:220px;transition:padding-left .28s var(--ease-out)}.nav-bot{transform:translateX(0);box-shadow:none;width:220px;transition:width .28s var(--ease-out);border-right:1px solid var(--border)}.nav-toggle-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;margin-left:auto;background:none;border:1.5px solid var(--border);border-radius:7px;color:var(--ink3);cursor:pointer;transition:all .2s var(--ease-out)}.nav-toggle-btn:hover{border-color:var(--acc);color:var(--acc)}.nav-toggle-btn svg{width:12px;height:12px}[data-nav-collapsed=true] .app-content{padding-left:60px}[data-nav-collapsed=true] .nav-bot{width:60px}[data-nav-collapsed=true] .nav-brand{padding:18px 0 14px;justify-content:center;gap:0}[data-nav-collapsed=true] .nav-brand-name{display:none}[data-nav-collapsed=true] .nav-toggle-btn{margin:0}[data-nav-collapsed=true] .nav-items-wrap{padding:0 6px}[data-nav-collapsed=true] .nav-item{justify-content:center;padding:10px 0;gap:0}[data-nav-collapsed=true] .nav-label{display:none}}.nav-signout-wrap{padding:8px 8px 14px;flex-shrink:0;border-top:1px solid var(--border)}.nav-signout{width:100%;display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;font-size:var(--fs-md);font-weight:600;color:var(--ink3);transition:all .18s var(--ease-out);white-space:nowrap;overflow:hidden}.nav-signout:hover{background:var(--red-bg);color:var(--red)}@media (min-width:768px){[data-nav-collapsed=true] .nav-signout{justify-content:center;padding:9px 0;gap:0}[data-nav-collapsed=true] .nav-signout .nav-label{display:none}}.page-cta-bar{position:fixed;bottom:0;left:0;right:0;z-index:90;padding:12px 16px 22px;background:var(--bg);border-top:1px solid var(--border);gap:10px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.page-cta-bar,.page-cta-btn{display:flex;align-items:center}.page-cta-btn{flex:1 1;justify-content:center;gap:7px;padding:12px 16px!important;font-size:var(--fs-base)!important;max-width:none!important;border-radius:var(--radius-sm)!important}@media (min-width:768px){.page-cta-bar{left:220px;padding:14px 28px 20px}.page-cta-btn{flex:none;min-width:140px;max-width:170px!important}[data-nav-collapsed=true] .page-cta-bar{left:60px}}.bubble-me{background:var(--acc);color:#fff;border-radius:22px 22px 6px 22px;box-shadow:0 4px 14px -2px rgba(0,0,0,.15),0 1px 3px rgba(0,0,0,.08)}.bubble-them{background:var(--card);border:none;color:var(--ink);border-radius:22px 22px 22px 6px;box-shadow:0 2px 8px -1px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04)}@keyframes typingPulse{0%,80%,to{opacity:.2;transform:scale(.7)}40%{opacity:1;transform:scale(1.15)}}.typing-dot{animation:typingPulse 1.4s cubic-bezier(.4,0,.2,1) infinite}.auth-wrap{min-height:100vh;display:flex;flex-direction:column}.auth-hero{background:#1a1209;padding:48px 24px 40px;position:relative;overflow:hidden;flex-shrink:0}.auth-body{flex:1 1;padding:24px 20px 36px;display:flex;background:var(--bg)}.auth-form{width:100%;display:flex;flex-direction:column;gap:18px}.auth-dsk-title,.auth-feats{display:none}@media (min-width:768px){.auth-wrap{flex-direction:row}.auth-hero{width:44%;padding:72px 60px;display:flex;flex-direction:column;flex-shrink:0}.auth-body,.auth-hero{justify-content:center}.auth-body{flex:1 1;align-items:center;padding:72px 52px}.auth-form{max-width:420px}.auth-feats{display:flex;flex-direction:column;gap:14px;margin-top:44px}.auth-feat{display:flex;align-items:center;gap:10px}.auth-feat-dot{width:5px;height:5px;background:#e07b39;border-radius:50%;flex-shrink:0}.auth-feat-txt{color:hsla(0,0%,100%,.5);font-size:var(--fs-base);line-height:1.5}.auth-dsk-title{display:block;margin-bottom:4px}}@media (max-width:767px){.app-content{padding-top:58px}body,html{font-size:11px}h1{font-size:20px!important}h2{font-size:17px!important}h3{font-size:15px!important}.field{padding:9px 12px;font-size:13px}.btn-ghost,.btn-pri{padding:10px 16px;font-size:12px}.chip{padding:6px 12px;font-size:11px}.card{border-radius:var(--radius-md)}.nav-item{padding:8px 10px;font-size:12px}.toast{padding:10px 16px;font-size:12px}.page-cta-bar button{font-size:var(--fs-sm)!important;padding:10px 12px!important}.serif{letter-spacing:-.01em}}.info-grid{display:grid;grid-template-columns:1fr;grid-gap:20px;gap:20px}@media (min-width:480px){.info-grid{grid-template-columns:1fr 1fr}}.stats-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media (min-width:900px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.vendor-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}@media (min-width:700px){.vendor-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1200px){.vendor-grid{grid-template-columns:repeat(3,1fr)}}.content-inner{width:100%;max-width:760px;margin-left:auto;margin-right:auto}@media (min-width:1280px){.content-inner{max-width:1080px}}.cust-heading{font-family:Plus Jakarta Sans,sans-serif;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.cust-card{background:var(--card);border-radius:16px;border:1.5px solid var(--border);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .2s var(--ease-out)}.cust-card:hover{box-shadow:var(--shadow-lg)}.cust-section-label{font-size:11px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em}.cust-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--radius-full)}.cust-page-wrap{min-height:100vh;background:var(--bg);padding-bottom:88px}.cust-page-header{background:var(--bg);border-bottom:1px solid var(--border);padding:0 22px 18px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.cust-page-body{padding:14px 22px}@media (min-width:900px){.cust-page-body{padding:20px 28px}}@media (min-width:1200px){.cust-page-body{padding:24px 32px}}.page-top{padding-top:52px}@media (min-width:768px){.page-top{padding-top:28px}}.profile-hero-banner{height:160px;padding-top:52px}@media (min-width:768px){.profile-hero-banner{height:180px;padding-top:0}}.pay-alert-banner{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);width:calc(100% - 40px);max-width:390px;background:var(--acc);border-radius:var(--radius-lg);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;z-index:40;box-shadow:0 8px 24px var(--acc-bd)}@media (min-width:768px){.pay-alert-banner{left:calc(220px + ((100% - 220px) / 2));transform:translateX(-50%);bottom:24px}}[data-nav-collapsed=true] .pay-alert-banner{left:calc(60px + ((100% - 60px) / 2))}@media (min-width:768px){.admin-login-panel{display:flex!important}}.back-btn{display:flex;align-items:center;gap:6px;font-size:var(--fs-base);font-weight:600;color:var(--ink2);background:none;border:none;cursor:pointer;padding:0;transition:color .2s var(--ease-out)}.back-btn:hover{color:var(--ink)}.toast{animation:toastIn .28s var(--ease-out) both;position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 20px;font-size:var(--fs-base);font-weight:600;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-lg);z-index:999;white-space:nowrap}.pfx{position:relative}.pfx .sym{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:var(--fs-base);color:var(--acc);font-weight:700;pointer-events:none}.pfx .field{padding-left:32px}.vendor-card{background:var(--card);border-radius:16px;border:1.5px solid var(--border);overflow:hidden;box-shadow:var(--shadow);cursor:pointer;width:100%;position:relative;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}.vendor-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,var(--navy-dark),var(--navy));opacity:0;transition:opacity .25s var(--ease-out);border-radius:16px 16px 0 0}.vendor-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.vendor-card:hover:before{opacity:1}.vendor-card .btn-book{flex:1 1;padding:10px 0;font-size:13px;font-weight:700;background:linear-gradient(135deg,var(--navy-dark),var(--navy));color:#fff;border:none;border-radius:var(--radius-sm);transition:all .2s var(--ease-out);max-width:none}.vendor-card .btn-book:hover{box-shadow:0 4px 16px rgba(39,67,95,.24);transform:translateY(-1px)}.vendor-card .btn-msg{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--ink2);transition:all .2s var(--ease-out)}.vendor-card .btn-msg:hover{border-color:var(--navy);color:var(--navy);background:var(--navy-soft)}@keyframes pulseDot{0%,to{box-shadow:0 0 0 0 rgba(34,197,94,.5)}50%{box-shadow:0 0 0 5px rgba(34,197,94,0)}}.avail-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:pulseDot 2s ease-in-out infinite}.avail-badge{background:rgba(34,197,94,.1);color:#16a34a}.avail-badge,.busy-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-full)}.busy-badge{background:var(--red-bg);color:var(--red)}.cat-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-full);font-size:13px;font-weight:600;background:var(--card);color:var(--ink2);border:1.5px solid var(--border);transition:all .2s var(--ease-out);cursor:pointer}.cat-chip:hover{border-color:var(--navy);color:var(--navy)}.cat-chip.on{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 2px 8px rgba(39,67,95,.24)}.cat-chip svg{width:16px;height:16px;flex-shrink:0}.field-search:focus{border-color:var(--navy);box-shadow:0 0 0 3.5px rgba(39,67,95,.2);background:var(--card)}