/* Périscolaire v4.40.1 — styles consolidés, ordre v4.39.93 préservé. */

/* === SOURCE : assets/styles.css === */
:root{--bg:#f4f7fb;--panel:#fff;--text:#132033;--muted:#728197;--primary:#2563eb;--primary2:#1d4ed8;--line:#dfe7f1;--soft:#eef5ff;--green:#16a34a;--orange:#f59e0b;--red:#dc2626;--shadow:0 18px 45px rgba(18,32,54,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(135deg,#edf5ff,#f8fafc 45%,#f4f7fb);color:var(--text)}button,input,select,textarea{font:inherit}button{border:0;border-radius:14px;padding:11px 15px;background:var(--primary);color:white;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px;justify-content:center;transition:.15s}button:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(37,99,235,.2)}button.secondary{background:#edf2f7;color:#233045}button.ghost{background:white;color:#233045;border:1px solid var(--line)}button.danger{background:var(--red)}button.ok{background:var(--green)}button.small{padding:8px 11px;border-radius:12px;font-size:13px}.iconbtn{width:38px;height:38px;padding:0;border-radius:999px;background:#f1f5f9;color:#334155}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login .panel{width:min(460px,100%);background:rgba(255,255,255,.9);border:1px solid #fff;border-radius:30px;padding:32px;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.bigicon{width:58px;height:58px;border-radius:20px;background:linear-gradient(135deg,#60a5fa,#22c55e);display:grid;place-items:center;font-size:30px}.login h1{margin:14px 0 6px}.field{display:flex;flex-direction:column;gap:7px;margin:8px 0}.field label{font-size:13px;color:var(--muted);font-weight:800}.grow{flex:1}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:white;padding:11px 13px;color:var(--text);outline:none}textarea{min-height:84px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#93c5fd;box-shadow:0 0 0 4px #dbeafe}.app{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.side{padding:18px;position:sticky;top:0;height:100vh;overflow:auto}.side-inner{height:100%;background:#111827;color:white;border-radius:28px;padding:18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-weight:900;font-size:19px;margin-bottom:16px}.brand small{color:#aeb9c8}.logo{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,#60a5fa,#22c55e);display:grid;place-items:center}.userbox{background:#1f2937;border:1px solid #334155;border-radius:20px;padding:13px;margin-bottom:16px;color:#e5e7eb}.userbox span{display:block;color:#aeb9c8;font-size:12px;margin-top:3px}.nav{display:flex;flex-direction:column;gap:7px}.nav button{background:transparent;color:#dbe4f0;text-align:left;justify-content:flex-start;padding:12px 13px;font-weight:750}.nav button.active,.nav button:hover{background:#263247;color:#fff;box-shadow:none;transform:none}.nav .logout{margin-top:auto;color:#fecaca}.main{padding:26px;overflow:auto}.top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.top h1{margin:0;font-size:31px;letter-spacing:-.03em}.subtitle{color:var(--muted);margin:5px 0 0}.grid{display:grid;gap:16px}.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.card,.subcard{background:rgba(255,255,255,.94);border:1px solid rgba(223,231,241,.95);border-radius:24px;padding:18px;box-shadow:0 8px 24px rgba(18,32,54,.05);margin-bottom:16px}.subcard{border-radius:18px;background:#fbfdff}.card h2,.card h3,.subcard h3{margin:0 0 13px}.kpi{display:flex;align-items:center;gap:13px}.kpi .ico{width:50px;height:50px;border-radius:18px;background:var(--soft);display:grid;place-items:center;font-size:25px}.kpi strong{font-size:28px;display:block}.kpi span,.mini-kpi span{color:var(--muted);font-size:13px}.mini-kpi{background:#f8fafc;border:1px solid var(--line);border-radius:18px;padding:14px}.mini-kpi b{display:block;font-size:22px}.muted{color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.full{grid-column:1/-1}.checkgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.check{display:flex;gap:9px;align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:15px;padding:11px;font-weight:750}.check input{width:auto}.cards-list{display:grid;gap:11px}.person-card{border:1px solid var(--line);border-radius:20px;padding:14px;background:#fff;display:flex;align-items:center;gap:12px}.avatar{width:48px;height:48px;border-radius:18px;background:var(--soft);display:grid;place-items:center;font-size:24px}.pc-main{flex:1}.pc-main b{display:block;font-size:16px}.pc-main span{display:block;color:var(--muted);font-size:13px;margin-top:2px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:#fff}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff}th,td{padding:12px 13px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f8fafc;font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:var(--soft);color:#1d4ed8;padding:5px 10px;font-size:12px;font-weight:850}.badge.green{background:#ecfdf5;color:#15803d}.badge.orange{background:#fff7ed;color:#c2410c}.badge.red{background:#fef2f2;color:#b91c1c}.badge.gray{background:#f1f5f9;color:#475569}.error,.toast.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.success,.toast.success{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}.empty{padding:24px;text-align:center;color:var(--muted);background:#f8fafc;border-radius:18px}.toast{position:fixed;right:18px;bottom:18px;z-index:9999;padding:13px 16px;border-radius:16px;box-shadow:var(--shadow);font-weight:800}.modal-back{position:fixed;inset:0;background:rgba(15,23,42,.42);display:grid;place-items:center;padding:18px;z-index:1000;opacity:0;transition:.15s}.modal-back.show{opacity:1}.modal{width:min(920px,100%);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:28px;box-shadow:0 35px 90px rgba(15,23,42,.34);overflow:hidden}.modal-head,.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0}.modal-body{padding:18px;overflow:auto}.modal-foot{border-bottom:0;border-top:1px solid var(--line);justify-content:flex-end}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tab{background:#edf2f7;color:#233045}.tab.active{background:var(--primary);color:#fff}.tabpane{display:none}.tabpane.active{display:block}.smart-search{position:relative}.suggestions{position:absolute;left:0;right:0;top:calc(100% + 5px);background:white;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);z-index:50;overflow:hidden;max-height:300px;overflow-y:auto}.suggestions:empty{display:none}.suggestions button{width:100%;border-radius:0;background:white;color:var(--text);box-shadow:none;transform:none;justify-content:flex-start;padding:12px 14px;border-bottom:1px solid var(--line)}.suggestions button small{margin-left:auto;color:var(--muted)}.nores{padding:12px;color:var(--muted)}.loading{color:var(--muted);padding:20px}@media(max-width:1000px){.app{grid-template-columns:1fr}.side{height:auto;position:static;padding:12px}.side-inner{border-radius:22px}.nav{display:grid;grid-template-columns:repeat(2,1fr)}.main{padding:14px}.cols3,.cols2,.formgrid,.checkgrid{grid-template-columns:1fr}.top{align-items:flex-start;flex-direction:column}.toolbar .field{min-width:100%;width:100%}.person-card{align-items:flex-start;flex-wrap:wrap}.pc-main{min-width:200px}.modal{max-height:96vh}}@media(max-width:560px){.nav{grid-template-columns:1fr}.top h1{font-size:25px}.card{padding:14px;border-radius:18px}th,td{font-size:13px;padding:9px}.person-card{flex-direction:column;align-items:stretch}.person-card button{width:100%}.modal-back{padding:5px}.modal{border-radius:18px}.modal-head,.modal-body,.modal-foot{padding:12px}.modal-foot button{flex:1}}

/* V4 réservations calendrier métier */
.reservation-card{overflow:visible}.sticky-tools{position:sticky;top:0;z-index:5;background:var(--card,#fff);padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.06)}
.calendar-zone{overflow:auto;max-height:calc(100vh - 260px);border:1px solid rgba(0,0,0,.08);border-radius:18px;background:#fff}.res-calendar{display:grid;grid-auto-rows:minmax(54px,auto);min-width:max-content}.res-head{position:sticky;top:0;z-index:3;background:#f6f7fb;font-weight:800;font-size:.86rem;padding:10px;border-bottom:1px solid #e6e8ef;display:flex;align-items:center;justify-content:center}.child-col{width:210px;min-width:210px;max-width:210px;position:sticky;left:0;z-index:4;background:#fff;border-right:1px solid #e6e8ef;padding:10px;display:flex;flex-direction:column;justify-content:center}.child-sticky{box-shadow:6px 0 14px rgba(20,30,50,.05)}.child-col small{color:#6b7280;margin-top:3px}.day-col{width:96px;min-width:96px}.day-col.closed,.day-cell.closed{background:#f1f3f6;color:#9ca3af}.day-cell{width:96px;min-width:96px;min-height:54px;border-right:1px solid #eef0f4;border-bottom:1px solid #eef0f4;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#fff}.day-cell input{display:none}.day-cell span{width:30px;height:30px;border-radius:10px;border:2px solid #cbd5e1;display:flex;align-items:center;justify-content:center;font-weight:900}.day-cell.on span{background:#2f855a;color:white;border-color:#2f855a}.day-cell.closed{cursor:not-allowed}.day-cell.closed span{border-color:#e5e7eb;background:#f5f5f5}.period-dates{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.date-pill{background:#eef6ff;border:1px solid #bfdbfe;border-radius:999px;padding:7px 11px;font-size:.88rem;font-weight:700}.period-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.period-child{border:1px solid #e6e8ef;border-radius:18px;padding:14px;background:#fff;box-shadow:0 4px 14px rgba(15,23,42,.04)}.period-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.period-title small{color:#6b7280}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#f4f6fa;padding:6px;border-radius:14px}.segmented label{display:flex;align-items:center;justify-content:center;text-align:center;border-radius:11px;padding:9px 5px;background:#fff;font-weight:700;font-size:.86rem;cursor:pointer}.segmented input{margin-right:5px}.meal{margin-top:12px}.hint{background:#fff8e6;border:1px solid #fde68a;color:#704d00;border-radius:14px;padding:10px 12px;margin:8px 0 14px;font-weight:600}.toolbar .grow{flex:1;min-width:220px}@media(max-width:760px){.calendar-zone{max-height:none}.child-col{width:145px;min-width:145px;max-width:145px}.day-col,.day-cell{width:74px;min-width:74px}.res-head{font-size:.75rem;padding:7px}.period-grid{grid-template-columns:1fr}.segmented{grid-template-columns:1fr}.sticky-tools{position:static}}

/* V5 lisibilité tableaux + organisation métier */
.settings-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.full-card{grid-column:1/-1}.table-wrap{width:100%;overflow:auto}.table-wrap table{min-width:760px}.table-wrap th{white-space:nowrap}.table-wrap td{white-space:normal}.price-service{margin:0 0 24px}.price-input{min-width:95px}.call-row{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);background:white;border-radius:18px;padding:14px;margin-bottom:10px}.call-row b{display:block}.call-row span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.service-tabs,.point-tabs,.settings-tabs{margin:0}.settings-tabs{margin-bottom:14px}.hint{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:10px 12px;margin:8px 0 14px;color:#475569;font-size:14px}.segmented{display:flex;gap:8px;flex-wrap:wrap}.segmented label{border:1px solid var(--line);border-radius:999px;padding:9px 12px;background:#fff;font-weight:750}.segmented input{width:auto}.period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.period-child{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px}.period-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.period-title small{color:var(--muted)}.period-dates{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.date-pill{background:#eef5ff;color:#1d4ed8;border-radius:999px;padding:7px 10px;font-weight:800;font-size:13px}.meal{margin-top:10px}.reservation-card{overflow:visible}.sticky-tools{position:sticky;top:0;z-index:5;background:rgba(255,255,255,.96);padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.06)}.calendar-zone{overflow:auto;max-height:calc(100vh - 270px);border:1px solid var(--line);border-radius:18px;background:#fff}.res-calendar{display:grid;grid-auto-rows:minmax(56px,auto);min-width:max-content}.res-head{position:sticky;top:0;z-index:3;background:#f6f7fb;font-weight:900;font-size:13px;padding:10px;border-bottom:1px solid #e6e8ef;display:flex;align-items:center;justify-content:center}.child-col{width:210px;min-width:210px;max-width:210px;position:sticky;left:0;z-index:4;background:#fff;border-right:1px solid #e6e8ef;padding:10px;display:flex;flex-direction:column;justify-content:center}.child-sticky{box-shadow:6px 0 14px rgba(20,30,50,.05)}.child-col small{color:#6b7280;margin-top:3px}.day-col{width:96px;min-width:96px}.day-col.closed,.day-cell.closed{background:#f1f3f6;color:#9ca3af}.day-cell{width:96px;min-width:96px;min-height:56px;border-right:1px solid #eef0f4;border-bottom:1px solid #eef0f4;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#fff}.day-cell input{display:none}.day-cell span{width:32px;height:32px;border-radius:10px;border:2px solid #cbd5e1;display:flex;align-items:center;justify-content:center;font-weight:900}.day-cell.on span{background:#16a34a;color:white;border-color:#16a34a}.day-cell.closed{cursor:not-allowed}.day-cell.closed span{border-color:#e5e7eb;background:#f5f5f5}
@media(max-width:720px){.settings-layout{grid-template-columns:1fr}.call-row{align-items:stretch;flex-direction:column}.table-wrap{border:0;background:transparent}table,thead,tbody,tr,th,td{display:block}thead{display:none}.table-wrap table{min-width:0}tr{border:1px solid var(--line);border-radius:16px;background:#fff;margin-bottom:10px;overflow:hidden}td{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}td:before{content:attr(data-label);font-weight:900;color:#64748b}td:last-child{border-bottom:0}.calendar-zone table,.calendar-zone thead,.calendar-zone tbody,.calendar-zone tr,.calendar-zone th,.calendar-zone td{display:revert}.res-calendar{font-size:13px}.child-col{width:170px;min-width:170px;max-width:170px}.day-col,.day-cell{width:78px;min-width:78px}.settings-tabs .tab{flex:1}.price-input{min-width:75px}}
/* V6 fluidité métier */
.service-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.compact-list{display:grid;gap:8px}.work-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;background:#fff;padding:10px 12px;min-height:58px}.work-row b{font-size:15px}.work-row small{color:var(--muted);font-weight:600;margin-left:8px}.work-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.doc-line{display:grid;grid-template-columns:1fr 1.5fr 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px;margin-bottom:8px;background:#fff}.doc-line.bad{background:#fff1f2;border-color:#fecdd3}.top button.ghost{background:#fff;color:#233045;border:1px solid var(--line)}@media(max-width:900px){.service-summary{grid-template-columns:1fr}.work-row{grid-template-columns:1fr}.work-actions{justify-content:flex-start}.doc-line{grid-template-columns:1fr}.side{position:static;height:auto}}@media print{.side,.top button,.toolbar,.nav,.modal-head button{display:none!important}.app{display:block}.main{padding:0}.card{box-shadow:none;border:0}.table-wrap{overflow:visible}body{background:white}}

/* V7 fluidité métier */
.sticky-tools{position:sticky;top:0;background:var(--card,#fff);z-index:5;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.06)}
.service-card{overflow:visible}.dense-list{display:flex;flex-direction:column;gap:6px}.work-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff}.work-row.done{background:#f3f6f4;color:#5a665e}.work-row.done .child-line{opacity:.72}.child-line{display:flex;align-items:center;gap:8px;min-width:0}.child-line b{white-space:nowrap}.child-line small{color:#667;min-width:42px}.work-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.pill{display:inline-flex;align-items:center;background:#eaf7ee;border:1px solid #c9ead2;border-radius:999px;padding:5px 9px;font-size:.9rem}.warn-card{border-left:5px solid #f59e0b;background:#fffaf0}.doc-list{display:flex;flex-direction:column;gap:8px}.doc-line{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:10px;background:#f7f8fb}.doc-line.bad{background:#fff0f0}.res-calendar{font-size:.88rem}.day-cell{min-height:42px}.price-input{max-width:100px}.table-wrap table th,.table-wrap table td{padding:8px 10px}
@media(max-width:760px){.work-row{grid-template-columns:1fr}.work-actions{justify-content:flex-start}.doc-line{grid-template-columns:1fr}.res-calendar{font-size:.8rem}}
@media print{.side,.top button,.toolbar,.work-actions,.nav,.logout{display:none!important}.main{margin:0!important}.card{box-shadow:none!important;border:1px solid #ddd!important}.table-wrap{overflow:visible!important}}
.link-child{background:transparent;border:0;padding:0;text-align:left;color:inherit;cursor:pointer}.link-child b{display:block}.alert-dot{border:0;background:#fff3cd;border-radius:999px;padding:4px 7px;cursor:pointer}.light{display:inline-block;width:12px;height:12px;border-radius:50%;background:#cbd5e1;vertical-align:middle}.light.green{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.12)}button:disabled{opacity:.55;cursor:not-allowed}.hint.warn{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.service-card .sticky-tools{position:sticky;top:0;background:#fff;z-index:5;padding-bottom:8px}.work-row.done{background:#f1f5f9}.work-row.done .child-line{opacity:.72}.dashboard-alert{display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid #eef2f7;padding:8px 0}.dashboard-alert:last-child{border-bottom:0}.pill.red{background:#fee2e2;color:#991b1b}.pill.orange{background:#ffedd5;color:#9a3412}.no-print{display:inline-flex}@media print{.side,.top button,.no-print,.nav{display:none!important}.main{padding:0}.card{box-shadow:none;border:1px solid #ddd}}

/* V10.3 - alertes en pop-up, navigation organisée, espace parent */
.user-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.user-row>div{min-width:0}.user-row .iconbtn{flex:0 0 auto}.nav-groups details{border-top:1px solid rgba(255,255,255,.08);padding-top:8px;margin-top:8px}.nav-groups summary{cursor:pointer;color:#cbd5e1;font-weight:900;padding:8px 10px;border-radius:12px}.nav-groups summary:hover{background:rgba(255,255,255,.08)}.nav-groups details button{margin-left:8px;width:calc(100% - 8px)}.alert-kpi{border:0;text-align:left;color:inherit;background:#fff;justify-content:flex-start}.alert-kpi:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.alert-list{display:flex;flex-direction:column;gap:10px}.alert-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px}.alert-card small{display:block;color:var(--muted);margin-top:4px}.responsable-block{border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:10px;background:#fff}.responsable-block h4{margin:0 0 8px}.service-picker{display:flex;flex-wrap:wrap;gap:10px}.side .logout{display:none!important}@media(max-width:900px){.alert-card{grid-template-columns:1fr}.service-picker button{width:100%}}
/* V10.5 parent UX */
.week-nav{display:flex;gap:8px;flex-wrap:wrap}.week-table{min-width:980px}.week-table th:first-child,.week-table td:first-child{position:sticky;left:0;background:var(--card,#fff);z-index:2}.mini-check{display:flex;align-items:center;gap:6px;padding:6px 4px;border-radius:8px;white-space:nowrap}.mini-check:hover{background:#f3f6fb}.closed-cell{background:#f1f1f1;color:#888;text-align:center}.alert-card{border:1px solid #ffd3d3;background:#fff7f7;border-radius:12px;padding:12px;margin:8px 0}.userbox button{margin-top:6px;width:100%}.parent-week-grid{overflow:auto}.field input[readonly]{background:#f3f3f3;color:#666}.doc-line.bad{border-left:4px solid #c0392b}.tabpane{display:none}.tabpane.active{display:block}.alert-kpi{text-align:left;cursor:pointer}

/* V10.6 */
.alert-card.archived{opacity:.62;background:#eefaf1;border-color:#8fd19e}.okline{color:#137333;font-weight:800}.alert-main{display:flex;flex-direction:column;gap:4px}.cards-list.compact .person-card,.person-card.compact{padding:8px 10px}.danger.small{background:#fff1f1;color:#9b1c1c;border:1px solid #f0b5b5}
/* V10.7 */
.user-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.user-actions{display:flex;gap:6px}.nav-groups details{border:1px solid rgba(255,255,255,.12);border-radius:14px;margin:8px 0;padding:6px}.nav-groups summary{cursor:pointer;padding:8px 10px;font-weight:700;color:var(--muted)}.nav-groups details button{margin-top:4px}.info{background:#eef6ff;border:1px solid #bfdbfe;border-radius:14px;padding:12px;margin-top:12px;color:#1e3a8a}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}

/* ===================== V11 UX/UI propre, fluide et responsive ===================== */
:root{--nav:#101827;--nav2:#172033;--ok:#16a34a;--danger:#dc2626;--warning:#f59e0b;--info:#2563eb;--radius:18px}.app.v11{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}.topbar-title{display:flex;align-items:center;gap:12px;min-width:0}.topbar-title strong{display:block;font-size:18px}.topbar-title span{display:block;color:var(--muted);font-size:13px}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.top-user{background:#f8fafc!important;color:#1f2937!important;border:1px solid var(--line)!important;box-shadow:none!important;cursor:default}.top-user small{font-size:11px;color:#64748b;margin-left:4px}.hamb{background:#eef5ff;color:#1d4ed8;width:42px;height:42px;padding:0}.side{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;box-shadow:8px 0 30px rgba(10,20,40,.18)}.side-inner{height:100vh;position:sticky;top:0;padding:18px 14px;display:flex;flex-direction:column}.brand{border-radius:22px;background:rgba(255,255,255,.08);padding:14px;margin-bottom:14px}.brand .logo{width:48px;height:48px;border-radius:16px;background:#fff;color:#111;display:grid;place-items:center;font-size:26px}.brand small{color:#cbd5e1}.nav{overflow:auto;padding-right:2px}.nav button,.nav-groups summary{width:100%;min-height:42px;border-radius:14px;margin:4px 0;color:#dbeafe;background:transparent;display:flex;align-items:center;gap:10px;text-align:left;justify-content:flex-start;font-weight:800}.nav button:hover,.nav-groups summary:hover{background:rgba(255,255,255,.09);box-shadow:none;transform:none}.nav button.active{background:#fff;color:#123;box-shadow:0 10px 24px rgba(0,0,0,.22)}.nav-ico{width:28px;height:28px;border-radius:10px;background:rgba(255,255,255,.12);display:grid;place-items:center;flex:0 0 28px}.nav button.active .nav-ico{background:#eef5ff}.nav-groups details{border:1px solid rgba(255,255,255,.09);border-radius:18px;margin:10px 0;padding:6px;background:rgba(255,255,255,.035)}.nav-groups details button{width:100%;margin-left:0}.main{padding:26px;max-width:1600px;width:100%;margin:0 auto}.danger{background:var(--danger)!important;color:white!important}.side .logout,.topbar .logout{display:inline-flex!important}.card{border-radius:22px}.kpi{min-height:110px}.kpi .ico{font-size:30px}.top{align-items:flex-start}.top h1{font-size:30px;margin-bottom:4px}.subtitle{font-size:15px}.smart-search.v11-search{background:#fff;border:2px solid rgba(37,99,235,.35);border-radius:20px;padding:12px;box-shadow:0 12px 30px rgba(37,99,235,.10);position:relative}.smart-search.v11-search label{font-size:14px;color:#1d4ed8;font-weight:950;text-transform:uppercase;letter-spacing:.03em}.search-wrap{display:flex;align-items:center;gap:10px;background:#f8fbff;border:1px solid #dbeafe;border-radius:16px;padding:8px 10px}.search-wrap input{border:0!important;background:transparent!important;outline:0!important;font-size:18px;font-weight:750;min-height:34px}.clear-search{background:#e5e7eb!important;color:#374151!important;width:34px;height:34px;padding:0!important;border-radius:12px}.suggestions{position:absolute;z-index:50;left:12px;right:12px;top:calc(100% - 4px);background:#fff;border:1px solid #c7d2fe;border-radius:18px;box-shadow:0 20px 50px rgba(20,30,60,.18);overflow:hidden}.suggestions:empty{display:none}.suggestions button{width:100%;border-radius:0;background:#fff!important;color:#111!important;box-shadow:none!important;justify-content:space-between;border-bottom:1px solid #eef2ff}.suggestions button:hover{background:#eef5ff!important;transform:none}.suggestions small{color:#64748b}.nores{padding:14px;color:#9ca3af}.alert-card{border-left:5px solid var(--danger)}.alert-card.archived{border-left-color:var(--ok)}.warn-card{border-left-color:var(--warning)!important}.work-row.done{border-color:#bbf7d0;background:#f0fdf4}.light.green{background:var(--ok)}.pill.red{background:#fee2e2;color:#991b1b}.pill.orange{background:#ffedd5;color:#9a3412}.pill.green{background:#dcfce7;color:#166534}.table-wrap{border-radius:18px}th{background:#f1f5f9;color:#334155}.userbox{display:none!important}body.menu-collapsed .app.v11{grid-template-columns:86px 1fr}body.menu-collapsed .brand div:not(.logo),body.menu-collapsed .nav-label,body.menu-collapsed .nav-groups summary{display:none}body.menu-collapsed .side-inner{padding:14px 10px}body.menu-collapsed .nav button{justify-content:center}body.menu-collapsed .nav-ico{margin:0}.field input[type=color]{height:44px;padding:4px}.tab{border-radius:999px}.tab.active{background:var(--primary);color:#fff}@media(max-width:980px){.app.v11{grid-template-columns:1fr}.side{position:fixed;left:0;top:0;bottom:0;width:290px;transform:translateX(-105%);transition:.18s;z-index:80}.side-inner{height:100%}body.menu-collapsed .side,body:not(.menu-collapsed) .side{transform:translateX(-105%)}body.menu-open .side{transform:translateX(0)}.hamb:after{content:''}.topbar{height:auto;align-items:flex-start;flex-direction:column}.topbar-actions{width:100%;justify-content:stretch}.topbar-actions button{flex:1}.main{padding:16px}.grid.cols2,.grid.cols3{grid-template-columns:1fr!important}.smart-search.v11-search{position:sticky;z-index:20}.search-wrap input{font-size:16px}.app.v11 .hamb{display:inline-flex}.workspace:before{content:'';display:none}body.menu-collapsed .app.v11{grid-template-columns:1fr}}@media(min-width:981px){.hamb{display:inline-flex}}@media(max-width:640px){.topbar-actions{display:grid;grid-template-columns:1fr 1fr}.top-user{grid-column:1/-1}.topbar-title span{display:none}.main{padding:12px}button{border-radius:12px}.card{border-radius:18px}.modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}}

/* ===================== V11.1 finitions ergonomiques ===================== */
:root{--ok:#16a34a;--danger:#dc2626;--warning:#f59e0b;--info:#2563eb;--side:#0f172a;--side2:#111827;}
.side{overflow:hidden!important}.side-inner{overflow:hidden!important}.nav,.premium-nav{overflow:visible!important;scrollbar-width:none!important}.nav::-webkit-scrollbar,.side::-webkit-scrollbar,.side-inner::-webkit-scrollbar{display:none!important}.premium-side{background:linear-gradient(180deg,#0b1220,#111827 55%,#1e293b)!important}.premium-side .brand{display:flex;align-items:center;gap:12px;margin-bottom:18px;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 40px rgba(0,0,0,.18)}.premium-side .logo{box-shadow:0 10px 28px rgba(255,255,255,.18)}.premium-nav details{background:transparent!important;border:0!important;padding:0!important;margin:14px 0!important}.premium-nav summary{font-size:11px!important;letter-spacing:.09em;text-transform:uppercase;color:#93a4bd!important;min-height:24px!important;padding:0 12px!important;margin:0 0 6px!important;background:transparent!important}.premium-nav summary::-webkit-details-marker{display:none}.group-dot{width:6px;height:6px;border-radius:50%;background:#38bdf8;display:inline-block;margin-right:8px}.premium-nav button{height:44px!important;border-radius:14px!important;margin:3px 0!important;padding:0 12px!important;color:#dbeafe!important;background:transparent!important;border:1px solid transparent!important;font-size:14px!important}.premium-nav button:hover{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.10)!important}.premium-nav button.active{background:linear-gradient(135deg,#fff,#eaf2ff)!important;color:#0f172a!important;border-color:#fff!important;box-shadow:0 14px 28px rgba(0,0,0,.22)!important}.svgico{background:rgba(255,255,255,.10)!important;color:currentColor!important}.svgico svg{width:19px;height:19px;display:block;fill:currentColor}.premium-nav button.active .svgico{background:#dbeafe!important;color:#1d4ed8!important}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-toolbar-pro{display:grid!important;grid-template-columns:210px auto minmax(320px,1fr) auto!important;align-items:end!important;gap:14px!important}.service-toolbar-pro .v11-search{grid-column:auto!important;margin:0!important}.date-chip-field input{font-size:18px;font-weight:850;color:#0f172a}.smart-search.v11-search{border-width:2px!important;border-color:#93c5fd!important;background:linear-gradient(180deg,#fff,#f8fbff)!important}.smart-search.v11-search label{display:block;margin-bottom:6px}.search-wrap span{display:none}.search-wrap:before{content:'🔎';font-size:20px}.search-wrap input{font-size:17px!important}.big-alert{display:flex;gap:18px;align-items:flex-start;border:2px solid #fecaca;background:#fef2f2;border-radius:20px;padding:20px}.big-alert-ico{font-size:42px}.big-alert h3{margin:0 0 8px;color:#991b1b}.big-alert p{font-size:17px;line-height:1.45;color:#7f1d1d}.parent-res-card{overflow:auto}.parent-week-table{border-collapse:separate!important;border-spacing:0!important}.parent-week-table th{background:#eaf2ff!important;color:#0f172a!important;border-bottom:2px solid #bfdbfe!important}.parent-week-table td,.parent-week-table th{border-right:1px solid #e2e8f0!important;border-bottom:1px solid #e2e8f0!important;vertical-align:top!important}.parent-week-table tr:nth-child(even) td{background:#fbfdff}.child-sticky{background:#fff!important;min-width:190px}.mini-check{display:flex!important;align-items:center;gap:8px;border:1px solid #e2e8f0;border-radius:12px;padding:8px 10px;margin:5px 0;background:#fff;font-weight:800}.mini-check input{width:18px;height:18px}.mini-check:has(input:checked){border-color:#86efac;background:#f0fdf4;color:#14532d}.mini-am span{color:#f59e0b}.mini-cantine span{color:#dc2626}.mini-pm span{color:#2563eb}.closed-cell{background:#f1f5f9!important;color:#94a3b8!important;text-align:center}.danger-zone{border:2px solid #fecaca;background:#fff1f2;border-radius:18px;padding:16px;margin:0 0 16px}.danger-zone h3{color:#991b1b;margin-top:0}.danger-zone .danger{background:#dc2626!important;color:#fff!important}.table-wrap td b{font-weight:950}.topbar{position:sticky;top:0;z-index:60}.topbar-actions .logout{font-weight:950!important}@media(max-width:1100px){.service-toolbar-pro{grid-template-columns:1fr!important}.service-toolbar-pro>*{width:100%!important}.parent-week-grid{overflow:auto}.parent-week-table{min-width:820px}}@media(max-width:680px){.premium-nav button{height:48px!important}.parent-res-top{gap:12px}.week-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}}

/* V11.2 documents obligatoires */
.doc-admin-add{border:1px solid rgba(37,99,235,.18);background:linear-gradient(180deg,#fff,#f8fbff)}
.doc-admin-list{display:flex;flex-direction:column;gap:10px}.doc-admin-row{display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid #e5e7eb;border-radius:14px;background:#fff}.doc-admin-row.is-off{opacity:.55;background:#f3f4f6}.doc-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eff6ff;font-size:22px}.doc-main{display:flex;flex-direction:column;gap:4px}.doc-main span{font-size:13px;color:#64748b}.doc-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pill.blue{background:#dbeafe;color:#1d4ed8}.pill.orange{background:#ffedd5;color:#c2410c}.doc-line a,.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.warn-card .doc-list{margin:10px 0}.warn-card .doc-line{background:#fff;border:1px solid #fecaca;border-radius:12px;padding:10px 12px;margin:8px 0}
@media(max-width:720px){.doc-admin-row{grid-template-columns:40px 1fr}.doc-actions{grid-column:1/-1;justify-content:flex-start}.doc-admin-row{align-items:start}}

/* V11.3 périodes/documents */
.period-card{border:1px solid var(--line,#d8dee8);border-radius:18px;background:#fff;margin:16px 0;padding:16px;box-shadow:0 8px 20px rgba(15,23,42,.06)}
.period-card h3{margin:0 0 12px;font-size:1.05rem}.period-table-wrap{overflow:auto}.period-table{width:100%;border-collapse:separate;border-spacing:0}.period-table th{background:#f1f5f9;color:#334155;text-align:left;padding:10px}.period-table td{border-top:1px solid #e5e7eb;padding:10px;vertical-align:top}.period-options{display:flex;gap:10px;flex-wrap:wrap}.period-options label,.big-check{display:inline-flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid #dbe4ef;border-radius:999px;padding:8px 10px;font-weight:700}.period-options input:checked+span{font-weight:900}.period-options .meal{background:#fff7ed;border-color:#fed7aa}.parent-required-alerts{border-left:6px solid #ef4444}.parent-required-alerts .dashboard-alert{background:#fff1f2;border:1px solid #fecdd3;color:#991b1b;font-weight:800}.doc-admin-row .btn,.btn.secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}

/* V11.5 */
.mandatory-alert{border-left:6px solid #dc2626;background:#fff7f7}
.mandatory-alert .alert-main b{color:#991b1b}
.alert-tools{margin-bottom:12px;align-items:center;gap:12px;flex-wrap:wrap}
.danger-zone{margin-top:18px;padding:16px;border:1px solid #fecaca;background:#fff7f7;border-radius:14px}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}


/* V11.6 ciblé : placement recherche/date + export + alertes */
.service-toolbar-pro{display:grid!important;grid-template-columns:minmax(320px,1fr) auto auto!important;align-items:end!important;gap:16px!important}
.service-date-center{display:flex;align-items:end;justify-content:center;gap:10px;min-width:300px;justify-self:center}
.service-toolbar-pro .v11-search{order:0;justify-self:stretch;width:100%;max-width:none!important;margin:0!important}
.service-toolbar-pro .secondary#openRes{justify-self:end}
.service-date-center .field{margin:0;min-width:170px}.service-date-center #todayBtn{height:44px}
.smart-search.v11-search{min-width:280px;max-width:none!important;width:100%}.smart-search.v11-search input{font-weight:800}
@media(max-width:1100px){.service-toolbar-pro{grid-template-columns:1fr!important}.service-date-center{justify-content:flex-start;min-width:0}.service-toolbar-pro .secondary#openRes{justify-self:stretch}.service-toolbar-pro .v11-search{max-width:none}}

/* V11.7 */
.selected-child-pill{margin:10px 0 14px;padding:12px 14px;border:1px dashed #b8c7dc;border-radius:14px;background:#f8fafc;color:#64748b;font-size:15px}.selected-child-pill.active{border-color:#2563eb;background:#eff6ff;color:#0f172a}.selected-child-pill b{font-size:17px}.selected-child-pill small{display:inline-block;margin-left:8px;color:#475569}.reservation-modal-top{align-items:end}.reservation-admin-grid table{font-size:12px}
/* V4.0.54 : la grille "Reservations jour par jour" (Matin/Cantine/Soir) tronquait
   l'affichage a environ 8 jours sur une periode longue (ex: 1er au 30 septembre) au lieu
   de proposer un scroll horizontal : sans largeur minimale par colonne, le tableau se
   comprimait dans la largeur visible du lieu de deborder. Chaque colonne jour recoit
   desormais une largeur minimale fixe, ce qui force un vrai debordement sur les periodes
   longues ; .table-wrap (deja overflow:auto) fournit alors le scroll horizontal reel. La
   colonne enfant reste figee a gauche pendant le scroll, comme demande.
   V4.1.5 : ce correctif fonctionnait mais restait inutilisable en pratique des qu'il y a
   plus de quelques enfants. .table-wrap n'avait aucune hauteur limitee : la barre de
   defilement horizontale (seul moyen visuel de savoir qu'on peut faire glisser le tableau)
   se retrouvait tout en bas de la liste des enfants, hors champ de vision, et l'en-tete
   "fige" ne s'accrochait jamais puisqu'aucun defilement vertical ne se produisait a
   l'interieur du tableau lui-meme (c'est le modal entier qui defilait). On borne
   desormais la hauteur du tableau : la barre horizontale reste accessible juste sous les
   lignes visibles, et l'en-tete devient reellement fige pendant le defilement vertical.
   V4.1.6 : la hauteur fixe (58vh/520px) posee en V4.1.5 pouvait rester elle-meme plus
   grande que l'espace reellement visible dans le corps du modal (barre d'outils + onglets
   au-dessus reduisent cet espace) : il fallait alors deja faire defiler tout le modal
   jusqu'en bas du tableau avant d'atteindre sa propre barre horizontale - le meme defaut
   qu'avant, juste deplace. Remplace par un calage flexible (:has, deja utilise ailleurs
   dans ce fichier) : #resa devient une colonne flex dont #resGrid occupe tout l'espace
   restant sous la barre d'outils, et .reservation-admin-grid remplit alors exactement cet
   espace - sa barre horizontale est donc toujours juste sous la derniere ligne visible,
   jamais plus bas que ce qui est deja a l'ecran. La valeur fixe est conservee en repli pour
   les tres rares navigateurs sans support de :has(). */
.reservation-admin-grid{max-height:min(58vh,520px);overflow:auto}
.modal-body:has(#resa.active .reservation-admin-grid){display:flex!important;flex-direction:column!important;overflow:auto!important}
.modal-body:has(#resa.active .reservation-admin-grid)>.tabs{flex:none}
#resa.active:has(.reservation-admin-grid){display:flex;flex-direction:column;min-height:0;flex:1}
#resa.active:has(.reservation-admin-grid)>.toolbar{flex:none}
#resa.active:has(.reservation-admin-grid)>#resGrid{flex:1;min-height:0;display:flex;flex-direction:column}
#resGrid:has(.reservation-admin-grid) .reservation-admin-grid{max-height:none;flex:1;min-height:0}
.reservation-admin-grid table{width:auto;min-width:100%;table-layout:auto}
.reservation-admin-grid th,.reservation-admin-grid td{min-width:46px}
.reservation-admin-grid thead th{position:sticky;top:0;z-index:4}
.reservation-admin-grid th:first-child,.reservation-admin-grid td:first-child{position:sticky;left:0;z-index:3;background:#fff;min-width:150px;box-shadow:2px 0 6px rgba(15,23,42,.06)}
.reservation-admin-grid th:first-child{z-index:6;background:#f8fafc}.mandatory-alert{border-left:5px solid #dc2626!important;background:#fff5f5}.parent-required-alerts{border-left:5px solid #dc2626}.big-alert{display:flex;gap:16px;align-items:flex-start;padding:12px}.big-alert-ico{font-size:34px}.toast.error{background:#b91c1c;color:white}.modal .error,.error{background:#fff1f2;border:1px solid #fecdd3;color:#991b1b;border-radius:12px;padding:12px 14px;font-weight:700}

/* V11.9 */
.alert-tools{gap:10px;align-items:center;flex-wrap:wrap}.alert-card .work-actions{gap:8px;flex-wrap:wrap}.danger-zone.subcard{border-color:#fecaca;background:#fff7f7}.field.full{grid-column:1/-1}
/* V11.10 */
.dashboard-date-line{margin:-8px 0 14px;color:#526174;font-weight:700;background:#eef5ff;border:1px solid #d8e6fb;border-radius:14px;padding:10px 14px;display:inline-flex;align-items:center;gap:8px}.period-card{border:1px solid #dbe5f0;border-radius:16px;padding:14px;margin:12px 0;background:#fff}.period-card h3{margin-top:0}.btnrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.info{background:#eef8ff;border:1px solid #cce7ff;border-radius:12px;padding:10px 12px;color:#24445f}.person-card .pill.red{display:inline-flex;margin-left:4px}.selected-child-pill{border:1px solid #cfe0f5;background:#f4f9ff;border-radius:14px;padding:10px 12px;margin:8px 0;font-weight:700;color:#14345f}.selected-child-pill.empty{color:#778899;background:#f6f7f9}.modal .v11-search{max-width:none;width:100%}

/* V11.15 - Espace parent mobile : tableaux semaine transformés en cartes lisibles */
@media(max-width:700px){
  .parent-res-top{display:block!important}
  .parent-res-top .week-nav{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .parent-res-card{padding:12px!important;overflow:visible!important}
  .parent-week-grid{overflow:visible!important}
  .parent-week-table{min-width:0!important;width:100%!important;border-collapse:separate!important;border-spacing:0 14px!important}
  .parent-week-table thead{display:none!important}
  .parent-week-table tbody,.parent-week-table tr,.parent-week-table td{display:block!important;width:100%!important}
  .parent-week-table tr{background:#fff;border:1px solid #dbeafe;border-radius:18px;box-shadow:0 8px 22px rgba(15,23,42,.08);overflow:hidden;margin-bottom:14px}
  .parent-week-table td{border:0!important;border-bottom:1px solid #eef2ff!important;background:#fff!important;padding:10px 12px!important}
  .parent-week-table td:last-child{border-bottom:0!important}
  .parent-week-table .child-sticky{position:static!important;min-width:0!important;background:linear-gradient(135deg,#eff6ff,#fff)!important;border-bottom:2px solid #bfdbfe!important}
  .parent-week-table .child-sticky .link-child{width:100%;justify-content:flex-start;text-align:left;font-size:17px}
  .parent-week-table td:not(.child-sticky):before{display:block;font-weight:950;color:#1e3a8a;margin-bottom:7px;font-size:14px;letter-spacing:.02em}
  .parent-week-table td:nth-child(2):before{content:'Lundi'}
  .parent-week-table td:nth-child(3):before{content:'Mardi'}
  .parent-week-table td:nth-child(4):before{content:'Mercredi'}
  .parent-week-table td:nth-child(5):before{content:'Jeudi'}
  .parent-week-table td:nth-child(6):before{content:'Vendredi'}
  .parent-week-table .mini-check{display:grid!important;grid-template-columns:26px 28px 1fr;align-items:center;width:100%;padding:11px 12px!important;margin:7px 0!important;border-radius:14px!important;font-size:15px;background:#fbfdff!important}
  .parent-week-table .mini-check input{width:22px!important;height:22px!important}
  .parent-week-table .closed-cell{background:#f8fafc!important;color:#94a3b8!important;text-align:left!important;font-weight:800}
}

/* V13.01 - Alertes compactes : une ligne + detail deplie */
.v1301-alert-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
  padding:8px 10px!important;
}
.v1301-alert-row .work-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  white-space:nowrap!important;
}
.v1301-alert-details{
  min-width:0!important;
}
.v1301-alert-details summary{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  cursor:pointer!important;
  list-style:none!important;
}
.v1301-alert-details summary::-webkit-details-marker{
  display:none!important;
}
.v1301-alert-details summary:before{
  content:"›";
  flex:0 0 auto;
  color:#2563eb;
  font-weight:900;
  transition:transform .18s ease;
}
.v1301-alert-details[open] summary:before{
  transform:rotate(90deg);
}
.v1301-alert-title{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-weight:800!important;
  color:#0f172a!important;
}
.v1301-alert-kind{
  flex:0 1 auto!important;
  max-width:45%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#64748b!important;
  font-size:11px!important;
}
.alert-detail-content{
  margin:8px 0 0 18px!important;
  padding:8px 10px!important;
  border-radius:8px!important;
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
  color:#334155!important;
  font-size:12px!important;
  line-height:1.4!important;
}
.alert-detail-key{
  margin-top:4px!important;
  color:#64748b!important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;
  font-size:10px!important;
  word-break:break-all!important;
}
@media (max-width:640px){
  .v1301-alert-row{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .v1301-alert-row .work-actions{
    justify-content:flex-start!important;
  }
  .v1301-alert-kind{
    max-width:38%!important;
  }
}

/* V12.81 - mobile service rows: keep child + info on one clean line */
@media (max-width:760px){
  .service-card .dense-list,
  .service-card .compact-list,
  .v1179-compact-only,
  .v1180-compact-only,
  .dense-list{
    gap:6px!important;
  }
  .service-card .work-row,
  .dense-list .work-row,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row,
  .service-card .work-row.v56-row,
  .service-card .work-row.v1164-row,
  .service-card .work-row.v1180-row,
  .service-card .work-row.v1178-cantine-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:7px!important;
    min-height:42px!important;
    padding:7px 8px!important;
    overflow:hidden!important;
  }
  .service-card .child-line,
  .dense-list .child-line,
  .v1179-compact-only .child-line,
  .v1180-compact-only .child-line,
  .service-card .v56-child-line,
  .service-card .v58-one-line,
  .service-card .v1180-child-line,
  .service-card .v1178-cantine-line{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:4px!important;
    min-width:0!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  .service-card .child-line b,
  .dense-list .child-line b,
  .v1179-compact-only .child-line b,
  .v1180-compact-only .child-line b,
  .service-card .v56-child-line b,
  .service-card .v58-one-line b{
    display:inline-block!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:12px!important;
    line-height:1.1!important;
  }
  .service-card .child-line small,
  .dense-list .child-line small,
  .v1179-compact-only .child-line small,
  .v1180-compact-only .child-line small,
  .service-card .v56-child-line small,
  .service-card .v58-one-line small{
    flex:0 0 auto!important;
    min-width:auto!important;
    margin-left:2px!important;
    font-size:10px!important;
    line-height:1!important;
  }
  .service-card .alert-dot,
  .dense-list .alert-dot,
  .v1179-compact-only .alert-dot,
  .v1180-compact-only .alert-dot,
  .service-card .badge,
  .service-card .pill{
    flex:0 0 auto!important;
    max-width:72px!important;
    min-height:0!important;
    padding:3px 5px!important;
    font-size:10px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .service-card .work-actions,
  .dense-list .work-actions,
  .v1179-compact-only .work-actions,
  .v1180-compact-only .work-actions,
  .service-card .action-group,
  .service-card .v56-actions,
  .service-card .v1180-actions,
  .service-card .v1178-cantine-actions{
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    min-width:max-content!important;
    overflow:visible!important;
  }
  .service-card .work-actions button,
  .dense-list .work-actions button,
  .v1179-compact-only .work-actions button,
  .v1180-compact-only .work-actions button,
  .service-card .action-group button,
  .service-card .compact-action{
    width:auto!important;
    min-width:0!important;
    padding:5px 7px!important;
    border-radius:8px!important;
    font-size:10px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .service-card .work-actions .pill:not(.strong-pill),
  .dense-list .work-actions .pill:not(.strong-pill),
  .v1179-compact-only .work-actions .pill:not(.strong-pill),
  .v1180-compact-only .work-actions .pill:not(.strong-pill),
  .service-card .work-actions .light{
    display:none!important;
  }
}

@media (max-width:390px){
  .service-card .work-row,
  .service-card .work-row.v56-row,
  .service-card .work-row.v1164-row,
  .service-card .work-row.v1180-row,
  .service-card .work-row.v1178-cantine-row{
    gap:5px!important;
    padding:6px!important;
  }
  .service-card .child-line b,
  .service-card .v56-child-line b,
  .service-card .v58-one-line b{
    font-size:11px!important;
  }
  .service-card .work-actions button,
  .service-card .action-group button,
  .service-card .compact-action{
    padding:5px 6px!important;
    font-size:9px!important;
  }
}

/* V12.83 - minuscule ecran: normal + compact restent sur une seule ligne */
@media (max-width:760px){
  #svcContent .work-row,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) max-content!important;
    align-items:center!important;
    gap:4px!important;
    width:100%!important;
    max-width:100%!important;
    min-height:34px!important;
    padding:5px 6px!important;
    overflow:hidden!important;
  }
  #svcContent .child-line,
  .v1179-compact-only .child-line,
  .v1180-compact-only .child-line{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    gap:3px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child,
  .v1179-compact-only .link-child,
  .v1180-compact-only .link-child,
  #svcContent .v1180-id,
  .v1179-compact-only .v1180-id,
  .v1180-compact-only .v1180-id{
    min-width:0!important;
    max-width:100%!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child b,
  .v1179-compact-only .link-child b,
  .v1180-compact-only .link-child b,
  #svcContent .v1180-id b,
  .v1179-compact-only .v1180-id b,
  .v1180-compact-only .v1180-id b{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:10px!important;
    line-height:1!important;
  }
  #svcContent .link-child small,
  .v1179-compact-only .link-child small,
  .v1180-compact-only .link-child small,
  #svcContent .v1180-id small,
  .v1179-compact-only .v1180-id small,
  .v1180-compact-only .v1180-id small{
    flex:0 0 auto!important;
    font-size:8px!important;
    line-height:1!important;
    margin:0!important;
  }
  #svcContent .child-line .pill,
  #svcContent .child-line .badge,
  #svcContent .child-line .alert-dot,
  .v1179-compact-only .child-line .pill,
  .v1179-compact-only .child-line .badge,
  .v1179-compact-only .child-line .alert-dot,
  .v1180-compact-only .child-line .pill,
  .v1180-compact-only .child-line .badge,
  .v1180-compact-only .child-line .alert-dot,
  #svcContent .v1180-health,
  .v1179-compact-only .v1180-health,
  .v1180-compact-only .v1180-health{
    flex:0 0 auto!important;
    max-width:34px!important;
    padding:2px 3px!important;
    font-size:8px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  .v1179-compact-only .work-actions,
  .v1179-compact-only .action-group,
  .v1180-compact-only .work-actions,
  .v1180-compact-only .action-group{
    grid-column:2!important;
    grid-row:1!important;
    min-width:max-content!important;
    max-width:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:2px!important;
    overflow:visible!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    width:auto!important;
    min-width:0!important;
    min-height:20px!important;
    max-width:44px!important;
    padding:4px 5px!important;
    border-radius:7px!important;
    font-size:8px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
  #svcContent .v56-primary,
  .v1179-compact-only .v56-primary,
  .v1180-compact-only .v56-primary{
    max-width:38px!important;
  }
  #svcContent .v56-options,
  .v1179-compact-only .v56-options,
  .v1180-compact-only .v56-options{
    flex:0 0 auto!important;
  }
  #svcContent .v56-options summary,
  .v1179-compact-only .v56-options summary,
  .v1180-compact-only .v56-options summary{
    width:20px!important;
    height:20px!important;
    min-width:20px!important;
    min-height:20px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
  }
}

@media (max-width:390px){
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    max-width:35px!important;
    padding:4px!important;
    font-size:7.5px!important;
  }
}

/* V11.16 - Responsive mobile global admin + parent */
@media(max-width:760px){
  html,body{overflow-x:hidden!important}
  body{background:#f5f8fc!important}
  .app{display:block!important;min-height:100vh!important}
  .main{padding:12px!important;overflow:visible!important;width:100%!important}
  .topbar{position:sticky!important;top:0!important;z-index:90!important;background:rgba(245,248,252,.96)!important;backdrop-filter:blur(10px);border-bottom:1px solid #e5edf7!important;padding:10px 12px!important;margin:-12px -12px 12px!important}
  .topbar,.topbar-actions,.row,.toolbar{max-width:100%!important}
  .topbar{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important}
  .topbar-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
  .topbar-actions button,.topbar-actions .btn{width:100%!important;min-height:44px!important;border-radius:14px!important}
  .top h1{font-size:25px!important;line-height:1.1!important}
  .subtitle{font-size:13px!important}
  .card,.subcard{border-radius:20px!important;padding:14px!important;margin-bottom:12px!important;box-shadow:0 6px 18px rgba(15,23,42,.06)!important}
  .grid,.cols2,.cols3,.formgrid,.checkgrid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  .toolbar{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important}
  .toolbar .field,.toolbar button,.toolbar .btn{width:100%!important;min-width:0!important}
  .field{min-width:0!important;width:100%!important}
  input,select,textarea{min-height:46px!important;font-size:16px!important;border-radius:14px!important}
  button,.btn{min-height:44px!important;border-radius:14px!important;white-space:normal!important}
  button.small{min-height:38px!important;padding:8px 10px!important}
  .btnrow,.row{display:flex!important;gap:8px!important;align-items:stretch!important;flex-wrap:wrap!important}
  .btnrow>*,.row>button,.row>.btn{flex:1 1 145px!important}
  .service-toolbar-pro{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;align-items:stretch!important}
  .service-date-center{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;justify-content:stretch!important;min-width:0!important;width:100%!important}
  .service-date-center .field{grid-column:1/-1!important}
  .service-date-center #todayBtn{width:100%!important}
  .smart-search.v11-search{width:100%!important;max-width:none!important;min-width:0!important;margin:0!important}
  .smart-search.v11-search .search-wrap{min-height:52px!important;border-width:2px!important}
  .suggestions{position:fixed!important;left:12px!important;right:12px!important;top:auto!important;bottom:12px!important;max-height:46vh!important;border-radius:20px!important;z-index:2000!important}
  .suggestions button{min-height:52px!important;font-size:16px!important}
  .service-summary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .mini-kpi{padding:10px!important;border-radius:14px!important}.mini-kpi b{font-size:19px!important}.mini-kpi span{font-size:11px!important}
  .compact-list,.dense-list,.cards-list{display:grid!important;gap:10px!important}
  .person-card{display:grid!important;grid-template-columns:42px 1fr!important;gap:10px!important;align-items:center!important;padding:12px!important;border-radius:18px!important}
  .person-card .avatar{width:42px!important;height:42px!important;border-radius:14px!important}
  .person-card .btnrow,.person-card .row{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
  .person-card button{width:100%!important}
  .modal-back{padding:0!important;align-items:end!important}
  .modal{width:100%!important;max-height:94vh!important;border-radius:22px 22px 0 0!important}
  .modal-head,.modal-foot{padding:12px!important}.modal-body{padding:12px!important}
  .modal-foot{display:grid!important;grid-template-columns:1fr!important}.modal-foot button{width:100%!important}
  .tabs{display:flex!important;overflow-x:auto!important;flex-wrap:nowrap!important;padding-bottom:6px!important;scroll-snap-type:x mandatory!important}.tab{flex:0 0 auto!important;scroll-snap-align:start!important}
  .table-wrap{overflow:visible!important;border:0!important;background:transparent!important;border-radius:0!important}
  .table-wrap table:not(.parent-week-table){display:block!important;width:100%!important;background:transparent!important;border-collapse:separate!important;border-spacing:0!important}
  .table-wrap table:not(.parent-week-table) thead{display:none!important}
  .table-wrap table:not(.parent-week-table) tbody{display:grid!important;gap:12px!important;width:100%!important}
  .table-wrap table:not(.parent-week-table) tr{display:block!important;background:#fff!important;border:1px solid #dbe5f0!important;border-radius:18px!important;padding:10px!important;box-shadow:0 8px 20px rgba(15,23,42,.06)!important;overflow:hidden!important}
  .table-wrap table:not(.parent-week-table) td{display:grid!important;grid-template-columns:minmax(92px,36%) 1fr!important;gap:10px!important;align-items:center!important;width:100%!important;border:0!important;border-bottom:1px solid #edf2f7!important;padding:9px 4px!important;text-align:left!important;min-height:34px!important;background:transparent!important;font-size:14px!important}
  .table-wrap table:not(.parent-week-table) td:last-child{border-bottom:0!important}
  .table-wrap table:not(.parent-week-table) td:before{content:attr(data-label);font-size:11px!important;font-weight:950!important;text-transform:uppercase!important;letter-spacing:.04em!important;color:#64748b!important;line-height:1.2!important}
  .table-wrap table:not(.parent-week-table) td[colspan]:before{content:''!important;display:none!important}
  .table-wrap table:not(.parent-week-table) td[colspan]{display:block!important;text-align:center!important;color:#64748b!important}
  .table-wrap table:not(.parent-week-table) td .btnrow,.table-wrap table:not(.parent-week-table) td .row{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
  .table-wrap table:not(.parent-week-table) td button,.table-wrap table:not(.parent-week-table) td .btn{width:100%!important;min-height:40px!important}
  /* V4.0.54 : le motif generique "tableau -> cartes empilees" ci-dessus (.table-wrap
     table:not(.parent-week-table)...) ne convient pas a une grille calendrier - avec 30
     colonnes jour, ca donnerait 30 cartes empilees par enfant, illisible. La grille
     reservations garde son vrai tableau avec scroll horizontal sur mobile aussi, colonnes
     resserrees. Specificite egale au motif generique (deux classes + table + td) pour
     gagner sur l'ordre de declaration, plutot qu'une regle plus specifique qui romprait
     silencieusement si le motif generique est un jour renforce.
  */
  .table-wrap.reservation-admin-grid table{display:table!important;width:auto!important;min-width:100%!important}
  .table-wrap.reservation-admin-grid table thead{display:table-header-group!important}
  .table-wrap.reservation-admin-grid table tbody{display:table-row-group!important;width:auto!important}
  .table-wrap.reservation-admin-grid table tr{display:table-row!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important}
  .table-wrap.reservation-admin-grid table th,.table-wrap.reservation-admin-grid table td{display:table-cell!important;grid-template-columns:none!important;width:auto!important;border:0!important;border-bottom:1px solid var(--line)!important;padding:6px 5px!important;text-align:center!important;min-height:0!important;background:#fff!important;font-size:12px!important}
  .table-wrap.reservation-admin-grid table td:before{content:none!important}
  .reservation-admin-grid th,.reservation-admin-grid td{min-width:38px!important}
  .reservation-admin-grid th:first-child,.reservation-admin-grid td:first-child{min-width:120px!important;text-align:left!important}
  .reservation-admin-grid .mini-check{width:100%!important;justify-content:flex-start!important;margin:4px 0!important}
  .doc-admin-row{grid-template-columns:42px 1fr!important}.doc-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.doc-actions>*{width:100%!important}
  .kpi{align-items:center!important}.kpi .ico{width:44px!important;height:44px!important;border-radius:15px!important}.kpi strong{font-size:24px!important}
}
@media(max-width:420px){
  .service-summary{grid-template-columns:1fr!important}
  .topbar-actions{grid-template-columns:1fr!important}
  .service-date-center{grid-template-columns:1fr!important}
  .table-wrap table:not(.parent-week-table) td{grid-template-columns:1fr!important;gap:3px!important}
  .table-wrap table:not(.parent-week-table) td:before{margin-bottom:2px!important}
}

/* V11.17 - bloc compte parent / renvoi identifiants */
.parent-account-panel{border-left:5px solid var(--primary,#2563eb);background:linear-gradient(180deg,#ffffff,#f8fbff)}
.account-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 14px}
.account-status-grid>div{background:#f3f6fb;border:1px solid #dde5f0;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}
.account-status-grid b{font-size:12px;color:#667085;text-transform:uppercase;letter-spacing:.03em}.account-status-grid span{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ok-text{color:#15803d}.bad-text{color:#dc2626}.row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.account-status-grid{grid-template-columns:1fr 1fr}.row-actions{justify-content:flex-start}.parent-account-panel .toolbar button{width:100%}}

/* V11.18 - Onglet Accès famille */
.parent-account-panel{margin-top:0;border:1px solid var(--border, #d8e0ea);background:#fff;border-radius:18px;padding:18px;box-shadow:0 8px 22px rgba(15,23,42,.06)}
.account-access-head h3{margin:0 0 4px;font-size:1.15rem}.access-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0}.access-grid>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:12px}.access-grid b{display:block;font-size:.78rem;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}.access-grid span{font-weight:700;color:#111827}.access-actions{margin-top:12px}.bad-text{color:#b91c1c!important}.ok-text{color:#15803d!important}.error.roomy{padding:14px;border-radius:14px;margin-top:10px}

/* V11.19 réelle */
.period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.period-card{border:1px solid var(--border,#dde3ea);border-radius:18px;background:#fff;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.period-card h3{margin:0 0 4px}.period-card p{margin:0;color:#64748b}.roomy{padding:14px;margin:12px 0}.danger-zone{border:1px solid #fecaca;background:#fff1f2;border-radius:16px;padding:16px}.success{background:#ecfdf5;border:1px solid #bbf7d0;color:#166534;border-radius:14px;padding:12px;margin-bottom:12px}.ok-text{color:#15803d;font-weight:700}.bad-text{color:#b91c1c;font-weight:700}.account-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.account-status-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px}.account-status-grid b{display:block;color:#475569;font-size:12px;text-transform:uppercase}.account-status-grid span{font-weight:700}.modal .table-wrap table select{min-width:140px}@media(max-width:700px){.period-card{display:block}.period-card button{width:100%;margin-top:12px}.modal .table-wrap{overflow-x:auto}.account-status-grid{grid-template-columns:1fr}}

/* V11.20 - tableaux réservés et pointage journalier ALSH/Mercredis */
.v1120-period-grid{gap:16px}
.v1120-period-card{align-items:center;gap:16px}
.v1120-period-card .pc-main{flex:1;min-width:220px}
.period-actions{justify-content:flex-end;flex-wrap:wrap}
.v1120-att-toolbar{align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.v1120-att-toolbar .field{min-width:220px;max-width:320px}
.v1120-att-table table th:nth-child(1),.v1120-att-table table td:nth-child(1){width:90px}
.v1120-att-table table th:nth-child(4),.v1120-att-table table td:nth-child(4){width:120px}
.v1120-att-table table th:nth-child(5),.v1120-att-table table td:nth-child(5),.v1120-att-table table th:nth-child(6),.v1120-att-table table td:nth-child(6){width:160px}
@media(max-width:720px){
  .v1120-period-card{display:block}
  .v1120-period-card .period-actions{margin-top:12px;justify-content:stretch}
  .v1120-period-card .period-actions button{width:100%}
}

/* V11.21 */
.nav button.active,[data-p].active{background:#fff!important;color:#0f172a!important;box-shadow:0 8px 22px rgba(15,23,42,.12);font-weight:800}
.period-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.v1120-period-card{align-items:center;gap:14px}.v1120-period-card .pc-main{flex:1;min-width:260px}.closed-cell.day-holiday,.closed-cell.day-exceptional-close,.closed-cell.day-vacances,.closed-cell.day-closed{background:#eef2f7!important;color:#64748b!important;text-align:center;vertical-align:middle}.closed-label{display:inline-flex;align-items:center;justify-content:center;min-height:42px;font-weight:800;color:#64748b}.closed-cell.day-holiday .closed-label{color:#b42318}.closed-cell.day-exceptional-close .closed-label{color:#9a3412}.closed-cell.day-vacances .closed-label{color:#475569}
@media(max-width:720px){.period-actions{justify-content:stretch}.period-actions button{width:100%}.v1120-period-card{align-items:stretch}.closed-label{min-height:56px}.parent-week-table td.closed-cell{display:flex!important;align-items:center;justify-content:center;border-radius:14px;margin:6px 0}}

/* V11.23 alertes regroupées */
.alert-family-group{border:1px solid #e2e8f0;border-radius:16px;margin:10px 0;background:#fff;overflow:hidden}
.alert-family-head{width:100%;display:flex;align-items:center;gap:10px;justify-content:flex-start;background:#f8fafc;color:#0f172a;border:0;border-radius:0;padding:12px 14px;box-shadow:none;text-align:left}
.alert-family-head:hover{background:#eef6ff;transform:none}
.alert-family-head em{margin-left:auto;font-style:normal;color:#64748b;font-size:.86rem;font-weight:600}
.alert-family-body{padding:8px 10px;display:block}
.alert-family-body.collapsed{display:none}
.compact-alert{margin:6px 0;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.compact-alert .alert-main b{font-size:.95rem}.compact-alert .alert-main span{color:#334155}.compact-alert .alert-main small{display:block;color:#64748b;margin-top:2px}

/* V11.24 */
.alsh-only-family-box{border-left:5px solid #f97316;background:#fff7ed}
.big-check{font-size:16px;font-weight:900;display:flex;gap:10px;align-items:center;margin:10px 0}
.big-check input{width:22px;height:22px}
.alert-family-head{gap:10px}
.alert-family-head .small{margin-left:auto;white-space:nowrap}
.alert-family-head em{margin-left:auto}
.alert-family-head .small + em,.alert-family-head em + .small{margin-left:8px}

/* V11.31 - Correctif menu mobile : le bouton ☰ ouvre réellement la barre latérale */
@media(max-width:980px){
  body.menu-open{overflow:hidden;}
  body.menu-open .side{transform:translateX(0)!important;}
  .side{will-change:transform;}
  .side-inner{overflow-y:auto;overflow-x:hidden;}
  body.menu-open::after{
    content:'';
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.42);
    z-index:70;
  }
  body.menu-open .side{z-index:90;}
  .topbar{z-index:60;}
}


/* V11.32 - Mobile : barre supérieure compacte en bulle utilisateur */
.user-bubble{display:none!important}
@media(max-width:980px){
  .topbar{
    height:56px!important;
    min-height:56px!important;
    padding:8px 10px!important;
    margin:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
    background:rgba(245,248,252,.96)!important;
    border-bottom:1px solid #e5edf7!important;
    box-shadow:0 8px 24px rgba(15,23,42,.06)!important;
  }
  .topbar-title{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    min-width:0!important;
    flex:1 1 auto!important;
  }
  .topbar-title strong{font-size:15px!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .topbar-title span{display:none!important}
  .hamb{width:38px!important;height:38px!important;min-width:38px!important;border-radius:14px!important;flex:0 0 38px!important}
  .user-bubble{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    border-radius:999px!important;
    background:#eef5ff!important;
    color:#1d4ed8!important;
    box-shadow:0 8px 22px rgba(37,99,235,.16)!important;
    padding:0!important;
    font-size:20px!important;
    z-index:95!important;
  }
  .topbar-actions{
    display:none!important;
    position:absolute!important;
    top:58px!important;
    right:10px!important;
    width:min(310px,calc(100vw - 20px))!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:12px!important;
    border:1px solid #dbeafe!important;
    border-radius:20px!important;
    background:#fff!important;
    box-shadow:0 22px 60px rgba(15,23,42,.24)!important;
    z-index:100!important;
  }
  body.user-panel-open .topbar-actions{display:grid!important}
  .topbar-actions button,.topbar-actions .btn{
    width:100%!important;
    min-height:42px!important;
    border-radius:14px!important;
  }
  .top-user{grid-column:auto!important;text-align:center!important;justify-content:center!important}
  .main{padding-top:12px!important}
  .side{top:56px!important;bottom:0!important;height:calc(100vh - 56px)!important}
}

/* V11.33 - Recherche enfant mobile : résultats visibles et utilisables */
@media (max-width: 760px){
  .smart-search.v11-search{
    position: relative !important;
    z-index: 120 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow: visible !important;
    margin-bottom: 10px !important;
  }
  .smart-search.v11-search .search-wrap{
    min-height: 58px !important;
    border: 2px solid #93c5fd !important;
    background: #fff !important;
    box-shadow: 0 10px 28px rgba(37,99,235,.12) !important;
  }
  .smart-search.v11-search input{
    font-size: 18px !important;
    line-height: 1.25 !important;
    min-height: 40px !important;
  }
  .smart-search.v11-search .suggestions{
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: 100% !important;
    margin-top: 10px !important;
    border: 2px solid #bfdbfe !important;
    border-radius: 18px !important;
    box-shadow: 0 16px 40px rgba(15,23,42,.20) !important;
    max-height: 48vh !important;
    overflow-y: auto !important;
    background: #fff !important;
    z-index: 9999 !important;
  }
  .smart-search.v11-search .suggestions button{
    min-height: 58px !important;
    padding: 13px 14px !important;
    font-size: 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    white-space: normal !important;
    text-align: left !important;
  }
  .smart-search.v11-search .suggestions button b,
  .smart-search.v11-search .suggestions button strong{
    font-size: 17px !important;
  }
  .smart-search.v11-search .suggestions small{
    display: block !important;
    margin-top: 3px !important;
    font-size: 13px !important;
    color: #64748b !important;
  }
  .service-toolbar-pro{
    overflow: visible !important;
  }
  .toolbar,
  .card,
  .subcard{
    overflow: visible !important;
  }
}

/* V12.44 - animation douce des titres de groupes du menu */
@media(min-width:981px){
  .app.v11 .nav-groups details,
  .app.v11 .premium-nav details{
    overflow:hidden!important;
    transition:
      margin .34s cubic-bezier(.22,1,.36,1),
      padding .34s cubic-bezier(.22,1,.36,1),
      border-color .26s ease,
      background-color .26s ease!important;
  }
  .app.v11 .nav-groups summary,
  .app.v11 .premium-nav summary{
    display:flex!important;
    align-items:center!important;
    overflow:hidden!important;
    max-height:34px!important;
    min-height:24px!important;
    opacity:1!important;
    transform:translateY(0) scaleY(1)!important;
    transform-origin:center top!important;
    padding-top:7px!important;
    padding-bottom:7px!important;
    margin-top:0!important;
    margin-bottom:5px!important;
    pointer-events:auto!important;
    transition:
      max-height .34s cubic-bezier(.22,1,.36,1),
      min-height .34s cubic-bezier(.22,1,.36,1),
      padding .34s cubic-bezier(.22,1,.36,1),
      margin .34s cubic-bezier(.22,1,.36,1),
      opacity .2s ease,
      transform .34s cubic-bezier(.22,1,.36,1)!important;
    will-change:max-height,min-height,padding,margin,opacity,transform!important;
  }
  body.menu-collapsed .app.v11 .nav-groups details,
  body.menu-collapsed .app.v11 .premium-nav details{
    margin:2px 0!important;
    padding:0!important;
    border-color:transparent!important;
    background-color:transparent!important;
  }
  body.menu-collapsed .app.v11 .nav-groups summary,
  body.menu-collapsed .app.v11 .premium-nav summary{
    display:flex!important;
    max-height:0!important;
    min-height:0!important;
    height:auto!important;
    opacity:0!important;
    transform:translateY(-8px) scaleY(.72)!important;
    padding-top:0!important;
    padding-bottom:0!important;
    margin-top:0!important;
    margin-bottom:0!important;
    pointer-events:none!important;
  }
  body.menu-is-animating .app.v11 .nav-groups summary,
  body.menu-is-animating .app.v11 .premium-nav summary{
    display:flex!important;
  }
}

/* V12.82 - surcharge finale smartphone pointage: une ligne, zero chevauchement */
@media (max-width:760px){
  #svcContent .compact-list,
  #svcContent .dense-list,
  #svcContent .v1179-compact-only,
  #svcContent .v1180-compact-only{
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    min-width:0!important;
  }
  #svcContent .work-row,
  #svcContent .work-row-readable,
  #svcContent .v56-row,
  #svcContent .v1164-row,
  #svcContent .v1178-cantine-row,
  #svcContent .v1180-row{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    min-height:38px!important;
    padding:6px 7px!important;
    overflow:hidden!important;
  }
  #svcContent .child-line,
  #svcContent .same-line-alert,
  #svcContent .v56-child-line,
  #svcContent .v58-one-line,
  #svcContent .v1178-cantine-line,
  #svcContent .v1180-child-line{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:none!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:4px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child,
  #svcContent .v1180-id{
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    display:inline-flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:4px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child b,
  #svcContent .v1180-id b{
    display:inline-block!important;
    max-width:128px!important;
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1!important;
  }
  #svcContent .link-child small,
  #svcContent .v1180-id small,
  #svcContent .child-line small{
    display:inline-block!important;
    flex:0 0 auto!important;
    min-width:auto!important;
    margin:0!important;
    color:#667!important;
    font-size:9px!important;
    line-height:1!important;
  }
  #svcContent .child-line .badge,
  #svcContent .child-line .pill,
  #svcContent .child-line .alert-dot,
  #svcContent .v1180-health,
  #svcContent .v1164-medical-badge{
    flex:0 0 auto!important;
    max-width:42px!important;
    min-width:0!important;
    padding:2px 4px!important;
    font-size:9px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  #svcContent .v56-actions,
  #svcContent .v1178-cantine-actions,
  #svcContent .v1180-actions{
    flex:0 0 auto!important;
    min-width:max-content!important;
    max-width:45%!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
    overflow:visible!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  #svcContent .compact-action{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    min-height:22px!important;
    padding:5px 6px!important;
    border-radius:7px!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions .light,
  #svcContent .work-actions .pill:not(.strong-pill),
  #svcContent .work-actions .badge{
    display:none!important;
  }
}

@media (max-width:390px){
  #svcContent .work-row,
  #svcContent .work-row-readable,
  #svcContent .v56-row,
  #svcContent .v1164-row,
  #svcContent .v1178-cantine-row,
  #svcContent .v1180-row{
    gap:4px!important;
    padding:5px 6px!important;
  }
  #svcContent .link-child b,
  #svcContent .v1180-id b{
    max-width:102px!important;
    font-size:10.5px!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  #svcContent .v56-actions,
  #svcContent .v1178-cantine-actions,
  #svcContent .v1180-actions{
    max-width:48%!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  #svcContent .compact-action{
    padding:5px!important;
    font-size:8.5px!important;
  }
}

/* V12.83 FINAL EOF - petites largeurs: aucune superposition, normal et compact */
@media (max-width:760px){
  #svcContent .work-row,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) max-content!important;
    align-items:center!important;
    gap:4px!important;
    width:100%!important;
    min-height:34px!important;
    padding:5px 6px!important;
    overflow:hidden!important;
  }
  #svcContent .child-line,
  .v1179-compact-only .child-line,
  .v1180-compact-only .child-line{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    gap:3px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child,
  #svcContent .v1180-id,
  .v1179-compact-only .link-child,
  .v1179-compact-only .v1180-id,
  .v1180-compact-only .link-child,
  .v1180-compact-only .v1180-id{
    min-width:0!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child b,
  #svcContent .v1180-id b,
  .v1179-compact-only .link-child b,
  .v1179-compact-only .v1180-id b,
  .v1180-compact-only .link-child b,
  .v1180-compact-only .v1180-id b{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:10px!important;
    line-height:1!important;
  }
  #svcContent .link-child small,
  #svcContent .v1180-id small,
  .v1179-compact-only .link-child small,
  .v1179-compact-only .v1180-id small,
  .v1180-compact-only .link-child small,
  .v1180-compact-only .v1180-id small{
    flex:0 0 auto!important;
    font-size:8px!important;
    line-height:1!important;
    margin:0!important;
  }
  #svcContent .child-line .pill,
  #svcContent .child-line .badge,
  #svcContent .child-line .alert-dot,
  #svcContent .v1180-health,
  .v1179-compact-only .child-line .pill,
  .v1179-compact-only .child-line .badge,
  .v1179-compact-only .child-line .alert-dot,
  .v1179-compact-only .v1180-health,
  .v1180-compact-only .child-line .pill,
  .v1180-compact-only .child-line .badge,
  .v1180-compact-only .child-line .alert-dot,
  .v1180-compact-only .v1180-health{
    flex:0 0 auto!important;
    max-width:34px!important;
    padding:2px 3px!important;
    font-size:8px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  .v1179-compact-only .work-actions,
  .v1179-compact-only .action-group,
  .v1180-compact-only .work-actions,
  .v1180-compact-only .action-group{
    min-width:max-content!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:2px!important;
    overflow:visible!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    width:auto!important;
    min-width:0!important;
    min-height:20px!important;
    max-width:38px!important;
    padding:4px 5px!important;
    border-radius:7px!important;
    font-size:8px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  #svcContent .work-actions .light,
  #svcContent .work-actions .pill:not(.strong-pill),
  #svcContent .work-actions .badge,
  .v1179-compact-only .work-actions .light,
  .v1179-compact-only .work-actions .pill:not(.strong-pill),
  .v1179-compact-only .work-actions .badge,
  .v1180-compact-only .work-actions .light,
  .v1180-compact-only .work-actions .pill:not(.strong-pill),
  .v1180-compact-only .work-actions .badge{
    display:none!important;
  }
  #svcContent .v56-options summary,
  .v1179-compact-only .v56-options summary,
  .v1180-compact-only .v56-options summary{
    width:20px!important;
    height:20px!important;
    min-width:20px!important;
    min-height:20px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
  }
}

@media (max-width:390px){
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    max-width:34px!important;
    padding:4px!important;
    font-size:7.5px!important;
  }
}

/* V12.85 EOF - pointage telephone: cible aussi le mode normal hors #svcContent */
@media (max-width:760px){
  .v1180-daily-main .compact-list,
  .v1180-daily-main .dense-list,
  .service-card .compact-list,
  .service-card .dense-list,
  .v1179-compact-only,
  .v1180-compact-only{
    min-width:0!important;
    width:100%!important;
    overflow:visible!important;
  }

  .v1180-daily-main .work-row,
  .v1180-daily-main .v56-row.work-row-readable,
  .service-card .work-row,
  .service-card .v56-row.work-row-readable,
  #svcContent .work-row,
  #svcContent .v56-row.work-row-readable,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"child actions"!important;
    align-items:center!important;
    gap:5px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:32px!important;
    padding:5px 6px!important;
    overflow:visible!important;
  }

  .v1180-daily-main .child-line,
  .v1180-daily-main .v56-child-line,
  .v1180-daily-main .v1180-child-line,
  .service-card .child-line,
  .service-card .v56-child-line,
  .service-card .v1180-child-line,
  #svcContent .child-line,
  #svcContent .v56-child-line,
  #svcContent .v1180-child-line,
  .v1179-compact-only .child-line,
  .v1179-compact-only .v56-child-line,
  .v1179-compact-only .v1180-child-line,
  .v1180-compact-only .child-line,
  .v1180-compact-only .v56-child-line,
  .v1180-compact-only .v1180-child-line{
    grid-area:child!important;
    min-width:0!important;
    width:auto!important;
    max-width:100%!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:3px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    border-bottom:0!important;
    padding-bottom:0!important;
  }

  .v1180-daily-main .link-child,
  .v1180-daily-main .v56-child-id,
  .v1180-daily-main .v1180-id,
  .service-card .link-child,
  .service-card .v56-child-id,
  .service-card .v1180-id,
  #svcContent .link-child,
  #svcContent .v56-child-id,
  #svcContent .v1180-id,
  .v1179-compact-only .link-child,
  .v1179-compact-only .v56-child-id,
  .v1179-compact-only .v1180-id,
  .v1180-compact-only .link-child,
  .v1180-compact-only .v56-child-id,
  .v1180-compact-only .v1180-id{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }

  .v1180-daily-main .link-child b,
  .v1180-daily-main .v56-child-id b,
  .v1180-daily-main .v1180-id b,
  .service-card .link-child b,
  .service-card .v56-child-id b,
  .service-card .v1180-id b,
  #svcContent .link-child b,
  #svcContent .v56-child-id b,
  #svcContent .v1180-id b,
  .v1179-compact-only .link-child b,
  .v1179-compact-only .v56-child-id b,
  .v1179-compact-only .v1180-id b,
  .v1180-compact-only .link-child b,
  .v1180-compact-only .v56-child-id b,
  .v1180-compact-only .v1180-id b{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    display:block!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:10px!important;
    line-height:1.05!important;
  }

  .v1180-daily-main .link-child small,
  .v1180-daily-main .v56-child-id small,
  .v1180-daily-main .v1180-id small,
  .service-card .link-child small,
  .service-card .v56-child-id small,
  .service-card .v1180-id small,
  #svcContent .link-child small,
  #svcContent .v56-child-id small,
  #svcContent .v1180-id small,
  .v1179-compact-only .link-child small,
  .v1179-compact-only .v56-child-id small,
  .v1179-compact-only .v1180-id small,
  .v1180-compact-only .link-child small,
  .v1180-compact-only .v56-child-id small,
  .v1180-compact-only .v1180-id small{
    flex:0 0 auto!important;
    display:inline-block!important;
    min-width:18px!important;
    margin:0!important;
    font-size:7.5px!important;
    line-height:1!important;
    opacity:.75!important;
  }

  .v1180-daily-main .work-actions,
  .v1180-daily-main .action-group,
  .v1180-daily-main .v56-actions,
  .v1180-daily-main .v1180-actions,
  .service-card .work-actions,
  .service-card .action-group,
  .service-card .v56-actions,
  .service-card .v1180-actions,
  #svcContent .work-actions,
  #svcContent .action-group,
  #svcContent .v56-actions,
  #svcContent .v1180-actions,
  .v1179-compact-only .work-actions,
  .v1179-compact-only .action-group,
  .v1179-compact-only .v56-actions,
  .v1179-compact-only .v1180-actions,
  .v1180-compact-only .work-actions,
  .v1180-compact-only .action-group,
  .v1180-compact-only .v56-actions,
  .v1180-compact-only .v1180-actions{
    grid-area:actions!important;
    min-width:0!important;
    max-width:none!important;
    margin-left:0!important;
    padding-top:0!important;
    border-top:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:2px!important;
    overflow:visible!important;
  }

  .v1180-daily-main .work-actions .pill,
  .v1180-daily-main .work-actions .badge,
  .v1180-daily-main .work-actions .light,
  .service-card .work-actions .pill,
  .service-card .work-actions .badge,
  .service-card .work-actions .light,
  #svcContent .work-actions .pill,
  #svcContent .work-actions .badge,
  #svcContent .work-actions .light,
  .v1179-compact-only .work-actions .pill,
  .v1179-compact-only .work-actions .badge,
  .v1179-compact-only .work-actions .light,
  .v1180-compact-only .work-actions .pill,
  .v1180-compact-only .work-actions .badge,
  .v1180-compact-only .work-actions .light{
    display:none!important;
  }

  .v1180-daily-main .work-actions button,
  .v1180-daily-main .action-group button,
  .service-card .work-actions button,
  .service-card .action-group button,
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:36px!important;
    min-height:20px!important;
    padding:4px 5px!important;
    border-radius:7px!important;
    font-size:7.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }

  .v1180-daily-main .v56-options,
  .service-card .v56-options,
  #svcContent .v56-options,
  .v1179-compact-only .v56-options,
  .v1180-compact-only .v56-options{
    flex:0 0 auto!important;
    position:relative!important;
  }

  .v1180-daily-main .v56-options summary,
  .service-card .v56-options summary,
  #svcContent .v56-options summary,
  .v1179-compact-only .v56-options summary,
  .v1180-compact-only .v56-options summary{
    width:20px!important;
    min-width:20px!important;
    height:20px!important;
    min-height:20px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    font-size:12px!important;
  }
}

@media (max-width:390px){
  .v1180-daily-main .work-row,
  .v1180-daily-main .v56-row.work-row-readable,
  .service-card .work-row,
  .service-card .v56-row.work-row-readable,
  #svcContent .work-row,
  #svcContent .v56-row.work-row-readable,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:3px!important;
    padding:4px 5px!important;
  }
  .v1180-daily-main .child-line .pill,
  .v1180-daily-main .child-line .badge,
  .v1180-daily-main .v1180-health,
  .service-card .child-line .pill,
  .service-card .child-line .badge,
  .service-card .v1180-health,
  #svcContent .child-line .pill,
  #svcContent .child-line .badge,
  #svcContent .v1180-health,
  .v1179-compact-only .child-line .pill,
  .v1179-compact-only .child-line .badge,
  .v1179-compact-only .v1180-health,
  .v1180-compact-only .child-line .pill,
  .v1180-compact-only .child-line .badge,
  .v1180-compact-only .v1180-health{
    display:none!important;
  }
  .v1180-daily-main .work-actions button:not(.v56-primary),
  .service-card .work-actions button:not(.v56-primary),
  #svcContent .work-actions button:not(.v56-primary),
  .v1179-compact-only .work-actions button:not(.v56-primary),
  .v1180-compact-only .work-actions button:not(.v56-primary){
    display:none!important;
  }
  .v1180-daily-main .work-actions button.v56-primary,
  .service-card .work-actions button.v56-primary,
  #svcContent .work-actions button.v56-primary,
  .v1179-compact-only .work-actions button.v56-primary,
  .v1180-compact-only .work-actions button.v56-primary{
    max-width:28px!important;
    width:28px!important;
    padding:4px 3px!important;
    font-size:0!important;
  }
  .v1180-daily-main .work-actions button.v56-primary::first-letter,
  .service-card .work-actions button.v56-primary::first-letter,
  #svcContent .work-actions button.v56-primary::first-letter,
  .v1179-compact-only .work-actions button.v56-primary::first-letter,
  .v1180-compact-only .work-actions button.v56-primary::first-letter{
    font-size:11px!important;
  }
}

/* V12.81 final - lignes service mobile/compact sans superposition */
@media (max-width:760px){
  .dense-list .work-row,
  .compact-list .work-row,
  .service-card .work-row,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row,
  .v56-row.work-row-readable,
  .v1180-row,
  .v1178-cantine-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:6px!important;
    min-height:40px!important;
    padding:6px 7px!important;
    overflow:hidden!important;
  }
  .dense-list .child-line,
  .compact-list .child-line,
  .service-card .child-line,
  .v1179-compact-only .child-line,
  .v1180-compact-only .child-line,
  .v56-child-line,
  .v58-one-line,
  .v1180-child-line,
  .v1178-cantine-line{
    min-width:0!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    gap:4px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  .dense-list .link-child,
  .compact-list .link-child,
  .service-card .link-child,
  .v1180-id{
    min-width:0!important;
    max-width:100%!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:4px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  .dense-list .link-child b,
  .compact-list .link-child b,
  .service-card .link-child b,
  .v1180-id b{
    display:inline-block!important;
    min-width:0!important;
    max-width:clamp(78px,34vw,150px)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1.05!important;
  }
  .dense-list .link-child small,
  .compact-list .link-child small,
  .service-card .link-child small,
  .v1180-id small,
  .child-line small{
    flex:0 0 auto!important;
    min-width:auto!important;
    margin-left:0!important;
    font-size:9.5px!important;
    line-height:1!important;
  }
  .dense-list .alert-dot,
  .compact-list .alert-dot,
  .service-card .alert-dot,
  .dense-list .badge,
  .compact-list .badge,
  .service-card .badge,
  .dense-list .pill,
  .compact-list .pill,
  .service-card .pill{
    flex:0 1 auto!important;
    max-width:58px!important;
    padding:2px 5px!important;
    font-size:9.5px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .dense-list .work-actions,
  .compact-list .work-actions,
  .service-card .work-actions,
  .v1179-compact-only .work-actions,
  .v1180-compact-only .work-actions,
  .v56-actions,
  .v1180-actions,
  .v1178-cantine-actions{
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:3px!important;
    min-width:max-content!important;
    max-width:48vw!important;
    overflow:visible!important;
  }
  .dense-list .work-actions button,
  .compact-list .work-actions button,
  .service-card .work-actions button,
  .v1179-compact-only .work-actions button,
  .v1180-compact-only .work-actions button,
  .compact-action{
    width:auto!important;
    min-width:0!important;
    min-height:24px!important;
    padding:5px 6px!important;
    border-radius:8px!important;
    font-size:9.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .dense-list .work-actions .pill:not(.strong-pill),
  .compact-list .work-actions .pill:not(.strong-pill),
  .service-card .work-actions .pill:not(.strong-pill),
  .dense-list .work-actions .light,
  .compact-list .work-actions .light,
  .service-card .work-actions .light{
    display:none!important;
  }
}

@media (max-width:390px){
  .dense-list .work-row,
  .compact-list .work-row,
  .service-card .work-row,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    gap:4px!important;
    padding:5px!important;
  }
  .dense-list .link-child b,
  .compact-list .link-child b,
  .service-card .link-child b,
  .v1180-id b{
    max-width:clamp(68px,31vw,118px)!important;
  }
  .dense-list .work-actions,
  .compact-list .work-actions,
  .service-card .work-actions{
    max-width:50vw!important;
  }
}

/* V11.34 - Recherche enfant mobile : liste toujours sous le champ, pas en bas de page */
@media (max-width: 760px){
  .smart-search.v11-search .suggestions.mobile-suggestions{
    position: fixed !important;
    right: auto !important;
    bottom: auto !important;
    margin-top: 0 !important;
    display: block !important;
    z-index: 99999 !important;
    background: #fff !important;
    border: 2px solid #93c5fd !important;
    border-radius: 18px !important;
    box-shadow: 0 22px 60px rgba(15,23,42,.32) !important;
    overflow-y: auto !important;
    
  }
  .smart-search.v11-search .suggestions.mobile-suggestions:empty{display:none!important;}
  .smart-search.v11-search .suggestions.mobile-suggestions button{
    width:100%!important;
    min-height:64px!important;
    padding:14px 16px!important;
    background:#fff!important;
    color:#0f172a!important;
    border-bottom:1px solid #e2e8f0!important;
    border-radius:0!important;
    box-shadow:none!important;
    transform:none!important;
    justify-content:flex-start!important;
    align-items:flex-start!important;
    flex-direction:column!important;
    gap:4px!important;
    text-align:left!important;
  }
  .smart-search.v11-search .suggestions.mobile-suggestions button b{font-size:17px!important;line-height:1.15!important;}
  .smart-search.v11-search .suggestions.mobile-suggestions button small{font-size:13px!important;color:#64748b!important;margin:0!important;}
  .smart-search.v11-search .suggestions.mobile-suggestions .nores{padding:16px!important;font-weight:800;color:#64748b!important;}
}

/* V11.35 - Logo RPI + login responsive */
.logo img,.bigicon img{width:100%;height:100%;object-fit:contain;display:block}
.brand .logo{background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 8px 24px rgba(15,23,42,.08);overflow:hidden}
.bigicon.rpi-logo{width:132px;height:132px;margin:0 auto 10px;background:#fff;border-radius:34px;padding:10px;box-shadow:0 18px 45px rgba(15,23,42,.14)}
.login .panel h1{letter-spacing:-.03em}.login .panel .rpi-subtitle{font-weight:800;color:#0b1f53;margin-top:-8px;margin-bottom:18px}
.user-mail-note{margin-top:10px;padding:10px 12px;border-radius:14px;background:#eff6ff;color:#1e3a8a;font-size:.9rem}

/* ===================== V11.36 - Style RPI propre + copyright &1000 Conception ===================== */
:root{
  --rpi-blue:#155dd6;
  --rpi-blue2:#0b46b5;
  --rpi-green:#48a23f;
  --rpi-orange:#ff8a1c;
  --rpi-ink:#0b1f53;
  --rpi-sky:#eaf7ff;
  --rpi-soft:#f7fbff;
}
.login{
  background:
    radial-gradient(circle at 15% 14%, rgba(72,162,63,.16), transparent 24%),
    radial-gradient(circle at 88% 24%, rgba(255,138,28,.16), transparent 22%),
    linear-gradient(180deg,#eaf7ff 0%,#f8fbff 48%,#eef8ed 100%)!important;
  position:relative;
  overflow:hidden;
}
.login:before{
  content:'';
  position:absolute;
  inset:auto -10% 0 -10%;
  height:34vh;
  background:
    radial-gradient(70% 120% at 20% 100%, #bfeec5 0 42%, transparent 43%),
    radial-gradient(60% 120% at 78% 100%, #d8f6cd 0 45%, transparent 46%);
  opacity:.85;
  pointer-events:none;
}
.login:after{
  content:'';
  position:absolute;
  right:7vw;
  bottom:13vh;
  width:118px;
  height:120px;
  background:linear-gradient(#fff,#f8fafc);
  clip-path:polygon(50% 5%,92% 36%,92% 100%,8% 100%,8% 36%);
  border:5px solid #0b1f53;
  border-bottom:0;
  opacity:.10;
  pointer-events:none;
}
.login .panel{
  position:relative;
  z-index:2;
  width:min(480px,94vw)!important;
  padding:32px 34px 28px!important;
  border-radius:32px!important;
  border:1px solid rgba(255,255,255,.92)!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 28px 70px rgba(11,31,83,.16)!important;
}
.bigicon.rpi-logo{
  width:150px!important;
  height:150px!important;
  border-radius:38px!important;
  padding:12px!important;
  background:#fff!important;
  box-shadow:0 22px 55px rgba(11,31,83,.16)!important;
}
.login .panel h1{
  text-align:center;
  color:var(--rpi-ink);
  font-size:34px;
  margin:12px 0 2px!important;
}
.login .panel .rpi-subtitle{
  text-align:center;
  color:var(--rpi-green)!important;
  font-weight:950!important;
  letter-spacing:.02em;
  margin:0 0 18px!important;
}
.login .muted{ text-align:center; color:#475569!important; font-weight:800; }
.login .field label{color:var(--rpi-ink);font-weight:900;}
.login input{
  border-radius:16px!important;
  min-height:50px!important;
  border:1px solid #d7e3f5!important;
  background:#fbfdff!important;
}
.login input:focus{border-color:#93c5fd!important;box-shadow:0 0 0 5px rgba(21,93,214,.13)!important;}
.login #go{
  width:100%;
  min-height:52px;
  margin-top:12px;
  background:linear-gradient(135deg,var(--rpi-blue),var(--rpi-blue2))!important;
  box-shadow:0 14px 28px rgba(21,93,214,.25)!important;
  font-size:17px;
}
.login-copy{
  position:relative;
  z-index:2;
  margin-top:18px;
  text-align:center;
  color:#50627b;
  font-size:12px;
  line-height:1.45;
  font-weight:700;
}
.login-copy b{color:var(--rpi-ink)}
.brand .logo img{padding:3px;}
.app.v11 .brand{
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.06))!important;
  border:1px solid rgba(255,255,255,.16)!important;
}
.app.v11 .brand .logo{
  background:#fff!important;
  border-radius:18px!important;
}
.rpi-footer-copy{
  margin-top:auto;
  padding:10px 10px 2px;
  color:rgba(219,234,254,.74);
  font-size:11px;
  line-height:1.35;
  font-weight:700;
}
@media(max-width:640px){
  .bigicon.rpi-logo{width:126px!important;height:126px!important;border-radius:30px!important;}
  .login .panel{padding:26px 22px 22px!important;border-radius:26px!important;}
  .login .panel h1{font-size:29px;}
  .login-copy{font-size:11px;}
}

/* ===================== V11.40 - Agent pointage + toolbar mobile propre ===================== */
.agent-hidden{display:none!important;visibility:hidden!important;pointer-events:none!important;}
.staff-pointage-page .top{margin-bottom:10px!important;}
.staff-pointage-page .top .subtitle{margin-top:2px!important;}
.staff-pointage-page .service-card{overflow:visible!important;}
.staff-pointage-page .service-toolbar-pro{align-items:end!important;gap:10px!important;margin-bottom:10px!important;}
.staff-pointage-page .smart-search.v11-search{margin:0!important;}
.staff-pointage-page .service-date-center{margin:0!important;}
.staff-pointage-page .agent-pointage-hint{
  display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:8px 12px;
  border-radius:999px;background:#ecfdf5;color:#166534;border:1px solid #bbf7d0;
  font-size:13px;font-weight:900;
}
.staff-pointage-page .agent-pointage-hint:before{content:'✅';}
.staff-pointage-page .work-actions .danger.small{display:none!important;}
.staff-pointage-page .service-summary{margin-top:0!important;}
@media(max-width:760px){
  .staff-pointage-page .top{gap:6px!important;margin-bottom:8px!important;}
  .staff-pointage-page .top h1{font-size:23px!important;line-height:1.12!important;}
  .staff-pointage-page .top .subtitle{font-size:13px!important;line-height:1.25!important;}
  .staff-pointage-page .service-card{padding-top:12px!important;}
  .staff-pointage-page .agent-pointage-hint{width:100%;justify-content:center;margin-bottom:8px!important;font-size:12px!important;}
  .staff-pointage-page .service-toolbar-pro{
    display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:8px!important;margin:0 0 8px!important;
  }
  .staff-pointage-page .service-toolbar-pro .smart-search.v11-search{order:1!important;width:100%!important;margin:0!important;}
  .staff-pointage-page .service-date-center{
    order:2!important;width:100%!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;align-items:end!important;
  }
  .staff-pointage-page .service-date-center .field{grid-column:1/2!important;width:100%!important;margin:0!important;min-width:0!important;}
  .staff-pointage-page .service-date-center #todayBtn{grid-column:2/3!important;width:100%!important;margin:0!important;min-height:44px!important;}
  .staff-pointage-page .smart-search.v11-search .search-wrap{min-height:50px!important;}
  .staff-pointage-page .smart-search.v11-search input{min-height:38px!important;font-size:16px!important;}
  .staff-pointage-page .service-summary{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;margin:8px 0!important;}
  .staff-pointage-page .mini-kpi{padding:10px 8px!important;text-align:center!important;border-radius:14px!important;}
  .staff-pointage-page .mini-kpi b{font-size:18px!important;line-height:1.1!important;}
  .staff-pointage-page .mini-kpi span{font-size:11px!important;}
}

/* V11.41 */
.v1141-tabs{margin-bottom:12px}.selected-child{padding:10px 12px;border:1px solid var(--border,#d7dde8);border-radius:12px;background:#f8fafc;margin:8px 0 12px}.filter-chip{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;margin:10px 0}.support-info{background:#fff7ed!important;border-radius:8px}.agent-hidden{display:none!important}.work-actions .danger.small{white-space:nowrap}
@media(max-width:760px){.filter-chip{flex-direction:column;align-items:flex-start}.selected-child{font-size:14px}.v1141-tabs{display:flex;gap:8px}.v1141-tabs .tab{flex:1}.work-actions{gap:6px}.work-actions button{min-height:38px}}

/* V11.44 réel */
.support-line{margin:6px 0 4px;padding:7px 10px;border-radius:10px;background:#f5f3ff;color:#5b21b6;border:1px solid #ddd6fe;font-size:.92rem;line-height:1.35}.support-line.mini{font-size:.82rem;margin-top:4px}.birthday-card{border-left:4px solid #f59e0b}.birthday-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.06)}.birthday-line:last-child{border-bottom:0}.birthday-line small{color:#6b7280}

/* V11.45 déverminage */
.ok-text{color:#16803c;font-weight:700;margin-left:8px}.search-add-list{display:grid;gap:8px;margin:10px 0}.closed-cell{background:#f3f4f6!important;color:#6b7280}.day-holiday{background:#fff1f2!important}.day-vacances{background:#fff7ed!important}.day-exceptional-close{background:#fef2f2!important}.closed-label{font-size:12px;font-weight:700;color:#6b7280}.reservation-admin-grid th.closed-cell small{display:block;font-weight:600;margin-top:3px}.v1145-service-kpis{margin-top:14px}.support-line .danger,.support-line .secondary{margin-left:6px}.statsBox table{font-size:12px}.person-card.compact .ok.small{white-space:nowrap}.selected-child button{margin:4px}.v1145-export-family{margin-left:auto}

/* V11.47 - lisibilité recherche + soutien */
.clean-search-results{margin:10px 0 12px;display:grid;gap:8px}
.search-status{margin:10px 0}
.work-row-readable{display:grid;grid-template-columns:1fr;gap:8px;padding:10px 12px;border-left:4px solid transparent}
.work-row-readable.done{border-left-color:#16a34a}
.work-row-readable .child-line{display:flex;align-items:center;gap:8px;min-width:220px}
.work-row-readable .link-child{display:flex;align-items:baseline;gap:10px;text-align:left}
.work-row-readable .link-child b{min-width:150px}
.action-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-top:1px solid rgba(15,23,42,.08);padding-top:7px}
.row-section{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:10px;padding:8px 10px;font-size:12px}
.row-section b{display:block;margin-bottom:2px}
.row-section span{color:#475569}
.row-section-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.support-active{background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12}
.support-empty{background:#f8fafc;border:1px dashed #cbd5e1;color:#64748b}
.strong-pill{font-weight:800;background:#ecfeff;border-color:#a5f3fc;color:#155e75}
@media (min-width:900px){.work-row-readable{grid-template-columns:260px minmax(260px,1fr) auto;align-items:center}.work-row-readable .child-line{grid-column:1}.work-row-readable .row-section{grid-column:2}.work-row-readable .work-actions{grid-column:3;border-top:0;padding-top:0;justify-content:flex-end}.work-row-readable:not(:has(.row-section)) .work-actions{grid-column:2/4}}

/* V11.49 - correctifs déverminage */
.tabpane:not(.active), .suggestions:empty { display:none !important; }
.search-wrap > span { display:none !important; }
.smart-search .search-wrap input { padding-left:14px !important; }
.row-section.support-empty { justify-content:flex-end; background:transparent; border:0; padding:0; }
.row-section.support-active { background:#f3e8ff; border:1px solid #d8b4fe; color:#4c1d95; }
.work-row-readable { gap:8px; }
.work-row-readable .child-line { border-bottom:1px solid rgba(15,23,42,.08); padding-bottom:6px; }
.action-group { flex-wrap:wrap; gap:6px; }
.dashboard-kpis .card.kpi { min-height:74px; }
.birthday-line { display:flex; align-items:center; gap:10px; padding:8px 0; border-top:1px solid rgba(15,23,42,.08); }
.birthday-line span { background:#e6f7ec; color:#166534; border-radius:999px; padding:4px 8px; font-size:12px; font-weight:700; }
.date-chip { background:#fff; border:1px solid #dbe5f2; border-radius:10px; padding:8px 12px; font-weight:700; }
.stats-filters { align-items:flex-end; }
.kv th { width:180px; background:#f8fafc; }


/* V11.50 */
.warn-dot{display:inline-flex;align-items:center;gap:4px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:999px;padding:2px 7px;font-size:12px;cursor:pointer;white-space:nowrap}.warn-dot small{font-weight:600}.support-active{background:#f5f3ff;border:1px solid #ddd6fe;color:#4c1d95}.support-empty{background:#f8fafc;border:1px dashed #cbd5e1}.row-section{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:7px 0;padding:7px 9px;border-radius:10px}.row-section span{display:block;font-size:12px}.row-section-actions{display:flex;gap:6px;flex-wrap:wrap}.closed-cell{background:#f1f5f9!important;color:#64748b}.closed-label{font-size:11px}.clean-search-results{margin:8px 0}.work-row-readable .child-line{gap:10px;flex-wrap:wrap}


/* V11.51 */
.same-line-alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.inline-alert{display:inline-flex;align-items:center;gap:4px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.support-chip{display:inline-flex;align-items:center;gap:4px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.muted-pill{opacity:.75;background:#f8fafc!important;color:#475569!important}.work-row-readable .work-actions{gap:6px;align-items:center;flex-wrap:wrap}


/* V11.52 - lisibilité lignes pointage */
.v52-row{grid-template-columns:minmax(300px,1fr) auto!important;align-items:center!important;gap:10px!important}.v52-row .child-line{border-bottom:0!important;padding-bottom:0!important;flex-wrap:nowrap!important;overflow:hidden}.v52-child-id{display:inline-flex!important;align-items:center!important;gap:8px!important;white-space:nowrap!important}.v52-child-id b{display:inline!important}.v52-child-id small{display:inline!important;margin-left:4px}.inline-alert{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v52-actions{gap:5px!important}.compact-action{padding:5px 8px!important;font-size:12px!important;white-space:nowrap}.apc-chip{background:#ecfeff!important;border-color:#a5f3fc!important;color:#155e75!important}.disabled-day{opacity:.45;text-decoration:line-through}.service-summary .mini-kpi span{text-transform:none!important}@media(max-width:1100px){.v52-row{grid-template-columns:1fr!important}.v52-row .child-line{flex-wrap:wrap!important}.inline-alert{max-width:100%}}

/* V11.56 - Accueil soir : ligne lisible + menu options */
.v56-row{align-items:flex-start;gap:10px}
.v56-child-line{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.v56-mainline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.v56-child-id{display:inline-flex;align-items:baseline;gap:8px;text-align:left}
.v56-child-id small{font-size:.78rem;color:var(--muted,#64748b);font-weight:600}
.v56-alert{display:inline-flex;align-items:center;max-width:100%;white-space:normal;line-height:1.25}
.v56-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.apc-pill{background:#eef6ff;border-color:#bfdbfe;color:#1d4ed8;font-weight:700}
.ok-pill{background:#ecfdf5;border-color:#bbf7d0;color:#047857;font-weight:700}
.v56-actions{margin-left:auto;display:flex;align-items:flex-start;gap:6px;flex-wrap:nowrap}
.v56-primary{font-weight:700;white-space:nowrap}
.v56-options{position:relative;display:inline-block}
.v56-options summary{list-style:none;cursor:pointer;border:1px solid var(--border,#d7dde8);border-radius:9px;background:#fff;min-width:36px;height:32px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;line-height:1;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.v56-options summary::-webkit-details-marker{display:none}
.v56-options[open] summary{background:#f8fafc}
.v56-menu{position:absolute;right:0;top:38px;z-index:30;min-width:190px;background:#fff;border:1px solid var(--border,#d7dde8);border-radius:12px;box-shadow:0 10px 30px rgba(15,23,42,.18);padding:6px;display:flex;flex-direction:column;gap:4px}
.v56-menu-item{width:100%;border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.92rem;color:var(--text,#0f172a)}
.v56-menu-item:hover{background:#f1f5f9}
.v56-menu-item.danger{color:#b91c1c}
.v56-menu-item.danger:hover{background:#fef2f2}
@media (max-width:700px){.v56-row{flex-direction:column}.v56-actions{margin-left:0}.v56-menu{left:0;right:auto}}


/* ===================== V11.58 : Accueil soir - toutes infos enfant sur une ligne ===================== */
.v58-one-line{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important;min-width:0;line-height:1.25}
.v58-one-line .v56-child-id{margin-right:4px;white-space:nowrap}
.v58-one-line .v56-alert{white-space:nowrap;max-width:460px;overflow:hidden;text-overflow:ellipsis}
.v58-one-line .pill{white-space:nowrap}
.v56-row{align-items:center!important}
@media (max-width:900px){.v58-one-line .v56-alert{max-width:100%;white-space:normal}.v58-one-line{align-items:flex-start!important}.v56-row{align-items:flex-start!important}}

/* V11.59 - Fenêtre réservations/redondances plus lisible */
.v1159-res-tabs{margin-bottom:14px;}
.v1159-pane .hint{margin:8px 0 12px;}
.v1159-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.v1159-section-head h3{margin:0;font-size:16px;}
.v1159-section-head p{margin:3px 0 0;color:var(--muted,#667085);font-size:12px;}
.v1159-date-toolbar,.v1159-rec-dates,.v1159-rec-search{align-items:end;gap:10px;}
.v1159-rec-card{border:1px solid rgba(59,130,246,.18);background:linear-gradient(180deg,#fff,#f8fbff);}
.v1159-rec-days{margin:12px 0;}
.v1159-rec-days .disabled-day{opacity:.42;filter:grayscale(1);cursor:not-allowed;}
.v1159-rec-days .disabled-day input{cursor:not-allowed;}
@media(max-width:800px){.v1159-date-toolbar,.v1159-rec-dates,.v1159-rec-search{display:grid;grid-template-columns:1fr;}.v1159-section-head{display:block;}}

/* V11.60 - Accueil soir : vraie ligne unique horizontale */
.v56-row.work-row-readable{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;padding:8px 10px!important;}
.v56-row.work-row-readable .v56-child-line{grid-column:1!important;border-bottom:0!important;padding-bottom:0!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;overflow:hidden!important;min-width:0!important;}
.v56-row.work-row-readable .v56-child-id{display:inline-flex!important;align-items:center!important;gap:8px!important;white-space:nowrap!important;flex:0 0 auto!important;}
.v56-row.work-row-readable .v56-child-id b{display:inline!important;min-width:0!important;font-size:13px!important;}
.v56-row.work-row-readable .v56-child-id small{display:inline!important;margin-left:4px!important;font-size:11px!important;}
.v56-row.work-row-readable .inline-alert,.v56-row.work-row-readable .v56-alert,.v56-row.work-row-readable .pill{white-space:nowrap!important;flex:0 0 auto!important;}
.v56-row.work-row-readable .v56-actions{grid-column:2!important;border-top:0!important;padding-top:0!important;margin-left:0!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:nowrap!important;}
.v1160-rec-days .check{display:inline-flex;}
@media(max-width:900px){.v56-row.work-row-readable{grid-template-columns:1fr!important}.v56-row.work-row-readable .v56-child-line{flex-wrap:wrap!important}.v56-row.work-row-readable .v56-actions{grid-column:1!important;justify-content:flex-start!important}}

/* V11.61 - Menu ⋮ Accueil soir compact et non coupé + redondance propre */
.service-card,.compact-list,.dense-list,.work-row,.work-row-readable,.v56-row,.v56-actions{overflow:visible!important;}
.v56-options{position:relative!important;display:inline-flex!important;align-items:center!important;z-index:60!important;}
.v56-options summary{width:28px!important;min-width:28px!important;height:26px!important;border-radius:8px!important;font-size:15px!important;padding:0!important;box-shadow:none!important;}
.v56-menu{top:auto!important;bottom:31px!important;right:0!important;z-index:9999!important;min-width:155px!important;border-radius:10px!important;padding:4px!important;gap:2px!important;box-shadow:0 10px 24px rgba(15,23,42,.20)!important;}
.v56-menu-item{font-size:12px!important;line-height:1.15!important;padding:6px 8px!important;border-radius:7px!important;min-height:0!important;}
.v1159-rec-days,.v1161-rec-days{grid-template-columns:repeat(2,minmax(0,1fr));}
.v1161-no-open-days{margin:8px 0;}


/* V11.62 - badge médical complet sur une seule ligne */
.v1162-medical{max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.v58-one-line .v1162-medical,.v56-child-line .v1162-medical{display:inline-flex;align-items:center;}
@media (max-width:900px){.v1162-medical{max-width:260px;}}


/* V11.63 - Paramètres > Journaux admin */
.v1163-filters{align-items:end;gap:10px;flex-wrap:wrap;margin:10px 0 14px;}
.v1163-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 14px;}
.v1163-section{margin-top:16px;border:1px solid var(--border,#d7dde8);border-radius:14px;background:#fff;overflow:hidden;}
.v1163-section h3{margin:0;padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--border,#d7dde8);font-size:15px;}
.v1163-log-list{display:flex;flex-direction:column;}
.v1163-log-row{display:grid;grid-template-columns:140px minmax(0,1fr) 180px;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(15,23,42,.07);}
.v1163-log-row:last-child{border-bottom:0;}
.v1163-log-date{font-size:12px;font-weight:700;color:#475569;white-space:nowrap;}
.v1163-log-main{min-width:0;}
.v1163-log-main b{display:block;font-size:13px;color:#0f172a;}
.v1163-log-main span{display:block;font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v1163-log-user{text-align:right;min-width:0;}
.v1163-log-user b{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.v1163-log-user span{font-size:11px;color:#64748b;}
@media(max-width:800px){.v1163-kpis{grid-template-columns:1fr}.v1163-log-row{grid-template-columns:1fr;gap:3px}.v1163-log-user{text-align:left}.v1163-log-main span{white-space:normal}}

/* V11.64 - Badges compacts santé + sortie seule */
.v1164-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;border:1px solid #fde68a!important;background:#fff7ed!important;color:#9a3412!important;border-radius:999px!important;padding:3px 8px!important;font-size:11px!important;font-weight:800!important;line-height:1.2!important;white-space:nowrap!important;cursor:pointer!important;box-shadow:none!important;transform:none!important;min-height:22px!important;max-width:130px!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.v1164-badge:hover{transform:none!important;box-shadow:none!important;filter:brightness(.98)!important;}
.v1164-health-badge{max-width:115px!important;}
.v1164-solo-badge{width:24px!important;min-width:24px!important;max-width:24px!important;padding:3px 0!important;background:#eef6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important;font-size:13px!important;}
.v1164-info-modal{display:grid;gap:8px;}
.v1164-info-row{border:1px solid var(--line,#dfe7f1);background:#f8fafc;border-radius:12px;padding:9px 11px;font-weight:700;}
.v1164-row .v56-child-line{gap:6px!important;}
.v1164-row .apc-pill,.v1164-row .ok-pill,.v1164-row .pill{font-size:11px!important;padding:3px 7px!important;}
.v1164-row .v56-child-id b{font-size:13px!important;}
.v1164-row .v56-child-id small{font-size:11px!important;}
@media(max-width:900px){.v1164-health-badge{max-width:100px!important}.v1164-row .v56-child-line{flex-wrap:wrap!important}}

/* V11.65 espace parent inline + réservations fluides */
.parent-action-card{border:1px solid var(--line);text-align:left;align-items:flex-start;display:flex;flex-direction:column;gap:8px;color:var(--text);background:#fff;min-height:130px}.parent-action-card span{font-size:30px}.parent-action-card b{font-size:20px}.parent-action-card small{color:var(--muted);font-weight:650}.parent-family-page .row{margin-top:12px}.parent-week-cards{display:grid;gap:14px}.parent-child-res-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:14px}.parent-child-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.parent-child-head b{font-size:17px}.parent-child-head small{color:var(--muted);font-weight:800}.parent-days-row{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px}.parent-day-card{border:1px solid #e5eaf2;border-radius:16px;background:#fbfdff;padding:10px;min-height:118px}.parent-day-card.closed{background:#f4f6f9;color:#94a3b8}.parent-day-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.parent-day-title b{font-size:13px}.parent-day-title span{font-size:11px;border-radius:999px;background:#e5e7eb;padding:3px 7px}.parent-svc-row{display:flex;flex-direction:column;gap:7px}.parent-svc-pill{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 9px;cursor:pointer;font-weight:800}.parent-svc-pill input{width:auto}.parent-svc-pill.on{border-color:#86efac;background:#ecfdf5;color:#166534}.parent-svc-pill.disabled{opacity:.45;cursor:not-allowed;background:#f1f5f9}.parent-rec-layout{display:grid;gap:12px}.parent-day-pills,.parent-service-pills{display:flex;gap:8px;flex-wrap:wrap}.parent-day-pills label,.parent-service-pills label{cursor:pointer}.parent-day-pills input,.parent-service-pills input{display:none}.parent-day-pills span,.parent-service-pills span{display:inline-flex;border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:850}.parent-day-pills input:checked+span,.parent-service-pills input:checked+span{background:#2563eb;color:#fff;border-color:#2563eb}.parent-home-actions button:hover{transform:translateY(-1px)}@media(max-width:1050px){.parent-days-row{grid-template-columns:1fr}.parent-day-card{min-height:auto}.parent-svc-row{display:grid;grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.parent-svc-row{grid-template-columns:1fr}.week-nav{width:100%;display:grid;grid-template-columns:1fr 1fr}.week-nav button{width:100%}}


/* V11.66 - Mon foyer parent en onglets + redondance jours service */
.v1166-tabs{margin-bottom:14px}.v1166-pane{display:none}.v1166-pane.active{display:block}.readonly-field input{background:#f1f5f9;color:#64748b;cursor:not-allowed}.parent-resp-card{margin-bottom:12px}.v1166-parent-rec .parent-day-pills label.disabled{opacity:.45;cursor:not-allowed}.v1166-parent-rec .parent-day-pills label.disabled span{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.parent-day-card.closed .parent-svc-row{display:none}


/* V11.67 - alertes accueil famille règlement / RC */
.parent-alert-card{border-color:#fecaca;background:#fffafa}.parent-critical-alert{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #fecaca;background:#fef2f2;color:#7f1d1d;border-radius:18px;padding:14px;margin:10px 0}.parent-critical-alert b{font-size:16px}.parent-critical-alert p{margin:4px 0 0;color:#991b1b}.parent-alert-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.button-link{border-radius:14px;padding:11px 15px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;background:#edf2f7;color:#233045}.button-link.danger{background:#dc2626;color:#fff}.rc-auto-hint{background:#f8fafc;border-style:solid}.v1166-pane{scroll-margin-top:20px}@media(max-width:760px){.parent-critical-alert{align-items:stretch;flex-direction:column}.parent-alert-actions{justify-content:flex-start}.parent-alert-actions button,.parent-alert-actions a{width:100%}}

/* ===================== V11.69 : Mes réservations parent mobile + libellés propres ===================== */
.v1169-res-card{overflow:visible!important}
.v1169-week{display:grid!important;gap:16px!important;overflow:visible!important}
.v1169-child-card{padding:14px!important;border-radius:22px!important;background:#fff!important;border:1px solid #dbe5f0!important;box-shadow:0 8px 24px rgba(15,23,42,.05)!important}
.v1169-child-card .parent-child-head{margin-bottom:12px!important;padding-bottom:10px!important;border-bottom:1px solid #eef2f7!important}
.v1169-child-card .parent-child-head b{font-size:16px!important;font-weight:950!important}
.v1169-child-card .parent-child-head small{display:inline-flex!important;margin-left:8px!important;background:#eef5ff!important;color:#1d4ed8!important;border-radius:999px!important;padding:3px 8px!important;font-size:11px!important;font-weight:900!important}
.v1169-days-row{display:grid!important;grid-template-columns:repeat(5,minmax(145px,1fr))!important;gap:10px!important}
.v1169-day{padding:10px!important;border-radius:16px!important;min-height:116px!important;background:linear-gradient(180deg,#fff,#f9fbff)!important}
.v1169-day.closed{background:#f3f5f8!important;color:#94a3b8!important}
.v1169-day .parent-day-title b{font-size:12px!important;font-weight:950!important;white-space:nowrap!important}
.v1169-svc-row{display:grid!important;gap:7px!important}
.parent-svc-pill{min-height:34px!important;padding:7px 9px!important;border-radius:12px!important;font-size:12px!important;line-height:1!important;white-space:nowrap!important}
.parent-svc-pill .svc-ico{width:18px!important;text-align:center!important;flex:0 0 18px!important}
.parent-svc-pill b{font-size:12px!important;font-weight:950!important;overflow:hidden!important;text-overflow:ellipsis!important}
.parent-svc-pill input{width:16px!important;height:16px!important;flex:0 0 16px!important}
.parent-svc-pill.parent-svc-am b::after{content:''!important}
.parent-svc-pill.parent-svc-pm b::after{content:''!important}
.parent-rec-mobile .parent-service-pills span,.parent-rec-mobile .parent-day-pills span{font-size:14px!important}
.parent-rec-mobile .parent-day-pills label.disabled{opacity:.4!important;pointer-events:none!important}
.parent-rec-mobile .parent-day-pills label.disabled span{background:#f1f5f9!important;color:#94a3b8!important}
@media(max-width:1050px){.v1169-days-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v1169-day{min-height:auto!important}.week-nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important}.week-nav button{width:100%!important}}
@media(max-width:640px){.parent-res-top{align-items:stretch!important}.v1169-res-card{padding:12px!important}.v1169-child-card{padding:12px!important;border-radius:18px!important}.v1169-days-row{grid-template-columns:1fr!important;gap:8px!important}.v1169-day{display:grid!important;grid-template-columns:96px 1fr!important;gap:8px!important;align-items:start!important;min-height:0!important;padding:9px!important}.v1169-day .parent-day-title{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;margin:0!important;gap:4px!important}.v1169-svc-row{grid-template-columns:1fr!important}.parent-svc-pill{min-height:38px!important;font-size:13px!important}.parent-svc-pill b{font-size:13px!important}.service-picker{display:grid!important;gap:8px!important}.service-picker button{width:100%!important}.parent-rec-mobile .formgrid{grid-template-columns:1fr!important}.parent-rec-mobile .parent-day-pills,.parent-rec-mobile .parent-service-pills{display:grid!important;grid-template-columns:1fr 1fr!important}.parent-rec-mobile .parent-service-pills label:last-child{grid-column:1/-1!important}}

/* V11.70 - personnes de confiance en tableau */
.trusted-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff;margin-top:10px}
.trusted-table{width:100%;min-width:720px;border-collapse:separate;border-spacing:0}
.trusted-table th{position:static;background:#f8fafc;color:#64748b;font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px}
.trusted-table td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.trusted-table tr:last-child td{border-bottom:0}
.trusted-table input{padding:8px 10px;border-radius:10px;font-size:13px}
.trusted-table .contact-remove{min-width:32px;height:32px;padding:0;border-radius:10px;font-weight:900}
.trusted-actions{margin-top:10px;align-items:center}
.inline-hint{margin:0;padding:8px 10px;font-size:12px}
@media(max-width:760px){.trusted-table-wrap{border-radius:14px}.trusted-table{min-width:640px}.trusted-table input{font-size:12px;padding:7px 8px}}

/* V11.73 - Onglet Mes tarifs parent */
.parent-tarif-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 14px}.parent-tarif-summary>div{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:12px}.parent-tarif-summary span{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:4px}.parent-tarif-summary b{font-size:16px}.parent-tarifs-table table{min-width:620px}.parent-tarifs-table td strong{font-size:15px;color:#0f172a}@media(max-width:760px){.parent-tarif-summary{grid-template-columns:1fr 1fr}.parent-tarifs-table table{min-width:0}.parent-tarifs-table th,.parent-tarifs-table td{white-space:normal}}

/* V11.74 : état discret pendant sauvegarde avant fermeture popup */
.modal-back.modal-saving .modal{opacity:.82;pointer-events:none}
.modal-back.modal-saving .modal-head:after{content:'Sauvegarde…';font-size:12px;font-weight:800;color:#64748b;margin-left:auto;margin-right:8px}

/* V11.77 : sauvegarde manuelle légère */
.modal-save-tools{display:flex;align-items:center;gap:8px;margin-left:auto;margin-right:10px;flex-wrap:wrap}.save-state-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;border:1px solid transparent;white-space:nowrap}.save-state-badge.saved{background:#ecfdf5;color:#166534;border-color:#bbf7d0}.save-state-badge.unsaved{background:#fef2f2;color:#991b1b;border-color:#fecaca}.save-state-badge.saving{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.save-state-badge.error{background:#fee2e2;color:#7f1d1d;border-color:#fca5a5}.modal-save-btn{padding:7px 10px;border-radius:10px;font-size:12px}.parent-save-badge{margin-right:8px}@media(max-width:640px){.modal-head{align-items:flex-start;flex-wrap:wrap}.modal-save-tools{order:3;width:100%;margin:8px 0 0;justify-content:flex-start}.modal-save-btn{flex:0 0 auto}}

/* V11.78 - Cantine : rendu compact type accueil soir */
.v1178-cantine-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;}
.v1178-cantine-line{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0;overflow:hidden;}
.v1178-cantine-line .link-child{min-width:170px;}
.v1178-cantine-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;}
.v1178-cantine-options .v56-menu{min-width:150px;}
@media(max-width:760px){
  .v1178-cantine-row{grid-template-columns:1fr;gap:8px;}
  .v1178-cantine-line{flex-wrap:wrap;}
  .v1178-cantine-actions{justify-content:flex-start;}
}

/* V11.79 affichage quotidien optimisé + mode appel compact */
.v1179-daily-main .top{margin-bottom:8px}
.v1179-daily-main .top h1{font-size:26px;margin-bottom:0}
.v1179-daily-main .service-card{padding:12px;margin-bottom:8px}
.v1179-daily-main .service-toolbar-pro{gap:8px;margin-bottom:8px;padding-bottom:6px}
.v1179-daily-main .v1179-daily-hint{display:none!important}
.v1179-mini-summary{display:flex!important;grid-template-columns:none!important;gap:8px;margin:0 0 8px!important}
.v1179-mini-summary .mini-kpi{padding:8px 10px;border-radius:12px;min-width:95px}
.v1179-mini-summary .mini-kpi b{font-size:17px;line-height:1.05}
.v1179-mini-summary .mini-kpi span{font-size:11px}
.v1179-optimized-service .compact-list.dense-list{gap:4px}
.v1179-optimized-service .work-row{min-height:42px;padding:6px 8px;border-radius:11px;gap:8px}
.v1179-optimized-service .work-actions{gap:5px}
.v1179-optimized-service button.small{padding:6px 8px;border-radius:10px;font-size:12px}
.v1179-optimized-service .pill,.v1179-optimized-service .badge{padding:3px 7px;font-size:11px}
.v1179-compact-btn{white-space:nowrap}
.v1179-compact-main{padding:8px!important;background:#f8fafc}
.v1179-compact-head{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;background:rgba(248,250,252,.98);border:1px solid var(--line);border-radius:14px;padding:8px;margin-bottom:8px;box-shadow:0 4px 16px rgba(15,23,42,.06)}
.v1179-compact-title{display:flex;flex-direction:column;gap:1px;min-width:0}
.v1179-compact-title b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v1179-compact-title small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v1179-compact-head input[type=date]{width:auto;min-width:136px;padding:7px 9px;border-radius:10px;font-size:13px}
.v1179-compact-only{display:flex;flex-direction:column;gap:4px}
.v1179-compact-only .work-row{min-height:38px;padding:5px 7px;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:6px}
.v1179-compact-only .child-line{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.v1179-compact-only .link-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v1179-compact-only .link-child b,.v1179-compact-only .link-child small{display:inline!important;margin-right:6px}
.v1179-compact-only .work-actions{gap:4px;flex-wrap:nowrap}
.v1179-compact-only button.small,.v1179-compact-only .compact-action{padding:5px 7px!important;border-radius:9px!important;font-size:12px!important;min-height:30px}
.v1179-compact-only .pill,.v1179-compact-only .badge{font-size:10.5px;padding:2px 6px}
@media(max-width:700px){
  .v1179-daily-main{padding:8px!important}
  .v1179-daily-main .top{display:none}
  .v1179-daily-main .service-card{padding:8px;border-radius:14px}
  .v1179-daily-main .service-toolbar-pro{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .v1179-daily-main .service-toolbar-pro .smart-search{grid-column:1/-1}
  .v1179-daily-main .service-date-center{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:6px}
  .v1179-daily-main .service-toolbar-pro button{padding:8px 9px;border-radius:10px;font-size:12px}
  .v1179-mini-summary{overflow:auto;padding-bottom:2px}
  .v1179-mini-summary .mini-kpi{min-width:82px;padding:7px 8px}
  .v1179-compact-head{grid-template-columns:auto 1fr;gap:6px;padding:7px}
  .v1179-compact-head input[type=date]{grid-column:1/-1;width:100%}
  .v1179-compact-head button{padding:7px 8px;font-size:12px}
  .v1179-compact-title b{font-size:14px}
  .v1179-compact-title small{font-size:11px}
  .v1179-compact-only .work-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important}
  .v1179-compact-only .work-actions{justify-content:flex-end!important}
}

/* V11.80 - quotidien plus compact + réservations épurées */
.v1180-daily-main .top{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:6px!important;gap:8px!important}
.v1180-daily-main .top h1{font-size:22px!important;line-height:1!important}
.v1180-top-compact{white-space:nowrap!important;padding:8px 10px!important;border-radius:11px!important;font-size:12px!important}
.v1180-row{min-height:36px!important;padding:5px 7px!important;border-radius:10px!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;overflow:visible!important}
.v1180-child-line{display:flex!important;flex-direction:row!important;align-items:center!important;gap:5px!important;flex-wrap:nowrap!important;overflow:hidden!important;min-width:0!important;line-height:1.1!important}
.v1180-id{min-width:0!important;max-width:220px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;flex:0 1 auto!important}
.v1180-id b{font-size:12px!important;white-space:nowrap!important}.v1180-id small{font-size:10.5px!important;margin-left:4px!important}
.v1180-health{max-width:78px!important;min-width:auto!important;font-size:10px!important;padding:2px 6px!important;height:20px!important;min-height:20px!important}
.v1180-row .v1164-solo-badge{width:21px!important;min-width:21px!important;height:20px!important;min-height:20px!important;font-size:12px!important}
.v1180-row .pill,.v1180-row .badge{font-size:10.5px!important;padding:2px 6px!important;min-height:20px!important;line-height:1.1!important;white-space:nowrap!important}
.v1180-actions{gap:4px!important;align-items:center!important;flex-wrap:nowrap!important}.v1180-actions button.small,.v1180-actions .compact-action{padding:5px 7px!important;font-size:11px!important;border-radius:8px!important;min-height:26px!important}.v1180-options summary{width:25px!important;min-width:25px!important;height:25px!important;font-size:14px!important}
.v1180-compact-head{grid-template-columns:auto 1fr auto!important}.v1180-compact-only .v1180-row{min-height:34px!important;padding:4px 6px!important}.v1180-compact-only .v1180-id{max-width:150px!important}.v1180-compact-only .v1180-health{max-width:64px!important}.v1180-compact-only .v56-menu{bottom:28px!important}
.v1180-res-tabs{margin-bottom:8px!important}.v1180-pane .toolbar{margin-bottom:8px!important}.v1180-date-toolbar,.v1180-rec-toolbar{display:flex!important;align-items:end!important;gap:8px!important;flex-wrap:wrap!important}.v1180-date-toolbar .field,.v1180-rec-toolbar .field{margin:0!important}.v1180-date-toolbar input,.v1180-rec-toolbar input{padding:8px 10px!important;border-radius:11px!important}.v1180-rec-days{margin:8px 0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}.v1180-rec-days .check{padding:8px 10px!important;border-radius:12px!important}.compact-selected{font-size:12px!important;margin:4px 0 8px!important;padding:7px 9px!important;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.reservation-admin-grid th,.reservation-admin-grid td{padding:7px 8px!important;font-size:12px!important}.reservation-admin-grid .link-child b{font-size:12px!important}.reservation-admin-grid .link-child small{font-size:10.5px!important}
@media(max-width:700px){.v1180-daily-main{padding:7px!important}.v1180-daily-main .service-card{padding:7px!important}.v1180-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:4px!important}.v1180-child-line{flex-wrap:nowrap!important}.v1180-id{max-width:118px!important}.v1180-id b{font-size:11.5px!important}.v1180-health{max-width:58px!important}.v1180-actions{justify-content:flex-end!important}.v1180-actions .v56-menu{right:0!important;left:auto!important}.v1180-compact-head{grid-template-columns:auto 1fr!important}.v1180-compact-head input[type=date]{grid-column:1/-1!important;width:100%!important}.v1180-date-toolbar,.v1180-rec-toolbar{display:grid!important;grid-template-columns:1fr 1fr!important}.v1180-date-toolbar .grow,.v1180-rec-toolbar .grow{grid-column:1/-1!important}.v1180-rec-days{grid-template-columns:1fr 1fr!important}}

/* V11.81 - correctifs compact : chevauchement + boutons haut */
.v1181-daily-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;flex-wrap:nowrap!important;}
.v1181-daily-top>div:first-child{min-width:0!important;}
.v1181-top-actions{margin-left:auto!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;}
.v1181-action-btn{white-space:nowrap!important;padding:8px 10px!important;border-radius:11px!important;font-size:12px!important;box-shadow:none!important;transform:none!important;}
.v1179-compact-only .v1180-child-line,.v1180-compact-only .v1180-child-line{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:nowrap!important;min-width:0!important;}
.v1179-compact-only .v1180-id,.v1180-compact-only .v1180-id{display:inline-flex!important;align-items:center!important;gap:6px!important;max-width:240px!important;min-width:0!important;flex:0 1 auto!important;}
.v1179-compact-only .v1180-id b,.v1180-compact-only .v1180-id b{display:inline-block!important;max-width:165px!important;overflow:hidden!important;text-overflow:ellipsis!important;vertical-align:bottom!important;}
.v1179-compact-only .v1180-id small,.v1180-compact-only .v1180-id small{display:inline-block!important;margin-left:0!important;flex:0 0 auto!important;}
@media(max-width:700px){
  .v1181-daily-top{align-items:flex-start!important;}
  .v1181-top-actions{gap:6px!important;}
  .v1181-action-btn{padding:7px 8px!important;font-size:11px!important;}
  .v1179-compact-only .v1180-id,.v1180-compact-only .v1180-id{max-width:185px!important;}
  .v1179-compact-only .v1180-id b,.v1180-compact-only .v1180-id b{max-width:138px!important;}
}
@media(max-width:420px){
  .v1181-daily-top{flex-direction:column!important;align-items:stretch!important;}
  .v1181-top-actions{justify-content:flex-end!important;}
  .v1179-compact-only .v1180-id,.v1180-compact-only .v1180-id{max-width:150px!important;}
  .v1179-compact-only .v1180-id b,.v1180-compact-only .v1180-id b{max-width:108px!important;}
}


/* V11.83 : grille réservations admin plus fluide */
.v1183-res-grid table{table-layout:fixed}
.v1183-res-grid th:first-child,.v1183-res-grid td:first-child{min-width:150px;width:150px}
.v1183-res-grid th:not(:first-child),.v1183-res-grid td:not(:first-child){min-width:86px;width:86px;text-align:center}
.v1183-res-grid .mini-check{justify-content:center}

/* ===================== V11.84 : affichage recherche redondances =====================
   - La recherche enfant des redondances ne doit plus recouvrir les dates/jours.
   - Liste de résultats intégrée au flux du formulaire, hauteur limitée.
   - Toolbar redondance plus lisible : recherche sur ligne complète, dates dessous.
===================== */
.v1180-rec-toolbar{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr)) auto!important;
  align-items:start!important;
  gap:8px!important;
}
.v1180-rec-toolbar>.field.grow,
.v1180-rec-toolbar>.field:has(.smart-search){
  grid-column:1/-1!important;
  min-width:0!important;
  width:100%!important;
}
.v1180-rec-toolbar .smart-search{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
}
.v1180-rec-toolbar .smart-search .suggestions,
.v1180-rec-toolbar #recChildSug{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  width:100%!important;
  max-height:180px!important;
  overflow:auto!important;
  margin-top:6px!important;
  border-radius:12px!important;
  box-shadow:0 6px 18px rgba(15,23,42,.10)!important;
  z-index:auto!important;
}
.v1180-rec-toolbar #recChildSug button{
  min-height:34px!important;
  padding:8px 10px!important;
  font-size:12px!important;
}
.v1180-rec-toolbar #recChildSug button b{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.v1180-rec-toolbar #recChildSug button small{
  flex:0 0 auto!important;
}
.v1180-pane .selected-child.compact-selected{
  margin-top:6px!important;
}
@media(max-width:720px){
  .v1180-rec-toolbar{grid-template-columns:1fr!important;}
  .v1180-rec-toolbar>.field,
  .v1180-rec-toolbar>.field.grow{grid-column:1/-1!important;}
  .v1180-rec-toolbar #recChildSug{max-height:150px!important;}
}

/* V11.85 : popup haute + tri classes + périodes */
.modal{min-height:80vh;}
.modal-body{max-height:calc(80vh - 72px);}
.v1185-class-separator{display:flex;align-items:center;margin:6px 0 3px;border-top:1px solid #dbe5f2;}
.v1185-class-separator span{background:#eef5ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:999px;padding:3px 9px;font-weight:900;font-size:11px;margin-top:-11px;}
.v1185-classed-list .work-row{margin-bottom:4px;}
.v1185-summary{margin-bottom:8px!important;}
.v1185-period-modal .suggestions{position:relative;top:auto;margin-top:6px;max-height:220px;overflow:auto;z-index:2;box-shadow:none;border-radius:14px;}
.v1185-period-search{overflow:visible;}
.v1185-period-list{margin-top:12px;}
.v1185-period-list table{font-size:13px;}
.v1185-period-list th,.v1185-period-list td{padding:8px 10px;}
@media(max-width:720px){.modal{min-height:88vh;width:98vw}.modal-body{max-height:calc(88vh - 64px)}.v1185-period-list .table-wrap{max-height:260px}.v1185-class-separator{margin-top:8px}}

/* V11.86 : espace famille réservations/redondance */
.v1186-parent-res-top .week-nav{gap:8px;align-items:center;flex-wrap:wrap}
.v1186-rec-btn{background:#2563eb!important;color:#fff!important;font-weight:900!important;border-radius:14px!important;padding:10px 14px!important;box-shadow:0 8px 20px rgba(37,99,235,.18)!important}
.v1186-rec-btn:hover{background:#1d4ed8!important}
.v1186-parent-rec .subcard{margin-bottom:10px!important}
.v1186-parent-rec h3{margin-bottom:8px!important}
.v1186-parent-rec .formgrid{gap:8px!important}
.v1186-apply-rec{width:100%;margin-top:6px;font-size:15px}
@media(max-width:720px){
  .v1186-parent-res-top{gap:10px!important}
  .v1186-parent-res-top .week-nav{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}
  .v1186-parent-res-top .week-nav #parentRecBtn{grid-column:1/-1!important;width:100%!important}
}

/* V11.87 : séparation uniquement par classe + périodes admin lisibles */
.modal{min-height:80vh;}
.modal-body{max-height:calc(92vh - 70px);}
.v1185-classed-list{gap:0!important;}
.v1185-classed-list .work-row,
.v1185-classed-list .v56-row,
.v1185-classed-list .work-row-readable{
  margin:0!important;
  border-radius:0!important;
  border-top:0!important;
  border-left:0!important;
  border-right:0!important;
  box-shadow:none!important;
}
.v1185-classed-list .work-row:not(:last-child),
.v1185-classed-list .v56-row:not(:last-child),
.v1185-classed-list .work-row-readable:not(:last-child){border-bottom:1px solid rgba(15,23,42,.06)!important;}
.v1185-class-separator{margin:9px 0 0!important;border-top:2px solid #bfdbfe!important;}
.v1185-class-separator + .work-row,
.v1185-class-separator + .v56-row,
.v1185-class-separator + .work-row-readable{border-top:0!important;}
.v1185-class-separator span{font-size:11px!important;padding:2px 8px!important;}
.v1187-period-modal{display:flex;flex-direction:column;gap:10px;}
.v1187-period-top{grid-template-columns:1fr 1.2fr!important;align-items:start;}
.v1187-period-search{overflow:visible;}
.v1187-period-search .suggestions{position:relative!important;top:auto!important;margin-top:6px!important;max-height:180px!important;overflow:auto!important;z-index:2!important;box-shadow:none!important;border-radius:14px!important;}
.v1187-selected{margin:0!important;padding:8px 10px!important;border-radius:14px;background:#eef5ff;border:1px solid #bfdbfe;display:flex;align-items:center;gap:10px;}
.v1187-period-options{grid-template-columns:1fr auto!important;align-items:end;}
.v1187-period-actions{margin:0!important;}
.v1187-period-list{margin:0!important;}
.v1187-period-list .table-wrap{max-height:34vh;overflow:auto;}
.v1187-period-list table{font-size:12px;}
.v1187-period-list th,.v1187-period-list td{padding:7px 9px;}
.v1187-class-row td{background:#eef5ff!important;color:#1d4ed8!important;font-weight:900!important;text-transform:uppercase;font-size:11px!important;border-top:2px solid #bfdbfe!important;}
@media(max-width:720px){
  .modal{min-height:88vh!important;width:98vw!important;}
  .modal-body{max-height:calc(88vh - 60px)!important;}
  .v1187-period-top,.v1187-period-options{grid-template-columns:1fr!important;}
  .v1187-period-list .table-wrap{max-height:260px;}
}

/* V11.90 : ergonomie familles/admin périodes + séparateurs fins */
.v1190-parent-top .subtitle{margin-top:2px;font-size:12px}.v1190-parent-top .week-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.v1190-rec-main{background:#2563eb!important;color:#fff!important;font-weight:900!important}.v1190-parent-card{padding:12px!important}.v1190-child-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12px;color:#64748b}.v1190-child-week{border:1px solid #e2e8f0;border-radius:16px;background:#fff;margin-bottom:10px;overflow:hidden}.v1190-child-week h3{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px;background:#f8fafc;font-size:14px}.v1190-child-week h3 small{color:#64748b;font-weight:700}.v1190-day-strip{display:flex;gap:8px;overflow-x:auto;padding:8px;scroll-snap-type:x proximity}.v1190-day-card{min-width:145px;max-width:165px;scroll-snap-align:start;border:1px solid #e2e8f0;border-radius:14px;background:#fbfdff;padding:7px}.v1190-day-card.closed{background:#f1f5f9;color:#94a3b8}.v1190-day-title{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px;font-size:12px}.v1190-day-title span{font-size:10px;background:#e2e8f0;border-radius:999px;padding:2px 6px}.v1190-svcs{display:grid;gap:5px}.v1190-svc{display:flex;align-items:center;gap:5px;border:1px solid #dbeafe;border-radius:10px;padding:5px 6px;background:white;font-size:12px;font-weight:800}.v1190-svc input{width:auto}.v1190-svc.on{background:#dcfce7;border-color:#86efac}.v1190-none{text-align:center;font-size:12px;padding:8px 0}.v1190-period-buttons{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.v1190-parent-period{display:flex;flex-direction:column;gap:8px}.v1190-period-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:8px}.v1190-period-head div{display:flex;flex-direction:column;text-align:center}.v1190-period-head span{font-size:12px;color:#64748b}.v1190-period-kids{display:grid;gap:8px}.v1190-period-child{border:1px solid #e2e8f0;border-radius:14px;padding:9px;background:#fff;display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:8px;align-items:center}.v1190-period-child b{display:block}.v1190-period-child small{color:#64748b}.v1190-period-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.v1190-period-controls label,.v1190-big-check{border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:6px 8px;font-size:12px;font-weight:800}.v1190-period-controls input,.v1190-big-check input{width:auto;margin-right:4px}.v1190-admin-period{display:flex;flex-direction:column;gap:8px}.v1190-admin-period-tools{margin:0!important}.v1190-admin-period-table{max-height:42vh;overflow:auto}.v1190-admin-period-table table{font-size:12px}.v1190-admin-period-table th,.v1190-admin-period-table td{padding:7px 8px}.v1190-admin-period-table td small{display:block;color:#64748b}.compact-check{padding:5px 8px!important}.compact-check input{width:auto!important}
.v1190-period-child.is-reserved{border-color:#22c55e!important;background:#ecfdf5!important;box-shadow:0 6px 18px rgba(22,101,52,.14)}.p1302-feedback{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid #d8e1ec;border-radius:999px;background:#f8fafc;color:#64748b;padding:6px 12px;font-size:12px;font-weight:900;white-space:nowrap}.p1302-feedback.on{background:#16a34a!important;border-color:#15803d!important;color:#fff!important;box-shadow:0 4px 12px rgba(22,163,74,.24)}.v1190-period-child.is-reserved select,.v1190-period-child.is-reserved .v1190-big-check{border-color:#86efac!important;background:#fff!important}
.v1185-class-separator{height:14px!important;margin:5px 0 0!important;border-top:1px solid rgba(37,99,235,.22)!important}.v1185-class-separator span{font-size:10px!important;padding:1px 7px!important;background:#f8fbff!important;color:#475569!important;border-color:#dbeafe!important;margin-top:-9px!important}.v1185-classed-list .work-row:not(:last-child),.v1185-classed-list .v56-row:not(:last-child),.v1185-classed-list .work-row-readable:not(:last-child){border-bottom:1px solid rgba(15,23,42,.035)!important}
@media(max-width:720px){.v1190-parent-top .week-nav{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}.v1190-parent-top .week-nav #parentRecBtn{grid-column:1/-1}.v1190-day-card{min-width:138px}.v1190-period-head{grid-template-columns:1fr;}.v1190-period-child{grid-template-columns:1fr}.v1190-period-controls{display:grid;grid-template-columns:1fr 1fr}.v1190-period-controls label,.v1190-big-check{border-radius:12px}.v1190-admin-period-table{max-height:48vh}.modal{width:98vw!important;min-height:88vh!important}.modal-body{max-height:calc(88vh - 60px)!important}}

/* V11.91 - tableaux récap périodes */
.v1191-recap-table table{min-width:980px}
.v1191-recap-table th,.v1191-recap-table td{vertical-align:top}
.v1191-recap-table .compact-days{font-size:.86rem;line-height:1.35;white-space:nowrap}
.medical-cell{min-width:260px;font-size:.92rem;line-height:1.45}
.medical-cell .pill{display:inline-block;margin:0 .25rem .15rem 0}
.medical-inline{display:block;margin-top:.25rem;color:#9a3412;line-height:1.3}
.period-actions{gap:.45rem;flex-wrap:wrap;align-items:center}
.period-actions button{white-space:nowrap}
@media (max-width:760px){
  .v1191-recap-table table{min-width:0}
  .v1191-recap-table .compact-days{white-space:normal}
  .medical-cell{min-width:0}
  .period-actions{display:grid;grid-template-columns:1fr;align-items:stretch}
  .period-actions button{width:100%}
}

/* V11.92 reprise propre : lisibilité popups périodes */
.v1192-period-modal{display:flex;flex-direction:column;gap:10px}
.v1192-period-table{max-height:58vh;overflow:auto;border-radius:14px;border:1px solid #e2e8f0;background:#fff}
.v1192-period-table table{font-size:12.5px;min-width:760px}
.v1192-period-table th{position:sticky;top:0;background:#f8fafc;z-index:1}
.v1192-period-table th,.v1192-period-table td{padding:7px 9px;vertical-align:middle}
.v1192-period-table td:first-child b{font-size:13px}.v1192-period-table td:first-child small{color:#64748b;font-weight:700}
.v1192-period-actions{margin-top:0;gap:8px;justify-content:flex-end}
.v1192-recap-modal{display:flex;flex-direction:column;gap:10px}
.v1192-recap-table{max-height:62vh;overflow:auto;border-radius:14px;border:1px solid #e2e8f0;background:#fff}
.v1192-recap-table table{font-size:12.5px;min-width:980px}.v1192-recap-table th{position:sticky;top:0;background:#f8fafc;z-index:1}.v1192-recap-table th,.v1192-recap-table td{padding:8px 10px;vertical-align:top}.v1192-recap-table .medical-cell{min-width:220px}.v1192-alsh-only .period-card{align-items:center}
@media(max-width:720px){.v1192-period-table,.v1192-recap-table{max-height:62vh}.v1192-period-table table,.v1192-recap-table table{min-width:0}.v1192-period-actions{display:grid;grid-template-columns:1fr}.v1192-period-actions button{width:100%}.v1192-alsh-only .period-card{display:block}.v1192-alsh-only .period-card button{width:100%;margin-top:10px}}

/* V12.01 - environnement propre popups périodes Mercredis/ALSH */
.v1201-period-shell{background:linear-gradient(180deg,#f8fbff 0%,#fff 46%);border-radius:18px;padding:4px;max-width:100%;}
.v1201-period-shell .period-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 0 14px;padding:14px 14px 12px;border:1px solid #e4ebf5;background:#fff;border-radius:16px;box-shadow:0 8px 22px rgba(15,35,70,.06)}
.v1201-period-shell .period-head h3{margin:0;font-size:1.1rem}.v1201-period-shell .period-head p{margin:.25rem 0 0;color:#64748b}.period-head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.filterbar{display:flex;align-items:end;gap:10px;margin:0 0 12px;padding:12px;border:1px solid #e4ebf5;background:#f7faff;border-radius:14px}.filterbar .grow{flex:1}.filterbar input,.filterbar select{min-height:42px}.result-count{min-width:86px;text-align:center;background:#fff;border:1px solid #e5eaf2;border-radius:12px;padding:7px 10px}.result-count b{display:block;font-size:1.15rem}.result-count span{font-size:.76rem;color:#64748b}.v1201-table-wrap{max-height:62vh;border-radius:15px;border:1px solid #dfe7f2;background:#fff;overflow:auto}.v1201-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92rem}.v1201-table thead th{position:sticky;top:0;z-index:2;background:#edf4ff;color:#243b59;border-bottom:1px solid #d6e1ef;text-transform:uppercase;font-size:.74rem;letter-spacing:.04em;padding:10px 9px;text-align:left}.v1201-table td{border-bottom:1px solid #eef2f7;padding:9px;vertical-align:middle}.v1201-table tbody tr:nth-child(even){background:#fbfdff}.v1201-table tbody tr:hover{background:#f3f8ff}.child-main{display:flex;flex-direction:column;gap:2px}.child-main small{color:#64748b}.switch-line{display:inline-flex;align-items:center;gap:7px;font-weight:700}.status-ok{display:inline-flex;align-items:center;border-radius:999px;background:#eaf8ef;color:#166534;border:1px solid #bfe8cd;padding:4px 9px;font-weight:700}.status-bad{display:inline-flex;align-items:center;border-radius:999px;background:#fff1f2;color:#9f1239;border:1px solid #fecdd3;padding:4px 9px;font-weight:700}.v1201-bottom{align-items:center;justify-content:space-between}.hint-inline{font-size:.86rem;color:#64748b}.health-list{display:grid;grid-template-columns:auto 1fr;gap:4px 7px;align-items:center}.health-tag{border-radius:999px;padding:2px 7px;font-size:.72rem;font-weight:800;border:1px solid transparent;white-space:nowrap}.health-tag.danger{background:#fff1f2;color:#9f1239;border-color:#fecdd3}.health-tag.warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.health-tag.info{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.health-tag.neutral{background:#f8fafc;color:#475569;border-color:#e2e8f0}.v1201-recap-shell .medical-cell{min-width:240px}.v1201-att-shell .service-summary,.v1201-recap-shell .service-summary{margin:0 0 12px}.compact-days{font-size:.84rem;line-height:1.35;color:#475569}@media(max-width:760px){.v1201-period-shell .period-head,.filterbar{display:block}.period-head-actions{justify-content:stretch;margin-top:10px}.period-head-actions button{width:100%}.filterbar .field{margin-bottom:8px}.result-count{width:100%;box-sizing:border-box}.v1201-table-wrap{max-height:65vh}.v1201-table thead{display:none}.v1201-table,.v1201-table tbody,.v1201-table tr,.v1201-table td{display:block;width:100%}.v1201-table tr{border-bottom:1px solid #dfe7f2;padding:8px 0}.v1201-table td{display:flex;justify-content:space-between;gap:12px;border-bottom:0;padding:7px 10px}.v1201-table td::before{content:attr(data-label);font-weight:800;color:#475569;min-width:110px}.health-list{display:block}.health-tag{display:inline-block;margin:2px 4px 2px 0}}

/* V12.03 périodes : lisibilité + statut sauvegarde */
.v1203-shell{display:flex;flex-direction:column;gap:14px;max-width:100%}.v1203-head{align-items:center}.save-state{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;border:1px solid #d7dee8;background:#f8fafc}.save-state.saved{color:#137333;background:#eaf7ee;border-color:#bfe7cb}.save-state.dirty{color:#a50e0e;background:#fdeaea;border-color:#f3b5b5}.save-state.saving{color:#7a4d00;background:#fff7e0;border-color:#f1d188}.v1203-table-wrap{border:1px solid #dce4ef;border-radius:14px;overflow:auto;background:#fff}.v1203-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.v1203-table th{position:sticky;top:0;background:#f4f7fb;color:#26364a;text-transform:uppercase;font-size:11px;letter-spacing:.04em;z-index:1}.v1203-table th,.v1203-table td{padding:10px 12px;border-bottom:1px solid #edf1f6;vertical-align:middle}.v1203-table tr:hover td{background:#f8fbff}.one-child{display:flex;gap:8px;align-items:baseline;white-space:nowrap}.one-child small{color:#64748b;font-weight:700}.one-line-days{white-space:normal;line-height:1.35}.health-alert-btn{border:1px solid #f0c36d;background:#fff8e6;color:#7a4d00;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;cursor:pointer}.health-alert-btn:hover{background:#ffefc2}.period-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.v1203-table .switch-line{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.v1203-table select{min-width:130px}.v1203-table .status-ok{white-space:nowrap}


/* V12.07 : affichage sans fantôme, sans écran bloquant */
body.app-booting #app{opacity:0;}
body.app-ready #app{opacity:1;transition:opacity .08s ease-out;}
body.route-rendering .main{opacity:.98;}
/* Les éléments explicitement masqués par le code ne doivent jamais apparaître une fraction de seconde. */
.agent-hidden,[hidden],.is-hidden,.js-hidden{display:none!important;}
/* Sécurité : un fond de modale orphelin ne doit jamais bloquer l'application. */
.modal-back:empty{display:none!important;pointer-events:none!important;}
/* V4.2.2 — un .modal-back sans .show n'est jamais un etat legitime (modal() l'ajoute
   toujours a la creation, aucun code ne le retire jamais d'une modale encore active) :
   sa seule presence sans cette classe signale un residu (fermeture interrompue, course
   d'initialisation). Le CSS existant (position:fixed;inset:0;z-index:2147483000, voir
   plus haut) ne desactivait pas les clics pour ce cas : un residu invisible (opacity:0)
   pouvait donc bloquer silencieusement toute la page. Filet de securite CSS pur,
   independant de toute cause JS precise. */
.modal-back:not(.show){pointer-events:none!important;}


/* V12.08 : anti-textes fantômes ciblé, sans overlay global
   Les textes d'aide visibles une fraction de seconde sont masqués en CSS dès le départ.
   app.js les transforme ensuite en bouton ⓘ avec infobulle native. */
.top .subtitle,
.card > .hint,
.subcard > .hint,
.modal-body > .hint,
.modal-body .hint.warn,
.service-card > .hint,
.hint-inline.v1208-info-source{display:none!important;}
.info-bubble{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:24px!important;height:24px!important;min-width:24px!important;padding:0!important;border-radius:999px!important;background:#eef5ff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important;font-weight:900!important;font-size:13px!important;line-height:1!important;box-shadow:none!important;transform:none!important;vertical-align:middle!important;cursor:help!important;}
.info-bubble:hover{background:#dbeafe!important;box-shadow:none!important;transform:none!important;}
.top h1 .info-bubble{margin-left:8px;}
.v1208-info-row{display:flex;align-items:center;gap:8px;margin:0 0 8px;}
.v1208-info-row .info-bubble{flex:0 0 auto;}

/* ===================== V12.11 : infobulles propres, sans popup lourde ===================== */
.info-bubble{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:22px!important;height:22px!important;min-width:22px!important;
  padding:0!important;margin-left:8px!important;border-radius:999px!important;
  background:#eef5ff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important;
  font-weight:900!important;font-size:12px!important;line-height:1!important;
  box-shadow:none!important;vertical-align:middle!important;cursor:help!important;
  position:relative!important;overflow:visible!important;user-select:none!important;z-index:25!important;
}
.info-bubble:hover,.info-bubble.is-open{background:#dbeafe!important;border-color:#93c5fd!important;}
.top h1{display:flex;align-items:center;gap:0;flex-wrap:wrap;overflow:visible;}
.top h1 .info-bubble{margin-left:8px!important;}
.v1208-info-row,.module-help-row{display:none!important;}
.app-help-tip{
  position:fixed;
  z-index:100000;
  background:#0f172a;
  color:#fff;
  border-radius:12px;
  padding:10px 12px;
  box-shadow:0 14px 32px rgba(15,23,42,.24);
  font-size:12px;
  line-height:1.38;
  white-space:pre-line;
  pointer-events:auto;
}
.app-help-tip strong{display:block;margin-bottom:5px;font-size:12px;color:#fff;}
.app-help-tip div{font-weight:500;color:#eef2ff;}
@media (hover:none), (pointer:coarse){.info-bubble{cursor:pointer!important;}.app-help-tip{font-size:13px;line-height:1.42;}}


/* V12.12 - Espace famille simplifié et accessible */
.family-simple-head{align-items:center;gap:16px}
.family-simple-head h1{display:flex;align-items:center;gap:8px}
.family-week-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.family-week-actions button{min-width:48px;min-height:42px}
.family-booking-shell{display:grid;gap:16px}.family-week-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--border,#dbe3ee);border-radius:22px;padding:16px 18px;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.family-week-panel small{display:block;color:#64748b;font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.family-week-panel strong{font-size:22px;color:#0f172a}.family-bulk-btn{min-height:42px;border-radius:14px}
.family-children-stack{display:grid;gap:18px}.family-child-card{background:#fff;border:1px solid var(--border,#dbe3ee);border-radius:24px;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.07)}.family-child-card>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.family-child-card>header b{font-size:18px}.family-child-card>header small{display:block;color:#64748b;margin-top:2px;font-weight:800}
.family-days-grid{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:12px}.family-day-tile{border:1px solid #dbeafe;background:linear-gradient(180deg,#fff,#f8fbff);border-radius:20px;padding:12px;min-height:154px}.family-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.family-day-head b{font-size:14px}.family-day-head span{font-size:11px;font-weight:900;color:#64748b;background:#e2e8f0;border-radius:999px;padding:4px 7px}.family-day-tile.is-closed{background:#f1f5f9;border-color:#e2e8f0;color:#94a3b8}.family-closed-note{display:flex;align-items:center;justify-content:center;min-height:94px;font-size:13px;font-weight:800;color:#64748b;text-align:center}
.family-service-list{display:grid;gap:8px}.family-service-tile{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;border:1px solid #dbe3ee;border-radius:15px;background:#fff;padding:9px 10px;cursor:pointer;min-height:48px;transition:.16s ease;box-shadow:0 4px 12px rgba(15,23,42,.04)}.family-service-tile:hover{transform:translateY(-1px);border-color:#93c5fd;box-shadow:0 8px 18px rgba(37,99,235,.10)}.family-service-tile input{position:absolute;opacity:0;pointer-events:none}.family-service-tile .fst-icon{width:30px;height:30px;border-radius:11px;background:#eff6ff;display:flex;align-items:center;justify-content:center}.family-service-tile b{font-size:13px}.family-service-tile small{display:block;color:#64748b;font-size:11px;line-height:1.1}.family-service-tile .fst-state{font-size:11px;font-weight:900;color:#64748b;background:#f1f5f9;border-radius:999px;padding:5px 7px}.family-service-tile.is-selected{background:#ecfdf5;border-color:#86efac}.family-service-tile.is-selected .fst-icon{background:#dcfce7}.family-service-tile.is-selected .fst-state{background:#16a34a;color:#fff}
.family-period-shortcuts{background:#fff;border:1px solid var(--border,#dbe3ee);border-radius:24px;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.06)}.family-period-shortcuts h2{margin:0 0 3px}.family-period-shortcuts p{margin:0 0 12px;color:#64748b}.family-period-shortcuts>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.family-period-card,.family-alsh-period{appearance:none;border:1px solid #dbe3ee;background:#fff;border-radius:20px;padding:16px;text-align:left;box-shadow:0 8px 20px rgba(15,23,42,.05);display:grid;grid-template-columns:42px 1fr;gap:6px 12px;align-items:center;color:#0f172a}.family-period-card span,.family-alsh-period span{grid-row:1/3;width:42px;height:42px;border-radius:14px;background:#eff6ff;display:flex;align-items:center;justify-content:center;font-size:20px}.family-period-card b,.family-alsh-period b{font-size:16px}.family-period-card small,.family-alsh-period small{color:#64748b;line-height:1.25}.family-period-card:hover,.family-alsh-period:hover{border-color:#93c5fd;transform:translateY(-1px)}.family-period-list{display:grid;gap:12px}.family-step-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #dbe3ee;border-radius:22px;padding:16px;box-shadow:0 10px 28px rgba(15,23,42,.06)}.family-step-num{width:42px;height:42px;border-radius:50%;background:#2563eb;color:#fff;font-weight:950;display:flex;align-items:center;justify-content:center}.family-step-card h2{margin:0 0 4px}.family-step-card p{margin:0;color:#64748b}.family-help-tip{font-size:13px;line-height:1.45;box-shadow:0 18px 40px rgba(15,23,42,.20)}
@media(max-width:1100px){.family-days-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}}
@media(max-width:760px){.family-simple-head{align-items:stretch}.family-week-actions{display:grid;grid-template-columns:1fr 1.5fr 1fr}.family-week-panel{display:grid;grid-template-columns:1fr}.family-week-panel strong{font-size:19px}.family-days-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.family-day-tile{flex:0 0 82%;scroll-snap-align:start;min-height:170px}.family-period-shortcuts>div{grid-template-columns:1fr}.family-service-tile{min-height:54px}.family-child-card{padding:14px;border-radius:22px}.family-booking-shell{gap:14px}}
@media(max-width:430px){.family-day-tile{flex-basis:88%}.family-service-tile{grid-template-columns:32px 1fr}.family-service-tile .fst-state{grid-column:1/-1;text-align:center}.family-period-card,.family-alsh-period{grid-template-columns:36px 1fr;padding:13px}.family-period-card span,.family-alsh-period span{width:36px;height:36px}.family-child-card>header b{font-size:16px}}


/* V12.13 - Espace famille : colonne mobile propre + actions intégrées à la carte enfant */
.family-booking-shell-v1213{max-width:980px;margin:0 auto;width:100%;}
.family-child-card-v1213{display:grid;gap:14px;}
.family-child-main-head{margin-bottom:0!important;}
.family-week-box{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:12px;background:linear-gradient(180deg,#f8fbff,#eef6ff);border:1px solid #bfdbfe;border-radius:20px;padding:12px;}
.family-week-title small{display:block;color:#64748b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.family-week-title strong{display:block;color:#0f172a;font-size:17px;line-height:1.2;}
.family-week-box .family-week-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;}
.family-week-box .family-week-actions button{min-height:40px;border-radius:13px;}
.family-week-box .family-bulk-btn{white-space:nowrap;}
.family-booking-shell-v1213 .family-days-grid{grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px;}
.family-booking-shell-v1213 .family-day-tile{min-height:unset;padding:11px;border-radius:18px;}
.family-booking-shell-v1213 .family-service-list{gap:7px;}
.family-booking-shell-v1213 .family-service-tile{min-height:44px;padding:8px;grid-template-columns:30px 1fr auto;}
.family-booking-shell-v1213 .family-service-tile .fst-icon{width:28px;height:28px;border-radius:10px;}
@media(max-width:900px){
  .family-booking-shell-v1213{max-width:100%;}
  .family-week-box{grid-template-columns:1fr;}
  .family-week-box .family-week-actions{justify-content:stretch;display:grid;grid-template-columns:44px 1fr 44px;}
  .family-week-box .family-bulk-btn{grid-column:1/-1;width:100%;}
  .family-booking-shell-v1213 .family-days-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .main{padding-left:10px!important;padding-right:10px!important;}
  .family-simple-head{margin-bottom:10px;}
  .family-simple-head .subtitle{font-size:13px;line-height:1.35;}
  .family-booking-shell-v1213{gap:12px;}
  .family-child-card-v1213{border-radius:20px;padding:12px;gap:12px;}
  .family-child-main-head b{font-size:16px!important;}
  .family-week-box{border-radius:16px;padding:10px;gap:10px;}
  .family-week-title strong{font-size:15px;}
  .family-week-box .family-week-actions{grid-template-columns:42px 1fr 42px;gap:6px;}
  .family-week-box .family-week-actions button{min-height:38px;font-size:12px;padding:0 8px;}
  .family-booking-shell-v1213 .family-days-grid{display:grid!important;grid-template-columns:1fr!important;overflow:visible!important;padding-bottom:0!important;gap:9px;}
  .family-booking-shell-v1213 .family-day-tile{flex:auto!important;scroll-snap-align:none!important;min-height:0!important;border-radius:16px;padding:10px;}
  .family-booking-shell-v1213 .family-day-head{margin-bottom:8px;}
  .family-booking-shell-v1213 .family-day-head b{font-size:13px;}
  .family-booking-shell-v1213 .family-service-tile{grid-template-columns:30px 1fr auto;min-height:46px;border-radius:14px;}
  .family-booking-shell-v1213 .family-service-tile b{font-size:13px;}
  .family-booking-shell-v1213 .family-service-tile small{font-size:10.5px;}
  .family-period-shortcuts{border-radius:20px;padding:12px;}
  .family-period-shortcuts>div{grid-template-columns:1fr!important;}
}

/* V12.14 - Modal famille "Réserver plusieurs jours" réellement responsive */
.parent-rec-modal-back{padding:12px!important;place-items:center!important;align-items:center!important;}
.parent-rec-modal-back .modal{width:min(760px,calc(100vw - 24px))!important;min-height:0!important;max-height:calc(100dvh - 24px)!important;border-radius:24px!important;}
.parent-rec-modal-back .modal-head{padding:13px 15px!important;min-height:auto!important;}
.parent-rec-modal-back .modal-head h2{font-size:20px!important;line-height:1.15!important;}
.parent-rec-modal-back .modal-body{padding:12px!important;max-height:calc(100dvh - 92px)!important;overflow:auto!important;}
.parent-rec-v1214{display:grid;gap:10px;}
.parent-rec-v1214 .rec-step{background:#fff;border:1px solid #dbe3ee;border-radius:18px;padding:12px;box-shadow:0 6px 18px rgba(15,23,42,.05);}
.parent-rec-v1214 .rec-step-title{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.parent-rec-v1214 .rec-step-title>span{width:30px;height:30px;border-radius:12px;background:#2563eb;color:#fff;display:grid;place-items:center;font-weight:950;flex:0 0 auto;}
.parent-rec-v1214 .rec-step-title b{display:block;font-size:15px;color:#0f172a;}
.parent-rec-v1214 .rec-step-title small{display:block;color:#64748b;font-size:12px;line-height:1.25;margin-top:1px;}
.parent-rec-v1214 .rec-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:9px;align-items:end;}
.parent-rec-v1214 .rec-fields label{display:grid;gap:5px;min-width:0;}
.parent-rec-v1214 .rec-fields small{font-size:11px;color:#64748b;font-weight:900;text-transform:uppercase;letter-spacing:.03em;}
.parent-rec-v1214 input,.parent-rec-v1214 select{min-height:42px;border-radius:13px;padding:9px 11px;font-size:14px;}
.parent-rec-v1214 .rec-choice-grid{display:grid;gap:8px;}
.parent-rec-v1214 .rec-days{grid-template-columns:repeat(5,1fr);}
.parent-rec-v1214 .rec-services{grid-template-columns:repeat(3,1fr);}
.parent-rec-v1214 .rec-choice{display:block;min-width:0;}
.parent-rec-v1214 .rec-choice input{position:absolute;opacity:0;pointer-events:none;}
.parent-rec-v1214 .rec-choice span{display:flex;align-items:center;justify-content:center;min-height:42px;border-radius:14px;border:1px solid #dbe3ee;background:#f8fafc;color:#0f172a;font-weight:900;font-size:13px;text-align:center;padding:8px;}
.parent-rec-v1214 .rec-choice input:checked+span{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 8px 20px rgba(37,99,235,.18);}
.parent-rec-v1214 .rec-choice.is-disabled span{background:#f1f5f9;color:#94a3b8;text-decoration:line-through;}
.parent-rec-v1214 .rec-footer{display:grid;grid-template-columns:1fr 1.6fr;gap:9px;position:sticky;bottom:-12px;background:linear-gradient(180deg,rgba(255,255,255,.8),#fff 35%);padding-top:8px;}
.parent-rec-v1214 .rec-footer button{min-height:44px;border-radius:14px;}
.parent-rec-v1214 .rec-primary{background:#2563eb;color:#fff;}
@media(max-width:680px){
  .parent-rec-modal-back{padding:0!important;align-items:end!important;place-items:end center!important;}
  .parent-rec-modal-back .modal{width:100vw!important;max-height:96dvh!important;border-radius:22px 22px 0 0!important;}
  .parent-rec-modal-back .modal-body{max-height:calc(96dvh - 62px)!important;padding:10px!important;}
  .parent-rec-modal-back .modal-head h2{font-size:18px!important;}
  .parent-rec-v1214{gap:8px;}
  .parent-rec-v1214 .rec-step{border-radius:16px;padding:10px;}
  .parent-rec-v1214 .rec-step-title{align-items:flex-start;margin-bottom:8px;}
  .parent-rec-v1214 .rec-step-title>span{width:28px;height:28px;border-radius:10px;}
  .parent-rec-v1214 .rec-step-title b{font-size:14px;}
  .parent-rec-v1214 .rec-step-title small{font-size:11.5px;}
  .parent-rec-v1214 .rec-fields{grid-template-columns:1fr;gap:7px;}
  .parent-rec-v1214 input,.parent-rec-v1214 select{min-height:40px;font-size:14px;}
  .parent-rec-v1214 .rec-days{grid-template-columns:repeat(2,1fr);}
  .parent-rec-v1214 .rec-days .rec-choice:nth-child(5){grid-column:1/-1;}
  .parent-rec-v1214 .rec-services{grid-template-columns:1fr;}
  .parent-rec-v1214 .rec-choice span{min-height:40px;font-size:13px;}
  .parent-rec-v1214 .rec-footer{grid-template-columns:1fr;bottom:-10px;}
}
@media(max-width:390px){
  .parent-rec-modal-back .modal-head,.parent-rec-modal-back .modal-body{padding-left:8px!important;padding-right:8px!important;}
  .parent-rec-v1214 .rec-step{padding:9px;}
  .parent-rec-v1214 .rec-days{grid-template-columns:1fr;}
  .parent-rec-v1214 .rec-days .rec-choice:nth-child(5){grid-column:auto;}
}

/* V12.15 - Fiches enfant/foyer/admin : responsive mobile propre, sans défilement horizontal */
@media (max-width: 760px){
  .modal-back{
    padding:0!important;
    align-items:stretch!important;
    place-items:stretch!important;
  }
  .modal-back .modal{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  .modal-head{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    padding:10px 12px!important;
    min-height:54px!important;
    background:#fff!important;
  }
  .modal-head h2{
    font-size:18px!important;
    line-height:1.18!important;
    max-width:calc(100vw - 70px)!important;
    white-space:normal!important;
  }
  .modal-head .iconbtn{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    flex:0 0 38px!important;
  }
  .modal-body{
    padding:10px!important;
    max-height:calc(100dvh - 54px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    /* -webkit-overflow-scrolling:touch retire (V12.15 - RECHERCHE APPROFONDIE iOS) :
       cette regle globale .modal-body (sans classe restrictive) s'appliquait aussi a
       .clean-sheet (imbriquee dans .modal-body via modal()), donc a la fiche enfant/
       foyer sur tout iPhone < 760px de large - reintroduisant exactement le probleme
       deja identifie et retire ailleurs (3 autres systemes) mais rate ici. Inutile
       depuis iOS 13 (momentum scroll natif sur overflow:auto). */
  }
  .modal-foot{
    position:sticky!important;
    bottom:0!important;
    z-index:20!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:10px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.88),#fff 35%)!important;
  }
  .modal-foot button,
  .modal-body > .row button,
  .modal-body .toolbar button,
  .modal-body .btnrow button{
    width:100%!important;
    min-height:42px!important;
    justify-content:center!important;
  }
  .modal-body *,
  .modal-body *::before,
  .modal-body *::after{
    max-width:100%!important;
  }
  .modal-body input,
  .modal-body select,
  .modal-body textarea,
  .modal-body button{
    min-width:0!important;
  }
  .modal-body .formgrid,
  .modal-body .checkgrid,
  .modal-body .cols2,
  .modal-body .cols3{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .modal-body .full{grid-column:auto!important;}
  .modal-body .field{margin:0 0 9px!important;}
  .modal-body .toolbar,
  .modal-body .btnrow,
  .modal-body .row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    align-items:stretch!important;
  }
  .modal-body .tabs,
  .modal-body .fiche-tabs,
  .modal-body .foyer-tabs,
  .modal-body .v1141-tabs{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    margin:0 0 10px!important;
    overflow:visible!important;
  }
  .modal-body .tabs .tab,
  .modal-body .fiche-tabs .tab,
  .modal-body .foyer-tabs .tab,
  .modal-body .v1141-tabs .tab{
    width:100%!important;
    min-width:0!important;
    min-height:38px!important;
    padding:8px 7px!important;
    border-radius:12px!important;
    font-size:12px!important;
    line-height:1.15!important;
    white-space:normal!important;
    text-align:center!important;
  }
  .modal-body .card,
  .modal-body .subcard{
    padding:12px!important;
    border-radius:16px!important;
    margin-bottom:10px!important;
  }
  .modal-body h2{font-size:18px!important;line-height:1.2!important;}
  .modal-body h3{font-size:16px!important;line-height:1.25!important;}
  .modal-body .doc-line{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:5px!important;
    padding:10px!important;
    border-radius:14px!important;
  }
  .modal-body .person-card{
    display:grid!important;
    grid-template-columns:42px 1fr!important;
    align-items:center!important;
    gap:9px!important;
  }
  .modal-body .person-card .avatar{
    width:42px!important;height:42px!important;border-radius:14px!important;
  }
  .modal-body .person-card button{
    grid-column:1/-1!important;
  }
  .modal-body .table-wrap,
  .modal-body .v1201-table-wrap,
  .modal-body .v1203-table-wrap{
    width:100%!important;
    overflow-x:auto!important;
    border-radius:14px!important;
  }
}
@media (max-width: 420px){
  .modal-body .tabs,
  .modal-body .fiche-tabs,
  .modal-body .foyer-tabs,
  .modal-body .v1141-tabs{
    grid-template-columns:1fr!important;
  }
  .modal-head h2{font-size:17px!important;}
  .modal-body{padding:8px!important;}
}

/* REECRITURE FICHE ENFANT : supprime ~310 lignes CSS "V12.16 / TEST2 / TEST3"
   devenues mortes cote fiche enfant. Elles cherchaient soit .sheet-modal-v1216
   (classe qui n'est plus jamais ajoutee - voir 00-core.js, JS correspondant
   retire), soit d'anciens ids #contacts/#prestations/#summaryBox qui n'existent
   plus dans le rendu actuel (#cc-contacts/#cc-services/#ccSummaryBox). Contenait
   entre autres un -webkit-overflow-scrolling:touch sur .modal-body en dessous de
   760px, plausible source des soucis de reactivite tactile iOS signales
   (proprite WebKit ignoree silencieusement sur Android/Chrome - coherent avec
   "ca marche sur Android/PC, pas sur iPhone"). Les selecteurs .sheet-modal-v1216
   restants ailleurs dans ce fichier sont toujours accompagnes d'un .clean-sheet
   equivalent (deja suffisant seul) : non retires par prudence, mais inertes. */

/* V12.16 TEST4 - finitions fiche enfant / mon foyer */
@media (max-width: 680px){
  .fiche-tabs .tab,.foyer-tabs .tab,.v1166-tabs .tab{gap:5px;}
  #fam_infos .v1216-parent-savebar{
    display:flex;align-items:center;justify-content:flex-end;gap:8px;
    margin:6px 0 10px;padding:6px 8px;border:1px solid #e6edf5;border-radius:12px;background:#f8fbff;
  }
  #fam_infos .v1216-parent-save-btn{
    width:auto!important;min-height:32px!important;padding:7px 12px!important;border-radius:10px!important;font-size:12px!important;line-height:1!important;
  }
  #fam_infos .parent-save-badge,#fam_infos .save-state-badge{
    display:inline-flex;align-items:center;justify-content:center;width:auto!important;min-height:26px!important;
    padding:4px 8px!important;border-radius:999px!important;font-size:11px!important;margin:0!important;
  }
  #fam_infos .v1216-lock-hint{display:none!important;}
  .v1216-doc-row{display:flex!important;flex-direction:column;gap:8px;align-items:stretch!important;padding:10px!important;border-radius:12px!important;}
  .v1216-doc-main{display:flex;flex-direction:column;gap:2px;min-width:0;}
  .v1216-doc-main span,.v1216-doc-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .v1216-doc-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
  .v1216-doc-actions .btn,.v1216-doc-actions button{width:100%;min-height:32px!important;padding:6px 5px!important;font-size:11px!important;border-radius:10px!important;text-align:center;}
}

/* V12.16 TEST6 - Mon foyer : sauvegarde dans le titre + import documents simplifié */
.v1216-foyer-top{align-items:flex-start!important;gap:10px!important;}
.v1216-foyer-title{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important;}
.v1216-parent-savebar-top{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;
  margin:0!important;padding:6px 8px!important;border:1px solid #e6edf5!important;border-radius:14px!important;background:#f8fbff!important;
  flex:0 0 auto!important;box-shadow:0 4px 12px rgba(15,23,42,.05)!important;
}
.v1216-parent-savebar-top .v1216-parent-save-btn{width:auto!important;min-height:32px!important;padding:7px 10px!important;border-radius:10px!important;font-size:13px!important;line-height:1!important;}
.v1216-parent-savebar-top .parent-save-badge{width:auto!important;min-height:28px!important;padding:5px 9px!important;border-radius:999px!important;font-size:12px!important;margin:0!important;}
.v1216-doc-upload{border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:12px;margin:8px 0 14px;}
.v1216-doc-upload-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;}
.v1216-doc-upload-head b{font-size:15px;color:#0f172a;}
.v1216-doc-upload-head small{color:#64748b;font-weight:700;}
.v1216-doc-upload-grid{display:grid;grid-template-columns:1.1fr 1fr 1.4fr auto;gap:10px;align-items:end;}
.v1216-doc-upload .field{margin:0;}
.v1216-doc-upload label span{font-weight:700;color:#64748b;}
.v1216-doc-import-btn{white-space:nowrap;min-height:40px;}
.v1216-doc-help{margin-top:8px!important;}
@media (max-width:680px){
  .v1216-foyer-top{display:flex!important;flex-direction:column!important;align-items:stretch!important;}
  .v1216-parent-savebar-top{align-self:flex-end!important;padding:5px 6px!important;gap:6px!important;margin-top:-4px!important;}
  .v1216-parent-savebar-top .parent-save-badge{min-height:24px!important;padding:4px 7px!important;font-size:10.5px!important;}
  .v1216-parent-savebar-top .v1216-parent-save-btn{min-height:28px!important;padding:5px 8px!important;font-size:12px!important;}
  #fam_infos .v1216-parent-savebar:not(.v1216-parent-savebar-top){display:none!important;}
  .v1216-doc-upload{padding:10px;border-radius:14px;margin-top:6px;}
  .v1216-doc-upload-grid{grid-template-columns:1fr!important;gap:8px!important;}
  .v1216-doc-upload .field label{font-size:11px!important;}
  .v1216-doc-upload select,.v1216-doc-upload input{width:100%!important;min-height:38px!important;font-size:12px!important;}
  .v1216-file-field input[type=file]{padding:8px!important;background:#fff!important;border:1px dashed #cbd5e1!important;border-radius:12px!important;}
  .v1216-doc-import-btn{width:100%!important;min-height:38px!important;border-radius:12px!important;font-size:12px!important;}
  .v1216-doc-help{font-size:11px!important;line-height:1.35!important;}
}

/* V12.16 TEST7 - ajustements demandés foyer/enfants */
.v1216-foyer-top{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
.v1216-foyer-top > div:first-child{min-width:0!important;flex:1 1 auto!important;}
.v1216-foyer-title{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  line-height:1.05!important;
  margin:0!important;
}
.v1216-parent-savebar-top{
  flex:0 0 auto!important;
  align-self:center!important;
  margin:0!important;
}
.person-card .pc-main[data-v1216-clickable="1"]{
  cursor:pointer!important;
  border-radius:10px!important;
}
.person-card .pc-main[data-v1216-clickable="1"]:active{background:#eef6ff!important;}
.person-card .v1216-child-open-btn{
  white-space:nowrap!important;
  min-width:max-content!important;
}
@media (max-width:680px){
  .v1216-foyer-top{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding-top:2px!important;
  }
  .v1216-foyer-title{font-size:20px!important;white-space:nowrap!important;}
  .v1216-foyer-top .subtitle{display:none!important;}
  .v1216-parent-savebar-top{
    padding:3px 5px!important;
    gap:4px!important;
    margin:0!important;
    border-radius:999px!important;
  }
  .v1216-parent-savebar-top .parent-save-badge{
    min-height:20px!important;
    padding:2px 6px!important;
    font-size:9.5px!important;
  }
  .v1216-parent-savebar-top .v1216-parent-save-btn{
    min-width:26px!important;
    min-height:24px!important;
    width:26px!important;
    padding:2px!important;
    font-size:12px!important;
    border-radius:8px!important;
  }
  #fam_children.card,
  main .card:has(.person-card.compact){
    padding:10px!important;
  }
  #fam_children h2{margin-bottom:8px!important;font-size:17px!important;}
  #fam_children .cards-list,
  main .cards-list{gap:8px!important;}
  #fam_children .person-card,
  main .person-card{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:8px!important;
    min-height:0!important;
    padding:9px 10px!important;
  }
  #fam_children .person-card .avatar,
  main .person-card .avatar{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    font-size:16px!important;
  }
  #fam_children .person-card .pc-main,
  main .person-card .pc-main{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:1px!important;
  }
  #fam_children .person-card .pc-main b,
  main .person-card .pc-main b{
    font-size:12px!important;
    line-height:1.15!important;
  }
  #fam_children .person-card .pc-main span,
  main .person-card .pc-main span{
    font-size:10.5px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  #fam_children .person-card button[onclick*="childSheet"],
  main .person-card button[onclick*="childSheet"]{
    width:auto!important;
    min-width:72px!important;
    max-width:96px!important;
    min-height:30px!important;
    padding:5px 8px!important;
    font-size:10.5px!important;
    line-height:1.05!important;
    border-radius:10px!important;
    white-space:normal!important;
  }
}

/* V12.16 TEST 8 : aides côté famille */
.v1216-section-help{margin-left:6px;vertical-align:middle;}
.family-help-tip{white-space:pre-line;line-height:1.35;}

/* ===================== V12.16 TEST9 - corrections ciblées famille/aides ===================== */
/* Icône info réellement discrète : plus de bouton bleu entouré */
.info-bubble,
.info-bubble.module-help,
.info-bubble.family-help-only,
.info-bubble.v1216-section-help{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  padding:0!important;
  margin-left:5px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#2563eb!important;
  font-size:0!important;
  line-height:1!important;
  cursor:help!important;
  vertical-align:middle!important;
}
.info-bubble::before{content:"ℹ";font-size:17px!important;font-weight:800!important;line-height:1!important;}
.info-bubble:hover,.info-bubble.is-open{background:transparent!important;border:0!important;color:#1d4ed8!important;box-shadow:none!important;}
.top h1 .info-bubble{margin-left:5px!important;}
.v1216-foyer-title .info-bubble{align-self:center!important;}

/* Titre Mon foyer + aide + sauvegarde parfaitement alignés */
.v1216-foyer-top{align-items:center!important;padding-top:0!important;margin-bottom:10px!important;}
.v1216-foyer-title{display:flex!important;align-items:center!important;gap:4px!important;white-space:nowrap!important;}
.v1216-parent-savebar-top{align-items:center!important;margin-left:auto!important;}
@media(max-width:680px){
  .v1216-foyer-top{display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;margin-bottom:8px!important;}
  .v1216-foyer-title{font-size:20px!important;line-height:1!important;}
  .v1216-parent-savebar-top{padding:2px 4px!important;gap:4px!important;border-color:#dbeafe!important;background:#f8fbff!important;}
  .v1216-parent-savebar-top .parent-save-badge{font-size:9px!important;min-height:19px!important;padding:2px 5px!important;}
  .v1216-parent-savebar-top .v1216-parent-save-btn{width:25px!important;min-width:25px!important;height:24px!important;min-height:24px!important;padding:0!important;}
}

/* Cartes enfants plus compactes, bouton sur une seule ligne et vert */
main .cards-list{gap:8px!important;}
main .person-card{min-height:0!important;}
main .person-card .pc-main[data-v1216-clickable="1"]{cursor:pointer!important;}
main .person-card button[onclick*="childSheet"],
#fam_children .person-card button[onclick*="childSheet"]{
  background:#16a34a!important;
  border-color:#16a34a!important;
  color:#fff!important;
  white-space:nowrap!important;
  min-width:max-content!important;
  width:auto!important;
}
@media(max-width:680px){
  main .person-card,#fam_children .person-card{padding:8px 9px!important;gap:7px!important;}
  main .person-card button[onclick*="childSheet"],#fam_children .person-card button[onclick*="childSheet"]{font-size:10px!important;padding:5px 7px!important;max-width:none!important;white-space:nowrap!important;}
}

/* ===================== V12.16 TEST10 - icônes aide famille stables ===================== */
.family-info-dot{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  margin-left:6px!important;
  padding:0!important;
  border:1.5px solid #2563eb!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#2563eb!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1!important;
  font-family:Arial, sans-serif!important;
  box-shadow:0 2px 6px rgba(37,99,235,.12)!important;
  cursor:help!important;
  vertical-align:middle!important;
  position:relative!important;
  overflow:visible!important;
}
.family-info-dot:hover,.family-info-dot.is-open{
  background:#eff6ff!important;
  color:#1d4ed8!important;
  border-color:#1d4ed8!important;
}
.family-info-dot.is-open::after{
  content:attr(data-tooltip);
  position:absolute!important;
  z-index:999999!important;
  top:calc(100% + 8px)!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:min(270px, calc(100vw - 34px))!important;
  white-space:normal!important;
  text-align:left!important;
  background:#0f172a!important;
  color:#fff!important;
  border-radius:12px!important;
  padding:10px 11px!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.35!important;
  box-shadow:0 12px 28px rgba(15,23,42,.28)!important;
  pointer-events:none!important;
}
.family-info-dot.is-open::before{
  content:attr(data-help-title);
  position:absolute!important;
  z-index:1000000!important;
  top:calc(100% + 9px)!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  width:min(270px, calc(100vw - 34px))!important;
  color:#fff!important;
  font-size:0!important;
}
.v1216-foyer-title .family-info-dot,
.top h1 .family-info-dot{flex:0 0 auto!important;}
@media(max-width:680px){
  .family-info-dot{width:17px!important;height:17px!important;min-width:17px!important;font-size:11px!important;margin-left:5px!important;}
  .family-info-dot.is-open::after{left:auto!important;right:-4px!important;transform:none!important;width:min(260px, calc(100vw - 28px))!important;}
  .v1216-foyer-top{align-items:center!important;}
  .v1216-foyer-title{display:flex!important;align-items:center!important;gap:3px!important;}
}

/* ===================== V12.16 TEST11 - correctif : ne pas appliquer les patches parent aux listes admin ===================== */
body.v1216-admin-ui main .person-card,
body.v1216-admin-ui .main .person-card{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
  gap:10px!important;
  padding:10px 12px!important;
  min-height:0!important;
}
body.v1216-admin-ui main .person-card .avatar,
body.v1216-admin-ui .main .person-card .avatar{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  border-radius:12px!important;
  font-size:18px!important;
}
body.v1216-admin-ui main .person-card .pc-main,
body.v1216-admin-ui .main .person-card .pc-main{
  flex:1 1 auto!important;
  min-width:0!important;
}
/* V4.44 : l'ancien pointer-events:none ci-dessus annulait la ligne cliquable
   (v25-open-main) de Foyers/Enfants pour tous les comptes non-parents. */
body.v1216-admin-ui main .person-card .pc-main b,
body.v1216-admin-ui .main .person-card .pc-main b{
  font-size:12px!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.v1216-admin-ui main .person-card .pc-main span,
body.v1216-admin-ui .main .person-card .pc-main span{
  font-size:10px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.v1216-admin-ui main .person-card button,
body.v1216-admin-ui .main .person-card button{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:26px!important;
  padding:5px 8px!important;
  font-size:10px!important;
  line-height:1!important;
  border-radius:9px!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
body.v1216-admin-ui main .person-card button[onclick*="childSheet"],
body.v1216-admin-ui .main .person-card button[onclick*="childSheet"]{
  background:#edf2f7!important;
  border-color:#edf2f7!important;
  color:#233045!important;
}
body.v1216-admin-ui main .person-card button.danger,
body.v1216-admin-ui .main .person-card button.danger{
  background:#dc2626!important;
  border-color:#dc2626!important;
  color:#fff!important;
}
@media(max-width:680px){
  body.v1216-admin-ui main .cards-list,
  body.v1216-admin-ui .main .cards-list{gap:7px!important;}
  body.v1216-admin-ui main .person-card,
  body.v1216-admin-ui .main .person-card{padding:8px!important;gap:7px!important;}
}

/* ===================== V12.16 TEST12 - icône aide unifiée + recherche admin mobile ===================== */
.app-help-i,
.info-bubble.app-help-i,
.module-help.app-help-i,
.family-info-dot.app-help-i,
button.app-help-i{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  min-height:18px!important;
  padding:0!important;
  margin:0 0 0 6px!important;
  display:inline-grid!important;
  place-items:center!important;
  border:1.5px solid #2563eb!important;
  border-radius:999px!important;
  background:#eff6ff!important;
  color:#1d4ed8!important;
  font-size:11px!important;
  font-weight:950!important;
  line-height:1!important;
  font-family:Arial, sans-serif!important;
  box-shadow:none!important;
  transform:none!important;
  cursor:help!important;
  vertical-align:middle!important;
  position:relative!important;
  overflow:visible!important;
  text-indent:0!important;
}
.app-help-i:hover,
.app-help-i.is-open{
  background:#dbeafe!important;
  border-color:#1d4ed8!important;
  color:#1e40af!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.10)!important;
  transform:none!important;
}
.app-help-tip{
  position:fixed!important;
  z-index:2147483000!important;
  max-width:min(360px, calc(100vw - 24px))!important;
  background:#0f172a!important;
  color:#fff!important;
  border-radius:14px!important;
  padding:11px 12px!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.35!important;
  box-shadow:0 18px 45px rgba(15,23,42,.30)!important;
  pointer-events:none!important;
}
.app-help-tip b{display:block!important;font-size:12px!important;margin-bottom:4px!important;color:#fff!important;}
.top h1,
.v1216-foyer-title{display:flex!important;align-items:center!important;gap:4px!important;flex-wrap:wrap!important;}
.top h1 .app-help-i,
.v1216-foyer-title .app-help-i{flex:0 0 auto!important;}
.family-info-dot:not(.app-help-i)::before,
.family-info-dot:not(.app-help-i)::after{display:none!important;content:none!important;}
@media(max-width:680px){
  .app-help-i,
  button.app-help-i{width:17px!important;height:17px!important;min-width:17px!important;max-width:17px!important;font-size:10px!important;margin-left:4px!important;}
  .app-help-tip{font-size:11px!important;max-width:calc(100vw - 20px)!important;}
}
/* Recherche enfants admin : évite les débordements sur mobile et les superpositions */
body.v1216-admin-ui .main .smart-search.v11-search,
body.v1216-admin-ui main .smart-search.v11-search{
  min-width:0!important;
  max-width:100%!important;
  width:100%!important;
  overflow:visible!important;
  flex:1 1 100%!important;
}
body.v1216-admin-ui .main .smart-search.v11-search .search-wrap,
body.v1216-admin-ui main .smart-search.v11-search .search-wrap{
  max-width:100%!important;
  min-width:0!important;
}
body.v1216-admin-ui .main .smart-search.v11-search input,
body.v1216-admin-ui main .smart-search.v11-search input{
  min-width:0!important;
}
@media(max-width:680px){
  body.v1216-admin-ui .main .smart-search.v11-search,
  body.v1216-admin-ui main .smart-search.v11-search{
    position:relative!important;
    top:auto!important;
    z-index:2!important;
    padding:8px!important;
    border-radius:14px!important;
    margin:0 0 8px 0!important;
    box-shadow:0 6px 14px rgba(37,99,235,.08)!important;
  }
  body.v1216-admin-ui .main .smart-search.v11-search label,
  body.v1216-admin-ui main .smart-search.v11-search label{
    font-size:10px!important;
    line-height:1.1!important;
    margin-bottom:5px!important;
  }
  body.v1216-admin-ui .main .smart-search.v11-search .search-wrap,
  body.v1216-admin-ui main .smart-search.v11-search .search-wrap{
    gap:6px!important;
    padding:5px 6px!important;
    min-height:36px!important;
    border-radius:11px!important;
  }
  body.v1216-admin-ui .main .smart-search.v11-search .search-wrap:before,
  body.v1216-admin-ui main .smart-search.v11-search .search-wrap:before{
    font-size:14px!important;
  }
  body.v1216-admin-ui .main .smart-search.v11-search input,
  body.v1216-admin-ui main .smart-search.v11-search input{
    font-size:12px!important;
    min-height:26px!important;
    height:28px!important;
    padding:3px 4px!important;
    line-height:1.1!important;
  }
  body.v1216-admin-ui .main .clear-search,
  body.v1216-admin-ui main .clear-search{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    padding:0!important;
    border-radius:9px!important;
    font-size:12px!important;
  }
  body.v1216-admin-ui .main .suggestions,
  body.v1216-admin-ui main .suggestions{
    left:8px!important;
    right:8px!important;
    top:calc(100% + 3px)!important;
    border-radius:12px!important;
  }
}

/* ===================== V12.16 TEST13 - correctifs anti-duplication aides + admin enfants ===================== */
.app-help-i,
button.app-help-i{
  width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;
  min-height:18px!important;padding:0!important;margin-left:6px!important;
  display:inline-grid!important;place-items:center!important;
  border:1.5px solid #2563eb!important;border-radius:50%!important;
  background:#eff6ff!important;color:#1d4ed8!important;
  font:900 11px/1 Arial,sans-serif!important;text-align:center!important;
  box-shadow:none!important;cursor:help!important;vertical-align:middle!important;
  position:relative!important;overflow:visible!important;appearance:none!important;
}
.app-help-i:hover,.app-help-i.is-open{background:#dbeafe!important;color:#1e40af!important;border-color:#1d4ed8!important;}
.app-help-tip{position:fixed!important;z-index:2147483000!important;max-width:min(360px,calc(100vw - 24px))!important;background:#0f172a!important;color:#fff!important;border-radius:14px!important;padding:11px 12px!important;font-size:12px!important;font-weight:700!important;line-height:1.35!important;box-shadow:0 18px 45px rgba(15,23,42,.30)!important;pointer-events:none!important;}
.app-help-tip b{display:block!important;margin-bottom:4px!important;color:#fff!important;font-size:12px!important;}
.app-help-tip span{display:block!important;color:#fff!important;}
.info-bubble:not(.app-help-i),.module-help:not(.app-help-i),.family-info-dot:not(.app-help-i){display:none!important;}
.top h1,.v1216-foyer-title{display:flex!important;align-items:center!important;gap:4px!important;flex-wrap:nowrap!important;min-height:0!important;}
.top h1 .app-help-i,.v1216-foyer-title .app-help-i{flex:0 0 18px!important;}
@media(max-width:680px){.app-help-i,button.app-help-i{width:17px!important;height:17px!important;min-width:17px!important;max-width:17px!important;font-size:10px!important;margin-left:4px!important}.app-help-tip{font-size:11px!important;max-width:calc(100vw - 20px)!important}}

body.v1216-admin-ui .v1216-child-card-fixed{padding-top:10px!important;}
body.v1216-admin-ui .v1216-child-toolbar-fixed{margin:0 0 8px 0!important;padding:0!important;display:flex!important;align-items:flex-start!important;gap:8px!important;min-height:0!important;}
body.v1216-admin-ui .v1216-child-search-fixed{margin:0!important;padding:0!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;}
body.v1216-admin-ui .v1216-child-search-fixed label{margin:0 0 5px 0!important;font-size:10px!important;line-height:1.1!important;display:block!important;}
body.v1216-admin-ui .v1216-child-search-fixed .search-wrap{margin:0!important;min-height:36px!important;padding:5px 6px!important;border-radius:11px!important;display:flex!important;align-items:center!important;gap:6px!important;}
body.v1216-admin-ui .v1216-child-search-fixed input{min-width:0!important;height:28px!important;min-height:28px!important;font-size:12px!important;padding:3px 4px!important;}
body.v1216-admin-ui .v1216-child-search-fixed .clear-search{width:28px!important;height:28px!important;min-width:28px!important;max-width:28px!important;padding:0!important;border-radius:9px!important;background:#e5e7eb!important;border-color:#e5e7eb!important;color:#111827!important;}
body.v1216-admin-ui #clist{margin-top:8px!important;}
body.v1216-admin-ui #clist .person-card{position:relative!important;z-index:1!important;}

/* ===================== V12.16 TEST14 - correctifs ciblés admin enfants / aide / z-index ===================== */
#topbarActions,.topbar-actions{position:relative!important;z-index:9999!important;}
.side,.premium-side,.side.v1216-zfix,.premium-side.v1216-zfix{position:relative!important;z-index:9998!important;}
@media(max-width:980px){.side,.premium-side{z-index:9998!important}.topbar{z-index:9999!important}}
.app-help-i{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;min-height:18px!important;max-height:18px!important;padding:0!important;margin:0 0 0 5px!important;border-radius:50%!important;border:1.5px solid #2563eb!important;background:#eff6ff!important;color:#1d4ed8!important;font:800 12px/1 Arial,system-ui,sans-serif!important;box-shadow:none!important;vertical-align:middle!important;cursor:help!important;transform:none!important;}
.app-help-i:hover,.app-help-i.is-open{background:#dbeafe!important;border-color:#1d4ed8!important;color:#1e40af!important;box-shadow:none!important;transform:none!important;}
.app-help-tip{position:fixed!important;z-index:10000!important;max-width:min(330px,calc(100vw - 20px))!important;background:#0f172a!important;color:#fff!important;border-radius:14px!important;padding:12px 13px!important;box-shadow:0 18px 50px rgba(15,23,42,.25)!important;font-size:13px!important;line-height:1.35!important;}
.app-help-tip b{display:block!important;margin-bottom:4px!important;font-size:13px!important;color:#fff!important;}
.app-help-tip span{display:block!important;color:#e5e7eb!important;}
body.v1216-admin-ui .field.grow.smart-search.v11-search.v1216-child-search-fixed{margin-top:-85px!important;margin-bottom:-85px!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;}
body.v1216-admin-ui .v1216-child-search-fixed label{display:block!important;margin:0 0 5px!important;font-size:10px!important;line-height:1.1!important;}
body.v1216-admin-ui .v1216-child-search-fixed .search-wrap{margin:0!important;min-height:36px!important;padding:5px 6px!important;border-radius:11px!important;display:flex!important;align-items:center!important;gap:6px!important;box-sizing:border-box!important;}
body.v1216-admin-ui .v1216-child-search-fixed input{min-width:0!important;height:28px!important;min-height:28px!important;font-size:12px!important;padding:3px 4px!important;}
body.v1216-admin-ui .v1216-child-search-fixed .clear-search{width:28px!important;height:28px!important;min-width:28px!important;max-width:28px!important;padding:0!important;border-radius:9px!important;background:#e5e7eb!important;border-color:#e5e7eb!important;color:#111827!important;}
body.v1216-admin-ui .v1216-child-card-fixed{overflow:visible!important;}

/* ===================== V12.16 TEST15 - correction marge mobile causée par z-index side ===================== */
/* Le z-index du menu ne doit pas remettre la sidebar dans le flux en mobile. */
#topbarActions,
.topbar-actions,
.topbar.v1216-zfix,
.topbar{
  z-index:10000!important;
}
@media(max-width:980px){
  .side.v1216-zfix,
  .premium-side.v1216-zfix,
  .side,
  .premium-side{
    position:fixed!important;
    left:0!important;
    top:56px!important;
    bottom:0!important;
    width:290px!important;
    height:calc(100vh - 56px)!important;
    max-height:calc(100vh - 56px)!important;
    margin:0!important;
    transform:translateX(-105%)!important;
    z-index:9998!important;
  }
  body.menu-open .side,
  body.menu-open .premium-side{
    transform:translateX(0)!important;
  }
  .workspace,
  .main,
  main{
    margin-top:0!important;
    padding-top:12px!important;
  }
  .app.v11,
  .app{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
  }
}

/* ===================== V12.16 TEST17 - correctif retour admin enfants : suppression marges négatives ===================== */
/* Annule les essais de marge négative sur la recherche enfant : ils provoquaient le chevauchement avec les cartes. */
@media (max-width:680px){
  body.v1216-admin-ui .toolbar.v1216-child-toolbar-fixed,
  body.v1216-admin-ui main .toolbar.v1216-child-toolbar-fixed,
  body.v1216-admin-ui .main .toolbar.v1216-child-toolbar-fixed{
    margin:0 0 10px 0!important;
    padding:0!important;
    min-height:0!important;
    height:auto!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    overflow:visible!important;
    clear:both!important;
  }
  body.v1216-admin-ui .field.grow.smart-search.v11-search.v1216-child-search-fixed,
  body.v1216-admin-ui main .field.grow.smart-search.v11-search.v1216-child-search-fixed,
  body.v1216-admin-ui .main .field.grow.smart-search.v11-search.v1216-child-search-fixed{
    margin:0!important;
    padding:8px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    position:relative!important;
    top:auto!important;
    z-index:2!important;
    box-sizing:border-box!important;
  }
  body.v1216-admin-ui .v1216-child-search-fixed .search-wrap{
    margin:0!important;
    min-height:36px!important;
    padding:5px 6px!important;
  }
  body.v1216-admin-ui #clist,
  body.v1216-admin-ui main #clist,
  body.v1216-admin-ui .main #clist{
    margin-top:8px!important;
    position:relative!important;
    z-index:1!important;
    display:grid!important;
    gap:8px!important;
  }
}
/* Topbar/menu toujours au-dessus, sans remettre la sidebar dans le flux mobile. */
#topbarActions,.topbar-actions,.topbar{position:sticky;z-index:10000!important;}
@media(max-width:980px){
  .side,.premium-side{z-index:9998!important;}
  .workspace,.main,main{margin-top:0!important;}
}

/* V12.08 - Modales au-dessus de la barre admin + alertes admin plus lisibles */
body.modal-open{overflow:hidden!important;}
.modal-back{position:fixed!important;inset:0!important;z-index:2147483000!important;isolation:isolate!important;display:grid!important;place-items:center!important;background:rgba(15,23,42,.58)!important;backdrop-filter:blur(3px)!important;}
.modal-back .modal{position:relative!important;z-index:1!important;margin:0!important;width:min(980px,calc(100vw - 28px))!important;max-height:calc(100dvh - 28px)!important;min-height:0!important;}
.modal-back .modal-head{position:sticky!important;top:0!important;z-index:3!important;background:#fff!important;}
.modal-back .modal-body{max-height:calc(100dvh - 96px)!important;overflow:auto!important;}
body:has(.modal-back.show) .topbar,body:has(.modal-back.show) .side{z-index:1!important;}
.alert-admin-head{position:sticky;top:0;z-index:2;background:#fff;border:1px solid #dbe7f5;border-radius:18px;padding:12px 14px;margin-bottom:12px;box-shadow:0 10px 28px rgba(15,23,42,.08)}
.alert-admin-title{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.alert-admin-title strong{font-size:30px;color:#b91c1c;line-height:1}.alert-admin-title span{font-weight:900;color:#334155}.alert-admin-head p{margin:8px 0 0;color:#64748b;font-size:13px;font-weight:700}.alert-admin-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.v1208-alert-group{border:1px solid #dbe5f0!important;border-radius:18px!important;margin:10px 0!important;background:#fff!important;overflow:hidden!important;box-shadow:0 8px 22px rgba(15,23,42,.05)}.v1208-alert-group .alert-family-head{display:grid!important;grid-template-columns:auto minmax(150px,1.2fr) auto auto minmax(180px,1fr) auto!important;gap:10px!important;align-items:center!important;width:100%!important;background:#f8fafc!important;color:#0f172a!important;padding:12px 14px!important;border:0!important;text-align:left!important;box-shadow:none!important}.v1208-alert-group .alert-family-head:hover{background:#eef6ff!important;transform:none!important}.alert-chevron{font-size:22px;font-weight:950;color:#2563eb;transition:.15s}.alert-family-head.open .alert-chevron{transform:rotate(90deg)}.alert-family-name{font-weight:950;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-family-count{border-radius:999px;background:#e0f2fe;color:#075985;padding:5px 9px;font-size:12px;font-weight:950;white-space:nowrap}.alert-mandatory-count{border-radius:999px;background:#fee2e2;color:#991b1b;padding:5px 9px;font-size:12px;font-weight:950;white-space:nowrap}.alert-type-list{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.alert-type-chip{display:inline-flex;gap:5px;align-items:center;border:1px solid #e2e8f0;background:#fff;border-radius:999px;padding:4px 8px;font-size:12px;color:#475569;font-weight:800}.alert-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}.alert-toggle-text{font-size:12px;font-weight:950;color:#2563eb;padding:5px 2px}.v1208-alert-group .alert-family-body{padding:10px 12px;background:#fff}.v1208-alert-group .compact-alert{display:grid!important;grid-template-columns:1fr auto!important;gap:12px!important;align-items:center!important;border:1px solid #e2e8f0!important;border-left:5px solid #f59e0b!important;background:#fff!important;border-radius:14px!important;padding:10px 12px!important;margin:8px 0!important}.v1208-alert-group .mandatory-alert{border-left-color:#dc2626!important;background:#fffafa!important}.v1208-alert-group .alert-main div{line-height:1.35}.v1208-alert-group .work-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.alert-family-body.collapsed{display:none!important}
@media(max-width:900px){.v1208-alert-group .alert-family-head{grid-template-columns:auto 1fr!important}.alert-family-count,.alert-mandatory-count,.alert-type-list,.alert-head-actions{grid-column:2/-1;justify-content:flex-start}.v1208-alert-group .compact-alert{grid-template-columns:1fr!important}.v1208-alert-group .work-actions{justify-content:flex-start}.alert-head-actions{flex-wrap:wrap}.alert-admin-head{position:relative}.alert-admin-actions button{flex:1 1 auto}}
@media(max-width:760px){.modal-back{padding:0!important;place-items:stretch!important}.modal-back .modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.modal-back .modal-body{max-height:calc(100dvh - 54px)!important}.alert-admin-title strong{font-size:24px}.alert-admin-actions{display:grid;grid-template-columns:1fr 1fr}.alert-admin-actions button{width:100%}.v1208-alert-group .alert-family-head{padding:11px!important}.alert-family-name{white-space:normal}.alert-type-list{display:none}}

/* V12.17 - menu gauche compact, hauteur écran, accordéon exclusif + tooltips */
@media(min-width:981px){
  .app.v11{grid-template-columns:260px minmax(0,1fr)!important;min-height:100dvh!important;transition:grid-template-columns .26s cubic-bezier(.2,.8,.2,1)!important}
  .side,.premium-side{position:sticky!important;top:0!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;transition:width .26s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,transform .22s ease!important}
  .side-inner{height:100dvh!important;max-height:100dvh!important;min-height:100dvh!important;border-radius:0!important;padding:12px 10px!important;overflow:hidden!important;transition:padding .26s cubic-bezier(.2,.8,.2,1)!important}
  .nav,.premium-nav{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:visible!important;padding:0 2px 12px 0!important;scrollbar-width:thin!important}
  .brand{min-height:56px!important;margin-bottom:10px!important;padding:10px!important;border-radius:16px!important;transition:min-height .22s ease,padding .22s ease,margin .22s ease,background .22s ease!important}
  .brand .logo{width:38px!important;height:38px!important;border-radius:12px!important;transition:width .22s ease,height .22s ease,border-radius .22s ease,transform .22s ease!important}
  .brand div:not(.logo){max-width:180px!important;opacity:1!important;transform:translateX(0)!important;overflow:hidden!important;transition:opacity .16s ease,transform .2s ease,max-width .24s ease!important}
  .nav-label{max-width:190px!important;opacity:1!important;transform:translateX(0)!important;transition:opacity .16s ease,transform .2s ease,max-width .24s ease!important}
  .nav-groups summary{max-height:34px!important;opacity:1!important;transition:opacity .16s ease,transform .2s ease,max-height .22s ease,min-height .22s ease,padding .22s ease,margin .22s ease!important}
  .premium-nav details{margin:8px 0!important;transition:margin .22s ease,padding .22s ease,background .2s ease,border-color .2s ease!important}
  .premium-nav summary{min-height:26px!important;margin-bottom:3px!important}
  .premium-nav button{height:38px!important;min-height:38px!important;margin:2px 0!important;padding:0 10px!important;border-radius:12px!important;transition:width .24s cubic-bezier(.2,.8,.2,1),height .22s ease,min-height .22s ease,margin .22s ease,padding .22s ease,background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease!important}
  .premium-nav button:hover{transform:translateX(2px)!important}
  body.menu-collapsed .app.v11{grid-template-columns:78px minmax(0,1fr)!important}
  body.menu-collapsed .side,body.menu-collapsed .premium-side{width:78px!important}
  body.menu-collapsed .side-inner{padding:10px 8px!important;overflow:visible!important}
  body.menu-collapsed .brand{justify-content:center!important;padding:8px!important}
  body.menu-collapsed .brand .logo{transform:scale(.94)!important}
  body.menu-collapsed .brand div:not(.logo){
    display:block!important;
    max-width:0!important;
    opacity:0!important;
    transform:translateX(-8px)!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    pointer-events:none!important;
  }
  body.menu-collapsed .nav-label{
    display:inline-block!important;
    max-width:0!important;
    opacity:0!important;
    transform:translateX(-8px)!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    pointer-events:none!important;
  }
  body.menu-collapsed .nav-groups summary{
    display:flex!important;
    max-height:0!important;
    min-height:0!important;
    height:0!important;
    opacity:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    pointer-events:none!important;
  }
  body.menu-collapsed .premium-nav details{border:0!important;margin:6px 0!important;padding:0!important}
  body.menu-collapsed .premium-nav button{position:relative!important;justify-content:center!important;width:44px!important;height:42px!important;min-height:42px!important;margin:4px auto!important;padding:0!important}
  body.menu-collapsed .premium-nav button:hover{transform:translateX(0) scale(1.06)!important}
  body.menu-collapsed .nav-ico{margin:0!important}
  body.menu-collapsed .nav [data-tooltip]:hover::after{
    content:attr(data-tooltip);
    position:absolute;
    left:calc(100% + 10px);
    top:50%;
    transform:translateY(-50%);
    z-index:2147482000;
    max-width:240px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    background:#0f172a;
    color:#fff;
    border:1px solid rgba(255,255,255,.14);
    border-radius:10px;
    padding:8px 10px;
    font-size:12px;
    line-height:1.15;
    box-shadow:0 16px 38px rgba(15,23,42,.24);
    pointer-events:none;
  }
}
@media(max-width:980px){
  .side,.premium-side{height:calc(100dvh - 56px)!important;max-height:calc(100dvh - 56px)!important;overflow:hidden!important}
  .side-inner{height:100%!important;max-height:100%!important;overflow-y:auto!important;border-radius:0!important}
}

/* V12.19 - animation menu fiable : flex-basis au lieu de grid */
@media(min-width:981px){
  .app.v11{
    display:flex!important;
    align-items:stretch!important;
    min-height:100dvh!important;
  }
  .app.v11 .side,
  .app.v11 .premium-side{
    flex:0 0 260px!important;
    width:260px!important;
    min-width:260px!important;
    transition:flex-basis .32s cubic-bezier(.22,1,.36,1),width .32s cubic-bezier(.22,1,.36,1),min-width .32s cubic-bezier(.22,1,.36,1),box-shadow .22s ease!important;
    will-change:flex-basis,width,min-width!important;
  }
  .app.v11 .workspace{
    flex:1 1 auto!important;
    min-width:0!important;
    transition:filter .22s ease!important;
  }
  body.menu-collapsed .app.v11 .side,
  body.menu-collapsed .app.v11 .premium-side{
    flex-basis:78px!important;
    width:78px!important;
    min-width:78px!important;
  }
  body.menu-is-animating .app.v11 .side-inner{
    transition:padding .32s cubic-bezier(.22,1,.36,1)!important;
  }
  body.menu-is-animating .nav-ico{
    transition:transform .28s cubic-bezier(.22,1,.36,1),background .2s ease!important;
  }
  body.menu-is-animating.menu-collapsed .nav-ico{
    transform:scale(1.06)!important;
  }
}

/* V12.21 - transition visible sur les boutons de navigation eux-mêmes */
@media(min-width:981px){
  .app.v11 .nav button[data-p],
  .app.v11 .premium-nav button[data-p]{
    display:grid!important;
    grid-template-columns:28px minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:start!important;
    column-gap:10px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    transform-origin:center left!important;
    transition:
      grid-template-columns .34s cubic-bezier(.22,1,.36,1),
      column-gap .28s ease,
      width .34s cubic-bezier(.22,1,.36,1),
      max-width .34s cubic-bezier(.22,1,.36,1),
      padding .34s cubic-bezier(.22,1,.36,1),
      margin .24s ease,
      background-color .18s ease,
      color .18s ease,
      box-shadow .18s ease,
      transform .24s cubic-bezier(.22,1,.36,1)!important;
  }
  .app.v11 .nav button[data-p] .nav-ico,
  .app.v11 .premium-nav button[data-p] .nav-ico{
    grid-column:1!important;
    justify-self:center!important;
    transition:transform .3s cubic-bezier(.22,1,.36,1),background-color .18s ease,color .18s ease!important;
  }
  .app.v11 .nav button[data-p] .nav-label,
  .app.v11 .premium-nav button[data-p] .nav-label{
    grid-column:2!important;
    display:block!important;
    min-width:0!important;
    max-width:none!important;
    opacity:1!important;
    transform:translateX(0)!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    transition:max-width .32s cubic-bezier(.22,1,.36,1),opacity .18s ease,transform .28s cubic-bezier(.22,1,.36,1)!important;
  }
  body.menu-collapsed .app.v11 .nav button[data-p],
  body.menu-collapsed .app.v11 .premium-nav button[data-p]{
    grid-template-columns:28px minmax(0,0fr)!important;
    column-gap:0!important;
    width:44px!important;
    max-width:44px!important;
    padding-left:8px!important;
    padding-right:8px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  body.menu-collapsed .app.v11 .nav button[data-p] .nav-label,
  body.menu-collapsed .app.v11 .premium-nav button[data-p] .nav-label{
    max-width:0!important;
    opacity:0!important;
    transform:translateX(-10px)!important;
  }
  body.menu-is-animating .app.v11 .nav button[data-p],
  body.menu-is-animating .app.v11 .premium-nav button[data-p]{
    will-change:grid-template-columns,width,max-width,padding,transform!important;
  }
  body.menu-is-animating.menu-collapsed .app.v11 .nav button[data-p],
  body.menu-is-animating.menu-collapsed .app.v11 .premium-nav button[data-p]{
    animation:v1221NavButtonCollapse .34s cubic-bezier(.22,1,.36,1) both!important;
  }
  body.menu-is-animating:not(.menu-collapsed) .app.v11 .nav button[data-p],
  body.menu-is-animating:not(.menu-collapsed) .app.v11 .premium-nav button[data-p]{
    animation:v1221NavButtonExpand .34s cubic-bezier(.22,1,.36,1) both!important;
  }
}
@keyframes v1221NavButtonCollapse{
  0%{transform:translateX(0) scaleX(1)}
  55%{transform:translateX(-2px) scaleX(.92)}
  100%{transform:translateX(0) scaleX(1)}
}
@keyframes v1221NavButtonExpand{
  0%{transform:translateX(0) scaleX(.94)}
  60%{transform:translateX(2px) scaleX(1.015)}
  100%{transform:translateX(0) scaleX(1)}
}

/* V12.22 - libelles gardes animables pendant la reduction */
@media(min-width:981px){
  body.menu-collapsed .app.v11 .nav button[data-p] .nav-label,
  body.menu-collapsed .app.v11 .premium-nav button[data-p] .nav-label{
    display:block!important;
  }
  body.menu-is-animating .app.v11 .nav button[data-p] .nav-label,
  body.menu-is-animating .app.v11 .premium-nav button[data-p] .nav-label{
    display:block!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
}

/* V12.43 - menu reduit propre et topbar parent allegee */
.topbar-brand-text.parent-hidden-title{display:none!important}
.topbar-title{min-width:0!important}
.topbar-title .hamb{flex:0 0 42px!important}
@media(min-width:981px){
  body.menu-collapsed .app.v11{grid-template-columns:74px minmax(0,1fr)!important}
  body.menu-collapsed .app.v11 .side,
  body.menu-collapsed .app.v11 .premium-side{
    flex:0 0 74px!important;
    width:74px!important;
    min-width:74px!important;
    max-width:74px!important;
    overflow:hidden!important;
  }
  body.menu-collapsed .app.v11 .side-inner{
    width:74px!important;
    min-width:74px!important;
    max-width:74px!important;
    padding:10px 8px!important;
    align-items:center!important;
    overflow:hidden!important;
  }
  body.menu-collapsed .app.v11 .brand{
    width:46px!important;
    height:46px!important;
    min-height:46px!important;
    margin:4px auto 12px!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:rgba(255,255,255,.08)!important;
    overflow:hidden!important;
  }
  body.menu-collapsed .app.v11 .brand .logo{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    border-radius:12px!important;
    transform:none!important;
  }
  body.menu-collapsed .app.v11 .brand div:not(.logo){
    display:none!important;
    width:0!important;
    max-width:0!important;
    min-width:0!important;
    opacity:0!important;
  }
  body.menu-collapsed .app.v11 .nav,
  body.menu-collapsed .app.v11 .premium-nav{
    width:100%!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:4px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  body.menu-collapsed .app.v11 .nav-groups details,
  body.menu-collapsed .app.v11 .premium-nav details{
    width:100%!important;
    border:0!important;
    background:transparent!important;
    margin:0!important;
    padding:0!important;
  }
  body.menu-collapsed .app.v11 .nav-groups summary,
  body.menu-collapsed .app.v11 .premium-nav summary{
    display:none!important;
  }
  body.menu-collapsed .app.v11 .nav button[data-p],
  body.menu-collapsed .app.v11 .premium-nav button[data-p]{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    margin:2px auto!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:13px!important;
    gap:0!important;
    grid-template-columns:none!important;
  }
  body.menu-collapsed .app.v11 .nav button[data-p] .nav-label,
  body.menu-collapsed .app.v11 .premium-nav button[data-p] .nav-label,
  body.menu-collapsed .app.v11 .nav button[data-p] > span:not(.nav-ico),
  body.menu-collapsed .app.v11 .premium-nav button[data-p] > span:not(.nav-ico){
    display:none!important;
    width:0!important;
    max-width:0!important;
    min-width:0!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  body.menu-collapsed .app.v11 .nav-ico{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    flex:0 0 30px!important;
    margin:0!important;
    justify-self:center!important;
  }
}

/* V12.25 - tuiles services cliquables sur l'accueil */
.dashboard-service-link{
  cursor:pointer!important;
  text-align:left!important;
  border-color:#bfdbfe!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease!important;
}
.dashboard-service-link:hover,
.dashboard-service-link:focus-visible{
  transform:translateY(-2px)!important;
  box-shadow:0 14px 28px rgba(37,99,235,.14)!important;
  border-color:#60a5fa!important;
  outline:none!important;
}
.dashboard-service-link:focus-visible{
  box-shadow:0 0 0 4px #dbeafe,0 14px 28px rgba(37,99,235,.14)!important;
}

/* V12.29 - mise a zero personnalisable */
.reset-choice-grid{
  grid-template-columns:repeat(2,minmax(240px,1fr))!important;
  gap:12px!important;
  margin:14px 0!important;
}
.reset-choice{
  align-items:flex-start!important;
  cursor:pointer!important;
  border-radius:16px!important;
  transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}
.reset-choice:hover{
  border-color:#93c5fd!important;
  background:#f8fbff!important;
  transform:translateY(-1px)!important;
  box-shadow:0 10px 22px rgba(37,99,235,.08)!important;
}
.reset-choice input{
  margin-top:3px!important;
  flex:0 0 auto!important;
}
.reset-choice span{
  display:grid!important;
  gap:4px!important;
  min-width:0!important;
}
.reset-choice b{
  color:#0f172a!important;
  line-height:1.2!important;
}
.reset-choice small{
  color:#64748b!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.35!important;
}
@media(max-width:760px){
  .reset-choice-grid{grid-template-columns:1fr!important}
}

/* V12.35 - documents demandes aux familles */
.family-doc-req-admin{
  border-left:5px solid #2563eb!important;
}
.family-doc-status-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(220px,1fr))!important;
  gap:10px!important;
  margin:12px 0!important;
}
.family-doc-status{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  border:1px solid var(--line)!important;
  border-radius:14px!important;
  padding:11px 12px!important;
  background:#fff!important;
}
.family-doc-status.ok{
  border-color:#bbf7d0!important;
  background:#f0fdf4!important;
}
.family-doc-status.warn{
  border-color:#fed7aa!important;
  background:#fff7ed!important;
}
.family-doc-status b,
.family-doc-status small{
  display:block!important;
}
.family-doc-status small{
  color:#64748b!important;
  font-weight:750!important;
  margin-top:3px!important;
}
.family-doc-req-row .doc-main span{
  display:block!important;
  color:#64748b!important;
  font-size:12px!important;
  margin:2px 0 5px!important;
}
@media(max-width:760px){
  .family-doc-status-grid{grid-template-columns:1fr!important}
}

/* V12.44 final - animation prioritaire des summary du menu gauche */
@media(min-width:981px){
  .app.v11 .nav-groups details,
  .app.v11 .premium-nav details{
    overflow:hidden!important;
    transition:
      margin .34s cubic-bezier(.22,1,.36,1),
      padding .34s cubic-bezier(.22,1,.36,1),
      border-color .26s ease,
      background-color .26s ease!important;
  }
  .app.v11 .nav-groups summary,
  .app.v11 .premium-nav summary{
    display:flex!important;
    align-items:center!important;
    overflow:visible!important;
    max-height:none!important;
    min-height:24px!important;
    opacity:1!important;
    transform:translateY(0) scaleY(1)!important;
    transform-origin:center top!important;
    padding-top:7px!important;
    padding-bottom:7px!important;
    margin-top:0!important;
    margin-bottom:5px!important;
    pointer-events:auto!important;
    transition:
      max-height .34s cubic-bezier(.22,1,.36,1),
      min-height .34s cubic-bezier(.22,1,.36,1),
      padding .34s cubic-bezier(.22,1,.36,1),
      margin .34s cubic-bezier(.22,1,.36,1),
      opacity .2s ease,
      transform .34s cubic-bezier(.22,1,.36,1)!important;
    will-change:max-height,min-height,padding,margin,opacity,transform!important;
  }
  body.menu-collapsed .app.v11 .nav-groups details,
  body.menu-collapsed .app.v11 .premium-nav details{
    margin:2px 0!important;
    padding:0!important;
    border-color:transparent!important;
    background-color:transparent!important;
  }
  body.menu-collapsed .app.v11 .nav-groups summary,
  body.menu-collapsed .app.v11 .premium-nav summary{
    display:flex!important;
    max-height:0!important;
    min-height:0!important;
    height:auto!important;
    opacity:0!important;
    transform:translateY(-8px) scaleY(.72)!important;
    padding-top:0!important;
    padding-bottom:0!important;
    margin-top:0!important;
    margin-bottom:0!important;
    pointer-events:none!important;
  }
  body.menu-is-animating .app.v11 .nav-groups summary,
  body.menu-is-animating .app.v11 .premium-nav summary{
    display:flex!important;
  }
}

/* V12.82 EOF - pointage mobile normal + compact, une ligne garantie */
@media (max-width:760px){
  #svcContent .work-row,
  #svcContent .work-row-readable,
  #svcContent .v56-row,
  #svcContent .v1164-row,
  #svcContent .v1178-cantine-row,
  #svcContent .v1180-row{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
    width:100%!important;
    min-height:38px!important;
    padding:6px 7px!important;
    overflow:hidden!important;
  }
  #svcContent .child-line,
  #svcContent .same-line-alert,
  #svcContent .v56-child-line,
  #svcContent .v58-one-line,
  #svcContent .v1178-cantine-line,
  #svcContent .v1180-child-line{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:4px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child,
  #svcContent .v1180-id{
    min-width:0!important;
    max-width:100%!important;
    display:inline-flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:4px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child b,
  #svcContent .v1180-id b{
    display:inline-block!important;
    max-width:120px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1!important;
  }
  #svcContent .link-child small,
  #svcContent .v1180-id small,
  #svcContent .child-line small{
    flex:0 0 auto!important;
    min-width:auto!important;
    margin:0!important;
    font-size:9px!important;
    line-height:1!important;
  }
  #svcContent .child-line .badge,
  #svcContent .child-line .pill,
  #svcContent .child-line .alert-dot,
  #svcContent .v1180-health,
  #svcContent .v1164-medical-badge{
    flex:0 0 auto!important;
    max-width:42px!important;
    padding:2px 4px!important;
    font-size:9px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  #svcContent .v56-actions,
  #svcContent .v1178-cantine-actions,
  #svcContent .v1180-actions{
    flex:0 0 auto!important;
    max-width:45%!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
    overflow:visible!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  #svcContent .compact-action{
    width:auto!important;
    min-width:0!important;
    min-height:22px!important;
    padding:5px 6px!important;
    border-radius:7px!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions .light,
  #svcContent .work-actions .pill:not(.strong-pill),
  #svcContent .work-actions .badge{
    display:none!important;
  }
}

@media (max-width:390px){
  #svcContent .link-child b,
  #svcContent .v1180-id b{
    max-width:96px!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  #svcContent .v56-actions,
  #svcContent .v1178-cantine-actions,
  #svcContent .v1180-actions{
    max-width:48%!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  #svcContent .compact-action{
    padding:5px!important;
    font-size:8.5px!important;
  }
}

/* V12.84 EOF - pointage mobile: une ligne sans chevauchement */
@media (max-width:760px){
  #svcContent .work-row,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) max-content!important;
    align-items:center!important;
    gap:4px!important;
    width:100%!important;
    min-height:34px!important;
    padding:5px 6px!important;
    overflow:hidden!important;
  }
  #svcContent .child-line,
  .v1179-compact-only .child-line,
  .v1180-compact-only .child-line{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    gap:3px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child,
  #svcContent .v1180-id,
  .v1179-compact-only .link-child,
  .v1179-compact-only .v1180-id,
  .v1180-compact-only .link-child,
  .v1180-compact-only .v1180-id{
    min-width:0!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #svcContent .link-child b,
  #svcContent .v1180-id b,
  .v1179-compact-only .link-child b,
  .v1179-compact-only .v1180-id b,
  .v1180-compact-only .link-child b,
  .v1180-compact-only .v1180-id b{
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:10px!important;
    line-height:1!important;
  }
  #svcContent .link-child small,
  #svcContent .v1180-id small,
  .v1179-compact-only .link-child small,
  .v1179-compact-only .v1180-id small,
  .v1180-compact-only .link-child small,
  .v1180-compact-only .v1180-id small{
    flex:0 0 auto!important;
    font-size:8px!important;
    line-height:1!important;
    margin:0!important;
  }
  #svcContent .child-line .pill,
  #svcContent .child-line .badge,
  #svcContent .child-line .alert-dot,
  #svcContent .v1180-health,
  .v1179-compact-only .child-line .pill,
  .v1179-compact-only .child-line .badge,
  .v1179-compact-only .child-line .alert-dot,
  .v1179-compact-only .v1180-health,
  .v1180-compact-only .child-line .pill,
  .v1180-compact-only .child-line .badge,
  .v1180-compact-only .child-line .alert-dot,
  .v1180-compact-only .v1180-health{
    flex:0 0 auto!important;
    max-width:34px!important;
    padding:2px 3px!important;
    font-size:8px!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  #svcContent .work-actions,
  #svcContent .action-group,
  .v1179-compact-only .work-actions,
  .v1179-compact-only .action-group,
  .v1180-compact-only .work-actions,
  .v1180-compact-only .action-group{
    grid-column:2!important;
    grid-row:1!important;
    min-width:max-content!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:2px!important;
    overflow:visible!important;
  }
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    width:auto!important;
    min-width:0!important;
    min-height:20px!important;
    max-width:38px!important;
    padding:4px 5px!important;
    border-radius:7px!important;
    font-size:8px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  #svcContent .work-actions .light,
  #svcContent .work-actions .pill:not(.strong-pill),
  #svcContent .work-actions .badge,
  .v1179-compact-only .work-actions .light,
  .v1179-compact-only .work-actions .pill:not(.strong-pill),
  .v1179-compact-only .work-actions .badge,
  .v1180-compact-only .work-actions .light,
  .v1180-compact-only .work-actions .pill:not(.strong-pill),
  .v1180-compact-only .work-actions .badge{
    display:none!important;
  }
  #svcContent .v56-options summary,
  .v1179-compact-only .v56-options summary,
  .v1180-compact-only .v56-options summary{
    width:20px!important;
    height:20px!important;
    min-width:20px!important;
    min-height:20px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
  }
}
@media (max-width:390px){
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    max-width:34px!important;
    padding:4px!important;
    font-size:7.5px!important;
  }
}

/* V12.85 TRUE EOF - pointage mobile: normal + compact sans superposition */
@media (max-width:760px){
  .v1180-daily-main .compact-list,
  .v1180-daily-main .dense-list,
  .service-card .compact-list,
  .service-card .dense-list,
  #svcContent .compact-list,
  #svcContent .dense-list,
  .v1179-compact-only,
  .v1180-compact-only{width:100%!important;min-width:0!important;overflow:visible!important;}

  .v1180-daily-main .work-row,
  .v1180-daily-main .v56-row.work-row-readable,
  .service-card .work-row,
  .service-card .v56-row.work-row-readable,
  #svcContent .work-row,
  #svcContent .v56-row.work-row-readable,
  .v1179-compact-only .work-row,
  .v1180-compact-only .work-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:4px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:32px!important;
    padding:5px 6px!important;
    overflow:visible!important;
  }

  .v1180-daily-main .child-line,
  .v1180-daily-main .v56-child-line,
  .v1180-daily-main .v1180-child-line,
  .service-card .child-line,
  .service-card .v56-child-line,
  .service-card .v1180-child-line,
  #svcContent .child-line,
  #svcContent .v56-child-line,
  #svcContent .v1180-child-line,
  .v1179-compact-only .child-line,
  .v1179-compact-only .v56-child-line,
  .v1179-compact-only .v1180-child-line,
  .v1180-compact-only .child-line,
  .v1180-compact-only .v56-child-line,
  .v1180-compact-only .v1180-child-line{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    gap:3px!important;
    flex-wrap:nowrap!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    border-bottom:0!important;
    padding-bottom:0!important;
  }

  .v1180-daily-main .link-child,
  .v1180-daily-main .v56-child-id,
  .v1180-daily-main .v1180-id,
  .service-card .link-child,
  .service-card .v56-child-id,
  .service-card .v1180-id,
  #svcContent .link-child,
  #svcContent .v56-child-id,
  #svcContent .v1180-id,
  .v1179-compact-only .link-child,
  .v1179-compact-only .v56-child-id,
  .v1179-compact-only .v1180-id,
  .v1180-compact-only .link-child,
  .v1180-compact-only .v56-child-id,
  .v1180-compact-only .v1180-id{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }

  .v1180-daily-main .link-child b,
  .v1180-daily-main .v56-child-id b,
  .v1180-daily-main .v1180-id b,
  .service-card .link-child b,
  .service-card .v56-child-id b,
  .service-card .v1180-id b,
  #svcContent .link-child b,
  #svcContent .v56-child-id b,
  #svcContent .v1180-id b,
  .v1179-compact-only .link-child b,
  .v1179-compact-only .v56-child-id b,
  .v1179-compact-only .v1180-id b,
  .v1180-compact-only .link-child b,
  .v1180-compact-only .v56-child-id b,
  .v1180-compact-only .v1180-id b{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:10px!important;
    line-height:1.05!important;
  }

  .v1180-daily-main .link-child small,
  .v1180-daily-main .v56-child-id small,
  .v1180-daily-main .v1180-id small,
  .service-card .link-child small,
  .service-card .v56-child-id small,
  .service-card .v1180-id small,
  #svcContent .link-child small,
  #svcContent .v56-child-id small,
  #svcContent .v1180-id small,
  .v1179-compact-only .link-child small,
  .v1179-compact-only .v56-child-id small,
  .v1179-compact-only .v1180-id small,
  .v1180-compact-only .link-child small,
  .v1180-compact-only .v56-child-id small,
  .v1180-compact-only .v1180-id small{
    flex:0 0 auto!important;
    display:inline-block!important;
    min-width:16px!important;
    margin:0!important;
    font-size:7.5px!important;
    line-height:1!important;
    opacity:.75!important;
  }

  .v1180-daily-main .work-actions,
  .v1180-daily-main .action-group,
  .v1180-daily-main .v56-actions,
  .v1180-daily-main .v1180-actions,
  .service-card .work-actions,
  .service-card .action-group,
  .service-card .v56-actions,
  .service-card .v1180-actions,
  #svcContent .work-actions,
  #svcContent .action-group,
  #svcContent .v56-actions,
  #svcContent .v1180-actions,
  .v1179-compact-only .work-actions,
  .v1179-compact-only .action-group,
  .v1179-compact-only .v56-actions,
  .v1179-compact-only .v1180-actions,
  .v1180-compact-only .work-actions,
  .v1180-compact-only .action-group,
  .v1180-compact-only .v56-actions,
  .v1180-compact-only .v1180-actions{
    grid-column:2!important;
    grid-row:1!important;
    min-width:max-content!important;
    max-width:none!important;
    margin-left:0!important;
    padding-top:0!important;
    border-top:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:2px!important;
    overflow:visible!important;
  }

  .v1180-daily-main .work-actions .pill,
  .v1180-daily-main .work-actions .badge,
  .v1180-daily-main .work-actions .light,
  .service-card .work-actions .pill,
  .service-card .work-actions .badge,
  .service-card .work-actions .light,
  #svcContent .work-actions .pill,
  #svcContent .work-actions .badge,
  #svcContent .work-actions .light,
  .v1179-compact-only .work-actions .pill,
  .v1179-compact-only .work-actions .badge,
  .v1179-compact-only .work-actions .light,
  .v1180-compact-only .work-actions .pill,
  .v1180-compact-only .work-actions .badge,
  .v1180-compact-only .work-actions .light{display:none!important;}

  .v1180-daily-main .work-actions button,
  .v1180-daily-main .action-group button,
  .service-card .work-actions button,
  .service-card .action-group button,
  #svcContent .work-actions button,
  #svcContent .action-group button,
  .v1179-compact-only .work-actions button,
  .v1179-compact-only .action-group button,
  .v1180-compact-only .work-actions button,
  .v1180-compact-only .action-group button{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:36px!important;
    min-height:20px!important;
    padding:4px 5px!important;
    border-radius:7px!important;
    font-size:7.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }

  .v1180-daily-main .v56-options summary,
  .service-card .v56-options summary,
  #svcContent .v56-options summary,
  .v1179-compact-only .v56-options summary,
  .v1180-compact-only .v56-options summary{
    width:20px!important;
    min-width:20px!important;
    height:20px!important;
    min-height:20px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    font-size:12px!important;
  }
}

@media (max-width:390px){
  .v1180-daily-main .work-actions button:not(.v56-primary),
  .service-card .work-actions button:not(.v56-primary),
  #svcContent .work-actions button:not(.v56-primary),
  .v1179-compact-only .work-actions button:not(.v56-primary),
  .v1180-compact-only .work-actions button:not(.v56-primary){display:none!important;}
  .v1180-daily-main .child-line .pill,
  .v1180-daily-main .child-line .badge,
  .v1180-daily-main .v1180-health,
  .service-card .child-line .pill,
  .service-card .child-line .badge,
  .service-card .v1180-health,
  #svcContent .child-line .pill,
  #svcContent .child-line .badge,
  #svcContent .v1180-health,
  .v1179-compact-only .child-line .pill,
  .v1179-compact-only .child-line .badge,
  .v1179-compact-only .v1180-health,
  .v1180-compact-only .child-line .pill,
  .v1180-compact-only .child-line .badge,
  .v1180-compact-only .v1180-health{display:none!important;}
  .v1180-daily-main .work-actions button.v56-primary,
  .service-card .work-actions button.v56-primary,
  #svcContent .work-actions button.v56-primary,
  .v1179-compact-only .work-actions button.v56-primary,
  .v1180-compact-only .work-actions button.v56-primary{max-width:32px!important;padding:4px!important;font-size:7px!important;}
}

/* V12.86 TRUE EOF - ligne de pointage structuree en cellules */
.v1186-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  column-gap:8px!important;
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}
.v1186-child-cell{
  min-width:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  flex-wrap:nowrap!important;
}
.v1186-actions-cell{
  min-width:max-content!important;
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  overflow:visible!important;
  position:relative!important;
  z-index:5!important;
}
.v1186-actions-cell .v56-options{
  position:relative!important;
  z-index:10000!important;
}
.v1186-actions-cell .v56-menu{
  position:absolute!important;
  right:0!important;
  left:auto!important;
  top:calc(100% + 4px)!important;
  bottom:auto!important;
  z-index:10001!important;
  min-width:180px!important;
}
.v1186-child-cell .v1180-id{
  min-width:0!important;
  max-width:100%!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  overflow:hidden!important;
}
.v1186-child-cell .v1180-id b{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.v1186-child-cell .v1180-id small{
  flex:0 0 auto!important;
}

@media (max-width:760px){
  .v1186-row{
    grid-template-columns:minmax(0,1fr) max-content!important;
    column-gap:5px!important;
    padding:5px 6px!important;
    min-height:32px!important;
  }
  .v1186-child-cell{
    gap:3px!important;
    padding:0!important;
    border-bottom:0!important;
  }
  .v1186-child-cell .v1180-id{
    gap:3px!important;
  }
  .v1186-child-cell .v1180-id b{
    font-size:10px!important;
    line-height:1!important;
  }
  .v1186-child-cell .v1180-id small{
    font-size:7.5px!important;
    line-height:1!important;
    opacity:.72!important;
  }
  .v1186-child-cell .pill,
  .v1186-child-cell .badge,
  .v1186-child-cell .v1180-health,
  .v1186-actions-cell .pill,
  .v1186-actions-cell .badge,
  .v1186-actions-cell .light{
    display:none!important;
  }
  .v1186-actions-cell{
    gap:2px!important;
    min-width:max-content!important;
    max-width:none!important;
  }
  .v1186-actions-cell button{
    min-width:0!important;
    max-width:50px!important;
    min-height:21px!important;
    padding:4px 5px!important;
    border-radius:7px!important;
    font-size:8px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }
  .v1186-actions-cell .v56-options summary{
    width:21px!important;
    min-width:21px!important;
    height:21px!important;
    min-height:21px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
  }
}

@media (max-width:390px){
  .v1186-row{
    column-gap:3px!important;
    padding:4px 5px!important;
  }
  .v1186-actions-cell button:not(.v56-primary){
    display:none!important;
  }
  .v1186-actions-cell .v56-primary{
    max-width:34px!important;
    padding:4px!important;
    font-size:7px!important;
  }
}

/* V12.87 TRUE EOF - menu mobile lisible + recherche compacte */
.v1186-compact-head{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) minmax(190px,260px)!important;
  align-items:center!important;
  gap:8px!important;
}
.v1186-compact-tools{
  display:grid!important;
  grid-template-columns:minmax(105px,1fr) 116px!important;
  align-items:end!important;
  gap:6px!important;
  min-width:0!important;
}
.v1186-compact-tools #v1179Date{
  min-height:30px!important;
  height:30px!important;
  padding:4px 6px!important;
  border-radius:9px!important;
  font-size:11px!important;
}
.v1186-compact-search{
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  padding:4px!important;
  border-radius:10px!important;
  border-width:1px!important;
  box-shadow:none!important;
}
.v1186-compact-search label{
  font-size:8px!important;
  margin:0 0 2px!important;
  line-height:1!important;
}
.v1186-compact-search .search-wrap{
  min-height:28px!important;
  padding:2px 4px!important;
  border-radius:8px!important;
  gap:3px!important;
}
.v1186-compact-search .search-wrap:before{
  font-size:11px!important;
}
.v1186-compact-search input{
  min-height:22px!important;
  height:22px!important;
  padding:1px 2px!important;
  font-size:11px!important;
  font-weight:750!important;
}
.v1186-compact-search .clear-search{
  width:20px!important;
  min-width:20px!important;
  height:20px!important;
  padding:0!important;
  border-radius:7px!important;
  font-size:10px!important;
}
.v1186-actions-cell details[open]{
  z-index:2147483000!important;
}
.v1186-actions-cell details[open] .v56-menu{
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
  min-width:190px!important;
  max-width:min(230px,calc(100vw - 24px))!important;
  padding:7px!important;
  border-radius:12px!important;
  background:#fff!important;
  border:1px solid #cbd5e1!important;
  box-shadow:0 16px 38px rgba(15,23,42,.28)!important;
  z-index:2147483001!important;
}
.v1186-actions-cell .v56-menu-item{
  display:flex!important;
  width:100%!important;
  min-height:38px!important;
  justify-content:flex-start!important;
  align-items:center!important;
  padding:9px 10px!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#0f172a!important;
  font-size:13px!important;
  font-weight:850!important;
  line-height:1.15!important;
  white-space:normal!important;
  text-align:left!important;
}
.v1186-actions-cell .v56-menu-item.danger{
  color:#b91c1c!important;
  background:#fff5f5!important;
}

@media (max-width:760px){
  .v1186-compact-head{
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:6px!important;
  }
  .v1186-compact-title{
    min-width:0!important;
  }
  .v1186-compact-tools{
    grid-column:1/-1!important;
    grid-template-columns:minmax(0,1fr) 112px!important;
    width:100%!important;
  }
  .v1186-actions-cell details[open] .v56-menu{
    right:0!important;
    left:auto!important;
    top:calc(100% + 6px)!important;
    bottom:auto!important;
  }
}

@media (max-width:390px){
  .v1186-compact-tools{
    grid-template-columns:minmax(0,1fr) 104px!important;
    gap:4px!important;
  }
  .v1186-compact-tools #v1179Date{
    font-size:10px!important;
    padding:3px 4px!important;
  }
  .v1186-actions-cell details[open] .v56-menu{
    min-width:178px!important;
    right:-2px!important;
  }
  .v1186-actions-cell .v56-menu-item{
    min-height:40px!important;
    font-size:13px!important;
  }
}

/* V12.88 TRUE EOF - menus exclusifs, lisibles et recherche compact complete */
.v1186-actions-cell details[open] .v56-menu{
  position:fixed!important;
  left:var(--v1186-menu-left,8px)!important;
  top:var(--v1186-menu-top,80px)!important;
  right:auto!important;
  bottom:auto!important;
  width:var(--v1186-menu-width,210px)!important;
  min-width:0!important;
  max-width:calc(100vw - 16px)!important;
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  padding:8px!important;
  border-radius:14px!important;
  background:#fff!important;
  border:1px solid #cbd5e1!important;
  box-shadow:0 18px 44px rgba(15,23,42,.30)!important;
  z-index:2147483001!important;
  overflow:visible!important;
}
.v1186-actions-cell details[open] summary{
  box-shadow:0 0 0 3px rgba(37,99,235,.18)!important;
}
.v1186-actions-cell .v56-menu-item{
  width:100%!important;
  min-height:42px!important;
  padding:10px 11px!important;
  border-radius:10px!important;
  justify-content:flex-start!important;
  align-items:center!important;
  background:#f8fafc!important;
  color:#0f172a!important;
  border:1px solid #e2e8f0!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:normal!important;
  text-align:left!important;
  transform:none!important;
  box-shadow:none!important;
}
.v1186-actions-cell .v56-menu-item:hover,
.v1186-actions-cell .v56-menu-item:focus{
  background:#eef5ff!important;
  border-color:#bfdbfe!important;
}
.v1186-actions-cell .v56-menu-item.danger{
  background:#fff1f2!important;
  border-color:#fecdd3!important;
  color:#b91c1c!important;
}
.v1186-compact-head{
  background:#f8fbff!important;
  border:1px solid #dbeafe!important;
  border-radius:12px!important;
  padding:5px!important;
}
.v1186-compact-title b{
  font-size:12px!important;
  line-height:1!important;
}
.v1186-compact-title small{
  font-size:9px!important;
  line-height:1.15!important;
}
.v1186-compact-add-list{
  display:grid!important;
  gap:5px!important;
  margin:5px 0!important;
}
.v1186-add-child{
  width:100%!important;
  min-height:32px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:6px!important;
  padding:6px 8px!important;
  border-radius:10px!important;
  background:#ecfdf5!important;
  color:#14532d!important;
  border:1px solid #bbf7d0!important;
  box-shadow:none!important;
  transform:none!important;
  text-align:left!important;
}
.v1186-add-child b{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:11px!important;
}
.v1186-add-child small{
  font-size:9px!important;
  opacity:.75!important;
}

@media (max-width:760px){
  .v1186-compact-head{
    padding:5px!important;
  }
  .v1186-compact-tools{
    align-items:end!important;
  }
  .v1186-actions-cell details[open] .v56-menu{
    width:var(--v1186-menu-width,210px)!important;
    padding:8px!important;
  }
  .v1186-actions-cell .v56-menu-item{
    min-height:44px!important;
    font-size:14px!important;
  }
}

@media (max-width:390px){
  .v1186-compact-head{
    gap:4px!important;
  }
  .v1186-compact-title small{
    font-size:8px!important;
  }
  .v1186-actions-cell details[open] .v56-menu{
    width:var(--v1186-menu-width,196px)!important;
  }
}

/* V12.89 TRUE EOF - boutons compact lisibles sans casser la ligne */
.v1186-row{
  grid-template-columns:minmax(0,1fr) max-content!important;
  column-gap:8px!important;
}
.v1186-actions-cell{
  gap:5px!important;
}
.v1186-actions-cell .v56-primary{
  min-width:78px!important;
  max-width:96px!important;
  min-height:28px!important;
  padding:6px 9px!important;
  font-size:11px!important;
  line-height:1!important;
  border-radius:9px!important;
}
.v1186-actions-cell .v56-options summary{
  width:28px!important;
  min-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  border-radius:9px!important;
  font-size:16px!important;
}
.v1186-actions-cell details[open] .v56-menu{
  width:var(--v1186-menu-width,220px)!important;
  padding:9px!important;
  max-height:calc(100vh - 16px)!important;
  overflow-y:auto!important;
}
.v1186-actions-cell .v56-menu-item{
  min-height:44px!important;
  padding:10px 12px!important;
  font-size:14px!important;
}
.v1186-compact-head{
  grid-template-columns:auto minmax(0,1fr)!important;
}
.v1186-compact-tools{
  grid-column:1/-1!important;
  grid-template-columns:minmax(0,1fr) 112px!important;
  gap:6px!important;
}
.v1186-compact-search label{
  display:none!important;
}
.v1186-compact-search{
  padding:3px!important;
}
.v1186-compact-search .search-wrap{
  min-height:30px!important;
}
.v1186-compact-search input{
  min-height:24px!important;
  height:24px!important;
  font-size:12px!important;
}
.v1186-compact-tools #v1179Date{
  height:32px!important;
  min-height:32px!important;
  font-size:11px!important;
}

@media (max-width:760px){
  .v1186-row{
    column-gap:5px!important;
  }
  .v1186-actions-cell{
    gap:3px!important;
  }
  .v1186-actions-cell .v56-primary{
    min-width:66px!important;
    max-width:76px!important;
    min-height:26px!important;
    padding:5px 7px!important;
    font-size:10px!important;
  }
  .v1186-actions-cell .v56-options summary{
    width:26px!important;
    min-width:26px!important;
    height:26px!important;
    min-height:26px!important;
  }
  .v1186-actions-cell details[open] .v56-menu{
    width:var(--v1186-menu-width,216px)!important;
  }
}

@media (max-width:390px){
  .v1186-row{
    column-gap:4px!important;
  }
  .v1186-child-cell .v1180-id b{
    font-size:9.5px!important;
  }
  .v1186-actions-cell .v56-primary{
    min-width:58px!important;
    max-width:66px!important;
    min-height:25px!important;
    padding:5px 6px!important;
    font-size:9px!important;
  }
  .v1186-actions-cell .v56-options summary{
    width:25px!important;
    min-width:25px!important;
    height:25px!important;
    min-height:25px!important;
  }
  .v1186-compact-tools{
    grid-template-columns:minmax(0,1fr) 102px!important;
    gap:4px!important;
  }
}

/* V12.90 TRUE EOF - mobile compact utilisable: panneau menu + barre plate */
@media (max-width:1000px){
  .v1186-compact-head{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:4px!important;
    padding:4px!important;
    border-radius:10px!important;
  }
  .v1186-compact-head > button{
    min-height:26px!important;
    padding:5px 7px!important;
    font-size:9px!important;
    border-radius:8px!important;
    white-space:nowrap!important;
  }
  .v1186-compact-title{
    min-width:0!important;
    overflow:hidden!important;
  }
  .v1186-compact-title b{
    font-size:11px!important;
    line-height:1!important;
  }
  .v1186-compact-title small{
    display:block!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:8px!important;
    line-height:1!important;
  }
  .v1186-compact-tools{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 96px!important;
    align-items:center!important;
    gap:4px!important;
    width:100%!important;
  }
  .v1186-compact-search,
  .field.grow.smart-search.v11-search.v1186-compact-search{
    min-width:0!important;
    width:100%!important;
    height:28px!important;
    min-height:28px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid #bfdbfe!important;
    border-radius:8px!important;
    background:#fff!important;
    box-shadow:none!important;
    position:relative!important;
  }
  .v1186-compact-search label{
    display:none!important;
  }
  .v1186-compact-search .search-wrap{
    height:26px!important;
    min-height:26px!important;
    padding:0 4px!important;
    border:0!important;
    border-radius:8px!important;
    gap:3px!important;
    background:transparent!important;
  }
  .v1186-compact-search .search-wrap:before{
    font-size:10px!important;
    line-height:1!important;
  }
  .v1186-compact-search input{
    height:24px!important;
    min-height:24px!important;
    padding:0 2px!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:750!important;
  }
  .v1186-compact-search .clear-search{
    width:18px!important;
    min-width:18px!important;
    height:18px!important;
    min-height:18px!important;
    padding:0!important;
    border-radius:6px!important;
    font-size:9px!important;
  }
  .v1186-compact-tools #v1179Date{
    width:96px!important;
    height:28px!important;
    min-height:28px!important;
    padding:2px 4px!important;
    border-radius:8px!important;
    font-size:9px!important;
    line-height:1!important;
  }

  .v1186-row{
    grid-template-columns:minmax(0,1fr) max-content!important;
    column-gap:5px!important;
    min-height:34px!important;
    padding:5px 6px!important;
  }
  .v1186-child-cell{
    min-width:0!important;
  }
  .v1186-child-cell .v1180-id b{
    font-size:10px!important;
  }
  .v1186-child-cell .v1180-id small{
    font-size:8px!important;
  }
  .v1186-actions-cell{
    gap:4px!important;
  }
  .v1186-actions-cell .v56-primary{
    min-width:76px!important;
    max-width:88px!important;
    height:30px!important;
    min-height:30px!important;
    padding:6px 8px!important;
    border-radius:9px!important;
    font-size:10px!important;
    font-weight:900!important;
    line-height:1!important;
  }
  .v1186-actions-cell .v56-options summary{
    width:30px!important;
    min-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    border-radius:9px!important;
    font-size:17px!important;
  }

  .v1186-actions-cell details[open] .v56-menu{
    position:fixed!important;
    left:10px!important;
    right:10px!important;
    top:auto!important;
    bottom:12px!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    display:grid!important;
    gap:8px!important;
    padding:10px!important;
    border-radius:16px!important;
    background:#fff!important;
    border:1px solid #cbd5e1!important;
    box-shadow:0 -10px 34px rgba(15,23,42,.30)!important;
    z-index:2147483600!important;
  }
  .v1186-actions-cell .v56-menu-item{
    min-height:46px!important;
    padding:11px 12px!important;
    border-radius:12px!important;
    font-size:14px!important;
    font-weight:900!important;
    justify-content:flex-start!important;
  }
}

@media (max-width:390px){
  .v1186-compact-tools{
    grid-template-columns:minmax(0,1fr) 90px!important;
  }
  .v1186-compact-tools #v1179Date{
    width:90px!important;
    font-size:8.5px!important;
  }
  .v1186-actions-cell .v56-primary{
    min-width:70px!important;
    max-width:78px!important;
    font-size:9.5px!important;
    padding:6px!important;
  }
  .v1186-actions-cell .v56-options summary{
    width:29px!important;
    min-width:29px!important;
  }
}

/* V12.91 TRUE EOF - menu proche du bouton + recherche compacte moins large */
@media (max-width:1000px){
  .v1186-actions-cell{
    position:relative!important;
    z-index:9000!important;
    isolation:isolate!important;
  }
  .v1186-actions-cell .v56-options{
    position:relative!important;
    z-index:9100!important;
  }
  .v1186-actions-cell details[open]{
    z-index:9200!important;
  }
  .v1186-actions-cell details[open] .v56-menu{
    position:fixed!important;
    left:var(--v1186-menu-left,8px)!important;
    top:var(--v1186-menu-top,80px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--v1186-menu-width,210px)!important;
    min-width:190px!important;
    max-width:calc(100vw - 16px)!important;
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
    padding:8px!important;
    border-radius:14px!important;
    background:#fff!important;
    border:1px solid #cbd5e1!important;
    box-shadow:0 16px 38px rgba(15,23,42,.30)!important;
    z-index:2147483600!important;
  }
  .v1186-compact-tools{
    grid-template-columns:minmax(120px,180px) 90px!important;
    justify-content:start!important;
    width:auto!important;
    max-width:278px!important;
  }
  .v1186-compact-search,
  .field.grow.smart-search.v11-search.v1186-compact-search{
    width:180px!important;
    max-width:180px!important;
    height:24px!important;
    min-height:24px!important;
  }
  .v1186-compact-search .search-wrap{
    height:22px!important;
    min-height:22px!important;
    padding:0 3px!important;
  }
  .v1186-compact-search input{
    height:20px!important;
    min-height:20px!important;
    font-size:9px!important;
  }
  .v1186-compact-search .clear-search{
    width:16px!important;
    min-width:16px!important;
    height:16px!important;
    min-height:16px!important;
    font-size:8px!important;
  }
  .v1186-compact-tools #v1179Date{
    width:90px!important;
    height:24px!important;
    min-height:24px!important;
    font-size:8px!important;
    padding:1px 3px!important;
  }
}

@media (max-width:390px){
  .v1186-compact-tools{
    grid-template-columns:minmax(104px,150px) 84px!important;
    max-width:238px!important;
  }
  .v1186-compact-search,
  .field.grow.smart-search.v11-search.v1186-compact-search{
    width:150px!important;
    max-width:150px!important;
  }
  .v1186-compact-tools #v1179Date{
    width:84px!important;
  }
}

/* V13.08 - Parametres Application propres */
.app-assets-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.app-asset-card{border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.app-asset-preview{height:112px;border:1px dashed #cbd5e1;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#eef2ff);display:grid;place-items:center;overflow:hidden;padding:12px}
.app-asset-img,.app-brand-img,.app-login-img{max-width:100%;max-height:88px;width:auto;height:auto;object-fit:contain;display:block}
.app-asset-empty{color:#64748b;font-size:12px;font-weight:800;text-align:center;padding:10px}
.app-asset-body{display:flex;flex-direction:column;gap:8px;min-width:0}
.app-asset-body b{font-size:14px;color:#0f172a}
.app-asset-body small{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-asset-actions{align-items:center;margin:0;gap:8px}
.app-asset-actions input[type=file]{font-size:12px;padding:8px;min-width:0}
.brand .logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.login .bigicon.rpi-logo,.login .bigicon{overflow:hidden}
@media(max-width:900px){.app-assets-grid{grid-template-columns:1fr}.app-asset-preview{height:96px}}

/* V13.09 - Alertes admin plus lisibles */
.v1309-alert-admin-head{display:flex;flex-direction:column;gap:9px;margin-bottom:12px;padding:11px 12px;border:1px solid #dbe4ef;border-radius:14px;background:#f8fafc}
.v1309-alert-overview{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.v1309-stat{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#e8eef7;color:#334155;font-size:11px;font-weight:700}
.v1309-stat b{font-size:13px;color:#0f172a}.v1309-stat.mandatory{background:#fee2e2;color:#991b1b}.v1309-stat.resolved{background:#dcfce7;color:#166534}
.v1309-tools-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid #e2e8f0}
.v1309-tools-label{min-width:98px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.v1309-tools-row button{min-height:28px}.v1309-tool-remind{background:#2563eb!important;border-color:#2563eb!important;color:#fff!important}.v1309-tool-archive{border-color:#94a3b8!important}.v1309-tool-muted{background:#fff!important;color:#475569!important}
.v1309-family-group{margin:7px 0!important;border:1px solid #dbe4ef!important;border-radius:12px!important;overflow:hidden;background:#fff}
.v1309-family-head{min-height:43px!important;padding:7px 10px!important;gap:8px!important;background:#fff!important}
.v1309-family-head:hover{background:#f8fafc!important}.v1309-family-head .alert-family-name{font-size:12px!important;font-weight:850!important;min-width:130px;flex:1}
.v1309-family-badges{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.v1309-family-badges span{padding:3px 7px;border-radius:999px;background:#e8eef7;color:#334155;font-size:9px;font-weight:800}.v1309-family-badges .mandatory{background:#fee2e2;color:#991b1b}.v1309-family-badges .resolved{background:#dcfce7;color:#166534}
.v1309-family-body{padding:5px 7px 7px!important;background:#f8fafc}
.v1309-alert-row{display:flex!important;align-items:center!important;gap:9px!important;margin:4px 0!important;padding:7px 8px!important;min-height:44px!important;border-radius:10px!important;background:#fff!important;border:1px solid #e2e8f0!important}
.v1309-alert-core{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.v1309-alert-status{width:23px;height:23px;min-width:23px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;color:#475569;font-size:12px;font-weight:900}.mandatory-alert .v1309-alert-status{background:#fee2e2;color:#b91c1c}.resolved-alert .v1309-alert-status{background:#dcfce7;color:#15803d}
.v1309-alert-copy{min-width:0;flex:1}.v1309-alert-title{font-size:11px;font-weight:850;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v1309-alert-meta{font-size:9px;color:#64748b;margin-top:1px}.v1309-alert-detail{font-size:10px;color:#166534;margin-top:4px}.alert-success-note{font-size:10px;color:#166534}
.v1309-alert-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important;flex-wrap:wrap!important;margin-left:auto}.v1309-alert-actions button,.v1309-alert-actions .btn{min-height:25px!important;padding:4px 8px!important;font-size:9px!important}.alert-doc-open{background:#16a34a!important;border-color:#16a34a!important;color:#fff!important}.resolved-alert{border-color:#bbf7d0!important;background:#f0fdf4!important}.resolved-alert .v1309-alert-title{color:#166534}
@media(max-width:760px){.v1309-family-head{flex-wrap:wrap}.v1309-family-head .alert-head-actions{width:100%;justify-content:flex-end}.v1309-alert-row{align-items:flex-start!important;flex-direction:column!important}.v1309-alert-actions{width:100%;justify-content:flex-end!important}.v1309-tools-label{width:100%;min-width:0}.v1309-alert-title{white-space:normal}}

/* ===================== V13.10 - Alertes admin compactes ===================== */
.v1309-alert-admin-head .small,
.v1309-alert-row .small,
.v1309-family-head .small,
.v1310-archive-toolbar .small{
  min-height:26px !important;
  height:26px !important;
  padding:3px 8px !important;
  border-radius:7px !important;
  font-size:11px !important;
  line-height:1 !important;
  white-space:nowrap;
}
.v1309-tools-row{gap:5px !important;min-height:30px !important;}
.v1309-tools-label{font-size:10px !important;min-width:82px !important;}
.v1309-tool-remind{box-shadow:none !important;font-weight:600 !important;}
.v1309-family-head{min-height:38px !important;padding:6px 9px !important;gap:7px !important;}
.v1309-family-badges{gap:4px !important;}
.v1309-family-badges span{font-size:10px !important;padding:2px 6px !important;}
.v1309-family-head .alert-head-actions{gap:4px !important;}
.v1310-family-btn{opacity:.9;}
.v1310-family-archive{background:#fff7ed !important;color:#9a3412 !important;border:1px solid #fed7aa !important;}
.v1310-family-archive:hover{background:#ffedd5 !important;}
.v1309-family-body{padding:4px 7px 7px !important;}
.v1309-alert-row{min-height:38px !important;padding:5px 7px !important;gap:6px !important;}
.v1309-alert-core{gap:7px !important;min-width:0;}
.v1309-alert-status{width:22px !important;height:22px !important;min-width:22px !important;font-size:12px !important;}
.v1309-alert-copy{min-width:0;}
.v1309-alert-title{font-size:11px !important;line-height:1.15 !important;}
.v1309-alert-meta{font-size:9px !important;margin-top:1px !important;}
.v1309-alert-detail{font-size:10px !important;margin-top:3px !important;line-height:1.2 !important;}
.v1309-alert-actions{display:flex !important;align-items:center !important;gap:4px !important;flex-wrap:nowrap !important;margin-left:auto;}
.v1309-alert-actions .pill{font-size:9px !important;padding:3px 6px !important;line-height:1 !important;white-space:nowrap;}
.v1309-alert-row.resolved-alert{border-left:3px solid #22c55e !important;background:#f0fdf4 !important;}
.v1309-stat.resolved{background:#dcfce7 !important;color:#166534 !important;border-color:#86efac !important;}
.v1310-archive-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;}
.v1310-clear-archives{margin-left:auto !important;}
@media (max-width:760px){
  .v1309-alert-actions{flex-wrap:wrap !important;justify-content:flex-end;}
  .v1309-family-head .alert-head-actions{margin-left:auto;}
}


/* V13.11 - en-tête famille sur une seule ligne */
.v1311-family-head{display:flex!important;align-items:center!important;width:100%!important;cursor:pointer!important;box-sizing:border-box!important;}
.v1311-family-head .alert-family-name{min-width:0!important;flex:1 1 auto!important;}
.v1311-family-actions{display:flex!important;align-items:center!important;gap:4px!important;flex:0 0 auto!important;margin-left:auto!important;}
.v1311-family-sheet{background:#eef4ff!important;color:#1d4ed8!important;border:1px solid #bfdbfe!important;font-weight:700!important;}
.v1311-family-sheet:hover{background:#dbeafe!important;}
.v1311-family-head:focus-visible{outline:2px solid #2563eb!important;outline-offset:-2px!important;}
@media(max-width:760px){
  .v1311-family-head{flex-wrap:nowrap!important;}
  .v1311-family-actions{width:auto!important;justify-content:flex-end!important;}
  .v1311-family-head .v1309-family-badges{display:none!important;}
}

/* V13.13 - alerte document fourni */
.v1309-alert-row.resolved-alert,
.alert-card.resolved-alert {
  border-left-color: #22c55e !important;
}
.v1309-alert-row.resolved-alert .v1309-alert-status {
  color: #15803d !important;
  background: #dcfce7 !important;
}
.v1309-alert-row.resolved-alert .v1309-alert-title {
  color: #166534;
}
.v1309-alert-row.resolved-alert .alert-success-note {
  color: #166534;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 6px;
  padding: 4px 7px;
  margin-top: 3px;
}
.v1309-alert-row .alert-doc-open,
.v1309-alert-row .alert-family-open {
  min-height: 24px !important;
  height: 24px !important;
  padding: 2px 7px !important;
  font-size: 10px !important;
  line-height: 18px !important;
  white-space: nowrap;
}

/* V13.14 - documents fournis / actions positives */
.v1309-alert-row.document-review-alert,
.v1309-alert-row.resolved-alert{
  border-left:4px solid #22c55e !important;
  border-color:#bbf7d0 !important;
  background:#f0fdf4 !important;
}
.v1309-alert-row.document-review-alert .v1309-alert-status,
.v1309-alert-row.resolved-alert .v1309-alert-status{
  background:#dcfce7 !important;
  color:#15803d !important;
}
.v1309-alert-row.document-review-alert .v1309-alert-title,
.v1309-alert-row.resolved-alert .v1309-alert-title,
.v1309-alert-row.document-review-alert .v1309-alert-meta{
  color:#166534 !important;
}
.v1309-alert-row.document-review-alert .v1309-alert-actions{
  flex-wrap:nowrap !important;
}
.v1309-alert-row.document-review-alert .alert-doc-open,
.v1309-alert-row.document-review-alert .alert-family-open{
  min-height:25px !important;
  padding:4px 8px !important;
  font-size:9px !important;
  white-space:nowrap !important;
}
.v1309-alert-row.document-review-alert .alert-family-open{
  background:#ecfdf5 !important;
  border-color:#86efac !important;
  color:#166534 !important;
}

/* V13.15 - document fourni : état positif réel */
.v1309-alert-row.document-review-alert,
.v1309-alert-row.resolved-alert.document-review-alert{
  border-left-color:#22a06b !important;
  box-shadow:inset 3px 0 0 #22a06b !important;
}
.v1309-alert-row.document-review-alert .v1309-alert-status{
  background:#dcfce7 !important;
  color:#15803d !important;
  border-color:#86efac !important;
}
.v1309-alert-row.document-review-alert .v1309-alert-title,
.v1309-alert-row.document-review-alert .v1309-alert-meta{
  color:#166534 !important;
}
.v1309-alert-row.document-review-alert .v1309-alert-actions{
  display:flex !important;
  align-items:center !important;
  gap:5px !important;
  flex-wrap:nowrap !important;
}

/* ===================== V14.00 - moteur unique d'affichage des alertes ===================== */
.alert-v1400-toolbar{display:flex;flex-direction:column;gap:7px;margin-bottom:9px;padding:8px;border:1px solid #e6ebf2;border-radius:10px;background:#fff}
.alert-v1400-stats,.alert-v1400-display-actions,.alert-v1400-bulk{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.alert-v1400-stats span{font-size:11px;padding:3px 7px;border-radius:999px;background:#f3f6fa;color:#445164}
.alert-v1400-stats .danger{background:#fff0f0;color:#b42318}
.alert-v1400-stats .success{background:#eaf8ef;color:#167746}
/* V4.1.65 — badges de synthese admin (facultatives + types d'alertes). Purement visuel :
   couleurs distinctes pour reperer en un coup d'oeil ce qui necessite une intervention. */
.alert-v1400-badge-optional{background:#fff4e8;color:#b45f06}
.alert-v1400-badge-suppression,.alert-v1400-badge-modification{background:#f3ecfb;color:#6b3fa0}
.alert-v1400-badge-pointage{background:#fff9e0;color:#8a6d00}
.alert-v1400-badge-qf{background:#eaf8ef;color:#167746}
/* V4.1.67 — mêmes badges reutilises sur chaque ligne de foyer (categorisation unique),
   mais ce contexte est deja tres compact (9px, voir .alert-v1400-count juste au-dessus) :
   on adapte uniquement la taille ici, les couleurs par categorie restent les memes. */
.alert-v1400-family-head .alert-v1400-badge{font-size:9px;line-height:1;padding:3px 5px;border-radius:999px;white-space:nowrap}
.alert-v1400-bulk>span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#778397;margin-right:2px}
.alert-v1400-topbtn{font-size:10px!important;min-height:25px!important;padding:4px 8px!important;border-radius:7px!important}
.alert-v1400-reminder{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important}
.alert-v1400-family{border:1px solid #e7ebf1;border-radius:9px;background:#fff;margin-bottom:6px;overflow:hidden}
.alert-v1400-family-head{display:flex;align-items:center;gap:5px;padding:5px 7px;min-height:31px;background:#f8fafc}
.alert-v1400-toggle{width:21px;height:21px;min-width:21px;padding:0!important;border:0!important;background:transparent!important;color:#3f5068!important;font-size:20px!important;line-height:20px!important;transform:rotate(0deg);transition:transform .15s ease}
.alert-v1400-toggle.open{transform:rotate(90deg)}
.alert-v1400-family-head>b{font-size:11px;color:#1f2937}
.alert-v1400-count,.alert-v1400-mandatory-count,.alert-v1400-review-count{font-size:9px;line-height:1;padding:3px 5px;border-radius:999px;white-space:nowrap}
.alert-v1400-count{background:#eef2f7;color:#536174}
.alert-v1400-mandatory-count{background:#feecec;color:#b42318}
.alert-v1400-review-count{background:#e7f8ed;color:#167746}
.alert-v1400-family-spacer{flex:1}
/* V4.1.69 — meme gabarit que .alert-action-btn (Fiche foyer / Relancer a l'interieur des
   lignes d'alerte) pour une vraie synchro graphique entre les deux niveaux : seule la
   couleur distingue encore le bouton d'en-tete de foyer du bouton de ligne. */
.alert-v1400-family-btn,.alert-v1400-family-archive{font-size:8.5px!important;min-height:22px!important;padding:3px 6px!important;border-radius:6px!important;margin:0!important}
.alert-v1400-family-btn{background:#eaf2ff!important;color:#225bb5!important;border-color:#cbdcff!important}
/* V4.1.68 — l'orange precedent etait quasi identique au badge "facultative" (confusion
   possible en plus du bouton Fiche foyer bleu) : teinte propre (sarcelle) pour ce bouton. */
.alert-v1400-family-archive{background:#e6f6f4!important;color:#0f766e!important;border-color:#b7e4de!important}
.alert-v1400-family-body{padding:5px 6px 6px;display:flex;flex-direction:column;gap:4px}
.alert-v1400-family-body.collapsed{display:none}
.alert-v1400-row{display:grid!important;grid-template-columns:20px minmax(0,1fr) auto!important;align-items:center!important;gap:6px!important;min-height:35px!important;padding:5px 6px!important;margin:0!important;border:1px solid #edf0f4!important;border-left-width:3px!important;border-radius:7px!important;background:#fff!important}
.alert-v1400-row.alert-v1400-mandatory{border-left-color:#df3b3b!important;background:#fffafa!important}
.alert-v1400-row.alert-v1400-info{border-left-color:#e6a23c!important;background:#fffdfa!important}
.alert-v1400-row.alert-v1400-review{border-left-color:#21a366!important;background:#f7fcf9!important}
.alert-v1400-status{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;background:#f1f4f8;color:#657186}
.alert-v1400-mandatory .alert-v1400-status{background:#fee8e8;color:#c62828}
.alert-v1400-info .alert-v1400-status{background:#fff2df;color:#a9610b}
.alert-v1400-review .alert-v1400-status{background:#dcf5e5;color:#16834e}
.alert-v1400-content{min-width:0}
.alert-v1400-title{font-size:10px;font-weight:700;color:#273244;line-height:1.2}
.alert-v1400-meta{font-size:8.5px;color:#7b8798;line-height:1.2;margin-top:1px}
.alert-v1400-detail{font-size:9px;color:#3b6f54;line-height:1.25;margin-top:2px}
.alert-v1400-review .alert-v1400-title{color:#16643f}
.alert-v1400-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:nowrap;white-space:nowrap}
.alert-v1400-actions .alert-action-btn,.alert-v1400-actions .pill{font-size:8.5px!important;min-height:22px!important;padding:3px 6px!important;border-radius:6px!important;margin:0!important}
.alert-v1400-pill{display:inline-flex!important;align-items:center!important}
.alert-doc-btn{background:#e5f7ec!important;color:#116b3e!important;border-color:#b8e4c9!important}
.alert-family-btn{background:#eaf2ff!important;color:#225bb5!important;border-color:#cbdcff!important}
.alert-archive-btn{background:#f5f7fa!important;color:#566274!important;border-color:#dde3eb!important}
@media(max-width:700px){
  .alert-v1400-row{grid-template-columns:20px minmax(0,1fr)!important}
  .alert-v1400-actions{grid-column:2;justify-content:flex-start;flex-wrap:wrap;white-space:normal}
  .alert-v1400-family-head{flex-wrap:wrap}
  .alert-v1400-family-spacer{display:none}
}


/* V14.01 - statistiques alignées + espace de traitement document/foyer */
.alert-v1400-stats{display:flex!important;align-items:center!important;gap:6px!important;flex-wrap:wrap!important}
.alert-v1400-stats>span{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:22px!important;box-sizing:border-box!important;line-height:1!important;margin:0!important;vertical-align:middle!important}
.alert-v1400-stats>span.success{display:inline-flex!important;position:static!important;transform:none!important}

.doc-review-workspace-back{position:fixed;inset:0;z-index:100000;background:rgba(15,23,42,.58);display:flex;align-items:center;justify-content:center;padding:18px}
.doc-review-workspace{width:min(1380px,96vw);height:min(860px,94vh);background:#fff;border-radius:15px;box-shadow:0 28px 80px rgba(15,23,42,.35);overflow:hidden;display:flex;flex-direction:column}
.doc-review-workspace-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid #e5eaf0;background:#fff}
.doc-review-workspace-head>div{display:flex;align-items:center;gap:10px;min-width:0}
.doc-review-workspace-head b{font-size:15px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-review-workspace-head span{font-size:12px;color:#667085;padding-left:10px;border-left:1px solid #d8dee8}
.doc-review-workspace-body{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.65fr);gap:0;min-height:0;flex:1}
.doc-review-document,.doc-review-family{min-height:0;display:flex;flex-direction:column}
.doc-review-document{border-right:1px solid #e5eaf0;background:#eef2f6}
.doc-review-pane-title{padding:9px 12px;font-size:12px;font-weight:700;color:#344054;background:#fff;border-bottom:1px solid #e5eaf0}
.doc-review-document iframe{border:0;width:100%;height:100%;flex:1;background:#fff}
.doc-review-family{padding-bottom:14px;background:#fff;overflow:auto}
.doc-review-family>.doc-review-pane-title{margin-bottom:12px}
.doc-review-instruction{margin:0 14px 14px;padding:10px 11px;border-left:3px solid #22a06b;background:#effaf4;color:#166534;border-radius:6px;font-size:12px;line-height:1.45}
.doc-review-family-name{display:flex;flex-direction:column;gap:3px;margin:0 14px 13px;padding-bottom:12px;border-bottom:1px solid #edf0f4}
.doc-review-family-name span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#98a2b3}
.doc-review-family-name b{font-size:16px;color:#172033}
.doc-review-qf-field{margin:0 14px 12px}
.doc-review-qf-field input{font-size:20px;font-weight:700;min-height:44px}
.doc-review-actions{display:flex;flex-direction:column;gap:7px;margin:0 14px}
.doc-review-actions button{width:100%}
#docReviewSaveState{margin:9px 14px 0}
@media(max-width:850px){.doc-review-workspace-back{padding:6px}.doc-review-workspace{width:100%;height:98vh}.doc-review-workspace-body{grid-template-columns:1fr;grid-template-rows:minmax(320px,1.3fr) auto}.doc-review-document{border-right:0;border-bottom:1px solid #e5eaf0}.doc-review-family{max-height:38vh}}


/* ===================== V14.02 - workspace au premier plan + harmonisation alertes ===================== */
.doc-review-workspace-back{
  z-index:2147483646!important;
  isolation:isolate!important;
}
.doc-review-workspace{
  position:relative!important;
  z-index:1!important;
}

.alert-v1400-stats>span{
  gap:4px!important;
}
.alert-v1400-stats>span>b{
  margin-right:1px!important;
}

.alert-v1400-actions .alert-action-btn,
.alert-v1400-actions .alert-v1400-pill,
.alert-v1400-actions .pill{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  height:23px!important;
  min-height:23px!important;
  padding:3px 7px!important;
  margin:0!important;
  border-radius:6px!important;
  font-size:8.5px!important;
  font-weight:700!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.alert-v1400-actions .alert-v1400-pill,
.alert-v1400-actions .pill{
  border:1px solid #fecaca!important;
}

.alert-review-btn{
  background:#e7f8ed!important;
  border-color:#b8e4c9!important;
  color:#116b3e!important;
}

.alert-v1400-family-btn,
.alert-v1400-family-archive{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  height:23px!important;
  min-height:23px!important;
  box-sizing:border-box!important;
  line-height:1!important;
}
/* V4.39.46 - espace enseignant */
.tp-card{overflow:hidden}.tp-toolbar{align-items:end}.tp-date{font-weight:800;margin:8px 0 12px}.tp-scroll{overflow:auto;border:1px solid var(--line,#dbe3ef);border-radius:14px}.tp-table{border-collapse:separate;border-spacing:0;min-width:760px;width:100%}.tp-table th,.tp-table td{padding:10px;border-right:1px solid var(--line,#e4e9f1);border-bottom:1px solid var(--line,#e4e9f1);text-align:center}.tp-table thead th{position:sticky;top:0;background:#fff;z-index:2}.tp-table tbody th{position:sticky;left:0;background:#fff;z-index:1;text-align:left;min-width:170px}.tp-table tbody th small{display:block;color:var(--muted,#718096);margin-top:2px}.tp-svc{display:inline-flex;flex-direction:column;align-items:center;margin:2px 4px;padding:5px 7px;border-radius:9px;background:#edf7ed;font-size:1rem}.tp-svc small{font-size:.58rem;font-weight:700}.tp-mercredi{background:#eaf2ff}.tp-alsh{background:#f5eaff}.tp-none{color:#c0c8d4}.tp-counts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:12px}.tp-counts>div{border:1px solid var(--line,#dbe3ef);border-radius:12px;padding:9px}.tp-counts span{display:block;font-size:.76rem;margin-top:4px}
@media(max-width:700px){.tp-toolbar{display:grid;grid-template-columns:repeat(3,1fr)}.tp-toolbar label{grid-column:1/-1}.tp-counts{grid-template-columns:1fr 1fr}.tp-table th,.tp-table td{padding:7px}.tp-table tbody th{min-width:135px}.tp-svc{margin:1px;padding:4px}.tp-svc small{display:none}}
@media print{.side,.tp-toolbar,.page-head button{display:none!important}.main{margin:0!important;padding:0!important}.tp-scroll{overflow:visible;border:0}.tp-table{min-width:0;font-size:10px}.tp-counts{break-inside:avoid}}
/* v4.39.54 utilisateurs + enseignant responsive */
.v43954-users-head{align-items:center!important;gap:12px}.v43954-users-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tp-card{min-width:0!important}.tp-scroll{width:100%;max-width:100%;overflow-x:auto!important;}.tp-table{display:table!important;visibility:visible!important}.tp-toolbar{flex-wrap:wrap!important}
@media(max-width:700px){.v43954-users-head{display:flex!important;flex-direction:column!important;align-items:stretch!important}.v43954-users-actions{margin-left:0!important;display:grid!important;grid-template-columns:1fr 1fr!important}.v43954-users-actions button:last-child{grid-column:1/-1}.tp-card{padding:8px!important}.tp-toolbar{display:grid!important;grid-template-columns:44px 1fr 44px!important;gap:6px!important}.tp-toolbar #tpToday{min-width:0!important}.tp-toolbar label{grid-column:1/-1!important}.tp-date{font-size:.82rem!important}.tp-scroll{display:block!important;overflow-x:auto!important}.tp-table{min-width:680px!important;width:680px!important;font-size:.78rem!important}.tp-table tbody th{min-width:120px!important;max-width:120px!important}.tp-table td{min-width:108px!important;padding:6px!important}.tp-counts{grid-template-columns:1fr!important}.page-head:has(+ .tp-card){display:flex!important;align-items:flex-start!important;gap:8px!important}.page-head:has(+ .tp-card) h1{font-size:1.15rem!important}}
@media(max-width:900px) and (orientation:landscape){.side{max-width:190px!important}.main{min-width:0!important}.tp-counts{grid-template-columns:repeat(5,minmax(120px,1fr))!important;overflow-x:auto}.tp-table{min-width:720px!important}.tp-card{padding:8px!important}}
\n\n/* V4.39.56 - alignement global des SVG dans les boutons */\nbutton svg,\n.btn svg,\n.button svg,\na.btn svg,\n[role="button"] svg{\n  display:block!important;\n  width:1em;\n  height:1em;\n  flex:0 0 auto;\n  margin:0!important;\n  vertical-align:middle!important;\n}\nbutton:has(> svg),\n.btn:has(> svg),\n.button:has(> svg),\na.btn:has(> svg),\n[role="button"]:has(> svg){\n  display:inline-flex!important;\n  align-items:center!important;\n  justify-content:center!important;\n  gap:.42em;\n}\nbutton > span:has(> svg),\n.btn > span:has(> svg),\n.button > span:has(> svg),\na.btn > span:has(> svg){\n  display:inline-flex!important;\n  align-items:center!important;\n  justify-content:center!important;\n  line-height:1!important;\n}\nbutton > span > svg,\n.btn > span > svg,\n.button > span > svg,\na.btn > span > svg{\n  display:block!important;\n  margin:auto!important;\n}\n

/* V4.39.57 — ouverture stable Réservations / Redondances (Matin, Cantine, Soir) */
body.reservation-modal-opening .modal-back:last-of-type {
  visibility: hidden !important;
  opacity: 0 !important;
}

/* V4.39.58 — alignements + tris réservations Mercredis/ALSH */
.top > button,
.top > .btn,
.page-head > button{
  align-self:center!important;
  margin-top:0!important;
  margin-bottom:0!important;
}
/* Les pictogrammes/emoji des pastilles doivent être centrés comme de vraies icônes. */
.avatar,
.person-card .avatar,
.v56-avatar,
.child-avatar,
[class*="avatar"]{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  text-align:center!important;
  padding:0!important;
}
.avatar > svg,
.person-card .avatar > svg,
.v56-avatar > svg,
.child-avatar > svg,
[class*="avatar"] > svg{
  display:block!important;
  width:1em!important;
  height:1em!important;
  margin:0!important;
  flex:none!important;
}
/* Même correction pour les petits boutons/pastilles d'action sur toutes les pages. */
button > svg:first-child,
.btn > svg:first-child,
button > span:first-child > svg,
.btn > span:first-child > svg{
  position:static!important;
  transform:none!important;
  align-self:center!important;
}
.v43958-period-filters{align-items:end!important;flex-wrap:wrap!important}
.v43958-period-filters>.field{min-width:145px;margin:0!important}
.v43958-period-filters>.field.grow{min-width:220px;flex:1 1 240px!important}
.v43958-period-filters .result-count{align-self:end!important}
@media(max-width:760px){
  .v43958-period-filters{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .v43958-period-filters>.field.grow{grid-column:1/-1!important;min-width:0!important}
  .v43958-period-filters>.field{min-width:0!important}
  .v43958-period-filters .result-count{grid-column:1/-1!important;width:100%!important}
  .top > button,.top > .btn,.page-head > button{align-self:stretch!important}
}
\n\n/* V4.39.59 — périodes : alignement réel + filtres actifs */
.v43959-period-page-head{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;gap:14px!important}
.v43959-period-page-head>div:first-child{min-width:0!important;flex:1 1 auto!important}
.v43959-period-page-head>.v43959-create-period{margin:0 0 0 auto!important;align-self:center!important;flex:0 0 auto!important;min-height:38px!important}
.v43959-period-filters{display:flex!important;align-items:end!important;gap:8px!important;flex-wrap:wrap!important}
.v43959-period-filters>.field{min-width:145px!important;margin:0!important}
.v43959-period-filters>.field.grow{flex:1 1 220px!important;min-width:200px!important}
.v43959-period-filters .result-count{display:inline-flex;align-items:center;min-height:38px;padding:0 8px;color:var(--muted);font-size:12px;font-weight:800}
/* Emoji/pictos directs dans les pastilles : compensation optique du glyphe, sans déplacer la pastille. */
.person-card>.avatar,.cards-list .person-card>.avatar{line-height:0!important;padding:0 0 2px 0!important;overflow:hidden!important}
/* SVG et wrappers d'icônes : centre géométrique strict dans tous les boutons. */
button svg,.btn svg,button .icon svg,.btn .icon svg,button [class*="ico"] svg,.btn [class*="ico"] svg{display:block!important;margin:0!important;position:static!important;transform:none!important;align-self:center!important;flex:0 0 auto!important}
button .icon,.btn .icon,button [class*="ico"],.btn [class*="ico"]{display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important}
@media(max-width:1000px){.v43959-period-page-head{flex-direction:row!important;align-items:center!important}.v43959-period-page-head>.v43959-create-period{width:auto!important;align-self:center!important}}
@media(max-width:620px){.v43959-period-page-head{flex-wrap:wrap!important}.v43959-period-page-head>.v43959-create-period{width:100%!important;margin-left:0!important}.v43959-period-filters{display:grid!important;grid-template-columns:1fr 1fr!important}.v43959-period-filters>.field.grow{grid-column:1/-1!important;min-width:0!important}.v43959-period-filters>.field{min-width:0!important}.v43959-period-filters #clearAdmPeriod90,.v43959-period-filters .result-count{grid-column:1/-1!important;width:100%!important;justify-content:center!important}}

/* v4.39.60 - filtres reels periode + alignement actions */
.top{align-items:center!important}
.top>button,.top>.btnrow,.top>[class*=actions]{align-self:center!important;margin-top:0!important;margin-bottom:0!important}
.top>button{display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1.2!important}
.v43960-period-filters{display:grid!important;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.8fr) minmax(125px,.8fr) minmax(170px,1fr) auto auto;gap:8px;align-items:end!important}
.v43960-period-filters .field{margin:0!important}.v43960-period-filters select,.v43960-period-filters input{width:100%}.v43960-reset{align-self:end!important}
@media(max-width:900px){.v43960-period-filters{grid-template-columns:1fr 1fr!important}.v43960-period-filters .grow{grid-column:1/-1}}
@media(max-width:560px){.v43960-period-filters{grid-template-columns:1fr!important}.v43960-period-filters .grow{grid-column:auto}}


/* v4.39.61 - alignement actions periodes + filtres reels (mercredi-formules.js charge apres app.js) */
.top{align-items:center!important}
.top>button,.top>.btn,.top>.btnrow{align-self:center!important;margin-top:0!important;margin-bottom:0!important}
.top>button{display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1.15!important}
.v43959-period-page-head>.v43959-create-period,.top button[onclick*="createServicePeriodV1119"]{align-self:center!important;margin-top:0!important;margin-bottom:0!important;transform:none!important}
.v43961-period-filters{display:grid!important;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.8fr) minmax(125px,.8fr) minmax(170px,1fr) auto auto;gap:8px!important;align-items:end!important}
.v43961-period-filters .field{margin:0!important;min-width:0!important}.v43961-period-filters input,.v43961-period-filters select{width:100%!important}
.v43961-period-filters>button{align-self:end!important;margin:0!important;min-height:38px!important}
@media(max-width:900px){.v43961-period-filters{grid-template-columns:1fr 1fr!important}.v43961-period-filters .grow{grid-column:1/-1!important}}
@media(max-width:560px){.v43961-period-filters{grid-template-columns:1fr!important}.v43961-period-filters .grow{grid-column:auto!important}}

/* v4.39.62 — finition ergonomique filtres période + bouton créer */
.v43961-period-filters{
  grid-template-columns:minmax(170px,1.55fr) minmax(105px,.75fr) minmax(105px,.72fr) minmax(145px,1fr) auto 54px!important;
  gap:6px!important;
  padding:8px!important;
  border-radius:10px!important;
}
.v43961-period-filters .field label{font-size:10px!important;line-height:1.1!important;margin:0 0 3px!important;white-space:nowrap!important}
.v43961-period-filters input,.v43961-period-filters select{min-height:32px!important;height:32px!important;padding:4px 7px!important;font-size:11px!important;line-height:1.1!important;text-overflow:ellipsis!important}
.v43961-period-filters>button{min-height:32px!important;height:32px!important;padding:4px 8px!important;font-size:10px!important;white-space:nowrap!important}
.v43961-period-filters .result-count{min-width:54px!important;min-height:32px!important;padding:3px 5px!important;border-radius:8px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}
.v43961-period-filters .result-count b{font-size:12px!important;line-height:1!important}.v43961-period-filters .result-count span{font-size:8px!important;line-height:1.05!important}
.v43962-period-top{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;column-gap:16px!important;width:100%!important}
.v43962-period-top>div:first-child{min-width:0!important;margin:0!important}
.v43962-period-top .v43962-create-period{position:static!important;float:none!important;margin:0!important;align-self:center!important;justify-self:end!important;transform:none!important;top:auto!important;right:auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:36px!important;height:36px!important;line-height:1!important}
@media(max-width:900px){.v43961-period-filters{grid-template-columns:1fr 1fr 1fr!important}.v43961-period-filters .grow{grid-column:1/-1!important}.v43961-period-filters .result-count{width:auto!important}.v43962-period-top{grid-template-columns:1fr auto!important}}
@media(max-width:560px){.v43961-period-filters{grid-template-columns:1fr 1fr!important}.v43961-period-filters .grow{grid-column:1/-1!important}.v43961-period-filters>button{width:100%!important}.v43962-period-top{grid-template-columns:1fr!important;row-gap:8px!important}.v43962-period-top .v43962-create-period{justify-self:stretch!important;width:100%!important}}

/* V4.39.71 - accueil stable + alignement périodes déterministe */
.kpi-service-closed{font-size:.82rem!important;font-weight:750!important;line-height:1.1!important;white-space:nowrap!important;color:var(--muted,#64748b)!important}
.v43962-period-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;width:100%!important}
.v43962-period-top>div:first-child{flex:1 1 auto!important;min-width:0!important;margin:0!important}
.v43962-period-top>.v43962-create-period{position:static!important;float:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;align-self:center!important;flex:0 0 auto!important;margin:0!important;transform:none!important;top:auto!important;right:auto!important;height:38px!important;min-height:38px!important;line-height:1!important;white-space:nowrap!important}
@media(max-width:560px){.v43962-period-top{flex-wrap:wrap!important}.v43962-period-top>.v43962-create-period{width:100%!important;flex:1 0 100%!important}}


/* === SOURCE : assets/responsables.css === */
.resp-final-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.resp-final-head h3{
  margin:0;
}
.resp-final-actions{
  margin-top:12px;
}


/* === SOURCE : assets/css/pwa-install.css === */
/* LWS4.1.44 — la bannière ci-dessous est fixe en bas d'écran ; sans cette réserve
   d'espace, sur petit viewport elle recouvre en permanence le bas de la page
   (cases à cocher, bouton Enregistrer...) sans qu'aucun scroll ne les libère. */
body{padding-bottom:var(--peri-pwa-banner-space,0px)!important;}
.pwa-install-prompt{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  display:flex;
  align-items:center;
  gap:14px;
  max-width:min(440px,calc(100vw - 28px));
  padding:14px;
  border:1px solid rgba(15,23,42,.12);
  border-radius:10px;
  background:#ffffff;
  box-shadow:0 18px 45px rgba(15,23,42,.18);
  color:#0f172a;
}
/* AUDIT PARENT - voir syncPwaBannerOverlap() (00-core.js) : rendue invisible et non
   cliquable sans changer la mise en page, uniquement le temps qu'elle chevauche
   visuellement un champ/bouton reel de la page (position:fixed + defilement). */
.pwa-install-prompt.pwa-banner-yield{
  visibility:hidden!important;
  pointer-events:none!important;
}
.pwa-install-prompt strong,
.pwa-install-prompt span{
  display:block;
}
.pwa-install-prompt span{
  margin-top:2px;
  color:#475569;
  font-size:13px;
}
.pwa-install-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
@media (max-width:640px){
  .pwa-install-prompt{
    left:12px;
    right:12px;
    bottom:12px;
    align-items:stretch;
    flex-direction:column;
  }
  .pwa-install-actions{
    justify-content:flex-end;
  }
}


/* === SOURCE : assets/css/dossier-unique.css === */
.completion-banner{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(120px,240px) auto;
  align-items:center;
  gap:12px;
  padding:12px;
  margin:0 0 12px;
  border-radius:8px;
  border:1px solid #dbe4ef;
  background:#fff;
}
.completion-banner.ok{border-color:#86efac;background:#f0fdf4}
.completion-banner.warn{border-color:#fde68a;background:#fffbeb}
.completion-banner.bad{border-color:#fecaca;background:#fef2f2}
.completion-banner span{display:block;color:#64748b;font-size:13px}
.completion-meter{height:10px;border-radius:999px;background:#e5e7eb;overflow:hidden}
.completion-meter i{display:block;height:100%;background:#2563eb}
.completion-missing{display:block;width:100%;margin:4px 0;text-align:left}
.completion-home-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.completion-home-card strong{font-size:24px}
.completion-admin-card{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.dossier-health textarea{min-height:72px}
.vaccine-row{display:grid;grid-template-columns:minmax(160px,1fr) 180px;gap:8px;align-items:center;margin:6px 0}
@media (max-width:720px){
  .completion-banner,.completion-home-card,.completion-admin-card,.vaccine-row{grid-template-columns:1fr;display:grid}
}


/* === SOURCE : assets/css/clean-fiches.css === */
.clean-sheet{
  color:#0f172a;
}
/* CORRECTIF SOURCE IOS (2026-09-10) : garantie explicite, part de la combinaison
   confirmee en direct sur iPhone reel (journal debug/ios-debug.txt) - voir le
   commentaire de .clean-sheet .sheet-savebar plus bas dans ce fichier.
   AJUSTEMENT ANNULE (2026-09-10) : le passage a touch-action:manipulation
   (tente juste au-dessus dans l'historique) a ete teste en direct sur iPhone
   et a AGGRAVE le probleme ("pire, marche plus"). Revert immediat a "auto".
   Hypothese invalidee : ce n'est donc pas l'arbitrage tap/pan/zoom qui
   causait le souci de reaction manquante. Ne pas retenter cette piste sans
   nouvelle preuve. */
.clean-sheet input,
.clean-sheet select,
.clean-sheet textarea,
.clean-sheet label{
  pointer-events:auto!important;
  touch-action:auto!important;
}
.clean-sheet .sheet-savebar{
  /* CORRECTIF SOURCE IOS (2026-09-10) : ni sticky ni backdrop-filter ici - confirme
     en direct sur iPhone reel (journal debug/ios-debug.txt) responsable, avec le
     double systeme de scroll v26/v220 (voir 30-access.js/40-ui.js), du fait que
     WebKit n'accordait quasiment jamais le focus aux input/select/textarea de
     .clean-sheet (modale ET page inline "Mon foyer", donc pas propre aux modales).
     Anciennement teste en mode A/B optionnel (?iosformsafe=1, V5.0.3) avant d'etre
     confirme et corrige ici a la source. */
  position:relative;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:6px 8px;
  margin:-6px -2px 10px;
  border-bottom:1px solid #e5e7eb;
  background:rgba(255,255,255,.96);
}
.clean-sheet .sheet-savebar .clean-actions{
  margin:0;
}
.clean-sheet .sheet-savebar button{
  min-height:28px;
  padding:5px 10px;
  font-size:12px;
}
.clean-sheet .save-state{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:2px 8px;
  border-radius:999px;
  background:#f1f5f9;
  color:#64748b;
  font-size:11px;
  font-weight:700;
}
.clean-sheet .save-state.dirty{background:#fff7ed;color:#b45309}
.clean-sheet .save-state.saved{background:#ecfdf5;color:#15803d}
.clean-sheet .save-state.error{background:#fef2f2;color:#b91c1c}
.clean-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:4px 0 12px;
}
.clean-tabs button{
  min-height:30px;
  padding:6px 10px;
  border-radius:8px;
  font-size:12px;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.clean-tabs button.active{
  background:#2563eb;
  color:#fff;
  box-shadow:0 6px 14px rgba(37,99,235,.18);
}
.clean-tabs button:hover{
  transform:translateY(-1px);
}
.clean-pane{display:none}
.clean-pane.active{display:block}
.clean-section-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:2px 0 10px;
  padding-bottom:8px;
  border-bottom:1px solid #eef2f7;
}
.clean-section-title h3{
  margin:0;
  font-size:15px;
}
.clean-section-title span{
  color:#64748b;
  font-size:12px;
}
.clean-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.clean-grid .full{grid-column:1/-1}
.clean-sheet .field label{
  font-weight:700;
  color:#334155;
  font-size:12px;
}
.clean-sheet input,
.clean-sheet select,
.clean-sheet textarea{
  border-color:#dbe4ef;
  border-radius:7px;
}
.clean-sheet textarea{
  min-height:58px;
  resize:vertical;
}
.clean-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:8px;
}
.clean-row-card{
  border:1px solid #e5e7eb;
  border-radius:8px;
  padding:10px;
  margin:8px 0;
  background:#fff;
  box-shadow:0 4px 12px rgba(15,23,42,.04);
}
.clean-row-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}
.clean-doc-upload{
  border:1px solid #e5e7eb;
  border-radius:8px;
  padding:10px;
  margin-bottom:10px;
  background:#f8fafc;
}
.clean-doc-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  align-items:center;
  border:1px solid #e5e7eb;
  border-radius:8px;
  padding:9px 10px;
  margin:7px 0;
  background:#fff;
}
.clean-doc-row.bad{
  border-color:#fecaca;
  background:#fff7f7;
}
.clean-doc-row div:first-child{
  display:grid;
  gap:2px;
}
.clean-doc-row span,
.clean-doc-row small{
  color:#64748b;
}
.clean-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.clean-info-grid>div{
  border:1px solid #e5e7eb;
  border-radius:8px;
  padding:9px;
  background:#fff;
}
.clean-info-grid b{
  display:block;
  margin-bottom:3px;
  font-size:12px;
  color:#475569;
}
.clean-info-grid span{
  font-weight:700;
}
.clean-attach{
  display:flex;
  gap:8px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #eef2f7;
}
.clean-attach select{flex:1}
.clean-health-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.clean-health-grid .full{grid-column:1/-1}
.clean-sheet .subcard{
  margin:0;
  border:1px solid #e5e7eb;
  border-radius:8px;
  padding:10px;
  background:#fff;
  box-shadow:0 4px 12px rgba(15,23,42,.035);
}
.clean-sheet .subcard h3{
  margin:0 0 8px;
  font-size:14px;
}
.clean-sheet .subcard h4{
  margin:10px 0 5px;
  color:#475569;
  font-size:12px;
}
.clean-sheet .skip-check{
  margin:6px 0 8px;
  padding:6px 8px;
  border:1px solid #dbeafe;
  border-radius:7px;
  background:#eff6ff;
}
.clean-sheet [data-health-block].is-skipped{
  display:none;
}
.clean-vaccine-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 132px;
  gap:8px;
  align-items:center;
  margin:5px 0;
}
.clean-vaccine-row .clean-vaccine-name{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 22px;
  justify-content:normal;
  min-width:0;
  color:#0f172a;
  font-weight:700;
}
.clean-vaccine-row label,
.clean-sheet .check,
.clean-sheet .checkgrid label{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1.25;
}
.clean-vaccine-row input[type="checkbox"],
.clean-sheet .check input[type="checkbox"],
.clean-sheet .checkgrid input[type="checkbox"]{
  flex:0 0 auto;
  margin:0;
}
.clean-vaccine-row input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  justify-self:end;
}
.clean-vaccine-row input[type="date"]{
  min-width:0!important;
  width:100%!important;
  height:34px!important;
}
.clean-vaccine-row label span{
  display:block;
  min-width:0;
  overflow:visible;
  white-space:normal;
}
.clean-transport-fields[hidden],
.clean-transport-fields.is-hidden{
  display:none!important;
}
.clean-contact-line{
  display:grid;
  grid-template-columns:1.05fr 1.05fr .95fr 1.15fr 1fr auto;
  gap:8px;
  align-items:end;
}
.clean-contact-line .danger{
  margin-bottom:1px;
}
@media (max-width:900px){
  .clean-health-grid,.clean-info-grid{grid-template-columns:1fr}
  .clean-contact-line{grid-template-columns:1fr 1fr}
  .clean-contact-line .danger{grid-column:1/-1}
}
@media (max-width:760px){
  .clean-grid,.clean-vaccine-row,.clean-doc-row{grid-template-columns:1fr}
  .clean-section-title{align-items:flex-start;flex-direction:column}
  .clean-sheet .sheet-savebar{align-items:stretch;flex-direction:column}
  .clean-attach{flex-direction:column}
}
.completion-missing-list{grid-column:1/-1;display:grid;gap:6px;margin-top:8px;}
.completion-missing-list[hidden]{display:none;}
.completion-missing{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:7px 9px;text-align:left;font-weight:700;color:#334155;}
.completion-missing:hover{border-color:#93c5fd;background:#eff6ff;}
.official-sync-card{border-color:#bfdbfe;background:#f8fbff;}
.official-sync-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start;}
.official-sync-grid section{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:12px;display:grid;gap:8px;}
.official-sync-grid h4{margin:0;font-size:15px;color:#0f172a;}
.source-line{font-size:12px;color:#64748b;font-weight:700;}
.official-sync-stats{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0;}
.official-sync-stats span{border:1px solid #dbeafe;background:#eff6ff;border-radius:999px;padding:5px 8px;font-size:12px;color:#1e3a8a;}
.official-sync-stats span.bad{border-color:#fecdd3;background:#fff1f2;color:#9f1239;}
.official-sync-preview{max-height:260px;overflow:auto;}
.official-sync-preview table{font-size:12px;}
.official-sync-preview tr.sync-nouveau td{background:#f0fdf4;}
.official-sync-preview tr.sync-conflit td{background:#fff1f2;}
.official-sync-preview tr.sync-present td{background:#f8fafc;color:#64748b;}
.official-sync-options{margin-top:10px;}
@media(max-width:900px){.official-sync-grid{grid-template-columns:1fr;}}
.clean-services-table table{
  font-size:10.5px!important;
  line-height:1.15!important;
}
.clean-services-table th,
.clean-services-table td{
  padding:4px 5px!important;
  vertical-align:top!important;
}
.clean-services-table tfoot th{
  background:#f8fafc!important;
  border-top:2px solid #dbeafe!important;
}
.clean-services-table tbody tr.cc-service-past{
  color:#94a3b8!important;
  background:#f8fafc!important;
}
.clean-services-table tbody tr.cc-service-past td b{
  color:#94a3b8!important;
}
.clean-services-table small,
.clean-services-table .mini{
  font-size:9px!important;
  line-height:1.1!important;
}
.service-click-text{
  color:inherit!important;
  text-decoration:none!important;
  cursor:pointer;
}
.service-click-text:hover{
  color:inherit!important;
  text-decoration:none!important;
}


/* === SOURCE : assets/css/mobile-pointage.css === */
/* V12.95 - Mode compact + menus pointage final */
html,
body,
#app,
.app,
.workspace{
  min-height:100vh!important;
}

.main,
main,
.workspace > .main{
  min-height:calc(100vh - 72px)!important;
}

.mpf-main{
  min-height:calc(100vh - 72px)!important;
}

.v1180-daily-main,
.v1179-daily-main{
  min-height:calc(100vh - 72px)!important;
}

.v1180-daily-main details.v56-options,
.v1179-daily-main details.v56-options,
#svcContent details.v56-options,
.service-card details.v56-options{
  position:relative!important;
  z-index:5000!important;
}

.v1180-daily-main details.v56-options[open],
.v1179-daily-main details.v56-options[open],
#svcContent details.v56-options[open],
.service-card details.v56-options[open]{
  z-index:50000!important;
}

.v1180-daily-main details.v56-options .v56-menu,
.v1179-daily-main details.v56-options .v56-menu,
#svcContent details.v56-options .v56-menu,
.service-card details.v56-options .v56-menu{
  position:fixed!important;
  left:var(--mpf-menu-left,8px)!important;
  top:var(--mpf-menu-top,90px)!important;
  right:auto!important;
  bottom:auto!important;
  width:var(--mpf-menu-width,220px)!important;
  min-width:200px!important;
  max-width:calc(100vw - 16px)!important;
  display:grid!important;
  gap:6px!important;
  padding:8px!important;
  border-radius:12px!important;
  background:#fff!important;
  border:1px solid #cbd5e1!important;
  box-shadow:0 18px 42px rgba(15,23,42,.26)!important;
  z-index:2147483500!important;
}

.v1180-daily-main details.v56-options[open] summary,
.v1179-daily-main details.v56-options[open] summary,
#svcContent details.v56-options[open] summary,
.service-card details.v56-options[open] summary{
  box-shadow:0 0 0 3px rgba(37,99,235,.18)!important;
}

.v1180-daily-main details.v56-options .v56-menu-item,
.v1179-daily-main details.v56-options .v56-menu-item,
#svcContent details.v56-options .v56-menu-item,
.service-card details.v56-options .v56-menu-item{
  width:100%!important;
  min-height:40px!important;
  justify-content:flex-start!important;
  align-items:center!important;
  padding:9px 10px!important;
  border-radius:9px!important;
  background:#f8fafc!important;
  color:#0f172a!important;
  border:1px solid #e2e8f0!important;
  font-size:13px!important;
  font-weight:850!important;
  text-align:left!important;
  transform:none!important;
  box-shadow:none!important;
}

.v1180-daily-main details.v56-options .v56-menu-item.danger,
.v1179-daily-main details.v56-options .v56-menu-item.danger,
#svcContent details.v56-options .v56-menu-item.danger,
.service-card details.v56-options .v56-menu-item.danger{
  background:#fff1f2!important;
  border-color:#fecdd3!important;
  color:#b91c1c!important;
}

.mpf-menu-head{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  padding:2px 4px 6px!important;
  font-size:10px!important;
  font-weight:900!important;
  color:#475569!important;
  border-bottom:1px solid #e2e8f0!important;
}

.alert-toggle-text:empty{
  display:none!important;
}

body.mpf-compact-active .service-toolbar-pro .smart-search,
body.mpf-compact-active .service-toolbar-pro #pickChild,
body.mpf-compact-active .service-toolbar-pro #pickChildSug{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

@media (max-width:1000px){
  .mpf-main{
    padding:6px!important;
    min-height:calc(100vh - 72px)!important;
  }

  .mpf-head{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    gap:5px!important;
    align-items:center!important;
    margin:0 0 6px!important;
    padding:5px!important;
    border:1px solid #dbeafe!important;
    border-radius:11px!important;
    background:#f8fbff!important;
  }

  .mpf-back{
    min-height:28px!important;
    padding:5px 8px!important;
    border-radius:8px!important;
    font-size:10px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .mpf-title{
    min-width:0!important;
    overflow:hidden!important;
  }

  .mpf-title b{
    display:block!important;
    font-size:12px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .mpf-title small{
    display:block!important;
    margin-top:2px!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    color:#64748b!important;
  }

  .mpf-tools{
    grid-column:1/-1!important;
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    min-width:0!important;
  }

  .mpf-tools input{
    height:28px!important;
    min-height:28px!important;
    padding:3px 7px!important;
    border:1px solid #cbd5e1!important;
    border-radius:8px!important;
    background:#fff!important;
    box-shadow:none!important;
    font-size:11px!important;
    line-height:1!important;
  }

  #mpfSearch{
    flex:0 1 155px!important;
    width:155px!important;
    min-width:0!important;
  }

  #v1179Date{
    flex:0 0 96px!important;
    width:96px!important;
  }

  .mpf-add-list{
    display:grid!important;
    gap:5px!important;
    margin:0 0 6px!important;
  }

  .mpf-add-list button{
    min-height:34px!important;
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:6px!important;
    padding:6px 8px!important;
    border-radius:10px!important;
    background:#ecfdf5!important;
    color:#14532d!important;
    border:1px solid #bbf7d0!important;
    box-shadow:none!important;
    transform:none!important;
    text-align:left!important;
  }

  .mpf-add-list b{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
  }

  .mpf-add-list small{
    font-size:9px!important;
    color:#166534!important;
  }

  .mpf-list{
    display:grid!important;
    gap:5px!important;
    overflow:visible!important;
  }

  .mpf-row{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:6px!important;
    min-height:38px!important;
    padding:6px!important;
    border:1px solid #e2e8f0!important;
    border-radius:10px!important;
    background:#fff!important;
    overflow:visible!important;
    flex-wrap:nowrap!important;
    position:relative!important;
  }

  .mpf-row.done{
    background:#f0fdf4!important;
    border-color:#bbf7d0!important;
  }

  .mpf-child{
    flex:1 1 0!important;
    min-width:0!important;
    max-width:100%!important;
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    padding:0!important;
    background:transparent!important;
    color:#0f172a!important;
    border:0!important;
    box-shadow:none!important;
    transform:none!important;
    text-align:left!important;
    justify-content:flex-start!important;
  }

  .mpf-child b{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11px!important;
    line-height:1!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
  }

  .mpf-child-ico{
    flex:0 0 auto!important;
    font-size:11px!important;
    line-height:1!important;
  }

  .mpf-child small{
    flex:0 0 auto!important;
    font-size:8px!important;
    line-height:1!important;
    color:#64748b!important;
  }

  .mpf-actions{
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    min-width:max-content!important;
    position:relative!important;
  }

  .mpf-status{
    max-width:58px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    padding:4px 6px!important;
    border-radius:999px!important;
    background:#eef2ff!important;
    color:#3730a3!important;
    font-size:9px!important;
    font-weight:800!important;
    line-height:1!important;
  }

  .mpf-primary{
    min-width:82px!important;
    height:32px!important;
    min-height:32px!important;
    padding:6px 8px!important;
    border-radius:9px!important;
    font-size:10.5px!important;
    font-weight:900!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .mpf-primary.ok{
    background:#16a34a!important;
    color:#fff!important;
  }

  .mpf-options{
    position:relative!important;
    flex:0 0 auto!important;
  }

  .mpf-options summary{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border-radius:9px!important;
    background:#e5e7eb!important;
    color:#0f172a!important;
    font-size:18px!important;
    font-weight:900!important;
    cursor:pointer!important;
    list-style:none!important;
  }

  .mpf-options summary::-webkit-details-marker{
    display:none!important;
  }

  .mpf-row:has(.mpf-options[open]){
    z-index:50!important;
  }

  .mpf-menu{
    position:absolute!important;
    right:0!important;
    top:calc(100% + 6px)!important;
    display:grid!important;
    gap:6px!important;
    width:190px!important;
    margin-top:0!important;
    padding:8px!important;
    border-radius:12px!important;
    background:#fff!important;
    border:1px solid #cbd5e1!important;
    box-shadow:0 16px 36px rgba(15,23,42,.24)!important;
    z-index:60!important;
  }

  .mpf-menu-item{
    width:100%!important;
    min-height:40px!important;
    justify-content:flex-start!important;
    align-items:center!important;
    padding:9px 10px!important;
    border-radius:9px!important;
    background:#fff!important;
    color:#0f172a!important;
    border:1px solid #e2e8f0!important;
    font-size:13px!important;
    font-weight:850!important;
    text-align:left!important;
    transform:none!important;
    box-shadow:none!important;
  }

  .mpf-menu-item.danger{
    background:#fff1f2!important;
    border-color:#fecdd3!important;
    color:#b91c1c!important;
  }
}

@media (max-width:380px){
  #mpfSearch{
    width:136px!important;
    flex-basis:136px!important;
  }

  #v1179Date{
    width:88px!important;
    flex-basis:88px!important;
    font-size:9px!important;
  }

  .mpf-primary{
    min-width:74px!important;
    font-size:10px!important;
  }

  .mpf-status{
    display:none!important;
  }

  .mpf-menu{
    width:176px!important;
  }
}

@media (min-width:1001px){
  .mpf-head{
    display:grid!important;
    grid-template-columns:auto minmax(180px,1fr) 300px!important;
    gap:10px!important;
    align-items:center!important;
    margin:0 0 10px!important;
    padding:8px!important;
    border:1px solid #dbeafe!important;
    border-radius:12px!important;
    background:#f8fbff!important;
  }

  .mpf-tools{
    display:grid!important;
    grid-template-columns:1fr 120px!important;
    gap:8px!important;
  }

  .mpf-tools input{
    min-height:34px!important;
    border-radius:9px!important;
  }

  .mpf-list{
    display:grid!important;
    gap:7px!important;
  }

  .mpf-row{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    min-height:44px!important;
    padding:8px 10px!important;
    border:1px solid #e2e8f0!important;
    border-radius:12px!important;
    background:#fff!important;
    position:relative!important;
  }

  .mpf-child{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    gap:8px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    background:transparent!important;
    color:#0f172a!important;
    box-shadow:none!important;
    transform:none!important;
  }

  .mpf-actions{
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    position:relative!important;
  }

  .mpf-primary,
  .mpf-options summary{
    min-height:34px!important;
  }

  .mpf-options summary{
    width:34px!important;
    display:grid!important;
    place-items:center!important;
    list-style:none!important;
  }

  .mpf-menu{
    position:absolute!important;
    right:0!important;
    top:calc(100% + 6px)!important;
    width:220px!important;
    display:grid!important;
    gap:6px!important;
    padding:8px!important;
    border-radius:12px!important;
    background:#fff!important;
    border:1px solid #cbd5e1!important;
    box-shadow:0 16px 36px rgba(15,23,42,.24)!important;
    z-index:60!important;
  }

  .mpf-row:has(.mpf-options[open]){
    z-index:50!important;
  }
}

body:not(.mpf-compact-active) .main:not(.mpf-main),
body:not(.mpf-compact-active) main:not(.mpf-main),
body:not(.mpf-compact-active) .workspace > .main:not(.mpf-main){
  max-width:1600px!important;
  width:100%!important;
  margin:0 auto!important;
}

/* V4.10 - Mode compact réellement dense, regroupé par classe et alertes visibles */
body.mpf-compact-active .mpf-list{
  display:block!important;
  border:1px solid #dbe4ee!important;
  border-radius:10px!important;
  overflow:visible!important;
  background:#fff!important;
}
body.mpf-compact-active .mpf-class-separator{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:22px!important;
  padding:4px 7px 2px!important;
  background:#f8fafc!important;
  color:#334155!important;
  border-top:1px solid #dbe4ee!important;
}
body.mpf-compact-active .mpf-class-separator:first-child{
  border-top:0!important;
  border-radius:9px 9px 0 0!important;
}
body.mpf-compact-active .mpf-class-separator span{
  flex:0 0 auto!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
body.mpf-compact-active .mpf-class-separator i{
  display:block!important;
  flex:1 1 auto!important;
  height:1px!important;
  background:#cbd5e1!important;
}
body.mpf-compact-active .mpf-row{
  min-height:32px!important;
  margin:0!important;
  padding:2px 5px!important;
  gap:4px!important;
  border:0!important;
  border-top:1px solid #edf1f5!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#fff!important;
}
body.mpf-compact-active .mpf-class-separator + .mpf-row{
  border-top:0!important;
}
body.mpf-compact-active .mpf-row.done{
  background:#f0fdf4!important;
}
body.mpf-compact-active .mpf-child{
  min-height:27px!important;
  padding:0 2px!important;
}
body.mpf-compact-active .mpf-child b{
  font-size:12px!important;
  line-height:1.05!important;
  font-weight:850!important;
}
body.mpf-compact-active .mpf-child small,
body.mpf-compact-active .mpf-child-ico{
  display:none!important;
}
body.mpf-compact-active .mpf-actions{
  gap:3px!important;
}
body.mpf-compact-active .mpf-status{
  max-width:70px!important;
  padding:3px 5px!important;
  font-size:8.5px!important;
}
body.mpf-compact-active .mpf-primary{
  min-width:66px!important;
  height:27px!important;
  min-height:27px!important;
  padding:4px 6px!important;
  border-radius:7px!important;
  font-size:9.5px!important;
}
body.mpf-compact-active .mpf-options summary{
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  min-height:27px!important;
  border-radius:7px!important;
  font-size:16px!important;
}
body.mpf-compact-active .mpf-alert-button,
body.mpf-compact-active .mpf-actions .v238-child-alert-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  min-width:27px!important;
  width:auto!important;
  height:27px!important;
  min-height:27px!important;
  padding:0 5px!important;
  border:1px solid #fdba74!important;
  border-radius:7px!important;
  background:#fff7ed!important;
  color:#c2410c!important;
  box-shadow:none!important;
  font-size:11px!important;
  font-weight:950!important;
  line-height:1!important;
  cursor:pointer!important;
}
body.mpf-compact-active .mpf-alert-button b{
  font-size:9px!important;
  line-height:1!important;
}
body.mpf-compact-active .mpf-actions .v238-child-alert-button svg{
  width:12px!important;
  height:12px!important;
}
body.mpf-compact-active .mpf-actions .v238-child-alert-button small{
  font-size:8px!important;
  line-height:1!important;
}
@media (max-width:390px){
  body.mpf-compact-active .mpf-row{padding-left:4px!important;padding-right:4px!important}
  body.mpf-compact-active .mpf-child b{font-size:11px!important}
  body.mpf-compact-active .mpf-primary{min-width:61px!important;font-size:9px!important}
  body.mpf-compact-active .mpf-status{display:none!important}
  body.mpf-compact-active .mpf-actions .v238-child-alert-button small{display:none!important}
}


/* V4.27 - Mode normal sur écran compact : utiliser toute la largeur, réduire les espaces perdus */
@media (max-width:1000px){
  body:not(.mpf-compact-active) .v1180-daily-main{
    max-width:none!important;
    width:100%!important;
    margin:0!important;
    padding:8px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main > .top{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto auto!important;
    gap:6px!important;
    align-items:center!important;
    margin:0 0 8px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main > .top h1{
    margin:0!important;
    font-size:18px!important;
    line-height:1.1!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main > .top .ghost,
  body:not(.mpf-compact-active) .v1180-daily-main > .top .v1180-top-compact{
    min-height:34px!important;
    padding:6px 9px!important;
    border-radius:10px!important;
    font-size:11px!important;
    white-space:nowrap!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-card{
    padding:10px!important;
    border-radius:14px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-toolbar-pro{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
    align-items:end!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-toolbar-pro > .smart-search{
    grid-column:1 / -1!important;
    margin:0!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-toolbar-pro > #openRes{
    grid-column:1 / -1!important;
    width:100%!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-date-center{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 124px!important;
    gap:8px!important;
    align-items:end!important;
    width:100%!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-date-center .field{
    grid-column:auto!important;
    margin:0!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-date-center .field label{
    margin-bottom:3px!important;
    font-size:10px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-date-center input,
  body:not(.mpf-compact-active) .v1180-daily-main .service-toolbar-pro button{
    min-height:38px!important;
    border-radius:10px!important;
    font-size:12px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .pointage-date-warning-normal,
  body:not(.mpf-compact-active) .v1180-daily-main .hint{
    margin:8px 0 0!important;
    padding:8px 10px!important;
    border-radius:10px!important;
    font-size:11px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-summary{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    margin:8px 0!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .mini-kpi{
    padding:8px!important;
    border-radius:12px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .mini-kpi b{font-size:16px!important}
  body:not(.mpf-compact-active) .v1180-daily-main .mini-kpi span{font-size:10px!important}
}
@media (max-width:520px){
  body:not(.mpf-compact-active) .v1180-daily-main > .top{
    grid-template-columns:1fr 1fr!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main > .top > div:first-child{
    grid-column:1 / -1!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .service-date-center{
    grid-template-columns:minmax(0,1fr) 116px!important;
  }
  body:not(.mpf-compact-active) .v1180-daily-main .hint{
    display:none!important;
  }
}


/* === SOURCE : assets/css/core-ui-runtime.css === */
/* V2.2 - stable menu skin and settings helpers */
:root{
  --v2-nav:#0f172a;
  --v2-nav-2:#111827;
  --v2-nav-line:rgba(226,232,240,.12);
  --v2-nav-text:#e5edf8;
  --v2-nav-muted:#94a3b8;
  --v2-blue:#2563eb;
  --v2-blue-2:#1d4ed8;
  --v2-focus:#93c5fd;
}

body.v2-stable-ready{
  background:#f5f7fb;
}

#appSplash{
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  padding:24px;
  box-sizing:border-box;
  background:var(--pwa-splash-bg,#f4f7fb);
  transition:opacity .24s ease, visibility .24s ease;
}

#appSplash img{
  display:block;
  max-width:min(78vw,420px);
  max-height:min(74vh,420px);
  width:auto;
  height:auto;
  padding:18px;
  box-sizing:border-box;
  object-fit:contain;
}

body.app-ready #appSplash,
body:not(.app-booting) #appSplash{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.app.v2-stable-shell{
  display:grid!important;
  grid-template-columns:280px minmax(0,1fr);
  min-height:100dvh!important;
  align-items:stretch!important;
}

.app.v2-stable-shell .workspace,
.app.v2-stable-shell .main{
  min-width:0!important;
}

.app.v2-stable-shell .workspace{
  grid-column:2!important;
  min-height:100dvh!important;
  margin-left:0!important;
}

.app.v2-stable-shell > .main{
  grid-column:2!important;
  min-width:0!important;
  margin-left:0!important;
}

.app.v2-stable-shell .v2-stable-side.side{
  grid-column:1!important;
}

.v2-stable-side.side{
  position:sticky!important;
  top:0!important;
  align-self:stretch!important;
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  background:linear-gradient(180deg,var(--v2-nav),var(--v2-nav-2))!important;
  color:var(--v2-nav-text)!important;
  box-shadow:8px 0 26px rgba(15,23,42,.16)!important;
  overflow:hidden!important;
}

.v2-stable-side .side-inner,
.v2-stable-side-inner{
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  padding:14px 12px 18px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:12px!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
}

.v2-stable-side .brand{
  position:relative!important;
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  padding:9px!important;
  border:1px solid var(--v2-nav-line)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.055)!important;
}

.v2-stable-side .brand .logo + div{
  min-width:0!important;
  max-width:100%!important;
  line-height:1.1!important;
}

.v2-stable-side .brand .logo + div b,
.v2-stable-side .brand .logo + div strong{
  display:block!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:13px!important;
  line-height:1.12!important;
}

.v2-stable-side .brand .logo + div small{
  display:block!important;
  max-width:100%!important;
  margin-top:2px!important;
  font-size:10px!important;
  line-height:1.15!important;
  white-space:normal!important;
}

.v2-stable-side .brand .logo{
  width:44px!important;
  height:44px!important;
  border-radius:8px!important;
  background:#fff!important;
  color:#0f172a!important;
  overflow:hidden!important;
}

.v2-stable-side .brand img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}

.v2-stable-side .brand small,
.v2-stable-side .userbox span{
  color:var(--v2-nav-muted)!important;
}

.v2-stable-collapse{
  display:none!important;
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.11)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  box-shadow:none!important;
  transform:none!important;
}

.v2-stable-collapse span,
.v2-stable-mobile-menu span{
  display:block;
  width:16px;
  height:2px;
  margin:3px auto;
  border-radius:99px;
  background:currentColor;
}

.v2-stable-collapse span:before,
.v2-stable-collapse span:after{
  content:"";
  display:block;
  width:16px;
  height:2px;
  border-radius:99px;
  background:currentColor;
  transform:translateY(-6px);
}

.v2-stable-collapse span:after{
  transform:translateY(4px);
}

.v2-stable-collapse:hover{
  background:rgba(255,255,255,.14)!important;
}

.v2-stable-side .userbox{
  display:flex!important;
  background:rgba(255,255,255,.055)!important;
  border:1px solid var(--v2-nav-line)!important;
  border-radius:8px!important;
  color:#e5edf8!important;
  margin:0!important;
}

.v2-stable-nav.nav,
.v2-stable-side .nav{
  flex:1 1 auto!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding:2px 2px 12px 0!important;
}

.v2-stable-nav details,
.v2-stable-side .nav details{
  border:1px solid var(--v2-nav-line)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.035)!important;
  margin:0!important;
  padding:5px!important;
  overflow:hidden!important;
}

.v2-stable-nav details[open],
.v2-stable-side .nav details[open]{
  background:rgba(255,255,255,.055)!important;
}

.v2-stable-nav summary,
.v2-stable-side .nav summary{
  color:#cbd5e1!important;
  font-size:11px!important;
  font-weight:850!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  padding:8px 9px!important;
  border-radius:7px!important;
  list-style:none!important;
}

.v2-stable-nav summary::-webkit-details-marker,
.v2-stable-side .nav summary::-webkit-details-marker{
  display:none!important;
}

.v2-stable-nav details button,
.v2-stable-side .nav details button{
  margin-left:10px!important;
  width:calc(100% - 10px)!important;
  position:relative!important;
}

.v2-stable-nav details button:before,
.v2-stable-side .nav details button:before{
  content:"";
  position:absolute;
  left:-8px;
  top:9px;
  bottom:9px;
  width:1px;
  background:rgba(148,163,184,.32);
}

.v2-stable-nav button,
.v2-stable-side .nav button{
  position:relative!important;
  min-height:39px!important;
  border-radius:8px!important;
  padding:0 10px!important;
  color:var(--v2-nav-text)!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  justify-content:flex-start!important;
  text-align:left!important;
  gap:9px!important;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease!important;
}

.v2-stable-nav button:hover,
.v2-stable-side .nav button:hover{
  background:rgba(255,255,255,.09)!important;
  box-shadow:none!important;
  transform:none!important;
}

.v2-stable-nav button.active,
.v2-stable-nav button.v2-active,
.v2-stable-side .nav button.active,
.v2-stable-side .nav button.v2-active{
  background:linear-gradient(135deg,var(--v2-blue),var(--v2-blue-2))!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(37,99,235,.22)!important;
}

.v2-stable-nav button.active:after,
.v2-stable-nav button.v2-active:after,
.v2-stable-side .nav button.active:after,
.v2-stable-side .nav button.v2-active:after{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:3px;
  border-radius:99px;
  background:#bfdbfe;
}

.v2-stable-mobile-menu{
  display:none!important;
  position:fixed;
  left:12px;
  top:12px;
  z-index:120;
  width:42px!important;
  height:42px!important;
  padding:0!important;
  border-radius:10px!important;
  border:1px solid #dbeafe!important;
  background:#eef5ff!important;
  color:#1d4ed8!important;
  box-shadow:0 12px 24px rgba(15,23,42,.14)!important;
}

body.v2-menu-collapsed .app.v2-stable-shell{
  grid-template-columns:66px minmax(0,1fr)!important;
}

body.v2-menu-collapsed .v2-stable-side.side{
  width:66px!important;
}

body.v2-menu-collapsed .v2-stable-side .side-inner{
  padding:6px 5px!important;
  gap:4px!important;
}

body.v2-menu-collapsed .v2-stable-side .brand{
  grid-template-columns:30px 22px!important;
  gap:3px!important;
  justify-content:center!important;
  padding:4px 3px!important;
}

body.v2-menu-collapsed .v2-stable-side .brand .logo{
  width:30px!important;
  height:30px!important;
}

body.v2-menu-collapsed .v2-stable-collapse{
  width:22px!important;
  height:26px!important;
  min-width:22px!important;
}

body.v2-menu-collapsed .v2-stable-side .brand div:not(.logo),
body.v2-menu-collapsed .v2-stable-side .brand small,
body.v2-menu-collapsed .v2-stable-side .userbox,
body.v2-menu-collapsed .v2-stable-side summary{
  display:none!important;
}

body.v2-menu-collapsed .v2-stable-side .nav details{
  display:contents!important;
}

body.v2-menu-collapsed .v2-stable-side .nav{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  gap:2px!important;
  padding:0 0 8px!important;
}

body.v2-menu-collapsed .v2-stable-side .nav button{
  width:36px!important;
  height:31px!important;
  min-height:31px!important;
  margin:0 auto!important;
  padding:0!important;
  justify-content:center!important;
  font-size:0!important;
}

body.v2-menu-collapsed .v2-stable-side .nav button span:not(.nav-ico),
body.v2-menu-collapsed .v2-stable-side .nav button .nav-label{
  display:none!important;
}

.v2-setting-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.v2-list-manager{
  display:grid;
  gap:10px;
}

.v2-list-row{
  display:grid;
  grid-template-columns:minmax(100px,.8fr) minmax(160px,1.3fr) auto auto;
  gap:8px;
  align-items:center;
  padding:10px;
  border:1px solid #e2e8f0;
  border-radius:8px;
  background:#fff;
}

.v2-list-row input[type="checkbox"]{
  width:auto;
}

.v2-list-actions{
  display:flex;
  gap:6px;
  justify-content:flex-end;
}

.v2-pwa-assets{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.v2-asset-card{
  display:grid!important;
  grid-template-columns:104px minmax(0,1fr)!important;
  gap:14px!important;
  align-items:start!important;
}

.v2-asset-preview{
  width:104px!important;
  aspect-ratio:1!important;
  border:1px solid #dbe5f0!important;
  border-radius:8px!important;
  background:#f8fafc!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}

.v2-asset-preview img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  padding:8px!important;
}

.v2-asset-empty{
  padding:8px!important;
  color:#64748b!important;
  font-size:11px!important;
  line-height:1.2!important;
  text-align:center!important;
}

.v2-asset-body{
  min-width:0!important;
}

.v2-asset-meta{
  display:block;
  margin:0 0 6px;
  color:#64748b;
  font-size:11px;
  line-height:1.25;
}

.v23-completion-tree{
  display:grid;
  gap:10px;
}

.v23-completion-group{
  border:1px solid #dbe5f0;
  border-radius:8px;
  background:#fff;
  overflow:hidden;
}

.v23-completion-group summary{
  cursor:pointer;
  padding:10px 12px;
  font-weight:800;
  color:#0f172a;
  background:#f8fafc;
  border-bottom:1px solid #e5edf6;
}

.v23-completion-rows{
  display:grid;
  grid-template-columns:repeat(2,minmax(260px,1fr));
  gap:8px;
  padding:10px;
}

.v23-completion-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:36px;
  padding:7px 9px;
  border:1px solid #e2e8f0;
  border-radius:7px;
  background:#f8fafc;
  font-weight:700;
  color:#172033;
}

.v23-completion-row input{
  flex:0 0 auto;
  width:auto!important;
  min-width:16px!important;
  height:16px!important;
}

.v23-completion-row span{
  flex:1 1 auto;
  min-width:0;
  line-height:1.25;
}

.v23-completion-row.is-disabled{
  opacity:.55;
}

.rpi-footer-copy a,
.login-copy a{
  color:inherit!important;
  text-decoration:underline!important;
  text-underline-offset:2px!important;
}

.v2-stable-side .rpi-footer-copy,
.v2-stable-side-inner .rpi-footer-copy{
  flex:0 0 auto!important;
  margin-top:auto!important;
  margin-bottom:18px!important;
  padding:10px 10px 18px!important;
  color:rgba(219,234,254,.74)!important;
  font-size:10px!important;
  line-height:1.35!important;
}

body.v2-menu-collapsed .v2-stable-side .rpi-footer-copy{
  display:none!important;
}

/* V2.18 - navigation moderne inspiree du mockup fourni */
.app.v2-stable-shell .v2-stable-side.side{
  background:transparent!important;
  box-shadow:none!important;
  padding:12px!important;
}

.v2-stable-side .side-inner,
.v2-stable-side-inner{
  height:calc(100dvh - 24px)!important;
  min-height:calc(100dvh - 24px)!important;
  max-height:calc(100dvh - 24px)!important;
  padding:14px 12px 16px!important;
  gap:12px!important;
  border:1px solid rgba(148,163,184,.22)!important;
  border-radius:20px!important;
  background:
    radial-gradient(circle at 20% 0%,rgba(59,130,246,.22),transparent 34%),
    linear-gradient(180deg,#0b1424 0%,#0d1828 48%,#08111f 100%)!important;
  box-shadow:0 24px 52px rgba(15,23,42,.28)!important;
}

.v2-stable-side .brand{
  grid-template-columns:48px minmax(0,1fr)!important;
  gap:11px!important;
  padding:10px 11px!important;
  border:0!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.035)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;
}

.v2-stable-side .brand .logo{
  width:48px!important;
  height:48px!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:0 12px 24px rgba(0,0,0,.22)!important;
}

.v2-stable-side .brand .logo + div b,
.v2-stable-side .brand .logo + div strong{
  font-size:15px!important;
  line-height:1.08!important;
  letter-spacing:0!important;
}

.v2-stable-side .brand .logo + div small{
  color:#aebbd0!important;
  font-size:11px!important;
  line-height:1.2!important;
}

.v2-stable-nav.nav,
.v2-stable-side .nav{
  gap:4px!important;
  padding:2px 2px 10px!important;
  scrollbar-width:thin!important;
}

.v2-stable-nav details,
.v2-stable-side .nav details{
  border:0!important;
  border-top:1px solid rgba(148,163,184,.18)!important;
  border-radius:0!important;
  background:transparent!important;
  margin:7px 2px 0!important;
  padding:8px 0 0!important;
}

.v2-stable-nav details:first-child,
.v2-stable-side .nav details:first-child{
  border-top:0!important;
  margin-top:0!important;
  padding-top:0!important;
}

.v2-stable-nav details[open],
.v2-stable-side .nav details[open]{
  background:transparent!important;
}

.v2-stable-nav summary,
.v2-stable-side .nav summary{
  min-height:24px!important;
  margin:0 0 4px!important;
  padding:2px 8px!important;
  border-radius:8px!important;
  color:#9cafc7!important;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.075em!important;
}

.v2-stable-nav .group-dot,
.v2-stable-side .nav .group-dot{
  display:none!important;
}

.v2-stable-nav details button,
.v2-stable-side .nav details button{
  margin-left:0!important;
  width:100%!important;
}

.v2-stable-nav details button:before,
.v2-stable-side .nav details button:before{
  display:none!important;
}

.v2-stable-nav button,
.v2-stable-side .nav button{
  min-height:44px!important;
  height:44px!important;
  margin:2px 0!important;
  padding:0 10px!important;
  border:1px solid transparent!important;
  border-radius:12px!important;
  color:#eaf1fb!important;
  font-size:14px!important;
  font-weight:850!important;
  gap:10px!important;
}

.v2-stable-nav button:hover,
.v2-stable-side .nav button:hover{
  background:rgba(255,255,255,.075)!important;
  border-color:rgba(255,255,255,.08)!important;
}

.v2-stable-nav button.active,
.v2-stable-nav button.v2-active,
.v2-stable-side .nav button.active,
.v2-stable-side .nav button.v2-active{
  background:linear-gradient(135deg,#2f72f3,#1d4ed8)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.14)!important;
  box-shadow:0 14px 28px rgba(37,99,235,.36)!important;
}

.v2-stable-nav button.active:after,
.v2-stable-nav button.v2-active:after,
.v2-stable-side .nav button.active:after,
.v2-stable-side .nav button.v2-active:after{
  left:auto!important;
  right:11px!important;
  top:50%!important;
  bottom:auto!important;
  width:6px!important;
  height:6px!important;
  border-radius:50%!important;
  background:#dbeafe!important;
  transform:translateY(-50%)!important;
}

.v2-stable-side .nav .nav-label{
  min-width:0!important;
  line-height:1.15!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.v2-stable-side .nav .nav-ico,
.v2-stable-side .nav .v217-nav-icon{
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  flex:0 0 32px!important;
  border-radius:10px!important;
  display:grid!important;
  place-items:center!important;
  background:rgba(255,255,255,.055)!important;
  color:#cbd5e1!important;
  font-size:0!important;
}

.v2-stable-side .nav .v217-nav-icon svg{
  width:19px!important;
  height:19px!important;
  display:block!important;
  fill:currentColor!important;
}

.v2-stable-side .nav button[data-p="dashboard"] .v217-nav-icon{color:#60a5fa!important}
.v2-stable-side .nav button[data-p="service_am"] .v217-nav-icon{color:#fbbf24!important}
.v2-stable-side .nav button[data-p="service_cantine"] .v217-nav-icon{color:#e5e7eb!important}
.v2-stable-side .nav button[data-p="service_pm"] .v217-nav-icon{color:#fde68a!important}
.v2-stable-side .nav button[data-p="service_mercredi"] .v217-nav-icon{color:#fb923c!important}
.v2-stable-side .nav button[data-p="service_alsh"] .v217-nav-icon{color:#4ade80!important}
.v2-stable-side .nav button[data-p="families"] .v217-nav-icon{color:#cbd5e1!important}
.v2-stable-side .nav button[data-p="children"] .v217-nav-icon{color:#e5e7eb!important}
.v2-stable-side .nav button[data-p="parent_reservations"] .v217-nav-icon{color:#93c5fd!important}
.v2-stable-side .nav button[data-p="parent_documents"] .v217-nav-icon{color:#e5e7eb!important}
.v2-stable-side .nav button[data-p="parent_rgpd"] .v217-nav-icon{color:#86efac!important}
.v2-stable-side .nav button[data-p="billing"] .v217-nav-icon,
.v2-stable-side .nav button[data-p="tariffs"] .v217-nav-icon{color:#86efac!important}
.v2-stable-side .nav button[data-p="users"] .v217-nav-icon{color:#c4b5fd!important}
.v2-stable-side .nav button[data-p="settings"] .v217-nav-icon{color:#e5e7eb!important}
.v2-stable-side .nav button[data-p="stats"] .v217-nav-icon{color:#fca5a5!important}

.v2-stable-side .nav button.active .v217-nav-icon,
.v2-stable-side .nav button.v2-active .v217-nav-icon{
  color:#fff!important;
  background:rgba(255,255,255,.14)!important;
}

.rpi-footer-contact{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin-top:5px!important;
  color:#bfdbfe!important;
  font-weight:900!important;
  text-decoration:none!important;
}

.login-copy .rpi-footer-contact{
  color:#1d4ed8!important;
}

.rpi-footer-contact:hover,
.login-copy .rpi-footer-contact:hover{
  text-decoration:underline!important;
}

.rpi-footer-contact-group{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  flex-wrap:wrap!important;
  margin-top:5px!important;
  font-weight:900!important;
}

.rpi-footer-contact-group>span{
  color:inherit!important;
}

.rpi-footer-contact-group .rpi-footer-contact{
  margin-top:0!important;
}

body.v2-menu-collapsed .v2-stable-side .side-inner{
  padding:6px 5px!important;
  border-radius:18px!important;
  gap:4px!important;
}

body.v2-menu-collapsed .v2-stable-side .brand{
  grid-template-columns:30px!important;
  justify-content:center!important;
  padding:4px!important;
}

body.v2-menu-collapsed .v2-stable-side .brand .logo{
  width:30px!important;
  height:30px!important;
}

body.v2-menu-collapsed .v2-stable-side .nav button{
  width:36px!important;
  height:31px!important;
  min-height:31px!important;
  border-radius:9px!important;
}

body.v2-menu-collapsed .v2-stable-side .nav .nav-ico,
body.v2-menu-collapsed .v2-stable-side .nav .v217-nav-icon{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  flex-basis:24px!important;
}

.v216-backup-pane{
  display:grid;
  gap:14px;
}

.v216-backup-head,
.v216-backup-section>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.v216-backup-head h2,
.v216-backup-section h3{
  margin:0 0 4px!important;
}

.v216-backup-head p,
.v216-backup-section header span{
  color:#64748b;
  font-size:12px;
  font-weight:800;
}

.v216-backup-status{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.v216-backup-section{
  border:1px solid #dfe7f1;
  background:#fff;
  border-radius:18px;
  padding:14px;
  box-shadow:0 8px 22px rgba(15,23,42,.04);
}

.v216-backup-actions{
  display:grid;
  grid-template-columns:repeat(4,minmax(150px,1fr));
  gap:10px;
}

.v216-backup-form{
  display:grid;
  grid-template-columns:minmax(260px,1.2fr) minmax(180px,.7fr) minmax(180px,.7fr);
  gap:12px;
  align-items:start;
}

.v216-backup-section .table-wrap{
  margin-top:10px;
  max-height:320px;
  overflow:auto;
}

.v216-backup-section table th{
  top:0;
  z-index:2;
}

.v216-backup-auto .hint{
  margin:10px 0 0!important;
}

.v216-backup-pane .v213-backup-times{
  margin-top:2px;
}

.v216-backup-pane .v213-time-list label{
  grid-template-columns:90px 120px auto;
}

button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--v2-focus)!important;
  outline-offset:2px!important;
}

@media(max-width:980px){
  body.v2-menu-open,
  body.menu-open{
    overflow:hidden!important;
  }

  .app.v2-stable-shell,
  body.v2-menu-collapsed .app.v2-stable-shell{
    grid-template-columns:1fr!important;
  }

  .app.v2-stable-shell .workspace{
    min-height:100dvh!important;
    width:100%!important;
  }

  .v2-stable-side.side{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:286px!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    z-index:110!important;
    transform:translateX(-104%)!important;
    transition:transform .22s ease!important;
  }

  body.v2-menu-open .v2-stable-side.side,
  body.menu-open .v2-stable-side.side{
    transform:translateX(0)!important;
  }

  body.v2-menu-open:before,
  body.menu-open:before{
    content:"";
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.45);
    z-index:100;
  }

  .v2-stable-mobile-menu{
    display:none!important;
    align-items:center!important;
    justify-content:center!important;
    flex-direction:column!important;
  }

  .main{
    padding-top:16px!important;
  }

  body.v2-menu-collapsed .v2-stable-side .brand div:not(.logo),
  body.v2-menu-collapsed .v2-stable-side summary{
    display:block!important;
  }

  body.v2-menu-collapsed .v2-stable-side .nav details{
    display:block!important;
  }

  body.v2-menu-collapsed .v2-stable-side .nav button{
    width:100%!important;
    font-size:inherit!important;
    justify-content:flex-start!important;
    padding:0 10px!important;
  }

  .v2-setting-grid,
  .v2-pwa-assets,
  .v2-asset-card,
  .v2-list-row,
  .v23-completion-rows,
  .v216-backup-status,
  .v216-backup-actions,
  .v216-backup-form{
    grid-template-columns:1fr;
  }

  .v216-backup-head,
  .v216-backup-section>header{
    display:grid;
    gap:4px;
  }

  .v216-backup-section{
    padding:12px;
    border-radius:14px;
  }

  .v216-backup-section .table-wrap{
    max-height:none;
  }

  .v216-backup-pane .v213-time-list label{
    grid-template-columns:1fr!important;
  }
}

@media(min-width:981px){
  .app.v2-stable-shell,
  .app.v11.v2-stable-shell{
    display:grid!important;
    grid-template-columns:280px minmax(0,1fr)!important;
    align-items:stretch!important;
  }

  .app.v2-stable-shell .workspace,
  .app.v2-stable-shell > .main{
    grid-column:2!important;
    min-width:0!important;
    width:100%!important;
    margin-left:0!important;
  }

  .app.v2-stable-shell .workspace{
    padding-top:72px!important;
  }

  .app.v2-stable-shell .topbar{
    position:fixed!important;
    top:0!important;
    left:280px!important;
    right:0!important;
    width:auto!important;
    height:72px!important;
    min-height:72px!important;
    margin:0!important;
    z-index:75!important;
    background:rgba(255,255,255,.96)!important;
    border-bottom:1px solid #dfe7f1!important;
    box-shadow:0 8px 24px rgba(15,23,42,.06)!important;
    backdrop-filter:blur(14px)!important;
  }

  body:has(.modal-back.show) .app.v2-stable-shell .topbar{
    z-index:1!important;
  }

  .v2-stable-side.side{
    position:fixed!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:280px!important;
    height:100vh!important;
    min-height:100vh!important;
    max-height:100vh!important;
    z-index:70!important;
  }

  .topbar-title .hamb,
  #menuToggle,
  #menuToggleV1243{
    display:none!important;
  }
}

@media(max-width:980px){
  .topbar-title .hamb,
  #menuToggleV1243.v2-mobile-hamb{
    display:inline-flex!important;
  }
}

/* V2.19 - ajustements mobile apres nouvelle navigation */
@media(max-width:980px){
  html,
  body,
  #app{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  .app.v2-stable-shell,
  body.v2-menu-collapsed .app.v2-stable-shell{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:block!important;
  }

  .app.v2-stable-shell .workspace,
  .app.v2-stable-shell > .main{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  .app.v2-stable-shell .topbar{
    position:sticky!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    z-index:80!important;
  }

  .main{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:12px!important;
  }

  .top{
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:10px!important;
  }

  .top .btnrow,
  .top > .btnrow{
    display:grid!important;
    grid-template-columns:repeat(auto-fit,minmax(138px,1fr))!important;
    gap:8px!important;
    width:100%!important;
  }

  .top .btnrow button,
  .top > button{
    min-width:0!important;
    width:100%!important;
    min-height:38px!important;
    padding:8px 10px!important;
    white-space:normal!important;
    line-height:1.15!important;
  }

  .v2-stable-side.side{
    width:min(286px,86vw)!important;
    padding:10px!important;
  }

  .v2-stable-side .side-inner,
  .v2-stable-side-inner{
    height:calc(100dvh - 20px)!important;
    min-height:calc(100dvh - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    border-radius:18px!important;
  }
}

@media(max-width:540px){
  .top .btnrow,
  .top > .btnrow{
    grid-template-columns:1fr!important;
  }

  .top h1{
    font-size:20px!important;
  }
}

/* V3.0 - menu dense stable : tout doit tenir a zoom navigateur 100%. */
.app.v2-stable-shell .v2-stable-side.side{
  padding:8px!important;
}

.v2-stable-side .side-inner,
.v2-stable-side-inner{
  height:calc(100dvh - 16px)!important;
  min-height:calc(100dvh - 16px)!important;
  max-height:calc(100dvh - 16px)!important;
  padding:8px 8px 9px!important;
  gap:5px!important;
  border-radius:16px!important;
}

.v2-stable-side .brand{
  grid-template-columns:36px minmax(0,1fr)!important;
  gap:8px!important;
  padding:6px 7px!important;
  border-radius:12px!important;
}

.v2-stable-side .brand .logo{
  width:36px!important;
  height:36px!important;
}

.v2-stable-side .brand .logo + div b,
.v2-stable-side .brand .logo + div strong{
  font-size:12px!important;
  line-height:1.05!important;
}

.v2-stable-side .brand .logo + div small{
  font-size:9px!important;
  line-height:1.05!important;
}

.v2-stable-nav.nav,
.v2-stable-side .nav{
  gap:2px!important;
  padding:0 1px 4px 0!important;
}

.v2-stable-nav details,
.v2-stable-side .nav details{
  margin:3px 1px 0!important;
  padding:4px 0 0!important;
}

.v2-stable-nav summary,
.v2-stable-side .nav summary{
  min-height:17px!important;
  margin:0 0 2px!important;
  padding:1px 6px!important;
  font-size:8.5px!important;
  line-height:1!important;
  letter-spacing:.035em!important;
}

.v2-stable-nav button,
.v2-stable-side .nav button{
  min-height:31px!important;
  height:31px!important;
  margin:1px 0!important;
  padding:0 7px!important;
  border-radius:8px!important;
  font-size:11px!important;
  line-height:1!important;
  gap:7px!important;
}

.v2-stable-side .nav .nav-ico,
.v2-stable-side .nav .v217-nav-icon{
  width:23px!important;
  height:23px!important;
  min-width:23px!important;
  flex-basis:23px!important;
  border-radius:7px!important;
}

.v2-stable-side .nav .v217-nav-icon svg{
  width:15px!important;
  height:15px!important;
}

.v2-stable-side .rpi-footer-copy,
.v2-stable-side-inner .rpi-footer-copy{
  margin-top:4px!important;
  margin-bottom:0!important;
  padding:3px 4px 2px!important;
  font-size:7.5px!important;
  line-height:1.15!important;
  opacity:.72!important;
}

.rpi-footer-version{
  display:block;
  margin-top:1px;
  font-size:7px!important;
  line-height:1!important;
  opacity:.55!important;
  word-break:break-all;
}

.v222-sidebar-account{
  margin-top:4px!important;
  padding-top:5px!important;
  gap:4px!important;
}

.v222-menu-lines{
  padding-bottom:3px!important;
}

.v222-menu-line{
  height:27px!important;
  min-height:27px!important;
  padding:0 6px!important;
  gap:8px!important;
  font-size:10px!important;
  border-radius:7px!important;
}

.v222-menu-line svg{
  width:15px!important;
  height:15px!important;
}

.v222-account-main{
  padding-top:5px!important;
  gap:3px!important;
}

.v222-account-person{
  height:39px!important;
  grid-template-columns:33px minmax(0,1fr) 24px!important;
  gap:6px!important;
}

.v222-avatar,
.v222-avatar svg{
  width:31px!important;
  height:31px!important;
}

.v222-avatar i{
  width:7px!important;
  height:7px!important;
  border-width:1px!important;
}

.v222-account-name b{
  font-size:10px!important;
}

.v222-account-name small{
  margin-top:1px!important;
  font-size:8px!important;
}

.v222-chevron{
  width:23px!important;
  height:23px!important;
  border-radius:7px!important;
}

.v222-chevron svg{
  width:14px!important;
  height:14px!important;
}

body.v2-menu-collapsed .v2-stable-side .side-inner{
  padding:5px 4px!important;
  gap:3px!important;
}

/* V3.0 - menu lisible et adaptatif selon la hauteur disponible. */
.app.v2-stable-shell .v2-stable-side.side{
  padding:10px!important;
}

.v2-stable-side .side-inner,
.v2-stable-side-inner{
  height:calc(100dvh - 20px)!important;
  min-height:calc(100dvh - 20px)!important;
  max-height:calc(100dvh - 20px)!important;
  padding:10px!important;
  gap:7px!important;
}

.v2-stable-side .brand{
  grid-template-columns:42px minmax(0,1fr)!important;
  padding:7px 8px!important;
}

.v2-stable-side .brand .logo{
  width:42px!important;
  height:42px!important;
}

.v2-stable-nav.nav,
.v2-stable-side .nav{
  gap:3px!important;
  padding:0 1px 5px 0!important;
}

.v2-stable-nav details,
.v2-stable-side .nav details{
  margin:4px 1px 0!important;
  padding:5px 0 0!important;
}

.v2-stable-nav summary,
.v2-stable-side .nav summary{
  min-height:20px!important;
  margin:0 0 2px!important;
  padding:2px 7px!important;
  font-size:9.5px!important;
  line-height:1.05!important;
}

.v2-stable-nav button,
.v2-stable-side .nav button{
  min-height:36px!important;
  height:36px!important;
  margin:1px 0!important;
  padding:0 8px!important;
  border-radius:9px!important;
  font-size:12px!important;
  gap:8px!important;
}

.v2-stable-side .nav .nav-ico,
.v2-stable-side .nav .v217-nav-icon{
  width:27px!important;
  height:27px!important;
  min-width:27px!important;
  flex-basis:27px!important;
}

.v222-sidebar-account{
  margin-top:5px!important;
  padding-top:6px!important;
}

.v222-account-person{
  height:43px!important;
  grid-template-columns:36px minmax(0,1fr) 26px!important;
}

.v222-avatar,
.v222-avatar svg{
  width:34px!important;
  height:34px!important;
}

.v222-menu-line{
  height:30px!important;
  min-height:30px!important;
  font-size:11px!important;
}

.v2-stable-side .rpi-footer-copy,
.v2-stable-side-inner .rpi-footer-copy{
  font-size:8px!important;
  line-height:1.15!important;
  padding:3px 4px 1px!important;
}

@media(max-height:760px){
  .v2-stable-side .side-inner,
  .v2-stable-side-inner{padding:8px!important;gap:5px!important}
  .v2-stable-side .brand{grid-template-columns:36px minmax(0,1fr)!important;padding:6px 7px!important}
  .v2-stable-side .brand .logo{width:36px!important;height:36px!important}
  .v2-stable-nav summary,.v2-stable-side .nav summary{min-height:17px!important;font-size:8.5px!important;padding:1px 6px!important}
  .v2-stable-nav button,.v2-stable-side .nav button{min-height:32px!important;height:32px!important;font-size:11px!important}
  .v2-stable-side .nav .nav-ico,.v2-stable-side .nav .v217-nav-icon{width:24px!important;height:24px!important;min-width:24px!important;flex-basis:24px!important}
  .v222-account-person{height:38px!important}
  .v222-menu-line{height:26px!important;min-height:26px!important}
}

@media(max-height:690px){
  .v2-stable-side .side-inner,
  .v2-stable-side-inner{padding:6px!important;gap:3px!important}
  .v2-stable-side .brand{grid-template-columns:30px minmax(0,1fr)!important;padding:4px 5px!important}
  .v2-stable-side .brand .logo{width:30px!important;height:30px!important}
  .v2-stable-nav details,.v2-stable-side .nav details{margin-top:2px!important;padding-top:3px!important}
  .v2-stable-nav summary,.v2-stable-side .nav summary{min-height:15px!important;font-size:8px!important}
  .v2-stable-nav button,.v2-stable-side .nav button{min-height:29px!important;height:29px!important;font-size:10.5px!important}
  .v222-sidebar-account{margin-top:3px!important;padding-top:3px!important}
  .v2-stable-side .rpi-footer-copy,.v2-stable-side-inner .rpi-footer-copy{display:none!important}
}


/* === SOURCE : assets/css/mobile-polish.css === */
/* V2.8 - lisibilite erreurs + socle mobile */
html,body{
  max-width:100%;
  overflow-x:hidden;
}

.toast{
  z-index:2147483647!important;
  max-width:min(440px,calc(100vw - 24px))!important;
}

.v28-inline-error,
.v28-inline-success{
  display:grid;
  gap:4px;
  margin:0 0 12px;
  padding:12px 14px;
  border-radius:12px;
  font-weight:800;
  line-height:1.35;
}

.v28-inline-error{
  background:#fef2f2;
  border:1px solid #fecaca;
  color:#991b1b;
}

.v28-inline-success{
  background:#ecfdf5;
  border:1px solid #bbf7d0;
  color:#166534;
}

.v28-inline-error span,
.v28-inline-success span{
  font-size:13px;
  font-weight:700;
}

@media (hover:none){
  button:hover{
    transform:none!important;
    box-shadow:none!important;
  }
}

@media (max-width:760px){
  body{
    background:#f4f7fb!important;
  }

  button,input,select,textarea{
    font-size:16px!important;
  }

  button.small,
  .small{
    font-size:13px!important;
  }

  .main{
    width:100%!important;
    max-width:100vw!important;
    padding:10px!important;
    overflow-x:hidden!important;
  }

  .top{
    gap:8px!important;
    margin-bottom:10px!important;
  }

  .top h1{
    font-size:22px!important;
    line-height:1.15!important;
  }

  .subtitle{
    font-size:13px!important;
    line-height:1.3!important;
  }

  .card,.subcard{
    padding:12px!important;
    border-radius:14px!important;
    margin-bottom:10px!important;
  }

  .toolbar,
  .btnrow,
  .week-nav,
  .service-picker,
  .period-head-actions,
  .filterbar,
  .alert-admin-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    width:100%!important;
    align-items:stretch!important;
  }

  .toolbar > *,
  .btnrow > *,
  .week-nav > *,
  .service-picker > *,
  .period-head-actions > *,
  .filterbar > *,
  .alert-admin-actions > *{
    width:100%!important;
    min-width:0!important;
  }

  .topbar{
    min-height:54px!important;
    padding:8px 10px!important;
  }

  .topbar-title,
  .topbar-brand-text{
    min-width:0!important;
  }

  .topbar-brand-text strong,
  .topbar-brand-text span{
    display:block!important;
    max-width:calc(100vw - 130px)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .modal-back{
    padding:0!important;
    place-items:stretch!important;
    align-items:stretch!important;
  }

  .modal-back .modal{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
  }

  .modal-back .modal-head{
    min-height:54px!important;
    padding:9px 10px!important;
  }

  .modal-back .modal-head h2{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:18px!important;
  }

  .modal-back .modal-body{
    padding:10px!important;
    max-height:calc(100dvh - 54px)!important;
    overflow:auto!important;
    overscroll-behavior:contain;
    /* -webkit-overflow-scrolling:touch retire (meme raison qu'a la regle .modal-body
       plus haut dans ce fichier - voir commentaire, deuxieme regle globale trouvee
       qui reintroduisait le probleme tactile iOS sur la fiche enfant/foyer). */
  }

  .tabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    gap:6px!important;
    padding-bottom:4px!important;
    scrollbar-width:none;
  }

  .tabs::-webkit-scrollbar{
    display:none;
  }

  .tabs button,
  .tab{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }

  .clean-sheet .sheet-savebar{
    /* CORRECTIF SOURCE IOS (2026-09-10) : voir commentaire pres de la regle de base
       .clean-sheet .sheet-savebar plus haut dans ce fichier. */
    position:relative!important;
    z-index:12!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    margin:-10px -10px 10px!important;
    padding:8px 10px!important;
  }

  .clean-sheet .sheet-savebar .clean-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }

  .completion-banner,
  [data-clean-completion]{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }

  .service-summary{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }

  .mini-kpi{
    padding:8px!important;
    border-radius:12px!important;
  }

  .mini-kpi b{
    font-size:16px!important;
    line-height:1.05!important;
  }

  .mini-kpi span{
    font-size:10px!important;
    line-height:1.05!important;
  }

  .person-card{
    display:grid!important;
    grid-template-columns:40px minmax(0,1fr)!important;
    align-items:center!important;
    gap:9px!important;
    padding:10px!important;
  }

  .person-card .avatar{
    width:38px!important;
    height:38px!important;
    border-radius:13px!important;
    font-size:20px!important;
  }

  .person-card .pc-main{
    min-width:0!important;
  }

  .person-card .pc-main b,
  .person-card .pc-main span{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .person-card > button,
  .person-card > a{
    grid-column:1/-1!important;
    width:100%!important;
  }

  .table-wrap{
    max-width:100%!important;
    overflow-x:auto!important;
    
  }

  .v1208-alert-group .alert-family-head{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }

  .alert-family-name,
  .alert-family-count,
  .alert-mandatory-count,
  .alert-head-actions{
    min-width:0!important;
    width:100%!important;
  }

  .alert-head-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
  }

  .alert-head-actions button{
    width:100%!important;
  }
}


/* V4.20 - Menu mobile toujours au-dessus des recherches + suppression bandeau agent */
.agent-pointage-hint{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

@media (max-width:1000px){
  /* La navigation mobile doit rester la couche la plus haute de l'interface métier. */
  body.menu-open .side,
  body.menu-open .premium-side,
  body.menu-open .v2-stable-side.side,
  body.v2-menu-open .side,
  body.v2-menu-open .premium-side,
  body.v2-menu-open .v2-stable-side.side{
    z-index:2147483000!important;
  }

  /* Une liste de suggestions en position fixed ne doit jamais traverser le menu ouvert. */
  body.menu-open .smart-search.v11-search,
  body.v2-menu-open .smart-search.v11-search{
    z-index:0!important;
  }
  body.menu-open .smart-search.v11-search .suggestions,
  body.v2-menu-open .smart-search.v11-search .suggestions,
  body.menu-open .smart-search.v11-search .mobile-suggestions,
  body.v2-menu-open .smart-search.v11-search .mobile-suggestions{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
}


/* V4.21 - Listes Enfants / Foyers : UNE entité = UNE seule ligne, tous écrans */
/*
   Le précédent responsive transformait chaque .person-card en grille 2 lignes
   et mettait les boutons en pleine largeur. Cette règle finale annule ce comportement.
   En cas de manque de place, les textes sont tronqués au lieu de passer à la ligne.
*/
.cards-list > .person-card,
#clist > .person-card,
#flist > .person-card,
#fam_children .person-card,
.modal .cards-list > .person-card{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:7px!important;
  width:100%!important;
  min-width:0!important;
  min-height:40px!important;
  padding:6px 8px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

.cards-list > .person-card .avatar,
#clist > .person-card .avatar,
#flist > .person-card .avatar,
#fam_children .person-card .avatar,
.modal .cards-list > .person-card .avatar{
  flex:0 0 28px!important;
  width:28px!important;
  min-width:28px!important;
  max-width:28px!important;
  height:28px!important;
  min-height:28px!important;
  max-height:28px!important;
  border-radius:9px!important;
  font-size:14px!important;
  line-height:28px!important;
}

.cards-list > .person-card .pc-main,
#clist > .person-card .pc-main,
#flist > .person-card .pc-main,
#fam_children .person-card .pc-main,
.modal .cards-list > .person-card .pc-main{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:6px!important;
  min-width:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}

.cards-list > .person-card .pc-main > *,
#clist > .person-card .pc-main > *,
#flist > .person-card .pc-main > *,
#fam_children .person-card .pc-main > *,
.modal .cards-list > .person-card .pc-main > *{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.cards-list > .person-card .pc-main > b,
#clist > .person-card .pc-main > b,
#flist > .person-card .pc-main > b,
#fam_children .person-card .pc-main > b,
.modal .cards-list > .person-card .pc-main > b{
  flex:0 1 auto!important;
  font-size:12px!important;
}

.cards-list > .person-card .pc-main > span,
.cards-list > .person-card .pc-main > small,
#clist > .person-card .pc-main > span,
#clist > .person-card .pc-main > small,
#flist > .person-card .pc-main > span,
#flist > .person-card .pc-main > small,
#fam_children .person-card .pc-main > span,
#fam_children .person-card .pc-main > small,
.modal .cards-list > .person-card .pc-main > span,
.modal .cards-list > .person-card .pc-main > small{
  flex:0 1 auto!important;
  font-size:10px!important;
}

/* Les actions restent sur LA MÊME ligne, jamais en pleine largeur. */
.cards-list > .person-card > button,
.cards-list > .person-card > a,
#clist > .person-card > button,
#clist > .person-card > a,
#flist > .person-card > button,
#flist > .person-card > a,
#fam_children .person-card > button,
#fam_children .person-card > a,
.modal .cards-list > .person-card > button,
.modal .cards-list > .person-card > a{
  grid-column:auto!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:26px!important;
  height:26px!important;
  padding:4px 7px!important;
  margin:0!important;
  border-radius:8px!important;
  font-size:10px!important;
  line-height:1!important;
  white-space:nowrap!important;
}

/* Si une couche ajoute un badge/alerte directement dans la carte, il reste lui aussi sur la ligne. */
.cards-list > .person-card > :not(.avatar):not(.pc-main):not(button):not(a),
#clist > .person-card > :not(.avatar):not(.pc-main):not(button):not(a),
#flist > .person-card > :not(.avatar):not(.pc-main):not(button):not(a),
#fam_children .person-card > :not(.avatar):not(.pc-main):not(button):not(a),
.modal .cards-list > .person-card > :not(.avatar):not(.pc-main):not(button):not(a){
  flex:0 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:34%!important;
  margin:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Même principe sur les écrans très étroits : on réduit, on ne crée jamais de 2e ligne. */
@media (max-width:520px){
  .cards-list > .person-card,
  #clist > .person-card,
  #flist > .person-card,
  #fam_children .person-card,
  .modal .cards-list > .person-card{
    gap:5px!important;
    padding:5px 6px!important;
    min-height:36px!important;
  }
  .cards-list > .person-card .avatar,
  #clist > .person-card .avatar,
  #flist > .person-card .avatar,
  #fam_children .person-card .avatar,
  .modal .cards-list > .person-card .avatar{
    flex-basis:24px!important;
    width:24px!important;
    min-width:24px!important;
    max-width:24px!important;
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    line-height:24px!important;
    font-size:12px!important;
  }
  .cards-list > .person-card .pc-main,
  #clist > .person-card .pc-main,
  #flist > .person-card .pc-main,
  #fam_children .person-card .pc-main,
  .modal .cards-list > .person-card .pc-main{
    gap:4px!important;
  }
  .cards-list > .person-card .pc-main > b,
  #clist > .person-card .pc-main > b,
  #flist > .person-card .pc-main > b,
  #fam_children .person-card .pc-main > b,
  .modal .cards-list > .person-card .pc-main > b{font-size:11px!important;}
  .cards-list > .person-card .pc-main > span,
  .cards-list > .person-card .pc-main > small,
  #clist > .person-card .pc-main > span,
  #clist > .person-card .pc-main > small,
  #flist > .person-card .pc-main > span,
  #flist > .person-card .pc-main > small,
  #fam_children .person-card .pc-main > span,
  #fam_children .person-card .pc-main > small,
  .modal .cards-list > .person-card .pc-main > span,
  .modal .cards-list > .person-card .pc-main > small{font-size:9px!important;}
  .cards-list > .person-card > button,
  .cards-list > .person-card > a,
  #clist > .person-card > button,
  #clist > .person-card > a,
  #flist > .person-card > button,
  #flist > .person-card > a,
  #fam_children .person-card > button,
  #fam_children .person-card > a,
  .modal .cards-list > .person-card > button,
  .modal .cards-list > .person-card > a{
    height:24px!important;
    min-height:24px!important;
    padding:3px 5px!important;
    font-size:9px!important;
  }
}


/* === SOURCE : assets/css/password-reset.css === */
.login-forgot-password{display:block;width:auto;min-height:0;margin:12px auto 4px;padding:4px 8px;border:0;background:transparent;color:#2563eb;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px;box-shadow:none}
.login-forgot-password:hover{background:transparent;color:#1d4ed8;box-shadow:none;transform:none}
.password-reset-panel{max-width:430px}
.password-reset-help{margin:0 0 16px;color:#475569;line-height:1.5}
.password-reset-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.password-reset-actions button{width:auto}
.password-reset-success{margin:12px 0;padding:12px;border-radius:10px;background:#ecfdf5;color:#166534;line-height:1.45}
.password-reset-back{margin-top:10px}
#resetFields[hidden]{display:none!important}
@media(max-width:600px){.password-reset-actions{flex-direction:column-reverse}.password-reset-actions button{width:100%}}


/* === SOURCE : assets/css/qf-document-preview.css === */
.qf-document-preview{display:flex;flex-direction:column;min-height:0;flex:1;background:#f8fafc}
.qf-preview-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:260px;color:#475569;font-weight:700}
.qf-preview-loading span{width:18px;height:18px;border:3px solid #cbd5e1;border-top-color:#2563eb;border-radius:50%;animation:qfPreviewSpin .8s linear infinite}
@keyframes qfPreviewSpin{to{transform:rotate(360deg)}}
.qf-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:#fff;border-bottom:1px solid #dbe3ee}
.qf-preview-toolbar>div:first-child{display:flex;flex-direction:column;min-width:0}.qf-preview-toolbar b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qf-preview-toolbar span{font-size:11px;color:#64748b}
.qf-preview-buttons{display:flex;gap:6px;flex:none}.qf-preview-buttons a{text-decoration:none}
.qf-preview-image-wrap{display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:16px;min-height:0;flex:1;background:#e9eef5}
.qf-preview-image-wrap img{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 2px 14px #0f172a26}
.qf-preview-frame{display:block;width:100%;min-height:520px;flex:1;border:0;background:#fff}
.qf-preview-word{background:#e9eef5}
.qf-preview-text{margin:0;padding:18px;white-space:pre-wrap;overflow:auto;flex:1;background:#fff;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
.qf-preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:320px;padding:28px;color:#475569}.qf-preview-fallback b{color:#172033}.qf-preview-fallback p{max-width:520px}.qf-preview-file-icon{font-size:54px;margin-bottom:10px}
@media(max-width:800px){.qf-preview-toolbar{align-items:flex-start;flex-direction:column}.qf-preview-buttons{width:100%}.qf-preview-buttons a{flex:1;text-align:center}.qf-preview-frame{min-height:420px}}


/* === SOURCE : assets/css/upload-loader.css === */
/* Périscolaire — loader bloquant pendant les envois de fichiers */
body.peri-upload-in-progress {
  overflow: hidden !important;
  cursor: progress !important;
}

.peri-upload-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483646;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(15, 23, 42, .48);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  cursor: progress;
  touch-action: none;
}

.peri-upload-loader-card {
  width: min(92vw, 390px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 24px 22px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
  text-align: center;
}

.peri-upload-loader-card strong {
  font-size: 1.05rem;
  line-height: 1.25;
  color: #0f172a;
}

.peri-upload-loader-card small {
  line-height: 1.35;
  color: #64748b;
}

.peri-upload-filename {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .88rem;
  font-weight: 700;
  color: #2563eb;
}

.peri-upload-spinner,
.peri-upload-button-spinner {
  display: inline-block;
  flex: 0 0 auto;
  border-radius: 999px;
  border-style: solid;
  animation: peri-upload-spin .75s linear infinite;
}

.peri-upload-spinner {
  width: 42px;
  height: 42px;
  border-width: 4px;
  border-color: #dbeafe;
  border-top-color: #2563eb;
}

.peri-upload-button-spinner {
  width: 1em;
  height: 1em;
  margin-right: .35em;
  vertical-align: -.12em;
  border-width: 2px;
  border-color: rgba(255, 255, 255, .45);
  border-top-color: currentColor;
}

.peri-upload-button-loading,
.peri-upload-button-loading:disabled {
  opacity: .8 !important;
  cursor: progress !important;
  pointer-events: none !important;
}

@keyframes peri-upload-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .peri-upload-spinner,
  .peri-upload-button-spinner {
    animation-duration: 1.5s;
  }
}


/* === SOURCE : assets/css/action-guard.css === */
/* V4.12 — feedback discret pendant une action serveur. */
.peri-action-pending{cursor:wait!important;opacity:.72;position:relative}
.peri-action-pending::after{content:"";display:inline-block;width:.8em;height:.8em;margin-left:.45em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.1em;animation:periActionSpin .7s linear infinite}
@keyframes periActionSpin{to{transform:rotate(360deg)}}


/* v4.41.5 - Espace Parents > Mon foyer : contenu direct, sans sous-navigation ni modale de consultation. */
.parent-family-section{display:block!important;margin-bottom:14px!important;}
.parent-family-section[id]{scroll-margin-top:90px;}

/* LWS3.1.16 - navigation icons: canonical rendering, independent of JS enhancement order */
.v2-stable-nav .group-dot,
.v2-stable-side .nav .group-dot,
.premium-nav details>summary .group-dot,
.side .nav details>summary .group-dot{
  width:18px!important;height:18px!important;min-width:18px!important;
  display:inline-grid!important;place-items:center!important;
  margin:0 8px 0 0!important;border-radius:7px!important;
  background:rgba(255,255,255,.09)!important;opacity:1!important;
  color:#cbd5e1!important;font-size:0!important;
}
.side .nav details>summary .group-dot svg{width:13px!important;height:13px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.side .nav details>summary .group-dot[data-v236-icon="daily"]{color:#fbbf24!important}
.side .nav details>summary .group-dot[data-v236-icon="extra"]{color:#60a5fa!important}
.side .nav details>summary .group-dot[data-v236-icon="family"]{color:#86efac!important}
.side .nav details>summary .group-dot[data-v236-icon="manage"]{color:#fda4af!important}
.side .nav details>summary .group-dot[data-v236-icon="config"]{color:#c4b5fd!important}
.side .nav button .nav-ico.svgico,
.side .nav button .v217-nav-icon{display:grid!important;place-items:center!important;visibility:visible!important;opacity:1!important}
.side .nav button .nav-ico.svgico svg,
.side .nav button .v217-nav-icon svg{width:19px!important;height:19px!important;display:block!important;visibility:visible!important;opacity:1!important;fill:currentColor!important}

/* Accueil direction — structure compacte et responsive */
.direction-dashboard{max-width:1440px;margin:0 auto}
.direction-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}
.direction-head h1{margin:0;font-size:clamp(24px,2.2vw,31px);letter-spacing:-.03em}
.direction-head .subtitle{margin:2px 0 0}
.direction-date{display:inline-flex;align-items:center;min-height:38px;padding:7px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel);font-size:13px;font-weight:800;white-space:nowrap}
.direction-section{margin:0 0 12px}
.direction-section>h2,.direction-section-head h2{margin:0;font-size:15px;letter-spacing:-.01em}
.direction-summary{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(240px,1.4fr);gap:10px}
.direction-kpi{min-width:0;min-height:72px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--text);box-shadow:0 3px 12px rgba(18,32,54,.035);text-align:left}
button.direction-kpi{width:100%;font-weight:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}
button.direction-kpi:hover{transform:none;box-shadow:0 4px 14px rgba(18,32,54,.08);border-color:#cbd8e8}
button.direction-kpi:focus-visible,.direction-backup-actions button:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.direction-kpi-alert{border-color:#fecaca;background:#fffafa}
.direction-kpi-icon,.direction-service-icon{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--soft);font-size:18px}
.direction-kpi-alert .direction-kpi-icon{background:#fef2f2}
.direction-kpi-copy{display:block;min-width:0}
.direction-kpi-copy>strong{display:block;font-size:23px;line-height:1.05}
.direction-kpi-copy>span{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:750}
.direction-kpi-birthday .direction-kpi-copy>span:first-child{margin:0 0 3px}
.direction-kpi-birthday .direction-kpi-copy>div{display:flex;gap:7px;align-items:baseline;flex-wrap:wrap}
.direction-kpi-birthday .direction-kpi-copy>div strong{font-size:14px}
.direction-kpi-birthday .direction-kpi-copy>div span{margin:0;font-size:12px;color:var(--muted)}
.direction-kpi-birthday .birthday-empty-43926{font-size:21px;line-height:1}
.direction-services{padding:12px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.72)}
.direction-services>h2{margin-bottom:8px}
.direction-services-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.direction-service-tile{width:100%;min-width:0;min-height:58px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--text);font:inherit;text-align:left;cursor:pointer;box-shadow:none;transition:border-color .15s,background .15s}
.direction-service-tile:hover{transform:none;border-color:#b9c9dc;background:var(--soft)}
.direction-service-tile:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.direction-service-tile.is-closed{background:var(--panel)}
.direction-service-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.direction-service-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;color:#334155}
.direction-service-state{font-size:14px;line-height:1.2;color:var(--text)}
.direction-service-state .kpi-service-closed{font-size:12px;font-weight:750;color:var(--muted)}
.direction-birthdays,.direction-backups{padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 3px 12px rgba(18,32,54,.025)}
.direction-birthdays>h2{margin-bottom:5px}
.direction-birthday-list{display:grid}
.direction-birthday-line{display:grid;grid-template-columns:minmax(100px,auto) minmax(150px,1fr) minmax(70px,auto);gap:10px;align-items:center;min-height:34px;padding:5px 0;border-top:1px solid rgba(15,23,42,.07)}
.direction-birthday-line:first-child{border-top:0}
.direction-birthday-line time{font-size:12px;font-weight:800;color:#166534}
.direction-birthday-line b{font-size:13px}
.direction-birthday-line small{color:var(--muted);font-size:12px;text-align:right}
.direction-backups{margin-top:0}
.direction-backups.has-alert{border-color:#fecaca}
.direction-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.direction-section-head small{display:block;margin-top:2px;font-size:11px}
.direction-backup-badges,.direction-backup-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.direction-backup-message{margin:7px 0;padding:7px 9px;border-radius:10px;font-size:12px;line-height:1.35}
.direction-backup-actions{margin-top:7px}
.direction-backup-actions button{min-height:36px}
@media(max-width:900px){
  .direction-services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:600px){
  .direction-head{align-items:flex-end;margin-bottom:9px}
  .direction-head .subtitle{display:none}
  .direction-date{min-height:34px;padding:5px 8px;font-size:11px}
  .direction-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .direction-kpi{min-height:62px;padding:8px 9px;gap:7px;border-radius:13px}
  .direction-kpi-icon{width:30px;height:30px;border-radius:9px;font-size:16px}
  .direction-kpi-copy>strong{font-size:20px}
  .direction-kpi-copy>span{font-size:11px}
  .direction-kpi-birthday{grid-column:1/-1;min-height:56px}
  .direction-services{padding:9px;border-radius:14px}
  .direction-services>h2{margin-bottom:6px}
  .direction-services-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .direction-service-tile{min-height:52px;padding:7px 8px;border-radius:11px}
  .direction-service-icon{width:29px;height:29px;border-radius:9px;font-size:15px}
  .direction-service-name{font-size:11px}
  .direction-service-state,.direction-service-state .kpi-service-closed{font-size:11px}
  .direction-birthdays,.direction-backups{padding:10px 11px;border-radius:14px}
  .direction-birthday-line{grid-template-columns:auto 1fr;gap:4px 8px;padding:6px 0}
  .direction-birthday-line small{grid-column:2;text-align:left}
  .direction-section-head{align-items:flex-start}
  .direction-backup-badges{justify-content:flex-end}
}
@media(max-width:380px){
  .direction-head h1{font-size:22px}
  .direction-date{font-size:10px}
  .direction-service-name{white-space:normal;line-height:1.15}
}

/* V4.39.65 — Mes réservations parent : styles consolidés, contraste et modale */
.parent-month-head-43930{margin-bottom:8px}.parent-month-card-43930{padding:14px;overflow:hidden;border-radius:16px}.parent-month-toolbar-43930{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;max-width:560px;margin:0 auto 10px}.parent-month-toolbar-43930 strong{text-align:center;font-size:1.05rem}.parent-month-toolbar-43930 button{min-height:42px;padding:6px}.pm-child-select-wrap-43960,.pm-mobile-date-strip-43960,.pm-mobile-days-43960{display:none}.parent-month-children-43930{display:flex;align-items:center;gap:12px;margin:4px 0 8px}.parent-child-chips-43930{display:flex;gap:7px;overflow:auto}.parent-child-chip-43930{display:flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text)}.parent-child-avatar-43930{width:27px;height:27px;display:inline-grid;place-items:center;border-radius:50%;background:#e7f0ff;color:#174ea6;font-weight:850}.parent-month-help-btn-43965{min-height:34px;padding:6px 10px;margin:3px 0 7px;border:1px solid #b7cdf6;border-radius:10px;background:#eef5ff;color:#174ea6;font-size:.75rem;box-shadow:none}.parent-month-help-btn-43965:hover{transform:none;box-shadow:none;background:#e3efff}.parent-month-legend-43930{display:flex;gap:12px;align-items:center;overflow:auto;white-space:nowrap;font-size:.78rem;padding:4px 2px 8px;color:#475569}.pm-closed-key-43930:before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;background:#94a3b8;margin-right:5px}.parent-month-scroll-43930{width:100%;overflow:auto;border:1px solid #cfd9e7;border-radius:13px;background:var(--panel);overscroll-behavior:contain}.parent-month-table-43930 th,.parent-month-table-43930 td{box-sizing:border-box;border-right:1px solid #dbe3ed;border-bottom:1px solid #dbe3ed}.parent-month-table-43930 thead th{position:sticky;top:0;z-index:4;width:64px;min-width:64px;height:58px;background:var(--panel);text-align:center}.parent-month-table-43930 thead th span{display:block;font-size:.66rem;color:#526174;font-weight:800}.parent-month-table-43930 thead th b{font-size:.94rem}.pm-child-sticky-43930{position:sticky!important;left:0;z-index:5;width:108px;min-width:108px;background:var(--panel);text-align:left;padding:7px}.parent-month-table-43930 thead .pm-child-sticky-43930{z-index:7;text-align:center}.parent-month-table-43930 tbody .pm-child-sticky-43930{height:72px}.parent-month-table-43930 tbody .pm-child-sticky-43930 b,.parent-month-table-43930 tbody .pm-child-sticky-43930 small{display:block;overflow:hidden;text-overflow:ellipsis}.parent-month-table-43930 tbody .pm-child-sticky-43930 small{font-size:.66rem;color:#526174}.pm-day-cell-43930,.pm-cell-closed-43930{width:64px;min-width:64px;height:72px;text-align:center;vertical-align:middle}.pm-day-cell-43930{cursor:pointer;background:var(--panel)}.pm-day-cell-43930:focus-visible{outline:3px solid #2563eb;outline-offset:-3px}.pm-icons-43930{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:3px}.pm-icon{display:flex;align-items:center;justify-content:center;gap:3px;min-height:19px;border-radius:6px;font-size:.8rem;opacity:.22}.pm-icon small{display:none;font-size:.52rem;font-weight:750}.pm-icon.is-on{opacity:1;background:#e4f6ea;color:#11612f}.pm-icon.is-on small{display:inline}.pm-extra-43937.pm-mercredi.is-on{background:#e4efff;color:#174ea6}.pm-extra-43937.pm-alsh.is-on{background:#e6f6e8;color:#166534}.pm-cell-closed-43930,.pm-head-closed-43930{background:#edf1f5;color:#64748b}.pm-cell-closed-43930 small{display:none}.pm-today-43930{box-shadow:inset 0 0 0 2px #2563eb}.parent-month-hint-43930{margin-top:8px;font-size:.75rem}.parent-month-actions-43931{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.parent-month-action-43931{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;text-align:left;min-height:66px;padding:9px 11px;border:1px solid #cfd9e7;border-radius:13px;background:var(--panel);color:var(--text)}.parent-month-action-43931>span{grid-row:1/3;font-size:1.35rem}.parent-month-action-43931 b{font-size:.84rem}.parent-month-action-43931 small{font-size:.68rem;color:#526174}
/* Modale d'une journée */
.modal:has(.parent-day-editor-43930){width:min(560px,calc(100% - 20px));border-radius:22px}.modal:has(.parent-day-editor-43930) .modal-head{padding:14px 16px;background:#f8fafc}.modal:has(.parent-day-editor-43930) .modal-head h2{font-size:1.02rem;letter-spacing:-.01em}.modal:has(.parent-day-editor-43930) .modal-body{padding:14px}.parent-day-editor-43930{display:grid;gap:8px}.parent-day-editor-intro-43965{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:0 2px 3px}.parent-day-editor-intro-43965 b{font-size:.9rem}.parent-day-editor-intro-43965 small{font-size:.7rem;color:#526174}.parent-day-service-43930{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:58px;padding:8px 10px;border:1px solid #cfd9e7;border-radius:13px;background:#fff;cursor:pointer}.parent-day-service-43930:hover{border-color:#a9b9ce;background:#f8fafc}.parent-day-service-43930.is-on{border-color:#9ed4ae;background:#f0faf3}.parent-day-service-icon-43965{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf2f7;font-size:1.1rem}.parent-day-service-43930.is-on .parent-day-service-icon-43965{background:#dff3e5}.parent-day-service-name{min-width:0}.parent-day-service-name b,.parent-day-service-name small{display:block}.parent-day-service-name b{font-size:.88rem;color:#172033}.parent-day-service-name small{margin-top:2px;font-size:.68rem;color:#526174}.parent-day-state-43930{font-size:.7rem;font-weight:850;padding:5px 8px;border-radius:999px;background:#e9eef4;color:#334155}.parent-day-state-43930.on{background:#d9f2e1;color:#11612f}.parent-day-service-43930 input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}.parent-day-rules-43941{margin-top:4px;border:1px solid #cfd9e7;border-radius:12px;background:#f8fafc;overflow:hidden}.parent-day-rules-43941 summary{list-style:none;cursor:pointer;padding:9px 11px;font-size:.76rem;font-weight:800;color:#174ea6}.parent-day-rules-43941 summary::-webkit-details-marker{display:none}.parent-day-rules-43941 summary:after{content:'›';float:right;font-size:1rem;transition:transform .15s}.parent-day-rules-43941[open] summary:after{transform:rotate(90deg)}.parent-day-rules-content-43965{padding:0 11px 10px;border-top:1px solid #dbe3ed}.parent-day-rule-43941{display:grid;grid-template-columns:100px 1fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #e2e8f0}.parent-day-rule-43941>span{font-size:.75rem;font-weight:800}.parent-day-rule-43941 small{font-size:.7rem;color:#475569}.parent-day-rules-content-43965 p{margin:8px 0 0;font-size:.69rem;color:#526174}.pm-help-popover-43965{display:grid;gap:10px;color:#334155;line-height:1.45}.pm-help-popover-43965 p{margin:0;padding:10px 11px;border-radius:11px;background:#f8fafc;border:1px solid #dbe3ed}.pm-help-landscape-43965{background:#eef5ff!important;border-color:#bfd3f8!important;color:#174ea6!important}
@media(max-width:700px) and (orientation:portrait){
 body:has(.parent-mobile-sticky-43960){overflow:hidden!important;background:#eef2f7!important}body:has(.parent-mobile-sticky-43960) .main{height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;padding:0!important;background:#eef2f7!important}.parent-mobile-sticky-43960{position:fixed!important;inset:0 0 auto 0!important;z-index:100!important;padding:7px 9px 6px!important;background:#fff!important;border-bottom:1px solid #cbd5e1!important;box-shadow:0 4px 14px rgba(15,23,42,.12)!important}.parent-mobile-sticky-43960 .parent-month-head-43930{margin:0 0 4px!important}.parent-mobile-sticky-43960 .parent-month-head-43930 h1{margin:0!important;font-size:.98rem!important;line-height:1.15!important;color:#111827!important}.parent-mobile-sticky-43960 .parent-month-head-43930 .subtitle{display:none}.parent-mobile-sticky-43960 .parent-month-toolbar-43930{grid-template-columns:36px minmax(0,1fr) 36px!important;gap:5px!important;margin:0 0 4px!important;padding:3px!important;border:1px solid #cbd5e1!important;border-radius:11px!important;background:#f1f5f9!important}.parent-mobile-sticky-43960 .parent-month-toolbar-43930 button{width:34px!important;height:32px!important;min-height:32px!important;padding:0!important;border:1px solid #d3dce8!important;border-radius:8px!important;background:#fff!important;color:#172033!important;box-shadow:none!important;font-size:1.15rem!important}.parent-mobile-sticky-43960 .parent-month-toolbar-43930 strong{font-size:.86rem!important;font-weight:850!important;color:#172033!important}.pm-child-select-wrap-43960{display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;align-items:center;gap:6px!important;margin:0 0 4px!important;font-size:.67rem!important;font-weight:800!important;color:#475569!important}.pm-child-select-wrap-43960 select{height:33px!important;min-height:33px!important;padding:3px 28px 3px 8px!important;border:1px solid #cbd5e1!important;border-radius:9px!important;background:#fff!important;color:#172033!important;font-size:.76rem!important;font-weight:750!important}.pm-mobile-date-strip-43960{display:flex!important;gap:4px!important;overflow-x:auto!important;scrollbar-width:none;padding:1px 0 2px!important}.pm-mobile-date-strip-43960::-webkit-scrollbar{display:none}.pm-date-chip-43960{flex:0 0 41px!important;width:41px!important;min-height:39px!important;height:39px!important;padding:2px!important;border:1px solid #d8e0ea!important;border-radius:9px!important;background:#f8fafc!important;color:#334155!important}.pm-date-chip-43960 small,.pm-date-chip-43960 b{display:block}.pm-date-chip-43960 small{font-size:.55rem!important;color:#526174!important}.pm-date-chip-43960 b{font-size:.82rem!important}.pm-date-chip-43960.is-active{border-color:#2563eb!important;background:#2563eb!important;color:#fff!important;box-shadow:0 2px 7px rgba(37,99,235,.24)!important}.pm-date-chip-43960.is-active small{color:#eaf2ff!important}.pm-landscape-hint-43964{display:flex;align-items:center;justify-content:center;min-height:17px;margin:2px 0 0;color:#475569;font-size:.54rem;font-weight:700;line-height:1.1;white-space:nowrap}.parent-month-card-43930{display:block!important;position:fixed!important;top:168px!important;left:7px!important;right:7px!important;bottom:calc(78px + var(--peri-banner-lift,0px))!important;z-index:10!important;margin:0!important;padding:0 1px 10px!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior-y:contain!important}.parent-desktop-children-43960,.parent-month-scroll-43930,.parent-month-legend-43930,.parent-month-hint-43930{display:none!important}.parent-month-help-btn-43965{position:sticky;top:0;z-index:4;min-height:30px;margin:0 0 5px;padding:4px 8px;background:#e7f0ff;border-color:#a9c5f5;color:#174ea6;font-size:.67rem}.pm-mobile-days-43960{display:block!important;padding:0 0 6px!important}.pm-mobile-day-43960{scroll-margin-top:36px!important;margin:0 0 6px!important;padding:7px!important;border:1px solid #cbd5e1!important;border-radius:12px!important;background:#fff!important;box-shadow:0 2px 6px rgba(15,23,42,.06)!important}.pm-mobile-day-head-43964{display:grid;grid-template-columns:29px minmax(0,1fr) 29px;align-items:center;gap:5px;margin:0 0 5px}.pm-mobile-day-43960 .pm-mobile-day-head-43964 h2{margin:0!important;text-align:center;font-size:.78rem!important;line-height:1.15;color:#172033!important}.pm-day-nav-43964{display:grid;place-items:center;width:29px;height:29px;min-height:29px;padding:0;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#172033;font-size:1.1rem;font-weight:900;box-shadow:none}.pm-mobile-services-43960{display:grid;gap:5px}.pm-mobile-service-43960{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-height:47px;padding:5px 7px;text-align:left;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#172033;box-shadow:none}.pm-mobile-service-43960.is-on{border-color:#8fcaa2;background:#edf9f1}.pm-mobile-svc-icon-43960{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#e8edf3;font-size:1.03rem;line-height:1}.pm-mobile-service-43960.is-on .pm-mobile-svc-icon-43960{background:#d8f0df}.pm-mobile-svc-copy-43960 b,.pm-mobile-svc-copy-43960 small{display:block}.pm-mobile-svc-copy-43960 b{font-size:.79rem;color:#172033}.pm-mobile-svc-copy-43960 small{margin-top:1px;font-size:.62rem;color:#526174}.pm-mobile-state-43960{font-size:.63rem;font-weight:850;padding:4px 6px;border-radius:999px;background:#e8edf3;color:#334155}.pm-mobile-service-43960.is-on .pm-mobile-state-43960{background:#cfeeda;color:#11612f}.pm-mobile-closed-43960{min-height:43px;display:flex;align-items:center;gap:8px;padding:7px;border:1px solid #d6dde7;border-radius:9px;background:#e9edf2;color:#475569;font-size:.71rem}.pm-mobile-extras-43960{display:flex;gap:6px;margin-top:6px}.pm-mobile-extras-43960 .pm-icon{opacity:1;padding:5px 8px}.parent-month-actions-43931{position:fixed!important;left:7px!important;right:7px!important;bottom:calc(max(5px,env(safe-area-inset-bottom)) + var(--peri-banner-lift,0px))!important;z-index:120!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;margin:0!important;padding:5px!important;border:1px solid #cbd5e1!important;border-radius:13px!important;background:#fff!important;box-shadow:0 5px 18px rgba(15,23,42,.16)!important}.parent-month-action-43931{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;min-height:57px!important;padding:4px 2px!important;text-align:center!important;border-color:#d5dde8!important}.parent-month-action-43931>span{font-size:1.05rem!important}.parent-month-action-43931 b{font-size:.61rem!important;line-height:1.08!important}.parent-month-action-43931 small{display:none!important}.parent-month-help-btn-43965 span{display:none}
 /* Le FAB de menu ne chevauche plus le bandeau ou les actions de réservation. */
 #v220menufab,.v220menufab,#v220MenuFab,.v220-menu-fab{position:fixed!important;top:7px!important;right:8px!important;left:auto!important;bottom:auto!important;z-index:140!important;width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:10px!important}.parent-mobile-sticky-43960 .parent-month-head-43930 h1{padding-right:42px!important}
 .modal:has(.parent-day-editor-43930){width:calc(100% - 14px)!important;max-height:88dvh!important;border-radius:18px!important}.modal:has(.parent-day-editor-43930) .modal-head{padding:11px 12px!important}.modal:has(.parent-day-editor-43930) .modal-head h2{font-size:.9rem!important}.modal:has(.parent-day-editor-43930) .modal-body{padding:10px!important}.parent-day-editor-intro-43965{display:block}.parent-day-editor-intro-43965 small{display:block;margin-top:2px}.parent-day-service-43930{min-height:54px;padding:7px 8px}.parent-day-rules-43941 summary{min-height:38px;display:flex;align-items:center}.parent-day-rule-43941{grid-template-columns:90px 1fr}
}
@media(max-width:370px) and (orientation:portrait){.parent-month-card-43930{top:166px!important}.pm-landscape-hint-43964{font-size:.5rem}.pm-date-chip-43960{flex-basis:39px!important;width:39px!important}.parent-day-state-43930{font-size:.64rem}}
@media(max-width:900px) and (orientation:landscape){.parent-month-head-43930 .subtitle,.parent-month-hint-43930,.parent-month-help-btn-43965{display:none}.parent-mobile-sticky-43960{display:grid!important;grid-template-columns:minmax(260px,1fr) minmax(190px,260px);align-items:center;gap:10px;margin-bottom:7px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:12px;background:#fff}.pm-child-select-wrap-43960{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:8px;margin:0}.pm-mobile-date-strip-43960,.pm-mobile-days-43960,.pm-landscape-hint-43964,.pm-day-nav-43964{display:none!important}.parent-desktop-children-43960{display:none}.parent-month-toolbar-43930{width:100%;max-width:none;margin:0;grid-template-columns:42px minmax(140px,1fr) 42px;gap:7px}.parent-month-toolbar-43930 button{width:42px;height:40px;min-height:40px;padding:0;border-radius:10px;font-size:1.35rem}.parent-month-scroll-43930{max-height:calc(100dvh - 190px);scroll-behavior:smooth}.parent-month-table-43930 thead th{width:58px;min-width:58px;height:44px}.pm-day-cell-43930,.pm-cell-closed-43930{width:58px;min-width:58px;height:54px}.pm-child-sticky-43930{width:104px;min-width:104px}.parent-month-actions-43931{margin-top:6px;gap:6px}.parent-month-action-43931{min-height:48px}.parent-month-action-43931 small{display:none}}

/* LWS3.1.22g — finition planning parent stabilisee */
.pm-landscape-hint-43964{display:none!important}
@media(min-width:701px){
  .parent-month-toolbar-43930{grid-template-columns:44px minmax(190px,260px) 44px!important;justify-content:center!important;gap:8px!important;margin:0 auto 10px!important}
  .parent-month-toolbar-43930 strong{display:flex!important;align-items:center!important;justify-content:center!important;min-height:42px!important;padding:0 18px!important;border:1px solid #c7d2e0!important;border-radius:11px!important;background:#fff!important;color:#172033!important;font-size:.92rem!important;font-weight:850!important;box-shadow:0 1px 3px rgba(15,23,42,.07)!important}
  .parent-month-toolbar-43930 button{width:44px!important;height:42px!important;min-height:42px!important;border:1px solid #c7d2e0!important;border-radius:11px!important;background:#fff!important;color:#172033!important;font-size:1.25rem!important;box-shadow:0 1px 3px rgba(15,23,42,.07)!important}
}
@media(max-width:700px) and (orientation:portrait){
  .pm-landscape-hint-43964{display:flex!important;align-items:center!important;justify-content:center!important;min-height:15px!important;margin:1px 0 0!important;color:#64748b!important;font-size:.52rem!important;font-weight:650!important;line-height:1.05!important;white-space:nowrap!important}
  .pm-mobile-day-head-43964{display:block!important;margin:0 0 5px!important;width:100%!important}
  .pm-mobile-day-43960 .pm-mobile-day-head-43964 h2{display:block!important;width:100%!important;max-width:none!important;margin:0!important;text-align:left!important;padding:1px 2px!important;font-size:.78rem!important;line-height:1.2!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important}
  .pm-day-nav-43964{display:none!important}
}
@media(max-width:900px) and (orientation:landscape){.pm-landscape-hint-43964{display:none!important}}

/* LWS3.1.22h — portrait mobile haute densite : davantage de jours visibles sans changer le fonctionnement */
@media(max-width:700px) and (orientation:portrait){
  /* Bandeau fixe plus compact */
  .parent-mobile-sticky-43960{padding:5px 7px 4px!important;gap:3px!important}
  .parent-mobile-sticky-43960 .parent-month-head-43930{margin-bottom:2px!important}
  .parent-mobile-sticky-43960 .parent-month-head-43930 h1{font-size:.92rem!important;line-height:1.05!important;margin:0!important}
  .parent-month-toolbar-43930{margin-bottom:2px!important}
  .parent-month-toolbar-43930 strong{min-height:29px!important;height:29px!important;font-size:.69rem!important}
  .parent-month-toolbar-43930 button{width:29px!important;height:29px!important;min-height:29px!important}
  .pm-child-select-wrap-43960{margin-bottom:2px!important}
  .pm-child-select-wrap-43960 select{height:29px!important;min-height:29px!important;font-size:.71rem!important}
  .pm-mobile-date-strip-43960{gap:3px!important;padding:0!important}
  .pm-date-chip-43960{flex-basis:37px!important;width:37px!important;min-height:34px!important;height:34px!important;border-radius:8px!important}
  .pm-date-chip-43960 small{font-size:.5rem!important;line-height:1!important}
  .pm-date-chip-43960 b{font-size:.73rem!important;line-height:1.05!important}
  .pm-landscape-hint-43964{min-height:12px!important;margin:0!important;font-size:.48rem!important}

  /* La zone centrale gagne de la hauteur */
  .parent-month-card-43930{top:151px!important;bottom:66px!important;padding-bottom:5px!important}
  .parent-month-help-btn-43965{min-height:25px!important;margin-bottom:3px!important;padding:2px 7px!important;font-size:.6rem!important;border-radius:8px!important}

  /* Jours et prestations plus denses */
  .pm-mobile-day-43960{margin-bottom:4px!important;padding:5px 6px!important;border-radius:10px!important;box-shadow:0 1px 4px rgba(15,23,42,.05)!important}
  .pm-mobile-day-head-43964{margin-bottom:3px!important}
  .pm-mobile-day-43960 .pm-mobile-day-head-43964 h2{padding:0 1px!important;font-size:.69rem!important;line-height:1.08!important}
  .pm-mobile-services-43960{gap:3px!important}
  .pm-mobile-service-43960{grid-template-columns:23px minmax(0,1fr) auto!important;gap:5px!important;min-height:36px!important;padding:3px 6px!important;border-radius:8px!important}
  .pm-mobile-svc-icon-43960{width:22px!important;height:22px!important;border-radius:6px!important;font-size:.86rem!important}
  .pm-mobile-svc-copy-43960 b{font-size:.69rem!important;line-height:1.02!important}
  .pm-mobile-svc-copy-43960 small{margin-top:0!important;font-size:.54rem!important;line-height:1.02!important}
  .pm-mobile-state-43960{padding:3px 5px!important;font-size:.54rem!important;line-height:1!important}
  .pm-mobile-closed-43960{min-height:31px!important;padding:4px 6px!important;border-radius:8px!important;font-size:.62rem!important}
  .pm-mobile-extras-43960{gap:4px!important;margin-top:4px!important}

  /* Barre d'actions basse plus fine, toujours fixe */
  .parent-month-actions-43931{padding:4px!important;gap:3px!important;border-radius:11px!important}
  .parent-month-action-43931{min-height:49px!important;padding:3px 1px!important}
  .parent-month-action-43931>span{font-size:.9rem!important}
  .parent-month-action-43931 b{font-size:.56rem!important}
}
@media(max-width:370px) and (orientation:portrait){
  .parent-month-card-43930{top:149px!important;bottom:64px!important}
  .pm-date-chip-43960{flex-basis:35px!important;width:35px!important}
}

/* LWS3.1.22q — actualisation integree au contenu, sans superposition */
.main{position:relative!important}
.visible-app-refresh{
  position:relative!important;
  float:right!important;
  z-index:2!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  min-height:30px!important;
  margin:0 0 6px 10px!important;
  padding:5px 9px!important;
  border:1px solid #d7e2ef!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#526174!important;
  box-shadow:0 1px 3px rgba(15,23,42,.06)!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1!important;
}
.visible-app-refresh:hover{background:#f8fbff!important;color:#1d4ed8!important;border-color:#bfdbfe!important;transform:none!important}
.visible-app-refresh-icon{font-size:15px!important;line-height:1!important}
.visible-app-refresh.is-loading .visible-app-refresh-icon{animation:visibleRefreshSpin .7s linear infinite}
@keyframes visibleRefreshSpin{to{transform:rotate(360deg)}}
@media(max-width:980px){
  .visible-app-refresh{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;margin:0 0 5px 7px!important;padding:0!important;border-radius:9px!important}
  .visible-app-refresh-label{display:none!important}
}


/* LWS3.1.22r — bouton Actualiser dans le menu lateral */
.visible-app-refresh.menu-refresh{
  position:static!important;
  inset:auto!important;
  float:none!important;
  width:100%!important;
  min-width:0!important;
  height:auto!important;
  min-height:34px!important;
  margin:8px 0 0!important;
  padding:8px 10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  border:0!important;
  border-radius:8px!important;
  box-shadow:none!important;
  background:transparent!important;
  color:inherit!important;
  font:inherit!important;
  font-size:inherit!important;
  line-height:1.2!important;
  z-index:auto!important;
}
.visible-app-refresh.menu-refresh:hover{transform:none!important}
.visible-app-refresh.menu-refresh .visible-app-refresh-icon{font-size:16px!important;line-height:1!important;flex:0 0 auto!important}
.visible-app-refresh.menu-refresh .visible-app-refresh-label{display:inline!important}
@media(max-width:980px){
  .visible-app-refresh.menu-refresh{
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:38px!important;
    margin:8px 0 0!important;
    padding:9px 10px!important;
    border-radius:8px!important;
  }
  .visible-app-refresh.menu-refresh .visible-app-refresh-label{display:inline!important}
}

/* LWS3.1.22s — Actualiser aligne sur les entrees du menu, rendu discret */
.visible-app-refresh.menu-refresh{
  min-height:30px!important;
  margin:5px 0 0!important;
  padding:6px 10px!important;
  gap:7px!important;
  border-radius:7px!important;
  background:rgba(255,255,255,.025)!important;
  color:#9eacc0!important;
  font-size:12px!important;
  font-weight:650!important;
  opacity:.78!important;
}
.visible-app-refresh.menu-refresh:hover{
  background:rgba(255,255,255,.055)!important;
  color:#dbe4f0!important;
  opacity:1!important;
  box-shadow:none!important;
}
.visible-app-refresh.menu-refresh .visible-app-refresh-icon{
  width:16px!important;
  height:16px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:13px!important;
  opacity:.82!important;
}
.visible-app-refresh.menu-refresh .visible-app-refresh-label{
  font-size:12px!important;
  font-weight:650!important;
}
body.menu-collapsed .visible-app-refresh.menu-refresh{
  justify-content:center!important;
  padding:6px!important;
}
body.menu-collapsed .visible-app-refresh.menu-refresh .visible-app-refresh-label{display:none!important}
@media(max-width:980px){
  .visible-app-refresh.menu-refresh{
    min-height:32px!important;
    margin-top:5px!important;
    padding:7px 10px!important;
    font-size:12px!important;
  }
}

/* LWS3.1.22t — Planning de ma classe : supprime le double affichage table + vue mobile.
   Desktop/tablette : tableau hebdomadaire uniquement.
   Mobile <= 700 px : vue mobile uniquement.
   Impression : tableau uniquement. */
.tp-mobile{
  display:none!important;
}
@media(max-width:700px){
  .tp-scroll{
    display:none!important;
  }
  .tp-mobile{
    display:grid!important;
    gap:10px!important;
  }
  .tp-mobile-day{
    margin:0!important;
    border:1px solid var(--line,#dbe3ef)!important;
    border-radius:12px!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .tp-mobile-day>h3{
    margin:0!important;
    padding:9px 10px!important;
    border-bottom:1px solid var(--line,#dbe3ef)!important;
    background:#f8fafc!important;
    font-size:.88rem!important;
    line-height:1.2!important;
    text-transform:capitalize!important;
  }
  .tp-mobile-list{
    display:grid!important;
  }
  .tp-mobile-child{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    padding:8px 10px!important;
    border-bottom:1px solid #edf1f5!important;
  }
  .tp-mobile-child:last-child{
    border-bottom:0!important;
  }
  .tp-mobile-child>div:first-child{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    gap:2px!important;
  }
  .tp-mobile-child>div:first-child>b{
    font-size:.83rem!important;
    line-height:1.15!important;
  }
  .tp-mobile-child>div:first-child>small{
    color:var(--muted,#718096)!important;
    font-size:.68rem!important;
  }
  .tp-mobile-services{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:4px!important;
  }
  .tp-mobile .tp-svc{
    margin:0!important;
    padding:4px 6px!important;
    min-width:42px!important;
  }
  .tp-mobile .tp-svc small{
    display:block!important;
    font-size:.52rem!important;
  }
}
@media print{
  .tp-mobile{
    display:none!important;
  }
  .tp-scroll{
    display:block!important;
  }
}

/* ===================== LWS3.1.22y : densité pointage compact + fiches portrait =====================
   Présentation uniquement : aucune règle métier, aucun droit et aucune API modifiés.
=============================================================================== */

/* Pointage quotidien NORMAL : l'alerte de date différente vit dans l'en-tête, pas entre la barre d'outils et la liste. */
.v1180-daily-main > .top .pointage-date-warning-top{
  align-self:center!important;
  margin:0!important;
  padding:5px 9px!important;
  min-height:28px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  max-width:min(46vw,520px)!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.v1180-daily-main > .top .pointage-date-warning-top:not([hidden]){display:inline-flex!important;align-items:center!important;}

/* Pointage COMPACT : exploite la largeur vide de l'en-tête sans prendre une ligne supplémentaire. */
.v1320-compact-head{
  grid-template-columns:auto minmax(110px,auto) minmax(255px,1fr) auto!important;
  gap:8px!important;
  align-items:center!important;
  padding:6px 8px!important;
  margin-bottom:6px!important;
  min-height:46px!important;
}
.v1320-normal-btn{min-height:30px!important;height:30px!important;padding:4px 8px!important;white-space:nowrap!important;}
.v1320-compact-title{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:2px!important;min-width:0!important;}
.v1320-compact-title>b{font-size:15px!important;line-height:1.05!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.v1320-compact-date-warning{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  max-width:100%!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  background:#fff7ed!important;
  color:#9a3412!important;
  border:1px solid #fdba74!important;
  font-size:9px!important;
  font-weight:900!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.v1320-compact-counters{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(72px,1fr))!important;
  gap:5px!important;
  align-items:stretch!important;
  min-width:255px!important;
  max-width:390px!important;
  justify-self:start!important;
}
.v1320-count{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  align-items:center!important;
  gap:5px!important;
  min-height:32px!important;
  padding:4px 7px!important;
  border:1px solid #dbe4ee!important;
  border-radius:9px!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(15,23,42,.04)!important;
}
.v1320-count span{font-size:9.5px!important;line-height:1!important;font-weight:850!important;color:#475569!important;white-space:nowrap!important;}
.v1320-count b{font-size:19px!important;line-height:1!important;font-weight:950!important;color:#0f172a!important;}
.v1320-count.reserved{background:#eff6ff!important;border-color:#bfdbfe!important;}
.v1320-count.pointed{background:#ecfdf5!important;border-color:#a7f3d0!important;}
.v1320-count.remaining{background:#fff7ed!important;border-color:#fed7aa!important;}
.v1320-count.remaining b{color:#c2410c!important;}
.v1320-compact-head .v1186-compact-tools{justify-self:end!important;margin:0!important;}

/* Tablette : même hauteur d'en-tête, compteurs toujours visibles. */
@media (max-width:1000px) and (min-width:601px){
  .v1320-compact-head{grid-template-columns:auto minmax(105px,auto) minmax(228px,1fr) auto!important;gap:6px!important;}
  .v1320-compact-counters{min-width:228px!important;grid-template-columns:repeat(3,minmax(68px,1fr))!important;gap:4px!important;}
  .v1320-count{min-height:30px!important;padding:3px 6px!important;}
  .v1320-count span{font-size:8.5px!important;}
  .v1320-count b{font-size:18px!important;}
  .v1320-compact-head .v1186-compact-tools{max-width:238px!important;}
}

/* Smartphone : reste compact ; les compteurs restent lisibles mais ne mangent pas la liste. */
@media (max-width:600px){
  .v1320-compact-head{
    grid-template-columns:auto minmax(0,1fr) auto!important;
    grid-template-areas:'normal title counts' 'tools tools tools'!important;
    gap:4px 6px!important;
    padding:5px 6px!important;
    min-height:0!important;
  }
  .v1320-normal-btn{grid-area:normal!important;}
  .v1320-compact-title{grid-area:title!important;}
  .v1320-compact-counters{grid-area:counts!important;display:flex!important;min-width:0!important;max-width:none!important;gap:3px!important;justify-self:end!important;}
  .v1320-count{display:flex!important;gap:3px!important;min-height:27px!important;padding:3px 5px!important;border-radius:8px!important;}
  .v1320-count span{font-size:7.5px!important;}
  .v1320-count b{font-size:15px!important;}
  .v1320-compact-head .v1186-compact-tools{grid-area:tools!important;justify-self:start!important;max-width:238px!important;}
  .v1320-compact-date-warning{font-size:8px!important;padding:1px 5px!important;}
}

/* Fiches foyer/enfant sur écran étroit : tous les onglets visibles immédiatement, sans balayage horizontal caché. */
@media (max-width:1100px){
  .sheet-modal-v1216 .clean-tabs,
  .clean-sheet .clean-tabs{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    margin:0 0 10px!important;
    padding:6px!important;
    overflow:visible!important;
    background:#eef3f8!important;
    border:1px solid #dbe5ef!important;
    border-radius:14px!important;
  }
  .sheet-modal-v1216 .clean-tabs button,
  .clean-sheet .clean-tabs button{
    width:100%!important;
    min-width:0!important;
    min-height:34px!important;
    padding:6px 7px!important;
    border-radius:10px!important;
    font-size:11px!important;
    line-height:1.1!important;
    font-weight:850!important;
    white-space:normal!important;
    text-align:center!important;
    overflow:visible!important;
  }
}
@media (max-width:599px){
  .sheet-modal-v1216 .clean-tabs,
  .clean-sheet .clean-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .sheet-modal-v1216 .clean-tabs button,
  .clean-sheet .clean-tabs button{font-size:10.5px!important;padding:5px 6px!important;}
}


/* ============================================================
   LWS3.1.22z — verrou global premier clic pendant chargement
   ============================================================ */
/* V4.1.62 : indicateur uniquement visuel. Il ne doit jamais capturer le toucher,
   bloquer le défilement ou rendre le menu Parent inerte sur WebKit/iOS. */
body.peri-ui-busy{cursor:progress!important;}
.peri-global-busy-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:2147483647!important;
  display:grid!important;
  place-items:center!important;
  padding:18px!important;
  background:rgba(15,23,42,.34)!important;
  backdrop-filter:blur(2px)!important;
  -webkit-backdrop-filter:blur(2px)!important;
  cursor:progress!important;
  pointer-events:none!important;
  touch-action:auto!important;
  user-select:none!important;
}
.peri-global-busy-card{
  width:min(88vw,300px)!important;
  display:grid!important;
  grid-template-columns:34px 1fr!important;
  grid-template-areas:"spin title" "spin sub"!important;
  align-items:center!important;
  column-gap:12px!important;
  row-gap:2px!important;
  padding:15px 17px!important;
  border-radius:18px!important;
  background:#fff!important;
  border:1px solid rgba(226,232,240,.96)!important;
  box-shadow:0 20px 60px rgba(15,23,42,.24)!important;
  text-align:left!important;
}
.peri-global-busy-spinner{
  grid-area:spin!important;
  width:28px!important;
  height:28px!important;
  border:3px solid #dbeafe!important;
  border-top-color:#2563eb!important;
  border-radius:50%!important;
  animation:periActionSpin .7s linear infinite!important;
}
.peri-global-busy-card strong{grid-area:title!important;color:#0f172a!important;font-size:14px!important;line-height:1.2!important;}
.peri-global-busy-card small{grid-area:sub!important;color:#64748b!important;font-size:11px!important;line-height:1.25!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
@media(max-width:560px){
  .peri-global-busy-card{width:min(84vw,280px)!important;padding:13px 15px!important;}
}


/* ===================== LWS3.1.22ab : pointage compact lisible sans perdre de lignes =====================
   But : compteurs réellement lisibles + noms enfants lisibles, à hauteur globale constante.
   Aucun changement métier/API.
=============================================================================== */

/* En compact, l'ancienne alerte pleine largeur ne doit jamais réapparaître. */
.v1179-compact-main > .pointage-date-warning,
.v1179-compact-main .pointage-date-warning-normal{
  display:none!important;
}

/* 2 rangées seulement : 1) navigation/service/compteurs, 2) recherche/date. */
.v1320-compact-head{
  display:grid!important;
  grid-template-columns:auto minmax(54px,100px) minmax(270px,1fr)!important;
  grid-template-areas:'normal title counts' 'tools tools tools'!important;
  column-gap:7px!important;
  row-gap:4px!important;
  align-items:center!important;
  min-height:0!important;
  padding:4px 6px!important;
  margin-bottom:4px!important;
}
.v1320-normal-btn{
  grid-area:normal!important;
  min-height:28px!important;
  height:28px!important;
  padding:3px 7px!important;
  font-size:10px!important;
}
.v1320-compact-title{
  grid-area:title!important;
  min-width:0!important;
  gap:1px!important;
}
.v1320-compact-title>b{
  font-size:13px!important;
  line-height:1!important;
  font-weight:950!important;
}
.v1320-compact-date-warning{
  max-width:100%!important;
  padding:1px 4px!important;
  font-size:7.5px!important;
  line-height:1!important;
}

/* Les nombres deviennent l'information dominante. */
.v1320-compact-counters{
  grid-area:counts!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(78px,1fr))!important;
  gap:4px!important;
  min-width:246px!important;
  max-width:360px!important;
  width:100%!important;
  justify-self:start!important;
}
.v1320-count{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto auto!important;
  place-items:center!important;
  align-content:center!important;
  gap:0!important;
  min-width:0!important;
  min-height:35px!important;
  height:35px!important;
  padding:2px 5px!important;
  border-radius:8px!important;
}
.v1320-count span{
  order:2!important;
  font-size:8.5px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
}
.v1320-count b{
  order:1!important;
  font-size:23px!important;
  line-height:.9!important;
  font-weight:1000!important;
  letter-spacing:-.04em!important;
}
.v1320-count.reserved b{color:#1d4ed8!important;}
.v1320-count.pointed b{color:#15803d!important;}
.v1320-count.remaining b{color:#c2410c!important;}

.v1320-compact-head .v1186-compact-tools{
  grid-area:tools!important;
  grid-column:auto!important;
  justify-self:start!important;
  margin:0!important;
  max-width:278px!important;
}

/* Les noms ne doivent pas devenir minuscules sous prétexte de densité. */
@media (max-width:1000px){
  .v1186-row{
    min-height:32px!important;
    padding-top:4px!important;
    padding-bottom:4px!important;
  }
  .v1186-child-cell .v1180-id b{
    font-size:12px!important;
    line-height:1.05!important;
    font-weight:900!important;
  }
  .v1186-child-cell .v1180-id small{
    font-size:8.5px!important;
    line-height:1!important;
  }
}

/* Tablette portrait / petite fenêtre : gros chiffres, même hauteur qu'avant. */
@media (max-width:1000px) and (min-width:601px){
  .v1320-compact-head{
    grid-template-columns:auto minmax(58px,95px) minmax(240px,1fr)!important;
    column-gap:6px!important;
    row-gap:3px!important;
    padding:4px 5px!important;
  }
  .v1320-compact-counters{
    grid-template-columns:repeat(3,minmax(72px,1fr))!important;
    min-width:224px!important;
    max-width:315px!important;
  }
  .v1320-count{
    height:34px!important;
    min-height:34px!important;
    padding:2px 4px!important;
  }
  .v1320-count b{font-size:24px!important;}
  .v1320-count span{font-size:8.5px!important;}
}

/* Smartphone étroit : trois compteurs restent présents, mais tiennent dans la 1re ligne. */
@media (max-width:600px){
  .v1320-compact-head{
    grid-template-columns:auto minmax(34px,1fr) auto!important;
    grid-template-areas:'normal title counts' 'tools tools tools'!important;
    column-gap:4px!important;
    row-gap:3px!important;
    padding:4px!important;
  }
  .v1320-normal-btn{
    min-height:26px!important;
    height:26px!important;
    padding:3px 5px!important;
    font-size:8.5px!important;
  }
  .v1320-compact-title>b{font-size:11px!important;}
  .v1320-compact-date-warning{font-size:6.5px!important;padding:1px 3px!important;}
  .v1320-compact-counters{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(34px,1fr))!important;
    gap:2px!important;
    min-width:108px!important;
    max-width:126px!important;
    width:126px!important;
    justify-self:end!important;
  }
  .v1320-count{
    min-height:31px!important;
    height:31px!important;
    padding:1px 2px!important;
    border-radius:7px!important;
  }
  .v1320-count b{font-size:20px!important;line-height:.9!important;}
  .v1320-count span{font-size:6.4px!important;line-height:1!important;}
  .v1320-compact-head .v1186-compact-tools{
    max-width:238px!important;
    width:auto!important;
  }
  .v1186-child-cell .v1180-id b{
    font-size:11.5px!important;
  }
}

@media (max-width:390px){
  .v1320-compact-counters{
    grid-template-columns:repeat(3,minmax(32px,1fr))!important;
    min-width:102px!important;
    width:108px!important;
    max-width:108px!important;
  }
  .v1320-count b{font-size:19px!important;}
  .v1320-count span{font-size:6px!important;}
  .v1186-child-cell .v1180-id b{font-size:11px!important;}
}


/* ===================== LWS3.1.22ac : pointage compact FINAL sur la couche MPF =====================
   La couche assets/modules/10-exploitation.js est le rendu réellement chargé après 00-core.js.
   Compteurs visibles sans ligne supplémentaire, alerte date intégrée, noms lisibles.
=============================================================================== */
body.mpf-compact-active .mpf-head.mpf-head-ac{
  display:grid!important;
  grid-template-columns:auto minmax(64px,1fr) minmax(210px,300px)!important;
  grid-template-areas:
    "back title counters"
    "tools tools tools"!important;
  align-items:center!important;
  column-gap:7px!important;
  row-gap:4px!important;
  min-height:0!important;
  margin:0 0 4px!important;
  padding:4px 6px!important;
}
body.mpf-compact-active .mpf-head-ac .mpf-back{
  grid-area:back!important;
  min-height:28px!important;
  height:28px!important;
  padding:3px 7px!important;
  font-size:10px!important;
  white-space:nowrap!important;
}
body.mpf-compact-active .mpf-head-ac .mpf-title{
  grid-area:title!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:2px!important;
  overflow:visible!important;
}
body.mpf-compact-active .mpf-head-ac .mpf-title>b{
  display:block!important;
  min-width:0!important;
  font-size:13px!important;
  line-height:1!important;
  font-weight:950!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.mpf-compact-active .mpf-date-badge{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  max-width:100%!important;
  padding:1px 5px!important;
  border:1px solid #fdba74!important;
  border-radius:999px!important;
  background:#fff7ed!important;
  color:#9a3412!important;
  font-size:7.5px!important;
  line-height:1!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.mpf-compact-active .mpf-counters{
  grid-area:counters!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(64px,1fr))!important;
  gap:4px!important;
  min-width:210px!important;
  width:100%!important;
  max-width:300px!important;
  justify-self:end!important;
}
body.mpf-compact-active .mpf-counter{
  display:grid!important;
  grid-template-rows:auto auto!important;
  place-items:center!important;
  align-content:center!important;
  min-width:0!important;
  height:36px!important;
  min-height:36px!important;
  padding:2px 4px!important;
  border:1px solid #dbe4ee!important;
  border-radius:8px!important;
  background:#fff!important;
  box-shadow:none!important;
}
body.mpf-compact-active .mpf-counter b{
  display:block!important;
  font-size:24px!important;
  line-height:.88!important;
  font-weight:950!important;
  letter-spacing:-.04em!important;
}
body.mpf-compact-active .mpf-counter span{
  display:block!important;
  margin-top:2px!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:900!important;
  color:#475569!important;
  white-space:nowrap!important;
}
body.mpf-compact-active .mpf-counter-reserved{background:#eff6ff!important;border-color:#bfdbfe!important;}
body.mpf-compact-active .mpf-counter-reserved b{color:#1d4ed8!important;}
body.mpf-compact-active .mpf-counter-pointed{background:#ecfdf5!important;border-color:#a7f3d0!important;}
body.mpf-compact-active .mpf-counter-pointed b{color:#15803d!important;}
body.mpf-compact-active .mpf-counter-remaining{background:#fff7ed!important;border-color:#fed7aa!important;}
body.mpf-compact-active .mpf-counter-remaining b{color:#c2410c!important;}
body.mpf-compact-active .mpf-head-ac .mpf-tools{
  grid-area:tools!important;
  grid-column:1/-1!important;
  margin:0!important;
  gap:5px!important;
}
body.mpf-compact-active .mpf-head-ac .mpf-tools input{
  height:27px!important;
  min-height:27px!important;
}
body.mpf-compact-active #mpfDateWarning,
body.mpf-compact-active .mpf-date-warning,
body.mpf-compact-active .pointage-date-warning{
  display:none!important;
}

/* Noms d'enfants : plus gros sans augmenter sensiblement la hauteur des lignes. */
body.mpf-compact-active .mpf-row{
  min-height:32px!important;
  padding-top:2px!important;
  padding-bottom:2px!important;
}
body.mpf-compact-active .mpf-child b{
  font-size:13px!important;
  line-height:1.05!important;
  font-weight:900!important;
}

/* Tablette portrait / petite fenêtre. */
@media (max-width:1000px) and (min-width:481px){
  body.mpf-compact-active .mpf-head.mpf-head-ac{
    grid-template-columns:auto minmax(58px,1fr) minmax(198px,270px)!important;
    column-gap:6px!important;
  }
  body.mpf-compact-active .mpf-counters{
    grid-template-columns:repeat(3,minmax(60px,1fr))!important;
    min-width:198px!important;
    max-width:270px!important;
  }
  body.mpf-compact-active .mpf-counter b{font-size:25px!important;}
  body.mpf-compact-active .mpf-counter span{font-size:8px!important;}
  body.mpf-compact-active .mpf-child b{font-size:13px!important;}
}

/* Smartphone / fenêtre très étroite : toujours les 3 compteurs, visibles dès la première ligne. */
@media (max-width:480px){
  body.mpf-compact-active .mpf-head.mpf-head-ac{
    grid-template-columns:auto minmax(42px,1fr) 154px!important;
    grid-template-areas:
      "back title counters"
      "tools tools tools"!important;
    column-gap:4px!important;
    row-gap:3px!important;
    padding:4px!important;
  }
  body.mpf-compact-active .mpf-head-ac .mpf-back{
    min-height:26px!important;
    height:26px!important;
    padding:3px 5px!important;
    font-size:8.5px!important;
  }
  body.mpf-compact-active .mpf-head-ac .mpf-title>b{font-size:10.5px!important;}
  body.mpf-compact-active .mpf-date-badge{font-size:6.5px!important;padding:1px 3px!important;}
  body.mpf-compact-active .mpf-counters{
    grid-template-columns:repeat(3,1fr)!important;
    gap:2px!important;
    width:154px!important;
    min-width:154px!important;
    max-width:154px!important;
  }
  body.mpf-compact-active .mpf-counter{
    height:34px!important;
    min-height:34px!important;
    padding:1px 2px!important;
    border-radius:7px!important;
  }
  body.mpf-compact-active .mpf-counter b{font-size:21px!important;}
  body.mpf-compact-active .mpf-counter span{font-size:6.8px!important;}
  body.mpf-compact-active .mpf-child b{font-size:12.5px!important;}
  body.mpf-compact-active #mpfSearch{width:150px!important;flex-basis:150px!important;}
  body.mpf-compact-active #v1179Date{width:96px!important;flex-basis:96px!important;}
}

@media (max-width:350px){
  body.mpf-compact-active .mpf-head.mpf-head-ac{
    grid-template-columns:auto minmax(30px,1fr) 144px!important;
  }
  body.mpf-compact-active .mpf-counters{
    width:144px!important;min-width:144px!important;max-width:144px!important;
  }
  body.mpf-compact-active .mpf-counter b{font-size:20px!important;}
  body.mpf-compact-active .mpf-counter span{font-size:6.3px!important;}
}

/* ===================== LWS3.1.22ad : pointage compact — recuperer la bande menu =====================
   Le runtime mobile reserve 62px en haut de .main pour le bouton menu flottant.
   En mode pointage compact, on utilise cette meme hauteur pour la premiere ligne du pointage :
   le bouton menu occupe simplement la 4e zone de la ligne haute, sans bande blanche dediee.
=============================================================================== */
@media (max-width:980px){
  body.v220-no-topbar.mpf-compact-active .app.v11 .main.mpf-main,
  body.v220-no-topbar.mpf-compact-active .app.v2-stable-shell .main.mpf-main{
    padding-top:4px!important;
  }
  body.mpf-compact-active .mpf-head.mpf-head-ac{
    grid-template-columns:auto minmax(58px,1fr) minmax(198px,270px) 38px!important;
    grid-template-areas:
      "back title counters menureserve"
      "tools tools tools tools"!important;
  }
  body.mpf-compact-active .mpf-head-ac .mpf-tools{
    grid-column:1/-1!important;
  }
  body.mpf-compact-active .v220-menu-fab{
    top:6px!important;
    right:7px!important;
    width:32px!important;
    height:32px!important;
    min-height:32px!important;
  }
}

@media (max-width:480px){
  body.mpf-compact-active .mpf-head.mpf-head-ac{
    grid-template-columns:auto minmax(40px,1fr) 154px 35px!important;
    grid-template-areas:
      "back title counters menureserve"
      "tools tools tools tools"!important;
  }
  body.mpf-compact-active .v220-menu-fab{
    width:30px!important;
    height:30px!important;
    min-height:30px!important;
    top:6px!important;
    right:6px!important;
  }
}

@media (max-width:350px){
  body.mpf-compact-active .mpf-head.mpf-head-ac{
    grid-template-columns:auto minmax(28px,1fr) 144px 33px!important;
  }
}


/* LWS3.1.22ae — verrou anti-double action sans latence visuelle sur les requêtes rapides. */
.peri-global-busy-overlay.peri-global-busy-pending{
  background:transparent!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.peri-global-busy-overlay.peri-global-busy-pending .peri-global-busy-card{
  opacity:0!important;
  transform:scale(.98)!important;
}
.peri-global-busy-overlay.peri-global-busy-visible .peri-global-busy-card{
  opacity:1!important;
  transform:none!important;
  transition:opacity .12s ease,transform .12s ease!important;
}

/* LWS3.1.22ah — aperçu PDF QF local + allergies anonymisées restaurant */
.qf-preview-pdf-pages{flex:1;min-height:0;overflow:auto;padding:10px 12px 20px;background:#e9eef5}
.qf-preview-pdf-status{position:sticky;top:0;z-index:2;width:max-content;margin:0 auto 9px;padding:5px 10px;border-radius:999px;background:#fff;color:#475569;font-size:12px;font-weight:800;box-shadow:0 1px 5px rgba(15,23,42,.12)}
.qf-preview-pdf-canvases{display:flex;flex-direction:column;align-items:center;gap:12px}
.qf-preview-pdf-canvas{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 2px 14px rgba(15,23,42,.18)}
.qf-preview-pdf-limit{max-width:680px;margin:14px auto 0;padding:10px 12px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:12px;text-align:center}
.cantine-provider-privacy{margin:6px 0 12px;padding:8px 10px;border-radius:9px;background:#eff6ff;color:#1e3a8a;font-size:12px;font-weight:700}
.cantine-provider-table td{vertical-align:top}
.cantine-allergy-summary{min-width:180px;color:#7c2d12}
.cantine-allergy-summary>b{display:block;margin-bottom:5px;color:#b45309;font-size:12px}
.cantine-allergy-summary>div{display:flex;flex-wrap:wrap;gap:4px}
.cantine-allergy-tag{display:inline-flex;align-items:center;padding:3px 7px;border:1px solid #fdba74;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:11px;font-weight:800}
.cantine-allergy-none{color:#64748b;font-size:12px}
@media(max-width:700px){.cantine-allergy-summary{min-width:150px}.qf-preview-pdf-pages{padding:8px 6px 14px}}

/* LWS3.1.22ak — suivi familles superadmin */
.peri-superadmin-tools{border:1px dashed #b7c7d9;background:#f8fbff}
.peri-superadmin-tool-buttons{gap:8px;flex-wrap:wrap}
.ff-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ff-top p{margin:.25rem 0 0;color:#64748b}
.ff-kpis{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin:0 0 12px}
.ff-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-height:70px;justify-content:center}
.ff-kpi b{font-size:1.55rem;line-height:1;color:#0f172a}
.ff-kpi span{font-size:.82rem;color:#64748b}
.ff-kpi.danger b{color:#b91c1c}.ff-kpi.warn b{color:#b45309}
.ff-filter-card{margin-bottom:12px}
.ff-filter-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.ff-filter-title span{font-size:.86rem;color:#64748b}
.ff-filter-grid{display:flex;flex-wrap:wrap;gap:8px 16px}
.ff-searchbar{margin-top:10px;gap:8px;align-items:center}
.ff-searchbar input[type="search"]{min-width:260px;flex:1}
.ff-table-card{padding:0;overflow:hidden}
.ff-table{min-width:1050px;margin:0}
.ff-table th{white-space:nowrap}
.ff-table td{vertical-align:top}
.ff-family-name{font-weight:800;font-size:1rem;margin-bottom:4px}
.ff-children{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}
.ff-child{font-size:.82rem;color:#475569}
.ff-status,.ff-res-count{display:inline-flex;align-items:center;font-weight:800;border-radius:999px;padding:4px 8px;margin-bottom:5px}
.ff-status.ok,.ff-res-count.ok{background:#dcfce7;color:#166534}
.ff-status.danger,.ff-res-count.danger{background:#fee2e2;color:#991b1b}
.ff-res-count{font-size:1.15rem;min-width:34px;justify-content:center}
.ff-table td>small{display:block;color:#64748b;font-size:.78rem}
.ff-account{border:1px solid #e2e8f0;border-radius:9px;padding:8px;margin-bottom:7px;background:#fff;min-width:330px}
.ff-account:last-child{margin-bottom:0}.ff-account.is-disabled{opacity:.65}
.ff-account-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:3px}.ff-account-head span{font-size:.72rem;color:#64748b}
.ff-login,.ff-account-meta{font-size:.78rem;color:#475569}.ff-account-meta{margin:4px 0 7px}
.ff-email-edit{display:flex;gap:5px;margin-top:6px}.ff-email-edit input{min-width:180px;flex:1}
.ff-phone{display:block;margin:0 0 6px;font-weight:700;text-decoration:none}.ff-phone:hover{text-decoration:underline}
.ff-missing{color:#b45309;font-size:.82rem}
@media(max-width:980px){.ff-kpis{grid-template-columns:repeat(3,minmax(110px,1fr))}.ff-table{min-width:920px}.ff-account{min-width:285px}}
@media(max-width:700px){.ff-top{align-items:center}.ff-top p{display:none}.ff-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ff-kpi{min-height:58px;padding:8px}.ff-kpi b{font-size:1.3rem}.ff-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px}.ff-searchbar{display:grid;grid-template-columns:1fr 1fr}.ff-searchbar input[type="search"]{grid-column:1/-1;min-width:0;width:100%}.ff-table{min-width:0;width:100%}.ff-table thead{display:none}.ff-table tbody,.ff-table tr,.ff-table td{display:block;width:100%}.ff-table tr{border-bottom:10px solid #f1f5f9;padding:8px}.ff-table td{border:0;padding:6px 4px}.ff-table td::before{content:attr(data-label);display:block;font-size:.7rem;font-weight:800;text-transform:uppercase;color:#64748b;margin-bottom:3px}.ff-account{min-width:0}.ff-email-edit{flex-direction:column}.ff-email-edit input{min-width:0;width:100%}}

/* LWS3.1.22am — Foyer > Tarifs : prix horaire explicite, sans toucher aux calculs. */
.family-tariff-price{display:flex;flex-direction:column;gap:2px;min-width:190px}
.family-tariff-price strong{font-size:1rem;line-height:1.2;white-space:nowrap}
.family-tariff-price small{font-size:.78rem;line-height:1.25;color:var(--muted,#64748b);font-weight:500}
.family-tariff-help{margin:10px 0 8px;line-height:1.35}
@media(max-width:700px){.family-tariff-price{min-width:0}.family-tariff-price strong{white-space:normal}.family-tariff-price small{font-size:.76rem}}

/* ============================================================
   LWS3.1.22as — refonte graphique propre fiches foyer / enfant
   Accessible, sans scroll horizontal des onglets, sans impact métier
   ============================================================ */
.clean-sheet{
  display:grid!important;
  gap:14px!important;
}
.clean-sheet .sheet-summary-slot:empty{display:none!important}
.clean-sheet .sheet-summary-slot{display:grid!important;gap:10px!important}
.clean-sheet .sheet-savebar{
  /* CORRECTIF SOURCE IOS (2026-09-10) : voir commentaire pres de la regle de base
     .clean-sheet .sheet-savebar plus haut dans ce fichier. */
  position:relative!important;
  z-index:12!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:10px!important;
  padding:12px!important;
  margin:0 0 6px!important;
  border:1px solid #d9e4ef!important;
  border-radius:20px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 10px 28px rgba(15,23,42,.06)!important;
}
.clean-sheet .sheet-savebar .sheet-savebar-meta{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  padding:8px 12px!important;
  border:1px solid #cfe7d2!important;
  border-radius:14px!important;
  background:#f6fbf6!important;
}
.clean-sheet .save-state{
  min-height:30px!important;
  padding:6px 12px!important;
  border-radius:999px!important;
  background:#eef3f8!important;
  color:#46576d!important;
  font-size:13px!important;
  font-weight:800!important;
}
.clean-sheet .save-state.dirty{background:#fff7ed!important;color:#b45309!important}
.clean-sheet .save-state.saved{background:#ecfdf5!important;color:#15803d!important}
.clean-sheet .save-state.error{background:#fef2f2!important;color:#b91c1c!important}
.clean-sheet .save-state.saving{background:#eff6ff!important;color:#1d4ed8!important}
.clean-sheet .save-autosave{
  color:#64748b!important;
  font-size:13px!important;
  font-weight:700!important;
}
.clean-sheet .clean-main-actions,
.clean-sheet .sheet-savebar .clean-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  width:100%!important;
  margin:0!important;
}
.clean-sheet .clean-main-actions button,
.clean-sheet .sheet-savebar .clean-actions button{
  min-height:58px!important;
  border-radius:18px!important;
  font-size:17px!important;
  font-weight:800!important;
  box-shadow:none!important;
}
.clean-sheet .clean-primary-btn{background:linear-gradient(135deg,#2563eb,#3b82f6)!important;color:#fff!important}
.clean-sheet .clean-secondary-btn{background:#f8fafc!important;color:#1e3a8a!important;border:1px solid #d6e0eb!important}
.clean-sheet .clean-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0!important;
  padding:0!important;
  width:100%!important;
  overflow:visible!important;
  background:none!important;
  border:0!important;
}
.clean-sheet .clean-tabs button{
  width:100%!important;
  min-width:0!important;
  min-height:92px!important;
  padding:14px 10px!important;
  border-radius:20px!important;
  border:1px solid #d7e1ec!important;
  background:#fff!important;
  color:#1f3360!important;
  box-shadow:0 6px 20px rgba(15,23,42,.05)!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  white-space:normal!important;
  text-align:center!important;
}
.clean-sheet .clean-tabs button:hover{transform:translateY(-1px)!important}
.clean-sheet .clean-tabs button.active{
  background:#fff!important;
  color:#1d4ed8!important;
  border:2px solid #2563eb!important;
  box-shadow:0 12px 28px rgba(37,99,235,.12)!important;
}
.clean-tab-ico{
  display:grid!important;
  place-items:center!important;
  width:38px!important;
  height:38px!important;
  border-radius:14px!important;
  background:#eef4ff!important;
  font-size:20px!important;
}
.clean-sheet .clean-tabs button.active .clean-tab-ico{background:#dbeafe!important}
.clean-tab-label{
  display:block!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:800!important;
}
.clean-sheet .clean-pane{
  background:#fff!important;
  border:1px solid #dde7f1!important;
  border-radius:24px!important;
  padding:18px!important;
  box-shadow:0 8px 26px rgba(15,23,42,.05)!important;
}
.clean-sheet .clean-section-title{
  display:block!important;
  margin:0 0 14px!important;
  padding:0 0 12px!important;
  border-bottom:1px solid #e9eff6!important;
}
.clean-sheet .clean-section-head{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
}
.clean-sheet .clean-section-icon{
  display:grid!important;
  place-items:center!important;
  width:40px!important;
  height:40px!important;
  border-radius:14px!important;
  background:#eaf2ff!important;
  font-size:21px!important;
  flex:0 0 40px!important;
}
.clean-sheet .clean-section-title h3{
  margin:0!important;
  font-size:17px!important;
  color:#13254b!important;
}
.clean-sheet .clean-section-title span{
  display:block!important;
  margin-top:2px!important;
  font-size:13px!important;
  color:#66758c!important;
}
.clean-sheet .clean-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.clean-sheet .field{margin:0!important;gap:8px!important}
.clean-sheet .field label{
  font-size:13px!important;
  font-weight:800!important;
  color:#334155!important;
}
.clean-sheet input,
.clean-sheet select,
.clean-sheet textarea{
  min-height:56px!important;
  border:1px solid #d7e3ee!important;
  border-radius:18px!important;
  padding:14px 16px!important;
  background:#fff!important;
  font-size:16px!important;
}
.clean-sheet textarea{min-height:110px!important}
.clean-sheet .hint,
.clean-sheet .readonly-note{
  border:1px solid #dbe7f5!important;
  background:#f8fbff!important;
  border-radius:16px!important;
  padding:12px 14px!important;
}
.clean-sheet .subcard{
  border-radius:22px!important;
  border:1px solid #dde7f1!important;
  background:#fcfdff!important;
  box-shadow:none!important;
}
.clean-sheet .subcard h3{font-size:16px!important;margin-bottom:12px!important}
.clean-sheet .subcard h4{font-size:13px!important;color:#526174!important}
.clean-sheet .check,
.clean-sheet .checkgrid label{
  min-height:52px!important;
  border-radius:16px!important;
  border:1px solid #d7e3ee!important;
  background:#fff!important;
}
.clean-sheet .cards-list{gap:12px!important}
.clean-sheet .person-card{
  border-radius:20px!important;
  border:1px solid #dde7f1!important;
  padding:14px!important;
  box-shadow:0 4px 16px rgba(15,23,42,.04)!important;
}
.clean-sheet .avatar{
  width:46px!important;
  height:46px!important;
  border-radius:16px!important;
  background:#eef4ff!important;
}
.clean-sheet .completion-banner{
  display:grid!important;
  gap:12px!important;
  padding:16px!important;
  border:1px solid #dce8f7!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#f9fbff,#f5f8ff)!important;
  box-shadow:0 10px 26px rgba(15,23,42,.05)!important;
}
.clean-sheet .completion-banner.bad{background:linear-gradient(180deg,#fff8f8,#fff4f4)!important;border-color:#f2caca!important}
.clean-sheet .completion-banner.warn{background:linear-gradient(180deg,#fffdf8,#fff9ef)!important;border-color:#f2dfb0!important}
.clean-sheet .completion-banner.ok{background:linear-gradient(180deg,#f6fff8,#f1fdf4)!important;border-color:#bfe2c7!important}
.clean-sheet .completion-banner-head{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:14px!important;
}
.clean-sheet .completion-ring{
  width:76px!important;
  height:76px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  background:conic-gradient(#2563eb var(--completion-progress),#dde6f3 0)!important;
  position:relative!important;
  flex:0 0 76px!important;
}
.clean-sheet .completion-ring::before{
  content:''!important;
  position:absolute!important;
  inset:8px!important;
  border-radius:50%!important;
  background:#fff!important;
}
.clean-sheet .completion-ring span{
  position:relative!important;
  z-index:1!important;
  font-size:16px!important;
  font-weight:900!important;
  color:#2563eb!important;
}
.clean-sheet .completion-copy b{display:block!important;font-size:17px!important;color:#13254b!important}
.clean-sheet .completion-copy span{display:block!important;margin-top:4px!important;color:#64748b!important;font-size:14px!important}
.clean-sheet .completion-meter{height:12px!important;border-radius:999px!important;background:#dfe6ef!important;overflow:hidden!important}
.clean-sheet .completion-meter i{display:block!important;height:100%!important;border-radius:999px!important;background:linear-gradient(90deg,#2563eb,#3b82f6)!important}
.clean-sheet .completion-cta,
.clean-sheet .completion-banner button[data-clean-missing]{
  width:100%!important;
  min-height:54px!important;
  border-radius:18px!important;
  background:#eef3ff!important;
  color:#1e3a8a!important;
  border:1px solid #d6e2ff!important;
  font-size:15px!important;
  font-weight:800!important;
}
.clean-sheet .completion-missing-list{margin-top:0!important}
.clean-sheet .completion-missing{
  min-height:46px!important;
  border-radius:14px!important;
  border:1px solid #d8e3ef!important;
  background:#fff!important;
  font-size:14px!important;
  font-weight:700!important;
}
.clean-sheet .clean-doc-upload,
.clean-sheet .clean-info-grid,
.clean-sheet .clean-attach,
.clean-sheet .clean-copy-contacts{
  border-radius:20px!important;
}
.clean-sheet .clean-info-grid>div{
  border-radius:18px!important;
  border:1px solid #dde7f1!important;
  background:#fbfdff!important;
  padding:14px!important;
}
.modal-back .modal:has(.clean-sheet){
  width:min(1020px,calc(100vw - 28px))!important;
  border-radius:30px!important;
}
.modal-back .modal:has(.clean-sheet) .modal-head{
  padding:16px 18px!important;
  background:#fff!important;
  border-bottom:1px solid #e5edf6!important;
}
.modal-back .modal:has(.clean-sheet) .modal-head h2{
  font-size:1.05rem!important;
  color:#10224a!important;
  letter-spacing:-.01em!important;
}
.modal-back .modal:has(.clean-sheet) .modal-head .iconbtn{
  width:54px!important;
  height:54px!important;
  border-radius:20px!important;
  background:#f3f6fb!important;
  color:#334155!important;
  font-size:28px!important;
}
.modal-back .modal:has(.clean-sheet) .modal-body{
  padding:18px!important;
  background:#f6f9fd!important;
}
@media (max-width:900px){
  .clean-sheet .clean-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .clean-sheet .clean-grid{grid-template-columns:1fr!important}
}
@media (max-width:640px){
  .modal-back .modal:has(.clean-sheet){
    width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    border-radius:0!important;
  }
  .modal-back .modal:has(.clean-sheet) .modal-body{padding:12px!important}
  .modal-back .modal:has(.clean-sheet) .modal-head{padding:12px 14px!important}
  .clean-sheet{gap:12px!important}
  .clean-sheet .sheet-savebar{padding:10px!important;border-radius:18px!important}
  .clean-sheet .sheet-savebar .sheet-savebar-meta{align-items:flex-start!important;flex-direction:column!important}
  .clean-sheet .clean-main-actions,
  .clean-sheet .sheet-savebar .clean-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .clean-sheet .clean-main-actions button,
  .clean-sheet .sheet-savebar .clean-actions button{min-height:54px!important;font-size:16px!important}
  .clean-sheet .clean-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .clean-sheet .clean-tabs button{min-height:86px!important;padding:12px 8px!important;border-radius:18px!important}
  .clean-tab-ico{width:34px!important;height:34px!important;font-size:18px!important}
  .clean-tab-label{font-size:12px!important}
  .clean-sheet .clean-pane{padding:14px!important;border-radius:20px!important}
  .clean-sheet .completion-banner{padding:14px!important;border-radius:20px!important}
  .clean-sheet .completion-banner-head{grid-template-columns:1fr!important}
  .clean-sheet .completion-ring{width:70px!important;height:70px!important}
  .clean-sheet input,
  .clean-sheet select,
  .clean-sheet textarea{min-height:52px!important;border-radius:16px!important;padding:13px 14px!important}
}

/* ============================================================
   LWS3.1.22at — refonte graphique espace parent + wording enregistrement
   Graphique uniquement, sans modification métier
   ============================================================ */
.clean-sheet .save-record-info{
  color:#64748b!important;
  font-size:13px!important;
  font-weight:700!important;
}

body.v1216-parent-ui .main{
  background:linear-gradient(180deg,#f3f6fb 0%,#eff4fa 100%)!important;
}
body.v1216-parent-ui .top.parent-home-head,
body.v1216-parent-ui .top.parent-docs-head,
body.v1216-parent-ui .top.parent-res-top,
body.v1216-parent-ui .top.parent-month-head-43930{
  margin-bottom:16px!important;
}
body.v1216-parent-ui .parent-home-grid-arch{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0 0 14px!important;
}
body.v1216-parent-ui .parent-home-card,
body.v1216-parent-ui .parent-action-card.parent-home-card{
  width:100%!important;
  min-height:104px!important;
  display:grid!important;
  grid-template-columns:44px 1fr 18px!important;
  align-items:center!important;
  gap:10px!important;
  padding:13px 14px!important;
  border-radius:20px!important;
  border:1px solid #dce4ef!important;
  background:rgba(255,255,255,.98)!important;
  color:#17284d!important;
  box-shadow:0 6px 18px rgba(15,23,42,.045)!important;
  text-align:left!important;
}
body.v1216-parent-ui .parent-home-card:hover{transform:translateY(-1px)!important}
body.v1216-parent-ui .parent-home-ico{
  width:42px!important;
  height:42px!important;
  border-radius:13px!important;
  display:grid!important;
  place-items:center!important;
  background:#eef3ff!important;
  font-size:23px!important;
  box-shadow:inset 0 0 0 1px #dce5f5!important;
}
body.v1216-parent-ui .parent-home-copy{display:block!important;min-width:0!important}
body.v1216-parent-ui .parent-home-copy b{
  display:block!important;
  margin:0 0 4px!important;
  font-size:17px!important;
  line-height:1.18!important;
  color:#17284d!important;
}
body.v1216-parent-ui .parent-home-copy small{
  display:block!important;
  font-size:12.5px!important;
  line-height:1.28!important;
  color:#6a7689!important;
  white-space:normal!important;
}
body.v1216-parent-ui .parent-home-arrow{
  align-self:center!important;
  font-size:24px!important;
  line-height:1!important;
  color:#8ca0c0!important;
}
body.v1216-parent-ui .parent-alert-card{
  border-radius:28px!important;
  padding:18px!important;
  margin-bottom:18px!important;
  background:linear-gradient(180deg,#fff9f5,#fff)!important;
  border:1px solid #fed7aa!important;
}
body.v1216-parent-ui .parent-today-card{
  border-radius:28px!important;
  padding:20px!important;
  background:rgba(255,255,255,.96)!important;
}
body.v1216-parent-ui .parent-today-card h2{
  margin:0 0 16px!important;
  font-size:24px!important;
  color:#17284d!important;
}
body.v1216-parent-ui .parent-today-empty{
  display:grid!important;
  place-items:center!important;
  min-height:112px!important;
  border-radius:22px!important;
  border:1px solid #e5ebf3!important;
  background:#f6f8fc!important;
  color:#7b8698!important;
  font-size:18px!important;
}
body.v1216-parent-ui .parent-docs-shell{
  border-radius:28px!important;
  padding:20px!important;
  background:rgba(255,255,255,.96)!important;
}
body.v1216-parent-ui .parent-docs-shell h2{
  margin:0 0 18px!important;
  font-size:26px!important;
  color:#17284d!important;
}
body.v1216-parent-ui .parent-docs-list{
  display:grid!important;
  gap:16px!important;
}
body.v1216-parent-ui .parent-doc-card{
  display:grid!important;
  grid-template-columns:56px 1fr auto!important;
  align-items:center!important;
  gap:16px!important;
  padding:18px!important;
  border-radius:22px!important;
  border:1px solid #dde5f0!important;
  background:#f9fbff!important;
}
body.v1216-parent-ui .parent-doc-icon{
  width:48px!important;
  height:48px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:16px!important;
  background:#eef3ff!important;
  font-size:26px!important;
}
body.v1216-parent-ui .parent-doc-copy{min-width:0!important}
body.v1216-parent-ui .parent-doc-copy b{
  display:block!important;
  font-size:18px!important;
  line-height:1.25!important;
  color:#17284d!important;
}
body.v1216-parent-ui .parent-doc-copy span{
  display:block!important;
  margin-top:6px!important;
  color:#6a7689!important;
  font-size:15px!important;
  line-height:1.35!important;
  white-space:normal!important;
  word-break:break-word!important;
}
body.v1216-parent-ui .parent-doc-open{
  min-width:120px!important;
  min-height:48px!important;
  padding:12px 18px!important;
  border-radius:16px!important;
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#eef3ff!important;
  color:#1d4ed8!important;
  font-weight:800!important;
  border:1px solid #d7e2ff!important;
}

/* Planning parent mensuel : habillage harmonisé sans changer la logique */
/* V4.44 : bloc "premium parent" rendu compact - il gagnait systematiquement
   sur toutes les tentatives d'affichage dense (specificite body.v1216-parent-ui
   plus elevee que les regles .classe seule, quel que soit leur ordre dans le
   fichier). Couleurs/degrades/identite visuelle conserves, tailles reduites. */
body.v1216-parent-ui .parent-mobile-sticky-43960{
  position:sticky!important;
  top:0!important;
  z-index:20!important;
  padding-bottom:4px!important;
  background:linear-gradient(180deg,#f3f6fb 0%,rgba(243,246,251,.94) 85%,rgba(243,246,251,0) 100%)!important;
}
body.v1216-parent-ui .parent-month-toolbar-43930,
body.v1216-parent-ui .pm-child-select-wrap-43960,
body.v1216-parent-ui .pm-mobile-date-strip-43960{
  background:rgba(255,255,255,.96)!important;
  border:1px solid #dce4ef!important;
  box-shadow:0 8px 24px rgba(15,23,42,.04)!important;
}
body.v1216-parent-ui .parent-month-toolbar-43930{
  border-radius:14px!important;
  padding:4px!important;
  display:grid!important;
  grid-template-columns:32px 1fr 32px!important;
  align-items:center!important;
  gap:5px!important;
}
body.v1216-parent-ui .parent-month-toolbar-43930 strong{
  text-align:center!important;
  font-size:13px!important;
  color:#17284d!important;
}
body.v1216-parent-ui .parent-month-toolbar-43930 .secondary{
  width:30px!important;height:30px!important;min-height:30px!important;border-radius:9px!important;padding:0!important;
}
body.v1216-parent-ui .pm-child-select-wrap-43960{
  margin-top:5px!important;
  display:grid!important;
  grid-template-columns:44px 1fr!important;
  align-items:center!important;
  gap:6px!important;
  padding:4px 7px!important;
  border-radius:11px!important;
}
body.v1216-parent-ui .pm-child-select-wrap-43960 span{
  font-weight:800!important;
  font-size:11px!important;
  color:#42526a!important;
}
body.v1216-parent-ui .pm-child-select-wrap-43960 select{
  min-height:27px!important;
  border-radius:9px!important;
  font-size:12px!important;
  background:#fff!important;
}
/* AUDIT V5 : le selecteur "Enfant" ci-dessus n'est qu'une alternative MOBILE au
   fil de puces "Mes enfants" (parent-desktop-children-43960) affiche en desktop -
   les deux ne devraient jamais etre visibles ensemble. La regle .pm-child-select-
   wrap-43960{display:grid!important} ci-dessus n'etait protegee par aucune media
   query : elle forcait donc l'affichage du menu deroulant meme en desktop, en plus
   des puces, creant un doublon visuel confus sur "Mes reservations". Restaure le
   masquage desktop prevu par la regle de base (.pm-child-select-wrap-43960{display:
   none}, tout en haut du fichier) sans toucher au comportement mobile existant. */
@media(min-width:701px){
  body.v1216-parent-ui .pm-child-select-wrap-43960{display:none!important}
}
/* ...sauf le format "telephone en paysage" (701-900px + orientation:landscape) qui a
   sa propre mise en page mobile dediee (regle plus haut dans ce fichier, ~ligne 9427)
   et doit continuer a afficher ce menu deroulant a la place du fil de puces desktop. */
@media(min-width:701px) and (max-width:900px) and (orientation:landscape){
  body.v1216-parent-ui .pm-child-select-wrap-43960{display:grid!important}
}
body.v1216-parent-ui .pm-mobile-date-strip-43960{
  margin-top:5px!important;
  border-radius:11px!important;
  padding:4px!important;
  overflow:auto!important;
  scrollbar-width:none!important;
}
body.v1216-parent-ui .pm-mobile-date-strip-43960::-webkit-scrollbar{display:none!important}
body.v1216-parent-ui .pm-date-chip-43960{
  min-width:33px!important;
  min-height:32px!important;
  border-radius:9px!important;
  background:#f8fafc!important;
  border:1px solid #dbe3ee!important;
  color:#475569!important;
  box-shadow:none!important;
}
body.v1216-parent-ui .pm-date-chip-43960.is-active{
  background:linear-gradient(135deg,#2563eb,#3b82f6)!important;
  color:#fff!important;
  border-color:#2563eb!important;
}
body.v1216-parent-ui .pm-landscape-hint-43964{
  margin-top:2px!important;
  text-align:center!important;
  color:#6b7280!important;
  font-size:10px!important;
}
body.v1216-parent-ui .parent-month-card-43930{
  margin-top:4px!important;
  border-radius:16px!important;
  padding:6px!important;
  background:rgba(255,255,255,.96)!important;
}
body.v1216-parent-ui .pm-mobile-day-43960{
  border:1px solid #dbe3ee!important;
  border-radius:12px!important;
  background:#fff!important;
  padding:6px!important;
  margin-bottom:6px!important;
  box-shadow:0 6px 18px rgba(15,23,42,.04)!important;
}
body.v1216-parent-ui .pm-mobile-day-head-43964 h2{
  margin:0 0 4px!important;
  font-size:13px!important;
  color:#17284d!important;
}
body.v1216-parent-ui .pm-mobile-services-43960{
  display:grid!important;
  gap:4px!important;
}
body.v1216-parent-ui .pm-mobile-service-43960{
  width:100%!important;
  min-height:38px!important;
  grid-template-columns:22px 1fr auto!important;
  display:grid!important;
  align-items:center!important;
  gap:6px!important;
  padding:4px 7px!important;
  border-radius:9px!important;
  border:1px solid #dbe3ee!important;
  background:#fff!important;
  color:#17284d!important;
  box-shadow:none!important;
}
body.v1216-parent-ui .pm-mobile-service-43960.is-on{
  background:#f1faf3!important;
  border-color:#9bd3aa!important;
}
body.v1216-parent-ui .pm-mobile-svc-icon-43960{
  width:21px!important;
  height:21px!important;
  border-radius:6px!important;
  background:#f2f4f8!important;
  display:grid!important;
  place-items:center!important;
  font-size:13px!important;
}
body.v1216-parent-ui .pm-mobile-svc-copy-43960 b{
  font-size:11.5px!important;
  color:#17284d!important;
}
body.v1216-parent-ui .pm-mobile-svc-copy-43960 small{
  display:block!important;
  margin-top:0!important;
  color:#6b7280!important;
  font-size:9px!important;
}
body.v1216-parent-ui .pm-mobile-state-43960{
  min-width:0!important;
  text-align:center!important;
  padding:3px 6px!important;
  border-radius:999px!important;
  background:#eef2f7!important;
  color:#475569!important;
  font-size:9px!important;
  font-weight:800!important;
}
body.v1216-parent-ui .pm-mobile-service-43960.is-on .pm-mobile-state-43960{
  background:#dcfce7!important;
  color:#166534!important;
}
body.v1216-parent-ui .pm-mobile-closed-43960{
  min-height:34px!important;
  border-radius:9px!important;
  background:#f1f5f9!important;
  border:1px solid #dce3ec!important;
  padding:6px!important;
  font-size:11px!important;
  color:#475569!important;
}
body.v1216-parent-ui .parent-month-actions-43931{
  /* V4.44 : position/bottom retires - cette regle (plus specifique via
     body.v1216-parent-ui) battait systematiquement le position:fixed des
     regles mobiles/desktop plus recentes, quel que soit leur ordre dans le
     fichier. Avec position:sticky, la barre restait dans le flux normal de
     la page au lieu de rester collee au bas de l'ecran, et remontait
     chevaucher le contenu au-dessus. */
  z-index:16!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin-top:14px!important;
  padding:10px!important;
  border:1px solid #dce4ef!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 -8px 24px rgba(15,23,42,.06)!important;
}
body.v1216-parent-ui .parent-month-action-43931{
  width:100%!important;
  min-height:86px!important;
  padding:12px 10px!important;
  border-radius:20px!important;
  border:1px solid #dbe3ee!important;
  background:#fff!important;
  color:#17284d!important;
  box-shadow:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
}
body.v1216-parent-ui .parent-month-action-43931 span{font-size:28px!important;line-height:1!important}
body.v1216-parent-ui .parent-month-action-43931 b{font-size:13px!important;line-height:1.2!important;text-align:center!important}
body.v1216-parent-ui .parent-month-action-43931 small{font-size:11px!important;color:#6b7280!important;text-align:center!important}

@media (max-width:820px){
  body.v1216-parent-ui .parent-home-grid-arch{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
}
@media (max-width:640px){
  body.v1216-parent-ui .parent-home-card{grid-template-columns:36px 1fr 14px!important;padding:9px 10px!important;min-height:76px!important;gap:7px!important;border-radius:16px!important}
  body.v1216-parent-ui .parent-home-ico{width:34px!important;height:34px!important;border-radius:11px!important;font-size:19px!important}
  body.v1216-parent-ui .parent-home-copy b{font-size:14px!important;margin:0!important}
  body.v1216-parent-ui .parent-home-copy small{display:none!important}
  body.v1216-parent-ui .parent-home-arrow{font-size:20px!important}
  body.v1216-parent-ui .parent-doc-card{grid-template-columns:48px 1fr!important}
  body.v1216-parent-ui .parent-doc-open{grid-column:1/-1!important;width:100%!important;margin-top:4px!important}
  body.v1216-parent-ui .parent-month-actions-43931{grid-template-columns:repeat(3,minmax(0,1fr))!important;padding:8px!important;gap:8px!important}
  body.v1216-parent-ui .parent-month-action-43931{min-height:78px!important;border-radius:18px!important;padding:10px 6px!important}
  body.v1216-parent-ui .parent-month-action-43931 b{font-size:12px!important}
  body.v1216-parent-ui .parent-month-action-43931 small{display:none!important}
}


/* ============================================================
   LWS3.1.22au — correctifs finaux affichage mobile parents + fiches
   Graphique uniquement
   ============================================================ */

/* Fiches foyer / enfant : compacter la barre d'actions et garder 3 tuiles par ligne sur mobile */
.clean-sheet .sheet-savebar{padding:10px!important;gap:8px!important;border-radius:18px!important;margin-bottom:4px!important}
.clean-sheet .sheet-savebar .sheet-savebar-meta{padding:8px 12px!important;border-radius:16px!important;gap:6px!important}
.clean-sheet .save-state{min-height:auto!important;padding:5px 12px!important;font-size:12px!important;line-height:1.2!important}
.clean-sheet .save-record-info{font-size:12px!important;line-height:1.25!important}
.clean-sheet .clean-main-actions,.clean-sheet .sheet-savebar .clean-actions{gap:10px!important}
.clean-sheet .clean-main-actions button,.clean-sheet .sheet-savebar .clean-actions button{min-height:46px!important;font-size:15px!important;border-radius:16px!important}
.clean-sheet .completion-banner{padding:14px!important;border-radius:20px!important}
.clean-sheet .completion-banner-head{gap:12px!important}
.clean-sheet .completion-ring{width:64px!important;height:64px!important;flex-basis:64px!important}
.clean-sheet .completion-ring::before{inset:7px!important}
.clean-sheet .completion-copy b{font-size:16px!important}
.clean-sheet .completion-copy span{font-size:13px!important}
.clean-sheet .completion-cta,.clean-sheet .completion-banner button[data-clean-missing]{min-height:46px!important;font-size:14px!important;border-radius:15px!important}
.clean-sheet .clean-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:0!important;background:none!important;border:0!important}
.clean-sheet .clean-tabs button{min-height:78px!important;padding:10px 6px!important;border-radius:18px!important;gap:6px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;color:#21324f!important}
.clean-sheet .clean-tabs button.active{color:#1d4ed8!important}
.clean-sheet .clean-tabs button .clean-tab-ico{width:42px!important;height:42px!important;font-size:22px!important;margin:0 auto!important;display:flex!important;align-items:center!important;justify-content:center!important}
.clean-sheet .clean-tabs button .clean-tab-label{display:block!important;width:100%!important;font-size:11.5px!important;line-height:1.15!important;white-space:normal!important;overflow:visible!important;text-align:center!important}
.clean-sheet .clean-pane{padding:16px!important;border-radius:22px!important}
.clean-sheet .clean-section-head{gap:14px!important;align-items:center!important}
.clean-sheet .clean-section-icon{width:54px!important;height:54px!important;flex:0 0 54px!important;font-size:28px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;text-align:center!important}
.clean-sheet .clean-section-title h3{font-size:16px!important}
.clean-sheet .clean-section-title span{font-size:12.5px!important;line-height:1.3!important}
/* AJUSTEMENT (2026-09-10) : font-size remonte a 16px - en dessous, Safari iOS zoome
   automatiquement sur le champ au focus et ne redezoome pas toujours apres (retour
   terrain avec capture d'ecran). 16px est le seuil documente qui desactive ce zoom. */
.clean-sheet input,.clean-sheet select,.clean-sheet textarea{min-height:52px!important;border-radius:16px!important;font-size:16px!important}

/* Forcer la lisibilité sur petit téléphone */
@media (max-width:599px){
  .sheet-modal-v1216 .clean-tabs,.clean-sheet .clean-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
  .sheet-modal-v1216 .clean-tabs button,.clean-sheet .clean-tabs button{min-height:74px!important;padding:8px 5px!important;font-size:11px!important}
  .clean-sheet .sheet-savebar{padding:8px!important}
  .clean-sheet .sheet-savebar .sheet-savebar-meta{padding:7px 10px!important}
  .clean-sheet .clean-main-actions button,.clean-sheet .sheet-savebar .clean-actions button{min-height:44px!important;font-size:14px!important}
  .clean-sheet .clean-section-icon{width:50px!important;height:50px!important;flex-basis:50px!important;font-size:26px!important}
  .clean-sheet .clean-pane{padding:14px!important}
}

/* Accueil famille : cartes plus compactes, texte réellement empilé */
.parent-home-grid-arch{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;margin:0 0 16px!important}
.parent-home-card,.parent-action-card.parent-home-card{display:grid!important;grid-template-columns:44px 1fr 18px!important;align-items:start!important;gap:12px!important;min-height:118px!important;padding:16px 16px 14px!important;border-radius:24px!important;width:100%!important;background:#fff!important;border:1px solid #dce4ef!important;box-shadow:0 8px 22px rgba(15,23,42,.05)!important;text-align:left!important}
.parent-home-ico{width:44px!important;height:44px!important;border-radius:14px!important;display:flex!important;align-items:center!important;justify-content:center!important;background:#eef3ff!important;font-size:24px!important;margin:0!important;line-height:1!important}
.parent-home-copy{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;min-width:0!important;width:100%!important;gap:6px!important}
.parent-home-copy b{display:block!important;margin:0!important;font-size:17px!important;line-height:1.2!important;color:#17284d!important;white-space:normal!important}
.parent-home-copy small{display:block!important;margin:0!important;font-size:13px!important;line-height:1.35!important;color:#6a7689!important;white-space:normal!important;overflow-wrap:anywhere!important}
.parent-home-arrow{display:flex!important;align-items:flex-end!important;justify-content:center!important;font-size:24px!important;line-height:1!important;color:#8ca0c0!important;height:100%}
.parent-alert-card{border-radius:24px!important;padding:16px!important}
.parent-today-card{border-radius:24px!important;padding:16px!important}
.parent-today-card h2{font-size:20px!important;margin:0 0 12px!important}
.parent-today-empty{min-height:84px!important;border-radius:18px!important;font-size:16px!important}

/* Documents à consulter : cartes verticales nettes */
.parent-docs-shell{border-radius:24px!important;padding:16px!important}
.parent-docs-shell h2{font-size:22px!important;margin:0 0 14px!important}
.parent-docs-list{display:grid!important;gap:12px!important}
.parent-doc-card{display:grid!important;grid-template-columns:42px 1fr!important;gap:12px!important;align-items:start!important;padding:14px!important;border-radius:18px!important;background:#f9fbff!important;border:1px solid #dde5f0!important}
.parent-doc-icon{width:42px!important;height:42px!important;border-radius:14px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:22px!important;background:#eef3ff!important}
.parent-doc-copy{display:flex!important;flex-direction:column!important;gap:4px!important;min-width:0!important;width:100%!important}
.parent-doc-copy b{display:block!important;font-size:17px!important;line-height:1.25!important;color:#17284d!important;margin:0!important;white-space:normal!important;overflow-wrap:anywhere!important}
.parent-doc-copy span{display:block!important;font-size:14px!important;line-height:1.35!important;color:#6a7689!important;margin:0!important;white-space:normal!important;overflow-wrap:anywhere!important}
.parent-doc-open{grid-column:2!important;justify-self:start!important;min-width:88px!important;min-height:40px!important;padding:9px 14px!important;border-radius:14px!important;margin-top:2px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;text-decoration:none!important;background:#eef3ff!important;color:#1d4ed8!important;border:1px solid #d7e2ff!important;font-size:14px!important;font-weight:800!important}

/* Mes réservations : compacter légèrement le rendu mobile */
.parent-mobile-sticky-43960{padding-bottom:8px!important}
.parent-month-toolbar-43930{grid-template-columns:48px 1fr 48px!important;padding:8px!important;border-radius:18px!important}
.parent-month-toolbar-43930 .secondary{width:48px!important;height:48px!important;border-radius:14px!important}
.pm-child-select-wrap-43960{padding:8px 10px!important;border-radius:18px!important}
.pm-child-select-wrap-43960 select{min-height:48px!important;border-radius:14px!important}
.pm-mobile-date-strip-43960{padding:6px!important;border-radius:18px!important}
.pm-date-chip-43960{min-width:60px!important;min-height:64px!important;border-radius:16px!important}
.parent-month-card-43930{padding:12px!important;border-radius:24px!important}
.pm-mobile-day-43960{padding:10px!important;border-radius:18px!important;margin-bottom:10px!important}
.pm-mobile-day-head-43964 h2{font-size:17px!important;margin-bottom:8px!important}
.pm-mobile-service-43960{min-height:66px!important;padding:10px 12px!important;border-radius:16px!important;grid-template-columns:38px 1fr auto!important}
.pm-mobile-svc-icon-43960{width:34px!important;height:34px!important;border-radius:10px!important;font-size:20px!important}
.pm-mobile-svc-copy-43960 b{font-size:14px!important}
.pm-mobile-svc-copy-43960 small{font-size:13px!important}
.pm-mobile-state-43960{min-width:82px!important;padding:8px 10px!important;font-size:12px!important}
.parent-month-actions-43931{padding:8px!important;gap:8px!important;border-radius:20px!important}
.parent-month-action-43931{min-height:72px!important;padding:8px 6px!important;border-radius:16px!important}
.parent-month-action-43931 span{font-size:24px!important}
.parent-month-action-43931 b{font-size:11.5px!important;line-height:1.15!important}
.parent-month-action-43931 small{display:none!important}


/* ============================================================
   LWS3.1.22av — finitions mobiles finales fiches + réservations
   Graphique uniquement, sans changement métier
   ============================================================ */

/* Barre d'enregistrement ultra compacte */
.clean-sheet .sheet-savebar{padding:6px!important;gap:6px!important;border-radius:16px!important;box-shadow:0 6px 18px rgba(15,23,42,.04)!important}
.clean-sheet .sheet-savebar .sheet-savebar-meta{padding:6px 10px!important;border-radius:14px!important;gap:4px!important;min-height:auto!important}
.clean-sheet .save-state{display:inline-flex!important;align-items:center!important;min-height:28px!important;padding:4px 10px!important;font-size:11.5px!important;font-weight:800!important}
.clean-sheet .save-record-info,.clean-sheet .save-autosave{font-size:11.5px!important;line-height:1.2!important}
.clean-sheet .clean-main-actions,.clean-sheet .sheet-savebar .clean-actions{gap:8px!important}
.clean-sheet .clean-main-actions button,.clean-sheet .sheet-savebar .clean-actions button{min-height:38px!important;padding:8px 12px!important;font-size:13.5px!important;border-radius:14px!important}
.clean-sheet .clean-primary-btn,.clean-sheet .clean-secondary-btn{box-shadow:none!important}

/* Tuiles des fiches : vraiment petites et toujours visibles sans glisser */
.sheet-modal-v1216 .clean-tabs.clean-tabs-child,
.sheet-modal-v1216 .clean-tabs.clean-tabs-family,
.clean-sheet .clean-tabs.clean-tabs-child,
.clean-sheet .clean-tabs.clean-tabs-family{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  gap:6px!important;
  width:100%!important;
  overflow-x:hidden!important;
  overflow-y:visible!important;
  padding:0!important;
  margin:0 0 10px!important;
  background:none!important;
  border:0!important;
}
.sheet-modal-v1216 .clean-tabs.clean-tabs-child button,
.sheet-modal-v1216 .clean-tabs.clean-tabs-family button,
.clean-sheet .clean-tabs.clean-tabs-child button,
.clean-sheet .clean-tabs.clean-tabs-family button{
  width:100%!important;
  min-width:0!important;
  min-height:56px!important;
  padding:6px 4px!important;
  gap:4px!important;
  border-radius:16px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  white-space:normal!important;
  text-align:center!important;
  overflow:hidden!important;
}
.sheet-modal-v1216 .clean-tabs.clean-tabs-child button .clean-tab-ico,
.sheet-modal-v1216 .clean-tabs.clean-tabs-family button .clean-tab-ico,
.clean-sheet .clean-tabs.clean-tabs-child button .clean-tab-ico,
.clean-sheet .clean-tabs.clean-tabs-family button .clean-tab-ico{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  min-height:28px!important;
  border-radius:10px!important;
  font-size:15px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0 auto!important;
}
.sheet-modal-v1216 .clean-tabs.clean-tabs-child button .clean-tab-label,
.sheet-modal-v1216 .clean-tabs.clean-tabs-family button .clean-tab-label,
.clean-sheet .clean-tabs.clean-tabs-child button .clean-tab-label,
.clean-sheet .clean-tabs.clean-tabs-family button .clean-tab-label{
  display:block!important;
  width:100%!important;
  font-size:10px!important;
  line-height:1.1!important;
  font-weight:800!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

/* Icônes des entêtes de section : vraie taille visible */
.clean-sheet .clean-section-title .clean-section-icon{
  width:44px!important;
  height:44px!important;
  flex:0 0 44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:14px!important;
  font-size:22px!important;
  line-height:1!important;
  margin:0!important;
}
.clean-sheet .clean-section-title h3{font-size:15px!important;line-height:1.15!important}
.clean-sheet .clean-section-title span:not(.clean-section-icon){font-size:11.5px!important;line-height:1.25!important}
.clean-sheet .clean-pane{padding:14px!important;border-radius:20px!important}
.clean-sheet .field label{font-size:12px!important}
.clean-sheet input,.clean-sheet select,.clean-sheet textarea{min-height:48px!important;padding:12px 14px!important;font-size:16px!important}

/* Cartes de complétion un peu moins gourmandes */
.clean-sheet .completion-banner{padding:12px!important;gap:10px!important;border-radius:18px!important}
.clean-sheet .completion-ring{width:58px!important;height:58px!important;flex-basis:58px!important}
.clean-sheet .completion-copy b{font-size:14px!important}
.clean-sheet .completion-copy span{font-size:12px!important}
.clean-sheet .completion-meter{height:10px!important}
.clean-sheet .completion-cta,.clean-sheet .completion-banner button[data-clean-missing]{min-height:40px!important;font-size:13px!important}

/* Réservations : laisser respirer le premier jour et réduire les actions du bas */
.parent-month-card-43930{padding-top:16px!important}
.pm-mobile-days-43960{padding-top:6px!important}
.pm-mobile-day-43960:first-child{margin-top:6px!important}
.pm-mobile-day-head-43964 h2{scroll-margin-top:130px!important}
.parent-month-actions-43931{padding:6px!important;gap:6px!important;border-radius:18px!important}
.parent-month-action-43931{min-height:64px!important;padding:6px 4px!important;border-radius:14px!important}
.parent-month-action-43931 span{font-size:21px!important}
.parent-month-action-43931 b{font-size:10.5px!important;line-height:1.12!important}
.parent-month-action-43931 small{display:none!important}

@media (max-width:599px){
  .clean-sheet .sheet-savebar{padding:5px!important}
  .clean-sheet .sheet-savebar .sheet-savebar-meta{padding:5px 8px!important}
  .clean-sheet .save-state{padding:4px 8px!important;font-size:11px!important;min-height:26px!important}
  .clean-sheet .save-record-info,.clean-sheet .save-autosave{font-size:11px!important}
  .clean-sheet .clean-main-actions button,.clean-sheet .sheet-savebar .clean-actions button{min-height:36px!important;font-size:13px!important;padding:7px 10px!important}
  .sheet-modal-v1216 .clean-tabs.clean-tabs-child,
  .sheet-modal-v1216 .clean-tabs.clean-tabs-family,
  .clean-sheet .clean-tabs.clean-tabs-child,
  .clean-sheet .clean-tabs.clean-tabs-family{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important}
  .sheet-modal-v1216 .clean-tabs.clean-tabs-child button,
  .sheet-modal-v1216 .clean-tabs.clean-tabs-family button,
  .clean-sheet .clean-tabs.clean-tabs-child button,
  .clean-sheet .clean-tabs.clean-tabs-family button{min-height:52px!important;padding:5px 3px!important;border-radius:14px!important}
  .sheet-modal-v1216 .clean-tabs.clean-tabs-child button .clean-tab-ico,
  .sheet-modal-v1216 .clean-tabs.clean-tabs-family button .clean-tab-ico,
  .clean-sheet .clean-tabs.clean-tabs-child button .clean-tab-ico,
  .clean-sheet .clean-tabs.clean-tabs-family button .clean-tab-ico{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;font-size:13px!important;border-radius:8px!important}
  .sheet-modal-v1216 .clean-tabs.clean-tabs-child button .clean-tab-label,
  .sheet-modal-v1216 .clean-tabs.clean-tabs-family button .clean-tab-label,
  .clean-sheet .clean-tabs.clean-tabs-child button .clean-tab-label,
  .clean-sheet .clean-tabs.clean-tabs-family button .clean-tab-label{font-size:9.5px!important;line-height:1.05!important}
  .clean-sheet .clean-section-title .clean-section-icon{width:40px!important;height:40px!important;flex-basis:40px!important;font-size:20px!important}
  .clean-sheet .clean-pane{padding:12px!important}
  .parent-month-card-43930{padding-top:18px!important}
  .pm-mobile-days-43960{padding-top:10px!important}
}


/* ============================================================
   LWS3.1.22aw — optimisation mobile finale
   Fiches compactes + réservations sans chevauchement
   Graphique uniquement
   ============================================================ */

/* --- Fiches : en-tête de modale compact, zéro espace perdu --- */
@media (max-width:700px){
  .modal-back .modal:has(.clean-sheet) .modal-head{
    min-height:52px!important;
    padding:7px 10px!important;
  }
  .modal-back .modal:has(.clean-sheet) .modal-head h2{
    font-size:16px!important;
    line-height:1.15!important;
  }
  .modal-back .modal:has(.clean-sheet) .modal-head .iconbtn{
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    min-height:40px!important;
    border-radius:14px!important;
    font-size:22px!important;
  }
  .modal-back .modal:has(.clean-sheet) .modal-body{
    padding:6px 7px 10px!important;
  }
  .clean-sheet{gap:7px!important}
}

/* --- Fiches : état + actions sur une seule ligne, très compact --- */
.clean-sheet .sheet-savebar{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:7px!important;
  padding:5px 6px!important;
  margin:0 0 5px!important;
  min-height:0!important;
  border-radius:14px!important;
}
.clean-sheet .sheet-savebar .sheet-savebar-meta{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  min-height:0!important;
}
/* AJUSTEMENT (2026-09-10, audit tactile approfondi) : min-width ajoutee. Ce badge
   change de texte ("Aucune modification" -> "A enregistrer" -> "Enregistrement..."
   -> "Enregistre") a chaque saisie/coche, sans largeur reservee jusqu'ici. La barre
   n'etant plus collante (position:sticky retiree plus tot dans ce chantier iOS), un
   changement de largeur du badge peut legerement redistribuer le contenu de la barre
   et decaler ce qui suit d'une poignee de pixels au moment precis ou WebKit compare
   les coordonnees de debut/fin de toucher - piste concrete identifiee dans le
   journal terrain ("deplacement trop important" juste apres une coche precedente).
   Largeur reservee sur le texte le plus long pour eliminer ce decalage. */
.clean-sheet .save-state{
  min-height:26px!important;
  min-width:118px!important;
  padding:4px 9px!important;
  border-radius:999px!important;
  font-size:10.5px!important;
  line-height:1!important;
  white-space:nowrap!important;
  text-align:center!important;
}
.clean-sheet .save-record-info,.clean-sheet .save-autosave{display:none!important}
.clean-sheet .sheet-savebar .clean-actions,
.clean-sheet .clean-main-actions{
  display:flex!important;
  flex-wrap:nowrap!important;
  justify-content:flex-end!important;
  gap:6px!important;
  width:auto!important;
  margin:0!important;
}
.clean-sheet .sheet-savebar .clean-actions button,
.clean-sheet .clean-main-actions button{
  flex:0 1 auto!important;
  width:auto!important;
  min-width:82px!important;
  min-height:32px!important;
  padding:6px 10px!important;
  border-radius:11px!important;
  font-size:12px!important;
  line-height:1!important;
}
.clean-sheet-inline .sheet-savebar{grid-template-columns:auto 1fr!important}
.clean-sheet-inline .sheet-savebar .clean-actions button{min-width:110px!important}

/* --- Fiches : tuiles navigation beaucoup plus petites, toutes visibles --- */
.sheet-modal-v1216 .clean-tabs.clean-tabs-child,
.sheet-modal-v1216 .clean-tabs.clean-tabs-family,
.clean-sheet .clean-tabs.clean-tabs-child,
.clean-sheet .clean-tabs.clean-tabs-family{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  gap:5px!important;
  width:100%!important;
  max-width:100%!important;
  margin:0 0 7px!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
}
.sheet-modal-v1216 .clean-tabs.clean-tabs-child button,
.sheet-modal-v1216 .clean-tabs.clean-tabs-family button,
.clean-sheet .clean-tabs.clean-tabs-child button,
.clean-sheet .clean-tabs.clean-tabs-family button{
  width:100%!important;
  min-width:0!important;
  min-height:46px!important;
  height:auto!important;
  padding:4px 3px!important;
  gap:3px!important;
  border-radius:13px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
  white-space:normal!important;
  text-align:center!important;
}
.sheet-modal-v1216 .clean-tabs button .clean-tab-ico,
.clean-sheet .clean-tabs button .clean-tab-ico{
  width:23px!important;
  height:23px!important;
  min-width:23px!important;
  min-height:23px!important;
  border-radius:8px!important;
  font-size:13px!important;
  line-height:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0 auto!important;
}
.sheet-modal-v1216 .clean-tabs button .clean-tab-label,
.clean-sheet .clean-tabs button .clean-tab-label{
  display:block!important;
  width:100%!important;
  font-size:9px!important;
  line-height:1.05!important;
  font-weight:800!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:center!important;
}

/* --- Fiches : cartes contenu prioritaires + icône bien proportionnée --- */
.clean-sheet .clean-pane{
  padding:11px!important;
  border-radius:18px!important;
}
.clean-sheet .clean-section-title{
  margin:0 0 10px!important;
  padding:0 0 9px!important;
}
.clean-sheet .clean-section-head{gap:10px!important;align-items:center!important}
.clean-sheet .clean-section-title .clean-section-icon{
  width:38px!important;
  height:38px!important;
  flex:0 0 38px!important;
  padding:0!important;
  border-radius:11px!important;
  font-size:21px!important;
  line-height:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.clean-sheet .clean-section-title h3{font-size:14px!important;line-height:1.15!important}
.clean-sheet .clean-section-title span:not(.clean-section-icon){font-size:11px!important;line-height:1.2!important;margin-top:2px!important}
.clean-sheet .field{gap:5px!important}
.clean-sheet .field label{font-size:11.5px!important}
.clean-sheet input,.clean-sheet select,.clean-sheet textarea{
  min-height:44px!important;
  padding:10px 12px!important;
  border-radius:14px!important;
  font-size:16px!important;
}

/* Personnes autorisées : éviter l'énorme bouton Supprimer */
.clean-sheet #ccContacts .cc-contact{padding:9px!important;border-radius:14px!important}
.clean-sheet #ccContacts .clean-contact-line{gap:7px!important}
.clean-sheet #ccContacts [data-del-contact]{
  width:auto!important;
  min-width:96px!important;
  min-height:34px!important;
  justify-self:end!important;
  padding:7px 12px!important;
  border-radius:11px!important;
  font-size:11.5px!important;
}
@media (max-width:900px){
  .clean-sheet #ccContacts .clean-contact-line .danger{grid-column:auto!important}
}
@media (max-width:560px){
  .clean-sheet #ccContacts .clean-contact-line{grid-template-columns:1fr 1fr!important}
  .clean-sheet #ccContacts [data-del-contact]{grid-column:2!important;justify-self:end!important}
}

/* --- Réservations portrait : header réellement compact et flux sans chevauchement --- */
@media (max-width:700px) and (orientation:portrait){
  body:has(.parent-mobile-sticky-43960){
    overflow:auto!important;
    background:#eef2f7!important;
  }
  body:has(.parent-mobile-sticky-43960) .main{
    height:auto!important;
    max-height:none!important;
    min-height:100dvh!important;
    overflow:visible!important;
    padding:0 6px 74px!important;
  }
  .parent-mobile-sticky-43960{
    position:sticky!important;
    inset:auto!important;
    top:0!important;
    z-index:100!important;
    padding:4px 5px 4px!important;
    border-bottom:1px solid #d7dee8!important;
    box-shadow:0 3px 10px rgba(15,23,42,.08)!important;
    background:rgba(255,255,255,.98)!important;
  }
  .parent-mobile-sticky-43960 .parent-month-head-43930{margin:0 0 2px!important}
  .parent-mobile-sticky-43960 .parent-month-head-43930 h1{
    margin:0!important;
    padding-right:38px!important;
    font-size:.83rem!important;
    line-height:1.05!important;
  }
  .parent-mobile-sticky-43960 .parent-month-toolbar-43930{
    grid-template-columns:30px minmax(0,1fr) 30px!important;
    gap:3px!important;
    margin:0 0 3px!important;
    padding:2px!important;
    border-radius:9px!important;
  }
  .parent-mobile-sticky-43960 .parent-month-toolbar-43930 button{
    width:28px!important;
    height:28px!important;
    min-height:28px!important;
    border-radius:7px!important;
    font-size:1rem!important;
  }
  .parent-mobile-sticky-43960 .parent-month-toolbar-43930 strong{font-size:.76rem!important}
  .pm-child-select-wrap-43960{
    grid-template-columns:38px minmax(0,1fr)!important;
    gap:4px!important;
    margin:0 0 3px!important;
    font-size:.58rem!important;
  }
  .pm-child-select-wrap-43960 select{
    height:29px!important;
    min-height:29px!important;
    padding:2px 25px 2px 7px!important;
    border-radius:8px!important;
    font-size:.68rem!important;
  }
  .pm-mobile-date-strip-43960{gap:3px!important;padding:0 0 1px!important}
  .pm-date-chip-43960{
    flex:0 0 36px!important;
    width:36px!important;
    min-width:36px!important;
    min-height:34px!important;
    height:34px!important;
    padding:1px!important;
    border-radius:8px!important;
  }
  .pm-date-chip-43960 small{font-size:.48rem!important}
  .pm-date-chip-43960 b{font-size:.72rem!important}
  .pm-landscape-hint-43964{
    min-height:12px!important;
    margin:1px 0 0!important;
    font-size:.47rem!important;
    line-height:1!important;
  }
  .parent-month-card-43930{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    z-index:10!important;
    margin:6px 0 0!important;
    padding:6px 0 4px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    max-height:none!important;
  }
  .parent-month-help-btn-43965{display:none!important}
  .pm-mobile-days-43960{display:block!important;padding:0!important}
  .pm-mobile-day-43960{
    scroll-margin-top:118px!important;
    margin:0 0 6px!important;
    padding:6px!important;
    border-radius:11px!important;
  }
  .pm-mobile-day-43960:first-child{margin-top:0!important}
  .pm-mobile-day-head-43964{margin:0 0 4px!important}
  .pm-mobile-day-43960 .pm-mobile-day-head-43964 h2{
    margin:0!important;
    font-size:.72rem!important;
    line-height:1.1!important;
  }
  .pm-mobile-services-43960{gap:4px!important}
  .pm-mobile-service-43960{
    min-height:43px!important;
    padding:4px 6px!important;
    border-radius:9px!important;
    grid-template-columns:26px minmax(0,1fr) auto!important;
    gap:6px!important;
  }
  .pm-mobile-svc-icon-43960{width:24px!important;height:24px!important;font-size:.95rem!important;border-radius:7px!important}
  .pm-mobile-svc-copy-43960 b{font-size:.74rem!important}
  .pm-mobile-svc-copy-43960 small{font-size:.58rem!important}
  .pm-mobile-state-43960{font-size:.58rem!important;padding:3px 6px!important;min-width:66px!important}
  .pm-mobile-closed-43960{min-height:38px!important;padding:6px!important;font-size:.65rem!important}
  .parent-month-actions-43931{
    left:6px!important;
    right:6px!important;
    bottom:max(4px,env(safe-area-inset-bottom))!important;
    padding:4px!important;
    gap:3px!important;
    border-radius:11px!important;
  }
  .parent-month-action-43931{
    min-height:50px!important;
    padding:3px 2px!important;
    border-radius:10px!important;
    gap:1px!important;
  }
  .parent-month-action-43931>span{font-size:.95rem!important}
  .parent-month-action-43931 b{font-size:.57rem!important;line-height:1.05!important}
  .parent-month-action-43931 small{display:none!important}
}


/* ============================================================
   LWS3.1.22ax — 2 corrections ciblées : scroll réservations + prestations mobile
   Aucun changement métier
   ============================================================ */

/* 1) Réservations portrait : retour au fonctionnement qui défile dans la zone centrale,
      avec hauteur calculée sur les vrais bandeaux pour ne jamais masquer le premier jour. */
@media (max-width:700px) and (orientation:portrait){
  body:has(.parent-mobile-sticky-43960){
    overflow:hidden!important;
    height:100dvh!important;
    background:#eef2f7!important;
  }
  body:has(.parent-mobile-sticky-43960) .main{
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:0!important;
  }
  .parent-mobile-sticky-43960{
    position:fixed!important;
    inset:0 0 auto 0!important;
    z-index:100!important;
  }
  .parent-month-card-43930{
    position:fixed!important;
    top:calc(var(--parent-month-head-h-43988, 190px) + 5px)!important;
    left:6px!important;
    right:6px!important;
    bottom:calc(var(--parent-month-actions-h-43988, 58px) + max(5px,env(safe-area-inset-bottom)))!important;
    z-index:10!important;
    margin:0!important;
    padding:4px 0 8px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
  .pm-mobile-days-43960{padding:0!important}
  .pm-mobile-day-43960:first-child{margin-top:0!important}
  .pm-mobile-day-43960{scroll-margin-top:4px!important}
  .parent-month-actions-43931{
    position:fixed!important;
    left:6px!important;
    right:6px!important;
    bottom:max(4px,env(safe-area-inset-bottom))!important;
    z-index:120!important;
  }
}

/* 2) Fiche enfant > Prestations : vrai rendu responsive en cartes sur téléphone/tablette. */
@media (max-width:900px){
  .clean-sheet #cc-services .toolbar.sticky-tools{
    position:static!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin:0 0 10px!important;
    padding:0!important;
    background:transparent!important;
  }
  .clean-sheet #cc-services .toolbar.sticky-tools .field{min-width:0!important;width:auto!important;margin:0!important}
  .clean-sheet #cc-services .toolbar.sticky-tools #ccExportServices{
    grid-column:1/-1!important;
    min-height:38px!important;
    width:100%!important;
    padding:8px 12px!important;
    border-radius:12px!important;
    font-size:12px!important;
  }
  .clean-services-table{
    overflow:visible!important;
    border:0!important;
    background:transparent!important;
    border-radius:0!important;
  }
  .clean-services-table table,
  .clean-services-table tbody,
  .clean-services-table tfoot,
  .clean-services-table tr,
  .clean-services-table td,
  .clean-services-table th{box-sizing:border-box!important}
  .clean-services-table table,
  .clean-services-table tbody{display:block!important;width:100%!important;min-width:0!important}
  .clean-services-table thead{display:none!important}
  .clean-services-table tbody tr{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:0!important;
    width:100%!important;
    margin:0 0 10px!important;
    padding:8px 12px!important;
    border:1px solid #dbe4ee!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 3px 12px rgba(15,23,42,.04)!important;
    overflow:hidden!important;
  }
  .clean-services-table tbody td{
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr)!important;
    align-items:start!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    padding:7px 0!important;
    border:0!important;
    border-bottom:1px solid #edf1f5!important;
    text-align:left!important;
    font-size:12.5px!important;
    line-height:1.3!important;
    overflow-wrap:anywhere!important;
  }
  .clean-services-table tbody td:last-child{border-bottom:0!important}
  .clean-services-table tbody td::before{
    content:attr(data-label)!important;
    display:block!important;
    min-width:0!important;
    color:#64748b!important;
    font-size:10.5px!important;
    font-weight:850!important;
    text-transform:uppercase!important;
    letter-spacing:.02em!important;
  }
  .clean-services-table tbody td[data-label="Jour"]{
    display:block!important;
    padding:2px 0 8px!important;
    margin-bottom:2px!important;
    border-bottom:1px solid #dce5ef!important;
    color:#172033!important;
    font-size:15px!important;
    font-weight:850!important;
  }
  .clean-services-table tbody td[data-label="Jour"]::before{display:none!important}
  .clean-services-table .service-click-text{display:inline!important;white-space:normal!important}
  .clean-services-table small,.clean-services-table .mini{font-size:10.5px!important;line-height:1.25!important}
  .clean-services-table tfoot{
    display:block!important;
    width:100%!important;
    margin-top:4px!important;
  }
  .clean-services-table tfoot tr{
    display:grid!important;
    grid-template-columns:1fr auto auto!important;
    align-items:center!important;
    gap:8px!important;
    padding:10px 12px!important;
    border:1px solid #cbd9ea!important;
    border-radius:14px!important;
    background:#f5f8fc!important;
  }
  .clean-services-table tfoot th{
    display:block!important;
    width:auto!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    position:static!important;
    text-transform:none!important;
    letter-spacing:0!important;
    font-size:12px!important;
  }
  .clean-services-table tfoot th[colspan]{font-weight:850!important;color:#334155!important}
  .clean-services-table tfoot .right{text-align:right!important;white-space:nowrap!important}
}
@media (max-width:520px){
  .clean-services-table tbody td{grid-template-columns:78px minmax(0,1fr)!important;gap:8px!important;font-size:12px!important}
  .clean-services-table tbody tr{padding:7px 10px!important;border-radius:14px!important}
  .clean-services-table tfoot tr{grid-template-columns:1fr auto!important}
  .clean-services-table tfoot th[colspan]{grid-column:1/-1!important}
}


/* V12.22be - périodes admin PC : Mercredis récréatifs + ALSH
   Une période = une ligne pleine largeur. Empêche les cartes et boutons de se comprimer
   ou de déborder lorsque la fenêtre PC n'occupe qu'une partie de l'écran. */
.main .v1120-period-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
}
.main .v1120-period-card{
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px 18px!important;
  overflow:hidden!important;
}
.main .v1120-period-card .pc-main{
  flex:1 1 280px!important;
  min-width:0!important;
  max-width:100%!important;
}
.main .v1120-period-card .pc-main h3{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}
.main .v1120-period-card .pc-main h3 small{
  display:block!important;
  margin-top:3px!important;
  color:var(--muted,#64748b)!important;
  font-size:.78rem!important;
  font-weight:650!important;
  line-height:1.25!important;
}
.main .v1120-period-card .period-actions{
  flex:0 1 auto!important;
  min-width:0!important;
  max-width:100%!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:8px!important;
}
.main .v1120-period-card .period-actions button{
  min-width:0!important;
  max-width:100%!important;
  white-space:nowrap!important;
  margin:0!important;
}
@media(max-width:1100px){
  .main .v1120-period-card{
    align-items:stretch!important;
  }
  .main .v1120-period-card .period-actions{
    flex:1 1 100%!important;
    justify-content:flex-start!important;
  }
}
@media(max-width:700px){
  .main .v1120-period-card .period-actions button{
    flex:1 1 100%!important;
    width:100%!important;
    white-space:normal!important;
  }
}

/* ==========================================================
   Périscolaire 4.0 — Pointage quotidien canonique
   Un seul rendu logique ; densité et confort tactile adaptés au viewport.
   ========================================================== */
.v4p-page{max-width:1180px;margin:0 auto}
.v4p-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.v4p-head h1{margin:0}.v4p-head .subtitle{margin:.2rem 0 0}
.v4p-toolbar{display:grid;grid-template-columns:minmax(210px,1fr) 165px auto;gap:7px;align-items:end;margin-bottom:7px}
.v4p-toolbar .field{margin:0}.v4p-toolbar input{min-height:38px}
.v4p-summary{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 6px}
.v4p-summary .mini-kpi{min-width:90px;padding:7px 10px;border-radius:10px}
.v4p-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border,#e2e8f0);border-radius:12px;overflow:visible;background:var(--card,#fff);position:relative}
.v4p-class{min-height:27px;padding:2px 7px;display:flex;align-items:center;gap:8px;background:var(--soft,#f8fafc);border-top:1px solid var(--border,#e2e8f0);border-bottom:1px solid var(--border,#e2e8f0);font-weight:800}
.v4p-class:first-child{border-top:0}
.v4p-class-name{flex:1;min-width:0}
.v4p-class-count{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#16834b;color:#fff;font-size:.86rem;line-height:1;font-weight:850;box-shadow:inset 0 -1px 0 rgba(0,0,0,.14)}
.v4p-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(82px,auto) auto;align-items:center;gap:5px;min-height:35px;padding:1px 7px;border-bottom:1px solid #edf1f6}
.v4p-row:last-child{border-bottom:0}.v4p-row.done{background:rgba(22,131,75,.035)}
.v4p-child{min-width:0;text-align:left!important;background:none;border:0;padding:0;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;gap:6px;width:100%;justify-self:start}
.v4p-child-copy{min-width:0;text-align:left!important;display:flex;flex-direction:column;align-items:flex-start}.v4p-child b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.94rem}.v4p-child small{display:none}.v4p-avatar{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--soft,#eef3f8);border:1px solid var(--border,#dbe3ee);font-size:.75rem;font-weight:850;color:var(--text,#172033)}.v4p-child-icon svg{width:15px;height:15px;display:block}.v4p-hours{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:2px 7px;border-radius:999px;background:#eef6ff;color:#1d4ed8;font-size:.74rem;font-weight:850;white-space:nowrap;border:1px solid #dbeafe}.v4p-apc-chip{display:inline-flex;margin-top:2px;width:max-content;padding:1px 5px;border-radius:999px;background:#f3e8ff;color:#7e22ce;font-size:.66rem;font-weight:800;line-height:1.35}.v4-confirm{text-align:center;padding:4px 2px 2px}.v4-confirm-icon{font-size:2rem;line-height:1;margin-bottom:8px}.v4-confirm p{margin:0 0 14px;color:var(--text,#172033);line-height:1.45}.v4-confirm-actions{justify-content:center!important}
.v4p-state{min-width:0;display:flex;align-items:center;justify-content:flex-start;gap:5px;flex-wrap:wrap}
.v4p-actions{display:flex;align-items:center;justify-content:flex-end;gap:3px;min-width:0}.v4p-actions button{margin:0;min-height:31px;padding:3px 8px}
.v4p-search-results{margin:0 0 8px}.v4p-search-results .person-card{margin:4px 0}
.v4p-empty{padding:22px;text-align:center;color:var(--muted,#64748b)}
.v4p-sync{font-size:.8rem;color:var(--muted,#64748b);white-space:nowrap}
.v4p-date-warning{margin:0 0 8px;padding:8px 10px;border-radius:9px;background:#fff7ed;color:#9a3412;font-weight:700}

@media(max-width:900px){
  .v4p-page{max-width:none}
  .v4p-head{margin-bottom:6px}
  .v4p-head .subtitle{display:none}
  .v4p-toolbar{grid-template-columns:minmax(0,1fr) 145px auto;position:sticky;top:0;z-index:8;background:var(--bg,#f5f7fb);padding:5px 0 7px;margin-bottom:4px}
  .v4p-toolbar .v4p-export{display:none}
  .v4p-summary{gap:5px;margin-bottom:5px}.v4p-summary .mini-kpi{padding:5px 8px;min-width:76px}
  .v4p-class{min-height:26px;padding:2px 7px}.v4p-class-count{width:22px;height:22px;font-size:.76rem}
  .v4p-row{grid-template-columns:minmax(0,1fr) auto;min-height:35px;padding:1px 5px;gap:3px}
  .v4p-state{display:none}
  .v4p-actions{gap:2px}.v4p-actions button{min-height:32px;min-width:34px;padding:3px 7px;font-size:.82rem}
  .v4p-child b{font-size:.9rem}
}
@media(max-width:520px){
  .main:has(.v4p-page){padding-left:7px!important;padding-right:7px!important}
  .v4p-toolbar{grid-template-columns:minmax(0,1fr) 132px}
  .v4p-toolbar .v4p-today{display:none}
  .v4p-head h1{font-size:1.25rem}
  .v4p-summary .mini-kpi{min-width:0;flex:1 1 0}.v4p-summary .mini-kpi b{font-size:1rem}
  .v4p-row{min-height:33px}
  .v4p-actions button{font-size:.8rem;padding:3px 7px}
}

/* 4.0.1 — Communications parents, gestion cantine et transports */
.v4-tabs{display:inline-flex;gap:3px;flex-wrap:wrap;margin:0 0 12px;padding:4px;border:1px solid var(--border,#dbe3ee);border-radius:12px;background:var(--soft,#f8fafc)}
.v4-tabs button{margin:0;border:0;background:transparent;padding:8px 13px;border-radius:9px;color:var(--muted,#64748b);font-weight:700}
.v4-tabs button.active{background:var(--card,#fff);color:var(--text,#172033);box-shadow:0 1px 4px rgba(15,23,42,.1)}
.v401-compose-card{padding:18px}
.v401-compose-head,.v401-section-head,.v401-message-head,.v401-menu-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.v401-compose-head{margin-bottom:14px}.v401-compose-head h2,.v401-section-head h2,.v401-menu-card h3,.v401-message-head h2{margin:0}.v401-compose-head p,.v401-section-head p{margin:.25rem 0 0}
.v401-editor{border:1px solid var(--border,#dbe3ee);border-radius:13px;background:var(--card,#fff);overflow:hidden}
.v401-editor-tools{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:7px;background:var(--soft,#f8fafc);border-bottom:1px solid var(--border,#dbe3ee)}
.v401-editor-group{display:flex;align-items:center;gap:3px;padding-right:5px;border-right:1px solid var(--border,#dbe3ee)}.v401-editor-group:last-child{border-right:0}.v401-editor-group.grow{flex:1 1 390px}
.v401-editor-tools button{min-width:34px;min-height:34px;margin:0;padding:5px 8px}
.v401-editor-tools select{min-height:34px;margin:0;max-width:165px;padding:4px 28px 4px 8px}
.v401-color-tool{position:relative;display:flex;align-items:center;justify-content:center;min-width:35px;height:34px;border:1px solid var(--border,#dbe3ee);border-radius:8px;background:var(--card,#fff);font-weight:800;cursor:pointer;overflow:hidden}
.v401-color-tool input{position:absolute;inset:auto 2px 2px;width:30px;height:7px;border:0;padding:0;opacity:.85;cursor:pointer}
.v4-rich-editor{min-height:240px;max-height:58vh;border:0;background:var(--card,#fff);padding:16px 18px;line-height:1.58;overflow:auto;font-size:16px}
.v4-rich-editor:focus{outline:none;box-shadow:inset 0 0 0 2px rgba(37,99,235,.16)}
.v4-rich-editor h2{font-size:1.65rem;margin:.5em 0}.v4-rich-editor h3{font-size:1.25rem;margin:.5em 0}.v4-rich-editor blockquote{margin:10px 0;padding:8px 12px;border-left:4px solid var(--border,#cbd5e1);background:var(--soft,#f8fafc)}
.v401-editor-foot{display:flex;justify-content:space-between;gap:12px;padding:7px 10px;border-top:1px solid var(--border,#dbe3ee);font-size:.78rem;color:var(--muted,#64748b)}
.v401-compose-actions{justify-content:flex-end;margin-top:12px}
.v401-message-preview{line-height:1.6;padding:6px}
.v401-parent-inbox{display:grid;gap:10px}
.v4-message-card{padding:16px 18px;border:1px solid var(--border,#e2e8f0);border-radius:13px;background:var(--card,#fff);box-shadow:0 2px 8px rgba(15,23,42,.04)}
.v4-message-card[data-focus="1"]{outline:2px solid #2563eb;outline-offset:3px}
.v401-message-date,.v401-menu-week,.v401-home-kicker{display:block;font-size:.75rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--muted,#64748b);margin-bottom:4px}
.v4-message-body{line-height:1.58;overflow-wrap:anywhere;margin-top:12px}.v4-message-body p:first-child{margin-top:0}.v4-message-body p:last-child{margin-bottom:0}
.v401-delete-message{white-space:nowrap}
.v4-menu-grid.v401-menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}
.v401-menu-card{padding:14px;overflow:visible}.v401-menu-card-head{margin-bottom:10px}.v401-menu-card h3{margin-top:2px}
.v401-menu-thumb{display:block;width:100%;padding:0;border:0;background:transparent;position:relative;cursor:pointer}
.v401-menu-thumb .v4-menu-preview{width:100%;height:340px;max-height:none;object-fit:contain;background:#fff;border-radius:10px;border:1px solid var(--border,#e2e8f0)}
.v401-menu-thumb>span{position:absolute;right:8px;bottom:8px;padding:6px 9px;border-radius:8px;background:rgba(15,23,42,.82);color:#fff;font-size:.8rem;font-weight:700}
.v401-menu-publisher{margin-bottom:12px}
.v401-menu-modal{max-width:980px;margin:auto}.v401-menu-dates{font-weight:800;color:var(--muted,#64748b)}.v401-menu-modal-img{display:block;max-width:100%;max-height:68vh;margin:0 auto 12px;object-fit:contain;background:#fff;border:1px solid var(--border,#e2e8f0);border-radius:12px}
.v4-transport-group{margin-bottom:14px}.v4-transport-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;background:var(--soft,#f8fafc);font-weight:800}.v4-transport-head .count{margin-left:auto}

/* Accueil parents : les publications et le menu sont intégrés en cartes d'information, sans afficher le document en pleine page. */
.v401-home-news{margin:2px 0 14px}.v401-home-news-title{display:flex;align-items:baseline;gap:8px;margin:0 2px 7px}.v401-home-news-title span{font-weight:850;font-size:1rem}.v401-home-news-title small{color:var(--muted,#64748b)}
.v401-home-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v401-home-feature{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 14px;margin:0;min-height:94px}
.v401-home-feature-icon{width:42px;height:42px;border-radius:12px;background:var(--soft,#f1f5f9);display:flex;align-items:center;justify-content:center;font-size:1.35rem}
.v401-home-feature-copy{min-width:0}.v401-home-feature-copy h3{margin:1px 0 3px;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v401-home-feature-copy p{margin:0;color:var(--muted,#64748b);font-size:.84rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v401-home-feature-action{white-space:nowrap}

/* Pointage 4.0.1 : dense mais tactile ; le menu ⋮ reste visible même avec un seul résultat filtré. */
.v4p-toolbar>label{display:flex;flex-direction:column;gap:3px;font-size:.8rem;font-weight:700;color:var(--muted,#64748b)}
.v4p-summary>span{display:flex;align-items:baseline;gap:4px;padding:4px 8px;border-radius:8px;background:var(--soft,#f8fafc);font-size:.8rem;color:var(--muted,#64748b)}
.v4p-summary>span b{font-size:.96rem;color:var(--text,#172033)}
.v4p-status{min-width:0;display:flex;align-items:center;justify-content:flex-start}.v4p-state{font-size:.8rem;font-weight:700}.v4p-state.ok{color:#16834b}.v4p-state.bad{color:#b91c1c}.v4p-state.warn{color:#a16207}.v4p-state.info{color:#1d4ed8}
.v4p-more{position:relative;z-index:3}.v4p-more[open]{z-index:40}.v4p-more>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:34px;min-height:34px;border-radius:8px;border:1px solid var(--border,#dbe3ee);font-size:1.18rem;background:var(--card,#fff)}
.v4p-more>summary::-webkit-details-marker{display:none}.v4p-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:218px;padding:7px;background:var(--card,#fff);border:1px solid var(--border,#dbe3ee);border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.2)}
.v4p-menu>b{display:block;padding:4px 6px 6px}.v4p-option{display:block;width:100%;text-align:left;margin:2px 0}
.v4p-add{margin:0 0 7px;padding:8px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff}.v4p-add-title{display:flex;align-items:baseline;gap:7px;margin:0 2px 5px}.v4p-add-title span{font-size:.78rem;color:#475569}
.v4p-add>button{width:100%;display:grid;grid-template-columns:27px minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;margin:3px 0;padding:6px 8px;background:var(--card,#fff)}
.v4p-add-copy{display:flex;flex-direction:column;min-width:0}.v4p-add>button small{color:var(--muted,#64748b)}.v4p-add>button.is-loading{opacity:.65}
.v4p-shell{padding:12px}

@media(max-width:900px){
  .v4p-status{display:none}.v4p-head-actions{display:none}.v4p-toolbar>label{font-size:.74rem}.v4p-summary>span{flex:1 1 0;justify-content:center;padding:4px 5px}.v4p-more>summary{min-width:42px;min-height:40px}
  .v4p-avatar{flex-basis:26px;width:26px;height:26px}.v4p-shell{padding:8px}
  .v401-home-feature-grid{grid-template-columns:1fr}.v401-home-feature{grid-template-columns:42px minmax(0,1fr) auto}
}
@media(max-width:640px){
  .v4-rich-editor{min-height:190px;padding:12px}.v401-editor-group.grow{flex-basis:100%}.v401-editor-tools select{max-width:145px}
  .v4-menu-grid.v401-menu-grid{grid-template-columns:1fr}.v401-menu-thumb .v4-menu-preview{height:300px}
  .v401-message-head{align-items:flex-start}.v401-delete-message{padding:6px 8px;min-width:38px;font-size:.78rem}
  .v401-home-feature{grid-template-columns:38px minmax(0,1fr);padding:11px}.v401-home-feature-icon{width:38px;height:38px}.v401-home-feature-action{grid-column:1/-1;width:100%}
  .v401-home-news-title small{display:none}
}


/* 4.0.2 — recherche pointage lisible sur tous les thèmes + résultats d'ajout explicites. */
.v4p-add>button{color:var(--text,#172033)!important;border:1px solid var(--border,#dbe3ee)!important;cursor:pointer}
.v4p-add>button:hover,.v4p-add>button:focus-visible{background:#fff!important;border-color:#93c5fd!important;box-shadow:0 0 0 2px rgba(59,130,246,.12)}
.v4p-add-copy b{color:var(--text,#172033)!important;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v4p-add-copy small{color:var(--muted,#64748b)!important}
.v4p-add>button strong{color:#075985!important;background:#e0f2fe;border-radius:999px;padding:5px 9px;font-size:.78rem;white-space:nowrap}
.v4p-add>button .v4p-avatar{color:var(--text,#172033)!important}


/* ===================== Périscolaire 4.0.3 — pointage tactile dense ===================== */
.v4p-row.done{background:rgba(22,131,75,.085)}
.v4p-row.is-closed-day{background:#fff!important}
.v4p-closed-banner{margin:0 0 7px;padding:9px 11px;border:1px solid #fecaca;background:#fff7f7;border-radius:10px;color:#7f1d1d}
.v4p-closed-title{font-size:.95rem;margin:0}.v4p-closed-banner small{display:none}
.v4p-closed-existing{display:none}
@media(max-width:1199px),(pointer:coarse){
  body.v220-no-topbar.v4-pointage .main{padding-top:2px!important}
  body.v4-pointage .v4p-head-actions{display:none!important}
  body.v4-pointage .v4p-head .subtitle{display:none!important}
  body.v4-pointage .v4p-toolbar>label>span{display:none!important}
  body.v4-pointage .v4p-toolbar .v4p-today{display:none!important}
  body.v4-pointage .v4p-head{min-height:31px;margin:0 0 2px;padding-left:42px;align-items:center}
  body.v4-pointage .v4p-head h1{font-size:1.02rem;line-height:1.05}
  body.v4-pointage .v4p-shell{padding:3px 4px}
  body.v4-pointage .v4p-toolbar{grid-template-columns:minmax(0,1fr) 124px;padding:0 0 2px;margin-bottom:1px;gap:4px}
  body.v4-pointage .v4p-toolbar input{min-height:30px;height:30px;padding:2px 7px;font-size:.78rem}
  body.v4-pointage .v4p-summary{margin-bottom:2px;gap:3px}
  body.v4-pointage .v4p-summary>span{padding:1px 4px;font-size:.68rem;min-height:23px}
  body.v4-pointage .v4p-class{min-height:21px;padding:0 5px;font-size:.74rem}
  body.v4-pointage .v4p-class-count{width:18px;height:18px;font-size:.62rem}
  body.v4-pointage .v4p-row{min-height:29px;padding:0 4px;gap:2px}
  body.v4-pointage .v4p-child{gap:4px;text-align:left!important;justify-content:flex-start!important}
  body.v4-pointage .v4p-child b{font-size:.81rem;line-height:1}
  body.v4-pointage .v4p-avatar{flex-basis:19px;width:19px;height:19px;font-size:.58rem}.v4p-hours{min-height:19px;padding:0 4px;font-size:.63rem}.v4p-child-icon svg{width:12px;height:12px}.v4p-apc-chip{font-size:.57rem;margin-top:1px}
  body.v4-pointage .v4p-actions button{min-height:27px;min-width:29px;padding:1px 5px;font-size:.72rem}
  body.v4-pointage .v4p-more>summary{min-width:28px;min-height:27px;font-size:.95rem}
  body.v4-pointage .v4p-menu{position:fixed!important;left:8px!important;right:8px!important;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;width:auto!important;min-width:0!important;max-height:55dvh!important;overflow:auto!important;border-radius:12px!important;z-index:9000!important;box-shadow:0 18px 50px rgba(15,23,42,.28)!important}
  body.v4-pointage .v4p-option{min-height:36px!important}
  body.v4-pointage .v4p-closed-banner{padding:7px 8px;margin-bottom:4px}
}
@media(max-width:680px){
  body.v4-pointage .v4p-row{min-height:28px}
  body.v4-pointage .v4p-actions button{min-height:27px}
  body.v4-pointage .v4p-more>summary{min-width:27px;min-height:27px}
  body.v4-pointage .v4p-toolbar{grid-template-columns:minmax(0,1fr) 112px}
}


/* ===================== Périscolaire 4.0.7 — rendus canoniques ===================== */
.v4p-title{display:flex!important;align-items:center!important;gap:9px!important;margin:0!important}.v4p-title-icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 30px;border-radius:10px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06),0 2px 6px rgba(15,23,42,.09)}.v4p-title-icon.v4p-icon-am{background:#fef3c7;color:#b45309}.v4p-title-icon.v4p-icon-cantine{background:#dcfce7;color:#15803d}.v4p-title-icon.v4p-icon-pm{background:#e0e7ff;color:#4338ca}.v4p-title-icon svg{width:21px;height:21px;display:block}.v4p-head-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.v4p-recurring{white-space:nowrap}
.v407-recurring .v407-rec-days{display:flex;gap:7px;flex-wrap:wrap}.v407-recurring select[size]{min-height:132px}.v407-recurring .check{padding:7px 10px;border:1px solid var(--border,#dbe3ee);border-radius:10px;background:var(--card,#fff)}
.parent-home-action-grid-v407{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;margin:0 0 16px!important;align-items:stretch!important}.parent-home-action-grid-v407 .parent-home-card{display:grid!important;grid-template-columns:38px minmax(0,1fr) 14px!important;align-items:center!important;gap:9px!important;min-height:84px!important;padding:12px!important;border-radius:16px!important;width:100%!important;text-align:left!important}.parent-home-action-grid-v407 .parent-home-ico{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;border-radius:11px;background:var(--soft,#f8fafc)}.parent-home-action-grid-v407 .parent-home-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.parent-home-action-grid-v407 .parent-home-copy b{font-size:.93rem;line-height:1.2}.parent-home-action-grid-v407 .parent-home-copy small{font-size:.74rem;line-height:1.25;color:var(--muted,#64748b)}.parent-home-action-grid-v407 .parent-home-arrow{justify-self:end;color:var(--muted,#94a3b8);font-size:1.25rem}
.v407-export-config .v407-export-cols{margin:8px 0 12px}.v407-export-preview{margin-top:12px;max-height:45vh;overflow:auto;border:1px solid var(--border,#dbe3ee);border-radius:12px;padding:10px;background:var(--card,#fff)}.v407-export-preview h2{font-size:.95rem;margin:14px 0 6px}.v407-export-preview table{width:100%;border-collapse:collapse}.v407-export-preview th,.v407-export-preview td{text-align:left;padding:6px;border-bottom:1px solid var(--border,#e5e7eb);font-size:.8rem}
.peri-unavailable-panel{max-width:520px!important}.peri-unavailable-panel .hint{margin:14px 0;text-align:left;line-height:1.45}
@media(max-width:1050px){.parent-home-action-grid-v407{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:720px){.parent-home-action-grid-v407{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}.parent-home-action-grid-v407 .parent-home-card{grid-template-columns:32px minmax(0,1fr)!important;min-height:62px!important;padding:9px!important;border-radius:13px!important}.parent-home-action-grid-v407 .parent-home-ico{width:30px;height:30px;font-size:1.05rem}.parent-home-action-grid-v407 .parent-home-copy small,.parent-home-action-grid-v407 .parent-home-arrow{display:none!important}.parent-home-action-grid-v407 .parent-home-copy b{font-size:.85rem}.v4p-head-actions{gap:4px}.v4p-head-actions button{padding-left:8px!important;padding-right:8px!important}.v4p-title-icon{width:21px;height:21px;flex-basis:21px}.v4p-title-icon svg{width:20px;height:20px}}
.v407-res-manager{min-width:0}.v407-res-tabs{margin-bottom:10px}.v407-res-grid{max-width:100%;overflow:auto;border:1px solid var(--border,#dbe3ee);border-radius:12px}.v407-res-grid table{min-width:max-content;border-collapse:separate;border-spacing:0}.v407-res-grid th,.v407-res-grid td{padding:6px 7px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--border,#e5e7eb);border-right:1px solid var(--border,#e5e7eb);font-size:.78rem}.v407-res-grid thead th{position:sticky;top:0;background:var(--card,#fff);z-index:2;white-space:nowrap}.v407-res-grid thead th:first-child{left:0;z-index:3}.v407-res-grid tbody th{position:sticky;left:0;background:var(--card,#fff);z-index:1;text-align:left;min-width:170px}.v407-res-grid th small{display:block;font-size:.65rem;color:var(--muted,#64748b);font-weight:600}.v407-res-grid .is-closed{background:#f8fafc;color:#94a3b8}.v407-res-grid .has-existing{background:#fff7ed;color:#9a3412}.v407-res-grid .mini-check{display:flex;align-items:center;justify-content:center;gap:4px;margin:0}.v407-closed-cell{font-weight:800;color:#cbd5e1}
/* V4.1.7 : c'est ICI, dans v4OpenReservationsManager (10-exploitation.js), que se trouve la
   VRAIE fenetre "Gerer reservations" utilisee en production - le bouton reel y pointe
   directement. .reservation-admin-grid (00-core.js/reservationModal) corrigee en 4.0.55/
   4.1.5/4.1.6 est en realite du code mort, jamais appele pour Matin/Cantine/Soir : les
   correctifs precedents etaient donc sans effet visible, d'ou le probleme qui persistait
   malgre tout. .v407-res-grid avait deja overflow:auto + en-tete/colonne figes, mais le
   meme defaut que .reservation-admin-grid s'appliquait : aucune hauteur limitee, donc la
   barre de defilement horizontale se retrouvait tout en bas de la liste des enfants, hors
   du corps du modal visible a l'ecran. Meme solution que la version definitive 4.1.6
   (calage flexible via :has, deja utilise ailleurs dans ce fichier) adaptee aux classes
   reelles de cette fenetre. Les identifiants de section sont generes dynamiquement
   ('token'+Date.now()) : on cible donc [id$="Grid"] plutot qu'un id fixe. */
.modal-body:has(.v407-res-manager .v407-res-grid){display:flex!important;flex-direction:column!important;overflow:auto!important}
.modal-body:has(.v407-res-manager .v407-res-grid)>.v407-res-manager{flex:1;min-height:0;display:flex;flex-direction:column}
.v407-res-manager:has(.v407-res-grid)>.v407-res-tabs{flex:none}
.v407-res-manager .tabpane.active:has(.v407-res-grid){flex:1;min-height:0;display:flex;flex-direction:column}
.v407-res-manager .tabpane.active:has(.v407-res-grid)>.toolbar{flex:none}
.v407-res-manager .tabpane.active:has(.v407-res-grid)>.hint{flex:none}
.v407-res-manager .tabpane.active:has(.v407-res-grid)>[id$="Grid"]{flex:1;min-height:0;display:flex;flex-direction:column}
.v407-res-manager .tabpane.active .v407-res-grid{max-height:min(58vh,520px);flex:1;min-height:0}
@media(max-width:720px){.v407-res-grid tbody th{min-width:145px}.v407-res-grid th,.v407-res-grid td{padding:5px;font-size:.72rem}.v407-res-manager .toolbar{gap:6px}.v407-res-manager .toolbar .field{min-width:125px}}


/* Périscolaire 4.0.8 — finition boutons / redondances / actions parents. */
.v408-recurring{max-width:760px;margin:0 auto}
.v408-recurring select{min-height:48px;font-weight:750;background:#fff}
.v408-recurring .v407-rec-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.v408-recurring .v407-rec-days .check{justify-content:center;min-height:46px;background:#fff}

/* Les boutons de contenu doivent clairement sembler interactifs. Le menu latéral n'est pas concerné. */
.main button.secondary:not(:disabled),.modal button.secondary:not(:disabled){
  background:#f7faff!important;
  color:#174ea6!important;
  border:1px solid #b9cbed!important;
  box-shadow:0 2px 7px rgba(37,99,235,.08)!important;
}
.main button.secondary:not(:disabled):hover,.modal button.secondary:not(:disabled):hover{
  background:#eaf2ff!important;
  border-color:#7ea6e8!important;
  box-shadow:0 7px 16px rgba(37,99,235,.14)!important;
}
.main button.ok:not(:disabled),.modal button.ok:not(:disabled){box-shadow:0 3px 9px rgba(22,163,74,.18)!important}
.main button.danger:not(:disabled),.modal button.danger:not(:disabled){box-shadow:0 3px 9px rgba(220,38,38,.16)!important}
button:disabled{cursor:not-allowed!important;opacity:.5!important;box-shadow:none!important}

@media (min-width:821px){
  body.v1216-parent-ui .parent-month-actions-43931{
    max-width:980px!important;
    margin:18px auto 0!important;
    gap:14px!important;
    padding:12px!important;
  }
  body.v1216-parent-ui .parent-month-action-43931{
    min-height:108px!important;
    padding:16px 14px!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    border:1px solid #b9cbed!important;
    background:linear-gradient(180deg,#ffffff,#f4f8ff)!important;
    box-shadow:0 6px 16px rgba(37,99,235,.10)!important;
  }
  body.v1216-parent-ui .parent-month-action-43931:hover{
    transform:translateY(-2px)!important;
    border-color:#7ea6e8!important;
    box-shadow:0 10px 24px rgba(37,99,235,.15)!important;
  }
  body.v1216-parent-ui .parent-month-action-43931>span{font-size:31px!important}
  body.v1216-parent-ui .parent-month-action-43931 b{font-size:15px!important;line-height:1.2!important;text-align:center!important;color:#174ea6!important}
  body.v1216-parent-ui .parent-month-action-43931 small{display:block!important;font-size:12px!important;text-align:center!important;color:#66758a!important}
}
@media (max-width:700px){.v408-recurring .v407-rec-days{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===================== V4.0.10 — PWA / Push unifiés ===================== */
#pwa_settings .pwa-runtime-notice{border:1px solid #dbe5f0;border-radius:12px;padding:10px 12px;margin:0 0 10px;line-height:1.4;font-size:13px}
#pwa_settings .pwa-runtime-notice.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
#pwa_settings .pwa-runtime-notice.bad{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
#pwa_settings #v410PwaRuntimeStatus>.toolbar{margin-top:8px}
#pwa_settings .v2-asset-format{display:block;margin:5px 0 8px;color:#475569;font-weight:700}
#pwa_settings .v2-pwa-assets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#pwa_settings .v2-pwa-assets .v2-asset-card{margin:0;min-width:0}
@media(max-width:760px){#pwa_settings .v2-pwa-assets{grid-template-columns:1fr}}


/* ===================== Périscolaire 4.0.13 — PWA canonique + contraste pointage ===================== */
#pwa_settings .pwa-source-map{
  display:grid;gap:5px;margin:10px 0 12px;padding:10px 12px;
  border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;
}
#pwa_settings .pwa-source-map b{color:#1e293b}
#pwa_settings .pwa-manifest-check{
  display:grid;gap:4px;margin:8px 0 10px;padding:9px 11px;border-radius:11px;border:1px solid #dbe5f0;
}
#pwa_settings .pwa-manifest-check.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
#pwa_settings .pwa-manifest-check.bad{background:#fef2f2;border-color:#fecaca;color:#991b1b}
#pwa_settings .pwa-manifest-check span{font-size:.8rem}
#pwa_settings .pwa-manifest-check code{
  display:block;overflow-wrap:anywhere;white-space:normal;padding:3px 5px;border-radius:6px;
  background:rgba(255,255,255,.75);font-size:.72rem;color:inherit
}
#pwa_settings .pwa-source-map code{
  display:block;overflow-wrap:anywhere;white-space:normal;
  padding:4px 6px;border-radius:7px;background:#fff;border:1px solid #e2e8f0;
  color:#334155;font-size:.76rem;
}
body.v4-pointage .v4p-shell{
  border:1px solid #c5d3e6!important;
  box-shadow:0 3px 12px rgba(15,23,42,.055)!important;
}
body.v4-pointage .v4p-search span,
body.v4-pointage .v4p-date span{
  color:#334155!important;font-weight:850!important;
}
body.v4-pointage .v4p-search input,
body.v4-pointage .v4p-date input{
  background:#fff!important;
  border:1.5px solid #9fb6d6!important;
  color:#172033!important;
  box-shadow:inset 0 1px 2px rgba(15,23,42,.035)!important;
}
body.v4-pointage .v4p-search input::placeholder{color:#64748b!important;opacity:1!important}
body.v4-pointage .v4p-search input:focus,
body.v4-pointage .v4p-date input:focus{
  border-color:#2563eb!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.13)!important;
  outline:0!important;
}
body.v4-pointage .v4p-class{
  background:#eef3f9!important;
  color:#24354d!important;
  border-color:#cbd8e8!important;
}
body.v4-pointage .v4p-row{border-bottom-color:#dfe7f1!important}
body.v4-pointage .v4p-row.done{background:#edf9f2!important}
body.v4-pointage .v4p-hours{
  background:#eaf3ff!important;border-color:#b7d2f8!important;color:#174ea6!important
}
body.v4-pointage .v4p-add{
  margin:0 0 7px!important;padding:8px!important;
  border:1.5px solid #8fb4e8!important;border-radius:12px!important;
  background:#eef6ff!important;box-shadow:0 2px 8px rgba(37,99,235,.07)!important;
}
body.v4-pointage .v4p-add-title{
  display:flex!important;align-items:baseline!important;gap:8px!important;
  margin:0 0 6px!important;color:#173f79!important;
}
body.v4-pointage .v4p-add-title b{font-size:.9rem!important}
body.v4-pointage .v4p-add-title span{font-size:.74rem!important;color:#476887!important}
body.v4-pointage .v4p-add>button{
  width:100%!important;display:grid!important;
  grid-template-columns:24px minmax(0,1fr) auto!important;align-items:center!important;gap:7px!important;
  margin:3px 0!important;padding:6px 8px!important;
  border:1px solid #b9cfee!important;border-radius:10px!important;
  background:#fff!important;color:#172033!important;text-align:left!important;
  box-shadow:0 1px 4px rgba(37,99,235,.06)!important;
}
body.v4-pointage .v4p-add>button:hover,
body.v4-pointage .v4p-add>button:focus-visible{
  border-color:#4f83d1!important;background:#f8fbff!important;
  box-shadow:0 4px 12px rgba(37,99,235,.13)!important;
}
body.v4-pointage .v4p-add-copy{
  display:flex!important;flex-direction:column!important;min-width:0!important
}
body.v4-pointage .v4p-add-copy b{font-size:.86rem!important}
body.v4-pointage .v4p-add-copy small{font-size:.68rem!important;color:#64748b!important}
body.v4-pointage .v4p-add>button>strong{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:27px!important;padding:3px 8px!important;border-radius:8px!important;
  background:#2563eb!important;color:#fff!important;font-size:.74rem!important;white-space:nowrap!important;
}
@media(max-width:900px){
  body.v4-pointage .v4p-add{padding:5px!important;margin-bottom:4px!important}
  body.v4-pointage .v4p-add-title{margin-bottom:3px!important}
  body.v4-pointage .v4p-add-title span{display:none!important}
  body.v4-pointage .v4p-add>button{padding:4px 6px!important;min-height:31px!important}
}

/* ===================== Périscolaire 4.0.14 — pointage responsive équilibré =====================
   Smartphone : lisible et tactile, sans gaspiller la hauteur.
   Tablette : dense mais confortable, y compris en paysage.
   PC : rendu complet avec les outils de gestion.
   ================================================================================================== */
@media(max-width:1199px){
  body.v4-pointage .main:has(.v4p-page){
    padding-left:6px!important;
    padding-right:6px!important;
  }
  body.v4-pointage .v4p-page{margin:0!important;padding:0!important;max-width:none!important}
  body.v4-pointage .v4p-head{
    min-height:34px!important;
    margin:0 0 4px!important;
    padding:0 3px 0 40px!important;
    display:flex!important;
    align-items:center!important;
  }
  body.v4-pointage .v4p-head-actions{display:none!important}
  body.v4-pointage .v4p-head .subtitle{display:none!important}
  body.v4-pointage .v4p-title{
    gap:6px!important;
    min-width:0!important;
    color:#183b64!important;
  }
  body.v4-pointage .v4p-title-icon{
    width:20px!important;height:20px!important;flex:0 0 20px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
  }
  body.v4-pointage .v4p-title-icon svg{width:19px!important;height:19px!important}
  body.v4-pointage .v4p-head h1{
    font-size:1.08rem!important;
    line-height:1.08!important;
    font-weight:900!important;
    color:#183b64!important;
    letter-spacing:-.012em!important;
  }
  body.v4-pointage .v4p-shell{
    padding:5px!important;
    border-radius:10px!important;
    box-shadow:0 2px 8px rgba(15,23,42,.045)!important;
    border-color:#b9cae0!important;
  }
  body.v4-pointage .v4p-toolbar{
    grid-template-columns:minmax(0,1fr) 132px!important;
    gap:5px!important;
    padding:0!important;
    margin:0 0 4px!important;
    position:sticky!important;
    top:0!important;
    background:var(--bg,#f5f7fb)!important;
  }
  body.v4-pointage .v4p-toolbar .v4p-today{display:none!important}
  body.v4-pointage .v4p-toolbar>label{
    gap:2px!important;
    font-size:.72rem!important;
    line-height:1.1!important;
    color:#334155!important;
  }
  body.v4-pointage .v4p-toolbar input{
    min-height:34px!important;height:34px!important;
    padding:3px 8px!important;
    border-radius:8px!important;
    font-size:.84rem!important;
    line-height:1.1!important;
  }
  body.v4-pointage .v4p-date-warning{
    margin:0 0 4px!important;
    padding:5px 7px!important;
    border-radius:7px!important;
    font-size:.76rem!important;
    line-height:1.15!important;
  }
  body.v4-pointage .v4p-summary{gap:3px!important;margin:0 0 4px!important}
  body.v4-pointage .v4p-summary>span{
    min-height:23px!important;
    padding:2px 6px!important;
    border-radius:7px!important;
    font-size:.69rem!important;
    line-height:1!important;
  }
  body.v4-pointage .v4p-summary>span b{font-size:.84rem!important}
  body.v4-pointage .v4p-list{border-radius:8px!important;border-color:#c8d5e5!important}
  body.v4-pointage .v4p-class{
    min-height:22px!important;
    padding:1px 5px!important;
    gap:4px!important;
    font-size:.75rem!important;
    line-height:1!important;
    justify-content:flex-start!important;
  }
  body.v4-pointage .v4p-class-name{flex:0 1 auto!important;min-width:0!important}
  body.v4-pointage .v4p-class-count{
    flex:0 0 17px!important;
    width:17px!important;height:17px!important;
    margin-left:0!important;
    font-size:.6rem!important;
    box-shadow:none!important;
  }
  body.v4-pointage .v4p-row{
    grid-template-columns:minmax(0,1fr) auto!important;
    min-height:32px!important;
    padding:1px 5px!important;
    gap:4px!important;
    border-bottom-color:#dce5f0!important;
  }
  body.v4-pointage .v4p-status{display:none!important}
  body.v4-pointage .v4p-child{
    gap:5px!important;
    min-height:30px!important;
  }
  body.v4-pointage .v4p-child b{
    font-size:.84rem!important;
    line-height:1.08!important;
    font-weight:800!important;
  }
  body.v4-pointage .v4p-avatar{
    flex:0 0 20px!important;
    width:20px!important;height:20px!important;
    font-size:.58rem!important;
    border-width:1px!important;
  }
  body.v4-pointage .v4p-child-icon svg{width:12px!important;height:12px!important}
  body.v4-pointage .v4p-actions{gap:3px!important}
  body.v4-pointage .v4p-actions button{
    min-height:30px!important;height:30px!important;
    min-width:0!important;
    padding:2px 7px!important;
    border-radius:7px!important;
    font-size:.75rem!important;
    line-height:1!important;
    font-weight:850!important;
    box-shadow:0 1px 2px rgba(15,23,42,.06)!important;
  }
  body.v4-pointage .v4p-hours{
    min-height:20px!important;
    padding:1px 5px!important;
    font-size:.64rem!important;
    border-radius:7px!important;
  }
  body.v4-pointage .v4p-apc-chip{
    font-size:.6rem!important;
    padding:1px 4px!important;
    line-height:1.2!important;
  }
  body.v4-pointage .v4p-more>summary{
    min-width:30px!important;width:30px!important;
    min-height:30px!important;height:30px!important;
    border-radius:7px!important;
    font-size:.96rem!important;
    line-height:1!important;
  }
  body.v4-pointage .v4p-add{
    padding:6px!important;
    margin:0 0 4px!important;
    border-radius:9px!important;
  }
  body.v4-pointage .v4p-add-title{
    gap:5px!important;
    margin:0 1px 4px!important;
  }
  body.v4-pointage .v4p-add-title b{font-size:.82rem!important}
  body.v4-pointage .v4p-add-title span{font-size:.69rem!important}
  body.v4-pointage .v4p-add>button{
    grid-template-columns:21px minmax(0,1fr) auto!important;
    gap:6px!important;
    min-height:32px!important;
    margin:3px 0!important;
    padding:3px 6px!important;
    border-radius:8px!important;
  }
  body.v4-pointage .v4p-add-copy b{font-size:.8rem!important;line-height:1.08!important}
  body.v4-pointage .v4p-add-copy small{font-size:.65rem!important;line-height:1.05!important}
  body.v4-pointage .v4p-add>button>strong{
    min-height:26px!important;
    padding:2px 7px!important;
    border-radius:7px!important;
    font-size:.7rem!important;
  }
}

/* Smartphone portrait / petit écran : encore plus compact, mais jamais sous le seuil de lisibilité. */
@media(max-width:560px){
  body.v4-pointage .main:has(.v4p-page){
    padding-left:4px!important;
    padding-right:4px!important;
  }
  body.v4-pointage .v4p-head{
    min-height:32px!important;
    padding-left:38px!important;
    margin-bottom:3px!important;
  }
  body.v4-pointage .v4p-title-icon{
    width:18px!important;height:18px!important;flex-basis:18px!important;
  }
  body.v4-pointage .v4p-title-icon svg{width:17px!important;height:17px!important}
  body.v4-pointage .v4p-head h1{font-size:1rem!important}
  body.v4-pointage .v4p-shell{padding:4px!important;border-radius:9px!important}
  body.v4-pointage .v4p-toolbar{
    grid-template-columns:minmax(0,1fr) 116px!important;
    gap:4px!important;
    margin-bottom:3px!important;
  }
  body.v4-pointage .v4p-toolbar>label>span{display:none!important}
  body.v4-pointage .v4p-toolbar input{
    min-height:33px!important;height:33px!important;
    font-size:.82rem!important;
    padding:3px 7px!important;
  }
  body.v4-pointage .v4p-date-warning{
    padding:4px 6px!important;
    margin-bottom:3px!important;
    font-size:.72rem!important;
  }
  body.v4-pointage .v4p-summary{margin-bottom:3px!important}
  body.v4-pointage .v4p-summary>span{
    min-height:22px!important;
    padding:1px 4px!important;
    font-size:.66rem!important;
  }
  body.v4-pointage .v4p-summary>span b{font-size:.8rem!important}
  body.v4-pointage .v4p-class{
    min-height:21px!important;
    font-size:.73rem!important;
    padding:1px 4px!important;
  }
  body.v4-pointage .v4p-class-count{
    width:17px!important;height:17px!important;flex-basis:17px!important;
    font-size:.59rem!important;
  }
  body.v4-pointage .v4p-row{
    min-height:31px!important;
    padding:1px 4px!important;
    gap:3px!important;
  }
  body.v4-pointage .v4p-child{min-height:29px!important;gap:4px!important}
  body.v4-pointage .v4p-child b{font-size:.81rem!important}
  body.v4-pointage .v4p-avatar{
    width:19px!important;height:19px!important;flex-basis:19px!important;
  }
  body.v4-pointage .v4p-child-icon svg{width:11px!important;height:11px!important}
  body.v4-pointage .v4p-actions{gap:2px!important}
  body.v4-pointage .v4p-actions button{
    min-height:29px!important;height:29px!important;
    padding:2px 6px!important;
    font-size:.72rem!important;
  }
  body.v4-pointage .v4p-more>summary{
    width:29px!important;min-width:29px!important;
    height:29px!important;min-height:29px!important;
  }
  body.v4-pointage .v4p-hours{font-size:.62rem!important;min-height:19px!important}
  body.v4-pointage .v4p-add{padding:5px!important}
  body.v4-pointage .v4p-add-title b{font-size:.79rem!important}
  body.v4-pointage .v4p-add-title span{display:none!important}
  body.v4-pointage .v4p-add>button{
    min-height:31px!important;
    padding:3px 5px!important;
  }
  body.v4-pointage .v4p-add-copy b{font-size:.77rem!important}
  body.v4-pointage .v4p-add-copy small{font-size:.63rem!important}
  body.v4-pointage .v4p-add>button>strong{
    min-height:25px!important;
    font-size:.69rem!important;
  }
}

/* Très petits téléphones : on économise uniquement les marges, pas la taille du texte. */
@media(max-width:380px){
  body.v4-pointage .main:has(.v4p-page){
    padding-left:2px!important;
    padding-right:2px!important;
  }
  body.v4-pointage .v4p-shell{padding:3px!important}
  body.v4-pointage .v4p-toolbar{grid-template-columns:minmax(0,1fr) 108px!important}
  body.v4-pointage .v4p-actions button{padding-left:5px!important;padding-right:5px!important}
}

/* 4.0.18 - statuts Confidentialite RGPD */
.rgpd-family-status,.rgpd-account-proof{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-top:4px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.25}.rgpd-family-status.is-ok,.rgpd-account-proof.is-ok{background:#dcfce7;color:#166534}.rgpd-family-status.is-pending,.rgpd-account-proof.is-pending{background:#fee2e2;color:#991b1b}.rgpd-family-status.is-off{background:#f1f5f9;color:#64748b}.rgpd-family-proof{border-left:3px solid #8b5cf6;padding-left:10px}


/* 4.0.22 — motif de fermeture sous l'alerte principale. */
.v4p-closed-banner small{display:block!important;margin-top:3px!important;font-size:.72rem!important;color:#991b1b!important}


/* ========================================================================== 
   Périscolaire 4.0.28 — menu latéral canonique
   Source graphique unique : aucun wrapper, aucun indicateur actif rapporté.
   ========================================================================== */
.access-runtime-final{
  --nav-blue:#2563eb;
  --nav-blue-2:#1d4ed8;
  --nav-bg:#07172c;
  --nav-bg-2:#061326;
  --nav-text:#eaf2ff;
  --nav-muted:#93a7c0;
}

/* Panneau : aucune zone de défilement interne. Le menu reste fixe et compact. */
.access-runtime-final .side{
  position:fixed!important;
  inset:0 auto 0 0!important;
  width:296px!important;
  min-width:296px!important;
  height:100dvh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-width:none!important;
  background:linear-gradient(178deg,#0a2442 0%,var(--nav-bg) 48%,var(--nav-bg-2) 100%)!important;
  border-right:1px solid rgba(125,211,252,.18)!important;
  border-radius:0 22px 22px 0!important;
  box-shadow:10px 0 34px rgba(3,11,25,.18)!important;
}
.access-runtime-final .side::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.access-runtime-final .workspace{width:calc(100% - 296px)!important;min-width:0!important;margin-left:296px!important;background:#f3f6fb!important}
.access-runtime-final .side-inner{
  width:100%!important;
  height:auto!important;
  min-height:100dvh!important;
  max-height:none!important;
  padding:11px 11px 12px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  overflow:visible!important;
}

/* Identité : le libellé parasite "Portail communal" n'existe plus dans le DOM. */
.access-runtime-final .brand{
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  align-items:center!important;
  gap:10px!important;
  min-height:64px!important;
  margin:0 0 3px!important;
  padding:9px 10px!important;
  border:1px solid rgba(147,197,253,.18)!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,rgba(31,74,132,.55),rgba(7,29,55,.78))!important;
  box-shadow:0 10px 24px rgba(0,0,0,.15),inset 0 1px rgba(255,255,255,.055)!important;
}
.access-runtime-final .brand .logo{
  width:44px!important;height:44px!important;border-radius:12px!important;
  display:grid!important;place-items:center!important;overflow:hidden!important;
  background:#fff!important;color:#1d4ed8!important;
  border:1px solid rgba(255,255,255,.7)!important;
  box-shadow:0 6px 16px rgba(37,99,235,.22)!important;
}
.access-runtime-final .brand .logo svg{width:27px!important;height:27px!important}
.access-runtime-final .brand .app-brand-img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;padding:3px!important}
.access-runtime-final .brand-copy{display:flex!important;min-width:0!important;flex-direction:column!important;line-height:1.15!important}
.access-runtime-final .brand-copy b{color:#fff!important;font-size:13.5px!important;font-weight:850!important;line-height:1.16!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:normal!important}
.access-runtime-final .brand-copy small{display:block!important;margin-top:3px!important;color:#a9bad1!important;font-size:9.5px!important;font-weight:620!important;line-height:1.22!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:normal!important}

/* Navigation : pas de titre "Navigation", pas de scroll interne, pas de texte coupé. */
.access-runtime-final .nav{
  display:block!important;
  flex:0 0 auto!important;
  min-height:0!important;
  padding:0!important;
  overflow:visible!important;
  scrollbar-width:none!important;
}
.access-runtime-final .nav::-webkit-scrollbar{display:none!important}
.access-runtime-final .nav-label,.access-runtime-final .nav-group-label{
  flex:1 1 auto!important;min-width:0!important;max-width:none!important;
  text-align:left!important;white-space:normal!important;overflow:visible!important;
  text-overflow:clip!important;overflow-wrap:normal!important;word-break:normal!important;
}

/* Icônes : banque SVG unique, trait régulier, couleurs fonctionnelles. */
.access-runtime-final .nav-modern-svg,.access-runtime-final .nav-ico>svg,.access-runtime-final .group-dot>svg,.access-runtime-final .nav-chevron>svg{
  display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;
  stroke-linecap:round!important;stroke-linejoin:round!important;shape-rendering:geometricPrecision!important;
}
.access-runtime-final .nav-modern-svg .mi-stroke{fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.access-runtime-final .nav-modern-svg .mi-fill{fill:none!important;stroke:currentColor!important;stroke-width:1.8!important}
.access-runtime-final .nav-ico{
  width:28px!important;height:28px!important;min-width:28px!important;flex:0 0 28px!important;
  display:grid!important;place-items:center!important;border-radius:8px!important;
  border:1px solid rgba(255,255,255,.42)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.55),0 3px 8px rgba(2,8,23,.18)!important;
}
.access-runtime-final .nav-ico>svg,.access-runtime-final .nav-modern-svg{width:17px!important;height:17px!important}

/* Couleurs des pictogrammes par fonction. */
.access-runtime-final [data-route-icon="dashboard"] .nav-ico{background:#dbeafe!important;color:#1d4ed8!important}
.access-runtime-final [data-route-icon="teacher_planning"] .nav-ico{background:#ede9fe!important;color:#6d28d9!important}
.access-runtime-final [data-route-icon="cantine_provider"] .nav-ico{background:#ffedd5!important;color:#c2410c!important}
.access-runtime-final [data-route-icon="service_am"] .nav-ico{background:#fef3c7!important;color:#b45309!important}
.access-runtime-final [data-route-icon="service_cantine"] .nav-ico{background:#dcfce7!important;color:#15803d!important}
.access-runtime-final [data-route-icon="service_pm"] .nav-ico{background:#e0e7ff!important;color:#4338ca!important}
.access-runtime-final [data-route-icon="service_mercredi"] .nav-ico{background:#f3e8ff!important;color:#9333ea!important}
.access-runtime-final [data-route-icon="service_alsh"] .nav-ico{background:#d1fae5!important;color:#047857!important}
.access-runtime-final [data-route-icon="families"] .nav-ico{background:#ccfbf1!important;color:#0f766e!important}
.access-runtime-final [data-route-icon="children"] .nav-ico{background:#cffafe!important;color:#0e7490!important}
.access-runtime-final [data-route-icon="billing"] .nav-ico{background:#fef9c3!important;color:#a16207!important}
.access-runtime-final [data-route-icon="tariffs"] .nav-ico{background:#ffedd5!important;color:#c2410c!important}
.access-runtime-final [data-route-icon="cantine_send"] .nav-ico{background:#fee2e2!important;color:#b91c1c!important}
.access-runtime-final [data-route-icon="stats"] .nav-ico{background:#dbeafe!important;color:#0369a1!important}
.access-runtime-final [data-route-icon="notifications"] .nav-ico{background:#ffe4e6!important;color:#be123c!important}
.access-runtime-final [data-route-icon="users"] .nav-ico{background:#e0f2fe!important;color:#0369a1!important}
.access-runtime-final [data-route-icon="settings"] .nav-ico{background:#e2e8f0!important;color:#334155!important}
.access-runtime-final [data-route-icon="parent_reservations"] .nav-ico{background:#dcfce7!important;color:#15803d!important}
.access-runtime-final [data-route-icon="parent_documents"] .nav-ico{background:#dbeafe!important;color:#1d4ed8!important}
.access-runtime-final [data-route-icon="parent_rgpd"] .nav-ico{background:#ede9fe!important;color:#6d28d9!important}

/* Tous les boutons de premier niveau ont exactement le même gabarit. */
.access-runtime-final .nav>button{
  position:relative!important;display:flex!important;align-items:center!important;width:100%!important;
  min-height:36px!important;margin:2px 0!important;padding:4px 7px!important;gap:8px!important;
  border:1px solid transparent!important;border-radius:10px!important;background:transparent!important;
  color:#dbe6f4!important;font-size:12.5px!important;font-weight:760!important;line-height:1.15!important;
  text-align:left!important;justify-content:flex-start!important;box-shadow:none!important;transform:none!important;
  transition:background .14s ease,border-color .14s ease,color .14s ease!important;
}
.access-runtime-final .nav>button:hover{background:rgba(255,255,255,.065)!important;border-color:rgba(148,163,184,.12)!important;color:#fff!important;transform:none!important}
.access-runtime-final .nav>button.active,.access-runtime-final .nav>button.v2-active{
  background:linear-gradient(110deg,var(--nav-blue),var(--nav-blue-2))!important;
  color:#fff!important;border-color:#60a5fa!important;
  box-shadow:inset 3px 0 #7dd3fc,0 6px 16px rgba(37,99,235,.24)!important;
}
.access-runtime-final .nav>button.active .nav-ico,.access-runtime-final .nav>button.v2-active .nav-ico{
  background:rgba(255,255,255,.16)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;box-shadow:none!important;
}

/* Parents de menu : compacts, visuels et tous au même rythme. */
.access-runtime-final .nav .nav-section{
  --family:#60a5fa;--family-soft:rgba(59,130,246,.10);--family-border:rgba(96,165,250,.27);
  --family-active:#2563eb;--family-active-text:#fff;
  margin:2px 0!important;padding:0!important;border:1px solid transparent!important;border-radius:11px!important;background:transparent!important;overflow:visible!important;
}
.access-runtime-final .nav [data-nav-kind="daily"]{--family:#fbbf24;--family-soft:rgba(245,158,11,.11);--family-border:rgba(251,191,36,.30);--family-active:#fbbf24;--family-active-text:#3b2600}
.access-runtime-final .nav [data-nav-kind="extra"]{--family:#c084fc;--family-soft:rgba(168,85,247,.11);--family-border:rgba(192,132,252,.30);--family-active:#8b5cf6;--family-active-text:#fff}
.access-runtime-final .nav [data-nav-kind="family"]{--family:#2dd4bf;--family-soft:rgba(20,184,166,.11);--family-border:rgba(45,212,191,.30);--family-active:#14b8a6;--family-active-text:#fff}
.access-runtime-final .nav [data-nav-kind="manage"]{--family:#60a5fa;--family-soft:rgba(37,99,235,.11);--family-border:rgba(96,165,250,.30);--family-active:#2563eb;--family-active-text:#fff}
.access-runtime-final .nav [data-nav-kind="communication"]{--family:#fb7185;--family-soft:rgba(244,63,94,.11);--family-border:rgba(251,113,133,.30);--family-active:#e11d48;--family-active-text:#fff}
.access-runtime-final .nav [data-nav-kind="config"]{--family:#a5b4fc;--family-soft:rgba(99,102,241,.11);--family-border:rgba(165,180,252,.30);--family-active:#6366f1;--family-active-text:#fff}
.access-runtime-final .nav .nav-section[open],.access-runtime-final .nav .nav-section.contains-current{
  padding:2px!important;background:linear-gradient(145deg,var(--family-soft),rgba(255,255,255,.012))!important;
  border-color:var(--family-border)!important;box-shadow:inset 0 1px rgba(255,255,255,.025)!important;
}
.access-runtime-final .nav summary{
  position:relative!important;display:flex!important;align-items:center!important;width:100%!important;
  min-height:34px!important;margin:0!important;padding:3px 6px!important;gap:7px!important;
  border:1px solid transparent!important;border-radius:9px!important;list-style:none!important;cursor:pointer!important;
  background:linear-gradient(90deg,var(--family-soft),transparent)!important;color:#f3f7fd!important;
  font-size:11.5px!important;font-weight:790!important;letter-spacing:0!important;text-transform:none!important;line-height:1.15!important;
}
.access-runtime-final .nav summary::-webkit-details-marker{display:none!important}
.access-runtime-final .nav summary:hover{border-color:var(--family-border)!important;background:var(--family-soft)!important;color:#fff!important}
.access-runtime-final summary .group-dot{
  width:26px!important;height:26px!important;min-width:26px!important;flex:0 0 26px!important;margin:0!important;
  display:grid!important;place-items:center!important;border-radius:8px!important;
  color:var(--family)!important;background:var(--family-soft)!important;border:1px solid var(--family-border)!important;box-shadow:none!important;
}
.access-runtime-final summary .group-dot svg{width:15px!important;height:15px!important}
.access-runtime-final .nav-chevron{
  width:20px!important;height:20px!important;min-width:20px!important;display:grid!important;place-items:center!important;
  margin-left:auto!important;border:0!important;border-radius:6px!important;background:transparent!important;color:var(--family)!important;
  transform:rotate(-90deg)!important;transition:transform .16s ease!important;
}
.access-runtime-final .nav-chevron svg{width:14px!important;height:14px!important}
.access-runtime-final .nav details[open]>summary .nav-chevron{transform:rotate(0deg)!important}

/* Sous-menus : plus petits que le parent. L'état actif reprend LA COULEUR DU PARENT. */
.access-runtime-final .nav-section-items{
  position:static!important;margin:1px 0 2px 12px!important;padding:1px 0 1px 8px!important;
  border-left:1px solid var(--family-border)!important;overflow:visible!important;
}
.access-runtime-final .nav details button{
  position:relative!important;display:flex!important;align-items:center!important;width:100%!important;
  min-height:34px!important;margin:1px 0!important;padding:3px 6px!important;gap:7px!important;
  border:1px solid transparent!important;border-radius:9px!important;background:transparent!important;
  color:#d7e2f0!important;font-size:12px!important;font-weight:700!important;line-height:1.15!important;
  text-align:left!important;justify-content:flex-start!important;box-shadow:none!important;transform:none!important;
  transition:background .13s ease,border-color .13s ease,color .13s ease!important;
}
.access-runtime-final .nav details button .nav-ico{width:26px!important;height:26px!important;min-width:26px!important;flex-basis:26px!important;border-radius:8px!important}
.access-runtime-final .nav details button .nav-ico>svg{width:16px!important;height:16px!important}
.access-runtime-final .nav details button:hover{background:var(--family-soft)!important;border-color:var(--family-border)!important;color:#fff!important;transform:none!important}
.access-runtime-final .nav details button.active,.access-runtime-final .nav details button.v2-active{
  background:var(--family-active)!important;color:var(--family-active-text)!important;border-color:var(--family-active)!important;
  box-shadow:inset 3px 0 rgba(255,255,255,.48),0 5px 14px rgba(2,8,23,.18)!important;
}
.access-runtime-final .nav details button.active .nav-ico,.access-runtime-final .nav details button.v2-active .nav-ico{
  background:rgba(255,255,255,.28)!important;color:inherit!important;border-color:rgba(255,255,255,.34)!important;box-shadow:none!important;outline:0!important;
}

/* Actualiser : vrai pictogramme de rafraîchissement et gabarit secondaire. */
.access-runtime-final .nav-refresh{
  min-height:31px!important;margin:5px 0 0!important;padding:3px 6px!important;gap:7px!important;
  border-top:1px solid rgba(148,163,184,.15)!important;border-radius:8px!important;
  background:rgba(255,255,255,.025)!important;color:#a9b8ca!important;font-size:11.5px!important;font-weight:700!important;
}
.access-runtime-final .nav-refresh .nav-ico{width:24px!important;height:24px!important;min-width:24px!important;flex-basis:24px!important;border-radius:7px!important;background:#e2e8f0!important;color:#475569!important;box-shadow:none!important}
.access-runtime-final .nav-refresh .nav-ico>svg{width:15px!important;height:15px!important}
.access-runtime-final .nav-refresh:hover{background:rgba(255,255,255,.06)!important;color:#fff!important}

/* Barre supérieure : conservée, uniquement raccordée à la nouvelle banque SVG. */
.access-runtime-final .topbar{position:sticky!important;top:0!important;z-index:80!important;min-height:72px!important;padding:9px 16px!important;border-bottom:1px solid #dbe5f1!important;background:rgba(248,251,255,.92)!important;backdrop-filter:blur(14px) saturate(140%)!important;box-shadow:0 7px 22px rgba(15,23,42,.05)!important}
.access-runtime-final .topbar-title{display:flex!important;align-items:center!important;gap:11px!important;min-width:0!important}
.access-runtime-final .hamb{width:38px!important;height:38px!important;min-width:38px!important;padding:9px!important;border:1px solid #d3e0ef!important;border-radius:11px!important;background:#fff!important;box-shadow:0 3px 10px rgba(15,23,42,.06)!important;display:none!important;flex-direction:column!important;justify-content:center!important;gap:4px!important}
.access-runtime-final .hamb span{display:block!important;width:18px!important;height:2px!important;border-radius:3px!important;background:#24466f!important}
.access-runtime-final .page-route-icon{width:42px!important;height:42px!important;min-width:42px!important;display:grid!important;place-items:center!important;border:1px solid #bfdbfe!important;border-radius:12px!important;background:linear-gradient(145deg,#eff6ff,#dbeafe)!important;color:#2563eb!important;box-shadow:0 5px 14px rgba(37,99,235,.11)!important}
.access-runtime-final .page-route-icon svg{width:22px!important;height:22px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.access-runtime-final .topbar-page-text{display:flex!important;min-width:0!important;flex-direction:column!important;line-height:1.1!important}
.access-runtime-final .page-breadcrumb{display:flex!important;align-items:center!important;gap:6px!important;margin-bottom:2px!important;color:#6b7f99!important;font-size:9px!important;font-style:normal!important;font-weight:750!important;text-transform:uppercase!important;letter-spacing:.05em!important}
.access-runtime-final .page-breadcrumb b{color:#2563eb!important}.access-runtime-final .page-breadcrumb i,.access-runtime-final .page-breadcrumb em{font-style:normal!important}
.access-runtime-final .topbar-page-text>strong{overflow:hidden!important;color:#172e4d!important;font-size:18px!important;font-weight:900!important;letter-spacing:-.02em!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.access-runtime-final .topbar-page-text>small{overflow:hidden!important;margin-top:3px!important;color:#72839a!important;font-size:10px!important;font-weight:600!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.access-runtime-final .user-bubble{width:40px!important;height:40px!important;border-radius:12px!important;background:linear-gradient(145deg,#eff6ff,#dbeafe)!important;color:#2563eb!important;border:1px solid #bfdbfe!important}
.access-runtime-final .user-bubble svg,.access-runtime-final .top-user-icon svg{width:19px!important;height:19px!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.access-runtime-final .top-user{display:flex!important;align-items:center!important;gap:8px!important}.access-runtime-final .top-user-icon{width:27px!important;height:27px!important;display:grid!important;place-items:center!important;border-radius:8px!important;background:#eaf2ff!important;color:#2563eb!important}

/* Menu réduit. */
body.menu-collapsed .access-runtime-final .side{width:76px!important;min-width:76px!important}
body.menu-collapsed .access-runtime-final .workspace{width:calc(100% - 76px)!important;margin-left:76px!important}
body.menu-collapsed .access-runtime-final .side-inner{padding:8px 7px!important}
body.menu-collapsed .access-runtime-final .brand{grid-template-columns:44px!important;justify-content:center!important;padding:7px!important}
body.menu-collapsed .access-runtime-final .brand-copy,body.menu-collapsed .access-runtime-final .nav-label,body.menu-collapsed .access-runtime-final .nav summary{display:none!important}
body.menu-collapsed .access-runtime-final .nav details{display:contents!important}
body.menu-collapsed .access-runtime-final .nav-section-items{margin:0!important;padding:0!important;border:0!important}
body.menu-collapsed .access-runtime-final .nav button,body.menu-collapsed .access-runtime-final .nav details button{width:38px!important;min-height:34px!important;margin:2px auto!important;padding:3px!important;justify-content:center!important}
body.menu-collapsed .access-runtime-final .nav-ico{margin:0!important}

/* Mobile : même menu compact, sans scrollbar interne. */
@media(max-width:980px){
  .access-runtime-final .side{left:min(-296px,-88vw)!important;width:min(296px,88vw)!important;min-width:min(296px,88vw)!important;z-index:200!important;border-radius:0 20px 20px 0!important;transition:left .22s ease!important}
  body.menu-open .access-runtime-final .side{left:0!important}
  .access-runtime-final .workspace{width:100%!important;margin-left:0!important}
  .access-runtime-final .side-inner{height:auto!important;min-height:100dvh!important;max-height:none!important;overflow:visible!important}
  .access-runtime-final .nav{overflow:visible!important}
  .access-runtime-final .hamb{display:flex!important}
  .access-runtime-final .topbar{min-height:66px!important;padding:8px 10px!important}
  .access-runtime-final .page-route-icon{width:38px!important;height:38px!important;min-width:38px!important}
  .access-runtime-final .topbar-page-text>strong{font-size:16.5px!important}
  .access-runtime-final .topbar-page-text>small{display:none!important}
  .access-runtime-final .page-breadcrumb{font-size:8.5px!important}
  .access-runtime-final .nav>button{min-height:40px!important}
  .access-runtime-final .nav details button{min-height:39px!important}
}
@media(max-width:560px){
  .access-runtime-final .page-route-icon{display:none!important}
  .access-runtime-final .page-breadcrumb b,.access-runtime-final .page-breadcrumb i{display:none!important}
  .access-runtime-final .topbar-title{gap:8px!important}
  .access-runtime-final .topbar-page-text>strong{font-size:15.5px!important}
  .access-runtime-final .topbar-actions{right:8px!important;top:62px!important}
}


/* 4.0.29 — finitions listes / RGPD / sidebar sans scroll interne */
/* V4.44 : overflow:hidden coupait silencieusement le bas du menu (bloc compte,
   version) des que le contenu depassait la hauteur d'ecran (beaucoup d'items de
   nav, ou zoom navigateur). Passe en overflow-y:auto - la scrollbar reste
   invisible (regles ci-dessous) mais le contenu redevient atteignable au
   scroll/molette quand il ne tient pas dans la hauteur disponible. */
.access-runtime-final .side.v1216-zfix,
.access-runtime-final .premium-side.v1216-zfix,
.access-runtime-final .side,
.access-runtime-final .side-inner,
.access-runtime-final .nav{
  overscroll-behavior:none!important;
  scrollbar-width:none!important;
}
.access-runtime-final .side.v1216-zfix,
.access-runtime-final .premium-side.v1216-zfix,
.access-runtime-final .side{
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.access-runtime-final .side::-webkit-scrollbar,
.access-runtime-final .side-inner::-webkit-scrollbar,
.access-runtime-final .nav::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}

.v25-list-card .v25-open-main{
  cursor:pointer!important;
  border-radius:10px!important;
  padding:3px 5px!important;
  margin:-3px -5px!important;
  transition:background .14s ease,box-shadow .14s ease!important;
}
.v25-list-card .v25-open-main:hover{background:#f1f5f9!important}
.v25-list-card .v25-open-main:focus-visible{outline:2px solid #60a5fa!important;outline-offset:2px!important;background:#eff6ff!important}

.rgpd-family-proof.is-ok{border-left-color:#16a34a!important;background:#f0fdf4!important}
.rgpd-family-proof.is-pending{border-left-color:#dc2626!important;background:#fef2f2!important}
.rgpd-family-proof.is-off{border-left-color:#94a3b8!important;background:#f8fafc!important}
.rgpd-family-proof span{font-weight:900!important}

@media(max-width:980px){
  .access-runtime-final .side.v1216-zfix,
  .access-runtime-final .premium-side.v1216-zfix,
  .access-runtime-final .side{overflow-y:auto!important;overflow-x:hidden!important}
}

/* ==========================================================================
   4.0.30 — Polish menu latéral (survol, sélection, pastille d'alertes)
   Additif uniquement : n'écrase aucune règle de couleur/structure du bloc
   4.0.28 ci-dessus, ne fait qu'affiner transitions, relief et micro-état.
   ========================================================================== */

/* Profondeur douce en fond de panneau (purement décoratif, clippé par .side, déjà position:fixed). */
.access-runtime-final .side::before{
  content:''!important;position:absolute!important;top:-8%!important;right:-28%!important;
  width:62%!important;height:40%!important;pointer-events:none!important;z-index:0!important;
  background:radial-gradient(circle,rgba(56,189,248,.30),rgba(56,189,248,0) 72%)!important;
}
.access-runtime-final .side-inner{position:relative!important;z-index:1!important}

/* Icônes/summary : transition fluide pour le léger effet d'agrandissement au survol. */
.access-runtime-final .nav-ico,
.access-runtime-final summary .group-dot{transition:transform .15s ease,background .15s ease,color .15s ease!important}

/* Boutons de premier niveau : liseré d'accent qui glisse à l'apparition + léger décalage. */
.access-runtime-final .nav>button{transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease!important}
.access-runtime-final .nav>button::before{
  content:''!important;position:absolute!important;left:0!important;top:50%!important;
  width:3px!important;height:0!important;transform:translateY(-50%)!important;
  border-radius:0 3px 3px 0!important;background:linear-gradient(180deg,#7dd3fc,#38bdf8)!important;
  transition:height .16s ease!important;pointer-events:none!important;
}
.access-runtime-final .nav>button:hover::before{height:58%!important}
.access-runtime-final .nav>button:hover{
  background:rgba(255,255,255,.09)!important;border-color:rgba(148,163,184,.18)!important;
  color:#fff!important;transform:translateX(2px)!important;
}
.access-runtime-final .nav>button:hover .nav-ico{transform:scale(1.06)!important}
.access-runtime-final .nav>button.active,.access-runtime-final .nav>button.v2-active{
  box-shadow:inset 3px 0 #7dd3fc,0 10px 24px rgba(37,99,235,.32),0 0 0 1px rgba(125,211,252,.22)!important;
}

/* Sous-boutons de groupe : même traitement, teinté par la couleur de la famille du groupe. */
.access-runtime-final .nav details button{transition:background .13s ease,border-color .13s ease,color .13s ease,transform .13s ease!important}
.access-runtime-final .nav details button:hover{transform:translateX(2px)!important}
.access-runtime-final .nav details button:hover .nav-ico{transform:scale(1.06)!important}
.access-runtime-final .nav summary:hover .group-dot{transform:scale(1.06)!important}

/* Pastille d'alertes sur "Accueil" (raccordée en JS à alertCount(window.__lastDashboard)). */
.access-runtime-final .nav-badge{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-width:25px!important;height:17px!important;padding:0 6px!important;margin-left:auto!important;
  border-radius:999px!important;background:#ef4444!important;color:#fff!important;
  font-size:10.5px!important;font-weight:800!important;line-height:1!important;flex:0 0 auto!important;
  white-space:nowrap!important;box-shadow:0 2px 6px rgba(239,68,68,.45)!important;
}
.access-runtime-final .nav-badge[hidden]{display:none!important}
body.menu-collapsed .access-runtime-final .nav-badge:not([hidden]){
  display:block!important;position:absolute!important;top:2px!important;right:4px!important;
  min-width:0!important;width:9px!important;height:9px!important;padding:0!important;
  font-size:0!important;margin-left:0!important;border:2px solid var(--nav-bg,#07172c)!important;
  transform:none!important;
}

/* 4.0.31 — Les enfants d'un groupe reprennent la couleur "famille" de leur groupe parent
   (au lieu d'une couleur par route sans lien visuel), pour lire la hiérarchie du menu d'un coup d'œil. */
.access-runtime-final .nav details button[data-route-icon]:not(.active):not(.v2-active) .nav-ico{
  background:var(--family-soft)!important;
  color:var(--family)!important;
}

/* 4.0.33 — Badge "Accueil" : toujours en position absolue, jamais dans le flux flex du bouton.
   Ainsi il ne peut plus jamais être poussé en dessous, quel que soit le comportement du libellé
   (retour à la ligne, largeur variable, animation replié/déplié...). Remplace la tentative 4.0.32
   (flex-wrap/white-space), qui restait dépendante du flux et pouvait encore glisser dans certains cas. */
.access-runtime-final .nav>button .nav-badge{
  position:absolute!important;
  right:9px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  margin-left:0!important;
}
/* Replié : la règle 4.0.30 ci-dessus reprend la main (right:4px;top:2px;petit point) — non modifiée ici. */

/* V4.44 — Mes réservations mobile portrait : affichage compact.
   Plusieurs blocs precedents (fusionnes au fil des versions) redonnaient
   involontairement de grandes tailles (boutons de service jusqu'a 66px de
   haut, icones 34px) a un affichage pourtant deja pense pour etre dense.
   Ce bloc, place en dernier, tranche une bonne fois les tailles reellement
   utilisees sur portrait mobile, sans toucher au positionnement (deja
   corrige juste au-dessus) ni au fonctionnement. */
@media (max-width:700px) and (orientation:portrait){
  .parent-mobile-sticky-43960{padding:6px 8px 4px!important}
  .parent-mobile-sticky-43960 .parent-month-head-43930{margin:0 0 2px!important}
  .parent-mobile-sticky-43960 .parent-month-head-43930 h1{font-size:.8rem!important;line-height:1.1!important;margin:0!important}
  .parent-mobile-sticky-43960 .parent-month-head-43930 .subtitle{display:none!important}
  .parent-mobile-sticky-43960 .parent-month-toolbar-43930{margin:0 0 3px!important;padding:2px!important;gap:4px!important}
  .parent-mobile-sticky-43960 .parent-month-toolbar-43930 button{width:28px!important;height:28px!important;min-height:28px!important;font-size:1rem!important}
  .parent-mobile-sticky-43960 .parent-month-toolbar-43930 strong{font-size:.74rem!important}
  .pm-child-select-wrap-43960{margin:0 0 3px!important;font-size:.62rem!important}
  .pm-child-select-wrap-43960 select{height:26px!important;min-height:26px!important;padding:2px 22px 2px 7px!important;font-size:.7rem!important}
  .pm-mobile-date-strip-43960{padding:0!important}
  .pm-date-chip-43960{flex:0 0 33px!important;width:33px!important;min-height:31px!important;height:31px!important}
  .pm-date-chip-43960 small{font-size:.46rem!important}
  .pm-date-chip-43960 b{font-size:.68rem!important}
  .pm-landscape-hint-43964{min-height:10px!important;margin:1px 0 0!important;font-size:.44rem!important}

  .pm-mobile-days-43960{padding:0!important}
  .pm-mobile-day-43960{padding:6px!important;margin:0 0 5px!important;border-radius:10px!important}
  .pm-mobile-day-head-43964{margin:0 0 3px!important}
  .pm-mobile-day-43960 .pm-mobile-day-head-43964 h2{font-size:.72rem!important;line-height:1.1!important;padding:0 1px!important}
  .pm-mobile-services-43960{gap:4px!important}
  .pm-mobile-service-43960{min-height:38px!important;padding:3px 6px!important;gap:6px!important;grid-template-columns:22px minmax(0,1fr) auto!important;border-radius:8px!important}
  .pm-mobile-svc-icon-43960{width:21px!important;height:21px!important;font-size:.8rem!important;border-radius:6px!important}
  .pm-mobile-svc-copy-43960 b{font-size:.7rem!important;line-height:1.05!important}
  .pm-mobile-svc-copy-43960 small{font-size:.56rem!important;margin-top:0!important}
  .pm-mobile-state-43960{font-size:.56rem!important;padding:3px 5px!important}
  .pm-mobile-closed-43960{min-height:32px!important;padding:5px 7px!important;font-size:.64rem!important}
  .pm-mobile-extras-43960{gap:4px!important;margin-top:4px!important}
}

/* ============================================================
   V4.1.51 — fiche foyer / Documents : largeur mobile bornee
   Safari conserve une largeur intrinseque importante sur input[type=file].
   Elle ne doit jamais elargir le panneau ni decaler toute la page.
   ============================================================ */
@media (max-width:640px){
  .clean-sheet,
  .clean-sheet .clean-pane,
  .clean-sheet #cf-docs,
  .clean-sheet .clean-doc-upload,
  .clean-sheet .clean-grid,
  .clean-sheet .field,
  .clean-sheet #cfDocsList,
  .clean-sheet .clean-doc-row,
  .clean-sheet .clean-doc-row>div{
    min-width:0!important;
    max-width:100%!important;
  }
  .clean-sheet #cf-docs{
    width:100%!important;
    overflow-x:hidden!important;
  }
  .clean-sheet #cfDocFile{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
    padding:7px!important;
    font-size:11px!important;
  }
  .clean-sheet #cfDocFile::file-selector-button,
  .clean-sheet #cfDocFile::-webkit-file-upload-button{
    max-width:58%!important;
    margin:0 6px 0 0!important;
    padding:8px 7px!important;
    border:0!important;
    border-radius:9px!important;
    background:#eef3f9!important;
    color:#233045!important;
    font-size:10.5px!important;
    font-weight:700!important;
    white-space:normal!important;
  }
  .clean-sheet .clean-doc-row{
    grid-template-columns:minmax(0,1fr)!important;
    overflow:hidden!important;
  }
  .clean-sheet .clean-doc-row b,
  .clean-sheet .clean-doc-row span,
  .clean-sheet .clean-doc-row small{
    min-width:0!important;
    max-width:100%!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
  .clean-sheet .clean-doc-row .clean-actions{
    width:100%!important;
    min-width:0!important;
  }
  .clean-sheet .clean-doc-row .clean-actions>*{
    flex:1 1 120px!important;
    min-width:0!important;
  }
}

/* V4.1.57 — Messagerie : barre recherche + tout cocher/decocher au-dessus de la liste. */
.v4-multi-select-tools{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}
.v4-multi-select-tools input[type="search"]{
  flex:1 1 180px;
  min-width:140px;
}
.v4-multi-select-tools small{
  margin-left:auto;
  white-space:nowrap;
}

/* V4.1.55 — Messagerie : liste de destinataires a cocher (foyers/comptes internes). */
.v4-multi-check-list{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:6px 14px;
  max-height:260px;
  overflow-y:auto;
  padding:10px 12px;
  border:1px solid var(--border,#dbe3ee);
  border-radius:10px;
  background:var(--card,#fff);
}
.v4-multi-check-list label.check{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:.86rem;
}
