:root{--bg:#f7fafc;--card:#fff;--muted:#6b7280;--accent:#2563eb}#__next,body,html{height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:var(--bg);color:#111827}.container{max-width:960px;margin:24px auto;padding:0 16px}table{width:100%;border-collapse:collapse;background:var(--card);box-shadow:0 1px 2px rgba(16,24,40,.05)}thead th{text-align:left;padding:12px 16px;border-bottom:1px solid #e5e7eb;color:var(--muted);font-size:13px}tbody td{padding:12px 16px;border-bottom:1px solid #f3f4f6}button{background:var(--accent);color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer}button[disabled]{opacity:.5;cursor:not-allowed}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center}.modal-card{background:var(--card);padding:20px;border-radius:8px;width:100%;max-width:480px;box-shadow:0 10px 25px rgba(2,6,23,.08)}input[type=email],input[type=text]{width:100%;padding:8px 10px;border:1px solid #e5e7eb;border-radius:6px}small{color:var(--muted)}.month-group{margin-bottom:16px}.month-group h4{margin:6px 0}.month-row{display:flex;justify-content:space-between;gap:8px}.month-badge{flex:1 1;margin:0 4px;padding:8px 10px;border-radius:6px;border:1px solid #ddd;display:flex;gap:8px;align-items:center;cursor:pointer;background:#eef6ff;color:#111;width:100%}.month-badge.booked{background:#dff0d8}.month-badge.disabled{background:#f8d7da;cursor:not-allowed;opacity:.9}.month-badge .label{font-size:13px;font-weight:600;color:#111;flex:1 1 auto}.month-badge .meta{font-size:12px;color:#111;margin-left:12px;white-space:nowrap}.calendar-shell{display:flex;gap:24px;max-width:980px;margin:0 auto;padding:0 16px;align-items:flex-start}.calendar-main{flex:1 1 auto;min-width:0}.toast{position:fixed;top:16px;right:16px;background:#333;color:#fff;padding:8px 12px;border-radius:6px;z-index:1000;display:inline-flex;align-items:center;gap:8px}.toast button{background:transparent;color:#fff;border:none;cursor:pointer;padding:4px}button:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}.btn-secondary{background:#6b7280}.btn-danger{background:#e53e3e}.info-btn{width:32px;height:32px;border-radius:50%;background:rgba(37,99,235,.08);color:var(--accent);border:none;display:inline-flex;align-items:center;justify-content:center;font-weight:600;cursor:pointer;transition:background .15s ease,transform .12s ease}.info-btn:hover{background:rgba(37,99,235,.14);transform:translateY(-1px)}@keyframes info-pulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,.12)}50%{transform:scale(1.03);box-shadow:0 6px 18px 0 rgba(37,99,235,.06)}to{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,0)}}.info-btn.pulsing{animation:info-pulse 5s ease-in-out infinite}.instructions{overflow:hidden;max-height:0;opacity:0;transform:translateY(-6px);transition:max-height .36s cubic-bezier(.2,.9,.2,1),opacity .24s ease,transform .26s ease;will-change:max-height,opacity,transform}.instructions.open{opacity:1;transform:translateY(0);margin-top:8px;max-height:800px}.instructions.closed{opacity:0;transform:translateY(-6px);margin-top:0;max-height:0}.table-responsive{overflow-x:auto}@media (max-width:720px){.calendar-shell{flex-direction:column;padding:0 12px}.month-row{flex-wrap:wrap}.month-badge{flex:none;min-width:120px}}.header-row{display:flex;align-items:center;gap:8px;justify-content:space-between}.page-title{margin:0;flex:1 1 auto;text-align:center;font-size:20px;font-weight:700}.header-row .info-btn{flex:0 0 auto}.bookings-panel,.legend{margin-bottom:12px}.bookings-panel{border:1px solid #eee;padding:12px;border-radius:6px;background:#fafafa}.panel-title{margin:0 0 8px}.bookings-list{display:flex;flex-direction:column;gap:8px}.booking-item{justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #f4f4f4}.booking-actions,.booking-item{display:flex;align-items:center}.booking-actions{gap:8px}.view-toggle{margin-bottom:12px;display:flex;gap:8px;align-items:center}.month-col{flex:1 1}.booking-badge{display:inline-block;background:rgba(37,99,235,.08);color:#0b4da0;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:600}.month-label{margin-top:6px;text-align:left}.spinner{display:inline-block;width:14px;height:14px;border:2px solid hsla(0,0%,100%,.9);border-top-color:hsla(0,0%,100%,.25);border-radius:50%;animation:spin .9s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}