
/* Layout: one-screen phone app — chronicle header, scrollable parchment stage, bottom tab bar, slide-up stop sheet. */
:root{
  --parch:#f0e2bf; --parch-2:#e5d09f; --parch-3:#d7bc84;
  --ink:#33241a; --ink-2:#6a5136; --ink-3:#9a7f5c;
  --wax:#a2261f; --wax-2:#7d1a15; --gold:#b98422; --silver:#7d8a97;
  --leaf:#56703b; --water:#5c879c;
  --f-display:"Pirata One","UnifrakturCook",Georgia,serif;
  --f-body:"Alegreya",Georgia,"Times New Roman",serif;
  --f-label:"Alegreya SC","Alegreya",Georgia,serif;
  color-scheme:light;
}
html,body{height:100%}
body{background:var(--parch);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.45;overflow:hidden}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.app{height:100%;display:flex;flex-direction:column;background:
  radial-gradient(120% 80% at 50% 40%, transparent 55%, rgba(120,80,30,.18) 100%), var(--parch)}
/* header */
.hdr{display:flex;align-items:center;gap:10px;padding:10px 16px 8px;border-bottom:2px solid var(--ink);background:var(--parch-2)}
.hdr h1{font-family:var(--f-display);font-weight:400;font-size:1.55rem;line-height:1;margin:0;flex:1;min-width:0;letter-spacing:.01em}
.hdr h1 small{display:block;font-family:var(--f-label);font-size:.72rem;color:var(--ink-2);letter-spacing:.06em;margin-top:2px}
.purse{display:flex;align-items:center;gap:6px;font-family:var(--f-label);font-weight:700;font-variant-numeric:tabular-nums;background:var(--parch);border:1.5px solid var(--ink);border-radius:999px;padding:3px 10px 3px 4px}
.coin{width:22px;height:22px;flex:none}
.days{display:flex;gap:6px;padding:8px 16px;border-bottom:1px solid var(--parch-3)}
.days button{flex:1;border:1.5px solid var(--ink);background:var(--parch);border-radius:4px;padding:5px 4px;font-family:var(--f-label);font-size:.82rem;line-height:1.1}
.days button b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.05rem}
.days button[aria-pressed="true"]{background:var(--wax);color:var(--parch);border-color:var(--wax-2)}
.stage{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}
.tabs{display:flex;border-top:2px solid var(--ink);background:var(--parch-2);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs button{flex:1;background:none;border:0;padding:8px 4px 9px;font-family:var(--f-label);font-size:.85rem;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink-2)}
.tabs button svg{width:24px;height:24px}
.tabs button[aria-current="page"]{color:var(--wax)}
/* map */
.mapwrap{padding:10px 10px 18px}
.narr{display:flex;gap:10px;align-items:flex-start;margin:0 6px 10px}
.narr svg{width:52px;height:52px;flex:none}
.bubble{position:relative;flex:1;min-width:0;background:#fbf3dc;border:1.5px solid var(--ink);border-radius:10px;padding:8px 11px;font-size:.95rem}
.bubble:before{content:"";position:absolute;left:-8px;top:16px;border:7px solid transparent;border-right-color:var(--ink);border-left:0}
.bubble b{font-family:var(--f-label)}
.gps{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 6px 8px;font-size:.85rem;color:var(--ink-2)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--ink-3);display:inline-block}
.dot.on{background:var(--leaf);box-shadow:0 0 0 3px rgba(86,112,59,.25)}
.mapsvg{width:100%;height:auto;display:block;border:2px solid var(--ink);border-radius:6px;background:var(--parch);touch-action:manipulation}
.mk{cursor:pointer}
.mk:focus{outline:none}
.mk:focus-visible circle.seal{stroke:var(--gold);stroke-width:3}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.walker{transition:transform 1.6s cubic-bezier(.45,.05,.3,1)}
.bobA{animation:bob 1.1s ease-in-out infinite}
.bobB{animation:bob 1.1s ease-in-out .35s infinite}
@media (prefers-reduced-motion:reduce){.walker{transition:none}.bobA,.bobB{animation:none}}
/* list */
.wrap{padding:14px 16px 24px;max-width:640px;margin:0 auto}
.dayhead h2{font-family:var(--f-display);font-weight:400;font-size:2rem;line-height:1.05;margin:0;text-wrap:balance}
.dayhead p{margin:.35rem 0 0}
.eyebrow{font-family:var(--f-label);font-size:.8rem;letter-spacing:.08em;color:var(--wax)}
.note{margin:12px 0;padding:9px 12px;border-left:4px solid var(--gold);background:rgba(185,132,34,.1);font-size:.93rem}
.steps{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:0}
.step{display:grid;grid-template-columns:52px 1fr;gap:10px;position:relative}
.step:before{content:"";position:absolute;left:25px;top:40px;bottom:-6px;border-left:2px dashed var(--ink-3)}
.step:last-child:before{display:none}
.step .t{font-family:var(--f-label);font-size:.8rem;color:var(--ink-2);text-align:center;font-variant-numeric:tabular-nums}
.sealbtn{width:38px;height:38px;margin:0 auto 2px;border-radius:50%;border:2px solid var(--wax-2);background:var(--wax);color:var(--parch);font-family:var(--f-display);font-size:1.2rem;display:grid;place-items:center}
.sealbtn.food{background:var(--gold);border-color:#8a6214}
.sealbtn.done{background:var(--silver);border-color:#56616c}
.card{background:#f7ebcc;border:1.5px solid var(--ink);border-radius:6px;padding:10px 12px;margin-bottom:14px;text-align:left;min-width:0;width:100%}
.card h3{font-family:var(--f-display);font-weight:400;font-size:1.3rem;margin:0;line-height:1.1}
.card p{margin:.3rem 0 0;font-size:.93rem;color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.chip{font-family:var(--f-label);font-size:.74rem;border:1px solid var(--ink-3);border-radius:999px;padding:1px 8px;color:var(--ink-2)}
.chip.ok{background:var(--leaf);border-color:var(--leaf);color:#f6efd8}
/* sheet */
.scrim{position:fixed;inset:0;background:rgba(40,25,10,.45);z-index:20}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;max-height:88%;overflow-y:auto;background:var(--parch);border-top:3px solid var(--ink);border-radius:14px 14px 0 0;padding:6px 16px calc(20px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 30px rgba(40,25,10,.35)}
.grab{width:44px;height:5px;border-radius:3px;background:var(--ink-3);margin:4px auto 10px}
.sheet h2{font-family:var(--f-display);font-weight:400;font-size:1.9rem;line-height:1.05;margin:0 0 4px;text-wrap:balance}
.sheet .inner{max-width:640px;margin:0 auto}
.voice{display:flex;gap:10px;margin:10px 0}
.voice svg{width:44px;height:44px;flex:none}
.voice p{margin:0;font-style:italic}
.info{font-size:.9rem;background:rgba(92,135,156,.12);border:1px solid rgba(92,135,156,.5);border-radius:6px;padding:8px 10px;margin:10px 0}
.info a{color:var(--wax-2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--ink);background:var(--parch-2);border-radius:6px;padding:9px 14px;font-family:var(--f-label);font-weight:700;font-size:.95rem}
.btn.primary{background:var(--wax);color:var(--parch);border-color:var(--wax-2)}
.btn.small{padding:5px 10px;font-size:.85rem}
.btn:disabled{opacity:.45;cursor:default}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.task{border:1.5px solid var(--ink);border-radius:6px;padding:10px 12px;margin:10px 0;background:#f8edd0}
.task.done{background:#e6e4d6;border-color:var(--silver)}
.task .kind{font-family:var(--f-label);font-size:.78rem;letter-spacing:.06em;color:var(--wax);display:flex;justify-content:space-between;gap:8px}
.task .kind span:last-child{color:var(--gold);font-weight:700;font-variant-numeric:tabular-nums}
.task h4{margin:.15rem 0 .25rem;font-size:1.05rem}
.task p{margin:0 0 .5rem;font-size:.94rem}
.opts{display:grid;gap:6px}
.opts button{text-align:left;border:1.5px solid var(--ink-3);background:var(--parch);border-radius:5px;padding:7px 10px}
.opts button.right{background:var(--leaf);color:#f6efd8;border-color:var(--leaf)}
.opts button.wrong{background:#e4c3b5;border-color:var(--wax)}
.result{font-family:var(--f-label);font-size:.9rem;color:var(--leaf)}
.thumb{width:100%;max-width:320px;border:2px solid var(--ink);border-radius:4px;display:block;margin-top:6px}
.filebtn{position:relative;overflow:hidden}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
/* setup */
.setup{padding:18px 16px 30px;max-width:620px;margin:0 auto}
.setup h2{font-family:var(--f-display);font-weight:400;font-size:2.3rem;line-height:1;margin:6px 0 6px;text-wrap:balance}
.player{border:2px solid var(--ink);border-radius:8px;padding:12px;margin:16px 0;background:#f7ebcc}
.player label{font-family:var(--f-label);font-size:.85rem;color:var(--ink-2);display:block;margin-bottom:4px}
.player input[type=text]{width:100%;font:inherit;font-size:1.05rem;padding:7px 10px;border:1.5px solid var(--ink);border-radius:5px;background:var(--parch);color:var(--ink)}
.chars{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.chars button{border:1.5px solid var(--ink-3);border-radius:6px;background:var(--parch);padding:6px 2px 6px;display:flex;flex-direction:column;align-items:center;font-family:var(--f-label);font-size:.78rem;line-height:1.1}
.chars button svg{width:56px;height:62px}
.chars button[aria-pressed="true"]{border-color:var(--wax);background:#f2d6c4;box-shadow:inset 0 0 0 2px var(--wax)}
/* chronicle */
.cert{border:3px double var(--ink);border-radius:4px;padding:16px 14px;background:#f8eccd;text-align:center;margin-top:12px}
.cert h3{font-family:var(--f-display);font-weight:400;font-size:1.9rem;margin:0}
.duo{display:flex;justify-content:center;gap:22px;margin:10px 0 4px}
.duo div{display:flex;flex-direction:column;align-items:center;font-family:var(--f-label)}
.duo svg{width:70px;height:80px}
.tally{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:14px 0}
.tally div{border:1.5px solid var(--ink);border-radius:6px;padding:8px 6px;text-align:center;background:var(--parch)}
.tally b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.7rem;line-height:1;font-variant-numeric:tabular-nums}
.tally span{font-family:var(--f-label);font-size:.75rem;color:var(--ink-2)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px}
.gallery figure{margin:0;border:1.5px solid var(--ink);background:#fff8e6;padding:5px 5px 3px;border-radius:3px}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.gallery figcaption{font-size:.75rem;color:var(--ink-2);padding-top:3px;line-height:1.2}
.toast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top,0px));transform:translateX(-50%);z-index:40;background:var(--ink);color:var(--parch);padding:9px 16px;border-radius:999px;font-family:var(--f-label);font-size:.92rem;box-shadow:0 4px 14px rgba(0,0,0,.3);max-width:calc(100% - 32px);text-align:center}
.confirmbox{border:1.5px solid var(--wax);background:#f2d6c4;border-radius:6px;padding:10px;margin-top:10px}
h3.sec{font-family:var(--f-display);font-weight:400;font-size:1.5rem;margin:22px 0 4px}

/* login & two-player additions */
.gate{padding:28px 16px 30px;max-width:460px;margin:0 auto}
.gate h2{font-family:var(--f-display);font-weight:400;font-size:2.4rem;line-height:1;margin:14px 0 6px;text-wrap:balance}
.gate form{display:flex;flex-direction:column;gap:10px;margin-top:16px;border:2px solid var(--ink);border-radius:8px;padding:14px;background:#f7ebcc}
.gate label{font-family:var(--f-label);font-size:.85rem;color:var(--ink-2)}
.gate input{width:100%;font:inherit;font-size:1.05rem;padding:8px 10px;border:1.5px solid var(--ink);border-radius:5px;background:var(--parch);color:var(--ink)}
.err{color:var(--wax-2);font-size:.92rem;margin:0}
.namepair{display:flex;gap:10px}
.namepair>div{flex:1;min-width:0}
.pwwrap{position:relative;display:flex}
.pwwrap input{padding-right:70px}
.pwtoggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:0;font-family:var(--f-label);font-size:.78rem;color:var(--wax-2);padding:4px 6px;cursor:pointer}
.gatepic{display:flex;justify-content:center;gap:4px}
.gatepic svg{width:120px;height:auto}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.vs figure{margin:0;border:1.5px solid var(--ink);border-radius:4px;padding:4px;background:#fff8e6;min-width:0}
.vs img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.vs figcaption{font-family:var(--f-label);font-size:.78rem;padding-top:3px;display:flex;justify-content:space-between;gap:4px;align-items:center}
.vs .ph{aspect-ratio:1;display:grid;place-items:center;font-size:.82rem;color:var(--ink-3);text-align:center;padding:6px;border:1.5px dashed var(--ink-3)}
.wait{font-size:.9rem;color:var(--ink-2);font-style:italic}
.tipin{display:flex;gap:8px;flex-wrap:wrap}
.tipin input{flex:1;min-width:0;font:inherit;padding:6px 9px;border:1.5px solid var(--ink);border-radius:5px;background:var(--parch);color:var(--ink)}
.who{display:inline-flex;align-items:center;gap:4px}
.who svg{width:20px;height:24px}
.sync{font-size:.78rem;color:var(--ink-2);margin-left:auto}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin:0 6px 8px}
.pill{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--ink);border-radius:999px;padding:2px 10px 2px 4px;background:#fbf3dc;font-family:var(--f-label);font-size:.82rem}
.pill svg{width:22px;height:26px}
.minithumbs{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.minithumbs img{width:84px;height:84px;object-fit:cover;border:1.5px solid var(--ink);border-radius:3px}

/* Theme: painted board-game storybook — sky & meadow, wooden planks, cream cards, slate-blue tile frames. */
:root{
  --parch:#fbf3df; --parch-2:#f1e3c2; --parch-3:#d8c294;
  --ink:#3a2616; --ink-2:#6b4a2c; --ink-3:#a88b62;
  --wax:#c4482c; --wax-2:#8a2a18; --gold:#e0a83a; --silver:#8a96a3;
  --leaf:#4f8a33; --water:#3c7fb6; --tile:#2f5d9e; --tile-2:#1f4277;
  --wood:#8a5630; --wood-2:#5e3519; --sky:#a8d3ea; --meadow:#86b356;
  --f-display:"MedievalSharp","Alegreya SC",Georgia,serif;
  --f-body:"Alegreya",Georgia,"Times New Roman",serif;
  --f-label:"Alegreya SC","Alegreya",Georgia,serif;
  color-scheme:light;
}
body{background:#cfe6c2}
.app{background:linear-gradient(180deg,#bfe0f1 0,#e3f0d2 260px,#f6eedb 100%)}
/* wooden plank header & tabs */
.hdr,.tabs{background:
  repeating-linear-gradient(180deg,rgba(255,255,255,.05) 0 2px,transparent 2px 7px),
  linear-gradient(180deg,#9a6238,#6e4022);border-color:var(--wood-2);color:#fbf3df;
  box-shadow:inset 0 1px 0 rgba(255,220,170,.35)}
.hdr{border-bottom:3px solid var(--wood-2)}
.hdr h1{font-size:1.5rem;color:#fff3d6;text-shadow:0 2px 0 rgba(40,20,5,.55)}
.hdr h1 small{color:#f2d9a8}
.purse{background:#fbf3df;border:2px solid var(--wood-2);box-shadow:0 2px 0 rgba(40,20,5,.35);color:var(--ink)}
.tabs{border-top:3px solid var(--wood-2)}
.tabs button{color:#f2d9a8}
.tabs button[aria-current="page"]{color:#fff;text-shadow:0 0 8px rgba(255,210,120,.7)}
.tabs button[aria-current="page"] svg{stroke:#ffd27a}
/* day selector as numbered tiles */
.days{background:transparent;border-bottom:0;padding:10px 16px 8px}
.days button{background:#fbf3df;border:2px solid var(--tile);border-radius:8px;box-shadow:inset 0 0 0 2px #fff,0 3px 0 var(--tile-2);color:var(--ink)}
.days button b{font-size:1.05rem;color:var(--tile)}
.days button[aria-pressed="true"]{background:linear-gradient(180deg,#3d71b8,var(--tile));color:#fff;border-color:var(--tile-2);box-shadow:inset 0 0 0 2px rgba(255,255,255,.75),0 3px 0 var(--tile-2)}
.days button[aria-pressed="true"] b{color:#fff}
/* map frame */
.mapsvg{border:4px solid var(--wood-2);border-radius:12px;box-shadow:0 4px 0 rgba(60,35,15,.35),0 10px 24px rgba(40,25,10,.25);background:var(--meadow)}
.bubble{background:#fffaf0;border:2px solid var(--wood-2);border-radius:14px;box-shadow:0 3px 0 rgba(60,35,15,.2)}
.bubble:before{border-right-color:var(--wood-2)}
.gps{color:#3d4f2a}
/* cards & tasks */
.card,.task,.player,.gate form,.cert,.tally div,.vs figure,.gallery figure{background:#fffaf0;border:2px solid var(--wood-2);border-radius:12px;box-shadow:0 3px 0 rgba(60,35,15,.22)}
.task.done{background:#eef3e2;border-color:#7d9a5a}
.card h3,.dayhead h2,.sheet h2,.setup h2,.gate h2,.cert h3,h3.sec{color:#4a2a12}
.eyebrow{color:var(--tile)}
.note{border-left-color:var(--gold);background:rgba(224,168,58,.16);border-radius:0 8px 8px 0}
.chip{background:#fbf3df;border-color:var(--ink-3)}
.chip.ok{background:var(--leaf);border-color:var(--leaf)}
.step:before{border-left-color:#b59a6c}
.sealbtn{background:var(--wax);border-color:var(--wax-2);border-radius:8px 8px 50% 50%/8px 8px 60% 60%;box-shadow:0 2px 0 rgba(60,35,15,.3)}
.sealbtn.food{background:var(--gold);border-color:#a8761c}
.sealbtn.done{background:var(--silver);border-color:#5d6874}
/* buttons */
.btn{background:#fbf3df;border:2px solid var(--wood-2);border-radius:10px;box-shadow:0 3px 0 var(--wood-2);color:var(--ink);transition:transform .08s,box-shadow .08s}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--wood-2)}
.btn.primary{background:linear-gradient(180deg,#d65a37,var(--wax));color:#fff;border-color:var(--wax-2);box-shadow:0 3px 0 var(--wax-2);text-shadow:0 1px 0 rgba(0,0,0,.25)}
.opts button{background:#fbf3df;border:2px solid var(--parch-3);border-radius:9px}
.opts button.right{background:var(--leaf);border-color:#35631f}
.opts button.wrong{background:#f2c9b8;border-color:var(--wax)}
.chars button{background:#fbf3df;border:2px solid var(--parch-3);border-radius:10px}
.chars button[aria-pressed="true"]{background:#dcebf8;border-color:var(--tile);box-shadow:inset 0 0 0 2px #fff,0 3px 0 var(--tile-2)}
/* sheet */
.sheet{background:#fbf3df;border-top:4px solid var(--wood-2)}
.info{background:#e4f0f8;border:1.5px solid #8db4d1;border-radius:10px}
.scrim{background:rgba(30,40,20,.45)}
.toast{background:var(--wood-2);border:2px solid #f2d9a8}
.gate{text-align:left}
.cert{border:4px double var(--wood-2);background:#fffaf0}
.tally b{color:#4a2a12}

.chars button{gap:4px;padding:8px 2px}
.chars button svg{width:64px;height:76px}
.duo svg{width:80px;height:94px}

/* platform pages: landing, hub, new game, manage */
.hdr .brand{color:inherit;text-decoration:none}
.stage .wrap{padding-bottom:40px}
.pagetitle{font-family:var(--f-display);font-weight:400;font-size:1.9rem;line-height:1.1;margin:4px 0 8px;color:#4a2a12;text-wrap:balance}
.back{display:inline-block;color:var(--wax-2);font-family:var(--f-label);text-decoration:none;margin-top:4px}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:18px}
.seg button{border:2px solid var(--tile);background:#fbf3df;border-radius:9px;padding:8px;font-family:var(--f-label);font-weight:700;color:var(--tile);box-shadow:0 3px 0 var(--tile-2)}
.seg button[aria-selected="true"]{background:linear-gradient(180deg,#3d71b8,var(--tile));color:#fff}
.gate form{margin-top:10px}
.linkbtn{background:none;border:0;color:var(--wax-2);text-decoration:underline;font-family:var(--f-body);padding:4px 0;justify-self:start;align-self:flex-start}
.okmsg{color:var(--leaf);font-size:.95rem;margin:0}
.minilist{display:grid;gap:8px}
.mini{display:flex;flex-direction:column;background:#fffaf0;border:2px solid var(--wood-2);border-radius:10px;padding:8px 12px}
.mini span{color:var(--ink-2);font-size:.9rem}
.gamegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-top:8px}
.gamecard{background:#fffaf0;border:2px solid var(--wood-2);border-radius:14px;box-shadow:0 4px 0 rgba(60,35,15,.25);overflow:hidden;display:flex;flex-direction:column;min-width:0}
.gamecard .gc-pic svg{display:block;border:0!important;border-radius:0!important;box-shadow:none!important;border-bottom:3px solid var(--wood-2)!important}
.gc-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.gc-body h3{font-family:var(--f-display);font-weight:400;font-size:1.45rem;margin:0;color:#4a2a12}
.gc-body p{margin:0;color:var(--ink-2);font-size:.95rem}
.gamecard.soon{background:repeating-linear-gradient(45deg,#f6eedb 0 12px,#efe4c8 12px 24px);border-style:dashed;box-shadow:none;justify-content:center}
.mylist{display:grid;gap:10px}
.myrow{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#fffaf0;border:2px solid var(--wood-2);border-radius:12px;padding:10px 12px;box-shadow:0 3px 0 rgba(60,35,15,.2)}
.myinfo{display:flex;flex-direction:column;min-width:0}
.myinfo span{color:var(--ink-2);font-size:.88rem}
.panel{display:flex;flex-direction:column;gap:10px;margin-top:14px;background:#fffaf0;border:2px solid var(--wood-2);border-radius:12px;padding:14px;box-shadow:0 3px 0 rgba(60,35,15,.22)}
.panel label,.panel .lbl{font-family:var(--f-label);font-size:.85rem;color:var(--ink-2)}
.panel input[type=text]{width:100%;font:inherit;font-size:1.05rem;padding:8px 10px;border:1.5px solid var(--ink);border-radius:6px;background:var(--parch);color:var(--ink)}
.stepper{display:flex;align-items:center;gap:12px}
.stepper button{width:46px;height:46px;border-radius:50%;border:2px solid var(--wood-2);background:#fbf3df;font-size:1.5rem;line-height:1;box-shadow:0 3px 0 var(--wood-2)}
.stepper output{font-family:var(--f-display);font-size:2.2rem;min-width:2ch;text-align:center;font-variant-numeric:tabular-nums;color:#4a2a12}
.check{display:flex;gap:8px;align-items:center;font-family:var(--f-body)!important;font-size:1rem!important;color:var(--ink)!important}
.check input{width:20px;height:20px;accent-color:var(--wax)}
.seats{display:grid;gap:12px;margin-top:16px}
.seat{background:#fffaf0;border:2px solid var(--wood-2);border-radius:12px;padding:10px 12px;box-shadow:0 3px 0 rgba(60,35,15,.2);display:flex;flex-direction:column;gap:8px;min-width:0}
.seat-head{display:flex;gap:10px;align-items:center}
.seat-head div{display:flex;flex-direction:column}
.seat-head span{color:var(--ink-2);font-size:.9rem}
.seat-head span.on{color:var(--leaf);font-weight:600}
.seat-ico svg{width:34px;height:40px;display:block}
.seat-n{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--tile);color:#fff;font-family:var(--f-display);font-size:1.2rem;border:2px solid var(--tile-2)}
.seat input{width:100%;min-width:0;font:inherit;font-size:.85rem;padding:6px 8px;border:1.5px dashed var(--ink-3);border-radius:6px;background:#fbf3df;color:var(--ink-2)}
.btn.ghost{background:transparent;box-shadow:none;border-style:dashed}
a.btn{text-decoration:none}
.tally.tips{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));margin:6px 0}
.tally.tips b{font-size:1.25rem}
.vs{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.duo{flex-wrap:wrap}
.note{border-radius:0 8px 8px 0}
.gate .note{margin:10px 0 0}

.seat-head .seat-n{color:#fff}
