:root{font-family:Inter,system-ui,sans-serif;color:#202124;background:#f4f5f7}*{box-sizing:border-box}body{margin:0}button{border:0;border-radius:7px;background:#c1121f;color:#fff;padding:10px 14px;font:inherit;cursor:pointer}button.secondary{background:#e5e7eb;color:#202124}button.danger{background:#7f1d1d}header{height:64px;padding:0 5vw;background:#111;color:#fff;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:800;font-size:1.15rem}.brand span{margin-left:7px}header nav,nav{display:flex;gap:10px;align-items:center}header button{background:transparent;padding:7px}.app{max-width:1100px;margin:30px auto;padding:0 20px}.hero{background:#111;color:#fff;padding:28px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.hero p{margin:0;color:#bbb}.hero h1{margin:5px 0 0}.hero em{font-style:normal;color:#86efac;font-size:.5em}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0}.stats article,.panel{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px}.stats b{display:block;font-size:2rem;color:#c1121f}.stats span,small{color:#6b7280}.panel{margin:20px 0}.row{padding:13px 0;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:16px}.row:last-child{border:0}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0008;display:grid;place-items:center;padding:20px;z-index:2}.modal form,.auth section{background:#fff;border-radius:12px;padding:28px;width:min(470px,100%)}label{display:block;font-weight:600;margin:13px 0}input,select,textarea{width:100%;padding:10px;margin-top:5px;border:1px solid #d1d5db;border-radius:6px;font:inherit}textarea{min-height:80px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.date-time{display:grid;grid-template-columns:1fr 1fr;gap:12px}.date-time label{margin-bottom:0}.auth{min-height:100vh;display:grid;place-items:center;background:linear-gradient(120deg,#111 0,#111 40%,#c1121f)}.auth section{text-align:left}.auth .brand{color:#c1121f}.auth h1{margin-bottom:0}.auth p{color:#6b7280}.auth form button{width:100%;margin-top:10px}.auth nav{margin-top:15px;justify-content:space-between}.auth nav button{padding:0;background:none;color:#c1121f;font-size:.9rem}.notice{color:#1769aa!important}.error{color:#b91c1c}.tabs{margin:15px 0}.tabs a{color:#c1121f;cursor:pointer;text-decoration:underline}@media(max-width:650px){header{height:auto;padding:14px;gap:10px;align-items:flex-start;flex-direction:column}.stats,.date-time{grid-template-columns:1fr}.hero{align-items:flex-start;gap:15px;flex-direction:column}header nav{flex-wrap:wrap}}.modal{z-index:1000!important}.modal form{max-height:calc(100vh - 40px);overflow-y:auto}.template-editor{display:grid;grid-template-columns:220px 1fr;gap:20px}.template-list{display:flex;flex-direction:column;gap:8px}.template-list button{text-align:left}@media(max-width:650px){.template-editor{grid-template-columns:1fr}}.row small{margin-left:8px}.row>div{display:flex;gap:8px;align-items:center}.table .row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center}.table .row>span small{margin:0;display:block}.table .row>span strong{white-space:nowrap}@media(max-width:650px){.table .row{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.table .row>div{width:100%;flex-wrap:wrap}}.email-preview{width:100%;height:420px;border:1px solid #d1d5db;border-radius:8px;background:#fff;margin:12px 0}.reservation-details{background:#fff;border-radius:12px;padding:28px;width:min(470px,100%)}.reservation-details.private-view .photo-fields,.reservation-details.private-view p:nth-of-type(3),.reservation-details.private-view p:nth-of-type(4){display:none}.reservation-details.cancelled-view .photo-fields,.reservation-details.cancelled-view .actions button[type=button]:first-child{display:none}.auth .brand{display:flex;align-items:center;gap:14px;color:#c1121f;font-size:1.45rem}.auth .brand img{width:104px!important;height:104px!important}.auth .brand span{margin-left:0}@media(max-width:650px){.auth .brand{font-size:1.1rem}.auth .brand img{width:78px!important;height:78px!important}}.turnstile-slot{margin-top:16px}.fc .reservation-refused.fc-daygrid-block-event{background:repeating-linear-gradient(135deg,#9ca3af 0,#9ca3af 7px,#e5e7eb 7px,#e5e7eb 14px)!important;border-color:#6b7280!important;color:#1f2937!important}.fc .reservation-cancelled.fc-daygrid-block-event{background:#c1121f!important;border-color:#991b1b!important;color:#fff!important}.fc .reservation-cancelled .fc-daygrid-event-dot{border-color:#c1121f!important}.fc .fc-daygrid-event-dot{border-color:#15803d!important}.fc .reservation-finished .fc-daygrid-event-dot{border-color:#6b7280!important}header{height:80px}header .brand{cursor:pointer}@media(max-width:650px){header{height:auto;padding:9px 14px;gap:8px}.brand{font-size:1rem}.brand img{width:52px!important;height:52px!important}header nav{width:100%;gap:4px;justify-content:space-between}header nav span{display:none}header nav button{padding:7px 5px;font-size:.84rem}.app{margin:14px auto;padding:0 12px}.hero{padding:18px}.hero h1{font-size:1.55rem}.hero button{width:100%}.stats{grid-template-columns:1fr;gap:8px;margin:12px 0}.stats article{padding:13px;display:flex;align-items:center;gap:12px}.stats b{font-size:1.5rem}.panel{padding:14px;margin:14px 0;overflow-x:auto}.fc .fc-toolbar{align-items:flex-start;gap:8px;flex-direction:column}.fc .fc-toolbar-chunk{display:flex;gap:4px;align-items:center}.fc .fc-button{padding:6px 8px;font-size:.78rem}.fc .fc-toolbar-title{font-size:1.1rem}.modal{padding:10px;place-items:end center}.modal form,.reservation-details{max-height:calc(100vh - 20px);padding:20px;overflow-y:auto}.actions{flex-wrap:wrap}.actions button{flex:1 1 140px}.tabs{gap:6px;flex-wrap:wrap}.tabs button{padding:8px 9px;font-size:.84rem}.template-editor{gap:12px}.template-list{flex-direction:row;overflow-x:auto}.template-list button{white-space:nowrap}.database-backup .actions{align-items:stretch}.database-backup .actions>*{width:100%}.email-preview{height:300px}}.photo-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.photo-fields input[type=file]{padding:7px}.photo-help{margin:0;color:#6b7280;font-size:.85rem}@media(max-width:650px){.photo-fields{grid-template-columns:1fr}}.reservation-photos{display:flex;gap:10px;margin-top:10px}.reservation-photo{display:flex;align-items:center;gap:6px;color:#202124;font-size:.8rem;text-decoration:none}.reservation-photo img{width:72px;height:54px;object-fit:cover;border:1px solid #d1d5db;border-radius:6px}.reservation-photo:hover img{border-color:#c1121f}.database-backup{max-width:1060px;margin:20px auto}.database-backup .actions{align-items:end;justify-content:flex-start;flex-wrap:wrap}.database-backup label{margin:0;min-width:220px}.database-backup input[type=file]{background:#fff}.admin-reservations-table{width:100%;overflow-x:auto}.admin-reservations-head,.admin-reservations-row{min-width:1020px;display:grid;grid-template-columns:1.15fr 1.25fr 1.25fr .6fr .8fr .8fr 1fr 1.2fr;gap:12px;align-items:center;padding:12px;border-bottom:1px solid #e5e7eb}.admin-reservations-head{background:#f4f5f7;color:#4b5563;font-size:.8rem;font-weight:700;text-transform:uppercase}.admin-reservations-row strong{overflow:hidden;text-overflow:ellipsis}.reservation-actions{display:flex;gap:7px;flex-wrap:wrap}.reservation-actions button{padding:7px 9px;font-size:.85rem}.status,.payment-status{font-weight:700}.status-pending_payment,.payment-pending,.payment-refund_pending{color:#b45309}.status-confirmed,.payment-completed{color:#15803d}.status-cancelled,.payment-cancelled,.payment-unknown{color:#6b7280}.status-refused,.payment-failed{color:#b91c1c}.payment-refunded{color:#1769aa}.pagination{justify-content:center;margin-top:18px;flex-wrap:wrap}.pagination span{color:#4b5563}.pagination button:disabled{cursor:not-allowed;opacity:.5}.button-spinner{display:inline-block;width:16px;height:16px;margin-right:8px;border:2px solid #fff8;border-top-color:#fff;border-radius:50%;vertical-align:-3px;animation:button-spin .7s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}button:disabled{cursor:not-allowed;opacity:.65}
