:root{
  --paper:#f5f6f1; --card:#ffffff; --ink:#1d2b22; --ink-2:#4d5a50; --line:#d5d9cc;
  --spruce:#24452f; --moss:#6e8b4e; --moss-l:#e1ead3; --oak:#7a5230; --oak-l:#efe4d6;
  --rowan:#b23a2e; --rowan-d:#8c2b21; --busy:#cfd1ca; --err:#a3261c;
  --serif:"Alegreya",Georgia,serif; --sans:"Alegreya Sans","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.5 var(--sans)}
a{color:var(--spruce)}
.wrap{max-width:1080px;margin:0 auto;padding:28px 16px 36px}

.intro{margin-bottom:22px}
.intro h1{font:700 clamp(32px,5vw,44px)/1.1 var(--serif);margin:0;color:var(--spruce);letter-spacing:-.01em}
.event{font:500 20px/1.3 var(--serif);color:var(--oak);margin:6px 0 0}
.lead{margin:8px 0 0;color:var(--ink-2);max-width:60ch}

.grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:880px){
  .grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:"a p" "c p";align-items:start}
  .grid>.col-form:first-child{grid-area:a}
  .grid>.col-plan{grid-area:p;position:sticky;top:16px}
  .grid>.col-form:last-child{grid-area:c}
}

.step{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:18px 18px 20px;margin:0;min-width:0}
.step legend{font:700 21px/1.2 var(--serif);color:var(--spruce);padding:0 6px;margin-left:-6px;display:flex;align-items:center;gap:10px}
.n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--spruce);color:#fff;font:700 15px/1 var(--sans)}

.field{display:block;margin-top:16px}
.flabel{display:block;font-weight:500;margin-bottom:6px}
.opt{font-weight:400;color:var(--ink-2);font-size:15px}
.hint{font-size:15px;color:var(--ink-2);margin:6px 0 0}
.center{text-align:center}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{appearance:none;border:1px solid var(--line);background:var(--paper);color:var(--ink);font:500 16px/1 var(--sans);padding:11px 14px;border-radius:8px;cursor:pointer;min-height:44px}
.chip:hover{border-color:var(--moss)}
.chip[aria-checked="true"]{background:var(--spruce);border-color:var(--spruce);color:#fff}
.chip:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.times .chip{min-width:72px;justify-content:center}
.chips .none{color:var(--ink-2);font-size:15px;margin:4px 0}

.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper)}
.sbtn{appearance:none;border:0;background:transparent;width:48px;height:46px;font:500 24px/1 var(--sans);color:var(--spruce);cursor:pointer}
.sbtn:disabled{opacity:.3;cursor:not-allowed}
.stepper output{min-width:56px;text-align:center;font:700 22px/1 var(--serif)}

input,textarea{width:100%;font:400 17px/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:11px 12px}
input:focus,textarea:focus{outline:2px solid var(--moss);outline-offset:1px;border-color:var(--moss)}
input[aria-invalid="true"]{border-color:var(--err)}
.row2{display:grid;gap:0 14px;grid-template-columns:1fr}
@media (min-width:520px){.row2{grid-template-columns:1fr 1fr}}
.check{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:15px;color:var(--ink-2)}
.check input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--spruce)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

:focus-visible{outline:3px solid var(--rowan);outline-offset:2px}

/* Plánek */
.plan-box{margin-top:12px;background:var(--paper);border-radius:10px;padding:8px}
.plan{display:block;width:100%;height:auto}
.plan .wall{fill:none;stroke:var(--ink);stroke-width:3;stroke-linejoin:round}
.plan .room{fill:#e9ebe4;stroke:var(--ink);stroke-width:1.5}
.plan .deco{fill:#e9ebe4;stroke:var(--ink-2);stroke-width:1}
.plan .bar{fill:var(--oak-l);stroke:var(--oak);stroke-width:1.5}
.plan .door{stroke:var(--rowan);stroke-width:5;stroke-linecap:round}
.plan .lbl{font:500 16px var(--sans);fill:var(--ink-2)}
.plan .lbl-s{font:400 13px var(--sans);fill:var(--ink-2)}
.plan .tbl rect{fill:#f1f2ee;stroke:var(--busy);stroke-width:1.5;transition:fill .15s,stroke .15s}
.plan .tbl .num{font:700 24px var(--serif);fill:var(--ink-2)}
.plan .tbl .seats{font:400 12px var(--sans);fill:var(--ink-2)}
.plan .tbl.free{cursor:pointer}
.plan .tbl.free rect{fill:var(--moss-l);stroke:var(--moss);stroke-width:2}
.plan .tbl.free .num{fill:var(--spruce)}
.plan .tbl.free:hover rect{stroke:var(--spruce);stroke-width:3}
.plan .tbl.busy rect{fill:url(#hatch);stroke:#a9aca3}
.plan .tbl.busy .num,.plan .tbl.busy .seats{fill:#7d8178}
.plan .tbl.nofit rect{fill:#f5f6f1;stroke:#c6c9bf;stroke-dasharray:4 3}
.plan .tbl.nofit .num,.plan .tbl.nofit .seats{fill:#9a9e95}
.plan .tbl.off{opacity:.35}
.plan .tbl.sel rect{fill:var(--rowan);stroke:var(--rowan-d);stroke-width:3}
.plan .tbl.sel .num,.plan .tbl.sel .seats{fill:#fff}
.plan .tbl:focus{outline:none}
.plan .tbl:focus-visible rect{stroke:var(--ink);stroke-width:3}

.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding:0;font-size:15px;color:var(--ink-2)}
.legend li{display:flex;align-items:center;gap:7px}
.sw{width:18px;height:14px;border-radius:3px;display:inline-block;border:1.5px solid}
.sw.free{background:var(--moss-l);border-color:var(--moss)}
.sw.busy{background:repeating-linear-gradient(45deg,#cfd1ca 0 3px,#e8e9e4 3px 6px);border-color:#a9aca3}
.sw.nofit{background:#f5f6f1;border:1.5px dashed #c6c9bf}
.sw.sel{background:var(--rowan);border-color:var(--rowan-d)}
.pick{margin:12px 0 0;font-weight:500;min-height:1.5em}
.tchips{margin-top:10px}
.tchips:empty{display:none}
@media (max-width:560px){
  .plan-box{padding:2px;margin-left:-8px;margin-right:-8px}
  .plan .tbl .num{font-size:34px}
  .plan .tbl .seats,.plan .lbl-s{display:none}
  .plan .lbl{font-size:22px}
}
.pick.ok{color:var(--rowan-d)}

.summary{margin-top:18px;padding:12px 14px;border-left:4px solid var(--rowan);background:var(--paper);font-size:16px}
.error{margin:14px 0 0;padding:10px 12px;border-radius:8px;background:#f8e3e0;color:var(--err);font-weight:500}
.submit{display:block;width:100%;margin-top:18px;appearance:none;border:0;border-radius:10px;background:var(--rowan);color:#fff;font:700 18px/1 var(--sans);padding:17px 18px;cursor:pointer;min-height:54px}
.submit:hover{background:var(--rowan-d)}
.submit:disabled{opacity:.6;cursor:progress}
.ghost{appearance:none;border:1px solid var(--spruce);background:transparent;color:var(--spruce);font:500 16px var(--sans);padding:11px 16px;border-radius:8px;cursor:pointer}

.done{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--moss);border-radius:12px;padding:24px 22px;max-width:640px}
.done h2{font:700 28px/1.2 var(--serif);color:var(--spruce);margin:0 0 8px}
#doneText{font-weight:500}
.empty{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
.foot{margin-top:28px;font-size:15px;color:var(--ink-2)}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
