/* V288 · Componentes de Calendario y Clasificación, basados en people-premium.
   Los colores de marca cambian con la temporada; los colores de equipos se conservan. */
:is(#page-cal,#page-clas){min-width:0}
:is(#page-cal,#page-clas) .people-icon{display:inline-block;width:22px;height:22px;flex:none;vertical-align:middle}
:is(#page-cal,#page-clas) [hidden]{display:none!important}
:is(#page-cal,#page-clas) button:focus-visible,:is(#page-cal,#page-clas) [tabindex="0"]:focus-visible{outline:2px solid var(--brand-primary-soft);outline-offset:4px}
:is(#page-cal,#page-clas) .competition-hero{gap:28px;padding:34px 36px;margin-bottom:0;border-radius:24px;border-color:rgba(var(--brand-primary-rgb),.25);background:radial-gradient(ellipse at 80% -10%,rgba(var(--brand-primary-rgb),.12),transparent 68%),linear-gradient(125deg,var(--surface-card-elevated),var(--surface-page));box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.competition-hero::after{border-color:rgba(var(--brand-primary-rgb),.1);box-shadow:0 0 0 65px rgba(var(--brand-primary-rgb),.02),0 0 0 135px rgba(var(--brand-primary-rgb),.015)}
:is(#page-cal,#page-clas) .competition-hero .competition-hero-copy{flex:1;min-width:0}
.competition-hero h2{font-size:clamp(25px,2.5vw,43px);line-height:1.15;letter-spacing:-1px;margin:14px 0 18px}
.competition-hero h2 em{color:var(--brand-primary-soft)}
.competition-hero>.competition-hero-copy>p{color:var(--text-secondary);font-size:14px;max-width:470px;line-height:1.6;overflow-wrap:anywhere}
.competition-hero .people-eyebrow{font-size:11px;letter-spacing:1.8px;color:var(--brand-primary-soft)}
.competition-hero .people-hero-numbers{flex:0 1 480px;width:43%;max-width:480px;gap:10px}
.competition-hero .people-hero-numbers>div{min-width:0;padding:23px 20px;background:rgba(0,0,0,.2)}
.competition-hero .people-hero-numbers strong{font-size:clamp(24px,2.4vw,36px);overflow-wrap:anywhere}
.competition-hero .people-hero-numbers span{font-size:10px;line-height:1.55;letter-spacing:.8px;color:var(--text-secondary);overflow-wrap:anywhere}
.competition-emblem{display:flex;flex-direction:column;align-items:center;gap:16px;opacity:.55;color:var(--brand-primary-soft);margin:0 10px}
.competition-emblem>.people-icon{width:65px!important;height:65px!important;stroke-width:1.1}
.competition-emblem>span{font-family:var(--font-condensed);font-size:10px;font-weight:700;letter-spacing:3px;line-height:1.7;text-align:center}
.competition-season-progress{display:flex;align-items:center;gap:18px;margin:16px 4px 0;font-family:var(--font-condensed);font-size:12px;letter-spacing:.3px;color:var(--text-secondary)}
.competition-season-progress>b{font-family:var(--font-display);font-size:12px;color:var(--brand-primary-soft)}
.competition-progress-track{flex:1;min-width:0;height:4px;overflow:hidden;border-radius:4px;background:var(--border-default)}
.competition-progress-track>span{height:100%;display:block;background:var(--brand-primary);border-radius:inherit}
.competition-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:30px 0 22px}
.competition-toolbar h2{font-family:var(--font-display);font-size:22px;line-height:1.4;letter-spacing:-.4px;margin:7px 0}
.competition-toolbar .people-eyebrow{font-size:11px;color:var(--brand-primary-soft)}
#calendar-visible-count{font-size:12px;color:var(--text-muted)}
.competition-tabs{display:flex;flex-wrap:wrap;gap:5px;align-items:center;max-width:100%;width:fit-content;border:1px solid var(--border-default);padding:5px;border-radius:16px;background:rgba(255,255,255,.02)}
.competition-tabs button{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:0;padding:11px 22px;border:1px solid transparent;border-radius:11px;background:transparent;box-shadow:none;color:var(--text-secondary);font-family:var(--font-condensed);font-size:12px;font-weight:700;letter-spacing:1.2px;line-height:1.4;text-transform:uppercase;white-space:normal;cursor:pointer}
.competition-tabs button.on{color:var(--text-primary);border-color:rgba(var(--brand-primary-rgb),.32);background:linear-gradient(125deg,rgba(var(--brand-primary-rgb),.22),rgba(var(--brand-primary-rgb),.05))}
.competition-tabs button:hover{color:var(--text-primary);background-color:rgba(255,255,255,.035)}
.standings-tabs{margin-bottom:24px}
.competition-empty{padding:30px 24px;border:1px dashed var(--border-strong);border-radius:18px;background:rgba(255,255,255,.02);color:var(--text-secondary);line-height:1.65;grid-column:1/-1}
.competition-empty strong{display:block;color:var(--text-primary);font-family:var(--font-display);font-size:20px;margin-bottom:8px}
.competition-empty p{font-size:14px;margin:0}
.competition-start{display:flex;align-items:center;gap:24px;background:radial-gradient(ellipse at 100% 0%,rgba(var(--brand-primary-rgb),.055),transparent 65%),var(--surface-card-elevated);border-style:solid}
.competition-start>.people-icon{width:48px!important;height:48px!important;color:var(--brand-primary-soft)}
.competition-start .people-eyebrow{font-size:10px;color:var(--brand-primary-soft)}
.competition-start h3{font-family:var(--font-display);font-size:clamp(19px,2vw,26px);line-height:1.35;letter-spacing:-.5px;margin:8px 0}
.competition-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0 30px}
.competition-podium-card{min-width:0;text-align:left;display:flex;flex-direction:column;gap:0;position:relative;overflow:hidden;border:1px solid var(--border-default);border-top:2px solid var(--contender-color);border-radius:20px;background:radial-gradient(ellipse at 100% 100%,color-mix(in srgb,var(--contender-color) 15%,transparent),transparent 70%),var(--surface-card-elevated);padding:22px;color:var(--text-primary);cursor:pointer;transition:border-color .18s,background-color .18s}
.competition-podium-card:hover{border-color:var(--contender-color);background-color:var(--surface-card)}
.competition-podium-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.competition-podium-top>b{font-family:var(--font-display);font-size:23px;color:var(--contender-color)}
.competition-podium-top>span{font-family:var(--font-condensed);font-size:10px;letter-spacing:1.8px;color:var(--text-muted)}
.competition-podium-top .people-icon{color:#dcc17e}
.competition-podium-identity{display:flex;align-items:center;gap:16px;min-width:0;flex:1}
.competition-podium-identity>span:last-child{min-width:0}
.competition-podium-identity small{display:block;font-family:var(--font-condensed);font-size:11px;font-weight:600;letter-spacing:.7px;line-height:1.5;color:var(--text-secondary);margin-bottom:5px;text-transform:uppercase}
.competition-podium-identity strong{display:block;font-family:var(--font-display);font-size:clamp(17px,1.35vw,25px);line-height:1.3;letter-spacing:-.5px;overflow-wrap:anywhere}
.competition-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:46px;min-width:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:12px;background:rgba(0,0,0,.28)}
.competition-avatar.is-team{height:42px}
.competition-avatar>img,.competition-avatar .pilot-photo-card-frame,.competition-avatar .team-profile-logo-frame{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}
.competition-avatar img{width:100%;height:100%;object-fit:cover}
.competition-avatar.is-team img{object-fit:contain}
.competition-avatar .profile-placeholder{font-family:var(--font-display);font-size:15px;color:var(--text-secondary)}
.competition-podium-identity .competition-avatar{flex-basis:66px;width:66px;height:78px;border-radius:16px}
.competition-podium-identity .competition-avatar.is-team{height:66px}
.competition-podium-score{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:24px 0 14px}
.competition-podium-score>span{display:flex;align-items:baseline;gap:10px;min-width:0}
.competition-podium-score b{font-family:var(--font-display);font-size:clamp(27px,2.7vw,42px);line-height:1;overflow-wrap:anywhere}
.competition-podium-score small{font-family:var(--font-condensed);font-size:11px;color:var(--text-muted);letter-spacing:1px}
.competition-podium-score>.people-icon{color:var(--contender-color)}
.competition-podium-gap{padding-top:14px;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-size:12px;line-height:1.5}
#page-clas .competition-chart-card{padding:26px;border:1px solid var(--border-default);border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.015),transparent),var(--surface-card-elevated);box-shadow:inset 0 1px 0 rgba(255,255,255,.025);margin-bottom:24px;min-width:0}
.competition-card-heading{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.competition-card-heading>div{min-width:0}
.competition-section-number{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(var(--brand-primary-rgb),.22);border-radius:13px;background:rgba(var(--brand-primary-rgb),.06);font-family:var(--font-display);font-size:15px;color:var(--brand-primary-soft)}
.competition-card-heading .people-eyebrow{font-size:10px;letter-spacing:1.3px;color:var(--text-muted)}
#page-clas .competition-card-heading .chart-title{margin:6px 0 0;font-family:var(--font-display);font-size:clamp(16px,1.5vw,22px);line-height:1.35;color:var(--text-primary);text-transform:none;letter-spacing:-.4px}
#page-clas #standings-chart{min-height:0}
.competition-chart-instruction{color:var(--text-secondary);font-size:12px;line-height:1.7;margin:0 0 14px}
.competition-chart-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;width:100%;border-radius:14px;background:rgba(0,0,0,.12);padding:14px 0 0;scrollbar-color:rgba(var(--brand-primary-rgb),.3) transparent;scrollbar-width:thin}
#page-clas #standings-chart svg{width:100%;height:auto;max-height:none;display:block;overflow:hidden}
.competition-chart-axis{color:rgba(255,255,255,.08)}
.competition-chart-axis text{fill:var(--text-muted);font-family:var(--font-condensed);font-size:12px}
#standings-chart [data-chart-series]{transition:opacity .15s}
#standings-chart [data-chart-series].is-muted{opacity:.12;pointer-events:none}
#standings-chart .standings-chart-marker{stroke:var(--surface-card-elevated);stroke-width:2px;pointer-events:none}
#standings-chart .standings-chart-point{cursor:pointer;stroke:transparent;stroke-width:1.5px;transition:stroke .15s;outline:none}
#standings-chart .standings-chart-point:hover,#standings-chart .standings-chart-point:focus-visible{r:13;stroke:currentColor;filter:none;fill:rgba(255,255,255,.06);outline:none}
.competition-swipe-hint{display:none;color:var(--text-muted);font-size:11px;margin:10px 0}
#page-clas .chart-legend{display:flex;flex-wrap:wrap;gap:6px 10px;margin:18px 0 0;padding:0;overflow:visible}
#page-clas .chart-legend-item{display:inline-flex;align-items:center;gap:7px;min-height:40px;max-width:100%;padding:7px 10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text-secondary);font-family:var(--font-condensed);font-size:12px;font-weight:600;letter-spacing:.5px;line-height:1.4;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
#page-clas .chart-legend-item>i{width:8px;height:8px;flex:0 0 8px;border-radius:50%}
#page-clas .chart-legend-item[aria-pressed="true"]{border-color:var(--border-strong);background:rgba(255,255,255,.055);color:var(--text-primary)}
#page-clas .chart-legend-item.is-muted{opacity:.45}
.competition-chart-empty{min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;padding:28px 20px;text-align:center;border:1px dashed var(--border-default);border-radius:16px;background:linear-gradient(180deg,rgba(var(--brand-primary-rgb),.035),transparent)}
.competition-chart-empty>.people-icon{width:34px!important;height:34px!important;color:var(--brand-primary-soft)}
.competition-chart-empty h3{font-family:var(--font-display);font-size:18px;line-height:1.5;letter-spacing:-.3px;color:var(--text-primary)}
.competition-chart-empty p{font-size:13px;color:var(--text-secondary);line-height:1.6;max-width:380px}
.competition-chart-empty>span{margin-top:10px;font-family:var(--font-condensed);font-size:10px;letter-spacing:2px;color:var(--text-muted)}
#page-clas #standings-bars{min-height:0;max-height:none;overflow:visible;padding:0}
#page-clas .championship-bars{gap:4px;min-height:0;padding:0;background:transparent;border-radius:0}
.competition-ranking-labels{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px 14px;border-bottom:1px solid var(--border-subtle);margin-bottom:8px;color:var(--text-muted);font-family:var(--font-condensed);font-size:10px;letter-spacing:1px;text-transform:uppercase}
#page-clas .championship-bar-row{grid-template-columns:36px minmax(210px,.95fr) minmax(50px,1fr) 95px 84px 18px;gap:16px;min-height:82px;padding:14px 12px;margin:0;border:1px solid transparent;border-bottom-color:var(--border-faint);border-radius:12px;background:transparent;color:var(--text-primary)}
#page-clas .championship-bar-row:hover{transform:none;background:rgba(255,255,255,.03);border-color:var(--border-subtle)}
#page-clas .championship-bar-pos{font-family:var(--font-display);font-size:16px;color:var(--text-muted)}
#page-clas .championship-bar-row:nth-child(-n+3) .championship-bar-pos{color:var(--text-primary)}
#page-clas .championship-bar-name{flex-wrap:nowrap;gap:12px;min-width:0;text-transform:none;font-size:17px;letter-spacing:0}
.competition-ranking-name{min-width:0;flex:1;display:block}
#page-clas .championship-bar-name b{display:block;overflow:visible;white-space:normal;overflow-wrap:anywhere;line-height:1.25;font-family:var(--font-condensed);font-size:20px;font-weight:600}
.competition-ranking-name>small{display:block;margin-top:5px;color:var(--text-muted);font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.competition-ranking-name .infection-multiplier{margin-top:6px}
#page-clas .championship-bar-track{height:7px;border-radius:4px;background:var(--border-subtle);box-shadow:none}
#page-clas .championship-bar-fill{height:100%;box-shadow:none;border-radius:4px;transition:width .22s ease}
#page-clas .championship-bar-points{font-family:var(--font-display);font-size:22px;text-align:right;letter-spacing:-.5px;overflow-wrap:anywhere}
#page-clas .championship-bar-points small,.competition-ranking-gap small{display:block;margin-top:5px;font-family:var(--font-condensed);font-size:9px;font-weight:500;letter-spacing:1px;color:var(--text-muted)}
.competition-ranking-gap{text-align:right;color:var(--text-secondary);font-family:var(--font-condensed);font-weight:600;font-size:16px}
#page-clas .championship-bar-row>.people-icon{width:17px;height:17px;color:var(--text-muted)}
#page-clas .standings-point-detail{margin-top:20px;border-radius:16px;background:rgba(var(--brand-primary-rgb),.035);padding:18px}
#page-clas .point-detail-head button{min-width:44px;min-height:44px;font-size:24px}
#page-clas .point-detail-head b{font-family:var(--font-display);line-height:1.5;overflow-wrap:anywhere}
body.infection-season :is(#page-cal,#page-clas) .competition-hero{padding-top:48px}
body.infection-season :is(#page-cal,#page-clas) .competition-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:20px;opacity:var(--slime-opacity);background:url('assets/infection-slime-edge.svg') repeat-x top left;background-size:auto 20px;pointer-events:none}
@media(max-width:1250px){.competition-emblem{display:none}.competition-hero .people-hero-numbers{flex-basis:400px;width:45%}.competition-hero .people-hero-numbers>div{padding:20px 14px}.competition-podium-card{padding:20px}.competition-podium-identity{gap:12px}.competition-podium-identity .competition-avatar{width:54px;height:64px;flex-basis:54px}.competition-podium-identity .competition-avatar.is-team{height:54px}}
@media(max-width:950px){:is(#page-cal,#page-clas) .competition-hero{flex-wrap:wrap;padding:28px;gap:24px}:is(#page-cal,#page-clas) .competition-hero .competition-hero-copy{flex-basis:100%}.competition-hero .people-hero-numbers{width:100%;flex:1 1 100%;max-width:none}.competition-hero h2{font-size:32px}.competition-podium{gap:12px}.competition-podium-identity{align-items:flex-start;flex-direction:column;gap:12px}.competition-podium-identity strong{font-size:18px}.competition-podium-top{margin-bottom:18px}#page-clas .championship-bar-row{grid-template-columns:30px minmax(180px,1fr) minmax(36px,.6fr) 80px 67px;gap:12px}#page-clas .championship-bar-row>.people-icon{display:none}.competition-swipe-hint{display:block}}
@media(max-width:650px){:is(#page-cal,#page-clas) .competition-hero{padding:25px 20px;border-radius:20px}.competition-hero h2{font-size:clamp(23px,6vw,32px);letter-spacing:-.6px}.competition-hero .people-eyebrow{font-size:10px}.competition-hero .people-hero-numbers{gap:7px}.competition-hero .people-hero-numbers>div{padding:15px 10px;border-radius:12px}.competition-hero .people-hero-numbers strong{font-size:24px}.competition-hero .people-hero-numbers span{font-size:9px;letter-spacing:.45px}.competition-toolbar{align-items:flex-start;flex-direction:column;gap:16px}.competition-toolbar h2{font-size:21px}.competition-toolbar .competition-tabs{width:100%}.competition-tabs button{flex:1;padding:11px 14px;font-size:11px}.standings-tabs{width:100%}.competition-podium{grid-template-columns:minmax(0,1fr);gap:12px;margin:20px 0 24px}.competition-podium-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:18px}.competition-podium-top{grid-column:1/-1;margin:0}.competition-podium-top>b{font-size:18px}.competition-podium-identity{flex-direction:row;align-items:center;gap:12px}.competition-podium-identity .competition-avatar{flex-basis:44px;width:44px;height:54px;border-radius:12px}.competition-podium-identity .competition-avatar.is-team{height:44px}.competition-podium-identity strong{font-size:16px}.competition-podium-identity small{font-size:10px}.competition-podium-score{margin:0;text-align:right}.competition-podium-score>span{display:block}.competition-podium-score b{font-size:26px}.competition-podium-score small{display:block;margin-top:6px;font-size:9px}.competition-podium-score>.people-icon{display:none}.competition-podium-gap{grid-column:1/-1;padding-top:12px;font-size:11px}.competition-start{padding:24px 20px;gap:16px}.competition-start>.people-icon{width:32px!important;height:32px!important}.competition-start h3{font-size:19px}.competition-start p{font-size:12px}#page-clas .competition-chart-card{padding:20px 14px;border-radius:20px}.competition-card-heading{gap:12px;margin-bottom:18px}.competition-section-number{flex-basis:38px;width:38px;height:38px;font-size:13px}.competition-card-heading .people-eyebrow{font-size:9px}#page-clas .competition-card-heading .chart-title{font-size:17px}.competition-chart-empty{padding:26px 16px;min-height:240px}.competition-chart-empty h3{font-size:17px}#page-clas .chart-legend{gap:2px 6px}#page-clas .chart-legend-item{min-height:44px;padding:7px;font-size:11px}.competition-ranking-labels{font-size:9px;padding-inline:4px;letter-spacing:.5px}#page-clas .championship-bar-row{grid-template-columns:25px minmax(0,1fr) 64px;grid-template-rows:auto auto;gap:8px 10px;padding:13px 4px;min-height:0}#page-clas .championship-bar-pos{grid-column:1;grid-row:1;font-size:13px}#page-clas .championship-bar-name{grid-column:2;grid-row:1;gap:9px}#page-clas .championship-bar-name b{font-size:17px}.competition-ranking-name>small{font-size:10px}#page-clas .championship-bar-name .competition-avatar{width:34px;flex-basis:34px;height:40px;border-radius:10px}#page-clas .championship-bar-name .competition-avatar.is-team{height:34px}#page-clas .championship-bar-points{grid-column:3;grid-row:1;font-size:19px}#page-clas .championship-bar-track{grid-column:2;grid-row:2;height:4px;margin-left:43px}.competition-ranking-gap{grid-column:3;grid-row:2;font-size:12px}.competition-ranking-gap small{display:none}.competition-season-progress{gap:10px;font-size:11px}.competition-season-progress>b{font-size:11px}}
@media(max-width:360px){.competition-podium-identity .competition-avatar{display:none}.competition-hero .people-hero-numbers>div{padding:14px 8px}.competition-hero .people-hero-numbers strong{font-size:22px}#page-clas .championship-bar-name .competition-avatar{display:none}#page-clas .championship-bar-track{margin-left:0}}
@media(prefers-reduced-motion:reduce){:is(#page-cal,#page-clas) *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
