.shoot-calendar { padding-block:28px; color:var(--ink); }
.shoot-calendar h2 { font:800 clamp(1.5rem,3vw,2rem)/1.2 'Manrope',sans-serif; margin:0 0 10px; }
.shoot-calendar p { margin:0; }
.calendar-heading { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:18px; margin-bottom:24px; }
.calendar-heading .eyebrow { font-size:.875rem; color:var(--red); margin:0 0 10px; }
.calendar-heading p:not(.eyebrow) { color:var(--muted); max-width:620px; font-size:1rem; }
.calendar-zone { font-size:.875rem; color:var(--teal-deep); background:#edf4ef; border:1px solid #ccd6ce; padding:8px 12px; border-radius:5px; white-space:nowrap; }
.calendar-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr); gap:28px; align-items:start; }
.calendar-month { min-width:0; border:1px solid var(--line); background:#fff; border-radius:10px; overflow:hidden; }
.calendar-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding:18px; border-bottom:1px solid var(--line); }
.calendar-toolbar h3 { font:700 1.2rem/1.3 'Manrope',sans-serif; margin:0; }
.calendar-controls { display:flex; gap:6px; }
.shoot-calendar button { font:inherit; font-size:.9375rem; cursor:pointer; }
.calendar-controls button, .calendar-refresh { min-height:40px; padding:7px 10px; background:transparent; border:1px solid var(--line); color:var(--teal-deep); border-radius:5px; }
.calendar-weekdays, .calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays span { text-align:center; font-size:.8125rem; color:var(--muted); padding:14px 0 9px; }
.calendar-days { padding:0 7px 9px; gap:3px; }
.calendar-days button { position:relative; border:1px solid transparent; background:#fff; min-width:0; min-height:65px; border-radius:6px; padding:8px 2px; display:flex; flex-direction:column; gap:7px; align-items:center; justify-content:center; color:var(--ink); }
.calendar-days button:hover { background:#eef4ef; }
.calendar-days button.is-past { color:#858981; }
.calendar-days button.is-today { border-color:#aac3ba; }
.calendar-days button[aria-pressed="true"] { background:var(--teal-deep); color:#fff; }
.calendar-day-mark { display:block; height:5px; width:23px; border-radius:2px; background:transparent; }
.calendar-days button.has-busy .calendar-day-mark { background:#c2c8c1; }
.calendar-days button.has-own .calendar-day-mark { background:#358b80; }
.calendar-days button[aria-pressed="true"] .calendar-day-mark { background:#e9e8c1; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:16px; padding:14px 18px; border-top:1px solid var(--line); font-size:.875rem; color:var(--muted); }
.calendar-legend span { display:flex; align-items:center; gap:7px; }
.calendar-legend i { height:5px; width:20px; background:#c2c8c1; display:inline-block; border-radius:2px; }
.calendar-legend .legend-own { background:#358b80; }
.calendar-day-panel h3 { margin:0 0 14px; font:700 1.25rem/1.4 'Manrope',sans-serif; }
.calendar-events { display:grid; gap:10px; margin-bottom:24px; }
.calendar-event { padding:14px 16px; background:#f1f2ed; border-left:3px solid #b3bbb0; border-radius:0 6px 6px 0; overflow-wrap:anywhere; }
.calendar-event.is-own { border-color:var(--teal); background:#edf5ef; }
.calendar-event strong, .calendar-event time { display:block; font-size:.9375rem; }
.calendar-event time { color:var(--muted); margin-bottom:5px; }
.calendar-event p { margin-top:5px; font-size:.9375rem; white-space:pre-wrap; }
.calendar-event .calendar-cancel { background:transparent; border:0; border-bottom:1px solid currentColor; color:#a51b22; padding:3px 0; margin-top:10px; min-height:32px; font-size:.875rem; }
.calendar-empty { padding:16px; color:var(--muted); border:1px dashed #c9d1c6; font-size:.9375rem; border-radius:6px; }
.calendar-booking-form { border-top:1px solid var(--line); padding-top:20px; display:grid; gap:13px; }
.calendar-booking-form h4 { margin:0; font:700 1.1rem/1.4 'Manrope',sans-serif; }
.calendar-booking-form label { display:flex; flex-direction:column; gap:6px; font-size:.875rem; font-weight:600; min-width:0; }
.calendar-booking-form input, .calendar-booking-form select, .calendar-booking-form textarea { box-sizing:border-box; width:100%; min-width:0; min-height:44px; font:inherit; font-size:1rem; padding:10px; border:1px solid #bdcbbf; border-radius:5px; background:#fff; color:var(--ink); }
.calendar-booking-form textarea { resize:vertical; }
.calendar-form-times { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.calendar-booking-form .calendar-submit { min-height:46px; background:var(--teal-deep); color:#fff; border:0; border-radius:5px; font-weight:700; padding:12px 18px; }
.shoot-calendar button:disabled { opacity:.55; cursor:not-allowed; }
.shoot-calendar :focus-visible { outline:3px solid #b71922; outline-offset:3px; }
.calendar-feedback { min-height:1.4em; font-size:.9375rem; color:var(--muted); margin-top:14px !important; }
.calendar-feedback[data-type="error"], .calendar-validation[data-type="error"] { color:#a11e25; }
.calendar-feedback[data-type="success"] { color:var(--teal-deep); }
.calendar-validation { font-size:.875rem; color:var(--muted); }
.calendar-refresh-row { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:16px 0 20px; font-size:.875rem; color:var(--muted); }
.calendar-admin-section { border-block:1px solid var(--line); margin:26px 0; }
.calendar-admin-section > summary { cursor:pointer; padding:18px 0; font:700 1.25rem/1.4 'Manrope',sans-serif; color:var(--teal-deep); }
@media(max-width:900px) { .calendar-layout { grid-template-columns:minmax(0,1fr); } .calendar-days button { min-height:56px; } }
@media(max-width:480px) { .calendar-form-times { grid-template-columns:1fr; } .calendar-toolbar { padding:14px; } .calendar-toolbar h3 { font-size:1.05rem; } .calendar-days button { min-height:49px; } .calendar-zone { white-space:normal; } .calendar-controls button { padding:8px; font-size:.875rem; } }
