/* Little Explorers World: styles matched to littleexplorersworld.com (Fredoka, soft pastel palette, pill buttons) */
:root{
 --aqua:#6ec1e4;--gold:#f9b44f;--green:#9cbd3d;--green-d:#6f8f1e;--orange:#ec8468;--orange-d:#c95f43;--pink:#e792ac;--pink-d:#bd5479;--purple:#aa9dd2;--purple-d:#6c5ca6;--teal:#109888;
 --cream:#f8faff;--ink:#1a1028;--lilac:#f2ecff;--lilac2:#ebe4fb;--line:#e8dff5;
 --s400:#9a92ad;--s500:#6b6280;--s600:#4d4560;--s700:#3a3250;--s100:#f4f0fa;--s200:#e8dff5;--s300:#d5cae8;
 --green-t:#15803d;--red:#dc2626;--shadow-card:0 8px 32px rgba(110,193,228,.14);--shadow:0 16px 48px rgba(110,193,228,.2);
 --o50:var(--cream);--o200:var(--line);--o300:var(--purple);--o500:var(--purple);--o600:var(--purple-d);--o700:var(--purple-d)
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;font-family:Fredoka,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--cream);font-size:16px;line-height:1.5}
a{color:var(--purple-d)}
h1,h2,h3,h4{font-family:Fredoka,sans-serif;font-weight:500;margin:0 0 6px}
h1{font-size:30px}h2{font-size:20px}h3{font-size:16px}
p{margin:6px 0}
.muted{color:var(--s500)}.sm{font-size:14px}.xs{font-size:12.5px}.center{text-align:center}.right{text-align:right}
.green{color:var(--green-t)}.red{color:var(--red)}.bold{font-weight:600}.big{font-size:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--purple-d);color:#fff;border:0;border-radius:50px;padding:11px 22px;font:500 15px Fredoka,sans-serif;cursor:pointer;text-decoration:none;box-shadow:0 8px 20px #3e304e1a;transition:.2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px #3e304e2e}
.btn.sm{padding:7px 15px;font-size:13.5px}
.btn.ghost{background:#fff;color:var(--purple-d);box-shadow:inset 0 0 0 1.5px var(--line)}.btn.ghost:hover{background:var(--lilac)}
.btn.green{background:var(--green-d)}
.btn.pink{background:var(--pink-d)}
.btn.orange{background:var(--orange-d)}
.btn.danger{background:#fff;color:var(--red);box-shadow:inset 0 0 0 1.5px #fecaca}
.btn.warn{background:#fef3c7;color:#92400e;box-shadow:none}
.btn.block{display:flex;width:100%}
.btn:disabled{opacity:.4}
input,select,textarea{width:100%;border:1.5px solid var(--s300);border-radius:12px;padding:9px 12px;font:inherit;font-size:15px;background:#fff;color:var(--ink)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--purple-d)}
input:focus,select:focus,textarea:focus{outline:3px solid #aa9dd244;border-color:var(--purple)}
label.l{display:block;font-size:13.5px;font-weight:500;color:var(--s700);margin:12px 0 4px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}
.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:var(--shadow-card)}
.stat small{display:block;text-transform:uppercase;font-size:11.5px;color:var(--s400);letter-spacing:.06em}
.stat b{display:block;font-size:26px;font-weight:600;margin-top:2px}
.stat.accent-play{border-top:5px solid var(--aqua)}.stat.accent-cafe{border-top:5px solid var(--orange)}.stat.accent-green{border-top:5px solid var(--green)}.stat.accent-pink{border-top:5px solid var(--pink)}.stat.accent-purple{border-top:5px solid var(--purple)}
table{width:100%;border-collapse:collapse;font-size:14.5px}
th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--s500);background:var(--lilac);padding:11px 14px;font-weight:500}
td{padding:11px 14px;border-top:1px solid var(--s100);vertical-align:top}
.tbl{border:1px solid var(--line);border-radius:22px;overflow:auto;background:#fff;box-shadow:var(--shadow-card)}
.flash{border-radius:16px;padding:11px 16px;margin-bottom:16px;font-size:15px}
.flash.ok{background:#eaf6d6;color:#3f5a0f}.flash.err{background:#fde8ec;color:#a02344}
.badge{display:inline-block;border-radius:999px;padding:2px 11px;font-size:12px;font-weight:500;background:var(--s100);color:var(--s600)}
.badge.green{background:#e6f2c8;color:#4a6a10}.badge.red{background:#fde8ec;color:#a02344}.badge.amber{background:#fdf0d5;color:#8a5a0c}.badge.purple{background:var(--lilac2);color:var(--purple-d)}.badge.teal{background:#d9f2ef;color:#0b6b60}.badge.pink{background:#fbe5ee;color:var(--pink-d)}.badge.play{background:#dff1fa;color:#1d6f93}.badge.cafe{background:#fde7e0;color:var(--orange-d)}
.note{border-radius:16px;padding:11px 16px;font-size:14.5px;margin:10px 0}
.note.amber{background:#fff7e3}.note.pink{background:#fbe5ee;color:#8b2f52}.note.teal{background:#d9f2ef;color:#0b5a51}.note.green{background:#eef5da;color:#3f4f19}.note.purple{background:var(--lilac)}
.chip{border:1.5px solid var(--line);background:#fff;color:var(--purple-d);border-radius:999px;padding:5px 14px;font:500 14px Fredoka,sans-serif;cursor:pointer;margin:2px}
.chip:hover,.chip.on{background:var(--purple-d);color:#fff;border-color:var(--purple-d)}
.bar{height:9px;border-radius:999px;background:linear-gradient(90deg,var(--aqua),var(--purple))}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:16px 0}
.tabs a{padding:8px 18px;border-radius:999px;text-decoration:none;font-weight:500;color:var(--s600);background:#fff;border:1.5px solid var(--line)}
.tabs a.on{background:var(--purple-d);color:#fff;border-color:var(--purple-d)}
.cat-head{margin:14px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--orange-d);font-weight:600}
.item{padding:5px 0;border-bottom:1px dashed var(--s100)}
.billbox{background:var(--cream);border:1.5px solid var(--line);border-radius:18px;padding:16px;margin-top:14px}
.totals{border-top:1.5px dashed var(--s300);margin-top:14px;padding-top:10px}
.totals .line{display:flex;justify-content:space-between;margin:3px 0}
/* admin shell */
body.admin{background:var(--cream)}
.admin .topbar{display:none}
.admin .side{position:fixed;top:0;bottom:0;left:0;width:250px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;z-index:40}
.admin .main{margin-left:250px;padding:30px 34px;min-height:100vh}
.side-head{display:flex;flex-direction:column;gap:8px;padding:20px 20px 10px}
.side-head img{width:128px;height:auto}
.side-head small{display:block;color:var(--s400);font-size:12.5px}
.brand{color:var(--purple-d);font-weight:600}
.pill{display:inline-block;background:var(--lilac2);color:var(--purple-d);border-radius:999px;padding:3px 12px;font-size:12.5px;font-weight:500}
.side nav{flex:1;padding:10px 14px}
.side nav a{display:block;padding:9px 14px;border-radius:30px;color:var(--ink);text-decoration:none;font-weight:500;font-size:15px;margin-bottom:3px}
.side nav a:hover{background:var(--lilac);color:var(--purple-d)}
.side nav a.on{background:var(--lilac2);color:var(--purple-d);box-shadow:inset 0 0 0 1.5px var(--purple)}
.side nav .navgrp{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--s400);margin:14px 14px 4px}
.side-foot{border-top:1px solid var(--line);padding:14px 20px;font-size:14px}
.side-foot small{display:block;color:var(--s400)}
.side-foot a{display:block;margin-top:6px;font-size:13px;font-weight:500}
.scrim{display:none}
@media(max-width:860px){
 .admin .topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line)}
 .admin .side{transform:translateX(-100%);transition:transform .2s}.admin .side.open{transform:none}
 .scrim.show{display:block;position:fixed;inset:0;background:rgba(26,16,40,.35);z-index:30}
 .admin .main{margin-left:0;padding:16px}
 .g2,.g3,.g4{grid-template-columns:1fr}
}
/* check-in */
.visit{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1.5px solid var(--s100);border-radius:18px;padding:12px 16px;margin-top:10px;background:#fff}
.visit.warn{background:#fff7e3;border-color:var(--gold)}.visit.over{background:#fde8ec;border-color:var(--pink)}
.visit .remain{font-weight:600}
.heat td,.heat th{padding:4px;text-align:center;font-size:12.5px;border:0}
.h0{background:#f6f3fb;color:#cfc6e0}.h1{background:var(--lilac);color:var(--purple-d)}.h2{background:#d9d0f0;color:#3a3250}.h3{background:var(--purple);color:#fff;font-weight:600}.h4{background:var(--purple-d);color:#fff;font-weight:600}
.chart{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:10px}
.chart div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;font-size:11px;color:var(--s500)}
.chart i{display:block;width:100%;background:linear-gradient(180deg,var(--aqua),var(--purple));border-radius:8px 8px 0 0;min-height:3px}
.receipt{max-width:430px;margin:0 auto}
.receipt .line{display:flex;justify-content:space-between;gap:10px;font-size:15px;margin:4px 0}
.dash{border-top:1.5px dashed var(--s300);margin:12px 0}
@media print{body.admin{background:#fff}.side,.topbar,.noprint{display:none!important}.admin .main{margin:0;padding:0}.card{border:0;box-shadow:none}}
/* public site */
body.public{background:#fff}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.pub-top{background:linear-gradient(90deg,var(--purple),var(--pink));color:#fff;font:600 13px Fredoka,sans-serif;letter-spacing:.03em}
.pub-top .wrap{display:flex;justify-content:space-between;gap:12px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.pub-top a{color:#fff;text-decoration:none}
.pub-head{position:sticky;top:0;z-index:20;background:rgba(253,250,255,.97);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.pub-head .wrap{display:flex;justify-content:space-between;align-items:center;height:84px;gap:20px}
.pub-head .logo img{width:128px;display:block}
.pub-head nav{display:flex;gap:4px;align-items:center}
.pub-head nav a{font:500 15px Fredoka,sans-serif;padding:6px 14px;border-radius:30px;color:var(--ink);text-decoration:none}
.pub-head nav a:hover{background:var(--lilac);color:var(--purple-d)}
.pub-head nav a.btn{color:#fff;background:var(--green-d)}
.hero{position:relative;min-height:540px;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(rgba(26,16,40,.35),rgba(26,16,40,.5)),url(/assets/img/hero.webp) center/cover}
.hero .in{padding:60px 24px;max-width:760px}
.hero .kick{font:600 15px Fredoka;letter-spacing:.14em;text-transform:uppercase}
.hero h1{font-size:46px;line-height:1.1;margin:12px 0;text-shadow:0 3px 14px rgba(0,0,0,.35)}
.hero p.lead{font-size:18px;margin:12px auto;max-width:620px}
.hero .btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.zones{background:#fffbea;padding:64px 0}
.zones h2,.price h2{text-align:center;font-size:32px}
.zone{background:#fff;border-radius:24px;padding:26px;box-shadow:var(--shadow-card);border-top:6px solid var(--zc,var(--aqua))}
.price{padding:64px 0}
.pcard{border:2px solid var(--line);border-radius:26px;padding:32px;text-align:center;background:#fff;box-shadow:var(--shadow-card)}
.pcard .amt{font-size:38px;font-weight:600;color:var(--purple-d)}
.cta{background:linear-gradient(110deg,var(--purple),var(--pink));color:#fff;text-align:center;padding:64px 24px}
.cta .btn{background:#fff;color:var(--purple-d)}
.pub-foot{background:var(--ink);color:#d8d0e8;padding:40px 0;font-size:14.5px}
.pub-foot .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pub-foot a{color:#d8d0e8}
.formpage{background:var(--cream);min-height:100vh;padding:48px 0}
.narrow{max-width:700px;margin:0 auto;padding:0 24px}
@media(max-width:760px){.hero h1{font-size:32px}.pub-head nav a:not(.btn){display:none}.pub-head .wrap{height:70px}}
.login{max-width:400px;margin:9vh auto;padding:0 20px}
