/* CalculateurPiscine.com — feuille de style commune
   Palette inspirée d'une trousse de test : eau, carrelage de bassin, réactif DPD (rose), rouge de phénol (ambre). */
:root{
  --water:#E4F1EF; --paper:#F7FBFA; --soft:#EDF6F4; --tile:#13344B; --ink:#1A2B36; --muted:#5B7180;
  --line:#C9DCDA; --dpd:#C92F66; --dpd-ink:#fff; --phenol:#E39A2D;
  --ok:#23775E; --warn:#A86208; --bad:#B42318;
  --font-d:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --font-b:"Figtree","Segoe UI",system-ui,sans-serif;
  /* alias pour les styles générés par le calculateur */
  --g50:var(--soft); --g100:var(--soft); --g200:var(--line); --g300:var(--line);
  --g400:var(--muted); --g500:var(--muted); --g700:var(--ink); --g900:var(--ink);
  --blue:var(--tile); --blue-l:var(--soft); --blue-d:var(--tile);
  --amber-l:color-mix(in srgb,var(--phenol) 14%,var(--paper));
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --water:#0D2130; --paper:#132B3B; --soft:#18354A; --tile:#BFE3E0; --ink:#E4EFF1; --muted:#95ABB7;
  --line:#26475C; --dpd:#F0628F; --dpd-ink:#1A0A10; --phenol:#F2B052;
  --ok:#5CC7A2; --warn:#F2B052; --bad:#F97066;}}
:root[data-theme="dark"]{
  --water:#0D2130; --paper:#132B3B; --soft:#18354A; --tile:#BFE3E0; --ink:#E4EFF1; --muted:#95ABB7;
  --line:#26475C; --dpd:#F0628F; --dpd-ink:#1A0A10; --phenol:#F2B052;
  --ok:#5CC7A2; --warn:#F2B052; --bad:#F97066;}
*,*::before,*::after{box-sizing:inherit;margin:0;padding:0}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px);-webkit-text-size-adjust:100%}
body{background:var(--water);color:var(--ink);font:15px/1.55 var(--font-b);overflow-x:hidden}
a{color:inherit}
button,input,select{font:inherit;color:inherit}
[hidden]{display:none !important}
.ic{width:1em;height:1em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.14em}
:focus-visible{outline:3px solid var(--dpd);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--dpd);color:var(--dpd-ink);padding:8px 14px;border-radius:10px;z-index:300}
.skip:focus{left:12px}
strong{font-weight:600}

/* ── En-tête ─────────────────────────────────────────── */
.topnav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:14px;
  padding:10px max(18px,env(safe-area-inset-right,0px)) 10px max(18px,env(safe-area-inset-left,0px));
  background:color-mix(in srgb,var(--water) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:9px;text-decoration:none;min-width:0;overflow:hidden}
.logo-mark{width:30px;height:30px;flex-shrink:0}
.logo-name{font:800 18px/1 var(--font-d);color:var(--tile);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.logo-name span{font-weight:500;color:var(--muted)}
.nav-tabs{display:flex;gap:4px;margin-left:auto}
.ntab{border:0;background:none;cursor:pointer;text-decoration:none;padding:8px 12px;border-radius:999px;font-weight:600;font-size:14px;color:var(--muted)}
.ntab:hover{color:var(--tile)}
.ntab.active{color:var(--tile);background:var(--paper);box-shadow:inset 0 0 0 1px var(--line)}
.region-switch{display:flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--paper);flex-shrink:0}
.region-switch a{text-decoration:none;font-size:13px;font-weight:600;padding:5px 11px;border-radius:999px;color:var(--muted)}
.region-switch a[aria-current]{background:var(--tile);color:var(--paper)}

.region-suggest,.trichlore-banner,.last-meas-banner{max-width:1180px;margin:12px auto 0;display:flex;gap:10px;align-items:flex-start;
  padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.5;width:calc(100% - 36px)}
.region-suggest{background:var(--paper);border:1px solid var(--line)}
.region-suggest a{font-weight:600;color:var(--tile)}
.trichlore-banner{background:color-mix(in srgb,var(--phenol) 13%,var(--paper));border:1px solid color-mix(in srgb,var(--phenol) 40%,var(--line))}
.trichlore-banner .ic{color:var(--warn);margin-top:3px}
.banner-text{flex:1}
.banner-link{font-weight:600;color:var(--tile)}
.banner-close,.x-btn{margin-left:auto;background:none;border:0;cursor:pointer;color:var(--muted);font-size:15px;line-height:1;padding:4px;border-radius:6px}
.last-meas-banner{display:none;background:color-mix(in srgb,var(--ok) 10%,var(--paper));border:1px solid color-mix(in srgb,var(--ok) 30%,var(--line));align-items:center}
.last-meas-banner button{margin-left:auto;background:none;border:none;cursor:pointer;color:inherit;font-size:15px;padding:4px}

/* ── Héros ───────────────────────────────────────────── */
.hero{max-width:1180px;margin:0 auto;padding:40px 18px 12px}
.hero-inner{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:end}
.hero h1{font:800 clamp(32px,5.6vw,58px)/1.02 var(--font-d);color:var(--tile);letter-spacing:-.025em;max-width:17ch}
.hero-sub{margin-top:14px;color:var(--muted);font-size:16px;max-width:56ch}
.hero-steps{display:flex;flex-direction:column;gap:10px;padding-bottom:6px}
.hero-step{display:flex;gap:12px;align-items:center}
.hero-step-num{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;
  font:800 14px var(--font-d);color:var(--dpd);border:2px solid var(--dpd)}
.hero-step-text strong{display:block;font-size:14px;color:var(--ink)}
.hero-step-text span{font-size:13px;color:var(--muted)}

/* ── Mise en page ────────────────────────────────────── */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;max-width:1180px;margin:0 auto;padding:22px 18px 64px}
.calc-card{background:var(--paper);border:1px solid var(--line);border-radius:24px;overflow:hidden}
.calc-header{padding:22px 24px 4px}
.calc-header h2{font:700 24px/1.15 var(--font-d);color:var(--tile);display:flex;align-items:center;gap:8px}
.calc-header h2 .ic{color:var(--dpd)}
.calc-header p{color:var(--muted);font-size:14px;margin-top:4px}
.calc-body{padding:16px 24px 24px}
.cfg-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.cf label,.slbl{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.cf input,.cf select{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--water);font-size:16px;font-weight:500}
.cf-hint{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.4}
.unit-toggle{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;flex-shrink:0}
.ut-btn{border:0;background:var(--water);color:var(--muted);padding:10px 13px;font-weight:600;cursor:pointer}
.ut-btn.active{background:var(--tile);color:var(--paper)}

.band-toggle-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px dashed var(--line);border-radius:14px;margin-bottom:14px;cursor:pointer;background:var(--water)}
.band-toggle-row > .ic{color:var(--tile);font-size:18px}
.band-toggle-label{font-weight:600;font-size:14px;color:var(--ink)}
.band-toggle-sub{font-size:12px;color:var(--muted)}
.sw{margin-left:auto;width:40px;height:24px;border-radius:12px;background:var(--line);position:relative;transition:background .2s;flex-shrink:0}
.sw.on{background:var(--tile)}
.sw::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:var(--paper);top:3px;left:3px;transition:left .2s}
.sw.on::after{left:19px}

.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}
.pcard{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--water)}
.pcard.first{grid-column:1/-1;border-color:var(--tile);background:var(--paper);box-shadow:inset 4px 0 0 var(--dpd)}
.pcard-eyebrow{font-size:12px;font-weight:600;color:var(--dpd);margin-bottom:2px;display:flex;align-items:center;gap:4px}
.pcard-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:2px}
.pcard-name{font:700 16px/1.2 var(--font-d);color:var(--tile)}
.pcard-range,.pcard-adj{font-size:12px;font-weight:600;white-space:nowrap;color:var(--muted)}
.pcard-adj{color:var(--dpd)}
.pcard-desc{font-size:12.5px;color:var(--muted);margin-bottom:8px;line-height:1.45}
.pcard input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);font:700 20px var(--font-d);color:var(--ink)}
.pcard.first input{max-width:260px}
.go-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;border:0;border-radius:16px;
  background:var(--dpd);color:var(--dpd-ink);font:700 17px var(--font-d);cursor:pointer}
.go-btn:hover{filter:brightness(1.06)}
.go-btn:active{transform:translateY(1px)}

.band-field{display:none}
.band-field.active{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.band-dots{display:flex;gap:7px;flex-wrap:wrap}
.band-dot{width:32px;height:32px;border-radius:50%;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;transition:transform .15s}
.band-dot.sel{box-shadow:0 0 0 2px var(--ink);transform:scale(1.1)}
.band-dot-label{font-size:12px;color:var(--muted)}
.sel-panel{display:none;margin-top:8px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:12.5px;line-height:1.6}
.sel-panel.visible{display:block}

/* ── Résultats ───────────────────────────────────────── */
.res-wrap{margin-top:24px}
.timing-tip{display:flex;gap:10px;align-items:flex-start;background:var(--water);border-radius:14px;padding:12px 14px;font-size:13.5px;line-height:1.55}
.danger-text{color:var(--bad)}
.res-title{font:800 26px/1.15 var(--font-d);color:var(--tile);margin:18px 0 8px}
.sumbar{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;margin-bottom:14px;color:var(--muted)}
.sum-item{display:flex;align-items:center;gap:6px}
.dot{width:10px;height:10px;border-radius:50%}
.dot-ok{background:var(--ok)}.dot-warn{background:var(--warn)}.dot-danger{background:var(--bad)}
.order-banner{border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:16px;background:var(--paper)}
.ob-title{font-weight:700;color:var(--tile);display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:14px}
.ob-title .ic{color:var(--warn)}
.ob-steps{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.ob-step{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px}
.ob-num{width:24px;height:24px;border-radius:50%;background:var(--tile);color:var(--paper);display:grid;place-items:center;font:800 12px var(--font-d)}
.ob-arr{color:var(--muted)}
.ob-note{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.55}

.rcard{--st:var(--ok);border-radius:18px;padding:16px 18px;margin-bottom:12px;background:var(--paper);
  border:1px solid color-mix(in srgb,var(--st) 35%,var(--line));box-shadow:inset 5px 0 0 var(--st)}
.rcard.warn{--st:var(--warn)} .rcard.danger{--st:var(--bad)}
.rcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.rcard-left{flex:1}
.rcard-step{font-size:12px;font-weight:600;color:var(--st)}
.rcard-name{font:700 18px/1.2 var(--font-d);color:var(--tile)}
.status-badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;flex-shrink:0;color:var(--st);background:color-mix(in srgb,var(--st) 12%,var(--paper))}
.status-ok{--st:var(--ok)}.status-warn{--st:var(--warn)}.status-danger{--st:var(--bad)}
.val-chip{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-bottom:10px;font-size:13px;color:var(--muted)}
.val-chip .vreal{font:800 26px/1 var(--font-d);color:var(--st)}
.rcard-why{font-size:14px;line-height:1.6}
.rcard-consequence{display:flex;gap:8px;font-size:13.5px;line-height:1.55;padding:10px 12px;border-radius:12px;margin:10px 0;background:color-mix(in srgb,var(--st) 9%,var(--paper))}
.rcard-consequence .ic{color:var(--st);margin-top:3px}
.rcard-note{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.55}
.dose-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
.dbox{border-radius:14px;padding:12px 14px;background:var(--water)}
.dbox-label{font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:4px}
.dbox-main{font:800 26px/1.1 var(--font-d);color:var(--tile)}
.pct-lbl{font-size:12px;color:var(--muted)}
.cl-pct-input{width:52px;padding:3px 6px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-weight:700;text-align:center;font-size:14px}
.details-toggle{display:flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;color:var(--tile);font-weight:600;font-size:13.5px;padding:8px 0 0}
.details-toggle .ic{transition:transform .2s}
.details-toggle.open .ic{transform:rotate(180deg)}
.details-panel{display:none;margin-top:8px;padding:12px 14px;background:var(--water);border-radius:12px;font-size:13px;line-height:1.7;color:var(--ink)}
.details-panel.open{display:block}
.guide-link{color:var(--tile);font-weight:600}
.swim-warn{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:10px 12px;border-radius:12px;font-size:13.5px;line-height:1.55;
  color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--paper));border:1px solid color-mix(in srgb,var(--bad) 30%,var(--line))}
.drain-box{margin-top:10px;padding:12px 14px;border-radius:12px;font-size:13.5px;line-height:1.6;background:color-mix(in srgb,var(--phenol) 12%,var(--paper))}
.drain-big{font:800 24px var(--font-d);color:var(--tile)}
.warn-text{color:var(--warn)}

.langelier-section{display:none;margin-top:16px;border:1px solid var(--line);border-radius:18px;padding:16px 18px;background:var(--paper)}
.langelier-section.visible{display:block}
.lang-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.lang-header .ic{color:var(--tile)}
.lang-title{font:700 17px var(--font-d);color:var(--tile)}
.lang-badge{font-size:12px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.lang-score-row{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.lang-score{font:800 40px/1 var(--font-d)}
.lang-score.balanced{color:var(--ok)}.lang-score.aggressive{color:var(--bad)}.lang-score.scaling{color:var(--warn)}
.lang-interp{font-size:14px;line-height:1.5}
.lang-bar-wrap{height:10px;border-radius:5px;background:var(--water);position:relative;overflow:hidden;margin-bottom:6px}
.lang-bar-fill{position:absolute;top:0;height:100%;opacity:.55}
.lang-bar-indicator{position:absolute;top:0;width:3px;height:100%;background:var(--ink);transform:translateX(-50%)}
.lang-bar-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:12px}
.lang-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lang-detail-item{background:var(--water);border-radius:10px;padding:8px 10px;font-size:12.5px;color:var(--muted)}
.lang-detail-item strong{display:block;font:700 16px var(--font-d);color:var(--ink)}

/* ── Barre latérale ──────────────────────────────────── */
.sidebar{display:flex;flex-direction:column;gap:14px}
.sb-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:16px 18px}
.sb-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sb-icon{display:grid;place-items:center;font-size:18px}
.ic-r{color:var(--bad)}.ic-a{color:var(--warn)}.ic-b{color:var(--tile)}.ic-g{color:var(--ok)}
.sb-title{font:700 17px/1.2 var(--font-d);color:var(--tile)}
.sb-body{font-size:13.5px;line-height:1.6;color:var(--ink)}
.sb-body p{margin-bottom:8px}
.sb-link{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--tile);text-decoration:none}
.mini-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:6px;font-variant-numeric:tabular-nums}
.mini-table th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;padding:4px 6px;border-bottom:1px solid var(--line)}
.mini-table td{padding:5px 6px;border-bottom:1px solid var(--soft)}
.mini-table tr.hi td{background:color-mix(in srgb,var(--dpd) 10%,var(--paper));font-weight:700;color:var(--ink)}
.freq-item{display:flex;gap:8px;align-items:flex-start;padding:7px 0;border-bottom:1px solid var(--soft);font-size:13px}
.freq-item:last-of-type{border-bottom:0}
.freq-badge{flex-shrink:0;font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.fb-hot{color:var(--bad)} .fb-cool{color:var(--ok)}
.warn-tag{margin-top:10px;padding:10px 12px;border-radius:12px;font-size:13px;background:color-mix(in srgb,var(--phenol) 12%,var(--paper))}

/* ── À propos ────────────────────────────────────────── */
.about{max-width:760px;margin:0 auto;padding:40px 18px 64px}
.about .about-title{font:800 clamp(30px,5vw,46px)/1.05 var(--font-d);color:var(--tile);letter-spacing:-.02em;margin-bottom:12px}
.about > p{color:var(--muted);font-size:16px;margin-bottom:26px}
.about section{border-top:1px solid var(--line);padding:22px 0}
.about h2{font:700 21px/1.2 var(--font-d);color:var(--tile);margin-bottom:10px;display:flex;gap:8px;align-items:center}
.about h2 .ic{color:var(--dpd)}
.about p,.about li{font-size:15px;line-height:1.7}
.about ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.about li{display:flex;gap:10px}
.about li .ic{color:var(--ok);margin-top:5px}
.about .note{margin-top:12px;padding:12px 14px;border-radius:12px;font-size:14px;background:color-mix(in srgb,var(--phenol) 12%,var(--paper))}
.about .meta{margin-top:10px;font-size:13px;color:var(--muted);display:flex;gap:6px;align-items:center}

/* ── Pied de page et nav mobile ──────────────────────── */
footer{border-top:1px solid var(--line);padding:26px 18px 30px;text-align:center;font-size:13px;color:var(--muted);line-height:1.7}
footer p{max-width:720px;margin:0 auto 6px}
footer a{color:var(--tile);font-weight:600}
.bottom-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:200;background:color-mix(in srgb,var(--paper) 94%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.bottom-nav-inner{display:flex;height:58px}
.bnav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;cursor:pointer;
  text-decoration:none;color:var(--muted);font-size:12px;font-weight:600}
.bnav-btn .ic{font-size:21px}
.bnav-btn.active{color:var(--dpd)}

@media (max-width:960px){
  .layout{grid-template-columns:1fr}
  .hero-inner{grid-template-columns:1fr;gap:20px}
  .hero-steps{flex-direction:row;flex-wrap:wrap;gap:14px 22px}
}
@media (max-width:680px){
  .nav-tabs{display:none}
  .region-switch{margin-left:auto}
  .logo-name span{display:none}
  .logo-name{font-size:16px}
  .trichlore-banner{font-size:13px}
  .hero{padding:26px 16px 4px}
  .hero-steps{display:none}
  .layout{padding:14px 10px 90px}
  .calc-header{padding:18px 16px 2px}
  .calc-body{padding:14px 16px 20px}
  .cfg-row{grid-template-columns:1fr}
  .pgrid{grid-template-columns:1fr 1fr}
  .dose-grid{grid-template-columns:1fr}
  .bottom-nav{display:block}
  footer{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:400px){ .pgrid{grid-template-columns:1fr} .region-switch a{padding:5px 8px} }
@media (prefers-reduced-motion:reduce){*{transition:none !important;scroll-behavior:auto !important}}

/* ── Guides ──────────────────────────────────────────── */
.page{max-width:760px;margin:0 auto;padding:26px 18px 64px}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-bottom:22px}
.breadcrumb a{color:var(--tile);font-weight:600;text-decoration:none}
.breadcrumb .ic{font-size:12px}
.art-tag{font-size:13px;font-weight:600;color:var(--dpd);margin-bottom:8px}
.art-hero h1{font:800 clamp(30px,6vw,48px)/1.05 var(--font-d);color:var(--tile);letter-spacing:-.02em}
.art-hero .intro{margin-top:14px;font-size:17.5px;line-height:1.6;color:var(--muted);max-width:60ch}
.art-meta{margin-top:12px;font-size:13px;color:var(--muted)}
.art-body{margin-top:30px}
.art-body h2{font:700 25px/1.2 var(--font-d);color:var(--tile);margin-bottom:12px;letter-spacing:-.01em}
.art-body p,.art-body li{font-size:16.5px;line-height:1.72;margin-bottom:14px}
.art-body a{color:var(--tile);font-weight:600}
.art-body strong{color:var(--ink)}
.warn-box,.info-box{display:flex;gap:10px;align-items:flex-start;margin-top:24px;padding:14px 16px;border-radius:16px;font-size:15.5px;line-height:1.6}
.warn-box{background:color-mix(in srgb,var(--phenol) 13%,var(--paper));border:1px solid color-mix(in srgb,var(--phenol) 40%,var(--line))}
.warn-box > .ic{color:var(--warn);margin-top:4px}
.info-box{background:var(--paper);border:1px solid var(--line)}
.info-box > .ic{color:var(--tile);margin-top:4px}
.art-body .info-box,.art-body .warn-box{margin:16px 0}
.step-list{display:flex;flex-direction:column;gap:14px;margin:6px 0 14px;counter-reset:none}
.step{display:flex;gap:14px;align-items:flex-start}
.sn{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font:800 15px var(--font-d);color:var(--dpd);border:2px solid var(--dpd);margin-top:1px}
.st{font-size:16.5px;line-height:1.7}
.faq-item{border-top:1px solid var(--line);padding:14px 0}
.faq-q{font:700 17px/1.35 var(--font-d);color:var(--tile);margin-bottom:6px}
.faq-a{font-size:16px;line-height:1.7}
.cta-box{margin-top:36px;padding:22px;border-radius:22px;background:var(--tile);color:var(--paper);display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;justify-content:space-between}
.cta-box p{font-size:16px;line-height:1.55;max-width:44ch}
.cta-btn{display:inline-flex;align-items:center;gap:8px;background:var(--dpd);color:var(--dpd-ink);text-decoration:none;font:700 16px var(--font-d);padding:12px 18px;border-radius:14px;white-space:nowrap}
.related{margin-top:34px}
.related h2{font:700 20px var(--font-d);color:var(--tile);margin-bottom:8px}
.rl{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 2px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600;color:var(--ink)}
.rl .ic{color:var(--muted)}
.rl:hover{color:var(--tile)}

/* Outil de volume */
.vc-card{margin-top:28px;background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:20px}
.vc-card h2{font:700 22px var(--font-d);color:var(--tile);margin-bottom:14px}
.vc-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.vc-shape,.vc-unit{border:1px solid var(--line);background:var(--water);border-radius:999px;padding:8px 14px;font-weight:600;cursor:pointer;color:var(--muted)}
.vc-shape.active,.vc-unit.active{background:var(--tile);color:var(--paper);border-color:var(--tile)}
.vc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vc-field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:5px}
.vc-field input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--water);font:700 18px var(--font-d)}
.vc-result{margin-top:16px;padding:16px;border-radius:16px;background:var(--water);display:none}
.vc-result.show{display:block}
.vc-result-val{font:800 34px/1.1 var(--font-d);color:var(--tile)}
.vc-result-sub{color:var(--muted);margin:2px 0 12px}

/* Index du guide */
.guide-hero h1{font:800 clamp(32px,6vw,52px)/1.03 var(--font-d);color:var(--tile);letter-spacing:-.02em}
.guide-hero p{margin-top:12px;font-size:17px;color:var(--muted);max-width:58ch}
.g-section{margin-top:34px}
.g-section h2{font:700 21px var(--font-d);color:var(--tile);margin-bottom:10px}
.g-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.g-card{display:block;text-decoration:none;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px 18px;color:var(--ink)}
.g-card:hover{border-color:var(--tile)}
.g-card h3{font:700 18px/1.25 var(--font-d);color:var(--tile);margin-bottom:6px}
.g-card p{font-size:14.5px;line-height:1.55;color:var(--muted)}
@media (max-width:680px){ .g-list,.vc-fields{grid-template-columns:1fr} .page{padding:18px 16px 90px} .cta-box{padding:18px} }

/* Réglages supplémentaires, partage */
.cfg-row .cf:nth-child(n+3){margin-top:2px}
.cl-conc{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.cl-unit{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:3px 6px;font-size:13px;font-weight:600}
.share-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:18px}
.share-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--tile);background:var(--paper);color:var(--tile);border-radius:14px;padding:11px 16px;font-weight:700;cursor:pointer}
.share-btn:hover{background:var(--soft)}
#share-status{font-size:13px;color:var(--muted);flex:1;min-width:200px}
.share-note{margin:14px 0 0;padding:10px 14px;border-radius:12px;background:var(--soft);font-size:13.5px}

/* ── Journal ─────────────────────────────────────────── */
.share-btn.primary{background:var(--tile);color:var(--paper)}
.share-btn.primary:hover{filter:brightness(1.1);background:var(--tile)}
.j-page{max-width:820px}
.j-hero h1.art-tag{font:600 13px var(--font-b);margin-bottom:8px}
.j-headline{font:800 clamp(30px,6vw,48px)/1.05 var(--font-d);color:var(--tile);letter-spacing:-.02em}
.j-sub{margin-top:12px;font-size:17px;line-height:1.6;color:var(--muted);max-width:60ch}
.j-sub strong{color:var(--ink)}
.j-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.j-actions .go-btn{width:auto;padding:14px 20px;font-size:16px}
.j-status{min-height:1.4em;margin-top:10px;font-size:14px;color:var(--ok);font-weight:600}
.j-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:22px}
.j-tiles div{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.j-tiles b{display:block;font:800 30px/1.1 var(--font-d);color:var(--tile)}
.j-tiles span{font-size:13px;color:var(--muted)}
.j-pool{margin-top:14px;font-size:14px;color:var(--muted)}
.j-pool a{color:var(--tile);font-weight:600}
.j-sec{margin-top:34px}
.j-sec > h2{font:700 22px var(--font-d);color:var(--tile);margin-bottom:10px}
.j-chart{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:10px 8px 4px;overflow-x:auto}
.j-chart svg{display:block;width:100%;min-width:320px;height:auto}
.j-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);margin-top:8px}
.j-legend i{display:inline-block;width:16px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
.j-empty{color:var(--muted);font-size:14px;padding:14px;list-style:none}
.j-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.j-kpis div{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:12px 14px}
.j-kpis b{display:block;font:800 24px/1.15 var(--font-d);color:var(--tile)}
.j-kpis span{font-size:13px;color:var(--muted)}
.j-usage{list-style:none;margin-top:12px;border-top:1px solid var(--line)}
.j-usage li{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--line);font-size:14.5px}
.j-usage li span:last-child{font-weight:600;white-space:nowrap}
.j-history{list-style:none;border-top:1px solid var(--line)}
.j-history li{display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:start;padding:12px 2px;border-bottom:1px solid var(--line);font-size:14.5px}
.j-h-date b{display:block;font:700 15px var(--font-d);color:var(--tile)}
.j-h-date span,.j-h-note{font-size:12.5px;color:var(--muted)}
.j-h-adds{color:var(--dpd);font-size:13.5px;margin-top:2px}
.j-h-act{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.j-h-act a,.j-h-act button{font-size:13px;font-weight:600;color:var(--tile);background:none;border:0;cursor:pointer;padding:2px 0}
.j-h-act button{color:var(--muted)}
.j-tool{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;padding:16px 18px;background:var(--paper);border:1px solid var(--line);border-radius:18px;margin-bottom:10px}
.j-tool > div:first-child{flex:1;min-width:220px}
.j-tool h3{font:700 16px var(--font-d);color:var(--tile)}
.j-tool p{font-size:14px;color:var(--muted);line-height:1.5;margin-top:2px}
.j-small{font-size:13px}
.j-btns{display:flex;gap:8px;flex-wrap:wrap}
.j-prices{display:block}
.j-prices summary{cursor:pointer;list-style:none}
.j-prices summary::-webkit-details-marker{display:none}
.j-prices summary h3::after{content:' ▾';color:var(--muted)}
.j-prices[open] summary h3::after{content:' ▴'}
.j-prices form{margin-top:14px}
.j-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;border:0}
.j-grid legend{grid-column:1/-1;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px;padding:0}
.j-grid > button{grid-column:1/-1;justify-self:start}
.j-f{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--muted)}
.j-f input,.j-add-row select,.j-add-row input{width:100%;min-width:0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--water);font:500 16px var(--font-b);color:var(--ink)}
.j-f small{font-weight:400;font-size:12px}
.j-dialog{border:0;border-radius:24px;padding:0;width:min(560px,calc(100% - 20px));max-height:calc(100dvh - 40px);background:var(--paper);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.j-dialog::backdrop{background:rgba(10,25,35,.55)}
.j-dialog form{padding:22px;display:flex;flex-direction:column;gap:16px}
.j-dialog h2{font:800 24px var(--font-d);color:var(--tile)}
.j-adds-set{border:0;display:flex;flex-direction:column;gap:8px}
.j-adds-set legend{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px;padding:0}
.j-add-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto auto;gap:6px;align-items:center}
.j-unit{font-size:13px;color:var(--muted);min-width:18px}
.j-x{background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;padding:6px}
.j-add-btn{align-self:flex-start;background:none;border:1px dashed var(--line);border-radius:10px;padding:8px 12px;color:var(--tile);font-weight:600;cursor:pointer}
.j-err{color:var(--bad);font-size:14px;min-height:1em}
.j-dialog-btns{display:flex;justify-content:flex-end;gap:10px}
.j-dialog-btns .go-btn{width:auto;padding:12px 22px;font-size:16px}
@media (max-width:680px){
  .j-history li{grid-template-columns:62px 1fr}
  .j-h-act{grid-column:2;flex-direction:row;justify-content:flex-start;gap:16px}
  .j-add-row{grid-template-columns:1fr 80px auto auto}
  .j-dialog{width:100%;max-width:none;max-height:92dvh;margin:auto 0 0;border-radius:24px 24px 0 0}
}
