/* V6.99.129 — Santé : documents, traitements, administrations, alimentation */
.sante-area{display:grid;gap:14px;margin-top:14px}
.sante-card{background:#fff;border:1px solid #dfe8e3;border-radius:16px;padding:16px}
.sante-card>h3,.sante-card .sante-head h3{margin:0;font-size:17px}
.sante-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.sante-head .sante-actions{display:flex;gap:6px;flex-wrap:wrap}
.sante-fold>.sante-head{cursor:pointer;margin-bottom:0}.sante-fold.open>.sante-head{margin-bottom:10px}
.sante-fold>.sante-body{display:none}.sante-fold.open>.sante-body{display:block}
.sante-fold .sante-caret{transition:transform .15s;display:inline-block;margin-right:6px}.sante-fold.open .sante-caret{transform:rotate(90deg)}
.sante-table{width:100%;border-collapse:collapse;font-size:13px}.sante-table th,.sante-table td{padding:7px 8px;border-bottom:1px solid #eef1ec;text-align:left;vertical-align:top}
.sante-table th{font-size:11px;text-transform:uppercase;color:#667085;letter-spacing:.03em}
.sante-table input,.sante-table select,.sante-table textarea{width:100%;min-width:70px;padding:6px 7px;border:1px solid #d5ddd7;border-radius:8px;font-size:13px}
.sante-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;white-space:nowrap;border:1px solid transparent}
.sante-pill.gris{background:#f2f4f7;color:#475467}.sante-pill.bleu{background:#e8f1fb;color:#1d4f91}.sante-pill.vert{background:#e7f6ec;color:#067647}
.sante-pill.orange{background:#fff4e5;color:#b54708}.sante-pill.rouge{background:#fdecec;color:#b42318;border-color:#f5b5b0}
.sante-pill.violet{background:#f1edfd;color:#5b3fb5}.sante-pill.sable{background:#f7f1e6;color:#7a5a24}
.sante-pill.lien{cursor:pointer}.sante-pill.lien:hover{filter:brightness(.96)}
.sante-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;cursor:pointer;border:0;margin:2px 4px 0 0}
.sante-badge.actif{background:#e8f1fb;color:#1d4f91}.sante-badge.orange{background:#fff1dc;color:#b54708}
.sante-badge.rouge{background:#d92d20;color:#fff}.sante-badge.vert{background:#e7f6ec;color:#067647}
.sante-chip-slot{display:block;min-height:0}.sante-chip-slot .sante-badge{font-size:10.5px;padding:2px 7px;margin-top:4px}
.sante-food-label{display:inline-flex;align-items:center;gap:4px;border-radius:8px;padding:2px 8px;font-size:11.5px;font-weight:700;background:#f1edfd;color:#5b3fb5;cursor:pointer;border:0;margin-top:4px}
.sante-food-label.pai{background:#eef4ff;color:#1d4f91}
.sante-muted{color:#667085;font-size:12.5px}
.sante-empty{color:#667085;font-size:13px;padding:6px 0}
.sante-row-actions{display:flex;gap:5px;flex-wrap:wrap}
.sante-doc-new{background:#fffaf0}
.sante-prod-table td{min-width:90px}.sante-prod-table td.sm{min-width:70px}
.sante-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sante-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sante-grid2 label,.sante-grid3 label{display:block;font-size:12px;color:#475467;font-weight:600;margin-bottom:3px}
.sante-choice{display:grid;gap:10px;margin:10px 0}
.sante-choice label{display:flex;gap:10px;align-items:flex-start;border:1px solid #dfe8e3;border-radius:12px;padding:12px;cursor:pointer}
.sante-choice label input{width:auto;margin-top:3px}
.sante-choice label:has(input:checked){border-color:#335e6a;background:#f0f6f7}
.sante-choice strong{display:block}
.sante-prise-info{background:#f7faf8;border:1px solid #e3ebe6;border-radius:12px;padding:10px 12px;margin-bottom:10px;font-size:13px}
.sante-tabs{display:flex;gap:6px;margin:8px 0 12px;flex-wrap:wrap}.sante-tabs button{border:1px solid #d5ddd7;background:#fff;border-radius:999px;padding:6px 12px;font-weight:700;cursor:pointer}
.sante-tabs button.on{background:#335e6a;border-color:#335e6a;color:#fff}
.sante-team{margin-bottom:18px}
.sante-team .sante-card{box-shadow:0 8px 25px rgba(31,67,54,.05)}
.sante-dist-row td{vertical-align:top}.sante-compat{font-size:12px;font-weight:700}
.sante-compat.INCOMPATIBLE{color:#b42318}.sante-compat.A_VERIFIER{color:#b42318}.sante-compat.ADAPTE{color:#067647}
.meal-adapt-slot .sante-pill{margin-top:3px;font-size:10.5px;padding:1px 7px}
.sante-hist{max-height:280px;overflow:auto}
.sante-warn{background:#fdecec;color:#b42318;border-radius:10px;padding:8px 10px;font-size:12.5px;font-weight:600;margin:6px 0}
@media(max-width:760px){.sante-grid2,.sante-grid3{grid-template-columns:1fr}.sante-table{font-size:12px}}
@media print{.sante-badge,.sante-food-label{border:1px solid #999}}

/* V6.99.130 — Cahier › Médicaments */
.santeqs summary{cursor:pointer;list-style:none;margin-bottom:8px}.santeqs summary::-webkit-details-marker{display:none}
.santeqs-trt{border:1px solid #e3ebe6;border-radius:12px;padding:8px 10px;margin-bottom:8px;background:#fbfdfc}
.santeqs-title{font-weight:800;margin-bottom:4px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.santeqs-table td{vertical-align:middle}.santeqs-in{max-width:110px;display:inline-block;padding:6px 8px}
.santeqs-check{display:inline-flex;align-items:center;gap:5px;font-weight:700;cursor:pointer}.santeqs-check input{width:auto;margin:0}
.santeqs-btn{padding:6px 14px}

/* V6.99.131 — consignes rappelées dans le Planning repas */
.meal-cons-line{font-size:12px;margin-top:3px;line-height:1.35;font-weight:500;white-space:normal}
.meal-cons-food{font-weight:800;color:#7a2e0e}.meal-cons-sub{color:#067647;font-weight:700}
.meal-cons-week{margin-top:12px;border:1px solid #f7d9a8;background:#fffaf0;border-radius:12px;padding:10px 12px}
.meal-cons-title{font-weight:800;color:#b54708;margin-bottom:6px}.meal-cons-child{padding:6px 0;border-top:1px solid #f5e3c3}.meal-cons-child:first-of-type{border-top:0}

/* V6.99.135 — les fenêtres Santé s'ouvrent au-dessus de l'éditeur plein écran du Cahier (z-index 12000) */
#santePriseModal,#santePrisesModal,#santeFoodPop,#santeForceModal,#santeQualifyModal,#santeUploadModal,#santeTrtModal,#santeProtoModal,#santeFoodChoice,#santeFoodModal{z-index:13000!important}

/* V6.99.138 — Cahier › Fournitures */
.fourn-card{border:1px solid #e3ebe6;border-radius:14px;margin:12px 0;background:#fff}
.fourn-card>summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:800;font-size:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fourn-card>summary::-webkit-details-marker{display:none}
.fourn-caret{display:inline-block;transition:transform .15s}.fourn-card[open] .fourn-caret{transform:rotate(90deg)}
.fourn-sub{font-size:12px;font-weight:500;color:#667085}
.fourn-body{padding:0 14px 14px}
.fourn-list{display:grid;gap:6px}
.fourn-cat{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#335e6a;margin:8px 0 2px}
.fourn-row{display:flex;align-items:center;gap:10px;border:1px solid #e3ebe6;border-radius:10px;padding:8px 10px;cursor:pointer;background:#fbfdfc}
.fourn-row:has(.fourn-ok:checked){border-color:#335e6a;background:#f0f6f7}
.fourn-row input[type=checkbox]{width:auto;margin:0}
.fourn-lab{flex:1;display:flex;flex-direction:column}
.fourn-qty{display:flex;align-items:center;gap:6px;font-size:12px;color:#475467}.fourn-qty input{width:70px}
.fourn-today{margin-top:12px;border-top:1px dashed #d5ddd7;padding-top:6px}
.fourn-today-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #eef1ec}

/* V6.99.139 — fréquence facultative + contrôle d'écart */
.sante-freq-row td{border-bottom:1px solid #e3ebe6;padding-top:0}
.sante-freq{position:relative;border:2px solid #335e6a;border-radius:12px;background:#fff;padding:14px 12px 10px;margin:2px 0 6px}
.sante-freq-tag{position:absolute;top:-10px;left:12px;background:#335e6a;color:#fff;font-size:10.5px;font-weight:800;border-radius:999px;padding:2px 9px}
.sante-freq-x{position:absolute;top:6px;right:8px}
.sante-freq-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0;font-size:13px}
.sante-table .sante-freq-line input,.sante-table .sante-freq-line select{width:auto;min-width:0}
.sante-table input.sante-num,.sante-num{width:64px!important;min-width:0;text-align:center;font-weight:700}
.sante-chip{border:1px dashed #98a2b3;border-radius:8px;padding:5px 10px;cursor:pointer;background:#fff;font-weight:600;font-size:12.5px}
.sante-chip.on{border-style:solid;border-color:#335e6a;background:#eaf2f3;color:#335e6a}
.sante-day{width:30px;height:30px;border-radius:50%;border:1px solid #d5ddd7;background:#fff;font-weight:700;cursor:pointer}
.sante-day.on{background:#335e6a;color:#fff;border-color:#335e6a}
.sante-freq-gen{background:#e7f6ec;color:#067647;border-radius:8px;padding:6px 10px;font-weight:700;display:inline-block;font-size:12.5px}
.sante-freq-sugg{background:#fff8e6;border:1px solid #f5d38a;border-radius:10px;padding:7px 10px;margin:6px 0;font-size:12.5px}
.sante-freq-ctrl{background:#f7faf8;border-radius:8px;padding:6px 8px}
.sante-ecart h3{margin:0 0 8px;color:#b42318}
.sante-ecart-bar{height:8px;background:#e7f6ec;border-radius:4px;margin:12px 0 4px;overflow:hidden}.sante-ecart-bar div{height:100%;background:#d92d20}
.sante-ecart-lab{display:flex;justify-content:space-between;font-size:11.5px;color:#667085}
.sante-ecart-force{background:#fdecec;border-radius:10px;padding:10px;margin-top:10px}
.santeqs-wait{background:#f8f9fa}.santeqs-wait .santeqs-check{opacity:.6}
.sante-fam-box{border:1px dashed #98a2b3;border-radius:10px;padding:8px 10px;margin:6px 0 10px;background:#fafafa}
.sante-fam-box.ok{border-style:solid;border-color:#a6d8b8;background:#f3fbf5}
.santefam-none{background:#fff!important;border:1px solid #98a2b3!important;color:#344054!important}
.sante-radio{display:inline-flex;align-items:center;gap:5px;border:1px solid #d5ddd7;border-radius:10px;padding:5px 10px;cursor:pointer;background:#fff}.sante-radio:has(input:checked){border-color:#335e6a;background:#eaf2f3}.sante-table .sante-radio input{width:auto;min-width:0}
/* V6.99.142 — taille d'affichage */
.gdl-scale-box{position:fixed;right:12px;bottom:64px;z-index:12500;display:flex;gap:2px;background:#fff;border:1px solid #d5ddd7;border-radius:999px;padding:3px;box-shadow:0 4px 14px rgba(0,0,0,.08);opacity:.55;transition:opacity .15s}
.gdl-scale-box:hover{opacity:1}
.gdl-scale-box button{border:0;background:transparent;border-radius:999px;padding:4px 9px;font-weight:800;font-size:12px;cursor:pointer;color:#335e6a}
.gdl-scale-box button:hover{background:#eaf2f3}
@media print{.gdl-scale-box{display:none}}
/* V6.99.143 — identifiants (code numérique + mot de passe) */
.cred-box{border:1px solid #d5ddd7;border-radius:14px;padding:12px 14px;margin:10px 0;background:#fbfcfb}
.cred-title{font-weight:800;margin-bottom:8px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cred-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cred-col{border:1px solid #eef1ec;border-radius:12px;padding:10px;background:#fff}
.cred-col label{display:block;margin-top:6px}
.cred-sub{font-weight:800;color:#335e6a}
.cred-check{display:flex!important;gap:8px;align-items:flex-start;margin-top:10px!important;font-weight:600}
.cred-check input{width:auto;margin-top:3px}
.cred-pill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;background:#e7f6ec;color:#067647}
.cred-pill.warn{background:#fff4e5;color:#b54708}.cred-pill.new{background:#e8f1fb;color:#1d4f91}
@media(max-width:760px){.cred-grid{grid-template-columns:1fr}}
/* V6.99.144 — l'écran de verrouillage passe TOUJOURS au premier plan (une fenêtre ouverte au moment
   du verrouillage — Cahier, santé, utilisateurs… — le recouvrait : écran flouté sans pavé visible) */
.lock-overlay.open,#lockOverlay.open,#moduleAuthOverlay.open{z-index:2147483000!important}
.app-locked #lockOverlay .lock-card{filter:none!important}
/* V6.99.144 — œil afficher / masquer le mot de passe */
.pw-eye-wrap{position:relative;display:inline-block;max-width:100%}
.pw-eye-wrap.pw-eye-block{display:block;width:100%}
.pw-eye-wrap>input{padding-right:40px!important}
.pw-eye-wrap.pw-eye-block>input{width:100%}
.pw-eye-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:17px;line-height:1;padding:4px 6px;border-radius:8px;opacity:.65}
.pw-eye-btn:hover,.pw-eye-btn.on{opacity:1;background:#eaf2f3}
.pw-eye-btn.pin{right:10px}
/* V6.99.145 — champs heure saisis au clavier */
input.gdl-time{font-variant-numeric:tabular-nums;letter-spacing:.02em;min-width:72px}
input.gdl-time-bad{outline:2px solid #d92d20!important;background:#fdecec!important}
/* V6.99.146 — sélecteur d'heure (glisser au doigt) */
.gtp{position:fixed;z-index:2000000000;display:none;background:#fff;border:1px solid #d5ddd7;border-radius:14px;box-shadow:0 14px 40px rgba(15,23,42,.18);padding:8px 8px 6px}
.gtp-cols{display:flex;align-items:stretch;gap:4px}
.gtp-col{height:220px;width:64px;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;border-radius:10px;background:#f7faf8}
.gtp-col button{display:block;width:100%;height:40px;border:0;background:transparent;font-size:17px;font-weight:700;color:#1d2939;scroll-snap-align:center;cursor:pointer;border-radius:8px;font-variant-numeric:tabular-nums}
.gtp-col button:hover{background:#eaf2f3}
.gtp-col button.on{background:#335e6a;color:#fff}
.gtp-sep{align-self:center;font-weight:800;font-size:18px;color:#667085}
.gtp-hint{font-size:11px;color:#667085;text-align:center;margin-top:5px;max-width:140px}
@media print{.gtp{display:none!important}}
/* V6.99.147 — dates : calendrier + clavier */
input.gdl-date-native{display:none!important}
input.gdl-date{font-variant-numeric:tabular-nums;min-width:120px}
input.gdl-date-bad{outline:2px solid #d92d20!important;background:#fdecec!important}
.gdp{position:fixed;z-index:2000000000;display:none;background:#fff;border:1px solid #d5ddd7;border-radius:14px;box-shadow:0 14px 40px rgba(15,23,42,.18);padding:10px;width:286px;user-select:none}
.gdp-head{display:flex;gap:4px;align-items:center;margin-bottom:6px}
.gdp-head select{flex:1;min-width:0;border:1px solid #d5ddd7;border-radius:8px;padding:5px 4px;font-weight:700;background:#fff}
.gdp-head button{border:0;background:#f2f4f7;border-radius:8px;width:32px;height:32px;font-size:18px;font-weight:800;cursor:pointer}
.gdp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.gdp-grid span{font-size:11px;font-weight:700;color:#667085;padding:3px 0}
.gdp-grid button{border:0;background:transparent;height:34px;border-radius:8px;font-weight:600;cursor:pointer;font-size:14px}
.gdp-grid button:hover{background:#eaf2f3}.gdp-grid button.out{color:#98a2b3}.gdp-grid button.we{color:#b54708}
.gdp-grid button.today{outline:1px solid #335e6a}.gdp-grid button.on{background:#335e6a;color:#fff}
.gdp-grid button:disabled{opacity:.3;cursor:not-allowed}
.gdp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:11px;color:#667085}
.gdp-foot button{border:0;background:transparent;color:#1d4f91;font-weight:700;cursor:pointer;font-size:12.5px}
@media print{.gdp{display:none!important}input.gdl-date-native{display:none!important}}
/* V6.99.148 — contrat : cartes repliables */
#childContractModal .cc-card{border:1px solid #dfe8e3;border-radius:14px;background:#fff;margin:12px 0;overflow:visible}
#childContractModal .cc-card>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;font-weight:800;font-size:15px;border-radius:14px;user-select:none}
#childContractModal .cc-card>summary::-webkit-details-marker{display:none}
#childContractModal .cc-card>summary .cc-title::before{content:'▸';display:inline-block;margin-right:8px;transition:transform .15s;color:#335e6a}
#childContractModal .cc-card[open]>summary .cc-title::before{transform:rotate(90deg)}
#childContractModal .cc-card[open]>summary{border-bottom:1px solid #eef1ec;border-radius:14px 14px 0 0;background:#f7faf8}
#childContractModal .cc-card>summary:hover{background:#f2f7f4}
#childContractModal .cc-sum{font-weight:700;font-size:12.5px;color:#335e6a;background:#eaf2f3;border-radius:999px;padding:3px 10px}
#childContractModal .cc-sum:empty{display:none}
#childContractModal .cc-body{padding:4px 14px 14px}
#childContractModal .cc-card:has(#contractAnnualizedBlock[style*="none"]){display:none}
#childContractModal .cc-card .contract-services-box{margin-top:6px}
/* V6.99.149 — alertes de capacité */
.cap-alert{display:block;width:100%;text-align:left;border-radius:12px;padding:10px 12px;margin:8px 0;font-size:13.5px;border:1px solid transparent;font-family:inherit}
.cap-alert.red{background:#fdecec;color:#912018;border-color:#f5b5b0}
.cap-alert.orange{background:#fff4e5;color:#93370d;border-color:#f7c99a}
.cap-alert.info{background:#eef4ff;color:#1d4f91;border-color:#c7d7f5}
.cap-alert .cap-sub{font-size:12px;font-weight:500;margin-top:3px;opacity:.85}
.cap-link{cursor:pointer}.cap-link:hover{filter:brightness(.97)}
#planningCapacityAlerts{margin-top:10px}
.mg-cap-panel{margin:14px 0;border:1px solid #f5b5b0}
/* V6.99.153 — mot de passe oublié */
.forgot-link-row{text-align:right;margin:8px 0 2px;font-size:13px}
.forgot-link-row a,.forgot-panel>a{color:#1d4f91;font-weight:700;text-decoration:none}
.forgot-panel{display:grid;gap:6px}
.forgot-panel h3{margin:0 0 4px}
.forgot-panel label{display:block;margin-top:6px;font-size:12.5px;font-weight:700;color:#475467}
.forgot-panel .btn{margin-top:10px}
#authError.ok{color:#067647}
