:root{
    --calendar-blue:#155eef;
    --calendar-blue-dark:#0b4cc9;
    --calendar-ink:#101828;
    --calendar-muted:#667085;
    --calendar-line:#e4e7ec;
    --calendar-soft:#f7f9fc;
}
.project-calendar-page{
    background:var(--calendar-soft);
    color:var(--calendar-ink);
}
.calendar-shell{
    margin:0 auto;
    max-width:1320px;
    padding-left:clamp(14px,3vw,36px);
    padding-right:clamp(14px,3vw,36px);
}
.project-calendar-hero{
    background:
        linear-gradient(135deg,#0b4cc9,#155eef 55%,#5d8dff);
    color:#fff;
    overflow:hidden;
    padding:34px 0 64px;
    position:relative;
}
.calendar-shape{
    background:rgba(255,255,255,.10);
    border-radius:50%;
    position:absolute;
}
.calendar-shape-one{
    height:280px;
    right:-70px;
    top:-110px;
    width:280px;
}
.calendar-shape-two{
    bottom:-140px;
    height:320px;
    left:-90px;
    width:320px;
}
.calendar-back-link{
    color:rgba(255,255,255,.78);
    display:inline-flex;
    font-size:.72rem;
    font-weight:900;
    margin-bottom:40px;
    text-decoration:none;
}
.calendar-hero-content{
    max-width:820px;
    position:relative;
    z-index:2;
}
.calendar-hero-content>span,
.calendar-kicker{
    font-size:.65rem;
    font-weight:950;
    letter-spacing:.1em;
    text-transform:uppercase;
}
.calendar-hero-content h1{
    font-size:clamp(3.2rem,8vw,6.5rem);
    letter-spacing:-.08em;
    line-height:.9;
    margin:10px 0 17px;
}
.calendar-hero-content p{
    color:rgba(255,255,255,.75);
    font-size:1rem;
    line-height:1.65;
    margin:0;
    max-width:700px;
}
.calendar-main{
    padding:24px 0 70px;
}
.calendar-filters{
    background:#fff;
    border:1px solid var(--calendar-line);
    border-radius:18px;
    display:grid;
    gap:10px;
    grid-template-columns:repeat(3,minmax(0,1fr)) auto;
    margin-bottom:18px;
    padding:14px;
}
.calendar-filters label{
    display:grid;
    gap:5px;
}
.calendar-filters label>span{
    color:var(--calendar-muted);
    font-size:.61rem;
    font-weight:900;
}
.calendar-filters select{
    background:#f8fafc;
    border:1px solid var(--calendar-line);
    border-radius:10px;
    min-height:42px;
    padding:8px 10px;
}
.calendar-toolbar{
    align-items:center;
    display:flex;
    justify-content:space-between;
    margin:26px 0 14px;
}
.calendar-toolbar h2{
    font-size:clamp(1.8rem,4vw,2.8rem);
    letter-spacing:-.055em;
    margin:5px 0 0;
}
.calendar-kicker{
    color:var(--calendar-blue-dark);
}
.calendar-toolbar nav{
    display:flex;
    gap:6px;
}
.calendar-toolbar nav a{
    background:#fff;
    border:1px solid var(--calendar-line);
    border-radius:10px;
    color:var(--calendar-ink);
    font-size:.66rem;
    font-weight:900;
    padding:9px 11px;
    text-decoration:none;
}
.calendar-desktop-grid{
    background:#fff;
    border:1px solid var(--calendar-line);
    border-radius:18px;
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    overflow:hidden;
}
.calendar-weekday{
    background:#f8fafc;
    border-bottom:1px solid var(--calendar-line);
    border-right:1px solid var(--calendar-line);
    color:var(--calendar-muted);
    font-size:.62rem;
    font-weight:950;
    padding:10px;
    text-align:center;
}
.calendar-day{
    border-bottom:1px solid var(--calendar-line);
    border-right:1px solid var(--calendar-line);
    min-height:142px;
    padding:8px;
}
.calendar-day.outside{
    background:#fafbfc;
    opacity:.6;
}
.calendar-day.today>header span{
    background:var(--calendar-blue);
    color:#fff;
}
.calendar-day>header span{
    align-items:center;
    border-radius:50%;
    display:flex;
    font-size:.65rem;
    font-weight:900;
    height:28px;
    justify-content:center;
    width:28px;
}
.calendar-day-events{
    display:grid;
    gap:5px;
    margin-top:6px;
}
.calendar-event{
    background:#edf4ff;
    border:1px solid #c9d9ff;
    border-radius:9px;
    color:var(--calendar-ink);
    cursor:pointer;
    display:grid;
    font:inherit;
    gap:2px;
    padding:6px;
    position:relative;
    text-align:left;
}
.calendar-event time{
    color:var(--calendar-blue-dark);
    font-size:.54rem;
    font-weight:950;
}
.calendar-event b{
    font-size:.58rem;
    line-height:1.25;
}
.calendar-event.status-cancelled{
    background:#fef3f2;
    border-color:#fda29b;
    opacity:.75;
}
.calendar-event.status-rescheduled{
    background:#fff6ed;
    border-color:#fedf89;
}
.calendar-event.status-completed{
    background:#ecfdf3;
    border-color:#6ce9a6;
}
.calendar-location-pin{
    color:#b54708;
    font-size:.8rem;
    position:absolute;
    right:5px;
    top:4px;
}
.calendar-mobile-agenda{
    display:none;
}
.calendar-event-dialog{
    background:transparent;
    border:0;
    max-width:680px;
    padding:0;
    width:calc(100% - 24px);
}
.calendar-event-dialog::backdrop{
    background:rgba(16,24,40,.52);
}
.calendar-event-dialog>article{
    background:#fff;
    border-radius:20px;
    box-shadow:0 24px 70px rgba(16,24,40,.24);
    padding:22px;
}
.calendar-event-dialog header{
    align-items:flex-start;
    display:flex;
    justify-content:space-between;
}
.calendar-event-dialog header span{
    color:var(--calendar-blue-dark);
    font-size:.62rem;
    font-weight:950;
    text-transform:uppercase;
}
.calendar-event-dialog h2{
    font-size:clamp(1.6rem,5vw,2.6rem);
    letter-spacing:-.055em;
    margin:5px 0 0;
}
.calendar-event-dialog header button{
    background:#f2f4f7;
    border:0;
    border-radius:50%;
    cursor:pointer;
    font-size:1.15rem;
    height:36px;
    width:36px;
}
.calendar-event-status{
    border-radius:999px;
    display:inline-flex;
    font-size:.62rem;
    font-weight:950;
    margin:14px 0;
    padding:7px 9px;
}
.calendar-event-status.status-scheduled,
.calendar-event-status.status-confirmed{
    background:#edf4ff;
    color:var(--calendar-blue-dark);
}
.calendar-event-status.status-rescheduled{
    background:#fff6ed;
    color:#b54708;
}
.calendar-event-status.status-cancelled{
    background:#fef3f2;
    color:#b42318;
}
.calendar-event-status.status-completed{
    background:#ecfdf3;
    color:#067647;
}
.calendar-event-dialog dl{
    display:grid;
    gap:0;
    margin:0;
}
.calendar-event-dialog dl>div{
    border-bottom:1px solid var(--calendar-line);
    display:grid;
    gap:10px;
    grid-template-columns:150px 1fr;
    padding:11px 0;
}
.calendar-event-dialog dt{
    color:var(--calendar-muted);
    font-size:.66rem;
}
.calendar-event-dialog dd{
    font-size:.7rem;
    font-weight:800;
    margin:0;
}
.calendar-change-note{
    align-items:flex-start;
    color:#b54708;
    display:flex;
    gap:7px;
}
.calendar-event-dialog>article>p{
    color:var(--calendar-muted);
    line-height:1.6;
    margin:17px 0;
}
.calendar-event-dialog footer{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
@media(max-width:760px){
    .calendar-filters{
        grid-template-columns:1fr;
    }
    .calendar-toolbar{
        align-items:flex-start;
        display:grid;
        gap:10px;
    }
    .calendar-toolbar nav{
        display:grid;
        grid-template-columns:auto 1fr auto;
        width:100%;
    }
    .calendar-toolbar nav a{
        text-align:center;
    }
    .calendar-desktop-grid{
        display:none;
    }
    .calendar-mobile-agenda{
        display:grid;
        gap:10px;
    }
    .calendar-mobile-agenda>section{
        background:#fff;
        border:1px solid var(--calendar-line);
        border-radius:14px;
        overflow:hidden;
    }
    .calendar-mobile-agenda>section>header{
        align-items:center;
        background:#f8fafc;
        border-bottom:1px solid var(--calendar-line);
        display:flex;
        justify-content:space-between;
        padding:10px 12px;
    }
    .calendar-mobile-agenda>section>header strong{
        font-size:.75rem;
    }
    .calendar-mobile-agenda>section>header span{
        color:var(--calendar-muted);
        font-size:.63rem;
    }
    .calendar-mobile-event{
        align-items:center;
        background:#fff;
        border:0;
        border-bottom:1px solid var(--calendar-line);
        cursor:pointer;
        display:grid;
        gap:10px;
        grid-template-columns:48px 1fr;
        padding:11px 12px;
        text-align:left;
        width:100%;
    }
    .calendar-mobile-event:last-child{
        border-bottom:0;
    }
    .calendar-mobile-event time{
        color:var(--calendar-blue-dark);
        font-size:.68rem;
        font-weight:950;
    }
    .calendar-mobile-event>span{
        display:grid;
        gap:3px;
    }
    .calendar-mobile-event b{
        font-size:.7rem;
    }
    .calendar-mobile-event small{
        color:var(--calendar-muted);
        font-size:.59rem;
    }
    .calendar-event-dialog dl>div{
        grid-template-columns:1fr;
        gap:4px;
    }
}


/* En-tête calendrier adouci v61 */
.project-calendar-hero{
    background:
        radial-gradient(circle at 88% 8%,rgba(21,94,239,.11),transparent 25%),
        radial-gradient(circle at 8% 88%,rgba(31,157,104,.08),transparent 28%),
        linear-gradient(145deg,#ffffff 0%,#f2f6ff 62%,#f0f9f5 100%)!important;
    color:var(--calendar-ink)!important;
    padding:28px 0 58px!important;
}
.calendar-back-link{
    color:var(--calendar-blue-dark)!important;
}
.calendar-hero-content>span{
    color:var(--calendar-blue-dark);
}
.calendar-hero-content p{
    color:var(--calendar-muted)!important;
}
.calendar-shape{
    background:transparent!important;
    border:1px solid rgba(21,94,239,.13);
}
.calendar-shape-two{
    border-color:rgba(31,157,104,.13);
}


/* En-tête calendrier aligné sur les autres pages v62 */
.project-calendar-hero{
    padding:58px 0 68px!important;
}
.calendar-hero-content{
    margin:0 auto;
    max-width:860px!important;
    text-align:center;
}
.calendar-hero-content h1{
    margin:0 0 16px!important;
}
.calendar-hero-content p{
    margin:0 auto!important;
    max-width:720px!important;
}
.calendar-hero-actions{
    display:flex;
    justify-content:center;
    margin-top:22px;
}
.calendar-hero-actions .button{
    min-width:190px;
}
.calendar-back-link,
.calendar-hero-content>span{
    display:none!important;
}
