
/* calendrier_annuel_dualview v4.21.2 - all rules scoped to .sac-cad-root */
.sac-cad-root,.sac-cad-root *{box-sizing:border-box}

/* Options: copy the 3-column logic of calendrier_deux_mois. */
.sac-cad-root .sac-cad-options-grid{
    grid-template-columns:minmax(260px,1fr) minmax(330px,1.12fr) minmax(250px,1fr);
    align-items:stretch;
}
.sac-cad-root .sac-cad-options-col{
    min-width:0;
    width:100%;
}
.sac-cad-root .sac-cad-options-nav{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
}
.sac-cad-root .sac-cad-nav-line{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    min-width:0;
}
.sac-cad-root .sac-cad-month-select{min-width:124px;max-width:145px}
.sac-cad-root .sac-cad-year-select{min-width:78px;max-width:92px}
.sac-cad-root .sac-cad-count-line{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-width:0;
}
.sac-cad-root .sac-cad-count-label{font-weight:600;white-space:nowrap}
.sac-cad-root .sac-cad-count-select{min-width:66px}
.sac-cad-root .sac-cad-return-wrap{text-align:center;margin-top:0}
.sac-cad-root .sac-cad-zone-filter-row{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}
.sac-cad-root .sac-cad-export-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    margin-top:10px;
}
.sac-cad-root .sac-cad-export-actions button{
    width:100%;
    min-width:0;
}

/* View toggle exactly below Options and immediately above H2. */
.sac-cad-root .sac-cad-view-toggle-wrap{margin:10px 0 8px;text-align:center}
.sac-cad-root .sac-cad-period-title{text-align:center;margin:0 0 12px}

/* GRID VIEW: reuse calendrier_annuel markup + shared styles exactly. */
.sac-cad-root .sac-cad-grid-view.sac-annual-calendar-wrapper{
    width:100%;
    max-width:1200px;
    margin:0 auto;
}
.sac-cad-root .sac-cad-grid-months.sac-annual-calendar{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
/* Do not restyle annual cards here: shared calendrier_annuel CSS is the source of truth. */

/* LIST VIEW: month cards laid out like calendrier_annuel / annual columns. */
.sac-cad-root .sac-cad-list-months{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    align-items:start;
}
.sac-cad-root .sac-cad-list-month{min-width:0}
.sac-cad-root .sac-cad-list-days{
    border:1px solid #9a9a9a;
    border-top:0;
}
.sac-cad-root .sac-cad-list-day{
    position:relative;
    display:grid !important;
    grid-template-columns:18px 24px minmax(0,1fr) 25px 27px 5px 5px 5px !important;
    min-height:23px;
    align-items:stretch;
    border-bottom:1px solid #d7d7d7;
}
.sac-cad-root .sac-cad-list-day:last-child{border-bottom:0}
.sac-cad-root .sac-cad-list-day>span{
    min-width:0;
    display:flex;
    align-items:center;
    padding:2px 2px;
    font-size:9px;
    line-height:1.08;
}
.sac-cad-root .sac-cad-list-weekday,
.sac-cad-root .sac-cad-list-date,
.sac-cad-root .sac-cad-list-week,
.sac-cad-root .sac-cad-list-moon{
    justify-content:center;
    text-align:center;
}
.sac-cad-root .sac-cad-list-event{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.sac-cad-root .sac-cad-list-day.sac-cad-holiday .sac-cad-list-event{
    color:#c62828;
    font-weight:700;
}
.sac-cad-root .sac-cad-list-day.sac-cad-saturday{background:#fff8ef}
.sac-cad-root .sac-cad-list-day.sac-cad-sunday{background:#fff0dc}
.sac-cad-root .sac-cad-list-day>.sac-cad-zone{
    padding:0 !important;
    width:auto !important;
    min-width:0 !important;
    height:auto !important;
    align-self:stretch;
}
.sac-cad-root .sac-cad-list-day>.sac-cad-zone-a.is-holiday{background:#e56b00}
.sac-cad-root .sac-cad-list-day>.sac-cad-zone-b.is-holiday{background:#0077d6}
.sac-cad-root .sac-cad-list-day>.sac-cad-zone-c.is-holiday{background:#14833b}

/* Filter behavior: fully isolated to CAD. */
.sac-cad-root.sac-cad-hide-semaine .sac-annual-week-label,
.sac-cad-root.sac-cad-hide-semaine .sac-cad-grid-week-number,
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-week{visibility:hidden!important}
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-grid-moon,
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-moon{display:none!important}
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-zone-a,
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-zone-b,
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-zone-c{display:none!important}

/* Event fallback priority Fériés -> Autres fêtes -> Saints is set by JS text refresh. */
.sac-cad-root.sac-cad-hide-feries .sac-cad-holiday .sac-cad-list-event{color:inherit;font-weight:inherit}

/* Reflow columns when week/moon/zones are hidden; event gets freed space. */
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-day{
    grid-template-columns:18px 24px minmax(0,1fr) 27px 5px 5px 5px !important;
}
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-day{
    grid-template-columns:18px 24px minmax(0,1fr) 25px 5px 5px 5px !important;
}
.sac-cad-root.sac-cad-hide-semaine.sac-cad-hide-lunaire .sac-cad-list-day{
    grid-template-columns:18px 24px minmax(0,1fr) 5px 5px 5px !important;
}

/* Export modal. */
.sac-cad-root .sac-cad-export-modal[hidden]{display:none!important}
.sac-cad-root .sac-cad-export-modal{
    position:fixed;inset:0;z-index:99999;
    display:flex;align-items:center;justify-content:center;
}
.sac-cad-root .sac-cad-export-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.sac-cad-root .sac-cad-export-dialog{
    position:relative;z-index:1;
    width:min(430px,calc(100vw - 30px));
    background:#fff;border-radius:6px;padding:20px;
    box-shadow:0 15px 50px rgba(0,0,0,.25);
    text-align:center;
}
.sac-cad-root .sac-cad-export-close{
    position:absolute;right:8px;top:6px;border:0;background:none;font-size:24px;cursor:pointer;
}
.sac-cad-root .sac-cad-export-orientation{
    display:flex;justify-content:center;gap:20px;margin:14px 0;
}
.sac-cad-root .sac-cad-export-confirm{min-width:120px}

/* Responsive Options: Nombre de mois may move to its own line first. */
@media (max-width:1080px){
    .sac-cad-root .sac-cad-options-grid{
        grid-template-columns:minmax(230px,1fr) minmax(270px,1.15fr) minmax(220px,1fr);
    }
    .sac-cad-root .sac-cad-count-line{
        flex-direction:column;
        gap:4px;
    }
    .sac-cad-root .sac-cad-list-months{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:900px){
    .sac-cad-root .sac-cad-options-grid{grid-template-columns:1fr 1fr}
    .sac-cad-root .sac-cad-options-content{grid-column:1/-1}
    .sac-cad-root .sac-cad-grid-months.sac-annual-calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
    .sac-cad-root .sac-cad-list-months{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:700px){
    .sac-cad-root .sac-cad-options-grid{grid-template-columns:1fr}
    .sac-cad-root .sac-cad-options-content{grid-column:auto}
    .sac-cad-root .sac-cad-grid-months.sac-annual-calendar{grid-template-columns:1fr;gap:14px}
    .sac-cad-root .sac-cad-list-months{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
    .sac-cad-root .sac-cad-list-months{grid-template-columns:1fr}
    .sac-cad-root .sac-cad-nav-line{flex-wrap:wrap}
}


/* =========================================================
   v4.21.4 - CAD corrections: filters, options responsive,
   complete Grid matrix, weekend colors and dynamic layouts.
========================================================= */

/* Options: contain every child inside its own column. */
.sac-cad-root .sac-cad-options,
.sac-cad-root .sac-cad-options-grid,
.sac-cad-root .sac-cad-options-grid > *,
.sac-cad-root .sac-cad-options-school,
.sac-cad-root .sac-monthly-school-filter-content,
.sac-cad-root .sac-cad-export-actions{
    min-width:0!important;
    max-width:100%!important;
}
.sac-cad-root .sac-cad-options-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) minmax(0,1fr)!important;
    width:100%!important;
    gap:12px!important;
}
.sac-cad-root .sac-cad-options-school{
    overflow:hidden;
    padding-left:10px!important;
    padding-right:10px!important;
}
.sac-cad-root .sac-cad-zone-filter-row{
    width:100%;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px!important;
}
.sac-cad-root .sac-cad-zone-filter-row .sac-annual-filter-item{
    min-width:0;
    justify-content:center;
    white-space:nowrap;
    padding-left:2px;
    padding-right:2px;
}
.sac-cad-root .sac-cad-export-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    padding:0!important;
}
.sac-cad-root .sac-cad-export-actions button{
    display:flex!important;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:7px 8px!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
}
.sac-cad-root .sac-cad-export-actions .sac-monthly-export-badge{flex:0 0 auto}

/* Grid: all cells keep visible borders, including all empty cells. */
.sac-cad-root .sac-cad-grid-months .sac-annual-month-grid{
    border-top:1px solid #e2e2e2;
    border-left:1px solid #e2e2e2;
}
.sac-cad-root .sac-cad-grid-months .sac-annual-month-grid > div{
    border-right:1px solid #e2e2e2!important;
    border-bottom:1px solid #e2e2e2!important;
}
.sac-cad-root .sac-cad-grid-months .sac-annual-month-title{
    border-right:1px solid #e2e2e2!important;
}
.sac-cad-root .sac-cad-grid-months .sac-annual-day-empty{
    background:#fff!important;
}
/* Saturday light orange; Sunday stronger orange. Applies to real + empty cells + headers. */
.sac-cad-root .sac-cad-grid-months .sac-cad-grid-saturday{
    background:#fff1df!important;
}
.sac-cad-root .sac-cad-grid-months .sac-cad-grid-sunday{
    background:#f8d9ad!important;
}
.sac-cad-root .sac-cad-grid-months .sac-cad-grid-date-cell.sac-cad-grid-public-visible{
    color:#c62828!important;
    font-weight:700!important;
}
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-months .sac-cad-grid-date-cell{
    color:#333!important;
    font-weight:400!important;
}

/* 1 or 2 Grid months stay same annual-card width logic but centered as a group. */
.sac-cad-root .sac-cad-grid-months.sac-cad-count-1,
.sac-cad-root .sac-cad-grid-months.sac-cad-count-2{
    display:flex!important;
    justify-content:center;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:18px;
}
.sac-cad-root .sac-cad-grid-months.sac-cad-count-1 > .sac-cad-annual-month-card,
.sac-cad-root .sac-cad-grid-months.sac-cad-count-2 > .sac-cad-annual-month-card{
    flex:0 1 calc((100% - 36px)/3);
    width:calc((100% - 36px)/3);
    min-width:0;
}

/* List: fewer than 6 months stretch across the full available width. */
.sac-cad-root .sac-cad-list-months.sac-cad-count-1{grid-template-columns:minmax(0,1fr)!important}
.sac-cad-root .sac-cad-list-months.sac-cad-count-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.sac-cad-root .sac-cad-list-months.sac-cad-count-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.sac-cad-root .sac-cad-list-months.sac-cad-count-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.sac-cad-root .sac-cad-list-months.sac-cad-count-5{grid-template-columns:repeat(5,minmax(0,1fr))!important}

@media (max-width:1080px){
    .sac-cad-root .sac-cad-options-grid{
        grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    }
    .sac-cad-root .sac-cad-options-content{grid-column:1/2!important}
    .sac-cad-root .sac-cad-options-nav{grid-column:2/3!important}
    .sac-cad-root .sac-cad-options-school{grid-column:1/-1!important}
    .sac-cad-root .sac-cad-options-school{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr);
        column-gap:12px;
        align-items:center;
    }
    .sac-cad-root .sac-cad-options-school .sac-monthly-school-filter-content{min-width:0}
    .sac-cad-root .sac-cad-export-actions{margin-top:0!important}
    .sac-cad-root .sac-cad-count-line{flex-direction:column!important;gap:4px!important}

    .sac-cad-root .sac-cad-list-months.sac-cad-count-4,
    .sac-cad-root .sac-cad-list-months.sac-cad-count-5{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (max-width:760px){
    .sac-cad-root .sac-cad-options-grid{grid-template-columns:1fr!important}
    .sac-cad-root .sac-cad-options-content,
    .sac-cad-root .sac-cad-options-nav,
    .sac-cad-root .sac-cad-options-school{grid-column:auto!important}
    .sac-cad-root .sac-cad-options-school{display:block!important}
    .sac-cad-root .sac-cad-export-actions{margin-top:9px!important}

    .sac-cad-root .sac-cad-grid-months.sac-cad-count-1,
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-2{gap:14px}
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-1 > .sac-cad-annual-month-card,
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-2 > .sac-cad-annual-month-card{
        flex:0 1 calc((100% - 14px)/2);
        width:calc((100% - 14px)/2);
    }
    .sac-cad-root .sac-cad-list-months.sac-cad-count-3,
    .sac-cad-root .sac-cad-list-months.sac-cad-count-4,
    .sac-cad-root .sac-cad-list-months.sac-cad-count-5{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:560px){
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-1,
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-2{display:grid!important;grid-template-columns:1fr!important}
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-1 > .sac-cad-annual-month-card,
    .sac-cad-root .sac-cad-grid-months.sac-cad-count-2 > .sac-cad-annual-month-card{width:100%;max-width:none;flex:none}
    .sac-cad-root .sac-cad-list-months.sac-cad-count-2,
    .sac-cad-root .sac-cad-list-months.sac-cad-count-3,
    .sac-cad-root .sac-cad-list-months.sac-cad-count-4,
    .sac-cad-root .sac-cad-list-months.sac-cad-count-5{grid-template-columns:1fr!important}
    .sac-cad-root .sac-cad-zone-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}


/* =========================================================
   v4.21.5 - CAD List column anchoring + view-specific options
========================================================= */

/* LIST: left content is fluid; Week/Moon/Zones are anchored from the right. */
.sac-cad-root{
    --cad-week-w:25px;
    --cad-moon-w:27px;
    --cad-zone-w:5px;
    --cad-zone-count:3;
    --cad-zones-w:15px;
}
.sac-cad-root.sac-cad-hide-semaine{--cad-week-w:0px}
.sac-cad-root.sac-cad-hide-lunaire{--cad-moon-w:0px}
.sac-cad-root.sac-cad-hide-zone-a{--cad-zone-count:2;--cad-zones-w:10px}
.sac-cad-root.sac-cad-hide-zone-b{--cad-zone-count:2;--cad-zones-w:10px}
.sac-cad-root.sac-cad-hide-zone-c{--cad-zone-count:2;--cad-zones-w:10px}
.sac-cad-root.sac-cad-hide-zone-a.sac-cad-hide-zone-b,
.sac-cad-root.sac-cad-hide-zone-a.sac-cad-hide-zone-c,
.sac-cad-root.sac-cad-hide-zone-b.sac-cad-hide-zone-c{--cad-zone-count:1;--cad-zones-w:5px}
.sac-cad-root.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c{--cad-zone-count:0;--cad-zones-w:0px}

.sac-cad-root .sac-cad-list-day{
    display:grid!important;
    grid-template-columns:18px 24px minmax(0,1fr)!important;
    padding-right:calc(var(--cad-week-w) + var(--cad-moon-w) + var(--cad-zones-w))!important;
    position:relative!important;
}
.sac-cad-root .sac-cad-list-week{
    display:flex!important;
    position:absolute!important;
    top:0!important;bottom:0!important;
    right:calc(var(--cad-moon-w) + var(--cad-zones-w))!important;
    width:25px!important;
    padding:2px!important;
}
.sac-cad-root .sac-cad-list-moon{
    display:flex!important;
    position:absolute!important;
    top:0!important;bottom:0!important;
    right:var(--cad-zones-w)!important;
    width:27px!important;
    padding:2px!important;
}
.sac-cad-root .sac-cad-list-zones{
    position:absolute!important;
    top:0!important;right:0!important;bottom:0!important;
    width:var(--cad-zones-w)!important;
    display:flex!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    padding:0!important;
}
.sac-cad-root .sac-cad-list-zones>.sac-cad-zone{
    flex:0 0 5px!important;
    width:5px!important;
    min-width:5px!important;
    height:100%!important;
    padding:0!important;
}
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-week,
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-moon,
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-list-zones>.sac-cad-zone-a,
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-list-zones>.sac-cad-zone-b,
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-list-zones>.sac-cad-zone-c{display:none!important}

/* Cancel old variable grid rewrites that caused broken List rows. */
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-day,
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-day,
.sac-cad-root.sac-cad-hide-semaine.sac-cad-hide-lunaire .sac-cad-list-day{
    grid-template-columns:18px 24px minmax(0,1fr)!important;
}

/* Export buttons: exact 2-button row logic used by calendrier_deux_mois. */
.sac-cad-root .sac-cad-options-school{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:10px!important;
}
.sac-cad-root .sac-cad-export-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:2px 0 0!important;
    padding:0!important;
}
.sac-cad-root .sac-cad-export-actions .sac-monthly-open-export{
    width:100%!important;
    min-width:0!important;
    min-height:36px!important;
    margin:0!important;
    padding:7px 8px!important;
    white-space:nowrap!important;
}

/* GRID: hiding week removes the entire first column and the month-number title cell. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-grid{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-week-label,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-cad-grid-week-number{
    display:none!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title{
    grid-column:1 / 8!important;
    border-top-left-radius:9px!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-grid>div:nth-child(8n){
    border-right:1px solid #e2e2e2!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-grid>div:nth-child(7n){
    border-right:0!important;
}

/* View-specific Options. Grid keeps only Week + Fériés; column 3 keeps export only. */
.sac-cad-root.is-cad-grid .sac-cad-options-content .sac-annual-filter-item[data-cad-option-hidden="1"]{display:none!important}
.sac-cad-root.is-cad-grid .sac-cad-options-school .sac-monthly-school-filter-content{display:none!important}
.sac-cad-root.is-cad-grid .sac-cad-options-school{justify-content:center!important}
.sac-cad-root.is-cad-list .sac-cad-options-school .sac-monthly-school-filter-content{display:flex!important}

@media(max-width:760px){
    .sac-cad-root .sac-cad-export-actions{grid-template-columns:1fr 1fr!important;gap:6px!important}
    .sac-cad-root .sac-cad-export-actions .sac-monthly-open-export{font-size:11px!important;padding:7px 5px!important}
}


/* =========================================================
   v4.21.6 - CAD visual/stability refinements
   ========================================================= */

/* Grid weekend backgrounds: softer orange pair. */
.sac-cad-root .sac-cad-grid-view .sac-cad-saturday,
.sac-cad-root .sac-cad-grid-view .sac-cad-weekday-6{
    background:#fff7ed !important;
}
.sac-cad-root .sac-cad-grid-view .sac-cad-sunday,
.sac-cad-root .sac-cad-grid-view .sac-cad-weekday-7{
    background:#ffedd5 !important;
}

/* Grid title keeps numeric month cell even when week numbers are hidden. */
.sac-cad-root .sac-cad-grid-title-row{
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    min-height:31px;
    border:1px solid #9a9a9a;
    border-bottom:0;
    border-radius:6px 6px 0 0;
    overflow:hidden;
}
.sac-cad-root .sac-cad-grid-month-number{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    font-weight:700;
    border-right:1px solid #9a9a9a;
    background:#f4f4f4;
}
.sac-cad-root .sac-cad-grid-month-name{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:5px 7px;
    font-weight:700;
    background:#eaf5ff;
}
.sac-cad-root.sac-cad-hide-semaine .sac-cad-grid-title-row{
    grid-template-columns:34px minmax(0,1fr);
}
.sac-cad-root.sac-cad-hide-semaine .sac-cad-grid-month-number{
    display:flex !important;
}
.sac-cad-root.sac-cad-hide-semaine .sac-cad-grid-month-name{
    border-radius:0 6px 0 0;
}

/* Fériés unchecked: remove all holiday-specific appearance in Grid.
   Weekend colors stay governed only by weekday column. */
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-holiday-day{
    color:inherit !important;
    font-weight:inherit !important;
}
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-holiday-day:not(.sac-cad-saturday):not(.sac-cad-sunday):not(.sac-cad-weekday-6):not(.sac-cad-weekday-7){
    background:inherit !important;
}
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-event[data-ferie]:not([data-ferie=""]){
    color:inherit !important;
    font-weight:inherit !important;
}

/* Square, clearer month navigation and view control. */
.sac-cad-root .sac-cad-nav-btn{
    min-width:38px;
    width:38px;
    height:38px;
    min-height:38px;
    padding:0;
    border-radius:0 !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
    font-size:21px;
}
.sac-cad-root .sac-cad-month-select,
.sac-cad-root .sac-cad-year-select{
    height:38px;
    border-radius:0 !important;
}
.sac-cad-root .sac-cad-view-toggle{
    min-width:210px;
    min-height:42px;
    padding:8px 18px;
    border-radius:0 !important;
    font-size:15px;
    font-weight:600;
}

/* LIST VIEW: stable fixed right-side utility cluster.
   Base widths: week 24, moon 27, zones 3px each (2/3 of prior 5px). */
.sac-cad-root .sac-cad-list-day{
    --cad-week-w:24px;
    --cad-moon-w:27px;
    --cad-zone-w:3px;
    display:grid !important;
    grid-template-columns:
        18px
        24px
        minmax(56px,1fr)
        var(--cad-week-w)
        var(--cad-moon-w)
        var(--cad-zone-w)
        var(--cad-zone-w)
        var(--cad-zone-w) !important;
    width:100%;
    min-width:0;
    overflow:hidden;
}
.sac-cad-root .sac-cad-list-day > span{
    min-width:0;
    overflow:hidden;
}
.sac-cad-root .sac-cad-list-event{
    position:relative;
    z-index:1;
    min-width:0 !important;
    width:auto !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.sac-cad-root .sac-cad-list-week,
.sac-cad-root .sac-cad-list-moon{
    flex:0 0 auto;
    width:auto !important;
    min-width:0 !important;
}
.sac-cad-root .sac-cad-list-day > .sac-cad-zone{
    width:auto !important;
    min-width:0 !important;
    padding:0 !important;
}

/* When a utility column is hidden, only the flexible event area to its left grows.
   Columns remaining on the right preserve their widths. */
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-day{
    --cad-week-w:0px;
}
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-day{
    --cad-moon-w:0px;
}
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-week,
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-moon{
    display:none !important;
}

/* Zones pack tightly against the right edge. The visible zones always consume
   exactly N * zone-width and never shrink the weekday/date/event columns unexpectedly. */
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-list-day{ --cad-zone-a-w:0px; }
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-list-day{ --cad-zone-b-w:0px; }
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-list-day{ --cad-zone-c-w:0px; }

.sac-cad-root .sac-cad-list-day{
    --cad-zone-a-w:var(--cad-zone-w);
    --cad-zone-b-w:var(--cad-zone-w);
    --cad-zone-c-w:var(--cad-zone-w);
    grid-template-columns:
        18px
        24px
        minmax(56px,1fr)
        var(--cad-week-w)
        var(--cad-moon-w)
        var(--cad-zone-a-w)
        var(--cad-zone-b-w)
        var(--cad-zone-c-w) !important;
}
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-list-day{ --cad-zone-a-w:0px; }
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-list-day{ --cad-zone-b-w:0px; }
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-list-day{ --cad-zone-c-w:0px; }

.sac-cad-root.sac-cad-hide-zone-a .sac-cad-zone-a,
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-zone-b,
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-zone-c{
    display:none !important;
}

/* Options column 3 in List View: subtitle on line 1, zones on line 2,
   export pair on line 3 in normal desktop view. */
.sac-cad-root .sac-cad-options-school{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
}
.sac-cad-root .sac-monthly-school-filter-content{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:7px;
}
.sac-cad-root .sac-monthly-school-filter-content .sac-annual-options-subtitle{
    display:block;
    width:100%;
    text-align:center;
}
.sac-cad-root .sac-cad-zone-filter-row{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:7px 10px;
    width:100%;
}
.sac-cad-root .sac-cad-export-actions{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:8px;
    width:100%;
    margin-top:9px;
}
.sac-cad-root .sac-cad-export-actions button{
    min-width:0;
    width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
}

/* At narrower widths, let the zones/export controls wrap in the same spirit
   as calendrier_deux_mois without overflowing the options cell. */
@media (max-width:1080px){
    .sac-cad-root .sac-cad-export-actions{
        grid-template-columns:1fr 1fr !important;
    }
}
@media (max-width:760px){
    .sac-cad-root .sac-cad-zone-filter-row{
        justify-content:flex-start;
    }
    .sac-cad-root .sac-cad-export-actions{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   v4.21.6 final overrides - authoritative CAD rules
   ========================================================= */

/* Grid: softer orange weekend backgrounds, including empty cells. */
.sac-cad-root .sac-cad-grid-months .sac-cad-grid-saturday{
    background:#fff8ef!important;
}
.sac-cad-root .sac-cad-grid-months .sac-cad-grid-sunday{
    background:#ffefd9!important;
}

/* Grid: Fériés off = ordinary date, no red/bold/holiday background/tooltip.
   Weekend color still comes only from its weekday column. */
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-months .sac-cad-grid-date-cell,
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-months .sac-cad-grid-date-cell.sac-annual-holiday{
    color:inherit!important;
    font-weight:inherit!important;
    box-shadow:none!important;
}
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-months .sac-cad-grid-date-cell:not(.sac-cad-grid-saturday):not(.sac-cad-grid-sunday){
    background:#fff!important;
}

/* Grid: actually remove the week column, but recreate a month-number box
   at the far left INSIDE the title row. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-grid{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-week-label,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-cad-grid-week-number{
    display:none!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title{
    grid-column:1 / 8!important;
    position:relative!important;
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    align-items:center!important;
    padding:0!important;
    overflow:hidden!important;
    border-top-left-radius:9px!important;
    border-top-right-radius:9px!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title::before{
    content:attr(data-month-number);
    align-self:stretch;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    padding:5px 3px;
    border-right:1px solid #e2e2e2;
    background:#f2f2f2;
    font-weight:700;
    border-top-left-radius:8px;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title{
    text-align:center!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title::after{
    content:"";
}

/* Month/year controls and arrows: same square visual language. */
.sac-cad-root .sac-cad-nav-btn,
.sac-cad-root .sac-cad-month-select,
.sac-cad-root .sac-cad-year-select{
    height:38px!important;
    min-height:38px!important;
    border-radius:0!important;
}
.sac-cad-root .sac-cad-nav-btn{
    width:38px!important;
    min-width:38px!important;
    padding:0!important;
}
.sac-cad-root .sac-cad-view-toggle{
    min-width:220px!important;
    min-height:44px!important;
    padding:9px 20px!important;
    border-radius:0!important;
    font-size:15px!important;
    font-weight:600!important;
}

/* LIST: one stable flexible left region + fixed right cluster.
   No absolute overlay, so event text can never sit beneath week/moon. */
.sac-cad-root .sac-cad-list-day{
    --cad-week-track:25px;
    --cad-moon-track:27px;
    --cad-zone-track:9px;
    position:relative!important;
    display:grid!important;
    grid-template-columns:18px 24px minmax(0,1fr) var(--cad-week-track) var(--cad-moon-track) var(--cad-zone-track)!important;
    width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
    padding:0!important;
}
.sac-cad-root .sac-cad-list-week,
.sac-cad-root .sac-cad-list-moon,
.sac-cad-root .sac-cad-list-zones{
    position:static!important;
    inset:auto!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
}
.sac-cad-root .sac-cad-list-event{
    min-width:0!important;
    width:auto!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}
.sac-cad-root .sac-cad-list-week,
.sac-cad-root .sac-cad-list-moon{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:2px!important;
    overflow:hidden!important;
}
.sac-cad-root .sac-cad-list-zones{
    display:flex!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    padding:0!important;
}
.sac-cad-root .sac-cad-list-zones>.sac-cad-zone{
    flex:0 0 3px!important;
    width:3px!important;
    min-width:3px!important;
    height:100%!important;
    padding:0!important;
}

/* Hidden right-side columns collapse to zero; all surviving columns remain
   anchored to the right and only the event track to the left expands. */
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-day{--cad-week-track:0px}
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-day{--cad-moon-track:0px}
.sac-cad-root.sac-cad-hide-semaine .sac-cad-list-week,
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-list-moon{display:none!important}

/* Zone wrapper width = exactly the number of visible 3px strips. */
.sac-cad-root .sac-cad-list-day{--cad-zone-track:9px}
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-list-day,
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zone-track:6px}
.sac-cad-root.sac-cad-hide-zone-a.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.sac-cad-hide-zone-a.sac-cad-hide-zone-c .sac-cad-list-day,
.sac-cad-root.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zone-track:3px}
.sac-cad-root.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zone-track:0px}
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-list-zones>.sac-cad-zone-a,
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-list-zones>.sac-cad-zone-b,
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-list-zones>.sac-cad-zone-c{display:none!important}

/* Options col 3 in List: line 1 title, line 2 A/B/C, line 3 PDF/JPG. */
.sac-cad-root.is-cad-list .sac-cad-options-school{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:8px!important;
}
.sac-cad-root.is-cad-list .sac-monthly-school-filter-content{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:7px!important;
    width:100%!important;
}
.sac-cad-root.is-cad-list .sac-monthly-school-filter-content .sac-annual-options-subtitle{
    width:100%!important;
    text-align:center!important;
    margin:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-zone-filter-row{
    width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px 10px!important;
}
.sac-cad-root .sac-cad-export-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin-top:0!important;
}
.sac-cad-root .sac-cad-export-actions button{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
}

@media(max-width:760px){
    .sac-cad-root.is-cad-list .sac-cad-zone-filter-row{
        justify-content:flex-start!important;
    }
    /* Keep the same two-button row as calendrier_deux_mois when it fits. */
    .sac-cad-root .sac-cad-export-actions{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
        gap:6px!important;
    }
}
@media(max-width:430px){
    .sac-cad-root .sac-cad-export-actions{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   v4.21.7 - final layout normalization
   ========================================================= */

/* View button: text height + only 3px vertical padding. */
.sac-cad-root .sac-cad-view-toggle{
    min-height:0!important;
    height:auto!important;
    padding:3px 18px!important;
    line-height:1.35!important;
    min-width:210px!important;
}

/* GRID HIDE WEEK: single clean 7-column matrix.
   We leave the original month-number element hidden, and create a stable
   34px month-number segment inside the title without changing row math. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-month-grid{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-month-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-week-label,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-week-number{
    display:none!important;
    visibility:hidden!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-month-title{
    grid-column:1 / -1!important;
    grid-row:auto!important;
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    align-items:stretch!important;
    min-width:0!important;
    padding:0!important;
    border-radius:8px 8px 0 0!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-month-title::before{
    content:attr(data-month-number)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:34px!important;
    width:34px!important;
    height:100%!important;
    border-right:1px solid #aaa!important;
    background:#f2f2f2!important;
    font-weight:700!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-month-title{
    text-indent:0!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-day-header,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-annual-day,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-date-cell{
    min-width:0!important;
    width:auto!important;
    grid-column:auto!important;
}

/* LIST VIEW: reset every row to one stable six-track structure:
   weekday | date | flexible event | week | moon | zone-pack.
   Hiding week/moon only changes the corresponding fixed track to 0. */
.sac-cad-root.is-cad-list .sac-cad-list-day{
    --cad-week-w:25px;
    --cad-moon-w:27px;
    --cad-zone-w:9px;
    display:grid!important;
    grid-template-columns:18px 24px minmax(0,1fr) var(--cad-week-w) var(--cad-moon-w) var(--cad-zone-w)!important;
    align-items:stretch!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    white-space:normal!important;
}
.sac-cad-root.is-cad-list.sac-cad-hide-semaine .sac-cad-list-day{--cad-week-w:0px}
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-list-day{--cad-moon-w:0px}
.sac-cad-root.is-cad-list.sac-cad-hide-semaine .sac-cad-list-week{display:none!important}
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-list-moon{display:none!important}

.sac-cad-root.is-cad-list .sac-cad-list-weekday,
.sac-cad-root.is-cad-list .sac-cad-list-date,
.sac-cad-root.is-cad-list .sac-cad-list-event,
.sac-cad-root.is-cad-list .sac-cad-list-week,
.sac-cad-root.is-cad-list .sac-cad-list-moon,
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    position:static!important;
    float:none!important;
    min-width:0!important;
    max-width:none!important;
    width:auto!important;
    margin:0!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-event{
    display:block!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
    padding:2px 3px!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-week,
.sac-cad-root.is-cad-list .sac-cad-list-moon{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    padding:1px!important;
}

/* Zone pack: all three children exist and are packed from right to left.
   No legacy individual-zone grid positioning can affect them. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    gap:0!important;
    padding:0!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone{
    display:block!important;
    position:static!important;
    flex:0 0 3px!important;
    width:3px!important;
    min-width:3px!important;
    max-width:3px!important;
    height:100%!important;
    min-height:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-list-zones > .sac-cad-zone-a,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-list-zones > .sac-cad-zone-b,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-list-zones > .sac-cad-zone-c{
    display:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day{--cad-zone-w:9px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zone-w:6px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-c .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zone-w:3px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zone-w:0px}

/* Ensure individual Zone colors render independently. */
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-a.is-holiday{background:#e56b00!important}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-b.is-holiday{background:#0077d6!important}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-c.is-holiday{background:#14833b!important}

/* Prevent list card text from being pushed to a second line by inherited annual rules. */
.sac-cad-root.is-cad-list .sac-cad-list-day > span{
    line-height:1.05!important;
    vertical-align:middle!important;
}


/* =========================================================
   v4.21.8 - authoritative cleanup for CAD Grid/List
   ========================================================= */

/* ---------- GRID: clean 8-col normal / 7-col hidden-week matrix ---------- */
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card{
    overflow:hidden!important;
}
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card .sac-annual-month-grid{
    display:grid!important;
    grid-template-columns:34px repeat(7,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    gap:0!important;
    border-top:1px solid #9a9a9a!important;
    border-left:1px solid #9a9a9a!important;
    border-radius:8px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card .sac-annual-month-grid > *{
    min-width:0!important;
    box-sizing:border-box!important;
    border-right:1px solid #9a9a9a!important;
    border-bottom:1px solid #9a9a9a!important;
    margin:0!important;
}
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card .sac-annual-month-number{
    grid-column:1!important;
}
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card .sac-annual-month-title{
    grid-column:2 / 9!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:4px 6px!important;
    border-radius:0!important;
    overflow:hidden!important;
}

/* Hide week: remove original week column and rebuild title as a full 7-col row.
   The month number becomes an INTERNAL fixed segment of the title, therefore
   there is no phantom grid cell able to shift the weekday/date matrix. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-grid{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-week-label,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-cad-grid-week-number{
    display:none!important;
    visibility:hidden!important;
    width:0!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title{
    grid-column:1 / -1!important;
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    padding:0!important;
    border-radius:0!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-month-title::before{
    content:attr(data-month-number)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:34px!important;
    min-width:34px!important;
    padding:4px 2px!important;
    border-right:1px solid #9a9a9a!important;
    background:#f2f2f2!important;
    font-weight:700!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-day-header,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-annual-day,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-annual-month-card .sac-cad-grid-date-cell{
    grid-column:auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
}

/* ---------- LIST: use explicit grid-column placement so hidden tracks can never wrap ---------- */
.sac-cad-root.is-cad-list .sac-cad-list-day{
    --wk:25px;
    --moon:27px;
    --zones:9px;
    display:grid!important;
    grid-template-columns:18px 24px minmax(0,1fr) var(--wk) var(--moon) var(--zones)!important;
    grid-template-rows:minmax(18px,auto)!important;
    align-items:stretch!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    padding:0!important;
    margin:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-weekday{grid-column:1!important;grid-row:1!important}
.sac-cad-root.is-cad-list .sac-cad-list-date{grid-column:2!important;grid-row:1!important}
.sac-cad-root.is-cad-list .sac-cad-list-event{grid-column:3!important;grid-row:1!important}
.sac-cad-root.is-cad-list .sac-cad-list-week{grid-column:4!important;grid-row:1!important}
.sac-cad-root.is-cad-list .sac-cad-list-moon{grid-column:5!important;grid-row:1!important}
.sac-cad-root.is-cad-list .sac-cad-list-zones{grid-column:6!important;grid-row:1!important}

.sac-cad-root.is-cad-list .sac-cad-list-day > span{
    position:static!important;
    float:none!important;
    min-width:0!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    box-sizing:border-box!important;
    white-space:nowrap!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-event{
    display:block!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    padding:2px 3px!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-week,
.sac-cad-root.is-cad-list .sac-cad-list-moon{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    padding:1px!important;
}

/* Hidden week/moon = zero-width explicit track, not a changed column count. */
.sac-cad-root.is-cad-list.sac-cad-hide-semaine .sac-cad-list-day{--wk:0px}
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-list-day{--moon:0px}
.sac-cad-root.is-cad-list.sac-cad-hide-semaine .sac-cad-list-week,
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-list-moon{
    display:none!important;
    padding:0!important;
    border:0!important;
}

/* Zone pack stays one fixed right-most track and packs A/B/C from left to right
   inside it while wrapper itself remains anchored to the far right. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    gap:0!important;
    overflow:hidden!important;
    padding:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone{
    position:static!important;
    display:block!important;
    flex:0 0 3px!important;
    width:3px!important;
    min-width:3px!important;
    max-width:3px!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-list-zones > .sac-cad-zone-a,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-list-zones > .sac-cad-zone-b,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-list-zones > .sac-cad-zone-c{
    display:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day{--zones:9px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-list-day{--zones:6px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-c .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--zones:3px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--zones:0px}

/* Keep every list row single-line even under inherited annual-col responsive rules. */
@media (max-width:1200px){
    .sac-cad-root.is-cad-list .sac-cad-list-day{
        display:grid!important;
        grid-template-columns:18px 24px minmax(0,1fr) var(--wk) var(--moon) var(--zones)!important;
        grid-template-rows:minmax(18px,auto)!important;
    }
}


/* =========================================================
   v4.21.9 - CAD definitive isolated Grid/List layout
   ========================================================= */

/* GRID: title bar is outside the date matrix. */
.sac-cad-root .sac-cad-grid-titlebar{
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    min-height:34px!important;
    border-bottom:1px solid #e2e2e2!important;
    background:#f3f3f3!important;
}
.sac-cad-root .sac-cad-grid-month-number,
.sac-cad-root .sac-cad-grid-month-title{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:34px!important;
    padding:4px 2px!important;
    box-sizing:border-box!important;
    line-height:1.2!important;
    font-weight:700!important;
}
.sac-cad-root .sac-cad-grid-month-number{
    border-right:1px solid #e2e2e2!important;
    font-size:16px!important;
}
.sac-cad-root .sac-cad-grid-month-title{
    font-size:15px!important;
}

/* Normal Grid body = week + seven days. */
.sac-cad-root .sac-cad-grid-body{
    display:grid!important;
    grid-template-columns:46px repeat(7,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    width:100%!important;
    min-width:0!important;
    gap:0!important;
    box-sizing:border-box!important;
}
.sac-cad-root .sac-cad-grid-cell{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:34px!important;
    padding:4px 2px!important;
    margin:0!important;
    box-sizing:border-box!important;
    border-right:1px solid #e2e2e2!important;
    border-bottom:1px solid #e2e2e2!important;
    text-align:center!important;
    line-height:1.2!important;
    font-size:12px!important;
    position:relative!important;
}
.sac-cad-root .sac-cad-grid-last-col{border-right:0!important}
.sac-cad-root .sac-cad-grid-last-row{border-bottom:0!important}
.sac-cad-root .sac-cad-grid-week-label,
.sac-cad-root .sac-cad-grid-day-header,
.sac-cad-root .sac-cad-grid-week-number{
    background:#fafafa!important;
    font-weight:700!important;
}
.sac-cad-root .sac-cad-grid-week-number{color:#666!important}
.sac-cad-root .sac-cad-grid-day-cell{background:#fff!important;color:#333!important}
.sac-cad-root .sac-cad-grid-empty-cell{background:#f8f8f8!important}
.sac-cad-root .sac-cad-grid-saturday{background:#fff8ef!important}
.sac-cad-root .sac-cad-grid-sunday{background:#ffefd9!important}
.sac-cad-root .sac-cad-grid-date-cell.is-cad-ferie-active{
    color:#c62828!important;
    font-weight:700!important;
    background:#fff2f2!important;
}
/* Weekend remains weekend-colored even when it is also a holiday. */
.sac-cad-root .sac-cad-grid-date-cell.sac-cad-grid-saturday.is-cad-ferie-active{background:#fff8ef!important}
.sac-cad-root .sac-cad-grid-date-cell.sac-cad-grid-sunday.is-cad-ferie-active{background:#ffefd9!important}

/* Hide week: ONLY body changes 8 -> 7 columns. Title bar never participates,
   therefore no cell can shift vertically or horizontally. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-body{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-week-slot{
    display:none!important;
}
/* Number cell remains in title exactly as requested. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar{
    grid-template-columns:46px minmax(0,1fr)!important;
}

/* LIST: completely independent of annual-col grid rules. */
.sac-cad-root .sac-cad-list-month{
    min-width:0!important;
    overflow:hidden!important;
    background:#fff!important;
    border:1px solid #d8d8d8!important;
    border-radius:8px!important;
}
.sac-cad-root .sac-cad-month-title{
    margin:0!important;
    padding:7px 6px!important;
    background:#f3f3f3!important;
    border-bottom:1px solid #d8d8d8!important;
    text-align:center!important;
    font-size:14px!important;
    line-height:1.2!important;
    font-weight:700!important;
}
.sac-cad-root .sac-cad-list-days{width:100%!important;min-width:0!important}
.sac-cad-root.is-cad-list .sac-cad-list-day{
    --cad-wk:25px;
    --cad-moon:27px;
    --cad-zones:9px;
    display:grid!important;
    grid-template-columns:18px 24px minmax(0,1fr) var(--cad-wk) var(--cad-moon) var(--cad-zones)!important;
    grid-template-rows:24px!important;
    align-items:stretch!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:24px!important;
    min-height:24px!important;
    padding:0!important;
    margin:0!important;
    border-bottom:1px solid #ededed!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child{border-bottom:0!important}
.sac-cad-root.is-cad-list .sac-cad-list-day > span{
    min-width:0!important;
    height:100%!important;
    margin:0!important;
    padding:0 2px!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-event{
    justify-content:flex-start!important;
    padding:0 4px!important;
    text-overflow:ellipsis!important;
    color:#555!important;
    font-weight:400!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day.is-cad-ferie-active .sac-cad-list-event{
    color:#c62828!important;
    font-weight:700!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day.is-cad-autre-active .sac-cad-list-event{
    color:#555!important;
    font-weight:600!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day.is-cad-saint-active .sac-cad-list-event{
    color:#555!important;
    font-weight:400!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-weekday{font-weight:700!important;color:#555!important}
.sac-cad-root.is-cad-list .sac-cad-list-date{font-weight:700!important}
.sac-cad-root.is-cad-list .sac-cad-list-week{font-size:13px!important;color:#777!important;font-weight:700!important}
.sac-cad-root.is-cad-list .sac-cad-list-moon{font-size:12px!important}
.sac-cad-root.is-cad-list .sac-cad-saturday{background:#fff8ef!important}
.sac-cad-root.is-cad-list .sac-cad-sunday{background:#fff0dc!important}

/* Hide week/moon by zeroing their fixed track; row height and column count stay fixed. */
.sac-cad-root.is-cad-list.sac-cad-hide-semaine .sac-cad-list-day{--cad-wk:0px!important}
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-list-day{--cad-moon:0px!important}
.sac-cad-root.is-cad-list.sac-cad-hide-semaine .sac-cad-list-week,
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-list-moon{
    display:none!important;
    width:0!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
}

/* Zone wrapper is one right-most track; A/B/C always pack against the right edge. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    display:flex!important;
    flex-direction:row!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    gap:0!important;
    padding:0!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone{
    display:block!important;
    flex:0 0 3px!important;
    width:3px!important;
    min-width:3px!important;
    max-width:3px!important;
    height:24px!important;
    padding:0!important;
    margin:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-a.is-holiday{background:#e56b00!important}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-b.is-holiday{background:#0077d6!important}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-c.is-holiday{background:#14833b!important}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-zone-a,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-zone-b,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-zone-c{display:none!important}
.sac-cad-root.is-cad-list .sac-cad-list-day{--cad-zones:9px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zones:6px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-c .sac-cad-list-day,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zones:3px}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-list-day{--cad-zones:0px}

/* Force zone controls back to their saved state every time List is shown. */
.sac-cad-root.is-cad-list .sac-cad-options-school .sac-monthly-school-filter-content{display:flex!important}
.sac-cad-root.is-cad-grid .sac-cad-options-school .sac-monthly-school-filter-content{display:none!important}

@media(max-width:560px){
    .sac-cad-root .sac-cad-grid-titlebar{grid-template-columns:42px minmax(0,1fr)!important}
    .sac-cad-root .sac-cad-grid-body{grid-template-columns:42px repeat(7,minmax(0,1fr))!important}
    .sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-body{grid-template-columns:repeat(7,minmax(0,1fr))!important}
    .sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar{grid-template-columns:42px minmax(0,1fr)!important}
    .sac-cad-root .sac-cad-grid-cell{min-height:32px!important;font-size:11px!important}
}


/* =========================================================
   v4.22.0 - CAD small alignment refinements
   ========================================================= */

/* LIST: event / nameday / holiday text must stay left aligned. */
.sac-cad-root.is-cad-list .sac-cad-list-event{
    text-align:left!important;
    justify-content:flex-start!important;
    align-items:center!important;
}

/* LIST: keep Zone A/B/C strips visually continuous through row borders.
   The zone cells paint their own top/bottom edge with the same zone color
   whenever the zone is active, preventing a broken segmented appearance. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    overflow:visible!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone{
    box-sizing:border-box!important;
    border-top:0!important;
    border-bottom:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-a.is-holiday{
    background:#e56b00!important;
    box-shadow:0 -1px 0 #e56b00,0 1px 0 #e56b00!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-b.is-holiday{
    background:#0077d6!important;
    box-shadow:0 -1px 0 #0077d6,0 1px 0 #0077d6!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-c.is-holiday{
    background:#14833b!important;
    box-shadow:0 -1px 0 #14833b,0 1px 0 #14833b!important;
}

/* GRID: when week-number column is hidden, the month-number segment is only
   a visual label inside the title. Remove its right divider so it does not
   imply alignment with the former week-number column. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-cad-grid-month-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-annual-month-number{
    border-right:0!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar::before,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-month-number::after{
    border-right:0!important;
    box-shadow:none!important;
}


/* =========================================================
   v4.22.1 - decisive visual fixes
   ========================================================= */

/* LIST EVENT: force true left alignment regardless of inherited flex/grid rules. */
.sac-cad-root.is-cad-list .sac-cad-list-event{
    display:block!important;
    text-align:left!important;
    justify-content:initial!important;
    align-items:initial!important;
    place-content:initial!important;
    place-items:initial!important;
    padding-left:4px!important;
    padding-right:3px!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-event,
.sac-cad-root.is-cad-list .sac-cad-list-event *{
    text-align:left!important;
}

/* GRID HIDE WEEK: hide the month-number box completely.
   Month title spans full width and centers over the 7-column calendar. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar{
    display:block!important;
    grid-template-columns:none!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-cad-grid-month-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-annual-month-number{
    display:none!important;
    width:0!important;
    min-width:0!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-cad-grid-month-title,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-annual-month-title{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    padding:4px 6px!important;
    margin:0!important;
    border-left:0!important;
    border-right:0!important;
    box-sizing:border-box!important;
}

/* LIST ZONES: paint the REAL top/bottom borders with the same zone color.
   This removes the segmented/dashed look produced by row borders crossing the strips. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    overflow:visible!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone{
    box-sizing:border-box!important;
    border-left:0!important;
    border-right:0!important;
    margin-top:-1px!important;
    margin-bottom:-1px!important;
    height:calc(100% + 2px)!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-a.is-holiday{
    background:#e56b00!important;
    border-top:1px solid #e56b00!important;
    border-bottom:1px solid #e56b00!important;
    box-shadow:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-b.is-holiday{
    background:#0077d6!important;
    border-top:1px solid #0077d6!important;
    border-bottom:1px solid #0077d6!important;
    box-shadow:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-zones > .sac-cad-zone-c.is-holiday{
    background:#14833b!important;
    border-top:1px solid #14833b!important;
    border-bottom:1px solid #14833b!important;
    box-shadow:none!important;
}

/* Also suppress any row separator over the zone pack itself. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    border-top:0!important;
    border-bottom:0!important;
}


/* =========================================================
   v4.22.2 - root-cause fix: selector specificity + zone separators
   ========================================================= */

/* The generic direct-child rule has higher specificity than .sac-cad-list-event.
   Override with the SAME structural specificity plus the event class. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-event{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    place-content:normal!important;
    place-items:normal!important;
    padding:0 4px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-event *{
    text-align:left!important;
}

/* Put row separators on ordinary cells instead of the row itself.
   This prevents a gray horizontal line from cutting through the Zone strips. */
.sac-cad-root.is-cad-list .sac-cad-list-day{
    border-bottom:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-weekday,
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-date,
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-event,
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-week,
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-moon{
    border-bottom:1px solid #ededed!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child > .sac-cad-list-weekday,
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child > .sac-cad-list-date,
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child > .sac-cad-list-event,
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child > .sac-cad-list-week,
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child > .sac-cad-list-moon{
    border-bottom:0!important;
}

/* Zone wrapper must not inherit overflow:hidden from the generic direct-child rule. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-zones{
    display:flex!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    overflow:visible!important;
    padding:0!important;
    border:0!important;
}

/* Each strip owns its horizontal borders. Active strips use the exact same
   color for fill + top + bottom, so no gray/white separator crosses the strip. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-zones > .sac-cad-zone{
    display:block!important;
    flex:0 0 3px!important;
    width:3px!important;
    min-width:3px!important;
    max-width:3px!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    box-sizing:border-box!important;
    border-left:0!important;
    border-right:0!important;
    border-top:1px solid transparent!important;
    border-bottom:1px solid #ededed!important;
    box-shadow:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day:last-child > .sac-cad-list-zones > .sac-cad-zone{
    border-bottom-color:transparent!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-zones > .sac-cad-zone-a.is-holiday{
    background:#e56b00!important;
    border-top-color:#e56b00!important;
    border-bottom-color:#e56b00!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-zones > .sac-cad-zone-b.is-holiday{
    background:#0077d6!important;
    border-top-color:#0077d6!important;
    border-bottom-color:#0077d6!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-zones > .sac-cad-zone-c.is-holiday{
    background:#14833b!important;
    border-top-color:#14833b!important;
    border-bottom-color:#14833b!important;
}


/* =========================================================
   v4.22.3 - vertical alignment + true Zone hide
   ========================================================= */

/* LIST EVENT: left aligned horizontally, vertically centered in the row. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-event{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:left!important;
    align-self:stretch!important;
    min-height:100%!important;
    padding-top:0!important;
    padding-bottom:0!important;
}

/* Zone visibility must follow checkbox state, not merely track width. */
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-list-zones > .sac-cad-zone-a,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-list-zones > .sac-cad-zone-b,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-list-zones > .sac-cad-zone-c{
    display:none!important;
    visibility:hidden!important;
    width:0!important;
    min-width:0!important;
    max-width:0!important;
    flex:0 0 0!important;
    border:0!important;
    padding:0!important;
    margin:0!important;
}

/* Visible zones stay compact and flush right. */
.sac-cad-root.is-cad-list .sac-cad-list-zones{
    display:flex!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    gap:0!important;
}


/* =========================================================
   v4.22.4 - square List cards + Grid holiday table
   ========================================================= */

/* LIST VIEW: month cards remain fully square-cornered. */
.sac-cad-root.is-cad-list .sac-cad-list-month,
.sac-cad-root.is-cad-list .sac-cad-list-months .sac-cad-list-month,
.sac-cad-root.is-cad-list .sac-cad-list-month .sac-cad-month-title,
.sac-cad-root.is-cad-list .sac-cad-list-month .sac-cad-list-days{
    border-radius:0!important;
}

/* GRID holiday summary table. */
.sac-cad-root .sac-cad-grid-holidays{
    margin-top:22px;
    width:100%;
}
.sac-cad-root .sac-cad-grid-holidays-title{
    margin:0 0 10px;
    text-align:center;
}
.sac-cad-root .sac-cad-grid-holidays-table-wrap{
    width:100%;
    overflow-x:auto;
}
.sac-cad-root .sac-cad-grid-holidays-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
    background:#fff;
}
.sac-cad-root .sac-cad-grid-holidays-table th,
.sac-cad-root .sac-cad-grid-holidays-table td{
    border:1px solid #d8d8d8;
    padding:7px 9px;
    vertical-align:middle;
    text-align:left;
}
.sac-cad-root .sac-cad-grid-holidays-table th:first-child,
.sac-cad-root .sac-cad-grid-holidays-table td:first-child{
    width:42%;
}
.sac-cad-root .sac-cad-grid-holidays-table th{
    font-weight:700;
    text-align:center;
}

/* If Fériés is unchecked, the Grid holiday table follows the same filter. */
.sac-cad-root.sac-cad-hide-feries .sac-cad-grid-holidays{
    display:none!important;
}


/* =========================================================
   v4.22.5 - compact centered Fériés table
   ========================================================= */
.sac-cad-root .sac-cad-grid-holidays{
    text-align:center;
}
.sac-cad-root .sac-cad-grid-holidays-table-wrap{
    display:inline-block!important;
    width:auto!important;
    max-width:100%!important;
    overflow-x:auto!important;
    text-align:left!important;
}
.sac-cad-root .sac-cad-grid-holidays-table{
    width:auto!important;
    min-width:0!important;
    table-layout:auto!important;
    margin:0 auto!important;
    border-collapse:collapse!important;
}
.sac-cad-root .sac-cad-grid-holidays-table th,
.sac-cad-root .sac-cad-grid-holidays-table td{
    width:auto!important;
    min-width:0!important;
    white-space:nowrap!important;
    text-align:left!important;
}
.sac-cad-root .sac-cad-grid-holidays-table th:first-child,
.sac-cad-root .sac-cad-grid-holidays-table td:first-child{
    width:auto!important;
}
.sac-cad-root .sac-cad-grid-holidays-table th:nth-child(1),
.sac-cad-root .sac-cad-grid-holidays-table td:nth-child(1){
    white-space:nowrap!important;
}
.sac-cad-root .sac-cad-grid-holidays-table th:nth-child(2),
.sac-cad-root .sac-cad-grid-holidays-table td:nth-child(2){
    white-space:nowrap!important;
}
.sac-cad-root .sac-cad-grid-holidays-table th:nth-child(3),
.sac-cad-root .sac-cad-grid-holidays-table td:nth-child(3){
    white-space:nowrap!important;
}


/* =========================================================
   v4.22.6 - Fériés table zebra + hover
   ========================================================= */
.sac-cad-root .sac-cad-grid-holidays-table tbody tr:nth-child(odd){
    background:#f5f5f5!important;
}
.sac-cad-root .sac-cad-grid-holidays-table tbody tr:nth-child(even){
    background:#fff!important;
}
.sac-cad-root .sac-cad-grid-holidays-table tbody tr{
    transition:background-color .15s ease,color .15s ease;
}
.sac-cad-root .sac-cad-grid-holidays-table tbody tr:hover{
    background:#eaf6ff!important;
}
.sac-cad-root .sac-cad-grid-holidays-table tbody tr:hover td{
    color:#ee7644!important;
    font-weight:700!important;
}


/* =========================================================
   v4.22.7 - Fériés split into one table per displayed year
   ========================================================= */
.sac-cad-root .sac-cad-grid-holidays-groups{
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:22px;
    margin-top:22px;
}
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays{
    margin-top:0!important;
    width:auto!important;
    max-width:100%!important;
}


/* =========================================================
   v4.22.8 - Fériés tables align with Grid month-card width
   ========================================================= */

/* Desktop: same effective width as one of the 3 calendar month cards.
   Existing year tables share the row evenly across the available width. */
.sac-cad-root .sac-cad-grid-holidays-groups{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:22px 0!important;
    width:100%!important;
    max-width:100%!important;
}
.sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
    flex:0 0 calc((100% - 36px) / 3)!important;
    width:calc((100% - 36px) / 3)!important;
    max-width:calc((100% - 36px) / 3)!important;
    min-width:0!important;
}
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table-wrap{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
}
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table{
    width:100%!important;
    max-width:100%!important;
}

/* Medium screens: mirror the calendar's 2-column Grid breakpoint. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        gap:18px 0!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        flex-basis:calc((100% - 14px) / 2)!important;
        width:calc((100% - 14px) / 2)!important;
        max-width:calc((100% - 14px) / 2)!important;
    }
}

/* Responsive: once the calendar itself becomes one column, stack Fériés too. */
@media (max-width:700px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        flex-direction:column!important;
        flex-wrap:nowrap!important;
        align-items:stretch!important;
        gap:20px!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        flex:0 0 auto!important;
        width:100%!important;
        max-width:100%!important;
    }
}


/* =========================================================
   v4.22.9 - flexible centered Fériés tables, content-fit widths
   ========================================================= */

/* Center the whole group when it contains 1 or 2 tables.
   With 3 tables, they still fill one row when the calendar itself fits 3 columns. */
.sac-cad-root .sac-cad-grid-holidays-groups{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:flex-start!important;
    justify-content:center!important;
    column-gap:12px!important;
    row-gap:22px!important;
    width:100%!important;
    max-width:100%!important;
}

/* Default desktop width remains close to one calendar month card,
   but each table may grow a little if its content needs it. */
.sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
    flex:0 1 calc((100% - 24px) / 3)!important;
    width:auto!important;
    min-width:min-content!important;
    max-width:calc((100% - 24px) / 3 + 34px)!important;
}

/* Remove inner horizontal scrollbar; let the table define the needed width.
   The outer flex layout will reduce gaps and rebalance first. */
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table-wrap{
    display:block!important;
    width:auto!important;
    max-width:100%!important;
    overflow-x:visible!important;
}
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table{
    width:max-content!important;
    min-width:100%!important;
    max-width:none!important;
    table-layout:auto!important;
}

/* Keep content on one line, but trim horizontal cell padding slightly
   so three tables have the best chance to remain on one row. */
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table th,
.sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table td{
    white-space:nowrap!important;
    padding-left:7px!important;
    padding-right:7px!important;
}

/* When exactly three year tables exist, compress the horizontal gap further
   so all three remain aligned in one row whenever the 3-column calendar fits. */
.sac-cad-root .sac-cad-grid-holidays-groups:has(> .sac-cad-grid-holidays:nth-child(3)){
    column-gap:6px!important;
}
.sac-cad-root .sac-cad-grid-holidays-groups:has(> .sac-cad-grid-holidays:nth-child(3))
> .sac-cad-grid-holidays{
    flex-basis:calc((100% - 12px) / 3)!important;
    max-width:calc((100% - 12px) / 3 + 40px)!important;
}

/* Two-column responsive range mirrors the calendar and centers any incomplete row. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        justify-content:center!important;
        column-gap:10px!important;
        row-gap:18px!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        flex:0 1 calc((100% - 10px) / 2)!important;
        max-width:calc((100% - 10px) / 2 + 28px)!important;
    }
}

/* One-column responsive range. */
@media (max-width:700px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        flex-direction:column!important;
        flex-wrap:nowrap!important;
        align-items:center!important;
        row-gap:20px!important;
        column-gap:0!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        flex:0 0 auto!important;
        width:auto!important;
        max-width:100%!important;
        min-width:0!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table-wrap{
        max-width:100%!important;
        overflow-x:auto!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table{
        width:max-content!important;
        min-width:100%!important;
    }
}


/* =========================================================
   v4.23.0 - left-align incomplete responsive Fériés rows
   ========================================================= */

/* Tablet / responsive multi-column range:
   if the row contains only 1 or 2 remaining tables, keep them flush left
   so all year tables align vertically by column. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        justify-content:flex-start!important;
    }
}

/* Single-column responsive range: keep each stacked table aligned left
   rather than centered, matching the same left edge. */
@media (max-width:700px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        align-items:flex-start!important;
        justify-content:flex-start!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        margin-left:0!important;
        margin-right:0!important;
    }
}


/* =========================================================
   v4.23.1 - fit Fériés tables inside very narrow viewports
   ========================================================= */

/* On narrow screens, reduce typography and cell padding before allowing overflow. */
@media (max-width:700px){
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        width:100%!important;
        max-width:100%!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table-wrap{
        width:100%!important;
        max-width:100%!important;
        overflow-x:hidden!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table{
        width:100%!important;
        min-width:0!important;
        max-width:100%!important;
        table-layout:auto!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table th,
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table td{
        font-size:clamp(8px,2.4vw,11px)!important;
        padding:5px 4px!important;
        line-height:1.15!important;
        white-space:nowrap!important;
    }
}

/* Extra-small phones: compress further so the 3-column table remains visible. */
@media (max-width:430px){
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table th,
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table td{
        font-size:clamp(7px,2.25vw,9px)!important;
        padding:4px 2px!important;
        letter-spacing:-0.1px!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-title{
        font-size:clamp(15px,4.5vw,20px)!important;
    }
}


/* =========================================================
   v4.23.2 - unified responsive Fériés stacking + Options priority
   ========================================================= */

/* FÉRIÉS:
   As soon as desktop 3-column layout no longer fits, move ALL year tables
   to a single vertical stack so no orphan table sits alone on a second row.
   Every table fills the available view width. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-grid-holidays-groups{
        display:flex!important;
        flex-direction:column!important;
        flex-wrap:nowrap!important;
        align-items:stretch!important;
        justify-content:flex-start!important;
        width:100%!important;
        gap:18px!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        flex:0 0 auto!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin:0!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table-wrap{
        width:100%!important;
        max-width:100%!important;
    }
    .sac-cad-root .sac-cad-grid-holidays-groups .sac-cad-grid-holidays-table{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
    }
}

/* OPTIONS RESPONSIVE PRIORITY:
   Month/year navigation becomes the first full-width row.
   Content filters and school/export remain side-by-side underneath
   whenever there is enough width. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-options-grid{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
        gap:12px!important;
        align-items:stretch!important;
    }
    .sac-cad-root .sac-cad-options-nav{
        grid-column:1 / -1!important;
        grid-row:1!important;
        width:100%!important;
        max-width:100%!important;
        order:-1!important;
    }
    .sac-cad-root .sac-cad-options-content{
        grid-column:1!important;
        grid-row:2!important;
        width:100%!important;
    }
    .sac-cad-root .sac-cad-options-school{
        grid-column:2!important;
        grid-row:2!important;
        width:100%!important;
    }
}

/* Only on narrower screens do the two lower option columns stack as well. */
@media (max-width:620px){
    .sac-cad-root .sac-cad-options-grid{
        grid-template-columns:1fr!important;
    }
    .sac-cad-root .sac-cad-options-nav{
        grid-column:1!important;
        grid-row:1!important;
    }
    .sac-cad-root .sac-cad-options-content{
        grid-column:1!important;
        grid-row:2!important;
    }
    .sac-cad-root .sac-cad-options-school{
        grid-column:1!important;
        grid-row:3!important;
    }
}


/* =========================================================
   v4.23.3 - authoritative responsive Fériés layout
   Fixes residual 2+1 wrapping and narrow stacked tables.
   ========================================================= */

/* Desktop: keep current flexible horizontal layout. */

/* Responsive Grid View:
   Once the 3-column Fériés row no longer fits, force ALL tables into
   one vertical column. Do not allow flex-wrap to create a 2+1 layout. */
@media (max-width:900px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-groups{
        display:grid!important;
        grid-template-columns:minmax(0,1fr)!important;
        grid-auto-flow:row!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        align-items:stretch!important;
        justify-items:stretch!important;
        gap:18px!important;
        margin-left:0!important;
        margin-right:0!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        display:block!important;
        float:none!important;
        flex:none!important;
        flex-basis:auto!important;
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
        margin:0!important;
        padding:0!important;
        justify-self:stretch!important;
        align-self:stretch!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table-wrap{
        display:block!important;
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
        margin:0!important;
        overflow-x:hidden!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table{
        display:table!important;
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
        margin:0!important;
        table-layout:auto!important;
    }
}

/* Narrow screens: preserve full-width tables and shrink typography only
   as needed, rather than shrinking the table element itself. */
@media (max-width:700px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-groups,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table-wrap,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table{
        width:100%!important;
        max-width:none!important;
        min-width:0!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table th,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table td{
        font-size:clamp(8px,2.4vw,11px)!important;
        padding:5px 4px!important;
        white-space:nowrap!important;
    }
}

@media (max-width:430px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table th,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table td{
        font-size:clamp(7px,2.25vw,9px)!important;
        padding:4px 2px!important;
    }
}


/* =========================================================
   v4.23.4 - Fériés breakpoint aligned before 2+1 wrapping
   ========================================================= */

/* The calendar/container can stop fitting 3 holiday tables around the
   1080-1090px range. Force the Fériés group into a single full-width
   column before flex/grid has any chance to produce a 2+1 layout. */
@media (max-width:1090px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-groups{
        display:grid!important;
        grid-template-columns:100%!important;
        grid-auto-columns:100%!important;
        grid-auto-flow:row!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        gap:18px!important;
        margin:22px 0 0!important;
        align-items:stretch!important;
        justify-items:stretch!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-groups > .sac-cad-grid-holidays{
        display:block!important;
        float:none!important;
        clear:both!important;
        flex:none!important;
        flex-grow:0!important;
        flex-shrink:0!important;
        flex-basis:100%!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin:0!important;
        padding:0!important;
        grid-column:1 / -1!important;
        justify-self:stretch!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table-wrap,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin-left:0!important;
        margin-right:0!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-view .sac-cad-grid-holidays-table{
        display:table!important;
        table-layout:auto!important;
    }
}


/* =========================================================
   v4.23.5 - localized "Start month" label
   ========================================================= */
.sac-cad-root .sac-cad-start-month-label{
    width:100%;
    margin:0 0 6px;
    text-align:center;
    font-weight:700;
    line-height:1.25;
}


/* =========================================================
   v4.23.6 - CAD export dialog copied from calendrier_deux_mois
   ========================================================= */
.sac-cad-export-modal[hidden]{display:none!important}
.sac-cad-export-modal{
    position:fixed!important;
    inset:0!important;
    z-index:999999!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:18px!important;
    box-sizing:border-box!important;
}
.sac-cad-export-backdrop{
    position:absolute!important;
    inset:0!important;
    background:rgba(0,0,0,.48)!important;
}
.sac-cad-export-dialog{
    position:relative!important;
    z-index:1!important;
    width:min(620px,100%)!important;
    max-height:90vh!important;
    overflow:auto!important;
    background:#fff!important;
    border-radius:8px!important;
    padding:20px!important;
    box-sizing:border-box!important;
    box-shadow:0 12px 36px rgba(0,0,0,.24)!important;
    text-align:left!important;
}
.sac-cad-export-close{
    position:absolute!important;
    right:10px!important;
    top:8px!important;
    border:0!important;
    background:transparent!important;
    font-size:26px!important;
    line-height:1!important;
    cursor:pointer!important;
    color:#444!important;
}
.sac-cad-export-title{
    text-align:center!important;
    margin:0 36px 16px!important;
    font-size:20px!important;
}
.sac-cad-export-view-choice,
.sac-cad-export-orientation{
    display:flex!important;
    justify-content:center!important;
    gap:18px!important;
    flex-wrap:wrap!important;
    margin:10px 0!important;
}
.sac-cad-export-view-choice label,
.sac-cad-export-orientation label{
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
    cursor:pointer!important;
}
.sac-cad-export-subtitle{
    width:100%!important;
    text-align:center!important;
    font-weight:700!important;
    margin-bottom:2px!important;
}
.sac-cad-export-description{
    text-align:center!important;
    font-size:13px!important;
    color:#555!important;
    margin:12px 0 8px!important;
}
.sac-cad-export-preview{
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    min-height:220px!important;
    padding:14px!important;
    background:#f5f5f5!important;
    border:1px solid #ddd!important;
    border-radius:5px!important;
    box-sizing:border-box!important;
}
.sac-cad-export-paper{
    background:#fff!important;
    border:1px solid #aaa!important;
    box-shadow:0 2px 8px rgba(0,0,0,.1)!important;
    padding:9px!important;
    box-sizing:border-box!important;
}
.sac-cad-export-paper.is-portrait{width:155px!important;height:219px!important}
.sac-cad-export-paper.is-landscape{width:219px!important;height:155px!important}
.sac-cad-preview-title{
    height:8px!important;
    width:60%!important;
    background:#cfcfcf!important;
    margin:0 auto 7px!important;
    border-radius:2px!important;
}
.sac-cad-preview-grid{
    display:grid!important;
    grid-template-columns:repeat(7,1fr)!important;
    gap:2px!important;
    height:calc(100% - 18px)!important;
}
.sac-cad-preview-grid span{
    border:1px solid #d6d6d6!important;
    min-height:12px!important;
    background:#fff!important;
}
.sac-cad-preview-list{
    --sac-cad-preview-cols:2;
    display:grid!important;
    grid-template-columns:repeat(var(--sac-cad-preview-cols),minmax(0,1fr))!important;
    gap:3px!important;
    align-items:start!important;
    height:calc(100% - 18px)!important;
    overflow:hidden!important;
}
.sac-cad-preview-list-month{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    border:1px solid #b8b8b8!important;
    background:#fff!important;
}
.sac-cad-preview-list-month-title{
    height:8px!important;
    flex:0 0 8px!important;
    background:#dbeaf6!important;
    border-bottom:1px solid #b8b8b8!important;
}
.sac-cad-preview-list-rows{
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
}
.sac-cad-preview-list-rows span{
    display:block!important;
    height:5px!important;
    min-height:5px!important;
    border-bottom:1px solid #dedede!important;
    background:
        linear-gradient(to right,
            #f4f4f4 0 13%,
            #d8d8d8 13% 14%,
            #fff 14% 31%,
            #d8d8d8 31% 32%,
            #fff 32% 72%,
            #d8d8d8 72% 73%,
            #fff 73% 84%,
            #d8d8d8 84% 85%,
            #fff 85% 100%)!important;
}
.sac-cad-preview-list-rows span:last-child{
    border-bottom:0!important;
}
.sac-cad-export-confirm-wrap{
    text-align:center!important;
    margin-top:14px!important;
}
.sac-cad-export-confirm{
    min-width:190px!important;
    padding:9px 16px!important;
    border:0!important;
    border-radius:4px!important;
    background:#2F75B5!important;
    color:#fff!important;
    font-weight:700!important;
    cursor:pointer!important;
}
@media(max-width:760px){
    .sac-cad-export-dialog{padding:18px 14px!important}
}


/* v4.24.3 - PDF List View: configurable months per page */
.sac-cad-export-months-per-page{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-direction:column;
    gap:6px;
    margin:10px 0;
}
.sac-cad-export-months-per-page[hidden]{display:none!important}
.sac-cad-export-months-select{
    min-width:150px;height:36px;padding:4px 30px 4px 10px;
    border:1px solid #aaa;border-radius:0;background:#fff;
    text-align:center;font-size:14px;
}


/* =========================================================
   v4.25.2 - CAD Options export button identity
   PDF badge = red, JPG badge = blue.
   When the badge is removed on narrow responsive layouts,
   the full button gets the corresponding 2px border.
========================================================= */
.sac-cad-root .sac-cad-open-export-pdf,
.sac-cad-root .sac-cad-open-export-jpg{
    background:#fff!important;
    color:#222!important;
    border:1px solid #b7b7b7!important;
}
.sac-cad-root .sac-cad-open-export-pdf .sac-monthly-export-badge{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#c62828!important;
    color:#fff!important;
    border:1px solid #c62828!important;
}
.sac-cad-root .sac-cad-open-export-jpg .sac-monthly-export-badge{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#2f75b5!important;
    color:#fff!important;
    border:1px solid #2f75b5!important;
}
.sac-cad-root .sac-cad-open-export-pdf:hover,
.sac-cad-root .sac-cad-open-export-jpg:hover{
    background:#f3f3f3!important;
}

@media (max-width:520px){
    .sac-cad-root .sac-cad-export-actions .sac-monthly-export-badge{
        display:none!important;
    }
    .sac-cad-root .sac-cad-open-export-pdf{
        border:2px solid #c62828!important;
    }
    .sac-cad-root .sac-cad-open-export-jpg{
        border:2px solid #2f75b5!important;
    }
}


/* v4.25.5 - CAD List View: uniform strong month outer border */
.sac-cad-root .sac-cad-list-month{
    border:1px solid #9a9a9a!important;
    box-sizing:border-box!important;
}
.sac-cad-root .sac-cad-list-month .sac-cad-month-title{
    border-left:0!important;
    border-right:0!important;
    border-top:0!important;
    border-bottom:1px solid #9a9a9a!important;
    box-sizing:border-box!important;
}


/* =========================================================
   v4.25.6 - CAD List View: one single outer border
   The month wrapper owns the complete outline so title/body
   cannot render with different border strength.
========================================================= */
.sac-cad-root .sac-cad-list-month{
    border:1px solid #8f8f8f!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
}

.sac-cad-root .sac-cad-list-month .sac-cad-month-title{
    border:0!important;
    border-bottom:1px solid #8f8f8f!important;
    box-sizing:border-box!important;
    margin:0!important;
}

.sac-cad-root .sac-cad-list-month .sac-cad-list-days{
    border:0!important;
    box-sizing:border-box!important;
}

.sac-cad-root .sac-cad-list-month .sac-cad-list-day{
    border-left:0!important;
    border-right:0!important;
}

.sac-cad-root .sac-cad-list-month .sac-cad-list-day:last-child{
    border-bottom:0!important;
}


/* =========================================================
   v4.26.1 - calendrier_annuel_dualview annual-only shell.
   Core Grid/List/Options/Export CSS above is cloned from the source module.
========================================================= */
.sac-cad-root .sac-cad-year-only-nav{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
}
.sac-cad-root .sac-cad-return-above-year{
    width:100%!important;
    text-align:center!important;
    margin:0!important;
}
.sac-cad-root .sac-cad-year-nav-line{
    width:100%!important;
    display:grid!important;
    grid-template-columns:38px minmax(120px,220px) 38px!important;
    justify-content:center!important;
    align-items:center!important;
    gap:6px!important;
}
.sac-cad-root .sac-cad-year-nav-line .sac-cad-year-select{
    width:100%!important;
    min-width:0!important;
    height:38px!important;
    margin:0!important;
    border-radius:0!important;
    text-align:center!important;
}
.sac-cad-root .sac-cad-year-nav-line .sac-cad-nav-btn,
.sac-cad-root .sac-cad-year-nav-line .sac-annual-year-nav-spacer{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
}
.sac-cad-root .sac-cad-view-toggle-in-year{
    width:100%!important;
    margin:0!important;
    display:flex!important;
    justify-content:center!important;
}
.sac-cad-root .sac-cad-list-month,
.sac-cad-root .sac-cad-list-month .sac-cad-month-title,
.sac-cad-root .sac-cad-list-month .sac-cad-list-days,
.sac-cad-root .sac-cad-list-month .sac-cad-list-day{
    border-radius:0!important;
}
.sac-cad-root .sac-cad-grid-view[hidden],
.sac-cad-root .sac-cad-list-view[hidden]{
    display:none!important;
}


/* =========================================================
   v4.26.2 - CAD isolation from shared annual-cols handlers
========================================================= */
.sac-cad-root .sac-cad-return-current{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:36px!important;
    padding:7px 12px!important;
    cursor:pointer!important;
}
.sac-cad-root .sac-cad-nav-btn{
    cursor:pointer!important;
}
.sac-cad-root .sac-cad-list-event{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
}
.sac-cad-root .sac-cad-list-zones{
    visibility:visible!important;
    opacity:1!important;
}


/* =========================================================
   v4.26.3 - CAD option controls + dedicated Grid reference tables
========================================================= */

/* Full Options are available in both views. */
.sac-cad-root.is-cad-grid .sac-cad-options-content .sac-annual-filter-item[data-cad-option-hidden="1"]{
    display:flex!important;
}
.sac-cad-root.is-cad-grid .sac-cad-options-school .sac-monthly-school-filter-content{
    display:flex!important;
}
.sac-cad-root.is-cad-grid .sac-cad-options-school{
    justify-content:initial!important;
}

/* Center the whole year selector row precisely. */
.sac-cad-root .sac-cad-year-nav-line{
    margin-left:auto!important;
    margin-right:auto!important;
    justify-content:center!important;
    justify-items:center!important;
}

/* Navigation arrows and View button intentionally use the same flat control
   language as the return-current-year button. */
.sac-cad-root .sac-cad-return-current,
.sac-cad-root .sac-cad-nav-btn,
.sac-cad-root .sac-cad-view-toggle{
    appearance:none!important;
    -webkit-appearance:none!important;
    border:1px solid #c9c9c9!important;
    border-radius:0!important;
    background:#f7f7f7!important;
    box-shadow:none!important;
    color:#333!important;
    font-family:inherit!important;
    font-weight:400!important;
    cursor:pointer!important;
}
.sac-cad-root .sac-cad-return-current:hover,
.sac-cad-root .sac-cad-nav-btn:hover,
.sac-cad-root .sac-cad-view-toggle:hover{
    background:#efefef!important;
    box-shadow:none!important;
}
.sac-cad-root .sac-cad-nav-btn{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    padding:0!important;
    font-size:21px!important;
}
.sac-cad-root .sac-cad-view-toggle{
    width:min(220px,100%)!important;
    min-width:0!important;
    min-height:38px!important;
    padding:7px 12px!important;
    font-size:inherit!important;
}

/* CAD-only reference tables shown below Grid calendar. */
.sac-cad-root .sac-cad-reference-tables{
    width:100%;
    margin-top:22px;
}
.sac-cad-root .sac-cad-reference-events-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    align-items:start;
}
.sac-cad-root .sac-cad-reference-card{
    min-width:0;
    margin:0 0 18px;
}
.sac-cad-root .sac-cad-reference-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
    font-size:13px;
}
.sac-cad-root .sac-cad-reference-table th,
.sac-cad-root .sac-cad-reference-table td{
    border:1px solid #b9b9b9;
    padding:7px 8px;
    vertical-align:middle;
    text-align:left;
    overflow-wrap:anywhere;
}
.sac-cad-root .sac-cad-reference-table .sac-cad-reference-title-row th{
    background:#eaf5ff;
    text-align:center;
    padding:8px;
}
.sac-cad-root .sac-cad-reference-table .sac-cad-reference-title-row h3{
    margin:0;
    font-size:18px;
    line-height:1.25;
}
.sac-cad-root .sac-cad-reference-table thead tr:last-child th{
    background:#f2f2f2;
    text-align:center;
}
.sac-cad-root .sac-cad-reference-table tbody tr:nth-child(even) th,
.sac-cad-root .sac-cad-reference-table tbody tr:nth-child(even) td{
    background:#f7f7f7;
}
.sac-cad-root .sac-cad-reference-event-table th:nth-child(1),
.sac-cad-root .sac-cad-reference-event-table td:nth-child(1){width:23%}
.sac-cad-root .sac-cad-reference-event-table th:nth-child(2),
.sac-cad-root .sac-cad-reference-event-table td:nth-child(2){width:34%}
.sac-cad-root .sac-cad-reference-school-table th:first-child{width:28%}
.sac-cad-root .sac-cad-school-zone-a-head{border-top:4px solid #e56b00!important}
.sac-cad-root .sac-cad-school-zone-b-head{border-top:4px solid #0077d6!important}
.sac-cad-root .sac-cad-school-zone-c-head{border-top:4px solid #14833b!important}

/* Reference tables obey the same Options state. */
.sac-cad-root.sac-cad-hide-feries .sac-cad-reference-feries{display:none!important}
.sac-cad-root.sac-cad-hide-autres .sac-cad-reference-autres{display:none!important}

@media(max-width:760px){
    .sac-cad-root .sac-cad-reference-events-row{grid-template-columns:1fr}
    .sac-cad-root .sac-cad-reference-table{font-size:11px}
    .sac-cad-root .sac-cad-reference-table th,
    .sac-cad-root .sac-cad-reference-table td{padding:5px 4px}
}


/* =========================================================
   v4.26.4 - CAD Grid Options + reference-table refinements
========================================================= */

/* Keep arrows close to the year dropdown: 3px only. */
.sac-cad-root .sac-cad-year-nav-line{
    grid-template-columns:38px minmax(120px,220px) 38px!important;
    gap:3px!important;
    width:max-content!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

/* Grid does not use Saints/name-days, so hide that one control only. */
.sac-cad-root.is-cad-grid .sac-cad-options-content .sac-annual-filter-item[data-cad-option-hidden="1"]{
    display:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-options-content .sac-annual-filter-item[data-cad-option-hidden="1"]{
    display:flex!important;
}

/* Localized Grid note shown below the filter controls. */
.sac-cad-root .sac-cad-grid-options-note[hidden]{
    display:none!important;
}
.sac-cad-root .sac-cad-grid-options-note{
    width:100%;
    margin:8px 0 0!important;
    padding:0!important;
    font-size:11px;
    line-height:1.35;
    font-style:italic;
    color:#666;
}

/* Same row-hover language as the source dual-view tables:
   orange bold text + light blue background. */
.sac-cad-root .sac-cad-reference-event-table tbody tr{
    transition:background-color .15s ease,color .15s ease;
}
.sac-cad-root .sac-cad-reference-event-table tbody tr:hover th,
.sac-cad-root .sac-cad-reference-event-table tbody tr:hover td{
    background:#eaf6ff!important;
    color:#ee7644!important;
    font-weight:700!important;
}

/* Annual-cols-equivalent school-table behavior, CAD-owned selectors only. */
.sac-cad-root .sac-cad-reference-school-wrap{
    width:100%;
    display:flex;
}
.sac-cad-root .sac-cad-reference-school-table{
    transition:width .15s ease;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-3{
    width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-2{
    width:76%!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1{
    width:52%!important;
    margin-left:0!important;
    margin-right:auto!important;
}
.sac-cad-root .sac-cad-reference-school-card[hidden],
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-0{
    display:none!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover td{
    font-weight:700!important;
}
.sac-cad-root .sac-cad-school-date-start,
.sac-cad-root .sac-cad-school-date-end{
    display:block;
}
.sac-cad-root .sac-cad-school-zone-cell{
    text-align:center;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-2 th:first-child{
    width:34%!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1 th:first-child{
    width:42%!important;
}

/* JS controls merged cells dynamically, so old class-based zone hiding must
   not hide a merged A+B/C cell incorrectly. */
.sac-cad-root.sac-cad-hide-zone-a .sac-cad-reference-school-table .sac-cad-school-zone-cell,
.sac-cad-root.sac-cad-hide-zone-b .sac-cad-reference-school-table .sac-cad-school-zone-cell,
.sac-cad-root.sac-cad-hide-zone-c .sac-cad-reference-school-table .sac-cad-school-zone-cell{
    /* visibility is set by refreshReferenceSchoolTable() */
}

@media(max-width:760px){
    .sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-2{
        width:100%!important;
    }
    .sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:78%!important;
    }
}


/* =========================================================
   v4.26.5 - CAD Grid responsive audit
   Keep Options + reference tables aligned with 12-month Grid breakpoints
========================================================= */

/* Desktop / large tablet: 12-month Grid = 2 columns below 900px.
   Mirror that density in Options and lower reference tables. */
@media (max-width:900px){
    .sac-cad-root.is-cad-grid .sac-cad-options-grid{
        grid-template-columns:1fr 1fr!important;
        gap:10px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-content{
        grid-column:1/-1!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-reference-tables{
        margin-top:18px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-events-row{
        grid-template-columns:1fr 1fr!important;
        gap:12px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        font-size:12px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:6px 6px!important;
    }

    /* School table follows remaining-zone width without overflowing. */
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-wrap{
        overflow-x:visible!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-3{
        width:100%!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-2{
        width:82%!important;
        margin-left:auto!important;
        margin-right:auto!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:58%!important;
        margin-left:0!important;
        margin-right:auto!important;
    }
}

/* Mobile/tablet transition: 12-month Grid = 1 column below 700px.
   Stack Options and lower tables the same way. */
@media (max-width:700px){
    .sac-cad-root.is-cad-grid .sac-cad-options-grid{
        grid-template-columns:1fr!important;
        gap:9px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-content,
    .sac-cad-root.is-cad-grid .sac-cad-options-nav,
    .sac-cad-root.is-cad-grid .sac-cad-options-school{
        grid-column:auto!important;
        width:100%!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-year-only-nav{
        width:100%!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line{
        width:max-content!important;
        max-width:100%!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-reference-events-row{
        grid-template-columns:1fr!important;
        gap:10px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-card{
        margin-bottom:14px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        width:100%!important;
        font-size:11px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:5px 5px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table .sac-cad-reference-title-row h3{
        font-size:16px!important;
    }

    /* At the one-column calendar breakpoint, 2+ zones use the available width.
       A single zone remains left aligned but no longer becomes too narrow. */
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-3,
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-2{
        width:100%!important;
        margin-left:auto!important;
        margin-right:auto!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:72%!important;
        margin-left:0!important;
        margin-right:auto!important;
    }
}

/* Narrow mobile: match the 12-month single-column Grid without horizontal scroll. */
@media (max-width:480px){
    .sac-cad-root.is-cad-grid .sac-cad-options,
    .sac-cad-root.is-cad-grid .sac-cad-options-grid,
    .sac-cad-root.is-cad-grid .sac-cad-reference-tables,
    .sac-cad-root.is-cad-grid .sac-cad-reference-card,
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-wrap{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        box-sizing:border-box!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line{
        grid-template-columns:36px minmax(0,1fr) 36px!important;
        width:100%!important;
        gap:3px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-cad-nav-btn,
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-annual-year-nav-spacer{
        width:36px!important;
        min-width:36px!important;
        height:36px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-cad-year-select{
        width:100%!important;
        min-width:0!important;
        height:36px!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        table-layout:fixed!important;
        font-size:10px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:4px 3px!important;
        overflow-wrap:anywhere!important;
        word-break:normal!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table th:nth-child(1),
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table td:nth-child(1){
        width:22%!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table th:nth-child(2),
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table td:nth-child(2){
        width:33%!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-3,
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-2{
        width:100%!important;
        margin-left:0!important;
        margin-right:0!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:86%!important;
        margin-left:0!important;
        margin-right:auto!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table th:first-child{
        width:auto!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-options-note{
        font-size:10px!important;
        line-height:1.3!important;
    }
}


/* =========================================================
   v4.26.6 - CAD Grid viewport tuning
   Target widths: 1024 / 768 / 375 / 320 px
========================================================= */

/* 1024px class tablets / narrow desktop:
   keep 12-month Grid comfortable and avoid oversized Options/reference tables. */
@media (min-width:901px) and (max-width:1100px){
    .sac-cad-root.is-cad-grid .sac-cad-options-grid{
        gap:10px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-col{
        padding:10px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-events-row{
        gap:12px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        font-size:12px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:6px 6px!important;
    }
}

/* 768px tablets:
   Options are stacked logically but stay compact; event tables stack,
   school table remains readable without horizontal scroll. */
@media (min-width:701px) and (max-width:820px){
    .sac-cad-root.is-cad-grid .sac-cad-options-grid{
        grid-template-columns:1fr!important;
        gap:9px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-content,
    .sac-cad-root.is-cad-grid .sac-cad-options-nav,
    .sac-cad-root.is-cad-grid .sac-cad-options-school{
        width:100%!important;
        grid-column:auto!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-events-row{
        grid-template-columns:1fr!important;
        gap:10px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        font-size:11px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:5px 5px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-3,
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-2{
        width:100%!important;
        margin-left:auto!important;
        margin-right:auto!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:68%!important;
        margin-left:0!important;
        margin-right:auto!important;
    }
}

/* 375px phones:
   optimize controls and table density while preserving tap targets. */
@media (min-width:341px) and (max-width:400px){
    .sac-cad-root.is-cad-grid .sac-cad-options-grid{
        gap:7px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-col{
        padding:8px!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line{
        grid-template-columns:34px minmax(0,1fr) 34px!important;
        gap:3px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-cad-nav-btn,
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-annual-year-nav-spacer{
        width:34px!important;
        min-width:34px!important;
        height:36px!important;
        min-height:36px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-cad-year-select{
        height:36px!important;
        font-size:14px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-view-toggle,
    .sac-cad-root.is-cad-grid .sac-cad-return-current{
        min-height:36px!important;
        padding:6px 8px!important;
        font-size:13px!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        font-size:9.5px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:4px 2.5px!important;
        line-height:1.25!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table .sac-cad-reference-title-row h3{
        font-size:15px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:92%!important;
        margin-left:0!important;
        margin-right:auto!important;
    }
}

/* 320px phones:
   maximum compaction without introducing horizontal page scroll. */
@media (max-width:340px){
    .sac-cad-root.is-cad-grid .sac-cad-options{
        padding-left:6px!important;
        padding-right:6px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-grid{
        gap:6px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-options-col{
        padding:7px!important;
        min-width:0!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line{
        grid-template-columns:32px minmax(0,1fr) 32px!important;
        gap:2px!important;
        width:100%!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-cad-nav-btn,
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-annual-year-nav-spacer{
        width:32px!important;
        min-width:32px!important;
        height:34px!important;
        min-height:34px!important;
        font-size:18px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-year-nav-line .sac-cad-year-select{
        height:34px!important;
        font-size:13px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-view-toggle,
    .sac-cad-root.is-cad-grid .sac-cad-return-current{
        width:100%!important;
        max-width:100%!important;
        min-height:34px!important;
        padding:5px 7px!important;
        font-size:12px!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-grid-options-note{
        font-size:9.5px!important;
        line-height:1.25!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-reference-table{
        font-size:9px!important;
        table-layout:fixed!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table th,
    .sac-cad-root.is-cad-grid .sac-cad-reference-table td{
        padding:3px 2px!important;
        line-height:1.2!important;
        overflow-wrap:anywhere!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-table .sac-cad-reference-title-row h3{
        font-size:14px!important;
    }

    /* Public/other holiday table columns tuned for 320px readability. */
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table th:nth-child(1),
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table td:nth-child(1){
        width:21%!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table th:nth-child(2),
    .sac-cad-root.is-cad-grid .sac-cad-reference-event-table td:nth-child(2){
        width:31%!important;
    }

    /* One visible school zone is left aligned but uses almost all width. */
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-table.sac-cad-school-visible-1{
        width:96%!important;
        margin-left:0!important;
        margin-right:auto!important;
    }

    .sac-cad-root.is-cad-grid .sac-cad-school-date-start,
    .sac-cad-root.is-cad-grid .sac-cad-school-date-end{
        display:block!important;
        white-space:normal!important;
    }
}

/* Prevent any CAD Grid child from widening the viewport at all target widths. */
@media (max-width:1100px){
    .sac-cad-root.is-cad-grid,
    .sac-cad-root.is-cad-grid .sac-cad-calendar,
    .sac-cad-root.is-cad-grid .sac-cad-options,
    .sac-cad-root.is-cad-grid .sac-cad-grid-view,
    .sac-cad-root.is-cad-grid .sac-cad-grid-months,
    .sac-cad-root.is-cad-grid .sac-cad-reference-tables,
    .sac-cad-root.is-cad-grid .sac-cad-reference-events-row,
    .sac-cad-root.is-cad-grid .sac-cad-reference-card,
    .sac-cad-root.is-cad-grid .sac-cad-reference-school-wrap{
        max-width:100%!important;
        min-width:0!important;
        box-sizing:border-box!important;
    }
}


/* =========================================================
   v4.26.7 - CAD Options / school / lunar data
========================================================= */
.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line{display:inline-grid!important;grid-template-columns:38px 160px 38px!important;width:auto!important;max-width:100%!important;gap:3px!important;column-gap:3px!important;justify-content:center!important;justify-items:stretch!important;margin-left:auto!important;margin-right:auto!important}
.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-select{width:160px!important;min-width:0!important;margin:0!important}.sac-cad-root .sac-cad-year-only-nav .sac-cad-nav-btn{margin:0!important}
.sac-cad-root .sac-cad-options-grid>.sac-cad-grid-options-note{grid-column:1/-1!important;width:100%!important;box-sizing:border-box!important;margin:2px 0 0!important;padding:7px 9px!important;background:#fafafa;border-top:1px solid #e2e2e2;font-style:italic;color:#666;text-align:left}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-zone-a-head,.sac-cad-root .sac-cad-reference-school-table .sac-cad-zone-color-a{background:#e56b00!important;color:#fff!important}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-zone-b-head,.sac-cad-root .sac-cad-reference-school-table .sac-cad-zone-color-b{background:#0077d6!important;color:#fff!important}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-zone-c-head,.sac-cad-root .sac-cad-reference-school-table .sac-cad-zone-color-c{background:#14833b!important;color:#fff!important}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-zone-color-merged{background:#fff!important;color:#222!important;font-weight:600!important;text-align:center!important}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1 .sac-cad-school-zone-cell{text-align:left!important}.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-2 .sac-cad-school-zone-cell,.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-3 .sac-cad-school-zone-cell{text-align:center!important}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-columns-head th:first-child{text-align:left!important}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-rentree-row th,.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-rentree-row td{color:#c62828!important;font-weight:700!important}
.sac-cad-root .sac-cad-grid-moon-day{display:inline-flex!important;width:24px;height:24px;border-radius:50%;align-items:center;justify-content:center;box-sizing:border-box;font-weight:700;line-height:1}.sac-cad-root .sac-cad-grid-moon-new{background:#263238!important;border:1px solid #263238!important;color:#fff!important}.sac-cad-root .sac-cad-grid-moon-first{background:#f3c64e!important;border:1px solid #d5a900!important;color:#222!important}.sac-cad-root .sac-cad-grid-moon-full{background:#fff3a6!important;border:1px solid #d5a900!important;color:#222!important}.sac-cad-root .sac-cad-grid-moon-last{background:#90caf9!important;border:1px solid #4f93c4!important;color:#222!important}.sac-cad-root.sac-cad-hide-lunaire .sac-cad-grid-moon-day{background:transparent!important;border-color:transparent!important;color:inherit!important}
.sac-cad-root .sac-cad-reference-moon-card{margin-top:4px!important}.sac-cad-root .sac-cad-reference-moon-table th,.sac-cad-root .sac-cad-reference-moon-table td{text-align:left}.sac-cad-root .sac-cad-reference-moon-table thead tr:last-child th{text-align:center}.sac-cad-root .sac-cad-reference-moon-table tbody td:nth-child(4),.sac-cad-root .sac-cad-reference-moon-table tbody td:nth-child(5),.sac-cad-root .sac-cad-reference-moon-table tbody td:nth-child(6){text-align:center}.sac-cad-root .sac-cad-moon-table-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px;box-sizing:border-box}.sac-cad-root .sac-cad-reference-moon-table .is-cad-full-moon td{font-weight:700}.sac-cad-root .sac-cad-reference-moon-table .is-cad-next-moon td{background:#eaf6ff!important;font-weight:700!important}.sac-cad-root .sac-cad-reference-moon-card[hidden],.sac-cad-root.sac-cad-hide-lunaire .sac-cad-reference-moon-card{display:none!important}
@media(max-width:700px){.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line{grid-template-columns:36px minmax(120px,160px) 36px!important;gap:3px!important}.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-select{width:100%!important}.sac-cad-root .sac-cad-grid-moon-day{width:22px;height:22px}.sac-cad-root .sac-cad-reference-moon-table{font-size:10px!important}}
@media(max-width:480px){.sac-cad-root.is-cad-grid .sac-cad-year-only-nav .sac-cad-year-nav-line{display:inline-grid!important;grid-template-columns:34px minmax(110px,150px) 34px!important;width:auto!important;gap:3px!important;margin-left:auto!important;margin-right:auto!important}.sac-cad-root .sac-cad-grid-moon-day{width:20px;height:20px}.sac-cad-root .sac-cad-reference-moon-table{font-size:9px!important}.sac-cad-root .sac-cad-reference-moon-table th,.sac-cad-root .sac-cad-reference-moon-table td{padding:3px 2px!important}}
@media(max-width:340px){.sac-cad-root.is-cad-grid .sac-cad-year-only-nav .sac-cad-year-nav-line{grid-template-columns:32px minmax(105px,140px) 32px!important;width:auto!important;gap:2px!important}}


/* =========================================================
   v4.26.8 - CAD final navigation / observances / moon / list data
========================================================= */

/* One flex row = exact symmetric 3px gaps around the year dropdown. */
.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line,
.sac-cad-root.is-cad-grid .sac-cad-year-only-nav .sac-cad-year-nav-line,
.sac-cad-root.is-cad-list .sac-cad-year-only-nav .sac-cad-year-nav-line{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    max-width:100%!important;
    gap:3px!important;
    column-gap:3px!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-cad-nav-btn,
.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-annual-year-nav-spacer{
    flex:0 0 38px!important;
    width:38px!important;
    min-width:38px!important;
    margin:0!important;
}
.sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-cad-year-select{
    flex:0 0 160px!important;
    width:160px!important;
    min-width:0!important;
    margin:0!important;
}

/* Note is plain text on its own row: no background and no border. */
.sac-cad-root .sac-cad-options-grid > .sac-cad-grid-options-note{
    grid-column:1/-1!important;
    display:block;
    width:100%!important;
    margin:4px 0 0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
    background:transparent!important;
    color:#666!important;
    font-style:italic;
    text-align:left!important;
}
.sac-cad-root .sac-cad-options-grid > .sac-cad-grid-options-note[hidden]{display:none!important}

/* Other observances in Grid: bold date + light-blue cell, hidden restores default. */
.sac-cad-root .sac-cad-grid-date-cell.is-cad-autre-active{
    background:#eaf6ff!important;
    font-weight:700!important;
}
.sac-cad-root .sac-cad-grid-date-cell.sac-cad-grid-saturday.is-cad-autre-active,
.sac-cad-root .sac-cad-grid-date-cell.sac-cad-grid-sunday.is-cad-autre-active{
    background:#eaf6ff!important;
}

/* Quarter moons: half black / half yellow with inverse split text contrast. */
.sac-cad-root .sac-cad-grid-moon-first,
.sac-cad-root .sac-cad-moon-table-dot.sac-cad-grid-moon-first{
    background:linear-gradient(90deg,#263238 0 50%,#f3c64e 50% 100%)!important;
    border-color:#8b7a37!important;
}
.sac-cad-root .sac-cad-grid-moon-last,
.sac-cad-root .sac-cad-moon-table-dot.sac-cad-grid-moon-last{
    background:linear-gradient(90deg,#f3c64e 0 50%,#263238 50% 100%)!important;
    border-color:#8b7a37!important;
}
.sac-cad-root .sac-cad-grid-moon-first .sac-cad-grid-moon-number{
    background:linear-gradient(90deg,#fff 0 50%,#111 50% 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent!important;
}
.sac-cad-root .sac-cad-grid-moon-last .sac-cad-grid-moon-number{
    background:linear-gradient(90deg,#111 0 50%,#fff 50% 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent!important;
}
.sac-cad-root .sac-cad-grid-moon-new .sac-cad-grid-moon-number{color:#fff!important}
.sac-cad-root .sac-cad-grid-moon-full .sac-cad-grid-moon-number{color:#222!important}

/* Turning lunar display off returns the day to its ordinary rendering. */
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-grid-moon-day{
    display:inline!important;
    width:auto!important;height:auto!important;
    padding:0!important;
    border:0!important;border-radius:0!important;
    background:none!important;
    color:inherit!important;
    font-weight:inherit!important;
}
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-grid-moon-day .sac-cad-grid-moon-number{
    background:none!important;
    -webkit-background-clip:initial!important;background-clip:initial!important;
    color:inherit!important;
    font-weight:inherit!important;
}
.sac-cad-root .sac-cad-grid-date-cell.is-cad-ferie-active .sac-cad-grid-moon-number{
    font-weight:700;
}

/* Moon legend directly under the twelve-month block; same icon language as table. */
.sac-cad-root .sac-cad-moon-legend{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:8px 18px;
    width:100%;
    margin:10px 0 18px;
    font-size:12px;
    color:#444;
}
.sac-cad-root .sac-cad-moon-legend[hidden],
.sac-cad-root.sac-cad-hide-lunaire .sac-cad-moon-legend{display:none!important}
.sac-cad-root .sac-cad-moon-legend-item{display:inline-flex;align-items:center;gap:5px}

/* Moon data: passed rows '-', every future row has days; nearest is orange-red. */
.sac-cad-root .sac-cad-reference-moon-table thead tr:last-child th{
    font-weight:700!important;
}
.sac-cad-root .sac-cad-reference-moon-table tbody tr{
    transition:background-color .15s ease,color .15s ease;
}
.sac-cad-root .sac-cad-reference-moon-table tbody tr:hover td{
    background:#eaf6ff!important;
    color:#d96520!important;
    font-weight:700!important;
}
.sac-cad-root .sac-cad-reference-moon-table .is-cad-next-moon td{
    background:#eaf6ff!important;
    color:#dc5a1f!important;
    font-weight:700!important;
}

/* Both Grid and List own a complete copy of the lower data area. */
.sac-cad-root .sac-cad-list-view > .sac-cad-reference-tables,
.sac-cad-root .sac-cad-list-view > .sac-cad-moon-legend{
    width:100%;
}

@media(max-width:480px){
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-cad-nav-btn,
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-annual-year-nav-spacer{
        flex-basis:34px!important;width:34px!important;min-width:34px!important;
    }
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-cad-year-select{
        flex-basis:150px!important;width:150px!important;
    }
    .sac-cad-root .sac-cad-moon-legend{justify-content:flex-start;gap:7px 12px;font-size:11px}
}
@media(max-width:340px){
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line{gap:2px!important}
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-cad-nav-btn,
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-annual-year-nav-spacer{
        flex-basis:32px!important;width:32px!important;min-width:32px!important;
    }
    .sac-cad-root .sac-cad-year-only-nav .sac-cad-year-nav-line > .sac-cad-year-select{
        flex-basis:140px!important;width:140px!important;
    }
}


/* =========================================================
   v4.26.9 - CAD moon palette / list icons / school one-zone / export sync
========================================================= */

:root{
    --sac-cad-moon-yellow:#fff3a6;
    --sac-cad-moon-gray:#d9dde2;
    --sac-cad-moon-stroke:#b8aa68;
}

/* Grid: Full Moon stays yellow; New Moon becomes light gray.
   Quarter phases use exactly those same two colors. */
.sac-cad-root .sac-cad-grid-moon-new,
.sac-cad-root .sac-cad-moon-table-dot.sac-cad-grid-moon-new{
    background:#d9dde2!important;
    border-color:#aeb5bd!important;
    color:#263238!important;
}
.sac-cad-root .sac-cad-grid-moon-full,
.sac-cad-root .sac-cad-moon-table-dot.sac-cad-grid-moon-full{
    background:#fff3a6!important;
    border-color:#d5a900!important;
    color:#263238!important;
}
.sac-cad-root .sac-cad-grid-moon-first,
.sac-cad-root .sac-cad-moon-table-dot.sac-cad-grid-moon-first{
    background:linear-gradient(90deg,#d9dde2 0 50%,#fff3a6 50% 100%)!important;
    border-color:#b8aa68!important;
}
.sac-cad-root .sac-cad-grid-moon-last,
.sac-cad-root .sac-cad-moon-table-dot.sac-cad-grid-moon-last{
    background:linear-gradient(90deg,#fff3a6 0 50%,#d9dde2 50% 100%)!important;
    border-color:#b8aa68!important;
}
.sac-cad-root .sac-cad-grid-moon-first .sac-cad-grid-moon-number{
    background:linear-gradient(90deg,#263238 0 50%,#5b4800 50% 100%)!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    color:transparent!important;
}
.sac-cad-root .sac-cad-grid-moon-last .sac-cad-grid-moon-number{
    background:linear-gradient(90deg,#5b4800 0 50%,#263238 50% 100%)!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    color:transparent!important;
}
.sac-cad-root .sac-cad-grid-moon-new .sac-cad-grid-moon-number,
.sac-cad-root .sac-cad-grid-moon-full .sac-cad-grid-moon-number{
    color:#263238!important;
}

/* Grid legend icons now match the circle size used inside calendar cells. */
.sac-cad-root .sac-cad-moon-legend-grid .sac-cad-moon-table-dot{
    width:22px!important;
    height:22px!important;
    margin-right:7px!important;
    vertical-align:middle!important;
}
.sac-cad-root .sac-cad-moon-legend-grid{
    font-size:13px!important;
    gap:9px 20px!important;
}

/* List View uses the exact phase-symbol language visible in List day rows,
   intentionally different from Grid's colored circles. */
.sac-cad-root .sac-cad-list-moon-data-icon,
.sac-cad-root .sac-cad-list-moon-legend-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    min-width:22px;
    margin-right:6px;
    font-size:18px;
    line-height:1;
    vertical-align:middle;
}
.sac-cad-root .sac-cad-moon-legend-list{
    font-size:13px!important;
}

/* When a single school zone remains, only its Zone header and Académies
   value keep the zone background. Every holiday-date cell is neutral. */
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
tbody tr:not(.sac-cad-school-academies-row) td.sac-cad-school-zone-cell{
    background:#fff!important;
    color:#222!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-academies-row td.sac-cad-zone-color-a{
    background:#e56b00!important;color:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-academies-row td.sac-cad-zone-color-b{
    background:#0077d6!important;color:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-academies-row td.sac-cad-zone-color-c{
    background:#14833b!important;color:#fff!important;
}

/* Rentrée retains its required red bold text even in one-zone neutral cells. */
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-rentree-row td{
    color:#c62828!important;
    font-weight:700!important;
}

/* Responsive legend remains comparable to the calendar's moon marker size. */
@media(max-width:480px){
    .sac-cad-root .sac-cad-moon-legend-grid .sac-cad-moon-table-dot{
        width:20px!important;
        height:20px!important;
    }
    .sac-cad-root .sac-cad-moon-legend-grid,
    .sac-cad-root .sac-cad-moon-legend-list{
        font-size:12px!important;
    }
}


/* =========================================================
   v4.27.1 - CAD reference table refinements
========================================================= */

/* Remaining H3 table titles are always centered. */
.sac-cad-root .sac-cad-reference-title-row h3{
    text-align:center!important;
}

/* One visible school zone: neutral table, compact content-fit width, centered. */
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1{
    width:auto!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    table-layout:auto!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-zone-a-head,
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-zone-b-head,
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-zone-c-head,
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-academies-row td,
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
tbody td{
    background:#fff!important;
    color:#222!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-columns-head th{
    background:#e9e9e9!important;
    color:#222!important;
}
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-rentree-row th,
.sac-cad-root .sac-cad-reference-school-table.sac-cad-school-visible-1
.sac-cad-school-rentree-row td{
    color:#c62828!important;
    font-weight:700!important;
}

/* Reference tables are allowed to shrink to their content while staying centered. */
.sac-cad-root .sac-cad-reference-event-table,
.sac-cad-root .sac-cad-reference-moon-table{
    margin-left:auto!important;
    margin-right:auto!important;
}


/* =========================================================
   v4.27.2 - CAD export content selector + accurate preview
========================================================= */

.sac-cad-root .sac-cad-export-content-choice{
    margin:14px 0 12px!important;
    padding:10px 12px!important;
    border:1px solid #d6d6d6!important;
    text-align:left!important;
}
.sac-cad-root .sac-cad-export-content-choice legend{
    padding:0 6px!important;
    font-weight:700!important;
}
.sac-cad-root .sac-cad-export-content-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px 12px!important;
}
.sac-cad-root .sac-cad-export-content-grid label{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-width:0!important;
}
.sac-cad-root .sac-cad-export-content-grid label[hidden]{
    display:none!important;
}

/* Grid preview mirrors the actual annual export:
   Portrait = 3 columns x 4 rows, Landscape = 4 columns x 3 rows. */
.sac-cad-root .sac-cad-preview-grid{
    display:grid!important;
    grid-template-columns:repeat(var(--cad-preview-cols,3),minmax(0,1fr))!important;
    grid-template-rows:repeat(var(--cad-preview-rows,4),minmax(0,1fr))!important;
    gap:3px!important;
    width:100%!important;
    flex:1 1 auto!important;
    min-height:0!important;
}
.sac-cad-root .sac-cad-preview-grid-month{
    display:block!important;
    border:1px solid #8f8f8f!important;
    background:
        linear-gradient(to bottom,#ececec 0 16%,transparent 16% 100%),
        repeating-linear-gradient(to bottom,transparent 0 13%,#e7e7e7 13% 14%)!important;
    min-width:0!important;
    min-height:0!important;
}

@media(max-width:480px){
    .sac-cad-root .sac-cad-export-content-grid{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   v4.27.3 - CAD responsive Options priority + month badge
========================================================= */

/* Grid month index: blue-light circular badge, orange bold number. */
.sac-cad-root .sac-cad-grid-month-number{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}
.sac-cad-root .sac-cad-grid-month-number-circle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:26px!important;
    height:26px!important;
    max-width:calc(100% - 4px)!important;
    max-height:calc(100% - 4px)!important;
    border-radius:50%!important;
    background:#eaf6ff!important;
    color:#ee7644!important;
    font-weight:700!important;
    line-height:1!important;
    box-sizing:border-box!important;
}

/* Tablet/intermediate: Year selector is always the first, full-width row.
   The original content and school/export columns share the row below. */
@media (max-width:900px) and (min-width:701px){
    .sac-cad-root .sac-cad-options-grid,
    .sac-cad-root.is-cad-grid .sac-cad-options-grid,
    .sac-cad-root.is-cad-list .sac-cad-options-grid{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
        gap:10px!important;
    }
    .sac-cad-root .sac-cad-options-nav{
        grid-column:1/-1!important;
        grid-row:1!important;
        order:1!important;
        width:100%!important;
    }
    .sac-cad-root .sac-cad-options-content{
        grid-column:1!important;
        grid-row:2!important;
        order:2!important;
        width:100%!important;
    }
    .sac-cad-root .sac-cad-options-school{
        grid-column:2!important;
        grid-row:2!important;
        order:3!important;
        width:100%!important;
    }
    .sac-cad-root .sac-cad-grid-options-note{
        grid-column:1/-1!important;
        grid-row:3!important;
        order:4!important;
    }
}

/* Narrow screens: all three columns stack, but Year stays first. */
@media (max-width:700px){
    .sac-cad-root .sac-cad-options-grid,
    .sac-cad-root.is-cad-grid .sac-cad-options-grid,
    .sac-cad-root.is-cad-list .sac-cad-options-grid{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:9px!important;
    }
    .sac-cad-root .sac-cad-options-nav{
        grid-column:1!important;
        grid-row:1!important;
        order:1!important;
    }
    .sac-cad-root .sac-cad-options-content{
        grid-column:1!important;
        grid-row:2!important;
        order:2!important;
    }
    .sac-cad-root .sac-cad-options-school{
        grid-column:1!important;
        grid-row:3!important;
        order:3!important;
    }
    .sac-cad-root .sac-cad-grid-options-note{
        grid-column:1!important;
        grid-row:4!important;
        order:4!important;
    }
}

@media(max-width:480px){
    .sac-cad-root .sac-cad-grid-month-number-circle{
        width:24px!important;
        height:24px!important;
    }
}


/* =========================================================
   v4.27.4 - CAD month badge + JPG continuous data export
========================================================= */
.sac-cad-root .sac-cad-grid-month-number-circle{
    width:30px!important;
    height:30px!important;
    max-width:calc(100% - 2px)!important;
    max-height:calc(100% - 2px)!important;
    border-radius:50%!important;
    background:transparent!important;
    border:2px solid #ee7644!important;
    color:#ee7644!important;
    font-weight:700!important;
    line-height:1!important;
}
@media(max-width:480px){
    .sac-cad-root .sac-cad-grid-month-number-circle{
        width:28px!important;
        height:28px!important;
    }
}


/* =========================================================
   v4.27.6 - CAD month badge + uniform Grid export borders
========================================================= */

/* Month-number circle uses the same visual border language as the calendar grid. */
.sac-cad-root .sac-cad-grid-month-number-circle{
    background:transparent!important;
    border:1px solid #9a9a9a!important;
    color:#111!important;
    font-weight:700!important;
}


/* =========================================================
   v4.27.7 - calendrier_annuel_dualview / Grid WEB redesign
   Scope: web Grid only. Export renderer is unchanged.
========================================================= */

/* One clean outer border per month; remove every internal grid/title border. */
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card{
    border:1px solid #9a9a9a!important;
    border-radius:8px!important;
    overflow:hidden!important;
    background:#fff!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar,
.sac-cad-root.is-cad-grid .sac-cad-grid-body,
.sac-cad-root.is-cad-grid .sac-cad-grid-cell,
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number,
.sac-cad-root.is-cad-grid .sac-cad-grid-month-title{
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
}

/* Month badge: maximum inscribed circle in the 46x34 title cell.
   Diameter follows the smaller side (34px), so it remains fully contained. */
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number{
    padding:0!important;
    min-height:34px!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle{
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    max-width:100%!important;
    max-height:100%!important;
    margin:0!important;
    padding:0!important;
    border:1px solid #9a9a9a!important;
    border-radius:50%!important;
    background:transparent!important;
    color:#111!important;
    font-weight:700!important;
    line-height:1!important;
    box-sizing:border-box!important;
}

/* +1pt (~1.333px) across the whole monthly Grid typography. */
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle{
    font-size:17.333px!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-month-title{
    font-size:16.333px!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-cell{
    font-size:13.333px!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-week-number,
.sac-cad-root.is-cad-grid .sac-cad-grid-week-label,
.sac-cad-root.is-cad-grid .sac-cad-grid-day-header,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell{
    font-size:13.333px!important;
}

/* No weekend fill. Saturday = deep sky blue; Sunday = orange-red. */
.sac-cad-root.is-cad-grid .sac-cad-grid-saturday,
.sac-cad-root.is-cad-grid .sac-cad-grid-sunday,
.sac-cad-root.is-cad-grid .sac-cad-grid-empty-cell.sac-cad-grid-saturday,
.sac-cad-root.is-cad-grid .sac-cad-grid-empty-cell.sac-cad-grid-sunday{
    background:#fff!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-saturday{
    color:#087fc2!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-sunday{
    color:#e5532d!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-day-header.sac-cad-grid-saturday,
.sac-cad-root.is-cad-grid .sac-cad-grid-day-header.sac-cad-grid-sunday{
    font-weight:700!important;
}

/* Day layout: number/moon stays visually centered; school dots sit below it. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    padding:3px 2px 2px!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-day-main{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:0!important;
    min-height:18px!important;
    line-height:1!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-day-number{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1!important;
}

/* Moon date behavior:
   lunar ON  -> icon replaces/hides day number;
   lunar OFF -> icon hides and ordinary number returns. */
.sac-cad-root.is-cad-grid .sac-cad-grid-has-moon .sac-cad-grid-day-number{
    display:none!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-moon-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:20px!important;
    height:20px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    font-size:17px!important;
    line-height:1!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire .sac-cad-grid-has-moon .sac-cad-grid-day-number{
    display:inline-flex!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire .sac-cad-grid-moon-icon{
    display:none!important;
}

/* National holidays keep current pale-red fill, now with rounded background.
   This takes priority over weekend text/background behavior. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active{
    background:#fff2f2!important;
    color:#c62828!important;
    font-weight:700!important;
    border-radius:8px!important;
    background-clip:padding-box!important;
}

/* Other observances keep current pale-blue fill and gain the same rounding. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-autre-active{
    background:#eaf6ff!important;
    font-weight:700!important;
    border-radius:8px!important;
    background-clip:padding-box!important;
}

/* School-zone dots.
   Every date owns A/B/C slots in a fixed order; non-holiday slots are invisible
   but keep their width. If an option is disabled, that zone slot is removed
   globally, so remaining colors compact while keeping perfect vertical columns. */
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-dots{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    min-height:5px!important;
    height:5px!important;
    line-height:0!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-dot{
    display:inline-block!important;
    flex:0 0 4px!important;
    width:4px!important;
    height:4px!important;
    min-width:4px!important;
    min-height:4px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:50%!important;
    background:transparent!important;
    visibility:hidden!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-dot.is-holiday{
    visibility:visible!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-dot.sac-cad-zone-a.is-holiday{
    background:#e56b00!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-dot.sac-cad-zone-b.is-holiday{
    background:#0077d6!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-dot.sac-cad-zone-c.is-holiday{
    background:#14833b!important;
}

/* Existing Options state drives both these dots and the lower school table. */
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-a .sac-cad-grid-zone-dot.sac-cad-zone-a,
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-b .sac-cad-grid-zone-dot.sac-cad-zone-b,
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-c .sac-cad-grid-zone-dot.sac-cad-zone-c{
    display:none!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c .sac-cad-grid-zone-dots{
    display:none!important;
}

/* Empty dates remain neutral; no internal framing. */
.sac-cad-root.is-cad-grid .sac-cad-grid-empty-cell{
    background:#fff!important;
    border-radius:0!important;
}

@media(max-width:480px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle{
        width:34px!important;
        height:34px!important;
        min-width:34px!important;
        min-height:34px!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-grid-zone-dots{gap:1.5px!important}
    .sac-cad-root.is-cad-grid .sac-cad-grid-zone-dot{
        flex-basis:3.5px!important;
        width:3.5px!important;
        height:3.5px!important;
        min-width:3.5px!important;
        min-height:3.5px!important;
    }
}


/* =========================================================
   v4.27.8 - calendrier_annuel_dualview / Grid WEB title relief
========================================================= */

/* French-flag blue title bar with cylindrical/front-face relief. */
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar{
    position:relative!important;
    background:
        linear-gradient(
            to bottom,
            #3f64c8 0%,
            #2450b5 18%,
            #002395 50%,
            #001f84 72%,
            #244ca8 100%
        )!important;
    box-shadow:
        inset 0 1px 1px rgba(255,255,255,.45),
        inset 0 -2px 3px rgba(0,0,0,.30),
        0 2px 5px rgba(0,0,0,.22)!important;
    border:0!important;
    overflow:visible!important;
}

/* A subtle central sheen reinforces the curved cylinder-face appearance. */
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.05) 0%,
            rgba(255,255,255,.16) 22%,
            rgba(255,255,255,.28) 48%,
            rgba(255,255,255,.10) 72%,
            rgba(0,0,0,.08) 100%
        );
    mix-blend-mode:screen;
    opacity:.55;
}

/* Month title: white and bold on the blue flag bar. */
.sac-cad-root.is-cad-grid .sac-cad-grid-month-title{
    position:relative!important;
    z-index:1!important;
    color:#fff!important;
    font-weight:700!important;
    text-shadow:0 1px 1px rgba(0,0,0,.28)!important;
    background:transparent!important;
}

/* Month-number holder stays transparent so the red inset circle is clear. */
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number{
    position:relative!important;
    z-index:1!important;
    background:transparent!important;
}

/* French-flag red recessed circle.
   33px gives approximately 0.5px clearance per side inside a 34px height. */
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle{
    width:33px!important;
    height:33px!important;
    min-width:33px!important;
    min-height:33px!important;
    max-width:33px!important;
    max-height:33px!important;
    border-radius:50%!important;
    border:1px solid rgba(255,255,255,.78)!important;
    background:
        radial-gradient(
            circle at 50% 42%,
            #f34b58 0%,
            #ed2939 48%,
            #c81f2d 76%,
            #a81723 100%
        )!important;
    color:#fff!important;
    font-weight:700!important;
    box-shadow:
        inset 0 2px 4px rgba(0,0,0,.55),
        inset 0 -1px 1px rgba(255,255,255,.24),
        0 1px 0 rgba(255,255,255,.18)!important;
    text-shadow:0 1px 1px rgba(0,0,0,.35)!important;
    box-sizing:border-box!important;
}

/* Keep the red inset circle centered even at mobile width. */
@media(max-width:480px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle{
        width:33px!important;
        height:33px!important;
        min-width:33px!important;
        min-height:33px!important;
        max-width:33px!important;
        max-height:33px!important;
    }
}


/* =========================================================
   v4.27.9 - calendrier_annuel_dualview / Grid WEB geometry
========================================================= */

.sac-cad-root.is-cad-grid{
    --cad-grid-title-blue:#002395;
    --cad-grid-head-bg:#fafafa;
    --cad-grid-radius:8px;
}

/* Week number + all seven weekday columns now share the same width. */
.sac-cad-root.is-cad-grid .sac-cad-grid-body{
    grid-template-columns:repeat(8,minmax(0,1fr))!important;
    background:var(--cad-grid-head-bg)!important;
    border-top-left-radius:var(--cad-grid-radius)!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-body{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}

/* Title row uses the same column geometry as the body.
   The month title itself is absolutely centered across the WHOLE month card,
   so the left badge never shifts the optical center. */
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar{
    position:relative!important;
    display:grid!important;
    grid-template-columns:repeat(8,minmax(0,1fr))!important;
    grid-auto-rows:auto!important;
    min-height:38px!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    border-top:1px solid var(--cad-grid-title-blue)!important;
    border-left:1px solid var(--cad-grid-title-blue)!important;
    border-right:1px solid var(--cad-grid-title-blue)!important;
    border-bottom:0!important;
    border-radius:var(--cad-grid-radius) var(--cad-grid-radius) 0 0!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
}

/* The month-number holder occupies exactly one body-column width:
   week-number column normally, Lundi-column width when week numbers are hidden. */
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar .sac-cad-grid-month-number{
    display:flex!important;
    grid-column:1!important;
    grid-row:1!important;
    position:relative!important;
    z-index:3!important;
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    height:auto!important;
    padding:2px!important;
    margin:0!important;
    align-items:center!important;
    justify-content:center!important;
    border:0!important;
    background:transparent!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-cad-grid-month-number{
    display:flex!important;
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
    padding:2px!important;
    margin:0!important;
}

/* Circle diameter = width of its Grid column - 4px.
   aspect-ratio keeps a true circle; 2px white rim makes the recessed red core crisp. */
.sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-month-number-circle{
    display:flex!important;
    width:calc(100% - 4px)!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    max-width:none!important;
    max-height:none!important;
    aspect-ratio:1 / 1!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    padding:0!important;
    border:2px solid #fff!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
    color:#fff!important;
    font-weight:700!important;
    line-height:1!important;
}

/* Center the month title against the real left/right edges of the month card. */
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar .sac-cad-grid-month-title,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar .sac-cad-grid-month-title{
    position:absolute!important;
    z-index:2!important;
    inset:0!important;
    display:flex!important;
    width:100%!important;
    height:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:0 6px!important;
    margin:0!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    pointer-events:none!important;
    box-sizing:border-box!important;
}

/* Weekend weekday NAMES return to the same appearance as Lu–Ve.
   Actual Saturday/Sunday DATE colors remain unchanged. */
.sac-cad-root.is-cad-grid .sac-cad-grid-day-header.sac-cad-grid-saturday,
.sac-cad-root.is-cad-grid .sac-cad-grid-day-header.sac-cad-grid-sunday{
    color:#333!important;
    background:var(--cad-grid-head-bg)!important;
    font-weight:700!important;
}

/* Top-left rounding for the first cell of the date/header matrix.
   The body itself carries the week-column background, so the tiny area outside
   the rounded corner is filled with exactly the same neutral week-column color. */
.sac-cad-root.is-cad-grid .sac-cad-grid-body > .sac-cad-grid-week-label{
    border-top-left-radius:var(--cad-grid-radius)!important;
    background:var(--cad-grid-head-bg)!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-body > .sac-cad-grid-day-header.sac-cad-grid-col-1{
    border-top-left-radius:var(--cad-grid-radius)!important;
    background:var(--cad-grid-head-bg)!important;
}

/* Neutralize older mobile rules that forced fixed 42px/33px title geometry. */
@media(max-width:560px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-titlebar{
        grid-template-columns:repeat(8,minmax(0,1fr))!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-grid-body{
        grid-template-columns:repeat(8,minmax(0,1fr))!important;
    }
    .sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-titlebar,
    .sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-body{
        grid-template-columns:repeat(7,minmax(0,1fr))!important;
    }
    .sac-cad-root.is-cad-grid .sac-cad-grid-month-number-circle,
    .sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-month-number-circle{
        width:calc(100% - 4px)!important;
        height:auto!important;
        min-width:0!important;
        min-height:0!important;
        max-width:none!important;
        max-height:none!important;
        aspect-ratio:1 / 1!important;
    }
}


/* =========================================================
   v4.28.0 - calendrier_annuel_dualview / Grid WEB refinements
========================================================= */

/* Week hidden: month number + month title gain another 1pt. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-month-number-circle{
    font-size:18.666px!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-month-title{
    font-size:17.666px!important;
}

/* Holiday backgrounds inset 0.5px on every side so adjacent cells never look fused. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-autre-active{
    position:relative!important;
    background:transparent!important;
    isolation:isolate!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active::before,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-autre-active::before{
    content:"";
    position:absolute;
    inset:.5px;
    z-index:-1;
    border-radius:8px;
    pointer-events:none;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active::before{
    background:#fff2f2;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-autre-active::before{
    background:#eaf6ff;
}

/* Legend under Grid calendar: align left and continue with Zone A/B/C. */
.sac-cad-root.is-cad-grid .sac-cad-moon-legend-grid{
    justify-content:flex-start!important;
    align-items:center!important;
    text-align:left!important;
    margin-left:0!important;
    margin-right:0!important;
    gap:9px 18px!important;
}

/* Moon legend items hide independently from Zone legend items. */
.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire
.sac-cad-moon-legend-grid .sac-cad-moon-legend-lunar-item{
    display:none!important;
}

/* Zone dots in legend approximately match moon icon visual size. */
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-legend-item{
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-legend-dot{
    display:inline-block!important;
    width:20px!important;
    height:20px!important;
    min-width:20px!important;
    min-height:20px!important;
    border-radius:50%!important;
    border:1px solid rgba(0,0,0,.12)!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-legend-dot.sac-cad-zone-a{background:#e56b00!important}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-legend-dot.sac-cad-zone-b{background:#0077d6!important}
.sac-cad-root.is-cad-grid .sac-cad-grid-zone-legend-dot.sac-cad-zone-c{background:#14833b!important}

/* Zone legend follows Options and the school-holiday table state. */
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-a .sac-cad-grid-zone-legend-zone-a,
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-b .sac-cad-grid-zone-legend-zone-b,
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-c .sac-cad-grid-zone-legend-zone-c{
    display:none!important;
}

.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c
.sac-cad-moon-legend-grid{
    display:none!important;
}

@media(max-width:480px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-zone-legend-dot{
        width:18px!important;
        height:18px!important;
        min-width:18px!important;
        min-height:18px!important;
    }
}


/* =========================================================
   v4.28.1 - calendrier_annuel_dualview / Grid WEB fine tuning
========================================================= */

/* Holiday fills: another 0.5px inward on all sides (total inset = 1px). */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active::before,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-autre-active::before{
    inset:1px!important;
}

/* When week numbers are hidden, increase calendar-grid typography by 0.5pt
   EXCEPT month number and month title, which keep their v4.28.0 sizes. */
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-cell,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-week-number,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-week-label,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-day-header,
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine .sac-cad-grid-date-cell{
    font-size:14px!important;
}

/* Rebuild the upper-left body corner at the BODY level.
   Earlier rounding was applied only to the first child, but the parent/body
   background still painted the square corner, making the radius visually disappear. */
.sac-cad-root.is-cad-grid .sac-cad-grid-body{
    position:relative!important;
    overflow:hidden!important;
    border-top-left-radius:var(--cad-grid-radius)!important;
    background:var(--cad-grid-head-bg)!important;
}

/* Keep the first real header cell radius synchronized with the parent clip. */
.sac-cad-root.is-cad-grid .sac-cad-grid-body > .sac-cad-grid-week-label{
    border-top-left-radius:var(--cad-grid-radius)!important;
}
.sac-cad-root.is-cad-grid.sac-cad-hide-semaine
.sac-cad-grid-body > .sac-cad-grid-day-header.sac-cad-grid-col-1{
    border-top-left-radius:var(--cad-grid-radius)!important;
}

/* Paint the tiny exposed outside corner with the same week-column/header color,
   so the rounded cut remains clean against the outer card. */
.sac-cad-root.is-cad-grid .sac-cad-grid-body::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:var(--cad-grid-radius);
    height:var(--cad-grid-radius);
    background:var(--cad-grid-head-bg);
    z-index:0;
    pointer-events:none;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-body > *{
    position:relative;
    z-index:1;
}

/* Preserve the body radius after older mobile overrides. */
@media(max-width:560px){
    .sac-cad-root.is-cad-grid .sac-cad-grid-body{
        overflow:hidden!important;
        border-top-left-radius:var(--cad-grid-radius)!important;
    }
}


/* =========================================================
   v4.28.2 - CAD Grid WEB: blue outer border around title area
========================================================= */

/* Match the outer top/left/right month-card border surrounding the title bar
   to the French-flag blue title background. The lower/calendar perimeter keeps
   the existing neutral outer border. */
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card{
    border-top-color:#002395!important;
    border-left-color:#9a9a9a!important;
    border-right-color:#9a9a9a!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar{
    border-top-color:transparent!important;
    border-left-color:transparent!important;
    border-right-color:transparent!important;
}

/* Overlay only the title-height portions of the card's left/right outer edges
   so those visible perimeter segments are the same French blue. */
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card{
    position:relative!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar::before{
    content:"";
    position:absolute;
    z-index:5;
    pointer-events:none;
    left:-1px;
    right:-1px;
    top:-1px;
    bottom:0;
    border-left:1px solid #002395;
    border-right:1px solid #002395;
    border-top:1px solid #002395;
    border-radius:8px 8px 0 0;
}


/* =========================================================
   v4.28.3 - calendrier_annuel_dualview / List WEB month title
========================================================= */

.sac-cad-root.is-cad-list .sac-cad-list-month{
    overflow:hidden!important;
    border-radius:8px!important;
}

/* Match Grid title language: French-flag blue, cylindrical/front-face relief,
   rounded top corners, white title. */
.sac-cad-root.is-cad-list .sac-cad-month-title{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:34px!important;
    margin:0!important;
    padding:0 8px!important;
    border:0!important;
    border-radius:8px 8px 0 0!important;
    background:
        linear-gradient(
            to bottom,
            #3f64c8 0%,
            #2450b5 18%,
            #002395 50%,
            #001f84 72%,
            #244ca8 100%
        )!important;
    box-shadow:
        inset 0 1px 1px rgba(255,255,255,.45),
        inset 0 -2px 3px rgba(0,0,0,.30),
        0 2px 5px rgba(0,0,0,.22)!important;
    color:#fff!important;
    font-weight:700!important;
    text-align:center!important;
    line-height:1.2!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
}

/* Cylindrical sheen, same visual language as Grid. */
.sac-cad-root.is-cad-list .sac-cad-month-title::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.05) 0%,
            rgba(255,255,255,.16) 22%,
            rgba(255,255,255,.28) 48%,
            rgba(255,255,255,.10) 72%,
            rgba(0,0,0,.08) 100%
        );
    mix-blend-mode:screen;
    opacity:.55;
    z-index:1;
}

/* Keep title centered against the true left/right edges of the whole title bar,
   independent of the left month-number circle. */
.sac-cad-root.is-cad-list .sac-cad-list-month-title-text{
    position:relative!important;
    z-index:3!important;
    display:block!important;
    width:100%!important;
    padding:0 34px!important;
    color:#fff!important;
    font-size:inherit!important;
    font-weight:700!important;
    text-align:center!important;
    line-height:inherit!important;
    text-shadow:0 1px 1px rgba(0,0,0,.28)!important;
    box-sizing:border-box!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}

/* Left month badge:
   diameter follows title height, visually inset/recessed like Grid badge. */
.sac-cad-root.is-cad-list .sac-cad-list-month-number{
    position:absolute!important;
    z-index:3!important;
    left:0!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    min-height:34px!important;
    margin:0!important;
    padding:0!important;
    border:2px solid #fff!important;
    border-radius:50%!important;
    background:
        radial-gradient(
            circle at 50% 42%,
            #f34b58 0%,
            #ed2939 48%,
            #c81f2d 76%,
            #a81723 100%
        )!important;
    color:#fff!important;
    font-size:inherit!important;
    font-weight:700!important;
    line-height:1!important;
    box-shadow:
        inset 0 2px 4px rgba(0,0,0,.55),
        inset 0 -1px 1px rgba(255,255,255,.24),
        0 1px 0 rgba(255,255,255,.18)!important;
    text-shadow:0 1px 1px rgba(0,0,0,.35)!important;
    box-sizing:border-box!important;
}

/* Make the outer top edge blend with the blue title area. */
.sac-cad-root.is-cad-list .sac-cad-list-month{
    border-top-color:#002395!important;
}


/* =========================================================
   v4.28.4 - calendrier_annuel_dualview / List WEB title spacing
========================================================= */

/* Reduce right padding of the month-title row so long titles have more usable room. */
.sac-cad-root.is-cad-list .sac-cad-month-title{
    padding-right:2px!important;
}

/* Ensure the actual OUTER top-left/top-right corners of every monthly card are rounded. */
.sac-cad-root.is-cad-list .sac-cad-list-month{
    border-radius:8px 8px 8px 8px!important;
    overflow:hidden!important;
}
.sac-cad-root.is-cad-list .sac-cad-month-title{
    border-radius:8px 8px 0 0!important;
}

/* Month-number circle: reduce diameter by 0.5px from 34px -> 33.5px. */
.sac-cad-root.is-cad-list .sac-cad-list-month-number{
    width:33.5px!important;
    height:33.5px!important;
    min-width:33.5px!important;
    min-height:33.5px!important;
}


/* =========================================================
   v4.28.5 - CAD List WEB: enforce visible title spacing/radius
   This block intentionally uses higher-specificity selectors than legacy
   CAD rules that force square month/title corners.
========================================================= */

/* Outer month card: explicitly override legacy 0-radius rules. */
.sac-cad-root.is-cad-list .sac-cad-list-month.sac-cad-list-month{
    border-radius:8px 8px 8px 8px!important;
    overflow:hidden!important;
}

/* Title bar: explicit top rounding + real 2px left/right content padding. */
.sac-cad-root.is-cad-list
.sac-cad-list-month.sac-cad-list-month
> .sac-cad-month-title.sac-cad-month-title{
    padding:0 2px!important;
    border-radius:8px 8px 0 0!important;
    overflow:hidden!important;
}

/* The previous 34px padding lived on the INNER text span, so changing only
   the H3 padding did not visibly free title space. Remove that reservation.
   The title remains centered across the complete title-bar width because the
   month badge is an absolutely-positioned overlay and does not enter layout. */
.sac-cad-root.is-cad-list
.sac-cad-list-month
> .sac-cad-month-title
> .sac-cad-list-month-title-text{
    position:relative!important;
    width:100%!important;
    padding-left:2px!important;
    padding-right:2px!important;
    margin:0!important;
    text-align:center!important;
    box-sizing:border-box!important;
}

/* Exact requested badge reduction: 34px -> 33.5px. */
.sac-cad-root.is-cad-list
.sac-cad-list-month
> .sac-cad-month-title
> .sac-cad-list-month-number{
    width:33.5px!important;
    height:33.5px!important;
    min-width:33.5px!important;
    min-height:33.5px!important;
    max-width:33.5px!important;
    max-height:33.5px!important;
    flex:0 0 33.5px!important;
}

/* Reinforce the rounded blue outer top perimeter so the card's own border
   cannot visually square off the title corners. */
.sac-cad-root.is-cad-list .sac-cad-list-month::before{
    content:"";
    position:absolute;
    z-index:6;
    pointer-events:none;
    left:-1px;
    right:-1px;
    top:-1px;
    height:9px;
    border-top:1px solid #002395;
    border-left:1px solid #002395;
    border-right:1px solid #002395;
    border-radius:8px 8px 0 0;
}
.sac-cad-root.is-cad-list .sac-cad-list-month{
    position:relative!important;
}


/* =========================================================
   v4.28.6 - CAD List WEB: adaptive 10px badge/title clearance
========================================================= */

/* Default remains mathematically centered. JS only adds a positive X shift
   when the first rendered title character would sit <10px from badge edge. */
.sac-cad-root.is-cad-list
.sac-cad-list-month
> .sac-cad-month-title
> .sac-cad-list-month-title-text{
    --sac-cad-list-title-shift:0px;
    transform:translateX(var(--sac-cad-list-title-shift))!important;
    will-change:transform;
}


/* =========================================================
   v4.28.7 - CAD List WEB: square bottom corners + event text +0.5pt
========================================================= */

/* Keep only the two upper outer corners rounded. */
.sac-cad-root.is-cad-list .sac-cad-list-month.sac-cad-list-month{
    border-radius:8px 8px 0 0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-month > .sac-cad-list-days{
    border-radius:0!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-month > .sac-cad-list-days > .sac-cad-list-day:last-child{
    border-bottom-left-radius:0!important;
    border-bottom-right-radius:0!important;
}

/* Increase the day/event-name text by 0.5pt.
   Existing List event text is 12px; +0.5pt ~= +0.667px. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-event{
    font-size:12.667px!important;
}


/* =========================================================
   v4.28.8 - CAD List WEB: dynamic right-side empty-cell reflow
========================================================= */

/* Moon utility cell: remove only the left spacing, preserve its current right
   spacing. Older rules set 1px on both sides; this becomes 0 left / 1px right. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-moon{
    margin-left:0!important;
    padding-left:0!important;
    padding-right:1px!important;
}

/* Base explicit placement for the dynamic reflow layer. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-event{
    grid-column:3 / 4!important;
    grid-row:1!important;
    position:relative!important;
    z-index:2!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    text-overflow:ellipsis!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-week{
    grid-column:4!important;
    grid-row:1!important;
    position:relative!important;
    z-index:3!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-moon{
    grid-column:5!important;
    grid-row:1!important;
    position:relative!important;
    z-index:3!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-zones{
    grid-column:6!important;
    grid-row:1!important;
    position:relative!important;
    z-index:3!important;
}

/* Empty week track immediately to the right -> event/name can occupy it. */
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-week-empty
> .sac-cad-list-event{
    grid-column:3 / 5!important;
}

/* Week exists but Moon is enabled and empty:
   place the week number in Moon's track and release the week track to event. */
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-week-in-moon
> .sac-cad-list-week{
    grid-column:5!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-week-in-moon
> .sac-cad-list-moon{
    grid-column:4!important;
    visibility:hidden!important;
    pointer-events:none!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-week-in-moon
> .sac-cad-list-event{
    grid-column:3 / 5!important;
}

/* If both Week and Moon are empty, the event may use both tracks. */
.sac-cad-root.is-cad-list
.sac-cad-list-day.sac-cad-row-week-empty.sac-cad-row-moon-empty
> .sac-cad-list-event{
    grid-column:3 / 6!important;
}

/* If every utility cell to the right is empty (Week + Moon + visible Zones),
   let the event text use the complete remaining row width. */
.sac-cad-root.is-cad-list
.sac-cad-list-day.sac-cad-row-week-empty.sac-cad-row-moon-empty.sac-cad-row-zones-empty
> .sac-cad-list-event{
    grid-column:3 / 7!important;
}

/* Empty utility cells that are being borrowed by the event must not paint
   above the extended text. */
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-week-empty
> .sac-cad-list-week,
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-moon-empty
> .sac-cad-list-moon,
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-zones-empty
> .sac-cad-list-zones{
    background:transparent!important;
}

/* Keep moved week number centered in the borrowed Moon track. */
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-row-week-in-moon
> .sac-cad-list-week{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding-left:0!important;
    padding-right:1px!important;
}


/* =========================================================
   v4.28.9 - CAD List WEB: 0.5px-safe measured truncation + inline legends
========================================================= */

.sac-cad-root.is-cad-list .sac-cad-list-legend-row{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    margin:10px 0 0!important;
    padding:0!important;
    gap:8px 18px!important;
    text-align:left!important;
    box-sizing:border-box!important;
}

.sac-cad-root.is-cad-list .sac-cad-moon-legend-list,
.sac-cad-root.is-cad-list .sac-cad-zone-legend-list{
    display:inline-flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    box-sizing:border-box!important;
}

.sac-cad-root.is-cad-list .sac-cad-moon-legend-list{
    gap:8px 14px!important;
}

.sac-cad-root.is-cad-list .sac-cad-zone-legend-list{
    gap:8px 14px!important;
    font-size:13px!important;
}

.sac-cad-root.is-cad-list .sac-cad-zone-legend-list-item{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:5px!important;
    white-space:nowrap!important;
}

.sac-cad-root.is-cad-list .sac-cad-zone-legend-list-dot{
    display:inline-block!important;
    width:18px!important;
    height:18px!important;
    min-width:18px!important;
    min-height:18px!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-list .sac-cad-zone-legend-list-dot.sac-cad-zone-a{background:#e56b00!important}
.sac-cad-root.is-cad-list .sac-cad-zone-legend-list-dot.sac-cad-zone-b{background:#0077d6!important}
.sac-cad-root.is-cad-list .sac-cad-zone-legend-list-dot.sac-cad-zone-c{background:#14833b!important}

/* Independent visibility: Moon follows Cycle lunaire only. */
.sac-cad-root.is-cad-list.sac-cad-hide-lunaire .sac-cad-moon-legend-list{
    display:none!important;
}

/* Zone legend follows its three zone options independently. */
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a .sac-cad-zone-legend-list-zone-a,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-b .sac-cad-zone-legend-list-zone-b,
.sac-cad-root.is-cad-list.sac-cad-hide-zone-c .sac-cad-zone-legend-list-zone-c{
    display:none!important;
}
.sac-cad-root.is-cad-list.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c
.sac-cad-zone-legend-list{
    display:none!important;
}


/* =========================================================
   v4.29.0 - CAD List WEB: day/weekday typography + month badge size
========================================================= */

/* Day number: +1px from the current List View size. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-date{
    font-size:13px!important;
    padding-left:0!important;
}

/* Weekday initial uses exactly the same font size as the day number. */
.sac-cad-root.is-cad-list .sac-cad-list-day > .sac-cad-list-weekday{
    font-size:13px!important;
}

/* Month-number badge: reduce diameter by another 1px (33.5px -> 32.5px). */
.sac-cad-root.is-cad-list
.sac-cad-list-month
> .sac-cad-month-title
> .sac-cad-list-month-number{
    width:32.5px!important;
    height:32.5px!important;
    min-width:32.5px!important;
    min-height:32.5px!important;
    max-width:32.5px!important;
    max-height:32.5px!important;
    flex:0 0 32.5px!important;
}


/* =========================================================
   v4.29.1 - CAD Grid WEB: independent Moon / Zone legend visibility
========================================================= */

/* Never hide the whole Grid legend merely because Cycle lunaire is disabled.
   JS controls the container only when both Moon and all Zones are disabled. */
.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire .sac-cad-moon-legend-grid{
    display:flex!important;
}

/* Lunar legend items follow only the lunar option. */
.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire
.sac-cad-moon-legend-grid .sac-cad-moon-legend-lunar-item{
    display:none!important;
}

/* Zone legend items follow Zone A/B/C independently. */
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-a
.sac-cad-moon-legend-grid .sac-cad-grid-zone-legend-zone-a,
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-b
.sac-cad-moon-legend-grid .sac-cad-grid-zone-legend-zone-b,
.sac-cad-root.is-cad-grid.sac-cad-hide-zone-c
.sac-cad-moon-legend-grid .sac-cad-grid-zone-legend-zone-c{
    display:none!important;
}

/* If Moon and all three Zones are disabled, hiding the entire legend is valid. */
.sac-cad-root.is-cad-grid.sac-cad-hide-lunaire.sac-cad-hide-zone-a.sac-cad-hide-zone-b.sac-cad-hide-zone-c
.sac-cad-moon-legend-grid{
    display:none!important;
}


/* =========================================================
   v4.29.2 - CAD Grid/List WEB: collapsible sticky display options
========================================================= */

.sac-cad-root .sac-cad-options{
    --sac-cad-options-sticky-top:0px;
    position:sticky!important;
    top:var(--sac-cad-options-sticky-top)!important;
    z-index:90!important;
    background:#fff!important;
    box-sizing:border-box!important;
}

/* Legend stays visible in both expanded and collapsed states. */
.sac-cad-root .sac-cad-options > .sac-cad-options-legend{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:auto!important;
    max-width:100%!important;
    margin:0 0 0 8px!important;
    padding:0 4px!important;
    background:#fff!important;
    box-sizing:border-box!important;
    white-space:nowrap!important;
}

.sac-cad-root .sac-cad-options-legend-text{
    display:inline-block!important;
}

.sac-cad-root .sac-cad-options-toggle{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:22px!important;
    height:22px!important;
    min-width:22px!important;
    min-height:22px!important;
    padding:0!important;
    margin:0!important;
    border:1px solid #666!important;
    border-radius:0!important;
    background:#fff!important;
    color:#222!important;
    font:700 17px/1 Arial,sans-serif!important;
    cursor:pointer!important;
    box-sizing:border-box!important;
    vertical-align:middle!important;
}

/* Collapse all option content while keeping the legend visible. */
.sac-cad-root .sac-cad-options.is-collapsed > :not(.sac-cad-options-legend){
    display:none!important;
}

/* Collapsed state: only the header line remains, with the fieldset top border. */
.sac-cad-root .sac-cad-options.is-collapsed{
    min-height:34px!important;
    padding:0!important;
    border-left:0!important;
    border-right:0!important;
    border-bottom:0!important;
    border-top-width:1px!important;
    border-top-style:solid!important;
    box-shadow:none!important;
    background:#fff!important;
}

/* Keep sticky panel opaque while scrolling over calendar content. */
.sac-cad-root .sac-cad-options:not(.is-collapsed){
    background:#fff!important;
}

@media (max-width:768px){
    .sac-cad-root .sac-cad-options-toggle{
        width:21px!important;
        height:21px!important;
        min-width:21px!important;
        min-height:21px!important;
        font-size:16px!important;
    }
}


/* =========================================================
   v4.29.3 - CAD Grid/List WEB: reliable options collapse + fixed pinning
========================================================= */

/* Normal document state. JS switches to fixed only after the original
   Options position reaches the main-menu/header bottom. */
.sac-cad-root .sac-cad-options{
    position:relative!important;
    top:auto!important;
    z-index:90!important;
}

.sac-cad-root .sac-cad-options-placeholder{
    display:block!important;
    width:100%!important;
    height:0;
    margin:0!important;
    padding:0!important;
    border:0!important;
    pointer-events:none!important;
}

.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    position:fixed!important;
    z-index:99990!important;
    margin-top:0!important;
    margin-bottom:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    background:#fff!important;
    box-shadow:0 2px 8px rgba(0,0,0,.14)!important;
}

/* Collapsed pinned panel still keeps only the Options line and top border. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-collapsed{
    overflow:hidden!important;
    box-shadow:0 1px 4px rgba(0,0,0,.10)!important;
}

/* Make sure the square +/- button remains clickable above fieldset decoration. */
.sac-cad-root .sac-cad-options-toggle{
    position:relative!important;
    z-index:3!important;
    pointer-events:auto!important;
}


/* =========================================================
   v4.29.6 - CAD Grid/List WEB: force pinned geometry over legacy !important
========================================================= */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    top:var(--sac-cad-options-fixed-top,0px)!important;
}


/* =========================================================
   v4.29.7 - CAD Grid/List WEB: explicit pin toggle + compact pinned strip
========================================================= */
.sac-cad-root .sac-cad-options-controls{
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    margin-left:2px!important;
}
.sac-cad-root .sac-cad-options-pin-toggle{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:22px!important;
    height:22px!important;
    min-width:22px!important;
    min-height:22px!important;
    padding:0!important;
    margin:0!important;
    border:1px solid #666!important;
    border-radius:0!important;
    background:#fff!important;
    cursor:pointer!important;
    box-sizing:border-box!important;
    position:relative!important;
    z-index:4!important;
}
.sac-cad-root .sac-cad-options-pin-symbol{
    display:none!important;
    width:100%!important;
    height:100%!important;
    align-items:center!important;
    justify-content:center!important;
    line-height:1!important;
}
.sac-cad-root .sac-cad-options-pin-toggle.is-pinned .sac-cad-options-pin-symbol-unpin{
    display:inline-flex!important;
    color:#d40000!important;
    font:700 18px/1 Arial,sans-serif!important;
}
.sac-cad-root .sac-cad-options-pin-toggle.is-unpinned .sac-cad-options-pin-symbol-pin{
    display:inline-flex!important;
    color:#333!important;
    font:400 15px/1 Arial,sans-serif!important;
}

/* While actually pinned, keep only the small title/control strip. */
.sac-cad-root .sac-cad-options.is-cad-options-compact-pinned
> :not(.sac-cad-options-legend){
    display:none!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-compact-pinned{
    min-height:34px!important;
    height:auto!important;
    padding:0!important;
    border-left:0!important;
    border-right:0!important;
    border-bottom:0!important;
    overflow:hidden!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-compact-pinned
> .sac-cad-options-legend{
    display:flex!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0 0 0 8px!important;
    padding:4px!important;
    background:#fff!important;
}

/* Explicit unpinned state: never float the Options panel. */
.sac-cad-root .sac-cad-options.is-pin-disabled{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    width:auto!important;
    max-height:none!important;
    box-shadow:none!important;
}


/* =========================================================
   v4.29.8 - CAD Grid/List WEB: preserve expanded panel + seal menu gap
========================================================= */

/* Do NOT force the full Options body to disappear merely because it is pinned.
   Compact mode is used only when the user/options state is actually collapsed. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky:not(.is-cad-options-compact-pinned)
> :not(.sac-cad-options-legend){
    display:revert!important;
}

/* Existing option grid must remain visible when pinned + expanded. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky:not(.is-cad-options-compact-pinned)
> .sac-cad-options-grid{
    display:grid!important;
}

/* Compact pinned mode remains title + controls only. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned
> :not(.sac-cad-options-legend){
    display:none!important;
}

/* Seal the narrow visual gap caused by the fieldset legend protruding above
   the border. The pseudo-element fills upward to touch the main menu exactly. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:calc(-1 * var(--sac-cad-options-bridge-height, 6px))!important;
    height:var(--sac-cad-options-bridge-height, 6px)!important;
    background:#fff!important;
    pointer-events:none!important;
    z-index:0!important;
}

/* Keep legend and controls above the bridge layer. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky > .sac-cad-options-legend{
    position:relative!important;
    z-index:2!important;
    background:#fff!important;
}

/* Ensure the pinned fieldset itself starts flush at the computed menu bottom. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    border-top-color:#d7d7d7!important;
    background:#fff!important;
}


/* =========================================================
   v4.29.9 - CAD Grid/List WEB: eliminate sticky menu gap by overlap
========================================================= */

/* Replace the previous bridge technique with a small physical overlap into
   the menu edge. This avoids the fieldset/legend rendering gap entirely. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky::before{
    display:none!important;
    content:none!important;
}

/* The JS pins Options 3px upward into the menu edge. Remove any decoration
   that can visually reopen a seam between the two blocks. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    margin-top:0!important;
    border-top:0!important;
    outline:0!important;
    background:#fff!important;
}

/* Fieldset legend must not pull the painted background downward. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend{
    margin-top:0!important;
    background:#fff!important;
}

/* Ensure the entire pinned width paints opaque white all the way to its top
   edge, even where the legend only occupies a small portion of the fieldset. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky::after{
    content:""!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:0!important;
    height:4px!important;
    background:#fff!important;
    z-index:0!important;
    pointer-events:none!important;
}

/* Keep the actual legend/content above the seam-cover strip. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend,
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-grid{
    position:relative!important;
    z-index:1!important;
}


/* =========================================================
   v4.30.0 - CAD Grid/List WEB: hard-seal sticky seam
   Root cause: fieldset/legend special painting can leave a visible slit.
========================================================= */

/* Exact pin position is the menu bottom; no visual offset is delegated to
   fieldset/legend geometry. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    top:var(--sac-cad-options-fixed-top,0px)!important;
    margin:0!important;
    padding-top:0!important;
    border-top:0!important;
    background:#fff!important;
    overflow:visible!important;
}

/* A 24px opaque curtain extends upward UNDER the main menu.
   JS keeps the Options stacking level one step below the menu, so this strip
   cannot cover the menu itself; it only seals any slit between the two. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:100%!important;
    top:auto!important;
    height:24px!important;
    background:#fff!important;
    border:0!important;
    margin:0!important;
    padding:0!important;
    pointer-events:none!important;
    z-index:0!important;
}

/* Disable the older 4px top painter; the new upward curtain replaces it. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky::after{
    content:none!important;
    display:none!important;
}

/* While fixed, make legend paint like a normal, full-width header strip.
   This removes the native fieldset 'notch' around <legend>. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend{
    display:flex!important;
    float:none!important;
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:4px 8px!important;
    border:0!important;
    background:#fff!important;
    box-sizing:border-box!important;
    z-index:2!important;
}

/* Expanded body stays directly attached to the sticky legend. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky:not(.is-cad-options-compact-pinned)
> .sac-cad-options-grid{
    position:relative!important;
    margin-top:0!important;
    background:#fff!important;
    z-index:2!important;
}

/* In compact/collapsed sticky state, keep the fieldset itself opaque and
   only the title/control row visible. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned{
    min-height:30px!important;
    background:#fff!important;
}


/* =========================================================
   v4.30.3 - CAD Grid/List WEB:
   full-viewport sticky Options + corner sealing + collapsed blue strip
========================================================= */

/* Sticky Options spans the full viewport width (JS sets left:0 + width:innerWidth).
   Remove radius/side borders so the bar meets both viewport edges cleanly. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    border-left:0!important;
    border-right:0!important;
    border-radius:0!important;
    box-sizing:border-box!important;
}

/* When sticky + expanded, ensure all four top corners and the full upper seam
   are painted opaque white; no content can show through beside the menu. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky:not(.is-cad-options-compact-pinned){
    background:#fff!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-sticky:not(.is-cad-options-compact-pinned)::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:100%!important;
    height:28px!important;
    background:#fff!important;
    border:0!important;
    margin:0!important;
    pointer-events:none!important;
    z-index:0!important;
}

/* Paint the sticky legend full-width as part of the same white surface. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky:not(.is-cad-options-compact-pinned)
> .sac-cad-options-legend{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
    background:#fff!important;
}

/* When sticky + collapsed, make the entire bar a light-blue identifier strip. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned{
    background:#eaf6ff!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned
> .sac-cad-options-legend{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
    background:#eaf6ff!important;
}

/* The upward curtain follows the collapsed bar color as well, keeping the
   transition into the menu visually solid across the full width. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:100%!important;
    height:28px!important;
    background:#eaf6ff!important;
    border:0!important;
    margin:0!important;
    pointer-events:none!important;
    z-index:0!important;
}

/* Keep controls visible above the seam-cover layer. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend,
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-grid{
    position:relative!important;
    z-index:2!important;
}


/* =========================================================
   v4.30.7 - CAD Options: center exporters when school zones are unavailable
========================================================= */
.sac-cad-root .sac-cad-options-school.sac-cad-options-school-no-data{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:stretch!important;
}

.sac-cad-root .sac-cad-options-school.sac-cad-options-school-no-data
> .sac-cad-export-actions{
    margin-top:auto!important;
    margin-bottom:auto!important;
}


/* =========================================================
   v4.30.8 - CAD Options responsive:
   keep filter choices horizontal as long as space allows
========================================================= */

/* Each logical option group behaves as a compact wrapping row.
   Items in the same group stay together visually before the next group. */
.sac-cad-root .sac-cad-options .sac-annual-options-col{
    min-width:0!important;
}

.sac-cad-root .sac-cad-options .sac-annual-filter-list,
.sac-cad-root .sac-cad-options .sac-monthly-filter-list,
.sac-cad-root .sac-cad-options .sac-monthly-zone-filter-row,
.sac-cad-root .sac-cad-options .sac-cad-zone-filter-row{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    align-content:flex-start!important;
    justify-content:flex-start!important;
    gap:6px 12px!important;
}

/* Keep a single option compact; do not stretch it to full width while
   horizontal space is still available. */
.sac-cad-root .sac-cad-options .sac-annual-filter-item,
.sac-cad-root .sac-cad-options .sac-monthly-zone-filter-item{
    display:inline-flex!important;
    align-items:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    max-width:100%!important;
    margin:0!important;
    white-space:nowrap!important;
}

/* Responsive: preserve the two logical groups as separate blocks, but let
   the choices inside each group remain horizontal/wrapped for as long as
   they fit naturally. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-options-grid{
        align-items:stretch!important;
    }

    .sac-cad-root .sac-cad-options .sac-annual-filter-list,
    .sac-cad-root .sac-cad-options .sac-monthly-filter-list,
    .sac-cad-root .sac-cad-options .sac-monthly-zone-filter-row,
    .sac-cad-root .sac-cad-options .sac-cad-zone-filter-row{
        flex-direction:row!important;
        flex-wrap:wrap!important;
        justify-content:flex-start!important;
    }
}

/* Only at very narrow widths do we force every choice onto its own row. */
@media (max-width:420px){
    .sac-cad-root .sac-cad-options .sac-annual-filter-list,
    .sac-cad-root .sac-cad-options .sac-monthly-filter-list,
    .sac-cad-root .sac-cad-options .sac-monthly-zone-filter-row,
    .sac-cad-root .sac-cad-options .sac-cad-zone-filter-row{
        flex-direction:column!important;
        flex-wrap:nowrap!important;
        align-items:flex-start!important;
        gap:6px!important;
    }

    .sac-cad-root .sac-cad-options .sac-annual-filter-item,
    .sac-cad-root .sac-cad-options .sac-monthly-zone-filter-item{
        width:100%!important;
    }
}


/* =========================================================
   v4.30.9 - CAD Options responsive refinement
========================================================= */

/* Center Zone A/B/C as one compact group. */
.sac-cad-root .sac-cad-options .sac-monthly-zone-filter-row,
.sac-cad-root .sac-cad-options .sac-cad-zone-filter-row{
    justify-content:center!important;
}

/* Do not change the filter direction merely because viewport crossed 900px.
   Keep horizontal wrapping based on the actual available container width. */
@media (max-width:900px){
    .sac-cad-root .sac-cad-options .sac-annual-filter-list,
    .sac-cad-root .sac-cad-options .sac-monthly-filter-list{
        display:flex!important;
        flex-direction:row!important;
        flex-wrap:wrap!important;
        align-items:center!important;
        align-content:flex-start!important;
        justify-content:flex-start!important;
        gap:6px 12px!important;
    }

    .sac-cad-root .sac-cad-options .sac-annual-filter-item{
        flex:0 0 auto!important;
        width:auto!important;
        min-width:0!important;
        white-space:nowrap!important;
    }
}

/* Keep horizontal wrapping even on moderately narrow mobile widths.
   Only very small screens force a full vertical stack. */
@media (min-width:421px) and (max-width:900px){
    .sac-cad-root .sac-cad-options .sac-annual-filter-list,
    .sac-cad-root .sac-cad-options .sac-monthly-filter-list{
        flex-direction:row!important;
        flex-wrap:wrap!important;
    }
}


/* =========================================================
   v4.30.10 - iOS Safari/Chrome sticky Options compact fix
   WebKit can clip a native fieldset > legend when the fixed/collapsed
   fieldset has overflow:hidden. Keep the compact legend inside a visible
   paint area and explicitly preserve its content.
========================================================= */

/* Override legacy compact/collapsed clipping rules. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-collapsed,
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned{
    overflow:visible!important;
    min-height:34px!important;
    height:auto!important;
}

/* Force the sticky legend to behave as a normal painted flex row on WebKit. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend{
    display:flex!important;
    float:none!important;
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:34px!important;
    height:auto!important;
    margin:0!important;
    padding:5px 10px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    visibility:visible!important;
    opacity:1!important;
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
    -webkit-backface-visibility:hidden;
    backface-visibility:hidden;
}

/* Explicitly preserve title + controls in compact sticky state. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned
> .sac-cad-options-legend
> .sac-cad-options-legend-text,
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned
> .sac-cad-options-legend
> .sac-cad-options-controls{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    position:relative!important;
    z-index:4!important;
}

/* Prevent the blue seam-cover layer from ever covering legend content. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky::before{
    z-index:0!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend{
    z-index:5!important;
}

/* iPhone / narrow iOS viewport hardening. */
@supports (-webkit-touch-callout:none){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky.is-collapsed,
    .sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned{
        overflow:visible!important;
    }

    .sac-cad-root .sac-cad-options.is-cad-options-sticky
    > .sac-cad-options-legend{
        -webkit-box-sizing:border-box!important;
        box-sizing:border-box!important;
        clip:auto!important;
        clip-path:none!important;
    }
}

/* v4.30.11 - cross-browser/device sticky Options hardening */
.sac-cad-root .sac-cad-options.is-cad-options-sticky,
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-collapsed,
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned{
    -webkit-box-sizing:border-box!important;box-sizing:border-box!important;
    -webkit-text-size-adjust:100%!important;text-size-adjust:100%!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-collapsed,
.sac-cad-root .sac-cad-options.is-cad-options-sticky.is-cad-options-compact-pinned{
    overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{
    -webkit-box-sizing:border-box!important;box-sizing:border-box!important;
    -webkit-flex:0 0 auto!important;flex:0 0 auto!important;
    -webkit-align-items:center!important;align-items:center!important;
    -webkit-justify-content:flex-start!important;justify-content:flex-start!important;
    overflow:visible!important;overflow-x:visible!important;overflow-y:visible!important;
    isolation:isolate!important;
}
@supports (display:flex){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{
        display:flex!important;min-height:34px!important;visibility:visible!important;opacity:1!important;
    }
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend>.sac-cad-options-legend-text,
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend>.sac-cad-options-controls{
        visibility:visible!important;opacity:1!important;
    }
}
@supports (-webkit-appearance:none){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{
        -webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);
        -webkit-backface-visibility:hidden;backface-visibility:hidden;
    }
}
@supports (-moz-appearance:none){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{
        transform:none;backface-visibility:visible;
    }
}
@media (hover:none) and (pointer:coarse){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{min-height:36px!important}
    .sac-cad-root .sac-cad-options-toggle,.sac-cad-root .sac-cad-options-pin-toggle{
        touch-action:manipulation!important;-webkit-tap-highlight-color:transparent;
    }
}
@media (max-width:900px){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{
        width:100%!important;max-width:100%!important;min-width:0!important;
    }
    .sac-cad-root .sac-cad-options-legend-text{min-width:0!important;overflow:visible!important;white-space:nowrap!important}
    .sac-cad-root .sac-cad-options-controls{-webkit-flex-shrink:0!important;flex-shrink:0!important}
}
@media (forced-colors:active){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky,
    .sac-cad-root .sac-cad-options.is-cad-options-sticky>.sac-cad-options-legend{
        forced-color-adjust:auto!important;border-color:CanvasText!important;
    }
}
@media (prefers-reduced-motion:reduce){
    .sac-cad-root .sac-cad-options.is-cad-options-sticky,
    .sac-cad-root .sac-cad-options.is-cad-options-sticky *{
        scroll-behavior:auto!important;transition:none!important;animation:none!important;
    }
}


/* =========================================================
   v4.30.13 - Sticky Options stacking order
   Keep Options below dynamic search/results/dropdowns/popups while still
   above ordinary calendar/page content.
========================================================= */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    z-index:80!important;
}

/* Internal controls remain above the Options background/seam only.
   Their local stacking does not escape the parent z-index:80 context. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky
> .sac-cad-options-legend{
    z-index:5!important;
}
.sac-cad-root .sac-cad-options.is-cad-options-sticky
.sac-cad-options-toggle,
.sac-cad-root .sac-cad-options.is-cad-options-sticky
.sac-cad-options-pin-toggle{
    position:relative!important;
    z-index:6!important;
    pointer-events:auto!important;
}


/* =========================================================
   v4.30.14 - Fix top-of-page stacking context
   Normal (non-sticky) Options must stay in the document's natural stacking
   order. A legacy z-index:90 on position:relative created a stacking context
   that could cover live-search results even when the search itself had a
   very large z-index inside another stacking context.
========================================================= */

/* Normal state: no artificial stacking layer. */
.sac-cad-root .sac-cad-options:not(.is-cad-options-sticky){
    position:relative!important;
    z-index:auto!important;
}

/* Explicit unpinned state is also natural document stacking. */
.sac-cad-root .sac-cad-options.is-pin-disabled{
    z-index:auto!important;
}

/* Sticky state alone gets the dedicated overlay tier. */
.sac-cad-root .sac-cad-options.is-cad-options-sticky{
    z-index:80!important;
}


/* =========================================================
   v4.30.16 - calendrier_annuel_dualview / Grid WEB typography
========================================================= */

/* All visible date numbers are bold. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell,
.sac-cad-root.is-cad-grid .sac-cad-grid-day-number{
    font-weight:700!important;
}

/* French flag colors for weekend date text. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.sac-cad-grid-saturday,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.sac-cad-grid-saturday .sac-cad-grid-day-number{
    color:#002395!important;
}
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.sac-cad-grid-sunday,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.sac-cad-grid-sunday .sac-cad-grid-day-number{
    color:#ED2939!important;
}

/* Public holidays keep their dedicated holiday-red priority. */
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active,
.sac-cad-root.is-cad-grid .sac-cad-grid-date-cell.is-cad-ferie-active .sac-cad-grid-day-number{
    color:#c62828!important;
}

/* ISO week indicators are italic. */
.sac-cad-root.is-cad-grid .sac-cad-grid-week-number,
.sac-cad-root.is-cad-grid .sac-cad-grid-week-label{
    font-style:italic!important;
}

/* Top edge of month card uses exactly the same neutral border as other sides. */
.sac-cad-root.is-cad-grid .sac-cad-annual-month-card{
    border-color:#9a9a9a!important;
}


/* =========================================================
   v4.30.17 - CAD web reference headers + month-title borders
========================================================= */

/* Jours fériés / Autres fêtes: bold the whole column-header row
   (Jour / La date / ...), in both Grid and List reference tables. */
.sac-cad-root .sac-cad-reference-event-table thead tr:last-child th,
.sac-cad-root .sac-cad-reference-event-table thead tr:last-child td{
    font-weight:700!important;
}

/* Grid: title bar top/left/right border matches the month outer border. */
.sac-cad-root.is-cad-grid .sac-cad-grid-titlebar{
    border-top:1px solid #9a9a9a!important;
    border-left:1px solid #9a9a9a!important;
    border-right:1px solid #9a9a9a!important;
    box-sizing:border-box!important;
}

/* List: top border of each month title matches its side borders. */
.sac-cad-root.is-cad-list .sac-cad-month-title{
    border-top:1px solid #9a9a9a!important;
    box-sizing:border-box!important;
}


/* =========================================================
   v4.30.18 - CAD List WEB: month-frame top border parity
========================================================= */
.sac-cad-root.is-cad-list .sac-cad-list-month{
    border-top:1px solid #9a9a9a!important;
    box-sizing:border-box!important;
}
.sac-cad-root.is-cad-list .sac-cad-month-title{
    border-top:0!important;
}


/* =========================================================
   v4.30.26 - CAD List WEB: weekend weekday/date text colors
   Match Grid View French-flag colors.
========================================================= */
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-saturday .sac-cad-list-weekday,
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-saturday .sac-cad-list-date{
    color:#002395!important;
}
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-sunday .sac-cad-list-weekday,
.sac-cad-root.is-cad-list .sac-cad-list-day.sac-cad-sunday .sac-cad-list-date{
    color:#ED2939!important;
}
/* National holidays keep holiday-red priority even on weekends. */
.sac-cad-root.is-cad-list .sac-cad-list-day.is-cad-ferie-active .sac-cad-list-weekday,
.sac-cad-root.is-cad-list .sac-cad-list-day.is-cad-ferie-active .sac-cad-list-date{
    color:#c62828!important;
}


/* =========================================================
   v4.30.27 - CAD WEB school-holiday table typography/reflow
   Grid + List views
========================================================= */

/* First column gets measured priority; remaining visible Zone columns share
   the rest. The school table alone uses automatic layout assistance. */
.sac-cad-root .sac-cad-reference-school-table{
    table-layout:fixed!important;
}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-columns-head th:first-child,
.sac-cad-root .sac-cad-reference-school-table tbody th:first-child{
    width:var(--sac-cad-school-first-col,28%)!important;
}

/* The "Périodes de vacances / Zone A / Zone B / Zone C" heading row is bold
   in every visible column. */
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-columns-head th{
    font-weight:700!important;
}

/* Every data row below the column heading is regular by default. */
.sac-cad-root .sac-cad-reference-school-table tbody th,
.sac-cad-root .sac-cad-reference-school-table tbody td{
    font-weight:400!important;
}

/* Date ranges: Du/au regular, both dates bold. Wide cells stay on one line. */
.sac-cad-root .sac-cad-school-date-range{
    display:inline-flex;
    align-items:baseline;
    justify-content:center;
    gap:.28em;
    max-width:100%;
    white-space:nowrap;
    line-height:1.28;
}
.sac-cad-root .sac-cad-school-du,
.sac-cad-root .sac-cad-school-au{
    font-weight:400!important;
}
.sac-cad-root .sac-cad-school-date-value{
    font-weight:700!important;
}

/* Medium width: break exactly before "au". */
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-break-au .sac-cad-school-date-range{
    display:grid;
    grid-template-columns:max-content max-content;
    grid-template-rows:auto auto;
    justify-content:center;
    column-gap:.28em;
    row-gap:0;
    white-space:nowrap;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-break-au .sac-cad-school-du{
    grid-column:1;grid-row:1;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-break-au .sac-cad-school-date-from{
    grid-column:2;grid-row:1;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-break-au .sac-cad-school-au{
    grid-column:1;grid-row:2;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-break-au .sac-cad-school-date-to{
    grid-column:2;grid-row:2;
}

/* Very narrow responsive cell: Du / DATE / au / DATE. */
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-stack .sac-cad-school-date-range{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:0;
    white-space:normal;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-stack .sac-cad-school-date-range > span{
    display:block;
    width:100%;
    text-align:center;
}

/* Hover applies bold to the complete BODY row only.
   H3 title and Zone-heading row are outside tbody and therefore unaffected. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover td,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover td span{
    font-weight:700!important;
}

/* Keep first-column labels intact as long as there is room; Zone/date cells
   surrender width first. */
.sac-cad-root .sac-cad-reference-school-table tbody th:first-child{
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
}

@media(max-width:520px){
    .sac-cad-root .sac-cad-reference-school-table th,
    .sac-cad-root .sac-cad-reference-school-table td{
        padding-left:3px!important;
        padding-right:3px!important;
    }
}


/* =========================================================
   v4.30.28 - School table overflow hardening
========================================================= */
.sac-cad-root .sac-cad-reference-school-table td.sac-cad-school-zone-cell{
    min-width:0!important;
    overflow:hidden!important;
}
.sac-cad-root .sac-cad-school-date-range,
.sac-cad-root .sac-cad-school-date-range > span{
    min-width:0!important;
    max-width:100%!important;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-break-au .sac-cad-school-date-range{
    width:100%!important;
}
.sac-cad-root .sac-cad-school-zone-cell.sac-cad-school-range-stack .sac-cad-school-date-range{
    width:100%!important;
}


/* =========================================================
   v4.30.29 - School table merged-cell row background + no bold hover
========================================================= */

/* Merged holiday-date cells must visually continue the same row background
   as the period-name cell instead of forcing a white background. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(odd) th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(odd) td.sac-cad-school-merged-cell{
    background:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(even) th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(even) td.sac-cad-school-merged-cell{
    background:#f7f7f7!important;
}

/* When a merged cell is neutral, do not let zone-color helper classes
   overwrite the row background. */
.sac-cad-root .sac-cad-reference-school-table td.sac-cad-school-merged-cell.sac-cad-zone-color-merged{
    background:inherit!important;
}

/* Disable the previous hover bold effect completely. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover td,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover td span{
    font-weight:inherit!important;
}


/* =========================================================
   v4.30.30 - School table merged-only row background
   + fully disable hover bold
========================================================= */

/* IMPORTANT:
   - Non-merged Zone cells keep their existing Zone-specific background.
   - Only merged cells are forced to follow the zebra background of the row. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(odd)
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell{
    background:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(even)
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell{
    background:#f7f7f7!important;
}

/* Neutralize any zone-color helper ONLY on merged cells.
   Do not affect standalone A/B/C cells. */
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell.sac-cad-zone-color-a,
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell.sac-cad-zone-color-b,
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell.sac-cad-zone-color-c,
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell.sac-cad-zone-color-merged{
    background:inherit!important;
}

/* Completely remove hover-bold behavior for school table body rows.
   Keep the normal configured weights:
   - row labels and Du/au regular
   - date values bold
   This applies to merged and non-merged cells alike. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover > th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover > td{
    font-weight:400!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover
.sac-cad-school-du,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover
.sac-cad-school-au{
    font-weight:400!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover
.sac-cad-school-date-value{
    font-weight:700!important;
}

/* Cancel any generic descendant hover-bold rule inherited from previous
   versions without destroying the intended bold date tokens. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover td span:not(.sac-cad-school-date-value){
    font-weight:400!important;
}


/* =========================================================
   v4.30.31 - School table standalone Zone colors
   + preserve Rentrée typography on hover
========================================================= */

/* Standalone Zone cells (not merged) must keep their Zone-specific fills.
   These selectors intentionally exclude .sac-cad-school-merged-cell. */
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-a:not(.sac-cad-school-merged-cell){
    background:#fff3e8!important;
}
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-b:not(.sac-cad-school-merged-cell){
    background:#eaf4ff!important;
}
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-c:not(.sac-cad-school-merged-cell){
    background:#eaf7ee!important;
}

/* Merged cells alone continue the zebra background of the period-name cell. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(odd)
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell{
    background:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:nth-child(even)
td.sac-cad-school-zone-cell.sac-cad-school-merged-cell{
    background:#f7f7f7!important;
}

/* Remove hover weight mutation entirely: hover must not change typography. */
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover > th,
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover > td{
    font-weight:inherit!important;
}
.sac-cad-root .sac-cad-reference-school-table tbody tr:hover span{
    font-weight:inherit!important;
}

/* Restore intended fixed weights after neutralizing generic hover rules. */
.sac-cad-root .sac-cad-reference-school-table tbody th,
.sac-cad-root .sac-cad-reference-school-table tbody td{
    font-weight:400!important;
}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-date-value{
    font-weight:700!important;
}

/* Rentrée scolaire row keeps its own label/value weight unchanged on hover.
   The row label is bold by design; its Zone values stay regular. */
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row > th{
    font-weight:700!important;
}
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row > td{
    font-weight:400!important;
}
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row:hover > th{
    font-weight:700!important;
}
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row:hover > td{
    font-weight:400!important;
}


/* =========================================================
   v4.30.32 - Rentrée scolaire row: label + Zone values bold
========================================================= */
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row > th,
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row > td,
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row:hover > th,
.sac-cad-root .sac-cad-reference-school-table
tr.sac-cad-school-rentree-row:hover > td{
    font-weight:700!important;
}


/* =========================================================
   v4.30.33 - Structural school Zone coloring
========================================================= */

/* Any school-table data cell mapped to exactly one Zone gets that Zone's
   background automatically, regardless of the row label. This covers
   Académies, Vacances d’hiver, Vacances de printemps and future rows
   using the same data-cad-zones structure. */
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-a:not(.sac-cad-zone-color-merged){
    background:#e56b00!important;
    color:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-b:not(.sac-cad-zone-color-merged){
    background:#0077d6!important;
    color:#fff!important;
}
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-c:not(.sac-cad-zone-color-merged){
    background:#14833b!important;
    color:#fff!important;
}

/* Multi-Zone cells remain neutral and follow their row background. */
.sac-cad-root .sac-cad-reference-school-table
td.sac-cad-school-zone-cell.sac-cad-zone-color-merged{
    background:inherit!important;
}


/* =========================================================
   v4.30.35 - Lower/reference data tables: +1pt typography
========================================================= */

/* Increase the complete data-table area below the calendar by 1pt.
   The rule is outside media queries and repeated with the same increment
   at responsive widths, so mobile/tablet cannot fall back to the old size. */
.sac-cad-root .sac-cad-reference-table{
    font-size:calc(1em + 1pt)!important;
}

/* Headings/captions belonging to the reference cards are also part of the
   lower data tables. Scale them by the same +1pt without changing weight. */
.sac-cad-root .sac-cad-reference-card > h3,
.sac-cad-root .sac-cad-reference-card .sac-cad-reference-title{
    font-size:calc(1em + 1pt)!important;
}

@media(max-width:760px){
    .sac-cad-root .sac-cad-reference-table{
        font-size:calc(1em + 1pt)!important;
    }
    .sac-cad-root .sac-cad-reference-card > h3,
    .sac-cad-root .sac-cad-reference-card .sac-cad-reference-title{
        font-size:calc(1em + 1pt)!important;
    }
}

@media(max-width:520px){
    .sac-cad-root .sac-cad-reference-table{
        font-size:calc(1em + 1pt)!important;
    }
    .sac-cad-root .sac-cad-reference-card > h3,
    .sac-cad-root .sac-cad-reference-card .sac-cad-reference-title{
        font-size:calc(1em + 1pt)!important;
    }
}


/* =========================================================
   v4.30.37 - CAD virtual PDF/JPG export status
========================================================= */
.sac-cad-root .sac-cad-export-dialog{
    position:relative;
}
.sac-cad-root .sac-cad-export-modal.is-cad-exporting .sac-cad-export-dialog > *:not(.sac-cad-export-status){
    filter:blur(2px);
    opacity:.34;
    pointer-events:none!important;
    user-select:none;
}
.sac-cad-root .sac-cad-export-modal.is-cad-exporting .sac-cad-export-dialog{
    cursor:progress;
}
.sac-cad-root .sac-cad-export-status{
    position:absolute;
    inset:0;
    z-index:30;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
}
.sac-cad-root .sac-cad-export-status[hidden]{
    display:none!important;
}
.sac-cad-root .sac-cad-export-status-card{
    width:min(440px,calc(100% - 20px));
    padding:24px 24px 20px;
    border:1px solid #c7c7c7;
    border-radius:10px;
    background:rgba(255,255,255,.97);
    box-shadow:0 14px 38px rgba(0,0,0,.22);
    text-align:center;
}
.sac-cad-root .sac-cad-export-status-spinner{
    width:34px;
    height:34px;
    margin:0 auto 14px;
    border:4px solid #d9e3ef;
    border-top-color:#2F75B5;
    border-radius:50%;
    animation:sacCadExportSpin .85s linear infinite;
}
.sac-cad-root .sac-cad-export-status-spinner.is-complete{
    animation:none;
    border-color:#2e9d50;
    position:relative;
}
.sac-cad-root .sac-cad-export-status-spinner.is-complete:after{
    content:"✓";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#2e9d50;
    font-weight:700;
    font-size:20px;
    line-height:1;
}
.sac-cad-root .sac-cad-export-status-text{
    min-height:2.7em;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    font-size:15px;
    line-height:1.35;
    color:#2b2b2b;
}
.sac-cad-root .sac-cad-export-progress{
    height:11px;
    margin-top:16px;
    overflow:hidden;
    border-radius:999px;
    background:#e8edf2;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.12);
}
.sac-cad-root .sac-cad-export-progress-bar{
    width:0;
    height:100%;
    border-radius:inherit;
    background:#2F75B5;
    transition:width .12s linear;
}
.sac-cad-root .sac-cad-export-progress-label{
    margin-top:7px;
    font-size:13px;
    font-weight:700;
    color:#555;
}
@keyframes sacCadExportSpin{
    to{transform:rotate(360deg)}
}
@media(max-width:520px){
    .sac-cad-root .sac-cad-export-status{
        padding:12px;
    }
    .sac-cad-root .sac-cad-export-status-card{
        width:100%;
        padding:20px 14px 17px;
    }
    .sac-cad-root .sac-cad-export-status-text{
        font-size:14px;
    }
}


/* =========================================================
   v4.30.38 - CAD export error state
========================================================= */
.sac-cad-root .sac-cad-export-status-spinner.is-error{
    animation:none!important;
    border-color:#d32f2f!important;
    background:#fff!important;
    position:relative;
}
.sac-cad-root .sac-cad-export-status-spinner.is-error:after{
    content:"×";
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#d32f2f;
    font-size:24px;
    line-height:1;
    font-weight:800;
}
.sac-cad-root .sac-cad-export-error-email-row{
    display:flex;
    width:max-content;
    max-width:100%;
    margin:14px auto 0;
    align-items:center;
    justify-content:center;
    gap:7px;
}
.sac-cad-root .sac-cad-export-error-email-row[hidden]{
    display:none!important;
}
.sac-cad-root .sac-cad-export-error-email{
    display:flex;
    min-width:0;
    align-items:center;
    justify-content:center;
    gap:7px;
    font-weight:600;
    line-height:1.4;
    text-decoration:underline;
    word-break:break-all;
}
.sac-cad-root .sac-cad-export-error-email:before{
    content:"✉";
    flex:0 0 auto;
    color:#555;
    font-size:17px;
    line-height:1;
    text-decoration:none;
}
.sac-cad-root .sac-cad-export-error-email[hidden]{
    display:none!important;
}
.sac-cad-root .sac-cad-export-error-close[hidden]{
    display:none!important;
}
.sac-cad-root .sac-cad-export-error-close{
    display:block;
    margin:14px auto 0;
    min-width:110px;
    padding:8px 18px;
    border:0;
    border-radius:6px;
    background:#d32f2f;
    color:#fff;
    font-weight:700;
    cursor:pointer;
}
.sac-cad-root .sac-cad-export-error-close:hover,
.sac-cad-root .sac-cad-export-error-close:focus{
    background:#b71c1c;
}
.sac-cad-root .sac-cad-export-modal.is-cad-export-error .sac-cad-export-status-card{
    border-color:#e0a2a2;
}
.sac-cad-root .sac-cad-export-modal.is-cad-export-error .sac-cad-export-status-text{
    color:#b71c1c;
}

/* v4.30.39 - CAD Debug/Test export error setting; no visual fork: real error UI is reused. */


/* =========================================================
   v4.30.41 - CAD empty print-content validation modal
========================================================= */
.sac-cad-root .sac-cad-export-validation-error{
    position:absolute;
    inset:0;
    z-index:40;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
}
.sac-cad-root .sac-cad-export-validation-error[hidden]{
    display:none!important;
}
.sac-cad-root .sac-cad-export-modal.is-cad-export-validation-error .sac-cad-export-dialog > *:not(.sac-cad-export-validation-error){
    filter:blur(2px);
    opacity:.34;
    pointer-events:none!important;
    user-select:none;
}
.sac-cad-root .sac-cad-export-validation-card{
    width:min(440px,calc(100% - 20px));
    padding:26px 24px 22px;
    border:1px solid #e0a2a2;
    border-radius:10px;
    background:rgba(255,255,255,.98);
    box-shadow:0 14px 38px rgba(0,0,0,.22);
    text-align:center;
}
.sac-cad-root .sac-cad-export-validation-text{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:2.8em;
    color:#b71c1c;
    font-size:15px;
    font-weight:700;
    line-height:1.4;
    text-align:center;
}
.sac-cad-root .sac-cad-export-validation-close{
    margin-top:18px;
    min-width:110px;
    padding:8px 18px;
    border:0;
    border-radius:6px;
    background:#d32f2f;
    color:#fff;
    font-weight:700;
    cursor:pointer;
}
.sac-cad-root .sac-cad-export-validation-close:hover,
.sac-cad-root .sac-cad-export-validation-close:focus{
    background:#b71c1c;
}
@media(max-width:520px){
    .sac-cad-root .sac-cad-export-validation-error{padding:12px}
    .sac-cad-root .sac-cad-export-validation-card{width:100%;padding:22px 14px 18px}
    .sac-cad-root .sac-cad-export-validation-text{font-size:14px}
}


/* =========================================================
   v4.31.31 - CAD export error layout balance
   Message -> support email with envelope icon -> centered Close button.
========================================================= */
.sac-cad-root .sac-cad-export-modal.is-cad-export-error .sac-cad-export-status-text{
    margin-bottom:0;
}
.sac-cad-root .sac-cad-export-modal.is-cad-export-error .sac-cad-export-error-email + .sac-cad-export-progress + .sac-cad-export-progress-label + .sac-cad-export-error-close{
    margin-top:14px;
}

/* v4.31.31 - copy icon after support email */
.sac-cad-root .sac-cad-export-error-email-copy{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    padding:0;
    border:1px solid #c9c9c9;
    border-radius:5px;
    background:#fff;
    color:#555;
    font-size:17px;
    line-height:1;
    cursor:pointer;
}
.sac-cad-root .sac-cad-export-error-email-copy:hover,
.sac-cad-root .sac-cad-export-error-email-copy:focus{
    border-color:#888;
    color:#222;
}
.sac-cad-root .sac-cad-export-error-email-copy.is-copied{
    font-weight:800;
}


/* v4.31.31 - Current-day marker is an independent overlay.
   It must never inherit or be cleared by Fériés/Autres/Saints/Moon/Zone filters. */
.sac-cad-root .sac-cad-grid-date-cell.is-cad-current-day,
.sac-cad-root .sac-cad-list-day.is-cad-current-day{
    position:relative;
    z-index:2;
}
.sac-cad-root .sac-cad-grid-date-cell.is-cad-current-day::after,
.sac-cad-root .sac-cad-list-day.is-cad-current-day::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:20;
    border:2px solid #d00000;
    pointer-events:none;
    box-sizing:border-box;
}
.sac-cad-root .sac-cad-grid-date-cell.is-cad-current-day::after{
    border-radius:4px;
}
.sac-cad-root .sac-cad-list-day.is-cad-current-day::after{
    border-radius:3px;
}


/* v4.31.31 - Export preview follows selected print content */
.sac-cad-preview-reference{
    display:flex!important;
    flex-direction:column!important;
    gap:7px!important;
    height:calc(100% - 18px)!important;
    overflow:hidden!important;
}
.sac-cad-preview-reference-table{
    border:1px solid #b8b8b8!important;
    background:#fff!important;
    box-sizing:border-box!important;
}
.sac-cad-preview-reference-head{
    height:9px!important;
    background:#dbeaf6!important;
    border-bottom:1px solid #b8b8b8!important;
}
.sac-cad-preview-reference-rows{
    display:flex!important;
    flex-direction:column!important;
}
.sac-cad-preview-reference-row{
    display:block!important;
    height:10px!important;
    border-bottom:1px solid #e1e1e1!important;
    background:#fff!important;
}
.sac-cad-preview-reference-row:nth-child(even){
    background:#f5f5f5!important;
}
.sac-cad-preview-reference-row:last-child{
    border-bottom:0!important;
}

/* v4.31.31 - Empty export preview: red X centered inside the paper preview */
.sac-cad-export-paper.is-empty-preview{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#fff!important;
}
.sac-cad-preview-empty-warning{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:100%!important;
    background:#fff!important;
}
.sac-cad-preview-empty-warning-icon{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:44px!important;
    height:44px!important;
    border:3px solid #d32f2f!important;
    border-radius:50%!important;
    color:#d32f2f!important;
    font:600 36px/1 Arial,sans-serif!important;
    box-sizing:border-box!important;
    padding-bottom:3px!important;
}

/* =========================================================
   v4.31.31 - Reference/event title parity with month titles
   Scope: Web Grid + List only.
   ========================================================= */
.sac-cad-root .sac-cad-reference-table .sac-cad-reference-title-row > th {
    position:relative!important;
    overflow:visible!important;
    padding:8px!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    border-top-color:transparent!important;
    border-left-color:transparent!important;
    border-right-color:transparent!important;
    color:#fff!important;
}
.sac-cad-root .sac-cad-reference-table .sac-cad-reference-title-row > th::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    box-sizing:border-box;
    border:1px solid #002395;
    border-bottom:0;
    border-radius:8px 8px 0 0;
    background:linear-gradient(
        to bottom,
        #3f64c8 0%,
        #2450b5 18%,
        #002395 50%,
        #001f84 72%,
        #244ca8 100%
    );
    box-shadow:
        inset 0 1px 1px rgba(255,255,255,.45),
        inset 0 -2px 3px rgba(0,0,0,.30),
        0 2px 5px rgba(0,0,0,.22);
}

.sac-cad-root .sac-cad-reference-table .sac-cad-reference-title-row > th::after {
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    border-radius:8px 8px 0 0;
    overflow:hidden;
    background:linear-gradient(90deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.16) 22%,rgba(255,255,255,.28) 48%,rgba(255,255,255,.10) 72%,rgba(0,0,0,.08) 100%); opacity:.55;
}
.sac-cad-root .sac-cad-reference-table .sac-cad-reference-title-row h3 {
    position:relative!important; z-index:3!important; margin:0!important; color:#fff!important; font-weight:700!important; text-align:center!important; text-shadow:0 1px 1px rgba(0,0,0,.20)!important;
}


/* =========================================================
   v4.31.31 - School reference title / Zone-row gap fix
   Web only. Scope: Vacances scolaires table in this shortcode.
   ========================================================= */
.sac-cad-root .sac-cad-reference-school-table .sac-cad-reference-title-row > th::before {
    box-shadow:
        inset 0 1px 1px rgba(255,255,255,.45),
        inset 0 -2px 3px rgba(0,0,0,.30) !important;
}

.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-zone-a-head {
    border-top-width:1px !important;
}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-zone-b-head {
    border-top-width:1px !important;
}
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-zone-c-head {
    border-top-width:1px !important;
}


/* =========================================================
   v4.31.31 - School title/Zone join cross-browser hardening
   Web only. Remove the inherited collapsed bottom border from
   the blue H3 title cell so the Zone row owns the only join line.
   ========================================================= */
.sac-cad-root .sac-cad-reference-school-table .sac-cad-reference-title-row > th {
    border-bottom:0 !important;
    border-bottom-width:0 !important;
    border-bottom-color:transparent !important;
}

/* =========================================================
   v4.31.31 - School title/header-row join hardening
   Web only. The H3 title cell owns no bottom border; the header row
   directly below owns exactly one 1px top join across all visible columns.
   This stays stable with 1, 2 or 3 school regions/columns.
   ========================================================= */
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-columns-head > th {
    border-top-width:1px !important;
}

/* =========================================================
   v4.31.31 - Uniform school header/title join color
   Web only. All cells directly below the H3 title own the same
   neutral 1px top border, regardless of visible Zone/Corse columns.
   ========================================================= */
.sac-cad-root .sac-cad-reference-school-table .sac-cad-school-columns-head > th {
    border-top:1px solid #c9c9c9 !important;
}
