:root{
  --paper:#f7f5f0;
  --ink:#221f1a;
  --sub:#4b473e;
  --muted:#7a746a;
  --line:#ddd8cd;
  --navy:#1a2b45;
  --flag-verif:#8a6a34;
  --accent-wash:rgba(26,43,69,.035);
}
/* Mode sombre — papier chaud sombre, accent navy éclairci pour le contraste */
html[data-theme="dark"]{
  --paper:#17150f;
  --ink:#e9e3d5;
  --sub:#b9b1a1;
  --muted:#8d8574;
  --line:#332f28;
  --navy:#9db4d8;
  --flag-verif:#cda45f;
  --accent-wash:rgba(157,180,216,.07);
}

*{ box-sizing:border-box; }
html{ background:var(--paper); }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font:18px/1.62 Georgia, "Times New Roman", serif;
  -webkit-font-smoothing:antialiased;
}

/* ---------- primitives ---------- */
.mono{ font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.rule-strong{ border-top:2px solid var(--navy); width:100%; }
.rule-thin{ flex:1; border-top:1px solid var(--line); }
a{ color:var(--navy); text-decoration:none; }
a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* ---------- masthead ---------- */
.masthead{ max-width:1060px; margin:0 auto; padding:1.4rem 1.5rem 0; }
.topline{
  display:flex; justify-content:space-between; align-items:center;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted);
  padding-bottom:.7rem;
}
.lang button{
  background:none; border:none; cursor:pointer; padding:0 .1rem;
  font:inherit; text-transform:uppercase; letter-spacing:.16em; color:var(--muted);
}
.lang button.active{ color:var(--navy); }
.lang .sep, .topline .sep{ opacity:.5; }
.controls{ display:flex; align-items:center; gap:.5rem; }
#theme-btn{
  background:none; border:none; cursor:pointer; padding:0;
  font:inherit; text-transform:uppercase; letter-spacing:.16em; color:var(--muted);
}
#theme-btn:hover{ color:var(--navy); }
:root{ color-scheme:light; }
html[data-theme="dark"]{ color-scheme:dark; }
body{ transition:background-color .2s ease, color .2s ease; }

.wordmark{
  margin:1.6rem 0 .4rem; text-align:center; color:var(--navy);
  font:normal 72px/1 Georgia, "Times New Roman", serif; letter-spacing:.01em;
}
.subtitle{
  margin:0 0 1.3rem; text-align:center; font-style:italic; color:var(--sub);
  font-size:19px;
}
.edition{
  display:flex; align-items:center; gap:1rem; margin:0 0 1.4rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:11px; text-transform:uppercase; letter-spacing:.16em; color:var(--muted);
}

.masthead nav{
  display:flex; justify-content:center; flex-wrap:wrap; gap:1.6rem;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:.8rem 0;
}
.masthead nav button{
  background:none; border:none; cursor:pointer; padding:.15rem 0 .3rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted);
  border-bottom:2px solid transparent;
}
.masthead nav button.active{ color:var(--navy); border-bottom-color:var(--navy); }

.statusline{
  text-align:center; margin-top:.7rem; min-height:1.1em;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted);
}

/* ---------- main ---------- */
main{ max-width:1060px; margin:0 auto; padding:1.8rem 1.5rem 2rem; }

.standfirst{
  max-width:660px; margin:1.4rem auto 2.2rem; text-align:center;
  font-size:21px; line-height:1.55; color:var(--sub);
}
.aside{
  max-width:660px; margin:0 auto 2.4rem; padding:.9rem 1.2rem;
  border-left:2px solid var(--navy); background:var(--accent-wash);
}
.aside .label{
  display:block; margin-bottom:.4rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:var(--navy);
}
.aside p{ margin:0; font-style:italic; color:var(--sub); font-size:16px; }

/* ---------- entrées (La sélection) ---------- */
.entry{
  display:grid; grid-template-columns:132px 1fr; gap:1.4rem;
  border-top:1px solid var(--line); padding:1.1rem 0;
}
.entry--rejete{ opacity:.5; }
.entry-side{
  display:flex; flex-direction:column; gap:.35rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted);
}
.entry-side time{ color:var(--ink); }
.entry-side .src{ color:var(--navy); }
.entry-side .rej{ color:var(--flag-verif); }
.entry-side .fav{
  align-self:flex-start; background:none; border:none; cursor:pointer; padding:0;
  font-size:15px; color:var(--line); line-height:1;
}
.entry-side .fav.on{ color:var(--navy); }

.entry-main .kicker-cat{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--navy);
  margin-bottom:.35rem;
}
.entry-main h3{ margin:0 0 .35rem; font:normal 22px/1.32 Georgia, serif; }
.entry-main h3 a{ color:var(--ink); }
.entry-main h3 a:hover{ color:var(--navy); }
.entry-main .sum{ margin:.2rem 0 .3rem; color:var(--sub); font-size:16px; }
.entry-main .sum.clamp{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.entry-main .more{
  background:none; border:none; cursor:pointer; padding:0; margin:0 0 .5rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:var(--navy);
}
.entry-main .more:hover{ text-decoration:underline; text-underline-offset:3px; }

.refs{
  margin:.3rem 0 0;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted);
}
.refs a{ color:var(--navy); }

/* ---------- filtres ---------- */
.chips{ display:flex; flex-wrap:wrap; gap:1.1rem; margin-bottom:.6rem; }
.chip{
  background:none; border:none; cursor:pointer; padding:.1rem 0 .25rem;
  font:normal 15px Georgia, serif; color:var(--muted); border-bottom:2px solid transparent;
}
.chip.active{ color:var(--navy); border-bottom-color:var(--navy); }
.filters{ display:flex; gap:1.2rem; margin-bottom:1.6rem; }
.filters button{
  background:none; border:none; cursor:pointer; padding:.1rem 0;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted);
}
.filters button.active{ color:var(--navy); text-decoration:underline; text-underline-offset:4px; }

/* ---------- fiches Atelier Deuwi ---------- */
.hint{ color:var(--sub); font-size:16px; font-style:italic; margin:0 0 1.6rem; max-width:660px; }
.entry.draft{ display:block; }
.badges{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-bottom:.6rem; }
.badge{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.1em;
  border:1px solid var(--line); border-radius:2px; padding:.15rem .45rem; color:var(--muted);
}
.badge.profil{ background:var(--navy); border-color:var(--navy); color:var(--paper); }
.badge.flag-ok{ color:var(--navy); border-color:var(--navy); }
.badge.flag-a_verifier{ color:var(--flag-verif); border-color:var(--flag-verif); }
.badge.flag-inconnu{ color:var(--muted); }
.badges .right{
  margin-left:auto;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted);
}
.draft .fait{ margin:.3rem 0 .8rem; font-size:18px; line-height:1.5; }
.draft .angle{
  margin:.3rem 0 .9rem; padding:.5rem 0 .5rem 1rem; border-left:2px solid var(--navy);
}
.draft .angle .label{
  display:block; margin-bottom:.25rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:var(--navy);
}
.draft .src{
  margin:.2rem 0 .7rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted);
}
.draft-actions{ display:flex; gap:.6rem; margin-top:.4rem; }
.draft-actions button{
  background:none; cursor:pointer; padding:.4rem .8rem; border:1px solid var(--line);
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--sub);
}
.draft-actions .copy.copied{ border-color:var(--navy); color:var(--navy); }
.draft-actions .notion{ border-color:var(--navy); color:var(--navy); }
.draft-actions button:disabled{ opacity:.45; cursor:default; }

/* ---------- Sources ---------- */
table{ width:100%; border-collapse:collapse; }
th,td{ text-align:left; padding:.55rem .6rem; border-bottom:1px solid var(--line); }
th{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); font-weight:normal;
}
td{ font-size:15px; color:var(--sub); }
tr.off{ opacity:.45; }

/* ---------- Réglages ---------- */
.reglages{ max-width:720px; }
.reglages label{
  display:block; margin:1.2rem 0 .35rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted);
}
.reglages input, .reglages textarea{
  width:100%; background:var(--paper); border:1px solid var(--line); color:var(--ink);
  border-radius:2px; padding:.5rem; font:15px Georgia, serif;
}
.reglages h3{
  margin:1.6rem 0 .6rem; font:normal 15px ui-monospace, Menlo, monospace;
  text-transform:uppercase; letter-spacing:.12em; color:var(--navy);
  display:flex; align-items:center; gap:.8rem;
}
.cfg-row{ display:flex; gap:.4rem; margin-bottom:.4rem; }
.cfg-row input{ flex:0 0 30%; }
.cfg-row input.wide{ flex:1; }
.cfg-row .del{
  flex:0 0 auto; background:none; border:1px solid var(--line); color:var(--muted);
  border-radius:2px; cursor:pointer; padding:0 .6rem;
}
.add, .save-bar button{
  background:none; border:1px solid var(--line); cursor:pointer; border-radius:2px;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--sub); padding:.3rem .7rem;
}
.save-bar{ display:flex; align-items:center; gap:.8rem; margin:1.6rem 0; }
.save-bar #save-cfg{ border-color:var(--navy); color:var(--navy); }
#cfg-status{
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--navy);
}

.empty{
  color:var(--muted); text-align:center; padding:3rem 1rem; font-style:italic;
}

/* ---------- colophon ---------- */
.colophon{ max-width:1060px; margin:2rem auto 0; padding:0 1.5rem 3rem; text-align:center; }
.colophon .method{ margin:1.1rem 0 .5rem; font-style:italic; color:var(--sub); font-size:16px; }
.colophon .foot-links{
  margin:0;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--muted);
}
.foot-links .foot-tab{
  background:none; border:none; cursor:pointer; padding:0;
  font:inherit; text-transform:uppercase; letter-spacing:.14em; color:var(--muted);
}
.foot-links .foot-tab:hover{ color:var(--navy); text-decoration:underline; text-underline-offset:3px; }
.foot-links .foot-tab.active{ color:var(--navy); text-decoration:underline; text-underline-offset:3px; }

@media (max-width:640px){
  .wordmark{ font-size:52px; }
  .entry{ grid-template-columns:1fr; gap:.5rem; }
  .entry-side{ flex-direction:row; flex-wrap:wrap; gap:.8rem; }
}
