/* ============================================================
   ZonACTEEV — Feuille de style « suisse niveau 2 »
   Base sobre (blanc/gris, grille nette, typo Inter) + orange
   assumé comme couleur d'identité (façon rouge CFF).
   Structure et noms de classes identiques à l'ancienne version :
   aucune page à modifier, seul le rendu change.
   ============================================================ */

/* Police Inter — rendu suisse type Helvetica, chargée depuis Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  --navy:#0a0a0a;        /* structure : barres, titres — noir franc */
  --navy-2:#1f1f1f;
  --slate-main:#1e293b;  /* boutons neutres */
  --slate-main-d:#0f1c2e;
  --orange:#dc2626;      /* accent d'identité, assumé (actions, focus, liens clés) */
  --orange-d:#b91c1c;
  --paper:#ffffff;       /* fond : blanc pur, plus net que l'ancien gris bleuté */
  --paper-2:#f6f8fa;     /* fonds secondaires discrets (lignes de tableau, extraits) */
  --ink:#16202e;         /* texte principal, presque noir : contraste net */
  --slate:#5b6875;       /* texte secondaire */
  --hair:#e2e6ec;        /* filets/bordures, un peu plus francs */
  --hair-2:#eef1f5;
  --radius:6px;          /* arrondi standard, resserré (grille suisse) */
  --radius-sm:5px;
  --radius-lg:8px;
}

*{margin:0;padding:0;box-sizing:border-box}
body{
  font-family:'Inter','Helvetica Neue',Arial,system-ui,-apple-system,sans-serif;
  background:var(--paper);color:var(--ink);line-height:1.5;
  -webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;
}
a{color:inherit}
.zt-wrap{max-width:1100px;margin:0 auto;padding:0 24px}

/* Barre supérieure — sobre, fond noir net */
.zt-top{background:var(--navy);color:#fff}
.zt-top .zt-wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.zt-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:19px;text-decoration:none;letter-spacing:-.01em}
.zt-logo{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--orange);display:flex;align-items:center;justify-content:center}
.zt-nav{display:flex;align-items:center;gap:20px}
.zt-nav a{color:#cdd8e6;text-decoration:none;font-size:14px;font-weight:500}
.zt-nav a:hover{color:#fff}

.zt-main{flex:1;padding:38px 0}
.zt-card{max-width:440px;margin:0 auto;background:#fff;border:1px solid var(--hair);border-radius:var(--radius-lg);padding:28px 28px 30px;box-shadow:0 1px 2px rgba(15,40,71,.05)}
.zt-card h1{font-size:23px;color:var(--navy);margin-bottom:6px;letter-spacing:-.02em}
.zt-sub{font-size:13.5px;color:var(--slate);margin-bottom:18px}
.zt-card form{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.zt-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--navy)}
.zt-card input{border:1px solid var(--hair);border-radius:var(--radius);padding:11px 13px;font-family:inherit;font-size:14px;font-weight:400;outline:none}
.zt-card input:focus{border-color:var(--orange)}

/* Bouton principal : orange assumé (comme le rouge CFF sur les actions clés) */
.zt-btn{display:inline-block;background:var(--orange);color:#fff;border:none;font-family:inherit;font-size:14px;font-weight:600;padding:12px 18px;border-radius:var(--radius);cursor:pointer;text-decoration:none;text-align:center;letter-spacing:.01em}
.zt-btn:hover{background:var(--orange-d)}
.zt-btn-sm{padding:9px 16px;font-size:13px}
/* Variante neutre pour actions secondaires */
.zt-btn.neutre{background:var(--slate-main)}
.zt-btn.neutre:hover{background:var(--slate-main-d)}

.zt-err{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:13px;padding:10px 12px;border-radius:var(--radius);margin-bottom:6px}
.zt-ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;font-size:13.5px;padding:12px 14px;border-radius:var(--radius);margin-bottom:14px}

.zt-foot{background:var(--navy);color:#9fb3cc;padding:22px 0;font-size:12.5px;text-align:center}

/* Admin */
.zt-admin{max-width:980px;margin:0 auto}
.zt-admin h1{font-size:24px;color:var(--navy);margin-bottom:18px;letter-spacing:-.02em}
.zt-admin h2{font-size:15px;color:var(--navy);margin:26px 0 12px;text-transform:uppercase;letter-spacing:.05em}
.zt-table{width:100%;background:#fff;border:1px solid var(--hair);border-radius:var(--radius-lg);border-collapse:separate;border-spacing:0;overflow:hidden}
.zt-table th,.zt-table td{text-align:left;padding:11px 14px;font-size:13.5px;border-bottom:1px solid var(--hair-2)}
.zt-table th{background:var(--paper-2);font-weight:600;color:var(--navy);font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.zt-table tr:last-child td{border-bottom:none}
.zt-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.02em}
.zt-badge.ref{background:#fef2f2;color:var(--orange-d)}
.zt-badge.new{background:#eef2ff;color:#4338ca}
.zt-badge.paye{background:#f0fdf4;color:#15803d}
.zt-badge.gratuit{background:#f1f5f9;color:#64748b}
.zt-inline{display:inline;margin:0}
.zt-act{font-size:12.5px;font-weight:600;border:none;border-radius:var(--radius-sm);padding:7px 11px;cursor:pointer;font-family:inherit}
.zt-act.ok{background:#16a34a;color:#fff}
.zt-act.no{background:#ef4444;color:#fff}
.zt-act.alt{background:var(--navy);color:#fff}
.zt-msg{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857;padding:10px 14px;border-radius:var(--radius);font-size:13.5px;margin-bottom:16px}

/* Veille */
.zt-rule{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:13px;padding:11px 14px;border-radius:var(--radius);margin-bottom:16px;line-height:1.5}
.zt-msg-err{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.zt-filtres{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.zt-chip-f{font-size:12.5px;font-weight:600;color:var(--navy);background:#fff;border:1px solid var(--hair);border-radius:var(--radius);padding:7px 13px;text-decoration:none}
.zt-chip-f:hover{border-color:var(--orange)}
.zt-chip-f.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.vitem{background:#fff;border:1px solid var(--hair);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:14px}
.vitem-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.vitem-src{font-size:12.5px;font-weight:600;color:var(--slate)}
.vitem-date{font-size:11.5px;color:var(--slate);margin-left:auto}
.vitem-title{font-size:15.5px;font-weight:600;color:var(--navy);line-height:1.3;margin-bottom:6px;letter-spacing:-.01em}
.vitem-extrait{font-size:12.5px;color:#55606c;line-height:1.5;background:var(--paper-2);border-radius:var(--radius);padding:9px 11px;margin-bottom:9px}
.vitem-extrait span{font-weight:600;color:var(--slate);font-size:11px;text-transform:uppercase;letter-spacing:.03em}
.vitem-link{display:inline-block;font-size:12.5px;font-weight:600;color:var(--orange-d);text-decoration:none;margin-bottom:11px}
.vitem-reec{width:100%;border:1px solid var(--hair);border-radius:var(--radius);padding:11px 13px;font-family:inherit;font-size:13.5px;resize:vertical;outline:none}
.vitem-reec:focus{border-color:var(--orange)}
.vitem-actions{display:flex;gap:9px;margin-top:10px}

/* Formulaire veille */
.zt-form{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--hair);border-radius:var(--radius-lg);padding:20px 22px}
.zt-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--navy)}
.zt-form input,.zt-form select,.zt-form textarea{border:1px solid var(--hair);border-radius:var(--radius);padding:11px 13px;font-family:inherit;font-size:14px;font-weight:400;outline:none;color:var(--ink)}
.zt-form input:focus,.zt-form select:focus,.zt-form textarea:focus{border-color:var(--orange)}
.zt-form textarea{resize:vertical}

/* Post livré */
.zt-post{background:var(--paper-2);border:1px solid var(--hair);border-radius:var(--radius);padding:13px 15px;font-size:14px;color:#334155;line-height:1.55;margin:6px 0 11px;white-space:pre-wrap}
.zt-act.alt:disabled{opacity:.5;cursor:not-allowed}

/* ============================================================
   Finitions — transitions sobres, focus net, hiérarchie typo
   ============================================================ */
html{ -moz-osx-font-smoothing:grayscale; text-rendering:optimizeLegibility; }
body{ letter-spacing:-.006em; }
h1,h2,h3{ letter-spacing:-.02em; }

/* Transitions : plus courtes et sobres (pas d'effet « rebond ») */
.zt-btn,.zt-act,.zt-chip-f,.vitem,.zt-card,.sb-link,.mc-stat,
.zt-badge,.vitem-link,input,select,textarea,a.tn-l{
  transition: background-color .14s ease, border-color .14s ease,
              color .14s ease, box-shadow .14s ease;
}

/* Boutons : pas d'élévation « qui saute » — juste un changement de teinte net */
.zt-btn:active{ transform:none }

/* Cartes : réaction discrète au survol (bordure, pas de gros mouvement) */
.vitem:hover{ border-color:#cfd6df }

/* Champs : halo de focus discret aux couleurs de la marque */
input:focus,select:focus,textarea:focus,
.zt-card input:focus,.zt-form input:focus,.zt-form select:focus,.zt-form textarea:focus,
.vitem-reec:focus{
  border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(220,38,38,.12);
}

/* Liens de navigation haute : soulignement orange animé (sobre) */
.zt-nav a{ position:relative; }
.zt-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px;
  background:var(--orange);
  transform:scaleX(0); transform-origin:left; transition:transform .16s ease;
}
.zt-nav a:hover::after{ transform:scaleX(1); }

/* Accessibilité : pas d'animation si l'utilisateur les refuse */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
}

/* Sélection de texte aux couleurs de la marque */
::selection{ background:rgba(220,38,38,.18); color:var(--navy); }

/* Barre de défilement discrète */
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-thumb{ background:#cbd3dd; border-radius:6px; border:3px solid transparent; background-clip:content-box; }
::-webkit-scrollbar-thumb:hover{ background:#aeb9ca; background-clip:content-box; }
