
:root{--ink:#183d46;--muted:#64777c;--teal:#226477;--teal-light:#e7f2f3;--bg:#f4f6f5;--line:#dce5e3;--yellow:#ffdb77;--red:#a23830;--radius:18px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d5941f;outline-offset:3px}a{color:var(--teal)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,4vw,38px);line-height:1.15;letter-spacing:-1px;margin-bottom:12px}h2{font-size:23px;line-height:1.25;letter-spacing:-.5px}h3{font-size:17px;margin-bottom:6px}.muted,small{color:var(--muted)}small{font-size:13px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--teal)}.top{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1180px)/2));gap:16px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:20px;white-space:nowrap}.mark{background:var(--yellow);color:var(--ink);border-radius:12px;display:grid;place-items:center;width:43px;height:43px;font-size:21px;font-weight:900;letter-spacing:-2px}.wrap{max-width:1180px;margin:auto;padding:28px 24px 100px}.bar,.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wraprow{flex-wrap:wrap}.grow{flex:1;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 18px;min-height:46px;border-radius:12px;background:var(--teal);color:#fff;font-weight:700;text-decoration:none}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.soft{background:var(--teal-light);color:var(--teal)}.btn.danger{background:#fcece9;color:var(--red)}.btn.small{padding:8px 12px;font-size:13px;min-height:38px}.plain{background:transparent;color:var(--teal);padding:8px;font-weight:700}.hero{position:relative;background:var(--ink);color:white;border-radius:24px;padding:30px;margin-bottom:24px;overflow:hidden}.hero .eyebrow{color:var(--yellow)}.hero p{color:#c5dadd;margin:0;max-width:640px}.hero .dec{position:absolute;right:30px;top:0;font-size:180px;line-height:1;font-weight:900;color:#ffffff08;pointer-events:none}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-width:0}.card.link{text-align:left;width:100%;color:inherit;transition:transform .15s,box-shadow .15s}.card.link:hover{transform:translateY(-2px);box-shadow:0 8px 24px #173d4610}.badge{display:inline-flex;align-items:center;background:var(--teal-light);border-radius:7px;padding:4px 9px;font-size:12px;font-weight:800;color:var(--teal);gap:5px}.badge.yellow{background:#fff2c9;color:#71581c}.badge.red{background:#fcece9;color:var(--red)}.badge.gray{background:#eef1f1;color:var(--muted)}.number{font-size:31px;font-weight:800;letter-spacing:-1px;line-height:1.2;margin:9px 0}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.stat{background:white;border:1px solid var(--line);border-radius:16px;padding:17px}.section{margin-top:26px}.tabs{display:flex;gap:6px;overflow:auto;margin:20px 0;padding-bottom:6px;scrollbar-width:thin}.tab{padding:10px 15px;min-height:44px;white-space:nowrap;background:transparent;border-radius:10px;color:var(--muted);font-weight:700}.tab.active{background:var(--teal);color:white}.tools{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.tools input{flex:1;min-width:180px}.tools select{max-width:240px}input,select,textarea{width:100%;border:1px solid #cbd8d5;background:#fff;border-radius:10px;padding:11px 12px;color:var(--ink);min-height:46px}textarea{min-height:90px;resize:vertical}label{display:block;font-size:14px;font-weight:650;margin-bottom:16px}label input,label select,label textarea{margin-top:5px}label small{display:block;font-weight:400;margin-top:4px}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--teal)}.list{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.item{padding:15px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #eaf0ee;min-width:0}.item:last-child{border-bottom:0}.item .grow{overflow-wrap:anywhere}.avatar{width:44px;height:44px;border-radius:13px;object-fit:cover;display:grid;place-items:center;background:#e8eff3;font-weight:800;flex-shrink:0}.item p{margin:0}.empty{padding:35px 20px;border:1px dashed #cbd8d5;border-radius:16px;text-align:center;color:var(--muted);background:#ffffff80}.notice{padding:13px 16px;background:#fff4d5;border-radius:12px;margin:16px 0;font-size:14px}.warning{color:var(--red)}.progress{background:#eef2f0;height:7px;border-radius:8px;overflow:hidden;margin-top:12px}.progress div{height:100%;background:var(--teal);border-radius:8px}.progress.over div{background:#b45345}.check{width:44px;height:44px;border-radius:50%;border:2px solid #93aeb5;background:#fff;color:var(--teal);font-size:22px;flex-shrink:0}.check.done{background:var(--teal);border-color:var(--teal);color:white}.bottom{display:none}.demo{background:#ffdf86;color:#553f07;font-weight:650;padding:9px 20px;text-align:center;font-size:13px}dialog{border:0;border-radius:23px;max-width:620px;width:calc(100% - 24px);max-height:90dvh;padding:0;color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#0d2b3980;backdrop-filter:blur(3px)}.modalhead{position:sticky;top:0;background:white;padding:19px 24px;border-bottom:1px solid var(--line);z-index:2}.modalhead h2{margin:0}.modalbody{padding:23px}.modalfoot{padding-top:14px;display:flex;gap:10px;justify-content:flex-end}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.full{grid-column:1/-1}.close{width:37px;height:37px;background:#edf2f1;border-radius:50%;font-size:24px;color:var(--muted)}.toast{position:fixed;bottom:85px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:12px;padding:13px 20px;z-index:100;max-width:90vw;box-shadow:0 5px 20px #0002}.toast.error{background:#923c30}.login{max-width:420px;margin:8vh auto}.login .card{padding:28px}.login h1{font-size:30px}.login .mark{margin-bottom:24px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}td,th{padding:12px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}.right{text-align:right}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.day{min-height:75px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:6px;font-size:12px}.day .birthday{background:var(--teal-light);padding:3px;border-radius:4px;margin-top:3px;overflow-wrap:anywhere}.splitline{display:grid;grid-template-columns:1fr 110px 35px;gap:7px;margin-bottom:9px}.busy{opacity:.65;pointer-events:none}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.groupchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.resourceText{white-space:pre-wrap;overflow-wrap:anywhere}.account{font-size:13px}.budgetrow{margin-bottom:20px}.budgetrow:last-child{margin-bottom:0}.loading{text-align:center;padding:60px;color:var(--muted)}
@media(max-width:760px){.top{height:64px;padding:0 16px}.brand{font-size:18px}.wrap{padding:20px 16px 100px}.grid,.grid.two{grid-template-columns:1fr}.hero{padding:24px;border-radius:19px}.stats{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.number{font-size:27px}.account{display:none}.card{padding:18px}.tabs{margin-left:-16px;margin-right:-16px;padding:0 16px 8px}.bottom{display:flex;position:fixed;bottom:0;left:0;right:0;background:#ffffffed;backdrop-filter:blur(12px);border-top:1px solid var(--line);justify-content:space-around;padding:7px 5px max(8px,env(safe-area-inset-bottom));z-index:10}.bottom button{background:none;color:var(--muted);padding:4px 8px;font-size:11px;font-weight:700;min-width:64px}.bottom button b{display:block;font-size:19px;color:var(--teal)}.item{padding:13px 12px;gap:9px}.modalbody{padding:19px}.modalhead{padding:16px 19px}.formgrid{grid-template-columns:1fr}.day{min-height:64px;padding:3px;font-size:10px}.day .birthday{font-size:9px}.top .btn{font-size:12px;padding:8px}.tools select{max-width:100%}.stayselect{max-width:140px}.hiddenmobile{display:none}}
.portrait{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--teal-light);margin-bottom:16px}.portraitPlaceholder{aspect-ratio:4/3;background:var(--teal-light);border-radius:12px;display:grid;place-items:center;font-size:48px;font-weight:800;color:var(--teal);margin-bottom:16px}.foodResult{padding:24px;background:var(--teal-light);border-radius:16px;margin-top:20px}.foodResult .number{font-size:42px}
@media(max-width:760px){.top{height:auto;min-height:64px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.top>.row{margin-left:auto}.grid.trombi{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.trombi .card{padding:12px}.trombi .row{flex-wrap:wrap}.trombi h3{font-size:15px}.trombi .btn{padding:8px;font-size:12px}.trombi small{overflow-wrap:anywhere}}
@media print{body.print-team .top,body.print-team #demoBanner,body.print-team .bottom,body.print-team .tabs,body.print-team #app>div:not(#content),body.print-team #app>button,body.print-team .teamControls,body.print-team dialog{display:none!important}body.print-team .wrap{padding:0}body.print-team .trombi{grid-template-columns:repeat(3,minmax(0,1fr))}body.print-team .trombi .card{break-inside:avoid}body.print-team .trombi .btn{display:none}}
.menuButton{width:44px;min-height:44px;font-size:24px;background:transparent;color:var(--teal)}.brandLogo{width:180px;height:68px;object-fit:cover}.welcomeLogo{width:290px;max-width:100%;height:120px;object-fit:cover}.drawerLogo{width:240px;height:100px;object-fit:cover}.sideNav{display:none}.hasSession .sideNav{display:block;position:fixed;top:76px;left:0;bottom:0;width:235px;background:white;border-right:1px solid var(--line);padding:15px;overflow-y:auto;z-index:5}.hasSession .wrap{margin-left:235px;margin-right:auto}.sideNav button,.drawerLinks button{display:block;width:100%;text-align:left;min-height:48px;border-radius:10px;padding:12px;background:transparent;color:var(--ink);font-weight:650;margin:3px 0}.sideNav button.active,.drawerLinks button.active{background:var(--teal-light);color:var(--teal)}.sideNav .eyebrow,.drawerLinks .eyebrow{margin:20px 10px 8px}.hasSession .staytabs{display:none}#drawer{margin:0 auto 0 0;width:min(330px,88vw);height:100dvh;max-height:100dvh;border-radius:0;padding:18px;inset:0 auto 0 0}#drawer .drawerHead{background:var(--ink);border-radius:14px;padding:0 8px;display:flex;align-items:center;justify-content:space-between}.lotThumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:15px 0}.lotThumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.lotThumbs button{width:100%;background:#fcece9;color:var(--red);border-radius:6px;padding:5px}.lotImage{display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain}.pickPhoto{display:inline-flex;padding:12px 16px;background:var(--teal-light);border-radius:10px;color:var(--teal);cursor:pointer;margin:0}.pickPhoto input{position:absolute;width:1px;height:1px;opacity:0;min-height:1px}.pickPhoto:focus-within{outline:3px solid #d5941f}
@media(max-width:900px){.hasSession .sideNav{display:none}.hasSession .wrap{margin-left:auto}.brandLogo{width:160px;height:60px}.top{padding-left:8px;padding-right:12px;gap:6px}.top>.brand{gap:2px}.hasSession .staytabs{display:none}}
@media print{.sideNav,.menuButton,#drawer{display:none!important}.hasSession .wrap{margin-left:0}}

.brandLogo,.welcomeLogo,.drawerLogo{object-fit:contain}.drawerHead{background:white!important}
/* Photos, personnalisation et prise de notes. */
.btn:not(.soft):not(.secondary):not(.danger){color:var(--primary-ink,#fff)}
.hero{background:var(--teal);color:var(--primary-ink,#fff)}.hero .eyebrow{color:inherit}.headline{margin-bottom:24px;border-left:6px solid var(--yellow)}
.mediaActions{margin:16px 0}.mediaPreview{margin:10px 0 20px}.mediaPreview img{display:block;width:150px;max-height:180px;object-fit:contain;border-radius:10px}.mediaPreview p{overflow-wrap:anywhere}.trombi .badge{white-space:normal}.trombi .card{min-width:0}input[type=color]{height:48px;padding:5px}.formgrid label{min-width:0}input,textarea,select{max-width:100%}
@media(max-width:760px){.pickPhoto{min-height:44px;align-items:center}.mediaActions{gap:10px}.mediaActions .pickPhoto{flex:1;justify-content:center}.trombi .portraitPlaceholder{font-size:34px}}
@media print{body.print-team .noPrint,body.print-team .teamControls,body.print-team #content>p{display:none!important}body.print-team .trombi .card{border:1px solid #ddd;box-shadow:none}body.print-team .trombi{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}.hero,.headline{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.orderLine{margin:12px 0;padding:15px;background:var(--bg)}.statBar{margin:14px 0}.statBar span{overflow-wrap:anywhere;padding-right:12px}.statBar b{white-space:nowrap}.statBar .progress{height:8px;margin:6px 0}.tablewrap .btn{margin-top:6px}.tablewrap td{min-width:80px}
@media print{body.print-stats *{visibility:hidden}body.print-stats #statisticsReport,body.print-stats #statisticsReport *{visibility:visible}body.print-stats #statisticsReport{position:absolute;left:0;top:0;width:100%}body.print-stats .card{break-inside:avoid;box-shadow:none;border:1px solid #ddd}body.print-stats .grid.two{grid-template-columns:1fr 1fr}body.print-stats .stats{grid-template-columns:repeat(4,1fr)}}
/* Mise à jour 2.2 : accès rapides, aperçu des droits et confirmation des photos. */
.quickLinks{margin:0 0 26px}.quickLinks .btn{min-width:140px}.savedPortrait{background:var(--bg);border-radius:12px;padding:16px;margin:16px 0}.savedPortrait img{display:block;width:160px;max-width:100%;max-height:220px;object-fit:contain;border-radius:10px;margin:10px 0}.savedPortrait p{margin:10px 0 0}.savedPortrait small{display:block}.formError{background:#fcece9;color:var(--red);border:1px solid #d49e98}.success{background:#e5f2e8;color:#245438}.formStatus{overflow-wrap:anywhere}.mediaPreview strong{display:block;font-size:13px;margin:8px 0}.sortControl{margin:0;min-width:200px;font-size:12px}.sortControl select{display:block;margin-top:2px}.tools{align-items:end}.tools>input,.tools>select{align-self:end}.previewBanner{position:sticky;top:0;z-index:7;margin:12px 24px 0 259px;padding:12px 16px;border:1px solid #e3c16b;border-radius:12px;background:#fff4d5;display:flex;align-items:center;justify-content:space-between;gap:12px}.previewBanner[hidden]{display:none}.previewBanner small{color:#64501e}.previewBanner>div{min-width:0;overflow-wrap:anywhere}.previewBanner button{flex-shrink:0}.avatar img{width:44px;height:44px;object-fit:cover}.trombi .portrait{height:auto}#modalBody>div[data-young-photo]{max-width:180px;margin-top:16px}
@media(max-width:760px){.previewBanner{margin:8px 12px 0;padding:10px;flex-wrap:wrap}.previewBanner button{width:100%}.quickLinks{gap:8px}.quickLinks .btn{flex:1;min-width:120px}.sortControl{flex:1;width:100%;min-width:0}.sortControl select{max-width:100%}}
@media print{.previewBanner,.quickLinks{display:none!important}}
audio{display:block;width:100%;max-width:100%;margin:14px 0}#recordStop{background:#b43b36;color:white}#recordStop[hidden],#recordStart[hidden]{display:none}#recordStatus{margin:14px 0}.pickPhoto:has(input:disabled){opacity:.55;cursor:default}
.bilanQuestion{min-width:0;border:1px solid var(--line);border-radius:12px;padding:16px;margin:18px 0}.bilanQuestion legend{font-size:15px;font-weight:700;padding:0 5px}.bilanQuestion output{min-width:94px;text-align:right;font-weight:700;font-size:14px}.bilanQuestion .row small{max-width:48%}.bilanQuestion input[type=range]{padding:0;border:0;min-width:0;accent-color:var(--teal)}.bilanQuestion input:disabled{opacity:.4}.birthdayNotice h3{margin:0 0 10px}.birthdayNotice p{margin:4px 0}#bilanPrint{display:none}.bilanPrintQuestion{break-inside:avoid;margin:22px 0}.bilanScale{height:12px;border:1px solid #aaa;border-radius:5px;background:#eee;margin:8px 0}.bilanScale div{height:100%;background:#226477}.bilanPrintReport{margin-top:32px}.bilanPrintReport h2{break-after:avoid}
@media print{body.print-bilans>*{display:none!important}body.print-bilans>#bilanPrint{display:block!important;color:#183d46;background:white;font:12px/1.5 system-ui;padding:12mm}body.print-bilans .bilanPrintReport+.bilanPrintReport{break-before:page}body.print-bilans .bilanScale{-webkit-print-color-adjust:exact;print-color-adjust:exact}body.print-bilans .bilanPrintQuestion h3{font-size:15px}}
/* Appel : actions utilisables d'une main sur téléphone. */
.pointItem{flex-wrap:wrap;gap:12px}.pointActions{margin-left:auto}.pointItem .check{min-width:46px;min-height:46px}.pointItem .avatar{flex-shrink:0}.bilanComment{font-weight:400;margin-top:12px}.bilanComment textarea{min-height:68px}.sizeConflict{border-left:4px solid #b48212;padding:12px;margin:12px 0}.inventoryTable th{white-space:normal;min-width:85px}
@media(max-width:540px){.pointActions{width:100%;justify-content:flex-end}.pointItem .grow{min-width:130px}.pointItem .avatar{width:38px;height:38px}.pointItem{padding:14px}}

/* 2.4 : paramètres personnels et espace de travail sur ordinateur. */
.adminHeading{margin:22px 0 24px;gap:16px}
.adminHeading .eyebrow{margin-bottom:8px}
.adminHeading h1{margin-bottom:8px}
.adminHeading p:last-child{margin-bottom:0}
.adminHeading>.btn{flex-shrink:0}
.adminLayout,#adminContent{min-width:0}
.adminNav{position:relative}
.menuOrderList{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.menuOrderRow{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.menuOrderRow:last-child{border-bottom:0}
.menuOrderRow strong{font-size:14px;overflow-wrap:anywhere}
.menuPosition{width:23px;flex-shrink:0;color:var(--muted);font-size:13px;text-align:center}
.menuOrderRow .row{gap:6px}
.menuMove{min-width:44px;min-height:44px;padding:8px;font-size:20px}
.menuMove:disabled{cursor:default;opacity:.3}
.menuOrderFooter{position:sticky;bottom:-23px;background:#fff;padding:14px 0;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;border-top:1px solid var(--line);margin-top:18px}
.menuOrderFooter .row{flex-wrap:wrap}
@media screen and (min-width:901px){
 .hasSession .wrap{max-width:none;width:calc(100% - 235px);margin-left:235px;margin-right:0;padding:28px 32px 60px}
 .hasSession .top{padding:0 24px;position:sticky;top:0;z-index:6}
 .hasSession .menuButton{display:none}
 .adminLayout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:24px;align-items:start}
 .adminNav{display:flex;flex-direction:column;gap:4px;position:sticky;top:96px;max-height:calc(100dvh - 116px);overflow-y:auto;overflow-x:hidden;margin:0;padding:10px;background:white;border:1px solid var(--line);border-radius:16px;align-self:start}
 .adminNav .tab{text-align:left;white-space:normal;overflow-wrap:anywhere;flex-shrink:0;font-size:14px;padding:10px 12px;line-height:1.35}
 .adminNav .tab:hover:not(.active){background:var(--bg);color:var(--ink)}
 .adminNav .tab.active{color:var(--primary-ink,#fff)}
 #adminContent>.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hasSession .trombi{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
 .hasSession .previewBanner{top:88px;margin-right:32px;margin-left:267px}
}
@media screen and (min-width:901px) and (max-width:1399px){
 .hasSession .wrap{padding-left:24px;padding-right:24px}
 .adminLayout{grid-template-columns:190px minmax(0,1fr);gap:18px}
 #adminContent>.grid.two,#adminContent .grid.two{grid-template-columns:1fr}
 #adminContent .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
 #adminContent .formgrid{grid-template-columns:1fr}
}
@media screen and (min-width:761px) and (max-width:900px){.previewBanner{margin-left:24px}}
@media(max-width:760px){.menuOrderFooter{bottom:-19px}.menuOrderRow{padding:10px 8px;gap:7px}}
@media print{.adminNav,.adminHeading>.btn{display:none!important}.adminLayout{display:block}}

/* 2.5 : saisons, gestion commune des encadrants et visibilité personnelle. */
.seasonBar{padding:14px 18px;margin-bottom:22px;background:var(--teal-light);border-radius:14px}
.seasonBar label{margin:0;min-width:200px;max-width:100%}
.seasonBar select{margin-top:4px}
.staffAdminTabs{margin:20px 0}
.staffAdminTabs .btn{font-size:14px}
.menuVisibility{margin:0;display:flex;align-items:center;gap:6px;font-size:12px;flex-shrink:0}
.menuVisibility input{margin:0}
@media(max-width:540px){.menuOrderRow{flex-wrap:wrap}.menuOrderRow>.grow{min-width:110px}.menuVisibility{margin-left:auto}.seasonBar label{width:100%}}
@media print{body.print-finance *{visibility:hidden}body.print-finance #globalFinanceReport,body.print-finance #globalFinanceReport *{visibility:visible}body.print-finance #globalFinanceReport{position:absolute;left:0;top:0;width:100%}body.print-finance [data-archive-allowed]{display:none!important}body.print-finance .card{break-inside:avoid}.seasonBar{display:none}}

@media print{body.print-finance table{font-size:10px}body.print-finance td,body.print-finance th{padding:6px 3px;min-width:0;white-space:normal}body.print-finance .tablewrap{overflow:visible}body.print-finance .progress{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Coordination : journal et diagnostic */
.activityFilters{margin:20px 0}.activityTable{min-width:780px}.activityTable td{vertical-align:top}.activityTable td:nth-child(3){min-width:210px}.logReference{overflow-wrap:anywhere}.activityPanel .notice{margin-top:16px}.supportChecks .item{align-items:flex-start}.supportChecks .badge{flex-shrink:0}.supportChecks p{margin-bottom:0}.supportHelp code{overflow-wrap:anywhere}.activityFilters .formgrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}@media(max-width:600px){.activityFilters .formgrid{grid-template-columns:1fr}.activityTabs .btn{flex:1}.activityPanel .stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Un seul contexte de séjour pour toutes les rubriques. */
.stayContextBar{position:sticky;top:0;z-index:11;background:#fff;border-bottom:1px solid var(--line);padding:8px 24px 8px 255px;min-height:64px}.stayContext{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.stayContextText{min-width:0;display:flex;flex-direction:column}.stayContextText small{font-size:11px}.stayContextText strong{font-size:15px;overflow-wrap:anywhere}.stayContext .btn{flex-shrink:0;min-height:44px}.hasSession:has(.stayContextBar:not([hidden])) .sideNav{top:140px}.sidebarStay{padding:12px;margin:12px 0;border:1px solid var(--line);border-radius:12px;background:var(--teal-light)}.sidebarStay>strong,.sidebarStay>span{display:block;overflow-wrap:anywhere}.sidebarStay>span{font-size:13px}.sidebarStay button{min-height:44px;margin-bottom:0;padding:8px 0;color:var(--teal)}.stayChoices{display:grid;gap:10px}.stayChoices .card{margin:0;padding:16px;text-align:left}.stayChoices h3{margin:8px 0 0}.selectedStay{border-color:var(--teal);background:var(--teal-light)}
@media(max-width:900px){.stayContextBar{padding:8px 16px}.stayContextText strong{font-size:14px}.stayContextText small{font-size:10px}}
@media print{.stayContextBar{display:none!important}}

.statLink{display:block;text-align:left;color:var(--ink);font:inherit;width:100%}.statLink:hover{border-color:var(--teal);box-shadow:0 2px 12px #183d4612}.statLink .number{line-height:1.3}.statLink>small{display:block}.foodMenuParent{display:flex!important;align-items:center;justify-content:space-between}.staySubMenus{margin:0 0 8px 12px;padding-left:8px;border-left:2px solid var(--line)}.staySubMenus button{font-size:14px}
@media screen and (min-width:901px){.stayContextBar{top:76px}.hasSession:has(.stayContextBar:not([hidden])) .previewBanner{top:152px}.hasSession:has(.stayContextBar:not([hidden])) .adminNav{top:160px;max-height:calc(100dvh - 180px)}}

.planningDays{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;margin-top:16px}.planningDay{min-width:0;border:1px solid var(--line);border-radius:14px;padding:14px}.planningToday{border-color:var(--teal);box-shadow:inset 3px 0 var(--teal)}.planningDayHeading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.planningDayHeading>strong{background:var(--teal-light);border-radius:8px;padding:6px 9px}.planningDayHeading h3{font-size:1rem;margin:0;flex:1}.planningSlot{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.planningSlot:last-child{border-bottom:0}.planningTime{white-space:nowrap;min-width:43px;font-weight:700}.planningSlot .grow{min-width:0;overflow-wrap:anywhere}.planningNotes{margin:5px 0 0;font-size:.9rem}.planningEmpty{margin:14px 0 0}.planningBirthday{padding:10px;border-radius:10px;background:#fff5d8;margin-top:12px;overflow-wrap:anywhere}.planningBirthday .btn{margin-top:5px}.planningTargets{display:grid;gap:8px}.planningTargets input{flex:0 0 auto}@media(max-width:540px){.planningSlot{flex-wrap:wrap}.planningSlot>.grow{flex:1 1 calc(100% - 65px)}.planningSlot>.btn{margin-left:53px}.planningOverview>.row>.row{width:100%}}

.stayContext{min-height:48px}.stayContextText strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Jeunes : une seule rubrique, vues et pointage dans le même contexte. */
.youthToolbar{gap:12px;margin-bottom:16px}.youthViewToggle{display:flex;gap:6px;flex-wrap:wrap}.youthViewToggle .tab{white-space:nowrap}.youthPointControls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.youthPointControls label{max-width:220px}.youthPointSummary{font-size:.9rem;color:var(--muted);min-height:1.5em}.attendanceCheck{flex-shrink:0;min-width:42px;min-height:42px}.personCard .attendanceCheck{position:relative;z-index:1}.stayContextText small{font-size:.78rem;color:var(--muted)}
@media(max-width:640px){.youthToolbar{align-items:stretch}.youthViewToggle{width:100%}.youthViewToggle .tab{flex:1}.youthPointControls{gap:8px}.youthPointControls .btn{padding:10px}.youthPointControls label{max-width:none;flex:1}.youthPointSummary{font-size:.8rem}}

/* Maintenance : même présentation que les paramètres, sans bordure de formulaire. */
#maintenancePanel fieldset{border:0;padding:0;margin:0;min-width:0}#maintenancePanel fieldset:disabled{opacity:.65}#maintenancePanel input[type=file]{max-width:100%}#maintenancePanel details ul{overflow-wrap:anywhere;padding-left:22px}#maintenancePanel .card{min-width:0}

/* Navigation et filtres compacts, sans seconde barre de séjour. */
#account{gap:8px;min-width:0;flex-wrap:wrap;justify-content:flex-end}
#account .headerStay{white-space:nowrap;flex-shrink:0;gap:6px}
#account .headerStay strong{font-size:inherit}
#account .headerStayHint{font-weight:500}
#account .btn.active{border-color:var(--teal);background:var(--teal-light);color:var(--teal)}
.tools.youthFilters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,210px) minmax(0,190px);align-items:center;gap:8px;margin-bottom:10px}
.tools.youthFilters input,.tools.youthFilters select,.tools.youthFilters .sortControl{min-width:0;max-width:100%;width:100%;margin:0}
.tools.youthFilters input,.tools.youthFilters select{min-height:40px;padding:8px 10px}
.tools.youthFiltersNoSearch{grid-template-columns:minmax(0,210px) minmax(0,190px)}
.tools.youthFiltersNoSort{grid-template-columns:minmax(0,1fr) minmax(0,210px)}
.tools.youthFilters.youthFiltersNoSport{grid-template-columns:minmax(0,1fr) minmax(0,190px)}
.tools.youthFilters.youthFiltersNoSport.youthFiltersNoSort{grid-template-columns:minmax(0,1fr)}
.tools.youthFilters.youthFiltersNoSport.youthFiltersNoSearch{grid-template-columns:minmax(0,190px)}
#profilePage>h1{margin-bottom:20px}
.profileLayout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:20px;align-items:start}
.profileLayout>*,#profileSections>*{min-width:0}
#profileSections{display:grid;gap:20px}
#profileSections>.section,#profileSections>section{margin-top:0}
.profileLayout .savedPortrait{margin-top:0}
@media(max-width:760px){
 #account{gap:6px;max-width:100%}
 #account .headerStayHint{display:none}
 #account .headerStay{min-height:38px;padding:8px}
 .tools.youthFilters{grid-template-columns:minmax(0,1fr) 86px 100px;gap:6px}
 .tools.youthFilters input,.tools.youthFilters select{font-size:16px;min-height:40px;height:40px;padding:6px}
 .tools.youthFiltersNoSearch{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .tools.youthFiltersNoSort{grid-template-columns:minmax(0,1fr) 86px}
 .tools.youthFilters.youthFiltersNoSport{grid-template-columns:minmax(0,1fr) 100px}
 .tools.youthFilters.youthFiltersNoSport.youthFiltersNoSearch{grid-template-columns:minmax(0,1fr)}
 .youthToolbar{gap:8px;margin-bottom:10px}
 .youthViewToggle .btn{min-height:38px;padding:8px 12px;font-size:13px}
 .youthToolbar>div:last-child{gap:8px}
 .profileLayout{grid-template-columns:1fr;gap:16px}
 #profileSections{gap:16px}
}
@media print{#profilePage .btn,.headerStay{display:none!important}}

.profileContact fieldset{border:0;margin:0;padding:0;min-width:0}

/* Les dotations sont accessibles sur les personnes, sans rubrique Textiles séparée. */
.personTextiles{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%;width:100%;margin-top:4px}
.textileGive{gap:6px;min-height:38px;max-width:100%;flex-wrap:wrap;text-align:left;justify-content:flex-start;line-height:1.3;padding:7px 10px}
.textileGive span{font-weight:600}.textileGive strong{font-size:11px;white-space:nowrap}
.textileGive.textileGiven{background:#e5f2e8;color:#245438;border:1px solid #cadfcd}
.textileSummary{background:var(--teal-light);border-radius:10px;padding:9px 12px;margin:0 0 12px;font-size:13px}
.textileSummary summary{cursor:pointer;font-weight:700}.textileSummary summary small{font-weight:400}
.textileSummaryItems{display:flex;flex-wrap:wrap;gap:6px;padding-top:9px}
@media(max-width:540px){.personTextiles{gap:5px}.textileGive{font-size:12px}.textileSummary{padding:8px 10px}.youthToolbar>div:last-child{flex-wrap:wrap}}
@media print{.personTextiles,.textileSummary{display:none!important}}

/* Connexion : affichage du mot de passe à la demande. */
.passwordField{margin-bottom:16px}
.passwordField>label{margin-bottom:5px}
.passwordControl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.passwordControl input{min-width:0;width:100%;margin:0}
.passwordReveal{min-width:76px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--teal-light);color:var(--teal);font-size:13px;font-weight:700}

/* Raccourcis quotidiens : jusqu’à cinq boutons sans débordement horizontal. */
@media(max-width:760px){
 .bottom{gap:0}
 .bottom button{flex:1 1 0;min-width:0;min-height:48px;padding:4px 2px;line-height:1.2}
 .bottom button>span{display:block;overflow-wrap:anywhere}
 .bottom button[aria-current=page]{color:var(--teal);background:var(--teal-light);border-radius:9px}
 .bottom button b{line-height:1.4}
}
@media(max-width:360px){.bottom button{font-size:10px}}

/* Portraits : le bouton reste en place pendant le chargement de l’image. */
.photoEdit{position:relative;display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:inherit;cursor:pointer;border-radius:12px;line-height:inherit}
.photoEdit:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.photoEdit:hover .photoEditMark{background:var(--teal);color:#fff}
.photoEditMark{position:absolute;right:8px;bottom:22px;display:grid;place-items:center;width:28px;height:28px;background:#fff;color:var(--teal);border:1px solid var(--line);border-radius:50%;box-shadow:0 2px 5px #0002;font-size:19px;pointer-events:none}
.photoEditSmall{width:44px;min-width:44px;flex:0 0 44px}
.photoEditSmall .photoEditMark{width:17px;height:17px;right:-4px;bottom:-2px;font-size:12px}
.youngPortraitImage,.staffPortraitImage,.savedPortraitImage{display:block}
.savedPortrait .photoEdit{width:160px;max-width:100%}
.savedPortrait .photoEditMark{bottom:8px}
.savedPortrait .portraitPlaceholder{margin:10px 0;font-size:36px}
#modalBody>.photoEdit:has([data-young-photo]){max-width:180px;margin-top:16px}
@media print{.photoEditMark{display:none!important}.photoEdit{border:0!important;box-shadow:none!important}}

/* Distribution jeunes : même liste, disposition compacte dédiée au mode Textiles. */
.compactTextileList .compactTextileRow{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:4px 8px;padding:9px 12px;align-items:center}
.compactTextileList .compactTextileRow.withPointing{grid-template-columns:34px 38px minmax(0,1fr) auto}
.compactTextileRow>.grow{min-width:0!important;font-size:14px;line-height:1.25}
.compactTextileRow>.pointActions{width:auto;margin-left:0;gap:4px;flex-wrap:nowrap;justify-content:flex-end}
.compactTextileRow>.pointActions .btn{font-size:12px;min-height:40px;padding:6px 8px}
.compactTextileRow .photoEditSmall{width:38px;min-width:38px;flex-basis:38px}
.compactTextileRow .avatar,.compactTextileRow .avatar img{width:38px;height:38px}
.compactTextileRow>.check{width:34px;height:40px;min-width:34px;min-height:40px;font-size:18px}
.compactTextileRow .groupchips{margin-top:3px;gap:3px}
.compactTextileRow .groupchips .badge{padding:2px 5px;font-size:10px;line-height:1.3}
.compactTextileRow>.personTextiles{grid-column:2/-1;width:auto;margin:0;gap:4px}
.compactTextileRow.withPointing>.personTextiles{grid-column:3/-1}
.textileGive.textileGiveCompact{min-height:40px;font-size:12px;padding:5px 8px;gap:5px;flex-wrap:nowrap;overflow-wrap:anywhere}
.textileGiveCompact>span{min-width:0}.textileGiveCompact>strong{font-size:17px;line-height:1;flex-shrink:0}
@media(max-width:540px){.compactTextileList .compactTextileRow{gap:4px 6px;padding:8px}.compactTextileRow>.grow{font-size:13px}.compactTextileRow .groupchips{gap:2px}.compactTextileRow>.personTextiles,.compactTextileRow.withPointing>.personTextiles{grid-column:1/-1}.textileGive.textileGiveCompact{padding:5px 7px}}

/* Le panneau garde le dialogue natif ; seules ses fermetures visuelles sont animées. */
#drawer[open]{animation:sfDrawerSlideIn 180ms ease-out both;will-change:transform}
#drawer[open]::backdrop{animation:sfDrawerBackdropIn 180ms ease-out both}
#drawer[open].drawerClosing{animation:sfDrawerSlideOut 160ms ease-in both}
#drawer[open].drawerClosing::backdrop{animation:sfDrawerBackdropOut 160ms ease-in both}
@keyframes sfDrawerSlideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes sfDrawerSlideOut{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@keyframes sfDrawerBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes sfDrawerBackdropOut{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){#drawer[open],#drawer[open]::backdrop{animation:none!important}}

/* Raccourcis du récapitulatif : hauteur réduite, libellé et valeur seuls. */
.stats.overviewStats{gap:9px;margin:12px 0}.overviewStats .stat{min-width:0;min-height:64px;padding:10px 12px;border-radius:13px}.overviewStats .stat>small{display:block;line-height:1.2;overflow-wrap:anywhere}.overviewStats .number{font-size:26px;line-height:1.15;margin:5px 0 0;overflow-wrap:anywhere}
@media(max-width:760px){.stats.overviewStats{gap:8px;margin:10px 0}.overviewStats .stat{padding:9px 11px}.overviewStats .number{font-size:24px;margin-top:4px}}

.rememberDevice{display:flex;align-items:center;gap:9px;min-height:42px;margin:5px 0 14px;font-size:14px;font-weight:600}.rememberDevice input[type=checkbox]{flex:0 0 20px;width:20px;height:20px;margin:0}.rememberDevice small{font-size:inherit;font-weight:400}

.stats.financeStats{gap:9px;margin:12px 0}.financeStats .stat{min-width:0;min-height:64px;padding:10px 12px;border-radius:13px}.financeStats .stat>small{display:block;line-height:1.2;overflow-wrap:anywhere}.financeStats .number{font-size:26px;line-height:1.15;margin:5px 0 0;overflow-wrap:anywhere}
@media(max-width:760px){.stats.financeStats{gap:8px;margin:10px 0}.financeStats .stat{padding:9px 11px}.financeStats .number{font-size:24px;margin-top:4px}}

.financeBudgets .budgetGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.financeBudgets .budgetrow{min-width:0;margin:0}.financeBudgets .budgetrow .row{gap:8px}.financeBudgets .budgetrow span{overflow-wrap:anywhere}.financeBudgets .budgetrow strong{white-space:nowrap}
@media(max-width:760px){.financeBudgets .budgetGrid{grid-template-columns:minmax(0,1fr);gap:14px}}
