:root { --calendar-ink:#11333c; --calendar-muted:#58727a; --calendar-line:#d7e9eb; --calendar-accent:#087f8c; --calendar-accent-dark:#075d69; --calendar-soft:#edfafa; }
body.public-calendar-page { background:linear-gradient(180deg,#e9f8f8 0,#f7fbfb 340px,#fff 760px); color:var(--calendar-ink); }
body.public-calendar-page::before { content:""; position:fixed; inset:0 0 auto; height:390px; z-index:-1; pointer-events:none; background:radial-gradient(circle at 82% 5%,rgba(28,175,184,.2),transparent 28%),radial-gradient(circle at 8% 20%,rgba(39,137,196,.12),transparent 24%); }
.calendar-shell { width:min(1120px, calc(100% - 24px)); margin:0 auto; padding:28px 0 56px; }
.calendar-header { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:20px; }
.calendar-brand { display:flex; align-items:center; gap:14px; color:inherit; text-decoration:none; }
.calendar-brand img { width:58px; height:58px; object-fit:contain; }
.calendar-brand span { display:grid; gap:2px; }
.calendar-brand strong { font-size:1.25rem; letter-spacing:-.02em; white-space:nowrap; }
.calendar-brand small { color:var(--calendar-muted); }
.calendar-home-link { white-space:nowrap; }
.calendar-nav-short { display:none; }
.calendar-hero { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; min-height:158px; padding:clamp(20px,3vw,34px); margin-bottom:14px; border-radius:22px; color:#fff; background:linear-gradient(125deg,#075d69 0%,#078795 58%,#21aeb5 100%); box-shadow:0 20px 45px rgba(7,93,105,.18); }
.calendar-hero h1 { max-width:720px; margin:.3rem 0 .5rem; font-size:clamp(1.9rem,4.5vw,3rem); line-height:1.02; letter-spacing:-.045em; }
.calendar-hero p { max-width:650px; margin:0; color:rgba(255,255,255,.88); font-size:clamp(.98rem,2vw,1.16rem); }
.calendar-kicker { display:inline-flex; padding:5px 10px; border:1px solid rgba(255,255,255,.38); border-radius:999px; color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.calendar-hero-federal-logo { position:relative; z-index:1; flex:0 0 auto; display:grid; place-items:center; width:clamp(135px,16vw,185px); min-height:88px; margin-left:28px; padding:12px 16px; border:1px solid rgba(255,255,255,.56); border-radius:18px; background:rgba(255,255,255,.94); box-shadow:0 14px 32px rgba(3,67,75,.16); }
.calendar-hero-federal-logo img { display:block; max-width:100%; max-height:68px; object-fit:contain; }
.calendar-filters { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:12px; padding:16px; background:rgba(255,255,255,.96); border:1px solid rgba(190,222,225,.9); border-radius:18px; box-shadow:0 12px 32px rgba(22,91,101,.09); position:sticky; top:8px; z-index:3; backdrop-filter:blur(12px); }
.calendar-filters label { display:grid; gap:6px; font-size:.78rem; font-weight:700; color:var(--calendar-muted); }
.calendar-filters select { min-width:0; width:100%; border:1px solid #c9d7da; border-radius:10px; padding:10px 12px; background:#fff; color:var(--calendar-ink); }
.calendar-summary { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:22px 2px 18px; color:var(--calendar-muted); }
.calendar-summary-main { display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; }
.calendar-summary strong { color:var(--calendar-ink); }
.calendar-history-link { padding:7px 11px; font-size:.78rem; }
.calendar-reset-filters { appearance:none; min-height:0; padding:3px 2px; border:0; background:transparent; color:var(--calendar-muted); font:inherit; font-size:.72rem; font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; cursor:pointer; }
.calendar-reset-filters:hover,.calendar-reset-filters:focus-visible { color:var(--calendar-accent-dark); }
.calendar-type-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px 15px; color:var(--calendar-muted); font-size:.7rem; font-weight:700; }
.calendar-type-legend span { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.calendar-type-legend span::before { content:""; width:4px; height:12px; border-radius:999px; background:currentColor; }
.calendar-type-legend-pool { color:#008b82; }
.calendar-type-legend-open-water { color:#2852a0; }
.calendar-type-legend-other { color:#a96712; }
.calendar-month { margin:26px 0 10px; font-size:1.05rem; text-transform:capitalize; }
.calendar-section-title { margin:26px 0 2px; font-size:1.15rem; }
.calendar-current-section .calendar-month { margin-top:14px; font-size:.95rem; }
.calendar-empty-compact { padding:20px; }
.calendar-past-section { margin-top:28px; padding-top:2px; border-top:1px solid var(--calendar-line); scroll-margin-top:96px; }
.calendar-past-heading { display:flex; align-items:center; gap:10px; }
.calendar-past-heading .calendar-section-title { margin-top:20px; }
.calendar-past-count { display:inline-grid; min-width:26px; height:26px; place-items:center; border-radius:999px; background:var(--calendar-soft); color:var(--calendar-accent-dark); font-size:.78rem; }
.calendar-past-content .calendar-month { margin-top:12px; font-size:.95rem; }
.calendar-list { display:grid; gap:9px; }
.calendar-event { --calendar-event-accent:#008b82; --calendar-event-soft:#e5f7f5; --calendar-event-border:#9bd8d3; position:relative; overflow:hidden; display:grid; grid-template-columns:118px minmax(0,1fr) 160px 190px; align-items:center; gap:16px; padding:15px 17px 15px 23px; border:1px solid var(--calendar-line); border-radius:14px; background:rgba(255,255,255,.98); color:inherit; text-decoration:none; transition:.15s ease; box-shadow:0 4px 16px rgba(30,91,99,.035); }
.calendar-event[data-event-type="pool"] { --calendar-event-accent:#008b82; --calendar-event-soft:#e5f7f5; --calendar-event-border:#9bd8d3; }
.calendar-event[data-event-type="openWater"] { --calendar-event-accent:#2852a0; --calendar-event-soft:#edf1fb; --calendar-event-border:#afc2e4; }
.calendar-event:is([data-event-type="training"],[data-event-type="stage"],[data-event-type="meeting"],[data-event-type="other"]) { --calendar-event-accent:#a96712; --calendar-event-soft:#fff3dd; --calendar-event-border:#e4c48f; }
.calendar-event::before { content:""; position:absolute; inset:0 auto 0 0; width:6px; background:var(--calendar-event-accent); }
.calendar-event:hover { border-color:#82bbc4; box-shadow:0 8px 22px rgba(22,61,70,.08); transform:translateY(-1px); }
.calendar-event-date { font-weight:700; font-size:.9rem; }
.calendar-event-main { min-width:0; display:grid; gap:3px; }
.calendar-event-main strong { overflow-wrap:anywhere; }
.calendar-event-main small,.calendar-event-scope { color:var(--calendar-muted); }
.calendar-event-type { display:inline-flex; align-items:center; padding:2px 7px; border:1px solid var(--calendar-event-border); border-radius:999px; background:var(--calendar-event-soft); color:var(--calendar-event-accent); font-size:.76rem; font-weight:800; line-height:1.35; }
.calendar-status { justify-self:end; border-radius:999px; padding:6px 10px; font-size:.75rem; font-weight:800; background:#edf3f4; color:#41575d; text-align:center; }
.calendar-status[data-status="ongoing"] { background:#d9f3e8; color:#126344; }
.calendar-status[data-status="upcoming"] { background:#e2f1f4; color:#075e70; }
.calendar-status[data-status="canceled"] { background:#fbe4e4; color:#922c2c; }
.calendar-status[data-status="resultsPublished"] { background:#e7e5fb; color:#4b3e9a; }
.calendar-empty,.calendar-error { padding:32px; text-align:center; border:1px dashed #bdcdd0; border-radius:16px; background:#fff; color:var(--calendar-muted); }
.public-competition-page .calendar-shell { padding-top:22px; }
.public-competition-page .calendar-header { margin-bottom:12px; }
.calendar-detail-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; color:#fff; background:linear-gradient(125deg,#075d69,#0b909c 70%,#25afb6); border:0; border-radius:20px; padding:clamp(18px,2.8vw,26px); box-shadow:0 18px 42px rgba(7,93,105,.17); }
.calendar-detail-hero-content { min-width:0; }
.calendar-detail-hero p,.calendar-detail-hero .calendar-event-type { color:rgba(255,255,255,.9); }
.calendar-detail-hero .calendar-status { background:rgba(255,255,255,.92); }
.calendar-detail-card { background:#fff; border:1px solid var(--calendar-line); border-radius:18px; padding:clamp(18px,3vw,24px); box-shadow:0 10px 30px rgba(22,61,70,.055); }
.calendar-detail-hero h1 { margin:.2rem 0 .45rem; }
.calendar-detail-hero > p { margin:.35rem 0 0; }
.calendar-detail-meta { display:flex; flex-wrap:wrap; gap:8px; }
.calendar-detail-separator { color:rgba(255,255,255,.62); }
.calendar-detail-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr); gap:14px; margin-top:14px; align-items:start; }
.calendar-detail-practical { display:grid; gap:14px; }
.calendar-detail-card h2 { margin-top:0; }
.calendar-facts { display:grid; grid-template-columns:auto 1fr; gap:10px 18px; margin:0; }
.calendar-facts dt { color:var(--calendar-muted); font-weight:700; }
.calendar-facts dd { margin:0; }
.calendar-program { display:grid; gap:10px; }
.calendar-program article,.calendar-document { border-top:1px solid var(--calendar-line); padding-top:12px; }
.calendar-program article:first-child,.calendar-document:first-child { border-top:0; padding-top:0; }
.calendar-program h3,.calendar-document strong { margin:0; }
.calendar-program ul { margin:.6rem 0 0; padding-left:20px; }
.calendar-program-accordion { gap:0; }
.calendar-program-session { border-top:1px solid var(--calendar-line); }
.calendar-program-session:first-child { border-top:0; }
.calendar-program-session summary { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; cursor:pointer; list-style:none; }
.calendar-program-session summary::-webkit-details-marker { display:none; }
.calendar-program-session summary > span { display:grid; gap:2px; }
.calendar-program-session summary strong { font-size:.94rem; }
.calendar-program-session summary small { color:var(--calendar-muted); }
.calendar-program-session summary::after { content:"⌄"; color:var(--calendar-muted); font-size:1.15rem; font-weight:800; transition:transform .16s ease; }
.calendar-program-session[open] summary::after { transform:rotate(180deg); }
.calendar-program-session-content { padding:0 0 12px; }
.calendar-results-banner { display:flex; justify-content:flex-end; }
.calendar-results-actions { display:flex; flex-wrap:wrap; gap:8px; }
.calendar-results-primary,.calendar-results-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:0 11px; border-radius:9px; font-size:.84rem; font-weight:800; }
.calendar-results-primary { background:#fff; color:#075d69; }
.calendar-results-secondary { border:1px solid rgba(255,255,255,.62); background:rgba(255,255,255,.08); color:#fff; }
.calendar-documents-card { padding:16px 18px; }
.calendar-documents-card h2 { margin-bottom:8px; font-size:1.15rem; }
.calendar-documents { display:grid; }
.calendar-document { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; padding:9px 0; }
.calendar-document > div { min-width:0; display:grid; gap:2px; }
.calendar-document strong { overflow:hidden; font-size:.9rem; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; }
.calendar-document small { color:var(--calendar-muted); font-size:.72rem; line-height:1.25; }
.calendar-document .ghost-button { min-height:30px; padding:0 8px; font-size:.76rem; }
.calendar-documents-empty { margin:0; color:var(--calendar-muted); font-size:.84rem; }
.calendar-structured-results-host { margin-top:18px; }
.calendar-structured-results { padding:20px 22px; }
.calendar-results-heading { grid-column:1; grid-row:1; margin:0; }
.calendar-results-heading h2 { margin:0; }
.calendar-results-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,352px); gap:0 20px; align-items:start; }
.calendar-results-controls { grid-column:2; grid-row:1; display:flex; align-items:end; gap:10px; }
.calendar-results-controls label { display:grid; gap:5px; width:100%; color:var(--calendar-muted); font-size:.75rem; font-weight:800; }
.calendar-results-controls .calendar-results-event-filter { flex:1.45; }
.calendar-results-controls .calendar-results-category-filter { flex:1; }
.calendar-results-controls select { min-width:0; width:100%; padding:9px 11px; border:1px solid #c9d7da; border-radius:9px; background:#fff; color:var(--calendar-ink); }
#calendarResultGroupContent,.calendar-result-group { display:contents; }
.calendar-results-legend { display:flex; flex-wrap:wrap; grid-column:1 / -1; grid-row:2; align-items:center; gap:4px 12px; margin:7px 0 0; color:var(--calendar-muted); font-size:.72rem; }
.calendar-results-legend-item { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.calendar-result-group .calendar-results-official-note { grid-column:1 / -1; grid-row:3; }
.calendar-result-table { grid-column:1 / -1; grid-row:4; margin-top:10px; overflow:hidden; border:1px solid var(--calendar-line); border-radius:12px; }
.calendar-result-row { display:grid; grid-template-columns:minmax(190px,1.3fr) minmax(90px,.55fr) minmax(150px,.8fr) 90px minmax(80px,.42fr); align-items:center; min-height:42px; border-top:1px solid var(--calendar-line); }
.calendar-result-row:first-child { border-top:0; }
.calendar-result-row > * { min-width:0; padding:9px 12px; }
.calendar-result-header { min-height:34px; background:var(--calendar-soft); color:var(--calendar-muted); font-size:.7rem; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.calendar-result-name,.calendar-result-time { color:var(--calendar-ink); }
.calendar-result-name { font-weight:600; }
.calendar-result-swimmer-link { color:inherit; font-weight:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.calendar-result-swimmer-link:hover,.calendar-result-swimmer-link:focus-visible { color:var(--calendar-primary); }
.calendar-result-club,.calendar-result-category { color:var(--calendar-muted); font-size:.82rem; }
.calendar-result-time { justify-self:end; font-variant-numeric:tabular-nums; }
.calendar-result-markers { display:flex; flex-wrap:wrap; gap:4px; }
.calendar-result-marker { display:inline-flex; align-items:center; justify-content:center; min-width:27px; padding:2px 6px; border:1px solid transparent; border-radius:999px; font-size:.66rem; font-weight:900; line-height:1.35; }
.calendar-result-marker-pb { border-color:#9bd7dc; background:#cceff1; color:#075f67; }
.calendar-result-marker-sb { border-color:#d5e2e7; background:#edf4f7; color:#526c78; }
.calendar-results-official-note { margin:8px 0 0; color:var(--calendar-muted); font-size:.76rem; }
.calendar-detail-actions { display:flex; flex-direction:column; align-items:flex-start; gap:2px; margin-top:10px; }
.calendar-entry-link, .calendar-whatsapp-link { margin:0; }
.calendar-entry-note { margin:10px 0 0; color:var(--calendar-muted); font-size:.8rem; line-height:1.4; }
.public-calendar-page .public-footer { width:min(1120px, calc(100% - 24px)); margin:0 auto 26px; color:#657883; font-size:.76rem; font-weight:800; line-height:1.35; text-align:center; }
.public-calendar-page .public-footer span { color:#7b8b94; font-weight:750; }
.public-calendar-page .public-footer a { color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
@media (max-width:820px) { .calendar-hero-federal-logo { width:120px; min-height:76px; margin-left:18px; padding:10px 12px; }.calendar-filters { grid-template-columns:repeat(2,minmax(0,1fr)); position:static; }.calendar-event { grid-template-columns:82px minmax(0,1fr); gap:10px 14px; }.calendar-event-scope { grid-column:2; grid-row:2; }.calendar-event .calendar-status { grid-column:1; grid-row:2; justify-self:start; align-self:end; max-width:82px; padding:5px 7px; font-size:.68rem; line-height:1.18; white-space:normal; text-wrap:balance; }.calendar-detail-hero { grid-template-columns:1fr; gap:12px; }.calendar-detail-grid { grid-template-columns:1fr; } }
@media (max-width:520px) { .calendar-shell { width:min(100% - 20px,1120px); padding-top:16px; }.public-competition-page .calendar-shell { padding-top:14px; }.calendar-header { align-items:flex-start; gap:8px; }.calendar-brand { gap:8px; }.calendar-brand img { width:46px;height:46px; }.calendar-brand strong { font-size:.94rem; }.calendar-brand small { display:none; }.calendar-home-link { padding:0 8px; font-size:.76rem; }.calendar-nav-long { display:none; }.calendar-nav-short { display:inline; }.calendar-hero { align-items:flex-start; min-height:138px; padding:18px 16px; border-radius:18px; }.calendar-hero h1 { font-size:1.75rem; }.calendar-hero-federal-logo { width:78px; min-height:54px; margin:0 0 0 10px; padding:6px; border-radius:12px; }.calendar-hero-federal-logo img { max-height:42px; }.calendar-filters { padding:12px; gap:9px; }.calendar-event { padding:13px 13px 13px 17px; grid-template-columns:80px minmax(0,1fr); gap:8px 10px; }.calendar-event-date { font-size:.8rem; }.calendar-event .calendar-status { max-width:80px; }.calendar-facts { grid-template-columns:1fr; gap:3px; }.calendar-facts dd { margin-bottom:10px; }.calendar-results-actions { display:grid; width:100%; }.calendar-results-primary,.calendar-results-secondary { width:100%; }.calendar-document { align-items:center; } }
@media (max-width:520px) { .calendar-summary { align-items:flex-start; flex-wrap:wrap; }.calendar-type-legend { width:100%; justify-content:flex-start; } }
@media (max-width:620px) { .calendar-structured-results { padding:17px 15px; }.calendar-results-layout { display:block; }.calendar-results-heading { margin-bottom:12px; }.calendar-results-controls { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:8px; margin-bottom:12px; }.calendar-results-controls label { min-width:0; }.calendar-results-layout #calendarResultGroupContent,.calendar-results-layout .calendar-result-group { display:block; }.calendar-results-legend { margin-top:0; }.calendar-result-group .calendar-results-official-note { margin-top:7px; }.calendar-result-table { margin-top:10px; }.calendar-result-header { display:none; }.calendar-result-row { grid-template-columns:minmax(0,1fr) auto auto; gap:0 8px; min-height:54px; padding:9px 11px; }.calendar-result-row > * { padding:2px 0; }.calendar-result-name { grid-column:1; grid-row:1; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.calendar-result-time { grid-column:2; grid-row:1; padding-left:0; }.calendar-result-markers { grid-column:3; grid-row:1; justify-self:end; padding-left:0; }.calendar-result-club { grid-column:1; grid-row:2; }.calendar-result-category { grid-column:2 / 4; grid-row:2; padding-left:0; text-align:right; } }
@media (max-width:350px) { .calendar-brand img { width:38px; height:38px; }.calendar-brand strong { font-size:.82rem; }.calendar-home-link { padding:0 6px; font-size:.7rem; } }
