.calendar-view{max-width:1420px;margin:auto;padding:34px max(4vw,28px) 70px}
.calendar-hero{padding:34px 40px;background:linear-gradient(128deg,#173f31,#0f2e24);color:#fff;display:flex;align-items:end;justify-content:space-between;gap:28px;border-top:4px solid var(--gold)}
.calendar-hero .eyebrow{color:#a9c8ba}.calendar-hero h2{font:500 clamp(31px,4vw,52px)/1.05 Georgia,serif;margin:8px 0 12px}.calendar-hero p{max-width:760px;margin:0;color:#c5d8cf}
.calendar-review{text-align:right;display:grid;gap:3px;min-width:220px}.calendar-review span,.calendar-review small{color:#a9c8ba}.calendar-review strong{font:500 21px Georgia,serif}
.calendar-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);margin:22px 0}.calendar-metrics article{background:#fff;padding:21px 24px;display:grid;gap:4px}.calendar-metrics span{color:var(--muted);font-size:12px}.calendar-metrics strong{font:500 30px Georgia,serif}.calendar-guard-metric strong{color:var(--red)}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(310px,.8fr);gap:22px;align-items:start}.calendar-month-panel{min-width:0}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.calendar-toolbar h3{margin:3px 0;text-transform:capitalize}.calendar-toolbar-actions{display:flex;gap:7px;align-items:center}.calendar-arrow{font-size:22px;line-height:1;padding:5px 13px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{border:1px solid var(--line);border-bottom:0;background:#f2f4f1}.calendar-weekdays span{text-align:center;padding:10px 4px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-day{position:relative;min-height:94px;padding:10px;background:#fff;color:var(--ink);border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;font-weight:500;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.calendar-day:hover{background:#f5f7f4}.calendar-day.is-empty{cursor:default;background:#f7f7f4}.calendar-day.is-weekend:not(.is-empty){background:#fbfaf7}.calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--gold)}.calendar-day.is-selected{background:#e6f0eb;box-shadow:inset 0 0 0 2px var(--green)}.calendar-day.has-events .calendar-day-number{font-weight:850;color:var(--green)}.calendar-day.has-guard .calendar-day-number{color:var(--red)}.calendar-day-number{font-size:14px}.calendar-day-markers{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.calendar-event-dot{width:9px;height:9px;border-radius:50%;background:var(--green);display:block}.calendar-day.has-guard .calendar-event-dot{background:var(--red)}.calendar-event-count{font-size:10px;color:var(--muted);font-weight:750}.calendar-event-preview{font-size:10px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:11px}.calendar-legend span{display:flex;align-items:center;gap:7px}.legend-dot,.legend-guard{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--green)}.legend-guard{background:var(--red)}
.calendar-day-panel{position:sticky;top:18px}.calendar-day-panel h3{margin-bottom:5px;text-transform:capitalize}.calendar-day-summary{color:var(--muted);margin:0 0 18px}.calendar-day-events{display:grid;gap:10px}.calendar-event-card{width:100%;padding:15px;text-align:left;background:#f6f7f4;color:var(--ink);border:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:5px 12px}.calendar-event-card:hover{border-color:var(--green);background:#edf4f0}.calendar-event-card strong{font-size:14px}.calendar-event-card small{color:var(--muted);font-weight:500}.calendar-event-card .calendar-status{grid-column:2;grid-row:1/3;align-self:center}.calendar-no-events{padding:22px 12px;border:1px dashed #bdc6c0;color:var(--muted);text-align:center}.calendar-rule-summary{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.calendar-rule-summary p{margin:5px 0;color:var(--muted)}
.calendar-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:750;letter-spacing:.03em;background:#ecefeb;color:#4a554f}.calendar-status.is-imminent,.calendar-status.is-pending{background:#f6ead0;color:#765312}.calendar-status.is-upcoming{background:#e5eee9;color:#24523f}.calendar-status.is-completed{background:#e9ecea;color:#5b645f}.calendar-source-link{color:var(--green);font-weight:700;text-decoration-thickness:1px;text-underline-offset:3px}.calendar-effect{font-size:12px;font-weight:750;color:var(--green)}.calendar-effect.is-blocked{color:var(--red)}
.calendar-unavailable{padding:15px 17px;margin-bottom:16px;background:#f8e6e3;border-left:4px solid var(--red);color:#6f2e28;font-weight:650}
.calendar-event-dialog{width:min(660px,calc(100vw - 36px));max-width:660px}.calendar-event-subtitle{color:var(--muted);margin-top:-8px}.calendar-event-detail{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);margin:20px 0}.calendar-event-detail article{background:#fff;padding:16px;display:grid;gap:5px}.calendar-event-detail span{font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.calendar-event-detail strong{font-size:14px}.calendar-event-detail .calendar-detail-wide{grid-column:1/-1}.calendar-event-detail p{margin:0;color:var(--muted)}
@media(max-width:1000px){.calendar-layout{grid-template-columns:1fr}.calendar-day-panel{position:static}.calendar-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-toolbar-actions{width:100%;flex-wrap:wrap}.calendar-day{min-height:72px;padding:7px}.calendar-event-preview{display:none}.calendar-weekdays span{font-size:9px}.calendar-event-detail{grid-template-columns:1fr}.calendar-event-detail .calendar-detail-wide{grid-column:auto}}
@media(max-width:560px){.calendar-view{padding-left:18px;padding-right:18px}.calendar-hero{padding:28px 24px;align-items:start;flex-direction:column}.calendar-review{text-align:left}.calendar-metrics{grid-template-columns:1fr}.calendar-day{min-height:58px}.calendar-event-count{display:none}}
