:root{
  --green:#F2830E; --green-dark:#C96A08; --green-light:#FFE3C2;
  --blue:#1CB0F6; --blue-dark:#1899D6;
  --red:#FF4B4B; --red-dark:#EA2B2B;
  --yellow:#FDDC45; --yellow-dark:#E5C520;
  --orange:#F2994A; --orange-dark:#D9792B;
  --ink:#3C3C3C; --gray:#777777; --gray-light:#AFAFAF;
  --paper:#FFFFFF; --bg:#FFF8F1; --line:#F0DFC8; --line-strong:#E3C89E;
  --radius:16px;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Baloo 2',sans-serif;user-select:none;-webkit-user-select:none;}
input, textarea, td.num, td.cat, .fname-input{ user-select:text; -webkit-user-select:text; }
button, .btn, a{ cursor:pointer; }
.wrap{max-width:980px;margin:0 auto;padding:32px 24px 80px;}
h1,h2,h3{font-family:'Baloo 2',sans-serif;}

/* --- Bouton signature Duolingo : plat + bordure basse épaisse "3D" --- */
.btn{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:15px;border:none;border-radius:14px;
  padding:13px 22px;cursor:pointer;transition:transform .06s,box-shadow .06s;text-transform:uppercase;letter-spacing:.02em;}
.btn:active{transform:translateY(3px);}
.btn-gold{background:var(--green);color:#fff;box-shadow:0 4px 0 var(--green-dark);}
.btn-gold:hover{background:#FF9D3D;}
.btn-gold:active{box-shadow:0 1px 0 var(--green-dark);}
.btn-ghost{background:var(--paper);color:var(--blue);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);}
.btn-ghost:hover{background:#F7FBFF;border-color:var(--blue);}
.btn-ghost:active{box-shadow:0 1px 0 var(--line);}
input[type=file]{display:none;}
.status{font-family:'Baloo 2',sans-serif;font-size:12.5px;color:var(--gray);margin-top:8px;}

@keyframes mascotBounce{
  0%,100%{transform:translateY(0) rotate(0deg);}
  50%{transform:translateY(-8px) rotate(-2deg);}
}
.mascot-bounce{animation:mascotBounce 1.8s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){
  .mascot-bounce{animation:none;}
}

.assistant-trigger{margin-bottom:26px;}
.assistant-overlay{position:fixed;inset:0;background:rgba(60,40,20,.45);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px;}
.assistant-card{background:#fff;border-radius:20px;padding:34px 30px;width:100%;max-width:420px;box-shadow:0 6px 0 var(--green-dark);position:relative;max-height:85vh;overflow-y:auto;}
.assistant-close{position:absolute;top:14px;right:14px;background:var(--bg);border:none;border-radius:50%;width:30px;height:30px;font-size:14px;color:var(--gray);cursor:pointer;}
.assistant-mascot{width:80px;height:auto;display:block;margin:0 auto 12px;}
.assistant-q{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:21px;margin:0 0 8px;text-align:center;color:var(--ink);}
.assistant-sub{color:var(--gray);font-size:13.5px;text-align:center;margin:0 0 20px;line-height:1.5;}
.assistant-input-row{margin-bottom:14px;}
.assistant-input-row label{display:block;font-size:12.5px;font-weight:800;color:var(--gray);text-transform:uppercase;margin-bottom:6px;}
.assistant-input-row input{width:100%;padding:12px 14px;border:2px solid var(--line);border-radius:12px;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:16px;color:var(--ink);}
.assistant-input-row input:focus{outline:none;border-color:var(--blue);}
.assistant-progress{font-family:'Baloo 2',sans-serif;font-size:11.5px;color:var(--gray-light);text-align:center;margin-bottom:6px;}
.assistant-actions{display:flex;gap:10px;margin-top:20px;}
.assistant-actions .btn{flex:1;}
.assistant-note{font-size:11.5px;color:var(--gray-light);text-align:center;margin-top:14px;line-height:1.5;}

/* --- Onboarding --- */
.onboard-screen{position:fixed;inset:0;background:var(--bg);z-index:50;display:flex;flex-direction:column;align-items:center;}
.onboard-progress{width:100%;height:14px;background:var(--line);flex:0 0 auto;padding:4px 16px;box-sizing:border-box;}
.onboard-progress-fill{height:100%;background:var(--green);width:20%;border-radius:8px;transition:width .3s ease;}
.onboard-card{flex:1;width:100%;max-width:520px;padding:30px 28px;display:flex;flex-direction:column;justify-content:center;}
.onboard-step{display:none;animation:onboardIn .25s ease;text-align:center;}
.onboard-step.active{display:block;}
@keyframes onboardIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.onboard-mascot{width:140px;height:auto;margin:0 auto 10px;display:block;}
.onboard-eyebrow{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin:0 0 8px;}
.onboard-q{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:26px;margin:0 0 8px;line-height:1.15;color:var(--ink);}
.onboard-sub{color:var(--gray);font-size:14px;line-height:1.55;margin:0 0 22px;}
.onboard-choices{display:flex;flex-direction:column;gap:10px;margin-top:22px;text-align:left;}
.onboard-choice{text-align:left;padding:15px 18px;border:2px solid var(--line);border-bottom-width:4px;border-radius:14px;background:#fff;font-family:'Baloo 2',sans-serif;font-size:15px;font-weight:700;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s,transform .06s;}
.onboard-choice:hover{border-color:var(--blue);background:#F7FBFF;}
.onboard-choice:active{transform:translateY(2px);border-bottom-width:2px;}
.onboard-choice.selected{border-color:var(--green);background:var(--green-light);}
.onboard-upload{border:3px dashed var(--line-strong);border-radius:var(--radius);padding:30px 20px;text-align:center;cursor:pointer;background:#fff;transition:background .15s,border-color .15s;}
.onboard-upload.drag-over{background:var(--green-light);border-color:var(--green);border-style:solid;}
.onboard-upload-icon{font-style:normal;font-size:26px;color:var(--green);display:block;margin-bottom:8px;}
.onboard-upload p{margin:0;font-size:13.5px;color:var(--gray);}
.onboard-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;}
.onboard-diff-cards{display:flex;flex-direction:column;gap:12px;margin-top:22px;text-align:left;}
.onboard-diff-card{text-align:left;padding:16px 20px;border:2px solid var(--line);border-bottom-width:4px;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,transform .06s;display:flex;flex-direction:column;gap:4px;}
.onboard-diff-card:hover{border-color:var(--green);}
.onboard-diff-card:active{transform:translateY(2px);border-bottom-width:2px;}
.onboard-diff-title{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:17px;color:var(--ink);}
.onboard-diff-desc{font-size:13px;color:var(--gray);}

.loading-box{text-align:center;}
.loading-text{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:16px;color:var(--gray);margin-top:6px;}

/* --- Auth --- */
.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#FFF3E4;padding:24px;}
.auth-card{background:var(--paper);border-radius:20px;padding:36px 32px;width:100%;max-width:380px;box-shadow:0 6px 0 var(--green-dark);}
.auth-mascot{width:150px;height:auto;display:block;margin:0 auto 6px;}
.brand-title{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:26px;line-height:1.05;margin:0 0 4px;text-align:center;color:var(--ink);}
.brand-title em{font-style:normal;font-weight:700;color:var(--green);}
.auth-tagline{color:var(--gray);font-size:14px;margin:0 0 22px;text-align:center;}
.auth-card label{display:block;font-size:12.5px;font-weight:800;margin-bottom:14px;color:var(--gray);text-transform:uppercase;letter-spacing:.03em;}
.auth-card input{width:100%;margin-top:6px;padding:12px 14px;border:2px solid var(--line);border-radius:12px;font-family:'Baloo 2',sans-serif;font-size:15px;background:#fff;color:var(--ink);}
.auth-card input:focus{outline:none;border-color:var(--blue);}
.auth-card button{width:100%;margin-top:8px;}
.auth-switch{text-align:center;font-size:13px;color:var(--gray);margin-top:18px;}
.auth-switch a{color:var(--blue);font-weight:800;text-decoration:none;cursor:pointer;}

/* --- Shell --- */
.app-shell{display:flex;min-height:100vh;}
.sidebar{width:232px;flex:0 0 232px;background:var(--paper);border-right:2px solid var(--line);padding:22px 0;display:flex;flex-direction:column;gap:4px;}
.sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 18px 18px;border-bottom:2px solid var(--line);margin-bottom:12px;}
.brand-photo{width:44px;height:auto;flex:0 0 auto;}
.brand-wordmark{font-family:'Baloo 2',sans-serif;font-size:14px;font-weight:700;line-height:1.15;color:var(--ink);}
.brand-wordmark em{font-style:normal;font-weight:700;color:var(--green);}
.brand-title-inline{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:32px;margin:0;color:var(--ink);}
.brand-title-inline em{font-style:normal;font-weight:700;color:var(--green);}
.nav-item{display:flex;align-items:center;gap:10px;padding:12px 18px;cursor:pointer;font-family:'Baloo 2',sans-serif;font-size:15px;font-weight:700;color:var(--gray);border-left:4px solid transparent;transition:background .15s,color .15s;}
.nav-item:hover{background:#F7F7F5;color:var(--ink);}
.nav-item.active{color:var(--green);border-left-color:var(--green);background:var(--green-light);}
.nav-icon{font-size:16px;}
.main-content{flex:1;min-width:0;}
.view{display:none;}
.view.active{display:block;}
.sidebar-footer{margin-top:auto;padding:16px 18px 0;border-top:2px solid var(--line);}
.user-email{font-size:11.5px;color:var(--gray-light);font-family:'Baloo 2',sans-serif;margin-bottom:10px;word-break:break-all;}
.sidebar-footer .btn{width:100%;}

@media (max-width:760px){
  .app-shell{flex-direction:column;}
  .sidebar{width:100%;flex:none;flex-direction:row;padding:10px 12px;overflow-x:auto;gap:6px;align-items:center;}
  .sidebar .brand{display:flex;padding:0 8px;border-bottom:none;margin-bottom:0;}
  .brand-wordmark{display:none;}
  .nav-item{border-left:none;border-bottom:4px solid transparent;padding:8px 14px;white-space:nowrap;}
  .nav-item.active{border-left-color:transparent;border-bottom-color:var(--green);}
  .sidebar-footer{margin-top:0;margin-left:auto;padding:0;border-top:none;display:flex;align-items:center;gap:8px;}
  .user-email{display:none;}
}

.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
  border-bottom:2px solid var(--line);padding-bottom:18px;margin-bottom:26px;}
.eyebrow{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin:0 0 6px;}
h1{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:34px;margin:0;color:var(--ink);}
.month-picker{display:flex;align-items:center;gap:10px;font-family:'Baloo 2',sans-serif;}
.month-picker button{background:#fff;border:2px solid var(--line);border-bottom-width:4px;border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:16px;color:var(--ink);font-weight:700;}
.month-picker button:active{transform:translateY(2px);border-bottom-width:2px;}
.month-label{font-size:15px;font-weight:800;min-width:150px;text-align:center;color:var(--ink);}

.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:30px;}
.card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:16px 18px;}
.card .label{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gray);margin-bottom:8px;font-family:'Baloo 2',sans-serif;font-weight:800;}
.card .value{font-family:'Baloo 2',sans-serif;font-size:24px;font-weight:700;color:var(--ink);}
.card.neg .value{color:var(--red);}
.card.pos .value{color:var(--green-dark);}

.upload-zone{border:3px dashed var(--line-strong);border-radius:var(--radius);padding:22px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px;background:#fff;flex-wrap:wrap;transition:background .15s,border-color .15s;}
.upload-zone.drag-over{background:var(--green-light);border-color:var(--green);border-style:solid;}
.upload-zone .txt{max-width:520px;}
.upload-zone h3{font-family:'Baloo 2',sans-serif;margin:0 0 4px;font-size:18px;color:var(--ink);}
.upload-zone p{margin:0;color:var(--gray);font-size:13.5px;line-height:1.5;}

table{width:100%;border-collapse:collapse;margin-bottom:14px;}
thead th{font-family:'Baloo 2',sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:800;color:var(--gray);text-align:left;padding:0 10px 8px;border-bottom:2px solid var(--line);}
thead th.num{text-align:right;}
tbody td{padding:12px 10px;border-bottom:2px solid var(--line);vertical-align:middle;}
tbody tr:hover{background:#FAFAF8;}
td.num{text-align:right;font-family:'Baloo 2',sans-serif;font-weight:700;color:var(--ink);}
td.cat{font-weight:700;font-family:'Baloo 2',sans-serif;color:var(--ink);}
.bar-track{width:100%;height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin-top:6px;}
.bar-fill{height:100%;border-radius:6px;background:var(--green);}
.bar-fill.over{background:var(--red);}
input.budget-input{width:90px;text-align:right;font-family:'Baloo 2',sans-serif;font-weight:700;border:2px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff;color:var(--ink);}
.ecart.pos{color:var(--green-dark);}
.ecart.neg{color:var(--red);}

.tx-section{margin-top:40px;}
.tx-section h2{font-family:'Baloo 2',sans-serif;font-size:20px;margin:0 0 4px;color:var(--ink);}
.tx-sub{color:var(--gray);font-size:13px;margin:0 0 16px;}
.tx-row select, .tx-row input[type=text], .tx-row input[type=number], .tx-row input[type=date]{
  font-family:'Baloo 2',sans-serif;font-size:13px;border:2px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff;color:var(--ink);width:100%;
}
.tx-row td{padding:8px 6px;}
.tx-income{background:#F3FBF3;}
.income-badge{display:inline-block;background:#E3F5E1;color:#2E9E52;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:12px;padding:5px 10px;border-radius:8px;}
.income-amount input{color:#2E9E52;font-weight:700;}
.del-btn{background:none;border:none;color:var(--gray);cursor:pointer;font-size:16px;}
.del-btn:hover{color:var(--red);}
.add-tx{display:flex;gap:8px;margin-top:10px;}
.empty{color:var(--gray);font-size:13.5px;padding:20px 4px;font-style:italic;}

.files-month{margin-bottom:36px;}
.backup-zone{border:2px solid var(--line);border-radius:var(--radius);padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px;background:#fff;flex-wrap:wrap;}
.backup-zone .txt{max-width:540px;}
.backup-zone h3{font-family:'Baloo 2',sans-serif;margin:0 0 4px;font-size:17px;color:var(--ink);}
.backup-zone p{margin:0;color:var(--gray);font-size:13.5px;line-height:1.5;}
#importInput{display:none;}
.files-month h3{font-family:'Baloo 2',sans-serif;font-size:18px;margin:0 0 12px;color:var(--ink);}
.file-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;flex-wrap:wrap;}
.fname-input{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14px;border:1px solid transparent;background:transparent;color:var(--ink);padding:3px 5px;border-radius:5px;width:100%;max-width:340px;}
.fname-input:hover{border-color:var(--line);}
.fname-input:focus{border-color:var(--blue);background:#fff;outline:none;}
.file-card .fmeta{font-family:'Baloo 2',sans-serif;font-size:11.5px;color:var(--gray);margin-top:3px;}
.file-card .factions{display:flex;gap:8px;flex:0 0 auto;}
.file-card .factions a, .file-card .factions button{font-size:12.5px;padding:8px 12px;}

.chart-card{background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:26px;}
.chart-card h3{font-family:'Baloo 2',sans-serif;font-size:17px;margin:0 0 4px;color:var(--ink);}
.chart-card .sub{color:var(--gray);font-size:13px;margin:0 0 16px;}
.chart-wrap{position:relative;height:280px;}
.forecast-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px;}

/* --- Page d'accueil épurée --- */
.landing-screen{min-height:100vh;background:#FFFFFF;display:flex;flex-direction:column;}
.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:22px 40px;border-bottom:1px solid var(--line);}
.landing-logo-lockup{height:34px;width:auto;display:block;}
.landing-nav-login{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14px;color:#475467;text-decoration:none;padding:9px 16px;border-radius:10px;transition:background .15s;}
.landing-nav-login:hover{background:#F9FAFB;color:var(--ink);}
.landing-hero{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 24px 40px;max-width:900px;margin:0 auto;}
.landing-eyebrow{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13px;color:var(--orange);background:#FFF3E8;border:1px solid #FFD3AE;padding:7px 16px;border-radius:999px;margin:0 0 22px;}
.landing-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:42px;line-height:1.2;letter-spacing:-.02em;color:#161B26;max-width:600px;margin:0 0 16px;}
.landing-title em{font-style:normal;color:var(--orange);}
.landing-subtitle{font-size:15.5px;color:#667085;max-width:460px;line-height:1.6;margin:0 0 30px;}
.landing-actions{display:flex;gap:12px;width:100%;max-width:360px;margin-bottom:44px;}
.landing-btn{flex:1;font-size:15px;padding:14px 20px;}
.landing-mascot-wrap{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:48px;}
.landing-glow{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,#FFE3C2 0%,rgba(255,227,194,0) 70%);z-index:0;}
.landing-mascot{position:relative;z-index:1;width:230px;height:auto;}
.landing-features{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;width:100%;max-width:760px;}
.landing-feature{display:flex;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:0 3px 12px rgba(16,24,40,.035);flex:1 1 220px;}
.landing-feature-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.lf-title{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13.5px;color:var(--ink);}
.lf-sub{font-size:11.5px;color:#667085;margin-top:1px;}
@media (max-width:720px){
  .landing-title{font-size:32px;}
  .landing-actions{flex-direction:column;}
}

/* --- Icône profil --- */
.profile-icon-btn{background:none;border:2px solid var(--line);border-radius:50%;width:42px;height:42px;padding:0;overflow:hidden;cursor:pointer;}
.profile-icon-btn img{width:100%;height:100%;object-fit:cover;}
.profile-card{text-align:center;}
.profile-card .assistant-mascot{width:56px;}
.profile-section{text-align:left;border-top:1px solid var(--line);padding-top:16px;margin-top:16px;}
.profile-section label{display:block;font-size:12px;font-weight:800;color:var(--gray);text-transform:uppercase;margin:10px 0 5px;}
.profile-section input{width:100%;padding:10px 12px;border:2px solid var(--line);border-radius:10px;font-family:'Baloo 2',sans-serif;font-weight:600;font-size:14px;color:var(--ink);}
.profile-section input:focus{outline:none;border-color:var(--blue);}

/* --- Admin --- */
.admin-user-row{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin-bottom:10px;cursor:pointer;transition:border-color .15s;}
.admin-user-row:hover{border-color:var(--blue);}
.admin-user-name{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:15px;color:var(--ink);}
.admin-user-meta{font-size:12px;color:var(--gray);margin-top:2px;}
.admin-role-badge{font-family:'Baloo 2',sans-serif;font-size:11px;font-weight:800;text-transform:uppercase;padding:4px 10px;border-radius:20px;background:var(--green-light);color:var(--green-dark);}

/* ================= REFONTE FIDÈLE AU MOCKUP ================= */

/* Sidebar : icônes nav */
.nav-item .nav-icon svg{display:block;}
.nav-item{gap:12px;}

/* Widget "Objectif du mois" */
.goal-widget{margin:18px 14px;padding:16px;border-radius:16px;background:linear-gradient(160deg,#F1E9FB,#EDE3FA);border:1px solid #E4D6F7;}
.goal-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:12px;color:#8B5FD1;margin:0 0 6px;}
.goal-text{font-size:12.5px;color:var(--ink);font-weight:700;margin:0 0 10px;line-height:1.4;}
.goal-bar-track{height:7px;background:#E4D6F7;border-radius:6px;overflow:hidden;margin-bottom:6px;}
.goal-bar-fill{height:100%;background:#8B5FD1;border-radius:6px;transition:width .3s;}
.goal-pct{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:12px;color:#8B5FD1;}

/* Bloc profil bas de sidebar (avatar initiales + nom + chevron) */
.profile-row-wrap{position:relative;padding:0 10px;}
.profile-row{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:10px 6px;border-radius:12px;cursor:pointer;text-align:left;}
.profile-row:hover{background:var(--bg);}
.profile-avatar-initials{width:32px;height:32px;border-radius:50%;background:var(--green);color:#fff;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.profile-row-name{flex:1;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.profile-row-chevron{color:var(--gray);flex:0 0 auto;}
.profile-dropdown{position:absolute;bottom:calc(100% + 6px);left:14px;right:14px;background:#fff;border:2px solid var(--line);border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.08);overflow:hidden;z-index:10;}
.profile-dropdown button{display:block;width:100%;text-align:left;padding:11px 14px;background:none;border:none;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13px;color:var(--ink);cursor:pointer;}
.profile-dropdown button:hover{background:var(--bg);}

/* Titre avec étincelle */
.sparkle{color:var(--yellow-dark);font-size:.55em;vertical-align:top;}

/* Sélecteur de mois en pilule */
.month-picker-pill{display:flex;align-items:center;gap:6px;}
.pill-nav-btn{background:#fff;border:2px solid var(--line);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray);}
.pill-nav-btn:hover{border-color:var(--blue);color:var(--blue);}
.pill-center{display:flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--line);border-radius:24px;padding:8px 18px;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14px;color:var(--ink);}

/* Carte Finn avec bulle + stats intégrées */
.finn-card{background:#fff;border:2px solid var(--line);border-radius:20px;padding:22px 24px;margin-bottom:24px;}
.finn-card-mascot{width:64px;height:auto;float:left;margin-right:14px;}
.finn-bubble{display:inline-block;background:var(--green-light);border-radius:16px 16px 16px 4px;padding:12px 16px;margin-bottom:18px;max-width:340px;}
.finn-bubble p{margin:0;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13.5px;color:#2D6B14;}
.finn-stats{display:flex;gap:26px;clear:both;padding-top:6px;flex-wrap:wrap;}
.finn-stat{display:flex;align-items:center;gap:10px;}
.stat-badge{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.stat-badge svg{display:block;}
.stat-badge-blue{background:#E4F0FB;color:#3B8FD6;}
.stat-badge-green{background:#E3F5E1;color:#3FA654;}
.stat-badge-red{background:#FCE6EC;color:#DB5E85;}
.stat-badge-gold{background:#FFF3D6;color:#C99A1F;}
.stat-label{font-family:'Baloo 2',sans-serif;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--gray);}
.stat-value{font-family:'Baloo 2',sans-serif;font-size:19px;font-weight:800;color:var(--ink);}
.compare-bar-track{display:flex;height:10px;border-radius:6px;overflow:hidden;margin:16px 0 8px;background:var(--line);}
.compare-bar-planned{background:#7FCB63;}
.compare-bar-actual{background:#F3A0A0;}
.compare-text{font-size:12.5px;color:var(--gray);margin:0;}
.compare-text b{color:var(--red);}
.compare-text b.under{color:var(--green-dark);}

/* Zone d'upload avec badge icône */
.upload-zone{align-items:flex-start;}
.upload-icon-badge{width:42px;height:42px;border-radius:12px;background:#E4F0FB;color:#3B8FD6;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}

/* Liste des catégories façon cartes */
.category-list{display:flex;flex-direction:column;gap:2px;}
.category-row{display:flex;align-items:center;gap:16px;padding:14px 6px;border-bottom:1px solid var(--line);}
.category-row:last-child{border-bottom:none;}
.cat-badge{border-radius:11px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.category-row .cat-name{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14.5px;color:var(--ink);flex:1 1 160px;min-width:130px;}
.category-field{display:flex;flex-direction:column;gap:3px;min-width:76px;}
.category-field .cf-label{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--gray-light);}
.category-field input.budget-input{width:74px;padding:6px 8px;font-size:13px;}
.category-field .cf-value{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14px;}
.category-ecart{min-width:76px;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13.5px;}
.category-progress-wrap{flex:1 1 140px;min-width:110px;display:flex;align-items:center;gap:10px;}
.category-progress-wrap .bar-track{flex:1;}
.category-pct{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:12px;color:var(--gray);min-width:36px;text-align:right;}
.category-chevron{color:var(--gray-light);flex:0 0 auto;}

/* ================= PAGE RELEVÉS ================= */
.wrap-wide{max-width:1400px;}
.card-panel{background:#fff;border:2px solid var(--line);border-radius:20px;padding:20px;}
.panel-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:16px;margin:0 0 14px;}

.files-layout{display:grid;grid-template-columns:320px 1fr 300px;gap:18px;align-items:start;}
@media (max-width:1150px){ .files-layout{grid-template-columns:1fr;} }

.files-filters{display:flex;gap:8px;margin-bottom:14px;}
.files-filters select{flex:1;padding:9px 10px;border:2px solid var(--line);border-radius:10px;font-family:'Baloo 2',sans-serif;font-weight:600;font-size:12.5px;color:var(--ink);background:#fff;}

.file-list-row{display:flex;align-items:center;gap:10px;padding:11px;border-radius:14px;cursor:pointer;border:2px solid transparent;margin-bottom:6px;}
.file-list-row:hover{background:var(--bg);}
.file-list-row.selected{border-color:var(--orange);background:#FFF3E8;}
.bank-badge{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13px;}
.file-list-info{flex:1;min-width:0;}
.file-list-name{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.file-list-meta{font-size:11px;color:var(--gray);}
.file-list-amount{text-align:right;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13px;color:var(--ink);flex:0 0 auto;}
.file-list-status{font-size:10px;color:var(--green-dark);font-weight:700;}
.file-list-menu{background:none;border:none;color:var(--gray);cursor:pointer;font-size:16px;padding:4px;flex:0 0 auto;}

.files-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);}
.files-pagination select{padding:5px 8px;border:2px solid var(--line);border-radius:8px;font-size:12px;}
.page-btns{display:flex;gap:4px;align-items:center;}
.page-btn{width:28px;height:28px;border-radius:50%;border:none;background:none;cursor:pointer;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:12px;color:var(--gray);}
.page-btn.active{background:var(--orange);color:#fff;}

.files-col-detail{min-height:400px;}
.detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.detail-bank-row{display:flex;align-items:center;gap:12px;}
.detail-bank-name{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:17px;}
.detail-account-label{font-size:12px;color:var(--gray);}
.detail-actions{display:flex;gap:8px;}
.detail-actions button{font-size:12px;padding:8px 12px;}
.pdf-frame-wrap{border:2px solid var(--line);border-radius:14px;overflow:hidden;background:#2c2c2c;height:560px;}
.pdf-viewport iframe{width:100%;height:100%;border:none;background:#fff;min-height:780px;}

.summary-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);}
.summary-row:last-of-type{border-bottom:none;}
.summary-icon{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.summary-label{flex:1;font-size:12.5px;color:var(--gray);font-weight:700;}
.summary-value{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13px;}
.summary-closing{margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--green-light);display:flex;justify-content:space-between;align-items:center;}
.summary-closing .summary-label{color:#2D6B14;}
.summary-closing .summary-value{color:#2D6B14;font-size:16px;}

.finn-tip-card{position:relative;display:flex;gap:12px;background:#FFF3E8;border:2px solid #FBDDBB;border-radius:18px;padding:16px;margin-top:16px;}
.finn-tip-mascot{width:44px;height:auto;flex:0 0 auto;}
.finn-tip-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:11px;color:var(--orange-dark);margin:0 0 2px;}
.finn-tip-title-2{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:13.5px;margin:0 0 4px;}
.finn-tip-text{font-size:12px;color:var(--gray);line-height:1.5;margin:0;}
.finn-tip-close{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--gray);cursor:pointer;font-size:13px;}

/* ================= PAGE GRAPHIQUES ================= */
.graphs-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;margin-bottom:18px;}
@media (max-width:1000px){ .graphs-grid{grid-template-columns:1fr;} }
.donut-wrap{position:relative;height:220px;display:flex;align-items:center;justify-content:center;}
.donut-center{position:absolute;text-align:center;}
.donut-center .dc-value{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:18px;}
.donut-center .dc-label{font-size:11px;color:var(--gray);}
.donut-legend{margin-top:14px;display:flex;flex-direction:column;gap:8px;}
.donut-legend-row{display:flex;align-items:center;gap:8px;font-size:12.5px;}
.donut-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
.donut-legend-name{flex:1;font-weight:700;}
.donut-legend-pct{color:var(--gray);font-weight:700;}

.graph-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;}
.graph-stat-card{background:#fff;border:2px solid var(--line);border-radius:16px;padding:16px;display:flex;align-items:center;gap:12px;}
.graph-stat-icon{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.graph-stat-label{font-size:11.5px;color:var(--gray);font-weight:700;}
.graph-stat-value{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:16px;}
.graph-stat-sub{font-size:11px;color:var(--gray-light);}

.top5-link{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding:11px 14px;background:var(--bg);border-radius:12px;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:12.5px;color:var(--ink);cursor:pointer;}

/* =========================================================
   FINNFLOW 2026 — harmonisation fidèle aux maquettes fournies
   ========================================================= */
:root{
  --green:#33B94A; --green-dark:#249438; --green-light:#EBF9EE;
  --blue:#3D8FEF; --blue-dark:#2275D1;
  --red:#FF4D57; --red-dark:#E83A45;
  --yellow:#FFB636; --yellow-dark:#F39A09;
  --orange:#FF7900; --orange-dark:#E76500;
  --ink:#111827; --gray:#667085; --gray-light:#98A2B3;
  --paper:#FFFFFF; --bg:#FFFFFF; --line:#EAECF0; --line-strong:#DDE2E8;
  --radius:18px;
}
body{background:#fff;color:var(--ink);font-family:'Baloo 2',sans-serif;font-size:14px;}
.app-shell{background:#fff;}
.main-content{background:#fff;}
.wrap{max-width:1600px;padding:22px 40px 24px;}
.wrap-wide{max-width:1600px;}

/* Sidebar */
.sidebar{width:272px;flex:0 0 272px;background:#fff;border-right:1px solid #ECEFF3;padding:0 0 18px;gap:4px;}
.sidebar .brand{height:92px;padding:16px 24px;border-bottom:1px solid #ECEFF3;margin:0 0 10px;display:flex;align-items:center;}
.brand-logo-lockup{display:block;width:142px;height:auto;object-fit:contain;}
.nav-item{margin:0 12px;padding:13px 20px;border-left:0;border-radius:12px;font-size:15px;font-weight:600;color:#475467;gap:13px;}
.nav-item:hover{background:#F8FAFC;color:#1D2939;}
.nav-item.active{color:var(--orange);background:#FFF3E8;border-left:0;}
.nav-item .nav-icon{color:inherit;}
.goal-widget{margin:auto 24px 18px;padding:18px;border-radius:14px;background:linear-gradient(145deg,#F8F4FF,#F3ECFF);border:1px solid #E8DDFB;box-shadow:none;}
.goal-title{color:#8B5CF6;font-size:12px;}
.goal-bar-track{background:#E8DDFB;height:7px;}
.goal-bar-fill{background:#8B5CF6;}
.goal-pct{color:#475467;float:right;margin-top:-21px;}
.sidebar-footer{padding:14px 20px 0;border-top:1px solid #ECEFF3;}
.profile-avatar-initials{background:#F2F4F7;color:#344054;border:1px solid #EAECF0;}

/* Général */
.hero{align-items:center;border-bottom:0;padding-bottom:0;margin-bottom:14px;min-height:40px;}
.brand-title-inline{font-size:35px;line-height:1.05;font-weight:800;letter-spacing:-.02em;color:#161B26;}
.sparkle{color:#FFAE22;font-size:.55em;vertical-align:top;margin-left:3px;}
.month-picker-pill{gap:0;border:1px solid #EAECF0;border-radius:26px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.05);}
.pill-nav-btn{width:42px;height:42px;border:0;border-radius:0;background:#fff;color:#344054;}
.pill-nav-btn:hover{background:#F9FAFB;color:#101828;}
.pill-center{border:0;border-radius:0;padding:9px 16px;min-width:142px;justify-content:center;font-size:14px;}
.month-label{min-width:auto;font-size:14px;}
.btn{font-weight:700;font-size:13px;border-radius:11px;padding:10px 17px;text-transform:none;letter-spacing:0;box-shadow:none;}
.btn:active{transform:none;}
.btn-gold{background:linear-gradient(180deg,#FF850A,#FF7200);color:#fff;box-shadow:0 1px 2px rgba(255,121,0,.18);}
.btn-gold:hover{background:#F56F00;}
.btn-ghost{background:#fff;color:#344054;border:1px solid #E4E7EC;box-shadow:0 1px 2px rgba(16,24,40,.04);}
.btn-ghost:hover{background:#F9FAFB;border-color:#D0D5DD;}
.card,.card-panel,.chart-card,.graph-stat-card{border:1px solid #EAECF0;box-shadow:0 3px 12px rgba(16,24,40,.035);}

/* Budget */
#view-budget .wrap{max-width:1280px;}
.assistant-trigger{display:none;}
.finn-card{position:relative;display:grid;grid-template-columns:360px 1fr;grid-template-rows:auto auto;column-gap:32px;background:#fff;border:1px solid #EAECF0;border-radius:18px;padding:24px 32px;margin-bottom:18px;box-shadow:0 4px 16px rgba(16,24,40,.04);min-height:150px;overflow:hidden;}
.finn-card-mascot{width:104px;float:none;margin:0;position:absolute;left:24px;top:18px;}
.finn-bubble{grid-column:1;display:block;background:#EDF8E9;border-radius:12px 12px 12px 4px;padding:10px 15px;margin:10px 0 0 128px;max-width:210px;align-self:start;}
.finn-bubble p{font-size:13px;color:#397A2B;line-height:1.45;}
.finn-stats{grid-column:2;grid-row:1;clear:none;padding:5px 0 10px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-self:end;}
.finn-stat{gap:14px;padding:0 26px;border-left:1px solid #EAECF0;}
.finn-stat:first-child{border-left:0;}
.stat-badge{width:42px;height:42px;border-radius:11px;}
.stat-label{font-size:11px;color:#667085;}
.stat-value{font-size:25px;color:#101828;}
.compare-bar-track{grid-column:2;grid-row:2;height:8px;margin:11px 26px 4px;border-radius:8px;background:#F2F4F7;}
.compare-text{grid-column:2;grid-row:2;align-self:end;margin:24px 26px 0;font-size:13.5px;color:#667085;}
.upload-zone{border:1.5px dashed #A9CFFF;border-radius:14px;padding:22px 26px;margin-bottom:18px;background:#FBFDFF;align-items:center;box-shadow:none;min-height:74px;}
.upload-icon-badge{width:50px;height:50px;border-radius:50%;background:#EFF6FF;color:#3D8FEF;}
.upload-zone h3{font-size:15.5px;margin-bottom:3px;}
.upload-zone p{font-size:13px;}
.upload-zone .btn-gold{background:#2388F5;padding:12px 22px;border-radius:9px;font-size:14px;}
.category-list{gap:7px;}
.category-row{padding:12px 20px;border:1px solid #EAECF0;border-radius:13px;background:#fff;box-shadow:0 2px 7px rgba(16,24,40,.025);gap:18px;min-height:56px;}
.category-row:last-child{border-bottom:1px solid #EAECF0;}
.cat-badge{width:40px!important;height:40px!important;border-radius:11px!important;}
.category-row .cat-name{font-size:15px;}
.category-field{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:118px;}
.category-field .cf-label{font-size:11px;color:#98A2B3;font-weight:800;text-transform:uppercase;white-space:nowrap;}
.category-field input.budget-input{width:62px;border:0;background:#F8FAFC;border-radius:7px;padding:5px 7px;}
.category-field .cf-value{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:13.5px;}
.category-ecart{min-width:84px;}
.category-progress-wrap{min-width:190px;max-width:290px;}
.category-progress-wrap .bar-track{height:7px;background:#F1EEE8;}
.category-chevron{color:#98A2B3;transition:transform .15s;}
.category-row{cursor:pointer;}
.category-modal-card{max-width:520px;text-align:left;}
.category-modal-header{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.category-modal-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:17px;margin:0;}
.category-modal-sub{font-size:12px;color:var(--gray);margin:2px 0 0;}
.category-modal-list{max-height:400px;overflow-y:auto;}
.category-detail-row{display:flex;align-items:center;gap:14px;padding:9px 2px;border-bottom:1px solid #EFEFEC;font-size:12.5px;}
.category-detail-row:last-child{border-bottom:none;}
.cdr-date{color:var(--gray);min-width:60px;font-weight:700;}
.cdr-desc{flex:1;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cdr-amount{font-family:'Baloo 2',sans-serif;font-weight:700;color:var(--ink);}
.tx-section{margin-top:34px;}

/* Relevés */
#view-fichiers .hero{margin-bottom:18px;}
#view-fichiers .hero>div:last-child{gap:14px!important;}
#filesImportBtn{min-width:210px;height:42px;}
.files-layout-2col{grid-template-columns:minmax(260px,300px) 1fr!important;}
.files-col-list,.files-col-detail,#filesSummaryPanel{padding:16px;}
.files-col-list,#filesSummaryPanel{min-height:420px;}
.files-col-detail{min-height:900px;}
.panel-title{font-size:16px;color:#101828;margin-bottom:12px;}
.files-filters{gap:8px;margin-bottom:12px;}
.files-filters select{height:38px;border:1px solid #EAECF0;border-radius:9px;font-size:12px;padding:7px 10px;box-shadow:0 1px 2px rgba(16,24,40,.03);}
.file-list-row{min-height:62px;padding:9px 10px;border:1px solid transparent;border-radius:10px;margin-bottom:5px;gap:10px;}
.file-list-row:hover{background:#F9FAFB;}
.file-list-row.selected{border-color:#FF8A24;background:#FFF9F3;box-shadow:inset 0 0 0 1px rgba(255,138,36,.08);}
.bank-badge{width:34px;height:34px;border-radius:9px;}
.bank-badge-logo{background:#fff!important;border:1px solid #EAECF0;padding:5px;box-sizing:border-box;}
.bank-badge-logo img{width:100%;height:100%;object-fit:contain;}
.file-list-name{font-size:13px;}
.file-list-meta{font-size:10.5px;margin-top:2px;}
.file-list-status{background:#EBF9EE;color:#249438;padding:3px 7px;border-radius:999px;font-size:9.5px;display:inline-block;}
.files-pagination{border-top:0;margin-top:8px;padding-top:6px;}
.page-btn.active{background:#FFF3E8;color:#FF7900;border:1px solid #FFD3AE;}
.detail-header{margin-bottom:12px;}
.detail-bank-name{font-size:18px;}
.detail-actions .btn{padding:8px 11px;font-size:11px;}
.pdf-frame-wrap{height:590px;border:1px solid #D0D5DD;border-radius:10px;background:#20262E;box-shadow:0 2px 6px rgba(16,24,40,.08);display:flex;flex-direction:column;overflow:hidden;height:820px;}
.pdf-toolbar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#1B2027;border-bottom:1px solid #2E3540;flex:0 0 auto;}
.pdf-zoom-btn{background:#2E3540;border:none;color:#fff;width:28px;height:28px;border-radius:7px;cursor:pointer;font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.pdf-zoom-btn:hover{background:#3A4250;}
.pdf-zoom-pct{color:#C9CED6;font-family:'Baloo 2',sans-serif;font-size:12.5px;font-weight:700;min-width:42px;text-align:center;}
.pdf-viewport{flex:1;overflow:auto;background:#525659;display:flex;align-items:flex-start;justify-content:center;}
.pdf-viewport iframe{transform-origin:top center;transition:transform .15s ease;}
#filesSummaryPanel{min-height:430px;}
.summary-row{padding:13px 4px;border-bottom:1px solid #EEF0F3;}
.summary-icon{width:32px;height:32px;border-radius:50%;}
.summary-label{font-size:12.5px;}
.summary-value{font-size:13px;}
.summary-closing{padding:14px 12px;background:#F2FBF4;border:1px solid #B7E8C1;}
.finn-tip-card{min-height:160px;background:#FFF8EE;border:1px solid #F4D8B6;border-radius:16px;padding:17px 18px;box-shadow:0 2px 8px rgba(16,24,40,.025);align-items:flex-start;overflow:hidden;}
.finn-tip-mascot{width:80px;margin-left:-10px;margin-bottom:-18px;align-self:flex-end;}
.finn-tip-title{font-size:11px;color:#344054;}
.finn-tip-title-2{font-size:14px;color:#101828;}
.finn-tip-text{font-size:12px;color:#667085;line-height:1.5;}

/* Graphiques */
#view-graphiques .hero{margin-bottom:22px;}
.graphs-grid{grid-template-columns:minmax(0,1.55fr) minmax(380px,1fr);gap:20px;margin-bottom:18px;}
.chart-card{border-radius:18px;padding:22px 24px;margin-bottom:18px;background:#fff;}
.chart-card h3{font-size:17px;color:#101828;margin-bottom:10px;}
.chart-wrap{height:305px;}
.donut-wrap{height:250px;}
.donut-center .dc-value{font-size:22px;color:#101828;}
.donut-center .dc-label{font-size:12px;}
.donut-legend-row{font-size:12px;}
.graph-stats-row{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;}
.graph-stat-card{border-radius:15px;padding:15px 16px;min-height:100px;}
.graph-stat-icon{width:42px;height:42px;border-radius:50%;}
.graph-stat-value{font-size:19px;}
.graph-stat-sub{font-size:11px;color:#667085;}
#finnTipGraphs{margin-top:0;min-height:150px;align-items:center;}
#finnTipGraphs .finn-tip-mascot{width:110px;margin-left:0;margin-bottom:-18px;}
.top5-link{background:#fff;border:1px solid #EAECF0;color:#475467;}

/* Responsive */
@media (max-width:1024px){
  .sidebar{width:236px;flex-basis:236px;}
  .files-layout{grid-template-columns:300px 1fr;}
  .files-col-summary{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .files-col-summary .finn-tip-card{margin-top:0;}
}
@media (max-width:760px){
  .sidebar{width:100%;flex-basis:auto;}
  .finn-card{grid-template-columns:1fr;}
  .finn-stats,.compare-bar-track,.compare-text{grid-column:1;}
  .finn-stats{margin-top:100px;}
  .files-layout,.graphs-grid{grid-template-columns:1fr;}
  .files-col-summary{display:block;}
  .graph-stats-row{grid-template-columns:1fr;}
}

/* Disposition Graphiques calée sur la maquette : 2 colonnes avec cartes imbriquées */
#graphsContainer{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,1fr);gap:18px 20px;align-items:start;}
#graphsContainer>.graphs-grid{display:contents;}
#graphsContainer>.graphs-grid>.chart-card:first-child{grid-column:1;grid-row:1;margin:0;}
#graphsContainer>.graphs-grid>.chart-card:nth-child(2){grid-column:2;grid-row:1;margin:0;}
#graphsContainer>.graph-stats-row{grid-column:1;grid-row:2;margin:0;}
#graphsContainer>.chart-card{grid-column:2;grid-row:2 / span 2;margin:0;}
#graphsContainer>#finnTipGraphs{grid-column:1;grid-row:3;margin:0;}
@media (max-width:1000px){
  #graphsContainer{grid-template-columns:1fr;}
  #graphsContainer>.graphs-grid{display:grid;grid-template-columns:1fr;grid-column:1;grid-row:auto;}
  #graphsContainer>.graphs-grid>.chart-card:first-child,
  #graphsContainer>.graphs-grid>.chart-card:nth-child(2),
  #graphsContainer>.graph-stats-row,
  #graphsContainer>.chart-card,
  #graphsContainer>#finnTipGraphs{grid-column:1;grid-row:auto;}
}

/* ==========================================================
   FINNFLOW — Pastel territory redesign (2026-08)
   ========================================================== */
:root{
  --ff-bg:#f7f5ed;
  --ff-paper:#fffdf8;
  --ff-paper-2:#f2f4e8;
  --ff-ink:#203129;
  --ff-muted:#7c887f;
  --ff-line:#e6e7da;
  --ff-green:#4f8d45;
  --ff-green-2:#80ad62;
  --ff-green-3:#dfead2;
  --ff-sage:#a9c7b3;
  --ff-mint:#dcebe2;
  --ff-orange:#e88446;
  --ff-gold:#d9aa57;
  --ff-blue:#79a9bd;
  --ff-shadow:0 14px 40px rgba(50,70,54,.09);
  --ff-radius:24px;
}
*{box-sizing:border-box}
html,body{background:var(--ff-bg)!important;color:var(--ff-ink)!important;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
body{letter-spacing:-.01em}
.app-shell{background:linear-gradient(120deg,#f8f6ee 0%,#f4f5eb 55%,#eef4e9 100%)!important;min-height:100vh}
.sidebar{width:226px!important;background:rgba(250,249,242,.94)!important;border-right:1px solid rgba(88,112,84,.09)!important;padding:26px 16px!important;backdrop-filter:blur(18px)}
.brand{padding:0 8px 24px!important;margin:0 0 10px!important;border:0!important}
.brand-logo-lockup{width:155px!important;max-height:46px!important;object-fit:contain!important;object-position:left center!important}
.nav-kicker{font-size:10px;font-weight:700;letter-spacing:.16em;color:#a4aba2;padding:0 14px 10px}
.nav-item{height:52px!important;border-radius:15px!important;margin:4px 0!important;padding:0 14px!important;color:#59645d!important;font-size:14px!important;font-weight:500!important;gap:13px!important;transition:.2s ease!important}
.nav-item:hover{background:#eef3e8!important;color:var(--ff-green)!important}
.nav-item.active{background:linear-gradient(135deg,#e6edd9,#edf1df)!important;color:#386f3c!important;box-shadow:none!important;font-weight:600!important}
.nav-item.active .nav-icon{color:#4b8b4a!important}
.goal-widget{background:linear-gradient(145deg,#edf4e5,#f7f4df)!important;border:1px solid #e0e8d7!important;border-radius:19px!important;box-shadow:none!important;margin-top:auto!important}
.goal-title{color:#446f45!important;font-size:12px!important;letter-spacing:.02em}.goal-text{color:#6d786f!important}.goal-bar-track,.bar-track,.compare-bar-track,.xp-track{background:#e9eadf!important}
.goal-bar-fill,.bar-fill,.xp-track span{background:linear-gradient(90deg,#6da55d,#4f8d45)!important}
.sidebar-footer{border-top:0!important;padding-top:14px!important}.profile-row{border-radius:16px!important;background:#fffdf8!important;border:1px solid var(--ff-line)!important}
.profile-avatar-initials{background:#dfead2!important;color:#3f7540!important}
.main-content{margin-left:226px!important;background:transparent!important;min-width:0!important}
.wrap{max-width:1450px!important;padding:28px 34px 56px!important;margin:0 auto!important}.wrap-wide{max-width:1500px!important}
.hero{margin:0 0 22px!important;align-items:center!important}.app-topbar{padding:0 4px!important}
.welcome-kicker,.territory-eyebrow,.section-kicker{margin:0 0 7px;font-size:10px;font-weight:700;letter-spacing:.15em;color:#8d9b8e}
.brand-title-inline{font-family:Inter,sans-serif!important;font-size:28px!important;line-height:1.12!important;font-weight:650!important;color:#24342b!important;margin:0!important;letter-spacing:-.035em!important}
.welcome-sub{margin:6px 0 0;color:#929d95;font-size:13px}
.sparkle{display:none!important}
.month-picker-pill{border:1px solid var(--ff-line)!important;background:rgba(255,253,248,.92)!important;border-radius:14px!important;min-height:44px!important;box-shadow:0 6px 18px rgba(57,75,57,.04)!important}.pill-nav-btn{color:#7a867f!important}.pill-center{font-size:13px!important;font-weight:600!important;color:#45534a!important}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.85fr);gap:18px;align-items:stretch;margin-bottom:24px}
.territory-card{position:relative;overflow:hidden;min-height:590px;border-radius:28px;background:linear-gradient(155deg,#d9ebe3 0%,#eaf0d8 48%,#f2edcf 100%);box-shadow:var(--ff-shadow);border:1px solid rgba(113,145,112,.12)}
.territory-copy{position:absolute;z-index:3;left:26px;right:26px;top:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.territory-copy h2{font-size:27px;letter-spacing:-.04em;margin:0 0 5px}.territory-copy p:not(.territory-eyebrow){margin:0;color:#728077;font-size:13px}.leaf-mark{display:inline-block;width:13px;height:13px;border-radius:100% 0 100% 100%;transform:rotate(-38deg);background:#79a95d;color:transparent;vertical-align:4px;margin-left:3px}
.streak-pill{display:grid;grid-template-columns:30px auto;grid-template-rows:auto auto;background:rgba(255,253,248,.82);border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(10px);padding:10px 14px 10px 10px;border-radius:15px;min-width:126px;box-shadow:0 8px 20px rgba(72,95,68,.07)}.streak-flame{grid-row:1/3;font-size:23px;color:#dd9d4f}.streak-pill strong{font-size:14px;line-height:1.05}.streak-pill small{font-size:10px;color:#89938b;margin-top:3px}
.territory-scene{position:absolute;inset:112px 0 62px;background-image:linear-gradient(180deg,rgba(231,241,224,.02),rgba(236,235,205,.15)),url('/img/territory-scene.png');background-position:center 52%;background-repeat:no-repeat;background-size:112%;filter:saturate(.88) contrast(.97);animation:territoryBreathe 14s ease-in-out infinite;}
@keyframes territoryBreathe{
  0%,100%{background-size:112%;background-position:center 52%;}
  50%{background-size:118%;background-position:center 50%;}
}
@media (prefers-reduced-motion:reduce){ .territory-scene{animation:none;} }
.territory-scene::after{
  content:"";position:absolute;left:57%;top:70%;width:50px;height:50px;
  transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,176,60,.9) 0%,rgba(255,140,20,.5) 40%,rgba(255,140,20,0) 72%);
  animation:fireFlicker 1.6s ease-in-out infinite;
}
@keyframes fireFlicker{
  0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(1);}
  25%{opacity:.95;transform:translate(-50%,-50%) scale(1.12);}
  50%{opacity:.65;transform:translate(-50%,-50%) scale(.94);}
  75%{opacity:1;transform:translate(-50%,-50%) scale(1.08);}
}
@media (prefers-reduced-motion:reduce){ .territory-scene::after{animation:none;} }
.territory-copy{background:linear-gradient(180deg,rgba(217,235,227,.97) 65%,rgba(217,235,227,0) 100%);padding-bottom:14px;}
.territory-level{position:absolute;left:22px;right:22px;bottom:18px;z-index:3;background:rgba(255,253,248,.9);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.7);border-radius:17px;padding:14px 58px 14px 16px;box-shadow:0 8px 25px rgba(67,91,67,.08)}.territory-level>div:first-child{display:flex;justify-content:space-between;gap:16px;font-size:12px}.territory-level>div:first-child span{color:#829087}.xp-track{height:7px;border-radius:99px;margin-top:10px;overflow:hidden}.xp-track span{display:block;height:100%;border-radius:inherit}.territory-gift{position:absolute;right:13px;top:12px;width:38px;height:38px;border:0;border-radius:12px;background:#eaf0dd;color:#5d8b4b;font-size:17px}
.dashboard-side{display:flex;flex-direction:column;gap:12px;min-width:0}.assistant-trigger{order:2!important;border:1px solid #dfe5d8!important;background:#f8f7ef!important;color:#58705c!important;border-radius:14px!important;box-shadow:none!important;font-size:13px!important;font-weight:600!important}
.finn-card{order:1!important;margin:0!important;height:100%!important;min-height:536px!important;background:var(--ff-paper)!important;border:1px solid var(--ff-line)!important;border-radius:24px!important;box-shadow:var(--ff-shadow)!important;padding:20px!important;display:flex!important;flex-direction:column!important}.finn-card-mascot{position:static!important;top:auto!important;left:auto!important;float:none!important;width:46px!important;height:46px!important;object-fit:cover!important;border-radius:14px!important;background:#e5eddc!important;padding:4px!important}.finn-bubble{border:0!important;background:#f0f4e9!important;border-radius:14px!important;margin:10px 0 14px!important;padding:12px 14px!important;color:#536159!important;font-size:12px!important;max-width:none!important}.finn-stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;margin-top:0!important}.finn-stat{border:1px solid #ecece3!important;background:#fbfaf5!important;border-radius:15px!important;padding:18px 14px!important;min-width:0!important}.stat-badge{width:32px!important;height:32px!important;border-radius:10px!important}.stat-value{font-size:18px!important;color:#24342b!important}.stat-label{font-size:10px!important;color:#8b958f!important}.compare-bar-track{height:7px!important;margin-top:auto!important;border-radius:99px!important}.compare-bar-planned{background:#6fa35c!important}.compare-bar-actual{background:#d98c5b!important}.compare-text{font-size:11px!important;color:#7b877f!important;line-height:1.5!important;margin-bottom:0!important}
.section-heading-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:6px 3px 14px}.section-heading-row h2{margin:0;font-size:19px;letter-spacing:-.03em}.section-note{color:#97a098;font-size:11px}
.upload-zone{background:#fffdf8!important;border:1px dashed #cbd8c5!important;border-radius:20px!important;padding:16px 18px!important;margin:0 0 16px!important;box-shadow:none!important}.upload-zone:hover{border-color:#89ad79!important;background:#f8faF2!important}.upload-zone h3{font-size:13px!important;color:#405147!important}.upload-zone p{font-size:11px!important;color:#8b978f!important}.btn-gold{background:#568e49!important;color:#fff!important;border:0!important;border-radius:12px!important;box-shadow:none!important}.btn-gold:hover{background:#467b3e!important;transform:none!important}
.category-list{background:var(--ff-paper)!important;border:1px solid var(--ff-line)!important;border-radius:24px!important;overflow:hidden!important;box-shadow:var(--ff-shadow)!important;padding:4px 16px!important}.category-row{min-height:76px!important;border:0!important;border-bottom:1px solid #ecece4!important;border-radius:0!important;background:transparent!important;padding:12px 6px!important;box-shadow:none!important;grid-template-columns:46px minmax(135px,1.2fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(160px,1fr) 20px!important}.category-row:last-child{border-bottom:0!important}.category-row:hover{background:#fafbf6!important}.cat-name{font-size:13px!important;font-weight:600!important}.cf-label{font-size:9px!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#a0a8a1!important}.cf-value,.category-ecart{font-size:12px!important}.budget-input{border:1px solid #e6e8df!important;border-radius:10px!important;background:#f9f8f4!important;font-family:Inter!important;font-size:12px!important}.category-pct{font-size:10px!important;color:#7d8981!important}.bar-fill.over{background:#dc865b!important}
.card-panel,.tx-section,#graphsContainer>*,.graph-card{background:var(--ff-paper)!important;border:1px solid var(--ff-line)!important;border-radius:22px!important;box-shadow:var(--ff-shadow)!important}
.tx-section{padding:18px!important}.tx-section table{font-size:12px!important}.tx-section th{font-size:9px!important;text-transform:uppercase!important;letter-spacing:.08em!important;color:#9aa39c!important}.tx-section td{border-color:#eeeee6!important}.tx-sub,.empty{color:#8e9992!important}
.files-layout-2col{gap:16px!important}.files-col-list,.files-col-detail{padding:18px!important}.panel-title{font-size:16px!important}.files-filters select,select,input{font-family:Inter,sans-serif!important}
.assistant-overlay{backdrop-filter:blur(8px)!important;background:rgba(45,61,48,.22)!important}.assistant-card{border-radius:24px!important;border:1px solid #e4e7dc!important;box-shadow:0 30px 90px rgba(34,48,35,.18)!important;background:#fffdf8!important}
@media(max-width:1100px){.sidebar{width:190px!important}.main-content{margin-left:190px!important}.dashboard-grid{grid-template-columns:1fr}.territory-card{min-height:530px}.finn-card{min-height:auto!important}}
@media(max-width:760px){.sidebar{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;height:68px!important;z-index:100!important;flex-direction:row!important;padding:8px 10px!important;border-right:0!important;border-top:1px solid var(--ff-line)!important}.brand,.nav-kicker,.goal-widget,.sidebar-footer{display:none!important}.nav-item{flex:1!important;height:50px!important;justify-content:center!important;padding:0!important;font-size:10px!important;flex-direction:column!important;gap:2px!important}.main-content{margin-left:0!important;padding-bottom:76px!important}.wrap{padding:20px 14px 36px!important}.hero{align-items:flex-start!important}.dashboard-grid{grid-template-columns:1fr!important}.territory-card{min-height:470px;border-radius:22px}.territory-copy{left:18px;right:18px;top:18px}.territory-copy h2{font-size:23px}.territory-copy p:not(.territory-eyebrow){max-width:230px}.streak-pill{min-width:auto;padding-right:10px}.territory-scene{inset:82px 0 70px;background-size:cover}.category-row{grid-template-columns:42px 1fr 90px 20px!important}.category-field:nth-of-type(2),.category-ecart{display:none!important}.category-progress-wrap{grid-column:2/4!important}.section-note{display:none}.brand-title-inline{font-size:25px!important}}

/* ================= TERRITOIRE PLEIN ÉCRAN (canevas zoomable/déplaçable) ================= */
.dashboard-grid-solo{grid-template-columns:1fr!important;}
#view-territoire{padding:0;}
.territoire-fullscreen{position:fixed;inset:0;left:272px;background:linear-gradient(155deg,#d9ebe3 0%,#eaf0d8 48%,#f2edcf 100%);display:flex;flex-direction:column;z-index:5;}
.territoire-topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 32px;flex:0 0 auto;}
.territoire-eyebrow{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:11px;letter-spacing:.1em;color:#6b8b6a;margin:0 0 3px;}
.territoire-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:28px;color:#233327;margin:0;}
.territoire-points-pill{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid rgba(113,145,112,.18);border-radius:999px;padding:10px 18px;font-family:'Baloo 2',sans-serif;font-weight:700;font-size:14px;color:#3a4a3d;box-shadow:0 3px 10px rgba(60,80,60,.06);}
.territoire-points-pill svg{color:#E5A800;}

.territoire-canvas-wrap{flex:1;position:relative;overflow:hidden;cursor:grab;}
.territoire-canvas-wrap.grabbing{cursor:grabbing;}
.territoire-canvas{position:absolute;left:50%;top:50%;width:0;height:0;transform-origin:0 0;}
.territoire-platform{
  position:relative;width:640px;height:640px;transform:translate(-50%,-50%) rotateX(58deg) rotateZ(45deg);
  transform-style:preserve-3d;
}
.territoire-platform::before{
  content:"";position:absolute;inset:0;border-radius:38px;
  background:linear-gradient(155deg,#8fcf72 0%,#7dbb63 55%,#6fae57 100%);
  box-shadow:0 0 0 14px #c99a5b, 0 0 0 26px #b98649, 0 40px 70px rgba(40,60,30,.35);
}
.territoire-item{position:absolute;transform:translate(-50%,-100%) rotateZ(-45deg) rotateX(-58deg);font-size:46px;line-height:1;filter:drop-shadow(0 6px 8px rgba(30,40,20,.25));user-select:none;}
.territoire-fox{
  position:absolute;left:50%;top:52%;width:78px;height:auto;
  transform:translate(-50%,-100%) rotateZ(-45deg) rotateX(-58deg) scaleX(1);
  filter:drop-shadow(0 8px 10px rgba(30,40,20,.3));
  animation:foxIdle 2.6s ease-in-out infinite;
  transition:left 1.8s ease-in-out, top 1.8s ease-in-out;
}
.territoire-fox.walking{animation:foxWalk .5s ease-in-out infinite;}
.territoire-fox.facing-left{transform:translate(-50%,-100%) rotateZ(-45deg) rotateX(-58deg) scaleX(-1);}
@keyframes foxIdle{
  0%,100%{margin-top:0;}
  50%{margin-top:-5px;}
}
@keyframes foxWalk{
  0%,100%{margin-top:0;}
  50%{margin-top:-9px;}
}
@media (prefers-reduced-motion:reduce){ .territoire-fox{animation:none;transition:none;} }

.territoire-zoom-controls{position:absolute;right:26px;bottom:26px;z-index:6;background:#fff;border-radius:16px;box-shadow:0 6px 20px rgba(40,60,40,.12);display:flex;flex-direction:column;align-items:center;padding:8px;gap:4px;}
.territoire-zoom-controls button{width:36px;height:36px;border-radius:10px;border:none;background:#f3f6f0;color:#3a4a3d;font-size:17px;font-weight:700;cursor:pointer;font-family:'Baloo 2',sans-serif;}
.territoire-zoom-controls button:hover{background:#e7ecdf;}
.territoire-zoom-controls span{font-family:'Baloo 2',sans-serif;font-size:10.5px;color:#7c8a7a;font-weight:700;padding:2px 0;}

.territoire-tutorial{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:14px;background:#fff;border-radius:20px;box-shadow:0 10px 30px rgba(40,60,40,.15);padding:14px 22px;max-width:520px;}
.territoire-tutorial img{width:52px;height:auto;flex:0 0 auto;}
.territoire-tutorial .tt-title{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:14px;margin:0 0 3px;color:#233327;}
.territoire-tutorial .tt-text{font-size:12.5px;color:#5c6d5e;margin:0;line-height:1.4;}
.territoire-tutorial .btn{flex:0 0 auto;white-space:nowrap;}

/* ================= BOUTIQUE ================= */
.boutique-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.boutique-card{background:#fff;border:1px solid #EAECF0;border-radius:18px;padding:20px;text-align:center;box-shadow:0 3px 12px rgba(16,24,40,.035);position:relative;}
.boutique-card.locked{opacity:.5;}
.boutique-card .bc-icon{font-size:42px;display:block;margin-bottom:10px;}
.boutique-card .bc-name{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:15px;color:#233327;margin:0 0 4px;}
.boutique-card .bc-desc{font-size:12px;color:#7c8a7a;margin:0 0 14px;line-height:1.4;min-height:34px;}
.boutique-card .bc-cost{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:14px;color:#C99A1F;margin-bottom:10px;}
.boutique-card .btn{width:100%;font-size:12.5px;padding:10px;}
.boutique-card .bc-owned-badge{position:absolute;top:12px;right:12px;background:#E3F5E1;color:#2E9E52;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:10.5px;padding:4px 9px;border-radius:8px;}
.boutique-card .bc-lock-note{font-size:11px;color:#a7b0a5;margin-top:6px;}

/* ================= CARTE DE PROGRESSION FINANCIÈRE ================= */
/* Palette et typographie isolées avec le préfixe --pg- pour ne rien changer ailleurs dans
   l'app (le reste de FinnFlow garde son propre système de design intact). */
#view-progression, #stageModal{
  --pg-bg:#F7F6F1; --pg-white:#FCFBF7; --pg-green:#526B4E; --pg-green-dark:#334A3A;
  --pg-green-pale:#E5EADF; --pg-beige:#EAE4D7; --pg-beige-accent:#C8B78F;
  --pg-text:#252A26; --pg-text-secondary:#747A73; --pg-border:rgba(54,70,56,0.10);
  font-family:'Inter',sans-serif; color:var(--pg-text);
}
#view-progression *, #stageModal *{ font-family:'Inter',sans-serif; }
#view-progression{background:var(--pg-bg);min-height:100vh;padding:0;}
.progression-wrap{max-width:none;padding:26px 32px 20px;}

.progression-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;}
.progression-h1{font-family:'DM Serif Display',serif;font-weight:400;font-size:32px;color:var(--pg-text);margin:0 0 4px;}
.progression-sub{font-size:14px;color:var(--pg-text-secondary);margin:0;}
.progression-legend{display:flex;gap:18px;font-size:12.5px;color:var(--pg-text-secondary);padding-top:8px;}
.progression-legend span{display:flex;align-items:center;gap:6px;}
.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;}
.legend-dot.current{background:var(--pg-green);}
.legend-dot.next{background:transparent;border:1.5px solid var(--pg-beige-accent);}

.progression-layout{display:grid;grid-template-columns:75% 25%;gap:18px;align-items:stretch;}
@media (max-width:1150px){ .progression-layout{grid-template-columns:1fr;} }

.progression-map-card{
  background:var(--pg-beige);border-radius:20px;border:1px solid var(--pg-border);
  position:relative;overflow:hidden;min-height:560px;box-shadow:0 3px 14px rgba(54,70,56,.05);
}
.progression-map{position:relative;width:100%;height:100%;min-height:560px;}
.progression-topo, .progression-lines{position:absolute;inset:0;width:100%;height:100%;}
.topo-line{fill:none;stroke:rgba(82,107,78,.14);stroke-width:.5;}
.topo-tree{fill:rgba(82,107,78,.18);}
.topo-lake{fill:rgba(82,107,78,.09);stroke:rgba(82,107,78,.15);stroke-width:.3;}
.topo-mountain{fill:none;stroke:rgba(82,107,78,.18);stroke-width:.5;}
.progression-path{stroke:var(--pg-beige-accent);stroke-width:.5;stroke-dasharray:2 2;}
.progression-path.done{stroke:var(--pg-green);}

.progression-region{
  position:absolute;transform:translate(-50%,-50%);width:168px;
  display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;
  background:var(--pg-white);border:1px solid var(--pg-border);border-radius:16px;
  padding:14px 16px;cursor:pointer;transition:box-shadow .18s,transform .18s,border-color .18s;
  box-shadow:0 3px 10px rgba(54,70,56,.06);
}
.progression-region:hover{box-shadow:0 6px 18px rgba(54,70,56,.12);transform:translate(-50%,-50%) translateY(-2px);border-color:rgba(54,70,56,.22);}
.progression-region:focus-visible{outline:2px solid var(--pg-green);outline-offset:2px;}
.progression-region.selected{border-color:var(--pg-green);box-shadow:0 0 0 3px rgba(82,107,78,.14);}
.progression-region .region-num{font-size:10.5px;font-weight:700;color:var(--pg-text-secondary);letter-spacing:.04em;}
.progression-region .region-icon{position:absolute;top:12px;right:14px;color:var(--pg-green);}
.progression-region .region-name{font-family:'Inter',sans-serif;font-weight:700;font-size:14.5px;color:var(--pg-text);margin-top:1px;}
.progression-region .region-pct{font-size:12px;color:var(--pg-text-secondary);margin-top:2px;}
.progression-region .region-bar-track{width:100%;height:5px;border-radius:99px;background:var(--pg-green-pale);display:block;margin-top:6px;overflow:hidden;}
.progression-region .region-bar-fill{display:block;height:100%;background:var(--pg-beige-accent);border-radius:99px;transition:width .5s ease;}

.progression-region.status-current{border-color:var(--pg-green);background:var(--pg-green-pale);}
.progression-region.status-current .region-bar-fill{background:var(--pg-green);}
.progression-region.status-completed{background:#F1F6EF;padding-bottom:36px;}
.progression-region.status-completed .region-bar-fill{background:var(--pg-green);}
.progression-region.status-next{background:var(--pg-white);}
.progression-region.status-locked{background:rgba(234,228,215,.5);color:var(--pg-text-secondary);}
.progression-region.status-locked .region-name, .progression-region.status-locked .region-pct{color:var(--pg-text-secondary);}
.progression-region.status-locked{cursor:pointer;}

.region-pin{position:absolute;top:-11px;left:50%;transform:translateX(-50%);width:16px;height:16px;border-radius:50%;background:var(--pg-green-dark);border:3px solid var(--pg-white);box-shadow:0 2px 6px rgba(0,0,0,.18);}
.region-stamp{position:absolute;bottom:10px;right:12px;font-size:8.5px;font-weight:800;letter-spacing:.06em;color:var(--pg-green);border:1px solid var(--pg-green);border-radius:20px;padding:2px 7px;}

/* ---- Panneau latéral droit ---- */
.progression-side{display:flex;flex-direction:column;gap:14px;}
.progression-card{background:var(--pg-white);border:1px solid var(--pg-border);border-radius:18px;padding:18px 20px;box-shadow:0 2px 10px rgba(54,70,56,.04);}
.card-kicker{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--pg-text-secondary);margin:0 0 10px;}
.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.card-header-row .card-kicker{margin:0;}
.card-see-all{font-size:12px;color:var(--pg-green);text-decoration:none;font-weight:600;}

.psc-kicker{font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--pg-text-secondary);margin:0 0 8px;}
.psc-title-row{display:flex;align-items:center;gap:9px;font-family:'DM Serif Display',serif;font-size:21px;color:var(--pg-text);margin-bottom:6px;}
.psc-title-row svg{color:var(--pg-green);flex:0 0 auto;}
.psc-desc{font-size:13px;color:var(--pg-text-secondary);line-height:1.5;margin:0 0 14px;}
.psc-progress-row{font-size:12.5px;color:var(--pg-text);margin-bottom:6px;font-weight:600;}
.btn-progression-detail{width:100%;margin-top:14px;background:var(--pg-green);color:#fff;border:none;border-radius:11px;padding:11px;font-family:'Inter',sans-serif;font-weight:600;font-size:13px;cursor:pointer;transition:background .15s;}
.btn-progression-detail:hover{background:var(--pg-green-dark);}
.btn-progression-detail:disabled{background:var(--pg-beige-accent);cursor:not-allowed;}

.mg-title{font-family:'DM Serif Display',serif;font-size:17px;margin:0 0 3px;}
.mg-sub{font-size:12.5px;color:var(--pg-text-secondary);margin:0 0 12px;}
.mg-amounts{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;margin-bottom:6px;}

.ritual-row, .history-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--pg-border);font-size:13px;}
.ritual-row:last-child, .history-row:last-child{border-bottom:none;padding-bottom:0;}
.ritual-icon{color:var(--pg-green);flex:0 0 auto;}
.ritual-label{flex:1;color:var(--pg-text);}
.ritual-progress{color:var(--pg-text-secondary);font-size:12px;font-weight:600;}
.history-row{justify-content:space-between;}
.hr-label{font-weight:600;font-size:13px;color:var(--pg-text);}
.hr-sub{font-size:11.5px;color:var(--pg-text-secondary);margin-top:1px;}
.hr-amount{font-weight:700;font-size:13px;color:var(--pg-text);}
.hr-amount.positive{color:var(--pg-green);}

/* ---- Bas de page: badges + prochaine étape ---- */
.progression-footer{display:flex;gap:18px;margin-top:18px;align-items:stretch;flex-wrap:wrap;}
.progression-badges-block{flex:1;background:var(--pg-white);border:1px solid var(--pg-border);border-radius:18px;padding:18px 20px;min-width:280px;}
.badges-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}
.badge-circle{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--pg-green-pale);color:var(--pg-green);cursor:default;}
.badge-circle.locked{background:var(--pg-beige);color:var(--pg-beige-accent);}
.ns-text{font-size:13.5px;color:var(--pg-text);line-height:1.5;margin:0 0 8px;max-width:280px;}
.ns-arrow{color:var(--pg-green);}

/* ---- Modal détail d'étape ---- */
.stage-modal-overlay{position:fixed;inset:0;background:rgba(37,42,38,.4);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;}
.stage-modal{background:var(--pg-white);border-radius:20px;padding:30px 32px;max-width:480px;width:100%;position:relative;box-shadow:0 20px 50px rgba(37,42,38,.25);}
.stage-modal-close{position:absolute;top:18px;right:18px;background:var(--pg-green-pale);border:none;width:30px;height:30px;border-radius:50%;cursor:pointer;color:var(--pg-green-dark);font-size:13px;}
.stage-modal-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.stage-modal-header svg{color:var(--pg-green);}
.stage-modal-header h2{font-family:'DM Serif Display',serif;font-weight:400;font-size:24px;margin:0;color:var(--pg-text);}
.stage-modal-desc{font-size:13.5px;color:var(--pg-text-secondary);line-height:1.55;margin:0 0 18px;}
.stage-modal-progress-row{font-size:13px;font-weight:600;margin-bottom:6px;}
.stage-modal-criteria{display:flex;flex-direction:column;gap:4px;}
.criterion-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--pg-border);font-size:13px;}
.criterion-row:last-child{border-bottom:none;}
.criterion-icon{color:var(--pg-green);flex:0 0 auto;}
.criterion-label{flex:1;color:var(--pg-text);}
.criterion-status{color:var(--pg-text-secondary);font-size:12px;font-weight:600;}

/* ---- Micro-animations (respecte prefers-reduced-motion) ---- */
.region-bar-fill{transition:width .5s ease;}
@media (prefers-reduced-motion:reduce){
  .progression-region, .region-bar-fill{transition:none;}
}

/* ---- Responsive ---- */
@media (max-width:900px){
  .progression-wrap{padding:18px 16px;}
  .progression-map-card{min-height:auto;}
  .progression-map{min-height:520px;}
  .progression-region{width:78vw;max-width:220px;}
  .progression-footer{flex-direction:column;}
}
@media (max-width:640px){
  .progression-topo, .progression-lines{display:none;}
  .progression-map{display:flex;flex-direction:column;gap:14px;padding:20px;min-height:auto;}
  .progression-region{position:static!important;left:auto!important;top:auto!important;transform:none!important;width:100%!important;}
  .progression-region:hover{transform:none!important;}
  .region-icon{position:static!important;float:right;margin-top:-2px;}
  .region-pin{display:none;}
  .region-stamp{position:static!important;display:inline-block;margin-top:8px;}
  .progression-header{flex-direction:column;gap:10px;}
}

/* ================= VUE PATRIMOINE (jauge, ville, cartes premium) ================= */
.vp-header-right{display:flex;align-items:center;gap:10px;}
.vp-bell{width:38px;height:38px;border-radius:50%;background:var(--pg-white);border:1px solid var(--pg-border);cursor:pointer;position:relative;}
.vp-bell::before{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;transform:translate(-50%,-58%);border:1.6px solid var(--pg-text-secondary);border-bottom:none;border-radius:8px 8px 0 0;}
.vp-bell::after{content:"";position:absolute;left:50%;bottom:11px;width:6px;height:6px;transform:translateX(-50%);border-bottom:1.6px solid var(--pg-text-secondary);border-radius:0 0 6px 6px;}
.vp-overview-btn{display:flex;align-items:center;gap:8px;background:var(--pg-green);color:#fff;border:none;border-radius:12px;padding:10px 16px;font-family:'Inter',sans-serif;font-weight:600;font-size:13px;cursor:pointer;}

.vp-main-row{display:grid;grid-template-columns:270px 1fr 250px;gap:16px;margin-bottom:14px;align-items:stretch;}
@media (max-width:1150px){ .vp-main-row{grid-template-columns:1fr;} .vp-city-card{min-height:340px!important;} }

.vp-score-card{display:flex;flex-direction:column;align-items:center;text-align:center;}
.vp-gauge-wrap{position:relative;width:130px;height:130px;margin:4px 0 8px;}
.vp-gauge{width:100%;height:100%;transform:rotate(-90deg);}
.vp-gauge-track{fill:none;stroke:var(--pg-beige);stroke-width:9;}
.vp-gauge-fill{fill:none;stroke:var(--pg-green);stroke-width:9;stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .7s ease;}
.vp-gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.vp-gauge-center span{font-family:'DM Serif Display',serif;font-size:30px;color:var(--pg-text);}
.vp-gauge-center small{font-size:11px;color:var(--pg-text-secondary);}
.vp-score-label{font-family:'Inter',sans-serif;font-weight:700;font-size:14px;color:var(--pg-green-dark);margin:0;}
.vp-score-sub{font-size:11.5px;color:var(--pg-text-secondary);margin:2px 0 12px;}
.vp-subscores{width:100%;display:flex;flex-direction:column;gap:9px;text-align:left;margin-bottom:10px;}
.vp-subscore-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--pg-text-secondary);}
.vp-subscore-row b{color:var(--pg-text);font-weight:700;font-size:12.5px;}
.vp-see-detail{font-size:12px;color:var(--pg-green);text-decoration:none;font-weight:600;}

.vp-city-card{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--pg-border);min-height:100%;}
.vp-city-scene{position:absolute;inset:0;background:linear-gradient(180deg,#EAE7DC 0%,#E3E6DC 45%,#D9DED2 100%);}
.vp-city-scene::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:62%;
  background-image:
    linear-gradient(180deg, transparent 0%, rgba(82,107,78,.06) 100%),
    repeating-linear-gradient(90deg, rgba(82,107,78,.16) 0 34px, transparent 34px 58px);
  clip-path:polygon(0% 100%,0% 55%,6% 42%,6% 70%,13% 70%,13% 30%,20% 30%,20% 62%,27% 62%,27% 18%,30% 18%,30% 62%,38% 62%,38% 12%,41% 12%,41% 62%,49% 62%,49% 38%,56% 38%,56% 68%,63% 68%,63% 8%,67% 8%,67% 68%,74% 68%,74% 44%,80% 44%,80% 72%,87% 72%,87% 26%,92% 26%,92% 72%,100% 72%,100% 100%);
}
.vp-buildings{position:absolute;inset:0;padding:20px;}
.vp-building-badge{
  position:absolute;background:var(--pg-white);border:1px solid var(--pg-border);border-radius:14px;
  padding:9px 12px;box-shadow:0 4px 14px rgba(54,70,56,.09);min-width:128px;max-width:150px;
}
.vp-building-badge .vpb-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.vp-building-badge .vpb-icon{width:26px;height:26px;border-radius:8px;background:var(--pg-green-pale);color:var(--pg-green);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.vp-building-badge .vpb-label{font-size:12.5px;font-weight:700;color:var(--pg-text);}
.vp-building-badge .vpb-niv{font-size:10px;color:var(--pg-text-secondary);font-weight:600;}
.vp-building-badge .vpb-amount{font-family:'Inter',sans-serif;font-weight:700;font-size:14px;color:var(--pg-text);margin:0 0 5px;}
.vp-building-badge .vpb-amount.untracked{color:var(--pg-text-secondary);font-weight:600;font-size:11.5px;}
.vp-building-badge .bar-track{height:5px;}

.vp-streak-pill{display:inline-flex;align-items:center;gap:10px;background:var(--pg-white);border:1px solid var(--pg-border);border-radius:14px;padding:10px 16px;margin-bottom:16px;font-size:13px;color:var(--pg-text);}
.vp-streak-pill svg{color:var(--pg-beige-accent);}

.vp-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px;}
@media (max-width:1000px){ .vp-cards-row{grid-template-columns:1fr;} }
.vp-obj-row, .vp-action-row{padding:10px 0;border-bottom:1px solid var(--pg-border);}
.vp-obj-row:last-child, .vp-action-row:last-child{border-bottom:none;padding-bottom:0;}
.vp-obj-top{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--pg-text);margin-bottom:5px;}
.vp-action-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.vp-action-label{font-size:13px;font-weight:700;color:var(--pg-text);margin:0 0 2px;}
.vp-action-detail{font-size:11.5px;color:var(--pg-text-secondary);margin:0;}
.vp-impact-tag{flex:0 0 auto;font-size:10px;font-weight:700;background:var(--pg-beige);color:var(--pg-green-dark);padding:4px 9px;border-radius:8px;white-space:nowrap;}

.vp-stats-strip{display:grid;grid-template-columns:repeat(4,1fr) 1.4fr;gap:14px;}
@media (max-width:1150px){ .vp-stats-strip{grid-template-columns:repeat(2,1fr);} }
.vp-stat-box{background:var(--pg-white);border:1px solid var(--pg-border);border-radius:16px;padding:16px 18px;}
.vp-stat-box .vsb-label{font-size:11.5px;color:var(--pg-text-secondary);margin-bottom:4px;}
.vp-stat-box .vsb-value{font-family:'Inter',sans-serif;font-weight:700;font-size:18px;color:var(--pg-text);}
.vp-advice-box{background:var(--pg-beige);border:1px solid var(--pg-beige-accent);border-radius:16px;padding:16px 18px;display:flex;gap:10px;align-items:flex-start;}
.vp-advice-box svg{color:var(--pg-beige-accent);flex:0 0 auto;margin-top:2px;}
.vp-advice-title{font-size:12.5px;font-weight:700;color:var(--pg-text);margin:0 0 2px;}
.vp-advice-text{font-size:11.5px;color:var(--pg-text-secondary);margin:0;}


/* ================= OVERRIDES — Patrimoine Équilibre final ================= */
body{font-family:'Inter',sans-serif;background:#F7F6F1;color:#252A26;}
h1,h2,h3,.brand-title-inline,.brand-title{font-family:'Inter',sans-serif;}
.loading-box .loading-text,.goal-title,.goal-pct,.profile-row-name,.nav-kicker{font-family:'Inter',sans-serif;}
.sidebar{background:#FCFBF7;border-right:1px solid rgba(54,70,56,.08);width:268px;padding:18px 16px 16px;}
.main-content{background:#F7F6F1;}
.brand-pe{display:flex;align-items:flex-start;gap:12px;padding:8px 8px 18px;}
.brand-mark-arch{position:relative;width:34px;height:34px;flex:0 0 34px;margin-top:4px;}
.brand-mark-arch::before{content:"";position:absolute;left:0;right:0;top:0;bottom:0;background:linear-gradient(180deg,#C8A55A,#B88D2F);clip-path:polygon(50% 0, 100% 22%, 100% 30%, 92% 30%, 92% 82%, 100% 82%, 100% 100%, 0 100%, 0 82%, 8% 82%, 8% 30%, 0 30%, 0 22%);} 
.brand-mark-arch::after{content:"";position:absolute;left:9px;top:10px;width:4px;height:16px;background:#FCFBF7;box-shadow:6px 0 0 #FCFBF7, 12px 0 0 #FCFBF7;}
.brand-text-pe{display:flex;flex-direction:column;line-height:1.02;font-family:'DM Serif Display',serif;font-size:21px;color:#2D312D;}
.nav-kicker{font-size:11px;letter-spacing:.08em;color:#9B9E96;margin:4px 10px 12px;text-transform:uppercase;font-weight:600;}
.nav-item{font-family:'Inter',sans-serif;font-size:15px;font-weight:500;color:#535A52;border-radius:14px;padding:13px 16px;margin:4px 0;}
.nav-item.active{background:#EFEEE5;color:#2F342F;font-weight:600;}
.nav-item .nav-icon{color:#7C837A;}
.nav-item.active .nav-icon{color:#6D795F;}
.goal-widget{margin:20px 4px 18px;background:#FBF8F0;border:1px solid rgba(200,183,143,.45);border-radius:16px;box-shadow:none;}
.goal-title{font-size:12px;color:#9D885D;font-weight:700;margin-bottom:8px;}
.goal-text{font-size:13px;font-weight:500;color:#3A403B;}
.goal-bar-track{background:#EEE7D8;}
.goal-bar-fill{background:#6B7F58;}
.sidebar-footer{margin-top:auto;padding-top:8px;}
.profile-row-wrap{padding:0 4px;}
.profile-row{border:1px solid rgba(54,70,56,.08);background:#FCFBF7;border-radius:16px;padding:11px 12px;}
.profile-avatar-initials{background:#E7E4DA;color:#526B4E;font-weight:700;}
#view-progression .wrap-wide{max-width:1440px;padding:26px 22px 44px;}
.progression-wrap{--pg-bg:#F7F6F1;--pg-white:#FCFBF7;--pg-green:#526B4E;--pg-green-dark:#334A3A;--pg-green-pale:#E5EADF;--pg-beige:#EAE4D7;--pg-beige-accent:#C8B78F;--pg-text:#252A26;--pg-text-secondary:#747A73;--pg-border:rgba(54,70,56,0.10);}
.progression-h1{font-family:'Inter',sans-serif;font-weight:700;font-size:40px;letter-spacing:-.03em;margin-bottom:6px;}
.progression-sub{font-size:18px;color:#7B807A;}
.month-picker-pill{display:flex;align-items:center;gap:8px;background:#FCFBF7;border:1px solid rgba(54,70,56,.1);border-radius:12px;padding:11px 14px;font-size:14px;color:#252A26;}
.vp-header-right .month-picker-pill{padding:11px 14px;min-width:124px;justify-content:center;}
.vp-bell{background:#FCFBF7;border:1px solid rgba(54,70,56,.1);}
.vp-overview-btn{background:#6E7E59;border-radius:14px;padding:12px 18px;font-size:14px;}
.vp-main-row{grid-template-columns:320px 1fr 220px;gap:20px;align-items:start;}
.progression-card{background:#FCFBF7;border:1px solid rgba(54,70,56,.08);border-radius:22px;box-shadow:0 8px 28px rgba(68,72,59,.04);padding:22px 22px;}
.card-kicker{font-size:14px;text-transform:none;letter-spacing:0;color:#2D312D;font-weight:600;margin-bottom:14px;}
.vp-score-card{align-items:stretch;text-align:left;}
.vp-gauge-wrap{width:156px;height:156px;margin:8px auto 10px;}
.vp-gauge-track{stroke:#E1DDCF;stroke-width:8;}
.vp-gauge-fill{stroke:#B08B32;stroke-width:8;}
.vp-gauge-center span{font-family:'Inter',sans-serif;font-size:54px;font-weight:300;letter-spacing:-.04em;}
.vp-gauge-center small{font-size:18px;}
.vp-score-label{text-align:center;font-size:33px;font-family:'DM Serif Display',serif;font-weight:400;margin:6px 0 2px;color:#63844B;}
.vp-score-sub{text-align:center;font-size:14px;margin-bottom:16px;}
.vp-subscores{gap:0;border-top:1px solid rgba(54,70,56,.08);padding-top:4px;}
.vp-subscore-row{padding:9px 0;border-bottom:1px solid rgba(54,70,56,.08);font-size:14px;}
.vp-subscore-row:last-child{border-bottom:none;}
.vp-subscore-row b{font-size:15px;}
.vp-see-detail{font-size:15px;color:#2F352F;margin-top:12px;display:inline-block;}
.vp-networth-card{min-height:162px;display:flex;flex-direction:column;justify-content:flex-start;}
.vp-networth-value{font-size:56px;line-height:1.02;letter-spacing:-.04em;font-family:'Inter',sans-serif;font-weight:300;margin:8px 0 12px;color:#191D18;}
.vp-networth-note{font-size:13px;line-height:1.45;color:#6B716C;max-width:170px;}
.vp-city-card{min-height:430px;border:none;overflow:visible;background:transparent;}
.vp-city-scene{position:absolute;left:0;right:0;top:28px;bottom:0;background:url('/img/patrimoine-city-bg.png') center/cover no-repeat;border-radius:22px;box-shadow:inset 0 0 0 1px rgba(54,70,56,.06);} 
.vp-city-scene::before{display:none;}
.vp-buildings{padding:0;}
.vp-building-badge{min-width:190px;max-width:210px;padding:14px 16px;border-radius:22px;box-shadow:0 12px 28px rgba(46,53,44,.10);}
.vpb-head{display:flex;flex-direction:column;gap:2px;}
.vp-building-badge .vpb-top{align-items:flex-start;gap:10px;margin:0;}
.vp-building-badge .vpb-icon{width:28px;height:28px;border-radius:8px;background:#F5F4EF;color:#6C765F;}
.vp-building-badge .vpb-label{font-size:17px;font-weight:600;line-height:1.1;margin-bottom:3px;}
.vpb-meta{display:flex;align-items:center;gap:14px;}
.vp-building-badge .vpb-niv{font-size:12px;letter-spacing:.02em;color:#3F443F;text-transform:uppercase;}
.vpb-amount-inline{font-size:15px;font-weight:500;color:#414641;}
.vpb-amount-inline.untracked{color:#858A85;}
.vp-building-badge .bar-track.slim{height:5px;background:#ECE8DE;border-radius:99px;margin-top:10px;overflow:hidden;}
.vp-building-badge .bar-fill{height:100%;border-radius:99px;background:#70825E;}
.vp-streak-pill{background:#FCFBF7;border:1px solid rgba(54,70,56,.08);border-radius:18px;box-shadow:0 6px 22px rgba(68,72,59,.04);}
.vp-cards-row{gap:18px;}
.card-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}
.card-header-row .card-kicker{margin-bottom:0;font-size:16px;font-weight:600;}
.vp-action-row,.history-row,.vp-obj-row{padding:14px 0;border-bottom:1px solid rgba(54,70,56,.08);} 
.vp-impact-tag{background:#F0EFE8;border-radius:999px;padding:6px 12px;font-size:12px;color:#8C8557;}
.history-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.hr-label{font-size:16px;font-weight:500;}
.hr-amount{font-size:18px;font-weight:500;}
.vp-stats-strip{gap:14px;grid-template-columns:repeat(4,1fr) 1.15fr;}
.vp-stat-box,.vp-advice-box{background:#FCFBF7;border:1px solid rgba(54,70,56,.08);border-radius:18px;padding:18px 18px;box-shadow:0 6px 22px rgba(68,72,59,.03);} 
.vp-stat-box .vsb-label{font-size:14px;color:#6B716C;}
.vp-stat-box .vsb-value{font-size:34px;font-weight:400;letter-spacing:-.03em;}
.vp-advice-box{background:#F7F2E7;align-items:center;}
.vp-advice-title{font-size:15px;margin-bottom:4px;}
.vp-advice-text{font-size:13px;line-height:1.5;}
@media (max-width: 1200px){.vp-main-row{grid-template-columns:1fr;}.vp-city-card{min-height:380px;}.vp-stats-strip{grid-template-columns:repeat(2,1fr);}}


/* ================= Maquette 2026-08-18 — exactitude visuelle ================= */
body{background:#F7F6F1!important;color:#2D302D;font-family:'Inter',sans-serif!important;}
.sidebar{width:240px!important;background:#FBFAF6!important;padding:24px 16px 18px!important;}
.main-content{margin-left:240px!important;background:#F7F6F1!important;min-height:100vh;}
.brand-pe{padding:8px 12px 28px!important;gap:12px!important;}
.brand-mark-arch{width:40px!important;height:40px!important;flex-basis:40px!important;}
.brand-text-pe{font-size:23px!important;line-height:.95!important;}
.nav-kicker{margin:0 12px 16px!important;font-size:10px!important;color:#9B9D97!important;}
.nav-item{height:50px!important;padding:0 16px!important;margin:4px 0!important;border-radius:14px!important;font-size:14px!important;display:flex!important;align-items:center!important;}
.nav-item.active{background:#EFF0E6!important;color:#58704C!important;}
.goal-widget{margin-top:auto!important;margin-bottom:16px!important;padding:16px!important;border-radius:18px!important;background:#F7F5E7!important;border:1px solid #E7E2C8!important;}
.level-widget{margin:0 4px 0;background:#FCFBF7;border:1px solid rgba(54,70,56,.08);border-radius:18px;padding:16px 16px 18px;box-shadow:0 4px 16px rgba(30,40,30,.02);}
.level-label{font-size:11px;color:#8A8F89;margin:0 0 7px;}
.level-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.level-name{font-family:'DM Serif Display',serif;font-size:22px;color:#2B302B;}
.level-xp{font-size:12px;color:#747A73;margin-top:2px;}
.level-badge{width:52px;height:52px;border-radius:50%;background:#627A55;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;box-shadow:0 3px 10px rgba(82,107,78,.18);}
.level-badge span{font-size:9px}.level-badge strong{font-size:20px;margin-top:2px}.level-track{height:5px;background:#ECE9DE;border-radius:99px;margin-top:11px;overflow:hidden}.level-fill{height:100%;background:#5B7750;border-radius:inherit}.level-separator{height:1px;background:#ECEAE3;margin:15px 0}.level-next{font-family:'DM Serif Display',serif;font-size:18px;display:flex;justify-content:space-between;align-items:center}.level-next span{width:30px;height:30px;border-radius:50%;background:#F1EBDD;color:#B69036;display:flex;align-items:center;justify-content:center;font-family:'Inter',sans-serif}.sidebar-footer-hidden{display:none!important}
#view-progression .wrap-wide{max-width:none!important;padding:26px 34px 28px!important;}
.progression-header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;margin-bottom:24px!important;}
.progression-h1{font-family:'DM Serif Display',serif!important;font-size:41px!important;font-weight:400!important;letter-spacing:-.025em!important;margin:0 0 4px!important;}
.progression-sub{font-size:15px!important;color:#777D76!important;}
.vp-header-right{gap:12px!important}.vp-header-right .month-picker-pill{height:42px!important;padding:0 14px!important;border-radius:11px!important;background:#FCFBF7!important}.vp-bell{display:none!important}.vp-overview-btn{height:42px!important;border-radius:11px!important;background:#647B55!important;padding:0 18px!important}
.vp-main-row{display:grid!important;grid-template-columns:minmax(390px,420px) minmax(560px,1fr) 220px!important;gap:14px!important;align-items:stretch!important;margin-bottom:18px!important;}
.progression-card{background:#FCFBF7!important;border:1px solid rgba(54,70,56,.08)!important;border-radius:20px!important;box-shadow:0 5px 18px rgba(48,57,46,.035)!important;}
.vp-score-card{padding:24px 24px 20px!important;min-height:350px!important;text-align:left!important;}
.vp-score-kicker{font-family:'DM Serif Display',serif!important;font-size:17px!important;font-weight:400!important;margin-bottom:14px!important;display:flex!important;justify-content:space-between!important;}
.vp-score-body{display:grid!important;grid-template-columns:170px 1fr!important;gap:22px!important;align-items:start!important;}
.vp-gauge-col{display:flex;flex-direction:column;align-items:center;}
.vp-gauge-wrap{width:166px!important;height:166px!important;margin:12px 0 22px!important;transform:translateX(-6px);}
.vp-gauge-track{stroke:#E7E6DF!important;stroke-width:8!important}.vp-gauge-fill{stroke:#B58B2F!important;stroke-width:8!important}.vp-gauge-center span{font-family:'DM Serif Display',serif!important;font-size:46px!important;font-weight:400!important}.vp-gauge-center small{font-size:14px!important;margin-top:2px}.vp-see-detail{font-size:12px!important;color:#B1842B!important;align-self:flex-start!important;white-space:nowrap!important}
.vp-score-details{padding-top:18px!important}.vp-score-label{text-align:left!important;font-family:'DM Serif Display',serif!important;font-size:28px!important;font-weight:400!important;color:#607D50!important;margin:0 0 4px!important}.vp-score-sub{text-align:left!important;font-size:12px!important;margin:0 0 16px!important}.vp-subscores{border-top:0!important;padding:0!important;gap:0!important}.vp-subscore-row{font-size:12px!important;padding:8px 0!important;border-bottom:1px solid #ECEAE3!important}.vp-subscore-row b{font-size:12px!important}.vp-subscore-row:last-child{border-bottom:0!important}
.vp-city-card{min-height:350px!important;border-radius:20px!important;overflow:hidden!important;background:#EAE9E1!important;border:1px solid rgba(54,70,56,.06)!important;}
.vp-city-scene{position:absolute!important;inset:0!important;background:url('/img/patrimoine-city-clean.png') center/cover no-repeat!important;border-radius:20px!important;box-shadow:none!important;}
.vp-buildings{display:none!important}
.vp-networth-card{padding:24px 20px!important;min-height:350px!important;position:relative!important;overflow:hidden!important}.vp-networth-kicker{font-family:'DM Serif Display',serif!important;font-size:15px!important;font-weight:400!important;margin-bottom:15px!important}.vp-networth-value{font-family:'DM Serif Display',serif!important;font-size:52px!important;line-height:.95!important;font-weight:400!important;letter-spacing:-.02em!important;margin:5px 0 12px!important}.vp-networth-growth{font-size:17px!important;color:#5F7C4B!important;font-weight:600!important;margin:0 0 8px!important}.vp-networth-note{font-size:12px!important;max-width:none!important}.vp-mini-chart{position:absolute!important;left:18px!important;right:18px!important;bottom:18px!important;width:calc(100% - 36px)!important;height:70px!important}
.vp-streak-pill{display:none!important}
.vp-cards-row{grid-template-columns:1.05fr 1.12fr 1.12fr!important;gap:16px!important;margin-bottom:18px!important}.vp-cards-row>.progression-card{padding:19px 22px!important;min-height:268px!important}.card-header-row .card-kicker{font-family:'DM Serif Display',serif!important;font-size:16px!important;font-weight:400!important}.card-see-all{font-size:11px!important;color:#536B4C!important}.vp-obj-row,.vp-action-row,.history-row{padding:13px 0!important;border-bottom:1px solid #ECEAE3!important}.vp-row-iconline,.vp-action-row,.history-row{display:flex!important;align-items:center!important;gap:12px!important}.vp-round-icon{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#F1F3EB;color:#617A54;display:flex;align-items:center;justify-content:center}.vp-row-copy{flex:1;min-width:0}.vp-row-title{font-size:13px;font-weight:500;color:#2F332F}.vp-row-sub{font-size:10.5px;color:#7C817B;margin-top:2px}.vp-row-pct{font-family:'DM Serif Display',serif;font-size:16px;font-weight:400}.vp-line-progress{height:5px;background:#ECEAE3;border-radius:99px;overflow:hidden;margin:9px 0 5px}.vp-line-progress span{height:100%;background:#5F7B52;display:block;border-radius:inherit}.vp-row-value{font-size:10.5px;color:#7B807A}.vp-impact-tag{font-size:10px!important;padding:5px 9px!important;background:#F2F0E8!important;color:#8B7952!important}.hr-amount{font-size:14px!important;font-weight:600!important}.hr-amount.positive{color:#5D7D4B!important}
.vp-stats-strip{grid-template-columns:repeat(4,minmax(0,1fr)) 1.35fr!important;gap:12px!important}.vp-stat-box{display:flex!important;align-items:center!important;gap:12px!important;padding:16px!important;border-radius:18px!important}.vp-stat-icon{width:42px;height:42px;flex:0 0 42px;border-radius:50%;background:#EFF2E9;color:#657D58;display:flex;align-items:center;justify-content:center}.vp-stat-icon.warm{background:#F6EEE8;color:#A66C4B}.vp-stat-icon.gold{background:#F8F1E2;color:#B48A2D}.vp-stat-box .vsb-label{font-family:'DM Serif Display',serif!important;font-size:13px!important;color:#303430!important;margin:0 0 4px!important}.vp-stat-box .vsb-value{font-family:'DM Serif Display',serif!important;font-size:24px!important;font-weight:400!important;line-height:1!important}.vsb-meta{font-size:10px;color:#828781;margin-top:6px}.vsb-meta strong{color:#64804F;margin-left:5px}.vp-advice-box{background:#F7F2E8!important;border:1px solid #EEE3D0!important;border-radius:18px!important;padding:16px 18px!important;display:flex!important;align-items:center!important;gap:14px!important}.vp-advice-icon{width:46px;height:46px;border-radius:50%;background:#D6AD4A;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px}.vp-advice-title{font-family:'DM Serif Display',serif!important;font-size:15px!important;font-weight:400!important;margin-bottom:4px!important}.vp-advice-text{font-size:11px!important;color:#666B66!important;line-height:1.4!important}.vp-advice-arrow{margin-left:auto;font-size:26px;color:#5D645C}
@media(max-width:1250px){.vp-main-row{grid-template-columns:360px 1fr!important}.vp-networth-card{grid-column:1/-1;min-height:200px!important}.vp-networth-value{font-size:44px!important}.vp-stats-strip{grid-template-columns:repeat(2,1fr)!important}}

/* ========== FINAL POLISH 2026-08-18: no gap + unified professional typography ========== */
:root{
  --pe-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
html,body,#appShell,.app-shell,.sidebar,.main-content,
button,input,select,textarea,table,th,td,a,span,p,div,label,small,strong,
h1,h2,h3,h4,h5,h6,
#view-progression *,#view-budget *,#view-transactions *,#view-fichiers *,#view-graphiques *,
#stageModal *{
  font-family:var(--pe-font)!important;
}

/* The app shell is already flex: the old left margin created the large dead column. */
.sidebar{
  width:240px!important;
  flex:0 0 240px!important;
}
.main-content{
  margin-left:0!important;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
}

/* Tighten the dashboard to begin immediately after the sidebar. */
#view-progression .wrap-wide,
.progression-wrap{
  margin-left:auto!important;
  margin-right:auto!important;
  max-width:1500px!important;
  width:calc(100% - 64px)!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}

/* Professional typography hierarchy: one family, weight/size creates hierarchy. */
.brand-text-pe{
  font-family:var(--pe-font)!important;
  font-size:19px!important;
  font-weight:700!important;
  line-height:1.02!important;
  letter-spacing:-.025em!important;
}
.progression-h1{
  font-family:var(--pe-font)!important;
  font-size:36px!important;
  font-weight:700!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
}
.progression-sub{
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.45!important;
}
.vp-score-kicker,.vp-networth-kicker,.card-header-row .card-kicker,
.vp-stat-box .vsb-label,.vp-advice-title{
  font-family:var(--pe-font)!important;
  font-weight:600!important;
  letter-spacing:-.01em!important;
}
.vp-gauge-center span,
.vp-networth-value,
.vp-score-label,
.level-name,.level-next,
.vp-row-pct,
.vp-stat-box .vsb-value{
  font-family:var(--pe-font)!important;
  font-weight:600!important;
  letter-spacing:-.035em!important;
}
.vp-score-label{font-size:24px!important;}
.vp-networth-value{font-size:48px!important;line-height:.98!important;}
.vp-gauge-center span{font-size:44px!important;}

/* Sidebar copy is calm and consistent. */
.nav-item{font-size:13px!important;font-weight:500!important;letter-spacing:0!important;}
.nav-item.active{font-weight:600!important;}
.nav-kicker{font-size:10px!important;font-weight:600!important;letter-spacing:.11em!important;}
.goal-title,.level-label{font-weight:600!important;}
.goal-text,.level-xp,.goal-pct{font-weight:500!important;}

/* Remove any visual separator/phantom spacing between sidebar and content. */
.app-shell{gap:0!important;}
.sidebar{margin-right:0!important;}
.main-content{padding-left:0!important;}

@media (max-width:1650px){#view-progression .wrap-wide,.progression-wrap{width:calc(100% - 72px)!important;}}

@media (max-width:760px){
  .sidebar{width:100%!important;flex:0 0 auto!important;}
  .main-content{margin-left:0!important;width:100%!important;}
  #view-progression .wrap-wide,.progression-wrap{width:calc(100% - 28px)!important;padding-left:0!important;padding-right:0!important;}
}


/* ===== ÉTIQUETTES CLIQUABLES SUR LA VILLE ===== */
.vp-city-card{position:relative!important;overflow:visible!important;z-index:3!important;}
.vp-building-labels{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:visible;}
.vp-city-label{
  position:absolute;transform:translate(-50%,-50%);
  min-width:220px;max-width:280px;
  overflow:visible;
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border:1px solid rgba(55,63,55,.10);border-radius:16px;
  background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
  box-shadow:0 10px 25px rgba(44,51,42,.14);
  color:#202520;text-align:left;pointer-events:auto;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.vp-city-label:hover{transform:translate(-50%,-50%) translateY(-3px);box-shadow:0 16px 32px rgba(44,51,42,.20);border-color:rgba(82,107,78,.28);}
.vp-city-label:focus-visible{outline:3px solid rgba(82,107,78,.28);outline-offset:3px;}
.vp-city-label-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 42px;}
.vp-city-label-copy{display:flex;flex-direction:column;min-width:0;line-height:1.12;}
.vp-city-label-copy strong{font-size:16px!important;font-weight:700!important;white-space:nowrap;}
.vp-city-label-copy small{font-size:11.5px!important;color:#6D736D;margin-top:4px;white-space:nowrap;}
.vp-city-label-chevron{font-size:24px;line-height:1;color:#727872;margin-left:auto;}
.vp-city-connector,.vp-city-connector-secondary{position:absolute;left:var(--connector-left,50%);top:var(--connector-top,calc(100% - 4px));width:var(--connector-length,56px);height:2px;background:rgba(255,255,255,.95);transform-origin:0 50%;transform:rotate(var(--connector-angle,90deg));box-shadow:0 0 0 1px rgba(72,77,72,.08);border-radius:999px;pointer-events:none;}
.vp-city-connector-secondary{display:var(--connector-secondary-display,none);left:var(--connector-secondary-left,0);top:var(--connector-secondary-top,0);width:var(--connector-secondary-length,0);transform:rotate(var(--connector-secondary-angle,90deg));}
.vp-city-connector-dot{position:absolute;left:var(--connector-dot-x,50%);top:var(--connector-dot-y,100%);width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid rgba(72,77,72,.18);transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(0,0,0,.10);pointer-events:none;}
.vp-city-label.accent-green .vp-city-label-icon{background:#E7F5E7;color:#3B8E49;}
.vp-city-label.accent-blue .vp-city-label-icon{background:#E8F0FF;color:#3D6FD6;}
.vp-city-label.accent-purple .vp-city-label-icon{background:#F0E8FF;color:#7A4BD8;}
.vp-city-label.accent-orange .vp-city-label-icon{background:#FFF0DF;color:#E88A22;}
.vp-city-label.accent-red .vp-city-label-icon{background:#FFE9E6;color:#D9544D;}
@media(max-width:1250px){
  .vp-city-label{min-width:180px;padding:10px 12px;}
  .vp-city-connector-dot{width:8px;height:8px;}
  .vp-city-label-icon{width:36px;height:36px;flex-basis:36px;}
  .vp-city-label-copy strong{font-size:13px!important;}
  .vp-city-label-copy small{font-size:10px!important;}
}

/* ================= MODULES PATRIMOINE CONNECTÉS ================= */
.patrimony-module{font-family:'Inter',sans-serif;color:#252A26;max-width:1320px;padding-top:26px;}
.module-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px;}
.module-hero h1{font-family:'Inter',sans-serif;font-size:34px;letter-spacing:-.03em;margin:2px 0 6px;color:#252A26;}
.module-hero p{margin:0;color:#747A73;font-size:14px;}
.module-kicker{font-size:11px!important;font-weight:700;letter-spacing:.09em;color:#8C947F!important;}
.module-add-btn{border:0;background:#5F7653;color:#fff;border-radius:12px;padding:11px 17px;font-family:'Inter',sans-serif;font-size:13px;font-weight:650;cursor:pointer;box-shadow:0 4px 12px rgba(82,107,78,.12);}
.module-add-btn:hover{background:#4D6545;}
.module-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;}
.module-summary-card{background:#FCFBF7;border:1px solid rgba(54,70,56,.09);border-radius:16px;padding:16px 18px;}
.module-summary-card span{display:block;font-size:11px;color:#7A8179;margin-bottom:5px;}
.module-summary-card strong{font-size:24px;font-weight:600;letter-spacing:-.02em;color:#252A26;}
.module-guide-card{grid-column:1/-1;background:linear-gradient(180deg,#ffffff 0%,#fbfaf6 100%);border:1px solid rgba(54,70,56,.10);border-radius:18px;padding:18px 20px;box-shadow:0 10px 26px rgba(35,45,38,.05);}
.module-guide-standalone{margin-top:16px;}
.module-guide-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px;}
.module-guide-head span,.module-guide-next span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#7f887f;font-weight:700;}
.module-guide-head strong,.module-guide-next strong{display:block;color:#243228;font-size:16px;font-weight:600;}
.module-guide-card p{margin:0 0 12px;font-size:14px;line-height:1.6;color:#4f5b53;}
.module-guide-next{padding-top:12px;border-top:1px solid rgba(54,70,56,.08);}

.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.module-item{background:#FCFBF7;border:1px solid rgba(54,70,56,.09);border-radius:18px;padding:18px;box-shadow:0 4px 18px rgba(54,70,56,.035);}
.module-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px;}
.module-item-title{font-weight:650;font-size:15px;color:#252A26;}
.module-item-sub{font-size:11.5px;color:#7A8179;margin-top:3px;}
.module-item-value{font-size:25px;font-weight:600;letter-spacing:-.025em;color:#252A26;margin-bottom:10px;}
.module-item-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;font-size:11.5px;color:#696F69;}
.module-item-actions{display:flex;gap:8px;margin-top:15px;padding-top:13px;border-top:1px solid rgba(54,70,56,.08);}
.module-mini-btn{border:1px solid rgba(54,70,56,.12);background:#fff;border-radius:9px;padding:7px 10px;font-size:11px;font-family:'Inter',sans-serif;color:#4B544B;cursor:pointer;}
.module-mini-btn.danger{color:#9A4A43;}
.module-empty{grid-column:1/-1;background:#FCFBF7;border:1px dashed rgba(54,70,56,.18);border-radius:18px;padding:34px;text-align:center;color:#777E77;}
.module-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.module-form-grid label{display:flex;flex-direction:column;gap:6px;font-size:11.5px;font-weight:650;color:#596159;}
.module-form-grid input,.module-form-grid select{width:100%;border:1px solid rgba(54,70,56,.16);background:#fff;border-radius:10px;padding:10px 11px;font-family:'Inter',sans-serif;font-size:13px;color:#252A26;outline:none;}
.module-form-grid input:focus,.module-form-grid select:focus{border-color:#6B805F;box-shadow:0 0 0 3px rgba(82,107,78,.10);}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
.patrimony-edit-modal{max-width:620px;}
.emergency-card{background:#FCFBF7;border:1px solid rgba(54,70,56,.09);border-radius:20px;padding:24px;max-width:820px;}
.emergency-card .module-add-btn{margin-top:18px;}
.emergency-progress{margin-top:20px;}
.emergency-progress .line{height:9px;background:#ECEAE2;border-radius:99px;overflow:hidden;margin:8px 0;}
.emergency-progress .line span{display:block;height:100%;background:#617A55;border-radius:inherit;}
.module-level-pill{display:inline-flex;align-items:center;background:#EEF2EA;color:#566B4D;border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:700;}
.module-level-pill.unconfigured{background:#F2F0EB;color:#8A8E88;}
.vp-city-label{cursor:pointer;}
@media(max-width:1100px){.module-summary{grid-template-columns:repeat(2,1fr)}.module-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.module-hero{align-items:flex-start;flex-direction:column}.module-summary,.module-grid,.module-form-grid{grid-template-columns:1fr}.patrimony-module{padding-left:16px;padding-right:16px}}
#navIconVpInfo,#navIconVpInfo2{display:none!important;}
.sidebar{overflow-y:auto;overflow-x:hidden;}
.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-thumb{background:rgba(82,107,78,.16);border-radius:99px}

/* ===== Patrimoine connecté v2 ===== */
.vp-score-disclaimer{margin:8px 0 8px;font-size:10.5px;line-height:1.35;color:#8A8F89;text-align:left;}
.vp-city-scene{transition:background-image .45s ease,filter .35s ease!important;}
.debt-declaration-card{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#FCFBF7;border:1px solid rgba(54,70,56,.10);border-radius:18px;padding:16px 18px;margin-bottom:16px;}
.debt-declaration-card>div:first-child{display:flex;flex-direction:column;gap:4px;}
.debt-declaration-card strong{font-size:14px;color:#252A26;}
.debt-declaration-card span{font-size:12px;color:#747A73;}
.debt-status-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.debt-status-actions .module-mini-btn.active{background:#526B4E;color:#fff;border-color:#526B4E;}
.emergency-card label small,.module-form-grid label small{display:block;margin-top:5px;font-size:10.5px;line-height:1.35;color:#858B85;font-weight:400;}
.emergency-recommended{margin:14px 0;padding:12px 14px;border-radius:12px;background:#F3F4ED;border:1px solid rgba(82,107,78,.10);font-size:12.5px;color:#5B635B;}
.emergency-recommended strong{color:#334A3A;}
@media(max-width:800px){.debt-declaration-card{align-items:flex-start;flex-direction:column}.debt-status-actions{justify-content:flex-start}}

/* ===== Budget V3 — patrimoine, sobre et lisible ===== */
#view-budget{background:#f5f6f2!important;min-height:100vh;}
.budget-v3-wrap{max-width:1500px!important;padding-top:30px!important;padding-bottom:48px!important;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;color:#202821;}
.budget-v3-header{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:22px;}
.budget-v3-kicker{margin:0 0 7px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#7e8e83;}
.budget-v3-header h1{margin:0;font-size:34px;line-height:1.05;letter-spacing:-.045em;font-weight:720;color:#202821;}
.budget-v3-sub{margin:9px 0 0;max-width:680px;font-size:13px;line-height:1.55;color:#788178;}
.budget-v3-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end;}
.budget-v3-assistant{height:44px;padding:0 18px;border:1px solid #d9ded7;border-radius:13px;background:#fff;color:#344239;font:650 12px Inter,system-ui;cursor:pointer;box-shadow:0 4px 16px rgba(35,45,38,.04);}

.budget-v3-savings-control{height:44px;min-width:182px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border:1px solid #d9ded7;border-radius:13px;background:#fff;box-shadow:0 4px 16px rgba(35,45,38,.04);}
.budget-v3-savings-label{display:inline-flex;align-items:center;height:100%;font:650 12px/1 Inter,system-ui;color:#657168;white-space:nowrap;line-height:1;}
.budget-v3-savings-input-wrap{align-self:stretch;min-width:58px;display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;margin-left:0;padding-left:12px;border-left:1px solid #e6e9e4;color:#152018;font:700 13px/1 Inter,system-ui;line-height:1;}
.budget-v3-savings-select{width:34px;height:24px;box-sizing:border-box;padding:0;border:0;background:transparent;color:#152018;font:700 13px/1 Inter,system-ui;text-align:right;outline:none;-moz-appearance:textfield;vertical-align:middle;}
.budget-v3-savings-select::-webkit-outer-spin-button,.budget-v3-savings-select::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.budget-v3-savings-select:focus{box-shadow:0 0 0 2px rgba(77,119,84,.12);border-radius:7px;}
.budget-v3-assistant:hover{border-color:#aab9aa;background:#fafbf8;}
.budget-v3-monthpicker{height:44px!important;background:#fff!important;border:1px solid #dde1da!important;box-shadow:0 4px 16px rgba(35,45,38,.04)!important;}

.budget-v3-coverage{display:flex;align-items:center;justify-content:space-between;gap:22px;background:#fff;border:1px solid #e0e4dc;border-radius:18px;padding:16px 18px;margin-bottom:16px;box-shadow:0 7px 24px rgba(35,45,38,.045);}
.budget-v3-coverage-main{display:flex;align-items:center;gap:14px;min-width:0;}
.budget-v3-status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800;letter-spacing:.035em;}
.budget-v3-status.complete{background:#e8f4e8;color:#3f7546;}
.budget-v3-status.partial{background:#fff3df;color:#9b6a20;}
.budget-v3-status.unknown{background:#eef0ed;color:#6f786f;}
.budget-v3-coverage-main strong{display:block;font-size:13px;color:#354039;margin-bottom:3px;}
.budget-v3-coverage-main p{margin:0;font-size:11.5px;line-height:1.45;color:#89918a;}
.budget-v3-coverage-right{text-align:right;min-width:170px;padding-left:18px;border-left:1px solid #e8ebe5;}
.budget-v3-coverage-right span{display:block;font-size:9px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:#9aa29b;margin-bottom:4px;}
.budget-v3-coverage-right strong{font-size:16px;color:#28352d;}

.budget-v3-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;}
.budget-v3-kpi{background:#fff;border:1px solid #e2e5de;border-radius:18px;padding:17px 18px;box-shadow:0 7px 24px rgba(35,45,38,.04);min-height:112px;display:flex;flex-direction:column;justify-content:center;}
.budget-v3-kpi-label{font-size:10px;font-weight:750;letter-spacing:.07em;text-transform:uppercase;color:#939c94;margin-bottom:8px;}
.budget-v3-kpi strong{font-size:24px;line-height:1.05;letter-spacing:-.035em;color:#26352c;font-weight:720;}
.budget-v3-kpi small{margin-top:7px;font-size:10.5px;color:#9aa19b;}

.budget-v3-overview-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.8fr);gap:14px;margin-bottom:22px;align-items:stretch;}
.budget-v3-overview-card{background:#fff;border:1px solid #e1e5de;border-radius:20px;padding:20px 22px;box-shadow:0 7px 24px rgba(35,45,38,.04);min-height:178px;}

.simple-target-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 10px;}
.simple-target-controls label{font-size:13px;color:#666;white-space:nowrap;}
.simple-target-controls input[type="range"]{flex:1;min-width:120px;accent-color:#c9a227;}
#simpleTargetPctValue{font-weight:700;min-width:44px;}
.simple-target-presets{display:flex;gap:6px;}
.btn-chip{border:1px solid #e1e5de;background:#f7f8f4;border-radius:999px;padding:4px 12px;font-size:12.5px;cursor:pointer;transition:background .15s;}
.btn-chip:hover{background:#eef1e8;}
.btn-chip.active{background:#c9a227;border-color:#c9a227;color:#fff;}
.simple-target-summary{display:flex;gap:22px;flex-wrap:wrap;font-size:13.5px;color:#444;margin-bottom:14px;}
.simple-target-summary strong{color:#1a1a1a;}

.budget-v3-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.budget-v3-card-head span:first-child{font-size:9px;font-weight:800;letter-spacing:.10em;color:#96a098;text-transform:uppercase;}
.budget-v3-card-head h2{font-size:18px;letter-spacing:-.025em;margin:5px 0 0;color:#2c3830;}
.budget-v3-goal-pct{font-size:22px!important;font-weight:750!important;letter-spacing:-.04em!important;color:#526d59!important;}
.budget-v3-overview-copy{font-size:12px;line-height:1.55;color:#6f7971;margin:18px 0 13px;}
.budget-v3-track{height:9px;background:#eef0eb;border-radius:999px;overflow:hidden;}
.budget-v3-track-fill{height:100%;width:0;background:#6d956c;border-radius:999px;transition:width .25s ease;}
.budget-v3-overview-foot{display:flex;justify-content:space-between;gap:20px;margin-top:10px;font-size:10.5px;color:#8d968f;}
.budget-v3-legacy-bar{display:none!important;}

#view-budget .budget-v3-import-card.upload-zone{margin:0!important;min-height:178px!important;padding:20px!important;background:#fbfcf8!important;border:1px solid #dfe5da!important;border-radius:20px!important;box-shadow:0 7px 24px rgba(35,45,38,.04)!important;display:grid!important;grid-template-columns:42px 1fr auto!important;gap:14px!important;align-items:start!important;}
.budget-v3-import-icon{width:40px;height:40px;border-radius:12px;background:#edf3e8;display:flex;align-items:center;justify-content:center;}
.budget-v3-mini-label{display:block;font-size:9px;font-weight:800;letter-spacing:.10em;color:#96a098;margin-bottom:5px;}
#view-budget .budget-v3-import-card h3{margin:0 0 7px!important;font:700 15px Inter,system-ui!important;color:#334039!important;}
#view-budget .budget-v3-import-card p{margin:0!important;font-size:11.5px!important;line-height:1.5!important;color:#879088!important;max-width:460px!important;}
#view-budget .budget-v3-import-card .btn-gold{padding:10px 16px!important;font-size:11.5px!important;border-radius:11px!important;background:#567f5b!important;}
#view-budget .budget-v3-import-card .status{grid-column:2 / -1;margin-top:2px;font-size:10.5px;}

.budget-v3-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 2px 10px;}
.budget-v3-section-head>div>span{font-size:9px;font-weight:800;letter-spacing:.11em;color:#99a19a;}
.budget-v3-section-head h2{margin:5px 0 0;font-size:20px;letter-spacing:-.03em;color:#29352e;}
.budget-v3-section-head p{margin:0 0 2px;font-size:10.5px;color:#9aa19b;}
.budget-v3-table-head{display:grid;grid-template-columns:46px minmax(135px,1.2fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(160px,1fr) 20px;gap:0;padding:0 22px 8px;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#a0a7a0;}
#view-budget .budget-v3-category-list{background:#fff!important;border:1px solid #e1e5de!important;border-radius:20px!important;padding:4px 16px!important;box-shadow:0 7px 24px rgba(35,45,38,.04)!important;overflow:hidden!important;}
#view-budget .category-row{display:grid!important;align-items:center!important;gap:0!important;min-height:68px!important;padding:10px 6px!important;grid-template-columns:46px minmax(135px,1.2fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(105px,.75fr) minmax(160px,1fr) 20px!important;border-bottom:1px solid #eef0eb!important;}
#view-budget .category-row:hover{background:#fafbf8!important;}
#view-budget .cat-name{font-size:12.5px!important;color:#364238!important;}
#view-budget .cf-label{display:none!important;}
#view-budget .cf-value,#view-budget .category-ecart{font-size:12px!important;color:#566159!important;}
#view-budget .budget-input{height:36px!important;max-width:104px!important;background:#f8f9f6!important;border:1px solid #e1e5df!important;border-radius:10px!important;padding:0 10px!important;font-size:12px!important;color:#405047!important;}
#view-budget .bar-track{height:7px!important;background:#eef0eb!important;border-radius:999px!important;}
#view-budget .bar-fill{background:#6e966d!important;border-radius:999px!important;}
#view-budget .bar-fill.over{background:#c77d5b!important;}
#view-budget .category-pct{font-size:10px!important;color:#818b83!important;}

@media(max-width:1180px){
  .budget-v3-kpis{grid-template-columns:repeat(2,1fr);}
  .budget-v3-overview-grid{grid-template-columns:1fr;}
  .budget-v3-table-head{display:none;}
}
@media(max-width:760px){
  .budget-v3-header{align-items:flex-start;flex-direction:column;}
  .budget-v3-header-actions{width:100%;justify-content:space-between;}
  .budget-v3-coverage{align-items:flex-start;flex-direction:column;}
  .budget-v3-coverage-right{border-left:0;border-top:1px solid #e8ebe5;padding:12px 0 0;width:100%;text-align:left;}
  .budget-v3-kpis{grid-template-columns:1fr;}
  #view-budget .budget-v3-import-card.upload-zone{grid-template-columns:42px 1fr!important;}
  #view-budget .budget-v3-import-card>div:last-child{grid-column:2;}
}

/* Revenus comme catégorie consultable dans Budget */
.category-row-income{background:linear-gradient(90deg,#f4fbf5 0%,#ffffff 68%);border-color:rgba(65,126,75,.16)!important;cursor:pointer;}
.category-row-income:hover{border-color:rgba(65,126,75,.32)!important;box-shadow:0 8px 24px rgba(54,91,60,.08);}
.category-income-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#e5f4e8;color:#3f7d4a;flex:0 0 40px;}
.category-income-type,.category-income-value{color:#356f40!important;}
.category-income-value{font-weight:700!important;}
.category-income-note{color:#5d8264!important;font-size:12px!important;}
.category-income-progress .bar-fill{background:#6fa879!important;}
.modal-income-icon{width:34px;height:34px;border-radius:10px;flex-basis:34px;}
.budget-v3-kpi:has(#totalIncome){cursor:pointer;}
.budget-v3-kpi:has(#totalIncome):hover{border-color:rgba(65,126,75,.26);box-shadow:0 8px 24px rgba(54,91,60,.07);}


#totalEcart.positive{color:#4f8b57!important;}
#totalEcart.negative{color:#b85f55!important;}


#view-budget .category-field-planned{display:flex!important;align-items:center!important;justify-content:flex-start!important;min-width:105px!important;}
#view-budget .budget-input-wrap{display:inline-flex!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;min-width:88px!important;height:36px!important;padding:0 9px!important;background:#f8f9f6!important;border:1px solid #dfe4dc!important;border-radius:10px!important;box-sizing:border-box!important;}
#view-budget .budget-input-wrap .budget-input{display:block!important;visibility:visible!important;opacity:1!important;width:58px!important;max-width:58px!important;height:30px!important;padding:0!important;border:0!important;background:transparent!important;text-align:right!important;font-family:Inter,system-ui,sans-serif!important;font-size:13px!important;font-weight:700!important;color:#34443a!important;appearance:textfield!important;-moz-appearance:textfield!important;}
#view-budget .budget-input-wrap .budget-input::-webkit-outer-spin-button,#view-budget .budget-input-wrap .budget-input::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important;}
#view-budget .budget-input-unit{display:inline-block!important;font-size:12px!important;font-weight:700!important;color:#66746a!important;line-height:1!important;}


/* --- Modales modernisées --- */
.stage-modal-overlay{
  position:fixed; inset:0;
  background:rgba(30,34,31,.42);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  z-index:90; display:flex; align-items:center; justify-content:center;
  padding:28px;
}
.stage-modal{
  background:linear-gradient(180deg,#fffdfa 0%,#fcfbf8 100%);
  border:1px solid rgba(57,72,60,.10);
  border-radius:28px;
  padding:32px 34px;
  max-width:720px; width:min(100%,720px);
  position:relative;
  box-shadow:0 28px 80px rgba(22,28,24,.18);
}
.patrimony-edit-modal{max-width:760px;width:min(100%,760px);}
.stage-modal-close{
  position:absolute; top:18px; right:18px;
  width:38px; height:38px; border-radius:999px; border:1px solid rgba(57,72,60,.12);
  background:rgba(255,255,255,.82); color:#425145; cursor:pointer;
  display:flex; align-items:center; justify-content:center; font-size:16px;
  box-shadow:0 10px 24px rgba(28,33,30,.08);
}
.stage-modal-close:hover{background:#fff;}
#patrimonyModalTitle{
  margin:0 0 20px;
  font-size:34px; line-height:1.1; letter-spacing:-.03em;
  color:#243228; font-weight:700;
}
#patrimonyFormFields.module-form-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px;
}
#patrimonyFormFields label,
.emergency-card .module-form-grid label{
  display:flex; flex-direction:column; gap:7px;
  font-size:12px; font-weight:700; color:#6f7a71; letter-spacing:.03em;
  text-transform:none;
}
#patrimonyFormFields input,
#patrimonyFormFields select,
#patrimonyFormFields textarea,
.emergency-card input,
.emergency-card select{
  width:100%;
  min-height:50px;
  border-radius:14px;
  border:1px solid rgba(67,82,70,.12);
  background:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65);
  padding:0 16px;
  font-size:15px;
  color:#26342b;
}
#patrimonyFormFields input:focus,
#patrimonyFormFields select:focus,
#patrimonyFormFields textarea:focus,
.emergency-card input:focus,
.emergency-card select:focus{
  outline:none;
  border-color:#718b67;
  box-shadow:0 0 0 4px rgba(113,139,103,.13);
}
#patrimonyFormFields textarea{min-height:110px;padding:14px 16px;}
.form-actions{
  display:flex; justify-content:flex-end; gap:12px;
  margin-top:24px; padding-top:16px; border-top:1px solid rgba(57,72,60,.08);
}
.form-actions .btn,
.form-actions .module-add-btn{min-width:140px; min-height:46px; border-radius:14px;}
.form-actions .btn.btn-ghost{
  background:#f5f5f1; border:1px solid rgba(57,72,60,.08); color:#415145;
}
#patrimonyFormStatus{margin-top:14px; font-size:13px; color:#6a726b;}

.emergency-card{max-width:920px;padding:28px 28px 24px;}
.emergency-card .module-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;}
.emergency-recommended{
  margin:16px 0 10px; padding:14px 16px; border-radius:14px;
  background:linear-gradient(180deg,#f6f6f0 0%,#f2f3ec 100%);
  border:1px solid rgba(82,107,78,.10); font-size:13px; color:#516054;
}
@media (max-width: 860px){
  #patrimonyFormFields.module-form-grid,
  .emergency-card .module-form-grid{grid-template-columns:1fr;}
  .stage-modal,.patrimony-edit-modal{padding:24px 20px;}
}

#view-savings{display:none!important;}


/* --- V13 : groupes de navigation pliables + nombres compacts --- */
.nav-group{
  margin:6px 0 2px;
}
.nav-group-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  border:none;
  background:transparent;
  color:#8A907E;
  font-family:'Inter',sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  cursor:pointer;
}
.nav-group-toggle:hover{color:#5B665A;}
.nav-group-chevron{
  font-size:14px;
  transition:transform .18s ease;
  color:#939983;
}
.nav-group-items{
  display:none;
  padding:0 0 2px;
}
.nav-group.open .nav-group-items{display:block;}
.nav-group.open .nav-group-chevron{transform:rotate(180deg);}
.nav-item-sub{
  margin-left:10px!important;
  width:calc(100% - 10px);
  padding-left:14px!important;
}
.vp-networth-value{
  font-size:clamp(32px,3vw,52px)!important;
  line-height:1.05!important;
  letter-spacing:-0.04em!important;
  word-break:keep-all!important;
}
.vp-networth-note{
  font-size:13px!important;
  line-height:1.45!important;
}
@media(max-width:760px){
  .nav-group{display:none!important;}
}


/* --- V14 : cartes cliquables + modal historique valeur nette --- */
.card-clickable{
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.card-clickable:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(29,36,31,.06);
  border-color:rgba(82,107,78,.18)!important;
}
.card-clickable:focus-visible{
  outline:3px solid rgba(91,119,80,.18);
  outline-offset:2px;
}
.vp-advice-box{
  cursor:pointer;
}
.vp-advice-arrow{
  margin-left:auto;
  width:42px;
  height:42px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#E1C515;
  color:#283125;
  font-size:28px;
  line-height:1;
  flex:0 0 42px;
}
.networth-modal{
  max-width:980px;
  width:min(100%,980px);
  padding:28px 30px 26px;
}
.networth-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
.networth-modal-title{
  margin:0;
  font-size:34px;
  line-height:1.06;
  letter-spacing:-.03em;
  color:#243228;
}
.networth-modal-sub{
  margin:6px 0 0;
  color:#6D756D;
  font-size:14px;
}
.networth-zoom-controls{
  display:flex;
  gap:10px;
}
.networth-zoom-btn,
.networth-range-btn{
  border:1px solid rgba(67,82,70,.12);
  background:#fff;
  color:#324036;
  border-radius:12px;
  min-height:40px;
  padding:0 14px;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
}
.networth-zoom-btn:hover,
.networth-range-btn:hover{
  background:#F6F7F2;
}
.networth-range-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:16px;
}
.networth-range-btn.active{
  background:#EFF0E6;
  border-color:#D8DDCA;
  color:#58704C;
}
.networth-modal-metrics{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-bottom:14px;
}
.networth-modal-metric{
  background:#FCFBF7;
  border:1px solid rgba(67,82,70,.10);
  border-radius:16px;
  padding:14px 16px;
}
.nwm-label{
  display:block;
  font-size:12px;
  color:#7A8179;
  margin-bottom:6px;
}
.networth-modal-metric strong{
  font-size:22px;
  color:#273329;
}
.networth-modal-metric strong.positive{color:#4f8b57;}
.networth-modal-metric strong.negative{color:#b85f55;}
.networth-chart-wrap{
  height:360px;
  background:#fff;
  border:1px solid rgba(67,82,70,.10);
  border-radius:20px;
  padding:14px 16px 8px;
}
@media (max-width:860px){
  .networth-modal-head{flex-direction:column;}
  .networth-modal-metrics{grid-template-columns:1fr;}
  .networth-chart-wrap{height:300px;}
}


/* --- V15 : identité visuelle sans renard, palette vert & or harmonisée --- */
:root{
  --brand-green:#58764F;
  --brand-green-dark:#334A3A;
  --brand-green-soft:#EEF4EA;
  --brand-gold:#B48A2D;
  --brand-gold-soft:#F6EFE1;
  --brand-bg:#F7F6F1;
  --brand-panel:#FCFBF7;
  --brand-text:#253126;
  --brand-muted:#738075;
}
body{
  background:var(--brand-bg)!important;
  color:var(--brand-text)!important;
}
.btn-gold{
  background:linear-gradient(180deg,var(--brand-green),#486441)!important;
  color:#fff!important;
}
.btn-gold:hover{
  background:#486441!important;
}
.btn-ghost{
  border-color:rgba(88,118,79,.16)!important;
  color:var(--brand-green-dark)!important;
}
.loading-box-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}
.loader-brand{
  position:relative;
  width:88px;
  height:88px;
  display:grid;
  place-items:center;
}
.brand-mark-arch-xl{
  width:58px!important;
  height:58px!important;
  flex:0 0 58px!important;
  position:relative;
  z-index:2;
}
.loader-ring{
  position:absolute;
  inset:4px;
  border-radius:50%;
  border:3px solid rgba(180,138,45,.16);
  border-top-color:var(--brand-gold);
  border-right-color:var(--brand-green);
  animation:spinLoader 1.05s linear infinite;
}
@keyframes spinLoader{to{transform:rotate(360deg);}}
.loading-text{
  color:var(--brand-green-dark)!important;
  font-weight:600!important;
  font-size:15px!important;
}
.landing-screen,
.auth-screen,
.onboard-screen{
  background:linear-gradient(180deg,#FBFAF6 0%, #F7F6F1 100%)!important;
}
.landing-nav{
  border-bottom:1px solid rgba(88,118,79,.10)!important;
}
.landing-brand-lockup{
  display:flex;
  align-items:center;
  gap:12px;
}
.landing-wordmark-neutral,
.landing-wordmark{
  font-family:'DM Serif Display',serif;
  font-size:27px;
  line-height:1;
  color:#263127;
}
.landing-nav-login{
  font-family:'Inter',sans-serif!important;
  color:var(--brand-green-dark)!important;
}
.landing-hero{
  max-width:980px!important;
}
.landing-eyebrow{
  font-family:'Inter',sans-serif!important;
  color:var(--brand-green)!important;
  background:var(--brand-green-soft)!important;
  border:1px solid rgba(88,118,79,.14)!important;
}
.landing-title{
  font-family:'Inter',sans-serif!important;
  font-weight:800!important;
  color:var(--brand-text)!important;
}
.landing-title em{
  color:var(--brand-gold)!important;
}
.landing-subtitle{
  color:var(--brand-muted)!important;
  max-width:600px!important;
}
.landing-visual-panel{
  display:grid;
  grid-template-columns:repeat(3, minmax(170px, 1fr));
  gap:16px;
  width:100%;
  max-width:760px;
  margin:0 0 48px;
}
.landing-visual-card{
  background:var(--brand-panel);
  border:1px solid rgba(88,118,79,.10);
  border-radius:20px;
  padding:22px 24px;
  box-shadow:0 10px 24px rgba(40,49,38,.04);
  text-align:left;
}
.landing-visual-card span{
  display:block;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--brand-muted);
  margin-bottom:8px;
  font-weight:700;
}
.landing-visual-card strong{
  font-size:28px;
  line-height:1.1;
  color:var(--brand-text);
}
.landing-visual-card.accent{
  background:linear-gradient(180deg,var(--brand-gold-soft),#FBF8EF);
}
.landing-feature{
  border:1px solid rgba(88,118,79,.10)!important;
  box-shadow:0 3px 14px rgba(40,49,38,.035)!important;
}
.auth-card{
  background:var(--brand-panel)!important;
  border:1px solid rgba(88,118,79,.10)!important;
}
.auth-brand-mark,
.onboard-brand-mark{
  margin:0 auto 6px;
}
.assistant-brand-mark,
.insight-brand-mark,
.admin-brand-mark{
  width:34px;
  height:34px;
  flex:0 0 34px;
}
.assistant-card .assistant-brand-mark{
  margin-bottom:8px;
}
.onboard-mascot,
.auth-mascot,
.assistant-mascot,
.landing-mascot-wrap,
.landing-glow,
.landing-mascot,
.landing-logo-lockup,
.landing-logo{
  display:none!important;
}
.nav-item .nav-icon{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.nav-item.active .nav-icon{
  color:var(--brand-green)!important;
}
.nav-group-toggle{
  color:#8B9386!important;
}
#featIconImport{
  background:var(--brand-green-soft)!important;
  color:var(--brand-green)!important;
}
#featIconTrack{
  background:var(--brand-gold-soft)!important;
  color:var(--brand-gold)!important;
}
#featIconAssist{
  background:#EEF1E7!important;
  color:#6B7F58!important;
}
.file-list-row.selected{
  border-color:var(--brand-gold)!important;
  background:#FBF7EE!important;
}
.page-btn.active{
  background:var(--brand-green)!important;
}
.finn-tip-title,
.finn-tip-title-2{
  color:var(--brand-green-dark)!important;
}
.finn-tip-card{
  border:1px solid rgba(88,118,79,.10)!important;
  background:var(--brand-panel)!important;
}
.graph-stat-card{
  border:1px solid rgba(88,118,79,.10)!important;
}
.graph-stat-icon{
  border-radius:12px!important;
}
.vp-advice-arrow{
  background:linear-gradient(180deg,#DABE56,#C3A330)!important;
}
@media (max-width:780px){
  .landing-visual-panel{
    grid-template-columns:1fr;
  }
}

/* --- V16 : Boîte à outils (cotisations + objectifs de vie) --- */
.tools-module{max-width:1380px;padding:28px 30px 48px;}
.tools-hero{margin-bottom:18px;}
.tools-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;}
.tools-tabs{display:flex;gap:8px;padding:5px;background:#EFEEE6;border:1px solid rgba(88,118,79,.08);border-radius:14px;}
.tools-tab{border:0;background:transparent;color:#657066;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;cursor:pointer;}
.tools-tab.active{background:#fff;color:#3F5942;box-shadow:0 2px 8px rgba(44,58,47,.06);}
.tools-year-actions{display:flex;align-items:end;gap:10px;}
.tools-year-control{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#899087;}
.tools-year-control select{min-width:110px;height:42px;border-radius:12px;border:1px solid rgba(88,118,79,.12);background:#fff;padding:0 12px;font-size:14px;color:#2C382E;}
.tools-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.tools-summary-card{background:#FCFBF7;border:1px solid rgba(88,118,79,.10);border-radius:16px;padding:16px 18px;}
.tools-summary-card span{display:block;font-size:11px;color:#7B847C;margin-bottom:7px;}
.tools-summary-card strong{font-size:22px;line-height:1;color:#243228;letter-spacing:-.02em;}
.tools-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;}
.tools-card{background:#FCFBF7;border:1px solid rgba(88,118,79,.10);border-radius:20px;padding:22px;box-shadow:0 8px 24px rgba(42,52,44,.035);}
.tools-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;}
.tools-card h2{font-size:19px;margin:3px 0 0;color:#29352B;letter-spacing:-.02em;}
.tools-eyebrow{display:block;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#9A8A60;font-weight:800;}
.tools-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.tools-form-grid label,.tools-full-label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#69736A;}
.tools-form-grid input,.tools-form-grid select,.tools-full-label textarea,.life-large-textarea{width:100%;border:1px solid rgba(88,118,79,.12);background:#fff;border-radius:12px;padding:11px 13px;font:inherit;color:#263329;}
.tools-form-grid input,.tools-form-grid select{height:44px;}
.tools-full-label{margin:14px 0;}
.tools-full-label textarea,.life-large-textarea{resize:vertical;min-height:92px;line-height:1.5;}
.tools-history-card{padding-bottom:8px;}
.tools-entry-table{width:100%;}
.tools-entry-head,.tools-entry-row{display:grid;grid-template-columns:140px 120px minmax(180px,1fr) 130px 34px;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid rgba(88,118,79,.08);}
.tools-entry-head{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#92988F;font-weight:800;}
.tools-entry-row{font-size:13px;color:#4F5B51;}
.tools-entry-row strong{text-align:right;color:#27352A;}
.entry-kind{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700;}
.entry-kind.contribution{background:#EAF2E6;color:#4D7149;}
.entry-kind.withdrawal{background:#F5EEE0;color:#9C7830;}
.entry-delete{border:0;background:transparent;color:#9A9F99;font-size:22px;cursor:pointer;border-radius:8px;line-height:1;}
.entry-delete:hover{background:#F3F1EA;color:#7C514B;}
.life-cycle-title{display:flex;flex-direction:column;gap:3px;}
.life-cycle-title span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8D938A;font-weight:700;}
.life-cycle-title strong{font-size:24px;color:#27352A;}
.life-notes-grid .tools-card{min-height:250px;}
.life-large-textarea{min-height:170px;margin-top:12px;}
.life-save-row{display:flex;justify-content:flex-end;margin:-4px 0 16px;}
.life-goal-form{background:#F6F5EF;border:1px solid rgba(88,118,79,.08);border-radius:16px;padding:16px;margin-bottom:14px;}
.life-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px;}
.life-goals-list{display:flex;flex-direction:column;gap:8px;}
.life-goal-row{display:grid;grid-template-columns:38px minmax(0,1fr) 130px 34px;gap:12px;align-items:center;border:1px solid rgba(88,118,79,.09);border-radius:14px;padding:12px 12px;background:#fff;}
.life-goal-row.completed{background:#F1F5EE;opacity:.82;}
.life-goal-row.completed .life-goal-copy strong{text-decoration:line-through;color:#778078;}
.life-goal-check{width:30px;height:30px;border-radius:50%;border:1.5px solid #A8B39F;background:#fff;color:#58764F;font-weight:800;cursor:pointer;}
.life-goal-row.completed .life-goal-check{background:#58764F;color:#fff;border-color:#58764F;}
.life-goal-copy strong{display:block;font-size:14px;color:#2B372D;margin-bottom:5px;}
.life-goal-copy div{display:flex;flex-wrap:wrap;gap:6px;}
.life-goal-copy div span{font-size:10.5px;color:#788078;background:#F4F3ED;border-radius:999px;padding:4px 8px;}
.life-status-select{height:36px;border:1px solid rgba(88,118,79,.11);border-radius:10px;background:#FAFAF7;padding:0 8px;color:#536057;}
@media(max-width:1050px){.tools-summary-grid{grid-template-columns:repeat(2,1fr)}.tools-grid-2{grid-template-columns:1fr}}
@media(max-width:760px){.tools-module{padding:20px 14px 90px}.tools-toolbar{align-items:stretch;flex-direction:column}.tools-summary-grid{grid-template-columns:1fr 1fr}.tools-form-grid{grid-template-columns:1fr}.tools-entry-head{display:none}.tools-entry-row{grid-template-columns:1fr auto}.tools-entry-row span:nth-child(2),.tools-entry-row span:nth-child(3){grid-column:1/-1}.life-goal-row{grid-template-columns:36px 1fr 34px}.life-status-select{grid-column:2/3}.life-goal-row>.entry-delete{grid-column:3;grid-row:1}}

/* Rapports : uniquement verts, ors et neutres */
#view-graphiques .chart-card,#view-graphiques .graph-stat-card{border-color:rgba(88,118,79,.10)!important;}
#view-graphiques .top5-link{color:#58764F!important;border-color:rgba(88,118,79,.12)!important;}
#view-graphiques .donut-center .dc-value{color:#27352A!important;}
#view-graphiques .finn-tip-card{background:#F7F5ED!important;border-color:rgba(180,138,45,.16)!important;}


/* --- V17 : interactions supplémentaires et nettoyage visuel --- */
.goal-widget{
  display:none !important;
}
.month-picker-pill,
.vp-overview-btn,
.upload-zone{
  cursor:pointer;
}
.vp-header-right{
  position:relative;
}
.vp-overview-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:210px;
  padding:10px;
  border-radius:16px;
  background:#FCFBF7;
  border:1px solid rgba(54,70,56,.10);
  box-shadow:0 14px 36px rgba(35,45,38,.10);
  z-index:50;
  gap:6px;
}
.vp-overview-menu-item{
  width:100%;
  text-align:left;
  border:none;
  background:transparent;
  border-radius:12px;
  min-height:42px;
  padding:10px 12px;
  font-size:13px;
  font-weight:600;
  color:#2C352E;
  cursor:pointer;
}
.vp-overview-menu-item:hover{
  background:#EFF4EA;
  color:#58764F;
}
.budget-v3-overview-grid{
  grid-template-columns:1fr !important;
}
.budget-v3-overview-card{
  display:none !important;
}
.budget-v3-import-card{
  grid-column:1 / -1 !important;
  width:100%;
  min-height:168px;
  align-items:center;
  justify-content:space-between;
}
.budget-v3-import-card .txt{
  flex:1 1 auto;
  max-width:none;
}
.budget-v3-import-card .status{
  margin-top:8px;
}
.budget-v3-import-card label.btn{
  min-width:116px;
  justify-content:center;
}

/* --- V18 : archives historiques Budget.xlsx --- */
.tools-source-card{
  margin-top:16px;
  border:1px solid rgba(180,138,45,.18)!important;
  background:linear-gradient(180deg,#FFFDF8 0%,#FBF7ED 100%)!important;
}
.tools-source-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:#EEF4EA;
  color:#58764F;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}
.tools-source-archive{
  margin:0;
  padding:16px 18px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(88,118,79,.10);
  color:#39463D;
  font-family:'Inter',sans-serif;
  font-size:13px;
  line-height:1.65;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.life-source-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding:11px 14px;
  border-radius:14px;
  background:#EEF4EA;
  color:#58764F;
  font-size:12px;
}
.life-source-meta strong{color:#334A3A;font-size:12px;}
.life-source-card{margin:0 0 16px;}


/* --- Calculateur d'économies --- */
.calc-module{padding-bottom:56px;}
.calc-tabs{
  display:inline-flex;
  gap:6px;
  background:#EEEFE8;
  border:1px solid rgba(88,118,79,.10);
  border-radius:15px;
  padding:5px;
  margin:4px 0 18px;
}
.calc-tab{
  border:none;
  background:transparent;
  color:#687269;
  font:600 13px/1 'Inter',sans-serif;
  padding:12px 16px;
  border-radius:11px;
  cursor:pointer;
}
.calc-tab.active{background:#FCFBF7;color:#334A3A;box-shadow:0 3px 12px rgba(39,50,42,.06);}
.calc-panel{display:none;}
.calc-panel.active{display:block;}
.calc-intro{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin:0 0 16px;
}
.calc-intro h2{margin:3px 0 6px;font-size:24px;color:#27352A;}
.calc-intro p{margin:0;max-width:760px;color:#778078;font-size:13px;line-height:1.55;}
.calc-horizon-pill{
  min-width:112px;
  background:#F7F2E7;
  border:1px solid rgba(180,138,45,.16);
  border-radius:15px;
  padding:12px 14px;
  text-align:right;
}
.calc-horizon-pill span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#99845B;font-weight:800;}
.calc-horizon-pill strong{display:block;font-size:18px;color:#334A3A;margin-top:4px;}
.calc-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px;}
.calc-input-card{margin:0;}
.calc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;}
.calc-form-grid label{display:flex;flex-direction:column;gap:7px;font-size:11.5px;font-weight:700;color:#687269;}
.calc-form-grid input{
  width:100%;height:44px;border:1px solid rgba(88,118,79,.12);background:#fff;border-radius:12px;
  padding:0 12px;font:500 14px 'Inter',sans-serif;color:#263329;
}
.calc-form-grid input:focus{outline:none;border-color:#718B67;box-shadow:0 0 0 4px rgba(113,139,103,.12);}
.calc-auto-box{
  display:grid;gap:0;margin-top:16px;border:1px solid rgba(88,118,79,.10);border-radius:15px;overflow:hidden;background:#F9FAF6;
}
.calc-auto-box>div{display:flex;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid rgba(88,118,79,.08);}
.calc-auto-box>div:last-child{border-bottom:none;}
.calc-auto-box span{font-size:11.5px;color:#778078;}
.calc-auto-box strong{font-size:12.5px;color:#334A3A;}
.calc-note{font-size:10.5px!important;line-height:1.5!important;color:#8A918A!important;margin:12px 0 0!important;}
.calc-check{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:12px;font-weight:700;color:#566359;}
.calc-check input{width:17px;height:17px;accent-color:#58764F;}
.calc-results-card{padding:22px 24px;}
.calc-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.calc-result-head h2{font-size:24px;margin:3px 0 4px;}
.calc-result-head p{margin:0;color:#727C74;font-size:12.5px;}
.calc-result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;}
.calc-result-tile{
  border:1px solid rgba(88,118,79,.10);border-radius:16px;background:#FAFBF7;padding:15px 16px;min-height:112px;
}
.calc-result-tile.highlight{background:#F7F2E7;border-color:rgba(180,138,45,.20);}
.calc-result-tile span{display:block;font-size:10.5px;color:#7B847C;margin-bottom:7px;}
.calc-result-tile strong{display:block;font-size:23px;color:#243228;letter-spacing:-.025em;}
.calc-result-tile small{display:block;font-size:10.5px;color:#858D86;line-height:1.45;margin-top:7px;}
.calc-chart-wrap{height:310px;border:1px solid rgba(88,118,79,.08);border-radius:17px;background:#fff;padding:12px 14px 6px;}
.calc-method-card{
  border:1px solid rgba(180,138,45,.16);background:#F8F4EA;border-radius:17px;padding:16px 18px;color:#4A564D;
}
.calc-method-card strong{font-size:12px;color:#334A3A;}
.calc-method-card p{margin:5px 0 0;font-size:11.5px;line-height:1.55;color:#737B73;}
@media(max-width:1050px){
  .calc-columns{grid-template-columns:1fr;}
  .calc-result-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .calc-form-grid,.calc-result-grid{grid-template-columns:1fr;}
  .calc-intro{flex-direction:column;}
  .calc-tabs{display:flex;width:100%;}
  .calc-tab{flex:1;}
}


/* V21 refinements */
.brand-home-btn{background:none;border:none;padding:8px 12px 18px;text-align:left;cursor:pointer;width:100%;}
.brand-home-btn:hover{opacity:.92}
#vpMonthButton{display:none!important}
.level-widget{display:none!important}
.profile-level-shell{margin:6px 0 12px;text-align:left;}
.profile-level-widget{display:block!important;margin:0;background:#FCFBF7;border:1px solid rgba(54,70,56,.08);box-shadow:none;padding:16px 16px 18px;border-radius:18px;}
.profile-level-widget .level-name,.profile-level-widget .level-next{font-family:'DM Serif Display',serif!important;}
.profile-level-widget .level-name{font-size:28px!important}
.profile-level-widget .level-next{font-size:20px!important}
.profile-level-widget .level-next-copy{display:inline-block;max-width:calc(100% - 42px);}
.profile-card{text-align:left!important}
.vp-header-right{margin-left:auto}
.vp-overview-menu{min-width:330px!important}
.vp-overview-menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:3px;}
.vp-overview-menu-item strong{font-size:13px;color:#2C352E;font-weight:700;}
.vp-overview-menu-item small{font-size:11px;color:#768075;line-height:1.35;}
.vp-overview-menu-item.active{background:#EFF4EA;color:#58764F;}
.vp-overview-menu-item.active strong{color:#58764F;}
.progression-wrap.dashboard-layout-chiffres #vpStatsStrip{margin-bottom:18px;}
.progression-wrap.dashboard-layout-priorites .vp-cards-row{margin-bottom:18px;}
.progression-wrap.dashboard-layout-priorites .vp-main-row{margin-bottom:12px;}
.progression-wrap.dashboard-layout-chiffres .vp-cards-row{margin-top:4px;}

/* V22 : profil visible en bas de la barre latérale */
.sidebar-footer{display:block!important;margin-top:auto!important;padding:14px 8px 4px!important;}
.profile-row{width:100%!important;background:#FCFBF7!important;border:1px solid rgba(54,70,56,.10)!important;border-radius:15px!important;box-shadow:0 4px 14px rgba(35,45,38,.035)!important;}
.profile-row:hover{background:#F4F6EF!important;border-color:rgba(88,118,79,.18)!important;}
.profile-row-chevron{transform:rotate(-90deg);}
@media(max-width:760px){.sidebar-footer{display:none!important;}}


.vp-last-month-section{margin-top:18px;}
.vp-last-month-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.vp-last-month-label{font-size:12px;color:#7A817A;text-transform:capitalize;}
.vp-last-month-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.vp-last-month-strip .vp-stat-box{min-height:92px;}
.vp-last-month-strip .vsb-meta{font-size:11px;color:#828781;margin-top:8px;}
@media(max-width:900px){.vp-last-month-strip{grid-template-columns:1fr;}}

/* Bouton temporaire de remise à zéro des relevés */
.files-reset-all-btn{height:44px;padding:0 15px;border:1px solid #d95a52;border-radius:12px;background:#fff4f2;color:#b83a32;font:700 12px Inter,system-ui;cursor:pointer;box-shadow:0 4px 16px rgba(120,34,28,.04);}
.files-reset-all-btn:hover{background:#c8443c;color:#fff;border-color:#c8443c;}
.files-reset-all-btn:disabled{opacity:.55;cursor:not-allowed;}
@media(max-width:900px){#view-fichiers .hero>div:last-child{flex-wrap:wrap}.files-reset-all-btn{order:3;width:100%;}}


/* V34 — Budget simplifié autour du dernier mois complet */
#view-budget{background:#f5f6f2!important;min-height:100vh;}
.budget-v4-wrap{max-width:1500px!important;padding-top:30px!important;padding-bottom:52px!important;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;color:#202821;}
.budget-v4-header{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:20px;}
.budget-v4-kicker{margin:0 0 7px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#7e8e83;}
.budget-v4-header h1{margin:0;font-size:36px;line-height:1.05;letter-spacing:-.045em;font-weight:720;color:#202821;}
.budget-v4-sub{margin:9px 0 0;max-width:720px;font-size:13px;line-height:1.55;color:#788178;}
.budget-v4-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end;}
.budget-v4-coverage{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid #e0e4dc;border-radius:18px;padding:15px 18px;margin-bottom:14px;box-shadow:0 7px 24px rgba(35,45,38,.04);}
.budget-v4-coverage-actions{display:flex;align-items:center;gap:14px;}
.budget-v4-coverage-result{text-align:right;min-width:130px;padding-right:14px;border-right:1px solid #e8ebe5;}
.budget-v4-coverage-result span{display:block;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#9aa29b;margin-bottom:4px;}
.budget-v4-coverage-result strong{font-size:16px;color:#28352d;}
.budget-v4-import-btn{height:38px!important;display:inline-flex!important;align-items:center!important;padding:0 14px!important;font-size:11px!important;border-radius:10px!important;background:#567f5b!important;white-space:nowrap;}
#view-budget #pdfInput{display:none;}
#view-budget #uploadStatus{position:absolute;right:18px;bottom:-19px;font-size:10px;color:#7e877f;}
.budget-v4-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;}
.budget-v4-kpi{background:#fff;border:1px solid #e2e5de;border-radius:18px;padding:18px 19px;box-shadow:0 7px 24px rgba(35,45,38,.035);min-height:112px;display:flex;flex-direction:column;justify-content:center;}
.budget-v4-kpi-highlight{background:#f7faf4;border-color:#d8e3d5;}
.budget-v4-kpi-label{font-size:10px;font-weight:800;letter-spacing:.075em;text-transform:uppercase;color:#939c94;margin-bottom:8px;}
.budget-v4-kpi strong{font-size:25px;line-height:1.05;letter-spacing:-.035em;color:#26352c;font-weight:720;}
.budget-v4-kpi small{margin-top:7px;font-size:10.5px;color:#969e97;}
.budget-v4-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.55fr);gap:14px;margin-bottom:14px;align-items:stretch;}
.budget-v4-chart-card,.budget-v4-result-card,.budget-v4-focus-card,.budget-v4-history-card,.budget-v4-categories-panel{background:#fff;border:1px solid #e1e5de;border-radius:20px;box-shadow:0 7px 24px rgba(35,45,38,.04);}
.budget-v4-chart-card{padding:20px 22px;min-height:410px;}
.budget-v4-card-head span,.budget-v4-mini-label,.budget-v4-section-title>div>span{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#96a098;}
.budget-v4-card-head h2,.budget-v4-section-title h2{font-size:18px;letter-spacing:-.025em;margin:5px 0 0;color:#2c3830;}
.budget-v4-card-head p{font-size:11.5px;color:#778078;margin:7px 0 0;}
.budget-v4-chart-wrap{height:315px;margin-top:14px;}
.budget-v4-result-card{padding:22px;display:flex;flex-direction:column;align-items:center;text-align:center;}
.budget-v4-result-ring{--budget-ring-pct:0%;width:150px;height:150px;border-radius:50%;margin:18px 0 14px;background:conic-gradient(#5d8b61 var(--budget-ring-pct),#edf0eb 0);display:grid;place-items:center;position:relative;}
.budget-v4-result-ring:after{content:"";position:absolute;width:116px;height:116px;border-radius:50%;background:#fff;}
.budget-v4-result-ring>div{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:3px;}
.budget-v4-result-ring strong{font-size:30px;letter-spacing:-.05em;color:#26352c;}
.budget-v4-result-ring span{font-size:10px;color:#8a928b;}
.budget-v4-result-amount{font-size:28px;font-weight:750;letter-spacing:-.04em;color:#5c805f;}
.budget-v4-result-amount.negative{color:#c55349;}
.budget-v4-result-card>p{margin:3px 0 16px;font-size:11px;color:#8b938c;}
.budget-v4-result-breakdown{width:100%;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #ecefea;border-bottom:1px solid #ecefea;margin:2px 0 14px;}
.budget-v4-result-breakdown>div{padding:13px 8px;display:flex;flex-direction:column;gap:4px;}
.budget-v4-result-breakdown>div+div{border-left:1px solid #ecefea;}
.budget-v4-result-breakdown span{font-size:9.5px;color:#949c95;}
.budget-v4-result-breakdown strong{font-size:13px;color:#334039;}
.budget-v4-result-message{width:100%;border-radius:12px;background:#f5f8f2;padding:11px 12px;font-size:10.5px;line-height:1.45;color:#607064;text-align:left;}
.budget-v4-lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:14px;}
.budget-v4-focus-card,.budget-v4-history-card{padding:20px 22px;}
.budget-v4-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:15px;}
.budget-v4-section-title p{margin:0;font-size:10.5px;color:#969e97;}
.budget-v4-text-btn{border:0;background:transparent;color:#58764f;font:700 11px Inter,system-ui;cursor:pointer;padding:6px 0;}
.budget-v4-text-btn:hover{text-decoration:underline;}
.budget-v4-focus-list{display:flex;flex-direction:column;gap:8px;}
.budget-v4-focus-row{width:100%;border:1px solid #e8ece6;background:#fbfcf9;border-radius:14px;padding:11px 12px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;text-align:left;cursor:pointer;}
.budget-v4-focus-row:hover{border-color:#d8e1d5;background:#f8faf6;}
.budget-v4-focus-row>div:nth-child(2){display:flex;flex-direction:column;gap:2px;}
.budget-v4-focus-row>div:nth-child(2)>span{font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#9aa19b;}
.budget-v4-focus-row>div:nth-child(2)>strong{font-size:13px;color:#334039;}
.budget-v4-focus-row>div:nth-child(2)>small{font-size:10px;color:#89918a;}
.budget-v4-focus-row.danger{background:#fff8f6;border-color:#f1d6d0;}
.budget-v4-focus-row.warning{background:#fffaf2;border-color:#efdfc1;}
.budget-v4-focus-value{display:flex;align-items:center;gap:10px;text-align:right;}
.budget-v4-focus-value strong{font-size:11px;color:#435047;white-space:nowrap;}
.budget-v4-focus-value span{font-size:18px;color:#99a29a;}
.budget-v4-history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.budget-v4-history-grid>div{border:1px solid #e8ece6;background:#fbfcf9;border-radius:14px;padding:14px 13px;min-height:92px;display:flex;flex-direction:column;justify-content:center;}
.budget-v4-history-grid span{font-size:10px;line-height:1.35;color:#89918a;margin-bottom:7px;}
.budget-v4-history-grid strong{font-size:19px;letter-spacing:-.03em;color:#344139;}
.budget-v4-history-grid strong.negative{color:#c55349;}.budget-v4-history-grid strong.positive{color:#5c805f;}
.budget-v4-categories-panel{padding:20px 22px;margin-top:14px;scroll-margin-top:20px;}
#view-budget .budget-v3-category-list{box-shadow:none!important;border-radius:15px!important;}
@media(max-width:1150px){.budget-v4-kpis{grid-template-columns:repeat(2,1fr)}.budget-v4-main-grid{grid-template-columns:1fr}.budget-v4-lower-grid{grid-template-columns:1fr}}
@media(max-width:720px){.budget-v4-header{align-items:flex-start;flex-direction:column}.budget-v4-header-actions{width:100%;justify-content:space-between}.budget-v4-coverage{align-items:flex-start;flex-direction:column}.budget-v4-coverage-actions{width:100%;justify-content:space-between}.budget-v4-kpis{grid-template-columns:1fr}.budget-v4-history-grid{grid-template-columns:1fr}.budget-v4-focus-row{grid-template-columns:38px 1fr}.budget-v4-focus-value{grid-column:2;justify-content:space-between;text-align:left}.budget-v4-chart-wrap{height:270px}}


/* ===== v36 accueil / profil ===== */
#view-progression #vpLastMonthSection{display:none!important;}
.progression-wrap{padding-top:20px!important;padding-bottom:14px!important;}
.progression-header{margin-bottom:16px!important;}
.vp-main-row{margin-bottom:14px!important;}
.vp-score-card,.vp-networth-card,.vp-city-card{min-height:300px!important;}
.vp-score-card{padding:20px 20px 18px!important;}
.vp-networth-card{padding:20px 18px!important;}
.vp-city-card{min-height:300px!important;}
.vp-cards-row{margin-bottom:18px!important;gap:14px!important;}
.vp-cards-row>.progression-card{min-height:210px!important;padding:16px 18px!important;}
#view-progression .wrap-wide,.progression-wrap{max-width:1460px!important;width:calc(100% - 80px)!important;}
#view-progression{height:100vh;overflow:hidden;}
#view-progression .progression-wrap{min-height:calc(100vh - 24px);box-sizing:border-box;}
@media (max-height:920px){
  .progression-h1{font-size:36px!important;}
  .vp-score-card,.vp-networth-card,.vp-city-card{min-height:278px!important;}
  .vp-gauge-wrap{width:144px!important;height:144px!important;margin:4px 0 14px!important;}
  .vp-networth-value{font-size:44px!important;}
  .vp-cards-row>.progression-card{min-height:190px!important;}
  .vp-main-row{gap:12px!important;margin-bottom:12px!important;}
}
.profile-row-wrap{padding:0 2px!important;}
.profile-row{display:flex!important;align-items:center!important;gap:12px!important;padding:14px 14px!important;border-radius:18px!important;background:linear-gradient(180deg,#FCFBF7 0%,#F7F4EC 100%)!important;border:1px solid rgba(182,144,54,.18)!important;box-shadow:0 8px 22px rgba(35,45,38,.06)!important;}
.profile-row:hover{transform:translateY(-1px);background:linear-gradient(180deg,#FFFDF8 0%,#F7F2E6 100%)!important;border-color:rgba(88,118,79,.22)!important;}
.profile-avatar-shell{width:46px;height:46px;border-radius:50%;background:#E7E4DA;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 46px;box-shadow:inset 0 0 0 1px rgba(54,70,56,.08);}
.profile-avatar-image{width:100%;height:100%;object-fit:cover;display:block;}
.profile-avatar-initials{width:100%!important;height:100%!important;background:transparent!important;color:#526B4E!important;font-size:16px!important;font-weight:700!important;}
.profile-row-copy{display:flex;flex-direction:column;min-width:0;flex:1;}
.profile-row-kicker{font-size:11px;color:#8B7C57;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:2px;}
.profile-row-name{font-size:14px!important;font-weight:700!important;color:#263127!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.profile-row-meta{font-size:11px;color:#697169;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.profile-level-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#647B55;color:#fff;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 4px 14px rgba(88,118,79,.18);}
.profile-row-chevron{margin-left:2px;color:#7B826F!important;transform:none!important;}
.profile-card{width:min(680px,92vw)!important;max-height:88vh!important;overflow:auto!important;padding:28px 28px 22px!important;border-radius:24px!important;}
.profile-top-hero{display:flex;align-items:center;gap:18px;margin-bottom:14px;padding-right:26px;}
.profile-avatar-large-shell{width:94px;height:94px;border-radius:50%;background:linear-gradient(180deg,#EFE9D8 0%,#E5E0D1 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 94px;box-shadow:inset 0 0 0 1px rgba(54,70,56,.08),0 10px 26px rgba(35,45,38,.08);}
.profile-avatar-large-image{width:100%;height:100%;object-fit:cover;display:block;}
.profile-avatar-large-initials{font-family:'Inter',sans-serif!important;font-size:30px;font-weight:700;color:#526B4E;}
.profile-top-copy{flex:1;min-width:0;}
.profile-title{margin:0 0 6px!important;}
.profile-title-sub{margin:0 0 12px!important;color:#727972!important;}
.profile-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.profile-photo-cta,.profile-photo-remove{min-width:150px;justify-content:center;}
.profile-section{background:#FCFBF7;border:1px solid rgba(54,70,56,.08);border-radius:18px;padding:18px 18px 16px;margin-top:14px;}
.profile-section label{display:block;font-size:12px;color:#6E756E;font-weight:700;margin:10px 0 6px;}
.profile-section input{width:100%;}
.profile-level-shell .assistant-sub{margin-top:0!important;}
.loading-box-brand{padding:32px 38px!important;border-radius:28px!important;background:rgba(252,251,247,.92)!important;border:1px solid rgba(54,70,56,.08)!important;box-shadow:0 18px 38px rgba(35,45,38,.08)!important;}
.loader-brand{position:relative;display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin:0 auto 12px;}
.loader-ring{position:absolute;inset:0;border-radius:50%;border:4px solid rgba(212,176,77,.20);border-top-color:#C9A03C;animation:pe-spin 1s linear infinite;}
@keyframes pe-spin{to{transform:rotate(360deg);}}
.loading-text{font-size:15px!important;color:#576254!important;}
@media(max-width:760px){
  .profile-top-hero{flex-direction:column;align-items:flex-start;}
  .profile-card{padding:22px 18px 18px!important;}
  .profile-photo-actions{width:100%;}
}


/* ===== v37 profil plus large + accès profil renforcé ===== */
.sidebar-footer{padding:16px 6px 8px!important;}
.profile-row-wrap{padding:0!important;}
.profile-row{min-height:92px!important;padding:16px 14px!important;gap:13px!important;border-radius:20px!important;}
.profile-avatar-shell{width:58px!important;height:58px!important;flex-basis:58px!important;}
.profile-avatar-initials{font-size:18px!important;}
.profile-row-kicker{font-size:10px!important;margin-bottom:3px!important;}
.profile-row-name{font-size:15px!important;line-height:1.15!important;}
.profile-row-meta{font-size:10px!important;line-height:1.25!important;white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.profile-level-pill{padding:8px 10px!important;font-size:11px!important;}
.profile-row-chevron{display:none!important;}

.profile-card{
  width:min(900px,94vw)!important;
  max-width:900px!important;
  max-height:92vh!important;
  padding:34px 38px 30px!important;
  border-radius:28px!important;
}
.profile-top-hero{gap:24px!important;margin-bottom:20px!important;padding-right:30px!important;}
.profile-avatar-large-shell{width:122px!important;height:122px!important;flex-basis:122px!important;}
.profile-avatar-large-initials{font-size:36px!important;}
.profile-title{font-size:28px!important;line-height:1.1!important;}
.profile-title-sub{font-size:14px!important;line-height:1.5!important;max-width:520px;}
.profile-photo-actions{gap:12px!important;}
.profile-photo-cta,.profile-photo-remove{min-width:170px!important;height:42px!important;}
.profile-level-widget{padding:22px 24px 24px!important;border-radius:20px!important;}
.profile-level-widget .level-name{font-size:32px!important;}
.profile-level-widget .level-next{font-size:22px!important;}
.profile-section{padding:22px 24px 20px!important;border-radius:20px!important;}
.profile-section label{font-size:12px!important;margin-top:12px!important;}
.profile-section input{height:44px!important;font-size:14px!important;}
.profile-section .btn{height:44px!important;font-size:13px!important;}

@media(min-width:760px){
  .profile-card{display:grid!important;grid-template-columns:320px 1fr!important;column-gap:24px!important;align-items:start!important;}
  .profile-card>.assistant-close{grid-column:1/-1;}
  .profile-top-hero{grid-column:1/-1;}
  .profile-level-shell{grid-column:1;grid-row:3 / span 4;}
  .profile-section{grid-column:2;}
  #profileAdminLink,#profileLogoutBtn{grid-column:2;}
}
@media(max-width:759px){
  .profile-card{width:min(94vw,620px)!important;padding:24px 20px 20px!important;}
  .profile-top-hero{align-items:center!important;}
}


/* ===== v38 landing & auth refinement ===== */
.auth-screen{
  background:#F7F6F1!important;
  padding:40px 24px!important;
}
.auth-card{
  width:100%!important;
  max-width:430px!important;
  padding:34px 30px 28px!important;
  border-radius:24px!important;
  background:#FCFBF7!important;
  border:1px solid rgba(88,118,79,.12)!important;
  box-shadow:0 18px 40px rgba(38,49,38,.08)!important;
}
.auth-card .brand-title{
  font-family:'Inter',sans-serif!important;
  font-size:20px!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
  margin:4px 0 4px!important;
  color:#203022!important;
}
.auth-tagline{
  color:#657165!important;
  font-size:14px!important;
  margin-bottom:20px!important;
}
.auth-card label{
  color:#6D756D!important;
  font-size:12px!important;
  letter-spacing:.05em!important;
  margin-bottom:12px!important;
}
.auth-card input{
  border:1px solid #D7DDD2!important;
  border-radius:13px!important;
  padding:13px 14px!important;
  font-family:'Inter',sans-serif!important;
  font-size:15px!important;
  background:#fff!important;
}
.auth-card input:focus{
  border-color:#8EA183!important;
  box-shadow:0 0 0 4px rgba(88,118,79,.10)!important;
}
.auth-card .auth-switch{
  font-size:14px!important;
  color:#677265!important;
}
.auth-card .auth-switch a{
  color:#35543B!important;
  font-weight:700!important;
}

.landing-screen{
  background:#F7F6F1!important;
}
.landing-nav{
  max-width:1280px!important;
  width:calc(100% - 80px)!important;
  margin:0 auto!important;
  padding:20px 0!important;
  border-bottom:1px solid rgba(88,118,79,.10)!important;
}
.landing-wordmark-neutral,
.landing-wordmark{
  font-family:'Inter',sans-serif!important;
  font-size:18px!important;
  font-weight:700!important;
  color:#233226!important;
}
.landing-nav-login{
  font-size:14px!important;
  font-weight:700!important;
  color:#334A3A!important;
}
.landing-hero{
  width:100%!important;
  max-width:1280px!important;
  margin:0 auto!important;
  padding:68px 40px 56px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)!important;
  column-gap:56px!important;
  row-gap:18px!important;
  align-items:start!important;
  text-align:left!important;
}
.landing-eyebrow,
.landing-title,
.landing-subtitle,
.landing-actions{
  grid-column:1!important;
  justify-self:start!important;
  text-align:left!important;
}
.landing-eyebrow{
  margin:0!important;
  padding:8px 12px!important;
  border-radius:999px!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.02em!important;
}
.landing-title{
  margin:8px 0 0!important;
  max-width:700px!important;
  font-size:58px!important;
  line-height:1.04!important;
  font-weight:800!important;
  letter-spacing:-.045em!important;
  color:#1F2C22!important;
}
.landing-title em{color:#B48A2D!important;}
.landing-subtitle{
  margin:2px 0 0!important;
  max-width:660px!important;
  font-size:19px!important;
  line-height:1.6!important;
  color:#6A746B!important;
}
.landing-actions{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  margin-top:8px!important;
}
.landing-actions .btn{
  min-width:170px!important;
  height:48px!important;
  border-radius:13px!important;
  font-size:14px!important;
  font-weight:700!important;
}
.landing-visual-panel{
  grid-column:2!important;
  grid-row:1 / span 3!important;
  align-self:start!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:14px!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}
.landing-visual-card{
  background:#FCFBF7!important;
  border:1px solid rgba(88,118,79,.10)!important;
  border-radius:18px!important;
  padding:20px 22px!important;
  box-shadow:0 10px 24px rgba(40,49,38,.04)!important;
}
.landing-visual-card.accent{
  background:#FBF8F0!important;
  border-color:rgba(180,138,45,.18)!important;
}
.landing-visual-card span{
  font-size:11px!important;
  letter-spacing:.10em!important;
  color:#7D857D!important;
}
.landing-visual-card strong{
  font-size:36px!important;
  line-height:1.05!important;
  color:#1F2C22!important;
}
.landing-features{
  grid-column:1 / -1!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
  margin-top:12px!important;
  width:100%!important;
}
.landing-feature{
  background:#FCFBF7!important;
  border:1px solid rgba(88,118,79,.10)!important;
  border-radius:18px!important;
  padding:18px 18px!important;
  min-height:110px!important;
  align-items:flex-start!important;
  box-shadow:0 8px 20px rgba(40,49,38,.035)!important;
}
.landing-feature-icon{
  width:40px!important;
  height:40px!important;
  border-radius:12px!important;
}
.lf-title{
  font-size:15px!important;
  font-weight:700!important;
  color:#233226!important;
  margin-bottom:6px!important;
}
.lf-sub{
  font-size:13px!important;
  line-height:1.5!important;
  color:#788178!important;
}
@media (max-width: 1080px){
  .landing-nav{width:calc(100% - 40px)!important;}
  .landing-hero{
    grid-template-columns:1fr!important;
    width:calc(100% - 40px)!important;
    padding:48px 0 40px!important;
    row-gap:16px!important;
  }
  .landing-eyebrow,.landing-title,.landing-subtitle,.landing-actions,.landing-visual-panel,.landing-features{
    grid-column:1!important;
  }
  .landing-visual-panel{grid-row:auto!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .landing-features{grid-template-columns:1fr!important;}
  .landing-title{font-size:44px!important;max-width:760px!important;}
  .landing-subtitle{font-size:17px!important;max-width:760px!important;}
}
@media (max-width: 760px){
  .landing-nav{width:calc(100% - 28px)!important;padding:16px 0!important;}
  .landing-hero{
    width:calc(100% - 28px)!important;
    padding:34px 0 30px!important;
  }
  .landing-title{font-size:34px!important;line-height:1.1!important;}
  .landing-subtitle{font-size:15px!important;}
  .landing-actions{width:100%!important;flex-direction:column!important;align-items:stretch!important;}
  .landing-actions .btn{width:100%!important;min-width:0!important;}
  .landing-visual-panel,
  .landing-features{grid-template-columns:1fr!important;}
  .landing-visual-card strong{font-size:30px!important;}
}


/* ===== v39 onboarding import only ===== */
.onboard-card{max-width:760px!important;}
.onboard-step[data-step="import"] .onboard-sub{max-width:560px;margin-left:auto;margin-right:auto;}
.onboard-upload-note{max-width:560px;margin:14px auto 0;padding:12px 14px;background:#F6F5EF;border:1px solid #E1E3D8;border-radius:14px;font-size:12.5px;line-height:1.55;color:#627065;}
.onboard-file-list{max-width:560px;margin:14px auto 0;display:flex;flex-direction:column;gap:12px;text-align:left;}
.onboard-file-empty{padding:14px 16px;border:1px dashed #D5DBD1;border-radius:14px;background:#FCFBF7;color:#788176;font-size:13px;text-align:center;}
.onboard-file-row{display:grid;grid-template-columns:minmax(0,1fr) 190px auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #E1E4DA;border-radius:16px;background:#FCFBF7;box-shadow:0 8px 20px rgba(35,45,38,.03);}
.onboard-file-copy{min-width:0;display:flex;flex-direction:column;gap:4px;}
.onboard-file-copy strong{font-size:13px;color:#243127;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.onboard-file-copy span{font-size:11.5px;color:#7B847A;}
.onboard-file-type{display:flex;flex-direction:column;gap:6px;}
.onboard-file-type span{font-size:11px;color:#7A8378;font-weight:700;text-transform:uppercase;letter-spacing:.04em;}
.onboard-file-type select{height:40px;border:1px solid #D7DDD2;border-radius:11px;padding:0 12px;background:#fff;color:#243127;font:600 13px Inter,system-ui;}
.onboard-file-remove{height:40px;padding:0 14px;border:1px solid #E3D2CC;border-radius:11px;background:#FFF7F5;color:#B55A4C;font:700 12px Inter,system-ui;cursor:pointer;}
.onboard-actions-single{justify-content:flex-end!important;max-width:560px;margin-left:auto;margin-right:auto;}
.onboard-actions-single .btn-gold{min-width:170px;}
#onboardImportStatus{max-width:560px;margin:14px auto 0;}
@media(max-width:760px){
  .onboard-file-row{grid-template-columns:1fr;gap:10px;}
  .onboard-actions-single .btn-gold{width:100%;}
}


/* ===== v40 import multiple stable ===== */
.onboard-step[data-step="import"]{max-height:calc(100vh - 56px);overflow:hidden;}
.onboard-step[data-step="import"].active{display:flex!important;flex-direction:column;align-items:stretch;}
.onboard-step[data-step="import"] .brand-mark-arch-xl{margin-left:auto!important;margin-right:auto!important;}
.onboard-step[data-step="import"] .onboard-eyebrow,
.onboard-step[data-step="import"] .onboard-q,
.onboard-step[data-step="import"] .onboard-sub{text-align:center;}
.onboard-file-list{max-height:300px!important;overflow-y:auto!important;padding-right:6px!important;scrollbar-gutter:stable;}
.onboard-file-list::-webkit-scrollbar{width:8px;}
.onboard-file-list::-webkit-scrollbar-thumb{background:#CDD4C9;border-radius:999px;}
.onboard-file-row{grid-template-columns:minmax(0,1fr) 185px 112px!important;}
.onboard-file-actions{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0;}
.onboard-file-status{min-height:16px;font-size:10.5px;line-height:1.2;color:#7A8378;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.onboard-file-status.uploading{color:#9A7A2D;font-weight:700;}
.onboard-file-status.done{color:#4F7954;font-weight:700;}
.onboard-file-status.error{color:#B75D50;font-weight:700;}
.onboard-file-remove:disabled{opacity:.45;cursor:not-allowed;}
#onboardContinueImport:disabled{opacity:.65;cursor:wait;}
@media(max-height:820px){
  .onboard-card{padding-top:18px!important;padding-bottom:18px!important;}
  .onboard-file-list{max-height:220px!important;}
  .onboard-upload{padding:18px!important;}
}
@media(max-width:760px){
  .onboard-file-row{grid-template-columns:1fr!important;}
  .onboard-file-actions{flex-direction:row;align-items:center;justify-content:space-between;}
}


/* ===== v41 onboarding : détection automatique du type de relevé ===== */
.onboard-file-row{grid-template-columns:minmax(0,1fr) auto!important;}
.onboard-file-type{display:none!important;}
.onboard-file-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;}
.onboard-file-status{min-width:80px;text-align:right;font-size:11.5px;font-weight:700;color:#788176;}
.onboard-file-status.uploading{color:#B48A2D;}
.onboard-file-status.done{color:#4F7654;}
.onboard-file-status.error{color:#B85F55;}
@media(max-width:760px){
  .onboard-file-row{grid-template-columns:1fr!important;}
  .onboard-file-actions{justify-content:space-between;}
}

/* Historique annuel des cotisations */
.tools-toolbar{flex-wrap:wrap;}
.tools-year-actions{flex-wrap:wrap;}
.tools-years-card{margin-top:16px;}
.tools-years-hint{font-size:13px;color:#7A8277;margin:-4px 0 14px;}
.tools-years-table{display:flex;flex-direction:column;}
.tools-years-head,.tools-years-row{display:grid;grid-template-columns:90px repeat(4,minmax(0,1fr));align-items:center;gap:12px;padding:11px 8px;border-bottom:1px solid rgba(88,118,79,.08);text-align:left;}
.tools-years-head{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#92988F;font-weight:800;}
.tools-years-row{background:none;border-left:none;border-right:none;border-top:none;font:inherit;font-size:13px;color:#4F5B51;cursor:pointer;border-radius:10px;width:100%;}
.tools-years-row:hover{background:rgba(88,118,79,.06);}
.tools-years-row.active{background:rgba(88,118,79,.12);}
.tools-years-year{font-weight:800;color:#2C382E;}
@media(max-width:760px){.tools-years-head{display:none}.tools-years-row{grid-template-columns:repeat(2,1fr)}.tools-years-year{grid-column:1/-1}}

/* Messages de connexion / inscription */
#authStatus.auth-status-error{color:#B4493D;background:#FBEDEA;border:1px solid #F0CFC8;border-radius:10px;padding:10px 12px;font-size:13px;margin:6px 0 10px;}
#authStatus.auth-status-info{color:#4F5B51;background:#F1F3EC;border:1px solid #DDE3D4;border-radius:10px;padding:10px 12px;font-size:13px;margin:6px 0 10px;}
#authStatus.auth-status-success{color:#3F7A4A;background:#EAF4EC;border:1px solid #CFE4D3;border-radius:10px;padding:10px 12px;font-size:13px;margin:6px 0 10px;}
.auth-show-password{display:flex !important;flex-direction:row !important;align-items:center;gap:8px;font-weight:500;font-size:13px;margin:2px 0 6px;cursor:pointer;}
.auth-show-password input{width:auto !important;margin:0;}
.auth-forgot-link{font-size:13px;color:#5A7650;text-decoration:underline;margin-bottom:8px;}

/* Projection de placements */
.projection-presets{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:14px;background:#EFEEE6;border-radius:14px;padding:5px;}
.projection-presets .calc-tab{font-size:12.5px;flex:1;padding:10px 12px;}
.projection-presets .calc-tab.active{background:#fff;}
.projection-use-mine{margin-top:14px;}
.projection-milestones{margin-top:18px;display:flex;flex-direction:column;}
.projection-ms-head,.projection-ms-row{display:grid;grid-template-columns:1.2fr repeat(4,minmax(0,1fr));gap:12px;align-items:center;padding:10px 6px;border-bottom:1px solid rgba(88,118,79,.08);font-size:13px;color:#4F5B51;}
.projection-ms-head{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#92988F;font-weight:800;}
.projection-ms-row strong{color:#243228;}
@media(max-width:760px){.projection-ms-head{display:none}.projection-ms-row{grid-template-columns:1fr 1fr}.projection-ms-row span:first-child{grid-column:1/-1}}
