/* Shared palette: ink, one action blue, white and one pastel surface. */
:root{--ink:#17324d;--navy:#2459a6;--teal:#2459a6;--muted:#5b6f82;--line:#d4dfe9;--paper:#f5f7fa;--white:#fff;--mint:#eaf0f7;--lav:#eaf0f7;--cream:#f5f7fa;--pink:#eaf0f7;--acid:#eaf0f7;--orange:#2459a6;--explain-bg:#eaf0f7;--explain-line:#d4dfe9;--gain:#087b35;--loss:#bf3140;--neutral:#5b6f82;--shadow:0 12px 36px #17324d0d;--header-height:87px;--journey-height:57px;--sticky-stack:calc(var(--header-height) + var(--journey-height))}
html{scroll-padding-top:calc(var(--sticky-stack) + 20px);background:var(--paper)}
body{background:var(--paper);color:var(--ink)}
body>header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);color:var(--ink)}
body .journey-nav{top:var(--header-height);z-index:40;background:#fff;border-color:var(--line)}
body .journey-nav .shell{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;justify-content:flex-start}
body main>section,body [id^="edit-"],body #mes-donnees{scroll-margin-top:calc(var(--sticky-stack) + 20px)}
body .editor-live{top:calc(var(--sticky-stack) + 8px);background:var(--explain-bg);border-color:var(--line);backdrop-filter:none}
body #reglages .resultcard{top:calc(var(--sticky-stack) + 105px)}
body .hero,body .section-background{background:var(--explain-bg)}
body .hero:after{display:none}
body main>section{background:transparent}
body main>section:nth-of-type(even){background:#fff}
body .hero .hero-side{background:#fff;border-color:var(--line);box-shadow:var(--shadow)}
body :is(.themebox,.pnl-theme,.country-card,.pay-card,.future-card,.program-card,.card,.source,.sourcebox,.sources-disclosure,.community-dialog,.info-dialog){background:#fff;border-color:var(--line);color:var(--ink);box-shadow:none}
body :is(.themebox,.pnl-theme,.program-theme){--theme:var(--navy)!important;--wash:var(--explain-bg)!important}
body :is(.community,.discovery,.reference-note,.info-simple,.info-panel,.info-panel:nth-child(2),.policy-method,.insurance-account,.branch-readout,.result-hero,.pnlbox.total,.pnl-theme-metrics span:last-child,.pnl-reconcile,.pay-total,.macro-head,.future-stock,.method,.method:nth-child(2),.main-lever,.editor-advanced,.orientation,.info-example,.info-calculation,.info-flow span,.branch-grid div,.demography-numbers>div,.debt-projections>div){background:var(--explain-bg);border-color:var(--line);color:var(--ink);--gain:#087b35;--loss:#bf3140;--neutral:#5b6f82}
body :is(.reference-note,.info-simple,.info-panel,.policy-method,.insurance-account,.branch-readout,.result-hero,.pnlbox.total,.pnl-theme-metrics span:last-child,.pnl-reconcile,.pay-total,.macro-head,.future-stock,.method,.orientation) :is(p,small,em,h3,strong,b,span){color:var(--ink)}
body :is(.info-simple strong,.macro-tag,.macro-badge,.resultcard .tinybadge,.result-hero .result-seal,.pay-total strong,.future-stock strong){color:var(--navy);border-color:var(--line)}
body .orientation{font-size:11px;line-height:1.5;font-weight:500}
body .resultcard,body #reglages .resultcard{background:var(--explain-bg);color:var(--ink);border:1px solid var(--line);--gain:#087b35;--loss:#bf3140;--neutral:#5b6f82}
body .resultcard :is(.cardhead h3,.cardhead p,.live-summary small,.resultlabel,.mutedwhite,.breakdown h4,.row){color:var(--ink)}
body .resultcard :is(.cardhead,.live-summary,.breakdown){border-color:var(--line)}
body .resultcard :is(.mini,.live-summary strong),body #reglages .resultcard :is(.mini,.live-summary strong){background:var(--navy);color:#fff;border-color:var(--navy);--gain:#c4ffda;--loss:#ffe0e3;--neutral:#fff}
body .resultcard .mini :is(small,b,span),body #reglages .resultcard .mini :is(small,b,span){color:#fff}
body .resultcard :is(.readme,.incomplete),body #reglages .resultcard :is(.readme,.incomplete){background:#fff;border-color:var(--line);color:var(--ink)}
body .resultcard :is(.readme,.incomplete) :is(b,strong,span){color:var(--ink)}
body .resultcard .live-summary a{color:var(--navy)}
body .balance.is-neutral{background:transparent}
body .edition,body .tinybadge,body .macro-badge{background:var(--explain-bg);color:var(--ink)}
body .account-menu{color:var(--ink)}
body .account-menu summary{background:#fff;border-color:var(--line);font-size:14px;font-weight:600}
body .account-dropdown{width:290px;max-width:calc(100vw - 32px);background:#fff;border-color:var(--line);box-shadow:var(--shadow)}
body .account-dropdown a{font:500 14px/1.5 var(--font-text);padding:11px 12px;color:var(--ink);text-transform:none;letter-spacing:0}
body .account-dropdown a:hover,body .account-menu summary:hover{background:var(--explain-bg)}
body .account-dropdown .account-email{font:400 13px/1.5 var(--font-text);padding:12px;border-top:1px solid var(--line);margin-top:6px;color:var(--muted);overflow-wrap:anywhere}
body .header-links a{font-size:13px;font-weight:600}
body .header-links a:hover,body .header-links a[href="/programmes"],body .header-links a[href="/programmes/"]{background:var(--explain-bg);color:var(--navy)}
body .community button,body .community .account-link,body .primary{background:var(--navy);border-color:var(--navy);color:#fff}
body .community button.secondary,body .community .program-view{background:#fff;color:var(--ink);border:1px solid var(--line)}
body .discovery-tabs button[aria-selected=false]{background:#fff;color:var(--ink);border:1px solid var(--line)}
body .discovery-tabs button[aria-selected=true]{background:var(--navy);color:#fff;box-shadow:none}
body input,body select,body textarea{accent-color:var(--navy)}
body :is(.program-card,.country-card) h3{font-size:23px;line-height:1.3}
body .program-card{position:relative;padding:24px;min-width:0}
body .program-card .program-card-heading{padding-right:104px;min-height:82px}
body .program-card .program-card-heading h3{overflow-wrap:anywhere;margin:8px 0 14px}
body .program-card .program-vote{position:absolute;right:18px;top:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:82px;min-height:92px;padding:10px;border-radius:12px;text-decoration:none;background:#fff;color:var(--navy);border:1px solid var(--line);font-size:12px;font-weight:600;line-height:1.3;cursor:pointer}
body .program-vote svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6}
body .program-vote strong{font:600 25px/1 var(--font-text);font-variant-numeric:tabular-nums}
body .program-card .program-vote:hover{background:var(--explain-bg);border-color:var(--navy)}
body .program-card .program-vote[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
body .program-card .program-vote:focus-visible{outline:3px solid var(--navy);outline-offset:4px}
body .program-card .program-vote-note{font-size:12px;color:var(--muted);margin:8px 0;line-height:1.6}
body .program-card .program-balance{font-family:var(--font-text)!important;font-size:30px;font-weight:600;margin:22px 0 4px}
body .program-card .program-view{display:inline-block;font-size:13px;padding:10px 14px;border-radius:8px;text-decoration:none}
body .program-card .program-actions{margin-top:18px}
body .program-grid{gap:20px}
body .program-card small{font-size:12px;line-height:1.5;color:var(--muted)}
body .program-card .program-balance-label{font-size:12px;color:var(--muted)}
body footer.mp-site-footer,body footer.mp-site-footer-light{background:var(--navy);color:#fff;padding:30px 0}
body .mp-site-footer .mp-footer-inner{width:min(1240px,calc(100% - 48px));max-width:none}
body .mp-site-footer .mp-footer-brand p,body .mp-site-footer .mp-footer-copyright,body .mp-site-footer .mp-site-version{color:#fff}
body .mp-site-footer nav a{font-size:13px}
body.legal-page{font-size:17px;line-height:1.75;background:var(--paper);color:var(--ink)}
body.legal-page header{max-width:none;padding:0}
body.legal-page main{box-sizing:border-box;width:calc(100% - 40px);max-width:880px;margin:40px auto 64px;padding:42px 48px;background:#fff;border:1px solid var(--line);border-radius:18px}
body.legal-page h1{font-size:clamp(34px,5vw,46px);color:var(--ink);margin:0 0 24px}
body.legal-page h2{font-size:24px;line-height:1.4;color:var(--ink);margin:38px 0 14px}
body.legal-page p,body.legal-page li{font-size:16px;line-height:1.8}
body.legal-page li+li{margin-top:12px}
body.legal-page a{color:var(--navy);text-underline-offset:3px;overflow-wrap:anywhere}
body.legal-page header a{color:var(--ink)}
body.legal-page footer a{color:#fff}
body.legal-page .notice{background:var(--explain-bg);border:0;border-left:3px solid var(--navy);border-radius:0 10px 10px 0;padding:18px 22px;font-size:15px}
body.legal-page .legal-intro{font-size:17px;color:var(--muted)}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px 16px;border-block:1px solid var(--line);padding:16px 0;margin:24px 0}
body.legal-page .legal-toc a{font-size:14px;text-decoration:none}
body.legal-page .privacy-account{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
body.legal-page .privacy-account p{font-size:15px}
body.legal-page [data-delete-account]{font:600 14px/1.5 var(--font-text);padding:12px 16px;border:1px solid var(--loss);border-radius:8px;background:#fff;color:var(--loss);cursor:pointer}
body.legal-page [data-privacy-login] a{display:inline-block;padding:10px 14px;background:var(--navy);color:#fff;border-radius:8px;text-decoration:none}
body .account-deletion-dialog{color:var(--ink);border-color:var(--line)}
body .account-deletion-confirm{background:var(--loss)}
body .auth-header{background:#fff}
body:has(#login-form) .brand small,body:has(#login-form) :is(.intro,.hint,.back,.account-switch,.consent,.legal,.password-visibility){color:var(--muted)}
body:has(#login-form) main{padding:36px 28px;margin:36px auto;background:#fff;border:1px solid var(--line);border-radius:18px;width:min(460px,calc(100% - 32px))}
body:has(#login-form) :is(input[type=email],input[type=password],input[type=text],.google,#message){border-color:var(--line);color:var(--ink)}
body:has(#login-form) .primary{background:var(--navy);border-color:var(--navy);color:#fff}
body:has(#login-form) .google{background:#fff;color:var(--ink)}
body:has(#login-form) #message{background:var(--explain-bg)}
body:has(#login-form) .auth-header .mp-wordmark{font-size:15px}
body .country-overview-heading,body .country-overview-bar b{color:var(--navy)}
body .country-overview-bar{background:var(--navy)}
body .country-overview-heading.debt-heading,body .country-overview-lower .country-overview-bar b{color:var(--muted)}
body .country-overview-lower .country-overview-bar{background:var(--muted)}
body .is-gain,body .result-hero b.is-gain,body .pnlbox.total b.is-gain{color:var(--gain)!important}
body .is-loss,body .result-hero b.is-loss,body .pnlbox.total b.is-loss{color:var(--loss)!important}
body .is-neutral{color:var(--neutral)!important}
@media(max-width:1000px){body #reglages .resultcard{position:static}}
@media(max-width:650px){body .nav{gap:8px}body .brand small{max-width:170px}body .account-menu summary{font-size:12px;padding:10px}body .brand .mark{width:44px;height:36px}body .header-links a{font-size:12px}body .editor-live b{font-size:16px}body.legal-page main{padding:25px 21px;margin:24px auto 40px}body.legal-page h2{font-size:22px}body .program-card{padding:20px}body .program-card .program-card-heading{padding-right:92px}body .program-card .program-vote{right:14px;top:16px;min-width:74px}body .mp-site-footer .mp-footer-inner{width:calc(100% - 32px)}body:has(#login-form) .auth-header{padding:16px}body:has(#login-form) .auth-header .mp-wordmark{font-size:11px}body:has(#login-form) main{padding:30px 22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Published cards: a ballot is the vote action, the text action opens details. */
body .published-program-card .program-card-heading{display:grid;grid-template-columns:minmax(0,1fr) 102px;gap:18px;min-height:130px;padding-right:0}
.program-vote-panel{text-align:center}
body .published-program-card .program-vote-button{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:100%;min-height:98px;padding:10px 6px;background:#fff;color:var(--navy);border:1px solid var(--line);border-radius:12px;text-decoration:none;font-size:12px;line-height:1.2;cursor:pointer}
body .published-program-card .program-vote-button:hover{background:var(--explain-bg);border-color:var(--navy)}
body .published-program-card .program-vote-button.is-selected{background:var(--navy);color:#fff;border-color:var(--navy)}
body .published-program-card .program-vote-button:disabled{background:var(--explain-bg);color:var(--muted);opacity:1;cursor:default}
.program-vote-icon{width:24px;height:24px}
body .program-vote-count{font:600 28px/1.1 var(--font-text)!important;color:inherit}
body .program-vote-period{display:block;margin-top:7px;font-size:11px;line-height:1.4;color:var(--muted)}
.program-card-result{margin:22px 0 12px;padding-top:18px;border-top:1px solid var(--line)}
.program-card-result dt{font-size:12px;color:var(--muted)}
.program-card-result dd{font:600 30px/1.4 var(--font-text);margin:2px 0 0}
body .program-vote-metadata{font-size:12px;line-height:1.6;color:var(--muted);display:grid;gap:4px;margin:10px 0}
body .program-view-button{font:500 13px/1.5 var(--font-text);display:inline-flex;justify-content:space-between;gap:18px;align-items:center;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 14px;text-decoration:none;cursor:pointer}
body .community .program-view-button{background:#fff;color:var(--ink);border:1px solid var(--line)}
body .program-view-button:hover{border-color:var(--navy);color:var(--navy)}
body .published-program-card .program-card-title h3{margin-top:10px;font-size:25px}
body main.shell>section:is(#scenarios,#resultats,#projections,#comparaisons,#comptes){background:var(--paper)}
body main.shell>section:is(#reglages,#salaires,#avenir,#programmes,#sources){background:#fff}
body .country-card :is(.country-tax,.country-debt){background:var(--explain-bg);border-color:var(--line)}
body .country-debt :is(b,small){color:var(--muted)}
body .country-debt .debt-bar i{background:var(--muted)}
body .country-tax .country-bar,body .country-debt .country-bar{background:var(--line)}
@media(max-width:650px){body .published-program-card .program-card-heading{grid-template-columns:minmax(0,1fr) 86px;gap:12px;min-height:138px}body .published-program-card .program-card-title h3{font-size:22px}}
/* Shared header layout also applies outside the simulator. */
body>header .shell.nav{box-sizing:border-box;width:min(1240px,calc(100% - 48px));max-width:none;margin:auto;padding:0;min-height:86px;height:auto;display:flex;align-items:center;justify-content:space-between;gap:18px}
body>header .brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;min-width:0}
body>header .brand .mark{display:block;width:68px;height:50px;flex:none;background:none;box-shadow:none}
body>header .brand small{display:block;font-size:11px;line-height:1.5;color:var(--muted);margin-top:5px;font-weight:400;letter-spacing:0}
body>header .nav-right{display:flex;align-items:center;gap:12px}
body>header .edition{padding:7px 10px;border-radius:99px;font-size:10px;letter-spacing:.08em;font-weight:700;white-space:nowrap}
body>header .header-links{display:flex;align-items:center;gap:6px;margin-inline:auto;padding:0 12px}
body>header .header-links a{display:block;padding:10px 12px;border-radius:9px;text-decoration:none;white-space:nowrap}
body>header .account-menu{position:relative}
body>header .account-menu summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;padding:10px 12px;border:1px solid var(--line);border-radius:9px;line-height:1.4}
body>header .account-menu summary::-webkit-details-marker{display:none}
body>header .account-menu summary svg{flex:none}
body>header #headerAccountLabel{display:block;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body>header .account-dropdown{position:absolute;right:0;top:calc(100% + 9px);padding:10px;border:1px solid var(--line);border-radius:12px;z-index:60;box-sizing:border-box}
body>header .account-dropdown a{display:block;border-radius:6px;text-decoration:none}
body>header .account-dropdown small{display:block}
@media(max-width:1000px){body>header .edition{display:none}body>header .brand small{font-size:10px;max-width:170px}body>header .brand .mp-wordmark{font-size:12px}}
@media(max-width:650px){body>header .shell.nav{width:calc(100% - 30px);min-height:114px;flex-wrap:wrap;gap:8px;padding:10px 0}body>header .brand{flex:1;gap:8px}body>header .brand .mark{width:44px;height:36px}body>header .brand .mp-wordmark{font-size:11px}body>header .brand small{font-size:9px;max-width:165px}body>header .header-links{order:3;width:100%;justify-content:center;margin:0;padding:8px 0 0;border-top:1px solid var(--line)}body>header .header-links a{flex:1;text-align:center;padding:6px;font-size:12px}body>header .account-menu summary{font-size:12px;padding:10px}body>header #headerAccountLabel{max-width:105px}body>header .nav-right{gap:0}}
@media(max-width:370px){body>header .brand small{display:none}body>header .brand .mark{width:35px}body>header .brand .mp-wordmark{font-size:10px}body>header .shell.nav{gap:5px}}
/* Anchor spacing is applied on targets once, below the two fixed bars. */
html{scroll-padding-top:0}
body>header .header-links a[href="/programmes"],body>header .header-links a[href="/programmes/"]{background:transparent;color:var(--ink)}
body>header .header-links a[aria-current="page"]{background:var(--explain-bg);color:var(--navy)}
body>header .header-links a:hover{background:var(--explain-bg);color:var(--navy)}
body :is(.trajectory-kpi,.trajectory-assumption,.chart-reading){background:var(--explain-bg);color:var(--ink)}
body .trajectory-kpi .better{color:var(--gain)}
body .trajectory-kpi .worse{color:var(--loss)}
body .trajectory-assumption a,body .future-breakdown summary{color:var(--navy)}
body .trajectory button{background:var(--explain-bg);border-color:var(--line);color:var(--ink)}
body .trajectory button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
body .trajectory-legend i{border-color:var(--navy)}
body .trajectory-legend .reference{border-color:var(--muted)}
body .country-card.country-reference{background:#fff;border-color:var(--navy)}
body .taxpayer-chart span:first-child{background:var(--navy);color:#fff}
body .taxpayer-chart span:last-child{background:var(--explain-bg);color:var(--ink)}
body .info-button{background:var(--explain-bg);border-color:var(--line);color:var(--navy)}
body :is(.pnlbox.total,.pay-total,.future-stock,.macro-head){box-shadow:none}
body .country-card.is-active{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
body .country-card [aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
body{margin:0}
/* A restrained lifted card and the same lighter debt bars in both charts. */
body .hero .hero-side{box-shadow:7px 7px 0 #b8cce7;transform:rotate(-1deg);transition:transform .2s ease,box-shadow .2s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body .hero .hero-side:hover{transform:rotate(0) translateY(-3px);box-shadow:9px 11px 0 #b8cce7}}
body .country-debt .debt-bar i,body .country-overview-lower .country-overview-bar{background:#a7c4e8}
body .country-debt :is(b,small),body .country-overview-heading.debt-heading,body .country-overview-lower .country-overview-bar b{color:var(--ink)}
body .mp-footer-logo{float:left;object-fit:contain;background:#fff;padding:3px;border-radius:5px;margin:0 14px 10px 0}
body .brand img{object-fit:contain;background:#fff}
@media(prefers-reduced-motion:reduce){body .hero .hero-side{transform:none;transition:none}}
@media(max-width:650px){body .hero .hero-side{transform:none;box-shadow:4px 4px 0 #b8cce7}}
