:root{
  --bg:#f4f6fa;--surface:#ffffff;--surface-soft:#f8f9fc;--text:#18212f;--muted:#697386;
  --border:#e4e8ef;--primary:#5b43d6;--primary-soft:#efedff;--good:#177245;--good-soft:#e9f6ef;
  --warn:#9a6700;--warn-soft:#fff5d8;--bad:#b42318;--bad-soft:#fdeceb;--shadow:0 8px 24px rgba(24,33,47,.06)
}
*{box-sizing:border-box}html{background:var(--bg)}body{font-family:"Segoe UI Variable Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;margin:0;background:var(--bg);color:var(--text)}
a{color:inherit}.shell{max-width:1380px;margin:0 auto;padding:22px 22px 56px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(145deg,#6248e4,#4330b7);color:#fff;font-size:22px;box-shadow:var(--shadow)}.brand strong{font-size:18px}.brand small{display:block;color:var(--muted);margin-top:2px}.nav{display:flex;gap:6px;padding:5px;background:#eceff5;border-radius:12px}.nav a{text-decoration:none;padding:9px 13px;border-radius:9px;color:#566074;font-size:14px;font-weight:700}.nav a.active{background:#fff;color:var(--text);box-shadow:0 2px 8px rgba(20,28,45,.07)}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.eyebrow{font-size:13px;color:var(--primary);font-weight:800;text-transform:uppercase;letter-spacing:.07em}.hero h1{font-size:34px;line-height:1.1;margin:5px 0 6px}.hero p{margin:0;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:7px;background:var(--primary-soft);color:var(--primary);border:1px solid #dcd6ff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.pill-dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0 28px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.kpi-label{font-size:13px;font-weight:700;color:var(--muted)}.kpi-value{font-size:30px;font-weight:850;letter-spacing:-.03em;margin-top:5px}.kpi-sub{font-size:12px;color:var(--muted);margin-top:4px}.kpi.good .kpi-value{color:var(--good)}.kpi.warn .kpi-value{color:var(--warn)}.kpi.primary .kpi-value{color:var(--primary)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:28px 0 12px}.section-head h2{font-size:20px;margin:0}.section-head p{margin:3px 0 0;color:var(--muted);font-size:13px}.section-head a{font-size:13px;color:var(--primary);font-weight:800;text-decoration:none}
.envelopes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.budget-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px}.budget-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.budget-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface-soft);font-size:20px}.budget-name{font-weight:800;margin-top:9px}.budget-rest{font-size:22px;font-weight:850;margin-top:3px}.budget-meta{font-size:12px;color:var(--muted);margin-top:2px}.progress{height:8px;background:#edf0f5;border-radius:999px;overflow:hidden;margin-top:13px}.progress span{display:block;height:100%;width:var(--pct);background:var(--good);border-radius:inherit}.budget-card.warn .progress span{background:var(--warn)}.budget-card.bad .progress span{background:var(--bad)}.budget-card.warn .budget-rest{color:var(--warn)}.budget-card.bad .budget-rest{color:var(--bad)}
.two-col{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(330px,.7fr);gap:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.panel-body{padding:7px 16px 9px}.event{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.event:last-child{border-bottom:0}.date-box{width:48px;padding:7px 5px;border-radius:10px;background:var(--surface-soft);text-align:center}.date-box strong{display:block;font-size:16px}.date-box span{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:800}.event-title{font-weight:800}.event-cat{font-size:12px;color:var(--muted);margin-top:2px}.amount{font-weight:850;white-space:nowrap}.goal{padding:13px 0;border-bottom:1px solid var(--border)}.goal:last-child{border-bottom:0}.goal-line{display:flex;align-items:center;justify-content:space-between;gap:10px}.goal-name{font-weight:800}.goal-value{font-size:13px;font-weight:800}.goal .progress{margin-top:8px;height:7px}.goal small{display:block;color:var(--muted);margin-top:5px}
.notice{display:flex;gap:11px;align-items:flex-start;padding:13px 15px;border-radius:13px;background:#f0f3ff;border:1px solid #dce1ff;color:#394067;font-size:13px;margin-top:14px}.notice strong{color:var(--text)}
.import-wrap{max-width:1240px}.muted{color:var(--muted)}.version{font-size:13px;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;margin:22px 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:17px;box-shadow:0 2px 6px rgba(16,24,40,.04)}.big{font-size:28px;font-weight:700;margin-top:5px}.pending{color:var(--primary)}.exported{color:var(--warn)}.imported{color:var(--good)}.excluded{color:#7a3e00}.error{color:var(--bad)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0}button,.button{border:0;border-radius:9px;padding:9px 13px;cursor:pointer;font-weight:700;font-size:14px;text-decoration:none;display:inline-block}button.primary,.button.primary{background:var(--primary);color:white}button.good{background:var(--good-soft);color:var(--good)}button.warn{background:var(--warn-soft);color:#7a5100}button.bad{background:var(--bad-soft);color:var(--bad)}button.secondary,.button.secondary{background:#eef1f6;color:var(--text)}.flow{background:#f1efff;border:1px solid #d9d2ff;padding:13px 16px;border-radius:11px;line-height:1.6}.batch{background:#fff9e8;border:1px solid #f4df9c;padding:14px 16px;border-radius:11px;margin:12px 0}table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:12px;overflow:hidden;border:1px solid var(--border)}th,td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;vertical-align:middle}th{background:#fafbfc}input[type=text]{width:100%;min-width:150px;padding:8px 9px;border:1px solid var(--border);border-radius:8px;background:white}.inline-actions{display:flex;gap:6px;white-space:nowrap}.tag{display:inline-block;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.tag.pending{background:#eeeaff}.tag.exported{background:#fff3cd}.tag.imported{background:#e9f6ec}.tag.excluded{background:#fff1e6}textarea{width:100%;min-height:220px;padding:12px;border:1px solid var(--border);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:white}.empty{padding:18px;background:var(--surface);border:1px dashed var(--border);border-radius:11px;color:var(--muted)}
@media(max-width:1050px){.kpis,.envelopes{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}@media(max-width:700px){.shell{padding:14px 12px 36px}.topbar{align-items:flex-start;flex-direction:column}.nav{width:100%}.nav a{flex:1;text-align:center}.hero{align-items:flex-start;flex-direction:column}.hero h1{font-size:28px}.kpis,.envelopes{grid-template-columns:1fr}.table-wrap{overflow-x:auto}.event{grid-template-columns:50px minmax(0,1fr) auto}}

/* V1.8 dashboard */
.compact-head{margin-top:20px}.section-total{font-size:13px;color:var(--muted);white-space:nowrap}.section-total strong{color:var(--text);font-size:16px}.accounts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.account-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:14px 15px;box-shadow:0 3px 12px rgba(24,33,47,.035)}.account-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--surface-soft);font-size:19px}.account-name{font-weight:800}.account-kind{font-size:11px;color:var(--muted);margin-top:2px}.account-balance{font-size:18px;font-weight:850;white-space:nowrap}.account-balance.negative{color:var(--bad)}
.kpis-three{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.categories-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.budget-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.source-badge{display:inline-flex;border-radius:999px;padding:5px 8px;background:#f2f4f8;color:var(--muted);font-size:10px;font-weight:800}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);background:#fbfcfe}.panel-title-row strong{font-size:14px}.panel-title-row span{font-size:11px;color:var(--muted)}.event-list,.provisions-list{padding-top:0;padding-bottom:0}.upcoming-layout{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr)}.event .amount.positive,.amount.positive{color:var(--good)}.transactions-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.tx-list{padding-top:0;padding-bottom:0}.tx-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.tx-row:last-child{border-bottom:0}.tx-date{font-size:12px;color:var(--muted);font-weight:800}.tx-payee{font-size:13px;font-weight:800}.tx-meta{font-size:11px;color:var(--muted);margin-top:2px}.tx-row .amount{font-size:13px}
@media(max-width:1050px){.accounts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis-three{grid-template-columns:1fr}.categories-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upcoming-layout,.transactions-layout{grid-template-columns:1fr}}
@media(max-width:700px){.accounts-grid,.categories-grid{grid-template-columns:1fr}.account-card{grid-template-columns:38px minmax(0,1fr) auto}.account-balance{font-size:16px}.section-total{display:none}.budget-badges{max-width:160px}.panel-title-row{align-items:flex-start;flex-direction:column;gap:3px}}

/* V1.9 — Actual en lecture seule + dashboard réorganisé */
.hero-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.pill.connected{background:#eaf8ef;border-color:#c7ead3;color:#147a42}.refresh-link{font-size:12px;color:var(--primary);font-weight:800;text-decoration:none}.warning-notice{background:#fff8e6;border-color:#f1d792;color:#6e5400;margin-bottom:16px}.accounts-provisions-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.7fr);gap:14px;align-items:start}.accounts-grid-side{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}.provisions-panel{height:100%}.provisions-panel .panel-body{padding:0 16px}.compact-empty{padding:13px}.event-wide{grid-template-columns:56px minmax(0,1fr) minmax(160px,.35fr) auto}.event-account{font-size:12px;color:var(--muted);text-align:right}.upcoming-full .event-list{padding:0 16px}.transactions-table-panel{overflow:hidden}.dashboard-transactions{border:0;border-radius:0}.dashboard-transactions th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.dashboard-transactions td{padding-top:11px;padding-bottom:11px}.dashboard-transactions tr:last-child td{border-bottom:0}.dashboard-transactions .amount-col{text-align:right;white-space:nowrap}.tx-date-cell{width:66px;font-weight:800;color:var(--muted);font-size:12px}.tx-payee-cell{font-weight:800}.tx-category-cell{color:var(--muted);font-size:13px}.account-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#f1f3f7;font-size:11px;font-weight:800;color:#4d5668;white-space:nowrap}.categories-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.budget-meta{line-height:1.35}.source-badge{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1150px){.accounts-provisions-layout{grid-template-columns:1fr}.accounts-grid-side{grid-template-columns:repeat(2,minmax(0,1fr))}.provisions-panel{height:auto}}
@media(max-width:900px){.event-wide{grid-template-columns:52px minmax(0,1fr) auto}.event-account{display:none}.categories-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.hero-status{justify-content:flex-start}.accounts-grid-side,.categories-grid{grid-template-columns:1fr}.dashboard-transactions th:nth-child(4),.dashboard-transactions td:nth-child(4){display:none}.dashboard-transactions th,.dashboard-transactions td{padding-left:8px;padding-right:8px}.account-chip{max-width:130px;overflow:hidden;text-overflow:ellipsis}.event-wide{grid-template-columns:48px minmax(0,1fr) auto}}

/* V2.1 — Dashboard synthétique, navigation secondaire et listes compactes */
.budget-subnav{display:flex;gap:6px;margin:-10px 0 22px;padding:4px;width:max-content;max-width:100%;background:#eceff5;border-radius:11px}.budget-subnav a{text-decoration:none;padding:8px 12px;border-radius:8px;color:#5c6678;font-size:13px;font-weight:800;white-space:nowrap}.budget-subnav a.active{background:#fff;color:var(--text);box-shadow:0 2px 7px rgba(20,28,45,.07)}
.dashboard-hero{margin-bottom:10px}.page-hero{margin-bottom:18px}.overview-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(460px,.9fr);gap:14px;align-items:start}.overview-left{display:flex;flex-direction:column;gap:14px}.summary-bricks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-brick{background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:15px 16px;min-height:126px;box-shadow:0 3px 12px rgba(24,33,47,.035)}.summary-brick .kpi-value{font-size:25px}.primary-brick .kpi-value{color:var(--primary)}.warn-brick .kpi-value{color:var(--warn)}.good-brick .kpi-value{color:var(--good)}
.compact-provisions-panel{height:auto}.compact-provisions-panel .panel-title-row{padding:11px 14px}.provisions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;padding:0 14px 4px!important}.compact-goal{padding:10px 0}.compact-goal .goal-name{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-goal .goal-value{font-size:12px;white-space:nowrap}.compact-goal .progress{height:6px;margin-top:7px}.goal-percent{font-size:10px;color:var(--muted);font-weight:800;margin-top:3px;text-align:right}
.categories-head{margin-top:24px}.category-list-panel{overflow:hidden}.category-list-header,.category-row{display:grid;grid-template-columns:minmax(300px,1.7fr) minmax(110px,.55fr) minmax(110px,.55fr) minmax(120px,.6fr) minmax(180px,.8fr);align-items:center;gap:14px}.category-list-header{padding:10px 16px;background:#fafbfc;border-bottom:1px solid var(--border);font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.035em}.category-row{padding:10px 16px;border-bottom:1px solid var(--border);min-height:66px}.category-row:last-child{border-bottom:0}.category-main-cell{display:flex;align-items:center;gap:11px;min-width:0}.category-row-icon{width:36px;height:36px;flex:0 0 36px}.category-row-text{min-width:0}.category-row .budget-name{margin:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-group{font-size:11px;color:var(--muted);margin-top:2px}.category-number{font-size:13px;font-weight:800;white-space:nowrap}.category-balance{font-size:16px}.category-row.warn .category-balance{color:var(--warn)}.category-row.bad .category-balance{color:var(--bad)}.category-progress-line{display:grid;grid-template-columns:minmax(90px,1fr) 48px;align-items:center;gap:8px}.category-progress-line .progress{margin:0;height:7px}.category-progress-line strong{font-size:11px;text-align:right;color:var(--muted)}.category-row.warn .progress span{background:var(--warn)}.category-row.bad .progress span{background:var(--bad)}.mobile-label{display:none}
.dashboard-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.shortcut-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:13px 15px}.shortcut-card>span{font-size:21px}.shortcut-card strong{display:block;font-size:13px}.shortcut-card small{display:block;color:var(--muted);margin-top:2px}.shortcut-card b{color:var(--primary);font-size:18px}.shortcut-card:hover{border-color:#d5d0fb;box-shadow:0 4px 14px rgba(24,33,47,.05)}
.upcoming-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:4px}.upcoming-kpis .kpi{padding:16px}.upcoming-kpis .kpi-value{font-size:27px}

@media(max-width:1180px){.overview-layout{grid-template-columns:1fr}.summary-bricks{grid-template-columns:repeat(3,minmax(0,1fr))}.provisions-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.category-list-header,.category-row{grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(95px,.55fr)) minmax(155px,.75fr)}}
@media(max-width:920px){.summary-bricks,.upcoming-kpis{grid-template-columns:1fr}.summary-brick{min-height:0}.provisions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-list-header{display:none}.category-row{grid-template-columns:minmax(0,1fr) repeat(3,minmax(80px,.45fr));gap:10px}.category-progress-cell{grid-column:1/-1}.category-progress-line{grid-template-columns:minmax(0,1fr) 45px}.dashboard-shortcuts{grid-template-columns:1fr}}
@media(max-width:700px){.budget-subnav{width:100%;overflow-x:auto;margin-top:-8px}.budget-subnav a{flex:0 0 auto}.overview-layout{display:block}.overview-left{margin-bottom:12px}.summary-bricks{grid-template-columns:1fr}.provisions-grid{grid-template-columns:1fr}.category-row{grid-template-columns:1fr 1fr;padding:12px}.category-main-cell{grid-column:1/-1}.category-number{display:flex;justify-content:space-between;gap:10px;padding-top:5px;border-top:1px dashed var(--border)}.category-balance{font-size:14px}.mobile-label{display:inline;color:var(--muted);font-size:11px;font-weight:700}.category-progress-cell{grid-column:1/-1}.dashboard-shortcuts{grid-template-columns:1fr}.upcoming-kpis{grid-template-columns:1fr}.compact-provisions-panel .panel-title-row{flex-direction:row;align-items:center}}


/* V2.1 — Synthèse en tête, comptes verticaux, provisions lisibles */
.dashboard-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.summary-bricks-top{margin-bottom:22px}.summary-bricks-top .summary-brick{min-height:112px}.overview-layout-v21{grid-template-columns:minmax(320px,.72fr) minmax(0,1.65fr);gap:14px}.accounts-column{min-width:0}.accounts-panel-v21,.provisions-panel-v21{height:100%}.accounts-panel-v21 .panel-title-row{padding:11px 14px}.accounts-list-v21{display:flex;flex-direction:column;padding:0 12px 12px;gap:8px}.account-card-v21{border-radius:12px;box-shadow:none;padding:11px 12px}.account-card-v21 .account-icon{width:36px;height:36px;font-size:17px}.account-card-v21 .account-balance{font-size:17px}.provisions-panel-v21 .panel-title-row{padding:11px 16px}.provisions-grid-v21{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;padding:0 16px 6px!important}.provision-goal-v21{padding:13px 0}.provision-goal-v21 .goal-name{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.provision-goal-v21 .goal-value{font-size:14px;font-weight:850;white-space:nowrap;margin-left:14px}.goal-separator{color:var(--muted);font-weight:700}.provision-progress-row{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:9px;margin-top:8px}.provision-progress-row .progress{height:8px;margin:0}.provision-progress-row .goal-percent{font-size:11px;margin:0;text-align:right;color:var(--muted);font-weight:850}.accounts-provisions-head{margin-top:8px}.category-balance{font-weight:900}
@media(max-width:1180px){.overview-layout-v21{grid-template-columns:minmax(290px,.65fr) minmax(0,1.35fr)}.provisions-grid-v21{column-gap:16px}}
@media(max-width:980px){.overview-layout-v21{grid-template-columns:1fr}.accounts-list-v21{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.provisions-grid-v21{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashboard-topline{align-items:flex-start;flex-direction:column}.summary-bricks-top{grid-template-columns:1fr}.accounts-list-v21,.provisions-grid-v21{grid-template-columns:1fr}.provision-goal-v21 .goal-value{font-size:13px}.overview-layout-v21{display:grid}}

/* V2.2 */
.dashboard-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.inline-form{display:inline;margin:0}.compact-button{padding:7px 10px;font-size:12px;white-space:nowrap}.success-notice{background:#edf9f0;border:1px solid #b9e4c4;color:#176c36}.kpi-formula{margin-top:7px;padding-top:6px;border-top:1px dashed var(--border);font-size:10px;color:var(--muted);font-weight:750}.category-groups{display:flex;flex-direction:column;gap:14px}.category-group-panel{overflow:hidden}.category-group-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 16px;background:#f4f1ff;border-bottom:1px solid #ded8ff}.category-group-title-row strong{font-size:15px}.category-group-title-row span{font-size:12px;color:var(--muted);white-space:nowrap}.category-group-title-row b{color:var(--text)}
@media(max-width:700px){.dashboard-actions{justify-content:flex-start}.compact-button{font-size:11px}.category-group-title-row{align-items:flex-start;flex-direction:column;gap:3px}.category-group-title-row span{white-space:normal}}


/* V2.3 — emplacement des provisions et projection pessimiste par compte courant */
.provision-location-form{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:7px;font-size:10px;color:var(--muted);font-weight:800}
.provision-location-form select{appearance:auto;border:1px solid var(--border);background:#fff;border-radius:8px;padding:4px 7px;font:inherit;color:#4d5668;cursor:pointer}
.kpi-formula{margin-top:8px;font-size:10px;line-height:1.45;color:var(--muted);font-weight:750}
@media(max-width:700px){.provision-location-form{justify-content:flex-start}.kpi-formula{font-size:9.5px}}


/* V2.4 — densité, hiérarchie des groupes et provisions */
.provisions-grid-v21{gap:9px 10px;padding:10px 12px 12px!important}
.provision-goal-v24{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:10px 12px;box-shadow:none}
.provision-goal-line-v24{align-items:center;gap:12px}
.provision-name-location{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.provision-name-location .goal-name{font-size:13.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.provision-location-inline{margin:0;flex:0 0 auto}
.provision-location-inline select{font-size:11px;font-weight:600;padding:3px 6px;border-radius:7px;min-width:74px}
.provision-goal-v24 .goal-value{font-size:13.5px;font-weight:700;margin-left:0}
.provision-goal-v24 .provision-progress-row{margin-top:7px}
.provision-goal-v24 .goal-percent{font-weight:700}

.category-groups{gap:10px}
.category-group-panel{border-radius:13px}
.category-group-title-row{padding:9px 14px;background:#eeeaff;border-bottom:1px solid #d8d0ff}
.category-group-title-row .category-group-name{font-size:16px;font-weight:750;color:#40329a;letter-spacing:-.01em}
.category-group-balance-label{display:flex;align-items:baseline;gap:5px;font-size:11px!important;font-weight:600;color:var(--muted)!important}
.category-group-balance{font-size:17px;font-weight:750;color:var(--primary)!important;letter-spacing:-.02em}
.category-list-header{padding:7px 14px;font-size:10px;font-weight:700}
.category-row{padding:6px 14px;min-height:48px;gap:12px}
.category-main-cell{gap:9px}
.category-row-icon{width:30px;height:30px;flex-basis:30px;border-radius:9px;font-size:16px}
.category-row .budget-name{font-size:13px;font-weight:650}
.category-number{font-size:12.5px;font-weight:650}
.category-balance{font-size:14px;font-weight:750}
.category-progress-line strong{font-weight:650}
.category-progress-line .progress{height:6px}

.kpi-value,.account-balance,.goal-value{font-weight:750}
.account-name,.budget-name,.event-title,.tx-payee{font-weight:700}

@media(max-width:700px){
  .provision-goal-line-v24{align-items:flex-start;flex-direction:column;gap:5px}
  .provision-name-location{width:100%}
  .provision-goal-v24 .goal-value{margin-left:0}
  .category-row{padding:9px 11px;min-height:0}
  .category-group-title-row .category-group-name{font-size:15px}
  .category-group-balance-label{flex-direction:row!important;align-items:baseline!important}
}

/* v2.5 — import Sumeria plus fluide */
.import-live-message{min-height:18px;margin-top:-8px;font-size:13px;font-weight:650;color:var(--muted)}
.import-live-message.success{color:var(--good)}
.import-live-message.error{color:var(--bad)}
.button.is-busy,button:disabled{opacity:.65;cursor:wait}
#import-workflow{scroll-margin-top:18px}

/* --- v2.6 : authentification --- */
.nav-logout { margin: 0; display: inline-flex; }
.nav-logout button {
  appearance: none; border: 1px solid #d9deea; background: #fff; color: #4c5568;
  border-radius: 10px; padding: 8px 12px; font: inherit; font-weight: 600; cursor: pointer;
}
.nav-logout button:hover { background: #f5f7fb; }
.login-page { min-height: 100vh; background: #f4f6fa; }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card {
  width: min(430px, 100%); background: #fff; border: 1px solid #e0e4ee; border-radius: 20px;
  box-shadow: 0 18px 55px rgba(34, 42, 66, .10); padding: 30px;
}
.login-brand { margin-bottom: 28px; }
.login-card h1 { margin: 0 0 8px; font-size: 1.8rem; }
.login-form { display: grid; gap: 16px; margin-top: 24px; }
.login-form label { display: grid; gap: 7px; font-weight: 650; color: #30384a; }
.login-form input[type="text"], .login-form input[type="password"] {
  width: 100%; box-sizing: border-box; border: 1px solid #cfd5e2; border-radius: 11px;
  padding: 12px 13px; font: inherit; background: #fff;
}
.login-form input:focus { outline: 2px solid rgba(101, 76, 217, .18); border-color: #7257dc; }
.login-button { width: 100%; margin-top: 4px; padding: 12px 14px; }
.auth-alert { margin-top: 20px; border: 1px solid #d9deea; background: #f8f9fc; padding: 12px 14px; border-radius: 11px; }
.auth-alert.error { border-color: #f0c6c6; background: #fff5f5; color: #922f2f; }
.login-foot { margin-top: 22px; color: #8991a2; font-size: .85rem; text-align: center; }
