/* Hire a Gardener - app.css
   Design: a calm civic directory. Deep leaf green on warm grey, flat bordered surfaces, one ochre accent for rates. Mukta body (Latin + Devanagari), Bricolage Grotesque headings. */

@font-face{font-family:"Mukta";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/mukta-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Mukta";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/mukta-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Mukta";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/mukta-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Mukta";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/mukta-devanagari-400-normal.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:"Mukta";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/mukta-devanagari-600-normal.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:"Mukta";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/mukta-devanagari-700-normal.woff2) format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:"Bricolage Grotesque";font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/bricolage-grotesque-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-weight:800;font-style:normal;font-display:swap;src:url(../fonts/bricolage-grotesque-latin-800-normal.woff2) format("woff2")}

:root{
  --leaf:#1f5c3f;--leaf-d:#133a29;--leaf-m:#2b7552;--leaf-l:#e5eee8;--leaf-xl:#f2f6f3;
  --gold:#a9731a;--gold-d:#765010;--gold-l:#f5eedd;
  --rose:#b03a4f;--rose-l:#faebee;--sky:#2b6a8a;--sky-l:#e6f0f5;
  --bg:#f5f6f3;--paper:#fff;--paper-2:#fafbf9;--ink:#18211c;--muted:#5b675f;--line:#d7ddd8;--line-2:#e5e9e5;
  --shadow:0 1px 2px rgba(24,33,28,.04);
  --shadow-lg:0 6px 20px -8px rgba(24,33,28,.22);
  --r:8px;--r-lg:12px;--ring:0 0 0 3px rgba(43,117,82,.28);
  --f-body:"Mukta","Noto Sans Devanagari","Nirmala UI",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-head:"Bricolage Grotesque","Mukta","Noto Sans Devanagari","Nirmala UI",system-ui,sans-serif;
  --nav-h:60px;--bottom-h:60px;
}
[data-theme="dark"]{
  --leaf:#58b585;--leaf-d:#a6e2c1;--leaf-m:#6cc795;--leaf-l:#183328;--leaf-xl:#12261d;
  --gold:#d9a649;--gold-d:#e8c37a;--gold-l:#34290f;--rose:#ee7a92;--rose-l:#3b1b25;--sky:#6bb8d9;--sky-l:#12303d;
  --bg:#0e1511;--paper:#151d18;--paper-2:#18221c;--ink:#e6ede8;--muted:#9aaba1;--line:#2b3a31;--line-2:#222f27;
  --shadow:0 1px 2px rgba(0,0,0,.3);--shadow-lg:0 10px 28px -10px rgba(0,0,0,.7);--ring:0 0 0 3px rgba(108,199,149,.35);
}
[data-theme="dark"] .rate-tag{--tag-bg:var(--paper-2)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--f-body);font-size:16.5px;line-height:1.55;color:var(--ink);background:var(--bg);min-height:100vh;display:flex;flex-direction:column;-webkit-tap-highlight-color:transparent}
main{flex:1;min-width:0}
img,svg{max-width:100%}
a{color:var(--leaf);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em;font-weight:800}
h1{font-size:clamp(1.9rem,4.4vw,3.1rem)}h2{font-size:clamp(1.45rem,2.8vw,2.1rem)}h3{font-size:1.15rem;font-weight:600}
p{margin:0 0 1em}
small{color:var(--muted)}
:focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;z-index:200}.skip:focus{left:8px}
.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:20px}
.container.narrow{max-width:560px}.container.mid{max-width:820px}
.center-box{display:grid;place-items:center;min-height:60vh}
.hide-sm{display:inline-flex}
.inline{display:inline}
.muted{color:var(--muted)}.right{text-align:right}.center{text-align:center}.nowrap{white-space:nowrap}
.stack>*+*{margin-top:var(--gap,16px)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.between,.between{justify-content:space-between}.between:not(.row){display:flex;gap:12px;align-items:center}.grow{flex:1}
.when-dark{display:none}[data-theme="dark"] .when-dark{display:inline-flex}[data-theme="dark"] .when-light{display:none}
.ic{flex:none;vertical-align:-.2em}.ic-fill{fill:currentColor}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border:1.5px solid transparent;border-radius:999px;font:600 1rem/1 var(--f-body);cursor:pointer;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s,border-color .15s;white-space:nowrap;-webkit-appearance:none;appearance:none}
.btn:hover{text-decoration:none}.btn:active{transform:scale(.97)}
.btn[disabled],.btn.is-disabled{opacity:.55;pointer-events:none}
.btn-primary{background:var(--leaf);color:#fff;box-shadow:0 6px 16px -8px var(--leaf)}.btn-primary:hover{background:var(--leaf-d);color:#fff}
[data-theme="dark"] .btn-primary{color:#07130d}[data-theme="dark"] .btn-primary:hover{background:var(--leaf-m);color:#07130d}
.btn-gold{background:var(--gold);color:#2b1b00}.btn-gold:hover{filter:brightness(1.06)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--leaf);color:var(--leaf)}
.btn-soft{background:var(--leaf-l);color:var(--leaf-d)}.btn-soft:hover{background:var(--leaf-xl)}
.btn-danger{background:var(--rose);color:#fff}.btn-danger:hover{filter:brightness(.92)}
.btn-sm{min-height:38px;padding:0 16px;font-size:.92rem}.btn-lg{min-height:54px;padding:0 30px;font-size:1.08rem}.btn-block{width:100%}
.btn-icon{width:40px;min-height:40px;padding:0}
.icon-btn{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 6px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;font:700 .8rem var(--f-body);text-decoration:none}
.icon-btn:hover{border-color:var(--leaf);color:var(--leaf);text-decoration:none}

/* ---- Top bar ---- */
.topbar{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line-2)}
.topbar-in{display:flex;align-items:center;gap:20px;height:var(--nav-h)}
.brand{display:inline-flex;align-items:center;gap:10px;font:800 1.15rem var(--f-head);color:var(--ink);text-decoration:none}.brand:hover{text-decoration:none}
.mainnav{display:flex;gap:4px;margin-inline:auto}
.mainnav a{padding:8px 14px;border-radius:999px;color:var(--muted);font-weight:600;text-decoration:none}
.mainnav a:hover{color:var(--ink);background:var(--leaf-l)}.mainnav a[aria-current]{color:var(--leaf-d);background:var(--leaf-l)}
.topbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.mainnav+.topbar-actions{margin-left:0}

/* ---- Bottom nav (phones) ---- */
.bottomnav{display:none}
@media (max-width:900px){
  .mainnav{display:none}.topbar-actions{margin-left:auto}.hide-sm{display:none}
  body{padding-bottom:calc(var(--bottom-h) + env(safe-area-inset-bottom))}
  body.is-panel{padding-bottom:0}
  .bottomnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;inset:auto 0 0 0;z-index:70;height:calc(var(--bottom-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .bottomnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:.74rem;font-weight:600;text-decoration:none}
  .bottomnav a[aria-current]{color:var(--leaf)}
  .bottomnav a[aria-current] .ic{transform:translateY(-2px) scale(1.12)}.bottomnav .ic{transition:transform .2s}
}

/* ---- Toasts ---- */
.toasts{position:fixed;top:calc(var(--nav-h) + 10px);right:16px;left:16px;display:grid;gap:10px;justify-items:end;z-index:120;pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:10px;align-items:flex-start;max-width:420px;padding:12px 14px;border-radius:14px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);font-weight:600;animation:toast-in .35s cubic-bezier(.2,.9,.3,1.2)}
.toast.success{background:var(--leaf);color:#fff}.toast.error{background:var(--rose);color:#fff}.toast.info{background:var(--sky);color:#fff}
.toast.out{animation:toast-out .25s forwards}
@keyframes toast-in{from{opacity:0;transform:translateY(-12px) scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translateY(-8px)}}

/* ---- Cards, sections ---- */
.section{padding:56px 0}.section.tight{padding:32px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}.section-head h2{margin:0}
.card{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow)}
.card.flat{box-shadow:none}.card h2,.card h3{margin-bottom:.6em}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gauto{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.section{padding:36px 0}.container{padding-inline:16px}.card{padding:18px}}

.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}
.b-grey{background:var(--line-2);color:var(--muted)}.b-leaf{background:var(--leaf-l);color:var(--leaf-d)}.b-leaf-solid{background:var(--leaf);color:#fff}[data-theme="dark"] .b-leaf-solid{color:#07130d}
.b-gold{background:var(--gold-l);color:var(--gold-d)}.b-rose{background:var(--rose-l);color:var(--rose)}.b-sky{background:var(--sky-l);color:var(--sky)}
.alert{display:flex;gap:12px;padding:14px 16px;border-radius:14px;background:var(--sky-l);color:var(--ink);border:1px solid color-mix(in srgb,var(--sky) 35%,transparent)}
.alert.warn{background:var(--gold-l);border-color:color-mix(in srgb,var(--gold) 45%,transparent)}.alert.bad{background:var(--rose-l);border-color:color-mix(in srgb,var(--rose) 40%,transparent)}.alert.ok{background:var(--leaf-l);border-color:color-mix(in srgb,var(--leaf) 35%,transparent)}
.alert .ic{margin-top:3px}.alert p{margin:0}

/* ---- Hero (home) ---- */
.hero{position:relative;overflow:hidden;padding:44px 0 56px}
.hero::before{content:"";position:absolute;inset:-20% -10% auto 38%;height:130%;background:radial-gradient(60% 60% at 50% 40%,var(--leaf-l),transparent 70%);z-index:0}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center}
.hero h1{margin-bottom:.35em}
.hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--gold-l) 62%);padding:0 .05em}
.hero p.lead{font-size:1.15rem;color:var(--muted);max-width:34em}
.search-bar{display:grid;grid-template-columns:1fr 1.2fr auto;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:10px;box-shadow:var(--shadow-lg);margin:22px 0 14px}
.search-bar .select-wrap select,.search-bar input{border:0;background:var(--paper-2);border-radius:14px;min-height:50px}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-weight:600;font-size:.95rem}.hero-meta span{display:inline-flex;gap:6px;align-items:center}.hero-meta .ic{color:var(--leaf)}
.hero-art{position:relative;min-height:380px;display:grid;place-items:center}
.hero-art .gcard{width:min(340px,100%);transform:rotate(3.5deg);box-shadow:var(--shadow-lg);animation:sway 7s ease-in-out infinite;transform-origin:50% -20px}
.hero-art .gcard+.gcard{position:absolute;left:0;bottom:-10px;width:min(270px,70%);transform:rotate(-5deg);z-index:2;animation-delay:-3s}
.hero-art .twig{position:absolute;right:-10px;top:-6px;width:140px;color:var(--leaf-m);opacity:.55}
@keyframes sway{0%,100%{rotate:0deg}50%{rotate:-1.6deg}}
@media (max-width:900px){.hero-in{grid-template-columns:minmax(0,1fr)}.hero-art{min-height:0;margin-top:6px}.hero-art .gcard+.gcard{display:none}.search-bar{grid-template-columns:minmax(0,1fr)}.hero{padding-top:26px}}

/* ---- Gardener hang-tag card ---- */
.gcard{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;overflow:hidden}
.gcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.gcard-hole{position:absolute;top:9px;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--bg);box-shadow:inset 0 1px 2px rgba(0,0,0,.25);border:1px solid var(--line)}
.gcard-link{display:block;padding:30px 18px 18px;color:inherit;text-decoration:none}.gcard-link:hover{text-decoration:none}
.gcard-top{display:flex;gap:14px;align-items:center;padding-right:34px}
.gcard h3{margin:0 0 4px;font-size:1.12rem;font-family:var(--f-head);font-weight:800;line-height:1.2}
.gcard-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:.9rem}
.gcard-where{display:flex;gap:6px;align-items:center;margin-top:12px;color:var(--muted);font-size:.93rem}.gcard-where span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gcard-where em{margin-left:auto;font-style:normal;font-weight:700;color:var(--leaf)}
.gcard-tag{margin:8px 0 0;color:var(--ink);font-size:.95rem}
.gcard-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.gcard-exp{font-size:.88rem;color:var(--muted);font-weight:600}
.gcard.is-paused .gcard-top,.gcard.is-paused .gcard-tag{opacity:.62}
.paused-note{display:flex;gap:6px;align-items:center;margin-top:10px;font-size:.85rem;color:var(--gold-d);font-weight:600}
.fav-btn{position:absolute;top:14px;right:12px;z-index:3;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--muted);cursor:pointer;transition:transform .2s,color .2s}
.fav-btn:hover{color:var(--rose);transform:scale(1.08)}.fav-btn.is-on{color:var(--rose);background:var(--rose-l);border-color:transparent}.fav-btn.is-on .ic{fill:currentColor}
.fav-btn.pop{animation:pop .4s}@keyframes pop{40%{transform:scale(1.35)}}
.ribbon{position:absolute;top:0;left:0;background:var(--gold);color:#2b1b00;font-weight:700;font-size:.74rem;padding:3px 12px 3px 10px;border-radius:0 0 12px 0;z-index:2}
.verified{display:inline-flex;align-items:center;gap:3px;color:var(--leaf);font-weight:700;font-size:.82rem}
.rating{display:inline-flex;align-items:center;gap:4px;font-weight:700}.rating .ic{color:var(--gold)}.rating small{font-weight:400}.rating-none{color:var(--muted);font-size:.85rem;font-weight:600;background:var(--line-2);padding:1px 8px;border-radius:999px}
.chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:12px 0 0;padding:0}
.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:var(--leaf-xl);border:1px solid var(--line-2);font-size:.82rem;font-weight:600;color:var(--leaf-d)}
.avatar{border-radius:50%;object-fit:cover;flex:none;display:inline-block;background:var(--leaf-l)}
.avatar-i{display:inline-grid;place-items:center;font-weight:800;font-family:var(--f-head);color:#fff;background:linear-gradient(135deg,hsl(var(--h) 55% 38%),hsl(calc(var(--h) + 40) 60% 30%))}

/* Price tag (the memorable bit): a punched nursery label showing both rates */
.rate-tag{--tag-bg:var(--gold-l);position:relative;display:inline-block;padding:7px 14px 7px 26px;background:var(--tag-bg);color:var(--ink);clip-path:polygon(16px 0,100% 0,100% 100%,16px 100%,0 50%);border-radius:0 8px 8px 0;line-height:1.15}
.rate-tag::before{content:"";position:absolute;left:9px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--paper);box-shadow:inset 0 1px 1px rgba(0,0,0,.3)}
.rate-main{display:flex;align-items:baseline;gap:4px}.rate-amt{font:800 1.3rem var(--f-head);color:var(--ink)}.rate-unit{font-size:.82rem;color:var(--gold-d);font-weight:700}
.rate-sub{font-size:.84rem;font-weight:600;color:var(--gold-d)}.rate-sub small{color:inherit;opacity:.8;font-weight:400}
.rate-tag.big{padding:12px 22px 12px 34px;clip-path:polygon(22px 0,100% 0,100% 100%,22px 100%,0 50%)}.rate-tag.big::before{left:13px;width:8px;height:8px;margin-top:-4px}.rate-tag.big .rate-amt{font-size:2rem}.rate-tag.big .rate-sub{font-size:1rem}

/* ---- Carousel (swipe) ---- */
.carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 20px 24px;margin-inline:-20px;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab}
.carousel::-webkit-scrollbar{display:none}.carousel.is-drag{cursor:grabbing;scroll-snap-type:none}
.carousel>*{flex:0 0 min(320px,82%);scroll-snap-align:start}
.cat-row{display:flex;gap:12px;overflow-x:auto;padding:4px 20px 16px;margin-inline:-20px;scroll-snap-type:x proximity;scrollbar-width:none}.cat-row::-webkit-scrollbar{display:none}
.cat-pill{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:10px;width:112px;padding:16px 8px;background:var(--paper);border:1px solid var(--line-2);border-radius:20px;color:var(--ink);font-weight:700;font-size:.92rem;text-align:center;text-decoration:none;box-shadow:var(--shadow);transition:transform .2s,border-color .2s}
.cat-pill:hover{transform:translateY(-3px);border-color:var(--leaf);text-decoration:none}
.cat-pill .ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--leaf-l);color:var(--leaf)}

/* ---- Steps ---- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;position:relative;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:26px 22px 22px;box-shadow:var(--shadow)}
.steps li::before{content:counter(s);position:absolute;top:-16px;left:20px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--gold);color:#2b1b00;font:800 1.05rem var(--f-head)}
.steps h3{margin-top:6px}.steps p{margin:0;color:var(--muted)}
@media (max-width:760px){.steps{grid-template-columns:minmax(0,1fr);gap:28px}}
.band{background:var(--leaf-d);color:#fff;border-radius:var(--r-lg);padding:34px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
[data-theme="dark"] .band{background:var(--leaf-l);color:var(--ink)}
.band b{display:block;font:800 clamp(1.8rem,4vw,2.6rem) var(--f-head);color:var(--gold)}.band span{opacity:.85;font-weight:600}
@media (max-width:700px){.band{grid-template-columns:repeat(2,1fr);padding:24px}}
.cta-band{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--gold-l);border-radius:var(--r-lg);padding:30px 34px}.cta-band h2{margin:0 0 6px}.cta-band p{margin:0;color:var(--muted)}
.quote{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow)}.quote p{margin:10px 0 14px}.quote footer{display:flex;gap:10px;align-items:center;font-size:.92rem;color:var(--muted)}

/* ---- Forms ---- */
.field{margin-bottom:16px}.field>label{display:block;margin-bottom:6px;font-weight:700;font-size:.95rem}.req{color:var(--rose)}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=search],input[type=url],input[type=time],select,textarea{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);font:inherit;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
textarea{min-height:110px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--leaf) 50%,var(--line))}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--leaf-m);box-shadow:var(--ring)}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--rose);background:var(--rose-l)}
.field-error{margin-top:6px;color:var(--rose);font-size:.9rem;font-weight:600}.help{display:block;margin-top:5px;font-size:.86rem}
.select-wrap{position:relative}.select-wrap .ic{position:absolute;right:14px;top:50%;margin-top:-8px;pointer-events:none;color:var(--muted)}.select-wrap select{padding-right:38px}
.pw-wrap{position:relative}.pw-wrap input{padding-right:50px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--muted);width:38px;height:38px;cursor:pointer;border-radius:10px}
.input-pre{display:flex;align-items:stretch}.input-pre span{display:grid;place-items:center;padding:0 14px;border:1.5px solid var(--line);border-right:0;border-radius:14px 0 0 14px;background:var(--paper-2);font-weight:700;color:var(--muted)}.input-pre input{border-radius:0 14px 14px 0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.strength{height:6px;border-radius:99px;background:var(--line-2);overflow:hidden;margin-top:8px}.strength i{display:block;height:100%;width:0;background:var(--rose);transition:width .25s,background .25s}
.strength[data-s="2"] i{background:var(--gold)}.strength[data-s="3"] i,.strength[data-s="4"] i{background:var(--leaf)}
.counter{float:right;font-size:.82rem;color:var(--muted)}
/* toggle switch */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-2);cursor:pointer}
.switch-text{display:grid}.switch-text small{font-size:.86rem}
.switch{position:relative;flex:none;width:52px;height:30px}.switch input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.switch-ui{position:absolute;inset:0;border-radius:999px;background:var(--line);transition:background .25s}
.switch-ui::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:transform .3s cubic-bezier(.3,1.5,.5,1)}
.switch input:checked+.switch-ui{background:var(--leaf)}.switch input:checked+.switch-ui::after{transform:translateX(22px)}
.switch input:focus-visible+.switch-ui{box-shadow:var(--ring)}
/* segmented control */
.seg{display:inline-flex;padding:4px;background:var(--leaf-l);border-radius:999px;gap:2px}
.seg label{position:relative;cursor:pointer}.seg input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.seg span{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:999px;font-weight:700;color:var(--muted);transition:background .2s,color .2s}
.seg input:checked+span{background:var(--paper);color:var(--leaf-d);box-shadow:var(--shadow)}.seg input:focus-visible+span{box-shadow:var(--ring)}
/* checkbox chips */
.chk-grid{display:flex;flex-wrap:wrap;gap:8px}.chk{position:relative}.chk input{position:absolute;opacity:0;inset:0;cursor:pointer;width:100%;height:100%;margin:0}
.chk span{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1.5px solid var(--line);border-radius:999px;font-weight:600;background:var(--paper);transition:all .15s}
.chk input:checked+span{background:var(--leaf);border-color:var(--leaf);color:#fff}[data-theme="dark"] .chk input:checked+span{color:#07130d}.chk input:focus-visible+span{box-shadow:var(--ring)}
.dropzone{display:grid;place-items:center;gap:6px;text-align:center;padding:26px;border:2px dashed var(--line);border-radius:18px;background:var(--paper-2);color:var(--muted);cursor:pointer;transition:border-color .2s,background .2s}
.dropzone.is-over,.dropzone:hover{border-color:var(--leaf);background:var(--leaf-xl)}.dropzone input{display:none}
.previews{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.previews img{width:84px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}

/* ---- Search page ---- */
.search-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start;padding-block:24px}
.filters{position:sticky;top:calc(var(--nav-h) + 16px);max-height:calc(100vh - var(--nav-h) - 32px);overflow:auto;padding:20px}
.filters h3{display:flex;justify-content:space-between;align-items:center}
.filters fieldset{border:0;margin:0 0 14px;padding:0}.filters legend{font-weight:700;margin-bottom:6px;padding:0}
.price-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.results-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}
.results-bar h1{font-size:1.5rem;margin:0}
.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.map-box{height:min(70vh,640px);min-height:380px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);position:relative;z-index:1}
.view-map .results-list{display:none}.view-list .map-wrap{display:none}
.view-both .map-box{height:420px;margin-bottom:18px}
.map-pop{min-width:200px}.map-pop h4{margin:0 0 4px;font-size:1rem}.map-pop .rate{font-weight:700;color:var(--gold-d)}.map-pop a.btn{margin-top:8px;color:#fff}
.filter-toggle{display:none}
.sheet-backdrop{position:fixed;inset:0;background:rgba(10,20,14,.5);z-index:90;opacity:0;pointer-events:none;transition:opacity .25s}
@media (max-width:900px){
  .search-layout{grid-template-columns:minmax(0,1fr);padding-block:14px}
  .filter-toggle{display:inline-flex}
  .filters{position:fixed;inset:auto 0 0 0;z-index:95;max-height:86vh;border-radius:26px 26px 0 0;transform:translateY(105%);transition:transform .35s cubic-bezier(.2,.9,.25,1);padding-bottom:calc(20px + env(safe-area-inset-bottom));top:auto}
  .filters::before{content:"";display:block;width:44px;height:5px;border-radius:9px;background:var(--line);margin:-8px auto 14px}
  body.sheet-open .filters{transform:none}body.sheet-open .sheet-backdrop{opacity:1;pointer-events:auto}body.sheet-open{overflow:hidden}
}
.skeleton{background:linear-gradient(90deg,var(--line-2) 25%,var(--paper-2) 50%,var(--line-2) 75%);background-size:200% 100%;animation:shine 1.2s infinite;border-radius:20px;min-height:230px}@keyframes shine{to{background-position:-200% 0}}
.is-loading .results-grid{opacity:.45;transition:opacity .2s}
.pager{display:flex;gap:6px;justify-content:center;margin:28px 0 8px;flex-wrap:wrap}.pg{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border-radius:12px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:700;text-decoration:none}
.pg:hover{border-color:var(--leaf);text-decoration:none}.pg.is-current{background:var(--leaf);border-color:var(--leaf);color:#fff}.pg.is-disabled{opacity:.4}.pg-gap{align-self:center;color:var(--muted)}

/* ---- Gardener profile ---- */
.profile-head{position:relative;margin-top:22px;border-radius:var(--r-lg);overflow:hidden;background:var(--paper);border:1px solid var(--line-2);box-shadow:var(--shadow)}
.profile-cover{height:150px;background:linear-gradient(135deg,var(--leaf),var(--leaf-m) 55%,var(--gold));position:relative}
.profile-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 10%,rgba(255,255,255,.25),transparent 40%),repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 14px,transparent 14px 28px)}
.profile-body{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:start;padding:14px 24px 22px;position:relative}
.profile-body .avatar{border:4px solid var(--paper);box-shadow:var(--shadow);margin-top:-58px}
.profile-body h1{font-size:clamp(1.5rem,3vw,2.2rem);margin:6px 0 4px}
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start;margin-block:24px}
.side-sticky{position:sticky;top:calc(var(--nav-h) + 16px)}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:0;padding:0;list-style:none}.facts li{background:var(--paper-2);border-radius:14px;padding:12px 14px}.facts b{display:block;font-family:var(--f-head);font-size:1.15rem}.facts small{font-weight:600}
.days{display:flex;gap:6px;flex-wrap:wrap}.day{padding:5px 11px;border-radius:10px;font-weight:700;font-size:.85rem;background:var(--line-2);color:var(--muted)}.day.on{background:var(--leaf-l);color:var(--leaf-d)}
.review{padding:16px 0;border-bottom:1px solid var(--line-2)}.review:last-child{border:0}.review header{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.review .reply{margin-top:10px;padding:10px 14px;border-left:3px solid var(--leaf);background:var(--leaf-xl);border-radius:0 12px 12px 0;font-size:.95rem}
.contact-card .rate-tag{margin-bottom:14px}
.reveal-note{display:flex;gap:10px;font-size:.9rem;color:var(--muted);margin-top:12px}
.quota{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--leaf-xl);border-radius:14px;margin-bottom:14px}
.ring{--v:0;position:relative;width:54px;height:54px;border-radius:50%;background:conic-gradient(var(--leaf) calc(var(--v)*1%),var(--line-2) 0);display:grid;place-items:center;flex:none}
.ring::before{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--paper)}.ring b{position:relative;font:800 1rem var(--f-head)}
@media (max-width:900px){.profile-layout{grid-template-columns:minmax(0,1fr)}.side-sticky{position:static}.profile-body{grid-template-columns:auto 1fr;}.profile-body .rate-tag{grid-column:1/-1}.enq-mobile-bar{display:flex}}
.enq-mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:75;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);gap:12px;align-items:center;justify-content:space-between}
@media (max-width:900px){body.has-enq-bar{padding-bottom:calc(76px + env(safe-area-inset-bottom))}body.has-enq-bar .bottomnav{display:none}}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:150;background:rgba(5,12,8,.92);display:none;align-items:center;justify-content:center;touch-action:pan-y}.lightbox.open{display:flex;animation:fade .2s}
.lightbox img{max-width:94vw;max-height:84vh;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.6)}.lightbox .lb-cap{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#fff;font-weight:600;padding:0 60px}
.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer}.lightbox button:hover{background:rgba(255,255,255,.28)}
.lb-x{top:16px;right:16px}.lb-prev{left:14px;top:50%}.lb-next{right:14px;top:50%}
@keyframes fade{from{opacity:0}}
.modal{position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(10,20,14,.55)}.modal.open{display:flex;animation:fade .2s}
.modal-box{width:min(480px,100%);max-height:90vh;overflow:auto;background:var(--paper);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-lg);animation:rise .3s cubic-bezier(.2,.9,.3,1.1)}@keyframes rise{from{transform:translateY(20px) scale(.97);opacity:0}}
@media (max-width:600px){.modal{align-items:flex-end;padding:0}.modal-box{border-radius:26px 26px 0 0}}

/* ---- Panels ---- */
.panel{display:grid;grid-template-columns:250px minmax(0,1fr);gap:24px;padding-block:24px;align-items:start}
.panel-side{position:sticky;top:calc(var(--nav-h) + 16px);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:14px;box-shadow:var(--shadow)}
.side-user{display:flex;gap:10px;align-items:center;padding:6px 8px 14px;border-bottom:1px solid var(--line-2);margin-bottom:8px}.side-user strong{display:block;line-height:1.2}.side-user small{font-weight:600}
.side-nav{display:grid;gap:2px}.side-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:var(--muted);font-weight:600;text-decoration:none}
.side-nav a:hover{background:var(--leaf-xl);color:var(--ink)}.side-nav a[aria-current]{background:var(--leaf);color:#fff}[data-theme="dark"] .side-nav a[aria-current]{color:#07130d}
.panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.panel-title h1{font-size:clamp(1.5rem,3vw,2rem);margin:0}
@media (max-width:900px){
  .panel{grid-template-columns:minmax(0,1fr);gap:14px;padding-block:14px}
  .panel-side{position:sticky;top:var(--nav-h);z-index:50;padding:8px;border-radius:0;margin-inline:-16px;border-inline:0;border-top:0}
  .side-user{display:none}.side-nav{display:flex;overflow-x:auto;gap:6px;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}
  .side-nav a{flex:none;padding:8px 14px;border-radius:999px;background:var(--leaf-xl)}
}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px}
.stat{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.stat .ic{position:absolute;right:14px;top:14px;color:var(--leaf);opacity:.35}.stat b{display:block;font:800 2rem var(--f-head);line-height:1.1}.stat span{color:var(--muted);font-weight:600;font-size:.93rem}.stat.warn b{color:var(--rose)}
.stat a{color:inherit;text-decoration:none;display:block}
.table-wrap{overflow-x:auto;border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--paper)}
table.t{width:100%;border-collapse:collapse;font-size:.95rem}.t th{text-align:left;padding:12px 14px;background:var(--paper-2);color:var(--muted);font-size:.82rem;font-weight:700;white-space:nowrap;border-bottom:1px solid var(--line-2)}
.t td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}.t tr:last-child td{border-bottom:0}.t tbody tr:hover{background:var(--leaf-xl)}.t .actions{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:760px){
  .table-stack thead{display:none}.table-stack,.table-stack tbody,.table-stack tr,.table-stack td{display:block;width:100%}
  .table-stack tr{padding:12px 14px;border-bottom:8px solid var(--bg)}.table-stack td{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border:0;text-align:right}
  .table-stack td::before{content:attr(data-label);font-weight:700;color:var(--muted);text-align:left;flex:none}.table-stack td.actions-cell{justify-content:flex-start}.table-stack td.actions-cell::before{display:none}
}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.toolbar form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.toolbar input,.toolbar select{min-height:42px;width:auto;min-width:130px;padding:6px 12px}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:18px;scrollbar-width:none}.tabs a,.tabs button{flex:none;padding:10px 16px;border:0;background:none;color:var(--muted);font:700 .98rem var(--f-body);border-bottom:3px solid transparent;cursor:pointer;text-decoration:none;margin-bottom:-1px}
.tabs a[aria-current],.tabs button[aria-selected=true]{color:var(--leaf);border-color:var(--leaf)}
.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line)}.timeline li{position:relative;padding:0 0 18px 18px}.timeline li::before{content:"";position:absolute;left:-26px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--leaf);border:3px solid var(--bg)}
.timeline time{display:block;font-size:.84rem;color:var(--muted)}
.bars{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:10px}.bars div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%;min-width:0}
.bars i{display:block;width:100%;max-width:34px;border-radius:8px 8px 3px 3px;background:linear-gradient(var(--leaf-m),var(--leaf));min-height:3px;transition:height .6s cubic-bezier(.2,.9,.3,1)}.bars small{font-size:.72rem}.bars b{font-size:.78rem}
.msg-list{display:grid;gap:10px}.msg{max-width:86%;padding:10px 14px;border-radius:16px 16px 16px 4px;background:var(--leaf-xl)}.msg.me{margin-left:auto;background:var(--leaf);color:#fff;border-radius:16px 16px 4px 16px}[data-theme="dark"] .msg.me{color:#07130d}.msg small{display:block;opacity:.75;color:inherit;font-size:.78rem}
.detail-list{display:grid;grid-template-columns:150px 1fr;gap:10px 16px;margin:0}.detail-list dt{color:var(--muted);font-weight:700}.detail-list dd{margin:0;overflow-wrap:anywhere}
@media (max-width:560px){.detail-list{grid-template-columns:minmax(0,1fr);gap:2px}.detail-list dt{margin-top:10px}}
.pkg{position:relative;border:2px solid var(--line-2);border-radius:var(--r-lg);padding:22px;background:var(--paper)}.pkg.is-current{border-color:var(--leaf);box-shadow:0 0 0 4px var(--leaf-l)}
.pkg b.limit{font:800 2.6rem var(--f-head);line-height:1}.pkg .tag{position:absolute;top:-12px;left:18px}
.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty h3{color:var(--ink);margin-bottom:6px}.empty-ic{display:inline-grid;place-items:center;width:72px;height:72px;border-radius:24px;background:var(--leaf-l);color:var(--leaf);margin-bottom:14px}
.empty .btn{margin-top:8px}
.auth-wrap{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - var(--nav-h))}
.auth-art{background:linear-gradient(160deg,var(--leaf-d),var(--leaf) 60%,var(--leaf-m));color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:center;gap:18px;position:relative;overflow:hidden}
.auth-art h2{color:#fff;font-size:clamp(1.8rem,3.4vw,2.6rem)}.auth-art ul{list-style:none;padding:0;margin:0;display:grid;gap:12px}.auth-art li{display:flex;gap:10px;align-items:flex-start;opacity:.95}.auth-art li .ic{color:var(--gold);margin-top:3px}
.auth-art::after{content:"";position:absolute;right:-60px;bottom:-60px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.07)}
.auth-form{display:grid;place-items:center;padding:36px 20px}.auth-form .box{width:min(440px,100%)}
@media (max-width:860px){.auth-wrap{grid-template-columns:minmax(0,1fr)}.auth-art{display:none}}
.prose{max-width:760px}.prose h2{margin-top:1.6em}.prose ul{padding-left:1.2em}
details.faq{background:var(--paper);border:1px solid var(--line-2);border-radius:16px;padding:0 18px;margin-bottom:10px;box-shadow:var(--shadow)}
details.faq summary{cursor:pointer;list-style:none;padding:16px 0;font-weight:700;display:flex;justify-content:space-between;gap:12px}details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--leaf);transition:transform .25s}details.faq[open] summary::after{transform:rotate(45deg)}details.faq p{padding-bottom:16px;color:var(--muted);margin:0}
.footer{margin-top:64px;background:var(--paper);border-top:1px solid var(--line-2)}.footer-in{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px;padding-block:40px}
.footer-brand p{color:var(--muted);max-width:28ch;margin-top:12px}.footer-col{display:grid;gap:8px;align-content:start}.footer-col a{color:var(--muted)}.footer-col a:hover{color:var(--leaf)}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:16px;border-top:1px solid var(--line-2);color:var(--muted);font-size:.9rem}
@media (max-width:760px){.footer-in{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer{margin-bottom:0}}
.pill-note{display:inline-flex;gap:6px;align-items:center;font-size:.86rem;font-weight:700;color:var(--leaf-d);background:var(--leaf-l);padding:4px 12px;border-radius:99px}
.leaflet-container{font-family:var(--f-body)}.leaflet-popup-content-wrapper{border-radius:16px}.leaflet-popup-content{margin:14px 16px}
.hg-pin{display:grid;place-items:center;width:36px;height:36px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--leaf);border:3px solid #fff;box-shadow:0 4px 10px rgba(0,0,0,.35)}.hg-pin i{transform:rotate(45deg);color:#fff;font:700 .72rem var(--f-body);font-style:normal}
.hg-pin.me{background:var(--gold)}.hg-pin.feat{background:var(--gold)}
.pick-map{height:300px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
@media print{.topbar,.bottomnav,.footer,.panel-side,.btn,.toasts{display:none!important}body{background:#fff}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---- Additions ---- */
.chip-btn{cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.chip-btn:hover,.chip-btn.is-on{background:var(--leaf);border-color:var(--leaf);color:#fff}
[data-theme="dark"] .chip-btn:hover,[data-theme="dark"] .chip-btn.is-on{color:#07130d}
.inline-form{display:inline}
.lead-in{max-width:40em}
.gcard.is-hl{outline:3px solid var(--gold);outline-offset:3px}
[hidden]{display:none!important}
.rate-tag.compact{padding:6px 14px 6px 24px}.rate-tag.compact .rate-amt{font-size:1.15rem}.rate-tag.compact .rate-sub{font-size:.78rem}
.fav-btn.is-static{position:static;width:42px;height:42px}

@media (max-width:600px){.carousel,.cat-row{margin-inline:-16px;padding-inline:16px}}
input[type=file]{max-width:100%;font:inherit;font-size:.9rem;color:var(--muted)}input[type=file]::file-selector-button{font:inherit;font-weight:700;margin-right:12px;padding:8px 14px;border:0;border-radius:999px;background:var(--leaf-l);color:var(--leaf-d);cursor:pointer}input[type=file]::file-selector-button:hover{background:var(--leaf-xl)}

/* =====================================================================
   Refinement layer: calmer, flatter, more adult.
   Bordered surfaces instead of shadows, 8-12px corners, quieter motion.
   ===================================================================== */
body{font-size:16px;line-height:1.6}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.015em}
h3{font-size:1.08rem}
.brand{font-weight:600;font-size:1.1rem}

/* controls */
.btn{border-radius:8px;min-height:44px;padding:0 20px;font-weight:600;transition:background .15s,border-color .15s,color .15s}
.btn:active{transform:none}
.btn-primary{box-shadow:none}
.btn-gold{background:var(--gold-l);color:var(--gold-d);border-color:color-mix(in srgb,var(--gold) 35%,transparent)}
.btn-sm{min-height:36px;padding:0 14px;border-radius:6px}.btn-lg{min-height:50px;padding:0 26px;font-size:1.02rem}
.icon-btn{border-radius:8px}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=search],input[type=url],input[type=time],select,textarea{border-radius:8px;border-width:1px;min-height:46px}
.input-pre span{border-width:1px;border-radius:8px 0 0 8px}.input-pre input{border-radius:0 8px 8px 0}
.field>label{font-weight:600;font-size:.92rem}
.seg{border-radius:10px;background:var(--line-2)}.seg span{border-radius:7px;padding:7px 16px}.seg input:checked+span{box-shadow:0 1px 2px rgba(0,0,0,.1)}
.chk span{border-radius:8px;border-width:1px}
.badge{border-radius:6px;font-weight:600}
.chip{border-radius:6px;background:var(--paper-2);color:var(--ink);font-weight:500}
.pg{border-radius:8px}
.day{border-radius:6px}
.switch-ui{background:color-mix(in srgb,var(--muted) 40%,var(--line))}
.dropzone{border-width:1px;border-radius:12px}
.previews img{border-radius:8px}
.alert{border-radius:10px}
.toast{border-radius:10px;box-shadow:var(--shadow-lg)}

/* top bar */
.topbar{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--line)}
.mainnav{gap:2px}
.mainnav a{border-radius:6px;font-weight:500;padding:8px 12px}
.mainnav a:hover{background:var(--leaf-xl);color:var(--ink)}
.mainnav a[aria-current]{background:none;color:var(--leaf-d);font-weight:600;box-shadow:inset 0 -2px 0 var(--leaf)}
.bottomnav{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}
.bottomnav a[aria-current] .ic{transform:none}

/* surfaces */
.card,.quote,.steps li,.stat,.panel-side,.profile-head,details.faq{box-shadow:none;border-color:var(--line)}
.card{border-radius:12px}
.stat b,.band b,.ring b,.rate-amt,.pkg b.limit{font-weight:600}
.table-wrap{border-radius:12px;border-color:var(--line)}
.t th{background:var(--paper-2);text-transform:none;letter-spacing:0}
.empty-ic{border-radius:12px}
.map-box{border-radius:12px;box-shadow:none}
.pick-map{border-radius:10px}
.leaflet-popup-content-wrapper{border-radius:10px}
.modal-box{border-radius:12px;box-shadow:var(--shadow-lg)}
@media (max-width:600px){.modal-box{border-radius:16px 16px 0 0}}
details.faq{border-radius:10px}
.side-nav a{border-radius:8px;font-weight:500}
.side-nav a[aria-current]{background:var(--leaf-l);color:var(--leaf-d);font-weight:600;box-shadow:inset 3px 0 0 var(--leaf)}
[data-theme="dark"] .side-nav a[aria-current]{color:var(--leaf-d)}
@media (max-width:900px){.side-nav a{border-radius:8px;background:var(--paper-2);border:1px solid var(--line-2)}.side-nav a[aria-current]{background:var(--leaf-l);border-color:var(--leaf);box-shadow:none}}
.msg{border-radius:12px 12px 12px 3px}.msg.me{border-radius:12px 12px 3px 12px}
.bars i{border-radius:3px 3px 0 0;background:var(--leaf)}

/* hero: plain and direct */
.hero{padding:40px 0 48px;background:linear-gradient(var(--leaf-xl),var(--bg))}
.hero::before{display:none}
.hero h1{font-size:clamp(1.9rem,4vw,2.8rem);max-width:15em}
.hero h1 em{background:none;color:var(--leaf);font-style:normal;padding:0}
.hero p.lead{font-size:1.08rem}
.search-bar{grid-template-columns:1.4fr 1fr auto;border-radius:12px;padding:8px;box-shadow:var(--shadow-lg);border-color:var(--line)}
.search-bar .select-wrap select,.search-bar input{border-radius:8px;background:var(--paper-2);border:1px solid transparent;min-height:48px}
.search-bar .search-input{position:relative}.search-bar .search-input .ic{position:absolute;left:14px;top:50%;margin-top:-9px;color:var(--muted);pointer-events:none}.search-bar .search-input input{padding-left:42px}
.hero-art{min-height:0;display:grid;gap:14px;place-items:stretch}
.hero-art .gcard,.hero-art .gcard+.gcard{position:static;transform:none;animation:none;width:100%;box-shadow:none}
.hero-art .twig{display:none}
@media (max-width:900px){.hero-art .gcard+.gcard{display:none}.search-bar{grid-template-columns:minmax(0,1fr)}}

/* gardener card */
.gcard{border-radius:12px;box-shadow:none;border-color:var(--line);transition:border-color .18s}
.gcard:hover{transform:none;box-shadow:none;border-color:var(--leaf)}
.gcard-hole{display:none}
.gcard-link{padding:18px}
.gcard h3{font-weight:600;font-family:var(--f-head)}
.fav-btn{border-radius:8px;top:12px;right:12px;width:36px;height:36px}
.fav-btn:hover{transform:none}
.ribbon{background:var(--gold-l);color:var(--gold-d);border-radius:0 0 8px 0;font-weight:600}
.gcard-where em{color:var(--ink);font-weight:600}
.avatar-i{font-weight:600;background:linear-gradient(135deg,hsl(var(--h) 38% 34%),hsl(calc(var(--h) + 30) 40% 28%))}
.cat-pill{border-radius:12px;box-shadow:none;border-color:var(--line);font-weight:600;width:108px}
.cat-pill:hover{transform:none;border-color:var(--leaf)}
.cat-pill .ico{border-radius:10px}

/* rate: a quiet figure, not a sticker */
.rate-tag{clip-path:none;border-radius:8px;padding:6px 12px;background:var(--paper-2);border:1px solid var(--line-2);color:var(--ink)}
.rate-tag::before{display:none}
.rate-amt{font:600 1.2rem var(--f-head)}
.rate-unit,.rate-sub,.rate-sub small{color:var(--muted);font-weight:500}
.rate-tag.big{padding:14px 16px;clip-path:none}.rate-tag.big .rate-amt{font-size:1.9rem}.rate-tag.big .rate-sub{font-size:.95rem}
.rate-tag.compact{padding:5px 10px}

/* sections */
.steps li{border-radius:12px;padding:22px}
.steps li::before{top:auto;left:auto;position:static;display:inline-grid;margin-bottom:10px;border-radius:8px;width:32px;height:32px;background:var(--leaf-l);color:var(--leaf-d);font:600 1rem var(--f-head)}
.steps h3{margin-top:0}
.band{border-radius:12px;background:var(--leaf-d);padding:28px}
.band b{color:#f1e2b8;font-weight:600}
[data-theme="dark"] .band{background:var(--leaf-l)}[data-theme="dark"] .band b{color:var(--gold-d)}
.cta-band{background:var(--leaf-xl);border:1px solid var(--line);border-radius:12px}

/* profile */
.profile-head{border-radius:12px}
.profile-cover{height:110px;background:linear-gradient(120deg,var(--leaf-d),var(--leaf-m))}
.profile-cover::after{background:none}
.profile-body .avatar{border-width:3px;box-shadow:none;margin-top:-52px}
.facts li{border-radius:8px;border:1px solid var(--line-2)}
.review .reply{border-radius:0 8px 8px 0}
.quota{border-radius:10px;border:1px solid var(--line-2)}

/* packages */
.pkg{border-width:1px;border-color:var(--line);border-radius:12px;display:flex;flex-direction:column}
.pkg.is-current{border-color:var(--leaf);box-shadow:inset 0 0 0 1px var(--leaf)}
.pkg .tag{position:static;align-self:flex-start;margin-bottom:8px;display:inline-flex;padding:2px 10px;border-radius:6px;background:var(--leaf-l);color:var(--leaf-d);font-size:.8rem;font-weight:600}
.pkg form{margin-top:auto}
.pkg h3{margin-top:0}

/* auth */
.auth-art{background:linear-gradient(160deg,var(--leaf-d),var(--leaf-m))}
.auth-art::after{display:none}

/* adaptive grids: columns follow the container, not the device */
.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}
.results-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}

/* typeahead */
.sg-host{position:relative}
.suggest{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 4px);margin:0;padding:6px;list-style:none;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-lg);max-height:min(60vh,340px);overflow:auto;text-align:left}
.sg-head{padding:8px 10px 4px;font-size:.78rem;font-weight:600;color:var(--muted)}
.sg-opt{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:6px;cursor:pointer}
.sg-opt .sg-label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sg-opt .sg-sub{color:var(--muted);flex:none;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sg-opt:hover,.sg-opt.is-active{background:var(--leaf-l)}
input.is-filled{background:var(--leaf-xl)}
.search-bar .suggest{top:calc(100% + 6px)}
.toolbar .seg input,.toolbar .chk input,.toolbar .switch input{min-width:0;min-height:0;width:100%}
.gcard:has(.ribbon) .gcard-link{padding-top:34px}
.brand{white-space:nowrap}
@media (max-width:380px){.brand{font-size:1rem}.topbar-in{gap:10px}}
.toolbar .select-wrap select{width:100%}
[data-theme="dark"] .profile-cover{background:linear-gradient(120deg,#17402e,#2b7552)}
[data-theme="dark"] .auth-art{background:linear-gradient(160deg,#143626,#235c41)}
[data-theme="dark"] .hero{background:linear-gradient(var(--leaf-xl),var(--bg))}
[data-theme="dark"] .btn-primary{color:#07130d}
.brand svg,.brand img,.brand .logo{flex:none}
@media (max-width:359px){.brand{font-size:0;gap:0}.topbar-actions{gap:6px}}

/* Portfolio: simple photo grid (public) and the 6-slot manager (gardener) */
.toast.warn{background:var(--gold);color:#fff}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gallery button{padding:0;border:0;background:var(--leaf-l);cursor:zoom-in;border-radius:10px;overflow:hidden;aspect-ratio:4/3;position:relative;display:block}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.gallery button:hover img{transform:scale(1.05)}
.gallery .cap{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 7px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:.82rem;text-align:left;line-height:1.3;pointer-events:none}
@media(max-width:560px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pf-count{font-size:1.15rem}
.pf-meter{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:5px}
.pf-meter i{height:7px;border-radius:9px;background:var(--line-2)}.pf-meter i.on{background:var(--leaf)}
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.pf-tile{margin:0;display:grid;gap:7px;align-content:start;min-width:0}
.pf-img{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--leaf-l)}.pf-img img{width:100%;height:100%;object-fit:cover}
.pf-badge{position:absolute;left:7px;top:7px;background:var(--leaf);color:#fff;font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:99px}.pf-badge.warn{background:var(--gold)}
.pf-del{position:absolute;right:6px;top:6px}.pf-del .icon-btn{background:rgba(0,0,0,.62);color:#fff;width:32px;height:32px}
.pf-cap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.pf-cap input{min-width:0;padding:7px 10px;font-size:.9rem}.pf-cap .icon-btn{width:36px;height:36px}
.pf-empty{aspect-ratio:4/3;align-self:start;display:grid;place-items:center;align-content:center;gap:4px;border:1.5px dashed var(--line);border-radius:10px;color:var(--muted);cursor:pointer;font-size:.88rem;transition:border-color .15s,background .15s}
.pf-empty:hover{border-color:var(--leaf);background:var(--leaf-xl);color:var(--leaf)}
.pf-tips{margin:14px 0 0;padding-left:18px;display:grid;gap:4px;font-size:.9rem}
.dropzone b{color:var(--ink)}
.previews{margin-top:0}.previews:empty{display:none}
@media(max-width:560px){.pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Carousel buttons */
.slider{position:relative}
.slider-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.18);transition:background .15s,transform .15s}
.slider-btn[hidden]{display:none}
.slider-btn:hover{background:var(--leaf-l)}.slider-btn:active{transform:translateY(-50%) scale(.94)}
.slider-btn.prev{left:2px}.slider-btn.next{right:2px}
.slider:has(.cat-row) .slider-btn{top:42%;width:38px;height:38px}
@media(min-width:900px){.slider-btn.prev{left:-6px}.slider-btn.next{right:-6px}}
/* Tables: roomier cells, no cramped wrapping of names and references */
.t td:first-child,.t th:first-child{padding-left:18px}.t td:last-child,.t th:last-child{padding-right:18px}
.t td a b{white-space:nowrap}
.t td{vertical-align:middle}
@media (max-width:760px){.t td:first-child,.t th:first-child{padding-left:0}.t td:last-child,.t th:last-child{padding-right:0}}
