:root{--primary:#0f2a47;--primary-light:#1c4a75;--accent:#1f8a70;--accent-dark:#186e59;--bg:#fff;--bg-alt:#f4f6f8;--text:#1a1f24;--text-muted:#5b6773;--border:#e2e6ea;--danger:#b42318;--danger-bg:#fdecea;--succes-bg:#e7f5f0;--orange:#b54708;--orange-bg:#fef0e6;--rayon:10px}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);background:var(--bg-alt);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}h1{color:var(--primary);margin-bottom:16px;font-size:1.6rem}h2{color:var(--primary);margin-bottom:12px;font-size:1.15rem}a{color:var(--primary-light)}code{font-family:ui-monospace,Consolas,monospace}.conteneur{max-width:1100px;margin:0 auto;padding:0 16px}.contenu{padding-top:24px;padding-bottom:48px}.entete{background:var(--bg);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.entete-contenu{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px;display:flex}.logo img{height:32px;display:block}.entete nav{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.entete nav a{color:var(--text-muted);font-weight:500;text-decoration:none}.entete nav a:hover,.entete nav a.active{color:var(--primary)}.entete nav a.active{font-weight:700}.carte{background:var(--bg);border:1px solid var(--border);border-radius:var(--rayon);margin-bottom:20px;padding:20px}.grille-modules{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.module{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:block}.module:hover:not(.inactif){border-color:var(--accent);box-shadow:0 4px 14px #0f2a4714}.module p{color:var(--text-muted)}.module.inactif{opacity:.7}.plein-ecran{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-light) 100%);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.carte-connexion{width:100%;max-width:440px;margin:0;padding:28px}.logo-connexion{height:40px;margin:0 auto 24px;display:block}.carte-connexion h1{text-align:center;font-size:1.3rem}.etapes{color:var(--text-muted);margin:0 0 12px 20px}.etapes li{margin-bottom:4px}.qr{border:1px solid var(--border);border-radius:8px;margin:8px auto 12px;display:block}.secret{background:var(--bg-alt);word-break:break-all;border-radius:6px;margin-top:6px;padding:8px;display:block}.champ-code{letter-spacing:.4em;text-align:center;font-size:1.6rem}label{margin-bottom:14px;font-weight:500;display:block}input,select{width:100%;font:inherit;color:inherit;border:1px solid var(--border);background:var(--bg);border-radius:8px;margin-top:4px;padding:10px 12px;display:block}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}label.case{color:var(--text-muted);align-items:flex-start;gap:10px;font-weight:400;display:flex}label.case input{width:auto;margin-top:4px}.formulaire-etroit{max-width:420px}.grille-formulaire{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:end;gap:0 16px;display:grid}.grille-formulaire>div{margin-bottom:14px}.ligne{align-items:center;gap:8px;display:flex}.ligne input,.ligne select{margin-top:0}td select{min-width:140px;margin:0;padding:6px 8px}.bouton{min-height:44px;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--primary);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:8px 16px;font-weight:600;display:inline-flex}.bouton:hover{border-color:var(--primary-light)}.bouton.principal{background:var(--accent);border-color:var(--accent);color:#fff}.bouton.principal:hover{background:var(--accent-dark)}.bouton.danger{color:var(--danger)}.bouton.danger:hover{border-color:var(--danger)}.bouton.large{width:100%;margin-top:4px}.bouton.petit{min-height:34px;padding:4px 10px;font-size:.88rem}.bouton:disabled{opacity:.6;cursor:default}.lien{font:inherit;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0}.carte-connexion .lien{margin:14px auto 0;text-decoration:underline;display:block}.actions{flex-wrap:wrap;gap:6px;display:flex}.alerte,.succes{border-radius:8px;margin-top:12px;padding:10px 12px}.alerte{background:var(--danger-bg);color:var(--danger)}.succes{background:var(--succes-bg);color:var(--accent-dark)}.discret{color:var(--text-muted);margin-bottom:12px;font-size:.92rem}details.discret summary{cursor:pointer}.badge{background:var(--bg-alt);color:var(--text-muted);vertical-align:middle;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-block}.badge.vert{background:var(--succes-bg);color:var(--accent-dark)}.badge.rouge{background:var(--danger-bg);color:var(--danger)}.badge.orange{background:var(--orange-bg);color:var(--orange)}.tableau-defilant{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}th{text-align:left;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap;padding:8px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px}td.centre,.matrice th:not(:first-child){text-align:center}.matrice input{width:18px;height:18px;margin:0 auto}tr.estompe td{color:var(--text-muted)}tr.ligne-alerte td{background:#fff8f7}.onglets{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.onglets a{color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 14px;font-weight:500;text-decoration:none}.onglets a.active{color:var(--primary);border-bottom-color:var(--accent)}.codes-secours ul{grid-template-columns:1fr 1fr;gap:6px;margin:12px 0;list-style:none;display:grid}.codes-secours code{text-align:center;background:var(--bg-alt);border-radius:6px;padding:6px;font-size:1rem;display:block}.codes-secours .actions{margin-bottom:12px}@media (width<=640px){h1{font-size:1.35rem}.entete nav{gap:14px;font-size:.95rem}.carte{padding:16px}}@media print{.entete,.actions,.bouton,.lien{display:none!important}.plein-ecran{background:0 0}}h3{color:var(--primary-light);margin:18px 0 8px;font-size:1rem}.titre-actions{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.titre-actions h1{margin-bottom:8px}.filtres{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.filtres input{flex:260px;margin:0}.filtres select{flex:0 200px;margin:0}textarea{width:100%;font:inherit;color:inherit;border:1px solid var(--border);background:var(--bg);resize:vertical;border-radius:8px;margin-top:4px;padding:10px 12px;display:block}textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}input[readonly],textarea[readonly]{background:var(--bg-alt)}.grille-formulaire.compacte{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.editeur{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;display:grid}.editeur-synthese{position:sticky;top:80px}@media (width<=980px){.editeur{grid-template-columns:1fr}.editeur-synthese{order:-1;position:static}}.synthese dl{grid-template-columns:auto 1fr;gap:4px 12px;margin-bottom:10px;display:grid}.synthese dt{color:var(--text-muted)}.synthese dd{text-align:right}.synthese dd.fort{color:var(--primary);font-size:1.3rem;font-weight:700}.ouvrage-entete{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.ouvrage-entete .titre-ouvrage{color:var(--primary);flex:260px;margin:0;font-size:1.1rem;font-weight:700}.bascule{border:1px solid var(--border);border-radius:8px;margin-bottom:6px;display:inline-flex;overflow:hidden}.bascule label{cursor:pointer;color:var(--text-muted);align-items:center;gap:6px;margin:0;padding:8px 14px;font-weight:500;display:flex}.bascule label input{width:auto;margin:0}.bascule label.actif{background:var(--succes-bg);color:var(--accent-dark)}table.lignes td{padding:4px 6px}table.lignes input,table.lignes select{margin:0;padding:6px 8px}td.nombre,th.nombre{text-align:right;white-space:nowrap}.champ-nombre{text-align:right;width:80px!important;display:inline-block!important}td.nombre select{width:auto;margin-left:4px;display:inline-block}.unite{color:var(--text-muted);font-size:.85rem}input.court{width:90px}input.note{margin-top:4px;font-size:.85rem}.badge.petit{margin-left:6px;font-size:.7rem}.statut-ratio-a_renseigner{background:var(--orange-bg);color:var(--orange)}.statut-ratio-donnee_julien{color:var(--primary-light);background:#e8eef7}.statut-ratio-valide,.badge.statut-accepte{background:var(--succes-bg);color:var(--accent-dark)}.badge.statut-refuse{background:var(--danger-bg);color:var(--danger)}.badge.statut-envoye{color:var(--primary-light);background:#e8eef7}.lien.souligne{color:var(--primary-light);font-size:.88rem;text-decoration:underline}.ligne.ajout{flex-wrap:wrap;margin-top:10px}.ligne.ajout select,.ligne.ajout input{flex:240px}.ajout-ouvrage{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.comparaison{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0;display:grid}.comparaison>div{border:1px solid var(--border);border-radius:8px;flex-direction:column;padding:10px 12px;display:flex}.comparaison span{color:var(--text-muted);font-size:.85rem}.comparaison strong{color:var(--primary);font-size:1.1rem}.comparaison small{color:var(--text-muted)}.comparaison .retenu{border-color:var(--accent);background:var(--succes-bg)}.notes-ouvrage{margin-top:12px}.kits{border-left:3px solid var(--border);padding:8px 0 8px 12px}.kits .ligne{margin-bottom:6px}table.compact td,table.compact th{padding:5px 8px}.onglets button{font:inherit;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px;font-weight:500}.onglets button.active{color:var(--primary);border-bottom-color:var(--accent)}.recap{max-width:900px}.recap section{background:var(--bg);border:1px solid var(--border);border-radius:var(--rayon);margin-bottom:16px;padding:18px 20px}.recap-entete{align-items:center;gap:20px;margin-bottom:16px;display:flex}.recap-entete img{height:44px}.recap-entete h1{margin-bottom:4px}.detail-lignes{color:var(--text-muted);margin:4px 0 0 18px;font-size:.85rem}.texte-libre{white-space:pre-wrap}@media print{body{background:#fff}.pas-impression,.entete{display:none!important}.contenu{padding:0}.recap section{break-inside:avoid;border:none;margin-bottom:14px;padding:0}.recap{max-width:none;font-size:11pt}}.grille-formulaire .champ-nombre{text-align:left;width:100%!important;display:block!important}table.lignes td:first-child{min-width:280px}table.lignes td:first-child input{min-width:260px}table.lignes select{width:auto;display:inline-block}td.nombre select{padding:6px 4px}.synthese dl{grid-template-columns:1fr;gap:0}.synthese dt{font-size:.85rem}.synthese dd{text-align:left;margin-bottom:8px;font-weight:600}.editeur>*,.editeur-principal>*{min-width:0}table.lignes td.nombre select{width:70px}.lien.danger{color:var(--danger)}.pieces-jointes input[type=file]{display:none}.versions{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.versions a.badge{text-decoration:none}.versions a.badge:hover{background:var(--border)}.galerie{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px;list-style:none;display:grid}.galerie li{flex-direction:column;gap:4px;display:flex}.galerie input{margin:0;font-size:.88rem}.galerie .lien{align-self:flex-start;font-size:.85rem}.vignette{aspect-ratio:4/3;border:1px solid var(--border);background:var(--bg-alt);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;display:flex;overflow:hidden}.vignette img{object-fit:cover;width:100%;height:100%}.fichier-pdf{color:var(--danger);letter-spacing:.05em;font-weight:700}.metres table input{margin:0}.ajout-metre{grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr) auto;gap:8px;margin-top:10px;display:grid}.ajout-metre input{margin:0}.liste-choix{list-style:none}.liste-choix li{border-bottom:1px solid var(--border)}.liste-choix a{color:inherit;padding:12px 4px;text-decoration:none;display:block}.liste-choix a:hover{background:var(--bg-alt)}@media (width<=640px){.visite .bouton,.pieces-jointes .bouton{flex:auto;padding:14px 18px;font-size:1rem}.ajout-metre{grid-template-columns:1fr 1fr}.ajout-metre input:first-child,.ajout-metre .bouton{grid-column:1/-1}.metres th:nth-child(4),.metres td:nth-child(4){display:none}.galerie{grid-template-columns:1fr 1fr}.metres table{font-size:.88rem}}@media print{.pieces-jointes .actions,.ajout-metre{display:none}}.retour-ouvrage.estompe{opacity:.6}.ecart-plus,.ecart-fort{color:var(--danger);font-weight:600}.ecart-moins{color:var(--accent-dark);font-weight:600}.petit{font-size:.82rem}.valider-ratio{align-items:center;gap:8px;display:flex}.valider-ratio input{width:90px;margin:0}.detail-echantillons td{background:var(--bg-alt)}.detail-echantillons ul{margin:0 0 0 18px}
