:root{
  --bg:#f6f7f9; --surface:#fff; --border:#dfe3e8; --text:#1e2430; --muted:#6b7280;
  --accent:#2f5fd0; --accent-soft:#eaf1fb; --ok:#1f8f4e; --ko:#c0392b; --warn:#b7791f;
  --radius:10px;
}
*{box-sizing:border-box}
[hidden]{display:none !important}   /* l'attribut hidden doit toujours masquer, même sur label/flex */
.chez{color:var(--muted);font-size:12px}
/* Périmètre résolution (bâtiments -> lots) */
#rm-perim-detail{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-top:6px;background:var(--bg)}
.perim-bats{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}
.bat-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.bat-subs{display:inline-flex;flex-wrap:wrap;gap:4px 10px;margin-left:8px}
.modal-body .bat-group label{display:inline-flex;flex-direction:row;align-items:center;gap:4px;font-weight:400;color:var(--text)}
.modal-body .bat-group label.bat-master{font-weight:600}
.perim-lots-wrap{margin:6px 0}
.perim-lots{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;margin-top:6px}
.lot-fs{border:1px solid var(--border);border-radius:6px;padding:4px 8px}
.lot-fs legend{font-size:12px;font-weight:600;padding:0 4px}
.modal-body .lot-c{display:inline-flex;flex-direction:row;align-items:center;gap:4px;margin:2px 10px 2px 0;font-weight:400;font-size:13px;color:var(--text)}
#rm-perim-detail input[type=checkbox]{width:auto;margin:0;flex:0 0 auto}
button.link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0}
.perim-key{font-size:13px;margin-top:6px;padding:6px 8px;background:var(--accent-soft);border-radius:6px}
.row2{display:flex;gap:10px}
.row2 label{flex:1}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1{font-size:22px;margin:18px 0 14px}
h2{font-size:17px;margin:26px 0 10px}
.muted{color:var(--muted)}
.small{font-size:13px}
.count{color:var(--muted);font-weight:400;font-size:16px}

/* Top bar */
.topbar{display:flex;align-items:center;gap:20px;background:var(--surface);border-bottom:1px solid var(--border);
  padding:0 22px;height:56px;position:sticky;top:0;z-index:10}
.brand{font-weight:700}
.mainnav{display:flex;gap:4px;flex:1}
.mainnav a{padding:8px 12px;border-radius:8px;color:var(--text)}
.mainnav a:hover{background:var(--bg);text-decoration:none}
.mainnav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}
.userbox{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:14px}
.logout{color:var(--muted)}
.nav-toggle{display:none}                 /* case masquée : pilotée par le label burger */
.nav-burger{display:none;font-size:24px;line-height:1;cursor:pointer;color:var(--text);padding:4px 8px;user-select:none}
.content{max-width:none;margin:0 auto;padding:8px 26px 60px}
.content.wide{max-width:none}
.foot{max-width:none;margin:0 auto;padding:20px 26px;color:var(--muted);font-size:13px}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:6px 0 8px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.card .num{font-size:26px;font-weight:700}
.card .lbl{color:var(--muted);font-size:13px;margin-top:2px}

/* Toolbar / search */
.toolbar{display:flex;align-items:center;gap:12px;margin:6px 0 12px}
.search{flex:1;max-width:460px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;font-size:15px;background:var(--surface)}
.search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}

/* Tables */
.grid{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.grid th,.grid td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}
.grid thead th{background:#fafbfc;font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}
.grid tbody tr:last-child td{border-bottom:none}
.grid tbody tr:hover{background:#fafbfe}
.th-sort{cursor:pointer;user-select:none}
.th-sort.asc::after{content:" ▲";color:var(--accent);font-size:10px}
.th-sort.desc::after{content:" ▼";color:var(--accent);font-size:10px}

/* Pills / badges */
.pill{display:inline-block;padding:1px 8px;border-radius:20px;font-size:12px;font-weight:600}
.pill.open{background:#eef7ff;color:var(--accent)}
.pill.done{background:#eaf6ee;color:var(--ok)}
.pill.warn{background:#fdf3e2;color:var(--warn)}
.btn{display:inline-block;padding:6px 12px;background:var(--accent);color:#fff;border-radius:8px;font-size:14px}
.btn:hover{text-decoration:none;filter:brightness(1.05)}
.btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}

/* Alerts */
.alert{padding:10px 14px;border-radius:9px;margin:10px 0;font-size:14px}
.alert.error{background:#fdecea;color:var(--ko);border:1px solid #f5c6c0}
.alert.info{background:var(--accent-soft);color:var(--accent);border:1px solid #cfe0fa}
.alert.warn{background:#fdf3e2;color:#b7791f;border:1px solid #f0d9a8}

/* Login */
.login-body{display:flex;min-height:100vh;align-items:center;justify-content:center;background:var(--bg)}
.login-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:30px;width:340px;box-shadow:0 6px 30px rgba(20,30,50,.06)}
.login-card h1{font-size:19px;margin:0}
.login-card .subtitle{color:var(--muted);font-size:14px;margin:4px 0 18px}
.login-card label{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}
.login-card input{width:100%;margin-top:5px;padding:10px;border:1px solid var(--border);border-radius:9px;font-size:15px}
.login-card button{width:100%;padding:11px;background:var(--accent);color:#fff;border:none;border-radius:9px;font-size:15px;cursor:pointer;margin-top:6px}

/* Fiche */
.deflist{display:grid;grid-template-columns:180px 1fr;gap:6px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;max-width:640px}
.deflist dt{color:var(--muted);font-size:14px}
.deflist dd{margin:0;font-weight:500}
.backlink{display:inline-block;margin:4px 0 12px;color:var(--muted)}

/* Émargement / séance : synthèse */
.summary{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 14px}
.sbox{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 14px;font-size:14px;color:var(--muted)}
.sbox .snum{font-size:20px;font-weight:700;margin-right:6px;color:var(--text)}
.sbox em{display:block;color:var(--muted);font-size:12px;font-style:normal;margin-top:2px}
.sbox.total{background:var(--accent-soft);border-color:#cfe0fa;color:var(--accent)}
.sbox.total .snum{color:var(--accent)}

/* Contrôles en tableau */
.grid select,.grid input[type=text],.grid input[type=time]{padding:6px 9px;border:1px solid var(--border);border-radius:7px;font-size:14px;background:#fff;font-family:inherit}
.grid select:focus,.grid input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.grid .st-mand{width:100%;min-width:230px}

/* Colonne état : emoji + fond pastel par statut */
.st-emoji{width:44px;text-align:center;font-size:18px}
tr.st-present > td{background:#e8f6ec}         /* vert pastel */
tr.st-absent > td{background:#fdeceb}          /* rouge pastel */
tr.st-represente > td{background:#f1ebfb}       /* violet pastel */
tr.st-correspondance > td{background:#e9f1fb}   /* bleu pastel */
.grid tbody tr:hover > td{filter:brightness(.985)}
tr.saving{opacity:.55}
tr.saved > td{box-shadow:inset 0 2px 0 rgba(31,143,78,.55)}
tr.error-row > td{box-shadow:inset 0 0 0 2px #e6a19a}

/* Émargement : mandants indentés sous leur porteur */
tr.mandant-row td:nth-child(2){padding-left:26px}
tr.mandant-row .v-lead{color:var(--muted);margin-right:2px}
tr.ext-head td{background:#f1ebfb;font-weight:600}

/* Boutons icônes / listes contact */
.icon-btn{background:none;border:none;box-shadow:none;cursor:pointer;font-size:16px;padding:0;line-height:1}
.icon-btn:hover{background:none;opacity:.6}
/* En-tête de fiche : nom à gauche, crayon à droite, ligne de séparation dessous */
.fiche-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:16px}
.fiche-head h1{margin:0}
.fiche-head .icon-btn{font-size:20px}
.contact-list{margin:0;padding-left:0;list-style:none}
.contact-list li{margin:2px 0}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(20,28,44,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:100;overflow:auto}
.modal-overlay[hidden]{display:none}
.modal{background:#fff;border-radius:14px;width:540px;max-width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border)}
.modal-head h2{margin:0;font-size:17px}
.modal-close{background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--muted)}
.modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px}
.modal-body label{display:flex;flex-direction:column;font-size:13px;color:var(--muted);gap:4px}
.modal-body label.check{flex-direction:row;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer}
.modal-body label.check input{width:auto;margin:0;flex:0 0 auto}
.modal-body input[type=text],.modal-body select,.modal-body textarea{padding:9px 10px;border:1px solid var(--border);border-radius:8px;font-size:15px;font-family:inherit;color:var(--text);background:#fff}
.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.field .field-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);margin-bottom:6px}
.contact-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}
.contact-row .c-type{flex:0 0 115px}
.contact-row .c-valeur{flex:1;min-width:0}
.contact-row .c-libelle{flex:0 0 130px;min-width:0}
.contact-row .c-remove{background:none;border:1px solid var(--border);border-radius:7px;width:32px;height:32px;cursor:pointer;color:var(--ko);flex:0 0 auto}
.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:8px}
.btn.small{padding:4px 10px;font-size:13px}

/* Modal votes par correspondance */
.modal-lg{width:700px}
.vote-cell{text-align:center;width:44px}
.votes-scroll{max-height:58vh;overflow:auto;border:1px solid var(--border);border-radius:8px}
.votes-table{width:100%;border-collapse:collapse;font-size:14px}
.votes-table td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:middle}
.votes-table tr:last-child td{border-bottom:none}
.vr-num{width:32px;color:var(--muted);text-align:right}
.vr-lbl{font-size:13px}
.vr-lbl .art{color:var(--muted);font-size:11px;white-space:nowrap;margin-left:4px}
.vr-seg{width:210px;white-space:nowrap;text-align:right}
.vr-seg button{border:1px solid var(--border);background:#fff;padding:4px 9px;font-size:12px;cursor:pointer;margin-left:-1px;color:var(--text)}
.vr-seg button:first-child{border-radius:7px 0 0 7px}
.vr-seg button:last-child{border-radius:0 7px 7px 0}
.vr-seg button:hover{background:var(--bg)}
.vr-seg button.on.pour{background:#e8f6ec;border-color:#57b47e;color:#1f8f4e;font-weight:600}
.vr-seg button.on.contre{background:#fdeceb;border-color:#e6a19a;color:#c0392b;font-weight:600}
.vr-seg button.on.abstention{background:#eef1f4;border-color:#b7c0cc;color:#4a5361;font-weight:600}
.votes-table tr.info-row{background:#fafbfc}
.votes-table tr.info-row .vr-lbl{color:var(--muted)}

/* En-tête de section avec action à droite */
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:26px 0 10px;border-bottom:1px solid var(--border);padding-bottom:8px}
.section-head h1,.section-head h2{margin:0}
.row-actions{white-space:nowrap;text-align:right}
.row-actions .icon-btn{font-size:15px;padding:2px 4px}
.col-act{width:46px;text-align:center;white-space:nowrap}
.col-act .icon-btn{font-size:16px}
.grid.full{width:100%}

/* Grille des votes par correspondance (matrice) */
.matrix-scroll{overflow:auto;max-height:76vh;border:1px solid var(--border);border-radius:10px;background:#fff}
.matrix{border-collapse:separate;border-spacing:0;font-size:13px}
.matrix th,.matrix td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:4px 6px;background:#fff}
.matrix thead th{position:sticky;top:0;z-index:3;background:#fafbfc;vertical-align:bottom}
.mx-corner{position:sticky;left:0;top:0;z-index:5;background:#fafbfc;text-align:left;min-width:270px}
.mx-res{position:sticky;left:0;z-index:2;background:#fff;text-align:left;min-width:270px;max-width:340px}
.mx-res .n{display:inline-block;min-width:22px;color:var(--muted);font-weight:600}
.mx-res .art{display:block;color:var(--muted);font-size:11px;margin-left:22px}
.mx-voter{white-space:nowrap;max-width:130px}
.mx-voter span{display:inline-block;max-width:120px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}
.mx-cell{text-align:center;white-space:nowrap}
.mx-cell.muted{color:var(--muted)}
.mx-cell button{border:1px solid var(--border);background:#fff;width:22px;height:24px;font-size:11px;cursor:pointer;margin-left:-1px;color:var(--text);padding:0}
.mx-cell button:first-of-type{border-radius:6px 0 0 6px}
.mx-cell button:last-of-type{border-radius:0 6px 6px 0}
.mx-cell button:hover{background:var(--bg)}
.mx-cell button.on.pour{background:#e8f6ec;border-color:#57b47e;color:#1f8f4e;font-weight:700}
.mx-cell button.on.contre{background:#fdeceb;border-color:#e6a19a;color:#c0392b;font-weight:700}
.mx-cell button.on.abstention{background:#eef1f4;border-color:#b7c0cc;color:#4a5361;font-weight:700}
.mx-cell.saved{box-shadow:inset 0 0 0 2px #bfe3cc}
.mx-cell.err{box-shadow:inset 0 0 0 2px #e6a19a}

/* Mode séance */
.seance-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 14px}
.seance-head h1{margin:0}
.seance-dt{display:flex;gap:12px;align-items:center}
.seance-dt label{font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center}
.seance-dt input{padding:6px 8px;border:1px solid var(--border);border-radius:7px}
.seance-status{padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600;background:var(--bg);color:var(--muted)}
.seance-status.open{background:#eef7ff;color:var(--accent)}
.seance-status.done{background:#eaf6ee;color:var(--ok)}
.seance-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}

.res-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.res-top{display:flex;align-items:flex-start;gap:10px}
/* Accordéon : corps replié par défaut */
.res-collapse{display:none;margin-top:10px}
.res-card.open .res-collapse{display:block}
.res-title.res-toggle{cursor:pointer}
.res-caret{display:inline-block;color:var(--muted);margin-right:2px;transition:transform .12s;font-size:12px}
.res-card.open .res-caret{transform:rotate(90deg)}
.res-badge{display:none} .res-badge:not(:empty){display:inline-block;margin-left:8px;font-size:12px;font-weight:700;padding:1px 9px;border-radius:20px}
.res-badge.ok{background:#eaf6ee;color:var(--ok)} .res-badge.ko{background:#fdeceb;color:var(--ko)} .res-badge.wait{background:#fdf3e2;color:var(--warn)}
.res-taux{font-size:13px;margin:4px 0} .res-taux .muted{font-size:12px}
/* Poussoir « Non modifiée / Amendée » */
.res-modif-wrap{margin-bottom:12px;display:flex;flex-direction:column;gap:4px}
.rm-label{font-size:13px;color:var(--muted)}
.seg-toggle{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;width:fit-content}
.seg-toggle button{border:none;background:#fff;padding:7px 14px;font-size:13px;cursor:pointer;color:var(--muted)}
.seg-toggle button+button{border-left:1px solid var(--border)}
.seg-toggle:not(.on) button[data-val="0"]{background:var(--accent-soft);color:var(--accent);font-weight:700}
.seg-toggle.on button[data-val="1"]{background:#fdf3e2;color:var(--warn);font-weight:700}
.seg-toggle[data-locked] button{cursor:default;opacity:.65}
.res-move{display:flex;flex-direction:column}
.res-move .icon-btn{font-size:12px;padding:0;line-height:1.1}
.res-title{flex:1;font-size:15px}
.res-title .res-num{display:inline-block;min-width:26px;color:var(--muted);font-weight:700}
.res-title .art{color:var(--muted);font-size:13px}
.res-tools{white-space:nowrap}
.res-body{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:10px}
.vote-headline{display:flex;gap:12px;align-items:center;margin-bottom:8px}
.vote-headline .hv{font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center}
.vote-headline .res-filter{flex:1;max-width:280px}
.bulk-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
table.voters{width:100%}
table.voters td,table.voters th{padding:5px 8px}
table.voters .v-icon{width:52px;text-align:center;font-size:15px}
table.voters .v-icon.indent{text-align:right;padding-right:6px}
table.voters tr:has(.v-icon.indent){background:#fcfcfd}
.vote-seg{white-space:nowrap}
.vote-seg button{border:1px solid var(--border);background:#fff;padding:4px 9px;font-size:12px;cursor:pointer;margin-left:-1px;color:var(--text)}
.vote-seg button:first-child{border-radius:7px 0 0 7px}
.vote-seg button:last-child{border-radius:0 7px 7px 0}
.vote-seg button.on.pour{background:#e8f6ec;border-color:#57b47e;color:#1f8f4e;font-weight:700}
.vote-seg button.on.contre{background:#fdeceb;border-color:#e6a19a;color:#c0392b;font-weight:700}
.vote-seg button.on.abstention{background:#eef1f4;border-color:#b7c0cc;color:#4a5361;font-weight:700}
.vote-seg.corr button{opacity:.65;cursor:default}
.res-result{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:10px 12px;font-size:13px}
.res-verdict{font-weight:700;margin-bottom:4px}
.res-verdict.ok{color:var(--ok)} .res-verdict.ko{color:var(--ko)} .res-verdict.wait{color:var(--warn)}
.res-counts{font-size:13px;margin-bottom:4px}
.res-lists{margin-top:4px;font-size:12px}
.res-comm-l,.res-texte-l{display:block;margin-top:10px;font-size:13px;color:var(--muted)}
.res-comm,.res-txt{width:100%;margin-top:4px;padding:8px;border:1px solid var(--border);border-radius:8px;font-family:inherit}
.res-txt:focus,.res-comm:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tour2{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}
.tour2-head{font-weight:600;font-size:13px;margin-bottom:6px;display:flex;gap:10px;align-items:center}

/* Bouton flottant (arrivée / départ) */
.fab{position:fixed;right:22px;bottom:22px;z-index:80;background:var(--accent);color:#fff;border:none;border-radius:26px;padding:12px 18px;font-size:15px;font-weight:600;box-shadow:0 6px 20px rgba(20,30,50,.28);cursor:pointer}
.fab:hover{filter:brightness(1.06)}
.cle-select{padding:7px 9px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;margin-left:4px}

/* Ordre du jour : réordonnancement */
#odj-table .drag-handle{cursor:grab;color:var(--muted);width:22px;text-align:center;user-select:none;font-size:15px}
#odj-table .res-num{width:34px;color:var(--muted)}
.odj-actions{white-space:nowrap;text-align:right;width:160px}
.odj-actions .icon-btn{font-size:14px;padding:2px 3px}
#odj-table tr.dragging{opacity:.5;background:var(--accent-soft)}

/* Règlement de copropriété */
.regles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:6px 0 10px}
.regle-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.regle-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.regle-titre{font-weight:600}
.regle-act{white-space:nowrap}
.regle-detail{font-size:14px;color:var(--text);margin-top:6px}
.regle-ref{font-size:12px;color:var(--muted);margin-top:6px;font-style:italic}
.art-card{background:var(--surface);border:1px solid var(--border);border-radius:9px;margin:8px 0}
.art-card>summary{cursor:pointer;padding:10px 14px;list-style:none;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.art-card>summary::-webkit-details-marker{display:none}
.art-card>summary::before{content:"▸";color:var(--muted);margin-right:6px}
.art-card[open]>summary::before{content:"▾"}
.art-lbl{font-weight:600}
.art-sec{font-size:12px;color:var(--muted)}
.art-body{padding:0 14px 14px 14px}
.art-text{white-space:pre-line;font-size:14px;line-height:1.55;color:var(--text);margin-top:8px}
.art-edit{margin-top:2px}

/* ============================================================
   RESPONSIVE — tablette & téléphone (mobile s'appuie sur le desktop ci-dessus)
   ============================================================ */

/* Tablette et en dessous */
@media(max-width:900px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .res-body{grid-template-columns:1fr}      /* séance : vote puis résultat empilés */
}

/* Téléphone */
@media(max-width:760px){
  /* Barre de navigation repliable (burger) */
  .topbar{flex-wrap:wrap;height:auto;min-height:52px;padding:8px 14px;gap:8px}
  .brand{flex:1}
  .nav-burger{display:block;margin-left:auto}
  .mainnav{display:none;order:3;flex-basis:100%;flex-direction:column;gap:2px;padding-bottom:6px}
  .nav-toggle:checked ~ .mainnav{display:flex}
  .mainnav a{padding:11px 12px;border-radius:8px}     /* cibles tactiles */
  .userbox{order:2}

  h1{font-size:20px;margin:12px 0 10px}
  h2{font-size:16px;margin:20px 0 8px}
  .content{padding:8px 12px 64px}

  /* Cartes du tableau de bord et synthèses : pleine largeur empilée */
  .cards{grid-template-columns:1fr}
  .regles{grid-template-columns:1fr}
  .summary{gap:6px}
  .sbox{padding:6px 10px;font-size:13px;flex:1 1 46%}
  .deflist{grid-template-columns:1fr;gap:2px 0}
  .deflist dt{margin-top:8px}

  /* Barres d'outils / en-têtes de section : on empile */
  .toolbar{flex-wrap:wrap}
  .search{max-width:none;flex:1 1 100%}
  .section-head{flex-wrap:wrap;gap:8px}
  .seance-head{gap:8px}
  .seance-actions{margin-left:0;flex-basis:100%}
  .seance-actions .btn{flex:1 1 auto;text-align:center}

  /* Tableaux larges : défilement horizontal plutôt que débordement coupé */
  .grid{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  .grid td,.grid th{white-space:nowrap}

  /* Boutons segmentés de vote : plus gros au doigt */
  .vote-seg button,.vr-seg button{padding:8px 12px;font-size:14px}
  .mx-cell button{width:30px;height:34px;font-size:13px}
  .icon-btn{font-size:18px;padding:6px}
  .row-actions .icon-btn,.col-act .icon-btn,.odj-actions .icon-btn{font-size:17px;padding:6px 6px}
  .btn{padding:9px 14px}

  /* Formulaires en tableau (émargement) : contrôles confortables */
  .grid select,.grid input[type=text],.grid input[type=time]{padding:8px 10px;font-size:15px}
  .grid .st-mand{min-width:180px}

  /* Modals : quasi plein écran */
  .modal,.modal-lg{width:100%}
  .modal-overlay{padding:12px 8px}
  .contact-row{flex-wrap:wrap}
  .contact-row .c-type{flex:1 1 40%}
  .contact-row .c-valeur{flex:1 1 100%}
  .contact-row .c-libelle{flex:1 0 100%}

  /* Bouton flottant un peu plus discret */
  .fab{right:14px;bottom:14px;padding:12px 16px}
}

/* Très petit écran */
@media(max-width:400px){
  .sbox{flex:1 1 100%}
  .brand{font-size:14px}
}
