:root{--red: #e93423;--red-dark: #a20c0c;--ink: #1c1b1d;--slate: #444046;--stone: #f0eff0;--bg: #ffffff;--fg: #1c1b1d;--muted: #666666;--line: #e2e0e2;--card: #ffffff;--accent: var(--red);--accent-fg: #ffffff;--danger: var(--red-dark);--ok: #2f6b3f;--serif: "Libre Baskerville", Georgia, serif;--sans: Inter, system-ui, -apple-system, sans-serif;font-family:var(--sans);line-height:1.6;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #1c1b1d;--fg: #f0eff0;--muted: #a5a2a6;--line: #35323700;--line: #353237;--card: #262428;--accent: var(--red);--accent-fg: #ffffff;--danger: #ff6b5c;--ok: #5fbf7d}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans)}h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.25;color:var(--fg)}h2{margin-top:0;font-size:clamp(1.6rem,4vw,2.1rem)}h3{font-size:1.15rem}a{color:var(--red-dark)}header{display:flex;align-items:center;justify-content:center;padding:.75rem clamp(1rem,5vw,3rem);background:#fff;border-bottom:1px solid var(--line)}.brand img{display:block;height:54px;width:auto}.hero{background:var(--slate);color:#fff;padding:clamp(2rem,6vw,3.5rem) clamp(1rem,5vw,3rem)}.hero .kicker{margin:0 0 .5rem;font-size:.72rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#ffffffb8}.hero h1{margin:0;font-size:clamp(1.9rem,5vw,3rem);color:#fff}main{width:min(100%,54rem);margin:0 auto;padding:2rem clamp(1rem,5vw,2rem) 4rem}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger);font-weight:500}.back{display:inline-block;margin-bottom:1.25rem;font-size:.75rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;text-decoration:none}button,.button{display:inline-block;padding:.75rem 1.4rem;border:none;border-radius:0;background:var(--red);color:var(--accent-fg);font-family:var(--sans);font-size:.75rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer;transition:background .15s ease}button:hover:not(:disabled),.button:hover{background:var(--red-dark)}button:disabled{background:var(--muted);opacity:.45;cursor:not-allowed}button.link{background:none;color:var(--red-dark);padding:.2rem .4rem;font-size:.75rem;letter-spacing:0;text-transform:none;text-decoration:underline}button.link:hover{background:none;color:var(--red)}button.link.danger{color:var(--danger)}.event-list{list-style:none;padding:0;margin:0;display:grid;gap:1.25rem}.event-when{margin:.25rem 0;font-weight:500;color:var(--fg)}.event-when:first-letter{text-transform:uppercase}.event-row{display:grid;grid-template-columns:8.5rem auto 1fr auto;align-items:center;gap:1.5rem;padding:1.25rem 1.5rem;background:var(--card);border:1px solid var(--line)}.event-row:not(:has(.event-thumb)){grid-template-columns:8.5rem 1fr auto}.event-row.sold-out{opacity:.65}.event-date{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1rem;padding-right:1.5rem;border-right:1px solid var(--line)}.event-date .day{font-family:var(--serif);font-size:2.75rem;line-height:1;font-weight:700;color:var(--red)}.event-date .month,.event-date .weekday{font-size:.8rem;color:var(--muted)}.event-date .month:first-letter,.event-date .weekday:first-letter{text-transform:uppercase}.event-thumb{width:9rem;aspect-ratio:16 / 9;object-fit:cover;display:block}.event-body{min-width:0}.event-body h3{margin:0;font-size:1.4rem;line-height:1.2}.event-place{margin:.35rem 0 0;color:var(--muted)}.event-desc{margin:.35rem 0 0;color:var(--muted);font-size:.875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-desc.full{display:block;overflow:visible}.event-menu{margin:1.5rem 0 0;padding:1.25rem 1.5rem;border:1px solid var(--line);border-top:3px solid var(--red);background:var(--card)}.event-menu h3{margin:0 0 .75rem}.coupon-row{align-items:stretch;gap:.5rem}.coupon-row input{flex:1 1 12rem;text-transform:uppercase}.coupon-row button{flex:0 0 auto}.event-cta{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:.15rem;min-width:9rem}.price{margin:0;font-family:var(--serif);font-size:1.5rem;font-weight:700}.price span{font-family:var(--sans);font-size:.8rem;font-weight:400}.deposit,.seats{margin:0;font-size:.8rem}.seats{color:var(--ok);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.seats.none{color:var(--danger)}.event-cta .button,.event-cta button{margin-top:.6rem}@media(max-width:48rem){.event-row,.event-row:not(:has(.event-thumb)){grid-template-columns:1fr;gap:.9rem;padding:1.25rem}.event-date{flex-direction:row;align-items:baseline;justify-content:flex-start;gap:.5rem;padding:0 0 .75rem;border-right:none;border-bottom:1px solid var(--line);text-align:left}.event-date .day{font-size:1.75rem}.event-thumb{width:100%}.event-cta{align-items:stretch;text-align:left}}.narrow{max-width:34rem;margin-inline:auto}.booking-form,.login{display:grid;gap:1rem;max-width:34rem}.narrow .booking-form{max-width:none}.login{margin:2rem auto;padding:2rem;border:1px solid var(--line);border-top:4px solid var(--red)}label{display:grid;gap:.35rem;font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}label.checkbox{display:flex;align-items:center;gap:.5rem;text-transform:none;letter-spacing:0;font-size:.9rem}label.checkbox input[type=checkbox]{width:auto;flex:0 0 auto;margin:0;accent-color:var(--red)}input,textarea,select{padding:.7rem .8rem;border:1px solid var(--line);border-radius:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none;width:100%}input:focus,textarea:focus{outline:2px solid var(--red);outline-offset:-1px}.row{display:flex;flex-wrap:wrap;gap:1rem;align-items:end}.row>label{flex:1 1 8rem}.phone-field{display:flex;gap:.5rem}.phone-field .dial{width:auto;flex:0 0 auto;min-width:7rem;font-variant-numeric:tabular-nums}.phone-field input{flex:1 1 auto;min-width:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.stepper{display:flex;align-items:center;gap:.75rem}.stepper input[type=number]{width:5rem;text-align:center;font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.stepper input[type=number]::-webkit-outer-spin-button,.stepper input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}button.round{flex:0 0 auto;width:2.75rem;height:2.75rem;padding:0;border-radius:50%;font-size:1.5rem;font-weight:400;line-height:1;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center}button.round:disabled{background:var(--line);color:var(--muted);opacity:1}.field-label{font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.editor{border:1px solid var(--line);background:var(--bg)}.editor-toolbar{display:flex;flex-wrap:wrap;gap:.2rem;padding:.35rem;border-bottom:1px solid var(--line);background:var(--stone)}@media(prefers-color-scheme:dark){.editor-toolbar{background:var(--card)}}button.tool{min-width:2rem;padding:.35rem .5rem;background:transparent;color:var(--fg);font-size:.85rem;font-weight:700;letter-spacing:0;text-transform:none;border:1px solid transparent}button.tool:hover:not(:disabled){background:var(--bg);border-color:var(--line)}button.tool.active{background:var(--red);color:#fff}.editor-body .tiptap{min-height:8rem;padding:.75rem .8rem;outline:none;font-size:1rem}.editor-body .tiptap:focus{outline:2px solid var(--red);outline-offset:-2px}.editor-body .tiptap>*:first-child{margin-top:0}.editor-body .tiptap>*:last-child{margin-bottom:0}.rich>*:first-child{margin-top:0}.rich>*:last-child{margin-bottom:0}.rich h3,.rich h4{font-size:1rem;margin:.8rem 0 .3rem}.rich ul,.rich ol{margin:.4rem 0;padding-left:1.3rem}.rich li{margin:.15rem 0}.rich blockquote{margin:.6rem 0;padding-left:.9rem;border-left:3px solid var(--red);color:var(--muted)}.cover-picker{display:grid;gap:.5rem}.event-cover{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:cover;background:var(--stone)}.event-cover.wide{margin-bottom:1.5rem}.cover-preview{display:grid;gap:.4rem;justify-items:start}.cover-preview img{width:100%;max-width:20rem;aspect-ratio:16 / 9;object-fit:cover;border:1px solid var(--line)}.cropper{display:grid;gap:.75rem}.cropper-stage{position:relative;width:100%;height:18rem;background:var(--ink)}label.zoom{display:grid;gap:.3rem}label.zoom input[type=range]{width:100%;accent-color:var(--red)}input[type=file]{padding:.5rem;font-size:.85rem}.totals{width:100%;border-collapse:collapse;margin:.5rem 0}.totals td{padding:.55rem 0;border-bottom:1px solid var(--line)}.totals td:last-child{text-align:right;font-variant-numeric:tabular-nums}.totals .highlight td{font-family:var(--serif);font-weight:700;font-size:1.05rem;color:var(--red-dark);border-bottom:2px solid var(--red)}.event-summary{padding:1.5rem;background:var(--stone);border-left:4px solid var(--red);margin-bottom:2rem}@media(prefers-color-scheme:dark){.event-summary{background:var(--card)}}.event-summary h2{margin-bottom:.3rem}.methods{border:1px solid var(--line);border-radius:0;padding:1rem;margin:0;display:grid;gap:.6rem}.methods legend{padding:0 .4rem;font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}label.method{display:flex;align-items:center;gap:.6rem;font-size:.95rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--fg);cursor:pointer}label.method input[type=radio]{width:auto;margin:0;accent-color:var(--red)}.confirmation{max-width:34rem;margin-inline:auto}.badge-wait,.badge-ko{display:inline-block;padding:.4rem .9rem;font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}.badge-wait{background:var(--stone);color:var(--slate)}.badge-ko{background:var(--slate);color:#fff}.badge-ok{display:inline-block;padding:.4rem .9rem;background:var(--red);color:#fff;font-size:.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase}.confirmation h2 strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--red-dark)}.empty{text-align:center;padding:3rem 1rem}.role-note{margin:0 0 1rem;padding:.5rem .75rem;border-left:3px solid var(--red);background:var(--stone)}@media(prefers-color-scheme:dark){.role-note{background:var(--card)}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.9rem;margin:1rem 0 1.5rem}.stat{display:grid;gap:.15rem;padding:.9rem 1rem;border:1px solid var(--line);background:var(--card)}.stat-strong{border-left:3px solid var(--red)}.stat-label{font-size:.68rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.stat-value{font-family:var(--serif);font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.stat-hint{font-size:.78rem;color:var(--muted)}.guest-list li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem}.guest-name{font-weight:500}.guest-meta{display:flex;align-items:baseline;gap:.45rem;font-size:.8rem}.guest-meta code{color:var(--muted)}.table-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.9rem;margin-top:1rem}.table-card{padding:.9rem;border:1px solid var(--line);border-top:3px solid var(--red);background:var(--card)}.table-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.guest-list{list-style:none;margin:0;padding:0;font-size:.875rem}.guest-list li{padding:.2rem 0;border-bottom:1px solid var(--line)}.guest-list li:last-child{border-bottom:none}.notice-warn{margin:1rem 0;padding:.9rem 1rem;border-left:3px solid var(--red);background:var(--stone);font-size:.9rem}@media(prefers-color-scheme:dark){.notice-warn{background:var(--card)}}.notice-warn ul{margin:.5rem 0 0;padding-left:1.2rem}.warn{color:var(--red-dark)}.tag.warn-tag{color:var(--red-dark);border-color:currentColor}.admin-table input{min-width:6rem}.section-title{font-size:1.4rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--red)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1.25rem}.settings-card{margin:0;padding:1.25rem;border:1px solid var(--line);border-top:3px solid var(--red);background:var(--card)}.settings-card h3{margin:0;font-size:1.05rem}.settings-card .booking-form{max-width:none;gap:.7rem;margin-top:1rem}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}section{margin-bottom:2.5rem}.admin-table{width:100%;border-collapse:collapse;font-size:.875rem;display:block;overflow-x:auto}.admin-table th,.admin-table td{padding:.6rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.admin-table th{font-size:.7rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--line)}.hidden-row{opacity:.5}.contacts{display:flex;flex-direction:column;font-size:.8rem}.actions{display:flex;gap:.2rem}.tag{display:inline-block;margin-left:.4rem;padding:.15rem .5rem;border:1px solid var(--line);font-size:.7rem;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.tag.status-confirmed{color:var(--ok);border-color:currentColor}.tag.status-cancelled{color:var(--danger);border-color:currentColor}.tabs{display:flex;gap:.25rem;margin:1.25rem 0 2rem;border-bottom:1px solid var(--line)}.tabs button{padding:.7rem 1.1rem;background:none;color:var(--muted);border-bottom:3px solid transparent}.tabs button:hover:not(:disabled){background:none;color:var(--fg)}.tabs button.active{color:var(--fg);border-bottom-color:var(--red)}.search{max-width:24rem;margin-bottom:1rem}.admin-table tr.clickable{cursor:pointer}.admin-table tr.clickable:hover td{background:var(--stone)}.admin-table tr.open-row td{background:var(--stone);font-weight:600}@media(prefers-color-scheme:dark){.admin-table tr.clickable:hover td,.admin-table tr.open-row td{background:var(--card)}}.detail-row>td{padding:.75rem .6rem 1.5rem;white-space:normal}.admin-table.nested{border-left:3px solid var(--red);padding-left:.75rem;font-size:.82rem}.checkin-table input[type=number]{width:4.5rem;min-width:0;text-align:center}.checkin-table tr.arrived{background:color-mix(in srgb,var(--ok) 8%,transparent)}.print-head h2{margin-bottom:.2rem}.print-head p{margin:.1rem 0}.print-table{margin-bottom:1.5rem;break-inside:avoid}.print-table h3{margin:0 0 .4rem;padding-bottom:.2rem;border-bottom:2px solid var(--red)}.print-grid{width:100%;border-collapse:collapse;font-size:.9rem}.print-grid th,.print-grid td{padding:.35rem .4rem;border-bottom:1px solid var(--line);text-align:left}.print-grid th{font-size:.7rem;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.tickbox{width:1.6rem;font-size:1.2rem;line-height:1}@media print{header,nav.tabs,.no-print,.role-note,button{display:none!important}body{background:#fff;color:#000}main{width:100%;max-width:none;padding:0}.print-table{page-break-inside:avoid}.print-grid th,.print-grid td{border-bottom:1px solid #999999}a{color:#000;text-decoration:none}}.note-line{margin:.25rem 0 0;font-size:.8rem;color:var(--red-dark);white-space:pre-wrap;overflow-wrap:anywhere;max-width:24rem}.request-list{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.6rem}.request-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem;background:var(--bg);border:1px solid var(--line)}.note-cell{max-width:14rem;font-size:.8rem;white-space:normal;overflow-wrap:anywhere}.field-hint{margin-top:-.6rem}textarea{resize:vertical;font-family:inherit}.guest-list li[draggable=true],.notice-warn li[draggable=true],.notice-quiet li[draggable=true]{cursor:grab}.dragging{opacity:.4}.drop-target{outline:2px dashed var(--red);outline-offset:2px}.notice-quiet{padding:.75rem 1rem;border:1px dashed var(--line);margin-bottom:1rem}.notice-quiet ul,.notice-warn ul{list-style:none;margin:.4rem 0 0;padding:0}.lock{padding:0 .25rem;background:none;border:none;font-size:.9rem;line-height:1;cursor:pointer}.lock:hover:not(:disabled){background:none;transform:scale(1.2)}.wa-qr{display:block;margin:.75rem 0;width:260px;max-width:100%;background:#fff;padding:.5rem;border:1px solid var(--line)}.tabs.sub{margin:.5rem 0 1.5rem}.tabs.sub button{padding:.5rem .9rem;font-size:.7rem}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}button.chip{padding:.45rem .9rem;background:none;color:var(--muted);border:1px solid var(--line);text-transform:none;letter-spacing:0;font-size:.85rem}button.chip:hover:not(:disabled){background:none;border-color:var(--red);color:var(--fg)}button.chip.on{background:var(--red);border-color:var(--red);color:var(--accent-fg)}.supplier-order{margin:0 0 2rem;padding:1rem 1.25rem;border:1px solid var(--line);border-left:3px solid var(--red)}.supplier-order h4{margin:0;font-family:var(--serif);font-size:1.05rem}@media print{header,.tabs,.chips,button{display:none!important}.supplier-order{break-inside:avoid}}.head-actions{display:flex;align-items:center;gap:.25rem}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:.4rem;background:none;color:var(--muted);border:none;line-height:0}.icon-button:hover:not(:disabled){background:none;color:var(--fg)}.icon-button.active{color:var(--red)}.tag.coupon{background:var(--ink);border-color:var(--ink);color:#fff}@media(prefers-color-scheme:dark){.tag.coupon{background:var(--stone);border-color:var(--stone);color:var(--ink)}}.community{margin:2rem 0 0;text-align:center}.community p{margin:.6rem 0 0}.community-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.9rem 1.6rem;border:none;border-radius:999px;background:linear-gradient(180deg,#2ee06f,#25d366 55%,#1eb955);box-shadow:inset 0 1px #ffffff73,inset 0 -2px #0000001f,0 4px 10px #128c5a59;color:#fff;font-family:var(--sans);font-size:.95rem;font-weight:600;letter-spacing:.3px;text-decoration:none;cursor:pointer;animation:community-glow 2.8s ease-in-out infinite;transition:transform .12s ease,box-shadow .12s ease}.community-button:hover{transform:translateY(-1px)}.community-button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0003,0 1px 3px #128c5a4d;animation:none}.community-button svg{flex:0 0 auto}@keyframes community-glow{0%,to{box-shadow:inset 0 1px #ffffff73,inset 0 -2px #0000001f,0 4px 10px #128c5a59,0 0 #25d36680}50%{box-shadow:inset 0 1px #ffffff73,inset 0 -2px #0000001f,0 4px 10px #128c5a59,0 0 0 10px #25d36600}}@media(prefers-reduced-motion:reduce){.community-button{animation:none;transition:none}}.bulk-picker{border:1px solid var(--line);padding:.75rem}.bulk-picker ul{list-style:none;margin:.5rem 0 0;padding:0;max-height:18rem;overflow-y:auto}.bulk-picker li{padding:.15rem 0}.bulk-result{margin-top:.75rem;padding:.75rem 1rem;border-left:3px solid var(--ok);background:var(--card)}.bulk-result p{margin:.2rem 0}.batch{margin-bottom:1.25rem}.batch progress{width:100%;height:.6rem;accent-color:var(--ok)}
