.visual-calendar{background:#fff;border:1px solid #cad8e3;border-radius:16px;padding:20px;margin:0 0 24px;color:#18344e;min-width:0}
.visual-calendar *{box-sizing:border-box}.vc-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.vc-eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#55728a}.visual-calendar h2{font-size:23px;margin:5px 0}.vc-heading p,.vc-footnote,[data-vc-status]{font-size:12px;color:#52677a;line-height:1.6}.visual-calendar button,.vc-toolbar input[type=month]{font:inherit;border:1px solid #cbd8e3;border-radius:8px;background:#fff;color:#18344e;min-height:44px;padding:8px 12px;cursor:pointer}.visual-calendar button:disabled{cursor:default}.visual-calendar button:focus-visible,.visual-calendar a:focus-visible,.visual-calendar input:focus-visible{outline:3px solid #ef9f40;outline-offset:2px}.vc-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 0}.vc-toolbar label{display:flex;align-items:center;gap:8px;font-size:13px}.vc-house{margin-left:auto;min-height:44px}.vc-house input{width:18px;height:18px}.vc-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;font-weight:700;padding:8px 0}.vc-available{color:#146536}.vc-booked{color:#aa2536}.vc-blocked{color:#576371}.vc-restricted{color:#805200}.vc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #cfdae4;border-left:1px solid #cfdae4;border-radius:10px;overflow:hidden}.vc-weekday{background:#163b5d;color:#fff;text-align:center;padding:12px 2px;font-size:12px;font-weight:700}.vc-day,.vc-blank{border-right:1px solid #cfdae4;border-bottom:1px solid #cfdae4;padding:8px 5px;min-width:0}.vc-blank{background:#f5f8fa}.visual-calendar .vc-date{font-size:13px;margin:0 0 8px;text-align:center;color:#18344e;line-height:1.5}.vc-today{background:#eff8ff;box-shadow:inset 0 0 0 2px #3780b7}.visual-calendar .vc-room{display:flex;align-items:center;justify-content:space-between;gap:3px;width:100%;min-height:36px;margin:4px 0;padding:5px 4px;border:0;border-radius:5px;font-size:10px;line-height:1.3;text-decoration:none;text-align:left}.vc-room-name{font-weight:700;overflow-wrap:anywhere}.vc-badge{font-size:9px;font-weight:700;text-align:center;padding:4px;border-radius:4px;max-width:61%}.vc-room.vc-available{background:#e8f5ec}.vc-available .vc-badge{background:#18793e;color:#fff}.vc-room.vc-booked{background:#fff0f1}.vc-booked .vc-badge{background:#c33443;color:#fff}.vc-room.vc-blocked{background:#eef1f4}.vc-blocked .vc-badge{background:#626e7c;color:#fff}.vc-room.vc-restricted{background:#fff5df}.vc-restricted .vc-badge{background:#805800;color:#fff}.visual-calendar .vc-room:not(:disabled):hover{box-shadow:inset 0 0 0 2px currentColor}.vc-past{display:block;font-size:10px;color:#68798a;text-align:center}.vc-footnote{margin-bottom:0}.vc-week-nav{display:none}#calendar-operations>summary{padding:16px;background:#edf3f8;border-radius:10px;cursor:pointer;font-weight:700;margin-bottom:12px}
@media(max-width:900px){.visual-calendar{padding:14px}.vc-week-nav{display:flex;align-items:center;justify-content:space-between;margin:12px 0;gap:10px}.vc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border:0;overflow:visible}.vc-weekday,.vc-blank,.vc-mobile-hidden{display:none}.vc-day{border:1px solid #cfdae4;border-radius:9px;padding:10px}.visual-calendar .vc-room{font-size:12px;min-height:44px;padding:6px}.vc-badge{font-size:11px}.visual-calendar .vc-date{font-size:14px}}
@media(max-width:520px){.vc-heading{align-items:flex-start;flex-direction:column;gap:4px}.visual-calendar h2{font-size:21px}.vc-heading>button{align-self:flex-end}.vc-grid{grid-template-columns:1fr}.vc-house{margin-left:0;width:100%}.vc-toolbar{gap:6px}.vc-toolbar label{font-size:12px}.vc-toolbar input[type=month]{max-width:155px}.vc-legend{font-size:11px;gap:8px 12px}}
@media(min-width:901px) and (max-width:1200px){.visual-calendar[data-admin="1"] .vc-room{flex-direction:column;justify-content:center;gap:4px}.visual-calendar[data-admin="1"] .vc-badge{max-width:100%}.visual-calendar[data-admin="1"] .vc-room-name{overflow-wrap:normal}}

.booking-page .journey-step>.visual-calendar{margin:20px 0 12px;box-shadow:none}.booking-page .journey-step>.visual-calendar .vc-heading h2{font-size:18px}.booking-page .journey-step>.visual-calendar .vc-eyebrow{display:none}
@media(max-width:900px){.booking-page .booking-mini-summary{position:static}.booking-page .journey-step>.visual-calendar{padding:12px}.vc-heading>button{flex-shrink:0}}

/* Compact controls: override generic booking form label/input spacing. */
.visual-calendar .vc-heading{align-items:flex-start;gap:12px}.visual-calendar .vc-heading p{margin:6px 0 0;max-width:620px}.visual-calendar .vc-heading>button{flex:0 0 auto;white-space:nowrap;align-self:flex-start}
.visual-calendar .vc-toolbar{display:grid;grid-template-columns:44px minmax(130px,190px) 44px auto;justify-content:start;align-items:center;gap:8px;padding:16px 0 12px}
.visual-calendar .vc-toolbar>button{margin:0}.visual-calendar .vc-month-label{display:block;margin:0;min-width:0}.visual-calendar .vc-month-label input{display:block;width:100%;max-width:none;margin:0;min-height:44px;padding:8px;font-size:13px}
.vc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vc-filters{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid #e8eef3;border-bottom:1px solid #e8eef3}
.visual-calendar .vc-house{display:flex;align-items:center;gap:8px;margin:0;min-height:32px;width:auto;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.visual-calendar .vc-house input{display:inline-block;flex:0 0 18px;width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:#18793e}.visual-calendar .vc-legend{padding:0;gap:8px 12px;font-size:11px}.vc-legend span{white-space:nowrap}
.visual-calendar [data-vc-status]{margin:10px 0;font-size:11px}.visual-calendar .vc-week-nav{margin:12px 0 0}.visual-calendar .vc-week-nav strong{font-size:12px}.visual-calendar .vc-room{min-height:44px}.visual-calendar .vc-badge{font-size:9px}
@media(max-width:900px){.visual-calendar .vc-badge{font-size:11px}.visual-calendar .vc-heading{flex-direction:row}.visual-calendar .vc-heading h2{font-size:18px}.vc-filters{justify-content:flex-start}.visual-calendar .vc-house{min-height:36px}}
@media(max-width:520px){.visual-calendar .vc-toolbar{grid-template-columns:40px minmax(0,1fr) 40px;justify-content:stretch;gap:6px}.visual-calendar .vc-toolbar>[data-vc-today]{grid-column:1/-1;justify-self:start;min-height:32px;padding:4px 0;border:0;background:transparent;font-size:12px;color:#245b85}.visual-calendar .vc-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.visual-calendar .vc-heading p{grid-column:1/-1}.visual-calendar .vc-heading>button{font-size:12px;padding:8px}.visual-calendar .vc-heading h2{line-height:1.4}.visual-calendar .vc-legend{gap:6px 12px}.visual-calendar .vc-filters{gap:6px;padding:8px 0}.visual-calendar .vc-toolbar{padding:12px 0 8px}}

.visual-calendar .vc-intro{font-size:12px;color:#52677a;line-height:1.6;margin:6px 0 0}.visual-calendar .vc-heading{align-items:center}.visual-calendar .vc-heading>button{align-self:center}
@media(min-width:901px) and (max-width:1200px){.booking-page .visual-calendar .vc-room{flex-direction:column;gap:4px;justify-content:center}.booking-page .visual-calendar .vc-badge{max-width:100%}.booking-page .visual-calendar .vc-room-name{overflow-wrap:normal}}

.vc-compact{display:none}
@media(max-width:900px){
.visual-calendar .vc-grid,.visual-calendar .vc-week-nav{display:none}
.visual-calendar .vc-compact{display:block}
.vc-compact-hint,.vc-month-legend,.vc-detail-hint{font-size:11px;line-height:1.5;color:#52677a;margin:10px 0}
.vc-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.vc-month-weekday{text-align:center;background:#163b5d;color:white;font-size:11px;padding:8px 0;border-radius:4px;font-weight:700}
.visual-calendar .vc-month-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:54px;padding:5px 0;border-radius:6px;border:1px solid transparent;margin:0;font-size:12px}
.vc-month-day small{font-size:9px;line-height:1.2;white-space:nowrap}.vc-month-day strong{font-size:13px}
.visual-calendar .vc-month-all{background:#e4f4e9;color:#145e32;border-color:#badcc7}.visual-calendar .vc-month-some{background:#fff2d8;color:#805000;border-color:#edcf92}.visual-calendar .vc-month-none{background:#ffe9eb;color:#a22535;border-color:#e9bfc5}.visual-calendar .vc-month-past{background:#f0f3f5;color:#707b88}
.visual-calendar .vc-month-day[aria-pressed="true"]{outline:2px solid #214f7c;outline-offset:0;box-shadow:inset 0 0 0 1px white}
.vc-date-detail{margin-top:16px;padding-top:12px;border-top:1px solid #d5e0e8}.visual-calendar .vc-date-detail h3{font-size:15px;margin:0;color:#18344e}.visual-calendar .vc-date-detail .vc-room{font-size:13px;min-height:46px;padding:8px 10px}.visual-calendar .vc-date-detail .vc-badge{font-size:11px}
}
@media(max-width:420px){.booking-page .journey-step>.visual-calendar{padding:10px}.vc-month-grid{gap:3px}.visual-calendar .vc-month-day{min-height:52px}.vc-month-day small{font-size:8px}}

@media(max-width:900px){.visual-calendar .vc-filters .vc-legend{display:none}}
