:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#14395c;background:#e1eaf1;font-synthesis:none;--blue:#07558f;--blue2:#0b73b8;--green:#138e57;--line:#d8e2ea;--muted:#687d8f}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}#app{max-width:740px;margin:auto;min-height:100dvh;background:#f8fbfe;box-shadow:0 0 40px #152b3d1c}.loading{padding:50px;text-align:center}.top{background:#e5eef6;padding:15px 17px 12px;display:flex;align-items:center;gap:12px;justify-content:space-between}.avatar{background:#d2e9f6;display:grid;place-items:center;width:52px;height:52px;flex:none;font-size:30px;border-radius:18px;border:2px solid #fff}.person-title{min-width:0;flex:1}.person-title strong{display:block;color:#07558f;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-title small{display:block;color:#5e7388;line-height:1.5}.wallet{text-align:right;flex:none;font-weight:800;color:#07558f;font-size:18px}.wallet small{display:block;font-size:11px;font-weight:500;color:var(--muted)}.bluebar{background:linear-gradient(95deg,#094c80,#0872af);color:#fff;min-height:60px;display:flex;align-items:center;justify-content:space-between;padding:10px 15px;gap:12px}.bluebar h1{font-size:21px;margin:0;letter-spacing:.7px;text-align:center;flex:1}.icon-btn{border:1.5px solid #ffffff88;background:transparent;color:white;border-radius:13px;min-width:41px;height:40px;font-size:23px;display:grid;place-items:center}.shell{min-height:calc(100dvh - 185px);padding:15px 14px 105px}.nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;max-width:740px;margin:auto;z-index:20;background:white;border-top:1px solid var(--line);box-shadow:0 -2px 15px #00395c0b;padding-bottom:env(safe-area-inset-bottom)}.nav button{background:white;border:0;color:#607d93;font-weight:650;font-size:11px;min-height:64px;padding:8px 2px}.nav span{display:block;font-size:23px;margin-bottom:3px}.nav .selected{color:var(--blue);background:#ebf5fc;border-top:3px solid var(--blue)}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:17px;margin-bottom:14px;box-shadow:0 3px 10px #19446b08}.card h2{font-size:19px;margin:0 0 12px}.card h3{margin:5px 0 9px;font-size:16px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px 15px}.statlabel{display:flex;justify-content:space-between;font-size:12px;margin:0 0 5px}.track{background:#e6edf0;border-radius:10px;height:10px;overflow:hidden}.track div{height:100%;border-radius:10px;background:linear-gradient(90deg,#18a46a,#56ce91)}.agebtn{display:block;width:100%;border:0;border-radius:15px;padding:17px;background:linear-gradient(110deg,#129347,#2bbd70);color:white;font-size:21px;font-weight:850;box-shadow:0 5px 0 #087444;letter-spacing:.2px;margin:13px 0 21px}.agebtn:disabled{background:#9caeaa;box-shadow:none}.age-event{border:3px solid #179a65;background:#edfff4;border-radius:17px;padding:18px;margin:12px 0 19px;box-shadow:0 4px 18px #159a6422}.age-event .eyebrow{font-size:11px;font-weight:850;letter-spacing:1.2px;text-transform:uppercase;color:#118055;margin-bottom:8px}.age-event h2{margin:0 0 10px;font-size:22px;color:#135d45}.age-event p{line-height:1.6;font-size:15px}.event-choice{display:block;width:100%;background:#fff;text-align:left;border:1px solid #80cdae;border-radius:11px;color:#155b49;padding:14px;font-weight:650;margin:9px 0}.event-choice:active{background:#cbf7e0}.section{margin:19px -14px 0;padding:8px 16px;background:#6b8295;color:white;font-weight:800;text-align:center;letter-spacing:.2px}.row{width:100%;border:0;border-bottom:1px solid #d2dfe7;background:white;color:#07558f;display:flex;align-items:center;text-align:left;gap:13px;padding:15px 10px;min-height:74px}.row .ico{width:41px;text-align:center;font-size:28px;flex:none}.row .words{flex:1;min-width:0}.row strong{display:block;font-size:16px}.row small{display:block;color:#7890a1;font-size:12px;line-height:1.4;margin-top:3px}.row .chevron{color:#4b789d;font-size:19px}.row:disabled{background:#fafafa;color:#a8acb1}.row:disabled small,.row:disabled .chevron{color:#aeb3b9}.row:not(:disabled):active{background:#ecf5fc}.btn{padding:13px 16px;border:0;border-radius:11px;background:#0875b1;color:white;font-weight:750;min-height:46px}.btn.secondary{background:#eaf2f8;border:1px solid #bcd0de;color:#155780}.btn.red{background:#b43748}.btn.green{background:#128850}.btn:disabled{background:#b7c1c8;color:white}.stack{display:grid;gap:10px;margin:13px 0}.stack .btn{width:100%;text-align:left}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions .btn{flex:1;min-width:140px}.money{font-weight:850;color:#0873ab}.muted{color:var(--muted)}.hint{color:#6c8294;font-size:13px;line-height:1.5}.label{display:block;font-weight:750;font-size:13px;color:#285a78;margin-top:12px}.field{width:100%;display:block;padding:12px 11px;border:1px solid #c5d4df;border-radius:10px;color:#193c52;background:#fff;margin:6px 0 11px;min-height:46px}.field:focus{outline:2px solid #3eacd9}.timeline{border-left:3px solid #a9c8db;margin-left:9px;padding:4px 0 4px 14px}.story{padding:11px 10px 12px;background:white;border:1px solid #e6edf1;border-radius:9px;margin:9px 0;font-size:13px;line-height:1.55}.story strong{color:#0873ab}.badge{border-radius:8px;background:#ddecf8;color:#145c8a;padding:3px 8px;display:inline-block;font-weight:750;font-size:12px}.warn{background:#fff4e6;border:1px solid #f2d6ad;border-radius:10px;padding:11px;color:#865523;font-size:13px}.success{background:#e5fff0;border:1px solid #abdfbc;border-radius:10px;padding:11px;color:#18633a;font-size:13px}.detail{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #e8eff4;font-size:14px}.detail b{text-align:right}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:#fff;border:1px solid #d3e2ec;border-radius:13px;padding:14px;text-align:left;color:#12699b;min-height:92px}.tile b{display:block;font-size:13px;margin:7px 0 3px}.tile small{display:block;color:#70869c;font-size:11px;line-height:1.4}.big{font-size:28px}.empty{text-align:center;padding:35px 15px;color:#6c849a}.overlay{position:fixed;inset:0;z-index:35;background:#092941b7;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:#fff;border-radius:18px;width:100%;max-width:520px;max-height:86dvh;overflow:auto;box-shadow:0 18px 40px #001d36aa;padding:20px;position:relative}.dialog h2{font-size:21px;padding-right:37px;margin:5px 0 11px}.dialog p{line-height:1.55}.x{position:absolute;top:12px;right:12px;border:1px solid #c6d6e0;width:36px;height:36px;border-radius:50%;background:#f2f8fa;color:#215673;font-size:25px;line-height:30px}.dialog .stack{margin-top:20px}.welcome{padding:22px 17px 100px}.hero{background:linear-gradient(130deg,#07558f,#0b9b9a);border-radius:20px;color:white;padding:23px;margin-bottom:16px}.hero h1{font-size:29px;line-height:1.14;margin:10px 0}.hero p{opacity:.9;margin-bottom:0}.chips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.chips span{background:#eaf5fb;padding:5px 9px;border-radius:9px;color:#2d6688;font-size:12px;font-weight:750}.buttonlink{border:0;background:none;text-decoration:underline;color:var(--blue)}.footer{text-align:center;color:#748a9a;font-size:12px;margin:18px 0}.pilltag{display:inline-block;padding:5px 10px;border-radius:20px;background:#f0f7fb;color:#327194;font-size:12px;font-weight:750;margin:2px}.padded{margin:10px 0}.micro{font-size:11px;color:#697f90}.divider{height:1px;background:#dfe8ef;margin:15px 0}@media(min-width:750px){.nav{position:sticky;bottom:0}.shell{min-height:70vh}.top{padding:20px}}@media(max-width:370px){.row strong{font-size:14px}.nav button{font-size:10px}.person-title strong{font-size:15px}.wallet{font-size:15px}.shell{padding-left:10px;padding-right:10px}.section{margin-left:-10px;margin-right:-10px}}


/* V8 — Palette inspirée des références visuelles fournies : bleus institutionnels, gris doux, fond clair, sans dégradés criards. */
:root{color:#1b5181;background:#e5ebf1;--blue:#075798;--blue2:#075798;--green:#159247;--line:#aab9c9;--muted:#6a7e90}
body{background:#e5ebf1}#app{background:#fff;box-shadow:none}
.top{background:#e4ebf1;border-bottom:1px solid #cad6e0;padding:12px 16px 10px}
.avatar{background:transparent;border:0;border-radius:0;font-size:33px}
.person-title strong{color:#075798;text-decoration:underline;text-decoration-color:#075798;text-underline-offset:4px}
.wallet{color:#075798}.bluebar{background:#075798;min-height:55px;padding:8px 13px}
.bluebar h1{font-size:21px;letter-spacing:.3px}.icon-btn{border-radius:50%}
.shell{background:#fff;padding:11px 13px 102px}
.nav{background:#fff;box-shadow:none;border-top:1px solid #aab9c9}
.nav .selected{background:#e8f1fa;border-top-color:#075798;color:#075798}
.card{border:1px solid #d3dce5;border-radius:8px;box-shadow:none;padding:14px}
.hero{background:#075798;border-radius:8px}.row{min-height:70px;border-bottom:1px solid #aab9c9;color:#075798;padding:13px 8px}
.row strong{font-size:17px}.row small{color:#8a919b;font-size:13px}
.row:disabled{background:#fff;color:#a5a3a6}.section{background:#77797d;margin:13px -13px 0;padding:6px 12px;letter-spacing:0}
.agebtn{background:#129b51;box-shadow:none;border-radius:8px;margin:10px 0 16px;font-size:21px}
.age-event{background:#f3f8fe;border:2px solid #075798;border-radius:10px;box-shadow:none;padding:15px}
.age-event .eyebrow{color:#075798}.age-event h2{color:#075798}
.event-choice{border-color:#a2bcd0;color:#075798;border-radius:8px;padding:13px}.event-choice:active{background:#e1edf8}
.track div{background:#15a33e}.btn{border-radius:7px;background:#075798}.btn.green{background:#159247}
.tile{border-radius:8px}.dialog{border-radius:11px}.x{border-radius:50%}
.story{border-radius:4px}.welcome{background:#fff}
@media(max-width:370px){.section{margin-left:-10px;margin-right:-10px}}

/* V9 : correction de contraste et présentation fidèle à la palette de référence.
   Le bug des réponses invisibles était le même bleu (#075798) utilisé
   pour le texte ET le fond du bouton. */
:root{--blue:#05558f;--blue2:#05558f;--line:#aeb9c4;--muted:#747d88;color:#07558f;background:#e5ebf0}
html,body{background:#e5ebf0;color:#18466e}
#app{background:#fff;min-height:100dvh;box-shadow:none}
.top{background:#e5ebf0;border-bottom:0;padding:13px 15px 12px}
.bluebar{background:#05558f;color:#fff;min-height:58px}
.bluebar .btn{background:transparent;color:#fff;border:1.5px solid #fff;border-radius:50px;padding:7px 11px;font-size:14px;white-space:nowrap}
.bluebar h1{font-size:23px;font-weight:900}
.shell{background:#fff;padding:11px 12px 100px}
.section{background:#797b7f;color:#fff;margin:15px -12px 0;font-size:14px;padding:7px}
.row{background:#fff;border-bottom:1px solid #b5bdc6;border-radius:0;padding:16px 8px;min-height:82px}
.row strong{color:#07558f;font-size:18px}.row small{color:#838b95;font-size:13px}
.row:disabled strong{color:#a9a9ab}
.card{border:1px solid #d6dde3;border-radius:7px;background:#fff;box-shadow:none}
.agebtn{background:#19a54f;border-radius:7px;box-shadow:none}
.age-event{background:#f7fbff;border:2px solid #07558f;border-radius:9px;padding:15px}
.age-event h2,.age-event .eyebrow{color:#07558f}
/* Sélecteur double volontaire : l'ancien .btn impose un fond bleu.
   Les deux couleurs sont explicitement contrastées pour Safari iPhone. */
.btn.event-choice,.age-event button.event-choice{background:#ffffff !important;color:#07558f !important;border:2px solid #9cb2c7 !important;border-radius:7px;font-weight:750;text-align:left;min-height:53px;width:100%;display:block;margin:9px 0;padding:13px 15px;-webkit-text-fill-color:#07558f !important;opacity:1 !important}
.btn.event-choice:active,.btn.event-choice:focus-visible{background:#dcecf9 !important;color:#053e6e !important;-webkit-text-fill-color:#053e6e !important}
.nav{background:#fff;border-top:1px solid #c1cbd3;box-shadow:none}.nav button{color:#07558f}.nav .selected{background:#eaf3fb}
.dialog{background:#fff;border-radius:8px}.dialog .btn{color:white}.dialog .btn.secondary{color:#07558f}
.welcome,.hero{border-radius:7px}.hero{background:#07558f}
@media(min-width:750px){#app{max-width:740px}.nav{max-width:740px}}
