        *{margin:0;padding:0;box-sizing:border-box}
        /* Skip-to-content — WCAG 2.1 SC 2.4.1 */
        .skip-link{position:absolute;top:-100%;left:0;background:var(--accent);color:#fff;padding:.75rem 1.25rem;font-weight:600;z-index:9999;font-size:.9rem;text-decoration:none}
        .skip-link:focus{top:0}
        :root{
            --ink:#0a0a0a;--paper:#fafaf7;--accent:#e63946;--muted:#6b7280;
            --border:#e5e5e0;--card-bg:#f5f5f0;
            --green:#166534;--green-bg:#dcfce7;--amber:#92400e;--amber-bg:#fef3c7;--red-bg:#fee2e2;
            --livret:#3b82f6;--pea:#10b981;--av:#8b5cf6;--cto:#f59e0b;--per:#ec4899;
        }
        body{font-family:'DM Sans',sans-serif;background:var(--paper);color:var(--ink);line-height:1.6}
        h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;line-height:1.15}

        /* NAV */
        nav{position:sticky;top:0;z-index:100;background:rgba(250,250,247,0.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
        .logo{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.4rem;letter-spacing:-.5px;text-decoration:none;color:var(--ink)}
        .logo span{color:var(--accent)}
        .nav-back{font-size:.85rem;color:var(--muted);text-decoration:none;transition:color .2s}
        .nav-back:hover{color:var(--ink)}

        /* SIMULATOR */
        .simulator{max-width:780px;margin:0 auto;padding:1rem 2rem 4rem}
        .sim-header{text-align:center;margin-bottom:2rem}
        .sim-header h1{font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:-1px;margin-bottom:.5rem}
        .sim-header h1 em{font-style:normal;color:var(--accent)}
        .sim-header p{color:var(--muted);font-size:.95rem}

        /* PROGRESS */
        .progress{display:flex;align-items:center;justify-content:center;margin-bottom:2.5rem;flex-wrap:wrap;gap:.15rem}
        .progress-step{display:flex;flex-direction:column;align-items:center;gap:.35rem}
        .progress-dot{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.8rem;border:2px solid var(--border);color:var(--muted);background:var(--paper);transition:all .3s}
        .progress-step.active .progress-dot{border-color:var(--accent);color:var(--accent);background:rgba(230,57,70,.08)}
        .progress-step.done .progress-dot{border-color:var(--accent);background:var(--accent);color:#fff}
        .progress-step .plabel{font-size:.68rem;color:var(--muted);font-weight:500;white-space:nowrap}
        .progress-step.active .plabel{color:var(--ink);font-weight:600}
        .progress-line{width:36px;height:2px;background:var(--border);margin:0 .3rem;margin-bottom:1.1rem;transition:background .3s}
        .progress-line.done{background:var(--accent)}

        /* STEP */
        .step{display:none;animation:fadeIn .3s ease}
        .step.active{display:block}
        @keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
        .step h2{font-size:1.35rem;letter-spacing:-.5px;margin-bottom:.35rem}
        .step-desc{color:var(--muted);margin-bottom:1.5rem;font-size:.92rem}

        /* INPUTS */
        .input-group{margin-bottom:1.15rem}
        .input-group label{display:block;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.88rem;margin-bottom:.35rem}
        .input-wrap{display:flex;align-items:center;background:#fff;border:2px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .2s}
        .input-wrap:focus-within{border-color:var(--ink)}
        .input-wrap.error{border-color:var(--accent)}
        .input-wrap input{border:none;padding:.75rem .9rem;font-size:1rem;width:100%;outline:none;font-family:'DM Sans',sans-serif;background:transparent}
        .input-wrap input::placeholder{color:#ccc}
        .input-wrap input[type=number]::-webkit-inner-spin-button,
        .input-wrap input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
        .input-wrap input[type=number]{-moz-appearance:textfield}
        .input-suffix{padding:.75rem .9rem;color:var(--muted);font-weight:500;font-size:.82rem;white-space:nowrap;background:var(--card-bg)}
        .input-hint{display:block;font-size:.76rem;color:var(--muted);margin-top:.25rem}
        .input-hint-inline{font-size:.75rem;color:var(--muted);font-weight:400;margin-left:.4rem}

        /* ENVELOPE TOOLTIP */
        .env-tooltip-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border);color:var(--muted);font-size:.7rem;font-weight:700;cursor:help;margin-left:.35rem;transition:all .15s;line-height:1;text-decoration:none;vertical-align:middle;position:relative;top:-1px;font-family:'DM Sans',sans-serif}
        .env-tooltip-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--card-bg)}

        /* INFO TIP (tooltip for result labels) */
        .info-tip{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border);color:var(--muted);font-size:.65rem;font-weight:700;cursor:help;margin-left:.35rem;transition:all .15s;line-height:1;position:relative;top:-1px;font-family:'DM Sans',sans-serif;position:relative}
        .info-tip:hover{border-color:var(--accent);color:var(--accent)}
        .info-tip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:#1e1e2e;color:#fff;font-size:.72rem;font-weight:500;padding:.5rem .7rem;border-radius:7px;white-space:nowrap;max-width:240px;white-space:normal;text-align:left;line-height:1.4;pointer-events:none;opacity:0;transition:opacity .15s;z-index:100;box-shadow:0 4px 12px rgba(0,0,0,.18)}
        .info-tip:hover::after{opacity:1}

        /* TOGGLE PILLS */
        .pill-group{display:flex;gap:.5rem;margin-bottom:1.15rem;flex-wrap:wrap}
        .pill{padding:.55rem 1.1rem;border:2px solid var(--border);border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;background:var(--paper);transition:all .2s;color:var(--muted);user-select:none}
        .pill:hover{border-color:var(--ink);color:var(--ink)}
        .pill.on{border-color:var(--accent);background:rgba(230,57,70,.06);color:var(--accent)}

        /* TOTAL BAR */
        .total-bar{display:flex;justify-content:space-between;align-items:center;background:var(--card-bg);padding:.8rem 1.1rem;border-radius:8px;margin:1rem 0 .5rem;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.9rem}
        .total-bar .tv{font-size:1.1rem;color:var(--accent)}

        /* CALLOUT */
        .callout{background:rgba(59,130,246,.06);border:1px solid rgba(59,130,246,.15);border-radius:8px;padding:.75rem 1rem;font-size:.82rem;color:#1e40af;margin:1rem 0;line-height:1.5}
        .callout-warn{background:rgba(230,57,70,.06);border-color:rgba(230,57,70,.15);color:var(--accent)}
        .callout-ok{background:rgba(22,101,52,.06);border-color:rgba(22,101,52,.15);color:var(--green)}

        /* ENVELOPE CARDS */
        .env-cards{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}
        .env-card{border:2px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .2s}
        .env-card.on{border-color:var(--ink)}
        .env-header{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;cursor:pointer;user-select:none}
        .env-left{display:flex;align-items:center;gap:.6rem}
        .env-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
        .env-name{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.9rem}
        .env-tag{font-size:.68rem;color:var(--muted);padding:.15rem .5rem;background:var(--card-bg);border-radius:4px;white-space:nowrap}
        .env-check{width:22px;height:22px;border-radius:6px;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all .2s;flex-shrink:0}
        .env-card.on .env-check{border-color:var(--accent);background:var(--accent);color:#fff}
        .env-body{display:none;padding:0 1rem 1rem;border-top:1px solid var(--border);margin-top:0}
        .env-card.on .env-body{display:block}
        .env-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.85rem}
        .env-grid .input-group{margin-bottom:0}
        .alloc-bar{display:flex;justify-content:space-between;align-items:center;background:var(--card-bg);padding:.7rem 1rem;border-radius:8px;margin-top:.75rem;font-size:.85rem;font-family:'Space Grotesk',sans-serif;font-weight:600}
        .alloc-ok{color:var(--green)}
        .alloc-warn{color:var(--accent)}

        /* CUSTOM ENVELOPES */
        .custom-env-sep{margin:1.25rem 0 .5rem;display:flex;align-items:center;gap:.75rem;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
        .custom-env-sep::after{content:'';flex:1;height:1px;background:var(--border)}
        .custom-env-hint{font-size:.8rem;color:var(--muted);margin-bottom:.75rem}
        .btn-add-env{display:flex;align-items:center;gap:.4rem;padding:.65rem 1rem;border:2px dashed var(--border);border-radius:8px;background:transparent;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;color:var(--muted);transition:all .2s;width:100%;justify-content:center;margin-top:.5rem}
        .btn-add-env:hover{border-color:var(--ink);color:var(--ink)}
        .env-card-custom{border:2px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:.75rem}
        .env-custom-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--card-bg)}
        .env-custom-name-label{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.88rem}
        .env-custom-tag{font-size:.68rem;color:var(--muted);padding:.15rem .5rem;background:#fff;border-radius:4px;white-space:nowrap}
        .btn-del-env{background:none;border:none;cursor:pointer;color:var(--muted);font-size:1rem;padding:.2rem .5rem;border-radius:4px;transition:color .15s;line-height:1;font-weight:700}
        .btn-del-env:hover{color:var(--accent)}
        .env-custom-body{padding:.75rem 1rem 1rem}
        .env-custom-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
        .env-custom-grid .input-group{margin-bottom:0}

        /* DURATION SLIDER */
        .slider-wrap{margin:1.5rem 0}
        .slider-wrap input[type=range]{-webkit-appearance:none;width:100%;height:6px;border-radius:3px;background:var(--border);outline:none}
        .slider-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
        .slider-wrap input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
        .slider-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:.3rem}
        .slider-val{text-align:center;font-family:'Space Grotesk',sans-serif;font-size:2rem;font-weight:700;color:var(--accent);margin-bottom:.25rem}
        .slider-val small{font-size:1rem;font-weight:500;color:var(--muted)}

        /* RECAP */
        .recap{background:var(--card-bg);border-radius:10px;padding:1.2rem;margin-top:1.5rem}
        .recap h4{font-size:.85rem;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem}
        .recap-row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.9rem}
        .recap-row strong{font-family:'Space Grotesk',sans-serif}
        .recap-divider{border:none;border-top:1px solid var(--border);margin:.5rem 0}

        /* BUTTONS */
        .step-actions{display:flex;justify-content:space-between;margin-top:1.75rem;gap:1rem}
        .btn-next,.btn-go{background:var(--ink);color:var(--paper);border:none;padding:.8rem 1.8rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .15s,opacity .15s;margin-left:auto}
        .btn-next:hover,.btn-go:hover{transform:translateY(-1px);opacity:.9}
        .btn-go{background:var(--accent)}
        .btn-back{background:none;border:2px solid var(--border);padding:.8rem 1.3rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.95rem;cursor:pointer;color:var(--muted);transition:border-color .2s,color .2s}
        .btn-back:hover{border-color:var(--ink);color:var(--ink)}

        /* ===== RESULTS ===== */
        #results{display:none}
        .res-header{text-align:center;margin-bottom:2rem;padding-top:.5rem}
        .res-header h2{font-size:clamp(1.4rem,3.5vw,2rem);letter-spacing:-1px;margin-bottom:.5rem}
        .res-header h2 em{font-style:normal;color:var(--accent)}
        .res-header p{color:var(--muted);font-size:.95rem;max-width:550px;margin:0 auto}

        /* POST-SIM BANNER */
        .post-sim-banner{margin:2rem 0;border-radius:16px;border:1.5px solid var(--border);background:#fff;overflow:hidden;box-shadow:0 2px 12px rgba(10,10,10,.06)}
        .psb-header{background:linear-gradient(135deg,#0a0a0a 0%,#1a1a2e 100%);color:#fff;padding:1.5rem 1.75rem 1.2rem}
        .psb-header h3{font-family:'Space Grotesk',sans-serif;font-size:1.15rem;font-weight:700;letter-spacing:-.3px;margin-bottom:.3rem}
        .psb-header p{font-size:.85rem;opacity:.75}
        .psb-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border)}
        @media(max-width:768px){.psb-kpis{grid-template-columns:repeat(2,1fr)}}
        @media(max-width:360px){.psb-kpis{grid-template-columns:1fr}}
        .psb-kpi{background:#fff;padding:.9rem 1.1rem;text-align:center;min-width:0;overflow-wrap:break-word}
        .psb-kpi-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;margin-bottom:.25rem}
        .psb-kpi-val{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.2rem;color:#0a0a0a;line-height:1.2}
        .psb-kpi-val.accent{color:var(--accent)}
        .psb-kpi-val.green{color:#166534}
        .psb-upgrade{padding:.9rem 1.75rem 0}
        .psb-upgrade-cta{text-align:center;padding:1rem 1.25rem;background:linear-gradient(135deg,#fff5f5 0%,#fef2f2 100%);border:1px solid #fca5a5;border-radius:12px}
        .psb-upgrade-headline{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.95rem;color:#7f1d1d;margin-bottom:.3rem}
        .psb-upgrade-sub{font-size:.78rem;color:#991b1b;line-height:1.4;margin-bottom:.75rem}
        .psb-upgrade-btn{display:inline-block;padding:.6rem 1.4rem;background:#e63946;color:white;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;text-decoration:none;transition:background .15s}
        .psb-upgrade-btn:hover{background:#c9303c}
        .psb-body{padding:1.5rem 1.75rem;display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
        @media(max-width:640px){.psb-body{grid-template-columns:1fr}}
        .psb-email{display:flex;flex-direction:column;gap:.6rem}
        .psb-email-title{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.9rem;color:#0a0a0a}
        .psb-email-desc{font-size:.82rem;color:var(--muted);line-height:1.4}
        .psb-email-form{display:flex;gap:.5rem;flex-wrap:wrap}
        .psb-email-input{flex:1;min-width:160px;border:1.5px solid var(--border);border-radius:8px;padding:.55rem .85rem;font-size:.88rem;font-family:'DM Sans',sans-serif;outline:none;transition:border-color .2s}
        .psb-email-input:focus{border-color:#0a0a0a}
        .psb-email-btn{padding:.55rem 1.1rem;background:#0a0a0a;color:#fff;border:none;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:opacity .15s}
        .psb-email-btn:hover{opacity:.85}
        .psb-email-btn:disabled{opacity:.5;cursor:default}
        .psb-email-msg{font-size:.8rem;font-weight:500}
        .psb-email-msg.success{color:#166534}
        .psb-email-msg.error{color:#dc2626}
        .psb-share{display:flex;flex-direction:column;gap:.6rem}
        .psb-share-title{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.9rem;color:#0a0a0a}
        .psb-share-desc{font-size:.82rem;color:var(--muted);line-height:1.4;font-style:italic}
        .psb-share-btns{display:flex;gap:.5rem;flex-wrap:wrap}
        .psb-share-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;cursor:pointer;text-decoration:none;border:1.5px solid;transition:all .15s;white-space:nowrap}
        .psb-share-btn.twitter{background:#000;color:#fff;border-color:#000}
        .psb-share-btn.twitter:hover{opacity:.85}
        .psb-share-btn.linkedin{background:#0077b5;color:#fff;border-color:#0077b5}
        .psb-share-btn.linkedin:hover{opacity:.85}
        .psb-rgpd{font-size:.68rem;color:var(--muted);margin-top:.1rem}

        /* METRIC CARDS */
        .mcards{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:2rem}
        .mcard{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1.1rem}
        .mcard-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500;margin-bottom:.3rem}
        .mcard-val{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.35rem;line-height:1.2}
        .mcard-sub{font-size:.78rem;color:var(--muted);margin-top:.15rem}
        .mcard-accent .mcard-val{color:var(--accent)}

        /* ENV RESULT CARDS */
        .env-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:2rem}
        .env-res{background:#fff;border-radius:10px;padding:1rem;border-left:4px solid var(--border)}
        .env-res-name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.88rem;margin-bottom:.6rem}
        .env-res-row{display:flex;justify-content:space-between;font-size:.8rem;padding:.15rem 0}
        .env-res-row span:last-child{font-weight:600;font-family:'Space Grotesk',sans-serif}

        /* CHART */
        .chart-sec{margin-bottom:2rem}
        .chart-sec h3{font-size:1.05rem;letter-spacing:-.3px;margin-bottom:.75rem}
        .chart-legend{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}
        .legend-item{display:flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--muted)}
        .legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
        .legend-line{width:16px;height:2px;flex-shrink:0}
        .chart-box{background:#fff;border-radius:12px;border:1px solid var(--border);padding:.75rem}
        .chart-box svg{width:100%;height:auto;display:block}

        /* TABLE */
        .detail-sec{margin-bottom:2rem}
        .detail-btn{width:100%;background:var(--card-bg);border:none;padding:.85rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .2s}
        .detail-btn:hover{background:var(--border)}
        .tscroll{overflow-x:auto;margin-top:.75rem}
        .tscroll table td,.tscroll table th{min-width:0}
        #dtable table{width:100%;border-collapse:collapse;font-size:.8rem}
        #dtable th{text-align:left;padding:.55rem .6rem;border-bottom:2px solid var(--border);font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);white-space:nowrap}
        #dtable td{padding:.45rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}
        #dtable .pos{color:var(--green)}
        #dtable .neg{color:var(--accent)}

        /* FISCAL INFO */
        .fiscal-sec{background:var(--card-bg);border-radius:10px;padding:1.2rem;margin-bottom:2rem}
        .fiscal-sec h3{font-size:.95rem;margin-bottom:.75rem;letter-spacing:-.3px}
        .fiscal-row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.85rem}
        .fiscal-row strong{font-family:'Space Grotesk',sans-serif}

        /* ACTIONS */
        .ractions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;padding:1.5rem 0}
        .btn-restart{background:none;border:2px solid var(--border);padding:.7rem 1.5rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.9rem;cursor:pointer;color:var(--muted);transition:all .2s;min-height:44px}
        .btn-restart:hover{border-color:var(--ink);color:var(--ink)}
        .ractions-top{padding-bottom:.75rem;padding-top:0}
        @media(max-width:640px){.ractions-top button{width:100%;justify-content:center}}

        /* STICKY MOBILE RESTART — visible only on mobile when scrolled past top actions */
        #stickyRestart{display:none;position:fixed;bottom:0;left:0;right:0;z-index:900;padding:.75rem 1rem;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid var(--border);box-shadow:0 -2px 12px rgba(0,0,0,.08);text-align:center;transition:transform .25s ease}
        #stickyRestart.hidden{transform:translateY(100%)}
        #stickyRestart button{background:var(--ink);color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.95rem;cursor:pointer;min-height:48px;width:100%;max-width:400px;transition:background .2s}
        #stickyRestart button:hover{background:#333}
        @media(min-width:769px){#stickyRestart{display:none !important}}
        @media(max-width:768px){#results{padding-bottom:5rem}}

        /* FOOTER */
        footer{max-width:1200px;margin:0 auto;padding:2rem;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
        .footer-left{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.9rem}
        .footer-right{font-size:.8rem;color:var(--muted)}

        /* ===== PREMIUM FEATURES ===== */
        .premium-sec{margin-top:2.5rem;border-top:2px solid var(--border);padding-top:2rem}
        .premium-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap;gap:.75rem}
        .premium-header h3{font-size:1.15rem;letter-spacing:-.3px}
        .premium-header h3 em{font-style:normal;color:var(--accent)}

        /* PDF / Excel Buttons */
        .pdf-btn,.excel-btn{display:inline-flex;align-items:center;gap:.4rem;border:none;padding:.6rem 1.2rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;cursor:pointer;transition:transform .15s,opacity .15s}
        .pdf-btn{background:var(--ink);color:var(--paper)}
        .excel-btn{background:#1d6f42;color:#fff}
        .pdf-btn:hover,.excel-btn:hover{transform:translateY(-1px);opacity:.9}
        .pdf-btn svg,.excel-btn svg{flex-shrink:0}
        .export-btns{display:flex;gap:.5rem;flex-wrap:wrap}

        /* Premium Tabs */
        .ptabs{display:flex;gap:.4rem;margin-bottom:1.5rem;flex-wrap:wrap;padding-bottom:.3rem}
        .ptab-btn{padding:.55rem 1rem;border:2px solid var(--border);border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.78rem;cursor:pointer;background:var(--paper);transition:all .2s;color:var(--muted);white-space:nowrap;flex-shrink:0}
        .ptab-btn:hover{border-color:var(--ink);color:var(--ink)}
        .ptab-btn.active{border-color:var(--accent);background:rgba(230,57,70,.06);color:var(--accent)}
        .ptab-content{display:none;animation:fadeIn .3s ease}

        /* Premium Card */
        .premium-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:1.25rem;margin-bottom:1rem}

        /* Score */
        .score-card{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}
        .score-header{display:flex;gap:1.5rem;align-items:center;flex:1;min-width:260px}
        .score-circle{width:120px;height:120px;position:relative;flex-shrink:0}
        .score-circle svg{width:100%;height:100%}
        .score-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
        .score-val{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:2rem;line-height:1}
        .score-of{font-size:.85rem;color:var(--muted);display:block}
        .score-info{flex:1;min-width:200px}
        .score-label{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.2rem;margin-bottom:.5rem}
        .score-advice p{font-size:.88rem;color:var(--muted);line-height:1.5;margin-bottom:.3rem}
        .score-details{width:100%;display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}
        .score-detail-row{background:var(--card-bg);border-radius:8px;padding:.75rem 1rem}
        .sd-header{display:flex;justify-content:space-between;margin-bottom:.3rem}
        .sd-label{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem}
        .sd-score{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;color:var(--muted)}
        .sd-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}
        .sd-fill{height:100%;border-radius:3px;transition:width 1s ease}
        .sd-desc{font-size:.78rem;color:var(--muted);margin-top:.25rem}
        /* Score actionable levers */
        .score-levers{width:100%;margin-top:.75rem;background:linear-gradient(135deg,#f0fdf4 0%,#ecfdf5 100%);border:1px solid #bbf7d0;border-radius:12px;padding:1rem 1.1rem}
        .score-levers-title{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.82rem;color:#166534;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.65rem}
        .score-levers-list{display:flex;flex-direction:column;gap:.5rem}
        .score-lever-item{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;background:white;border-radius:8px;padding:.55rem .75rem;border:1px solid #d1fae5}
        .score-lever-action{font-size:.84rem;color:#1a1a2e;line-height:1.4;flex:1}
        .score-lever-pts{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.82rem;color:#059669;white-space:nowrap;background:#d1fae5;padding:.2rem .5rem;border-radius:20px;flex-shrink:0;margin-top:.05rem}

        /* Engagement card — single-action message for score < 40 */
        .engagement-card{display:flex;align-items:flex-start;gap:1rem;margin-top:.75rem;padding:.9rem 1.1rem;background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);border:1px solid #93c5fd;border-radius:12px}
        .ec-icon{font-size:1.6rem;flex-shrink:0;line-height:1}
        .ec-body{flex:1}
        .ec-action{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.95rem;color:#1e3a5f;line-height:1.35;margin-bottom:.3rem}
        .ec-sub{font-size:.78rem;color:#4b6a8a;line-height:1.4}
        .ec-cta-btn{display:inline-block;margin-top:.7rem;padding:.55rem 1.1rem;background:#e63946;color:white;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;text-decoration:none;transition:background 0.15s}
        .ec-cta-btn:hover{background:#c9303c}

        /* Stress Tests */
        .stress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem}
        .stress-item{background:var(--card-bg);border-radius:10px;padding:1rem;border:1px solid var(--border)}
        .stress-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}
        .stress-icon{font-size:1.2rem}
        .stress-name{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.9rem}
        .stress-desc{font-size:.78rem;color:var(--muted);margin-bottom:.75rem;line-height:1.4}
        .stress-metrics{display:flex;gap:1rem;margin-bottom:.5rem}
        .stress-metric{flex:1}
        .sm-label{display:block;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:.15rem}
        .sm-value{display:block;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.95rem}
        .sm-delta{display:block;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.78rem}
        .stress-verdict{padding:.35rem .7rem;border-radius:6px;font-size:.75rem;font-weight:600;text-align:center;font-family:'Space Grotesk',sans-serif}
        .stress-fi{font-size:.75rem;color:var(--muted);margin-top:.4rem;text-align:center}

        /* Tax Optimizer */
        .optim-alloc{margin-bottom:1.25rem}
        .optim-alloc h4{font-size:.88rem;margin-bottom:.75rem;letter-spacing:-.2px}
        .optim-bar{display:flex;border-radius:8px;overflow:hidden;height:32px;margin-bottom:1rem}
        .optim-segment{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.72rem;font-weight:700;font-family:'Space Grotesk',sans-serif;transition:width .5s ease;min-width:0}
        .optim-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin-bottom:1rem}
        .optim-card{border:1px solid var(--border);border-radius:8px;padding:.7rem .85rem}
        .oc-header{display:flex;align-items:center;gap:.4rem;border-left:3px solid;padding-left:.5rem;margin-bottom:.3rem}
        .oc-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
        .oc-name{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;flex:1}
        .oc-alloc{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.9rem;color:var(--accent)}
        .oc-reason{font-size:.72rem;color:var(--muted);line-height:1.35}
        .optim-saving{background:var(--green-bg);color:var(--green);padding:.7rem 1rem;border-radius:8px;font-size:.88rem;text-align:center;font-family:'Space Grotesk',sans-serif}
        .optim-explain{margin-bottom:1.25rem}
        .optim-explain h4{font-size:.88rem;margin-bottom:.5rem}
        .optim-tip{background:rgba(59,130,246,.05);border-left:3px solid #3b82f6;padding:.55rem .85rem;border-radius:0 6px 6px 0;font-size:.82rem;color:#1e40af;line-height:1.45;margin-bottom:.4rem}
        .optim-compare h4{font-size:.88rem;margin-bottom:.5rem}
        .optim-table{width:100%;border-collapse:collapse;font-size:.82rem}
        .optim-table th,.optim-table td{min-width:0}
        .optim-table th{text-align:left;padding:.5rem .6rem;border-bottom:2px solid var(--border);font-family:'Space Grotesk',sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
        .optim-table td{padding:.45rem .6rem;border-bottom:1px solid var(--border)}

        /* Comparator */
        .comp-save{display:flex;gap:.5rem;margin-bottom:1.25rem;flex-wrap:wrap}
        .comp-input{border:2px solid var(--border);border-radius:8px;padding:.55rem .85rem;font-size:.88rem;font-family:'DM Sans',sans-serif;flex:1;min-width:180px;outline:none;transition:border-color .2s}
        .comp-input:focus{border-color:var(--ink)}
        .comp-btn{background:var(--accent);color:#fff;border:none;padding:.55rem 1rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;cursor:pointer;white-space:nowrap;transition:opacity .15s}
        .comp-btn:hover{opacity:.9}
        .comp-empty{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:.9rem}
        .comp-table-wrap{overflow-x:auto}
        .comp-table{width:100%;border-collapse:collapse;font-size:.82rem;table-layout:fixed}
        .comp-table th,.comp-table td{min-width:0;word-wrap:break-word}
        .comp-table th{text-align:left;padding:.55rem .6rem;border-bottom:2px solid var(--border);font-family:'Space Grotesk',sans-serif;font-size:.78rem;color:var(--muted)}
        .comp-table td{padding:.45rem .6rem;border-bottom:1px solid var(--border)}
        .comp-th{display:flex;align-items:center;gap:.3rem}
        .comp-del{background:none;border:none;color:#dc2626;font-size:1.1rem;cursor:pointer;padding:0 .2rem;line-height:1}
        .comp-best{background:var(--green-bg);font-weight:600;color:var(--green)}
        .comp-envs{font-size:.75rem;line-height:1.4}
        .comp-reco{background:rgba(230,57,70,.06);border:1px solid rgba(230,57,70,.15);border-radius:8px;padding:.7rem 1rem;font-size:.85rem;margin-top:.75rem;line-height:1.5}

        /* Timeline */
        .tl-add{display:flex;gap:.4rem;margin-bottom:1rem;flex-wrap:wrap}
        .tl-input{border:2px solid var(--border);border-radius:8px;padding:.5rem .75rem;font-size:.85rem;font-family:'DM Sans',sans-serif;outline:none;transition:border-color .2s}
        .tl-input:focus{border-color:var(--ink)}
        .tl-input-sm{width:80px}
        .tl-btn{background:var(--ink);color:var(--paper);border:none;padding:.5rem 1rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.82rem;cursor:pointer;white-space:nowrap;transition:opacity .15s}
        .tl-btn:hover{opacity:.9}
        .tl-scroll{overflow-x:auto;margin-bottom:.75rem}
        .tl-svg{width:100%;min-width:500px;height:auto}
        .tl-legend{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
        .tl-leg-item{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:var(--muted)}
        .tl-leg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
        .tl-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.4rem}
        .tl-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--card-bg);border-radius:6px;font-size:.8rem}
        .tl-time{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.75rem;color:var(--accent);min-width:40px}
        .tl-name{flex:1;font-weight:500}
        .tl-val{font-family:'Space Grotesk',sans-serif;font-weight:600;color:var(--muted)}

        /* Dashboard */
        .dash-empty{text-align:center;padding:2rem 1rem;color:var(--muted)}
        .dash-compare{background:var(--card-bg);border-radius:10px;padding:1rem;margin-bottom:1rem}
        .dash-compare h4{font-size:.88rem;margin-bottom:.65rem}
        .dash-metrics{display:flex;gap:1.5rem;flex-wrap:wrap}
        .dash-metric{flex:1;min-width:120px}
        .dm-label{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:.15rem}
        .dm-delta{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.1rem}
        .dash-chart{margin-bottom:1rem;background:var(--card-bg);border-radius:10px;padding:1rem}
        .dash-chart h4{font-size:.88rem;margin-bottom:.5rem}
        .dash-table-wrap{margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch}
        .dash-table-wrap h4{font-size:.88rem;margin-bottom:.5rem}
        .dash-table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:480px}
        .dash-table th,.dash-table td{min-width:0}
        .dash-table th{text-align:left;padding:.5rem .6rem;border-bottom:2px solid var(--border);font-family:'Space Grotesk',sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
        .dash-table td{padding:.4rem .6rem;border-bottom:1px solid var(--border)}
        .dash-actions{text-align:right;padding-top:.5rem}
        .dash-clear{background:none;border:1px solid var(--border);padding:.4rem .8rem;border-radius:6px;font-size:.78rem;color:var(--muted);cursor:pointer;transition:all .2s;font-family:'Space Grotesk',sans-serif}
        .dash-clear:hover{border-color:#dc2626;color:#dc2626}

        /* Parcours de remplissage */
        .parcours-sec{margin-bottom:1.5rem}
        .parcours-steps{display:flex;flex-direction:column;gap:.6rem}
        .parcours-step{display:flex;align-items:flex-start;gap:.85rem;padding:.85rem 1rem;border-radius:10px;border:1px solid var(--border);background:#fff;transition:opacity .2s}
        .parcours-done{border-color:rgba(22,101,52,.3);background:rgba(22,101,52,.04)}
        .parcours-active{border-color:rgba(0,0,0,.15);background:#fff}
        .parcours-idle{opacity:.55}
        .parcours-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.8rem;flex-shrink:0;margin-top:.05rem}
        .parcours-body{flex:1;min-width:0}
        .parcours-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;margin-bottom:.2rem}
        .parcours-title strong{font-family:'Space Grotesk',sans-serif;font-size:.88rem}
        .parcours-sub{font-size:.72rem;color:var(--muted);line-height:1.3}
        .parcours-detail{font-size:.8rem;color:var(--ink);line-height:1.45}
        /* AV Succession bloc */
        .av-succ-bloc{display:flex;gap:.85rem;align-items:flex-start;background:rgba(139,92,246,.05);border:1px solid rgba(139,92,246,.2);border-radius:10px;padding:1rem 1.1rem;margin-bottom:1.25rem}
        .av-succ-icon{font-size:1.5rem;flex-shrink:0}
        /* AV vs CTO Simulator */
        .avcto-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1rem}
        @media(max-width:600px){.avcto-form{grid-template-columns:1fr}}
        .avcto-banner{padding:.8rem 1rem;border-radius:8px;font-size:.88rem;margin-bottom:1rem;border:1px solid}
        .avcto-ok{background:rgba(22,101,52,.06);border-color:rgba(22,101,52,.25);color:#166534}
        .avcto-warn{background:rgba(146,64,14,.06);border-color:rgba(146,64,14,.2);color:var(--amber)}
        .avcto-table-wrap{overflow-x:auto}
        .avcto-table{width:100%;border-collapse:collapse;font-size:.82rem;min-width:500px}
        .avcto-table th,.avcto-table td{min-width:0}
        .avcto-table th{text-align:right;padding:.5rem .6rem;border-bottom:2px solid var(--border);font-family:'Space Grotesk',sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}
        .avcto-table th:first-child{text-align:left}
        .avcto-table td{padding:.42rem .6rem;border-bottom:1px solid var(--border);text-align:right}
        .avcto-table td:first-child{text-align:left;font-weight:600}
        /* Alertes personnalisées */
        .alertes-list{display:flex;flex-direction:column;gap:.6rem}
        .alerte-item{display:flex;align-items:flex-start;gap:.85rem;padding:.9rem 1rem;border-radius:10px;border:1px solid}
        .alerte-warn{background:rgba(146,64,14,.05);border-color:rgba(146,64,14,.2)}
        .alerte-action{background:rgba(230,57,70,.04);border-color:rgba(230,57,70,.2)}
        .alerte-info{background:rgba(59,130,246,.05);border-color:rgba(59,130,246,.2)}
        .alerte-done{background:rgba(22,101,52,.05);border-color:rgba(22,101,52,.2)}
        .alerte-icon{font-size:1.2rem;flex-shrink:0;margin-top:.05rem}
        .alerte-body{flex:1}
        .alerte-title{display:block;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.88rem;margin-bottom:.25rem}
        .alerte-msg{font-size:.82rem;line-height:1.5;color:var(--ink)}

        /* ===== RENTE SIMULATOR ===== */
        .rente-sec{margin-top:2.5rem;border-top:2px solid var(--border);padding-top:2rem}
        .rente-header{text-align:center;margin-bottom:1.5rem}
        .rente-header h3{font-size:1.2rem;letter-spacing:-.5px;margin-bottom:.35rem}
        .rente-header h3 em{font-style:normal;color:var(--accent)}
        .rente-header p{color:var(--muted);font-size:.88rem}
        .rente-form-card{background:var(--card-bg);border-radius:12px;padding:1.5rem;margin-bottom:1rem}
        .rente-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.5rem}
        .rente-btn{background:var(--accent);color:#fff;border:none;padding:.85rem 2rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .15s,opacity .15s;width:100%;margin-top:1rem}
        .rente-btn:hover{transform:translateY(-1px);opacity:.9}
        .rente-alert{padding:.85rem 1.1rem;border-radius:8px;font-size:.88rem;margin-bottom:1.5rem;font-weight:500;border:1px solid}
        .rente-alert.danger{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.2);color:#dc2626}
        .rente-alert.ok{background:rgba(22,101,52,.07);border-color:rgba(22,101,52,.2);color:var(--green)}
        .rente-alert.warn{background:rgba(146,64,14,.07);border-color:rgba(146,64,14,.2);color:var(--amber)}
        .rente-mcards{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem}
        @media(max-width:600px){.rente-grid{grid-template-columns:1fr}.rente-mcards{grid-template-columns:1fr}.rente-scenarios-grid{grid-template-columns:1fr !important}}

        /* ===== BENCHMARK SECTION ===== */
        .benchmark-sec{margin-top:2.5rem;border-top:2px solid var(--border);padding-top:2rem}
        .benchmark-hdr{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1.5rem;flex-wrap:wrap}
        .benchmark-hdr h3{font-family:'Space Grotesk',sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:-.3px}
        .benchmark-hdr h3 em{font-style:normal;color:var(--accent)}
        .benchmark-sub{color:var(--muted);font-size:.82rem;margin-top:.1rem}
        .benchmark-grid{display:flex;flex-direction:column;gap:1.1rem}
        .bm-item{background:#fff;border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.25rem}
        .bm-item-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:.55rem;flex-wrap:wrap;gap:.3rem}
        .bm-item-label{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.87rem;color:var(--ink)}
        .bm-badge{font-size:.7rem;font-weight:700;font-family:'Space Grotesk',sans-serif;padding:.18rem .65rem;border-radius:20px;letter-spacing:.02em;white-space:nowrap}
        .bm-badge.green{background:var(--green-bg);color:var(--green)}
        .bm-badge.orange{background:var(--amber-bg);color:var(--amber)}
        .bm-badge.red{background:var(--red-bg);color:#dc2626}
        .bm-vals{display:flex;justify-content:space-between;margin-bottom:.45rem;font-size:.82rem;flex-wrap:wrap;gap:.2rem}
        .bm-vals .uval{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.93rem}
        .bm-vals .fval{color:var(--muted)}
        .gauge-track{background:#f0ede8;border-radius:8px;height:9px;position:relative;overflow:hidden;margin:.3rem 0}
        .gauge-fill{height:100%;border-radius:8px;transition:width .7s cubic-bezier(.25,.8,.25,1)}
        .gauge-median{position:absolute;top:-2px;bottom:-2px;width:2px;background:rgba(0,0,0,.22);border-radius:2px}
        .bm-source{font-size:.67rem;color:var(--muted);margin-top:.4rem;font-style:italic}
        .bm-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:.45rem 0 .3rem}
        .bm-tag{font-size:.71rem;padding:.16rem .55rem;border-radius:20px;font-weight:600;border:1px solid}
        .bm-tag.have{background:var(--green-bg);border-color:rgba(22,101,52,.2);color:var(--green)}
        .bm-tag.miss{background:#f5f5f0;border-color:var(--border);color:var(--muted)}
        .bm-patrim-rows{display:flex;flex-direction:column;gap:.5rem;margin:.4rem 0}
        .bm-patrim-row-label{display:flex;justify-content:space-between;font-size:.74rem;margin-bottom:.22rem;color:var(--muted)}
        .bm-share-btn{display:inline-flex;align-items:center;gap:.35rem;margin-top:.9rem;padding:.5rem 1.1rem;background:var(--ink);color:#fff;border:none;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-size:.78rem;font-weight:600;cursor:pointer;transition:opacity .15s}
        .bm-share-btn:hover{opacity:.85}
        @media(max-width:600px){.bm-item{padding:.9rem 1rem}}

        /* HAMBURGER / MOBILE MENU */
        .hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:200;background:none;border:none;padding:4px}
        .hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all .3s}
        .hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
        .hamburger.active span:nth-child(2){opacity:0}
        .hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
        .mobile-menu{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(250,250,247,0.98);backdrop-filter:blur(12px);z-index:150;flex-direction:column;align-items:center;justify-content:center;gap:1.8rem}
        .mobile-menu.open{display:flex}
        .mobile-menu a{font-family:'Space Grotesk',sans-serif;font-size:1.25rem;font-weight:600;color:var(--ink);transition:color .2s}
        .mobile-menu a:hover{color:var(--accent)}
        .mobile-menu .btn-cta-mobile{margin-top:.5rem;background:var(--accent);color:#fff;padding:.85rem 2rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1rem}

        /* RESPONSIVE */
        @media(max-width:768px){
            .simulator{padding:1rem 1.15rem 3rem}
            .mcards{grid-template-columns:1fr}
            .env-grid{grid-template-columns:1fr}
            .env-results{grid-template-columns:1fr}
            .progress-line{width:20px}
            nav>div{padding:1rem 1.25rem}
            footer{flex-direction:column;gap:.75rem;text-align:center}
            .pill{padding:.45rem .8rem;font-size:.8rem}
            .score-header{flex-direction:column;text-align:center}
            .stress-grid{grid-template-columns:1fr}
            .ptabs{gap:.3rem}
            .ptab-btn{padding:.45rem .75rem;font-size:.72rem}
            .optim-cards{grid-template-columns:1fr}
            .comp-save{flex-direction:column}
            .tl-list{grid-template-columns:1fr}
            .nav-links{display:none !important}
            .hamburger{display:flex}
        }
        @media(max-width:480px){
            .progress-step .plabel{font-size:.68rem}
            .progress-dot{width:28px;height:28px;font-size:.72rem}
            .progress-line{width:14px}
            /* BUG FIX: Ensure numeric inputs can display 6+ digits on small screens */
            .input-wrap input{padding:.6rem .5rem;font-size:.92rem}
            .input-suffix{padding:.6rem .5rem;font-size:.76rem}
            .env-grid{grid-template-columns:1fr}
            .rente-grid{grid-template-columns:1fr}
            /* BUG FIX: Timeline SVG scrollable on small screens — allow natural scroll via parent overflow-x:auto */
            .tl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;white-space:nowrap}
            .tl-svg{min-width:500px}
            /* Premium tables: shrink fonts + allow cell shrink on ≤375px */
            .comp-table,.avcto-table,.dash-table,.optim-table{font-size:.72rem;min-width:0}
            .comp-table th,.avcto-table th,.dash-table th,.optim-table th{font-size:.68rem;padding:.45rem .5rem}
            .comp-table td,.avcto-table td,.dash-table td,.optim-table td{padding:.4rem .5rem}
            .tscroll table{font-size:.72rem}
            .tscroll table th,.tscroll table td{padding:.4rem .5rem}
        }
        /* Reconversion / Date départ form grids */
        .recon-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:1.5rem}
        .depart-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
        @media(max-width:640px){
            .recon-form-grid{grid-template-columns:1fr}
            .depart-cards-grid{grid-template-columns:1fr}
        }
        /* ── Responsive grid helpers for premium tab inputs ── */
        .g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
        .g2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
        .g-gap-sm{gap:.75rem}
        @media(max-width:640px){
            /* Stack all multi-column grids to single column */
            .g3,.g2{grid-template-columns:1fr}
            /* Touch-friendly input height */
            .input-wrap{min-height:44px}
            /* Full-width action buttons */
            .rente-btn{width:100%;box-sizing:border-box}
            .step-actions{flex-direction:column;gap:.5rem}
            .step-actions .btn-next,.step-actions .btn-back{width:100%;box-sizing:border-box}
        }
        /* ── Desktop: widen simulator so all 15 premium tabs fit ── */
        @media(min-width:1024px){
            .simulator{max-width:1200px;padding:1.5rem 2.5rem 4rem}
        }
        /* Plan d'action */
        .plan-timeline{display:flex;flex-direction:column;gap:.75rem}
        .plan-month-header{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.82rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:.75rem;padding:.35rem 0;border-bottom:1px solid var(--border)}
        .plan-month-header:first-of-type{margin-top:0}
        .plan-action-card{background:var(--card-bg);border:1.5px solid var(--border);border-radius:12px;padding:1rem 1.1rem;display:flex;align-items:flex-start;gap:.9rem;cursor:pointer;transition:border-color .15s,transform .1s}
        .plan-action-card:hover{border-color:#bbb;transform:translateY(-1px)}
        .plan-action-card.plan-done{opacity:.7;background:#f7fef9;border-color:#d1fae5}
        .plan-action-card.plan-inprogress{border-color:#fde68a;background:#fffcf0}
        .plan-action-left{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:34px}
        .plan-status-dot{font-size:1.15rem;font-weight:700;line-height:1}
        .plan-action-body{flex:1;min-width:0}
        .plan-action-title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.93rem;margin-bottom:.25rem;color:var(--ink)}
        .plan-action-card.plan-done .plan-action-title{text-decoration:line-through;color:var(--muted)}
        .plan-action-desc{font-size:.82rem;color:var(--muted);line-height:1.45}
        .plan-action-amount{font-size:.78rem;font-weight:600;color:var(--ink);margin-top:.35rem;background:#f0f0ea;padding:.2rem .55rem;border-radius:4px;display:inline-block}
        .plan-action-tag{font-size:.68rem;font-weight:600;padding:.2rem .55rem;border-radius:20px;white-space:nowrap;align-self:flex-start;margin-top:.1rem}

        /* ── SAVE / SHARE BUTTONS ── */
        .btn-save{background:#f5f5f0;border:2px solid var(--border);color:var(--ink);padding:.6rem 1.1rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.88rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.4rem}
        .btn-save:hover{border-color:#aaa;background:#ebebeb}
        .btn-share{background:var(--accent);border:2px solid var(--accent);color:#fff;padding:.6rem 1.1rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.88rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.4rem}
        .btn-share:hover{background:#c1121f;border-color:#c1121f}

        /* ── MODALS ── */
        .vrc-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:9999;align-items:center;justify-content:center;padding:1rem}
        .vrc-modal-overlay.open{display:flex}
        .vrc-modal{background:#fff;border-radius:16px;padding:2rem;max-width:480px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.2);position:relative;animation:modalIn .2s ease}
        @keyframes modalIn{from{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
        .vrc-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--muted);line-height:1;padding:.25rem}
        .vrc-modal-close:hover{color:var(--ink)}
        .vrc-modal h3{font-family:'Space Grotesk',sans-serif;font-size:1.2rem;font-weight:700;margin-bottom:.5rem}
        .vrc-modal p{font-size:.88rem;color:var(--muted);margin-bottom:1.25rem;line-height:1.5}
        .vrc-link-box{display:flex;gap:.5rem;margin-bottom:1.25rem}
        .vrc-link-input{flex:1;border:2px solid var(--border);border-radius:8px;padding:.65rem .9rem;font-size:.85rem;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);min-width:0}
        .vrc-copy-btn{background:var(--ink);color:#fff;border:none;border-radius:8px;padding:.65rem 1rem;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s}
        .vrc-copy-btn:hover{background:#333}
        .vrc-copy-btn.copied{background:#166534}
        .vrc-hint{font-size:.78rem;color:var(--muted);text-align:center;margin-top:.25rem}
        .vrc-share-btns{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1rem}
        .vrc-share-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1rem;border-radius:8px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;border:none;text-decoration:none;transition:opacity .15s}
        .vrc-share-btn:hover{opacity:.85}
        .vrc-share-btn.twitter{background:#000;color:#fff}
        .vrc-share-btn.linkedin{background:#0a66c2;color:#fff}
        .vrc-share-btn.reddit{background:#ff4500;color:#fff}
        .vrc-share-btn.copy{background:var(--card-bg);color:var(--ink);border:2px solid var(--border)}
        .vrc-modal-loading{text-align:center;padding:1rem;color:var(--muted);font-size:.9rem}
        .vrc-email-section{margin-top:1rem}
        .vrc-email-divider{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}
        .vrc-email-divider::before,.vrc-email-divider::after{content:'';flex:1;height:1px;background:var(--border)}
        .vrc-email-divider span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
        .vrc-email-label{font-size:.85rem;color:var(--ink);font-weight:500;margin-bottom:.5rem}
        .vrc-email-box{display:flex;gap:.5rem}
        .vrc-email-input{flex:1;border:2px solid var(--border);border-radius:8px;padding:.6rem .9rem;font-size:.88rem;font-family:'DM Sans',sans-serif;outline:none;transition:border-color .2s;min-width:0}
        .vrc-email-input:focus{border-color:var(--ink)}
        .vrc-email-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem 1rem;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:background .15s}
        .vrc-email-btn:hover{background:#c1121f}
        .vrc-email-btn:disabled{opacity:.6;cursor:not-allowed}
        .vrc-email-success{color:var(--green);font-size:.82rem;margin-top:.5rem;font-weight:500}
        .vrc-email-error{color:var(--accent);font-size:.82rem;margin-top:.5rem;font-weight:500}
        @media(max-width:480px){
            .vrc-share-btns{grid-template-columns:1fr}
            .vrc-modal{padding:1.5rem}
        }

        /* WHAT-IF SLIDERS */
        .whatif-sec{margin-top:2rem;background:linear-gradient(135deg,#fafaf9,#f3f4f6);border:1.5px solid var(--border);border-radius:14px;padding:1.5rem;transition:box-shadow .2s}
        .whatif-sec:hover{box-shadow:0 4px 20px rgba(0,0,0,.06)}
        .whatif-header{text-align:center;margin-bottom:1.25rem}
        .whatif-header h3{font-family:'Space Grotesk',sans-serif;font-size:1.15rem;letter-spacing:-.4px;margin-bottom:.25rem}
        .whatif-header h3 em{font-style:normal;color:var(--accent)}
        .whatif-header p{color:var(--muted);font-size:.85rem}
        .whatif-modified-banner{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;background:#fff8e1;border:1px solid #fbbf24;border-radius:8px;padding:.6rem 1rem;margin-bottom:1.25rem;font-size:.85rem;font-weight:600;color:#92400e}
        .whatif-modified-banner span{flex:1;min-width:140px}
        .whatif-modified-banner button{padding:.35rem .8rem;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--ink);transition:background .15s,opacity .15s;white-space:nowrap}
        .whatif-modified-banner button:hover{background:var(--border)}
        .whatif-modified-banner .btn-relaunch{background:var(--accent);color:#fff;border-color:var(--accent)}
        .whatif-modified-banner .btn-relaunch:hover{opacity:.88}
        .whatif-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}
        .whatif-slider-item{background:#fff;border-radius:10px;padding:1rem 1.1rem;border:1px solid var(--border);min-height:44px;box-sizing:border-box}
        .whatif-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;display:block;margin-bottom:.2rem}
        .whatif-slider-val{font-family:'Space Grotesk',sans-serif;font-size:1.45rem;font-weight:700;color:var(--ink);margin-bottom:.4rem;line-height:1.1}
        .whatif-slider-val small{font-size:.82rem;font-weight:500;color:var(--muted)}
        .whatif-range{-webkit-appearance:none;appearance:none;width:100%;height:12px;border-radius:6px;background:var(--border);outline:none;cursor:pointer;touch-action:pan-y;display:block}
        .whatif-range::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
        .whatif-range::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.15)}
        .pea-warning{background:#fff7ed;border:1px solid #f97316;border-radius:8px;padding:.55rem .7rem;margin-top:.5rem;font-size:.72rem;color:#9a3412;line-height:1.45;display:none}
        .pea-warning strong{font-weight:700}
        .rate-warning-orange{background:#fff7ed;border:1px solid #f97316;border-radius:8px;padding:.55rem .7rem;margin-top:.4rem;font-size:.72rem;color:#9a3412;line-height:1.45;display:none}
        .rate-warning-red{background:#fff1f2;border:1px solid #ef4444;border-radius:8px;padding:.55rem .7rem;margin-top:.4rem;font-size:.72rem;color:#991b1b;line-height:1.45;display:none}
        .rate-warning-orange strong,.rate-warning-red strong{font-weight:700}
        .whatif-summary{margin-top:1.1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}
        .whatif-kpi{background:#fff;border-radius:8px;padding:.7rem .9rem;border:1px solid var(--border);text-align:center;transition:border-color .3s,box-shadow .3s}
        .whatif-kpi-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
        .whatif-kpi-val{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:700;color:var(--ink);margin-top:.1rem}
        .whatif-kpi-diff{font-size:.72rem;font-weight:600;margin-top:.15rem;display:block}
        .whatif-kpi-diff.up{color:var(--green)}
        .whatif-kpi-diff.down{color:var(--accent)}
        .whatif-kpi-diff.neutral{color:var(--muted)}
        @media(max-width:600px){
            .whatif-grid{grid-template-columns:1fr}
            .whatif-modified-banner{flex-direction:column;align-items:flex-start}
            .whatif-modified-banner button{width:100%;text-align:center}
        }

        /* ── SAVINGS RATE WIDGET ── */
        .sav-widget{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:1.5rem 1.75rem;margin:1.5rem 0}
        .sav-widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.5rem}
        .sav-widget-title{font-family:'Space Grotesk',sans-serif;font-size:1.05rem;font-weight:700;letter-spacing:-.3px}
        .sav-widget-title em{font-style:normal;color:var(--accent)}
        .sav-widget-link{font-size:.75rem;color:var(--muted);text-decoration:none;transition:color .15s;border:1px solid var(--border);border-radius:6px;padding:.25rem .6rem}
        .sav-widget-link:hover{color:var(--ink);border-color:#999}
        .sav-widget-body{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:center}
        .sav-rate-big{font-family:'Space Grotesk',sans-serif;font-size:3rem;font-weight:700;letter-spacing:-2px;line-height:1;white-space:nowrap}
        .sav-rate-big.sr-red{color:#ef4444}
        .sav-rate-big.sr-orange{color:#f97316}
        .sav-rate-big.sr-green{color:#22c55e}
        .sav-rate-big.sr-blue{color:#3b82f6}
        .sav-gauge-wrap{flex:1}
        .sav-gauge-bar{height:10px;border-radius:99px;background:linear-gradient(to right,#ef4444 0%,#ef4444 10%,#f97316 10%,#f97316 20%,#22c55e 20%,#22c55e 35%,#3b82f6 35%,#3b82f6 100%);position:relative;margin-bottom:.4rem}
        .sav-gauge-marker{position:absolute;top:-5px;width:20px;height:20px;border-radius:50%;background:#fff;border:3px solid var(--ink);box-shadow:0 2px 6px rgba(0,0,0,.18);transform:translateX(-50%);pointer-events:none;transition:left .4s cubic-bezier(.4,0,.2,1)}
        .sav-gauge-labels{display:flex;justify-content:space-between;font-size:.65rem;color:var(--muted)}
        .sav-vs-fr{display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.78rem;font-weight:600;padding:.25rem .6rem;border-radius:99px}
        .sav-vs-fr.above{background:#dcfce7;color:#166534}
        .sav-vs-fr.below{background:#fee2e2;color:#991b1b}
        .sav-vs-fr.equal{background:#f1f5f9;color:#475569}
        .sav-fire-row{margin-top:1rem;display:flex;align-items:center;justify-content:space-between;background:var(--card-bg);border-radius:10px;padding:.75rem 1rem;border:1px solid var(--border);flex-wrap:wrap;gap:.5rem}
        .sav-fire-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600}
        .sav-fire-val{font-family:'Space Grotesk',sans-serif;font-size:1.25rem;font-weight:700;color:var(--ink)}
        .sav-fire-sub{font-size:.72rem;color:var(--muted)}
        @media(max-width:520px){
            .sav-widget-body{grid-template-columns:1fr;gap:.75rem}
            .sav-rate-big{font-size:2.5rem}
        }

        /* ── RENTE PASSIVE WIDGET ── */
        .rente-widget{background:#fff;border:1.5px solid var(--border);border-radius:14px;padding:1.25rem 1.5rem;margin:1.25rem 0}
        .rente-widget-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
        .rente-widget-title{font-family:'Space Grotesk',sans-serif;font-size:.95rem;font-weight:700;letter-spacing:-.3px;color:var(--ink)}
        .rente-widget-title em{font-style:normal;color:var(--accent)}
        .rente-rating-badge{display:inline-block;padding:.2rem .55rem;border-radius:20px;font-size:.68rem;font-weight:600;letter-spacing:.3px}
        .rente-badge-high{background:#dcfce7;color:#16a34a}
        .rente-badge-mid{background:#fef9c3;color:#a16207}
        .rente-badge-low{background:#fee2e2;color:#dc2626}
        .rente-main{margin:.6rem 0;text-align:center}
        .rente-main-val{font-family:'Space Grotesk',sans-serif;font-size:2.1rem;font-weight:700;letter-spacing:-1.5px;color:var(--ink);line-height:1.1}
        .rente-main-sub{font-size:.75rem;color:var(--muted);margin-top:.2rem}
        .rente-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
        .rente-controls label{font-size:.72rem;color:var(--muted);white-space:nowrap}
        .rente-range{width:110px;height:4px;-webkit-appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer;accent-color:var(--accent)}
        .rente-range::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.2)}
        .rente-range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer;border:none}
        .rente-pct-val{font-family:'Space Grotesk',sans-serif;font-size:.9rem;font-weight:700;min-width:38px;text-align:center}
        @media(max-width:520px){
            .rente-main-val{font-size:1.7rem}
            .rente-controls{flex-direction:column;align-items:flex-start;gap:.5rem}
            .rente-range{width:100%}
        }