*{box-sizing:border-box;min-width:0}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}body{margin:0}:root{color-scheme:light dark;--bg: #f6f3ee;--surface: #ffffff;--surface-2: #efe9df;--text: #1b2a41;--muted: #5d6b80;--border: #ddd4c6;--primary: #24406b;--primary-contrast: #ffffff;--accent: #e08a3c;--ok: #2e7d4f;--ok-bg: #e2f3e8;--warn: #9a6400;--warn-bg: #fdf1d8;--danger: #b3261e;--danger-bg: #fbe4e2;--neutral: #5d6b80;--neutral-bg: #e9edf2;--external: #b4235a;--external-bg: #fde4ee;--focus: #e08a3c88;--sky: linear-gradient(160deg, #1b2a41 0%, #24406b 55%, #e08a3c 140%);--shadow: 0 1px 2px #1b2a4114, 0 6px 24px #1b2a4114;--font: Nunito Sans, system-ui, -apple-system, Segoe UI, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #0f1724;--surface: #172234;--surface-2: #1f2d44;--text: #e8edf5;--muted: #9eabc0;--border: #2c3b55;--primary: #8fb0e6;--primary-contrast: #0f1724;--accent: #e08a3c;--ok: #7fd3a1;--ok-bg: #173a29;--warn: #f2c26b;--warn-bg: #3d2f12;--danger: #f2a39d;--danger-bg: #42201d;--neutral: #9eabc0;--neutral-bg: #24324a;--external: #f59ac0;--external-bg: #44172b;--shadow: 0 1px 2px #0006, 0 6px 24px #0004}}html{font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.5;-webkit-text-size-adjust:100%}body{min-height:100dvh;display:flex;flex-direction:column}main{flex:1}[hidden]{display:none!important}a{color:var(--primary)}h1,h2,h3{line-height:1.2;margin:0 0 .5em}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.container{width:100%;max-width:1100px;margin-inline:auto;padding-inline:16px}.muted{color:var(--muted)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-header{background:var(--sky);color:#fff}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:60px}.site-header a{color:inherit;text-decoration:none}.site-header .brand{font-weight:800;font-size:1.15rem;letter-spacing:.02em;white-space:nowrap}.site-header nav{display:flex;align-items:center;gap:1rem;font-size:.95rem;min-width:0}.site-header nav a:hover{text-decoration:underline}.site-footer{margin-top:3rem;padding-block:1.5rem;color:var(--muted);font-size:.875rem;border-top:1px solid var(--border)}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:44px;padding:.55em 1.2em;border:1px solid transparent;border-radius:999px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;background:var(--primary);color:var(--primary-contrast);transition:filter .15s,transform .05s}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--primary);border-color:var(--border)}.btn--ok{background:var(--ok);color:var(--surface)}.btn--danger{background:var(--danger);color:var(--surface)}.btn--sm{min-height:34px;padding:.3em .9em;font-size:.875rem}.badge{display:inline-block;padding:.15em .7em;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.badge--pending{color:var(--warn);background:var(--warn-bg)}.badge--approved{color:var(--ok);background:var(--ok-bg)}.badge--rejected{color:var(--danger);background:var(--danger-bg)}.badge--expired{color:var(--neutral);background:var(--neutral-bg)}.alert{padding:.8rem 1rem;border-radius:8px;margin-bottom:1rem;border:1px solid currentColor}.alert--success{color:var(--ok);background:var(--ok-bg)}.alert--warning{color:var(--warn);background:var(--warn-bg)}.alert--error{color:var(--danger);background:var(--danger-bg)}.alert--info{color:var(--primary);background:var(--neutral-bg)}.alert ul{margin:0;padding-left:1.2rem}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}.field--check label{display:flex;align-items:center;gap:.5rem;font-weight:600;cursor:pointer}.field input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--accent)}.field--invalid :is(input,select,textarea){border-color:var(--danger)}.field label{font-weight:700;font-size:.9rem}.field .hint{font-size:.8rem;color:var(--muted)}input[type=text],input[type=tel],input[type=number],input[type=search],input[type=email],input[type=password],input[type=url],input[type=time],input[type=date],select,textarea{width:100%;min-height:44px;padding:.55em .8em;font:inherit;font-size:max(16px,1rem);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px}input[type=text]:focus,input[type=tel]:focus,input[type=number]:focus,input[type=search]:focus,input[type=email]:focus,input[type=password]:focus,input[type=url]:focus,input[type=time]:focus,input[type=date]:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--accent)}textarea{min-height:90px;resize:vertical}.field-row{display:grid;gap:0 1rem}@media(min-width:600px){.field-row{grid-template-columns:1fr 1fr}}.summary-list{display:grid;grid-template-columns:fit-content(9rem) 1fr;gap:.35rem 1rem;margin:0}.summary-list dt{color:var(--muted);font-size:.9rem}.summary-list dd{margin:0;font-weight:600}img,svg,a{-webkit-user-drag:none}h1,h2,h3,h4,label,dt,.site-header,.site-footer,.btn,.badge,.hint,.muted{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable],.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}@media print{.site-header,.site-footer,.no-print{display:none!important}.card{box-shadow:none}}.calendar{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.calendar__nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar__months{display:grid;gap:1.5rem}@media(min-width:900px){.calendar__months{grid-template-columns:1fr 1fr}}.calendar__title{text-align:center;font-weight:800;margin-bottom:.5rem}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar__weekday{text-align:center;font-size:.75rem;font-weight:700;color:var(--muted);padding-block:.25rem}.calendar__day{aspect-ratio:1;min-height:38px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:var(--surface-2);color:var(--text);font:inherit;font-weight:600;cursor:pointer;position:relative}.calendar__day:hover:not(:disabled){border-color:var(--accent)}.calendar__day:disabled{cursor:not-allowed;background:transparent;color:var(--muted);text-decoration:line-through;opacity:.6}.calendar__day--empty{visibility:hidden}.calendar__day--today{border-color:var(--primary)}.calendar__day--selected{background:var(--primary);color:var(--primary-contrast)}.calendar__day--range-start,.calendar__day--range-end{background:var(--accent);color:#fff}.calendar__day--preselected-unavailable{outline:2px dashed var(--danger);outline-offset:-2px}.calendar__legend{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;margin-top:1rem;font-size:.8rem;color:var(--muted)}.calendar__legend span:before{content:"";display:inline-block;width:.9em;height:.9em;margin-right:.35em;border-radius:3px;vertical-align:-.1em}.calendar__legend .available:before{background:var(--surface-2);border:1px solid var(--border)}.calendar__legend .selected:before{background:var(--primary)}.calendar__legend .unavailable:before{background:repeating-linear-gradient(45deg,var(--muted) 0 2px,transparent 2px 4px)}.calendar__loading{opacity:.5;pointer-events:none}.page-title{margin-block:1.5rem 1rem}.booking{display:grid;gap:1.25rem;align-items:start}@media(min-width:900px){.booking{grid-template-columns:minmax(0,1fr) 320px}}.booking__steps{display:flex;flex-direction:column;gap:1.25rem;counter-reset:step}@media(min-width:900px){.booking__aside{position:sticky;top:1rem}}.step{counter-increment:step}.step h2{display:flex;align-items:center;gap:.5rem;font-size:1.15rem}.step__number{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--accent);color:#fff;font-size:.9rem}.step__number:before{content:counter(step)}.choice-group{display:grid;gap:.5rem}@media(min-width:600px){.choice-group{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.choice{display:flex;gap:.6rem;align-items:flex-start;padding:.8rem 1rem;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:var(--surface)}.choice:has(input:checked){border-color:var(--accent);background:var(--surface-2)}.choice input{margin-top:.3rem;accent-color:var(--accent)}.choice strong{display:block}.choice small{color:var(--muted)}.choice .price{margin-left:auto;font-weight:700;white-space:nowrap}.summary h2{font-size:1.1rem}.summary__total{display:flex;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border);font-size:1.1rem;font-weight:800}.summary__note{font-size:.8rem;color:var(--muted);margin-block:.75rem}.summary .btn{width:100%}.field-error{color:var(--danger);font-size:.85rem}.step,.choice,.summary__total,.summary__note,.ticket__header{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.ticket__code,.comment p{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.ticket{max-width:640px;margin:1.5rem auto 0;padding:0;overflow:hidden}.ticket__header{background:var(--sky);color:#fff;padding:1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.ticket__header h1{font-size:1.3rem;margin:0}.ticket__body{padding:1.25rem;display:grid;gap:1.25rem}@media(min-width:600px){.ticket__body{grid-template-columns:1fr auto}}.ticket__qr{text-align:center}.ticket__qr svg{width:160px;height:160px;background:#fff;border-radius:8px;padding:4px}.ticket__code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;font-weight:800;letter-spacing:.08em}.ticket__section{padding:0 1.25rem 1.25rem}.ticket__section h2{font-size:1rem}.comment{border-left:3px solid var(--accent);padding:.25rem .75rem;margin-bottom:.75rem}.comment p{margin:0;white-space:pre-line}.comment time{font-size:.8rem;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-block:1.25rem}
