@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ss3-400.woff2) format('woff2')}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ss3-600.woff2) format('woff2')}@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/ss3-700.woff2) format('woff2')}body{margin:0;background:#fff;font-family:'Source Sans 3',sans-serif;color:#17213B}
.wrap{max-width:1100px;margin:0 auto}
.sec{padding:72px 24px;border-top:1px solid #E5E7EB}
header{background:#F5F8FE;border-bottom:1px solid #E1E8F5;padding:14px 24px}
header .wrap{display:flex;justify-content:space-between;align-items:center}
.lg{display:flex;gap:10px;align-items:center;font-weight:700;font-size:21px}
.lg img{width:30px;height:30px;border-radius:7px}
.ha{display:flex;gap:12px;align-items:center;font-size:14px}
.ha a{color:#4A5672;font-weight:600}
.bo{border:1px solid #2C4D96;color:#2C4D96;border-radius:6px;padding:10px 16px;font-weight:600}
.bp{background:#2C4D96;color:#fff;border-radius:6px;padding:11px 17px;font-weight:600}
.hero{background:#F5F8FE;padding:64px 24px 72px}
.hero h1{margin:0;font-size:52px;line-height:1.08;letter-spacing:-.8px;font-weight:700}
.hero p{margin:20px 0 0;font-size:19px;line-height:1.6;color:#4A5672;max-width:640px}
.hero .cta{display:inline-block;margin-top:28px;background:#2C4D96;color:#fff;font-weight:600;font-size:16px;border-radius:6px;padding:14px 22px}
.hero small{display:block;margin-top:14px;font-size:14px;color:#4A5672}
.hero .v{margin-top:48px}
.pr{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px 64px}
.pr h2,.fin h2{margin:0;font-size:34px;line-height:1.15;letter-spacing:-.4px}
.pr .l p{margin:12px 0 18px;font-size:16px;color:#4A5672;line-height:1.5}
.tg{display:flex;gap:8px;align-items:center;font-size:14px}
.tg span{border:1px solid #E5E7EB;border-radius:6px;padding:9px 14px;color:#6B7280}.tg span.on{background:#2C4D96;color:#fff;border-color:#2C4D96}
.pc{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pcard{border:1px solid #E5E7EB;border-radius:6px;padding:28px;display:flex;flex-direction:column;gap:12px;font-size:14px}
.pcard.b{border-color:#2C4D96;background:#F8FAFF}
.pcard{font-size:15px}.pcard .cb{margin-top:auto;text-align:center;background:#2C4D96;color:#fff;font-weight:600;font-size:14px;border-radius:6px;padding:14px}.pcard .cb.o{background:none;color:#2C4D96;border:1px solid #2C4D96}.pcard b{font-size:20px}.pcard .p{font-size:36px;font-weight:600}
.fin{background:#F5F8FE;border-top:1px solid #E1E8F5;padding:72px 24px}
.fin p{font-size:17px;color:#4B5B76;margin:14px 0 20px}
footer{border-top:1px solid #E5E7EB;padding:28px 24px;font-size:13px;color:#6B7280}
@media(max-width:820px){.hero{padding:36px 20px 48px}.hero h1{font-size:34px}.hero p{font-size:17px}.pr{grid-template-columns:1fr}.pc{grid-template-columns:1fr}.sec{padding:48px 20px}.ha a,.ha .bp{display:none}}
/* CoverKept — styles partagés (pages secondaires, formulaires, application) */
*{box-sizing:border-box}
a{color:#2C4D96}
header a,footer a,.lg{text-decoration:none}
a.lg{color:#17213B}
.ha a.bo,.ha a.bp,a.cta,a.bp,a.cb{text-decoration:none;display:inline-block}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer nav{display:flex;flex-wrap:wrap;gap:6px 16px}
footer nav a{color:#4A5672}
footer nav a:hover,.ha a:hover{text-decoration:underline}
.tg button{font:inherit;cursor:pointer;background:#fff;border:1px solid #E5E7EB;border-radius:6px;padding:9px 14px;color:#6B7280}
.tg button.on{background:#2C4D96;color:#fff;border-color:#2C4D96}
:focus-visible{outline:2px solid #2C4D96;outline-offset:2px}

/* Pages de texte (guides, pages légales, calculateur) */
.doc{max-width:760px;margin:0 auto;padding:56px 24px 72px}
.doc h1{font-size:36px;line-height:1.15;letter-spacing:-.4px;margin:0 0 20px}
.doc h2{font-size:22px;margin:36px 0 10px}
.doc p,.doc li{font-size:17px;line-height:1.6;color:#3A4560}
.doc p{margin:0 0 16px}
.doc .lead{font-size:19px;color:#4A5672}
.doc .acts{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}
.doc small{display:block;font-size:14px;color:#6B7280;line-height:1.5;margin-top:32px;padding-top:20px;border-top:1px solid #E5E7EB}
.doc ul.links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 24px}

/* Boutons et champs */
.btn{font:inherit;font-weight:600;font-size:15px;border-radius:6px;padding:11px 18px;border:1px solid #2C4D96;background:#2C4D96;color:#fff;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.2}
.btn.o{background:#fff;color:#2C4D96}
.btn.q{background:#fff;color:#3A4560;border-color:#D5DCE8}
.btn.d{background:#fff;color:#B42318;border-color:#F0C4BE}
.btn.s{padding:7px 12px;font-size:14px}
.btn[disabled]{opacity:.55;cursor:default}
label.f{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:#17213B}
label.f span.opt{font-weight:400;color:#6B7280}
input,select,textarea{font:inherit;font-size:16px;color:#17213B;background:#fff;border:1px solid #D5DCE8;border-radius:6px;padding:10px 12px;width:100%}
textarea{min-height:88px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid #2C4D96;outline-offset:0;border-color:#2C4D96}
.msg{font-size:15px;line-height:1.45;border-radius:6px;padding:10px 12px;border:1px solid}
.msg.err{background:#FEF3F2;border-color:#F0C4BE;color:#8A1C12}
.msg.ok{background:#EEF7F1;border-color:#BFE0CB;color:#17603A}
.msg.warn{background:#FFF7E6;border-color:#F3DDA8;color:#7A4B00}
[hidden]{display:none!important}

/* Connexion / inscription */
.auth{min-height:calc(100vh - 70px);background:#F5F8FE;padding:48px 20px 72px}
.auth .card{max-width:420px;margin:0 auto;background:#fff;border:1px solid #E1E8F5;border-radius:8px;padding:32px 28px;display:flex;flex-direction:column;gap:16px}
.auth h1{font-size:26px;line-height:1.2;margin:0}
.auth p{margin:0;font-size:15px;line-height:1.5;color:#4A5672}
.auth form{display:flex;flex-direction:column;gap:14px}
.auth .chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#4A5672;line-height:1.45}
.auth .chk input{width:18px;height:18px;margin-top:2px;flex-shrink:0}

/* Application */
body.app{background:#F7F9FC}
.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.side{background:#fff;border-right:1px solid #E3E8EF;padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}
.side .lg{padding:0 8px 18px;font-size:19px}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav a{color:#30405A;text-decoration:none;font-size:15px;padding:9px 10px;border-radius:6px}
.side nav a.on{background:#EEF2FA;color:#2C4D96;font-weight:600}
.side nav a:hover{background:#F3F6FB}
.side .foot{margin-top:auto;border-top:1px solid #E3E8EF;padding:14px 8px 0;display:flex;flex-direction:column;gap:10px;font-size:13px;color:#6B7A90}
.side .foot .row{display:flex;justify-content:space-between;gap:8px}
.side .foot b{color:#2C4D96}
.side .foot button{font:inherit;font-size:14px;background:none;border:0;padding:0;color:#30405A;cursor:pointer;text-align:left}
.main{padding:32px 32px 64px;max-width:1120px;width:100%}
.main h1{font-size:28px;line-height:1.2;margin:0}
.main .sub{font-size:15px;color:#4A5672;margin:6px 0 0}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.head .acts{display:flex;gap:8px;flex-wrap:wrap}
.panel{background:#fff;border:1px solid #E3E8EF;border-radius:8px;padding:20px}
.filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;margin:16px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.wc{background:#fff;border:1px solid #E3E8EF;border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}
.wc .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.wc .nm{font-size:16px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.wc .br{font-size:14px;color:#6B7A90;margin-top:2px}
.bd{font-size:12px;font-weight:600;border-radius:4px;padding:3px 7px;white-space:nowrap;border:1px solid}
.bd.ok{background:#EEF7F1;border-color:#CFE7D8;color:#1E6B45}
.bd.soon{background:#FFF4D6;border-color:#F3DDA8;color:#8A5A00}
.bd.ko{background:#FDECEC;border-color:#F6CACA;color:#B42318}
.wc .meta{display:flex;justify-content:space-between;font-size:12px;color:#6B7A90}
.wc .meta b{display:block;font-size:15px;color:#17213B;font-weight:600;margin-top:3px;font-variant-numeric:tabular-nums}
.wc .meta div:last-child{text-align:right}
.wc .acts{display:flex;gap:8px}
.wc .acts .btn{flex:1}
.wc .acts .btn.ic{flex:0 0 auto}
.empty{text-align:center;padding:56px 20px;display:flex;flex-direction:column;gap:12px;align-items:center}
.empty h2{margin:0;font-size:20px}
.empty p{margin:0;color:#4A5672;font-size:16px;max-width:440px;line-height:1.5}
.form{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.form .col{display:flex;flex-direction:column;gap:16px}
.form h2{font-size:17px;margin:0 0 4px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.calc{background:#F5F8FE;border:1px solid #E1E8F5;border-radius:6px;padding:12px 14px;font-size:15px;color:#4A5672}
.calc b{color:#2C4D96;font-size:18px;font-variant-numeric:tabular-nums}
details.more{border-top:1px solid #E3E8EF;padding-top:14px}
details.more summary{cursor:pointer;font-size:15px;font-weight:600;color:#2C4D96}
details.more .col{margin-top:14px}
.kv{display:grid;grid-template-columns:160px minmax(0,1fr);gap:10px 16px;font-size:15px;margin:0}
.kv dt{color:#6B7A90}.kv dd{margin:0;overflow-wrap:anywhere}
.stack{display:flex;flex-direction:column;gap:16px;max-width:720px}
.topbar{display:none}
@media(max-width:860px){
 .shell{grid-template-columns:1fr}
 .side{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;border-right:0;border-bottom:1px solid #E3E8EF}
 .side .lg{padding:0;margin-right:auto}
 .side nav{flex-direction:row;order:3;width:100%;overflow-x:auto}
 .side nav a{white-space:nowrap;padding:8px 10px}
 .side .foot{margin:0;border:0;padding:0;flex-direction:row;align-items:center}
 .side .foot .row{display:none}
 .main{padding:20px 16px 48px}
 .form{grid-template-columns:1fr}
 .filters{grid-template-columns:1fr}
 .kv{grid-template-columns:1fr;gap:2px 0}.kv dd{margin-bottom:10px}
}
@media(max-width:480px){.two{grid-template-columns:1fr}.doc h1{font-size:28px}.auth .card{padding:24px 18px}}
.ha a.bp,a.bp,a.cta,.pcard a.cb{color:#fff}
.pcard a.cb.o{color:#2C4D96}
.wc .acts{flex-wrap:wrap}
.wc .acts .btn{white-space:nowrap}
.ha a{white-space:nowrap}
@media(max-width:480px){header .wrap{gap:10px}.lg{font-size:18px;gap:8px}.lg img{width:26px;height:26px}.ha{gap:6px}.ha a.bo,.ha a.bp{padding:8px 11px;font-size:14px}}
