:root{
  --bg:#0e0e12; --card:#17171d; --text:#e8e8ec; --muted:#9a9aa5; --accent:#6ea8fe; --border:#26262e;
}
[data-theme="light"]{ --bg:#fafafc; --card:#fff; --text:#1a1a2e; --muted:#666; --accent:#1652a0; --border:#ddd; }
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);
  font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;}
#topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:var(--bg);border-bottom:1px solid var(--border)}
#topbar h1{font-size:17px;font-weight:600;margin:0;flex:1}
#topbar button{background:none;border:1px solid var(--border);color:var(--text);
  border-radius:8px;font-size:16px;padding:8px 12px;cursor:pointer;-webkit-tap-highlight-color:transparent}
#topbar button:active{background:var(--border)}
#edition-date{color:var(--muted);font-weight:400;font-size:14px}
#stale-banner{background:#3a3320;color:#e8d48b;font-size:13px;padding:6px 14px}
#tabs{display:flex;overflow-x:auto;gap:6px;padding:10px 14px;position:sticky;top:52px;
  background:var(--bg);scrollbar-width:none;z-index:9}
#tabs::-webkit-scrollbar{display:none}
.tab{white-space:nowrap;border:1px solid var(--border);background:var(--card);color:var(--text);
  border-radius:18px;padding:8px 14px;font-size:14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.tab.active{background:var(--accent);border-color:var(--accent);color:#0e0e12;font-weight:600}
main{padding:0 14px;max-width:720px;margin:0 auto}
.summary-card, .chapter-resume{background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:14px 16px;margin:14px 0}
.summary-card h2{margin:0 0 8px;font-size:15px;color:var(--accent)}
.summary-card ol{margin:0;padding-left:20px}
.summary-card ul{margin:0;padding-left:20px}
.summary-card li{margin:6px 0}
.chapter-resume h2{margin:0 0 6px;font-size:16px}
.meta-count{font-size:13px;color:var(--muted);margin:4px 0 0}
.month-select{width:100%;margin-top:12px;padding:9px;background:var(--card);color:var(--text);
  border:1px solid var(--border);border-radius:8px;font-size:14px}
.edition-frame{width:100%;border:1px solid var(--border);border-radius:12px;
  background:var(--bg);height:calc(100vh - 210px);min-height:420px}
.sources-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13.5px}
.sources-table th,.sources-table td{border:1px solid var(--border);padding:7px 9px;text-align:left;vertical-align:top}
.sources-table th{background:var(--card);color:var(--accent)}
.sources-table a{color:var(--accent);text-decoration:none;font-weight:600}
.src-ref{font-size:11px;color:var(--muted);font-family:monospace;margin-top:3px;word-break:break-all}
.archive-item{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:13px 15px;margin:10px 0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.archive-item:active{background:var(--border)}
.archive-item .date{flex:1;font-size:15px}
.archive-item .badge{font-size:11.5px;background:var(--accent);color:#0e0e12;border-radius:10px;padding:2px 9px;font-weight:600}
.archive-item .open{font-size:13.5px;color:var(--accent)}
.archive-item.today{border-color:var(--accent)}
.archive-item.week{border-style:dashed}
.archive-item.week .date{font-weight:600;color:var(--accent)}
/* v20 : archives thématiques Droit & Économie — entrée datée + titre lié au contenu */
.archive-item.thema{align-items:flex-start}
.archive-item.thema .date{flex:none;font-size:12.5px;color:var(--muted)}
.archive-item.thema .titre{flex:1;font-size:15px}
.back-btn{display:block;width:100%;margin:14px 0 10px;padding:11px;background:var(--card);color:var(--text);
  border:1px solid var(--border);border-radius:10px;font-size:15px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.back-btn:active{background:var(--border)}
.article{display:block;text-decoration:none;color:var(--text);
  background:var(--card);border:1px solid var(--border);border-radius:12px;
  padding:12px 14px;margin:10px 0}
.article:active{background:var(--border)}
.article h3{margin:0 0 4px;font-size:15.5px;line-height:1.4}
.article .meta{font-size:12.5px;color:var(--muted)}
.article .excerpt{font-size:14px;color:var(--muted);margin-top:6px;display:-webkit-box;
  -webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
#settings-panel{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;
  display:none;align-items:flex-end}
#settings-panel.open{display:flex}
.panel-card{background:var(--bg);border-radius:18px 18px 0 0;width:100%;max-width:720px;
  margin:0 auto;padding:18px 18px calc(18px + env(safe-area-inset-bottom));max-height:82vh;overflow:auto}
.panel-card h2{margin:4px 0 12px;font-size:18px}
.panel-card h3{margin:16px 0 8px;font-size:15px;color:var(--muted)}
.panel-card label{display:block;font-size:14px;color:var(--muted);margin:10px 0}
.panel-card select{width:100%;padding:8px;background:var(--card);color:var(--text);
  border:1px solid var(--border);border-radius:8px}
.panel-card button{display:block;width:100%;margin:8px 0;padding:12px;background:var(--card);
  color:var(--text);border:1px solid var(--border);border-radius:10px;font-size:15px;cursor:pointer;
  -webkit-tap-highlight-color:transparent}
.panel-card button:active{background:var(--border)}
#chapters-editor{list-style:none;margin:0;padding:0}
#chapters-editor li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border)}
#chapters-editor .name{flex:1;font-size:15px}
#chapters-editor label{display:flex;align-items:center;gap:6px;margin:0;font-size:13px}
.hint{font-size:12.5px;color:var(--muted)}
.empty{color:var(--muted);text-align:center;padding:32px 16px;font-size:14.5px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* v15 : bouton filtre de l onglet Articles d aujourd hui */
.filter-btn{display:inline-block;margin:10px 0 0;padding:7px 14px;border-radius:16px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13.5px;cursor:pointer}
.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#0e0e12;font-weight:600}

/* --- v16 : sous-onglets Médias (même famille visuelle que .filter-btn) --- */
.subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0;padding:0;list-style:none}
.subtab{display:inline-block;padding:7px 14px;border-radius:16px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13.5px;cursor:pointer}
.subtab.active{background:var(--accent);border-color:var(--accent);color:#0e0e12;font-weight:600}

/* --- v17 : ajout et gestion des médias (formulaire + liste) --- */
.subtab.add{border-style:dashed}
.media-form label{display:block;font-size:13px;color:var(--muted);margin:12px 0 0}
.media-form input{display:block;width:100%;margin-top:5px;padding:9px;background:var(--card);color:var(--text);
  border:1px solid var(--border);border-radius:8px;font-size:15px}
.form-erreur{color:#e2b07a;font-size:13.5px;margin:10px 0 0}
.form-actions{display:flex;gap:10px;margin:14px 0 4px}
.form-actions .filter-btn{margin:0}
#medias-editor{list-style:none;margin:0;padding:0}
#medias-editor li{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border)}
#medias-editor .name{flex:1;font-size:15px}
#medias-editor label{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--muted)}
.badge-perso{font-size:10.5px;color:var(--accent);border:1px solid var(--accent);border-radius:8px;padding:1px 6px;margin-left:6px}
.mini-btn{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:4px 8px;
  font-size:13px;cursor:pointer;-webkit-tap-highlight-color:transparent}

/* --- v18 : onglet Lecture (recherche de documentation numérique) --- */
.badge-access{display:inline-block;font-size:11px;font-weight:600;border-radius:8px;padding:2px 8px;margin-top:6px;border:1px solid var(--border)}
.badge-access.ok{color:#4caf7d;border-color:#4caf7d}
.badge-access.mid{color:var(--accent);border-color:var(--accent)}
.badge-access.warn{color:#e2b07a;border-color:#e2b07a}
#lec-form input[type=search]{display:block;width:100%;margin-top:5px;padding:9px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:15px}
#lec-form label{display:block;font-size:13px;color:var(--muted);margin:12px 0 0}
.lec-histo{white-space:nowrap;margin:2px}

/* --- v19 : Lecture — recommandations, lecteur intégré --- */
.reco-cat{font-size:14px;color:var(--accent);margin:14px 0 6px}
.reco-list{list-style:none;margin:0;padding:0}
.reco-btn{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:6px 0;cursor:pointer;color:var(--text)}
.reco-btn strong{display:block;font-size:14.5px;margin-bottom:3px}
.reco-btn span{font-size:13px;color:var(--muted)}
.reco-btn:active{background:var(--border)}
.lec-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.lec-actions .filter-btn{margin:0}
.lecteur-corps{font-size:15.5px;line-height:1.75}

/* --- v20 : lecteur d'ouvrage intégré (texte intégral paginé, versions) --- */
.lec-nav{display:flex;align-items:center;gap:12px;margin-top:10px}
.lec-nav .filter-btn{margin:0}
.lecteur-corps{white-space:pre-wrap}
