.calendar-page{padding:22px 0 50px;background:radial-gradient(circle at 84% 4%,rgba(20,135,255,.11),transparent 25%)}
.calendar-hero{min-height:270px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;padding:40px 54px;margin-bottom:14px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(118deg,#07111f 0%,#0d1d32 62%,#063768 145%);box-shadow:var(--shadow)}
.calendar-hero:after{content:"";position:absolute;inset:auto -8% -75% 35%;height:310px;border:45px solid rgba(255,255,255,.035);border-radius:50%}
.calendar-hero-copy{position:relative;z-index:2;max-width:700px}
.calendar-hero h1,.calendar-heading h2{font-family:"Bebas Neue",sans-serif;letter-spacing:.025em;margin:0;color:var(--text)}
.calendar-hero h1{font-size:clamp(3.8rem,8vw,7rem);line-height:.86;margin:10px 0 15px}
.calendar-hero p{max-width:610px;margin:0;color:#b7c8dc;font-size:1.04rem;line-height:1.65}
.calendar-hero>img{position:relative;z-index:1;width:210px;max-height:210px;object-fit:contain;filter:drop-shadow(0 18px 25px rgba(0,0,0,.35))}
.calendar-facts{display:flex;flex-wrap:wrap;gap:22px;margin-top:25px;color:#90a6bf;font-size:.76rem;text-transform:uppercase;letter-spacing:.11em}
.calendar-facts span{display:flex;align-items:baseline;gap:7px}
.calendar-facts strong{font:1.55rem "Bebas Neue",sans-serif;color:#fff;letter-spacing:.03em}
.calendar-controls{position:sticky;top:8px;z-index:5;display:grid;grid-template-columns:220px minmax(260px,1fr) auto auto;align-items:end;gap:12px;margin-bottom:14px;padding:15px 18px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px)}
.calendar-control label{display:block;margin:0 0 6px;color:var(--muted);font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.calendar-control select{width:100%;height:44px;padding:0 38px 0 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text);font:600 .88rem Inter,sans-serif}
.calendar-reset{height:44px;padding:0 17px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--text);font-weight:700;cursor:pointer}
.calendar-reset:hover{border-color:var(--blue);color:#4da5ff}
.calendar-count{min-width:115px;text-align:right;align-self:center}
.calendar-count strong{display:block;font:2.15rem/1 "Bebas Neue",sans-serif;color:var(--text)}
.calendar-count span{display:block;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}
.calendar-shell{padding:0;overflow:hidden}
.calendar-heading{display:flex;align-items:end;justify-content:space-between;padding:23px 25px;border-bottom:1px solid var(--line)}
.calendar-heading h2{font-size:2.25rem;line-height:1}
.calendar-heading-meta{display:flex;align-items:center;gap:10px}
.calendar-special-legend{color:var(--muted);font-size:.68rem;font-weight:600}
.calendar-special-legend b,.calendar-star{color:#ee3e55}
.calendar-timezone{padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.calendar-table{width:100%;border-collapse:collapse}
.calendar-table th{padding:12px 18px;background:rgba(20,135,255,.055);color:#7f96b0;font-size:.66rem;text-align:left;text-transform:uppercase;letter-spacing:.12em}
.calendar-table td{padding:12px 18px;border-top:1px solid var(--line);vertical-align:middle}
.calendar-table tbody tr{transition:background .18s ease}
.calendar-table tbody tr:hover{background:rgba(20,135,255,.045)}
.calendar-table tbody tr.calendar-game-special{background:linear-gradient(90deg,rgba(238,62,85,.055),transparent 36%)}
.calendar-table tbody tr.calendar-game-special:hover{background:linear-gradient(90deg,rgba(238,62,85,.095),rgba(20,135,255,.035))}
.calendar-table tbody tr[hidden]{display:none}
.calendar-table time{display:flex;min-width:128px;flex-direction:column}
.calendar-table time strong{font-size:.86rem;color:var(--text)}
.calendar-table time span{margin-top:2px;color:var(--muted);font-size:.74rem}
.calendar-star{margin-left:4px;font-size:.7rem;vertical-align:top}
.calendar-special-note{display:block;max-width:210px;margin-top:7px;padding-left:9px;border-left:2px solid #ee3e55;color:var(--muted);font-size:.63rem;line-height:1.4}
.calendar-special-note b{display:block;margin-bottom:1px;color:#ee6a7b;text-transform:uppercase;letter-spacing:.07em}
.game-time{white-space:nowrap;color:var(--text);font-size:.9rem}
.calendar-team{display:flex;align-items:center;gap:11px;color:var(--text);text-decoration:none}
.calendar-team img{width:38px;height:38px;object-fit:contain;transition:transform .18s ease}
.calendar-team:hover img{transform:scale(1.1)}
.calendar-team span{display:flex;min-width:165px;flex-direction:column}
.calendar-team strong{font-size:.82rem;line-height:1.25}
.calendar-team small{margin-top:3px;color:var(--muted);font-size:.65rem;font-weight:700;letter-spacing:.1em}
.calendar-result{display:inline-flex;align-items:center;justify-content:center;min-width:125px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:.7rem;font-weight:700;text-decoration:none;text-transform:uppercase;letter-spacing:.055em}
.calendar-result:hover,.calendar-result.available{border-color:rgba(20,135,255,.55);background:rgba(20,135,255,.1);color:#55a9ff}
.calendar-result.pending{border-style:dashed;opacity:.72;cursor:default}
.calendar-empty{padding:70px 20px;text-align:center}
.calendar-empty strong{font:2rem "Bebas Neue",sans-serif;color:var(--text)}
.calendar-empty p,.calendar-source{color:var(--muted)}
.calendar-source{margin:14px 4px 0;font-size:.74rem;text-align:center}
[data-theme="light"] .calendar-hero{background:linear-gradient(118deg,#edf5ff,#d8eaff);border-color:#c7d9ed}
[data-theme="light"] .calendar-hero p{color:#445b72}
[data-theme="light"] .calendar-hero h1,[data-theme="light"] .calendar-facts strong{color:#0b1d31}
[data-theme="light"] .calendar-facts{color:#536c84}
[data-theme="light"] .calendar-hero>img{filter:drop-shadow(0 15px 22px rgba(13,55,93,.18))}
[data-theme="light"] .calendar-controls{background:rgba(255,255,255,.92)}
[data-theme="light"] .calendar-table th{background:#edf5fd;color:#3d5b76}
[data-theme="light"] .calendar-table tbody tr:hover{background:#f2f8ff}
[data-theme="light"] .calendar-table tbody tr.calendar-game-special{background:linear-gradient(90deg,rgba(218,42,65,.075),transparent 42%)}
@media(max-width:900px){.calendar-hero{padding:34px}.calendar-hero>img{width:150px}.calendar-controls{position:static;grid-template-columns:1fr 1fr}.calendar-count{text-align:left}.calendar-table th,.calendar-table td{padding-left:12px;padding-right:12px}.calendar-team span{min-width:120px}}
@media(max-width:680px){.calendar-page{padding-top:10px}.calendar-hero{min-height:auto;padding:28px 24px}.calendar-hero>img{position:absolute;right:-25px;bottom:-20px;width:145px;opacity:.17}.calendar-hero h1{font-size:4rem}.calendar-facts{gap:14px}.calendar-controls{grid-template-columns:1fr}.calendar-count{text-align:center}.calendar-heading{align-items:flex-start;padding:19px}.calendar-heading h2{font-size:1.75rem}.calendar-heading-meta{align-items:flex-end;flex-direction:column}.calendar-special-legend{max-width:145px;text-align:right}.calendar-table thead{display:none}.calendar-table,.calendar-table tbody,.calendar-table tr,.calendar-table td{display:block;width:100%}.calendar-table tr{padding:12px 15px;border-top:1px solid var(--line)}.calendar-table td{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:8px 0;border:0}.calendar-table td:before{content:attr(data-label);flex:0 0 70px;color:var(--muted);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.calendar-table td:first-child{align-items:flex-start;flex-wrap:wrap}.calendar-table td:first-child .calendar-special-note{width:100%;max-width:none;margin-left:85px}.calendar-table time{min-width:0;margin-left:auto;text-align:right}.calendar-team{margin-left:auto;text-align:right}.calendar-team span{min-width:0}.calendar-team img{width:34px;height:34px}.calendar-result{margin-left:auto}.calendar-timezone{font-size:.58rem}}

/* Calendrier mobile MAJ 1.62 */
@media(max-width:720px){
    .calendar-page{padding:8px 0 34px;overflow-x:hidden}
    .calendar-page>.container{width:min(calc(100% - 16px),var(--container))}
    .calendar-hero{min-height:0;margin-bottom:10px;padding:24px 20px;border-radius:18px}
    .calendar-hero h1{margin:8px 0 12px;font-size:clamp(3rem,15vw,4rem);line-height:.88}
    .calendar-hero p{max-width:88%;font-size:.88rem;line-height:1.5}
    .calendar-hero>img{right:-20px;bottom:-22px;width:140px;opacity:.13}
    .calendar-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:20px}
    .calendar-facts span{display:grid;gap:0;padding:9px 7px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(2,11,22,.25);font-size:.55rem;text-align:center}
    .calendar-facts strong{font-size:1.35rem}
    .calendar-controls{position:static;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:10px;padding:13px;border-radius:15px;backdrop-filter:none}
    .calendar-control label{margin-bottom:5px;font-size:.62rem}
    .calendar-control select{height:48px;min-width:0;padding-left:10px;padding-right:26px;font-size:.78rem;touch-action:manipulation}
    .calendar-reset{grid-column:1;height:44px;padding:0 10px;font-size:.75rem;touch-action:manipulation}
    .calendar-count{grid-column:2;display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;text-align:left}
    .calendar-count strong{font-size:1.75rem}
    .calendar-count span{max-width:66px;font-size:.55rem;line-height:1.25}
    .calendar-shell{overflow:visible;border:0;background:transparent;box-shadow:none}
    .calendar-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;margin-bottom:8px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
    .calendar-heading h2{font-size:1.65rem;line-height:1.05}
    .calendar-heading-meta{align-items:flex-end;gap:7px;flex-direction:column}
    .calendar-special-legend{max-width:138px;font-size:.56rem;line-height:1.3;text-align:right}
    .calendar-timezone{padding:5px 7px;font-size:.52rem}
    .calendar-table-wrap{overflow:visible}
    .calendar-table,.calendar-table tbody{display:block;width:100%}
    .calendar-table thead{display:none}
    .calendar-table tbody{display:grid;gap:10px}
    .calendar-table tbody tr{position:relative;display:grid;width:100%;grid-template-columns:minmax(0,1fr) 66px minmax(0,1fr);overflow:hidden;padding:0;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,var(--surface-2),var(--surface));box-shadow:0 8px 22px rgba(0,0,0,.13)}
    .calendar-table tbody tr.calendar-game-special{background:linear-gradient(145deg,rgba(238,62,85,.09),var(--surface) 42%)}
    .calendar-table tbody tr:hover{background:linear-gradient(145deg,var(--surface-2),var(--surface))}
    .calendar-table td{display:flex;width:auto;min-width:0;border:0}
    .calendar-table td:before{content:none}
    .calendar-table td:nth-child(1){grid-column:1/3;grid-row:1;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 5px 11px 13px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.018)}
    .calendar-table td:nth-child(2){grid-column:3;grid-row:1;align-items:center;justify-content:flex-end;padding:11px 13px 11px 5px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.018)}
    .calendar-table td:nth-child(3),.calendar-table td:nth-child(4){position:relative;grid-row:2;align-items:center;justify-content:center;min-height:126px;padding:25px 7px 14px;text-align:center}
    .calendar-table td:nth-child(3){grid-column:1}
    .calendar-table td:nth-child(4){grid-column:3}
    .calendar-table td:nth-child(4):before{content:'VS';position:absolute;left:-48px;top:50%;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font:700 .58rem Inter,sans-serif;transform:translateY(-50%)}
    .calendar-table td:nth-child(3):before,.calendar-table td:nth-child(4):after{position:absolute;top:8px;color:var(--muted);font-size:.5rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
    .calendar-table td:nth-child(3):before{content:'Visiteur'}
    .calendar-table td:nth-child(4):after{content:'Domicile'}
    .calendar-table td:nth-child(5){grid-column:1/-1;grid-row:3;padding:0 12px 12px}
    .calendar-table time{display:flex;min-width:0;margin:0;align-items:baseline;gap:6px;flex-direction:row;text-align:left}
    .calendar-table time strong{font-size:.77rem}
    .calendar-table time span{margin:0;font-size:.68rem}
    .calendar-special-note{flex:0 0 100%;max-width:none;margin:0;padding-left:8px;font-size:.55rem;line-height:1.3}
    .calendar-special-note b{display:none}
    .game-time{font-size:.82rem}
    .calendar-team{display:flex;width:100%;margin:0;align-items:center;gap:7px;flex-direction:column;text-align:center}
    .calendar-team img{width:52px;height:52px;flex:0 0 52px}
    .calendar-team span{display:flex;min-width:0;align-items:center;gap:3px;flex-direction:column}
    .calendar-team strong{display:-webkit-box;overflow:hidden;min-height:2.45em;font-size:.72rem;line-height:1.22;-webkit-box-orient:vertical;-webkit-line-clamp:2}
    .calendar-team small{margin:0;font-size:.58rem}
    .calendar-result{width:100%;min-height:42px;margin:0;padding:9px;font-size:.64rem;touch-action:manipulation}
    .calendar-source{margin:12px 12px 0;font-size:.65rem;line-height:1.5}
    [data-theme="light"] .calendar-facts span{border-color:rgba(12,51,85,.11);background:rgba(255,255,255,.38)}
    [data-theme="light"] .calendar-table tbody tr{background:linear-gradient(145deg,#fff,#eef4fa);box-shadow:0 7px 18px rgba(31,65,96,.08)}
    [data-theme="light"] .calendar-table tbody tr.calendar-game-special{background:linear-gradient(145deg,rgba(218,42,65,.09),#fff 44%)}
}
@media(max-width:390px){
    .calendar-hero p{max-width:100%}
    .calendar-controls{grid-template-columns:1fr}
    .calendar-reset,.calendar-count{grid-column:1}
    .calendar-count{min-height:38px}
    .calendar-heading{grid-template-columns:1fr}
    .calendar-heading-meta{align-items:flex-start;flex-direction:row;justify-content:space-between}
    .calendar-special-legend{text-align:left}
    .calendar-table tbody tr{grid-template-columns:minmax(0,1fr) 52px minmax(0,1fr)}
    .calendar-table td:nth-child(4):before{left:-41px;width:28px;height:28px}
}
