/* Outils gratuits — complète guide.css + feature.css (mêmes jetons). */
.thero{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; padding:14px 0 30px; }
.thero h1{ font-size:clamp(30px,4.4vw,44px); font-weight:800; line-height:1.1; margin:0 0 14px; text-wrap:balance; }
.thero .lead{ font-size:17.5px; margin:0 0 18px; max-width:56ch; }
.thero .mascot{ width:132px; height:auto; margin:4px 0 0; filter:drop-shadow(0 14px 18px rgba(16,40,31,.18)); }

form.tool{ background:var(--card); border:1px solid var(--line); border-radius:24px; padding:22px; box-shadow:var(--shadow); display:grid; gap:18px; }
form.tool .tt{ font-family:"Baloo 2","Inter",sans-serif; font-weight:800; font-size:20px; margin:0; }
.fields{ display:flex; flex-wrap:wrap; gap:12px; }
.fields label{ display:grid; gap:6px; font-size:13px; font-weight:700; color:var(--ink-soft); letter-spacing:.02em; }
.fields input{ width:120px; font:600 20px/1.2 "Inter",sans-serif; color:var(--ink); background:var(--ground); border:1px solid var(--line); border-radius:12px; padding:10px 12px; font-variant-numeric:tabular-nums; }
.fields input:focus-visible{ outline:3px solid var(--pine); outline-offset:1px; }

fieldset.seg{ border:0; margin:0; padding:0; }
fieldset.seg legend{ font-size:13px; font-weight:700; color:var(--ink-soft); letter-spacing:.02em; margin-bottom:8px; padding:0; }
.seg .opts{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.seg.two .opts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.seg label{ position:relative; cursor:pointer; }
.seg input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.seg span{ display:grid; gap:2px; text-align:center; padding:10px 6px; border:1px solid var(--line); border-radius:12px; background:var(--ground); font-weight:700; font-size:14.5px; }
.seg span small{ font-weight:500; font-size:12px; color:var(--ink-soft); }
.seg input:checked + span{ background:var(--pine-tint); border-color:var(--pine); color:var(--pine-deep); }
.seg input:focus-visible + span{ outline:3px solid var(--pine); outline-offset:2px; }

.result{ background:var(--pine-tint); border-radius:16px; padding:16px 18px; min-height:92px; }
.result p{ margin:0; }
.r-big{ font-family:"Baloo 2","Inter",sans-serif; font-weight:800; font-size:clamp(34px,6vw,46px); line-height:1.05; color:var(--pine-deep); font-variant-numeric:tabular-nums; }
.r-approx{ font-family:"Inter",sans-serif; font-size:15px; font-weight:600; color:var(--ink-soft); }
.r-unit{ font-family:"Inter",sans-serif; font-size:16px; font-weight:700; color:var(--ink); }
.r-stage{ margin:10px 0 6px !important; }
.chip{ display:inline-block; font-size:13px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; background:var(--card); color:var(--pine-deep); border-radius:999px; padding:4px 11px; }
.r-text{ font-size:14.5px; color:var(--ink); }
.r-hint{ font-size:14.5px; color:var(--ink-soft); }
.r-level{ margin:10px 0 8px !important; font-weight:700; font-size:15px; border-radius:10px; padding:9px 12px; }
.r-level.ok{ background:var(--card); color:var(--pine-deep); }
.r-level.warn{ background:#FFF4DC; color:#7A4E00; }
.r-level.alert{ background:#FDE7E5; color:#9B1C14; }
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .r-level.warn{ background:#3A2E12; color:#F6D58E; } :root:not([data-theme="light"]) .r-level.alert{ background:#3D1A17; color:#FFB4AC; } }
:root[data-theme="dark"] .r-level.warn{ background:#3A2E12; color:#F6D58E; }
:root[data-theme="dark"] .r-level.alert{ background:#3D1A17; color:#FFB4AC; }

.counter{ display:grid; justify-items:center; gap:12px; }
.tap{ width:min(220px,62vw); aspect-ratio:1; border-radius:50%; border:0; cursor:pointer; background:radial-gradient(circle at 35% 30%,var(--leaf),var(--pine-deep)); color:#fff; font:800 18px/1.2 "Baloo 2","Inter",sans-serif; box-shadow:var(--shadow), 0 18px 40px -16px rgba(11,122,90,.6); display:grid; place-content:center; gap:2px; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.tap .count{ font-size:56px; line-height:1; font-variant-numeric:tabular-nums; }
.tap:disabled{ background:var(--line); color:var(--ink-soft); box-shadow:none; cursor:not-allowed; }
.tap:focus-visible{ outline:4px solid var(--pine); outline-offset:4px; }
.tap.pulse{ animation:tp .18s ease-out; }
@keyframes tp{ from{ transform:scale(.94); } to{ transform:scale(1); } }
.clock{ font:700 18px/1 "Inter",sans-serif; font-variant-numeric:tabular-nums; color:var(--ink-soft); min-height:18px; }
.start{ justify-self:center; }
button.btn{ font-family:inherit; }

.tsec .txt{ max-width:68ch; }
.tsec .txt h2{ font-size:clamp(22px,2.8vw,27px); margin:0 0 10px; }
.tsec .txt h2:not(:first-child){ margin-top:26px; }
.tsec .txt ul{ padding-left:20px; }
.tsec .txt li{ margin:6px 0; }

@media (max-width:820px){ .thero{ grid-template-columns:1fr; gap:22px; } .thero .mascot{ display:none; } }
@media (max-width:520px){ .seg .opts{ grid-template-columns:repeat(2,minmax(0,1fr)); } form.tool{ padding:18px; } }
@media (prefers-reduced-motion:reduce){ .tap.pulse{ animation:none; } }
