/* Pages dynamiques : écrits, article, livres, administration — mêmes variables que style.css */
:root{--ombre:0 1px 2px rgba(11,44,90,.05),0 10px 30px -12px rgba(11,44,90,.18);--ombre-forte:0 2px 4px rgba(11,44,90,.06),0 22px 44px -16px rgba(11,44,90,.28);--rayon:10px}

/* ——— liste des écrits ——— */
.section-ecrits{padding-top:clamp(28px,4vw,56px)}
.filtres{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(28px,4vw,48px);position:sticky;top:74px;z-index:5;background:rgba(242,248,252,.94);backdrop-filter:blur(8px);padding:14px 0;border-bottom:1px solid var(--filet)}
.filtre{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;background:#fff;color:var(--encre);border:1px solid var(--filet);border-radius:999px;padding:9px 16px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;transition:background .25s,color .25s,border-color .25s,box-shadow .25s,transform .25s}
.filtre .n{font-size:11px;opacity:.6;font-weight:400}
.filtre:hover{border-color:var(--encre);box-shadow:var(--ombre);transform:translateY(-1px)}
.filtre:focus-visible,.copier:focus-visible,.voisin:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.filtre.actif{background:var(--encre);color:#fff;border-color:var(--encre)}
.filtre.actif .n{opacity:.75}
.aucun{font-family:var(--sans);color:var(--encre-douce)}
.groupe-annee{margin-bottom:clamp(30px,5vw,56px)}
.groupe-annee[hidden],.entree[hidden]{display:none}
.annee{font-family:var(--serif-titre);font-weight:400;font-size:clamp(30px,3.6vw,46px);line-height:1;margin:0 0 22px;color:var(--encre);display:flex;align-items:center;gap:20px}
.annee::after{content:"";flex:1;height:1px;background:var(--filet)}
.liste-ecrits{display:grid;gap:18px}
.entree{display:grid;grid-template-columns:170px 1fr;gap:clamp(16px,3vw,40px);padding:clamp(20px,2.6vw,32px);background:#fff;border:1px solid rgba(11,44,90,.08);border-radius:var(--rayon);box-shadow:var(--ombre);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;position:relative}
.entree:hover{transform:translateY(-3px);box-shadow:var(--ombre-forte);border-color:rgba(226,112,74,.45)}
.entree-meta{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.entree .date{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--encre-douce);padding-top:0}
.entree-corps h3{font-family:var(--serif-titre);font-weight:500;font-size:clamp(21px,2.1vw,28px);line-height:1.2;margin:0 0 10px;letter-spacing:-.005em}
.entree-corps h3 a{background:linear-gradient(var(--accent),var(--accent)) 0 100%/0 2px no-repeat;transition:background-size .35s ease,color .25s}
.entree-corps h3 a:hover{color:var(--encre);background-size:100% 2px}
.entree .extrait{color:var(--encre-douce);margin:0;font-size:1.02em;line-height:1.65;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.lien-suite{margin:16px 0 0!important;font-family:var(--sans);font-size:12px;letter-spacing:.08em;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.lien-suite .lire{color:var(--accent);font-weight:500;text-transform:uppercase;letter-spacing:.14em;font-size:11px;border:0;transition:letter-spacing .3s,color .25s}
.lien-suite .lire:hover{color:var(--encre);letter-spacing:.2em}
.lien-suite .duree{color:var(--encre-douce);font-size:12px}
.entree-meta .etiquette{margin:0 6px 6px 0}
a.etiquette.cat{color:var(--accent);border-color:rgba(226,112,74,.5);border-radius:999px;transition:background .25s,color .25s}
a.etiquette.cat:hover{background:var(--accent);color:#fff}
.etiquette.a-paraitre{background:var(--papier-creux);border-color:transparent;border-radius:999px;color:var(--encre)}
.etiquette-livre{font-family:var(--sans);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}

/* ——— page article ——— */
.tete-article{background:linear-gradient(180deg,var(--papier-creux) 0%,var(--papier) 100%);padding:clamp(34px,5vw,72px) var(--marge) clamp(30px,4vw,54px);border-bottom:1px solid var(--filet);position:relative;overflow:hidden}
.tete-article::before{content:"";position:absolute;right:-8%;top:-60%;width:46vw;height:46vw;max-width:620px;max-height:620px;border-radius:50%;background:radial-gradient(circle,rgba(226,112,74,.14),transparent 68%);pointer-events:none}
.tete-article .contenu{position:relative;max-width:820px}
.fil{display:flex;flex-wrap:wrap;gap:4px 10px;font-family:var(--sans);font-size:12px;letter-spacing:.06em;color:var(--encre-douce);margin:0 0 26px}
.fil a{color:var(--encre-douce);transition:color .2s}
.fil a:hover{color:var(--accent)}
.fil span{opacity:.45}
.tete-article .etiquette{margin:0 0 18px}
.titre-article{font-family:var(--serif-titre);font-weight:500;font-size:clamp(30px,4.6vw,54px);line-height:1.12;margin:0 0 20px;letter-spacing:-.015em;max-width:none;text-wrap:balance}
.chapo-article{font-family:var(--serif);font-style:italic;font-size:clamp(19px,1.8vw,23px);line-height:1.55;color:var(--encre-douce);margin:0 0 26px;max-width:60ch;border-left:3px solid var(--accent);padding-left:18px}
.meta-article{font-family:var(--sans);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--encre-douce);display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:0}
.meta-article .auteur-meta{color:var(--encre);font-weight:500}
.meta-article .sep{opacity:.4}
.section-article{padding-top:clamp(32px,4vw,60px)}
.mise-en-page{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(30px,5vw,90px);align-items:start}
.article{min-width:0}
.texte-article{max-width:66ch;font-size:clamp(18px,1.25vw,20.5px);line-height:1.85;color:#10263f;hyphens:auto}
.texte-article p{margin:0 0 1.35em}
.texte-article>p:first-child::first-letter{font-family:var(--serif-titre);font-size:3.6em;float:left;line-height:.82;padding:8px 12px 0 0;color:var(--accent)}
.texte-article h2{font-family:var(--serif-titre);font-weight:500;font-size:clamp(24px,2.4vw,31px);line-height:1.2;margin:2em 0 .6em;color:var(--encre)}
.texte-article blockquote{margin:2em 0;padding:6px 0 6px 24px;border-left:3px solid var(--accent);font-style:italic;font-size:1.08em;color:var(--encre-douce)}
.texte-article a{background:linear-gradient(var(--accent),var(--accent)) 0 100%/100% 1px no-repeat;transition:color .2s}
.texte-article strong{font-weight:500;color:var(--encre)}
.pied-article{max-width:66ch;margin:48px 0 0;padding-top:22px;border-top:1px solid var(--filet);display:grid;gap:18px}
.parution{font-family:var(--sans);font-size:13px;font-style:normal;color:var(--encre-douce);margin:0;letter-spacing:.02em}
.parution strong{font-weight:500;color:var(--encre)}
.partage{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;font-family:var(--sans);font-size:12px;letter-spacing:.06em;color:var(--encre-douce)}
.partage>span{text-transform:uppercase;letter-spacing:.16em;font-size:10px}
.partage a,.copier{font:inherit;color:var(--encre);background:transparent;border:1px solid var(--filet);border-radius:999px;padding:6px 14px;cursor:pointer;transition:border-color .25s,background .25s,color .25s}
.partage a:hover,.copier:hover{border-color:var(--accent);color:var(--accent)}
.copier.fait{background:var(--encre);color:#fff;border-color:var(--encre)}
.voisins{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:44px 0 0;max-width:66ch}
.voisin{display:flex;flex-direction:column;gap:6px;padding:16px 18px;background:#fff;border:1px solid rgba(11,44,90,.08);border-radius:var(--rayon);box-shadow:var(--ombre);transition:transform .3s,box-shadow .3s,border-color .3s}
.voisin:hover{transform:translateY(-2px);box-shadow:var(--ombre-forte);border-color:rgba(226,112,74,.45);color:var(--encre)}
.voisin.suivant{text-align:right;grid-column:2}
.voisin:only-child{grid-column:1/-1}
.voisin.suivant:only-child{text-align:right}
.voisin .sens{font-family:var(--sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.voisin .vt{font-family:var(--serif-titre);font-size:16px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.retour{margin:30px 0 0}
.retour a{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--encre-douce)}

/* ——— volet « à lire aussi » ——— */
.lire-aussi{position:sticky;top:104px;background:#fff;border:1px solid rgba(11,44,90,.08);border-top:3px solid var(--accent);border-radius:var(--rayon);box-shadow:var(--ombre);padding:24px 24px 20px}
.lire-aussi .surtitre{margin:0 0 4px;font-size:10px}
.lire-aussi h2{font-family:var(--serif-titre);font-weight:500;font-size:26px;margin:0 0 8px}
.lire-aussi ol{list-style:none;margin:0;padding:0}
.lire-aussi li{border-bottom:1px solid var(--filet)}
.lire-aussi li:last-child{border-bottom:0}
.lire-aussi li a{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:16px 0;transition:transform .25s}
.lire-aussi li a:hover{transform:translateX(3px);color:var(--encre)}
.lire-aussi .num{font-family:var(--serif-titre);font-size:26px;line-height:1;color:var(--accent);opacity:.85}
.lire-aussi .corps{display:flex;flex-direction:column;gap:5px;min-width:0}
.lire-aussi .etiquette{align-self:flex-start;margin:0;font-size:9px;padding:2px 8px;border-radius:999px}
.lire-aussi .t{font-family:var(--serif-titre);font-size:17px;line-height:1.3;transition:color .2s}
.lire-aussi li a:hover .t{color:var(--accent)}
.lire-aussi .d{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--encre-douce)}
.lire-aussi .tous{display:inline-block;margin-top:6px;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.lire-aussi .tous:hover{color:var(--encre)}
@media (max-width:960px){.mise-en-page{grid-template-columns:1fr}.lire-aussi{position:static;margin-top:44px}}
@media (max-width:640px){
  .entree{grid-template-columns:1fr;gap:12px}
  .entree-meta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px}
  .filtres{top:70px;flex-wrap:nowrap;overflow-x:auto;margin-left:calc(-1*var(--marge));margin-right:calc(-1*var(--marge));padding-left:var(--marge);padding-right:var(--marge);scrollbar-width:none}
  .filtre{white-space:nowrap}
  .voisins{grid-template-columns:1fr}.voisin.suivant{grid-column:auto}
  .texte-article>p:first-child::first-letter{font-size:3em}
}

/* ——— livres ——— */
.meta-livre{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.meta-livre span{font-family:var(--sans);font-size:11px;letter-spacing:.08em;background:var(--papier-creux);color:var(--encre);padding:5px 12px;border-radius:999px}
.livre-vedette .couverture{box-shadow:var(--ombre-forte);border-radius:3px 8px 8px 3px;transition:transform .4s ease,box-shadow .4s ease}
.livre-vedette:hover .couverture{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 30px 50px -20px rgba(11,44,90,.4)}
.livre-vedette .texte h2{font-family:var(--serif-titre);font-weight:500}
.grand-texte{font-size:1.12em;color:var(--encre)}
.carte-extrait{background:#fff;border:1px solid rgba(11,44,90,.08);border-top:3px solid var(--accent);border-radius:var(--rayon);padding:26px;box-shadow:var(--ombre)}
.carte-extrait:hover{box-shadow:var(--ombre-forte);border-color:rgba(226,112,74,.45);border-top-color:var(--accent)}
.carte-extrait h3{font-family:var(--serif-titre);font-weight:500;margin:6px 0 10px}
@media (prefers-reduced-motion:reduce){.entree:hover,.voisin:hover,.filtre:hover,.livre-vedette:hover .couverture,.lire-aussi li a:hover{transform:none}}

/* administration */
.admin-barre{background:var(--encre);color:var(--papier);font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.admin-barre .contenu{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;padding:12px var(--marge)}
.admin-barre a,.admin-barre .lien{color:var(--papier)}
.admin-barre form{display:inline;max-width:none}
.admin-barre .lien{background:none;border:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:0;color:#F7C9B8}
.admin-zone h1{font-family:var(--serif-titre);font-weight:400;font-size:clamp(30px,4vw,48px);margin:0 0 24px}
.admin-zone h2{font-size:26px;margin:40px 0 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.bouton.petit{padding:8px 14px;font-size:10px}
.bouton.danger{border-color:#9b1c1c;color:#9b1c1c;background:transparent;cursor:pointer}
.bouton.danger:hover{background:#9b1c1c;color:#fff}
button.bouton{background:transparent;color:var(--encre);cursor:pointer}
button.bouton:hover{background:var(--encre);color:var(--papier)}
.defil{overflow-x:auto}
table.adm{width:100%;border-collapse:collapse;font-size:16px}
table.adm th{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;text-align:left;color:var(--encre-douce);padding:8px 10px;border-bottom:1px solid var(--encre)}
table.adm td{padding:12px 10px;border-bottom:1px solid var(--filet);vertical-align:top}
table.adm td.act{white-space:nowrap;font-family:var(--sans);font-size:12px}
table.adm td.act a{margin-right:12px;border-bottom:1px solid var(--accent)}
.statut{font-family:var(--sans);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--filet)}
.statut.publie{background:#DCEFE0;border-color:#9FCBA9}
.statut.brouillon{background:#FBE9DF;border-color:#E2704A}
.statut.a_paraitre{background:var(--papier-creux)}
.carte-form{display:grid;gap:20px;max-width:520px;background:#fff;padding:26px;border:1px solid var(--filet)}
.carte-form.large{max-width:900px}
.carte-form .deux{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.carte-form textarea,.carte-form input,.carte-form select{background:var(--papier);border:1px solid var(--filet);padding:10px 12px}
.carte-form select{appearance:auto}
@media (max-width:640px){.carte-form .deux{grid-template-columns:1fr}.carte-form{padding:16px}}
form.inline{display:inline;max-width:none;gap:0}
.flash{padding:12px 16px;margin:0 0 20px;font-family:var(--sans);font-size:14px;border-left:3px solid}
.flash.ok{background:#E3F3E7;border-color:#3C8D55}
.flash.err{background:#FBE5E0;border-color:#C0392B}
.barre-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}

.carte-form input[type=date],.carte-form input[type=number]{width:100%;min-height:46px;font:inherit;color:var(--marine,#0B2C5A);-webkit-appearance:none;appearance:none;border-radius:0;box-sizing:border-box}
.carte-form input[type=date]:focus,.carte-form input[type=number]:focus{outline:2px solid #E2704A;outline-offset:1px}
.carte-form .champ-date strong{color:#0B2C5A}
