/* Suds Coast — design tokens (ocean blue, foam, sand, coral) + app components. Loaded before site.css (generic components) so tokens apply everywhere. */
:root{--teal:#1187b8;--teal-deep:#0b5676;--teal-soft:#e3f3fa;--teal-mid:#2aa8d6;--coral:#ff6b4a;--coral-deep:#e4532f;--coral-soft:#ffe9e3;--lilac:#7c6cf0;--lilac-soft:#ece9fd;--sand:#f5fbfd;--sand-deep:#e6f2f7;--ink:#14213d;--mute:#5f6f7b;--line:#dde8eb;--white:#fff;--gold:#f0b429;--gold-soft:#fdf3d7;--ok:#1f8a4c;--ok-soft:#e4f4ea;--bad:#c6413b;--bad-soft:#fbe6e4;--sky:#2b6cb0;--sky-soft:#e6f0fb;--r:14px;--r-lg:22px;--shadow:0 8px 28px rgba(11,86,118,.10);--shadow-sm:0 2px 8px rgba(11,86,118,.07);--max:1180px;--font:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"Sora","Figtree",system-ui,sans-serif}
.brand{font-weight:800!important;letter-spacing:-.02em;color:var(--teal-deep)!important}.brand.sm{font-size:1.15rem!important}.brand.sm img{width:30px!important;height:30px!important}
body.app{background:var(--sand);padding-bottom:84px}body.admin{background:var(--sand)}
.apptop{position:sticky;top:0;z-index:50;background:rgba(244,251,252,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.apptop .wrap{display:flex;align-items:center;gap:.8rem;height:58px}.apptop .sp{flex:1}.avatar.sm{width:32px;height:32px;font-size:.75rem}.avatar-link:hover{text-decoration:none}
.appmain{padding:1rem 0 2rem}.appmain .wrap{max-width:760px}body.admin .main{padding:1.4rem 1.8rem 4rem}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;background:#fff;border-top:1px solid var(--line);padding:.35rem .2rem calc(.35rem + env(safe-area-inset-bottom));box-shadow:0 -4px 20px rgba(11,86,118,.08)}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;font-size:.68rem;font-weight:700;color:var(--mute);padding:.25rem 0;border-radius:10px}.tabbar a .ic{font-size:1.35rem;position:relative;line-height:1}.tabbar a.on{color:var(--teal-deep)}.tabbar a:hover{text-decoration:none;color:var(--teal)}.tabbar .dot{position:absolute;top:-6px;right:-12px;background:var(--coral);color:#fff;font-style:normal;font-size:.6rem;border-radius:999px;padding:.1rem .35rem}
@media(min-width:900px){body.app .tabbar{position:sticky;top:58px;bottom:auto;border-top:0;border-bottom:1px solid var(--line);box-shadow:none;justify-content:center;gap:.5rem;padding:.3rem}body.app .tabbar a{flex:0 0 auto;flex-direction:row;gap:.4rem;font-size:.85rem;padding:.45rem .9rem}body.app .tabbar a .ic{font-size:1.05rem}body.app{padding-bottom:0}}
.qsearch input{border:1.5px solid var(--line);border-radius:999px;padding:.45rem .9rem;font:inherit;width:280px;background:#fff}@media(max-width:700px){.qsearch{display:none}}
.badge.tier{letter-spacing:.02em}.badge.tier.plat{background:#e9e4ff;color:#4a3bc9}.badge.tier.gold{background:var(--gold-soft);color:#8a6a0d}.badge.tier.silver{background:#eef1f4;color:#4b5563}.badge.tier.bronze{background:#f6e7dc;color:#8a4b1f}
.empty{text-align:center;padding:2.5rem 1rem;color:var(--mute)}.empty .big{font-size:2.2rem;margin-bottom:.4rem}
.bcard{display:grid;grid-template-columns:62px 1fr auto;gap:.9rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:.9rem 1rem;color:inherit;margin-bottom:.7rem;transition:.15s}.bcard:hover{text-decoration:none;box-shadow:var(--shadow);transform:translateY(-1px)}.bcard .when{text-align:center;background:var(--teal-soft);border-radius:12px;padding:.45rem .2rem;line-height:1.15}.bcard .when b{display:block;font-family:var(--serif);color:var(--teal-deep);font-size:1rem}.bcard .when span{font-size:.72rem;color:var(--mute)}.bcard .t{font-weight:700}.bcard .amt{font-family:var(--serif);font-weight:700;color:var(--teal-deep)}
.ccard{display:grid;grid-template-columns:64px 1fr;gap:.9rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem;margin-bottom:.7rem}.ccard .nm{font-weight:800;font-size:1.05rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.avatar.lg{width:64px;height:64px;font-size:1.3rem;object-fit:cover}
.plines{width:100%;border-collapse:collapse;font-size:.95rem}.plines td{padding:.4rem 0;border-bottom:1px dashed var(--line)}.plines td.num{text-align:right;white-space:nowrap}.plines td.ok{color:var(--ok)}.plines tr.tot td{font-weight:800;font-size:1.15rem;border-bottom:0;padding-top:.7rem;font-family:var(--serif);color:var(--teal-deep)}
.toggle{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-weight:600}.toggle input{display:none}.toggle .sw{width:46px;height:26px;border-radius:999px;background:var(--line);position:relative;transition:.2s;flex:none}.toggle .sw:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.toggle input:checked+.sw{background:var(--ok)}.toggle input:checked+.sw:after{left:23px}
.online-switch{display:flex;align-items:center;justify-content:space-between;background:#fff;border:2px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.2rem;margin-bottom:1rem}.online-switch.on{border-color:var(--ok);background:var(--ok-soft)}.online-switch .st{font-weight:800;font-size:1.1rem}.online-switch .st small{display:block;font-weight:500;color:var(--mute);font-size:.8rem}
/* booking wizard */
.wiz{max-width:640px;margin:0 auto}.wiz .steps-bar{display:flex;gap:.3rem;margin:.6rem 0 1.2rem}.wiz .steps-bar i{flex:1;height:5px;border-radius:999px;background:var(--line)}.wiz .steps-bar i.on{background:var(--teal)}
.wiz h2{font-size:1.5rem;margin-bottom:.3rem}.wiz .step{display:none}.wiz .step.on{display:block;animation:fade .25s}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem}.choice{background:#fff;border:2px solid var(--line);border-radius:var(--r-lg);padding:1rem .9rem;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:.15s;position:relative}.choice:hover{border-color:var(--teal-mid)}.choice.on{border-color:var(--teal);background:var(--teal-soft);box-shadow:0 0 0 3px rgba(17,135,184,.12)}.choice .ic{font-size:1.6rem;display:block;margin-bottom:.35rem}.choice b{display:block;font-size:1rem}.choice small{display:block;color:var(--mute);font-size:.8rem;margin-top:.15rem}.choice .pr{position:absolute;top:.7rem;right:.8rem;font-weight:800;color:var(--teal-deep);font-size:.9rem}
.stepper{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:.7rem 1rem;margin-bottom:.6rem}.stepper .ctl{display:flex;align-items:center;gap:.9rem}.stepper button{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--teal);background:#fff;color:var(--teal);font-size:1.3rem;font-weight:700;cursor:pointer}.stepper button:hover{background:var(--teal-soft)}.stepper .v{font-family:var(--serif);font-weight:800;font-size:1.3rem;min-width:2ch;text-align:center}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}.chips .chip{padding:.5rem .9rem;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-weight:600}.chips .chip.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.45rem}.slots .chip{text-align:center;padding:.6rem .3rem}.days{display:flex;gap:.45rem;overflow-x:auto;padding-bottom:.3rem;margin-bottom:.8rem}.days .chip{flex:0 0 auto;text-align:center;line-height:1.2;padding:.5rem .8rem}.days .chip small{display:block;font-weight:500;font-size:.72rem;opacity:.8}
.sticky-price{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:.8rem 0;margin-top:1rem;display:flex;align-items:center;gap:1rem;z-index:5}.sticky-price .tot{font-family:var(--serif);font-weight:800;font-size:1.4rem;color:var(--teal-deep)}.sticky-price .tot small{display:block;font-family:var(--font);font-weight:500;font-size:.75rem;color:var(--mute)}.sticky-price .sp{flex:1}
body.app .sticky-price{bottom:72px}@media(min-width:900px){body.app .sticky-price{bottom:0}}
.track{display:flex;gap:0;margin:1rem 0}.track div{flex:1;text-align:center;font-size:.72rem;color:var(--mute);position:relative;padding-top:22px}.track div:before{content:"";position:absolute;top:4px;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--line);z-index:1}.track div:after{content:"";position:absolute;top:10px;left:0;right:0;height:3px;background:var(--line)}.track div:first-child:after{left:50%}.track div:last-child:after{right:50%}.track div.done{color:var(--teal-deep);font-weight:700}.track div.done:before,.track div.done:after{background:var(--teal)}.track div.now:before{box-shadow:0 0 0 4px rgba(17,135,184,.25);animation:pulse 1.4s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(17,135,184,.35)}100%{box-shadow:0 0 0 10px rgba(17,135,184,0)}}
.chat{display:flex;flex-direction:column;gap:.5rem;padding:.8rem;background:var(--sand-deep);border-radius:var(--r);max-height:50vh;overflow-y:auto}.chat .m{max-width:82%;background:#fff;border-radius:14px;padding:.55rem .8rem;font-size:.95rem}.chat .m.me{align-self:flex-end;background:var(--teal);color:#fff}.chat .m.sys{align-self:center;background:var(--gold-soft);font-size:.8rem}.chat .m .w{display:block;font-size:.68rem;opacity:.7;margin-top:.15rem}
.hero-app{background:linear-gradient(135deg,#0b5676 0%,#1187b8 55%,#7c6cf0 140%);color:#fff;border-radius:var(--r-lg);padding:1.6rem 1.4rem;margin-bottom:1rem;position:relative;overflow:hidden}.hero-app h2{color:#fff;margin:0 0 .3rem}.hero-app p{color:#d8f3f7;margin:0 0 1rem}.hero-app .btn.white{color:var(--teal-deep)}.hero-app:after{content:"✦";position:absolute;right:14px;top:8px;font-size:3rem;opacity:.18}
.kpi-row .stat .v{font-size:1.6rem}
.sla{display:inline-block;font-weight:800;padding:.2rem .55rem;border-radius:8px;background:var(--gold-soft);color:#8a6a0d;font-size:.78rem}.sla.late{background:var(--bad-soft);color:var(--bad)}.sla.ok{background:var(--ok-soft);color:var(--ok)}
.pipeline{display:grid;grid-template-columns:repeat(6,1fr);gap:.6rem;margin-bottom:1.2rem}.pipeline .col{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.6rem}.pipeline .col h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:0 0 .5rem;display:flex;justify-content:space-between}.pipeline .card-mini{background:var(--sand);border-radius:10px;padding:.5rem .6rem;font-size:.85rem;margin-bottom:.4rem;display:block;color:inherit}.pipeline .card-mini:hover{text-decoration:none;background:var(--teal-soft)}@media(max-width:1000px){.pipeline{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.pipeline{grid-template-columns:1fr 1fr}}
.avail-grid{display:grid;grid-template-columns:52px repeat(7,1fr);gap:3px;font-size:.72rem}.avail-grid .h{text-align:center;font-weight:700;color:var(--mute);padding:.2rem 0}.avail-grid .r{color:var(--mute);padding-right:.3rem;text-align:right;line-height:30px}.avail-grid .c{height:30px;background:#fff;border:1px solid var(--line);border-radius:6px;cursor:pointer}.avail-grid .c.on{background:var(--teal);border-color:var(--teal)}.avail-grid .c.job{background:var(--lilac);border-color:var(--lilac)}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.5rem}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.ledger td.num{font-variant-numeric:tabular-nums}
.age-gate{max-width:520px;margin:10vh auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem;text-align:center;box-shadow:var(--shadow)}
.section-head{display:flex;align-items:center;gap:.6rem;margin:1.6rem 0 .6rem}.section-head h3{margin:0}.section-head .sp{flex:1}
.int-card{display:grid;grid-template-columns:44px 1fr auto;gap:.9rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1.1rem;margin-bottom:.7rem}.int-card .ic{font-size:1.7rem}.int-card h4{margin:0 0 .2rem}
.check li .box{width:22px;height:22px;border-radius:6px;border:2px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:.8rem;cursor:pointer;background:#fff}.check li.done .box{background:var(--ok);border-color:var(--ok);color:#fff}
.num-big{font-family:var(--serif);font-size:2.6rem;font-weight:800;color:var(--teal-deep);line-height:1}
.list{list-style:none;padding:0;margin:0}.list li{display:flex;gap:.8rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line)}.list li .sp{flex:1;min-width:0}.list li:last-child{border-bottom:0}
.hero .grid{grid-template-columns:1fr 1fr}.hero-art{max-width:520px}
.price-card{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-lg);padding:1.2rem;text-align:center}.price-card .p{font-family:var(--serif);font-size:1.9rem;font-weight:800;color:var(--teal-deep)}.price-card .p small{font-size:.85rem;font-weight:500;color:var(--mute);font-family:var(--font)}
