@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Spline+Sans+Mono:wght@400;500;600&display=swap');.main-layout__top-bar{height: 60px;background: var(--campsmart-primary-color);color: var(--campsmart-on-ink);padding: 0 22px;gap: 18px}.main-layout__logo{font-size: 18px;font-weight: 800;letter-spacing: -.4px;margin: 0;color: var(--campsmart-on-ink)}.main-layout__logo-accent{color: var(--campsmart-secondary-color)}.main-layout__user-menu{background: transparent}.main-layout__user{display: flex;align-items: center;gap: 10px}.main-layout__avatar{width: 36px;height: 36px;background: var(--campsmart-secondary-color);color: var(--campsmart-secondary-deep);font-weight: 700}.main-layout__user-text{display: flex;flex-direction: column;align-items: flex-start;line-height: 1.25}.main-layout__user-name{font-size: 13px;font-weight: 600;color: var(--campsmart-on-ink)}.main-layout__user-role{font-size: 11px;color: var(--campsmart-on-ink-2)}@media (max-width: 760px){.main-layout__user-text{display: none}}.main-layout::part(drawer){background: var(--campsmart-paper);border-right: 1px solid var(--campsmart-line)}.main-layout__nav{width: 100%}.main-layout__nav-group{display: block;padding: 14px 11px 5px;font-size: 10.5px;font-weight: 700;letter-spacing: .8px;text-transform: uppercase;color: var(--campsmart-text-3)}.main-layout__nav-link{display: flex;align-items: center;gap: 11px;padding: 9px 11px;border-radius: 8px;font-size: 13.5px;font-weight: 500;color: var(--campsmart-text-2);text-decoration: none}.main-layout__nav-icon{width: 18px;height: 18px;flex: 0 0 auto;color: var(--campsmart-text-3)}.main-layout__nav-link:hover{background: var(--campsmart-surface-2);color: var(--campsmart-text)}.main-layout__nav-link.router-link-active{background: var(--campsmart-primary-color);color: var(--campsmart-on-ink);font-weight: 600}.main-layout__nav-link.router-link-active .main-layout__nav-icon{color: var(--campsmart-secondary-color)}.auth{min-height: 100vh;display: grid;grid-template-columns: 1fr 1fr;background: var(--canvas);color: var(--text)}.auth__art{position: relative;overflow: hidden;display: flex;flex-direction: column;padding: 46px;color: var(--on-ink);background: radial-gradient(120% 90% at 80% 0%,hsl(86 54% 50% / .30),transparent 55%),linear-gradient(160deg,hsl(var(--cs-sh) 11% 14%),hsl(var(--cs-sh) 11% 7%))}.auth__art::after{content: "";position: absolute;inset: 0;background: linear-gradient(180deg,hsl(var(--cs-sh) 20% 6% / .15),hsl(var(--cs-sh) 20% 6% / .55));pointer-events: none}.auth__brand{position: relative;z-index: 1;font-size: 21px;font-weight: 800;letter-spacing: -.4px;color: var(--on-ink)}.auth__brand b{color: var(--lime)}.auth__quote{position: relative;z-index: 1;margin-top: auto;display: flex;flex-direction: column;gap: 14px;max-width: 26ch;font-size: 21px;line-height: 1.5;font-weight: 500}.auth__by{font-size: 13px;font-weight: 500;color: var(--on-ink-2)}.auth__form-wrap{position: relative;display: flex;flex-direction: column;align-items: center;justify-content: safe center;padding: 40px 24px;overflow: auto}.auth__back{position: absolute;top: 24px;left: 24px;z-index: 2;font-size: 13px;font-weight: 600;color: var(--text-2);text-decoration: none}.auth__back:hover{color: var(--text)}.auth__card{width: min(420px,100%)}.auth__title{margin: 0 0 4px;font-size: 25px;font-weight: 800;letter-spacing: -.5px;text-align: center;color: var(--campsmart-primary-color)}.auth__sub{margin: 0 0 24px;text-align: center;font-size: 14px;color: var(--text-2)}.auth__toggle{display: flex;gap: 0;padding: 4px;margin-bottom: 20px;background: var(--surface-2);border: 1px solid var(--line);border-radius: 11px}.auth__toggle .auth__toggle-btn{flex: 1;min-width: 0;height: auto;margin: 0;padding: 11px;border-radius: 8px;background: transparent;color: var(--text-2);font-size: 13.5px;font-weight: 600;cursor: pointer;box-shadow: none}.auth__toggle .auth__toggle-btn:hover{background: transparent;color: var(--text)}.auth__toggle .auth__toggle-btn.is-on{background: var(--ink);color: var(--on-ink);box-shadow: var(--shadow-sm)}.auth__toggle .auth__toggle-btn vaadin-icon,.auth__toggle .auth__toggle-btn svg{width: 16px;height: 16px}.auth__toggle .auth__toggle-btn.is-on vaadin-icon,.auth__toggle .auth__toggle-btn.is-on svg{color: var(--lime)}.auth__fields{display: flex;flex-direction: column;gap: 14px}.auth__frow{display: grid;grid-template-columns: 1fr 1fr;gap: 13px;align-items: start}.auth__card vaadin-text-field,.auth__card vaadin-email-field,.auth__card vaadin-password-field{width: 100%}.auth__label{font-size: 12px;font-weight: 600;color: var(--text-2)}.auth__pwhint{display: flex;align-items: center;gap: 6px;font-size: 11.5px;color: var(--text-3)}.auth__pwhint svg{width: 14px;height: 14px;color: var(--lime-strong)}.auth__tiers{display: grid;grid-template-columns: repeat(3,1fr);gap: 10px}.auth__tier{padding: 12px;text-align: center;background: var(--paper);border: 1px solid var(--line-2);border-radius: 10px;cursor: pointer}.auth__tier:hover{border-color: var(--lime-line)}.auth__tier.is-on{background: var(--lime-tint);border-color: var(--lime-strong);box-shadow: 0 0 0 1px var(--lime-strong) inset}.auth__tier-name{font-size: 13px;font-weight: 700}.auth__tier-price{margin-top: 3px;font-size: 17px;font-weight: 800}.auth__tier-price small{font-size: 11px;font-weight: 500;color: var(--text-3)}.auth__submit{height: 46px;margin-top: 4px;border-radius: 10px;background: var(--lime);color: var(--lime-deep);font-size: 15px;font-weight: 600;cursor: pointer}.auth__submit:hover{background: var(--lime-strong);color: #fff}.auth__foot{display: block;margin-top: 18px;text-align: center;font-size: 13px;color: var(--text-2)}.auth__foot a{color: var(--lime-deep);font-weight: 600;text-decoration: none}.auth__foot a:hover{text-decoration: underline}.auth__card vaadin-login-form,.auth__card vaadin-login-form-wrapper{width: 100%;padding: 0;background: transparent}@media (max-width: 860px){.auth{grid-template-columns: 1fr}.auth__art{display: none}}.forgot-password-view,.reset-password-view,.access-denied-view{background: var(--campsmart-canvas);color: var(--campsmart-text)}.forgot-password-view vaadin-form-layout,.reset-password-view vaadin-form-layout{max-width: 460px}.public-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--canvas);color:var(--text)}.public-shell__content{flex:1 0 auto}.public-shell .mk{max-width:1200px;margin:0 auto;padding:0 36px}.public-nav{position:sticky;top:0;z-index:30;height:64px;display:flex;align-items:center;gap:18px;padding:0 36px;background:hsl(var(--cs-sh) 11% 9% / .92);backdrop-filter:blur(8px);color:var(--on-ink)}.public-nav__brand{font-size:19px;font-weight:800;letter-spacing:-.4px;color:var(--on-ink)}.public-nav__brand b{color:var(--lime)}.public-nav__links{display:flex;gap:4px;margin-left:8px}.public-nav__links a{padding:8px 13px;border-radius:8px;font-size:13.5px;font-weight:500;color:var(--on-ink-2)}.public-nav__links a:hover{color:var(--on-ink);background:hsl(0 0% 100% / .07)}.public-nav__spacer{flex:1}.public-nav__actions{display:flex;gap:10px;align-items:center}.public-shell .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;border-radius:10px;font-weight:600;font-size:14px;cursor:pointer;border:1px solid transparent;text-decoration:none;white-space:nowrap}.public-shell .btn.sm{height:34px;padding:0 13px;font-size:13px}.public-shell .btn.lg{height:48px;padding:0 22px;font-size:15px}.public-shell .btn.block{display:flex;width:100%}.public-shell .btn svg{width:18px;height:18px}.public-shell .btn-lime{background:var(--lime);color:var(--lime-deep)}.public-shell .btn-lime:hover{background:var(--lime-strong)}.public-shell .btn-ink{background:var(--ink);color:var(--on-ink)}.public-shell .btn-ink:hover{background:var(--ink-soft)}.public-shell .btn-out{background:transparent;border-color:var(--line-2);color:var(--text)}.public-shell .btn-out:hover{background:var(--surface-2)}.public-shell .btn-out.on-ink{border-color:hsl(0 0% 100% / .25);color:var(--on-ink)}.public-shell .btn-out.on-ink:hover{background:hsl(0 0% 100% / .08)}.public-shell .hero{background:var(--ink);color:var(--on-ink);position:relative;overflow:hidden}.public-shell .hero-in{max-width:1200px;margin:0 auto;padding:64px 36px 72px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.public-shell .hero-in.center{grid-template-columns:1fr;text-align:center;padding-bottom:48px}.public-shell .hero-in.center .hero-copy{max-width:46ch;margin:0 auto}.public-shell .hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.4px;color:var(--lime);background:var(--lime-tint);border:1px solid hsl(0 0% 100% / .1);padding:6px 12px;border-radius:99px;margin-bottom:20px}.public-shell .hero h1{font-size:52px;line-height:1.04;font-weight:800;letter-spacing:-1.6px;margin:0 0 18px}.public-shell .hero h1 b{color:var(--lime);font-weight:800}.public-shell .hero .lead{font-size:17px;line-height:1.6;color:var(--on-ink-2);max-width:48ch;margin:0 0 26px}.public-shell .hero-in.center .lead{margin:0 auto 26px}.public-shell .hero-cta{display:flex;gap:12px;flex-wrap:wrap}.public-shell .hero-in.center .hero-cta{justify-content:center}.public-shell .hero-stats{display:flex;gap:30px;margin-top:34px;border-top:1px solid hsl(0 0% 100% / .12);padding-top:22px}.public-shell .hero-stats .s b{display:block;font-size:26px;font-weight:800;letter-spacing:-.5px}.public-shell .hero-stats .s span{font-size:12.5px;color:var(--on-ink-2)}.public-shell .hero-visual{position:relative}.public-shell .hero-preview{height:420px;border-radius:16px;box-shadow:var(--shadow-lg);background:radial-gradient(120% 120% at 80% 0%,hsl(86 54% 50% / .35),transparent 55%),linear-gradient(160deg,hsl(var(--cs-sh) 11% 14%),hsl(var(--cs-sh) 11% 9%));border:1px solid hsl(0 0% 100% / .08)}.public-shell .hero-float{position:absolute;background:var(--paper);color:var(--text);border-radius:13px;box-shadow:var(--shadow-lg);padding:13px 15px;display:flex;align-items:center;gap:11px;font-size:13px}.public-shell .hero-float.a{left:-22px;top:34px}.public-shell .hero-float.b{right:-18px;bottom:30px}.public-shell .hero-float .hf-ic{width:34px;height:34px;border-radius:9px;background:var(--lime);color:var(--lime-deep);display:grid;place-items:center;flex:0 0 auto}.public-shell .hero-float b{font-size:14px;font-weight:700;display:block}.public-shell .hero-float span{color:var(--text-3);font-size:11.5px}.public-shell .trust{border-bottom:1px solid var(--line);background:var(--paper)}.public-shell .trust-in{max-width:1200px;margin:0 auto;padding:18px 36px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--text-3)}.public-shell .trust-in b{color:var(--text-2);font-weight:600}.public-shell .trust-in .spacer{flex:1}.public-shell .badge-verified{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--lime-deep);background:var(--lime-tint);border:1px solid var(--lime-line);padding:5px 11px;border-radius:99px}.public-shell .sec{padding:68px 0}.public-shell .sec.alt{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.public-shell .sec-head{text-align:center;max-width:640px;margin:0 auto 44px}.public-shell .eyebrow{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--lime-strong);margin:0 0 10px}.public-shell .sec-head h2{font-size:34px;font-weight:800;letter-spacing:-.9px;margin:0 0 12px}.public-shell .sec-head p{font-size:16px;color:var(--text-2);line-height:1.6;margin:0}.public-shell .feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.public-shell .feat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm)}.public-shell .sec.alt .feat{background:var(--surface)}.public-shell .feat-ic{width:46px;height:46px;border-radius:12px;background:var(--ink);color:var(--lime);display:grid;place-items:center;margin-bottom:16px}.public-shell .feat h3{font-size:17px;font-weight:700;margin:0 0 7px;letter-spacing:-.2px}.public-shell .feat p{font-size:13.5px;color:var(--text-2);line-height:1.55;margin:0}.public-shell .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.public-shell .step-c{position:relative;padding-top:14px}.public-shell .step-c .n{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--lime-strong)}.public-shell .step-c h4{font-size:16px;font-weight:700;margin:8px 0 6px}.public-shell .step-c p{font-size:13px;color:var(--text-2);line-height:1.5;margin:0}.public-shell .step-c::before{content:"";position:absolute;top:0;left:0;width:32px;height:3px;border-radius:3px;background:var(--lime)}.public-shell .cta-band{background:var(--lime);color:var(--lime-deep);border-radius:var(--r-xl);padding:46px;text-align:center}.public-shell .cta-band h2{font-size:32px;font-weight:800;letter-spacing:-.8px;margin:0 0 10px}.public-shell .cta-band p{font-size:16px;margin:0 0 22px;opacity:.85}.public-shell .tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}.public-shell .tier{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow-sm);position:relative}.public-shell .tier.pop{border:2px solid var(--ink);box-shadow:var(--shadow-md)}.public-shell .tier .pop-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--lime);color:var(--lime-deep);font-size:11px;font-weight:800;letter-spacing:.4px;padding:4px 13px;border-radius:99px}.public-shell .tier .tname{font-size:15px;font-weight:700}.public-shell .tier .tprice{font-size:42px;font-weight:800;letter-spacing:-1.5px;margin:10px 0 2px}.public-shell .tier .tprice small{font-size:15px;color:var(--text-3);font-weight:500;letter-spacing:0}.public-shell .tier .tfee{font-size:13px;color:var(--text-2);margin-bottom:18px}.public-shell .tier .tfee b{color:var(--lime-deep)}.public-shell .tier ul{list-style:none;padding:0;margin:18px 0 22px;display:flex;flex-direction:column;gap:11px}.public-shell .tier li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--text)}.public-shell .tier li svg{color:var(--lime-strong);flex:0 0 auto;margin-top:1px;width:16px;height:16px}.public-shell .tier li.off{color:var(--text-3)}.public-shell .tier li.off svg{color:var(--line-2)}.public-shell .pricing-note{text-align:center;font-size:13px;color:var(--text-3);margin-top:26px}.public-shell .pricing-note .mono{font-family:var(--mono)}.public-shell .matrix{width:100%;border-collapse:separate;border-spacing:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.public-shell .matrix th,.public-shell .matrix td{padding:14px 18px;border-bottom:1px solid var(--line);font-size:13.5px;text-align:left}.public-shell .matrix thead th{background:var(--surface-2);font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text-2)}.public-shell .matrix th.c,.public-shell .matrix td.c{text-align:center}.public-shell .matrix .grouprow td{background:var(--ink);color:var(--on-ink);font-weight:700;font-size:12px;letter-spacing:.4px;text-transform:uppercase}.public-shell .matrix tr:last-child td{border-bottom:none}.public-shell .matrix .yes{color:var(--lime-strong);font-weight:700}.public-shell .matrix .dash{color:var(--line-2)}.public-shell .mk.narrow{max-width:920px}.public-shell .center-cta{text-align:center;margin-top:30px}.public-shell .legal{max-width:820px;margin:0 auto;padding:56px 36px 72px}.public-shell .legal h1{font-size:38px;font-weight:800;letter-spacing:-1px;margin:0 0 6px}.public-shell .legal .updated{color:var(--text-3);font-size:13px;margin:0 0 32px}.public-shell .legal h2{font-size:19px;font-weight:700;margin:30px 0 8px}.public-shell .legal p,.public-shell .legal li{font-size:14.5px;line-height:1.7;color:var(--text-2)}.public-shell .legal ul{padding-left:20px}.public-shell .mk-foot{background:var(--ink);color:var(--on-ink-2);padding:48px 0 28px}.public-shell .mk-foot-in{max-width:1200px;margin:0 auto;padding:0 36px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}.public-shell .mk-foot h5{color:var(--on-ink);font-size:12px;letter-spacing:.6px;text-transform:uppercase;margin:0 0 14px}.public-shell .mk-foot a{display:block;font-size:13px;color:var(--on-ink-2);padding:5px 0;cursor:pointer}.public-shell .mk-foot a:hover{color:var(--lime)}.public-shell .mk-foot .fbrand{font-size:20px;font-weight:800;color:var(--on-ink)}.public-shell .mk-foot .fbrand b{color:var(--lime)}.public-shell .mk-foot .fblurb{font-size:13px;line-height:1.6;max-width:34ch;margin-top:12px;color:var(--on-ink-2)}.public-shell .mk-copy{max-width:1200px;margin:32px auto 0;padding:20px 36px 0;border-top:1px solid hsl(0 0% 100% / .1);font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}@media (max-width:1100px){.public-shell .hero-in{grid-template-columns:1fr;gap:32px}.public-shell .hero h1{font-size:40px}.public-shell .hero-visual{display:none}.public-shell .feat-grid,.public-shell .steps,.public-shell .tiers{grid-template-columns:1fr 1fr}.public-shell .mk-foot-in{grid-template-columns:1fr 1fr}}@media (max-width:760px){.public-nav__links{display:none}.public-shell .feat-grid,.public-shell .steps,.public-shell .tiers,.public-shell .mk-foot-in{grid-template-columns:1fr}.public-shell .hero h1{font-size:34px}}.admin-sections{display: grid;grid-template-columns: repeat(auto-fill,minmax(220px,1fr));gap: 14px;margin-top: 8px}.admin-card{display: block;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 16px 18px;text-decoration: none;color: var(--campsmart-text)}.admin-card:hover{border-color: var(--campsmart-secondary-line);box-shadow: var(--campsmart-shadow-md)}.admin-card__icon{width: 34px;height: 34px;border-radius: 9px;display: grid;place-items: center;background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-strong);margin-bottom: 10px}.admin-card__icon svg{width: 18px;height: 18px}.admin-card__title{font-weight: 700;font-size: 15px}.admin-card__subtitle{font-size: 12.5px;color: var(--campsmart-text-3);margin-top: 2px}.admin-grid-view{padding: 16px 20px}.admin-toolbar{padding: 0;margin-bottom: 4px}.admin-toolbar__title{margin: 0;font-size: 22px;font-weight: 800;letter-spacing: -.5px;color: var(--campsmart-primary-color)}.admin-toolbar__search{min-width: 260px}.admin-badge{display: inline-flex;align-items: center;padding: 2px 10px;border-radius: 999px;font-size: 12px;font-weight: 600;line-height: 1.6}.admin-badge--ok{background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep)}.admin-badge--muted{background: var(--campsmart-surface-3);color: var(--campsmart-text-3)}.camper-dashboard{padding: 28px 32px;max-width: 1180px;display: flex;flex-direction: column;gap: 20px;justify-self: center}.camper-dashboard__header{margin: 0}.camper-dashboard__title{font-size: 27px;font-weight: 800;letter-spacing: -0.6px;color: var(--campsmart-text);margin: 0}.camper-dashboard__welcome{color: var(--campsmart-text-2);margin: 2px 0 0}.camper-dashboard__cta{display: inline-flex;align-items: center;padding: 9px 18px;border-radius: var(--campsmart-radius-sm);background: var(--campsmart-secondary-color);color: var(--campsmart-secondary-deep);font-weight: 700;text-decoration: none}.camper-dashboard__cta:hover{background: var(--campsmart-secondary-strong)}.camper-dashboard__metrics{display: grid;grid-template-columns: repeat(auto-fit,minmax(170px,1fr));gap: 16px}.camper-metric{display: flex;flex-direction: column;gap: 4px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 16px 18px}.camper-metric__label{font-size: 12px;font-weight: 600;text-transform: uppercase;letter-spacing: 0.4px;color: var(--campsmart-text-2)}.camper-metric__value{font-size: 30px;font-weight: 800;color: var(--campsmart-text)}.camper-metric__detail{font-size: 13px;color: var(--campsmart-text-3)}.camper-dashboard__section,.camper-dashboard__panel{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.camper-dashboard__grid{display: grid;grid-template-columns: 1fr 320px;gap: 20px;align-items: start}.camper-dashboard__main,.camper-dashboard__side{display: flex;flex-direction: column;gap: 20px}.camper-dashboard__section-title{display: block;font-size: 13px;font-weight: 700;text-transform: uppercase;letter-spacing: 0.4px;color: var(--campsmart-text-2);margin-bottom: 10px}.camper-dashboard__placeholder{color: var(--campsmart-text-3);margin: 0}@media (max-width: 880px){.camper-dashboard{padding: 20px 16px}.camper-dashboard__grid{grid-template-columns: 1fr}}.account-view{padding: 28px 32px;max-width: 1180px;justify-self: center}.account-view__title{font-size: 27px;font-weight: 800;letter-spacing: -0.6px;color: var(--campsmart-text);margin: 0}.account-view__sub{color: var(--campsmart-text-2);margin: 2px 0 22px}.account-view__grid{display: grid;grid-template-columns: 7fr 5fr;gap: 20px;align-items: start}.account-view__main,.account-view__side{display: flex;flex-direction: column;gap: 20px}.account-card{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.account-card__header{display: flex;justify-content: space-between;align-items: center;margin-bottom: 14px}.account-card__title{display: inline-flex;align-items: center;gap: 9px;font-size: 13px;font-weight: 700;text-transform: uppercase;letter-spacing: 0.4px;color: var(--campsmart-text-2)}.account-card__title svg{width: 18px;height: 18px;color: var(--campsmart-secondary-strong)}.account-card__action{font-weight: 600}.account-card__fields{display: flex;flex-direction: column;gap: 15px}.account-card__row{display: grid;grid-template-columns: 1fr 1fr;gap: 13px}.account-card__row--three{grid-template-columns: 1fr 1fr 1fr}.account-field{display: flex;flex-direction: column;gap: 6px}.account-field__label{font-size: 12px;font-weight: 600;color: var(--campsmart-text-2)}.account-field__value{min-height: 40px;display: flex;align-items: center;padding: 0 12px;background: var(--campsmart-surface-2);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius-sm);color: var(--campsmart-text);font-size: 15px}.account-field__value--mono{font-family: var(--campsmart-mono);font-size: 13px}.account-card__rows{display: flex;flex-direction: column}.account-secrow{display: flex;justify-content: space-between;align-items: center;gap: 12px;padding: 11px 0;border-bottom: 1px solid var(--campsmart-line)}.account-secrow:last-child{border-bottom: none}.account-secrow__text{display: flex;flex-direction: column;gap: 2px}.account-secrow__name{font-weight: 600;color: var(--campsmart-text)}.account-secrow__detail{font-size: 13px;color: var(--campsmart-text-3)}.account-card__empty{color: var(--campsmart-text-3);margin: 4px 0}@media (max-width: 880px){.account-view{padding: 20px 16px}.account-view__grid{grid-template-columns: 1fr}.account-card__row,.account-card__row--three{grid-template-columns: 1fr}}.id-upload-view{display: flex;justify-content: center;padding: 48px 24px}.id-upload__card{width: 100%;max-width: 560px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-md);padding: 28px}.id-upload__title{font-size: 24px;font-weight: 800;letter-spacing: -0.4px;color: var(--campsmart-text);margin: 0 0 8px}.id-upload__intro{color: var(--campsmart-text-2);margin: 0 0 20px}.id-upload__upload{width: 100%}.id-upload__hint{margin-top: 12px;font-size: 13px;color: var(--campsmart-text-3)}.id-upload__hint p{margin: 0}.setup{display: grid;grid-template-columns: 300px 1fr;gap: 0;min-height: calc(100vh - 64px);background: var(--campsmart-canvas)}.setup-rail{background: var(--campsmart-primary-color);color: var(--campsmart-on-ink);padding: 24px 18px;display: flex;flex-direction: column;gap: 14px}.setup-rail__eyebrow{font-size: 11.5px;font-weight: 700;letter-spacing: 0.6px;text-transform: uppercase;color: var(--campsmart-on-ink-2)}.setup-rail__progress{height: 7px;border-radius: 99px;background: hsl(0 0% 100% / 0.12);overflow: hidden}.setup-rail__progress-fill{height: 100%;background: var(--campsmart-secondary-color);border-radius: 99px;transition: width 0.2s ease}.setup-rail__steps{display: flex;flex-direction: column;gap: 3px;margin-top: 6px}.setup-rail__step{display: flex;align-items: center;gap: 11px;padding: 10px 11px;border-radius: var(--campsmart-radius-sm);cursor: pointer}.setup-rail__step:hover{background: hsl(0 0% 100% / 0.05)}.setup-rail__step--on{background: hsl(0 0% 100% / 0.08);box-shadow: var(--campsmart-shadow-sm)}.setup-rail__num{flex: 0 0 auto;width: 28px;height: 28px;border-radius: 50%;display: inline-flex;align-items: center;justify-content: center;font-size: 13px;font-weight: 700;background: hsl(0 0% 100% / 0.1);color: var(--campsmart-on-ink)}.setup-rail__step--on .setup-rail__num,.setup-rail__step--done .setup-rail__num{background: var(--campsmart-secondary-color);color: var(--campsmart-secondary-deep)}.setup-rail__step-title{display: block;font-size: 14px;font-weight: 600;color: var(--campsmart-on-ink)}.setup-rail__step-sub{display: block;font-size: 11.5px;color: var(--campsmart-on-ink-2)}.setup-main{padding: 32px 36px;max-width: 900px}.setup-main__eyebrow{font-size: 11.5px;font-weight: 700;letter-spacing: 0.6px;text-transform: uppercase;color: var(--campsmart-text-3)}.setup-main__title{font-size: 26px;font-weight: 800;letter-spacing: -0.5px;color: var(--campsmart-text);margin: 4px 0 2px}.setup-main__sub{color: var(--campsmart-text-2);margin: 0 0 22px}.setup-main__placeholder{color: var(--campsmart-text-3);background: var(--campsmart-surface-2);border: 1px dashed var(--campsmart-line);border-radius: var(--campsmart-radius);padding: 20px}.setup-main__footer{display: flex;justify-content: space-between;align-items: center;margin-top: 26px;padding-top: 18px;border-top: 1px solid var(--campsmart-line)}.setup-main__footer-actions{display: flex;gap: 10px}.setup-rail__exit{margin-top: auto;align-self: flex-start;color: var(--campsmart-on-ink-2)}.setup-rail__exit:hover{color: var(--campsmart-on-ink)}@media (max-width: 880px){.setup{grid-template-columns: 1fr}.setup-main{padding: 20px 16px}}.campsite-config-view{padding: 28px 32px;max-width: 1000px;justify-self: center}.campsite-config-view__header{margin-bottom: 22px}.campsite-config-view__eyebrow{display: block;font-size: 11px;font-weight: 700;letter-spacing: 1px;text-transform: uppercase;color: var(--campsmart-text-3);margin: 0 0 6px}.campsite-config-view__title{font-size: 27px;font-weight: 800;letter-spacing: -0.6px;color: var(--campsmart-text);margin: 0}.campsite-config-view__actions{margin-top: 20px;display: flex;justify-content: flex-end}.campsite-config-view__placeholder{margin: 0;padding: 20px;border: 1px dashed var(--campsmart-line-2);border-radius: var(--campsmart-radius);background: var(--campsmart-surface-2);color: var(--campsmart-text-3);font-size: 13.5px;line-height: 1.5}.campsite-form{display: flex;flex-direction: column;gap: 18px}.campsite-form__layout{display: grid;grid-template-columns: 7fr 5fr;gap: 20px;align-items: start}.campsite-form__side{display: flex;flex-direction: column;gap: 16px}.campsite-form__card{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.campsite-form__card-title{display: inline-flex;align-items: center;gap: 9px;font-size: 12px;font-weight: 700;text-transform: uppercase;letter-spacing: .5px;color: var(--campsmart-text);margin-bottom: 14px}.campsite-form__card-title svg{width: 15px;height: 15px;color: var(--campsmart-secondary-strong)}@media (max-width: 880px){.campsite-form__layout{grid-template-columns: 1fr}}.campsite-form__image-preview{display: flex;align-items: center;justify-content: center;min-height: 120px;margin-bottom: 10px;border: 1px dashed var(--campsmart-line-2);border-radius: var(--campsmart-radius-sm);background: var(--campsmart-surface-2);overflow: hidden}.campsite-form__image-preview--cover{min-height: 150px}.campsite-form__image-hint{font-size: 12.5px;color: var(--campsmart-text-3);padding: 10px;text-align: center}.campsite-form__image-thumb{display: block;width: 100%;max-height: 160px;object-fit: cover}.campsite-rules__cards{display: grid;grid-template-columns: 1fr 1fr;gap: 16px}.campsite-rules__card{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.campsite-rules__card-title{display: inline-flex;align-items: center;gap: 9px;font-size: 12px;font-weight: 700;text-transform: uppercase;letter-spacing: .5px;color: var(--campsmart-text);margin-bottom: 14px}.campsite-rules__card-title svg{width: 15px;height: 15px;color: var(--campsmart-secondary-strong)}.campsite-rules__limits{display: flex;flex-direction: column;gap: 15px}.campsite-rules__toggle{display: flex;align-items: center;justify-content: space-between;gap: 14px;padding: 13px 0;border-bottom: 1px solid var(--campsmart-line)}.campsite-rules__toggle:last-of-type{border-bottom: none}.campsite-rules__toggle-title{display: block;font-size: 14px;font-weight: 600;color: var(--campsmart-text)}.campsite-rules__toggle-sub{font-size: 12.5px;color: var(--campsmart-text-3)}.campsite-rules__switch{position: relative;flex: 0 0 auto;width: 42px;height: 24px;border-radius: 99px;background: var(--campsmart-line-2);cursor: pointer;transition: background .15s}.campsite-rules__switch::after{content: "";position: absolute;top: 3px;left: 3px;width: 18px;height: 18px;border-radius: 50%;background: #fff;box-shadow: 0 1px 2px rgba(0,0,0,.2);transition: left .15s}.campsite-rules__switch--on{background: var(--campsmart-secondary-strong)}.campsite-rules__switch--on::after{left: 21px}.campsite-rules__conditional{margin-top: 13px}@media (max-width: 880px){.campsite-rules__cards{grid-template-columns: 1fr}}.campsite-props__note{margin: 0 0 18px;padding: 11px 14px;border: 1px solid var(--campsmart-info);border-radius: var(--campsmart-radius-sm);background: var(--campsmart-surface);color: var(--campsmart-text-2);font-size: 13px;line-height: 1.5}.campsite-props__grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(150px,1fr));gap: 11px}.campsite-props__tile{display: flex;align-items: center;gap: 11px;padding: 13px;border: 1px solid var(--campsmart-line-2);border-radius: var(--campsmart-radius);background: var(--campsmart-paper);cursor: pointer;transition: border-color .12s,background .12s,box-shadow .12s}.campsite-props__tile:hover{border-color: var(--campsmart-text-3)}.campsite-props__tile--on{border-color: var(--campsmart-secondary-strong);background: var(--campsmart-secondary-tint);box-shadow: 0 0 0 1px var(--campsmart-secondary-strong) inset}.campsite-props__icon-box{display: grid;place-items: center;flex: 0 0 auto;width: 36px;height: 36px;border-radius: 9px;background: var(--campsmart-surface-2);color: var(--campsmart-text-2)}.campsite-props__icon-box svg{width: 18px;height: 18px}.campsite-props__tile--on .campsite-props__icon-box{background: var(--campsmart-primary-color);color: var(--campsmart-secondary-color)}.campsite-props__title{display: block;font-size: 13.5px;font-weight: 600;color: var(--campsmart-text)}.campsite-props__sub{font-size: 11px;color: var(--campsmart-text-3)}.campsite-props__check{width: 18px;height: 18px;margin-left: auto;flex: 0 0 auto;color: var(--campsmart-secondary-strong);opacity: 0}.campsite-props__tile--on .campsite-props__check{opacity: 1}.campsite-fees,.campsite-stands{display: flex;flex-direction: column;gap: 14px}.campsite-stands__bulk{flex-wrap: wrap;align-items: flex-end;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);padding: 14px}.campsite-stands__grid{border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius)}.campsite-fees__cards{display: flex;flex-direction: column;gap: 16px}.campsite-fees__empty{color: var(--campsmart-text-3);background: var(--campsmart-surface-2);border: 1px dashed var(--campsmart-line);border-radius: var(--campsmart-radius);padding: 18px;margin: 0}.campsite-fees__card{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.campsite-fees__card-header{display: flex;justify-content: space-between;align-items: center;gap: 12px;flex-wrap: wrap;margin-bottom: 14px}.campsite-fees__card-title{display: inline-flex;align-items: center;gap: 9px;font-size: 14.5px;font-weight: 700;color: var(--campsmart-text)}.campsite-fees__card-title svg{width: 16px;height: 16px;color: var(--campsmart-secondary-strong)}.campsite-fees__card-actions{display: inline-flex;align-items: center;gap: 8px}.campsite-fees__badge{display: inline-flex;align-items: center;gap: 7px;padding: 3px 11px;border-radius: 999px;font-size: 12px;font-weight: 700}.campsite-fees__badge-dot{width: 7px;height: 7px;border-radius: 50%;background: currentColor}.campsite-fees__badge--active{background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep)}.campsite-fees__badge--scheduled{background: var(--campsmart-surface-3);color: var(--campsmart-text-2)}.campsite-fees__badge--expired{background: var(--campsmart-amber-bg);color: var(--campsmart-amber-text)}.campsite-fees__rates{display: grid;grid-template-columns: repeat(auto-fill,minmax(130px,1fr));gap: 11px}.campsite-fees__rate,.campsite-fees__policy{display: flex;flex-direction: column;gap: 6px}.campsite-fees__rate-label{font-size: 12px;font-weight: 600;color: var(--campsmart-text-2)}.campsite-fees__rate-value{min-height: 36px;display: flex;align-items: center;padding: 0 11px;background: var(--campsmart-surface-2);border: 1px dashed var(--campsmart-line-2);border-radius: var(--campsmart-radius-sm);font-family: var(--campsmart-mono);font-size: 13px;color: var(--campsmart-text)}.campsite-fees__divider{height: 1px;background: var(--campsmart-line);margin: 14px 0}.campsite-fees__policies{display: grid;grid-template-columns: 1fr 1fr 1fr;gap: 13px}@media (max-width: 680px){.campsite-fees__policies{grid-template-columns: 1fr}}.campsite-fees__tabs{display: flex;gap: 2px;border-bottom: 1px solid var(--campsmart-line);margin-bottom: 4px}.campsite-fees__tab{padding: 11px 16px;font-size: 13.5px;font-weight: 600;color: var(--campsmart-text-3);cursor: pointer;border-bottom: 2px solid transparent;margin-bottom: -1px}.campsite-fees__tab:hover{color: var(--campsmart-text-2)}.campsite-fees__tab--on{color: var(--campsmart-text);border-bottom-color: var(--campsmart-primary-color)}.campsite-fees__placeholder{margin: 0;padding: 20px;border: 1px dashed var(--campsmart-line-2);border-radius: var(--campsmart-radius);background: var(--campsmart-surface-2);color: var(--campsmart-text-3);font-size: 13px}.campsite-fees__stand-bar{display: flex;align-items: flex-end;gap: 12px;flex-wrap: wrap;margin-bottom: 4px}.campsite-fees__stand-select{min-width: 240px}.campsite-fees__inherit-note{display: block;margin-top: 12px;padding-top: 10px;border-top: 1px dashed var(--campsmart-line);color: var(--campsmart-text-3);font-size: 12.5px}.campsite-fees__note{display: inline-flex;align-items: center;gap: 8px;padding: 9px 13px;border-radius: var(--campsmart-radius-sm);background: var(--campsmart-amber-bg);color: var(--campsmart-amber-text);font-size: 13px}.banking-hero{display: flex;align-items: center;justify-content: space-between;gap: 16px;flex-wrap: wrap;margin-bottom: 20px;padding: 18px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm)}.banking-hero span:first-child{font-size: 12px;font-weight: 700;letter-spacing: .5px;text-transform: uppercase;color: var(--campsmart-text-3)}.banking-hero p{margin: 4px 0 0;font-size: 14.5px;color: var(--campsmart-text)}.banking-badge{display: inline-flex;align-items: center;padding: 4px 12px;border-radius: 999px;font-size: 12px;font-weight: 700}.banking-badge--active{background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep)}.banking-badge--inactive{background: var(--campsmart-amber-bg);color: var(--campsmart-amber-text)}.banking-tiers{display: grid;grid-template-columns: repeat(3,1fr);gap: 16px;margin-bottom: 22px}@media (max-width: 880px){.banking-tiers{grid-template-columns: 1fr}}.banking-tier{display: flex;flex-direction: column;gap: 4px;padding: 20px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm)}.banking-tier__name{font-size: 12px;font-weight: 700;letter-spacing: .5px;text-transform: uppercase;color: var(--campsmart-text-2)}.banking-tier__price{font-size: 28px;font-weight: 800;letter-spacing: -0.6px;color: var(--campsmart-text)}.banking-tier__per{font-size: 12.5px;color: var(--campsmart-text-3)}.banking-tier__total{margin: 6px 0 14px;font-size: 13px;color: var(--campsmart-text-2)}.banking-section{margin-bottom: 22px}.banking-section__title{display: block;font-size: 12px;font-weight: 700;letter-spacing: .5px;text-transform: uppercase;color: var(--campsmart-text-2);margin-bottom: 12px}.payment-route__section{margin-bottom: 18px}.payment-route__section-label{display: block;font-size: 0.75rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.06em;color: var(--campsmart-text-3);margin-bottom: 8px}.payment-route__toggle-group{display: flex;flex-wrap: wrap;gap: 8px}.payment-route__toggle{flex: 1 1 auto}.payment-route__fee-note{display: block;margin-top: 8px;font-size: 0.8rem;color: var(--campsmart-text-3)}.payment-route__fee-rates{margin: 8px 0 0;font-size: 0.78rem;color: var(--campsmart-text-3);line-height: 1.4}.payment-route__summary{margin-top: 4px;padding: 12px 14px;background: var(--campsmart-bg-2);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius)}.payment-route__summary-row{display: flex;justify-content: space-between;align-items: center;padding: 4px 0;font-size: 0.85rem;color: var(--campsmart-text-2)}.payment-route__summary-row--total{margin-top: 8px;padding-top: 10px;border-top: 1px solid var(--campsmart-line);font-weight: 600;color: var(--campsmart-text)}.payment-route__summary-label{color: inherit}.payment-route__summary-value{font-variant-numeric: tabular-nums;color: inherit}.payment-route__summary-value--total{font-size: 1rem;color: var(--campsmart-primary)}.payment-route__actions{display: flex;flex-wrap: wrap;gap: 10px;margin-top: 14px}.payment-route__actions vaadin-button{flex: 1 1 auto}.dummy-pay{max-width: 560px;padding: 22px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm)}.dummy-pay__info{margin: 0 0 12px;font-size: 14.5px;color: var(--campsmart-text)}.dummy-pay__ref{display: block;margin-bottom: 16px;font-family: var(--campsmart-mono);font-size: 12.5px;color: var(--campsmart-text-3);word-break: break-all}.dummy-pay__actions{display: flex;flex-wrap: wrap;gap: 10px}.dummy-pay__button{flex: 1 1 160px}.banking-history__pay{white-space: nowrap}.browse-view__title{font-size: 30px;font-weight: 800;letter-spacing: -0.6px;color: var(--campsmart-text);margin: 0 0 4px}.browse-view__intro{margin: 0 0 18px;color: var(--campsmart-text-2);font-size: 15px}.browse-view__search{width: 100%;max-width: 440px;margin-bottom: 22px}.browse-view__empty{color: var(--campsmart-text-3);font-size: 14.5px}.browse-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(280px,1fr));gap: 18px}.site-card{display: flex;flex-direction: column;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);overflow: hidden;transition: box-shadow .15s ease,transform .15s ease}.site-card:hover{box-shadow: var(--campsmart-shadow-md);transform: translateY(-2px)}.site-card__media{display: grid;place-items: center;height: 132px;background: var(--campsmart-surface-2);color: var(--campsmart-secondary-strong);font-size: 38px;overflow: hidden}.site-card__cover{width: 100%;height: 100%;object-fit: cover}.site-card__body{display: flex;flex-direction: column;gap: 8px;padding: 16px}.site-card__name{font-size: 17px;font-weight: 700;color: var(--campsmart-text);margin: 0}.site-card__loc{display: inline-flex;align-items: center;gap: 5px;font-size: 12.5px;color: var(--campsmart-text-3)}.site-card__loc svg{width: 13px;height: 13px}.site-card__blurb{margin: 2px 0;font-size: 13px;line-height: 1.5;color: var(--campsmart-text-2)}.site-card__amenities{display: flex;flex-wrap: wrap;gap: 6px}.site-card__amenity{display: inline-flex;align-items: center;gap: 5px;padding: 3px 9px;border-radius: 999px;background: var(--campsmart-surface-2);color: var(--campsmart-text-2);font-size: 11.5px;font-weight: 600}.site-card__amenity svg{width: 12px;height: 12px;color: var(--campsmart-secondary-strong)}.site-card__foot{display: flex;align-items: center;justify-content: space-between;margin-top: 6px;padding-top: 12px;border-top: 1px solid var(--campsmart-line)}.site-card__from{font-size: 13px;color: var(--campsmart-text-2)}.booking-view{padding: 28px 32px;max-width: 1180px;justify-self: center}.booking-view__header{margin-bottom: 18px}.booking-view__eyebrow{font-size: 11px;font-weight: 700;letter-spacing: .6px;text-transform: uppercase;color: var(--campsmart-text-3)}.booking-view__title{font-size: 28px;font-weight: 800;letter-spacing: -0.5px;color: var(--campsmart-text);margin: 2px 0 0}.booking-view__location{margin: 2px 0 0;color: var(--campsmart-text-2);font-size: 14px}.booking-view__layout{display: grid;grid-template-columns: minmax(0,1fr) 340px;gap: 18px;align-items: start}@media (max-width: 1200px){.booking-view__layout{grid-template-columns: minmax(0,1fr)}}.booking-cards{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1fr);gap: 14px}@media (max-width: 680px){.booking-cards{grid-template-columns: minmax(0,1fr)}}.booking-card{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 16px}.booking-card--accent{grid-column: 1 / -1;border-color: var(--campsmart-secondary-line)}.booking-card__head{margin-bottom: 12px}.booking-card__title{display: inline-flex;align-items: center;gap: 8px;font-size: 12px;font-weight: 700;letter-spacing: .5px;text-transform: uppercase;color: var(--campsmart-text-2)}.booking-card__title svg{width: 15px;height: 15px;color: var(--campsmart-secondary-strong)}.booking-frow{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1fr);gap: 12px}.booking-frow--three{grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.booking-field{width: 100%}.booking-subrows{display: flex;flex-direction: column}.booking-subrow{display: flex;align-items: center;gap: 9px;margin-top: 9px;padding-top: 10px;border-top: 1px dashed var(--campsmart-line)}.booking-subrow__field{flex: 1}.booking-subtag{flex: 0 0 auto;font-size: 10.5px;font-weight: 700;color: var(--campsmart-secondary-deep);background: var(--campsmart-secondary-tint);padding: 4px 9px;border-radius: 6px;white-space: nowrap}.stand-grid{display: grid;grid-template-columns: repeat(auto-fill,minmax(150px,1fr));gap: 10px}.stand-opt{border: 1px solid var(--campsmart-line-2);border-radius: 10px;padding: 12px;background: var(--campsmart-paper);cursor: pointer;transition: border-color .12s ease,background .12s ease}.stand-opt:hover{border-color: var(--campsmart-text-3)}.stand-opt--selected{border-color: var(--campsmart-secondary-strong);background: var(--campsmart-secondary-tint);box-shadow: 0 0 0 1px var(--campsmart-secondary-strong) inset}.stand-opt__name{font-weight: 700;font-size: 13.5px;color: var(--campsmart-text)}.stand-grid .booking-hint{grid-column: 1 / -1;margin: 0}.booking-summary{position: sticky;top: 16px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.booking-summary__head{display: flex;align-items: baseline;justify-content: space-between;margin-bottom: 10px}.booking-summary__title{font-size: 12px;font-weight: 700;letter-spacing: .5px;text-transform: uppercase;color: var(--campsmart-text-2)}.booking-summary__note{font-size: 11.5px;color: var(--campsmart-text-3)}.booking-summary__actions{display: flex;flex-direction: column;gap: 8px;margin-top: 14px}.booking-summary__submit{width: 100%}.fee-line{display: flex;align-items: center;justify-content: space-between;gap: 12px;font-size: 13.5px;padding: 7px 0;border-bottom: 1px dashed var(--campsmart-line)}.fee-line__label{color: var(--campsmart-text-2)}.fee-line__value{font-variant-numeric: tabular-nums;font-weight: 600;color: var(--campsmart-text);white-space: nowrap}.fee-total{display: flex;align-items: baseline;justify-content: space-between;margin-top: 10px;padding-top: 12px;border-top: 2px solid var(--campsmart-primary-color)}.fee-total__label{font-size: 12px;font-weight: 700;letter-spacing: .4px;text-transform: uppercase;color: var(--campsmart-text-2)}.fee-total__value{font-size: 22px;font-weight: 800;letter-spacing: -0.5px;font-variant-numeric: tabular-nums;color: var(--campsmart-text)}.fee-sub{display: flex;justify-content: space-between;margin-top: 8px;font-size: 12px;color: var(--campsmart-text-3);font-variant-numeric: tabular-nums}.booking-hint{margin: 0;font-size: 13px;color: var(--campsmart-text-3)}.booking-list{display: flex;flex-direction: column;gap: 8px}.booking-list__row{display: flex;align-items: center;justify-content: space-between;gap: 12px;padding: 12px 14px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius-sm)}.booking-list__name{display: block;font-weight: 700;font-size: 14px;color: var(--campsmart-text)}.booking-list__dates{display: block;font-size: 12.5px;color: var(--campsmart-text-3)}.booking-list__meta{display: flex;align-items: center;gap: 14px}.booking-list__amount{font-variant-numeric: tabular-nums;font-weight: 600;color: var(--campsmart-text);white-space: nowrap}.camper-dashboard__browse{margin-top: 12px}.booking-board__toolbar{display: flex;flex-wrap: wrap;gap: 12px;align-items: center;margin: 18px 0 14px}.booking-board__search{flex: 0 1 260px;margin-left: auto}.booking-board__table{overflow-x: auto}.booking-grid{min-height: 320px}.seg{display: inline-flex;background: var(--campsmart-surface-2);border: 1px solid var(--campsmart-line);border-radius: 9px;padding: 3px;gap: 2px}.seg button{border: none;background: transparent;padding: 6px 14px;border-radius: 7px;font: inherit;font-size: 13px;font-weight: 600;color: var(--campsmart-text-2);cursor: pointer}.seg button.on{background: var(--campsmart-paper);color: var(--campsmart-text);box-shadow: var(--campsmart-shadow-sm)}.seg button:hover:not(.on){color: var(--campsmart-text)}.booking-table{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);overflow: hidden}.booking-table__row{display: grid;grid-template-columns: 56px minmax(150px,1.5fr) 110px minmax(140px,1fr) auto 110px 130px 28px;align-items: center;gap: 12px;padding: 13px 16px;border-bottom: 1px solid var(--campsmart-line)}.booking-table__row--group{grid-template-columns: 56px minmax(150px,1.5fr) minmax(140px,1fr) 110px 130px 28px}.booking-table__row:last-child{border-bottom: none}.booking-table__row--head{background: var(--campsmart-surface-2);font-size: 11px;font-weight: 700;letter-spacing: 0.5px;text-transform: uppercase;color: var(--campsmart-text-2)}.booking-table__row--body{cursor: pointer;transition: background 0.1s ease}.booking-table__row--body:hover{background: var(--campsmart-surface)}.booking-table__empty{margin: 0;padding: 24px 16px;text-align: center;color: var(--campsmart-text-3);font-size: 13.5px}.booking-cell--id{font-family: var(--campsmart-mono);font-size: 12.5px;color: var(--campsmart-text-2)}.booking-cell--who{display: flex;align-items: center;gap: 10px;min-width: 0;font-weight: 600;font-size: 14px;color: var(--campsmart-text)}.booking-cell--who>span:last-child{overflow: hidden;text-overflow: ellipsis;white-space: nowrap}.booking-cell--stand{font-family: var(--campsmart-mono);font-weight: 600;font-size: 13px;color: var(--campsmart-text)}.booking-cell--mut{color: var(--campsmart-text-3);font-size: 13px}.booking-cell--stack{display: flex;flex-direction: column;gap: 2px}.booking-cell--dates{font-size: 13px;font-variant-numeric: tabular-nums;color: var(--campsmart-text)}.booking-cell--stack .booking-cell--mut{font-size: 11.5px}.booking-cell--total{font-family: var(--campsmart-mono);font-weight: 600;font-size: 13px;color: var(--campsmart-text);font-variant-numeric: tabular-nums}.booking-cell--chevron{display: inline-flex;justify-content: flex-end;color: var(--campsmart-text-3)}.booking-cell--chevron svg{width: 16px;height: 16px}.booking-avatar{flex: 0 0 auto;width: 30px;height: 30px;border-radius: 50%;display: inline-grid;place-items: center;background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep);font-size: 11.5px;font-weight: 700}.booking-guests{display: inline-flex;gap: 8px;align-items: center;font-size: 12.5px;color: var(--campsmart-text-2)}.booking-guests__pill{display: inline-flex;align-items: center;gap: 4px}.booking-guests__pill svg{width: 13px;height: 13px}@media (max-width: 1080px){.booking-table{min-width: 880px}}.booking-dialog__head{margin-bottom: 4px}.booking-dialog__eyebrow{font-size: 10.5px;font-weight: 700;letter-spacing: .8px;text-transform: uppercase;color: var(--campsmart-text-3)}.booking-dialog__name{font-size: 22px;font-weight: 800;letter-spacing: -0.4px;color: var(--campsmart-text);margin: 2px 0 0}.booking-dialog__meta{display: flex;align-items: center;gap: 12px;margin-top: 8px}.booking-dialog__ref{font-family: var(--campsmart-mono);font-weight: 600;font-size: 12.5px;color: var(--campsmart-text-2)}.booking-dialog .booking-cards{margin-top: 12px}.booking-dialog__field{display: flex;flex-direction: column;gap: 4px}.booking-dialog__field-label{font-size: 11px;font-weight: 600;color: var(--campsmart-text-3);text-transform: uppercase;letter-spacing: .3px}.booking-dialog__field-value{font-size: 14.5px;font-weight: 600;color: var(--campsmart-text)}.booking-dialog__requirements{margin: 0;font-size: 13.5px;color: var(--campsmart-text-2)}.invoice-dialog__logo{max-height: 56px;width: auto;display: block;margin-bottom: 12px}.invoice-dialog__meta{display: flex;align-items: center;gap: 12px;margin-bottom: 12px}.invoice-dialog__date{font-size: 12.5px;color: var(--campsmart-text-3)}.invoice-dialog__download{font-weight: 600;color: var(--campsmart-secondary-deep);margin-right: auto}.booking-badge{display: inline-flex;align-items: center;padding: 4px 11px;border-radius: 999px;font-size: 11.5px;font-weight: 700;white-space: nowrap}.booking-badge--paid{background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep)}.booking-badge--unpaid{background: var(--campsmart-amber-bg);color: var(--campsmart-amber-text)}.booking-badge--declined{background: var(--campsmart-danger-tint);color: var(--campsmart-danger)}.booking-badge--pending{background: var(--campsmart-surface-3);color: var(--campsmart-text-2)}.group-review{display: flex;flex-direction: column;gap: 8px;margin-top: 12px}.group-review__row{display: flex;align-items: center;justify-content: space-between;gap: 12px;padding: 10px 12px;border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius-sm);background: var(--campsmart-paper)}.group-review__name{display: block;font-weight: 700;font-size: 13.5px;color: var(--campsmart-text)}.group-review__email{display: block;font-size: 12px;color: var(--campsmart-text-3)}.group-review__action{flex: 0 0 auto}.engage__layout{display: grid;grid-template-columns: 7fr 5fr;gap: 20px;align-items: start}.engage__card{background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);padding: 18px}.engage__card-title{display: inline-flex;align-items: center;gap: 9px;font-size: 12px;font-weight: 700;text-transform: uppercase;letter-spacing: .5px;color: var(--campsmart-text);margin-bottom: 14px}.engage__card-title svg{width: 15px;height: 15px;color: var(--campsmart-secondary-strong)}.engage__note{margin: 0 0 16px;padding: 10px 13px;border: 1px solid var(--campsmart-info);border-radius: var(--campsmart-radius-sm);background: var(--campsmart-surface);color: var(--campsmart-text-2);font-size: 12.5px;line-height: 1.5}.engage__fields{display: flex;flex-direction: column;gap: 14px}.engage__actions{display: flex;gap: 9px;margin-top: 4px}.engage__template-row{display: flex;align-items: center;gap: 11px;padding: 10px 8px;border-radius: var(--campsmart-radius-sm);cursor: pointer;transition: background .12s}.engage__template-row:hover{background: var(--campsmart-surface-2)}.engage__template-main{display: flex;align-items: center;gap: 11px;flex: 1;min-width: 0;cursor: pointer}.engage__template-row svg{width: 15px;height: 15px;color: var(--campsmart-text-3);flex: 0 0 auto}.engage__template-name{flex: 1;min-width: 0;font-size: 14px;font-weight: 600;color: var(--campsmart-text);white-space: nowrap;overflow: hidden;text-overflow: ellipsis}.engage__template-actions{display: inline-flex;align-items: center;gap: 2px;flex: 0 0 auto}.engage__sent-title{margin: 22px 0 12px;font-size: 12px;font-weight: 700;text-transform: uppercase;letter-spacing: .5px;color: var(--campsmart-text-2)}.engage__doc-list{display: flex;flex-direction: column;gap: 12px}.engage__doc-card{display: flex;align-items: center;justify-content: space-between;gap: 12px;flex-wrap: wrap;padding: 14px 16px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm)}.engage__doc-main{display: flex;align-items: center;gap: 10px;flex-wrap: wrap;min-width: 0}.engage__doc-title{font-size: 14.5px;font-weight: 700;color: var(--campsmart-text)}.engage__doc-badge{display: inline-block;padding: 3px 9px;border: 1px solid var(--campsmart-line);border-radius: 7px;background: var(--campsmart-surface-2);color: var(--campsmart-text-2);font-size: 11.5px;font-weight: 500;white-space: nowrap}.engage__doc-meta{font-size: 12px;color: var(--campsmart-text-3)}.engage__doc-actions{display: inline-flex;align-items: center;gap: 6px;flex: 0 0 auto}.engage__empty{margin: 0;padding: 18px;border: 1px dashed var(--campsmart-line);border-radius: var(--campsmart-radius);background: var(--campsmart-surface-2);color: var(--campsmart-text-3);font-size: 13px}@media (max-width: 880px){.engage__layout{grid-template-columns: 1fr}}.message-list{display: flex;flex-direction: column;gap: 10px}.message-card{padding: 12px 14px;background: var(--campsmart-paper);border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius-sm)}.message-card__date{display: block;font-size: 12px;color: var(--campsmart-text-3);margin-bottom: 4px}.message-card__body{margin: 0;font-size: 14px;color: var(--campsmart-text);white-space: pre-wrap}.activity-list{display: flex;flex-direction: column;gap: 6px}.activity-list__row{display: flex;gap: 10px;align-items: baseline;font-size: 13px;color: var(--campsmart-text-2);padding: 5px 0;border-bottom: 1px dashed var(--campsmart-line)}.activity-list__date{flex: 0 0 84px;font-size: 11.5px;color: var(--campsmart-text-3);font-variant-numeric: tabular-nums}vaadin-text-field::part(required-indicator)::after,vaadin-text-area::part(required-indicator)::after,vaadin-email-field::part(required-indicator)::after,vaadin-password-field::part(required-indicator)::after,vaadin-number-field::part(required-indicator)::after,vaadin-integer-field::part(required-indicator)::after,vaadin-date-picker::part(required-indicator)::after,vaadin-time-picker::part(required-indicator)::after,vaadin-date-time-picker::part(required-indicator)::after,vaadin-combo-box::part(required-indicator)::after,vaadin-multi-select-combo-box::part(required-indicator)::after,vaadin-select::part(required-indicator)::after,vaadin-custom-field::part(required-indicator)::after,vaadin-checkbox-group::part(required-indicator)::after,vaadin-radio-group::part(required-indicator)::after{content: "*";color: var(--campsmart-danger)}.campsite-report{display: flex;flex-direction: column;gap: 20px;padding: 28px 32px;max-width: 1600px}.campsite-report__panel{display: flex;flex-direction: column;gap: 20px}.campsite-report__chips{display: flex;flex-wrap: wrap;gap: 8px}vaadin-button.campsite-report__chip{border-radius: 100px;border: 1px solid var(--campsmart-line);background: var(--campsmart-paper);color: var(--campsmart-text-2);transition: border-color 0.15s,background 0.15s,color 0.15s}vaadin-button.campsite-report__chip:hover{border-color: var(--campsmart-secondary-color);color: var(--campsmart-primary-color);background: var(--campsmart-secondary-tint)}.campsite-report__filter-card{display: flex;flex-direction: column;gap: 16px}.campsite-report__booleans{display: flex;flex-wrap: wrap;gap: 16px 32px}.campsite-report__filter-actions{display: flex;gap: 8px;flex-wrap: wrap;align-items: center;padding-top: 12px;border-top: 1px solid var(--campsmart-line)}.campsite-report__export-group{display: flex;align-items: center;gap: 8px;margin-left: 4px;padding-left: 16px;border-left: 1px solid var(--campsmart-line)}.campsite-report__export-anchor{display: inline-flex;align-items: center;gap: 6px;border: 1px solid var(--campsmart-line);border-radius: 6px;background: var(--campsmart-surface-2);color: var(--campsmart-text);font-size: 13px;font-weight: 500;padding: 6px 12px;line-height: 1;white-space: nowrap;text-decoration: none;cursor: pointer;transition: border-color 0.15s,background 0.15s,color 0.15s}.campsite-report__export-anchor:hover{border-color: var(--campsmart-primary-color);background: var(--campsmart-surface-3);color: var(--campsmart-primary-color);text-decoration: none}.campsite-report__export-anchor>svg,.campsite-report__export-anchor>vaadin-icon{width: 16px;height: 16px;flex-shrink: 0}.campsite-report__grid{border: 1px solid var(--campsmart-line);border-radius: var(--campsmart-radius);box-shadow: var(--campsmart-shadow-sm);overflow: hidden}.campsite-report__status{display: inline-block;border-radius: 100px;font-size: 11px;font-weight: 600;padding: 2px 10px;white-space: nowrap;background: var(--campsmart-surface-2);color: var(--campsmart-text-2)}.campsite-report__status--paid{background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep)}.campsite-report__status--deposit-paid{background: hsl(212 70% 50% / .12);color: hsl(212 70% 34%)}.campsite-report__status--unpaid{background: var(--campsmart-amber-bg);color: var(--campsmart-amber-text)}.campsite-report__status--pending{background: var(--campsmart-surface-3);color: var(--campsmart-text-2)}.campsite-report__status--declined{background: var(--campsmart-danger-tint);color: var(--campsmart-danger)}.campsite-report__status--group-booking-must-be-completed{background: hsl(270 50% 60% / .12);color: hsl(270 50% 35%)}.campsite-report__req-icon{color: var(--campsmart-amber);display: flex;align-items: center;justify-content: center}.admin-booking-report__selector{width: 100%;max-width: 400px}.admin-booking-report__prompt{display: block;color: var(--campsmart-text-3);padding: 16px 0;font-size: 13px}.payout-report__status{display: inline-flex;align-items: center;padding: 2px 10px;border-radius: 20px;font-size: 0.75rem;font-weight: 600;letter-spacing: 0.03em;text-transform: uppercase}.payout-report__status--pending{background: var(--campsmart-amber-bg);color: var(--campsmart-amber-text)}.payout-report__status--paid{background: var(--campsmart-secondary-tint);color: var(--campsmart-secondary-deep)}.payout-report__status--held{background: var(--campsmart-danger-tint);color: var(--campsmart-danger)}.admin-payout-report__selector{width: 100%;max-width: 480px}.admin-payout-report__prompt{display: block;color: var(--campsmart-text-3);font-size: 0.875rem;padding: 24px 0}.payout-mark-paid-dialog{width: 440px}.campsite-payout-history{padding: 24px}.campsite-payout-history__filter{margin-bottom: 16px}html{--cs-sh: 80;--campsmart-primary-color: hsl(var(--cs-sh) 11% 9%);--campsmart-primary-color-soft: hsl(var(--cs-sh) 8% 16%);--campsmart-primary-color-70pct: hsl(var(--cs-sh) 11% 9% / .70);--campsmart-primary-color-10pct: hsl(var(--cs-sh) 11% 9% / .10);--campsmart-secondary-color: hsl(86 54% 50%);--campsmart-secondary-strong: hsl(88 52% 40%);--campsmart-secondary-deep: hsl(92 46% 22%);--campsmart-secondary-tint: hsl(86 54% 50% / .15);--campsmart-secondary-line: hsl(86 44% 70%);--campsmart-danger: hsl(4 68% 50%);--campsmart-danger-tint: hsl(6 72% 96.5%);--campsmart-amber: hsl(36 92% 50%);--campsmart-amber-bg: hsl(40 90% 94%);--campsmart-amber-text: hsl(28 74% 32%);--campsmart-info: hsl(212 70% 50%);--campsmart-paper: hsl(0 0% 100%);--campsmart-surface: hsl(var(--cs-sh) 24% 98.5%);--campsmart-surface-2: hsl(var(--cs-sh) 16% 96%);--campsmart-surface-3: hsl(var(--cs-sh) 13% 93%);--campsmart-canvas: hsl(var(--cs-sh) 14% 95%);--campsmart-line: hsl(var(--cs-sh) 12% 88%);--campsmart-line-2: hsl(var(--cs-sh) 9% 80%);--campsmart-text: hsl(var(--cs-sh) 9% 13%);--campsmart-text-2: hsl(var(--cs-sh) 5% 38%);--campsmart-text-3: hsl(var(--cs-sh) 5% 54%);--campsmart-on-ink: hsl(var(--cs-sh) 14% 96%);--campsmart-on-ink-2: hsl(var(--cs-sh) 6% 64%);--campsmart-radius: 11px;--campsmart-radius-sm: calc(var(--campsmart-radius) * .75);--campsmart-radius-lg: calc(var(--campsmart-radius) * 1.5);--campsmart-radius-xl: calc(var(--campsmart-radius) * 2);--campsmart-shadow-sm: 0 1px 2px hsl(var(--cs-sh) 20% 12% / .05),0 2px 6px -2px hsl(var(--cs-sh) 20% 12% / .06);--campsmart-shadow-md: 0 2px 4px hsl(var(--cs-sh) 20% 12% / .05),0 10px 24px -8px hsl(var(--cs-sh) 20% 12% / .12);--campsmart-shadow-lg: 0 8px 20px -6px hsl(var(--cs-sh) 24% 12% / .16),0 28px 60px -16px hsl(var(--cs-sh) 24% 12% / .30);--campsmart-font: "Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--campsmart-mono: "Spline Sans Mono",ui-monospace,"SF Mono",Menlo,monospace;--aura-accent-color-light: var(--campsmart-secondary-color);--aura-accent-text-color-light: var(--campsmart-primary-color);--aura-font-family: var(--campsmart-font);--aura-base-radius: 3;--aura-base-size: 12;--aura-base-font-size: 14;--vaadin-grid-header-text-color: var(--campsmart-primary-color);--ink: var(--campsmart-primary-color);--ink-soft: var(--campsmart-primary-color-soft);--lime: var(--campsmart-secondary-color);--lime-strong: var(--campsmart-secondary-strong);--lime-deep: var(--campsmart-secondary-deep);--lime-tint: var(--campsmart-secondary-tint);--lime-line: var(--campsmart-secondary-line);--paper: var(--campsmart-paper);--surface: var(--campsmart-surface);--surface-2: var(--campsmart-surface-2);--surface-3: var(--campsmart-surface-3);--canvas: var(--campsmart-canvas);--line: var(--campsmart-line);--line-2: var(--campsmart-line-2);--text: var(--campsmart-text);--text-2: var(--campsmart-text-2);--text-3: var(--campsmart-text-3);--on-ink: var(--campsmart-on-ink);--on-ink-2: var(--campsmart-on-ink-2);--mono: var(--campsmart-mono);--r-lg: var(--campsmart-radius-lg);--r-xl: var(--campsmart-radius-xl);--shadow-sm: var(--campsmart-shadow-sm);--shadow-md: var(--campsmart-shadow-md);--shadow-lg: var(--campsmart-shadow-lg)}.v-loading-indicator{height: 20px !important;background-color: var(--campsmart-secondary-color) !important}