/* ============================================================================
   Leversens · paper.css : le corps "papier" des pages de contenu (calculateur,
   bibliothèque d'indicateurs, guides à venir), générées par gen-paper.py en
   français et en anglais. La barre de navigation (nav.css) et le pied de page
   commun (shell.css) sont posés par-dessus.
   25/09/2026 : contrastes AA (étiquettes grises et or plus foncés, même teinte),
   aucun texte sous 12 px, contrôles et focus en bleu (pas d'or sur les boutons),
   titre et chapô centrés, panneau d'indicateur qui reste sous la barre collante.
   ========================================================================== */
:root{
  --paper:#f7f3ec; --ivory:#fdfbf7; --well:#f0ebe1;
  --ink:#0a0e1a; --body-c:#2c3444; --sec:#5c6472; --meta:#6b665b;
  --line:#e7e0d2; --line2:#d8cfbc; --gold-line:#d9bc7a;
  --blue:#3a7bd5; --blue-t:#2760ad; --blue-focus:#2c66c4; --blue-wash:#e7eef9; --blue-line:#9dbbe6;
  --gold:#c8a04a; --gold-t:#7e6225; --gold-wash:#f3ead6;
  --green:#16a34a; --green-t:#0e7a38; --green-wash:#e5f3e9;
  --red:#dc2626; --red-t:#b41f1f; --red-wash:#fbeae6;
  --nav-h:66px;                                     /* hauteur de .gnav (nav.css), collante */
}
*{margin:0;box-sizing:border-box}
html{background:var(--paper);color-scheme:light;scroll-padding-top:calc(var(--nav-h) + 1rem)}
body{min-height:100vh;background:var(--paper);color:var(--body-c);
  font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased;position:relative}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}
main,.site-foot{position:relative;z-index:1}
.mono{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.muted{color:var(--meta);font-size:.8rem}
.up{color:var(--green-t)} .down{color:var(--red-t)}
::selection{background:#c8a04a3d}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
main :focus-visible{outline:2px solid var(--blue-focus);outline-offset:2px}

main{max-width:52rem;margin:0 auto;padding:.9rem 1.4rem 3.5rem}
main.wide{max-width:64rem}
main > .crumbs{padding:0;max-width:none;margin:0}
.pagehead{margin:1.6rem 0 1.6rem;text-align:center}
h1{font-family:'Crimson Pro',Georgia,serif;font-weight:600;font-size:2.1rem;color:var(--ink);margin:.5rem 0 .3rem;line-height:1.2}
.pagehead p{color:var(--sec);max-width:38rem;margin:0 auto}
main h2{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--gold-t);
  border-top:2px solid var(--ink);position:relative;padding-top:.62rem;margin:1.8rem 0 .8rem}
main h2::after{content:"";position:absolute;left:0;right:0;top:3px;height:1px;background:var(--gold-line)}

.card{background:var(--ivory);border:1px solid var(--line2);border-radius:4px;padding:1.2rem 1.3rem;margin:.9rem 0}
.badge{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.1em;line-height:1.4;
  padding:.15rem .55rem;border-radius:2px;border:1px solid var(--gold-line);color:var(--gold-t);background:var(--gold-wash)}
.note{border-left:3px solid var(--gold);background:var(--gold-wash);padding:.7rem 1rem;font-size:.85rem;color:#5c4a1e;margin:1rem 0}
.note a{color:var(--gold-t)}

/* formulaires */
label,.lbl{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--meta);margin-bottom:.3rem}
input,select{width:100%;font-family:'JetBrains Mono',monospace;font-size:.95rem;color:var(--ink);
  background:var(--paper);border:1px solid var(--line2);border-radius:3px;padding:.55rem .7rem;transition:border-color .15s}
input::placeholder{color:var(--meta);opacity:1}
input:focus,select:focus{border-color:var(--blue-focus)}
input:focus-visible,select:focus-visible{outline:2px solid var(--blue-focus);outline-offset:1px}
.field{margin-bottom:1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr}}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:3px;overflow:hidden;background:var(--paper)}
.seg button{font-family:'JetBrains Mono',monospace;font-size:.78rem;padding:.45rem .9rem;background:transparent;border:0;
  color:var(--sec);cursor:pointer;border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--blue-wash);color:var(--blue-t);font-weight:700;box-shadow:inset 0 -2px 0 var(--blue-focus)}
.seg button:focus-visible{outline-offset:-2px}
.btn{display:inline-block;font-weight:600;font-size:.95rem;text-decoration:none;border:0;cursor:pointer;
  background:var(--ink);color:var(--paper);border-radius:3px;border-bottom:3px solid var(--blue);padding:.7rem 1.6rem;transition:all .15s}
.btn:hover{transform:translateY(-1px);box-shadow:0 8px 22px #0a0e1a30}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

/* résultats chiffrés */
.big{font-family:'JetBrains Mono',monospace;font-size:2.6rem;font-weight:500;color:var(--ink);line-height:1.1}
.stat{padding:.8rem 1rem;border:1px solid var(--line);border-radius:3px;background:var(--ivory)}
.stat .k{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--meta)}
.stat .v{font-family:'JetBrains Mono',monospace;font-size:1.15rem;font-weight:600;color:var(--ink);margin-top:.15rem}
.tscroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.85rem}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--meta);text-align:left;
  border-bottom:2px solid var(--ink);padding:.45rem .5rem}
td{padding:.5rem;border-bottom:1px solid var(--line);font-family:'JetBrains Mono',monospace}
td.txt{font-family:Inter,system-ui,sans-serif}
tr:hover td{background:var(--ivory)}
@media(max-width:480px){  /* téléphones : le tableau tient dans la carte, sans défilement horizontal */
  main{padding-left:1rem;padding-right:1rem}
  .card{padding:1rem .9rem}
  th,td{padding-left:.3rem;padding-right:.3rem}
  th{letter-spacing:.04em}
}
code{font-family:'JetBrains Mono',monospace}

/* squelettes "à venir" */
.skel{border:1px dashed var(--line2);border-radius:4px;padding:1.1rem 1.2rem;margin:.8rem 0;background:var(--ivory)}
.skel .sk-t{height:12px;width:40%;background:var(--well);border-radius:2px;margin-bottom:.6rem}
.skel .sk-l{height:8px;background:var(--well);border-radius:2px;margin:.45rem 0}
.skel .sk-l.short{width:65%}

/* ---- calculateur ------------------------------------------------------------ */
.res-hero{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:.4rem 0 .9rem}
.res-hero .unit{font-family:'Crimson Pro',Georgia,serif;font-size:1.25rem;color:var(--sec)}
.warn{border-left:3px solid var(--red);background:var(--red-wash);padding:.7rem 1rem;font-size:.85rem;color:#7c1d1d;margin:.8rem 0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-top:.9rem}
.tickrow{display:flex;gap:.6rem;align-items:center}
.tickrow .seg{flex:none}
.calc-foot{margin-top:.6rem}

/* ---- bibliothèque d'indicateurs --------------------------------------------- */
.tools{display:grid;grid-template-columns:1fr 230px;gap:.8rem;margin:1.2rem 0 .6rem}
@media(max-width:640px){.tools{grid-template-columns:1fr}}
.search{position:relative}
.search input{padding-left:2.2rem;font-family:Inter,system-ui,sans-serif;font-size:.95rem}
.search::before{content:"⌕";position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--meta);font-size:1.1rem;pointer-events:none}
.count{font-size:.75rem;color:var(--meta);margin-bottom:.5rem;font-family:'JetBrains Mono',monospace}
.lib{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(300px,1.4fr);gap:1rem;align-items:start}
@media(max-width:820px){.lib{grid-template-columns:1fr}}
.list{max-height:70vh;overflow-y:auto;border:1px solid var(--line2);border-radius:4px;background:var(--ivory);scrollbar-width:thin}
/* place réservée avant l'arrivée du manifeste : la liste remplie fait 70vh (617 lignes), la page ne saute pas */
.list:empty{height:70vh}
.row{display:grid;grid-template-columns:1fr auto;gap:.6rem;align-items:center;width:100%;padding:.55rem .8rem;
  border:0;border-bottom:1px solid var(--line);background:transparent;font:inherit;text-align:left;cursor:pointer;transition:background .12s}
.row:hover{background:var(--blue-wash)}
.row.on{background:var(--blue-wash);box-shadow:inset 3px 0 0 var(--blue-focus)}
.row:focus-visible{outline-offset:-2px}
.row .t{font-size:.87rem;color:var(--ink)}
.row .f{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.04em;color:var(--sec);border:1px solid var(--line2);border-radius:2px;padding:.05rem .4rem;background:var(--paper);white-space:nowrap}
.row.script .t{font-weight:600}
.row.script .f{color:var(--gold-t);border-color:var(--gold-line)}
.detail{position:sticky;top:calc(var(--nav-h) + 1rem);scroll-margin-top:calc(var(--nav-h) + 1rem);
  background:var(--ivory);border:1px solid var(--line2);border-top:2px solid var(--ink);border-radius:4px;padding:1.1rem 1.2rem;min-height:14rem}
@media(max-width:820px){.detail{position:static;min-height:0}}
.detail h3{font-family:'Crimson Pro',Georgia,serif;font-size:1.35rem;color:var(--ink);line-height:1.2}
.detail .meta{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--meta);margin:.35rem 0 .8rem;letter-spacing:.04em}
.detail p{font-size:.88rem;line-height:1.6;color:var(--body-c);margin:.5rem 0}
.detail ul{margin:.3rem 0 .6rem 1.1rem;font-size:.86rem;line-height:1.55;color:var(--body-c);padding:0}
.detail li b{color:var(--ink)}
.detail .how{border-left:3px solid var(--gold);background:var(--gold-wash);padding:.6rem .85rem;font-size:.82rem;color:#5c4a1e;margin:.8rem 0}
.acts{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.9rem;align-items:center}
.btn.ghost{background:var(--paper);color:var(--ink);border:1px solid var(--line2);border-bottom:3px solid var(--blue-line)}
.sig{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--meta);margin-top:.8rem}
.empty{padding:1.2rem;color:var(--meta);font-size:.85rem;text-align:center}
.install p{font-size:.9rem}
.toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:.82rem;
  padding:.6rem 1rem;border-radius:3px;border-bottom:3px solid var(--blue);display:none;z-index:50;max-width:calc(100vw - 2rem)}
.toast.on{display:block;animation:fadein .25s}
@keyframes fadein{from{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.toast.on{animation:none}.btn{transition:none}.btn:hover{transform:none}}
