.calendar-page { padding-bottom:72px; }
.calendar-hero { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:24px; align-items:stretch; }
.calendar-hero-card { display:flex; flex-direction:column; justify-content:center; gap:8px; }
.calendar-hero-card strong { font-size:1.25rem; line-height:1.2; }
.calendar-hero-card span { color:var(--accent); font-weight:800; }
.calendar-shell { display:grid; grid-template-columns:minmax(0,1fr) 370px; gap:24px; margin-top:24px; align-items:start; }
.calendar-main,.calendar-sidebar { min-width:0; }
.calendar-day-events-panel { position:sticky; top:112px; }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.calendar-current { text-align:center; }
.calendar-current h2 { margin:4px 0 0; font-size:clamp(1.9rem,3vw,3rem); }
.calendar-nav-button { min-width:120px; padding:12px 16px; border-radius:999px; border:1px solid rgba(226,176,92,.45); color:var(--accent); text-decoration:none; text-align:center; font-weight:900; background:rgba(226,176,92,.08); }
.calendar-nav-button:hover { background:rgba(226,176,92,.16); }
.calendar-grid-card { overflow:hidden; }
.calendar-weekdays,.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.calendar-weekdays { margin-bottom:10px; }
.calendar-weekdays span { text-align:center; color:var(--muted); font-size:.72rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.calendar-grid { gap:8px; }
.calendar-day { min-height:112px; padding:10px; border-radius:16px; display:flex; flex-direction:column; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.075); }
.calendar-day.is-empty { opacity:.22; }
.calendar-day-number { width:100%; color:var(--text); font-weight:900; text-align:left; }
.calendar-day.has-events { justify-content:center; align-items:center; gap:12px; border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.052); cursor:pointer; }
.calendar-day.has-events:hover,.calendar-day.has-events.is-selected { border-color:rgba(226,176,92,.62); box-shadow:inset 0 0 0 1px rgba(226,176,92,.25); background:rgba(255,255,255,.075); }
.calendar-event-count { display:block; width:100%; margin:0; padding:0; border:0; background:transparent; color:var(--accent); font-size:.78rem; font-weight:900; text-align:center; line-height:1.25; cursor:pointer; }
.calendar-event-count::after { content:"View details"; display:block; margin-top:4px; padding:0; border:0; color:var(--muted); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.calendar-event-list { display:flex; flex-direction:column; gap:14px; margin-top:18px; }
.calendar-event-card { padding:16px; border-radius:18px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.08); }
.calendar-event-type { margin-bottom:5px; color:var(--accent); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.calendar-event-card h3 { margin:0; font-size:1rem; line-height:1.25; }
.calendar-event-card p { margin:8px 0 0; color:var(--muted); line-height:1.45; }
.calendar-view-more { margin-top:13px; padding:8px 13px; border-radius:999px; border:1px solid rgba(226,176,92,.45); background:rgba(226,176,92,.1); color:var(--accent); font-weight:900; cursor:pointer; }
.calendar-view-more:hover { background:rgba(226,176,92,.18); }
.calendar-modal { display:none; position:fixed; inset:0; z-index:10000; }
.calendar-modal.is-open { display:block; }
.calendar-modal-open { overflow:hidden; }
.calendar-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.74); backdrop-filter:blur(8px); }
.calendar-modal-card { position:relative; width:min(1120px,calc(100vw - 48px)); max-height:92vh; overflow:auto; margin:4vh auto; padding:30px; border-radius:24px; background:#07131d; border:1px solid rgba(226,176,92,.28); box-shadow:0 30px 90px rgba(0,0,0,.45); }
.calendar-modal-close { position:absolute; top:16px; right:18px; border:0; background:transparent; color:var(--text); font-size:2rem; cursor:pointer; line-height:1; }
.calendar-modal-header { padding-right:44px; margin-bottom:18px; }
.calendar-modal-header h2 { margin:8px 0 0; font-size:clamp(2rem,4vw,3.3rem); line-height:1.05; }
.calendar-modal-date { margin:12px 0 0; color:var(--accent)!important; font-weight:900; }
.calendar-modal-subtitle { margin:10px 0 0; color:var(--muted); font-size:1.05rem; line-height:1.4; max-width:780px; }
.calendar-chart-wrap { margin:20px 0 18px; overflow:hidden; border-radius:22px; background:#02070c; border:1px solid rgba(255,255,255,.1); }
.calendar-chart-svg svg { display:block; width:100%; height:auto; }
.calendar-chart-image { display:block; width:100%; height:auto; }
.calendar-chart-placeholder { padding:60px 24px; text-align:center; color:var(--muted); }
.calendar-facts-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 24px; }
.calendar-fact-card,.calendar-advice-card { padding:16px; border-radius:16px; background:rgba(255,255,255,.045); border:1px solid rgba(255,255,255,.09); }
.calendar-fact-card span,.calendar-advice-card span { display:block; margin-bottom:7px; color:#9fbfe0; font-size:.78rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.calendar-fact-card p,.calendar-advice-card p { margin:0; color:var(--text); line-height:1.35; font-weight:700; }
.calendar-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:24px; align-items:start; }
.calendar-detail-section { padding-top:2px; margin-top:22px; }
.calendar-detail-section:first-child { margin-top:0; }
.calendar-detail-section h3,.calendar-equipment-panel h3 { margin:0 0 8px; font-size:1.25rem; }
.calendar-detail-section p { margin:0; color:var(--muted); line-height:1.65; font-size:1rem; }
.calendar-equipment-panel { position:sticky; top:0; display:flex; flex-direction:column; gap:12px; padding:18px; border-radius:20px; background:rgba(96,165,250,.055); border:1px solid rgba(96,165,250,.16); }
.calendar-equipment-panel .calendar-advice-card { background:rgba(255,255,255,.04); }
.calendar-source-link { display:inline-block; margin-top:4px; color:var(--accent); font-weight:900; text-decoration:none; }
.calendar-source-link:hover { text-decoration:underline; }
@media (max-width:1050px) { .calendar-hero,.calendar-shell { grid-template-columns:1fr; } .calendar-day-events-panel,.calendar-equipment-panel { position:static; } }
@media (max-width:820px) { .calendar-facts-row,.calendar-detail-grid { grid-template-columns:1fr; } }
@media (max-width:720px) { .calendar-toolbar { flex-direction:column; } .calendar-nav-button { width:100%; } .calendar-weekdays { display:none; } .calendar-grid { grid-template-columns:1fr; } .calendar-day.is-empty { display:none; } .calendar-day { min-height:auto; } .calendar-modal-card { width:calc(100vw - 24px); margin:3vh auto; padding:22px; } }
