:root{color-scheme:dark;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--space-9: 56px;--space-10: 72px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .18);--shadow-md: 0 6px 18px rgba(0, 0, 0, .22);--shadow-lg: 0 22px 60px rgba(0, 0, 0, .4);--shadow-gold: 0 12px 32px rgba(212, 168, 67, .22);--content-max: 1180px;--content-narrow: 760px;--header-h: 64px;--bg-page: #070d18;--bg-page-gradient: radial-gradient(ellipse at 50% -10%, rgba(212, 168, 67, .18), transparent 50%), radial-gradient(circle at 14% 8%, rgba(99, 102, 241, .08), transparent 36%), linear-gradient(180deg, #070d18 0%, #080f1c 48%, #0a1322 100%);--bg-surface: #0f1828;--bg-surface-2: #152034;--bg-elevated: #1c2a44;--bg-input: #0c1424;--gold-primary: #d4a843;--gold-light: #f0c84a;--gold-dark: #8a6a20;--gold-soft: rgba(212, 168, 67, .14);--gold-ring: rgba(212, 168, 67, .4);--text-primary: #f0f4ff;--text-secondary: #93a0bd;--text-muted: #6b7a99;--border-soft: rgba(255, 255, 255, .06);--border: #1f2c46;--border-strong: #2a3a59;--positive: #22c55e;--positive-soft: rgba(34, 197, 94, .14);--negative: #ef4444;--negative-soft: rgba(239, 68, 68, .14);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .14);--info: #38bdf8;--info-soft: rgba(56, 189, 248, .14);--kind-banque: #38bdf8;--kind-livret: #34d399;--kind-av: #c084fc;--kind-pea: #f0c84a;--kind-cto: #f97316;--kind-per: #fb7185;--kind-immo: #facc15;--kind-crypto: #fbbf24;--kind-credit: #ef4444;--kind-autre: #94a3b8}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg-page);color:var(--text-primary);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{min-height:100vh;background-image:var(--bg-page-gradient);background-attachment:fixed}a{color:var(--gold-light);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,textarea,select{font:inherit;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid var(--gold-ring);outline-offset:1px;border-color:var(--gold-primary)}textarea{min-height:80px;resize:vertical}::placeholder{color:var(--text-muted)}h1,h2,h3,h4{margin:0 0 var(--space-3);font-weight:700;letter-spacing:-.01em}h1{font-size:clamp(2.2rem,4.6vw,3.4rem);line-height:1.1}h2{font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.18}h3{font-size:1.18rem}p{margin:0 0 var(--space-3);color:var(--text-secondary)}.snaap-app-root{min-height:100vh;display:flex;flex-direction:column}.snaap-header{position:sticky;top:0;z-index:50;height:var(--header-h);display:flex;align-items:center;background:#070d18c7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border-soft)}.snaap-header__inner{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;gap:var(--space-5)}.snaap-header__brand{display:flex;align-items:center;gap:10px;color:var(--text-primary);font-weight:800;letter-spacing:-.02em;font-size:1.18rem}.snaap-header__brand:hover{text-decoration:none}.snaap-header__brand-mark{width:28px;height:28px;border-radius:8px;background:radial-gradient(circle at 30% 30%,#fff4cf 0,var(--gold-primary) 55%,var(--gold-dark) 100%);box-shadow:0 4px 10px #d4a84366}.snaap-header__logo{width:32px;height:32px;border-radius:9px;object-fit:cover;box-shadow:0 4px 12px #00000059,0 0 0 1px #ffffff0f;background:var(--bg-elevated);flex-shrink:0}.snaap-header__nav{display:flex;align-items:center;gap:var(--space-3);margin-left:var(--space-6)}.snaap-header__nav-link{color:var(--text-secondary);padding:8px 12px;border-radius:var(--radius-pill);font-weight:600;font-size:.92rem}.snaap-header__nav-link:hover{color:var(--text-primary);text-decoration:none}.snaap-header__nav-link--active{color:var(--text-primary);background:var(--gold-soft)}.snaap-header__spacer{flex:1}.snaap-header__actions{display:flex;align-items:center;gap:var(--space-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-pill);border:1px solid transparent;font-weight:600;font-size:.95rem;transition:transform 80ms ease,background-color .12s ease,border-color .12s ease,box-shadow .12s ease;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn--primary{background:linear-gradient(135deg,var(--gold-light),var(--gold-primary));color:#1b1306;box-shadow:var(--shadow-gold)}.btn--primary:hover:not(:disabled){background:linear-gradient(135deg,#fad273,var(--gold-light));text-decoration:none}.btn--ghost{background:transparent;color:var(--text-primary);border-color:var(--border-strong)}.btn--ghost:hover{background:#ffffff0a;text-decoration:none}.btn--soft{background:var(--gold-soft);color:var(--gold-light);border-color:#d4a8434d}.btn--soft:hover:not(:disabled){background:#d4a84338;text-decoration:none}.btn--danger{background:var(--negative-soft);color:var(--negative);border-color:#ef44444d}.btn--danger:hover:not(:disabled){background:#ef444438;text-decoration:none}.btn--sm{padding:6px 12px;font-size:.86rem}.btn--lg{padding:14px 24px;font-size:1rem}.btn--block{width:100%}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-md)}.card--soft{background:var(--bg-surface-2)}.card--flat{box-shadow:none}.section{padding:var(--space-9) 0}.section--tight{padding:var(--space-7) 0}.container{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 var(--space-6)}.container--narrow{max-width:var(--content-narrow)}.grid{display:grid;gap:var(--space-5)}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width: 900px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}.eyebrow{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin-bottom:var(--space-3)}.muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-gold{color:var(--gold-light)}.text-positive{color:var(--positive)}.text-negative{color:var(--negative)}.lead{font-size:1.15rem;color:var(--text-secondary)}.landing-hero{padding:var(--space-10) 0 var(--space-9);text-align:center}.landing-hero__logo{display:block;width:clamp(96px,14vw,160px);height:auto;aspect-ratio:1 / 1;margin:0 auto var(--space-5);border-radius:50%;box-shadow:0 20px 60px -20px #ffc85773,0 0 0 1px #ffffff0f;animation:snaap-logo-float 6s ease-in-out infinite}@keyframes snaap-logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){.landing-hero__logo{animation:none}}.landing-hero__title{font-size:clamp(2.6rem,5.4vw,4rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:var(--space-5)}.landing-hero__highlight{background:linear-gradient(120deg,var(--gold-primary),var(--gold-light) 60%,#fff4cf);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-hero__sub{max-width:640px;margin:0 auto var(--space-6);font-size:1.18rem;color:var(--text-secondary)}.landing-hero__ctas{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-5)}.landing-hero__reassurance{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-5);color:var(--text-muted);font-size:.92rem}.pillar-card{text-align:left;padding:var(--space-7);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);height:100%}.pillar-card__icon{font-size:2rem;margin-bottom:var(--space-3)}.pillar-card__title{font-size:1.25rem;font-weight:700;margin-bottom:var(--space-2)}.pillar-card__step{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);margin-bottom:var(--space-2)}.pillar-card__body{color:var(--text-secondary)}.landing-footer{margin-top:auto;padding:var(--space-7) 0;border-top:1px solid var(--border-soft);text-align:center;color:var(--text-muted);font-size:.86rem}.appshell{flex:1;display:flex;flex-direction:column}.appshell__main{flex:1;padding:var(--space-7) 0 var(--space-10)}.appshell__page-header{margin-bottom:var(--space-6)}.appshell__page-title{font-size:1.8rem;margin-bottom:var(--space-2)}.appshell__page-sub{color:var(--text-secondary);margin:0}.wealth-summary{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-5);margin-bottom:var(--space-7)}@media (max-width: 900px){.wealth-summary{grid-template-columns:1fr}}.wealth-summary__net{background:linear-gradient(135deg,#d4a8431f,#d4a8430a);border-color:#d4a8434d}.wealth-summary__label{font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:var(--space-2)}.wealth-summary__value{font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:800;letter-spacing:-.02em;color:var(--text-primary)}.wealth-summary__value--liability{color:var(--negative)}.wealth-summary__sub{margin-top:var(--space-2);color:var(--text-muted);font-size:.9rem}.wealth-breakdown__row{display:flex;align-items:center;gap:var(--space-3);padding:10px 0;border-bottom:1px solid var(--border-soft)}.wealth-breakdown__row:last-child{border-bottom:0}.wealth-breakdown__dot{width:10px;height:10px;border-radius:50%;background:var(--kind-autre)}.wealth-breakdown__name{flex:1;font-weight:600}.wealth-breakdown__amount{font-variant-numeric:tabular-nums;font-weight:600}.wealth-breakdown__share{color:var(--text-muted);width:64px;text-align:right;font-variant-numeric:tabular-nums}.kind-compte_bancaire .wealth-breakdown__dot{background:var(--kind-banque)}.kind-livret_epargne .wealth-breakdown__dot{background:var(--kind-livret)}.kind-assurance_vie .wealth-breakdown__dot{background:var(--kind-av)}.kind-pea .wealth-breakdown__dot{background:var(--kind-pea)}.kind-cto .wealth-breakdown__dot{background:var(--kind-cto)}.kind-per .wealth-breakdown__dot{background:var(--kind-per)}.kind-bien_immobilier .wealth-breakdown__dot{background:var(--kind-immo)}.kind-crypto .wealth-breakdown__dot{background:var(--kind-crypto)}.kind-credit .wealth-breakdown__dot{background:var(--kind-credit)}.kind-autre .wealth-breakdown__dot{background:var(--kind-autre)}.product-list{display:grid;gap:var(--space-3)}.product-row{display:grid;grid-template-columns:2.4fr 1fr auto;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.product-row:hover{border-color:var(--border-strong)}.product-row__main{display:flex;flex-direction:column;gap:4px}.product-row__title{font-weight:700}.product-row__sub{font-size:.84rem;color:var(--text-muted)}.product-row__value{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.product-row__value--liability{color:var(--negative)}.product-row__actions{display:flex;gap:var(--space-2)}@media (max-width: 700px){.product-row{grid-template-columns:1fr;align-items:stretch}.product-row__value{text-align:left}}.empty-state{text-align:center;padding:var(--space-9) var(--space-5);background:var(--bg-surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.empty-state__title{font-size:1.2rem;margin-bottom:var(--space-2)}.empty-state__body{color:var(--text-secondary);max-width:480px;margin:0 auto var(--space-5)}.wizard{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6)}.wizard__steps{display:flex;align-items:center;gap:var(--space-2);font-size:.85rem;color:var(--text-muted);margin-bottom:var(--space-5)}.wizard__step{display:inline-flex;align-items:center;gap:6px}.wizard__step--active{color:var(--text-primary)}.wizard__step--done{color:var(--gold-light)}.wizard__step-index{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:1px solid var(--border-strong);font-weight:700;font-size:.78rem}.wizard__step--active .wizard__step-index{background:var(--gold-soft);border-color:var(--gold-primary);color:var(--gold-light)}.wizard__step--done .wizard__step-index{background:var(--gold-primary);color:#1b1306;border-color:var(--gold-primary)}.wizard__title{font-size:1.4rem;margin-bottom:var(--space-2)}.wizard__hint{color:var(--text-secondary);margin-bottom:var(--space-5)}.wizard__options{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}.wizard__option{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;transition:border-color .12s ease,background .12s ease}.wizard__option:hover{border-color:var(--gold-primary);background:#d4a8430d}.wizard__option--selected{border-color:var(--gold-primary);background:var(--gold-soft)}.wizard__option-icon{font-size:1.5rem}.wizard__option-title{font-weight:700}.wizard__option-desc{font-size:.84rem;color:var(--text-muted)}.wizard__field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}@media (max-width: 700px){.wizard__field-grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px}.field--full{grid-column:1 / -1}.field__label{font-size:.86rem;font-weight:600;color:var(--text-secondary)}.field__label-required:after{content:"*";color:var(--negative);margin-left:4px}.field__help{font-size:.82rem;color:var(--text-muted)}.field__error{font-size:.82rem;color:var(--negative)}.wizard__actions{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#02060ebd;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:100}.modal{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:min(440px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:var(--space-7);box-shadow:var(--shadow-lg)}.modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.modal__title{font-size:1.4rem;margin:0}.modal__close{color:var(--text-muted);font-size:1.4rem;line-height:1;padding:4px}.modal__close:hover{color:var(--text-primary)}.modal__body>*+*{margin-top:var(--space-4)}.modal__footer{margin-top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.modal__error{background:var(--negative-soft);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:10px var(--space-3);color:var(--negative);font-size:.9rem}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;background:#ffffff0f;color:var(--text-secondary)}.badge--gold{background:var(--gold-soft);color:var(--gold-light)}.badge--positive{background:var(--positive-soft);color:var(--positive)}.badge--negative{background:var(--negative-soft);color:var(--negative)}.badge--info{background:var(--info-soft);color:var(--info)}.stub-card{text-align:center;padding:var(--space-10) var(--space-6);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl)}.stub-card__icon{font-size:3rem;margin-bottom:var(--space-3)}.stub-card__title{font-size:1.6rem;margin-bottom:var(--space-3)}.stub-card__body{color:var(--text-secondary);max-width:540px;margin:0 auto var(--space-5)}.stub-card__steps{display:grid;gap:var(--space-3);margin:var(--space-5) auto 0;max-width:480px;text-align:left}.stub-card__step{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);background:var(--bg-input);border-radius:var(--radius-md);border:1px solid var(--border-soft)}.stub-card__step-index{width:26px;height:26px;border-radius:50%;background:var(--gold-soft);color:var(--gold-light);font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.85rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.mt-3{margin-top:var(--space-3)}.mt-5{margin-top:var(--space-5)}.mb-3{margin-bottom:var(--space-3)}.mb-5{margin-bottom:var(--space-5)}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);padding:10px var(--space-4);background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-size:.9rem;color:var(--text-primary);box-shadow:var(--shadow-md);z-index:200;animation:toast-in .22s ease}.toast--success{border-color:#22c55e66;color:var(--positive)}.toast--error{border-color:#ef444466;color:var(--negative)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}
