@font-face {
    font-family: "Sarabun";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/sarabun/Sarabun-Regular-YAtLsqH.ttf") format("truetype");
}

/* La zone interactive des listes détaillées couvre toute la largeur de la carte. */
.object-detail-list-card .groups-list,
.object-detail-list-card .management-list{padding-inline:0}
.object-detail-list-card .group-row,
.object-detail-list-card .management-card{padding:1.35rem 1.75rem}
.object-detail-list-card .group-row+.group-row,
.object-detail-list-card .management-card+.management-card{border-top:1px solid var(--border)}
@media(max-width:48rem){
    .object-detail-list-card .groups-list,
    .object-detail-list-card .management-list{padding-inline:0}
    .object-detail-list-card .group-row,
    .object-detail-list-card .management-card{padding-inline:clamp(1.25rem,4vw,3.5rem)}
}

/* Les lignes du registre couvrent toute la largeur intérieure de leur carte. */
.presence-group{padding:0}
.presence-group>.presence-daily-list{margin:0;padding:0;border-top:0}
.presence-group .presence-daily-row{padding:.85rem 1.75rem}
.presence-group>p{margin:0;padding:1.25rem 1.75rem}
.presence-edit-button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:60rem){
    .presence-group .presence-daily-row,.presence-group>p{padding-inline:1.25rem}
}

/* Pages d'information et liens légaux */
.legal-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.55rem;padding:1rem 1.5rem;color:var(--text-muted);font-size:.78rem}
.legal-footer a{color:inherit}.legal-footer--with-sidebar{position:fixed;z-index:20;right:0;bottom:0;left:16.5rem;margin-left:0;background:#f4f7f8}
.login-legal{max-width:30rem;margin:1.25rem auto 0;color:var(--text-muted);font-size:.75rem;line-height:1.55;text-align:center}.login-legal a{color:inherit}
.legal-shell{min-height:100vh;background:#f4f7f8;color:var(--text)}
.legal-page{width:min(100% - 2rem,52rem);margin:0 auto;padding:3rem 0 4rem}
.legal-heading{margin-bottom:1.5rem}.legal-heading>p:not(.legal-updated){margin:1.75rem 0 .25rem;color:var(--sgdf-blue);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.legal-heading h1{margin:.2rem 0;font-family:var(--font-title);font-size:clamp(2rem,5vw,3rem);line-height:1.1}.legal-updated{margin:.5rem 0;color:var(--text-muted);font-size:.85rem}
.legal-brand{display:inline-flex;align-items:center;gap:.65rem;color:var(--sgdf-blue);text-decoration:none}.legal-brand span{display:grid;width:2.35rem;height:2.35rem;place-items:center;border-radius:.35rem;color:#fff;background:var(--sgdf-blue);font-family:var(--font-title);font-size:.8rem}.legal-brand strong{font-family:var(--font-title);font-size:1.2rem}
.legal-content{padding:clamp(1.5rem,5vw,3rem);border-top:.4rem solid var(--sgdf-mint);border-radius:.55rem;background:#fff;box-shadow:0 8px 30px rgb(0 58 93 / 8%)}.legal-content h2{margin:2.2rem 0 .7rem;color:var(--sgdf-blue);font-family:var(--font-title);font-size:1.25rem}.legal-content h2:first-of-type{margin-top:1.5rem}.legal-content p,.legal-content li{line-height:1.72}.legal-content ul{padding-left:1.3rem}.legal-content li+li{margin-top:.45rem}.legal-content a{color:var(--sgdf-blue);font-weight:700}.legal-notice{margin:1.5rem 0;padding:1rem 1.2rem;border-left:.3rem solid var(--sgdf-yellow);background:var(--surface-muted)}.legal-notice p{margin:.35rem 0 0}.legal-related{margin:2.5rem 0 0;padding-top:1.25rem;border-top:1px solid var(--border)}
body.sidebar-collapsed .legal-footer--with-sidebar{left:4.75rem}
.sidebar__legal-mobile{display:none}
@media(max-width:47.5rem){
    .legal-footer--with-sidebar,body.sidebar-collapsed .legal-footer--with-sidebar{display:none}
    .sidebar__legal-mobile{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem .55rem;padding:.75rem .4rem;color:#8fb2c3;font-size:.7rem;line-height:1.35;text-align:center}
    .sidebar__legal-mobile a{color:inherit;text-decoration:none}
    .sidebar__legal-mobile a:hover{color:#fff;text-decoration:underline}
    .sidebar__legal-mobile span{flex-basis:100%}
}
@media(max-width:36rem){.legal-page{width:100%;padding:1.25rem 0 2rem}.legal-heading{padding:0 1.25rem}.legal-content{border-radius:0;box-shadow:none}}

/* Conserve la largeur Jambville malgré les anciens correctifs placés plus haut. */
body.app-shell { padding-left: 14.5rem; }
.sidebar__user.user-summary { align-items: center; flex-direction: row; }
@media (max-width: 760px) { body.app-shell, body.app-shell.sidebar-collapsed { padding-left: 0; } }

/* Navigation à deux niveaux : rail principal et panneau de module. */
.sidebar__section summary { position: relative; }
.sidebar__chevron { margin-left: auto; font-size: 1.25rem; transition: transform 160ms ease; }
.sidebar__section[open] .sidebar__chevron { transform: rotate(180deg); }
.sidebar__section--management { margin-top: auto; }
.sidebar--admin .sidebar__nav > .sidebar__link:first-of-type { order: -2; }
.sidebar--admin .sidebar__section--management { order: -1; margin-top: 0; }
.sidebar__section > .sidebar-module-panel {
    position: fixed;
    z-index: 45;
    top: 0;
    bottom: 0;
    left: 14.5rem;
    display: none;
    width: 18rem;
    padding: 1.2rem 1rem;
    overflow-y: auto;
    border-right: 1px solid var(--border);
    color: var(--sgdf-blue);
    background: #fff;
    box-shadow: 10px 0 28px rgb(0 34 55 / 14%);
}
body.sidebar-panel-open .sidebar__section[open] > .sidebar-module-panel { display: block; }
.sidebar-module-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .15rem .25rem 1rem; border-bottom: 1px solid var(--border); }
.sidebar-module-panel > header small,
.sidebar-module-panel > header strong { display: block; }
.sidebar-module-panel > header small { color: var(--text-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sidebar-module-panel > header button { display: grid; width: 2.35rem; height: 2.35rem; padding: 0; border: 0; border-radius: .45rem; color: var(--sgdf-blue); background: var(--surface-muted); font: inherit; font-size: 1.5rem; cursor: pointer; place-items: center; }
.sidebar-module-panel > nav { display: grid; gap: .2rem; padding-top: .75rem; }
.sidebar__section .sidebar-module-panel a { display: flex; align-items: center; gap: .75rem; padding: .7rem .65rem; border-radius: .45rem; color: #244f67; text-decoration: none; }
.sidebar__section .sidebar-module-panel a:hover { color: var(--sgdf-blue); background: var(--surface-muted); text-decoration: none; }
.sidebar__section .sidebar-module-panel a[aria-current="page"] { color: var(--sgdf-blue); background: #e2f4ee; box-shadow: inset 3px 0 var(--sgdf-mint); }
.sidebar-module-panel a > span:last-child { min-width: 0; }
.sidebar-module-panel a strong,
.sidebar-module-panel a small { display: block; }
.sidebar-module-panel a small { margin-top: .08rem; color: var(--text-muted); font-size: .73rem; font-weight: 400; }
body.app-shell.sidebar-panel-open { padding-left: 32.5rem; }
.sidebar-collapsed .sidebar__section > .sidebar-module-panel { left: 4.75rem; }
body.app-shell.sidebar-collapsed.sidebar-panel-open { padding-left: 22.75rem; }

@media (max-width: 760px) {
    body.app-shell.sidebar-panel-open,
    body.app-shell.sidebar-collapsed.sidebar-panel-open { padding-left: 0; }
    .sidebar { overflow-y: auto; }
    .sidebar__nav { overflow: visible; }
    .sidebar__section > .sidebar-module-panel,
    .sidebar-collapsed .sidebar__section > .sidebar-module-panel {
        z-index: 60;
        inset: 0;
        width: 100%;
        min-height: 100%;
        border-right: 0;
        box-shadow: none;
    }
}

/* Socle unique des pages liste. */
.entity-list-page{
    width:100%;
    max-width:100%;
    margin:0;
    padding:0;
    box-sizing:border-box;
    color:var(--sgdf-blue);
    font-family:var(--font-body);
}
.entity-list-page .entity-list-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem;
    margin:0 0 1.75rem;
}
.entity-list-page .entity-list-heading h1{
    margin:0;
    font-family:var(--font-title);
    font-size:clamp(2rem,4vw,2.75rem);
    font-weight:800;
    line-height:1.1;
}
.entity-list-page>.foods-card,
.entity-list-page>.stock-list-card,
.entity-list-page>.object-list-card,
.entity-list-page .entity-list-card,
.entity-list-page .participant-group-card{
    box-sizing:border-box;
    border-top:.35rem solid var(--sgdf-mint);
    border-radius:.45rem;
    background:#fff;
    box-shadow:0 8px 28px rgb(0 58 93 / 9%);
}
.entity-list-page>.foods-card>.foods-tools,
.entity-list-page>.stock-list-card>.stock-list-table,
.entity-list-page .entity-list-card>.foods-tools{
    border-top:0;
}
.entity-list-page .participant-group-card>header{
    border-top:0;
}
.entity-list-page>.groups-list-card>.groups-card-heading,
.entity-list-page>.stays-list-card>.stays-card-heading{
    border-top:0;
}

/* Les unités utilisent le même conteneur de geste que les autres listes. */
.groups-list .group-swipe-row+.group-swipe-row{
    border-top:1px solid var(--border);
}

@media(max-width:48rem){
    .entity-list-page{
        width:100vw;
        max-width:100vw;
        margin-right:0;
        margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);
        padding:0;
    }
    .entity-list-page .entity-list-heading{
        align-items:flex-start;
        margin-bottom:1.5rem;
        padding-inline:clamp(1.25rem,4vw,3.5rem);
    }
    .entity-list-page .entity-list-heading h1{
        font-size:clamp(2rem,10vw,2.75rem);
    }
    .entity-list-page>.foods-card,
    .entity-list-page>.stock-list-card,
    .entity-list-page>.object-list-card,
    .entity-list-page .entity-list-card,
    .entity-list-page .participant-group-card{
        border-radius:0;
        box-shadow:none;
    }
    .groups-list .group-swipe-row{
        position:relative;
        overflow:hidden;
        background:var(--danger);
    }
    .groups-list .group-swipe-row .group-row{
        position:relative;
        z-index:1;
        display:grid;
        grid-template-columns:minmax(0,1fr) auto;
        align-items:start;
        gap:.5rem 1rem;
        background:#fff;
        touch-action:pan-y;
        transition:transform 180ms ease-out;
        user-select:none;
    }
    .groups-list .group-swipe-row .group-row.foods-row--dragging{
        transition:none;
    }
    .groups-list .group-row__identity{
        grid-column:1;
        grid-row:1;
        min-width:0;
    }
    .groups-list .group-type{
        grid-column:2;
        grid-row:1;
        align-self:start;
        justify-self:end;
        min-width:2.4rem;
        margin:0;
        padding:.28rem .55rem;
        font-size:0;
        text-align:center;
    }
    .groups-list .group-type::after{
        content:attr(data-short-label);
        font-size:.78rem;
        font-weight:800;
        line-height:1.2;
    }
    .groups-list .group-row dl,
    .groups-list .edit-group-button,
    .groups-list .delete-group-button{
        display:none;
    }
}

/* Socle mobile commun aux pages d'ajout et de modification. */
@media(max-width:48rem){
    body.app-shell .page-content{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }
    .food-form-page,
    .food-form-page>form{
        width:100%;
        max-width:100%;
        min-width:0;
        box-sizing:border-box;
    }
    .food-form-page .food-form-card,
    .food-form-page .stock-movement-card,
    .food-form-page .form-card,
    .food-form-page .entity-form-card,
    .food-form-page .uniform-food-form>fieldset,
    .food-form-page .participant-documents{
        width:100%;
        max-width:100%;
        margin-right:0;
        margin-left:0;
        box-sizing:border-box;
    }
    .food-form-page .food-form-actions,
    .food-form-page .stock-movement-actions,
    .food-form-page .form-actions,
    .food-form-page .entity-form-actions,
    .food-form-page .participant-edit-form>footer{
        width:100%;
        align-items:stretch;
        flex-direction:column;
        box-sizing:border-box;
    }
    .food-form-page .food-form-actions>a,
    .food-form-page .food-form-actions>button,
    .food-form-page .stock-movement-actions>a,
    .food-form-page .stock-movement-actions>button,
    .food-form-page .form-actions>a,
    .food-form-page .form-actions>button,
    .food-form-page .entity-form-actions>a,
    .food-form-page .entity-form-actions>button,
    .food-form-page .participant-edit-form>footer>a,
    .food-form-page .participant-edit-form>footer>button{
        display:flex;
        width:100%;
        box-sizing:border-box;
        align-items:center;
        justify-content:center;
        text-align:center;
    }
    .food-form-page input:not([type=checkbox]):not([type=radio]),
    .food-form-page select,
    .food-form-page textarea{
        max-width:100%;
        box-sizing:border-box;
    }
}

/* Participants : séparateurs cohérents sur desktop et mobile. */
.participant-section:has(.participant-list){padding-bottom:0}
.participant-section__add{display:flex;justify-content:flex-end;padding:1rem 0}
.participant-section__add .button{font-weight:800;text-decoration:none}
.participant-list{border-top:0}
.participant-list .participant-row{border-bottom:0}
.participant-list .participant-row--head{border-bottom:1px solid var(--border)}
.participant-list .foods-swipe-row{border:0}
.participant-list .foods-swipe-row:not(:last-child){border-bottom:1px solid var(--border)}

@media(max-width:48rem){
    .participant-section__add{justify-content:center}
    .participant-section .participant-list{
        width:auto;
        margin-right:calc(clamp(1.25rem,4vw,3.5rem)*-1);
        margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);
    }
    .participant-list .participant-row--head{display:none}
    .participant-list .foods-swipe-row,
    .participant-list .foods-swipe-row:not(:last-child){border:0;background:#fff}
    .participant-list .foods-swipe-action{background:var(--danger)}
    .participant-list .foods-swipe-row .participant-row{
        border:0!important;
        outline:0;
        box-shadow:none;
        padding-inline:clamp(1.25rem,4vw,3.5rem);
    }
}

/* Le composant partagé prime sur les anciens styles propres aux pages. */
.users-layout .shared-list-card{padding:0;border-top:.35rem solid var(--sgdf-mint)}
.shared-list-table .shared-list-row{display:grid;align-items:center;gap:1rem;box-sizing:border-box;width:100%;min-width:50rem;padding:1rem 1.75rem;border-bottom:1px solid var(--border);font-size:.9rem}
.shared-list-table .shared-list-row--head{padding:1rem 1.75rem;color:var(--text-muted);font-size:.8rem;font-weight:700}
.shared-list-table--suppliers .shared-list-row{grid-template-columns:minmax(0,1.1fr) minmax(0,.7fr) minmax(0,1fr) 7rem}
.shared-list-table--users .shared-list-row{grid-template-columns:minmax(12rem,1.25fr) minmax(8rem,.7fr) minmax(10rem,1fr) minmax(8rem,.8fr) 7rem}
@media(max-width:70rem) and (min-width:48.01rem){.shared-list-table--users .shared-list-row{grid-template-columns:minmax(12rem,1.25fr) minmax(8rem,.7fr) minmax(10rem,1fr) minmax(8rem,.8fr) 7rem;min-width:58rem}.shared-list-table--users .shared-list-row--head{display:grid}.shared-list-table--users .user-assignment,.shared-list-table--users .user-group{grid-column:auto}.shared-list-table--users .user-actions{grid-column:auto;grid-row:auto}}
@media(max-width:48rem){.users-layout .shared-list-card{padding:0}.shared-list-table .shared-list-row{min-width:0;padding:1rem clamp(1.25rem,4vw,3.5rem)}.shared-list-table .shared-list-row--head{display:grid;padding:.7rem clamp(1.25rem,4vw,3.5rem)}.shared-list-table--suppliers .shared-list-row,.shared-list-table--users .shared-list-row{grid-template-columns:minmax(0,1fr) auto}.shared-list-table--users .user-assignment,.shared-list-table--users .user-group,.shared-list-table--users .user-actions{display:none}}

@media(max-width:48rem){
    .foods-swipe-row .shared-list-row{position:relative;z-index:1;background:#fff;touch-action:pan-y;transition:transform 180ms ease-out;user-select:none}
    .shared-list-table--suppliers .shared-list-row{grid-template-columns:minmax(0,1fr) minmax(7rem,.65fr)}
    .shared-list-table--suppliers .shared-list-row>:nth-child(n+3){display:none}
    .recipes-row{grid-template-columns:minmax(0,1fr) auto;min-width:0}
    .recipes-row>:nth-child(2){display:block;text-align:right}
    .recipes-row>:nth-child(3),.recipes-row>:nth-child(4){display:none}
    .situations-row{grid-template-columns:minmax(5.5rem,.65fr) minmax(0,1.25fr) minmax(7rem,.8fr);min-width:0}
    .situations-row>:nth-child(3),.situations-row>:nth-child(5){display:none}
    .situations-row>:nth-child(4){display:flex;justify-content:flex-end}
}

@media(max-width:48rem){
    .participant-list{overflow:hidden}
    .participant-list .foods-swipe-row{min-height:0}
    .participant-list .foods-swipe-row .participant-row{position:relative;z-index:1;display:grid;height:auto;min-height:0;grid-template-columns:minmax(0,1fr);align-content:center;align-items:center;box-sizing:border-box;margin:0;padding:.65rem 0;background:#fff;touch-action:pan-y;transition:transform 180ms ease-out;user-select:none}
    .participant-list .participant-row>.document-status,
    .participant-list .participant-row>.participant-actions{display:none}
    .participant-list .participant-identity{grid-column:1;align-self:center;gap:.15rem}
    .participant-list .participant-identity strong{font-size:1rem}
    .participant-list .participant-identity small{margin-top:0;font-size:.82rem;line-height:1.25}
    .participant-list .foods-swipe-action{height:100%}
    .participant-section:has(.participant-list){padding-bottom:0}
}

/* Une seule source de séparation pour les listes de participants. */
.participant-list{border-top:0}
.participant-list .participant-row{border-bottom:0}
.participant-list .participant-row--head{border-bottom:1px solid var(--border)}
.participant-list .foods-swipe-row{border:0}
.participant-list .foods-swipe-row:not(:last-child){border-bottom:1px solid var(--border)}

@media(max-width:48rem){
    .participant-list .participant-row--head{display:none}
    .participant-list .foods-swipe-row{border:0;background:var(--danger)}
    .participant-list .foods-swipe-row:not(:last-child){border-bottom:1px solid var(--border)}
}

@media(max-width:48rem){
    .users-heading__actions .food-add-button,
    .food-add-button{position:fixed!important;z-index:30;right:max(1.25rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom));display:grid!important;width:3.75rem!important;height:3.75rem!important;min-width:3.75rem!important;min-height:3.75rem!important;place-items:center;padding:0!important;border-radius:50%!important}
}

/* Tableau partagé par les pages Fournisseurs et Utilisateurs. */
.shared-list-card{overflow:hidden;border-radius:.45rem;background:#fff;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}
.shared-list-table{width:100%;overflow-x:auto}.shared-list-row{display:grid;align-items:center;gap:1rem;box-sizing:border-box;width:100%;min-width:50rem;padding:1rem 1.75rem;border-bottom:1px solid var(--border);font-size:.9rem}.shared-list-row--head{color:var(--text-muted);font-size:.8rem;font-weight:700}.shared-list-body .shared-list-row:last-child{border-bottom:0}.shared-list-table--suppliers .shared-list-row{grid-template-columns:minmax(0,1.1fr) minmax(0,.7fr) minmax(0,1fr) 7rem}.shared-list-table--users .shared-list-row{grid-template-columns:minmax(12rem,1.25fr) minmax(8rem,.7fr) minmax(10rem,1fr) minmax(8rem,.8fr) 7rem}.shared-list-row>:last-child{justify-self:end}.shared-list-empty{padding:4rem 2rem;color:var(--text-muted);text-align:center}
@media(max-width:48rem){.shared-list-card{border-radius:0;box-shadow:none}.shared-list-table{overflow:hidden}.shared-list-row{min-width:0;padding:1rem clamp(1.25rem,4vw,3.5rem)}.shared-list-row--head{background:var(--surface-muted)}.shared-list-table--suppliers .shared-list-row,.shared-list-table--users .shared-list-row{grid-template-columns:minmax(0,1fr) auto}.shared-list-table--suppliers .shared-list-row>:nth-child(3),.shared-list-table--suppliers .shared-list-row>:nth-child(4),.shared-list-table--users .shared-list-row>:nth-child(3),.shared-list-table--users .shared-list-row>:nth-child(4),.shared-list-table--users .shared-list-row>:nth-child(5){display:none}.shared-list-table--suppliers .shared-list-row>:nth-child(2),.shared-list-table--users .shared-list-row>:nth-child(2){justify-self:end;text-align:right}}

.menu-readonly-scope {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

@font-face {
    font-family: "Sarabun";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/sarabun/Sarabun-Bold-lLNz0eX.ttf") format("truetype");
}

@font-face {
    font-family: "Sarabun";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/sarabun/Sarabun-Italic-cQPynvC.ttf") format("truetype");
}

@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/raleway/Raleway-Regular-K98VitS.ttf") format("truetype");
}

@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/raleway/Raleway-Bold-ShdQKyv.ttf") format("truetype");
}

@font-face {
    font-family: "Raleway";
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url("../fonts/raleway/Raleway-ExtraBold-od5UbzR.ttf") format("truetype");
}

:root {
    --sgdf-blue: #003a5d;
    --sgdf-blue-light: #0077b3;
    --sgdf-mint: #65bc99;
    --surface: #ffffff;
    --surface-muted: #f4f7f9;
    --border: #d9e2e7;
    --text-muted: #526875;
    --danger: #b42318;
    --danger-surface: #fef3f2;
    --shadow: 0 16px 40px rgb(0 58 93 / 14%);
    --font-body: Sarabun, "Segoe UI", Arial, sans-serif;
    --font-title: Raleway, "Segoe UI", Arial, sans-serif;
}

/* Navigation latérale et contexte du séjour */
.app-shell { padding-left: 16.5rem; transition: padding-left 180ms ease; }
.sidebar { position: fixed; z-index: 50; inset: 0 auto 0 0; display: flex; width: 16.5rem; flex-direction: column; color: #fff; background: var(--sgdf-blue); box-shadow: 4px 0 20px rgb(0 34 55 / 14%); transition: width 180ms ease, transform 180ms ease; }
.sidebar__brand { display: flex; min-height: 5rem; align-items: center; gap: .7rem; padding: .8rem 1rem; border-bottom: 1px solid rgb(255 255 255 / 16%); font-family: var(--font-title); font-size: 1.2rem; font-weight: 800; }
.sidebar__brand img { width: 3.2rem; height: 3.2rem; padding: .12rem; border-radius: .25rem; background: #fff; object-fit: contain; }
.sidebar__brand button { width: 2.3rem; height: 2.3rem; margin-left: auto; border: 1px solid rgb(255 255 255 / 24%); border-radius: .35rem; color: #fff; background: transparent; font-size: 1.7rem; cursor: pointer; }
.sidebar__nav { display:flex; flex: 1; flex-direction:column; gap:.3rem; overflow-y: auto; padding: 1rem .75rem; }
.sidebar__link, .sidebar__section summary { display: flex; min-height: 2.9rem; align-items: center; gap: .75rem; padding: .65rem .8rem; border-radius: .4rem; color: #fff; font-weight: 700; text-decoration: none; cursor: pointer; }
.sidebar__link:hover, .sidebar__link[aria-current="page"], .sidebar__section summary:hover, .sidebar__section summary[aria-current="page"] { background: rgb(255 255 255 / 12%); }
.sidebar__icon { display: inline-grid; width: 1.6rem; flex: 0 0 1.6rem; place-items: center; font-size: 1.25rem; }
.sidebar__icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.sidebar__stay { display: flex; align-items: center; gap: .75rem; margin: .5rem 0 .7rem; padding: .8rem; border-radius: .5rem; color: var(--sgdf-blue); background: var(--sgdf-mint); }
.sidebar__stay small, .sidebar__stay strong { display: block; }.sidebar__stay strong { margin: .1rem 0; }
.sidebar__section { margin: 0; }.sidebar__section summary { list-style: none; }.sidebar__section summary::-webkit-details-marker { display: none; }
.sidebar__section > div { display: grid; padding: .1rem 0 .45rem 3.15rem; }.sidebar__section a { padding: .45rem 0; color: #fff; text-decoration: none; }.sidebar__section a:hover { text-decoration: underline; }
.sidebar__version { padding: .55rem 1rem; color: rgb(255 255 255 / 72%); font-size: .78rem; }
.sidebar__user { display: flex; align-items: center; gap: .7rem; padding: 1rem; border-top: 1px solid rgb(255 255 255 / 16%); }.sidebar__user small, .sidebar__user strong { display: block; }.sidebar__avatar { display: grid; width: 2.4rem; height: 2.4rem; flex: 0 0 2.4rem; place-items: center; border-radius: 50%; color: var(--sgdf-blue); background: var(--sgdf-mint); font-weight: 800; }
.sidebar__logout-form { width: 100%; margin-top: auto; }
.sidebar__logout { display: flex; align-items: center; width: 100%; appearance: none; gap: .7rem; padding: .85rem 1rem 1.2rem; border: 0; color: #fff; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.sidebar-collapsed { padding-left: 4.75rem; }.sidebar-collapsed .sidebar { width: 4.75rem; }.sidebar-collapsed .sidebar__text, .sidebar-collapsed .sidebar__section > div, .sidebar-collapsed .sidebar__brand > span { display: none; }.sidebar-collapsed .sidebar__brand { justify-content: center; padding-inline: .6rem; }.sidebar-collapsed .sidebar__brand img { display: none; }.sidebar-collapsed .sidebar__brand button { margin: 0; transform: rotate(180deg); }.sidebar-collapsed .sidebar__stay { display:none; }.sidebar-collapsed .sidebar__link, .sidebar-collapsed .sidebar__section summary, .sidebar-collapsed .sidebar__logout { justify-content: center; padding-inline: .4rem; }
.page-content { max-width: none; padding: clamp(1.25rem, 4vw, 3.5rem); }.mobile-nav-toggle { display: none; }.sidebar-backdrop { display: none; }
.stay-picker > div:first-child h2 { margin-bottom: .2rem; }.stay-grid { display: grid; gap: 1rem; margin-top: 1.25rem; }.stay-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; border: 1px solid var(--border); border-radius: .55rem; background: #fff; }.stay-card--selected { border: 2px solid var(--sgdf-mint); }.stay-card h3 { margin: .25rem 0; }.stay-card p { margin: 0; color: var(--text-muted); }.stay-card__eyebrow { color: var(--sgdf-blue-light); font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.home-dashboard{color:var(--sgdf-blue)}.home-dashboard__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.home-dashboard__heading h1{margin:0;font-family:var(--font-title);font-weight:800}.home-dashboard__heading p,.home-dashboard__heading time{margin:.2rem 0 0;color:var(--text-muted)}.home-dashboard__layout{display:grid;grid-template-columns:minmax(16rem,21rem) minmax(0,1fr);align-items:start;gap:1.5rem}.home-dashboard__layout--group{grid-template-columns:minmax(0,1fr)}.home-stays,.home-panel{border-radius:.55rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.home-stays{position:sticky;top:1.5rem;overflow:hidden}.home-stays>header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.25rem;border-top:.35rem solid var(--sgdf-mint);border-bottom:1px solid var(--border)}.home-stays h2{margin:0;font-family:var(--font-title);font-size:1.35rem}.home-stays>header>span{display:grid;min-width:1.8rem;height:1.8rem;place-items:center;border-radius:50%;background:var(--surface-muted);font-weight:800}.home-stays__list{display:grid}.home-stay{padding:1.1rem 1.25rem;border-bottom:1px solid var(--border)}.home-stay:last-child{border-bottom:0}.home-stay--selected{background:#eef9f6;box-shadow:inset .3rem 0 var(--sgdf-mint)}.home-stay__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.home-stay h3{margin:0;font-size:1rem}.home-stay p,.home-stay small{display:block;margin:.3rem 0 0;color:var(--text-muted);font-size:.85rem}.home-stay__tag,.home-panel__badge{padding:.2rem .5rem;border-radius:99px;color:#176b50;background:#d8f3ea;font-size:.72rem;font-weight:800}.home-stay form{margin:.8rem 0 0}.home-stay button{padding:0;border:0;color:var(--sgdf-blue-light);background:none;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer}.home-dashboard__content{display:grid;gap:1.25rem}.home-selected-stay{display:flex;align-items:center;justify-content:space-between;gap:1rem}.home-selected-stay span{color:#176b50;font-size:.75rem;font-weight:800;text-transform:uppercase}.home-selected-stay h2{margin:.15rem 0 0;font-family:var(--font-title);font-size:1.75rem}.home-selected-stay p{margin:0;color:var(--text-muted)}.home-panel{padding:1.4rem 1.5rem;border-top:.35rem solid var(--sgdf-mint)}.home-panel--empty{text-align:center}.home-panel__header,.home-panel__header>div{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.home-panel__header>div{justify-content:flex-start}.home-panel__header h2{margin:0;font-family:var(--font-title);font-size:1.35rem}.home-panel__header p{margin:.1rem 0 0;color:var(--text-muted);font-size:.9rem}.home-panel__header>a{color:var(--sgdf-blue-light);font-size:.85rem;font-weight:800}.home-panel__icon{display:grid;width:2.5rem;height:2.5rem;flex:0 0 auto;place-items:center;border-radius:50%;color:white;background:var(--sgdf-blue);font-size:1.25rem}.home-panel__badge{color:var(--text-muted);background:var(--surface-muted)}.home-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1.25rem}.home-kpis--theoretical{grid-template-columns:repeat(3,1fr)}.home-kpi{display:grid;padding:.9rem;border-radius:.45rem;background:var(--surface-muted)}.home-kpi strong{font-family:var(--font-title);font-size:1.8rem}.home-kpi span{color:var(--text-muted);font-size:.82rem}.home-kpi--main{color:#176b50;background:#e3f7f0}.home-kpi--warning{color:#8a5700;background:#fff3d2}.home-groups{margin-top:1.15rem;border-top:1px solid var(--border)}.home-group-row{display:grid;grid-template-columns:minmax(8rem,1fr) 4rem 4rem 3rem;align-items:center;gap:.5rem;padding:.72rem .2rem;border-bottom:1px solid var(--border)}.home-group-row span,.home-group-row b{text-align:right}.home-group-row span{color:var(--text-muted);font-size:.85rem}.home-group-row--total{border-bottom:0;background:var(--surface-muted)}.home-empty-copy{margin:1rem 0 0;color:var(--text-muted)}.home-meals{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem;margin-top:1.2rem}.home-meals article{padding:.9rem;border-left:.25rem solid var(--sgdf-mint);background:var(--surface-muted)}.home-meals h3{margin:0 0 .3rem;font-size:.9rem}.home-meals p{margin:.3rem 0 0;color:var(--text-muted);font-size:.85rem}.home-document-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}.home-document-stats>div{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.45rem}.home-document-stats strong{font-size:1.35rem}.home-document-stats>div>span:last-child{color:var(--text-muted);font-size:.85rem}.home-document-dot{width:.7rem;height:.7rem;border-radius:50%}.home-document-dot--complete{background:#48b994}.home-document-dot--partial{background:#efbd55}.home-document-dot--empty{background:#b7c1c7}.home-progress{height:.55rem;overflow:hidden;border-radius:99px;background:#e4eaed}.home-progress span{display:block;height:100%;border-radius:inherit;background:#48b994}.home-progress-label{margin:.5rem 0 0;color:var(--text-muted);font-size:.8rem;text-align:right}
.home-dashboard{color:var(--sgdf-blue)}.home-dashboard__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.home-dashboard__heading h1{margin:0;font-family:var(--font-title);font-weight:800}.home-dashboard__heading p{margin:.2rem 0 0;color:var(--text-muted)}.home-today{display:flex;align-items:center;gap:.7rem;margin:0!important;padding:.65rem .85rem;border:1px solid #d7e2e7;border-radius:.65rem;color:var(--sgdf-blue)!important;background:white;box-shadow:0 5px 16px rgb(0 58 93 / 7%)}.home-today__icon{display:grid;width:2.15rem;height:2.15rem;place-items:center;border-radius:.48rem;color:var(--sgdf-blue);background:#dff5ee}.home-today__icon svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.home-today small,.home-today strong{display:block;line-height:1.15}.home-today small{margin-bottom:.18rem;color:var(--text-muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.home-today strong{color:var(--sgdf-blue);font-size:.95rem}.home-dashboard__layout{display:grid;grid-template-columns:minmax(16rem,21rem) minmax(0,1fr);align-items:start;gap:1.5rem}.home-dashboard__layout--group{grid-template-columns:minmax(0,1fr)}.home-stays,.home-panel{border-radius:.55rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.home-stays{position:sticky;top:1.5rem;overflow:hidden}.home-stays>header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.25rem;border-top:.35rem solid var(--sgdf-mint);border-bottom:1px solid var(--border)}.home-stays h2{margin:0;font-family:var(--font-title);font-size:1.35rem}.home-stays>header>span{display:grid;min-width:1.8rem;height:1.8rem;place-items:center;border-radius:50%;background:var(--surface-muted);font-weight:800}.home-stays__list{display:grid}.home-stay{padding:1.1rem 1.25rem;border-bottom:1px solid var(--border)}.home-stay:last-child{border-bottom:0}.home-stay--selected{background:#eef9f6;box-shadow:inset .3rem 0 var(--sgdf-mint)}.home-stay__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.home-stay h3{margin:0;font-size:1rem}.home-stay p,.home-stay small{display:block;margin:.3rem 0 0;color:var(--text-muted);font-size:.85rem}.home-stay__tag,.home-panel__badge{padding:.2rem .5rem;border-radius:99px;color:#176b50;background:#d8f3ea;font-size:.72rem;font-weight:800}.home-stay form{margin:.8rem 0 0}.home-stay button{padding:0;border:0;color:var(--sgdf-blue-light);background:none;font:inherit;font-size:.85rem;font-weight:800;cursor:pointer}.home-dashboard__content{display:grid;gap:1.25rem}.home-selected-stay{display:flex;align-items:center;justify-content:space-between;gap:1rem}.home-selected-stay span{color:#176b50;font-size:.75rem;font-weight:800;text-transform:uppercase}.home-selected-stay h2{margin:.15rem 0 0;font-family:var(--font-title);font-size:1.75rem}.home-selected-stay p{margin:0;color:var(--text-muted)}.home-panel{padding:1.4rem 1.5rem;border-top:.35rem solid var(--sgdf-mint)}.home-panel--empty{text-align:center}.home-panel__header,.home-panel__header>div{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.home-panel__header>div{justify-content:flex-start}.home-panel__header h2{margin:0;font-family:var(--font-title);font-size:1.35rem}.home-panel__header p{margin:.1rem 0 0;color:var(--text-muted);font-size:.9rem}.home-panel__header>a{color:var(--sgdf-blue-light);font-size:.85rem;font-weight:800}.home-panel__icon{display:grid;width:2.5rem;height:2.5rem;flex:0 0 auto;place-items:center;border-radius:50%;color:white;background:var(--sgdf-blue);font-size:1.25rem}.home-panel__badge{color:var(--text-muted);background:var(--surface-muted)}.home-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:1.25rem}.home-kpis--theoretical{grid-template-columns:repeat(3,1fr)}.home-kpi{display:grid;padding:.9rem;border-radius:.45rem;background:var(--surface-muted)}.home-kpi strong{font-family:var(--font-title);font-size:1.8rem}.home-kpi span{color:var(--text-muted);font-size:.82rem}.home-kpi--main{color:#176b50;background:#e3f7f0}.home-kpi--warning{color:#8a5700;background:#fff3d2}.home-groups{margin-top:1.15rem;border-top:1px solid var(--border)}.home-group-row{display:grid;grid-template-columns:minmax(8rem,1fr) 4rem 4rem 3rem;align-items:center;gap:.5rem;padding:.72rem .2rem;border-bottom:1px solid var(--border)}.home-group-row span,.home-group-row b{text-align:right}.home-group-row span{color:var(--text-muted);font-size:.85rem}.home-group-row--total{border-bottom:0;background:var(--surface-muted)}.home-empty-copy{margin:1rem 0 0;color:var(--text-muted)}.home-meals{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem;margin-top:1.2rem}.home-meals article{padding:.9rem;border-left:.25rem solid var(--sgdf-mint);background:var(--surface-muted)}.home-meals h3{margin:0 0 .3rem;font-size:.9rem}.home-meals p{margin:.3rem 0 0;color:var(--text-muted);font-size:.85rem}.home-document-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}.home-document-stats>div{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.45rem}.home-document-stats strong{font-size:1.35rem}.home-document-stats>div>span:last-child{color:var(--text-muted);font-size:.85rem}.home-document-dot{width:.7rem;height:.7rem;border-radius:50%}.home-document-dot--complete{background:#48b994}.home-document-dot--partial{background:#efbd55}.home-document-dot--empty{background:#b7c1c7}.home-progress{height:.55rem;overflow:hidden;border-radius:99px;background:#e4eaed}.home-progress span{display:block;height:100%;border-radius:inherit;background:#48b994}.home-progress-label{margin:.5rem 0 0;color:var(--text-muted);font-size:.8rem;text-align:right}
.page-heading--actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.management-list { display: grid; gap: 1rem; }.management-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem; border: 1px solid var(--border); border-radius: .6rem; background: #fff; box-shadow: 0 4px 12px rgb(0 58 93 / 6%); }.management-card--inactive { opacity: .7; }.management-card h2 { margin: .35rem 0; }.management-card p { margin: 0; color: var(--text-muted); }.management-card__actions { display: flex; align-items:center; gap: .6rem; }.management-card__actions form { margin: 0; }.management-card__actions .button{min-height:2.65rem;padding:.55rem .8rem}.status-pill, .module-pill { display: inline-flex; padding: .2rem .55rem; border-radius: 99px; background: #e8edf0; font-size: .78rem; font-weight: 700; }.status-pill--active { color: #176b50; background: #dff6ed; }.module-pills { display: flex; gap: .4rem; margin-top: .8rem; }.module-pill { color: var(--sgdf-blue); background: #e7f2f8; }.module-pill--off { text-decoration: line-through; opacity: .5; }.button-link--danger { color: var(--danger); }
.app-dialog { width: min(44rem, calc(100% - 2rem)); padding: 0; border: 0; border-radius: .7rem; box-shadow: var(--shadow); }.app-dialog::backdrop { background: rgb(0 34 55 / 55%); }.stay-form { display: grid; gap: 1.2rem; padding: 1.4rem; }.stay-form header, .stay-form footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.stay-form h2 { margin: 0; }.dialog-close { border: 0; color: var(--text-muted); background: none; font-size: 1.7rem; cursor: pointer; }.form-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: .8rem; }.stay-form label { display: grid; gap: .35rem; font-weight: 700; }.stay-form input, .stay-form select { min-height: 2.8rem; padding: .55rem .65rem; border: 1px solid var(--border); border-radius: .35rem; }.stay-form fieldset { padding: 1rem; border: 1px solid var(--border); border-radius: .45rem; }.stay-form legend { padding: 0 .35rem; font-weight: 800; }.checkbox-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem; }.check-card { display: flex !important; grid-template-columns: auto 1fr; align-items: center; padding: .7rem; border: 1px solid var(--border); border-radius: .4rem; }.check-card input { min-height: auto; }.check-card small { display: block; color: var(--text-muted); font-weight: 400; }
@media (max-width: 760px) { .app-shell, .sidebar-collapsed { padding-left: 0; }.sidebar, .sidebar-collapsed .sidebar { width: min(19rem, 86vw); transform: translateX(-105%); }.sidebar-open .sidebar { transform: translateX(0); }.sidebar-open .sidebar-backdrop { position: fixed; z-index: 40; inset: 0; display: block; background: rgb(0 34 55 / 45%); }.sidebar-collapsed .sidebar__text, .sidebar-collapsed .sidebar__section > div, .sidebar-collapsed .sidebar__brand > span { display: initial; }.mobile-nav-toggle { position: fixed; z-index: 35; top: .75rem; left: .75rem; display: block; width: 2.7rem; height: 2.7rem; border: 0; border-radius: .4rem; color: #fff; background: var(--sgdf-blue); }.page-content { padding-top: 4.5rem; }.page-heading--actions, .management-card, .stay-card { align-items: stretch; flex-direction: column; }.form-grid, .checkbox-grid { grid-template-columns: 1fr; } }
@media(max-width:62rem){.home-dashboard__layout{grid-template-columns:1fr}.home-stays{position:static}.home-stays__list{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.home-stay{border-right:1px solid var(--border)}}@media(max-width:42rem){.home-dashboard__heading,.home-selected-stay,.home-panel__header{align-items:flex-start;flex-direction:column}.home-kpis{grid-template-columns:repeat(2,1fr)}.home-document-stats{grid-template-columns:1fr}.home-group-row{grid-template-columns:minmax(7rem,1fr) 2.7rem 2.7rem 2.5rem}.home-panel{padding:1.15rem}.home-panel__header>a{margin-left:3.3rem}}
@media(max-width:48rem){.home-dashboard__layout>.home-stays{display:none}.home-dashboard__layout{grid-template-columns:minmax(0,1fr)}}

/* Ces règles restent en fin de feuille pour remplacer l'ancien en-tête horizontal. */
body.app-shell { padding-left: 16.5rem; }
.presence-day-nav>a.presence-today{width:auto;padding:0 .8rem;font-weight:800}
.presence-dialog fieldset{padding:0!important;border:0!important}.presence-dialog fieldset legend{padding:0}
.presence-group .presence-daily-list{border-top:0!important}
.presence-group{border-top:.35rem solid var(--sgdf-mint)!important}.presence-group>header{border-top:0!important}
.presence-dialog{color:var(--sgdf-blue);background:white;box-shadow:0 24px 70px rgb(0 30 50 / 30%)}.presence-dialog form{border-top:.35rem solid var(--sgdf-mint)}.presence-dialog header{align-items:flex-start;margin-bottom:1.25rem}.presence-dialog header h2{font-family:var(--font-title);font-size:1.45rem;font-weight:800}.presence-dialog header p{font-size:.92rem}.presence-dialog header button{display:grid;width:2.5rem;height:2.5rem;flex:0 0 auto;padding:0;place-items:center;border-radius:50%;color:var(--sgdf-blue);background:var(--surface-muted);cursor:pointer}.presence-dialog fieldset{grid-template-columns:repeat(3,1fr);gap:.6rem;padding:0;border:0}.presence-dialog fieldset legend{margin-bottom:.55rem;font-weight:800}.presence-dialog fieldset label{display:flex;min-height:3rem;align-items:center;gap:.5rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:.35rem;font-weight:750;cursor:pointer}.presence-dialog fieldset label:has(input:checked){border-color:var(--sgdf-blue);background:var(--surface-muted)}.presence-dialog fieldset input{width:1.1rem;height:1.1rem;margin:0}.presence-dialog textarea{min-height:6rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);font:inherit;resize:vertical}.presence-dialog footer button{min-height:3rem;padding:.7rem 1rem;border:1px solid var(--border);border-radius:.3rem;color:var(--sgdf-blue);background:white;cursor:pointer}.presence-dialog footer button:last-child{border-color:var(--sgdf-blue);color:white;background:var(--sgdf-blue)}@media(max-width:40rem){.presence-dialog fieldset{grid-template-columns:1fr}}

/* Harmonisation des pages Administratif avec le module Intendance */
.participants-page,.presence-page{width:100%;max-width:none;margin:0;padding:0;color:var(--sgdf-blue);overflow:visible}.participants-heading,.presence-page>header{margin-bottom:1.75rem}.participants-heading h1,.presence-page h1,.participant-edit-heading h1{margin:0;font-family:var(--font-title);font-size:clamp(2rem,4vw,2.75rem);font-weight:800}.participants-pdf-button{min-height:3rem;padding:.65rem 1rem;border:0;border-radius:.3rem;color:white;background:var(--sgdf-blue)}.participants-pdf-button:hover{color:white;background:#002f4d}.participant-groups{gap:1.5rem}.participant-group-card,.presence-group,.participant-edit-form{border:0;border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.participant-group-card>header{padding:1.35rem 1.75rem;border-top:.35rem solid var(--sgdf-mint);border-bottom:1px solid var(--border);background:white}.participant-section{padding:1.15rem 1.75rem}.presence-group{margin-top:1.5rem;padding:0}.presence-group>header{padding:1.35rem 1.75rem;border-top:.35rem solid var(--sgdf-mint);border-bottom:1px solid var(--border)}.presence-daily-list{margin:0;padding:0 1.75rem;border-top:0}.presence-day-nav>a,.presence-day-nav select{border-color:#9fb0ba;border-radius:.3rem;background:white}.presence-day-nav>a.presence-today{color:white;background:var(--sgdf-blue)}.participant-edit-page{width:100%;max-width:none;margin:0;padding:0;color:var(--sgdf-blue)}.participant-edit-form{padding:1.5rem;border-top:.35rem solid var(--sgdf-mint)}
@media(max-width:60rem){.participants-heading,.presence-page>header{align-items:stretch;flex-direction:column}.participants-pdf-button{justify-content:center}.participant-group-card>header,.presence-group>header{padding-inline:1.25rem}.participant-section,.presence-daily-list{padding-inline:1.25rem}}
.presence-page{width:100%;max-width:100%;margin:0 auto;padding:2rem;overflow:hidden}.presence-page>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.presence-page h1{margin-bottom:0;font-family:var(--font-title)}.presence-page>header p{margin:.25rem 0;color:var(--text-muted)}.presence-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.presence-legend span{display:flex;align-items:center;gap:.35rem;font-size:.85rem}.presence-legend i{display:inline-block;width:.8rem;height:.8rem;flex:0 0 auto;border-radius:.2rem}.presence-legend .is-present{background:#69c9ad}.presence-legend .is-absent{background:#efbd55}.presence-legend .is-departed{background:#dc7982}.presence-legend .is-outside{background:#b7c1c7}.presence-day-nav{display:flex;max-width:100%;align-items:flex-end;gap:.6rem}.presence-day-nav>a{display:grid;width:2.7rem;height:2.7rem;flex:0 0 auto;place-items:center;border:1px solid var(--border);border-radius:.35rem;color:var(--sgdf-blue);text-decoration:none}.presence-day-nav>a[aria-disabled="true"]{pointer-events:none;opacity:.35}.presence-day-nav label{font-size:.8rem;font-weight:800}.presence-day-nav select{display:block;max-width:100%;min-height:2.7rem;margin-top:.2rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:.35rem}.presence-group{max-width:100%;margin-top:1.25rem;padding:1.1rem;border:1px solid var(--border);border-radius:.6rem;background:white}.presence-group>header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.presence-group h2{margin:0}.presence-group>header span{color:var(--text-muted)}.presence-daily-list{margin-top:.7rem;border-top:1px solid var(--border)}.presence-daily-row{display:grid;grid-template-columns:minmax(10rem,1.2fr) minmax(8rem,.7fr) minmax(8rem,1fr) auto;align-items:center;gap:1rem;padding:.7rem .25rem;border-bottom:1px solid var(--border)}.presence-daily-row:last-child{border-bottom:0}.presence-daily-row div small{display:block;color:var(--text-muted)}.presence-daily-row>span:nth-child(3){min-width:0;overflow-wrap:anywhere;color:var(--text-muted)}.presence-status{width:max-content;max-width:100%;padding:.3rem .6rem;border-radius:2rem;font-weight:800}.presence-status.is-present{color:#087b67;background:#dff5ee}.presence-status.is-absent{color:#8a5700;background:#fff0c2}.presence-status.is-departed{color:#8d2430;background:#f8dadd}.presence-status.is-outside{color:var(--text-muted);background:var(--surface-muted)}.presence-daily-row>button{padding:.5rem .7rem;border:1px solid var(--sgdf-blue);border-radius:.3rem;color:var(--sgdf-blue);background:white;font-weight:800}.presence-daily-row>button:disabled{border-color:var(--border);color:var(--text-muted)}.presence-dialog{width:30rem;max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);padding:0;overflow:auto;border:0;border-radius:.6rem;box-sizing:border-box}.presence-dialog::backdrop{background:rgb(0 30 50 / 58%)}.presence-dialog form{min-width:0;padding:1.5rem}.presence-dialog header{display:flex;justify-content:space-between;gap:1rem}.presence-dialog header h2{margin:0}.presence-dialog header p{margin:.3rem 0;color:var(--text-muted)}.presence-dialog header button{border:0;background:none;font-size:1.6rem}.presence-dialog fieldset{display:grid;min-width:0;gap:.6rem;margin:1rem 0;padding:1rem;border:1px solid var(--border)}.presence-dialog>form>label{display:block;font-weight:800}.presence-dialog textarea{display:block;width:100%;max-width:100%;margin-top:.4rem;padding:.6rem;box-sizing:border-box}.presence-dialog footer{display:flex;justify-content:flex-end;gap:.7rem;flex-wrap:wrap;margin-top:1rem}.presence-dialog footer button{padding:.7rem 1rem;border-radius:.3rem;font-weight:800}.presence-dialog footer button:last-child{border:0;color:white;background:var(--sgdf-blue)}@media(max-width:70rem){.presence-page>header,.presence-group>header{align-items:stretch;flex-direction:column}.presence-daily-row{grid-template-columns:minmax(0,1fr) auto}.presence-daily-row>span:nth-child(3){grid-column:1}.presence-daily-row>button{grid-column:2;grid-row:1 / span 2}}@media(max-width:34rem){.presence-page{padding:1rem}.presence-day-nav form{min-width:0;flex:1}.presence-day-nav label,.presence-day-nav select{width:100%}.presence-dialog form{padding:1rem}.presence-dialog footer{flex-direction:column-reverse}.presence-dialog footer button{width:100%}}
body.app-shell.sidebar-collapsed { padding-left: 4.75rem; }
.presence-daily-row.clickable-row{color:inherit;text-decoration:none;cursor:pointer;transition:background-color 150ms ease}.presence-daily-row.clickable-row:hover,.presence-daily-row.clickable-row:focus-visible{outline:0;background:var(--surface-muted)}
@media(max-width:70rem){.presence-daily-row>.presence-edit-button{grid-column:2;grid-row:1 / span 2}}
@media(max-width:48rem){.presence-daily-row>.presence-edit-button{display:none!important}}
body.app-shell .page-content { max-width: none; margin: 0; padding: clamp(1.25rem, 4vw, 3.5rem); }
@media (max-width: 760px) { body.app-shell, body.app-shell.sidebar-collapsed { padding-left: 0; } body.app-shell .page-content { padding-top: 4.5rem; } .sidebar-collapsed .sidebar__stay { display:flex; } }

/* Navigation alignée sur la structure de Bénévoles Jambville. */
body.app-shell { padding-left: 14.5rem; }
.sidebar {
    width: 14.5rem;
    padding: 1.35rem .8rem 1rem;
    box-shadow: 8px 0 30px rgb(0 34 54 / 10%);
}
.sidebar__brand {
    min-height: auto;
    padding: 0 .65rem 1.35rem;
    border-bottom-color: rgb(255 255 255 / 14%);
    font-family: "Sarabun", system-ui, sans-serif;
    font-size: 1rem;
}
.sidebar__brand-identity { display: flex; min-width: 0; flex: 1; align-items: center; gap: .7rem; }
.sidebar__brand-symbol { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 2.8rem; place-items: center; border-radius: .75rem .75rem .75rem .15rem; color: var(--sgdf-blue); background: #fff; font-weight: 800; }
.sidebar__brand-identity strong,
.sidebar__brand-identity small { display: block; }
.sidebar__brand-identity small { margin-top: .08rem; color: #b8cfdb; font-size: .68rem; font-weight: 400; line-height: 1.15; }
.sidebar__brand button { width: 2rem; height: 2rem; border: 0; background: rgb(255 255 255 / 8%); font-size: 1.45rem; }
.sidebar__nav { gap: .3rem; padding: 1.25rem 0; }
.sidebar__link,
.sidebar__section summary {
    min-height: 2.85rem;
    gap: .8rem;
    padding: .65rem .8rem;
    border-radius: .55rem;
    color: #dceaf0;
    font-size: .9rem;
    transition: color .15s, background .15s, box-shadow .15s;
}
.sidebar__link:hover,
.sidebar__section summary:hover { color: #fff; background: rgb(255 255 255 / 8%); }
.sidebar__link[aria-current="page"],
.sidebar__section summary[aria-current="page"] {
    color: #fff;
    background: rgb(72 185 148 / 28%);
    box-shadow: inset 3px 0 0 var(--sgdf-mint);
}
.sidebar__icon { width: 1.2rem; flex-basis: 1.2rem; font-size: 1.1rem; }
.sidebar__icon svg { width: 1.2rem; height: 1.2rem; stroke-width: 1.7; }
.sidebar__stay { margin: .7rem 0; border-radius: .55rem; }
.sidebar__section > div { padding: .1rem 0 .45rem 2.8rem; }
.sidebar__section a { color: #dceaf0; font-size: .86rem; }
.sidebar__section a:hover { color: #fff; }
.sidebar__version { padding: .55rem .4rem; color: #8fb2c3; }
.sidebar__account { display: flex; align-items: center; gap: .4rem; padding: 1rem .4rem 0; border-top: 1px solid rgb(255 255 255 / 20%); }
.sidebar__user { min-width: 0; min-height: 3.4rem; flex: 1; gap: .75rem; padding: .35rem 0; border-top: 0; border-radius: .45rem; color: #fff; text-decoration: none; }
.sidebar__user:hover,.sidebar__user[aria-current="page"] { color: #fff; text-decoration: none; }
.sidebar__user:hover strong,.sidebar__user[aria-current="page"] strong { text-decoration: underline; text-underline-offset: .16rem; }
.sidebar__user small { margin-top: .08rem; color: #b8cfdb; font-size: .78rem; }
.sidebar__user .sidebar__text { min-width: 0; }
.sidebar__user strong,
.sidebar__user small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar__user strong { font-size: .95rem; }
.sidebar__avatar { width: 2.8rem; height: 2.8rem; flex-basis: 2.8rem; color: var(--sgdf-blue); background: var(--sgdf-mint); font-size: 1rem; }
.sidebar__logout-form { width: auto; margin: 0; }
.sidebar__logout { width: 2.5rem; height: 2.5rem; justify-content: center; padding: .5rem; border-radius: .5rem; color: #ff7fa3; }
.sidebar__logout:hover { color: #ffacc1; background: rgb(255 255 255 / 8%); }
.sidebar-collapsed .sidebar__account { justify-content: center; padding-inline: 0; }
.sidebar-collapsed .sidebar__user { flex: 0 0 auto; }
.sidebar-collapsed .sidebar__logout-form { display: none; }
.sidebar-collapsed .sidebar__brand-identity { display: none; }

.profile-page{width:100%;margin:0}
.profile-layout{display:grid;gap:1.5rem}
.profile-layout form{margin:0}
.profile-card-intro{margin:.45rem 0 1.25rem;color:var(--text-muted)}
.profile-card-actions{display:flex;justify-content:flex-end;margin-top:1.25rem}
.profile-page .flash{margin:1rem 0}
@media(max-width:48rem){.profile-page{width:100%}.profile-card-actions .food-primary{width:100%}}

@media (max-width: 760px) {
    body.app-shell,
    body.app-shell.sidebar-collapsed { padding-left: 0; }
    .sidebar,
    .sidebar-collapsed .sidebar { width: min(18rem, 86vw); }
    .sidebar-collapsed .sidebar__brand { justify-content: flex-start; padding: 0 .65rem 1.35rem; }
    .sidebar-collapsed .sidebar__brand img { display: block; }
    .sidebar-collapsed .sidebar__brand button { margin-left: auto; transform: none; }
    .sidebar-collapsed .sidebar__link,
    .sidebar-collapsed .sidebar__section summary,
    .sidebar-collapsed .sidebar__logout { justify-content: flex-start; padding-inline: .8rem; }
    .sidebar-collapsed .sidebar__section > div { display: grid; }
    .sidebar-collapsed .sidebar__logout { justify-content: center; padding: .45rem; }
}

.searchable-select__native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
.searchable-select{position:relative;width:100%;min-width:0;margin-top:.4rem;font-weight:400}
.searchable-select__trigger{width:100%;min-height:3rem;padding:.6rem 2.4rem .6rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white;text-align:left;cursor:pointer}
.searchable-select__trigger::after{position:absolute;right:.85rem;content:"⌄";font-size:1.15rem}
.searchable-select__trigger--placeholder{color:var(--text-muted)}
.searchable-select__trigger:focus,.searchable-select__search:focus{border-color:var(--sgdf-blue-light);outline:0;box-shadow:0 0 0 3px rgb(0 119 179 / 16%)}
.searchable-select__dropdown{position:fixed;z-index:20;right:auto;bottom:auto;margin:0;padding:.5rem;border:1px solid #aebfca;border-radius:.35rem;background:white;box-shadow:0 10px 30px rgb(0 58 93 / 18%)}
.searchable-select__search{width:100%;min-height:2.65rem;padding:.55rem .7rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white}
.searchable-select__options{max-height:15rem;overflow-y:auto;margin-top:.35rem}
.searchable-select__option{display:block;width:100%;padding:.6rem .7rem;border:0;border-radius:.25rem;color:var(--sgdf-blue);background:white;text-align:left;cursor:pointer}
.searchable-select__option:hover,.searchable-select__option:focus,.searchable-select__option[aria-selected="true"]{outline:0;background:#eaf5fa}
.searchable-select--multiple .searchable-select__option{display:flex;align-items:center;gap:.65rem}
.searchable-select--multiple .searchable-select__option::before{width:1.1rem;height:1.1rem;flex:0 0 1.1rem;border:1px solid #8da8b7;border-radius:.2rem;content:"";background:white}
.searchable-select--multiple .searchable-select__option[aria-selected="true"]::before{border-color:var(--sgdf-blue-light);color:white;background:var(--sgdf-blue-light);content:"✓";font-size:.8rem;font-weight:800;line-height:1rem;text-align:center}
.searchable-select__empty{margin:.65rem;color:var(--text-muted);font-size:.9rem;text-align:center}
.recipe-row>.searchable-select{margin-top:0}

.distribution-admin__grid { display: grid; grid-template-areas: "configuration public" "configuration courses"; grid-template-columns: minmax(20rem, .85fr) minmax(28rem, 1.15fr); gap: 1.5rem; align-items: start; }
.distribution-config-card { grid-area: configuration; }
.public-link-card { grid-area: public; }
.shopping-lists-card { grid-area: courses; }
.export-period-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.export-period-fields label{font-weight:800}.export-period-fields input{display:block;width:100%;min-height:3rem;margin-top:.45rem;padding:.65rem .8rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white}.export-period-fields input:focus{border-color:var(--sgdf-blue-light);outline:0;box-shadow:0 0 0 3px rgb(0 119 179 / 14%)}
.admin-card { padding: 1.5rem; border-top:.35rem solid var(--sgdf-mint); border-radius: .65rem; background: white; box-shadow: 0 8px 24px rgb(0 58 93 / 8%); }
.admin-card__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.3rem; }
.admin-card__header h2 { margin: 0; font-family: var(--font-title); font-size: 1.35rem; }
.admin-card__header p { margin: .3rem 0 0; color: var(--text-muted); }
.distribution-master { display: flex; align-items: center; gap: .9rem; padding: 1rem; border: 1px solid #a9d8c5; border-radius: .5rem; background: #f1faf6; cursor: pointer; }
.distribution-master input, .distribution-meals input { width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; accent-color: var(--sgdf-blue); }
.distribution-master span { display: flex; flex-direction: column; }.distribution-master small { color: var(--text-muted); }
.distribution-meals { display: grid; gap: .6rem; margin: 1.3rem 0; padding: 0; border: 0; }
.distribution-meals legend { margin-bottom: .7rem; font-weight: 800; }
.distribution-meals label { display: flex; align-items: center; gap: .7rem; padding: .75rem .85rem; border: 1px solid var(--border); border-radius: .4rem; cursor: pointer; }
.public-link-copy { display: grid; grid-template-columns: 1fr auto; }
.public-link-copy input { min-width: 0; padding: .75rem; border: 1px solid #aabac4; border-radius: .4rem 0 0 .4rem; color: var(--sgdf-blue); background: #f7fafb; }
.public-link-copy button { padding: .7rem 1rem; border: 0; border-radius: 0 .4rem .4rem 0; color: white; background: var(--sgdf-blue); font-weight: 800; cursor: pointer; }
.distribution-qr { display: grid; grid-template-columns: 11rem 1fr; gap: 1.25rem; align-items: center; margin-top: 1.3rem; }
.distribution-qr img { display: block; width: 11rem; height: 11rem; border: 1px solid var(--border); }
.distribution-qr > div { display: grid; gap: .7rem; }
.renew-link-form { margin-top: 1.3rem; padding-top: 1.3rem; border-top: 1px solid var(--border); }
.status-badge { padding: .3rem .65rem; border-radius: 999px; font-size: .8rem; font-weight: 800; }.status-badge--active { color: #146c49; background: #e7f6ef; }.status-badge--inactive { color: var(--danger); background: var(--danger-surface); }
.button--danger-outline { border: 1px solid var(--danger); color: var(--danger); background: white; }
@media (max-width: 62rem) { .distribution-admin__grid { grid-template-areas: "configuration" "public" "courses"; grid-template-columns: 1fr; } }
@media (max-width: 34rem) { .distribution-qr { grid-template-columns: 1fr; } .distribution-qr img { margin: 0 auto; } }
@media (max-width: 34rem) { .export-period-fields { grid-template-columns: 1fr; } .export-period-dialog .group-dialog__actions { align-items: stretch; flex-direction: column-reverse; } .export-period-dialog .group-dialog__actions button { width: 100%; } }

.button {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    padding: .65rem 1rem;
    border: 1px solid transparent;
    border-radius: .35rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.button--primary {
    border-color: var(--sgdf-blue);
    color: #fff;
    background: var(--sgdf-blue);
}

.button--primary:hover {
    border-color: var(--sgdf-blue-light);
    background: var(--sgdf-blue-light);
}

.button:focus-visible {
    outline: 3px solid var(--sgdf-mint);
    outline-offset: 2px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    color: var(--sgdf-blue);
    background: var(--surface-muted);
    font-family: var(--font-body);
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--sgdf-blue);
    background: var(--surface-muted);
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: .75rem;
    left: .75rem;
    padding: .7rem 1rem;
    border-radius: .35rem;
    color: #fff;
    background: var(--sgdf-blue);
    box-shadow: var(--shadow);
    font-weight: 800;
    text-decoration: none;
    transform: translateY(calc(-100% - 1.5rem));
    transition: transform 150ms ease;
}

.skip-link:focus {
    outline: 3px solid var(--sgdf-mint);
    outline-offset: 3px;
    transform: translateY(0);
}

a {
    color: inherit;
}

button,
input,
select {
    font: inherit;
}

.site-header {
    background: var(--surface);
    box-shadow: 0 2px 12px rgb(0 58 93 / 8%);
}

.site-header__main {
    display: flex;
    min-height: 5.25rem;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    max-width: 90rem;
    margin: 0 auto;
    padding: 1rem clamp(1.25rem, 4vw, 4rem);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.9rem;
    color: var(--sgdf-blue);
    text-decoration: none;
}

.brand__logo {
    display: block;
    width: 11rem;
    height: 3.4rem;
    object-fit: cover;
    object-position: center;
}

.brand__product {
    padding-left: 1rem;
    border-left: 1px solid var(--border);
}

.brand__name {
    display: block;
    font-family: var(--font-title);
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    line-height: 1.1;
    text-transform: uppercase;
}

.brand__tagline {
    display: block;
    margin-top: 0.2rem;
    color: var(--text-muted);
    font-size: 0.83rem;
}

.user-summary {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.user-summary__identity {
    text-align: right;
}

.user-summary__name,
.user-summary__role {
    display: block;
}

.user-summary__name {
    font-weight: 700;
}

.user-summary__role {
    margin-top: 0.15rem;
    color: var(--text-muted);
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}

.button-link {
    display: inline-flex;
    min-height: 2.65rem;
    align-items: center;
    justify-content: center;
    padding: 0.6rem 1rem;
    border: 1px solid var(--border);
    border-radius: 0.3rem;
    color: var(--sgdf-blue);
    background: var(--surface);
    font-weight: 700;
    text-decoration: none;
    transition: border-color 160ms ease, background-color 160ms ease;
}

.button-link:hover {
    border-color: var(--sgdf-blue-light);
    background: #f7fbfd;
}

.primary-navigation {
    background: var(--sgdf-blue);
}

.primary-navigation__inner {
    display: flex;
    min-height: 3.5rem;
    align-items: center;
    max-width: 90rem;
    margin: 0 auto;
    padding: 0 clamp(1.25rem, 4vw, 4rem);
}

.primary-navigation a,
.primary-navigation summary {
    display: inline-flex;
    min-height: 3.5rem;
    align-items: center;
    padding: 0 1rem;
    color: var(--surface);
    font-weight: 700;
    text-decoration: none;
}

.primary-navigation a:hover,
.primary-navigation a[aria-current="page"],
.primary-navigation summary:hover,
.primary-navigation__section-current {
    background: rgb(255 255 255 / 12%);
}

.primary-navigation__home {
    justify-content: center;
}

.primary-navigation__dropdown {
    position: relative;
    color: var(--surface);
}

.primary-navigation__dropdown summary {
    gap: 0.45rem;
    cursor: pointer;
    list-style: none;
}

.primary-navigation__dropdown summary:focus-visible {
    outline: 3px solid var(--sgdf-mint);
    outline-offset: -3px;
}

.primary-navigation__dropdown summary::-webkit-details-marker {
    display: none;
}

.primary-navigation__dropdown summary::after {
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: translateY(-0.15rem) rotate(45deg);
    transition: transform 160ms ease;
}

.primary-navigation__dropdown[open] summary::after {
    transform: translateY(0.15rem) rotate(225deg);
}

.primary-navigation__submenu {
    position: absolute;
    z-index: 10;
    top: 100%;
    left: 0;
    display: grid;
    min-width: 12rem;
    padding: 0.35rem 0;
    border-radius: 0 0 0.35rem 0.35rem;
    background: var(--sgdf-blue);
    box-shadow: 0 10px 24px rgb(0 34 55 / 22%);
}

.primary-navigation__submenu a {
    min-height: 2.8rem;
}

.page-content {
    width: min(100% - 2rem, 90rem);
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 4rem) 0;
}

.auth-shell {
    display: grid;
    min-height: 100vh;
    place-items: center;
    padding: 2rem 1rem;
    background:
        radial-gradient(circle at 15% 15%, rgb(101 188 153 / 18%), transparent 26rem),
        linear-gradient(145deg, #f8fbfc 0%, #edf4f7 100%);
}

.auth-page {
    width: min(100%, 31rem);
}

.auth-brand {
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
    margin-bottom: 2rem;
    text-align: center;
}

.auth-brand__logo {
    display: block;
    width: 14rem;
    height: 4.4rem;
    margin-bottom: 0.65rem;
    object-fit: cover;
    object-position: center;
}

.auth-brand .brand__name {
    font-size: 1.8rem;
}

.auth-card {
    padding: clamp(1.75rem, 5vw, 2.75rem);
    border: 1px solid rgb(0 58 93 / 8%);
    border-radius: 0.75rem;
    background: var(--surface);
    box-shadow: var(--shadow);
}

.auth-card__header {
    margin-bottom: 2rem;
    text-align: center;
}

.auth-card h1,
.page-heading h1 {
    margin: 0;
    font-family: var(--font-title);
    font-weight: 800;
}

.auth-card h1 {
    font-size: clamp(1.65rem, 5vw, 2rem);
}

.auth-card__intro {
    margin: 0.6rem 0 0;
    color: var(--text-muted);
    line-height: 1.5;
}

.form-field + .form-field {
    margin-top: 1.25rem;
}

.form-field label {
    display: block;
    margin-bottom: 0.45rem;
    font-weight: 700;
}

.form-field input {
    width: 100%;
    min-height: 3.15rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid #9fb0ba;
    border-radius: 0.3rem;
    color: var(--sgdf-blue);
    background: var(--surface);
    outline: none;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.form-field input:focus {
    border-color: var(--sgdf-blue-light);
    box-shadow: 0 0 0 3px rgb(0 119 179 / 18%);
}

.alert {
    margin: 0 0 1.5rem;
    padding: 0.85rem 1rem;
    border-left: 4px solid var(--danger);
    border-radius: 0.25rem;
    color: var(--danger);
    background: var(--danger-surface);
    line-height: 1.4;
}

.primary-button {
    width: 100%;
    min-height: 3.15rem;
    margin-top: 1.75rem;
    padding: 0.75rem 1.25rem;
    border: 0;
    border-radius: 0.3rem;
    color: var(--surface);
    background: var(--sgdf-blue);
    font-weight: 800;
    cursor: pointer;
    transition: background-color 160ms ease, transform 160ms ease;
}

.primary-button:hover {
    background: #00517f;
}

.primary-button:active {
    transform: translateY(1px);
}

.auth-card__footer { margin: 1.25rem 0 0; text-align: center; }
.auth-card__footer a { color: var(--sgdf-blue-light); font-weight: 700; }

/* Connexion — mise en page inspirée de l'application Bénévoles Jambville. */
.login-shell {
    margin: 0;
    color: var(--sgdf-blue);
    background: var(--surface);
}

.login-page {
    display: grid;
    min-height: 100vh;
    grid-template-columns: minmax(0, 1.05fr) minmax(22rem, 0.95fr);
    background: var(--surface);
}

.login-panel {
    width: min(100%, 38rem);
    margin: auto;
    padding: clamp(2rem, 7vw, 5.5rem);
}

.login-identity {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: clamp(3rem, 8vh, 5rem);
}

.login-identity__symbol {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    flex: 0 0 auto;
    border-radius: 0.75rem 0.75rem 0.75rem 0.15rem;
    color: var(--surface);
    background: var(--sgdf-blue);
    font-weight: 800;
    place-items: center;
}

.login-identity__sgdf-logo { display: block; width: 5.25rem; height: 3rem; margin-left: auto; object-fit: contain; }

.login-identity strong,
.login-identity small { display: block; }
.login-identity small { margin-top: 0.1rem; color: var(--text-muted); font-size: 0.72rem; }

.login-header { margin-bottom: 2rem; }
.login-eyebrow { margin: 0; color: #087b67; font-size: 0.8rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.login-header h1 { margin: 0.45rem 0 0.65rem; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; letter-spacing: -0.035em; }
.login-header > p:last-child { max-width: 31rem; margin: 0; color: var(--text-muted); line-height: 1.55; }

.login-form { display: grid; gap: 1.25rem; }
.login-field { display: grid; gap: 0.45rem; }
.login-field label { font-size: 0.9rem; font-weight: 700; }
.login-field input {
    width: 100%;
    min-height: 3.2rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid #c7d2d8;
    border-radius: 0.55rem;
    color: #173f53;
    background: var(--surface);
    font: inherit;
    outline: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}
.login-field input:focus { border-color: var(--sgdf-mint); box-shadow: 0 0 0 3px rgb(101 188 153 / 18%); }
.login-password { position: relative; }
.login-password input { padding-right: 3.25rem; }
.login-password__toggle {
    position: absolute;
    top: 50%;
    right: 0.65rem;
    display: grid;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    border: 0;
    border-radius: 0.4rem;
    color: var(--sgdf-blue);
    background: transparent;
    cursor: pointer;
    transform: translateY(-50%);
    place-items: center;
}
.login-password__toggle:hover { background: #eef5f7; }
.login-password__toggle:focus-visible { outline: 3px solid var(--sgdf-mint); outline-offset: 1px; }
.login-password__toggle svg[hidden] { display: none; }

.login-submit {
    display: inline-flex;
    min-height: 3.25rem;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.25rem;
    border: 0;
    border-radius: 0.55rem;
    color: var(--surface);
    background: var(--sgdf-blue);
    font: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: background 150ms ease, transform 150ms ease;
}
.login-submit:hover { background: #075079; }
.login-submit:active { transform: translateY(1px); }
.login-submit:focus-visible { outline: 3px solid var(--sgdf-blue-light); outline-offset: 3px; }

.login-note { margin: 1.5rem 0 0; color: var(--text-muted); font-size: 0.83rem; line-height: 1.5; text-align: center; }
.login-note a { color: var(--sgdf-blue-light); font-weight: 700; }
.login-alert { margin-bottom: 1.25rem; padding: 0.85rem 1rem; border: 1px solid; border-radius: 0.5rem; font-size: 0.88rem; line-height: 1.45; }
.login-alert--error { border-color: #f2c1bd; color: #7d2424; background: #fff0ef; }
.login-alert--success { border-color: #b7e3d4; color: #17614e; background: #eaf8f2; }

.password-activation-page .password-card { width: min(100%, 38rem); }
.password-identity { margin-bottom: 2rem; }
.password-progress { height: 0.25rem; margin-bottom: 2rem; overflow: hidden; border-radius: 1rem; background: #dce7eb; }
.password-progress span { display: block; width: 100%; height: 100%; background: var(--sgdf-mint); }
.password-header { margin-bottom: 1.75rem; }
.password-header h1 { margin: 0.45rem 0 0.65rem; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; letter-spacing: -0.035em; }
.password-header > p:last-child { margin: 0; color: var(--text-muted); line-height: 1.55; }
.password-rules { margin: -0.25rem 0 0; color: var(--text-muted); font-size: 0.8rem; line-height: 1.5; }
.password-card .login-alert p { margin: 0; }
.password-card .login-alert p + p { margin-top: 0.35rem; }
.password-card .login-field small { color: var(--text-muted); font-size: 0.76rem; line-height: 1.4; }

.login-illustration {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    background-image: linear-gradient(180deg, rgb(0 35 56 / 6%) 25%, rgb(0 35 56 / 64%) 100%), url("../images/camp-sous-bois-vIkY3Vw.jpg");
    background-position: center;
    background-size: cover;
}
.login-welcome { position: absolute; right: clamp(2rem, 7vw, 6rem); bottom: clamp(2rem, 8vh, 5rem); left: clamp(2rem, 7vw, 6rem); color: var(--surface); }
.login-welcome > p:last-child { max-width: 28rem; margin: 0.6rem 0 0; font-size: clamp(1.55rem, 3vw, 2.5rem); font-weight: 700; line-height: 1.25; }
.login-eyebrow--light { color: #c6f4e3; }

@media (max-width: 800px) {
    .login-page { grid-template-columns: 1fr; }
    .login-panel { width: min(100%, 36rem); padding: 2rem 1.5rem 3rem; }
    .login-identity { margin-bottom: 3rem; }
    .login-illustration { display: none; }
}

@media (max-width: 420px) {
    .login-identity__sgdf-logo { width: 4.25rem; }
}

.primary-button:focus-visible,
.button-link:focus-visible,
.primary-navigation a:focus-visible,
.brand:focus-visible {
    outline: 3px solid var(--sgdf-blue-light);
    outline-offset: 3px;
}

.page-heading {
    margin-bottom: 1.5rem;
}

.page-heading h1 {
    font-size: clamp(1.75rem, 4vw, 2.5rem);
}

.dashboard-card {
    padding: clamp(1.5rem, 4vw, 2.5rem);
    border-top: 0.35rem solid var(--sgdf-mint);
    border-radius: 0.4rem;
    background: var(--surface);
    box-shadow: 0 8px 24px rgb(0 58 93 / 8%);
}

.dashboard-card p {
    margin: 0;
    font-size: clamp(1.1rem, 3vw, 1.35rem);
    line-height: 1.5;
}

.menus-page { width:100%;max-width:none;color:var(--sgdf-blue); }

.group-menu-page { color:var(--sgdf-blue); }
.group-menu-heading { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem; }
.group-menu-heading h1 { margin:0;font-family:var(--font-title);font-size:clamp(2rem,9vw,2.75rem);font-weight:800; }
.group-menu-date-nav { display:grid;grid-template-columns:3rem minmax(0,1fr) 3rem;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.65rem 0;border-block:1px solid var(--border);text-align:center; }
.group-menu-date-nav div,.menu-date-picker__button { display:grid;gap:.1rem; }
.group-menu-date-nav small { color:var(--text-muted); }
.group-menu-date-arrow { display:grid;width:3rem;height:3rem;place-items:center;border-radius:50%;color:var(--sgdf-blue);background:var(--surface-muted);font-size:2rem;text-decoration:none; }
.group-menu-date-arrow--disabled { opacity:.35; }
.menu-date-picker{position:relative;margin:0}.menu-date-picker__button{position:relative;width:100%;padding:.45rem 2.5rem;border:0;border-radius:.45rem;color:var(--sgdf-blue);background:transparent;font:inherit;cursor:pointer}.menu-date-picker__button:hover{background:var(--surface-muted)}.menu-date-picker__button:focus-visible{outline:3px solid rgb(0 58 93 / 25%);outline-offset:2px}.menu-date-picker__button svg{position:absolute;top:50%;right:.75rem;width:1.25rem;height:1.25rem;translate:0 -50%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.menu-date-picker__input{position:absolute;left:50%;bottom:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}
.group-menu-meals { display:grid;gap:1.5rem; }
.group-menu-meal { padding-top:1rem;border-top:.3rem solid var(--sgdf-mint); }
.group-menu-meal>header { display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem; }
.group-menu-meal h2 { margin:0;font-family:var(--font-title);font-size:1.5rem; }
.group-menu-meal__icon { display:grid;width:2.4rem;height:2.4rem;place-items:center;border-radius:50%;color:white;background:var(--sgdf-blue);font-size:1.1rem; }
.group-menu-meal__icon svg { width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.group-menu-category { display:grid;grid-template-columns:1.8rem minmax(0,1fr);gap:.75rem;padding:.85rem 0;border-top:1px solid var(--border); }
.group-menu-category__number { display:grid;width:1.7rem;height:1.7rem;place-items:center;border-radius:50%;background:var(--surface-muted);font-size:.85rem;font-weight:800; }
.group-menu-category h3 { margin:0 0 .35rem;color:var(--text-muted);font-size:.95rem;font-weight:700; }
.group-menu-recipe { display:block;margin:.2rem 0; }
.group-menu-extras,.group-menu-empty { margin:.35rem 0 0;color:var(--text-muted); }
.group-menu-extras b { color:var(--sgdf-blue); }
@media(min-width:48rem){.group-menu-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem}}

.manager-menu-block { box-sizing:border-box;width:100%;max-width:none;overflow:hidden;padding:1.5rem 1.75rem;border-top:.35rem solid var(--sgdf-mint);border-radius:.5rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%); }
.manager-menu-date-nav { margin-bottom:1.5rem;padding:.65rem 0;border-inline:0;border-radius:0;background:transparent;box-shadow:none; }
.manager-inline-meals { display:grid;grid-template-columns:minmax(0,1fr);gap:2rem; }
.manager-inline-meal { min-width:0;padding-top:1.25rem;border-top:.3rem solid var(--sgdf-mint); }
.manager-inline-meal__heading { display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem; }
.manager-inline-meal__heading h2 { margin:0;font-family:var(--font-title);font-size:1.5rem; }
.manager-inline-meal__heading small { display:block;margin-top:.15rem;color:var(--text-muted);font-size:.75rem;font-weight:700; }
.menu-distribution-type{display:grid;min-width:12rem;gap:.35rem;margin-left:auto;color:var(--text-muted);font-size:.78rem;font-weight:800}.menu-distribution-type select{min-height:2.75rem;padding:.55rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white;font:inherit;font-size:.9rem}
.manager-inline-meal .menu-categories { gap:1rem; }
.manager-inline-meal .menu-category,.manager-inline-meal .menu-simple-list,.manager-inline-meal form { width:100%;max-width:none; }
.manager-inline-meal .menu-adders { grid-template-columns:repeat(2,minmax(0,1fr));width:100%; }
.manager-inline-meal .menu-adder { grid-template-columns:minmax(0,1fr) auto;width:100%; }
.manager-inline-meal .meal-editor__actions { margin-top:1.25rem; }
.manager-day-form{margin:0}.manager-day-form__actions{display:flex;justify-content:flex-end;padding:1.5rem;border-top:1px solid var(--border);background:#f8fbfc}.manager-day-form__actions .save-meal-button{min-width:min(100%,18rem)}
.manager-special-heading { margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border); }
.manager-special-heading h2 { margin:0;font-family:var(--font-title);font-size:1.5rem; }
.manager-special-heading p { margin:.3rem 0 0;color:var(--text-muted); }

.menus-heading {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    margin-bottom: 1.5rem;
}

.menus-heading h1 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 800;
}

.menus-heading__action {
    margin-left: auto;
}

.stay-badge {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    gap: 0.65rem;
    padding: 0.6rem 1.15rem;
    border: 1px solid #91b9d5;
    border-radius: 0.35rem;
    background: #f8fbfd;
}

.menus-layout {
    display: grid;
    grid-template-columns: minmax(18rem, 20rem) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}

.meal-calendar,
.meal-editor,
.empty-state {
    border-radius: 0.4rem;
    background: var(--surface);
    box-shadow: 0 8px 28px rgb(0 58 93 / 9%);
}

.meal-calendar {
    height: 0;
    min-height: 100%;
    max-height: none;
    overflow: auto;
}

.meal-day {
    padding: 1rem;
}

.meal-day + .meal-day {
    border-top: 1px solid var(--border);
}

.meal-day h2,
.meal-editor h2,
.empty-state h2 {
    margin: 0;
    font-family: var(--font-title);
    font-weight: 800;
}

.meal-day h2 {
    margin-bottom: 0.65rem;
    font-size: 1.1rem;
}

.meal-day__items {
    display: grid;
    gap: 0.35rem;
}

.meal-slot {
    display: grid;
    grid-template-columns: 1.65rem minmax(0, 1fr) 0.75rem;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.6rem;
    padding: 0.45rem 0.65rem;
    border: 1px solid #cbd7de;
    border-radius: 0.35rem;
    text-decoration: none;
    transition: border-color 150ms ease, background-color 150ms ease;
}

.meal-slot:hover,
.meal-slot--active {
    border-color: var(--sgdf-blue-light);
    background: #f6fbfe;
}

.meal-slot--complete {
    border-color: #70c39e;
}

.meal-slot__status {
    display: grid;
    width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    border: 2px dashed #f57c00;
    border-radius: 50%;
    color: white;
    font-weight: 800;
}

.meal-slot--complete .meal-slot__status {
    border: 0;
    background: #3a9f70;
}

.meal-slot__arrow {
    font-size: 1.4rem;
    line-height: 1;
}

.meal-editor {
    min-height: 38rem;
    padding: 2rem 2.25rem;
    border-top: 0.35rem solid #70bb95;
}

.meal-editor h2 {
    margin-bottom: 1.5rem;
    font-size: 1.65rem;
}

.food-picker-label {
    display: block;
    margin-bottom: 0.45rem;
    font-weight: 800;
}

.food-picker-group {
    margin-top: 1.25rem;
}

.food-picker {
    width: 100%;
    min-height: 3.2rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid #aebfca;
    border-radius: 0.3rem;
    color: var(--sgdf-blue);
    background: white;
}

.food-table {
    margin-top: 1.5rem;
    overflow-x: auto;
}

.food-row {
    display: grid;
    grid-template-columns: minmax(6.5rem, 1.2fr) 5.2rem repeat(var(--public-count, 1), minmax(5.2rem, 1fr)) 2rem;
    gap: 0.85rem;
    min-width: 45rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid #e1e8ec;
}
.menus-page .food-row { grid-template-columns: minmax(8rem,1.2fr) minmax(7rem,.7fr) minmax(8rem,.8fr) repeat(var(--public-count),minmax(5.2rem,1fr)) 2.65rem; min-width:54rem; }
.menus-page--categorized .food-row { grid-template-columns: minmax(8rem,1.2fr) minmax(7rem,.7fr) minmax(8rem,.8fr) repeat(var(--public-count),minmax(5.2rem,1fr)) 2.65rem; min-width:54rem; }
.menu-adders { display:grid;gap:.75rem;margin-bottom:1rem; }
.menu-adder { display:grid;grid-template-columns:minmax(0,21rem) auto;align-items:end;justify-content:start;gap:.75rem;min-width:0; }
.menu-adders label { display:grid;min-width:0;gap:.35rem;font-weight:700; }
.menu-adders .searchable-select { margin-top:0; }
.menu-adders select,.food-row select,.recipe-row select,.packaging-row select { min-height:2.85rem;padding:.45rem;border:1px solid #aebfca;border-radius:.3rem;background:white; }
.menu-categories { display:grid;gap:1.25rem; }
.menu-category { overflow:hidden;border:1px solid var(--border);border-radius:.45rem;background:white; }
.menu-category>h3 { margin:0;padding:.8rem 1rem;color:white;background:var(--sgdf-blue-light);font-size:1.15rem; }
.menu-category>.menu-adders { margin:0;padding:1rem;background:var(--surface-muted); }
.menu-category>.food-table { margin:0;padding:1rem; }
.menu-simple-list>.menu-adders { margin-bottom:.5rem; }
@media(max-width:32rem){.menu-adder{grid-template-columns:minmax(0,1fr) auto}}
.menu-recipe,.menu-extras { margin-top:1rem;border:1px solid var(--border);border-radius:.4rem;overflow:hidden;background:#fff; }
.menu-recipe,.menu-extras { border-radius:0; }
.menu-extras:not(:has([data-extra-rows] > .food-row)) { display:none; }
.menu-recipe>header,.menu-extras>h4 { display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0;padding:.65rem .85rem;background:var(--surface-muted); }
.menu-recipe>header h4 { margin:0; }
.menu-recipe>header>div { display:flex;gap:.35rem; }
.menu-recipe .food-table,.menu-extras .food-table { margin:0;padding:.75rem; }
[data-menu-block] [data-recipe-rows] > .food-row:last-child,
[data-menu-block] [data-extra-rows] > .food-row:last-child { border-bottom:0; }
.menu-recipe .food-table:not(:has([data-recipe-rows] > .food-row)) > .food-row--header,
.menu-extras .food-table:not(:has([data-extra-rows] > .food-row)) > .food-row--header { border-bottom:0; }
.recipe-row { margin-top:1rem; }

.food-row--header {
    padding: 0.25rem 0 0.7rem;
    font-size: 0.82rem;
}

.food-row--header span {
    text-align: center;
}

.food-row--header span:first-child {
    text-align: left;
}

.food-row--header small {
    display: block;
    margin-top: 0.15rem;
    color: var(--text-muted);
    font-size: 0.7rem;
    font-weight: 400;
    line-height: 1.1;
}

.food-row input {
    width: 100%;
    min-width: 0;
    min-height: 2.85rem;
    padding: 0.55rem 0.5rem;
    border: 1px solid #b8c7d0;
    border-radius: 0.3rem;
    color: var(--sgdf-blue);
    text-align: center;
}

.food-row input:focus,
.food-picker:focus {
    border-color: var(--sgdf-blue-light);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(0 119 179 / 14%);
}

.unit-chip {
    display: grid;
    min-height: 2.85rem;
    place-items: center;
    border: 1px solid #b8c7d0;
    border-radius: 0.3rem;
    background: #fafcfd;
}

.delete-food {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    padding: 0;
    border: 1px solid #e7aaa6;
    border-radius: .3rem;
    color: var(--danger);
    background: white;
    cursor: pointer;
}
.delete-food:hover { border-color: var(--danger); background: var(--danger-surface); }

.meal-editor__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    justify-content: flex-end;
    margin-top: 2rem;
}

.save-meal-button,
.save-next-meal-button {
    min-width: 15rem;
    min-height: 3.2rem;
    padding: 0.75rem 1.2rem;
    border: 0;
    border-radius: 0.3rem;
    color: white;
    background: var(--sgdf-blue);
    font-weight: 800;
    cursor: pointer;
}
.save-next-meal-button { border: 1px solid var(--sgdf-blue);color:var(--sgdf-blue);background:white; }
.save-next-meal-button:hover { background:#edf7fc; }

.flash {
    margin-bottom: 1rem;
    padding: 0.8rem 1rem;
    border-radius: 0.3rem;
    opacity: 1;
    transition: opacity 220ms ease, transform 220ms ease;
}

.flash--leaving {
    opacity: 0;
    transform: translateY(-0.35rem);
}

.flash--success { color: #146c49; background: #e7f6ef; }
.flash--error { color: var(--danger); background: var(--danger-surface); }
.flash--info { color: var(--sgdf-blue); background: #e7f2f8; }

.empty-state {
    padding: 2rem;
    border-top: 0.35rem solid var(--sgdf-mint);
}

.empty-state p { margin-bottom: 0; }

.groups-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.75rem;
}

.groups-heading h1,
.groups-list-card h2,
.group-dialog h2,
.group-row h3 {
    margin: 0;
    font-family: var(--font-title);
    font-weight: 800;
}

.groups-heading h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
.groups-heading p { margin: .4rem 0 0; color: var(--text-muted); }
.groups-list-card { border-radius: .45rem; background: white; box-shadow: 0 8px 28px rgb(0 58 93 / 9%); }
.groups-list-card { overflow: hidden; }
.groups-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem 1.75rem; border-top: .35rem solid var(--sgdf-mint); border-bottom: 1px solid var(--border); }
.groups-card-heading h2, .group-dialog h2 { font-size: 1.45rem; }
.groups-card-heading p { margin: .25rem 0 0; color: var(--text-muted); }
.groups-card-actions { display: flex; align-items: center; gap: 1rem; }
.inactive-groups-toggle label { display: inline-flex; align-items: center; gap: .55rem; font-weight: 700; cursor: pointer; }
.inactive-groups-toggle input { width: 1.1rem; height: 1.1rem; accent-color: var(--sgdf-blue); }
.add-group-button { display: inline-flex; min-height: 3rem; align-items: center; gap: .45rem; padding: .65rem 1rem; border: 0; border-radius: .3rem; color: white; background: var(--sgdf-blue); font-weight: 800; cursor: pointer; }
.add-group-button:hover { background: #00517f; }
.add-group-button span { font-size: 1.25rem; line-height: 1; }
.groups-list { padding: 0 1.75rem; }
.group-row { display: grid; grid-template-columns: minmax(9rem, auto) 1fr auto auto auto; align-items: center; gap: 1rem; padding: 1.35rem 0; }
.group-row + .group-row { border-top: 1px solid var(--border); }
.group-row--inactive { opacity: .62; }
.group-row h3 { font-size: 1.1rem; }
.group-row__identity span { display: block; margin-top: .2rem; color: var(--text-muted); font-size: .88rem; }
.group-row__identity .inactive-group-badge { display: inline-flex; margin: 0 0 0 .4rem; padding: .18rem .45rem; border-radius: 999px; color: #596772; background: #e7ecef; font-family: var(--font-body); font-size: .68rem; vertical-align: middle; }
.group-type { display: inline-flex; justify-content: center; padding: .4rem .65rem; border: 1px solid; border-radius: 999px; font-size: .78rem; font-weight: 700; }
.group-type--louveteaux-jeannettes { border-color: #e5821f; color: #75400d; background: #fff1df; }
.group-type--scouts-guides { border-color: #0089b7; color: #005676; background: #e4f6fc; }
.group-type--pionniers-caravelles { border-color: #d7282f; color: #8f171c; background: #fdebed; }
.group-type--farfadets { border-color: #6cbf84; color: #176845; background: #e8f7ed; }
.group-type--adulte { border-color: #7b8790; color: #46525a; background: #edf1f3; }
.group-row dl { display: flex; gap: .75rem; margin: 0; }
.group-row dl div { min-width: 5.25rem; padding: .55rem .75rem; border-radius: .35rem; background: var(--surface-muted); text-align: center; }
.group-row dt { color: var(--text-muted); font-size: .75rem; }
.group-row dd { margin: .1rem 0 0; font-family: var(--font-title); font-size: 1.15rem; font-weight: 800; }
.group-row dd small,.group-row dd strong{display:block;font-family:var(--font-body);font-size:.7rem}.group-row dd small{color:var(--text-muted);font-weight:600}.group-row dd strong{margin-top:.2rem;color:#087b67;font-weight:800}
.edit-group-button { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; padding: 0; border: 1px solid var(--border); border-radius: .3rem; color: var(--sgdf-blue); background: white; cursor: pointer; }
.edit-group-button:hover { border-color: var(--sgdf-blue-light); background: #f7fbfd; }
.delete-group-button { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; padding: 0; border: 1px solid #e7aaa6; border-radius: .3rem; color: var(--danger); background: white; cursor: pointer; }
.delete-group-button:hover { border-color: var(--danger); background: var(--danger-surface); }
.groups-empty { display: flex; align-items: center; flex-direction: column; padding: 4rem 2rem; color: var(--text-muted); text-align: center; }
.groups-empty strong { color: var(--sgdf-blue); font-size: 1.1rem; }
.groups-empty span { margin-top: .3rem; }
.group-dialog { width: min(100% - 2rem, 38rem); max-height: calc(100vh - 2rem); padding: 0; border: 0; border-radius: .55rem; color: var(--sgdf-blue); background: white; box-shadow: 0 24px 70px rgb(0 30 50 / 30%); }
.group-dialog::backdrop { background: rgb(0 30 50 / 58%); backdrop-filter: blur(2px); }
.group-dialog__content { padding: 1.75rem; border-top: .35rem solid var(--sgdf-mint); }
.group-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.group-dialog__header p { margin: .35rem 0 0; color: var(--text-muted); }
.group-dialog__close { width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border: 0; border-radius: 50%; color: var(--sgdf-blue); background: var(--surface-muted); font-size: 1.65rem; line-height: 1; cursor: pointer; }
.group-dialog__close:hover { background: #e6edf1; }
.group-form-field label, .group-type-picker legend { display: block; margin-bottom: .45rem; font-weight: 800; }
.group-form-field input { width: 100%; min-height: 3rem; padding: .65rem .8rem; border: 1px solid #aebfca; border-radius: .3rem; color: var(--sgdf-blue); }
.group-form-field input:focus { border-color: var(--sgdf-blue-light); outline: 0; box-shadow: 0 0 0 3px rgb(0 119 179 / 14%); }
.group-type-picker { display: grid; gap: .55rem; margin: 1.2rem 0; padding: 0; border: 0; }
.group-type-option { cursor: pointer; }
.group-type-option input { position: absolute; opacity: 0; }
.group-type-option span { display: block; padding: .7rem .85rem; border: 1px solid #b8c7d0; border-radius: .35rem; }
.group-type-option input:checked + span { border-color: var(--sgdf-blue-light); background: #eef8fc; box-shadow: 0 0 0 2px rgb(0 119 179 / 15%); }
.group-type-option input:focus-visible + span { outline: 3px solid var(--sgdf-blue-light); outline-offset: 2px; }
.group-counts { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.group-menu-grid-field { margin-top: 1.2rem; }
.group-menu-grid-field small { display: block; margin-top: .4rem; color: var(--text-muted); }
.group-dietary-needs { min-width:0;margin:1.5rem 0 0;padding:0;border:0;background:transparent; }
.group-dietary-needs legend { display:block;width:100%;margin:0 0 .45rem;padding:0;font-family:inherit;font-size:inherit;font-weight:800;line-height:inherit; }
.group-dietary-needs p { margin:0 0 1.25rem;color:var(--text-muted);font-size:smaller;font-weight:400;line-height:normal; }
.group-diet-counts { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem; }
.group-presence-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.group-row__identity small { display: block; margin-top: .2rem; color: var(--text-muted); font-size: .8rem; }
@media (max-width: 40rem) { .group-counts,.group-diet-counts,.group-presence-dates { grid-template-columns: 1fr; } }
.group-dialog__actions { display: flex; justify-content: flex-end; gap: .75rem; margin-top: 1.5rem; }
.save-group-button, .cancel-group-button { min-height: 3.15rem; padding: .7rem 1.15rem; border-radius: .3rem; font-weight: 800; cursor: pointer; }
.save-group-button { border: 0; color: white; background: var(--sgdf-blue); }
.save-group-button:hover { background: #00517f; }
.cancel-group-button { border: 1px solid var(--border); color: var(--sgdf-blue); background: white; }
.cancel-group-button:hover { border-color: var(--sgdf-blue-light); background: #f7fbfd; }
.delete-group-dialog { width: min(100% - 2rem, 30rem); padding: 0; border: 0; border-radius: .55rem; color: var(--sgdf-blue); background: white; box-shadow: 0 24px 70px rgb(0 30 50 / 30%); }
.delete-group-dialog::backdrop { background: rgb(0 30 50 / 58%); backdrop-filter: blur(2px); }
.delete-group-dialog__content { padding: 2rem; text-align: center; }
.delete-group-dialog__icon { display: grid; width: 3rem; height: 3rem; margin: 0 auto 1rem; place-items: center; border-radius: 50%; color: var(--danger); background: var(--danger-surface); font-family: var(--font-title); font-size: 1.4rem; font-weight: 800; }
.delete-group-dialog h2 { margin: 0; font-family: var(--font-title); font-size: 1.45rem; font-weight: 800; }
.delete-group-dialog p { margin: .65rem 0 0; color: var(--text-muted); }
.delete-group-dialog__warning { color: var(--danger) !important; font-weight: 700; }
.delete-group-dialog .group-dialog__actions { justify-content: center; }
.confirm-delete-group-button { min-height: 3.15rem; padding: .7rem 1.15rem; border: 0; border-radius: .3rem; color: white; background: var(--danger); font-weight: 800; cursor: pointer; }
.confirm-delete-group-button:hover { background: #912018; }

.foods-heading,.food-form-heading,.suppliers-section>header{display:flex;align-items:center;justify-content:space-between;gap:2rem}.foods-heading{margin-bottom:1.75rem}.foods-heading h1,.food-form-heading h1,.food-form-card h2{margin:0;font-family:var(--font-title);font-weight:800}.foods-heading h1,.food-form-heading h1{font-size:clamp(2rem,4vw,2.75rem)}.foods-heading p,.food-form-heading p,.suppliers-section header p,.packaging>p{margin:.35rem 0 0;color:var(--text-muted)}.food-primary,.food-secondary{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:.4rem;padding:.65rem 1rem;border-radius:.3rem;font-weight:800;text-decoration:none;cursor:pointer}.food-primary{border:0;color:white;background:var(--sgdf-blue)}.food-secondary{border:1px solid #9fb0ba;color:var(--sgdf-blue);background:white}.foods-card,.food-form-card{border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.foods-card{overflow:hidden;border-top:.35rem solid var(--sgdf-mint)}.foods-tools{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.35rem 1.75rem;border-bottom:1px solid var(--border)}.food-search{display:flex;width:min(100%,32rem);align-items:center;gap:.6rem;padding:0 .85rem;border:1px solid #aebfca;border-radius:.3rem}.food-search input{width:100%;min-height:3rem;border:0;outline:0}.food-tabs{display:flex}.food-tabs a{padding:.7rem 1.1rem;border:1px solid #9fb0ba;text-decoration:none;font-weight:700}.food-tabs a[aria-current=page]{color:white;background:var(--sgdf-blue)}.foods-table{overflow-x:auto}.foods-row{display:grid;grid-template-columns:minmax(14rem,1.5fr) 12rem 10rem 13rem;align-items:center;gap:1rem;width:100%;min-width:56rem;box-sizing:border-box;padding:1rem 1.75rem;border-bottom:1px solid var(--border)}.foods-row--head{color:var(--text-muted);font-size:.82rem;font-weight:700}.stock-cell{display:grid;justify-items:start;gap:.35rem}.unit-pill,.status-pill{display:inline-flex;padding:.3rem .65rem;border-radius:999px;font-weight:700}.unit-pill{border:1px solid #b8c7d0;background:#fafcfd}.status-pill--active{color:#187249;background:#dcf4e8}.status-pill--inactive{color:#596772;background:#e7ecef}.food-actions{display:flex;align-items:center;justify-content:flex-end;gap:.6rem}.food-actions a,.food-actions button{padding:.55rem .75rem;border:1px solid #9fb0ba;border-radius:.3rem;color:var(--sgdf-blue);background:white;text-decoration:none;cursor:pointer}.food-actions form{margin:0}.food-actions button{border-color:#e7aaa6;color:var(--danger)}.foods-note{margin:0;padding:1rem 1.75rem;color:var(--text-muted)}.foods-empty{padding:3rem;text-align:center;color:var(--text-muted)}
.food-breadcrumb{display:flex;gap:.55rem;margin-bottom:.7rem;color:var(--text-muted)}.food-form-heading{margin-bottom:1.5rem}.food-form-heading>div:last-child,.food-form-actions{display:flex;gap:.75rem}.food-form-card{margin-bottom:1.25rem;padding:1.5rem 1.75rem;border-top:.35rem solid var(--sgdf-mint)}.food-form-card h2{font-size:1.4rem}.food-general-grid,.supplier-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.15rem}.food-general-grid label,.supplier-grid label,.packaging-row label{font-weight:700}.food-general-grid input,.food-general-grid select,.supplier-grid input,.supplier-grid select,.packaging-row input{width:100%;min-height:3rem;margin-top:.4rem;padding:.6rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white}.food-general-grid select[aria-invalid="true"]{border-color:var(--danger)}.food-general-grid small{display:block;margin-top:.35rem;color:var(--text-muted);font-weight:400}.field-error{display:block;margin-top:.35rem;color:var(--danger);font-size:.875rem;font-weight:700}.food-general-grid b,.supplier-grid b{color:var(--danger)}.supplier-card{margin-top:1.25rem;padding:1rem;border:1px solid var(--border);border-radius:.4rem}.supplier-card>header{display:flex;justify-content:space-between}.supplier-card>header strong{padding:.25rem .55rem;border-radius:.25rem;color:white;background:var(--sgdf-blue-light)}.supplier-card>header button{border:0;color:var(--danger);background:transparent;cursor:pointer}.packaging{margin-top:1rem;padding:1rem;border-radius:.35rem;background:var(--surface-muted)}.packaging h3{margin:0}.packaging-row{display:grid;grid-template-columns:2rem minmax(10rem,1.2fr) auto minmax(7rem,.5fr) minmax(10rem,1fr) 2.2rem;align-items:end;gap:.75rem;margin-top:.8rem}.packaging-row label span{display:block;font-size:.75rem}.packaging-row>.contains{grid-column:3}.packaging-row>label:nth-of-type(2){grid-column:4}.packaging-row>.next-level{grid-column:5}.packaging-row>.remove-level{grid-column:6}.level-number{display:grid;width:1.75rem;height:1.75rem;place-items:center;margin-bottom:.55rem;border:1px solid var(--sgdf-blue-light);border-radius:50%;font-weight:800}.contains,.next-level{padding-bottom:.8rem}.next-level{padding:.8rem;border-radius:.3rem;color:#176845;background:#dff5e9}.remove-level{display:grid;width:2.2rem;height:2.2rem;place-items:center;margin-bottom:.4rem;padding:0;border:1px solid #e7aaa6;border-radius:.3rem;color:var(--danger);background:white;cursor:pointer}.remove-level:hover{border-color:var(--danger);background:var(--danger-surface)}.add-level{margin-top:1rem;padding:.55rem .75rem;border:1px dashed var(--sgdf-blue-light);border-radius:.3rem;color:var(--sgdf-blue);background:white}.packaging-summary{margin-top:1rem;padding:.75rem;border:1px solid #9bd7b8;border-radius:.3rem;color:#176845;background:#eaf8f1;text-align:center;font-weight:800}.food-form-actions{justify-content:flex-end;padding:1rem 0}
.supplier-primary{display:flex;align-items:center;gap:.55rem;margin-top:1rem;font-weight:700}.supplier-primary input{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--sgdf-blue)}
.foods-card { border-top: 0; }
.foods-tools { border-top: .35rem solid var(--sgdf-mint); }
@media(max-width:60rem){.foods-heading,.food-form-heading,.suppliers-section>header,.foods-tools{align-items:stretch;flex-direction:column}.food-general-grid,.supplier-grid{grid-template-columns:1fr}.packaging-row{grid-template-columns:2rem 1fr}.packaging-row>.contains,.packaging-row>label:nth-of-type(2),.packaging-row>.next-level,.packaging-row>.remove-level{grid-column:2}.contains,.next-level{padding:.2rem 0}.remove-level{grid-column:2}}

/* Recettes */
.recipes-card { overflow: hidden; }
.recipes-row { grid-template-columns: minmax(14rem, 1.5fr) minmax(8rem, .7fr) minmax(10rem, 1fr) 7rem; min-width: 46rem; }
.recipes-row--head { color: var(--text-muted); font-size: .82rem; font-weight: 700; }
.recipe-lines-card > header { display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:1.25rem; }
.recipe-lines-card > header p { margin:.35rem 0 0;color:var(--text-muted); }
.recipe-lines-add { display:flex;justify-content:flex-start;padding-top:1rem; }
.food-general-grid.recipe-name-grid { grid-template-columns:minmax(18rem,1fr) minmax(12rem,.6fr);max-width:none; }
.recipe-table{overflow-x:auto}
.recipe-row{display:grid;grid-template-columns:minmax(14rem,.85fr) minmax(25rem,2fr) 5rem;align-items:stretch;gap:1rem;min-width:48rem;padding:1rem 0;border-bottom:1px solid var(--border)}
.recipe-row--head{align-items:center;padding-top:0;color:var(--text-muted);font-size:.82rem;font-weight:700}
.recipe-row input,.recipe-row select{box-sizing:border-box;width:100%;min-width:0;min-height:2.85rem;padding:.55rem;border:1px solid #b8c7d0;border-radius:.3rem;background:white}
.recipe-row input{text-align:center}
.recipe-line-foods{display:grid;align-content:start;gap:1rem;min-width:0}
.recipe-field{display:block;min-width:0;font-weight:700}.recipe-field>span{display:block;margin-bottom:.4rem}.recipe-field>.searchable-select{margin-top:0}
.recipe-quantities{min-width:0;padding:1.15rem;border-radius:.4rem;background:var(--surface-muted)}
.recipe-quantities h3{margin:0 0 1rem;font-size:1.05rem}
.recipe-quantities-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.recipe-line-action{display:flex;align-items:center;justify-content:flex-end}
.recipe-remove-line{padding:0;border:0;color:var(--danger);background:transparent;font:inherit;font-weight:800;cursor:pointer}

/* Cartes du calendrier des menus */
.meal-calendar { display:grid;gap:1rem;padding:.1rem;background:transparent;box-shadow:none; }
.meal-day { border-radius:.4rem;background:var(--surface);box-shadow:0 8px 28px rgb(0 58 93 / 9%); }
.meal-day + .meal-day { border-top:0; }

/* Espacement de la configuration de distribution */
.distribution-admin .distribution-master + .distribution-master { margin-top:1rem; }
.distribution-admin .admin-card > form > .button { margin-top:1.25rem; }
.shopping-lists-card p { color:var(--text-muted); }
.shopping-lists-card > .button { margin-top:.5rem; }

@media(max-width:60rem){.recipe-lines-card>header{align-items:stretch;flex-direction:column}.recipe-lines-add .food-secondary{width:100%}.recipes-row{min-width:32rem}.meal-calendar{max-height:none}}
@media(max-width:44rem){
    .manager-menu-block{padding:1.15rem 1rem;border-radius:.35rem}
    .manager-inline-meal__heading{align-items:flex-start}
    .manager-inline-meal .menu-adders{grid-template-columns:minmax(0,1fr)}
    .food-general-grid.recipe-name-grid{grid-template-columns:1fr}
    .recipe-table{width:100%;overflow:visible}
    .recipe-row--head{display:none}
    .recipe-row:not(.recipe-row--head){grid-template-columns:minmax(0,1fr);gap:1.25rem;min-width:0;padding:1.25rem 0;align-items:stretch}
    .recipe-line-foods,.recipe-quantities,.recipe-line-action{grid-column:1;min-width:0;width:100%;box-sizing:border-box}
    .recipe-quantities{padding:1rem}
    .recipe-quantities-grid{grid-template-columns:minmax(0,1fr)}
    .recipe-row:not(.recipe-row--head) input,.recipe-row:not(.recipe-row--head) select,.recipe-row:not(.recipe-row--head) .searchable-select,.recipe-row:not(.recipe-row--head) .searchable-select__trigger{box-sizing:border-box;width:100%;max-width:100%}
    .recipe-line-action{justify-content:flex-start}
}

.foods-row--filtered {
    display: none !important;
}

.foods-sort-link { display:inline-flex;align-items:center;gap:.35rem;color:inherit;text-decoration:none; }
.foods-sort-link:hover,.foods-sort-link:focus-visible { color:var(--sgdf-blue);text-decoration:underline; }
.foods-sort-indicator { display:inline-grid;width:1.35rem;height:1.35rem;flex:0 0 1.35rem;place-items:center;color:var(--text-muted);opacity:.7; }
.foods-sort-indicator--active { color:var(--sgdf-blue-light);opacity:1; }
.foods-sort-indicator svg { width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round; }

.foods-swipe-row { position:relative; }
.foods-swipe-action,.foods-swipe-history { display:none; }
.food-usages-mobile-link{display:none}

@media(max-width:48rem){
    .foods-page{width:100vw;max-width:100vw;margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);margin-right:0}
    .foods-heading{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .food-add-button{position:fixed;z-index:30;right:max(1.25rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom));width:3.75rem;height:3.75rem;min-height:3.75rem;padding:0;border-radius:50%;box-shadow:0 8px 24px rgb(0 58 93 / 28%)}
    .food-add-button>span[aria-hidden="true"]{font-size:2rem;font-weight:400;line-height:1}
    .food-add-button__label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
    .foods-card{border-radius:0;box-shadow:none}
    .foods-tools{padding:1rem clamp(1.25rem,4vw,3.5rem)}
    .food-tabs{display:none}
    .foods-table{width:100%;overflow:hidden}
    .foods-row{grid-template-columns:minmax(0,1fr) minmax(7.5rem,auto);min-width:0;gap:.75rem;padding:1rem clamp(1.25rem,4vw,3.5rem)}
    .foods-row>:nth-child(n+3){display:none}
    .foods-row--head{padding-block:.7rem;background:var(--surface-muted)}
    .foods-row--head>:nth-child(2){text-align:right}
    .foods-swipe-row{overflow:hidden;background:var(--danger)}
    .foods-swipe-row:has(.foods-swipe-action--reactivate){background:#187249}
    .foods-swipe-action{position:absolute;z-index:0;inset:0 0 0 auto;display:block;width:6.75rem;margin:0}
    .foods-swipe-action button{width:100%;height:100%;padding:.5rem;border:0;color:white;background:transparent;font:inherit;font-weight:800;cursor:pointer}
    .foods-swipe-history{position:absolute;z-index:0;inset:0 auto 0 0;display:grid;width:7.5rem;place-items:center;color:white;background:var(--sgdf-blue);font-weight:800;text-decoration:none}
    .foods-swipe-row .foods-row{position:relative;z-index:1;background:white;touch-action:pan-y;transition:transform 180ms ease-out;user-select:none}
    .food-name{display:grid;justify-items:start;gap:.35rem}
    .food-usages-mobile-link{display:inline-flex;color:var(--sgdf-blue);font-size:.8rem;font-weight:700;text-decoration:underline}
    .foods-swipe-row .foods-row--dragging{transition:none}
    .foods-swipe-row .stock-cell{justify-items:end;text-align:right}
    .foods-note{padding-inline:clamp(1.25rem,4vw,3.5rem)}
}

.food-movements-table{width:100%;overflow-x:auto;border-top:.35rem solid var(--sgdf-mint)}
.food-movements-row{display:grid;grid-template-columns:minmax(9rem,.8fr) minmax(8rem,.65fr) minmax(10rem,1fr) minmax(16rem,1.5fr);align-items:center;gap:1rem;min-width:48rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}
.food-movements-row--head{color:var(--text-muted);font-size:.8rem;font-weight:700}
.food-movements-row--cancelled>time,.food-movements-row--cancelled>[data-label]{opacity:.62}
.food-movements-row time{font-size:.9rem}
.food-usages-table{width:100%;overflow-x:auto;border-top:.35rem solid var(--sgdf-mint)}
.food-usages-table table{width:100%;min-width:max-content;border-collapse:collapse}
.food-usages-table th,.food-usages-table td{padding:1rem 1.25rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
.food-usages-table thead th{color:var(--text-muted);font-size:.8rem;font-weight:700}
.food-usages-table tbody th{color:var(--sgdf-blue)}
.food-usages-table tbody tr:last-child th,.food-usages-table tbody tr:last-child td{border-bottom:0}
.order-calculation-note{margin:-.5rem 0 1.5rem;padding:.9rem 1rem;border-left:.25rem solid var(--sgdf-mint);color:var(--text-muted);background:white}.orders-list{display:grid;gap:1.5rem}
.order-meal-card{overflow:hidden;border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}
.order-meal-card>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.25rem;cursor:pointer;list-style:none}
.order-meal-card>summary::-webkit-details-marker{display:none}.order-meal-card>summary:focus-visible{outline:.2rem solid var(--sgdf-blue-light);outline-offset:-.2rem}.order-meal-card[open]>summary{border-bottom:1px solid var(--border);background:#fbfcfd}
.order-meal-card>summary h2{min-width:0;margin:0;font-family:var(--font-title);font-size:1.35rem}.order-meal-card>summary h2 time{color:inherit;font:inherit}.order-meal-card__meta{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:.85rem;font-weight:700;white-space:nowrap}.order-meal-card__chevron{display:grid;width:1.9rem;height:1.9rem;place-items:center;border-radius:50%;color:var(--sgdf-blue);background:#eaf5fa;transition:transform 160ms ease}.order-meal-card__chevron svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentcolor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}.order-meal-card[open] .order-meal-card__chevron{transform:rotate(180deg)}
.order-menu-grids{display:grid;gap:1.25rem;padding:1.25rem;background:#f4f7f9}.order-menu-grid{overflow:hidden;border:1px solid var(--border);border-radius:.4rem;background:white}.order-menu-grid>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:#fbfcfd}.order-menu-grid h3{margin:0;color:var(--sgdf-blue);font-family:var(--font-title);font-size:1.2rem}.order-menu-grid>header span{color:var(--text-muted);font-size:.85rem}
.order-table{overflow-x:auto}.order-table table{width:100%;min-width:42rem;border-collapse:collapse}.order-table th,.order-table td{padding:1rem 1.25rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.order-table thead th{color:var(--text-muted);font-size:.8rem;font-weight:700}.order-table tbody th{color:var(--sgdf-blue)}.order-table tbody tr:last-child th,.order-table tbody tr:last-child td{border-bottom:0}.order-total{font-size:1.05rem}.order-meal-empty{margin:0;padding:1.5rem 1.25rem;color:var(--text-muted)}
.distribution-tabs{display:flex;margin:-.35rem 0 1.5rem;border-bottom:1px solid var(--border)}.distribution-tabs a{padding:.8rem 1.1rem;border-bottom:.25rem solid transparent;color:var(--text-muted);font-weight:800;text-decoration:none}.distribution-tabs a:hover{color:var(--sgdf-blue)}.distribution-tabs a[aria-current=page]{border-bottom-color:var(--sgdf-mint);color:var(--sgdf-blue)}
.food-type-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;color:#176845;background:#e6f5ee;font-size:.78rem;font-weight:800}.food-type-badge--sec{color:#6d5615;background:#fff4c7}.food-type-badge--frais{color:#176845;background:#e1f5ed}.food-type-badge--fruits_legumes{color:#8b4b12;background:#fff0dc}
.crate-menus{display:grid;gap:1.25rem;padding:1.25rem;background:#f4f7f9}.crate-menu{overflow:hidden;border:1px solid var(--border);border-radius:.45rem;background:white}.crate-menu>header,.crate-unit>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.crate-menu>header{padding:1.1rem 1.25rem;border-bottom:1px solid var(--border)}.crate-menu>header h3{margin:.1rem 0 0;font-family:var(--font-title);font-size:1.25rem}.crate-menu>header p,.crate-unit>header p{margin:.25rem 0 0;color:var(--text-muted);font-size:.85rem}.crate-menu>header>span,.crate-unit>header>span{color:var(--text-muted);font-size:.82rem;font-weight:700}.crate-menu__eyebrow{color:var(--text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.crate-units{display:grid;gap:1rem;padding:1rem;background:#fbfcfd}.crate-unit{overflow:hidden;border:1px solid var(--border);border-radius:.35rem;background:white}.crate-unit>header{padding:.9rem 1rem;background:#f6fafb}.crate-unit h4{margin:0;font-family:var(--font-title);font-size:1.05rem}
.dry-delivery-card{overflow:hidden;margin-bottom:2rem;border-top:.35rem solid #e4b84b;border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.dry-delivery-card>summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.25rem;border-bottom:1px solid var(--border);background:#fffcf3;cursor:pointer;list-style:none}.dry-delivery-card>summary::-webkit-details-marker{display:none}.dry-delivery-card:not([open])>summary{border-bottom:0}.dry-delivery-card h2,.daily-crates-heading h2{margin:.15rem 0 0;font-family:var(--font-title);font-size:1.4rem}.dry-delivery-card summary p,.daily-crates-heading p{margin:.3rem 0 0;color:var(--text-muted)}.dry-delivery-card[open] .order-meal-card__chevron{transform:rotate(180deg)}.daily-crates-heading{margin:0 0 1rem}.daily-crates-heading h2{font-size:1.55rem}
.final-order-form-card,.final-order-card{overflow:hidden;margin-bottom:1.75rem;border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.final-order-form-card>header,.final-order-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.25rem;border-bottom:1px solid var(--border)}.final-order-form-card h2,.final-order-card h2{margin:0;font-family:var(--font-title);font-size:1.5rem}.final-order-form-card header p,.final-order-card header p{margin:.35rem 0 0;color:var(--text-muted)}.final-order-form-card>form{padding:1.25rem}.final-order-form-card form>footer{display:flex;justify-content:flex-end;margin-top:1.25rem}.final-order-card header>span{max-width:24rem;color:var(--text-muted);font-size:.85rem;text-align:right}.final-order-fields{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1rem}.final-order-fields label{display:grid;align-content:start;gap:.4rem;font-weight:800}.final-order-fields label>span{min-height:1.4em;line-height:1.4}.final-order-fields select{width:100%;min-height:3rem;padding:.6rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white}.final-order-fields small{color:var(--text-muted);font-weight:400}
.final-order-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.25rem 0 0;padding:1rem;border:1px solid var(--border);border-radius:.4rem;background:#f8fafb}.final-order-options legend{padding:0 .4rem;font-weight:800}.final-order-options label{display:flex;align-items:flex-start;gap:.75rem;padding:.9rem;border:1px solid var(--border);border-radius:.35rem;background:white;cursor:pointer}.final-order-options label:has(input:checked){border-color:var(--sgdf-mint);background:#eef9f5}.final-order-options input{width:1.15rem;height:1.15rem;flex:0 0 auto;margin:.15rem 0 0}.final-order-options strong,.final-order-options small{display:block}.final-order-options small{margin-top:.3rem;color:var(--text-muted);font-weight:400;line-height:1.4}.final-order-summary{display:grid;justify-items:end;gap:.4rem;max-width:25rem;color:var(--text-muted);font-size:.85rem;text-align:right}.final-order-summary small{padding:.25rem .55rem;border-radius:999px;color:#176845;background:#e6f5ee;font-weight:800}
.final-order-suppliers{display:grid;gap:1.25rem;padding:1.25rem;background:#f4f7f9}.final-order-supplier{overflow:hidden;border:1px solid var(--border);border-radius:.4rem;background:white}.final-order-supplier>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:#fbfcfd}.final-order-supplier h3{margin:0;color:var(--sgdf-blue);font-family:var(--font-title);font-size:1.2rem}.final-order-supplier>header span{color:var(--text-muted);font-size:.85rem}.final-order-supplier tbody th small{display:block;margin-top:.2rem;color:var(--text-muted);font-weight:400}
@media(max-width:70rem){.final-order-fields,.final-order-options{grid-template-columns:1fr}}
@media(max-width:48rem){.stock-list-heading.entity-list-heading{align-items:stretch;flex-direction:column}.stock-list-heading.entity-list-heading>.food-primary{width:100%}.final-order-card>header{flex-direction:column}.final-order-summary{justify-items:start;text-align:left}.final-order-form-card form>footer .food-primary{width:100%}}
@media(max-width:48rem){.manager-inline-meal__heading{align-items:flex-start;flex-wrap:wrap}.menu-distribution-type{width:100%;margin-left:3.15rem}.distribution-tabs{padding-inline:clamp(1.25rem,4vw,3.5rem)}.crate-menus{padding-inline:0}.crate-menu{border-inline:0;border-radius:0}.crate-unit{border-inline:0;border-radius:0}}
.group-meals-section{margin-top:1.5rem}.group-meals-section>h3{margin:0 0 .45rem;font-family:inherit;font-size:inherit;font-weight:800;line-height:inherit}.group-meals-section>p{margin:0 0 1.25rem;color:var(--text-muted);font-size:smaller;font-weight:400;line-height:normal}.group-meal-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.group-meal-category{min-width:0;padding:1.15rem;border:1px solid var(--border);border-top:.3rem solid var(--sgdf-mint);border-radius:.4rem;background:var(--surface-muted)}.group-meal-category>header{margin-bottom:1rem}.group-meal-category h3{margin:0;font-family:var(--font-title);font-size:1.2rem}.group-meal-category p{margin:.3rem 0 0;color:var(--text-muted);font-size:.86rem;line-height:1.4}.group-meal-category label{display:grid;gap:.4rem;font-size:.85rem;font-weight:800}.group-picnic-lists{display:grid;gap:1rem}.group-meal-category .searchable-select{width:100%}
@media(max-width:70rem){.group-meal-categories{grid-template-columns:1fr 1fr}.group-meal-category--picnic{grid-row:span 2}}
@media(max-width:48rem){.group-meal-categories{grid-template-columns:1fr}.group-meal-category--picnic{grid-row:auto}}
@media(max-width:48rem){
    .food-movements-page,.food-usages-page{width:100vw;max-width:100vw;margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);margin-right:0}
    .food-movements-page>.food-breadcrumb,.food-movements-page>.stock-list-heading,.food-usages-page>.food-breadcrumb,.food-usages-page>.stock-list-heading{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .food-movements-table{overflow:visible}
    .food-movements-row--head{display:none}
    .food-movements-row:not(.food-movements-row--head){grid-template-columns:minmax(0,1fr) auto;gap:.55rem 1rem;min-width:0;padding:1rem clamp(1.25rem,4vw,3.5rem)}
    .food-movements-row>time{align-self:center}
    .food-movements-row>[role="cell"]:nth-child(2){justify-self:end}
    .food-movements-row>[data-label]{grid-column:1 / -1}
    .food-movements-row>[data-label]::before{display:block;margin-bottom:.15rem;color:var(--text-muted);font-size:.72rem;font-weight:700;content:attr(data-label)}
    .orders-page{width:100vw;max-width:100vw;margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);margin-right:0}.orders-page>.stock-list-heading{padding-inline:clamp(1.25rem,4vw,3.5rem)}.order-calculation-note{margin-inline:clamp(1.25rem,4vw,3.5rem)}.order-meal-card{border-radius:0;box-shadow:none}.order-meal-card>summary{align-items:flex-start;padding-inline:clamp(1.25rem,4vw,3.5rem)}.order-meal-card__meta>span:first-child{display:none}
}

.clickable-row {
    cursor: pointer;
}

.clickable-row:hover,
.clickable-row:focus-visible {
    background: #f5fafb;
}

.clickable-row:focus-visible {
    outline: 2px solid var(--sgdf-blue);
    outline-offset: -2px;
}

.food-actions .reactivate-food {
    border-color: #70c39e;
    color: #187249;
    background: #e7f6ef;
}

.food-actions .reactivate-food:hover {
    border-color: #3a9f70;
    background: #d6f0e3;
}

.suppliers-page { color: var(--sgdf-blue); }
.suppliers-heading,.suppliers-card-heading,.suppliers-card-actions { display:flex;align-items:center;justify-content:space-between;gap:1.25rem }
.suppliers-heading { margin-bottom:1.75rem }.suppliers-heading h1{margin:0;font-family:var(--font-title);font-size:clamp(2rem,4vw,2.75rem);font-weight:800}
.suppliers-list-card{overflow:hidden;border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}
.suppliers-card-heading{padding:1.35rem 1.75rem;border-top:.35rem solid var(--sgdf-mint);border-bottom:1px solid var(--border)}
.suppliers-card-heading h2{margin:0;font-family:var(--font-title);font-size:1.35rem}.suppliers-card-heading p{margin:.2rem 0 0;color:var(--text-muted)}
.inactive-suppliers-toggle label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.inactive-suppliers-toggle input{width:1.1rem;height:1.1rem;accent-color:var(--sgdf-blue)}
.add-supplier-button{display:inline-flex;min-height:3rem;align-items:center;gap:.45rem;padding:.65rem 1rem;border:0;border-radius:.3rem;color:white;background:var(--sgdf-blue);font-weight:800;cursor:pointer}
.suppliers-list{overflow-x:auto}.supplier-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.7fr) minmax(0,1fr) 7rem;align-items:center;gap:1rem;min-width:50rem;padding:1rem 1.75rem;border-bottom:1px solid var(--border)}.supplier-row--head{color:var(--text-muted);font-size:.82rem;font-weight:700}.supplier-row--head>:last-child{text-align:right}.supplier-row--inactive .supplier-row__identity,.supplier-row--inactive .supplier-contact{opacity:.62}.supplier-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;white-space:nowrap}.supplier-actions .edit-supplier-button,.supplier-actions .delete-supplier-button{display:grid}.supplier-actions .delete-supplier-button{margin-left:0}
.supplier-row h3{margin:0;font-size:1.08rem}.inactive-supplier-badge{display:inline-flex!important;margin:0 0 0 .4rem!important;padding:.18rem .45rem;border-radius:999px;color:#596772!important;background:#e7ecef;font-size:.68rem!important;vertical-align:middle}
.supplier-contact{min-width:0}.supplier-contact small{display:block;margin-bottom:.2rem;color:var(--text-muted)}.supplier-contact span,.supplier-contact a{display:block;overflow:hidden;color:var(--sgdf-blue);text-overflow:ellipsis;white-space:nowrap}
.edit-supplier-button,.delete-supplier-button{display:grid;width:2.65rem;height:2.65rem;place-items:center;padding:0;border:1px solid var(--border);border-radius:.3rem;color:var(--sgdf-blue);background:white;cursor:pointer}.delete-supplier-button{border-color:#e7aaa6;color:var(--danger)}
.reactivate-supplier-form{margin:0}.reactivate-supplier-button{display:inline-flex;min-height:2.65rem;align-items:center;gap:.45rem;padding:.55rem .8rem;border:1px solid #70c39e;border-radius:.3rem;color:#187249;background:#e7f6ef;font-weight:800;cursor:pointer}.reactivate-supplier-button:hover{border-color:#3a9f70;background:#d6f0e3}
.suppliers-empty{display:flex;align-items:center;flex-direction:column;padding:4rem 2rem;color:var(--text-muted);text-align:center}.suppliers-empty strong{color:var(--sgdf-blue)}
.supplier-dialog,.delete-supplier-dialog{width:min(100% - 2rem,38rem);max-height:calc(100vh - 2rem);padding:0;border:0;border-radius:.55rem;color:var(--sgdf-blue);background:white;box-shadow:0 24px 70px rgb(0 30 50 / 30%)}.delete-supplier-dialog{width:min(100% - 2rem,30rem)}.supplier-dialog::backdrop,.delete-supplier-dialog::backdrop{background:rgb(0 30 50 / 58%);backdrop-filter:blur(2px)}
.supplier-dialog__content{padding:1.75rem;border-top:.35rem solid var(--sgdf-mint)}.supplier-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.supplier-dialog__header h2{margin:0}.supplier-dialog__header p{margin:.35rem 0 0;color:var(--text-muted)}.supplier-dialog__close{width:2.5rem;height:2.5rem;flex:0 0 auto;border:0;border-radius:50%;color:var(--sgdf-blue);background:var(--surface-muted);font-size:1.65rem;cursor:pointer}
.supplier-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.supplier-form-field{margin-bottom:1rem}.supplier-form-field label{display:block;margin-bottom:.4rem;font-weight:800}.supplier-form-field b{color:var(--danger)}.supplier-form-field input,.supplier-form-field textarea{width:100%;padding:.65rem .8rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);font:inherit}.supplier-form-field input{min-height:3rem}.supplier-form-field textarea{resize:vertical}
.supplier-dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.4rem}.save-supplier-button,.cancel-supplier-button,.confirm-delete-supplier-button{min-height:3.15rem;padding:.7rem 1.15rem;border-radius:.3rem;font-weight:800;cursor:pointer}.save-supplier-button{border:0;color:white;background:var(--sgdf-blue)}.cancel-supplier-button{border:1px solid var(--border);color:var(--sgdf-blue);background:white}.confirm-delete-supplier-button{border:0;color:white;background:var(--danger)}
.delete-supplier-dialog__content{padding:2rem;text-align:center}.delete-supplier-dialog__icon{display:grid;width:3rem;height:3rem;margin:0 auto 1rem;place-items:center;border-radius:50%;color:var(--danger);background:var(--danger-surface);font-family:var(--font-title);font-size:1.4rem;font-weight:800}.delete-supplier-dialog h2{margin:0}.delete-supplier-dialog p{margin:.65rem 0 0;color:var(--text-muted)}.delete-supplier-dialog__warning{color:var(--danger)!important;font-weight:700}.delete-supplier-dialog .supplier-dialog__actions{justify-content:center}
@media(max-width:55rem){.suppliers-list{overflow:visible}.supplier-row{grid-template-columns:1fr auto;min-width:0}.supplier-row--head{display:none}.supplier-contact,.supplier-row__identity{grid-column:1}.supplier-actions{grid-column:2;grid-row:1 / span 3}.reactivate-supplier-form{grid-column:2;grid-row:1 / span 3}}@media(max-width:44rem){.suppliers-heading,.suppliers-card-heading,.suppliers-card-actions{align-items:stretch;flex-direction:column}.add-supplier-button{justify-content:center}.supplier-form-grid{grid-template-columns:1fr}}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.action-icon-button {
    display: inline-grid;
    width: 2.65rem;
    height: 2.65rem;
    flex: 0 0 2.65rem;
    place-items: center;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: .3rem;
    color: var(--sgdf-blue);
    background: white;
    text-decoration: none;
    cursor: pointer;
}
.action-icon-button:hover { border-color: var(--sgdf-blue-light); background: #f7fbfd; }
.action-icon-button--danger { border-color: #e7aaa6; color: var(--danger); }
.action-icon-button--danger:hover { border-color: var(--danger); background: var(--danger-surface); }

@media (max-width: 44rem) {
    .site-header__main {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .brand {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.5rem;
    }

    .brand__product {
        padding-left: 0;
        border-left: 0;
    }

    .user-summary {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .user-summary__identity {
        text-align: left;
    }

    .button-link {
        width: 100%;
    }

    .primary-navigation__inner {
        padding: 0;
    }

    .primary-navigation a {
        flex: 1;
        justify-content: center;
    }

    .primary-navigation__dropdown {
        flex: 1;
    }

    .primary-navigation__dropdown summary {
        justify-content: center;
    }

    .primary-navigation__submenu {
        right: 0;
        left: auto;
        min-width: 100%;
    }

    .menus-heading { align-items: flex-start; flex-direction: column; gap: 0.8rem; }
    .groups-heading { align-items: flex-start; flex-direction: column; gap: .8rem; }
    .groups-card-heading { align-items: stretch; flex-direction: column; }
    .groups-card-actions { align-items: stretch; flex-direction: column; }
    .add-group-button { justify-content: center; }
    .group-row { grid-template-columns: 1fr; gap: .65rem; }
    .group-row dl { width: 100%; }
    .group-row dl div { flex: 1; }

    .meal-editor { padding: 1.35rem 1rem; }
}

@media (max-width: 70rem) {
    .menus-layout { grid-template-columns: 1fr; }
    .meal-calendar { height:auto;min-height:0;max-height:30rem; }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.distribution-shell { background: #f3f7fa; }
.distribution-page { min-height: 100vh; color: var(--sgdf-blue); }
.distribution-header { display: flex; min-height: 4.5rem; align-items: center; justify-content: space-between; padding: .75rem max(1.25rem, calc((100% - 46rem) / 2)); background: white; box-shadow: 0 2px 12px rgb(0 58 93 / 8%); }
.distribution-header img { width: 9rem; height: 2.8rem; object-fit: cover; }
.distribution-header strong { font-family: var(--font-title); font-size: 1.15rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.distribution-content { width: min(100% - 2rem, 44rem); margin: 0 auto; padding: 2rem 0 7rem; }
.distribution-title { margin-bottom: 1.75rem; }
.distribution-title h1, .distribution-empty h1, .distribution-success h1 { margin: 0; font-family: var(--font-title); font-size: clamp(2.1rem, 9vw, 3rem); font-weight: 800; }
.distribution-title p { margin: .4rem 0 0; color: var(--text-muted); font-size: 1.1rem; }
.distribution-selectors { display: grid; gap: 1rem; }
.diet-badge{display:inline-flex;align-items:center;margin-left:.35rem;padding:.18rem .45rem;border-radius:99px;color:#176b50;background:#dff3ea;font-size:.72rem;font-weight:700;white-space:nowrap}
.distribution-selectors label { font-weight: 700; }
.distribution-selectors select { display: block; width: 100%; min-height: 3.5rem; margin-top: .35rem; padding: .7rem 2.5rem .7rem .9rem; border: 1px solid #aabac4; border-radius: .45rem; color: var(--sgdf-blue); background: white; }
.distribution-regular-selectors { display: grid; gap: 1rem; }
.distribution-special-meals { display: grid; gap: .35rem; }
.distribution-special-meals > p { margin: 0; font-weight: 800; }
.distribution-special-meals__choices { display: grid; gap: .65rem; padding-left: .1rem; }
.distribution-special-meals label { display: flex; min-height: 1.5rem; align-items: center; gap: .75rem; cursor: pointer; }
.distribution-special-meals input { width: 1.3rem; height: 1.3rem; margin: 0; accent-color: var(--sgdf-blue); }
.distribution-selectors select:focus, .total-field input:focus { border-color: var(--sgdf-blue-light); outline: 0; box-shadow: 0 0 0 3px rgb(0 119 179 / 16%); }
.distribution-count { display: flex; align-items: center; gap: .65rem; margin: 1.6rem 0 1rem; font-size: 1.05rem; }
.distribution-count span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: white; background: var(--sgdf-mint); font-weight: 800; }
.distribution-food { margin-bottom: 1rem; padding: 1.4rem; border-top: .3rem solid var(--sgdf-mint); border-radius: .5rem; background: white; box-shadow: 0 6px 20px rgb(0 58 93 / 10%); }
.distribution-food__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.distribution-food h2 { margin: 0; font-family: var(--font-title); font-size: 1.55rem; font-weight: 800; }
.distribution-food__heading > span { padding: .35rem .7rem; border-radius: .4rem; color: #166348; background: #eaf7f2; }
.distribution-food h3 { margin: 1.1rem 0 .55rem; font-size: 1rem; }
.portion-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr)); gap: .55rem; }
.portion-grid__item { display: flex; min-width: 0; min-height: 3.7rem; align-items: center; flex-direction: column; justify-content: center; padding: .35rem .2rem; border: 1px solid transparent; border-radius: .45rem; font-size: .88rem; text-align: center; }
.portion-grid__item[hidden] { display: none; }
.portion-grid strong { font-size: .95rem; }
.portion-grid__item--louveteaux_jeannettes { border-color: #e5821f; color: #75400d; background: #fff1df; }
.portion-grid__item--scouts_guides { border-color: #0089b7; color: #005676; background: #e4f6fc; }
.portion-grid__item--pionniers_caravelles { border-color: #d7282f; color: #8f171c; background: #fdebed; }
.portion-grid__item--adulte { border-color: var(--sgdf-blue); color: var(--sgdf-blue); background: #e8f0f5; }
.total-field { display: block; margin-top: 1.15rem; font-weight: 800; }
.total-field div { display: grid; grid-template-columns: 1fr auto; margin-top: .4rem; }
.total-field input { width: 100%; min-width: 0; min-height: 3.5rem; padding: .65rem .85rem; border: 1px solid #aabac4; border-radius: .45rem 0 0 .45rem; color: var(--sgdf-blue); font-size: 1.35rem; }
.total-field div span { display: grid; min-width: 3.5rem; place-items: center; border: 1px solid #aabac4; border-left: 0; border-radius: 0 .45rem .45rem 0; font-size: 1.1rem; }
.distribution-action { position: fixed; z-index: 2; right: 0; bottom: 0; left: 0; padding: .75rem max(1rem, calc((100% - 44rem) / 2)); background: rgb(255 255 255 / 96%); box-shadow: 0 -4px 20px rgb(0 58 93 / 10%); }
.distribution-button { display: flex; width: 100%; min-height: 3.35rem; align-items: center; justify-content: center; padding: .75rem 1rem; border: 0; border-radius: .4rem; color: white; background: var(--sgdf-blue); font-weight: 800; text-decoration: none; cursor: pointer; }
.distribution-errors { margin-bottom: 1rem; padding: .75rem 1rem; border-left: 4px solid var(--danger); background: var(--danger-surface); color: var(--danger); }
.distribution-errors p { margin: .25rem 0; }

/* Validation des formulaires : même rendu sous chaque champ sur tous les écrans. */
.field-validation-error {
    display: block;
    flex-basis: 100%;
    width: 100%;
    margin-top: .35rem;
    color: var(--danger);
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.3;
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
    border-color: var(--danger) !important;
    outline-color: var(--danger);
}

input[aria-invalid="true"]:focus,
select[aria-invalid="true"]:focus,
textarea[aria-invalid="true"]:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent);
}

@media (max-width: 760px) {
    .field-validation-error {
        margin-top: .3rem;
        font-size: .82rem;
    }
}
.distribution-back { display: inline-block; margin-bottom: 1rem; font-weight: 700; text-decoration: none; }
.distribution-summary { padding: 1.4rem; border-top: .3rem solid var(--sgdf-mint); border-radius: .5rem; background: white; box-shadow: 0 6px 20px rgb(0 58 93 / 10%); }
.distribution-summary dl { margin: 0; }
.distribution-summary dl div, .summary-lines div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--border); }
.distribution-summary dt { color: var(--text-muted); }.distribution-summary dd { margin: 0; font-weight: 700; text-align: right; }
.distribution-summary h2 { margin: 1.5rem 0 .3rem; font-family: var(--font-title); font-size: 1.25rem; }
.confirmation-form { margin-top: 1rem; }
.distribution-empty, .distribution-success { margin-top: 3rem; padding: 2rem; border-top: .35rem solid var(--sgdf-mint); border-radius: .5rem; background: white; text-align: center; box-shadow: var(--shadow); }
.distribution-success__icon { display: grid; width: 4rem; height: 4rem; margin: 0 auto 1.2rem; place-items: center; border-radius: 50%; color: white; background: var(--sgdf-mint); font-size: 2rem; font-weight: 800; }
.distribution-success p { margin: 1rem 0 1.5rem; line-height: 1.6; }
@media (max-width: 28rem) { .portion-grid { grid-template-columns: repeat(2, 1fr); } .distribution-food { padding: 1.1rem; } }

.stock-movement-heading{margin-bottom:1.5rem}.stock-movement-heading h1{margin:0;font-family:var(--font-title);font-size:clamp(2rem,4vw,2.75rem);font-weight:800}.stock-movement-heading>div>p:last-child{margin:.35rem 0 0;color:var(--text-muted)}
.stock-movement-card{margin-bottom:1.25rem;padding:1.6rem 1.75rem;border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.stock-movement-card h2{margin:0 0 1.2rem;font-family:var(--font-title);font-size:1.4rem}.stock-movement-empty{text-align:center}
.movement-type-switch{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.4rem}.movement-type-switch label{cursor:pointer}.movement-type-switch input{position:absolute;opacity:0}.movement-type-switch span{display:grid;grid-template-columns:auto 1fr;column-gap:.7rem;padding:1rem;border:2px solid var(--border);border-radius:.45rem;font-size:1.35rem}.movement-type-switch strong{font-size:1.05rem}.movement-type-switch small{grid-column:2;color:var(--text-muted);font-size:.85rem}.movement-type-switch input:checked+span{border-color:var(--sgdf-blue-light);background:#edf7fc;box-shadow:0 0 0 2px rgb(0 119 179 / 10%)}
.stock-movement-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.stock-movement-grid label,.movement-supplier,.movement-packaging-grid label{font-weight:800}.stock-movement-grid b,.movement-supplier b{color:var(--danger)}.stock-movement-grid select,.stock-movement-grid input,.movement-supplier select,.movement-packaging-grid input{width:100%;min-height:3rem;margin-top:.4rem;padding:.6rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white}.stock-movement-grid small,.movement-packaging-grid small{display:block;margin-top:.35rem;color:var(--text-muted);font-weight:400}.movement-quantity{display:grid;grid-template-columns:1fr auto}.movement-quantity input{border-radius:.3rem 0 0 .3rem}.movement-quantity span{display:grid;min-width:3.5rem;margin-top:.4rem;place-items:center;border:1px solid #aebfca;border-left:0;border-radius:0 .3rem .3rem 0}
.stock-movement-help{margin:-.7rem 0 1.2rem;color:var(--text-muted)}.movement-supplier{display:block;max-width:32rem}.movement-supplier[hidden]{display:none}.movement-packagings{margin-top:1.4rem;padding:1.15rem;border-radius:.4rem;background:var(--surface-muted)}.movement-packagings h3{margin:0 0 1rem;font-size:1.05rem}.movement-packaging-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem}.movement-packaging-grid input{font-size:1.15rem}.movement-no-packaging,.movement-no-supplier{padding:.85rem;border-left:4px solid #d99b25;background:#fff8e8;color:#74500c}.stock-movement-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-bottom:2rem}.stock-movement-success,.stock-movement-errors{margin-bottom:1rem;padding:.9rem 1rem;border-left:4px solid var(--sgdf-mint);background:#eaf8f1;color:#176845}.stock-movement-errors{border-color:var(--danger);background:var(--danger-surface);color:var(--danger)}.stock-movement-errors p{margin:.2rem 0}.confirmation-message--leaving{opacity:0;transform:translateY(-.35rem);transition:opacity .25s ease,transform .25s ease}
.movement-lines-heading{margin-bottom:1.2rem}.movement-lines-heading h2{margin:0}.movement-lines-table{overflow-x:auto}.movement-lines-header,.movement-line{display:grid;grid-template-columns:minmax(13rem,.85fr) minmax(25rem,2fr) 5rem;gap:1rem;min-width:48rem}.movement-lines-header{padding:0 .75rem .65rem;color:var(--text-muted);font-size:.8rem;font-weight:700}.movement-line{position:relative;align-items:start;padding:1rem .75rem;border-top:1px solid var(--border)}.movement-line label{font-weight:800}.movement-line-food select{width:100%;min-height:3rem;margin-top:.4rem}.movement-line-detail .stock-movement-grid{grid-template-columns:1fr 1fr}.movement-line-detail .movement-supplier{max-width:none}.movement-line-detail .movement-packagings{margin-top:0}.movement-line-action{position:absolute;top:50%;right:.75rem;display:flex;width:5rem;justify-content:flex-end;padding:0;transform:translateY(-50%)}.movement-remove-line{border:0;background:transparent;color:var(--danger);font-weight:800;cursor:pointer}.movement-lines-add{display:flex;justify-content:flex-start;padding:1rem .75rem 0;border-top:0}
@media(max-width:44rem){
    .movement-type-switch,.stock-movement-grid{grid-template-columns:1fr}
    .stock-movement-card{padding:1.25rem}
    .stock-movement-actions .food-primary{width:100%}
    .movement-lines-table{overflow:visible}
    .movement-lines-header{display:none}
    .movement-line{grid-template-columns:1fr;min-width:0;gap:1.25rem;padding:1.25rem 0}
    .movement-line-food,.movement-line-detail,.movement-line-action{grid-column:1;min-width:0;width:100%}
    .movement-line>.movement-lot{grid-column:1;min-width:0;width:100%}
    .movement-line-detail .stock-movement-grid{grid-template-columns:1fr}
    .movement-line-detail .movement-packagings{margin-top:0;padding:1rem}
    .movement-packaging-grid{grid-template-columns:1fr}
    .movement-lot{margin-top:0}
    .movement-line-action{position:static;justify-content:flex-start;padding-top:0;transform:none}
    .movement-lines-add{padding:1rem 0 0}
    .movement-lines-add .food-secondary{width:100%}
}

.stock-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.5rem}.stock-list-heading h1{margin:0;font-family:var(--font-title);font-size:clamp(2rem,4vw,2.75rem);font-weight:800}.stock-list-heading>div>p:last-child{margin:.35rem 0 0;color:var(--text-muted)}.stock-list-card{overflow:hidden;border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.stock-list-card+.stock-list-card{margin-top:1.5rem}.stock-list-table{width:100%;overflow-x:auto;border-top:.35rem solid var(--sgdf-mint)}.stock-list-row{display:grid;grid-template-columns:minmax(8rem,.9fr) minmax(5.5rem,.6fr) minmax(7rem,.8fr) minmax(10rem,1.2fr) minmax(12rem,1.35fr) minmax(12rem,auto);align-items:center;gap:.75rem;width:100%;min-width:60rem;box-sizing:border-box;padding:1rem; border-bottom:1px solid var(--border)}.stock-list-row--head{color:var(--text-muted);font-size:.8rem;font-weight:700}.stock-list-row time{font-size:.9rem}.stock-list-primary{display:block}.stock-swipe-action{display:none}.movement-badge{display:inline-flex;padding:.3rem .6rem;border-radius:999px;font-size:.82rem;font-weight:800}.movement-badge--entree{color:#176845;background:#dff5e9}.movement-badge--sortie{color:#9b3a12;background:#fff0e7}.stock-edit-button{display:grid;width:2.65rem;height:2.65rem;place-items:center;padding:0;border:1px solid var(--border);border-radius:.3rem;color:var(--sgdf-blue);background:white;text-decoration:none;cursor:pointer}.stock-edit-button:hover{border-color:var(--sgdf-blue-light);background:#f7fbfd}.stocks-empty{padding:4rem 2rem;text-align:center;color:var(--text-muted)}.stocks-empty strong{color:var(--sgdf-blue);font-family:var(--font-title);font-size:1.35rem}.stocks-empty .food-primary{margin-top:.75rem}
.stock-list-row>:nth-child(2){text-align:center}.stock-list-row>:last-child{justify-self:end}.stock-list-row--head>:nth-child(2){width:100%}
@media(max-width:48rem){.stock-list-heading{align-items:stretch;flex-direction:column}.stock-list-heading>.food-primary{justify-content:center}.stock-movement-actions{align-items:stretch;flex-direction:column-reverse}.stock-movement-actions .food-secondary{width:100%}}
@media(max-width:48rem){
    .stock-list-page{width:100vw;max-width:100vw;margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);margin-right:0}
    .stock-list-heading{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .stock-list-card{border-radius:0;box-shadow:none}
    .stock-list-table{overflow:hidden}
    .stock-list-row{grid-template-columns:minmax(6.5rem,.8fr) auto minmax(0,1fr);min-width:0;gap:.6rem;padding:1rem clamp(1.25rem,4vw,3.5rem)}
    .stock-list-row>:nth-child(3),.stock-list-row>:nth-child(4),.stock-list-row>:nth-child(6){display:none}
    .stock-list-row--head{padding-block:.7rem;background:var(--surface-muted)}
    .stock-list-row>:nth-child(5){min-width:0;overflow-wrap:anywhere;text-align:right}
    .stock-list-row--head>:nth-child(5){font-size:.72rem;line-height:1.1}
    .stock-swipe-row{position:relative;overflow:hidden;background:var(--danger)}
    .stock-swipe-action{position:absolute;z-index:0;inset:0 0 0 auto;display:grid;width:6.75rem;margin:0;place-items:center;color:white;background:transparent;font-weight:800;text-decoration:none}
    .stock-swipe-action button{width:100%;height:100%;padding:.5rem;border:0;color:white;background:transparent;font:inherit;font-weight:800;cursor:pointer}
    .stock-swipe-row .stock-list-row{position:relative;z-index:1;background:white;touch-action:pan-y;transition:transform 180ms ease-out;user-select:none}
    .stock-swipe-row .foods-row--dragging{transition:none}
}

.users-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.users-heading h1, .users-card h2 { margin: 0; font-family: var(--font-title); font-weight: 800; }
.users-heading h1 { font-size: clamp(2rem, 4vw, 2.75rem); }
.users-heading p { margin: .35rem 0 0; color: var(--text-muted); }
.stay-selector { display: grid; gap: .3rem; font-weight: 700; }
.stay-selector select { min-height: 2.8rem; padding: .55rem .8rem; border: 1px solid #91b9d5; border-radius: .35rem; color: var(--sgdf-blue); background: white; }
.users-heading__actions { display: flex; align-items: end; gap: 1rem; }
.users-layout { display: grid; min-width: 0; gap: 1.5rem; align-items: start; }
.users-layout--list { grid-template-columns: 1fr; }
.users-card { min-width: 0; padding: 1.5rem; border-top: .35rem solid var(--sgdf-mint); border-radius: .45rem; background: white; box-shadow: 0 8px 28px rgb(0 58 93 / 9%); }
.users-card h2 { margin-bottom: 1.2rem; font-size: 1.4rem; }
.users-list { width: 100%; min-width: 0; overflow-x: auto; }
.user-row { display: grid; grid-template-columns: minmax(13rem, 1.3fr) 8rem minmax(13rem, 1fr) minmax(9rem, .8fr) 7rem; align-items: center; gap: .75rem; min-width: 58rem; padding: 1rem 0; border-bottom: 1px solid var(--border); }
.user-row--head { padding: .35rem 0 .7rem; }
.user-row--head > :last-child { text-align: right; }
.table-list-heading { color: var(--text-muted); font-size: .82rem; font-weight: 700; line-height: 1.2; }
.user-row--inactive { opacity: 1; }
.user-row--inactive > :not(.user-actions) { opacity: .55; }
.user-row strong, .user-row span { display: block; }
.user-row div > span, .user-assignment { color: var(--text-muted); font-size: .87rem; }
.user-actions { display: flex; align-items: center; justify-content: flex-end; gap: .5rem; white-space: nowrap; }
.user-actions > form { margin: 0; }
.user-disable-button,.user-reactivate-button { min-height: 2.65rem; padding: .55rem .75rem; border-radius: .3rem; font-weight: 700; cursor: pointer; }
.user-disable-button { border: 1px solid #e7aaa6; color: var(--danger); background: white; }
.user-reactivate-button { border: 1px solid #67ad8e; color: #146c49; background: #e7f6ef; opacity: 1; }
.user-reactivate-button:hover { border-color: #146c49; background: #d8f0e5; }
.role-pill { width: max-content; max-width: 100%; justify-self: start; padding: .25rem .5rem; border-radius: 999px; color: #005676; background: #e4f6fc; font-size: .75rem; font-weight: 700; }
.user-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.user-form-grid label, .user-field { display: block; margin-bottom: 1rem; font-weight: 700; }
.user-form-grid input, .user-field input, .user-field select { display: block; width: 100%; min-height: 3rem; margin-top: .4rem; padding: .65rem .75rem; border: 1px solid #aebfca; border-radius: .3rem; color: var(--sgdf-blue); background: white; }
.assignment-panel { display: grid; gap: .5rem; margin: 0 0 1rem; padding: 1rem; border: 1px solid var(--border); border-radius: .35rem; }
.assignment-panel[hidden] { display: none !important; }
.assignment-panel legend { padding: 0 .3rem; font-weight: 800; }
.users-help { color: var(--text-muted); font-size: .9rem; line-height: 1.45; }
.users-create .food-primary { width: 100%; }
.user-dialog { width: min(100% - 2rem, 42rem); max-height: calc(100vh - 2rem); padding: 0; border: 0; border-radius: .55rem; color: var(--sgdf-blue); background: transparent; }
.user-dialog::backdrop { background: rgb(0 30 50 / 58%); backdrop-filter: blur(2px); }
.user-dialog .users-card { max-height: calc(100vh - 2rem); overflow-y: auto; }
.user-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.user-dialog__header h2 { margin: 0; }
.user-dialog__header p { margin: .3rem 0 0; color: var(--text-muted); }
.user-dialog__header button { width: 2.5rem; height: 2.5rem; flex: 0 0 auto; border: 0; border-radius: 50%; color: var(--sgdf-blue); background: var(--surface-muted); font-size: 1.65rem; cursor: pointer; }
.user-status-dialog { width: min(100% - 2rem, 30rem); padding: 0; border: 0; border-radius: .55rem; color: var(--sgdf-blue); background: white; box-shadow: 0 24px 70px rgb(0 30 50 / 30%); }
.user-status-dialog::backdrop { background: rgb(0 30 50 / 58%); backdrop-filter: blur(2px); }
.user-status-dialog > section { padding: 2rem; text-align: center; }
.user-status-dialog h2 { margin: 0; font-family: var(--font-title); font-size: 1.45rem; }
.user-status-dialog p { color: var(--text-muted); line-height: 1.5; }
@media(max-width:70rem){.users-heading{align-items:stretch;flex-direction:column}.users-heading__actions{align-items:stretch;flex-direction:column}.users-heading__actions .food-primary{width:100%}.user-row{grid-template-columns:1fr auto;min-width:0}.user-row--head{display:none}.user-assignment,.user-group{grid-column:1}.user-actions{grid-column:2;grid-row:1 / span 3}.user-row form{grid-column:2;grid-row:1 / span 3}}
@media(max-width:38rem){.user-form-grid{grid-template-columns:1fr}.user-row{grid-template-columns:1fr}.user-row form,.user-assignment{grid-column:1;grid-row:auto}}

/* Module administratif — participants */
.participants-page{max-width:82rem;margin:0 auto;padding:2rem}.participants-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.participants-heading h1{margin:.15rem 0;font-family:var(--font-title);font-size:2rem}.participants-heading p{margin:.3rem 0 0;color:var(--text-muted)}.page-kicker{color:#087b67;font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.participant-groups{display:grid;gap:1.25rem}.participant-group-card{overflow:hidden;border:1px solid var(--border);border-radius:.65rem;background:white;box-shadow:0 3px 15px rgb(0 43 68 / 7%)}.participant-group-card>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.3rem;border-bottom:1px solid var(--border);background:#f8fafb}.participant-group-card h2{margin:0;font-family:var(--font-title);font-size:1.35rem}.participant-group-card>header span:not(.group-type){color:var(--text-muted);font-size:.88rem}.participant-section{padding:1rem 1.3rem}.participant-section+.participant-section{border-top:1px solid var(--border)}.participant-section__heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.participant-section__heading h3{margin:0;font-size:1.05rem}.participant-section__heading h3 span{display:inline-grid;min-width:1.5rem;height:1.5rem;margin-left:.35rem;place-items:center;border-radius:2rem;color:#087b67;background:#dff5ee;font-size:.78rem}.participant-section__heading button{padding:.5rem .75rem;border:1px solid var(--sgdf-blue);border-radius:.3rem;color:var(--sgdf-blue);background:white;font-weight:800;cursor:pointer}.participant-section__heading button:hover{color:white;background:var(--sgdf-blue)}.participant-empty{margin:.9rem 0 0;color:var(--text-muted);font-style:italic}.participant-list{display:grid;margin-top:.8rem;border-top:1px solid #edf1f3}.participant-row{display:grid;grid-template-columns:minmax(10rem,1.2fr) minmax(9rem,.8fr) minmax(13rem,1fr) auto;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid #edf1f3}.participant-row span{color:var(--text-muted);font-size:.9rem}.participant-row em{padding:.25rem .5rem;border-radius:2rem;color:#7a5000;background:#fff2ca;font-size:.78rem;font-style:normal;font-weight:800}
.participants-pdf-button{display:flex;align-items:center;gap:.5rem;min-height:2.8rem;padding:.6rem .9rem;border:1px solid var(--sgdf-blue);border-radius:.35rem;color:var(--sgdf-blue);background:white;font-weight:800;text-decoration:none}.participants-pdf-button:hover{color:white;background:var(--sgdf-blue)}.participants-pdf-button svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.export-page{width:100%;max-width:none;margin:0;padding:0;color:var(--sgdf-blue)}.export-heading{margin-bottom:1.75rem}.export-heading h1{margin:0;font-family:var(--font-title);font-size:clamp(2rem,4vw,2.75rem);font-weight:800;line-height:1.15}.export-grid{display:grid;gap:1.5rem}.export-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding:1.5rem 1.75rem;border:0;border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.export-card__icon{display:grid;width:3.2rem;height:3.2rem;place-items:center;border-radius:50%;color:white;background:var(--sgdf-blue);font-family:var(--font-title);font-size:1.25rem;font-weight:900}.export-card h2{margin:0 0 .3rem;font-family:var(--font-title);font-size:1.35rem;font-weight:800}.export-card p{margin:0 0 .45rem;color:var(--text-muted);line-height:1.45}.export-card small{color:#087b67;font-weight:850}.export-card .button{min-width:11rem}@media(max-width:60rem){.export-card{grid-template-columns:auto minmax(0,1fr)}}@media(max-width:48rem){.export-card{padding:1.25rem}.export-card .button{grid-column:1/-1;width:100%}}
.participant-dialog{width:min(100% - 2rem,52rem);max-height:calc(100vh - 2rem);padding:0;border:0;border-radius:.6rem;color:var(--sgdf-blue);background:white;box-shadow:0 24px 70px rgb(0 30 50 / 30%)}.participant-dialog::backdrop{background:rgb(0 30 50 / 58%);backdrop-filter:blur(2px)}.participant-dialog>section{padding:1.6rem;border-top:.35rem solid var(--sgdf-mint)}.participant-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.participant-dialog h2{margin:0;font-family:var(--font-title)}.participant-dialog header p{margin:.3rem 0 0;color:var(--text-muted)}.participant-dialog header button{width:2.5rem;height:2.5rem;border:0;border-radius:50%;color:var(--sgdf-blue);background:var(--surface-muted);font-size:1.6rem;cursor:pointer}.participant-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.participant-dialog label{display:block;font-weight:750}.participant-dialog label b{color:var(--danger)}.participant-dialog input,.participant-dialog textarea{display:block;width:100%;margin-top:.35rem;padding:.65rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);font:inherit}.participant-dialog input{min-height:2.8rem}.participant-dialog fieldset{margin:1rem 0;padding:1rem;border:1px solid var(--border);border-radius:.4rem}.participant-dialog legend,.field-label{padding:0 .3rem;font-weight:900}.qualification-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin:.5rem 0 1rem}.qualification-grid label{display:flex;align-items:center;gap:.45rem;padding:.55rem;border:1px solid var(--border);border-radius:.3rem}.qualification-grid input,.trainee-check input{width:auto;min-height:auto;margin:0}.trainee-check{display:flex!important;align-items:center;gap:.5rem;margin-top:1rem}.participant-dates{grid-template-columns:repeat(2,1fr)}.participant-dialog footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.participant-dialog footer button{min-height:3rem;padding:.65rem 1rem;border-radius:.3rem;font-weight:800;cursor:pointer}.cancel-participant{border:1px solid var(--border);color:var(--sgdf-blue);background:white}.save-participant{border:0;color:white;background:var(--sgdf-blue)}
.participant-dialog [hidden]{display:none!important}
@media(max-width:48rem){.participants-page{padding:1rem}.participants-heading,.participant-group-card>header,.participant-section__heading{align-items:stretch;flex-direction:column}.participant-form-grid,.qualification-grid{grid-template-columns:1fr}.participant-row{grid-template-columns:1fr}.participant-dialog>section{padding:1rem}}
.participant-emergency-grid{grid-template-columns:2fr 1fr}
.participant-row:last-child{border-bottom:0}
.participant-dates{margin-top:1rem}
.participant-personal-contact{grid-template-columns:1fr 1fr;margin-top:1rem}
.participant-dates small{display:block;margin-top:.3rem;color:var(--text-muted);font-size:.78rem;font-weight:500}
.participant-field-error{display:block;margin-top:.3rem;color:var(--danger);font-size:.8rem;font-weight:750}.participant-dialog input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 2px rgb(190 36 53 / 10%)}
@media(max-width:48rem){.participant-emergency-grid,.participant-personal-contact{grid-template-columns:1fr}}
.participant-row{grid-template-columns:minmax(10rem,1.2fr) minmax(9rem,.8fr) minmax(13rem,1fr) auto auto}.participant-actions{display:flex;justify-content:flex-end;gap:.35rem}.edit-participant-button,.delete-participant-button{display:grid;width:2.3rem;height:2.3rem;padding:0;place-items:center;border:1px solid var(--border);border-radius:.3rem;background:white;cursor:pointer}.edit-participant-button{color:var(--sgdf-blue)}.delete-participant-button{color:var(--danger)}.edit-participant-button:hover{border-color:var(--sgdf-blue);background:var(--surface-muted)}.delete-participant-button:hover{border-color:var(--danger);background:var(--danger-surface)}.participant-actions svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.delete-participant-dialog{width:min(100% - 2rem,30rem);padding:0;border:0;border-radius:.55rem;color:var(--sgdf-blue);background:white;box-shadow:0 24px 70px rgb(0 30 50 / 30%)}.delete-participant-dialog::backdrop{background:rgb(0 30 50 / 58%);backdrop-filter:blur(2px)}.delete-participant-dialog>section{padding:2rem;text-align:center}.delete-participant-dialog h2{margin:0;font-family:var(--font-title)}.delete-participant-dialog p{color:var(--text-muted);line-height:1.5}
.participant-edit-page{max-width:64rem;margin:0 auto;padding:2rem}.participant-back-link{display:inline-block;margin-bottom:1.25rem;color:var(--sgdf-blue);font-weight:800;text-decoration:none}.participant-edit-heading{margin-bottom:1.25rem}.participant-edit-heading h1{margin:.2rem 0;font-family:var(--font-title);font-size:2rem}.participant-edit-form{padding:1.5rem;border:1px solid var(--border);border-radius:.65rem;background:white;box-shadow:0 3px 15px rgb(0 43 68 / 7%)}.participant-edit-form fieldset{margin:0 0 1.2rem;padding:1.1rem;border:1px solid var(--border);border-radius:.4rem}.participant-edit-form legend,.participant-edit-form .field-label{padding:0 .35rem;font-weight:900}.participant-edit-form label{display:block;font-weight:750}.participant-edit-form label b{color:var(--danger)}.participant-edit-form input{display:block;width:100%;min-height:2.8rem;margin-top:.35rem;padding:.65rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);font:inherit}.participant-edit-form .qualification-grid input,.participant-edit-form .trainee-check input{width:auto;min-height:auto;margin:0}.participant-edit-form footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.participant-edit-form footer a,.participant-edit-form footer button{min-height:3rem;padding:.7rem 1rem;border-radius:.3rem;font-weight:800;text-decoration:none}.participant-edit-form footer a{border:1px solid var(--border);color:var(--sgdf-blue)}.participant-edit-form footer button{border:0;color:white;background:var(--sgdf-blue);cursor:pointer}@media(max-width:48rem){.participant-edit-page{padding:1rem}.participant-edit-form{padding:1rem}}

body.app-shell { padding-left: 16.5rem; }
body.app-shell.sidebar-collapsed { padding-left: 4.75rem; }
body.app-shell .page-content { max-width: none; margin: 0; padding: clamp(1.25rem, 4vw, 3.5rem); }
@media (max-width: 760px) { body.app-shell, body.app-shell.sidebar-collapsed { padding-left: 0; } body.app-shell .page-content { padding-top: 4.5rem; } .sidebar-collapsed .sidebar__stay { display:flex; } }

.presence-totals{display:flex;gap:.75rem;flex-wrap:wrap}.presence-total{display:flex;min-width:10rem;align-items:baseline;gap:.45rem;padding:.75rem 1rem;border:1px solid #b7dfd1;border-radius:.45rem;background:#effaf6}.presence-total strong{color:#087b67;font-family:var(--font-title);font-size:1.4rem}.presence-total span{font-weight:800}@media(max-width:34rem){.presence-total{width:100%}}

/* Alignement définitif du module Administratif sur les pages Intendance. */
.participants-page,
.presence-page {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    color: var(--sgdf-blue);
}

.participants-heading,
.presence-page > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.75rem;
}

.participants-heading h1,
.presence-page > header h1 {
    margin: 0;
    font-family: var(--font-title);
    font-size: clamp(2rem, 4vw, 2.75rem);
    font-weight: 800;
    line-height: 1.15;
}

@media (max-width: 60rem) {
    .participants-heading,
    .presence-page > header {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Suivi et gestion des documents des participants */
.participant-row{grid-template-columns:minmax(12rem,1.5fr) repeat(3,minmax(7.5rem,.75fr)) 5rem}.participant-row--head{padding:.55rem 0;color:var(--text-muted);font-size:.75rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.participant-row--head>span:nth-child(2),.participant-row--head>span:nth-child(3),.participant-row--head>span:nth-child(4),.document-status{justify-self:center;text-align:center}.participant-identity{display:grid;gap:.2rem}.participant-identity small{color:var(--text-muted);font-size:.78rem}.document-status{display:inline-flex;width:max-content;padding:.28rem .55rem;border-radius:2rem;font-size:.78rem!important;font-weight:850}.document-status--ok{color:#08705f!important;background:#dff5ee}.document-status--missing{color:#9b3b19!important;background:#fff0e8}.document-status--na{color:#66747d!important;background:#edf1f3}.participant-documents{min-width:0;margin-top:1.5rem;padding:1.5rem;border:1px solid var(--border);border-top:.35rem solid var(--sgdf-mint);border-radius:.65rem;background:white;box-shadow:0 3px 15px rgb(0 43 68 / 7%)}.participant-documents>header h2{margin:0;font-family:var(--font-title)}.participant-documents>header p{margin:.35rem 0 0;color:var(--text-muted)}.document-categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.document-category{min-width:0;padding:1rem;border:1px solid var(--border);border-radius:.45rem}.document-category__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.document-category h3{margin:0;font-size:1rem}.document-category__heading span{color:var(--text-muted);font-size:.75rem}.document-empty{color:var(--text-muted);font-size:.85rem;font-style:italic}.document-category ul{display:grid;min-width:0;gap:.5rem;margin:.8rem 0;padding:0;list-style:none}.document-category li{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem;background:var(--surface-muted);font-size:.82rem}.document-category li a{min-width:0;overflow:hidden;color:var(--sgdf-blue);font-weight:750;text-overflow:ellipsis;white-space:nowrap}.document-category li form{flex:0 0 auto}.document-category li button{border:0;color:var(--danger);background:transparent;font-size:.75rem;font-weight:800;cursor:pointer}.document-upload{display:grid;min-width:0;gap:.65rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.document-upload label{min-width:0;overflow:hidden;font-size:.82rem;font-weight:800}.document-upload input{display:block;width:100%;min-width:0;max-width:100%;margin-top:.4rem;font-size:.8rem}.document-upload button{padding:.55rem;border:0;border-radius:.3rem;color:white;background:var(--sgdf-blue);font-weight:800;cursor:pointer}@media(max-width:70rem){.participant-row{grid-template-columns:minmax(10rem,1.3fr) repeat(3,minmax(6rem,.7fr)) 5rem}.document-categories{grid-template-columns:1fr}}@media(max-width:48rem){.participant-row--head{display:none}.participant-row{grid-template-columns:1fr 1fr}.participant-identity,.participant-actions{grid-column:1/-1}.participant-actions{justify-content:flex-start}.document-status{width:100%;justify-content:center}}

/* Situations particulières */
.situations-page,.situation-form-page,.situation-detail-page,.confirmation-page{max-width:1180px;margin:0 auto;padding:2.5rem}
.situations-page{width:100%;max-width:none;margin:0;padding:0;color:var(--sgdf-blue)}
.situation-form-page{width:100%;max-width:none;margin:0;padding:0;color:var(--sgdf-blue)}
.situations-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}.situations-heading h1{margin:.25rem 0;font-family:var(--font-title);font-size:clamp(1.8rem,4vw,2.6rem)}.situations-heading p{margin:.25rem 0;color:var(--text-muted)}.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.back-link{display:inline-block;margin-bottom:.75rem;color:var(--text-muted);font-weight:700;text-decoration:none}.danger-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:.3rem;padding:.72rem 1rem;color:#fff;background:var(--danger);font-weight:800;text-decoration:none;cursor:pointer}.danger-link{color:var(--danger)!important}.heading-actions,.row-actions,.form-actions{display:flex;align-items:center;gap:1rem}.heading-actions a,.row-actions a{font-weight:700;text-decoration:none;color:var(--sgdf-blue)}
.situation-edit-heading{margin-bottom:2rem}.situation-edit-heading>.back-link{margin-bottom:.75rem}.situation-edit-heading>div{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem}.situation-edit-heading h1{margin:0;font-family:var(--font-title);font-size:clamp(1.8rem,4vw,2.6rem)}
.situations-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:.45rem;background:#fff}.situations-table{width:100%;min-width:54rem;border-collapse:collapse;table-layout:fixed}.situations-table .situation-col-date{width:14%}.situations-table .situation-col-label{width:31%}.situations-table .situation-col-people{width:12%}.situations-table .situation-col-tasks{width:25%}.situations-table .situation-col-actions{width:18%}.situations-table th,.situations-table td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.situations-table th{background:var(--surface-muted);color:var(--text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.situations-table tbody tr:last-child td{border-bottom:0}.situations-table td:nth-child(3),.situations-table th:nth-child(3){text-align:center}.situations-table td a{color:var(--sgdf-blue);text-decoration:none}.situations-table td:nth-child(2){overflow-wrap:anywhere}.actions-column{text-align:right!important}.situations-table .row-actions{display:table-cell;text-align:right;white-space:nowrap}.situations-table .row-actions a{display:inline-block}.situations-table .row-actions a+a{margin-left:1rem}.task-summary{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:.45rem}.task-dot{display:inline-flex;align-items:center;justify-content:center;min-width:2.35rem;height:2.35rem;padding:0 .5rem;border-radius:999px;font-size:.72rem;font-weight:800;color:#fff}.task-dot--late{background:var(--danger)}.task-dot--todo{background:#f79009}.task-dot--done{background:#039855}.task-dot--na{background:#98a2b3}
.situations-card{overflow:hidden;border-top:.35rem solid var(--sgdf-mint)}.situations-row{grid-template-columns:minmax(7rem,.65fr) minmax(14rem,1.6fr) minmax(6rem,.55fr) minmax(13rem,1.15fr) 6.5rem;min-width:52rem}.situations-row--head{color:var(--text-muted);font-size:.82rem;font-weight:700}.situations-row--head>span:nth-child(3),.situation-people{text-align:center}.situation-name{min-width:0;overflow-wrap:anywhere;color:var(--sgdf-blue);text-decoration:none}.situation-actions{gap:.45rem}.situation-actions .action-icon-button{display:grid;width:2.65rem;height:2.65rem;place-items:center;padding:0;border-color:var(--sgdf-blue);color:var(--sgdf-blue);background:white}.situation-actions .action-icon-button:hover{border-color:var(--sgdf-blue);color:white;background:var(--sgdf-blue)}.situation-actions .action-icon-button--danger{border-color:#e7aaa6;color:var(--danger);background:white}.situation-actions .action-icon-button--danger:hover{border-color:var(--danger);color:white;background:var(--danger)}.situations-card .foods-empty strong{display:block;margin-bottom:.35rem;color:var(--sgdf-blue);font-family:var(--font-title);font-size:1.35rem}.situations-card .foods-empty p{margin:0}
.situation-form,.form-card,.task-card,.confirmation-card{background:#fff;border:1px solid var(--border);border-radius:.45rem}.situation-form{background:transparent;border:0}.form-card{padding:1.5rem 1.75rem;margin-bottom:1.25rem;border-top:.35rem solid var(--sgdf-mint);box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.form-card h2,.form-card h3{margin-top:0;font-family:var(--font-title)}.form-help{color:var(--text-muted)}.general-information-grid{display:grid;gap:1rem;margin-top:1.15rem}.general-information-grid label{display:grid;grid-template-columns:8rem minmax(0,1fr);align-items:center;gap:1rem;color:var(--sgdf-blue);font-weight:700}.general-information-grid input,.task-edit-form input,.task-edit-form select,.task-edit-form textarea,.add-task-form input,.add-task-form select{width:100%;min-width:0;min-height:3rem;box-sizing:border-box;padding:.6rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:white;font:inherit}.task-edit-form label,.add-task-form label{display:grid;gap:.4rem;color:var(--sgdf-blue);font-weight:700}.task-edit-form textarea{min-height:5rem;resize:vertical}.general-information-grid input:focus,.task-edit-form input:focus,.task-edit-form select:focus,.task-edit-form textarea:focus,.add-task-form input:focus,.add-task-form select:focus{border-color:var(--sgdf-blue-light);outline:0;box-shadow:0 0 0 3px rgb(0 119 179 / 18%)}.situation-form b{color:var(--danger)}.situation-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:.65rem}.situation-checks label{display:flex;min-height:3rem;box-sizing:border-box;align-items:center;gap:.7rem;padding:.85rem;border:1px solid var(--border);border-radius:.35rem;background:var(--surface-muted);cursor:pointer}.situation-checks label:has(input:checked){border-color:var(--sgdf-blue-light);background:#e7f2f8}.situation-checks input{width:1.1rem;height:1.1rem;flex:0 0 auto;margin:0}.participant-situation-add{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem}.participant-situation-add label{min-width:0;color:var(--sgdf-blue);font-weight:800}.participant-situation-add .food-secondary{min-height:3rem}.participant-situation-empty{margin:1rem 0 0;color:var(--text-muted);font-style:italic}.participant-situation-empty[hidden]{display:none}.participant-situation-list{display:grid;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}.participant-situation-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:.35rem;background:var(--surface-muted)}.participant-situation-list li span{min-width:0}.participant-situation-list li strong,.participant-situation-list li small{display:block}.participant-situation-list li small{margin-top:.2rem;color:var(--text-muted)}.participant-situation-list li button{border:0;color:var(--danger);background:transparent;font-weight:800;cursor:pointer}.form-actions{justify-content:flex-end;margin-top:1rem}.form-actions>a{color:var(--text-muted);text-decoration:none;font-weight:700}
.situation-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}.tag-list li{padding:.4rem .65rem;border-radius:999px;background:#eef4ff;color:#3538cd;font-size:.85rem}.people-list{padding:0;list-style:none}.people-list li{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #eaecf0}.people-list small{color:#667085}.tasks-section{margin-top:1rem}.task-cards{display:grid;gap:1rem}.task-card{padding:1.25rem;border-left:5px solid #f79009}.task-card--realise{border-left-color:#039855}.task-card--non_requis{border-left-color:#98a2b3}.task-card--late{border-left-color:#d92d20}.task-card>header{display:flex;justify-content:space-between;gap:1rem}.task-card h3{margin:.25rem 0 1rem}.task-origin{font-size:.72rem;color:#667085;text-transform:uppercase;font-weight:700}.task-status{font-weight:800}.task-edit-form textarea{width:100%;box-sizing:border-box}.task-edit-form footer{text-align:right}.task-edit-form button{padding:.55rem .8rem}.task-delete-form{text-align:right;margin-top:.5rem}.task-delete-form button{border:0;background:none;font-weight:700;cursor:pointer}.add-task-form{margin-top:1.5rem}.add-task-form__fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:1.25rem}.add-task-form__fields>[hidden]{display:none!important}.add-task-form__fields:has(>[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}.add-task-form__actions{display:flex;justify-content:flex-end;margin-top:1.25rem}.empty-inline{padding:1.25rem;border-radius:.7rem;background:#f9fafb;color:#667085}
.task-edit-form input:disabled{color:var(--text-muted);background:var(--surface-muted);cursor:not-allowed}.task-edit-form label small{color:var(--text-muted);font-weight:400}
.situation-edit-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(21rem,.75fr);align-items:start;gap:1.5rem}.situation-edit-main{min-width:0}.situation-edit-todo{position:sticky;top:1.25rem;min-width:0}.situation-edit-todo .tasks-section{margin:0;padding:1.25rem;border:1px solid var(--border);border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.todo-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.todo-heading h2{margin:0;font-family:var(--font-title)}.todo-heading p{margin:.2rem 0 0;color:var(--text-muted);font-size:.85rem}.todo-heading>span{display:grid;min-width:2rem;height:2rem;place-items:center;border-radius:99px;color:#08705f;background:#dff5ee;font-weight:800}.situation-edit-todo .task-cards{gap:.65rem}.situation-edit-todo .task-card{padding:0;overflow:hidden;border:1px solid var(--border);border-left:.3rem solid #efbd55;border-radius:.35rem;box-shadow:none}.situation-edit-todo .task-card--late{border-left-color:var(--danger)}.situation-edit-todo .task-card--realise{border-left-color:#48b994}.situation-edit-todo .task-card--non_requis{border-left-color:#b7c1c7}.task-card summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.85rem;cursor:pointer;list-style:none}.task-card summary::-webkit-details-marker{display:none}.task-card summary i{width:.65rem;height:.65rem;border-radius:50%;background:#efbd55}.task-card--late summary i{background:var(--danger)}.task-card--realise summary i{background:#48b994}.task-card--non_requis summary i{background:#b7c1c7}.task-card summary span{min-width:0}.task-card summary strong,.task-card summary small{display:block}.task-card summary strong{font-size:.9rem}.task-card summary small{margin-top:.2rem;color:var(--text-muted);font-size:.76rem}.task-card summary b{font-size:.72rem;white-space:nowrap}.task-card[open] summary{background:#eaf5fa}.task-card__editor{padding:1rem;border-top:1px solid var(--border)}.task-edit-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.situation-edit-todo .task-edit-form label{font-size:.82rem}.situation-edit-todo .task-edit-form input,.situation-edit-todo .task-edit-form select{min-height:2.65rem}.situation-edit-todo .task-edit-form footer{margin-top:.75rem}.situation-edit-todo .task-edit-form footer button{border:0;border-radius:.3rem;color:white;background:var(--sgdf-blue);font-weight:800;cursor:pointer}.situation-edit-todo .add-task-form{margin:1rem 0 0;border:1px dashed var(--sgdf-blue-light);border-radius:.35rem}.situation-edit-todo .add-task-form>summary{padding:.8rem;color:var(--sgdf-blue);font-weight:800;text-align:center;cursor:pointer;list-style:none}.situation-edit-todo .add-task-form>summary::-webkit-details-marker{display:none}.situation-edit-todo .add-task-form>form{padding:1rem;border-top:1px solid var(--border)}.situation-edit-todo .add-task-form__fields,.situation-edit-todo .add-task-form__fields:has(>[hidden]){grid-template-columns:1fr;gap:.75rem}.situation-edit-todo .add-task-form__actions .food-primary{width:100%}
.confirmation-page{display:grid;min-height:70vh;place-items:center}.confirmation-card{max-width:560px;padding:2rem;text-align:center}.confirmation-icon{display:grid;place-items:center;width:3rem;height:3rem;margin:0 auto 1rem;border-radius:50%;background:#fee4e2;color:#b42318;font-size:1.5rem;font-weight:800}.confirmation-card .form-actions{justify-content:center}
@media (max-width:980px){.situation-edit-layout{grid-template-columns:1fr}.situation-edit-todo{position:static}}
@media (max-width:760px){.situations-page,.situation-form-page{padding:0}.situation-detail-page,.confirmation-page{padding:1.25rem}.situations-heading{align-items:stretch;flex-direction:column}.situation-edit-heading>div{align-items:stretch;flex-direction:column}.general-information-grid label,.situation-detail-grid,.add-task-form__fields,.add-task-form__fields:has(>[hidden]),.participant-situation-add{grid-template-columns:1fr}.situations-table th:nth-child(3),.situations-table td:nth-child(3){display:none}.task-card>header{flex-direction:column}.heading-actions{width:100%;justify-content:space-between}.add-task-form__actions .food-primary,.participant-situation-add .food-secondary{width:100%}}

/* Gestion des séjours */
.stays-page{color:var(--sgdf-blue)}
.stays-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:1.75rem}
.stays-heading h1,.stays-list-card h2,.stays-list-card .management-card h2{margin:0;font-family:var(--font-title);font-weight:800}
.stays-heading h1{font-size:clamp(2rem,4vw,2.75rem)}
.stays-list-card{overflow:hidden;border-radius:.45rem;background:white;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}
.stays-card-heading{padding:1.5rem 1.75rem;border-top:.35rem solid var(--sgdf-mint);border-bottom:1px solid var(--border)}
.stays-card-heading h2{font-size:1.45rem}
.stays-card-heading p{margin:.25rem 0 0;color:var(--text-muted)}
.stays-list-card .management-list{gap:0;padding:0 1.75rem}
.stays-list-card .management-card{padding:1.35rem 0;border:0;border-radius:0;box-shadow:none}
.stays-list-card .management-card+.management-card{border-top:1px solid var(--border)}
.stays-list-card .management-card--inactive{opacity:1}
.stays-list-card .management-card--inactive .management-card__main{opacity:1}
.stays-list-card .management-card h2{margin:.4rem 0;font-size:1.2rem}
.stays-list-card .stay-title-link{color:inherit;text-decoration:none}
.stays-list-card .stay-title-link:hover{text-decoration:underline}
.stays-list-card .module-pill--off{color:var(--text-muted);background:#e7ecef;opacity:1}
.stays-list-card .status-pill{font-size:.75rem}
.stays-list-card .module-pills{margin-top:.65rem}
@media(max-width:48rem){.stays-heading{align-items:stretch;flex-direction:column}.stays-heading .food-add-button{display:none!important}.stays-card-heading{padding-inline:1.25rem}.stays-list-card .management-list{padding-inline:1.25rem}.stays-list-card .management-card{cursor:pointer}.stays-list-card .management-card__actions{width:100%;flex-wrap:wrap}.stays-list-card .edit-group-button,.stays-list-card .stay-status-form{display:none}.stays-list-card .stay-selection-form{width:100%;flex:0 0 100%}.stays-list-card .stay-selection-form .button{width:100%}}
.stay-delete-button__label{display:none}
@media(max-width:48rem){
    .stays-list-card .management-card__actions{display:grid;grid-template-columns:1fr 1fr}
    .stays-list-card .stay-selection-form{grid-column:1/-1}
    .stays-list-card .stay-duplicate-button,.stays-list-card .stay-delete-button,.stays-list-card .stay-status-form{display:flex;width:100%;min-height:2.8rem}
    .stays-list-card .stay-delete-button{align-items:center;justify-content:center;gap:.5rem}
    .stay-delete-button__label{display:inline}
    .stay-delete-dialog .stay-status-form{display:block}
    .stay-delete-dialog .group-dialog__actions{align-items:stretch;flex-direction:column-reverse}
    .stay-delete-dialog .group-dialog__actions button{width:100%}
}
.movement-lot {
    grid-column: 2;
    margin-top: 1rem;
}

.movement-supplier:not([hidden]) + [data-line-packagings-container] {
    margin-top: 1rem;
}

.movement-lot > label > span {
    display: block;
    font-weight: 700;
    margin-bottom: .35rem;
}

.movement-lot-input {
    display: flex;
    gap: .5rem;
}

.movement-lot-input input {
    flex: 1;
    width: 100%;
    min-width: 0;
    min-height: 3rem;
    padding: .6rem .75rem;
    border: 1px solid #aebfca;
    border-radius: .3rem;
    color: var(--sgdf-blue);
    background: white;
    font: inherit;
}

.movement-lot-input input:focus {
    border-color: var(--sgdf-blue-light);
    outline: 0;
    box-shadow: 0 0 0 3px rgb(0 119 179 / 16%);
}

@media (min-width: 641px) {
    .movement-lot-input .food-secondary {
        display: none;
    }

    .movement-lot [data-line-lot-status] {
        display: none;
    }
}

@media (max-width: 640px) {
    .movement-lot-input {
        align-items: stretch;
        flex-direction: column;
    }
}

.entity-form-page{width:min(100%,52rem);margin:0 auto}.entity-form-heading{margin-bottom:1.5rem}.entity-form-heading>a,.participant-back-link{color:var(--sgdf-blue);font-weight:750;text-decoration:none}.entity-form-heading h1{margin:.75rem 0 .25rem;font-family:var(--font-title);font-size:clamp(2rem,4vw,2.75rem)}.entity-form-heading p{margin:0;color:var(--text-muted)}.entity-form-card{display:grid;gap:1.25rem;padding:1.75rem;border-top:.35rem solid var(--sgdf-mint);border-radius:.5rem;background:#fff;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.entity-form-card label{display:grid;gap:.4rem;font-weight:750}.entity-form-card textarea{width:100%;padding:.75rem;border:1px solid #aebfca;border-radius:.3rem;font:inherit}.entity-form-actions{display:flex;justify-content:flex-end;gap:.75rem}.presence-edit-form fieldset{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:.35rem}.presence-edit-form legend{font-weight:850}.presence-edit-form fieldset label{display:flex;align-items:center}.presence-edit-form fieldset input{width:auto}
.entity-form-card>form{display:grid;gap:1.25rem}
.food-form-card>label,.food-form-card form>label,.uniform-food-form label{font-weight:700}.food-form-card textarea,.food-form-card input:not([type=checkbox]):not([type=radio]),.food-form-card select,.uniform-food-form input:not([type=checkbox]):not([type=radio]),.uniform-food-form select,.uniform-food-form textarea{width:100%;min-height:3rem;margin-top:.4rem;padding:.6rem .75rem;border:1px solid #aebfca;border-radius:.3rem;color:var(--sgdf-blue);background:#fff;font:inherit}.uniform-food-form{display:grid;gap:1.25rem}.uniform-food-form>fieldset{margin:0;padding:1.5rem 1.75rem;border:0;border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:#fff;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}.uniform-food-form>fieldset legend{padding:0;font-family:var(--font-title);font-size:1.4rem;font-weight:800}.presence-edit-form{display:grid;gap:1.25rem}.food-add-button{white-space:nowrap}
@media(max-width:48rem){.entity-form-page{width:100%}.entity-form-card{padding:1.25rem;border-radius:0}.entity-form-actions{align-items:stretch;flex-direction:column}.entity-form-actions .button{justify-content:center;width:100%}}

/* Les fournisseurs reprennent strictement la liste des mouvements de stock. */
.suppliers-list-card{border-top:.35rem solid var(--sgdf-mint)}
.supplier-list-table{width:100%;overflow-x:auto;border-top:0}
.supplier-list-table .supplier-row{font-size:.9rem}
.supplier-list-table .supplier-row--head{font-size:.8rem}
.supplier-list-table .supplier-row h3{font-size:.9rem;line-height:1.35}
.supplier-list-table .supplier-contact span,.supplier-list-table .supplier-contact a{font-size:.9rem}
.supplier-address-field{grid-column:1/-1}.supplier-address-field textarea{min-height:7rem;resize:vertical}
.object-list-card{overflow:hidden;border-top:.35rem solid var(--sgdf-mint);border-radius:.45rem;background:#fff;box-shadow:0 8px 28px rgb(0 58 93 / 9%)}
.object-table-card{padding:0!important}.object-table{width:100%;overflow-x:auto}.object-table-row{box-sizing:border-box;width:100%;padding:1rem 1.75rem;border-bottom:1px solid var(--border);font-size:.9rem}.object-table-row--head{color:var(--text-muted);font-size:.8rem;font-weight:700}.object-table-row:last-child{border-bottom:0}
.object-list-summary{display:flex;min-height:4.25rem;align-items:center;justify-content:space-between;gap:1.25rem;padding:1rem 1.75rem;border-bottom:1px solid var(--border)}.object-list-summary p{margin:0;color:var(--text-muted);font-size:.9rem;font-weight:700}.object-detail-row{border-radius:0!important;box-shadow:none!important}
@media(max-width:48rem){
    .suppliers-page{width:100vw;max-width:100vw;margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);margin-right:0}
    .suppliers-heading{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .suppliers-list-card{border-radius:0;box-shadow:none}
    .supplier-list-table{overflow:hidden}
    .supplier-row,.supplier-row--head{display:grid;grid-template-columns:minmax(0,1fr) minmax(7rem,.65fr);min-width:0;gap:.75rem;padding:1rem clamp(1.25rem,4vw,3.5rem)}
    .supplier-row--head{background:var(--surface-muted)}
    .supplier-row--head>:nth-child(3),.supplier-row--head>:nth-child(4),.supplier-row>.supplier-contact:nth-of-type(3),.supplier-row>.supplier-actions{display:none}
    .supplier-row__identity,.supplier-contact{grid-column:auto}
    .supplier-contact{text-align:right}
    .object-list-card{border-radius:0;box-shadow:none}.object-table{overflow:hidden}.object-table-row{padding-inline:clamp(1.25rem,4vw,3.5rem)}.object-list-summary{padding-inline:clamp(1.25rem,4vw,3.5rem)}
}

/* Socle mobile commun aux pages de listes */
@media(max-width:48rem){
    .groups-page,.suppliers-page,.users-page,.stays-page,.participants-page,.situations-page{
        width:100vw;
        max-width:100vw;
        margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1);
        margin-right:0;
        padding:0;
    }
    .groups-heading,.suppliers-heading,.users-heading,.stays-heading,.participants-heading,.situations-page>.foods-heading{
        padding-inline:clamp(1.25rem,4vw,3.5rem);
    }
    .groups-list-card,.suppliers-list-card,.users-card,.stays-list-card,.participant-group-card,.situations-card{
        border-radius:0;
        box-shadow:none;
    }
    .groups-list,.stays-list-card .management-list{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .groups-card-heading,.suppliers-card-heading,.stays-card-heading{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .inactive-groups-toggle,.inactive-suppliers-toggle{display:none}

    .mobile-floating-add{
        position:fixed!important;
        z-index:30;
        right:max(1.25rem,env(safe-area-inset-right));
        bottom:max(1.25rem,env(safe-area-inset-bottom));
        display:grid!important;
        width:3.75rem!important;
        height:3.75rem!important;
        min-height:3.75rem!important;
        place-items:center;
        padding:0!important;
        border:0;
        border-radius:50%!important;
        color:white;
        background:var(--sgdf-blue);
        box-shadow:0 8px 24px rgb(0 58 93 / 28%);
    }
    .mobile-floating-add>span[aria-hidden="true"]{font-size:2rem;font-weight:400;line-height:1}
    .mobile-floating-add__label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

    .supplier-row{grid-template-columns:minmax(0,1fr) auto;min-width:0;padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .supplier-contact:nth-of-type(3){display:none}
    .supplier-actions{grid-row:1 / span 2}

    .users-card{padding:1.25rem clamp(1.25rem,4vw,3.5rem)}
    .user-row{grid-template-columns:minmax(0,1fr) auto}
    .user-assignment,.user-group{display:none!important}
    .user-actions{grid-row:1 / span 2}

    .stays-list-card .management-card{align-items:flex-start}
    .stays-list-card .module-pills{flex-wrap:wrap}

    .participant-groups{gap:1rem}
    .participant-group-card{border-inline:0}
    .participant-group-card>header,.participant-section{padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .participant-section__heading button{width:100%}
    .participant-section .participant-list{width:auto;margin-right:calc(clamp(1.25rem,4vw,3.5rem)*-1);margin-left:calc(clamp(1.25rem,4vw,3.5rem)*-1)}
    .participant-list .foods-swipe-row{border:0;background:#fff}
    .participant-list .foods-swipe-row .participant-row{border:0;outline:0;box-shadow:none;padding-inline:clamp(1.25rem,4vw,3.5rem)}
    .participant-list .foods-swipe-action{background:var(--danger)}
    .participant-edit-actions{align-items:stretch;flex-direction:column}
    .participant-edit-actions a,.participant-edit-actions button{display:grid;width:100%;place-items:center;text-align:center}

    .situations-row{grid-template-columns:minmax(6.5rem,.65fr) minmax(0,1.35fr);min-width:0}
    .situations-row>:nth-child(n+3){display:none}
    .situations-row--head>:nth-child(2){text-align:right}
    .situations-row .situation-name{text-align:right}
}

.participant-section:has(.participant-list){padding-bottom:0}

.participant-edit-form.uniform-food-form{
    padding:0;
    border:0;
    background:transparent;
    box-shadow:none;
}
.participant-edit-form.uniform-food-form>fieldset{
    padding:1.5rem;
    border:1px solid var(--border);
    border-top:.35rem solid var(--sgdf-mint);
    border-radius:.65rem;
    background:#fff;
    box-shadow:0 3px 15px rgb(0 43 68 / 7%);
}
.participant-edit-form.uniform-food-form>fieldset>legend{
    float:left;
    width:100%;
    margin:0 0 1.25rem;
    padding:0;
    font-family:var(--font-title);
    font-size:1.4rem;
    font-weight:800;
}
.participant-edit-form.uniform-food-form>fieldset>legend+*{clear:both}
.participant-edit-actions{align-items:center;margin-top:1.25rem;padding:0}
.participant-edit-actions a,.participant-edit-actions button{min-height:3rem;padding:.7rem 1rem;border-radius:.3rem;font-weight:800;text-decoration:none}
.participant-edit-actions a{border:1px solid var(--border);color:var(--sgdf-blue);background:#fff}
.participant-edit-actions button{border:0;color:#fff;background:var(--sgdf-blue);cursor:pointer}

@media(min-width:48.01rem){
    .participant-section .participant-list{
        width:auto;
        margin-right:-1.3rem;
        margin-left:-1.3rem;
    }
    .participant-list .participant-row{
        padding-right:1.3rem;
        padding-left:1.3rem;
    }
}

@media(max-width:48rem){
    .foods-swipe-row .shared-list-row{position:relative;z-index:1;background:#fff;touch-action:pan-y;transition:transform 180ms ease-out;user-select:none}
    .shared-list-table--suppliers .shared-list-row{grid-template-columns:minmax(0,1fr) minmax(7rem,.65fr)}
    .shared-list-table--suppliers .shared-list-row>:nth-child(n+3){display:none}
    .recipes-row{grid-template-columns:minmax(0,1fr) auto;min-width:0}
    .recipes-row>:nth-child(3),.recipes-row>:nth-child(4){display:none}
    .situations-row{grid-template-columns:minmax(5.5rem,.65fr) minmax(0,1.25fr) minmax(7rem,.8fr);min-width:0}
    .situations-row>:nth-child(3),.situations-row>:nth-child(5){display:none}
    .situations-row>:nth-child(4){display:flex;justify-content:flex-end}
}

@media(max-width:48rem){
    .object-detail-list-card .groups-list,
    .object-detail-list-card .management-list{padding-inline:0}
    .object-detail-list-card .group-row,
    .object-detail-list-card .management-card{padding-inline:clamp(1.25rem,4vw,3.5rem)}
}

/* Priorité finale : les lignes du registre couvrent toute la carte. */
.presence-group{padding:0}
.presence-group>.presence-daily-list{margin:0;padding:0;border-top:0}
.presence-group .presence-daily-row{padding:.85rem 1.75rem}
.presence-group>p{margin:0;padding:1.25rem 1.75rem}
@media(max-width:60rem){
    .presence-group .presence-daily-row,.presence-group>p{padding-inline:1.25rem}
}

/* Les listes gardent une graisse normale, même dans un libellé en gras. */
:root select,
:root select option,
:root .searchable-select__trigger,
:root .searchable-select__search,
:root .searchable-select__option{
    font-weight:400;
}
.menu-grids-row{grid-template-columns:minmax(14rem,1fr) 6rem;min-width:20rem;transition:background-color 150ms ease}.menu-grids-row:hover{background:var(--surface-muted)}.menu-grids-row__link{min-width:0;color:inherit;text-decoration:none}.menu-grids-row__link:focus-visible{outline:2px solid var(--sgdf-blue-light);outline-offset:3px}.menu-grids-row .food-actions{justify-content:flex-end}.menu-grids-row .food-actions .menu-grid-duplicate-button{border-color:var(--sgdf-blue);color:var(--sgdf-blue);background:#fff}.menu-grids-row .food-actions .menu-grid-duplicate-button:hover{color:#fff;background:var(--sgdf-blue)}.menus-heading>div p{margin:.25rem 0 0;color:#627783}@media(max-width:48rem){.menu-grids-row{grid-template-columns:minmax(0,1fr) auto;min-width:0}.menu-grids-row .food-actions{display:flex}.menu-grids-card .foods-row{padding-inline:1.25rem}}

.home-panel__icon svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.home-attendance-table{margin-top:1.15rem;overflow-x:auto;border-top:1px solid var(--border)}
.home-attendance-row{display:grid;grid-template-columns:minmax(11rem,1.4fr) repeat(3,minmax(4rem,.45fr)) repeat(3,minmax(6.5rem,.7fr));min-width:52rem;align-items:center;gap:.65rem;padding:.78rem .25rem;border-bottom:1px solid var(--border)}
.home-attendance-row>*:not(:first-child){text-align:right}
.home-attendance-row>a{color:var(--sgdf-blue);font-weight:800;text-decoration:none}
.home-attendance-row>a:hover{text-decoration:underline}
.home-attendance-row--head{padding-block:.6rem;color:var(--text-muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.home-attendance-row--total{border-bottom:0;background:var(--surface-muted)}
@media(max-width:42rem){.home-attendance-table{margin-inline:-1.15rem}.home-attendance-row{padding-inline:1.15rem}}

/* Correctifs de rythme visuel du tableau de bord et des formulaires. */
.home-dashboard{display:grid;min-width:0;gap:1.75rem}
.home-dashboard>.home-kpis{margin-top:0}
.home-kpis--summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.home-dashboard>.home-panel{min-width:0;margin:0}
.home-panel__header>div,.home-panel__header>div>div{min-width:0}
.home-dashboard__heading{margin:0 0 .25rem}
.home-dashboard__heading .eyebrow{display:block;margin-bottom:.65rem}
.home-dashboard__heading h1{font-size:clamp(2.2rem,4vw,3rem)}
.home-dashboard__heading p{margin-top:.75rem}

.group-form-grid{display:grid;gap:1.25rem;margin-top:1.25rem}
.group-form-field{display:grid;gap:.45rem;min-width:0}
.group-form-field label{margin:0}
.group-form-field input,
.group-form-field select,
.group-form-field textarea{margin-top:0}

.users-page .foods-row{grid-template-columns:minmax(12rem,1.45fr) minmax(7rem,.7fr) minmax(9rem,1fr) 5rem 5.5rem;min-width:44rem}
.users-page .food-name{display:grid;min-width:0;justify-items:start;gap:.2rem}
.users-page .food-name small{max-width:100%;overflow-wrap:anywhere}
.food-actions .action-icon-button svg{width:1.25rem;height:1.25rem}

@media(max-width:48rem){
    .home-dashboard{gap:1.25rem}
    .home-kpis--summary{grid-template-columns:1fr}
    .home-dashboard__heading{gap:1.25rem}
    .users-page .foods-row{grid-template-columns:minmax(0,1fr) auto;min-width:0}
    .users-page .foods-row>:nth-child(2),
    .users-page .foods-row>:nth-child(3),
    .users-page .foods-row>:nth-child(4){display:none}
    .users-page .foods-row>:nth-child(5){display:flex}
}
