:root{--bleu:#106FB1;--bleu-f:#0B4F80;--vert:#94BD21;--vert-f:#5F7C12;--nuit:#0E2A44;--encre:#14212E;--gris:#5A6B7C;--ligne:#D8E0E8;--fond:#F3F6F9;--blanc:#fff;--rouge:#B3261E;--orange:#C77700;--r:10px;--ombre:0 1px 2px rgba(14,42,68,.06),0 6px 20px rgba(14,42,68,.06)}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:"Segoe UI",Inter,system-ui,-apple-system,Arial,sans-serif;font-size:14.5px;color:var(--encre);background:var(--fond);line-height:1.5}
a{color:var(--bleu);text-decoration:none}
button,input,select,textarea{font:inherit}
h1{font-family:Georgia,"DejaVu Serif",serif;font-weight:600;font-size:24px;color:var(--nuit);margin:0 0 4px}
h2{font-size:15px;color:var(--nuit);margin:0 0 10px;letter-spacing:.2px}
h3{font-size:13px;color:var(--bleu);text-transform:uppercase;letter-spacing:1.2px;margin:0 0 8px}
.muted{color:var(--gris)} .small{font-size:12.5px}
.app{min-height:100%}

/* ---- Connexion ---- */
.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.login .pane{background:var(--nuit);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login .pane::after{content:"";position:absolute;right:-120px;bottom:-120px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(148,189,33,.35),transparent 70%)}
.login .pane img{height:64px;width:auto;background:#fff;padding:8px 12px;border-radius:8px;align-self:flex-start}
.login .pane h1{color:#fff;font-size:38px;margin:0 0 12px}
.login .pane p{color:#C9D6E3;max-width:46ch;font-size:16px}
.login .pane ul{color:#C9D6E3;padding-left:18px;margin:18px 0 0} .login .pane li{margin-bottom:6px}
.login .form{display:flex;align-items:center;justify-content:center;padding:40px}
.card{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r);box-shadow:var(--ombre);padding:22px}
.login .card{width:min(420px,100%)}
label{display:block;font-size:12.5px;font-weight:600;color:var(--gris);margin:12px 0 4px}
input,select,textarea{width:100%;border:1px solid var(--ligne);border-radius:8px;padding:10px 12px;background:#fff;color:var(--encre)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--bleu);outline-offset:0;border-color:var(--bleu)}
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:9px 16px;font-weight:600;cursor:pointer;background:var(--bleu);color:#fff;transition:.15s}
.btn:hover{background:var(--bleu-f)} .btn:disabled{opacity:.5;cursor:not-allowed}
.btn.vert{background:var(--vert-f)} .btn.vert:hover{background:#4e6610}
.btn.ghost{background:#fff;color:var(--nuit);border-color:var(--ligne)} .btn.ghost:hover{background:var(--fond)}
.btn.danger{background:var(--rouge)} .btn.sm{padding:5px 10px;font-size:12.5px;font-weight:600}
.btn.block{width:100%;justify-content:center;margin-top:18px}
.erreur{background:#FBEAE8;color:var(--rouge);border-radius:8px;padding:10px 12px;margin-top:12px;font-size:13px}
.avert{background:#FFF4E0;color:#7A4A00;border-left:4px solid var(--orange);border-radius:8px;padding:10px 12px;margin:8px 0;font-size:13px}
.ok{background:#EEF6D8;color:var(--vert-f);border-left:4px solid var(--vert);border-radius:8px;padding:10px 12px;margin:8px 0;font-size:13px}

/* ---- Coque (interface Boardroom) ---- */
.shell{display:grid;grid-template-columns:256px 1fr;min-height:100vh;background:var(--fond)}
.side{background:#fff;border-right:1px solid var(--ligne);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}
.instance{display:flex;align-items:center;gap:10px;padding:14px 14px;border-bottom:1px solid var(--ligne);cursor:pointer;position:relative;background:#F7F9FC}
.instance:hover{background:#EEF3F9}
.instance .ic{width:40px;height:40px;border-radius:10px;background:var(--nuit);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
.instance .ic.logo{background:#fff;border:1px solid var(--ligne)} .instance .ic img{max-width:34px;max-height:34px;object-fit:contain}
.instance b{display:block;color:var(--nuit);font-size:14px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.instance span{font-size:11.5px;color:var(--gris)} .instance .chev{margin-left:auto;color:var(--gris)}
.inst-menu{position:absolute;left:8px;right:8px;top:calc(100% + 4px);background:#fff;border:1px solid var(--ligne);border-radius:12px;box-shadow:0 12px 40px rgba(14,42,68,.18);z-index:60;padding:6px;max-height:70vh;overflow:auto}
.inst-menu h4{font-size:11px;color:var(--gris);text-transform:uppercase;letter-spacing:1px;margin:10px 10px 4px}
.inst-menu a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--encre);font-size:13.5px}
.inst-menu a:hover{background:#F3F6F9} .inst-menu a.on{background:#E8F1F9;color:var(--bleu);font-weight:600}
.inst-menu a .ic{width:30px;height:30px;border-radius:8px;background:#EEF2F6;color:var(--nuit);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.inst-menu a small{display:block;color:var(--gris);font-size:11.5px;font-weight:400}
.side nav{padding:10px 10px 0}
.side nav a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:9px;color:var(--encre);font-size:14px;font-weight:500;margin-bottom:2px}
.side nav a:hover{background:#F3F6F9} .side nav a.actif{background:#E8F1F9;color:var(--bleu);font-weight:600}
.side nav a .ico{width:20px;text-align:center;opacity:.8;font-size:15px} .side nav a .badge{margin-left:auto;background:var(--rouge);color:#fff;border-radius:999px;font-size:10.5px;padding:1px 7px;font-weight:700}
.side .sect{font-size:11px;color:var(--gris);text-transform:uppercase;letter-spacing:1px;padding:14px 12px 4px}
.side .user{margin-top:auto;border-top:1px solid var(--ligne);padding:12px 16px;font-size:12.5px;display:flex;align-items:center;gap:10px}
.side .user b{color:var(--nuit);display:block;font-size:13px} .side .user a{color:var(--bleu);font-size:12px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--bleu);color:#fff;display:grid;place-items:center;font-weight:700;font-size:12.5px;flex:none}
.appbar{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--ligne);display:flex;align-items:center;gap:14px;padding:10px 28px;height:64px}
.appbar .search{flex:1;position:relative} .appbar .search input{width:100%;background:#F3F6F9;border:1px solid transparent;border-radius:12px;padding:10px 14px 10px 40px;font-size:14px}
.appbar .search input:focus{background:#fff;border-color:var(--bleu);outline:none} .appbar .search .lens{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--gris)}
.search-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--ligne);border-radius:12px;box-shadow:0 12px 40px rgba(14,42,68,.16);max-height:60vh;overflow:auto;z-index:70;padding:6px}
.search-drop a{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;color:var(--encre)} .search-drop a:hover{background:#F3F6F9} .search-drop a small{color:var(--gris);display:block}
.search-drop .t{font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--bleu);background:#E8F1F9;border-radius:6px;padding:2px 6px;min-width:76px;text-align:center}
.appbar .icons{display:flex;gap:4px;align-items:center;position:relative}
.ibtn{width:40px;height:40px;border-radius:10px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer;color:var(--nuit);font-size:18px;position:relative} .ibtn:hover{background:#F3F6F9}
.ibtn .dot{position:absolute;top:6px;right:6px;background:var(--rouge);color:#fff;border-radius:999px;font-size:9.5px;padding:0 5px;font-weight:700;line-height:15px}
.notif{position:absolute;right:0;top:calc(100% + 8px);width:380px;background:#fff;border:1px solid var(--ligne);border-radius:12px;box-shadow:0 12px 40px rgba(14,42,68,.16);z-index:70;max-height:70vh;overflow:auto}
.notif h4{margin:0;padding:12px 14px;border-bottom:1px solid var(--ligne);font-size:13px;color:var(--nuit)} .notif a{display:flex;gap:10px;padding:10px 14px;border-bottom:1px solid #EEF2F6;color:var(--encre);font-size:13px} .notif a:hover{background:#F7FAFD}
.notif .ty{width:34px;height:34px;border-radius:9px;background:#E8F1F9;color:var(--bleu);display:grid;place-items:center;flex:none;font-size:15px} .notif small{color:var(--gris);display:block}
.main{padding:24px 32px 40px;max-width:1440px}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px}
.crumbs{font-size:12.5px;color:var(--gris);margin-bottom:4px} .crumbs a{color:var(--gris)} .crumbs a:hover{color:var(--bleu)}
h1{font-family:"Segoe UI",Inter,system-ui,sans-serif;font-weight:700;font-size:24px;color:var(--nuit);margin:0;letter-spacing:-.2px}
/* Accueil : cartes de réunion */
.mcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.mcard{background:#fff;border:1px solid var(--ligne);border-radius:14px;box-shadow:var(--ombre);display:flex;flex-direction:column;overflow:hidden;transition:transform .12s,box-shadow .12s}
.mcard:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(14,42,68,.12)}
.mcard .h{padding:20px 22px 16px;border-bottom:1px solid #EEF2F6} .mcard .h b{display:block;font-size:17px;color:var(--nuit);line-height:1.3;text-transform:uppercase;letter-spacing:.2px} .mcard .h span{display:block;color:var(--gris);font-size:12.5px;margin-top:8px}
.mcard .b{padding:16px 22px;flex:1;font-size:13.5px;color:var(--encre)} .mcard .b div{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px} .mcard .b .i{color:var(--gris);width:18px;text-align:center;flex:none}
.mcard .f{border-top:1px solid #EEF2F6;padding:14px;text-align:center} .mcard .f a{font-weight:700;letter-spacing:.8px;font-size:12.5px;text-transform:uppercase;color:var(--nuit)}
.chip{display:inline-flex;align-items:center;gap:6px;background:#F3F6F9;border:1px solid var(--ligne);border-radius:8px;padding:4px 9px;font-size:12.5px;color:var(--encre)} .chip:hover{background:#E8F1F9;border-color:var(--bleu)} .chip .ext{font-size:10px;font-weight:700;color:#fff;background:var(--rouge);border-radius:4px;padding:1px 4px}
.chip.xlsx .ext{background:#1F7244} .chip.docx .ext{background:#2B579A} .chip.html .ext{background:var(--bleu)} .chip.pptx .ext{background:#C43E1C}
/* Réunions : deux colonnes */
.two{display:grid;grid-template-columns:320px minmax(0,1fr);gap:0;background:#fff;border:1px solid var(--ligne);border-radius:14px;overflow:hidden;min-height:70vh}
.two .liste{border-right:1px solid var(--ligne);background:#FAFBFD;display:flex;flex-direction:column}
.two .liste .tabs{display:flex;gap:4px;padding:12px;border-bottom:1px solid var(--ligne)} .two .liste .tabs button{flex:1;border:0;background:transparent;padding:8px;border-radius:8px;font-weight:600;color:var(--gris);cursor:pointer} .two .liste .tabs button.on{background:#fff;color:var(--nuit);box-shadow:var(--ombre)}
.two .liste .filtre{padding:8px 12px;border-bottom:1px solid var(--ligne)} .two .liste .filtre input{background:#fff;padding:8px 10px}
.two .liste .items{overflow:auto;flex:1}
.sitem{display:block;padding:12px 14px 12px 16px;border-bottom:1px solid #EEF2F6;color:var(--encre);border-left:4px solid transparent;position:relative}
.sitem:hover{background:#F3F6F9} .sitem.on{background:#E8F1F9;border-left-color:var(--bleu)} .sitem b{display:block;font-size:13.5px;color:var(--nuit)} .sitem .d{font-size:12px;color:var(--gris);display:flex;justify-content:space-between;gap:8px;margin-top:3px} .sitem .s{font-size:12px;color:var(--gris)}
.sitem .dot{position:absolute;left:5px;top:16px;width:7px;height:7px;border-radius:50%;background:var(--bleu)}
.two .detail{padding:22px 26px;min-width:0}
.entete{padding:0 0 14px;border-bottom:1px solid var(--ligne);margin-bottom:14px} .entete h2{font-size:18px;text-transform:uppercase;letter-spacing:.3px;margin:0 0 2px} .entete .sub{color:var(--gris);font-size:13px}
.entete .meta{display:grid;gap:0;margin-top:12px} .entete .meta div{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #EEF2F6;font-size:13.5px} .entete .meta .i{color:var(--gris);width:20px;text-align:center}
.avatars{display:flex;align-items:center} .avatars .avatar{width:28px;height:28px;font-size:11px;border:2px solid #fff;margin-left:-8px;background:var(--nuit)} .avatars .avatar:first-child{margin-left:0}
.odj{border:1px solid var(--ligne);border-radius:12px;overflow:hidden} .odj .pt{display:grid;grid-template-columns:minmax(0,1fr) 180px 70px 36px;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid #EEF2F6;font-size:14px}
.odj .pt:last-child{border-bottom:0} .odj .pt .n{font-weight:600;color:var(--nuit)} .odj .pt .who{color:var(--gris);font-size:12.5px} .odj .pt .hr{color:var(--gris);font-size:12.5px;text-align:right}
.odj .docs{padding:4px 14px 12px 40px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid #EEF2F6}
.tag{font-size:11px;font-weight:600;border-radius:6px;padding:2px 7px;background:#EEF2F6;color:var(--gris)} .tag.vote{background:#E8F1F9;color:var(--bleu)} .tag.sign{background:#FFF4E0;color:#7A4A00} .tag.info{background:#EEF6D8;color:var(--vert-f)}
/* Documentation */
.docs2{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px}
.folders a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;color:var(--encre);font-size:13.5px;border-bottom:1px solid #EEF2F6} .folders a:hover{background:#F3F6F9} .folders a.on{background:#E8F1F9;color:var(--bleu);font-weight:600} .folders a .n{margin-left:auto;font-size:11.5px;color:var(--gris);background:#F3F6F9;border-radius:999px;padding:1px 7px} .folders a .n.red{background:var(--rouge);color:#fff}
.doc-row td{vertical-align:middle} .doc-row .nm{font-weight:600;color:var(--nuit)} .doc-row .unread::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bleu);margin-right:8px;vertical-align:middle}
.star{cursor:pointer;color:#C8D0D9;font-size:17px;border:0;background:none} .star.on{color:#E0A800}
/* Lecteur de document */
.viewer{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;height:calc(100vh - 130px)}
.viewer .doc{background:#5A6B7C;border-radius:12px;overflow:hidden;position:relative;display:flex;flex-direction:column} .viewer .doc .bar{background:#fff;border-bottom:1px solid var(--ligne);padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:13px} .viewer .doc .bar b{flex:1;color:var(--nuit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.viewer .doc iframe,.viewer .doc .img{flex:1;border:0;background:#fff;width:100%} .viewer .doc .img{object-fit:contain;background:#3B4A5A}
.viewer .side2{display:flex;flex-direction:column;gap:12px;overflow:auto}
.note{border-radius:10px;padding:10px 12px;font-size:13px;border:1px solid var(--ligne);background:#FFF9D9;position:relative} .note.vert{background:#EEF6D8} .note.bleu{background:#E8F1F9} .note.rose{background:#FBE4EC}
.note .who{font-size:11.5px;color:var(--gris);display:flex;justify-content:space-between;margin-bottom:4px} .note .act{position:absolute;right:8px;bottom:6px;font-size:11px} .note .act a{margin-left:8px;color:var(--gris)}
.sw{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--ligne);cursor:pointer} .sw.jaune{background:#FFE98A} .sw.vert{background:#B9DB6A} .sw.bleu{background:#9CC7EA} .sw.rose{background:#F3B0C6} .sw.on{box-shadow:0 0 0 2px var(--nuit)}
/* Statistiques */
.stat{display:grid;grid-template-columns:repeat(3,1fr);gap:16px} .stat .card h3{display:flex;align-items:center;gap:8px} .stat .kv td{padding:7px 4px;font-size:13px} .stat .kv td:last-child{text-align:right;font-weight:600;color:var(--nuit)}
.legend{display:flex;gap:14px;justify-content:center;font-size:12px;color:var(--gris);margin-top:6px} .legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle}
/* Calendrier */
.cal{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--ligne);border-top:1px solid var(--ligne);background:#fff;border-radius:12px;overflow:hidden}
.cal .hd{background:#F3F6F9;padding:8px;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--gris);border-right:1px solid var(--ligne);border-bottom:1px solid var(--ligne);text-align:center}
.cal .d{min-height:104px;padding:6px;border-right:1px solid var(--ligne);border-bottom:1px solid var(--ligne);font-size:12px} .cal .d.off{background:#FAFBFD;color:#B8C2CC} .cal .d.today .num{background:var(--bleu);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-grid;place-items:center}
.cal .ev{display:block;background:#E8F1F9;color:var(--bleu);border-left:3px solid var(--bleu);border-radius:4px;padding:3px 6px;margin-top:4px;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .cal .ev.ag{background:#EEF6D8;color:var(--vert-f);border-color:var(--vert)}
.tabs2{display:flex;gap:6px;border-bottom:1px solid var(--ligne);margin-bottom:18px} .tabs2 a{padding:10px 14px;color:var(--gris);font-weight:600;font-size:13.5px;border-bottom:2px solid transparent;margin-bottom:-1px} .tabs2 a.on{color:var(--bleu);border-color:var(--bleu)}
.hub{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px} .hub a.card{display:block;color:var(--encre)} .hub a.card:hover{border-color:var(--bleu)} .hub .ico{width:42px;height:42px;border-radius:10px;background:#E8F1F9;color:var(--bleu);display:grid;place-items:center;font-size:20px;margin-bottom:10px} .hub b{display:block;color:var(--nuit);font-size:15px} .hub span{font-size:12.5px;color:var(--gris)}
.grid{display:grid;gap:16px} .g2{grid-template-columns:1fr 1fr} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)}
.kpi{padding:16px 18px} .kpi .v{font-size:30px;font-weight:700;color:var(--nuit);line-height:1.1} .kpi .l{color:var(--gris);font-size:12.5px;margin-top:2px}
.kpi.vert{border-top:3px solid var(--vert)} .kpi.bleu{border-top:3px solid var(--bleu)} .kpi.orange{border-top:3px solid var(--orange)}
table{width:100%;border-collapse:collapse;font-size:13.5px} th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:1px;color:var(--gris);padding:8px 10px;border-bottom:1px solid var(--ligne)}
td{padding:9px 10px;border-bottom:1px solid #EEF2F6;vertical-align:middle} tr:last-child td{border-bottom:0} tr.lien{cursor:pointer} tr.lien:hover td{background:#F7FAFD}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;letter-spacing:.3px}
.pill.preparation{background:#EEF2F6;color:var(--gris)} .pill.convoquee{background:#E3F0FA;color:var(--bleu-f)} .pill.en_cours{background:#FFF4E0;color:#7A4A00}
.pill.cloturee{background:#EEF6D8;color:var(--vert-f)} .pill.archivee,.pill.transcrit,.pill.signe{background:var(--nuit);color:#fff} .pill.annulee{background:#FBEAE8;color:var(--rouge)}
.pill.brouillon{background:#EEF2F6;color:var(--gris)} .pill.en_signature{background:#E3F0FA;color:var(--bleu-f)}
.steps{display:flex;gap:0;margin:0 0 20px;counter-reset:s}
.steps div{flex:1;text-align:center;font-size:12px;color:var(--gris);padding:10px 6px 8px;border-bottom:3px solid var(--ligne);position:relative}
.steps div.fait{border-color:var(--vert);color:var(--vert-f);font-weight:600} .steps div.actuel{border-color:var(--bleu);color:var(--bleu);font-weight:700}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap} .sb{justify-content:space-between}
.gauge{height:10px;background:#EEF2F6;border-radius:999px;overflow:hidden;margin:6px 0} .gauge i{display:block;height:100%;background:var(--vert);transition:.3s} .gauge i.ko{background:var(--orange)}
.seg{display:inline-flex;border:1px solid var(--ligne);border-radius:8px;overflow:hidden} .seg button{border:0;background:#fff;padding:5px 10px;cursor:pointer;color:var(--gris);font-size:12.5px;font-weight:600;border-right:1px solid var(--ligne)} .seg button:last-child{border-right:0}
.seg button.on{background:var(--nuit);color:#fff} .seg button.on.P{background:var(--vert-f)} .seg button.on.V{background:var(--bleu)} .seg button.on.R{background:#7A4A00} .seg button.on.A{background:var(--gris)}
.res{border:1px solid var(--ligne);border-radius:var(--r);padding:14px 16px;margin-bottom:12px;background:#fff}
.res .texte{font-style:italic;color:var(--encre);border-left:3px solid var(--ligne);padding-left:10px;margin:6px 0 10px}
.res .verdict{font-weight:700} .res .verdict.oui{color:var(--vert-f)} .res .verdict.non{color:var(--rouge)}
.votes{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px} .votes .v{display:flex;align-items:center;gap:4px;border:1px solid var(--ligne);border-radius:8px;padding:3px 6px 3px 8px;font-size:12.5px;background:#fff}
.votes .v button{border:0;background:#EEF2F6;border-radius:6px;padding:2px 7px;cursor:pointer;font-size:11.5px} .votes .v button.on{background:var(--nuit);color:#fff}
.ref{color:var(--gris);font-size:11.5px}
iframe.pv{width:100%;height:760px;border:1px solid var(--ligne);border-radius:var(--r);background:#fff}
.modal{position:fixed;inset:0;background:rgba(14,42,68,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}
.modal .card{width:min(560px,100%);max-height:92vh;overflow:auto}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--nuit);color:#fff;padding:10px 18px;border-radius:999px;box-shadow:var(--ombre);z-index:60;font-size:13.5px}
.toast.err{background:var(--rouge)}
code{background:#EEF2F6;padding:2px 6px;border-radius:5px;font-size:12.5px;word-break:break-all}
.secret{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:18px;letter-spacing:2px;color:var(--nuit);background:#F3F6F9;padding:10px;border-radius:8px;text-align:center;margin:8px 0}
.foot{margin-top:40px;color:var(--gris);font-size:12px;border-top:1px solid var(--ligne);padding-top:12px}
@media (max-width:1100px){.two{grid-template-columns:1fr}.two .liste{display:none}.viewer{grid-template-columns:1fr;height:auto}.viewer .doc{height:70vh}.docs2{grid-template-columns:1fr}.stat{grid-template-columns:1fr}}
@media (max-width:900px){.login{grid-template-columns:1fr}.login .pane{display:none}.shell{grid-template-columns:1fr}.side{position:static;height:auto}.main{padding:18px}.g2,.g3,.g4{grid-template-columns:1fr}}
@media print{.side,.appbar,.topbar,.btn,.two .liste{display:none}.shell{display:block}.main{padding:0}}
table.kv td{padding:7px 8px} table.kv td:first-child{width:170px;font-size:12.5px}

/* ---------- v0.16 : familles d'instances, ODJ automatisé, procurations, direct, espace membre ---------- */
.fam{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;border-radius:5px;padding:2px 7px;vertical-align:middle}
.fam.ca{background:#E8F1F9;color:var(--bleu)} .fam.co{background:#EEF2F6;color:var(--nuit)} .fam.ag{background:#EEF6D8;color:var(--vert-f)}
.mcard .h.ca{border-top:4px solid var(--bleu)} .mcard .h.ag{border-top:4px solid var(--vert)} .mcard .h .fam{margin-bottom:6px}
.famh{margin:18px 0 10px;padding-left:10px;font-size:14px;text-transform:uppercase;letter-spacing:1px} .famh.ca{border-left:4px solid var(--bleu);color:var(--bleu)} .famh.ag{border-left:4px solid var(--vert);color:var(--vert-f)}
.fam-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;border-radius:var(--r);padding:16px 20px;background:#fff;box-shadow:var(--ombre)} .fam-intro.ca{border-left:6px solid var(--bleu)} .fam-intro.ag{border-left:6px solid var(--vert)}
.fam-intro b{display:block;font-size:17px;color:var(--nuit)} .fam-intro span{font-size:13px;color:var(--gris)}
.inst-menu .grp{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--gris);padding:8px 12px 2px}
.odj details.projet{margin-top:6px;background:#F6F9FC;border:1px dashed var(--ligne);border-radius:8px;padding:6px 10px;font-size:12.5px} .odj details.projet summary{cursor:pointer;color:var(--bleu);font-weight:600} .odj details.projet p{margin:6px 0;font-style:italic}
.odj .cr{margin-top:6px;font-size:12.5px;background:#EEF6D8;border-radius:8px;padding:6px 10px}
.qrow{border-bottom:1px solid #EEF2F6;padding:8px 0} .qrow .rep{margin-top:4px;background:#F3F6F9;border-left:3px solid var(--vert);padding:5px 9px;border-radius:6px;font-size:13px}
.chat{max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:6px} .msg{background:#F3F6F9;border-radius:10px;padding:6px 10px;max-width:85%;font-size:13px} .msg.moi{align-self:flex-end;background:#E8F1F9}
.live{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px} .live .card{margin-bottom:16px} .live-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.stream{position:relative;padding-top:56.25%;background:#000} .stream iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lpt{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;font-size:13.5px} .lpt.on{background:#EEF6D8;border-left:4px solid var(--vert);font-weight:600}
.lres{border-bottom:1px solid #EEF2F6;padding:10px 0} .lbar{display:flex;height:14px;border-radius:999px;overflow:hidden;background:#EEF2F6;margin:8px 0} .lbar i{display:block;height:100%;transition:width .4s} .lbar .p{background:var(--vert)} .lbar .c{background:var(--rouge)} .lbar .a{background:#B8C4D0}
.lpart{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #F0F3F6;font-size:13px} .dotc{width:9px;height:9px;border-radius:50%;background:#C9D3DD;flex:none} .dotc.on{background:var(--vert);box-shadow:0 0 0 3px #EEF6D8}
.portal-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px} .portal-head .sec{font-size:13px;border-radius:8px;padding:8px 12px} .portal-head .sec.ok{background:#EEF6D8;color:var(--vert-f)} .portal-head .sec.ko{background:#FFF4E0;color:#7A4A00}
.avatar.lg{width:52px;height:52px;font-size:18px}
.live-banner{border-left:5px solid var(--vert);margin-bottom:16px;background:#F7FBEE}
.pcard{display:flex;gap:14px;align-items:center;background:#fff;border-radius:var(--r);box-shadow:var(--ombre);padding:12px 14px;margin-bottom:10px} .pcard.ca{border-left:5px solid var(--bleu)} .pcard.ag{border-left:5px solid var(--vert)}
.pcard .d{width:52px;text-align:center;flex:none} .pcard .d b{display:block;font-size:22px;color:var(--nuit);line-height:1} .pcard .d span{font-size:11px;text-transform:uppercase;color:var(--gris)}
.pline{display:block;padding:7px 0;border-bottom:1px solid #F0F3F6;font-size:13.5px;color:var(--encre)}
@media (max-width:900px){.live{grid-template-columns:1fr}.pcard{flex-wrap:wrap}.fam-intro{flex-direction:column;align-items:flex-start}}
.pcard{flex-wrap:wrap} .pcard .acts{flex-basis:100%;display:flex;gap:6px;flex-wrap:wrap;padding-left:66px}
.lres .verdict{font-weight:700} .lres .verdict.oui{color:var(--vert-f)} .lres .verdict.non{color:var(--rouge)}
.lpart .st{flex:none;max-width:48%;text-align:right}
.mcard .h span.fam{display:inline-block;width:auto}
.lpt a,.lpt span.small{white-space:nowrap;flex:none}
.pwd{list-style:none;padding:0;margin:8px 0 4px} .pwd li{color:var(--gris);padding-left:20px;position:relative;margin:2px 0} .pwd li::before{content:"○";position:absolute;left:0} .pwd li.fait{color:var(--vert-f)} .pwd li.fait::before{content:"✓"}
.pres-view{margin-top:10px;border:1px solid var(--ligne);border-radius:8px;overflow:hidden;background:#fff} .pres-view iframe{width:100%;height:62vh;border:0;display:block} .pres-view img{max-width:100%;display:block;margin:0 auto}

/* v0.17.2 : page de séance modélisée et épurée (colonne principale + rail, sans débordement) */
.two{grid-template-columns:288px minmax(0,1fr)}
.two .detail{padding:24px 28px;container-type:inline-size;container-name:detail}
.sgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.sgrid>.scol,.sgrid>.srail{min-width:0;display:flex;flex-direction:column;gap:16px}
.sgrid>.scol>*,.sgrid>.srail>*{margin-top:0 !important;margin-bottom:0 !important}
.sgrid>.scol>div[style*="height"]{display:none}
.sgrid>.srail{position:sticky;top:16px}
.sgrid .card{padding:20px 22px;box-shadow:none;max-width:100%;overflow-x:auto}
.card>.row.sb:first-child{margin-bottom:12px;row-gap:8px;align-items:center}
.card>.row.sb:first-child>h3{margin:0}
.card>.row.sb:first-child>.row{gap:6px;justify-content:flex-end}
.topbar{flex-wrap:wrap} .topbar>div:first-child{min-width:0;flex:1 1 380px} .topbar>.row{gap:8px;justify-content:flex-end} .topbar .btn{white-space:nowrap}
.entete .meta div{flex-wrap:wrap}
.votes{display:flex;flex-wrap:wrap;gap:6px}
@container detail (max-width:1040px){.sgrid{grid-template-columns:minmax(0,1fr)}.sgrid>.srail{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:start}}
@container detail (max-width:720px){.odj .pt{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.odj .pt>.who{grid-column:1;grid-row:2}.odj .pt>.hr{grid-column:2;grid-row:1}.odj .pt>div:last-child{grid-column:2;grid-row:2}.odj .docs{padding-left:14px}.two .detail{padding:18px}}
@media (max-width:1280px){.two{grid-template-columns:minmax(0,1fr)}.two .liste{display:none}}
.sgrid select,.sgrid input,.sgrid textarea{max-width:100%}
.sgrid.une{grid-template-columns:minmax(0,1fr)}
.stabs{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--ligne);margin:4px 0 18px;position:sticky;top:0;background:#fff;z-index:5;padding-top:4px}
.stabs button{border:0;background:transparent;padding:10px 14px;font:inherit;font-size:13.5px;font-weight:600;color:var(--gris);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:8px 8px 0 0;position:relative}
.stabs button:hover{color:var(--nuit);background:#F6F9FC} .stabs button.on{color:var(--bleu);border-bottom-color:var(--bleu)}
.stabs .pt-al{display:inline-block;width:7px;height:7px;border-radius:50%;background:#E0A100;margin-left:6px;vertical-align:middle}
.scol>[hidden]{display:none !important}
.stabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin} .stabs button{white-space:nowrap;flex:none;padding:10px 12px}
/* v0.18.1 : références légales en évidence et dispositions sanctionnant les manquements */
.lref{color:var(--bleu);font-weight:600;white-space:nowrap}
.lsanc{display:inline-block;margin-left:4px;padding:0 6px;border-radius:6px;background:#FDECEA;color:#B3261E;font-size:11px;font-weight:600;line-height:17px;cursor:pointer;white-space:nowrap;vertical-align:baseline}
.lsanc:hover{background:#F9D7D3}
@media print{.lsanc{display:none}}
.lsanc{background:#FFF4E0;color:#7A4A00} .lsanc.pen{background:#FDECEA;color:#B3261E}
/* v0.18.1 : filtre « forme de société » */
.forme-sel{display:flex;align-items:center;gap:6px;margin-right:8px;font-size:12px;color:var(--gris)} .forme-sel span{font-weight:600;text-transform:uppercase;letter-spacing:.6px;font-size:10.5px}
.forme-sel select{width:auto;max-width:240px;padding:6px 10px;font-size:13px;border-radius:8px}
.forme-bandeau{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#EEF6FC;border:1px solid #CFE3F3;color:var(--nuit);border-radius:10px;padding:8px 14px;margin:-6px 0 16px;font-size:13px}
.forme-tuiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:6px}
.forme-tuiles a{display:block;border:1px solid var(--ligne);border-radius:10px;padding:10px 12px;color:var(--encre);background:#fff}
.forme-tuiles a b{display:block;font-size:13.5px;color:var(--nuit)} .forme-tuiles a span{font-size:12px;color:var(--gris)}
.forme-tuiles a:hover{border-color:var(--bleu)} .forme-tuiles a.on{border-color:var(--bleu);background:#EEF6FC;box-shadow:inset 0 0 0 1px var(--bleu)} .forme-tuiles a.vide{opacity:.55}
@media (max-width:900px){.forme-sel span{display:none}}
/* ---------- Registre des mandats (v0.18.3) ---------- */
/* ---------- Registre des mandats ---------- */
.mx-tete{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-6px 0 16px} .mx-tete p{margin:0;color:var(--gris);font-size:14px;max-width:820px} .mx-tete p b{color:var(--nuit)}
.mx-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}
.mx-kpi{position:relative;display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--ligne);border-radius:var(--r);box-shadow:var(--ombre);padding:16px 18px;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:transform .15s,box-shadow .15s,border-color .15s}
.mx-kpi:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(14,42,68,.10)} .mx-kpi.on{border-color:var(--bleu);box-shadow:0 0 0 3px rgba(16,111,177,.15)}
.mx-kpi:focus-visible{outline:2px solid var(--bleu);outline-offset:2px}
.mx-kpi .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:19px;flex:none}
.mx-kpi b{display:block;font-size:28px;line-height:1.05;color:var(--nuit);font-variant-numeric:tabular-nums} .mx-kpi small{color:var(--gris);font-size:12.5px}
.mx-kpi.bleu .ic{background:#E3F0FA;color:var(--bleu)} .mx-kpi.vert .ic{background:#EEF6D8;color:var(--vert-f)} .mx-kpi.orange .ic{background:#FFF1DC;color:var(--orange)} .mx-kpi.rouge .ic{background:#FBEAE8;color:var(--rouge)}
.mx-kpi.orange b{color:#8A5200} .mx-kpi.rouge b{color:var(--rouge)}
.mx-regles{padding:14px 18px;margin-bottom:16px;border-left:4px solid var(--bleu)}
.mx-regles-t{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px} .mx-regles-t h3{margin:0 0 2px;font-size:15px}
.mx-regles-tt{display:flex;gap:12px;align-items:center} .mx-regles-ic{width:36px;height:36px;border-radius:10px;background:#E3F0FA;color:var(--bleu);display:grid;place-items:center;font-size:17px;flex:none}
.mx-regles-l{display:flex;flex-wrap:wrap;gap:8px}
.mx-regle{display:inline-flex;align-items:center;gap:8px;background:#F5F9FC;border:1px solid #DCE7F1;border-radius:999px;padding:4px 12px 4px 4px;font-size:13px;color:var(--nuit)}
.mx-regle b{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:var(--bleu);color:#fff;font-size:12.5px} .mx-regle small{color:var(--gris);font-size:11px}
.mx-regle.gris b{background:#B7C4D1}
.mx-regles .lsanc{display:none}
.mx-rt-w{margin-top:14px;border:1px solid var(--ligne);border-radius:10px}
.mx-rt th{position:static;background:#106FB1} .mx-rt td{vertical-align:top;line-height:1.45} .mx-rt td small{display:block;color:var(--gris);font-size:11.5px;font-weight:400} .mx-rt td b{color:var(--nuit)}
.mx-rt td:nth-child(1){min-width:170px} .mx-rt td:nth-child(2){min-width:130px} .mx-rt td:nth-child(4),.mx-rt td:nth-child(5){min-width:220px}
.mx-max{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#106FB1;color:#fff;font-weight:800;margin-right:6px} .mx-max.gris{background:#C9D3DD}
.mx-note{margin:10px 0 0;font-size:12.5px;color:var(--gris)}
.mx-zone{padding:0;overflow:hidden}
.mx-barre{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--ligne);background:#F8FBFD}
.mx-seg{display:inline-flex;background:#E9EFF5;border-radius:10px;padding:3px}
.mx-seg button{border:0;background:transparent;font:inherit;font-size:13.5px;font-weight:600;color:var(--gris);padding:7px 16px;border-radius:8px;cursor:pointer} .mx-seg button.on{background:#fff;color:var(--bleu);box-shadow:0 1px 3px rgba(14,42,68,.12)}
.mx-filtres{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1;justify-content:flex-end}
.mx-filtres select{margin:0;width:auto;min-width:170px;max-width:260px;padding:8px 10px;font-size:13px}
.mx-q{position:relative;display:block;margin:0;flex:1;min-width:220px;max-width:340px} .mx-q span{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--gris);font-size:15px;pointer-events:none}
.mx-q input{margin:0;width:100%;padding:8px 10px 8px 30px;font-size:13px}
.mx-scroll{overflow-x:auto}
.mx-t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.mx-t th{position:sticky;top:0;z-index:1;background:#0E2A44;color:#fff;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;text-align:left;border:0;white-space:nowrap;vertical-align:bottom}
.mx-t th small{display:block;font-weight:500;text-transform:none;opacity:.75;letter-spacing:0;font-size:10.5px;margin-top:2px}
.mx-t thead .lsanc{display:none}
.mx-t td{padding:9px 12px;border-bottom:1px solid #EDF1F5;vertical-align:middle;background:#fff}
.mx-t tbody tr:last-child td{border-bottom:0}
.mx-t tbody tr:hover td{background:#F3F8FD}
.mx-mat th.mx-ent{text-align:center;min-width:120px} .mx-ent-n{display:inline-flex;align-items:center}
.mx-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;box-shadow:0 0 0 2px rgba(255,255,255,.35);flex:none}
.mx-mat .mx-pers{position:sticky;left:0;z-index:2;min-width:240px;box-shadow:1px 0 0 #EDF1F5} .mx-mat th.mx-pers{z-index:3}
.mx-t tr.alerte td.mx-pers{box-shadow:inset 4px 0 0 var(--rouge),1px 0 0 #EDF1F5} .mx-t tr.alerte td{background:#FFF8F7}
.mx-pers-i{display:flex;align-items:center;gap:10px} .mx-pers-i b{display:block;color:var(--nuit);font-size:13.5px;white-space:nowrap} .mx-pers-i small{display:block;color:var(--gris);font-size:11.5px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mx-nb{display:inline-grid;place-items:center;min-width:17px;height:17px;border-radius:5px;background:#E3F0FA;color:var(--bleu-f);font-weight:800;font-size:10.5px;margin-right:3px;padding:0 3px}
.mx-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12.5px;flex:none;letter-spacing:.3px}
.mx-av.s{width:24px;height:24px;font-size:9.5px}
.mx-cell{text-align:center;border-left:1px solid #F1F4F7} .mx-cell a{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;text-decoration:none;max-width:200px;margin:auto}
.mx-rien{display:inline-block;width:14px;height:2px;border-radius:2px;background:#DCE3EA;vertical-align:middle}
.mx-p{display:inline-flex;align-items:center;gap:4px;border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:600;white-space:nowrap;border:1px solid transparent;line-height:1.35}
.mx-p.ca{background:#E3F0FA;color:#0B4F80} .mx-p.dir{background:#0E2A44;color:#fff} .mx-p.ag{background:#EEF6D8;color:#4E6A0C} .mx-p.com{background:#EFEAF8;color:#5A3F8E}
.mx-p.exp{border-color:var(--orange);box-shadow:0 0 0 2px #FFE6C2} .mx-p.exp em{font-style:normal;color:var(--orange);font-weight:700} .mx-p.dir.exp em{color:#FFC46B}
.mx-p.av{border-style:dashed;border-color:#8FA3B6;opacity:.85}
.mx-cum{width:170px;min-width:170px}
.mx-cumw{display:flex;align-items:center;gap:8px}
.mx-s5{display:flex;gap:3px} .mx-s5 i{width:13px;height:9px;border-radius:2px;background:#E4EAF0} .mx-s5.vert i.on{background:#94BD21} .mx-s5.orange i.on{background:#E09A2D} .mx-s5.rouge i.on{background:#B3261E}
.mx-cv{font-size:12px;color:var(--gris);font-variant-numeric:tabular-nums} .mx-cv b{color:var(--nuit);font-size:13px}
.mx-ok{margin-left:auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#EEF6D8;color:var(--vert-f);font-size:11px;font-weight:800}
.mx-badge{margin-left:auto;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;white-space:nowrap} .mx-badge.vert{background:#EEF6D8;color:var(--vert-f)} .mx-badge.rouge{background:#FBEAE8;color:var(--rouge)}
.mx-legende{display:flex;flex-wrap:wrap;gap:8px 16px;padding:11px 16px;border-top:1px solid var(--ligne);color:var(--gris);background:#FBFDFF} .mx-legende span{display:inline-flex;align-items:center;gap:6px}
.mx-c{display:inline-block;width:14px;height:10px;border-radius:3px} .mx-c.ca{background:#CFE4F5} .mx-c.dir{background:#0E2A44} .mx-c.ag{background:#DCEDB0} .mx-c.com{background:#DCD2F0} .mx-c.exp{background:#fff;border:2px solid var(--orange)} .mx-c.av{background:#fff;border:1.5px dashed #8FA3B6}
.mx-vide{padding:48px 20px;text-align:center;color:var(--gris)} .mx-vide b{color:var(--nuit);font-size:15px}
.mx-grp{border-bottom:1px solid var(--ligne)} .mx-grp:last-child{border-bottom:0}
.mx-grp-t{display:flex;align-items:center;gap:10px;width:100%;border:0;background:#F7FAFC;font:inherit;padding:11px 16px;cursor:pointer;text-align:left;color:var(--nuit)} .mx-grp-t:hover{background:#EEF4FA}
.mx-chev{width:14px;color:var(--gris)}
.mx-grp-n{margin-left:auto;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700;color:#fff;white-space:nowrap}
.mx-grp.orange .mx-grp-t{box-shadow:inset 4px 0 0 var(--orange)} .mx-grp.orange .mx-grp-n{background:var(--orange)}
.mx-grp.bleu .mx-grp-t{box-shadow:inset 4px 0 0 var(--bleu)} .mx-grp.bleu .mx-grp-n{background:var(--bleu)}
.mx-grp.vert .mx-grp-t{box-shadow:inset 4px 0 0 var(--vert)} .mx-grp.vert .mx-grp-n{background:var(--vert-f)}
.mx-grp.gris .mx-grp-t{box-shadow:inset 4px 0 0 #9AA9B8} .mx-grp.gris .mx-grp-n{background:#7D8C9B}
.mx-ech th{position:static;background:#EEF3F8;color:#4A5D70;font-size:10.5px;padding:8px 12px}
.mx-ech td{vertical-align:top;padding:12px}
.mx-date{white-space:nowrap;width:78px} .mx-date .j{display:block;font-size:22px;font-weight:800;color:var(--nuit);line-height:1} .mx-date .m{font-size:11px;color:var(--gris);text-transform:uppercase;letter-spacing:.3px}
.mx-cdw{width:140px}
.mx-cd{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;white-space:nowrap} .mx-cd.orange{background:#FFF1DC;color:#8A5200} .mx-cd.bleu{background:#E3F0FA;color:var(--bleu-f)} .mx-cd.vert{background:#EEF6D8;color:var(--vert-f)}
.mx-prog{height:5px;width:110px;border-radius:999px;background:#E9EFF5;margin-top:7px;overflow:hidden} .mx-prog i{display:block;height:100%;background:var(--bleu);border-radius:999px}
.mx-ech-ent{display:block;max-width:240px;padding-left:10px;border-left:3px solid var(--ec);text-decoration:none} .mx-ech-ent b{display:block;color:var(--nuit);font-size:13px} .mx-ech-ent span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11.5px;color:var(--gris);line-height:1.35}
.mx-lot{margin-top:5px;font-size:11px;font-weight:600;color:var(--bleu-f)}
.mx-tits{display:flex;flex-wrap:wrap;gap:6px}
.mx-tit{display:inline-flex;align-items:center;gap:5px;background:#F5F8FB;border:1px solid #E4EBF2;border-radius:999px;padding:2px 9px 2px 2px;font-size:11.5px;color:var(--nuit);white-space:nowrap} .mx-tit em{font-style:normal;color:var(--gris);margin-left:5px;font-size:11px}
@media (max-width:900px){.mx-tete{flex-direction:column;align-items:flex-start} .mx-filtres{justify-content:flex-start} .mx-mat .mx-pers{min-width:190px} .mx-pers-i small{max-width:150px}}
@media (max-width:640px){.mx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} .mx-kpi{padding:12px;gap:10px} .mx-kpi .ic{width:36px;height:36px} .mx-kpi b{font-size:22px} .mx-q,.mx-filtres select{min-width:0;max-width:none;width:100%;flex:1 1 100%} .mx-filtres{width:100%} .mx-regles-t{flex-direction:column;align-items:flex-start}}
.mx-ech{table-layout:fixed;min-width:900px} .mx-ech .pill{white-space:nowrap}
/* ---------- Registre des titres ---------- */
.ti-ks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:16px}
.ti-k{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);box-shadow:var(--ombre);padding:14px 18px;border-top:3px solid var(--bleu)} .ti-k.vert{border-top-color:var(--vert)} .ti-k.orange{border-top-color:var(--orange)} .ti-k.rouge{border-top-color:var(--rouge)}
.ti-k > span{display:block;font-size:12px;color:var(--gris);text-transform:uppercase;letter-spacing:.4px;font-weight:600} .ti-k b{display:block;font-size:24px;color:var(--nuit);margin:4px 0 2px;font-variant-numeric:tabular-nums;line-height:1.15} .ti-k b i{font-style:normal;font-size:13px;color:var(--gris);font-weight:600}
.ti-k small{display:block;font-size:12px;color:var(--gris)} .ti-k.vert small{color:var(--vert-f)} .ti-k.orange small{color:#8A5200} .ti-k.rouge b{color:var(--rouge)}
.ti-bloc{padding:0;overflow:visible;margin-top:16px} .ti-bloc:first-of-type{margin-top:0}
.ti-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:16px 20px 14px;border-bottom:1px solid var(--ligne)}
.ti-h h2{margin:0;font-size:16px;color:var(--nuit);letter-spacing:0;text-transform:none} .ti-h p{margin:3px 0 0;font-size:12.5px;color:var(--gris);max-width:640px}
.ti-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ti-date{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12.5px;color:var(--gris)} .ti-date input{margin:0;width:auto;padding:6px 8px;font-size:13px}
.ti-plus-menu{position:relative} .ti-plus-menu summary{list-style:none;cursor:pointer;padding-inline:12px} .ti-plus-menu summary::-webkit-details-marker{display:none}
.ti-plus-menu>div{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:#fff;border:1px solid var(--ligne);border-radius:10px;box-shadow:0 12px 32px rgba(14,42,68,.16);padding:6px;min-width:250px}
.ti-plus-menu>div button{display:block;width:100%;text-align:left;border:0;background:none;font:inherit;font-size:13px;padding:8px 10px;border-radius:7px;cursor:pointer;color:var(--nuit)} .ti-plus-menu>div button:hover{background:#F0F6FB}
.ti-scroll{overflow-x:auto}
.ti-t{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:960px}
.ti-et{min-width:820px}
.ti-t th{background:#106FB1;color:#fff;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:9px 8px;text-align:left;border:0;border-right:1px solid rgba(255,255,255,.18);white-space:nowrap;vertical-align:middle}
.ti-t th:last-child{border-right:0}
.ti-t thead tr:first-child th[colspan]{text-align:center;border-bottom:1px solid rgba(255,255,255,.25)}
.ti-t tr.ti-sub th{background:#E4F0F9;color:#0B5A91;font-size:10px;letter-spacing:.2px;border-right:1px solid #CFE2F1;padding:7px 8px}
.ti-t th.c,.ti-t td.c{text-align:center} .ti-t th.r,.ti-t td.r{text-align:right}
.ti-t th.sep,.ti-t td.sep{box-shadow:inset 2px 0 0 #106FB1}
.ti-t td{padding:9px 8px;border-bottom:1px solid #EDF1F5;vertical-align:top;background:#fff;color:var(--encre,#14212E)}
.ti-t tbody tr:hover td{background:#F5FAFE}
.ti-t .nw{white-space:nowrap}
.ti-no{color:var(--gris);font-weight:700;font-variant-numeric:tabular-nums}
.ti-nb{font-weight:700;color:var(--nuit);font-variant-numeric:tabular-nums;white-space:nowrap}
.ti-cpt{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;background:#F0F5FA;color:#0B5A91;border-radius:5px;padding:1px 6px}
.ti-nat{min-width:140px;max-width:190px} .ti-nat b{display:block;font-weight:600;color:var(--nuit)} .ti-nat span{display:block;color:var(--gris);font-size:11.5px;margin-top:2px}
.ti-plus{color:var(--vert-f);font-weight:700;white-space:nowrap} .ti-moins{color:var(--rouge);font-weight:700;white-space:nowrap}
.ti-sol{min-width:150px} .ti-sol div{display:flex;justify-content:space-between;gap:10px} .ti-sol div+div{margin-top:3px} .ti-sol span{color:var(--gris);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:105px} .ti-sol b{color:var(--nuit);font-variant-numeric:tabular-nums} .ti-sol em{display:block;font-style:normal;font-size:11px;color:#8A5200;margin-top:3px}
.ti-t td.ti-em{min-width:112px;white-space:nowrap} .ti-em b{display:block;font-weight:600;color:var(--nuit);font-size:12px;padding-left:24px} .ti-em small{display:block;color:var(--gris);font-size:11px;padding-left:24px} .ti-em code{font-size:10.5px;color:#7D8C9B;background:none;padding:0} .ti-em a{display:block;font-size:11.5px;padding-left:24px}
.ti-ok{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#EEF6D8;color:var(--vert-f);font-size:10px;font-weight:800;float:left}
.ti-att td{background:#FFFBF3} .ti-att:hover td{background:#FFF6E6}
.ti-apres{color:#8A5200;font-style:italic;text-align:center;vertical-align:middle !important}
.ti-act{display:flex;gap:10px;margin-top:5px;float:none} .ti-act a{font-size:12px}
.ti-vide{text-align:center;color:var(--gris);padding:36px !important}
.ti-ref{margin:0;padding:12px 20px;font-size:12px;color:var(--gris);border-top:1px solid var(--ligne);background:#FBFDFF;border-radius:0 0 var(--r) var(--r)}
.ti-et td{vertical-align:middle}
.ti-ind{color:#8A5200;font-weight:600} .ti-z{color:#C3CDD7}
.ti-part{display:flex;align-items:center;gap:10px;min-width:150px} .ti-bar{flex:1;height:7px;border-radius:999px;background:#E6EDF3;overflow:hidden;max-width:110px} .ti-bar i{display:block;height:100%;background:#106FB1;border-radius:999px} .ti-part span{font-variant-numeric:tabular-nums;font-size:12px;color:var(--nuit);min-width:52px;text-align:right}
.ti-att-l{font-size:12px;font-weight:600;white-space:nowrap}
.ti-t tfoot td{background:#F2F7FC;font-weight:700;color:#0B5A91;border-top:2px solid #106FB1;padding:10px;font-variant-numeric:tabular-nums}
@media (max-width:700px){.ti-h{padding:14px} .ti-actions{width:100%}}
.ti-et td.r,.ti-et td{white-space:nowrap} .ti-et td:nth-child(2){white-space:normal}
/* ---------- Vue groupe ---------- */
.gp-t{min-width:1000px} .gp-r{min-width:820px}
.gp-t td{vertical-align:middle}
.gp-row{cursor:pointer}
.gp-ent{display:flex;align-items:flex-start;gap:8px;padding-left:calc(var(--niv,0) * 18px)} .gp-ent b{display:block;color:var(--nuit);font-size:13px;line-height:1.3;max-width:230px}
.gp-fil{color:#9AB4CA;font-weight:700;margin-top:1px}
.gp-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px} .gp-tags span{font-size:10.5px;background:#F0F5FA;color:#4A5D70;border-radius:4px;padding:1px 6px;font-weight:600}
.gp-jur{display:flex;flex-direction:column;gap:2px;max-width:200px} .gp-jur b{color:#0B5A91;font-size:12.5px} .gp-jur span{font-size:11.5px;color:var(--gris);line-height:1.3} .gp-jur .pill{align-self:flex-start;margin-top:2px}
.gp-big{display:block;font-size:17px;color:var(--nuit);line-height:1.1} .gp-big.rouge{color:var(--rouge)} .gp-sub{display:block;font-size:11px;color:var(--gris)}
.gp-clo{display:flex;align-items:center;gap:8px;min-width:120px} .gp-clo .ti-bar{max-width:70px} .gp-clo span{font-size:12px;font-weight:700;color:var(--nuit);font-variant-numeric:tabular-nums}
.gp-ret{display:block;font-size:11px;color:#8A5200;margin-top:3px} .gp-okt{display:block;font-size:11px;color:var(--vert-f);margin-top:3px}
.gp-conf{display:inline-flex;gap:4px}
.gp-n{display:inline-grid;place-items:center;min-width:24px;height:22px;border-radius:6px;font-size:11.5px;font-weight:800;padding:0 5px;font-variant-numeric:tabular-nums}
.gp-n.gok{background:#EEF6D8;color:var(--vert-f)} .gp-n.nc{background:#FBEAE8;color:var(--rouge)} .gp-n.ad{background:#E3F0FA;color:#0B5A91} .gp-n.z{background:#F3F6F9;color:#B7C4D1}
.gp-leg{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--gris)} .gp-leg .gp-n{margin-left:8px}
.gp-alc{min-width:240px;max-width:330px}
.gp-al{margin:0;padding:0;list-style:none} .gp-al li{position:relative;padding-left:14px;font-size:12px;color:#7A2A24;line-height:1.4} .gp-al li+li{margin-top:3px} .gp-al li::before{content:"";position:absolute;left:2px;top:6px;width:6px;height:6px;border-radius:50%;background:var(--rouge)}
.gp-alc .lsanc,.gp-t .lsanc{display:none}
.gp-plus{margin-top:4px} .gp-plus summary{cursor:pointer;font-size:11.5px;color:var(--bleu);font-weight:600;list-style:none;width:max-content} .gp-plus summary::-webkit-details-marker{display:none} .gp-plus[open] summary{margin-bottom:4px}
.gp-tout-ok{font-size:12px;color:var(--vert-f);font-weight:600}
.gp-code{color:#0B5A91;font-size:13px}
.gp-txt{max-width:420px;font-size:11.5px;color:var(--gris);line-height:1.4} .gp-txt span{display:block} .gp-txt span+span,.gp-txt details span{margin-top:3px}
/* ---------- Documentation ---------- */
.dc{align-items:start}
.dc-nav{padding:12px;position:sticky;top:76px}
.dc-gt{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gris);padding:8px 12px 6px} .dc-gt+.folders{margin-bottom:6px}
.dc .folders a{border-bottom:0;padding:7px 12px;font-size:13px} .dc-i{width:16px;text-align:center;color:#8FA3B6;font-size:12px} .folders a.on .dc-i{color:var(--bleu)} .dc-l{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-main{margin-top:0}
.dc-nb{display:inline-grid;place-items:center;min-width:24px;height:22px;border-radius:999px;background:#E3F0FA;color:#0B5A91;font-size:12px;padding:0 7px;margin-left:6px;vertical-align:2px}
.dc-q{min-width:240px}
.dc-t{min-width:760px} .dc-t td{vertical-align:middle}
.dc-doc{display:flex;align-items:center;gap:12px} .dc-doc .nm{font-weight:600;color:var(--nuit);font-size:13px} .dc-doc .nm:hover{color:var(--bleu)} .dc-doc small{display:block;color:var(--gris);font-size:11.5px;margin-top:2px} .dc-doc .pill{margin-left:6px}
.dc-ty{flex:none;display:grid;place-items:center;width:40px;height:44px;border-radius:6px;font-size:9.5px;font-weight:800;letter-spacing:.3px;color:#fff;background:#7D8C9B;position:relative;clip-path:polygon(0 0,72% 0,100% 22%,100% 100%,0 100%)}
.dc-ty.pdf{background:#C8382F} .dc-ty.web{background:#106FB1} .dc-ty.doc{background:#2B5797} .dc-ty.xls{background:#1E7145} .dc-ty.ppt{background:#C55A11} .dc-ty.img{background:#6B4FA0} .dc-ty.txt{background:#5A6B7C}
.dc-new{display:inline-block;margin-left:6px;font-size:10px;font-weight:700;color:#fff;background:var(--bleu);border-radius:999px;padding:1px 7px;vertical-align:1px}
.dc-t tr.nonlu td:nth-child(2){box-shadow:inset 3px 0 0 var(--bleu)}
.dc-dos{display:inline-block;font-size:11.5px;background:#F0F5FA;color:#4A5D70;border-radius:5px;padding:2px 8px}
.dc-a{display:inline-flex;align-items:center;justify-content:center;height:28px;min-width:28px;padding:0 10px;border:1px solid var(--ligne);border-radius:7px;font-size:12px;font-weight:600;color:var(--bleu);background:#fff;margin-left:6px;text-decoration:none} .dc-a:hover{background:#F0F6FB;border-color:#BFD6EA}
.dc-t .star{font-size:15px}
@media (max-width:1100px){.dc-nav{position:static}}
/* ---------- Registre des membres (coopératives) ---------- */
.mb-t{min-width:0} .mb-t td{vertical-align:middle}
.mb-sorti td{background:#FAFBFC;color:#7D8C9B} .mb-sorti .mb-nom{text-decoration:line-through;text-decoration-color:#B3261E;color:#5A6B7C}
.mb-manq{color:var(--rouge);font-size:11px;font-weight:600} .mb-reste{color:#8A5200;font-size:11px} .mb-okt{color:var(--vert-f);font-size:11px}
.mb-ok{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#EEF6D8;color:var(--vert-f);font-size:9px;font-weight:800}
.ti-k .lsanc,.crumbs .lsanc,.ti-h p .lsanc,.ti-ref .lsanc{display:none}
.mb-t td{padding:8px 7px} .mb-t td:last-child{white-space:nowrap} .mb-t .dc-a{margin-left:4px;padding:0 8px}
.mb-t td:last-child{white-space:normal;width:72px;min-width:72px} .mb-t td:last-child .dc-a{margin:2px;height:26px;min-width:26px;padding:0 6px} .mb-t td:nth-child(10){max-width:150px}
.mb-act{display:grid;grid-template-columns:repeat(2,28px);gap:4px;justify-content:end} .mb-t td:last-child .mb-act .dc-a{margin:0;min-width:28px;width:28px;padding:0}

/* =====================================================================
   v0.36 — Refonte « registre officiel »
   Barre latérale bleu nuit, titres en serif, fil vert FALIS pour l'actif,
   surfaces calmes, tableaux lisibles. Couche finale : prime sur l'existant.
   ===================================================================== */
:root{--fond:#F4F6F8;--ligne:#E1E7ED;--ligne-d:#EDF1F5;--encre:#16222E;--gris:#5B6B7B;--r:12px;
  --serif:"Source Serif 4",Charter,"Bitstream Charter","Iowan Old Style","Palatino Linotype",Georgia,"DejaVu Serif",serif;
  --ombre:0 1px 0 rgba(14,42,68,.04);--ombre-h:0 14px 40px rgba(14,42,68,.16);--focus:0 0 0 3px rgba(16,111,177,.28)}
html,body{font-size:14.5px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:#CFE4F5}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--bleu);box-shadow:var(--focus)}
input,select,textarea{border-color:#D5DDE5;border-radius:8px}
label{text-transform:none;letter-spacing:0}

/* Typographie */
h1{font-family:var(--serif);font-weight:600;font-size:29px;line-height:1.15;letter-spacing:-.2px;color:var(--nuit)}
h2{font-size:16px;letter-spacing:0}
h3{font-size:15px;font-weight:650;color:var(--nuit);text-transform:none;letter-spacing:0;margin:0 0 10px}
.card>h3:first-child,.card>.row.sb:first-child>h3{display:flex;align-items:center;gap:8px}
.crumbs{font-size:13px;margin-bottom:6px} .crumbs a{text-decoration:underline;text-decoration-color:#C6D2DE;text-underline-offset:3px}
.muted{color:var(--gris)}

/* Surfaces */
.card{border-color:var(--ligne);box-shadow:var(--ombre);border-radius:var(--r)}
.kpi{border-top:0 !important;position:relative;padding:18px 20px 16px}
.kpi::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:0 3px 3px 0;background:var(--bleu)}
.kpi.vert::before{background:var(--vert)} .kpi.orange::before{background:var(--orange)}
.kpi .v{font-family:var(--serif);font-size:34px;font-weight:600;font-variant-numeric:tabular-nums lining-nums}
.kpi .l{font-size:13px}
a.kpi,.kpi[onclick]{cursor:pointer} a.kpi:hover,.kpi[onclick]:hover{border-color:#B9CCDD}
.mcard{border-radius:var(--r);box-shadow:var(--ombre)} .mcard:hover{transform:none;box-shadow:var(--ombre-h)}
.mcard .h b{text-transform:none;font-family:var(--serif);font-size:19px;letter-spacing:0}
.mcard .f a{text-transform:none;letter-spacing:0;font-size:13.5px;color:var(--bleu)}
.hub a.card:hover,.forme-tuiles a:hover{border-color:var(--bleu);box-shadow:var(--ombre-h)}
.foot{border-top-color:var(--ligne);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* Boutons */
.btn{border-radius:8px;min-height:38px;padding:8px 16px;font-weight:600;letter-spacing:.1px;box-shadow:0 1px 0 rgba(14,42,68,.08)}
.btn.sm{min-height:30px;padding:4px 11px}
.btn.ghost{border-color:#D5DDE5;box-shadow:none} .btn.ghost:hover{border-color:#B9C7D4;background:#F7F9FB}
.btn:active{transform:translateY(1px)}

/* Tableaux */
table{font-size:13.5px}
th{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;color:var(--gris);background:transparent;border-bottom:1px solid var(--ligne);white-space:nowrap}
td{border-bottom-color:var(--ligne-d)}
tr.lien:hover td{background:#F2F7FC}
td,th{font-variant-numeric:tabular-nums}

/* Pastilles de statut : point coloré devant le libellé */
.pill{text-transform:none;letter-spacing:0;font-size:12px;padding:3px 10px 3px 8px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85}

/* ---- Barre latérale : le registre ---- */
.shell{grid-template-columns:264px minmax(0,1fr);transition:grid-template-columns .2s ease}
.side{background:var(--nuit);border-right:0;color:#C9D6E3;scrollbar-width:thin;scrollbar-color:#2B4560 transparent}
.side .instance{background:#0A2238;border-bottom:1px solid rgba(255,255,255,.07);padding:16px 14px}
.side .instance:hover{background:#0C273F}
.instance .ic{background:#fff;color:var(--nuit)} .instance .ic.logo{border:0}
.instance>div>b{color:#fff} .instance>div>span{color:#8FA6BC} .instance .chev{color:#8FA6BC}
.side nav{padding:12px 10px 8px}
.side nav a{color:#C9D6E3;font-weight:500;border-radius:8px;padding:9px 12px;position:relative}
.side nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.side nav a.actif{background:rgba(255,255,255,.09);color:#fff;font-weight:600}
.side nav a.actif::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--vert)}
.side nav a .ico{opacity:.75;color:#9FB4C8} .side nav a.actif .ico{color:var(--vert);opacity:1}
.side .sect{text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:#6F88A0;padding:18px 12px 6px}
.side .user{border-top:1px solid rgba(255,255,255,.08);color:#C9D6E3;background:#0A2238}
.side .user b{color:#fff} .side .user .muted{color:#8FA6BC} .side .user a{color:#B9DB6A}
.side .avatar{background:var(--vert-f)}
.ux-mini-btn{display:flex;align-items:center;gap:10px;width:calc(100% - 20px);margin:4px 10px 10px;border:0;background:transparent;color:#8FA6BC;font:inherit;font-size:12.5px;padding:8px 12px;border-radius:8px;cursor:pointer}
.ux-mini-btn:hover{background:rgba(255,255,255,.06);color:#fff}
/* Mode réduit (icônes seules) */
.shell.mini{grid-template-columns:72px minmax(0,1fr)}
.shell.mini .side nav a{font-size:0;justify-content:center;padding:10px 0;gap:0}
.shell.mini .side nav a .ico{font-size:16px;width:auto}
.shell.mini .side nav a .badge{position:absolute;top:3px;right:8px;font-size:9px;padding:0 5px}
.shell.mini .side .sect{font-size:0;padding:10px 0 4px;margin:0 16px;border-top:1px solid rgba(255,255,255,.08)}
.shell.mini .instance{justify-content:center;padding:14px 0} .shell.mini .instance>div:not(.ic):not(.inst-menu),.shell.mini .instance .chev{display:none}
.shell.mini .inst-menu{left:8px;right:auto;width:320px}
.shell.mini .side .user{justify-content:center;padding:12px 0} .shell.mini .side .user>div{display:none}
.shell.mini .ux-mini-btn{justify-content:center;font-size:0} .shell.mini .ux-mini-btn span{font-size:15px}

/* ---- Barre d'application ---- */
.appbar{height:62px;padding:10px 28px;gap:12px;border-bottom-color:var(--ligne);background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(8px)}
.appbar .search input{border-radius:10px;background:#F1F4F7;padding-right:70px}
.ux-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--gris);border:1px solid #D5DDE5;border-radius:6px;padding:1px 6px;background:#fff;pointer-events:none}
.search input:focus~.ux-kbd{display:none}
.search-drop .t{text-transform:none;letter-spacing:0;font-size:11.5px}
.search-drop h5{margin:6px 10px 4px;font-size:12px;color:var(--gris);font-weight:600}
.forme-sel span{text-transform:none;letter-spacing:0;font-size:12.5px}
.ux-burger{display:none}
.main{padding:28px 36px 48px;max-width:1480px}
.topbar{margin-bottom:22px;align-items:flex-end}

/* Barre de chargement */
#uxbar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--bleu),var(--vert));z-index:200;opacity:0;transition:width .25s ease,opacity .3s ease}
#uxbar.on{opacity:1}

/* Outils de tableau (filtre, export, tri) */
.ux-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 10px}
.ux-tools input{width:auto;flex:1;min-width:180px;max-width:320px;padding:7px 10px 7px 30px;font-size:13px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%235B6B7B' stroke-width='2'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath d='m9.5 9.5 3 3'/%3E%3C/svg%3E") no-repeat 10px 50%}
.ux-tools .ux-n{font-size:12.5px;color:var(--gris);margin-right:auto}
.ux-tools button{border:1px solid #D5DDE5;background:#fff;border-radius:7px;font:inherit;font-size:12.5px;font-weight:600;color:var(--nuit);padding:5px 10px;cursor:pointer}
.ux-tools button:hover{border-color:var(--bleu);color:var(--bleu)}
.ux-tw{overflow-x:auto;max-width:100%}
th.ux-s{cursor:pointer;user-select:none} th.ux-s:hover{color:var(--nuit)}
th.ux-s::after{content:"↕";margin-left:5px;opacity:.35;font-size:11px}
th.ux-s[aria-sort=ascending]::after{content:"↑";opacity:.9} th.ux-s[aria-sort=descending]::after{content:"↓";opacity:.9}
tr.ux-cache{display:none}
.ux-vide{padding:18px;text-align:center;color:var(--gris);font-size:13px}

/* Fenêtres modales */
.modal{background:rgba(10,30,50,.5);backdrop-filter:blur(2px);animation:uxfade .15s ease}
.modal .card{position:relative;border-radius:14px;box-shadow:0 24px 70px rgba(10,30,50,.35);padding:26px}
.ux-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:8px;border:0;background:transparent;font-size:18px;color:var(--gris);cursor:pointer}
.ux-x:hover{background:#F1F4F7;color:var(--nuit)}
@keyframes uxfade{from{opacity:0}to{opacity:1}}
.ux-keys{width:100%} .ux-keys td{padding:8px 4px} .ux-keys kbd{display:inline-block;min-width:24px;text-align:center;font:inherit;font-size:12px;border:1px solid #D5DDE5;border-bottom-width:2px;border-radius:6px;padding:1px 7px;background:#F7F9FB;margin-right:3px}

/* Notifications, retour en haut */
.toast{border-radius:10px;padding:12px 18px;font-weight:500;box-shadow:var(--ombre-h);max-width:min(560px,calc(100vw - 32px))}
.ux-top{position:fixed;right:22px;bottom:22px;width:42px;height:42px;border-radius:50%;border:1px solid var(--ligne);background:#fff;color:var(--nuit);box-shadow:var(--ombre-h);cursor:pointer;font-size:17px;z-index:45;opacity:0;pointer-events:none;transition:opacity .2s}
.ux-top.on{opacity:1;pointer-events:auto}

/* Bandeaux */
.forme-bandeau{border-radius:10px}
.avert,.ok,.erreur{border-radius:10px}

/* Connexion */
.login .pane{background:radial-gradient(120% 80% at 0% 100%,#123A5C 0%,var(--nuit) 55%)}
.login .pane h1{font-family:var(--serif);font-size:46px;letter-spacing:-.5px}
.login .pane ul{list-style:none;padding:0} .login .pane li{position:relative;padding-left:22px;margin-bottom:10px}
.login .pane li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--vert)}
.login .form .card{padding:32px;border:0;box-shadow:0 20px 60px rgba(14,42,68,.12)}
.login .form h2{font-family:var(--serif);font-size:24px;font-weight:600;margin-bottom:6px}

/* ---- Mobile et tablette ---- */
@media (max-width:900px){
  .shell,.shell.mini{display:block}
  .side{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);height:100vh;z-index:90;transform:translateX(-102%);transition:transform .22s ease;box-shadow:none}
  .shell.nav-open .side{transform:none;box-shadow:0 0 0 100vmax rgba(10,30,50,.45)}
  .shell.mini .side nav a{font-size:14px;justify-content:flex-start;padding:9px 12px;gap:11px}
  .ux-mini-btn{display:none}
  .ux-burger{display:grid}
  .appbar{padding:8px 12px;gap:6px;height:56px}
  .appbar .forme-sel,.appbar #btnDocs,.appbar #btnCal,.appbar .icons>a,.ux-kbd,#uxPrint{display:none}
  .main{padding:18px 16px 40px}
  h1{font-size:24px}
  .topbar{flex-direction:column;align-items:stretch} .topbar>.row{justify-content:flex-start}
  .grid.g2,.grid.g3,.grid.g4,.stat{grid-template-columns:1fr}
  .grid.g4{grid-template-columns:1fr 1fr}
  .card{padding:16px}
  .notif{position:fixed;left:12px;right:12px;top:60px;width:auto}
  .modal{padding:12px;align-items:flex-end} .modal .card{max-height:88vh;border-radius:14px 14px 10px 10px}
  .card table:not(.ux-ok){display:block;overflow-x:auto}
}
@media (max-width:560px){.grid.g4{grid-template-columns:1fr}.mcards{grid-template-columns:1fr}.ux-top{right:14px;bottom:14px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none !important;animation:none !important}}
@media print{.ux-tools,.ux-top,#uxbar,.ux-burger,.ux-mini-btn,.foot{display:none !important}.card{box-shadow:none;break-inside:avoid}h1{font-size:22px}}
/* v0.36 : harmonisation des modules (registres, vue groupe, séance) */
.entete h2{font-family:var(--serif);text-transform:none;letter-spacing:0;font-size:22px;font-weight:600}
.two .liste{background:#F8FAFC} .sitem.on{background:#EAF2FA}
.ti-k{border-top:0 !important;position:relative;padding:16px 20px} .ti-k::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--bleu)}
.ti-k.vert::before{background:var(--vert)} .ti-k.orange::before{background:var(--orange)} .ti-k.rouge::before{background:var(--rouge)}
.ti-k > span{text-transform:none;letter-spacing:0;font-size:13px;font-weight:500}
.ti-k b{font-family:var(--serif);font-size:30px;font-weight:600}
.ti-t th,.mx-t th,.mx-ech th{text-transform:none;letter-spacing:0;font-size:12px}
.ti-t th{background:var(--nuit)} .ti-t tr.ti-sub th{background:#EEF3F8;color:#34506B}
.mx-kpi b{font-family:var(--serif);font-weight:600}
.ti-bloc>.ux-tools,.mx-zone>.ux-tools{padding:12px 20px 0}
.ti-bloc>.ux-tools{padding:12px 20px 0}
.fam{text-transform:none;letter-spacing:0;font-size:11.5px}
.famh{text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:18px}
.steps div{font-size:12.5px}
.stabs{background:transparent}
.hub b,.fam-intro b{font-family:var(--serif);font-size:18px;font-weight:600}
@media (max-width:900px){.topbar>div:first-child{flex:none}.topbar>.row .btn{flex:1 1 auto;justify-content:center}}
.cal{grid-template-columns:repeat(7,minmax(0,1fr))} .cal>*{min-width:0} .cal .hd{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600}
.cal .d.today{background:#F4F9EC} .cal .ev:hover{filter:brightness(.96)}
@media (max-width:900px){.card:has(>.cal){overflow-x:auto}.cal{min-width:720px}}
.dc-gt,.inst-menu h4,.inst-menu .grp{text-transform:none;letter-spacing:0;font-size:12px}
/* v0.36 : registre des réunions (à venir / tenues) */
.ag-bloc{padding:0;margin-bottom:18px;overflow:hidden}
.ag-h{display:flex;align-items:center;gap:10px;margin:0;padding:16px 22px;border-bottom:1px solid var(--ligne);font-family:var(--serif);font-size:20px;font-weight:600;color:var(--nuit)}
.ag-h span{font-family:inherit;font-size:13px;font-weight:600;color:var(--gris);background:#EEF2F6;border-radius:999px;padding:1px 9px}
.ag-row{display:grid;grid-template-columns:92px minmax(160px,1.3fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:18px;align-items:center;padding:16px 22px;border-bottom:1px solid var(--ligne-d);color:var(--encre)}
.ag-row:last-child{border-bottom:0} .ag-row:hover{background:#F6F9FC}
.ag-date b{display:block;font-family:var(--serif);font-size:34px;font-weight:600;line-height:1;color:var(--nuit);font-variant-numeric:lining-nums tabular-nums}
.ag-date span{display:block;font-size:12px;color:var(--gris);margin-top:3px}
.ag-row.cl .ag-date b{font-size:28px}
.ag-type b{display:block;font-family:var(--serif);font-size:22px;font-weight:500;color:var(--nuit);line-height:1.1}
.ag-type span{display:block;font-size:12.5px;color:var(--gris);margin-top:3px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ag-role small{display:block;font-size:11.5px;color:var(--gris)} .ag-role span{font-size:13.5px;color:var(--nuit);font-weight:500}
.ag-fin{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:150px}
.ag-rep{display:flex;gap:10px}
.rp{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.rp::before{content:"";width:9px;height:9px;border-radius:50%}
.rp.p{color:#2E7D5B} .rp.p::before{background:#3BAA7E} .rp.v{color:#2F5F8A} .rp.v::before{background:#4A7DB0}
.rp.r{color:#A0561A} .rp.r::before{background:#E08A3C} .rp.s{color:var(--gris)} .rp.s::before{background:#C3CDD7}
.ag-live{font-size:12.5px;font-weight:600;color:var(--bleu);cursor:pointer} .ag-live:hover{text-decoration:underline}
.ag-vide{padding:18px 22px;margin:0}
@media (max-width:900px){.ag-row{grid-template-columns:70px 1fr;gap:6px 14px;padding:14px 16px}.ag-date{grid-row:span 3}.ag-role{display:flex;gap:6px;align-items:baseline}.ag-fin{align-items:flex-start}.ag-date b{font-size:28px}}

/* Réponse à la convocation */
.rep-card h3{font-family:var(--serif);font-size:19px;font-weight:600}
.rep-g{margin-top:12px} .rep-g p{margin:0 0 8px;font-size:13.5px;color:var(--gris)}
.rep-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.rep{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--ligne);border-left:4px solid var(--c);background:#fff;border-radius:10px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--encre);transition:background .15s,box-shadow .15s}
.rep b{font-size:14.5px;color:var(--nuit)} .rep span{font-size:12.5px;color:var(--gris)}
.rep:hover{background:#F7FAFC;box-shadow:var(--ombre-h)}
.rep.on{background:var(--c);border-color:var(--c);box-shadow:none} .rep.on b,.rep.on span{color:#fff}
.rep.on b::before{content:"✓ "}
.rep.p{--c:#2E9C73} .rep.v{--c:#3F6E9E} .rep.c{--c:#C98A1A} .rep.r{--c:#D06A2A} .rep.a{--c:#7D8C9B}

/* Vote par correspondance : choix Pour / Contre / S'abstient */
.vchoix{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.vchoix label{margin:0;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ligne);border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--nuit);cursor:pointer;background:#fff}
.vchoix input{width:auto;margin:0;accent-color:var(--nuit)}
.vchoix label:has(input:checked){color:#fff} .vchoix label.pour:has(input:checked){background:#2E9C73;border-color:#2E9C73}
.vchoix label.contre:has(input:checked){background:#C0392B;border-color:#C0392B} .vchoix label.abstention:has(input:checked){background:#C98A1A;border-color:#C98A1A}

/* Convocations : mode d'envoi coloré et frais d'envoi */
.cv-t td{vertical-align:middle}
.cv-sel{display:flex;align-items:center;border-left:4px solid #9AA9B8;border-radius:6px;padding-left:2px}
.cv-sel select{padding:5px 8px;font-size:13px;border-radius:0 6px 6px 0}
.cv-sel[data-c=email],.cv-c[data-c=email]{border-color:#3F6E9E} .cv-sel[data-c=portail],.cv-c[data-c=portail]{border-color:#2E9C73}
.cv-sel[data-c=courrier_simple],.cv-c[data-c=courrier_simple]{border-color:#C98A1A} .cv-sel[data-c=lrar],.cv-c[data-c=lrar]{border-color:#D06A2A} .cv-sel[data-c=remise],.cv-c[data-c=remise]{border-color:#7D5BA6}
.cv-c{border-left:4px solid #9AA9B8;padding-left:8px}
.cv-frais{margin-top:14px;background:#F7F9FB;border:1px solid var(--ligne);border-radius:10px;padding:12px 14px}
.cv-frais table{margin-top:6px} .cv-px{width:96px;padding:4px 6px;text-align:right;font-size:13px}
.cv-tot td{font-weight:700;color:var(--nuit);border-top:1px solid var(--ligne)}

/* Séance en direct : navigation entre résolutions et récapitulatif */
.lv-nav{display:flex;align-items:center;gap:10px;background:#F4F7FA;border-radius:10px;padding:6px;margin-bottom:12px}
.lv-nav>div{flex:1;text-align:center} .lv-nav b{display:block;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--nuit)} .lv-nav span{font-size:12px;color:var(--gris)}
.lv-nav .ibtn{font-size:22px;background:#fff;border:1px solid var(--ligne)} .lv-nav .ibtn:disabled{opacity:.35;cursor:default}
.lv-txt{font-size:13.5px;line-height:1.6;color:var(--encre);border-left:3px solid var(--ligne);padding:4px 0 4px 12px;margin-bottom:10px;max-height:180px;overflow:auto}
.lv-rec{margin-top:12px} .lv-v{display:inline-flex;align-items:center;gap:6px;font-weight:600}
.lv-v::before{content:"";width:10px;height:10px;border-radius:3px;background:#9AA9B8}
.lv-v.pour{color:#2E7D5B} .lv-v.pour::before{background:#3BAA7E} .lv-v.contre{color:#B03A2E} .lv-v.contre::before{background:#D9534F} .lv-v.abstention{color:#9A6A12} .lv-v.abstention::before{background:#E0A83C}
.fam-intro+#agListe{margin-top:18px}
.ux-refus{max-width:620px;padding:28px} .ux-refus b{display:block;font-size:16px;color:var(--nuit);margin-bottom:6px}
/* v0.36 : aucune page ne doit déborder en largeur (grilles qui ne rétrécissent pas) */
.grid>*,.docs2>*,.dc>*,.live>*,.sgrid>*,.stat>*,div[style*="grid-template-columns"]>*{min-width:0}
.card{min-width:0}
.tabs2{overflow-x:auto;scrollbar-width:thin} .tabs2 a{white-space:nowrap;flex:none}
@media (max-width:900px){
  .grid,.docs2,.dc,div[style*="grid-template-columns"]:not(.cal):not(.mx-kpis):not(.ti-ks){grid-template-columns:minmax(0,1fr) !important}
  .dc-nav{position:static}
  .topbar>.row{width:100%} .topbar>.row select{max-width:100%;flex:1 1 100%}
  .row{min-width:0} .row>*{max-width:100%}
  .live-head{flex-wrap:wrap}
  pre,code{white-space:pre-wrap;word-break:break-word}
}
.lpt>span:first-child{min-width:0;overflow-wrap:anywhere}
.card td{overflow-wrap:anywhere} .card td .lref{white-space:normal} .card td.nw,.card td .pill,.ti-t td,.mx-t td{overflow-wrap:normal}
.card td .lsanc,.card li .lsanc,.card p .lsanc{white-space:normal;display:inline;line-height:1.7}
.card .lsanc{white-space:normal;max-width:100%}
/* v0.36 : compétences et adéquation du conseil */
.cp-ctx{margin-bottom:16px} .cp-ctx-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px}
.cp-soc{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--nuit);margin:0 0 4px}
.cp-objet{margin:0 0 8px;font-size:13.5px;line-height:1.55;border-left:3px solid var(--ligne);padding-left:10px}
.cp-acts{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px} .cp-act{background:#EEF6D8;color:var(--vert-f);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}
.cp-note{margin:12px 0 0;padding:8px 12px;background:#F4F7FA;border-radius:8px;color:var(--gris)}
.cp-kpis{margin-bottom:16px}
.cp-tabs{margin-bottom:16px;position:static}
.cp-niv{display:inline-flex;gap:3px;vertical-align:middle} .cp-niv i{width:12px;height:12px;border-radius:3px;background:#E3E9EF} .cp-niv i.on{background:var(--bleu)}
.cp-crit{display:inline-block;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;white-space:nowrap}
.cp-crit.c3{background:#0E2A44;color:#fff} .cp-crit.c2{background:#DCE9F5;color:#0B4F80} .cp-crit.c1{background:#F1F4F7;color:var(--gris)}
.cp-src{display:inline-block;font-size:11px;font-weight:600;border-radius:5px;padding:0 6px;margin-left:4px;background:#F1F4F7;color:var(--gris);vertical-align:middle}
.cp-src.secteur{background:#E3F0FA;color:#0B4F80} .cp-src.objet{background:#EEF6D8;color:var(--vert-f)} .cp-src.conseil{background:#FFF1DC;color:#8A5200}
.cp-p{display:inline-block;background:#F4F7FA;border:1px solid var(--ligne);border-radius:999px;padding:1px 9px;font-size:12px;margin:2px 4px 2px 0;white-space:nowrap}
.cp-p b{color:var(--bleu)} .cp-p.exp{border-color:var(--orange);background:#FFF6E8}
.cp-grille td{vertical-align:top} .cp-grille td:first-child{min-width:240px}
.cp-mat{font-size:12.5px;border-collapse:separate;border-spacing:0}
.cp-mat th.cp-fam{text-align:center;background:#F4F7FA;border-left:2px solid #fff;color:var(--nuit);font-size:12px}
.cp-mat th.cp-v{vertical-align:bottom;padding:6px 2px;height:170px} .cp-mat th.cp-v span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:11.5px;font-weight:600}
.cp-mat td.cp-c{text-align:center;font-weight:700;min-width:34px;border:1px solid #fff} .cp-mat td.cp-c.ok{box-shadow:inset 0 -3px 0 var(--vert)}
.cp-mat td.cp-c[data-note]{cursor:pointer} .cp-mat td.cp-c[data-note]:hover{outline:2px solid var(--bleu);outline-offset:-2px}
.cp-mat .cp-nom{white-space:nowrap;min-width:190px;position:sticky;left:0;background:#fff;z-index:1}
.cp-req td{background:#F8FAFC;text-align:center;font-weight:600;color:var(--nuit);font-size:12px} .cp-req td:first-child{text-align:left;color:var(--gris)}
.cp-crit-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:middle;background:#C3CDD7} .cp-crit-dot.c3{background:var(--nuit)} .cp-crit-dot.c2{background:var(--bleu)}
.cp-cov td{text-align:center} .cp-dot{display:inline-block;width:12px;height:12px;border-radius:50%}
.cp-dot.adequat{background:#3BAA7E} .cp-dot.menace{background:#E0A83C} .cp-dot.partiel{background:#E0A83C;opacity:.6} .cp-dot.insuffisant{background:#D9534F}
.cp-rep{margin-top:12px} .cp-rep summary{cursor:pointer;font-weight:600;color:var(--bleu);font-size:13px} .cp-rep table{margin-top:8px} .cp-rep td{vertical-align:top}
.cp-profils{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.cp-pr-n{font-family:var(--serif);font-size:17px;font-weight:600;color:var(--nuit)} .cp-pr-s{text-align:right} .cp-pr-s b{display:block;font-family:var(--serif);font-size:24px;color:var(--nuit);line-height:1} .cp-pr-s span{font-size:11.5px;color:var(--gris)}
.cp-ol{margin:0;padding-left:20px} .cp-ol li{margin-bottom:8px;font-size:13.5px}
.cp-ex select{padding:4px 6px;font-size:12.5px;width:auto}
@media (max-width:900px){.cp-ctx-g{grid-template-columns:1fr}}
@media print{.cp-tabs,#cpEx{display:none}}
/* v0.36 : table de capitalisation */
.cap-tete{margin:-6px 0 16px} .cap-tete p{margin:0 0 4px;font-size:14px;color:var(--nuit)}
.cap-t td.r,.cap-t th.r{text-align:right;white-space:nowrap} .cap-t tfoot td{font-weight:700;color:var(--nuit);border-top:2px solid var(--nuit);background:#F7F9FB}
.cap-barc{width:120px} .cap-bar{display:block;height:8px;background:#EEF2F6;border-radius:999px;overflow:hidden} .cap-bar i{display:block;height:100%;background:var(--bleu)}
.cap-q{font-size:11px;font-weight:600;background:#EEF2F6;color:var(--nuit);border-radius:5px;padding:1px 6px}
.cap-s td{vertical-align:top} .cap-alerte{display:inline-block;background:#FFF1DC;color:#8A5200;border-radius:6px;padding:2px 8px;font-size:12.5px;font-weight:600}
.cap-ed input,.cap-ed select{padding:5px 7px;font-size:12.5px} .cap-ed td{padding:4px} .cap-h4{margin:12px 0 4px;font-size:13px;color:var(--nuit)}
