/* Best Épargne — Design system v1.1 (extrait du gabarit commun des prototypes valides) */
:root{
  --bleu:#0C87D6; --bleu-fonce:#0B6FAE; --bleu-pale:#E0F2FE;
  --or:#F7A600; --or-fonce:#D98E00; --or-pale:#FEF3D7;
  --encre:#121827; --gris-700:#3F4A63; --gris-500:#5B6783; --gris-400:#7E8AA6;
  --gris-300:#B5C0D4; --gris-150:#E4EAF2; --fond:#F5F8FC; --blanc:#FFFFFF;
  --vert:#10B981; --vert-fonce:#059669; --vert-pale:#D1FAE5;
  --danger:#DC2626; --danger-pale:#FEE2E2;
  --violet:#6D28D9; --violet-pale:#EDE9FE; --rose:#DB2777; --rose-pale:#FCE7F3;
  --r-btn:8px; --r-card:16px; --r-chip:12px; --r-pill:999px;
  --ombre-carte:0 1px 3px rgba(18,24,39,.06), 0 8px 24px rgba(18,24,39,.07);
  --ombre-btn:0 4px 14px rgba(12,135,214,.30);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;color:var(--encre);background:var(--fond);min-height:100vh;line-height:1.55}
.ico{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.ico.s{width:14px;height:14px;stroke-width:2.5}
.hero{background:linear-gradient(135deg,var(--bleu) 0%,var(--bleu-fonce) 100%);color:#fff;padding:34px 20px 30px;text-align:center}
.hero .marque{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem}
.hero .marque svg{height:30px;width:auto}
.hero .marque b{color:var(--or)}
.hero h1{font-size:clamp(1.5rem,4vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin-top:12px}
.hero h1 span{color:var(--or)}
.hero p{opacity:.88;margin-top:6px;font-size:.95rem;max-width:660px;margin-left:auto;margin-right:auto}
.cadre{max-width:880px;margin:0 auto;padding:26px 18px 70px}
.carte{background:var(--blanc);border-radius:var(--r-card);box-shadow:var(--ombre-carte);padding:30px;margin-top:18px}
.centre{text-align:center}
h2.sec{font-size:1.2rem;font-weight:800;letter-spacing:-.01em;display:flex;align-items:center;gap:11px;margin-bottom:16px}
h2.sec .chip{width:42px;height:42px;border-radius:var(--r-chip);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;font-family:'Inter',sans-serif;font-weight:700;font-size:.95rem;padding:13px 26px;border-radius:var(--r-btn);transition:all .15s;text-decoration:none}
.btn-primaire{background:var(--bleu);color:#fff;box-shadow:var(--ombre-btn)}
.btn-primaire:hover{background:var(--bleu-fonce);transform:translateY(-1px)}
.btn-secondaire{background:var(--blanc);color:var(--bleu-fonce);border:2px solid var(--bleu)}
.btn-secondaire:hover{background:var(--bleu-pale)}
.btn-ghost{background:transparent;color:var(--gris-500)}
.btn-ghost:hover{background:var(--gris-150);color:var(--encre)}
.btn:focus-visible{outline:3px solid rgba(12,135,214,.45);outline-offset:2px}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);padding:6px 15px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.grille-p{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.champ label{display:flex;justify-content:space-between;font-size:.86rem;font-weight:600;margin-bottom:7px;gap:8px}
.champ label output,.champ label b{color:var(--bleu-fonce);font-variant-numeric:tabular-nums;text-align:right}
.champ input[type=text],.champ select{width:100%;padding:12px 14px;border:1.5px solid var(--gris-300);border-radius:10px;font-family:'Inter',sans-serif;font-size:.95rem;color:var(--encre);background:var(--blanc)}
.champ input[type=text]{text-align:right;font-variant-numeric:tabular-nums}
.champ input:focus,.champ select:focus{outline:none;border-color:var(--bleu);box-shadow:0 0 0 3px rgba(12,135,214,.15)}
.champ input[type=range]{width:100%;accent-color:var(--bleu);height:32px}
.champ .aide{font-size:.76rem;color:var(--gris-400);margin-top:4px}
.presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.presets button{border:1.5px solid var(--gris-300);background:var(--blanc);border-radius:var(--r-pill);padding:6px 13px;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;color:var(--gris-700);cursor:pointer}
.presets button:hover,.presets button.actif{border-color:var(--bleu);background:var(--bleu-pale);color:var(--bleu-fonce)}
.segment{display:flex;background:var(--gris-150);border-radius:10px;padding:4px;gap:4px}
.segment button{flex:1;border:none;background:transparent;border-radius:8px;padding:9px 8px;font-family:'Inter',sans-serif;font-size:.84rem;font-weight:600;color:var(--gris-500);cursor:pointer}
.segment button.actif{background:var(--blanc);color:var(--bleu-fonce);box-shadow:0 1px 4px rgba(18,24,39,.12)}
.kpi-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:18px}
.kpi{background:var(--fond);border-radius:14px;padding:16px 18px}
.kpi .lib{font-size:.72rem;font-weight:700;color:var(--gris-500);text-transform:uppercase;letter-spacing:.05em}
.kpi .val{font-size:1.28rem;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.kpi .val small{font-size:.72rem;color:var(--gris-400);font-weight:600}
.grand-resultat{text-align:center;margin-top:18px;background:var(--fond);border-radius:14px;padding:22px}
.grand-resultat .lib{font-size:.8rem;font-weight:700;color:var(--gris-500);text-transform:uppercase;letter-spacing:.06em}
.grand-resultat .val{font-size:clamp(1.7rem,5vw,2.5rem);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:4px}
.grand-resultat .sous{font-size:.92rem;color:var(--gris-500);margin-top:4px}
.grand-resultat .sous b.or{color:var(--or-fonce)}
table.tbl{width:100%;border-collapse:collapse;margin-top:14px;font-size:.86rem}
table.tbl th{background:var(--fond);text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--gris-500);padding:10px 12px;border-bottom:1px solid var(--gris-150)}
table.tbl th.num,table.tbl td.num{text-align:right;font-variant-numeric:tabular-nums}
table.tbl td{padding:10px 12px;border-bottom:1px solid var(--gris-150);color:var(--gris-700)}
table.tbl td.num{font-weight:600;color:var(--encre)}
table.tbl tr.tot td{font-weight:800;color:var(--encre);border-bottom:none;background:var(--fond)}
.lg{display:flex;align-items:center;gap:9px;font-size:.84rem;margin-top:7px}
.lg i{width:12px;height:12px;border-radius:4px;flex-shrink:0}
.lg b{margin-left:auto;font-variant-numeric:tabular-nums}
.verdict{margin-top:18px;border-radius:14px;padding:18px 20px;display:flex;gap:14px;align-items:flex-start}
.verdict .ico{width:26px;height:26px;margin-top:2px}
.verdict b{font-size:1.02rem}
.verdict p{font-size:.9rem;margin-top:3px;color:var(--gris-700)}
.conseils{margin-top:18px;border-left:4px solid var(--bleu);background:var(--bleu-pale);border-radius:0 12px 12px 0;padding:15px 18px;font-size:.9rem;color:#075985}
.conseils ul{margin:6px 0 0 20px;display:grid;gap:5px}
.avert{margin-top:20px;font-size:.8rem;color:var(--gris-500);background:var(--fond);border-radius:12px;padding:14px 18px;display:flex;gap:10px;align-items:flex-start}
.avert .ico{width:18px;height:18px;color:var(--gris-400);margin-top:1px}
.actions-fin{margin-top:24px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.pied-page{text-align:center;margin-top:30px;font-size:.85rem;color:var(--gris-400)}
.pied-page a{color:var(--bleu);font-weight:600;text-decoration:none}
.g-carte{border:1.5px solid var(--gris-150);border-radius:14px;padding:18px;margin-top:18px}
.g-carte .titre-g{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gris-400);margin-bottom:12px}
details.plier{margin-top:14px;border:1.5px solid var(--gris-150);border-radius:12px;padding:0 16px}
details.plier summary{cursor:pointer;font-weight:700;font-size:.9rem;padding:13px 0;color:var(--bleu-fonce)}
@media(max-width:620px){.carte{padding:20px}}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff}.actions-fin,.btn,.presets,.nav-portail{display:none!important}}
@keyframes apparait{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.anim{animation:apparait .3s ease}
