.reservations-panel{overflow:hidden;padding:0!important}
.reservations-panel .panel-head{margin:0;padding:20px 22px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fdfbf7)}
.reservations-panel .panel-head small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.calendar-controls{display:flex;align-items:center;gap:7px}
.calendar-controls button{height:32px;border:1px solid #e1ddd5;border-radius:8px;background:#fff;color:var(--navy);padding:0 10px;font-size:11px;font-weight:700;transition:.16s ease}
.calendar-controls button:hover{border-color:var(--gold);background:#fffaf0;transform:translateY(-1px)}
.calendar-controls button:focus-visible,.calendar-event:focus-visible{outline:3px solid rgba(217,163,60,.28);outline-offset:2px}
.calendar-controls strong{min-width:150px;color:var(--navy);font:700 14px "DM Sans",sans-serif;text-align:center;text-transform:capitalize}
.operational-calendar{overflow-x:auto;background:#fff}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));min-width:784px}
.calendar-weekdays{border-bottom:1px solid var(--line);background:#faf8f4}
.calendar-weekdays span{padding:9px 12px;color:#879198;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.calendar-day{min-height:126px;padding:9px;border-right:1px solid #eeeae3;border-bottom:1px solid #eeeae3;background:#fff;transition:background .16s ease}
.calendar-day:nth-child(7n){border-right:0}
.calendar-day.outside{background:#fbfaf8}
.calendar-day.has-events:hover{background:#fffdf8}
.calendar-day-number{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#7d878d;font-size:11px;font-weight:700}
.calendar-day-number b{display:grid;place-items:center;min-width:18px;height:18px;border-radius:99px;background:#f4ead2;color:#805d17;font-size:9px}
.calendar-day.today .calendar-day-number span{display:grid;place-items:center;width:24px;height:24px;margin:-3px;border-radius:50%;background:var(--navy);color:#fff}
.calendar-day-events{display:grid;gap:5px}
.calendar-event{width:100%;min-width:0;border:1px solid #dfe8ed;border-left:3px solid var(--navy-2);border-radius:7px;background:#f7fbfd;padding:7px;text-align:left;color:var(--navy);transition:.16s ease}
.calendar-event.volta{border-color:#eadcb9;border-left-color:var(--gold);background:#fffaf0}
.calendar-event:hover{transform:translateY(-1px);box-shadow:0 5px 13px rgba(8,38,62,.09)}
.calendar-event-top{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:3px}
.calendar-event-top b{font-size:8px;letter-spacing:.8px;color:var(--navy-2)}
.calendar-event.volta .calendar-event-top b{color:#936b18}
.calendar-event-time{font-size:9px;font-weight:700;color:#65747c}
.calendar-event strong,.calendar-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-event strong{font-size:10px;line-height:1.3}
.calendar-event small{margin-top:2px;color:#66747c;font-size:8.5px;line-height:1.3}
.calendar-event-place::before{content:"● ";color:var(--gold);font-size:6px}
.calendar-empty{padding:34px;text-align:center;color:var(--muted);font-size:12px}
.calendar-preview-modal{width:min(680px,100%);padding:28px}
.calendar-preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.calendar-preview-heading h2{font-size:28px}.calendar-preview-heading p{margin:5px 0 0;color:var(--muted);font-size:11px}
.calendar-preview-leg{flex:none;border-radius:99px;padding:6px 10px;background:#e9f2f7;color:var(--navy-2);font-size:9px;font-weight:800;letter-spacing:1px}
.calendar-preview-leg.volta{background:#fff3d7;color:#8a6418}
.calendar-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}
.calendar-detail{min-width:0;padding:13px 14px;background:#fff}
.calendar-detail span,.calendar-preview-notes span{display:block;margin-bottom:4px;color:#8a959b;font-size:8px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}
.calendar-detail strong{display:block;color:var(--navy);font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.calendar-preview-notes{margin-top:12px;padding:14px;border:1px solid #eadfca;border-radius:11px;background:#fffaf0}
.calendar-preview-notes p{margin:0;color:#4e5e67;font-size:11px;line-height:1.55;white-space:pre-wrap}
.calendar-preview-actions{display:flex;justify-content:flex-end;margin-top:18px}
@media(max-width:760px){
  .reservations-panel .panel-head{align-items:flex-start;flex-direction:column;padding:17px}
  .calendar-controls{width:100%;display:grid;grid-template-columns:auto 32px 1fr 32px}
  .calendar-controls button{padding:0 8px}.calendar-controls strong{min-width:0;font-size:12px}
  .calendar-weekdays{display:none}.calendar-grid{min-width:0;display:block;padding:8px 12px 14px}
  .calendar-day{display:none;min-height:0;border:0;border-bottom:1px solid var(--line);padding:11px 2px}
  .calendar-day.has-events{display:grid;grid-template-columns:36px 1fr;gap:8px}
  .calendar-day-number{align-content:start;justify-content:center;margin:0;padding-top:3px}.calendar-day-number b{display:none}
  .calendar-day-events{min-width:0}.calendar-event strong{font-size:11px}.calendar-event small{font-size:9px}
  .calendar-grid:has(.has-events) .calendar-empty{display:none}
  .calendar-preview-modal{padding:24px 17px}.calendar-preview-heading h2{font-size:23px}.calendar-preview-grid{grid-template-columns:1fr}
}
