:root{
  --navy:#0C1B29; --navy-2:#12283b; --gold:#B08D3E; --gold-2:#c9a24b; --cream:#FBFAF7;
  --ink:#14203a; --muted:#5b6472; --line:#e6e2d8; --bg:#f4f1ea; --white:#fff;
  --star:#B08D3E; --danger:#9a2b2b; --ok:#2f6b3a;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:Georgia,"Times New Roman",serif; color:var(--ink);
  background:var(--bg); line-height:1.5;
}
.sans{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}

/* ---------- Barre supérieure ---------- */
header.topbar{
  background:var(--navy); color:var(--cream); padding:14px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  position:sticky; top:0; z-index:20; border-bottom:3px solid var(--gold);
}
.topbar .brand{display:flex; align-items:baseline; gap:12px; min-width:0}
.topbar .brand b{font-size:1.05rem; letter-spacing:.02em; color:var(--gold-2); font-weight:700}
.topbar .brand span{font-size:.82rem; color:#b9c2cf; font-family:-apple-system,sans-serif}
.topbar .right{display:flex; align-items:center; gap:14px; font-family:-apple-system,sans-serif; font-size:.85rem}
.topbar .who{color:#b9c2cf}
.topbar button.link{background:none;border:none;color:var(--gold-2);cursor:pointer;font-size:.85rem;padding:0}
.topbar button.link:hover{text-decoration:underline}

.wrap{max-width:1120px; margin:0 auto; padding:22px}

/* ---------- Onglets ---------- */
.tabs{display:flex; gap:6px; border-bottom:1px solid var(--line); margin:6px 0 22px}
.tabs button{
  font-family:-apple-system,sans-serif; font-size:.9rem; background:none; border:none;
  padding:11px 16px; cursor:pointer; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px;
}
.tabs button.active{color:var(--navy); border-bottom-color:var(--gold); font-weight:600}
.tabs .count{color:var(--gold); font-weight:700}

/* ---------- Panneau signaux forts ---------- */
.signals{
  background:var(--navy); color:var(--cream); border-radius:10px; padding:16px 20px; margin-bottom:22px;
  border:1px solid var(--navy-2);
}
.signals h3{margin:0 0 8px; font-size:.95rem; color:var(--gold-2); letter-spacing:.02em}
.signals ol{margin:0; padding-left:1.2em; columns:2; column-gap:34px; font-family:-apple-system,sans-serif; font-size:.86rem}
.signals li{margin:3px 0; break-inside:avoid}
.signals .foot{margin:12px 0 0; font-size:.8rem; color:#aeb8c6; font-style:italic; font-family:Georgia,serif}
@media(max-width:640px){ .signals ol{columns:1} }

/* ---------- Formulaire ---------- */
.card{background:var(--white); border:1px solid var(--line); border-radius:12px; padding:0; overflow:hidden; box-shadow:0 1px 2px rgba(12,27,41,.04)}
.block{border-top:1px solid var(--line)}
.block:first-child{border-top:none}
.block > .block-h{
  display:flex; align-items:center; gap:10px; padding:14px 20px; background:#faf8f2; cursor:pointer;
}
.block > .block-h .letter{
  font-family:-apple-system,sans-serif; font-weight:700; color:var(--white); background:var(--navy);
  width:26px;height:26px;border-radius:6px;display:grid;place-items:center;font-size:.85rem;flex:0 0 auto
}
.block > .block-h h4{margin:0; font-size:1rem; color:var(--navy)}
.block > .block-h .desc{font-family:-apple-system,sans-serif;font-size:.78rem;color:var(--muted);margin-left:auto}
.grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; padding:18px 20px}
@media(max-width:720px){ .grid{grid-template-columns:1fr} }
.field{display:flex; flex-direction:column; gap:5px}
.field.full{grid-column:1 / -1}
.field label{font-family:-apple-system,sans-serif; font-size:.8rem; color:var(--muted); font-weight:600}
.field label .star{color:var(--star); font-weight:800; margin-left:3px}
.field .hint{font-family:-apple-system,sans-serif; font-size:.72rem; color:#8a93a1}
.field input, .field select, .field textarea{
  font-family:-apple-system,sans-serif; font-size:.9rem; color:var(--ink);
  border:1px solid var(--line); border-radius:8px; padding:9px 11px; background:var(--white); width:100%;
}
.field textarea{min-height:64px; resize:vertical; line-height:1.45}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(176,141,62,.15)}
.field input[readonly]{background:#f1eee6; color:#8a93a1; cursor:not-allowed; font-style:italic}
.field.starred input, .field.starred select, .field.starred textarea{border-left:3px solid var(--gold)}

.formbar{display:flex; align-items:center; gap:12px; padding:16px 20px; border-top:1px solid var(--line); background:#faf8f2; flex-wrap:wrap}
button.primary{
  font-family:-apple-system,sans-serif; font-size:.9rem; font-weight:600; color:var(--white);
  background:var(--navy); border:none; border-radius:8px; padding:11px 22px; cursor:pointer;
}
button.primary:hover{background:var(--navy-2)}
button.ghost{
  font-family:-apple-system,sans-serif; font-size:.88rem; color:var(--navy); background:none;
  border:1px solid var(--line); border-radius:8px; padding:10px 16px; cursor:pointer;
}
button.ghost:hover{border-color:var(--gold)}
.formbar .msg{font-family:-apple-system,sans-serif; font-size:.85rem}
.formbar .msg.ok{color:var(--ok)} .formbar .msg.err{color:var(--danger)}
.formbar .spacer{flex:1}

/* ---------- Répertoire ---------- */
.toolbar{display:flex; gap:12px; align-items:center; margin-bottom:14px; flex-wrap:wrap}
.toolbar input.search{
  font-family:-apple-system,sans-serif; font-size:.9rem; padding:9px 12px; border:1px solid var(--line);
  border-radius:8px; min-width:240px; flex:1; background:var(--white)
}
.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:var(--white)}
table{border-collapse:collapse; width:100%; font-family:-apple-system,sans-serif; font-size:.85rem}
thead th{
  text-align:left; background:var(--navy); color:var(--cream); padding:10px 12px; font-weight:600;
  white-space:nowrap; position:sticky; top:0
}
tbody td{padding:10px 12px; border-top:1px solid var(--line); vertical-align:top}
tbody tr:hover{background:#faf8f2}
.pill{display:inline-block; padding:2px 9px; border-radius:999px; font-size:.72rem; font-weight:600; white-space:nowrap}
.h1{background:#eef3ee;color:#2f6b3a} .h2{background:#fbf3e6;color:#9a6b16}
.h3{background:#fbeee6;color:#9a4b16} .h4{background:#fbe6e6;color:#9a2b2b}
.attr{font-size:.72rem; color:var(--muted)}
.rowact{display:flex; gap:8px}
.rowact button{background:none;border:none;cursor:pointer;color:var(--navy);font-size:.8rem;padding:2px 4px}
.rowact button.del{color:var(--danger)}
.rowact button:hover{text-decoration:underline}
.empty{padding:40px; text-align:center; color:var(--muted); font-family:-apple-system,sans-serif}

/* ---------- Codebook ---------- */
details.codebook{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:6px 18px;margin-top:22px}
details.codebook summary{cursor:pointer;font-family:-apple-system,sans-serif;font-weight:600;color:var(--navy);padding:10px 0}
details.codebook .cb{font-family:-apple-system,sans-serif;font-size:.83rem;color:var(--ink);padding:0 0 14px}
details.codebook dt{font-weight:700;margin-top:10px;color:var(--navy)}
details.codebook dd{margin:2px 0 0;color:var(--muted)}

.hidden{display:none !important}
footer.foot{max-width:1120px;margin:24px auto;padding:0 22px;color:var(--muted);font-family:-apple-system,sans-serif;font-size:.78rem;text-align:center}

/* ---------- Login ---------- */
body.login-page{display:grid; place-items:center; min-height:100vh; background:
  radial-gradient(1200px 500px at 50% -10%, #12283b 0%, #0C1B29 60%)}
.login-card{
  width:min(400px,92vw); background:var(--white); border-radius:14px; overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,.35); border-top:4px solid var(--gold)
}
.login-card .head{padding:26px 28px 8px}
.login-card .head b{display:block; color:var(--gold); font-size:1.15rem; letter-spacing:.03em}
.login-card .head span{font-family:-apple-system,sans-serif; font-size:.82rem; color:var(--muted)}
.login-card form{padding:14px 28px 26px; display:flex; flex-direction:column; gap:14px}
.login-card label{font-family:-apple-system,sans-serif;font-size:.8rem;color:var(--muted);font-weight:600;margin-bottom:5px;display:block}
.login-card input{width:100%; font-family:-apple-system,sans-serif; font-size:.95rem; padding:11px 12px; border:1px solid var(--line); border-radius:8px}
.login-card input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,141,62,.15)}
.login-card button{margin-top:4px; font-family:-apple-system,sans-serif; font-size:.95rem; font-weight:600; color:var(--white); background:var(--navy); border:none; border-radius:8px; padding:12px; cursor:pointer}
.login-card button:hover{background:var(--navy-2)}
.login-card .err{font-family:-apple-system,sans-serif; font-size:.83rem; color:var(--danger); min-height:1em}
.login-card .note{font-family:-apple-system,sans-serif; font-size:.72rem; color:#8a93a1; text-align:center; padding-bottom:18px}
