/**
 * Feuille de style — Registre de vérification spéciale (CNIR)
 *
 * Extrait tel quel de la balise <style> du fichier maquette original.
 * Aucune valeur (couleur, taille, espacement) n'a été modifiée.
 */
  :root{
    --ink:#0F2F3C;
    --ink-soft:#3E6270;
    --paper:#F6F5F0;
    --paper-raised:#FFFFFF;
    --sea:#149A8C;
    --sea-dark:#0E7268;
    --sea-light:#D9F2EE;
    --blue:#2452A0;
    --blue-light:#DDE7F7;
    --orange:#E8890E;
    --orange-light:#FCE6C2;
    --line:#DDE1DA;
    --green:#12A24E;
    --green-bg:#CCF2DC;
    --amber:#E8890E;
    --amber-bg:#FCE6C2;
    --red:#E23B34;
    --red-bg:#FAD2CE;
    --grey:#6E7B82;
    --grey-bg:#DEE2E1;
    --purple:#8E3FBF;
    --purple-light:#EFDEF7;
    --gold:#C79A1E;
    --gold-light:#F6ECC8;
    --copper:#A85D2E;
    --copper-light:#F0DECB;
    --radius:14px;
    --radius-sm:9px;
    --shadow:0 1px 2px rgba(15,47,60,.05), 0 8px 24px rgba(15,47,60,.08);
    --shadow-sm:0 1px 2px rgba(15,47,60,.05), 0 2px 6px rgba(15,47,60,.06);
    --ease:180ms cubic-bezier(.2,.7,.3,1);
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:#E4E7E1;
    font-family:'Inter',system-ui,sans-serif;
    color:var(--ink);
    min-height:100vh;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:20px 10px 60px;
  }
  @media (prefers-reduced-motion: reduce){ *{transition:none!important; animation:none!important;} }

  .toolbar{
    width:100%;
    max-width:980px;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    justify-content:space-between;
    margin-bottom:14px;
    padding:10px 14px;
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:var(--radius);
    font-size:13px;
  }
  .toolbar .label{color:var(--grey); font-weight:600; letter-spacing:.02em; text-transform:uppercase; font-size:11px;}
  .toolbar select, .toolbar button{
    font-family:'Inter',sans-serif; font-size:13px; padding:6px 10px; border-radius:7px;
    border:1px solid var(--line); background:var(--paper); color:var(--ink); cursor:pointer;
  }
  .toolbar button.active{background:var(--sea); color:#fff; border-color:var(--sea-dark);}
  .toolbar-group{display:flex; align-items:center; gap:8px;}
  .disclaimer{
    width:100%; max-width:980px; font-size:12px; color:var(--ink-soft);
    background:var(--amber-bg); border:1px solid #E3C79A; border-radius:8px;
    padding:8px 12px; margin-bottom:16px; line-height:1.5;
  }
  .disclaimer b{color:var(--amber);}

  .phone{
    width:100%;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:22px;
    box-shadow:var(--shadow);
    overflow:hidden;
    display:flex;
    flex-direction:column;
    transition:max-width .25s ease;
  }
  .phone.w360{max-width:360px;}
  .phone.w420{max-width:420px;}
  .phone.wfull{max-width:820px;}

  @media (max-width:480px){
    body{ padding:8px 6px; }
    .toolbar .toolbar-group:nth-child(2), .toolbar .toolbar-group:nth-child(3){ display:none; } /* réglages d'aperçu desktop uniquement, on garde le sélecteur de compte */
    .disclaimer{ display:none; }
    .toolbar{ padding:8px 10px; }
    .phone, .phone.w360, .phone.w420, .phone.wfull{
      max-width:100%; width:100%; border-radius:0; border:none; box-shadow:none;
      overflow:visible; /* ne jamais rogner le contenu réel sur un vrai téléphone */
    }
    main.screen{ padding:14px 10px 24px; overflow-x:hidden; }
  }

  header.app-header{
    background:linear-gradient(165deg, #143C4A 0%, var(--ink) 55%, #0A2027 100%);
    color:#F6F4EC;
    padding:16px 18px 16px;
    position:relative;
  }
  header.app-header .brand{
    font-family:'Oswald',sans-serif; font-weight:600; font-size:16px;
    letter-spacing:.05em; text-transform:uppercase; display:flex; align-items:center; gap:12px;
  }
  .brand-logo{
    width:42px; height:42px; border-radius:10px; background:#fff; padding:2px;
    box-shadow:0 2px 6px rgba(0,0,0,.25); flex-shrink:0; object-fit:contain;
  }
  .burgee{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid var(--orange);display:inline-block;}
  header.app-header .who{margin-top:8px; font-size:12.5px; color:#AFC4C6; display:flex; justify-content:space-between; align-items:center; gap:8px;}
  header.app-header .who b{color:#fff; font-weight:600;}
  .notif-bell{
    position:relative; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); border-radius:8px;
    padding:6px; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; margin-left:auto;
    z-index:27;
  }
  .notif-badge{
    position:absolute; top:-6px; right:-6px; background:var(--red); color:#fff; font-size:10px; font-weight:700;
    border-radius:10px; min-width:16px; height:16px; display:flex; align-items:center; justify-content:center; padding:0 3px;
    box-shadow:0 0 0 2px var(--ink);
  }
  .notif-backdrop{
    display:none; position:fixed; inset:0; background:rgba(20,26,30,.35); z-index:24;
  }
  .notif-backdrop.open{display:block;}
  .notif-panel{
    display:none; position:fixed; top:64px; right:16px; width:300px; max-width:calc(100vw - 32px); max-height:360px; overflow-y:auto;
    background:var(--paper-raised); border:1px solid var(--line); border-radius:12px; padding:12px 14px;
    box-shadow:var(--shadow); z-index:26;
  }
  .notif-panel.open{display:block;}
  .notif-panel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:8px;}
  .notif-panel-head h4{margin:0; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft);}
  .notif-close{
    background:none; border:none; cursor:pointer; color:var(--ink-soft); font-size:16px; line-height:1;
    padding:6px; margin:-6px; border-radius:6px;
  }
  .notif-close:hover{background:var(--paper);}
  .notif-line{padding:8px 0; border-bottom:1px solid var(--line); font-size:12.5px; line-height:1.4;}
  .notif-line:last-child{border-bottom:none;}
  .notif-line .t{color:var(--grey); font-size:10.5px; margin-top:2px;}
  .role-pill{
    font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; font-weight:700;
    background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);
    border-radius:20px; padding:4px 10px; white-space:nowrap;
  }

  main.screen{
    flex:1; overflow-y:auto; padding:18px 16px 28px; min-height:420px;
  }
  h1.page-title{font-family:'Oswald',sans-serif; font-size:21px; font-weight:600; margin:0 0 4px; letter-spacing:.01em;}
  p.page-sub{margin:0 0 18px; color:var(--ink-soft); font-size:13px; line-height:1.5;}

  .card{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius);
    padding:16px; margin-bottom:14px; box-shadow:var(--shadow-sm); transition:box-shadow var(--ease), transform var(--ease);
  }
  .card h3{margin:0 0 10px; font-size:14.5px; font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:.005em;}
  .row{display:flex; justify-content:space-between; align-items:center; gap:10px;}
  .muted{color:var(--grey); font-size:12.5px;}
  .mono{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft);}

  .flag{width:0;height:0;display:inline-block; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:8px solid; margin-right:6px; vertical-align:middle;}
  .badge{
    display:inline-flex; align-items:center; font-size:11.5px; font-weight:700;
    padding:4px 10px 4px 7px; border-radius:20px; letter-spacing:.01em; box-shadow:0 1px 3px rgba(0,0,0,.12);
  }
  .badge.green{background:var(--green); color:#fff;} .badge.green .flag{border-left-color:#fff;}
  .badge.amber{background:var(--amber); color:#fff;} .badge.amber .flag{border-left-color:#fff;}
  .badge.orange{background:var(--orange); color:#fff;} .badge.orange .flag{border-left-color:#fff;}
  .badge.red{background:var(--red); color:#fff;} .badge.red .flag{border-left-color:#fff;}
  .badge.grey{background:var(--grey); color:#fff;} .badge.grey .flag{border-left-color:#fff;}
  .badge.sea{background:var(--blue); color:#fff;} .badge.sea .flag{border-left-color:#fff;}
  .badge.purple{background:var(--purple); color:#fff;} .badge.purple .flag{border-left-color:#fff;}
  .badge.gold{background:var(--gold); color:#fff;} .badge.gold .flag{border-left-color:#fff;}
  .badge.copper{background:var(--copper); color:#fff;} .badge.copper .flag{border-left-color:#fff;}
  .badge.teal{background:var(--sea); color:#fff;} .badge.teal .flag{border-left-color:#fff;}

  .btn{
    font-family:'Inter',sans-serif; font-weight:600; font-size:13.5px; border-radius:var(--radius-sm);
    padding:12px 16px; border:1px solid transparent; cursor:pointer; text-align:center;
    transition:transform var(--ease), background var(--ease), border-color var(--ease), box-shadow var(--ease);
  }
  .btn:active{transform:scale(.97);}
  .btn:focus-visible, select:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:2.5px solid var(--sea); outline-offset:2px;
  }
  .btn-primary{background:var(--sea); color:#fff; box-shadow:0 2px 8px rgba(14,110,122,.28);}
  .btn-primary:hover{background:var(--sea-dark);}
  .btn-outline{background:transparent; border-color:var(--line); color:var(--ink);}
  .btn-outline:hover{border-color:var(--sea); background:var(--sea-light);}
  .btn-danger{background:var(--red); color:#fff;}
  .btn-block{display:block; width:100%; margin-top:10px;}
  .btn[disabled]{opacity:.45; cursor:not-allowed;}
  .btn[disabled]:active{transform:none;}
  .btn-sm{padding:8px 12px; font-size:12.5px; border-radius:8px;}

  .fam-badge{
    display:inline-flex; align-items:center; justify-content:center; border-radius:10px; flex-shrink:0;
  }
  .list-item{
    display:flex; justify-content:space-between; align-items:center; gap:10px;
    padding:13px 10px; margin:0 -6px; border-radius:10px; border-bottom:1px solid var(--line); cursor:pointer;
    transition:background var(--ease), border-color var(--ease);
  }
  .list-item .info{flex:1; min-width:0; display:flex; align-items:center; gap:11px;}
  .list-item:last-child{border-bottom:none;}
  .list-item:hover{background:var(--sea-light); border-radius:10px;}
  .list-item:active{background:#CDEBE6;}
  .list-item .name{font-weight:600; font-size:13.5px;}
  .list-item .meta{font-size:11.5px; color:var(--grey); margin-top:2px;}

  .progress-track{background:var(--grey-bg); border-radius:20px; height:10px; overflow:hidden;}
  .progress-fill{background:var(--sea); height:100%; border-radius:20px; transition:width .3s ease;}
  .search-input{position:relative; margin-bottom:12px;}
  .search-input input.field{padding-left:34px;}
  .search-input svg{position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--grey); pointer-events:none;}

  .toggle-group{display:flex; gap:7px; flex-wrap:wrap; margin-top:9px;}
  .toggle{
    flex:1; min-width:70px; text-align:center; font-size:12px; font-weight:600; padding:9px 6px;
    border:1.5px solid var(--line); border-radius:var(--radius-sm); cursor:pointer; background:var(--paper-raised);
    transition:transform var(--ease), background var(--ease), border-color var(--ease);
  }
  .toggle:active{transform:scale(.96);}
  .toggle.sel-CONFORME.selected{background:var(--green-bg); border-color:var(--green); color:var(--green);}
  .toggle.sel-SURVEILLANCE.selected{background:var(--amber-bg); border-color:var(--amber); color:var(--amber);}
  .toggle.sel-ANOMALIE.selected{background:var(--red-bg); border-color:var(--red); color:var(--red);}
  .toggle.sel-NA.selected{background:var(--grey-bg); border-color:var(--grey); color:var(--grey);}

  textarea, select.field, input.field{
    width:100%; font-family:'Inter',sans-serif; font-size:13px; padding:10px 11px;
    border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--paper-raised); color:var(--ink);
    transition:border-color var(--ease);
  }
  label.field-label{font-size:11.5px; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em; display:block; margin:10px 0 4px;}

  .empty{
    text-align:center; padding:34px 10px; color:var(--grey);
  }
  .empty .flag{border-left-color:var(--grey);}

  nav.bottom-nav{
    display:flex; gap:3px; border-bottom:1px solid var(--line); background:var(--paper-raised);
    padding:8px 8px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none;
  }
  nav.bottom-nav::-webkit-scrollbar{display:none;}
  nav.bottom-nav button{
    flex:0 0 auto; min-width:82px; background:color-mix(in srgb, var(--tab-color, var(--grey)) 14%, transparent);
    border:1px solid color-mix(in srgb, var(--tab-color, var(--grey)) 28%, transparent); padding:9px 11px; font-family:'Inter'; font-size:13px;
    font-weight:700; color:var(--tab-color, var(--grey)); cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:6px;
    border-radius:var(--radius-sm); transition:background var(--ease), color var(--ease); opacity:1;
  }
  nav.bottom-nav button svg{transition:transform var(--ease); width:24px; height:24px; stroke-width:2;}
  nav.bottom-nav button.active{background:var(--tab-color, var(--sea)); border-color:var(--tab-color, var(--sea)); color:#fff; opacity:1; box-shadow:0 2px 6px rgba(0,0,0,.15);}
  nav.bottom-nav button.active svg{transform:scale(1.1);}
  nav.bottom-nav button{position:relative;}
  nav.bottom-nav button.nav-blink{animation:navBlink 1.1s ease-in-out infinite;}
  @keyframes navBlink{
    0%, 100% { background:transparent; border-color:var(--line); }
    50% { background:var(--red); border-color:var(--red); }
  }
  nav.bottom-nav button.nav-blink:not(.active) svg,
  nav.bottom-nav button.nav-blink:not(.active) span{ animation:navBlinkText 1.1s ease-in-out infinite; }
  @keyframes navBlinkText{
    0%, 100% { color:inherit; }
    50% { color:#fff; }
  }
  .nav-freq-badge{
    position:absolute; top:2px; right:6px; width:14px; height:14px; border-radius:50%;
    background:var(--paper-raised); border:1px solid currentColor; color:inherit;
    font-size:8.5px; font-weight:700; display:flex; align-items:center; justify-content:center; line-height:1;
  }
  nav.bottom-nav button:hover{opacity:1;}
  nav.bottom-nav button:active{transform:scale(.95);}

  .audit-toggle{
    position:fixed; right:16px; bottom:16px; background:var(--ink); color:#fff; border:none;
    border-radius:22px; padding:9px 14px; font-size:12px; font-weight:600; cursor:pointer; box-shadow:var(--shadow); z-index:20;
  }
  .audit-panel{
    position:fixed; right:16px; bottom:60px; width:300px; max-height:340px; overflow-y:auto;
    background:var(--ink); color:#DCE6EA; border-radius:12px; padding:12px 14px; font-size:11.5px;
    box-shadow:var(--shadow); z-index:20; display:none; font-family:'JetBrains Mono',monospace; line-height:1.6;
  }
  .audit-panel.open{display:block;}
  .audit-panel h4{margin:0 0 8px; color:#fff; font-family:'Inter'; font-size:12px; text-transform:uppercase; letter-spacing:.04em;}
  .audit-line{border-bottom:1px solid rgba(255,255,255,.08); padding:5px 0;}
  .audit-line b{color:#8FD1D9;}

  .toast{
    position:fixed; top:14px; left:50%; transform:translateX(-50%);
    background:var(--ink); color:#fff; padding:10px 18px; border-radius:30px; font-size:13px; font-weight:600;
    box-shadow:var(--shadow); z-index:30; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
  }
  .toast.show{opacity:1; transform:translateX(-50%) translateY(6px);}

  .confirm-overlay{
    position:fixed; inset:0; background:rgba(11,34,51,.55); z-index:40;
    display:none; align-items:center; justify-content:center; padding:20px;
  }
  .confirm-overlay.show{display:flex;}
  .confirm-modal{
    background:var(--paper-raised); border-radius:var(--radius); padding:20px;
    max-width:340px; width:100%; box-shadow:var(--shadow);
  }
  .confirm-modal p{font-size:14px; line-height:1.5; margin:0; color:var(--ink);}

  .fiche-overlay{
    position:fixed; inset:0; background:rgba(11,34,51,.55); z-index:45;
    display:none; align-items:flex-start; justify-content:center; padding:24px 16px; overflow-y:auto;
  }
  .fiche-overlay.show{display:flex;}
  .fiche-modal{
    background:var(--paper); border-radius:var(--radius); box-shadow:var(--shadow);
    max-width:420px; width:100%; margin-top:20px; overflow:hidden;
  }
  .fiche-modal-head{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:12px 16px; background:var(--sea); position:sticky; top:0; z-index:1;
  }
  .fiche-modal-title{color:#fff; font-weight:600; font-size:13px; text-transform:uppercase; letter-spacing:.03em;}
  .fiche-modal-close{
    background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.3); color:#fff;
    border-radius:8px; padding:6px 12px; font-size:12.5px; font-weight:600; cursor:pointer;
  }
  .fiche-modal-close:hover{background:rgba(255,255,255,.3);}
  #ficheModalBody{padding:16px; max-height:80vh; overflow-y:auto;}

  .kpi-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .kpi{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius); padding:12px; text-align:left;}
  .kpi .n{font-family:'Oswald',sans-serif; font-size:22px; font-weight:600;}
  .kpi .l{font-size:11px; color:var(--grey); text-transform:uppercase; letter-spacing:.03em;}

  .status-hero{
    border-radius:var(--radius); padding:18px; margin-bottom:14px; color:#fff;
  }
  .status-hero.green{background:linear-gradient(135deg, var(--green), #16572F);}
  .status-hero.amber{background:linear-gradient(135deg, var(--amber), #7A4712);}
  .status-hero.red{background:linear-gradient(135deg, var(--red), #7A2622);}
  .status-hero.sea{background:linear-gradient(135deg, var(--sea), var(--sea-dark));}
  .status-hero .flag{border-left-color:#fff;}
  .status-hero .h{font-family:'Oswald',sans-serif; font-size:20px; font-weight:600; margin:6px 0 4px;}
  .status-hero .s{font-size:12.5px; opacity:.9;}
