:root{--couleur-principale: #0369a1;--couleur-danger: #b3261e;--couleur-fond: #ffffff;--couleur-texte: #0c2a43;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--couleur-fond);color:var(--couleur-texte)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;padding:16px;max-width:720px;margin:0 auto;width:100%}.menu-principal{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.menu-item{background:#fff;border:1px solid #dcdcdc;border-radius:12px;padding:20px 12px;font-size:1.05rem;text-align:center;cursor:pointer}.menu-item:active{background:#e0f2fe}button,.btn{font-size:1.05rem;padding:14px 18px;border-radius:10px;border:none;background:var(--couleur-principale);color:#fff;cursor:pointer;min-height:48px}button.secondaire{background:#fff;color:var(--couleur-principale);border:2px solid var(--couleur-principale)}button.danger{background:var(--couleur-danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-size:1.05rem;padding:12px;border-radius:8px;border:1px solid #ccc;width:100%}label{display:block;margin:14px 0 6px;font-weight:600}.champ-erreur{border-color:var(--couleur-danger)!important}.messages-erreur{color:var(--couleur-danger);font-size:.95rem;margin-top:6px}.messages-erreur ul{margin:4px 0 0;padding-left:18px}.badge-sync{font-size:.8rem;padding:2px 8px;border-radius:999px}.badge-sync.synced{background:#bae6fd;color:var(--couleur-principale)}.badge-sync.pending{background:#fff3cd;color:#7a5c00}.badge-sync.error{background:#fbdada;color:var(--couleur-danger)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{border:1px solid #ddd;padding:6px;text-align:center}th{background:#e0f2fe}.chip-grid{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.chip{position:relative;border:1px solid #ccc;background:#fff;color:var(--couleur-texte);border-radius:999px;padding:8px 14px;font-size:.95rem;cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.2}.chip.selected{background:var(--couleur-principale);border-color:var(--couleur-principale);color:#fff;font-weight:600}.chip .chip-order{display:inline-block;min-width:16px;height:16px;line-height:16px;text-align:center;background:#fff;color:var(--couleur-principale);border-radius:50%;font-size:11px;font-weight:700;margin-right:6px}.chip-count{font-size:.85rem;color:#666;margin-top:2px}.registry-bar{display:flex;gap:8px;margin-bottom:16px}.registry-box{flex:1;background:#fff;border:1px solid #dcdcdc;border-radius:12px;padding:10px 12px;text-align:center}.registry-label{display:block;font-size:.75rem;color:#666;margin-bottom:2px}.registry-box b{color:var(--couleur-principale);font-size:1.3rem}.counter-bar{display:flex;justify-content:space-between;align-items:center;padding:4px 2px 14px;font-size:.9rem;color:#555}.counter-bar b{color:var(--couleur-principale);font-size:1.1rem}.carte{background:#fff;border:1px solid #dcdcdc;border-radius:12px;padding:16px}.carte h2{margin-top:0;font-size:1.05rem}:root{--bad: #c62828;--warn: #b26a00;--ok: #0369a1;--lie: #e0f2fe;--reporte: #eaeefc;--ligne: #cfe3f1}.app-content.large{max-width:1240px}.entete-droite{display:flex;align-items:center;gap:10px}.bouton-sortie{background:transparent;color:#fff;border:1px solid white;min-height:36px;padding:6px 12px;font-size:.9rem}.chip-periode{background:#ffffff2e;border:0;color:#fff;min-height:36px;padding:6px 12px;font-size:.9rem;border-radius:999px}.badge-sync{border:0;min-height:0;cursor:pointer;font-size:.8rem;padding:4px 10px}.badge-sync.offline{background:#e0e0e0;color:#333}.accueil h1{margin:4px 0 12px}.accueil-entete{display:flex;align-items:center;justify-content:space-between;gap:12px}.icone-maj{width:44px;height:44px;min-width:44px;padding:0;border-radius:50%;background:#fff;color:var(--couleur-principale);border:2px solid var(--couleur-principale);font-size:1.2rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.icone-maj .tourne{display:inline-block;animation:tourne-maj 1s linear infinite}@keyframes tourne-maj{to{transform:rotate(360deg)}}.periode-choix .ligne-actions{align-items:flex-end}.periode-active{margin:10px 0 0}.grille-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:16px 0}.carte-action{display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;background:#fff;color:var(--couleur-texte);border:1px solid var(--ligne);border-radius:14px;padding:18px;min-height:92px}.carte-action b{font-size:1.1rem}.carte-action span{font-size:.85rem;color:#4b6a82;font-weight:400}.carte-action.principale,.carte.principale{border:2px solid var(--couleur-principale)}.carte-action:disabled{opacity:.5;cursor:not-allowed}.avancement .etapes{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}.avancement .etapes li{background:#eef6fc;border-radius:999px;padding:4px 12px;font-size:.9rem;color:#4b6a82}.avancement .etapes li.fait{background:#bae6fd;color:var(--couleur-principale);font-weight:600}.a-propos{margin-top:24px;font-size:.9rem;color:#444}.a-propos summary{cursor:pointer;color:#4b6a82}.entete-module{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:12px}.entete-module h1{margin:0;font-size:1.35rem}.entete-module .sous-titre{color:#4b6a82;font-size:.9rem}.entete-module .aide{flex:1 1 100%;background:#f0f9ff;border-radius:8px;padding:8px 12px;font-size:.88rem;color:#2f4b63}.bandeau-periode{margin:0 0 8px;color:#556}.onglets{display:flex;gap:6px;overflow-x:auto;padding:4px 0 10px;margin-bottom:4px}.onglet{--c: var(--couleur-principale);background:#fff;color:var(--couleur-texte);border:2px solid var(--c);min-height:40px;padding:6px 14px;font-size:.92rem;white-space:nowrap;border-radius:10px}.onglet.actif{background:var(--c);color:#fff}.onglet .compteur{margin-left:6px;font-size:.75rem;opacity:.85}.onglet .erreurs{margin-left:6px;background:var(--bad);color:#fff;border-radius:10px;padding:0 6px;font-size:.75rem}.pastille{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600;background:#e3eaf1;color:#234}.pastille.ok{background:#bae6fd;color:#075985}.pastille.warn{background:#fff3cd;color:#7a5c00}.pastille.bad{background:#fdecea;color:var(--bad)}.message{border-radius:8px;padding:8px 12px;margin:8px 0;font-size:.9rem;border-left:4px solid #90a4ae;background:#f3f6f8}.message.ok{border-color:var(--ok);background:#e0f2fe}.message.warn{border-color:var(--warn);background:#fff6e5}.message.bad{border-color:var(--bad);background:#fdecea}.note{color:#4b6a82;font-size:.85rem}.lien{color:#075985;font-size:.78rem;font-weight:600;font-style:normal}.carte+.carte{margin-top:12px}.defil{overflow-x:auto;background:#fff;border:1px solid var(--ligne);border-radius:10px;margin:8px 0;-webkit-overflow-scrolling:touch}table.saisie{border-collapse:separate;border-spacing:0;width:100%;min-width:860px;--c: var(--couleur-principale)}table.saisie th{background:var(--c);color:#fff;font-size:.78rem;font-weight:600;padding:6px 4px;position:sticky;top:0;z-index:2}table.saisie td{border-top:1px solid var(--ligne);padding:2px 3px;text-align:right}table.saisie td.fixe,table.saisie th.fixe{position:sticky;left:0;z-index:1;text-align:left;min-width:220px;background:#fff;padding:4px 8px}table.saisie th.fixe{background:var(--c);z-index:3}table.saisie tr:nth-child(2n) td.fixe{background:#f5fbff}table.saisie small{display:block;font-weight:400;font-size:.75rem}table.saisie small.bad,td small.bad{color:var(--bad)}table.saisie small.warn,td small.warn{color:var(--warn)}table.saisie td.calcule{background:#eceff0;font-weight:700;padding:4px 8px}table.saisie td.plein{background:#ede7f6;font-weight:700;text-align:center}table.saisie td.vide{text-align:center;color:#889;padding:18px}table.saisie tfoot td{background:#e0f2fe;font-weight:700;padding:6px 8px;border-top:2px solid var(--c)}table.saisie.compact td,table.saisie.compact th{font-size:.85rem}table.saisie tr.avert td{background:#fffaf0}table.saisie td.pu{color:#4b6a82;padding:4px 8px}table.saisie td input:not(.num),table.saisie td select{width:100%;min-width:120px;padding:7px 6px;border:1px solid var(--ligne);border-radius:6px;font-size:.95rem}input.num{width:100%;min-width:64px;padding:8px 6px;border:1px solid var(--ligne);border-radius:6px;text-align:right;font-size:1rem;background:#fff}input.num:focus,table.saisie input:focus,select:focus{outline:2px solid var(--couleur-principale);border-color:var(--couleur-principale)}input.num.reporte{background:var(--reporte);border:1px solid #3949ab}input.num.lie{background:var(--lie);border:1px dashed #0284c7}input.num.bad,input.bad,select.bad{background:#fdecea;border-color:var(--bad)}input.num.warn,input.warn,select.warn{background:#fff6e5;border-color:var(--warn)}input:disabled{background:#f1f1f1;color:#555}td .x,.x{background:none;color:var(--bad);border:0;min-height:0;padding:4px 8px;font-size:1rem}.etoile{font-size:.8rem}.ligne-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:8px 0}.ligne-actions label,.champ-num,.champ-texte{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#445}.champs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:8px 0}fieldset{border:1px solid var(--ligne);border-radius:10px;padding:6px 10px 10px;margin:8px 0;min-width:0}legend{font-size:.8rem;color:#4b6a82;padding:0 6px}.choix{display:flex;flex-wrap:wrap;gap:6px}.radio{display:inline-flex;align-items:center;gap:4px;border:2px solid var(--ligne);border-radius:999px;padding:6px 12px;cursor:pointer;font-size:.9rem;background:#fff}.radio.on{background:var(--couleur-principale);color:#fff;border-color:var(--couleur-principale)}.radio input{position:absolute;opacity:0;width:0;height:0}.radio:focus-within{outline:2px solid var(--couleur-principale);outline-offset:2px}.case{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.saisie-rapide{position:relative;border-left:6px solid #4527a0}.suggestions{list-style:none;margin:4px 0;padding:0;border:1px solid var(--ligne);border-radius:8px;background:#fff;max-height:240px;overflow:auto}.suggestions button{width:100%;text-align:left;background:#fff;color:var(--couleur-texte);min-height:44px;padding:8px 12px;border-radius:0;font-size:.95rem}.suggestions button:hover{background:#f1ecfa}.kpis{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}.kpis>div{flex:1 1 150px;background:#fff;border:1px solid var(--ligne);border-left:5px solid var(--couleur-principale);border-radius:10px;padding:6px 12px;display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:#4b6a82}.kpis b{font-size:1.2rem;color:var(--couleur-texte)}.kpis .fort{border-left-color:#e65100}.kpis.sticky{position:sticky;top:56px;z-index:9;background:var(--couleur-fond);padding:6px 0}.resultats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:10px 0}.resultats>div{background:#eceff0;border-radius:8px;padding:6px 10px;display:flex;flex-direction:column;font-size:.78rem;color:#556}.resultats b{font-size:1.05rem;color:var(--couleur-texte)}.resultats>div.ok b{color:var(--ok)}.resultats>div.bad{background:#fdecea}.resultats>div.bad b{color:var(--bad)}.resultats.alerte>div{background:#fdecea}.resultats.alerte b{color:var(--bad)}.bloc-finance h3{margin:12px 0 4px;font-size:1rem}.ligne-finance{border-top:1px dashed var(--ligne);padding-top:4px}.outils{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0}.outils input[type=search]{flex:1 1 240px;padding:10px 12px;border:1px solid var(--ligne);border-radius:8px;font-size:1rem}.grille-export{display:flex;flex-direction:column;gap:8px}.ligne-export{display:flex;align-items:center;gap:8px}.ligne-export span{flex:1}.ligne-export button{min-height:40px;padding:6px 14px}.barre-actions{position:sticky;bottom:0;display:flex;gap:8px;background:#fff;padding:8px;border-top:1px solid var(--ligne)}.courbe{width:100%;max-width:680px;height:auto;background:#fff;border:1px solid var(--ligne);border-radius:10px}.courbe .grille-h{stroke:#dcecf7}.courbe .axe{font-size:10px;fill:#4b6a82}.courbe .l-cible{fill:none;stroke:#9e9e9e;stroke-width:2;stroke-dasharray:6 4}.courbe .l-dtc1{fill:none;stroke:#1565c0;stroke-width:2.5}.courbe .l-dtc3{fill:none;stroke:#e65100;stroke-width:2.5}.courbe .p-dtc1{fill:#1565c0}.courbe .p-dtc3{fill:#e65100}.legende{font-size:.85rem}.legende .l1{color:#1565c0}.legende .l3{color:#e65100}.legende .lc{color:#757575}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #ffb300;outline-offset:2px}@media (max-width: 640px){.app-content{padding:10px}table.saisie td.fixe,table.saisie th.fixe{min-width:150px}.kpis.sticky{position:static}}@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.app-header,.app-nav,.outils,.barre-actions,button{display:none!important}table.saisie{min-width:0}.defil{overflow:visible}}.registre-selecteur{background:#fff;border:2px solid var(--couleur-principale);border-radius:14px;padding:12px 14px;margin:0 0 14px}.registre-selecteur>.titre{display:block;font-weight:700;font-size:.95rem;margin-bottom:8px;color:var(--couleur-principale)}.segments{display:flex;flex-wrap:wrap;gap:8px}.segment{flex:1 1 150px;position:relative;display:flex;flex-direction:column;gap:2px;border:2px solid var(--ligne);border-radius:12px;padding:10px 14px;cursor:pointer;background:#fff;min-height:56px;justify-content:center}.segment input{position:absolute;opacity:0;width:0;height:0}.segment b{font-size:1rem}.segment small{color:#4b6a82;font-size:.78rem}.segment.on{background:var(--couleur-principale);border-color:var(--couleur-principale);color:#fff}.segment.on small{color:#e0f2fe}.segment:focus-within{outline:3px solid #ffb300;outline-offset:2px}.registre-info{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:10px;font-size:.92rem}.registre-info .numero{background:#e0f2fe;border-radius:999px;padding:4px 14px;font-size:1.05rem}.registre-info button{min-height:40px;padding:6px 14px}.diag-outils{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}.diag-plus{background:#fff;color:var(--couleur-principale);border:2px dashed var(--couleur-principale);min-height:44px;padding:8px 16px;border-radius:999px;font-weight:700}.diag-plus[aria-expanded=true]{background:#e0f2fe;border-style:solid}.diag-masques{border:1px dashed var(--ligne);border-radius:12px;padding:10px;margin:8px 0;background:#f7fbff}.diag-masques input[type=search]{width:100%;padding:10px 12px;border:1px solid var(--ligne);border-radius:8px;font-size:1rem;margin-bottom:8px}.chip-grid .chip{max-width:100%;white-space:normal;text-align:left;line-height:1.25}.patients-liste .entete{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:8px}.patients-liste h2{margin:0;font-size:1.15rem}.patients-liste .defil{max-height:60vh;overflow:auto}.patients-liste table{min-width:560px;width:100%}.patients-liste td.actions{white-space:nowrap;text-align:right}.patients-liste td.actions button{min-height:40px;padding:6px 12px;margin-left:6px;font-size:.9rem}.patients-liste tr.attente td{background:#fffaf0}.patients-liste tr.erreur td{background:#fdecea}button.danger{background:#c62828;color:#fff;border:0}button.danger:hover:not(:disabled){background:#a31f1f}button.suppr{background:#fff;color:#c62828;border:2px solid #c62828}button.suppr:hover:not(:disabled){background:#fdecea}.dialogue-fond{position:fixed;top:0;right:0;bottom:0;left:0;background:#0728428c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}.dialogue{background:#fff;border-radius:16px;max-width:460px;width:100%;padding:20px;box-shadow:0 10px 40px #00000059;border-top:6px solid #c62828}.dialogue h2{margin:0 0 10px;font-size:1.2rem;color:#c62828}.dialogue-corps{font-size:1rem;line-height:1.45}.dialogue-corps dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;background:#f3f9fd;border-radius:10px;padding:10px 12px;margin:10px 0;font-size:.95rem}.dialogue-corps dt{color:#4b6a82}.dialogue-corps dd{margin:0;font-weight:600}.dialogue-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.dialogue-actions button{min-height:48px;padding:10px 20px}.bandeau-abo{display:block;width:100%;text-align:left;border:0;border-radius:0;padding:8px 14px;font-size:.85rem;font-weight:500;background:#e0f2fe;color:#075985}.bandeau-abo.warn{background:#fff3e0;color:#8a4b00}.packs-grille{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin:12px 0}.pack-carte{text-align:left;background:#fff;color:inherit;border:2px solid #dcdcdc;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}.pack-carte.choisi{border-color:var(--couleur-principale);box-shadow:0 0 0 2px var(--couleur-principale) inset}.pack-carte small{color:#556;font-weight:400}.pack-etat{font-size:.8rem;font-weight:600}.pack-etat.ok{color:#0369a1}.bascule-duree{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.pack-carte.pack-tout{border-color:#f9a825;background:#fffde7}.pack-carte.pack-tout.choisi{border-color:var(--couleur-principale)}.pack-badge{display:inline-block;align-self:flex-start;background:#f9a825;color:#3e2723;font-size:.78rem;font-weight:700;border-radius:999px;padding:3px 10px}.icone-action{background:none;border:1px solid var(--ligne);border-radius:6px;min-height:0;min-width:36px;padding:4px 8px;font-size:1rem;line-height:1;cursor:pointer;color:inherit}.icone-action:hover,.icone-action:focus-visible{background:#e8f4fc}.icone-action.danger{border-color:var(--bad)}.icone-action.danger:hover,.icone-action.danger:focus-visible{background:#fdecea}.pev-indicateurs{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0}.pev-indicateurs>div{flex:1 1 160px;border:1px solid var(--ligne);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column}.pev-indicateurs b{font-size:1.4rem}.pev-categorie{display:flex;flex-direction:column;gap:2px;border-radius:8px;padding:12px 16px;margin:8px 0;color:#fff;font-size:.95rem}.pev-categorie strong{font-size:1.1rem}.pev-categorie.c1{background:#146c2e;color:#fff}.pev-categorie.c2{background:#ffd43b;color:#1f1f1f}.pev-categorie.c3{background:#d32f2f;color:#fff}.pev-categorie.c4{background:#5c0a0a;color:#fff}.pev-categorie small{font-size:.8rem;font-weight:600;opacity:.95}table.saisie th.reference,table.saisie td.reference{background:#fffbe6;border-left:2px dashed var(--warn);text-align:center;font-style:italic}td.reference .valeur-ref{font-weight:700}td.reference small{display:block;font-size:.65rem;color:#5f6b68;font-style:normal}.pev-indicateurs>.pev-categorie{margin:0;border:0;padding:8px 12px}.pev-indicateurs>.pev-categorie span,.pev-indicateurs>.pev-categorie b,.pev-indicateurs>.pev-categorie small{color:inherit}td.reference .ref-detail{display:grid;grid-template-columns:repeat(2,auto);gap:0 8px;justify-content:center;margin-top:3px;font-size:.62rem;font-style:normal;line-height:1.25;text-align:left}td.reference .ref-detail em{grid-column:1 / -1;text-align:center;color:#5f6b68}td.reference .ref-detail span{white-space:nowrap}.pev-bas{margin-top:14px}.pev-bas-periode{font-size:.9rem;color:#455a64;margin-bottom:8px}.pev-bas-grille{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ligne);border-radius:10px;background:#fff;overflow:hidden}.pev-bas-cellule{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px 8px;text-align:center;min-height:72px}.pev-bas-cellule+.pev-bas-cellule{border-left:1px solid var(--ligne)}.pev-bas-cellule span{font-size:.78rem;color:#455a64;line-height:1.2}.pev-bas-cellule b{font-size:1.3rem;font-variant-numeric:tabular-nums}.pev-badge{font-style:normal;font-size:.85rem;font-weight:700;padding:3px 12px;border-radius:999px;white-space:nowrap}.pev-badge.c1{background:#146c2e;color:#fff}.pev-badge.c2{background:#ffd43b;color:#1f1f1f}.pev-badge.c3{background:#d32f2f;color:#fff}.pev-badge.c4{background:#5c0a0a;color:#fff}.pev-badge.aucune{background:#eceff1;color:#37474f}@media (max-width: 420px){.pev-bas-cellule span{font-size:.7rem}.pev-bas-cellule b{font-size:1.1rem}}.entete-titre{display:flex;flex-direction:column;line-height:1.15;min-width:0}.nom-compte{font-size:.75rem;font-weight:600;opacity:.95;letter-spacing:.02em;text-transform:uppercase;max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-cpn{background:#fdf0f5;border-radius:12px;padding:12px}.module-cpn .carte,.module-cpn table{background:#fff}:root{--ciel: #0ea5e9;--ciel-clair: #e0f2fe;--ciel-tres-clair: #f0f9ff;--ciel-bord: #7dd3fc;--nav-h: 64px;--sidebar-w: 272px}html{-webkit-text-size-adjust:100%}body{background:#fff;color:var(--couleur-texte)}h1{color:var(--couleur-principale);font-size:1.4rem;margin:4px 0 12px}h2{font-size:1.1rem}.app-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#fff}.app-header{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--couleur-principale);color:#fff;border-bottom:3px solid #38bdf8}.entete-titre strong{font-size:1.2rem;letter-spacing:.01em}.entete-droite{margin-left:auto}.app-corps{display:flex;flex:1;min-height:0}.app-colonne{flex:1;min-width:0;display:flex;flex-direction:column}.app-colonne>.app-content{width:100%}.app-nav{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);display:flex;flex-direction:column;gap:4px;padding:14px 10px;background:var(--ciel-tres-clair);border-right:1px solid var(--ligne);position:sticky;top:62px;align-self:flex-start;height:calc(100vh - 62px);height:calc(100dvh - 62px);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:11px 14px;border-radius:12px;border:0;background:transparent;color:var(--couleur-texte);font-size:.95rem;font-weight:500;line-height:1.25;text-align:left}.nav-item:hover{background:var(--ciel-clair)}.nav-item.actif{background:var(--couleur-principale);color:#fff;font-weight:600;box-shadow:0 2px 6px #0369a14d}.nav-icone{flex:none;width:1.6rem;text-align:center;font-size:1.3rem}.nav-court{display:none}.nav-plus{margin-top:auto}.carte{border:1px solid var(--ligne);border-radius:14px;box-shadow:0 1px 3px #0728420f}button,.btn{border-radius:12px;font-weight:600}button.secondaire{border-color:var(--couleur-principale);background:#fff}button.secondaire:hover:not(:disabled){background:var(--ciel-clair)}button:hover:not(:disabled):not(.secondaire):not(.nav-item):not(.danger){filter:brightness(1.07)}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-width:20px;padding:0;accent-color:var(--couleur-principale)}.app-content{padding-top:12px}.aide-info{display:inline-block}.aide-bouton{min-height:0;width:28px;height:28px;padding:0;margin-left:6px;border-radius:50%;border:1px solid #bae6fd;background:var(--ciel-clair);color:var(--couleur-principale);font-size:.9rem;line-height:1;vertical-align:middle}.aide-texte{display:block;margin-top:6px;padding:8px 12px;background:var(--ciel-tres-clair);border:1px solid #bae6fd;border-radius:10px;font-size:.85rem;font-weight:400;color:#2f4b63;text-align:left}.bandeau-dates{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:8px 0;padding:10px 14px;background:var(--ciel-clair);border:1px solid var(--ciel-bord);border-radius:14px}.bandeau-dates .semaine{background:var(--couleur-principale);color:#fff;font-weight:700;border-radius:999px;padding:4px 14px}.bandeau-dates .plage{font-weight:700;color:#075985}.jours-semaine{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:8px 0 4px}.jour-carte{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;background:#fff;border:1px solid var(--ciel-bord);border-radius:10px;text-align:center}.jour-carte .nom{font-size:.72rem;font-weight:700;text-transform:uppercase;color:#075985}.jour-carte .date{font-size:.8rem;color:var(--couleur-texte)}.jour-carte b{font-size:1.15rem}.jour-carte.manquant{background:#fff6e5;border-color:#f0b44c}.jour-carte.manquant .nom,.jour-carte.manquant .date{color:#7a5c00}.mois-calcul{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0}.mois-calcul .titre{font-weight:700;margin-right:4px}.puce-mois{padding:6px 14px;background:var(--ciel-clair);border:1px solid var(--ciel-bord);border-radius:999px;color:#075985;font-weight:700;text-transform:capitalize}.outils-commande{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:10px 0}.interrupteur{display:inline-flex;align-items:center;gap:10px;margin:0;min-height:44px;font-weight:500;cursor:pointer}.grille-cartes.accueil-cartes{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.carte-action{border-radius:16px}.carte-action .icone{font-size:1.6rem}.carte-action:hover:not(:disabled){border-color:var(--couleur-principale);background:var(--ciel-tres-clair)}@media (max-width: 899px){.app-corps{flex-direction:column}.app-nav{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:auto;flex:none;flex-direction:row;gap:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom));background:#fff;border-right:0;border-top:1px solid var(--ligne);box-shadow:0 -2px 10px #0728421f;z-index:40;overflow:visible}.nav-item{flex:1 1 0;min-width:0;flex-direction:column;justify-content:center;gap:2px;min-height:52px;padding:6px 0;border-radius:10px;font-size:.62rem;text-align:center}.nav-item.actif{background:var(--ciel-clair);color:var(--couleur-principale);font-weight:600;box-shadow:inset 0 3px 0 var(--ciel)}.nav-long{display:none}.nav-court{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-icone{width:auto;font-size:1.25rem}.nav-plus{margin-top:0}.app-content{padding-bottom:calc(var(--nav-h) + 28px + env(safe-area-inset-bottom))}.barre-actions{bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));z-index:20}.entete-titre strong{font-size:1.1rem}.barre-actions button{min-height:40px;padding:8px 12px;font-size:.9rem}.jour-carte b{font-size:1rem}}@media (max-width: 380px){.nav-item{font-size:.6rem}.bouton-sortie{padding:6px 8px}}:root{--couleur-principale: #0a5ea8;--marine: #0b2a4a;--jaune: #ffd23f;--ligne: #b9c9d8;--ciel-clair: #dbe7f2;--ciel-tres-clair: #eef2f6;--ciel-bord: #9fb8cd;--fond-app: #eef2f6}body,.app-shell{background:var(--fond-app)}h1{color:var(--marine)}.icone-svg{flex:none;vertical-align:-.2em}.app-header{background:var(--marine);border-bottom:4px solid var(--jaune)}.bouton-sortie{border:2px solid #fff;border-radius:8px;min-height:40px}.chip-periode{display:inline-flex;align-items:center;gap:6px;background:#ffffff29;border:1px solid rgba(255,255,255,.5);font-weight:600}.app-nav{background:var(--marine);border-right:0}.nav-item{color:#d8e6f3;border-radius:10px}.nav-item:hover{background:#ffffff1f}.nav-item.actif{background:var(--jaune);color:var(--marine);font-weight:700;box-shadow:none}.nav-icone{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;font-size:1.1rem}.nav-item:focus-visible{outline:3px solid var(--jaune);outline-offset:1px}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--marine);outline-offset:2px}.app-nav .nav-item.actif:focus-visible{outline-color:#fff}button,.btn{border-radius:10px}button.secondaire{border-width:2px}.carte,.registre-selecteur,.defil,.pack-carte{border-width:2px;border-color:var(--ligne);border-radius:10px}.carte{box-shadow:none}.onglet{border-radius:8px;display:inline-flex;align-items:center;gap:6px;font-weight:600;min-height:44px}.onglet:focus-visible{outline:3px solid var(--marine)}.segment,.radio,.chip{border-width:2px}.carte-action{--tc: #1565c0;border:2px solid var(--ligne);border-left:8px solid var(--tc);border-radius:10px}.carte-action:hover:not(:disabled){border-color:var(--tc);background:#fff}.carte-action.principale{border:2px solid var(--ligne);border-left:8px solid var(--tc)}.carte-action .icone{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--tc);color:#fff;font-size:1rem}.carte-action.c1{--tc: #1565c0}.carte-action.c2{--tc: #c24a00}.carte-action.c3{--tc: #0a6e8a}.carte-action.c4{--tc: #5d3fb0}.carte-action.c5{--tc: #b4237a}.carte-action.c6{--tc: #2e5f8a}.icone-maj{border-color:var(--marine);color:var(--marine)}.avancement .etapes li{border:1px solid var(--ligne);background:#fff}.avancement .etapes li.fait{background:#d6f0e0;color:#0b5a2a;border-color:#7bc496}.pastille.ok,.badge-sync.synced{background:#d6f0e0;color:#0b5a2a}@media (max-width: 899px){.app-nav{background:#fff;border-top:3px solid var(--marine)}.nav-item{color:var(--marine)}.nav-item:hover{background:var(--ciel-clair)}.nav-item.actif{background:var(--marine);color:#fff;box-shadow:none}.nav-item:focus-visible{outline-color:var(--marine)}.nav-icone{width:auto}}.vocal-ouvrir{width:100%;margin:0 0 12px;min-height:56px;font-size:1.15rem;font-weight:600}.vocal{margin-bottom:16px}.vocal-statut{display:block;padding:12px 14px;border-radius:10px;font-weight:700;font-size:1.05rem;margin:10px 0;border:2px solid var(--ligne);background:#f5f9fc}.vocal-statut.ecoute{border-color:var(--ok);background:#e0f2fe;color:#075985}.vocal-statut.reco{border-color:var(--warn);background:#fff6e5;color:#7a5c00}.vocal-statut.pause{border-color:var(--warn);background:#fff3cd;color:#7a5c00}.vocal-statut.recap{border-color:var(--couleur-principale);background:#e0f2fe}.vocal-entendu{margin:0 0 8px;font-style:italic;color:#2f4b63}.vocal-progression{background:#f5f9fc;border:1px solid var(--ligne);border-radius:10px;padding:10px 12px;margin:8px 0}.vocal-progression progress{width:100%;height:14px}.vocal-attendu{font-size:1.2rem;margin-top:8px}.vocal-boutons{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}.vocal-gros{min-height:60px;font-size:1.1rem;padding:10px 12px}.vocal-valider{background:#0b7a4b}.vocal-clavier .ligne-actions{display:flex;gap:8px;align-items:stretch}.vocal-clavier .ligne-actions input{flex:1 1 auto}.vocal-titre-tableau{margin:14px 0 6px;font-size:1.05rem}.vocal-tableau{border-collapse:collapse;width:100%;min-width:760px;font-size:.92rem}.vocal-tableau th{background:var(--couleur-principale);color:#fff;padding:6px;text-align:left}.vocal-tableau td{border-top:1px solid var(--ligne);padding:6px;vertical-align:top}.vocal-tableau tr.vocal-courant{outline:3px solid var(--couleur-principale);outline-offset:-3px;background:#eaf6fd}.vocal-tableau tr.vocal-erreur{background:#fdecea}.vocal-tableau code{font-size:.8rem;color:#4b6a82}.vocal-msg{display:block;margin-top:3px}.vocal-bad{color:var(--bad)}.vocal-modifier input{padding:8px;font-size:.95rem;min-width:130px}.vocal-mini-boutons{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.vocal-mini-boutons button{min-height:40px;padding:6px 10px;font-size:.9rem}.vocal-config,.vocal-aide{margin:8px 0}.vocal-ordre{padding-left:20px}.vocal-ordre li{display:flex;gap:8px;align-items:center;margin:4px 0}.vocal-ordre li span{flex:1}.vocal-ordre button{min-height:40px;padding:4px 12px}.vocal-compteurs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0}.vocal-compteurs div{background:#f5f9fc;border:1px solid var(--ligne);border-radius:10px;padding:8px 10px}.vocal-compteurs dt{font-size:.8rem;color:#4b6a82}.vocal-compteurs dd{margin:0;font-size:1.4rem;font-weight:700}.vocal-recap-ligne{border:1px solid var(--ligne);border-radius:10px;padding:8px 10px;margin:8px 0}.vocal-recap-ligne>summary{cursor:pointer;font-weight:600;min-height:40px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vocal-confirmation{margin-top:18px;padding-top:14px;border-top:3px solid var(--ligne)}.vocal-confirmer{width:100%;min-height:68px;font-size:1.2rem;font-weight:700;background:#0b7a4b}@media (max-width: 640px){.vocal-tableau{min-width:0}.vocal-tableau thead{display:none}.vocal-tableau tr{display:block;border:1px solid var(--ligne);border-radius:10px;margin:8px 0}.vocal-tableau td{display:block;border-top:0;padding:4px 10px}.vocal-tableau td:before{content:attr(data-l) " : ";font-weight:600;color:#4b6a82}.vocal-boutons{grid-template-columns:1fr 1fr}}
