:root{--bg:#fbf8f3;--surface:#fff;--ink:#1f2a24;--muted:#5d6b63;--accent:#2f6b4f;--line:#e4ded3}@media (prefers-color-scheme:dark){:root{--bg:#14201a;--surface:#1b2a22;--ink:#eef3ee;--muted:#a9b8ae;--accent:#7fc9a2;--line:#2c3d33}}*{box-sizing:border-box}a{color:var(--accent)}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}main{max-width:36rem;margin:0 auto;padding:3rem 1rem 4rem}h1{margin:0 0 .75rem;font-size:2rem;line-height:1.2}p{margin:0 0 1rem}.muted{color:var(--muted)}.badge{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;margin-bottom:1rem;padding:.15rem .6rem;font-size:.85rem;display:inline-block}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:36rem;margin:0 auto;padding:.75rem 1rem;display:flex}.brand{color:var(--ink);font-weight:700;text-decoration:none}.stack{flex-direction:column;gap:1rem;display:flex}.field{flex-direction:column;gap:.35rem;display:flex}.field label{font-weight:600}.field input.code-input{letter-spacing:.25em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.6rem}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:.6rem;width:100%;min-height:3rem;padding:.75rem .85rem}input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,.btn-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#c0392b}.btn{min-height:3rem;font:inherit;cursor:pointer;color:#fff;background:var(--accent);border:0;border-radius:.6rem;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}@media (prefers-color-scheme:dark){.btn{color:#0d1912}}.btn:disabled{opacity:.6;cursor:progress}.btn-link:disabled{opacity:.4;cursor:not-allowed;text-decoration:none}.btn-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:.5rem;text-decoration:underline}.center{text-align:center}.error{color:#c0392b;margin:0}@media (prefers-color-scheme:dark){.error{color:#ff8a7a}}.notice,.card{background:var(--surface);border:1px solid var(--line);border-radius:.8rem;margin:0 0 1rem;padding:.9rem 1rem}.list{margin:0 0 1rem;padding:0;list-style:none}.small{font-size:.875rem}h2{margin:2rem 0 .75rem;font-size:1.35rem;line-height:1.25}h3{margin:1.25rem 0 .75rem;font-size:1.05rem}.back{margin-bottom:.5rem;padding-left:0;display:inline-block}.card-link{color:var(--ink);text-decoration:none}.card-link:hover{text-decoration:underline}.season{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.actions{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}:root{--k-booking:#2f6b4f;--k-booking-ink:#fff;--k-hold:#e0a526;--k-hold-ink:#1f2a24;--k-ical:#3b6fb6;--k-ical-ink:#fff;--k-manual:#7d8489;--k-manual-ink:#fff}@media (prefers-color-scheme:dark){:root{--k-booking:#7fc9a2;--k-booking-ink:#0d1912;--k-hold:#d9a83a;--k-hold-ink:#1b1608;--k-ical:#7aa7e3;--k-ical-ink:#0c1626;--k-manual:#a2aaaf;--k-manual-ink:#14181a}}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.cal-nav{justify-content:space-between;align-items:center;margin:.5rem 0;display:flex}.cal{table-layout:fixed;border-collapse:separate;border-spacing:3px;width:100%;margin:0 0 .75rem}.cal th{color:var(--muted);padding:.25rem 0;font-size:.75rem;font-weight:600}.cal-day{text-align:center;vertical-align:middle;background:var(--surface);border:1px solid var(--line);border-radius:.5rem;height:3.1rem;padding:.15rem;line-height:1.15}.cal-day.out{opacity:.4}.cal-day.today{outline:2px solid var(--ink);outline-offset:-2px}.cal-n{font-weight:600;display:block}.cal-k{font-size:.7rem;display:block}.k-booking{background:var(--k-booking);color:var(--k-booking-ink);border-color:#0000}.k-hold{background:var(--k-hold);color:var(--k-hold-ink);border-color:#0000}.k-ical{background:var(--k-ical);color:var(--k-ical-ink);border-color:#0000}.k-manual{background:var(--k-manual);color:var(--k-manual-ink);border-color:#0000}.legend{flex-wrap:wrap;gap:.35rem 1rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.swatch{text-align:center;border-radius:.3rem;min-width:1.4rem;padding:0 .2rem;display:inline-block}.copy-row{align-items:stretch;gap:.5rem;margin:0 0 1rem;display:flex}.copy-row .btn{flex:none}textarea{resize:vertical;min-height:5rem}.check{align-items:center;gap:.6rem;font-weight:600;display:flex}.check input{width:1.5rem;height:1.5rem;min-height:1.5rem;accent-color:var(--accent);flex:none}.badge.inline{margin:0 0 0 .5rem;padding:0 .5rem;font-size:.75rem}.btn-row{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.btn-row .btn{flex:12rem}.btn-outline{color:var(--accent);border:2px solid var(--accent);background:0 0}@media (prefers-color-scheme:dark){.btn-outline{color:var(--accent)}}.guest{padding-top:1.5rem}.guest h2{margin-top:.5rem}.desc{white-space:pre-line}.gcal td{padding:0}.cal-btn{text-align:center;cursor:pointer;width:100%;height:3.25rem;line-height:1.15;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:.5rem;padding:.1rem;display:block}.cal-btn:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.cal-btn:disabled{cursor:not-allowed}.cal-btn.past{opacity:.35}.cal-btn.busy,.busy-sw{color:var(--muted);background:repeating-linear-gradient(135deg, var(--surface) 0 5px, var(--line) 5px 7px)}.cal-btn.busy .cal-n{text-decoration:line-through}.cal-btn.range{background:color-mix(in srgb, var(--accent) 22%, var(--surface));border-color:#0000}.cal-btn.sel,.sel-sw{background:var(--accent);color:#fff;border-color:#0000}@media (prefers-color-scheme:dark){.cal-btn.sel,.sel-sw{color:#0d1912}}.cal-btn .cal-k{font-size:.65rem;font-weight:400}.free-sw{background:var(--surface);border:1px solid var(--line)}.busy-sw,.sel-sw{border:1px solid #0000}.stepper{align-items:center;gap:1rem;margin:0 0 .5rem;display:flex}.stepper output{text-align:center;min-width:6.5rem;font-size:1.15rem;font-weight:700}.btn-step{width:3.25rem;height:3.25rem;font:inherit;cursor:pointer;color:var(--accent);background:var(--surface);border:2px solid var(--accent);border-radius:.6rem;font-size:1.5rem;font-weight:700}.btn-step:disabled{opacity:.4;cursor:not-allowed}.addon-text{flex-direction:column;gap:.1rem;font-weight:600;display:flex}.addon-text .small{font-weight:400}.total{font-size:1.5rem}.steps{margin:0 0 1rem;padding-left:1.25rem}.steps li{margin-bottom:.35rem}.check{align-items:flex-start}.check input{margin-top:.15rem}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.summary{grid-template-columns:1fr auto;gap:.35rem 1rem;margin:0 0 1rem;display:grid}.summary dt{color:var(--muted)}.summary dd{text-align:right;margin:0}.summary-row{display:contents}.status-awaiting_payment{border-color:var(--k-hold)}.status-confirmed{border-color:var(--accent)}.status-rejected,.status-cancelled,.status-expired{border-color:var(--muted)}.topnav{align-items:center;gap:.25rem;display:flex}.install-hint{margin-top:1.5rem}.install-hint summary{cursor:pointer;align-items:center;min-height:2.5rem;font-weight:600;display:flex}.install-hint p:last-child{margin-bottom:0}.qr-sheet{color:#111;text-align:center;break-inside:avoid;background:#fff;border:2px solid #111;border-radius:1rem;margin:1rem 0;padding:1.5rem 1rem}.qr-lead{margin:0 0 .75rem;font-size:1.4rem;font-weight:700;line-height:1.25}.qr-image{width:min(100%,20rem);height:auto;margin:0 auto .75rem;display:block}.qr-hint{color:#333;margin:0 0 .75rem}.qr-name{margin:0 0 .25rem;font-weight:700}.qr-url{color:#333;overflow-wrap:anywhere;margin:0;font-size:.95rem}@media print{.no-print,.topbar{display:none!important}body{color:#000;background:#fff}main{max-width:none;padding:0}.qr-sheet{border:2px solid #000;max-width:16cm;margin:0 auto;padding:1.2cm 1cm}.qr-image{width:11cm}.qr-lead{font-size:26pt}.qr-name{font-size:16pt}.qr-url{font-size:13pt}}
