/* ========== Budget — design clair & punchy ========== */

:root {
  --bg: #f7f7fb;
  --bg-elev: #ffffff;
  --ink: #0f172a;
  --ink-soft: #475569;
  --ink-muted: #94a3b8;
  --line: #e5e7eb;
  --line-soft: #f1f5f9;

  --primary: #6366f1;
  --primary-soft: #eef2ff;
  --primary-ink: #4f46e5;

  --pink: #ec4899;
  --pink-soft: #fce7f3;
  --blue: #3b82f6;
  --blue-soft: #dbeafe;
  --green: #10b981;
  --green-soft: #d1fae5;
  --red: #ef4444;
  --red-soft: #fee2e2;
  --amber: #f59e0b;
  --amber-soft: #fef3c7;
  --violet: #8b5cf6;
  --violet-soft: #ede9fe;
  --teal: #06b6d4;
  --teal-soft: #cffafe;

  --radius: 18px;
  --radius-sm: 12px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,.05);
  --shadow: 0 4px 14px rgba(15,23,42,.06);
  --shadow-lg: 0 10px 30px rgba(99,102,241,.18);

  --grad-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
  --grad-pink: linear-gradient(135deg, #ec4899 0%, #f43f5e 100%);
  --grad-green: linear-gradient(135deg, #10b981 0%, #14b8a6 100%);
  --grad-amber: linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);
}

* { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  -webkit-tap-highlight-color: transparent;
}

a { color: var(--primary-ink); text-decoration: none; }
button { font-family: inherit; }

/* === Topbar === */
.topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 18px;
  background: rgba(255,255,255,.85);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.brand { display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 700; font-size: 1.05rem; }
.brand-emoji { font-size: 1.4rem; }
.logout { width: 36px; height: 36px; border-radius: 50%; background: var(--line-soft); display: flex; align-items: center; justify-content: center; color: var(--ink-soft); font-size: 1.1rem; }

/* === Container === */
.container {
  max-width: 720px;
  margin: 0 auto;
  padding: 18px 16px 110px;
}

.page-header { margin-bottom: 18px; }
.page-header h1 { font-size: 1.7rem; margin: 0 0 4px; letter-spacing: -.02em; }
.muted { color: var(--ink-muted); margin: 0; font-size: .92rem; }

/* === Cards === */
.card {
  background: var(--bg-elev);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--line);
}
.card + .card { margin-top: 14px; }
.card-title { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-muted); margin: 0 0 12px; }

/* === Hero KPI cards === */
.kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.kpi {
  position: relative;
  border-radius: var(--radius);
  padding: 16px;
  color: white;
  overflow: hidden;
  min-height: 110px;
  display: flex; flex-direction: column; justify-content: space-between;
  box-shadow: var(--shadow);
}
.kpi.kpi-revenus { background: var(--grad-green); }
.kpi.kpi-depenses { background: var(--grad-amber); }
.kpi.kpi-epargne { background: var(--grad-primary); }
.kpi.kpi-reste { background: var(--grad-pink); }
.kpi.kpi-virements { background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 100%); }
.kpi.kpi-solde { background: linear-gradient(135deg, #475569 0%, #0f172a 100%); }
.kpi-label { font-size: .78rem; opacity: .92; text-transform: uppercase; letter-spacing: .05em; }
.kpi-value { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; margin-top: 6px; }
.kpi-sub { font-size: .75rem; opacity: .85; margin-top: 4px; }

.kpi-full { grid-column: 1 / -1; }

/* === Buttons === */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 12px 18px;
  border-radius: 12px;
  border: none;
  background: var(--primary);
  color: white;
  font-weight: 600;
  font-size: .95rem;
  cursor: pointer;
  transition: transform .06s, box-shadow .15s;
  box-shadow: var(--shadow-sm);
}
.btn:active { transform: scale(.97); }
.btn-block { width: 100%; }
.btn-ghost { background: var(--line-soft); color: var(--ink); }
.btn-danger { background: var(--red); }
.btn-success { background: var(--green); }
.btn-lg { padding: 16px 22px; font-size: 1.05rem; border-radius: 14px; }

/* === Forms === */
.field { margin-bottom: 14px; }
.field label { display: block; font-size: .85rem; font-weight: 600; color: var(--ink-soft); margin-bottom: 6px; }
.field input,
.field select,
.field textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg-elev);
  font-size: 1rem;
  color: var(--ink);
  font-family: inherit;
  transition: border-color .15s, box-shadow .15s;
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-soft);
}
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Segment control (radios stylés) */
.segments { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--line-soft); border-radius: 12px; padding: 4px; gap: 4px; }
.segments input { display: none; }
.segments label {
  text-align: center; padding: 9px 6px; font-size: .85rem; font-weight: 600;
  border-radius: 9px; cursor: pointer; color: var(--ink-soft);
  transition: all .15s;
}
.segments input:checked + label { background: white; color: var(--ink); box-shadow: var(--shadow-sm); }

/* === List items / transactions === */
.tx-list { display: flex; flex-direction: column; gap: 8px; }
.tx {
  display: flex; align-items: center; gap: 12px;
  padding: 12px;
  background: var(--bg-elev);
  border-radius: 14px;
  border: 1px solid var(--line);
  text-decoration: none; color: inherit;
}
.tx-ico {
  width: 42px; height: 42px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem;
  background: var(--primary-soft);
  flex-shrink: 0;
}
.tx-body { flex: 1; min-width: 0; }
.tx-libelle { font-weight: 600; font-size: .98rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tx-meta { font-size: .8rem; color: var(--ink-muted); margin-top: 2px; }
.tx-amount { font-weight: 700; font-size: 1rem; flex-shrink: 0; }
.tx-amount.depense { color: var(--red); }
.tx-amount.revenu { color: var(--green); }
.tx-amount.epargne { color: var(--primary); }

.tx-day-header {
  font-size: .75rem; font-weight: 700; color: var(--ink-muted);
  text-transform: uppercase; letter-spacing: .06em;
  margin: 18px 6px 8px;
}

/* Tags */
.tag { display: inline-block; font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--line-soft); color: var(--ink-soft); }
.tag-marine { background: var(--pink-soft); color: #be185d; }
.tag-julien { background: var(--blue-soft); color: #1d4ed8; }
.tag-commun { background: var(--green-soft); color: #047857; }

/* === Bars / progress === */
.bar-stack { display: flex; flex-direction: column; gap: 10px; }
.bar-row .bar-label { display: flex; justify-content: space-between; font-size: .85rem; margin-bottom: 4px; }
.bar-row .bar-label .l { color: var(--ink-soft); font-weight: 500; }
.bar-row .bar-label .v { font-weight: 700; color: var(--ink); }
.bar { height: 10px; background: var(--line-soft); border-radius: 999px; overflow: hidden; }
.bar > span { display: block; height: 100%; border-radius: 999px; background: var(--grad-primary); transition: width .4s ease; }

.bar.cat-logement > span { background: var(--amber); }
.bar.cat-vie > span { background: var(--red); }
.bar.cat-abo > span { background: var(--violet); }
.bar.cat-loisirs > span { background: var(--pink); }
.bar.cat-sante > span { background: var(--teal); }
.bar.cat-transport > span { background: var(--blue); }
.bar.cat-autres > span { background: #64748b; }
.bar.cat-epargne > span { background: var(--green); }

/* === Bottom nav === */
.bottom-nav {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 40;
  display: grid; grid-template-columns: repeat(5, 1fr);
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  border-top: 1px solid var(--line);
  padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
}
.bottom-nav a {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 7px 4px;
  font-size: .68rem; font-weight: 600; color: var(--ink-muted);
  border-radius: 10px;
}
.bottom-nav a .ico { font-size: 1.25rem; line-height: 1; }
.bottom-nav a.active { color: var(--primary-ink); }
.bottom-nav a.active .ico { transform: translateY(-1px); }

.add-fab {
  background: var(--grad-primary);
  color: white !important;
  border-radius: 50% !important;
  width: 56px; height: 56px;
  margin: -22px auto 0;
  align-self: center; justify-self: center;
  box-shadow: var(--shadow-lg);
}
.add-fab .ico { font-size: 1.7rem !important; font-weight: 300; }
.add-fab.active { transform: scale(1.05); }

/* === Login === */
.login-wrap {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  background: var(--grad-primary);
}
.login-card {
  width: 100%; max-width: 380px;
  background: white; border-radius: 24px;
  padding: 30px 24px;
  box-shadow: var(--shadow-lg);
}
.login-emoji { font-size: 3rem; text-align: center; margin-bottom: 6px; }
.login-card h1 { text-align: center; margin: 0 0 4px; font-size: 1.6rem; }
.login-card .muted { text-align: center; margin-bottom: 22px; }

/* === Filters === */
.filters { display: flex; gap: 8px; overflow-x: auto; padding: 4px 0 12px; -webkit-overflow-scrolling: touch; }
.filters::-webkit-scrollbar { display: none; }
.chip {
  padding: 8px 14px; border-radius: 999px;
  background: var(--bg-elev); border: 1px solid var(--line);
  font-size: .85rem; font-weight: 600; color: var(--ink-soft);
  white-space: nowrap; cursor: pointer;
}
.chip.active { background: var(--ink); color: white; border-color: var(--ink); }

/* === Alerts === */
.alert { padding: 12px 14px; border-radius: 12px; font-size: .9rem; margin-bottom: 14px; }
.alert-error { background: var(--red-soft); color: #991b1b; }
.alert-success { background: var(--green-soft); color: #065f46; }
.alert-info { background: var(--primary-soft); color: var(--primary-ink); }

/* === Empty state === */
.empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--ink-muted);
}
.empty .em { font-size: 3rem; }
.empty p { margin: 8px 0 16px; }

/* === Donut SVG === */
.donut-wrap { display: flex; align-items: center; gap: 18px; }
.donut-wrap svg { width: 130px; height: 130px; flex-shrink: 0; }
.donut-legend { flex: 1; display: flex; flex-direction: column; gap: 6px; font-size: .82rem; }
.donut-legend .lg { display: flex; align-items: center; gap: 6px; }
.donut-legend .dot { width: 10px; height: 10px; border-radius: 3px; }

/* === Table responsive === */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 -16px; padding: 0 16px; }
table.simple { width: 100%; border-collapse: collapse; font-size: .9rem; }
table.simple th, table.simple td { padding: 10px 8px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
table.simple th { font-size: .75rem; text-transform: uppercase; color: var(--ink-muted); font-weight: 700; letter-spacing: .04em; }
table.simple tr:last-child td { border-bottom: none; }
table.simple .num { text-align: right; font-variant-numeric: tabular-nums; }

/* === Switch === */
.switch { position: relative; display: inline-block; width: 44px; height: 26px; }
.switch input { opacity: 0; width: 0; height: 0; }
.slider { position: absolute; cursor: pointer; inset: 0; background: var(--line); border-radius: 999px; transition: .2s; }
.slider:before { position: absolute; content: ""; height: 20px; width: 20px; left: 3px; top: 3px; background: white; border-radius: 50%; transition: .2s; box-shadow: var(--shadow-sm); }
.switch input:checked + .slider { background: var(--primary); }
.switch input:checked + .slider:before { transform: translateX(18px); }

/* === Section === */
.section-title { display: flex; justify-content: space-between; align-items: baseline; margin: 22px 0 10px; }
.section-title h2 { font-size: 1.05rem; margin: 0; }
.section-title .link { font-size: .85rem; color: var(--primary-ink); font-weight: 600; }

/* === Responsive: tablette/desktop === */
@media (min-width: 768px) {
  .kpis { grid-template-columns: repeat(4, 1fr); }
  .dashboard-kpis { grid-template-columns: repeat(3, 1fr); }
  .container { padding: 28px 24px 110px; }
  .page-header h1 { font-size: 2rem; }
}

/* ========== SaaS / commercialisation ========== */
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px}
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.brand-mark-lg{width:42px;height:42px;flex-basis:42px}
.top-actions,.public-actions{display:flex;align-items:center;gap:7px}.top-icon{width:36px;height:36px;border-radius:11px;background:var(--line-soft);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-weight:800}.top-icon.active{background:var(--primary-soft);color:var(--primary-ink)}
.btn-sm{padding:9px 12px;font-size:.82rem}.btn[disabled]{opacity:.45;cursor:not-allowed}.label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.label-row a{font-size:.8rem;font-weight:600}
.eyebrow{display:inline-block;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;color:var(--primary-ink);margin-bottom:8px}.form-help{font-size:.78rem;color:var(--ink-muted);margin:10px 0 0}.checkline{display:flex;align-items:flex-start;gap:9px;font-size:.84rem;line-height:1.4;margin:2px 0 16px}.checkline input{margin-top:3px}
.billing-banner{padding:9px 14px;background:var(--amber-soft);color:#92400e;text-align:center;font-size:.82rem;border-bottom:1px solid #fde68a}.billing-banner a{font-weight:700;color:#92400e;text-decoration:underline}
.app-legal{max-width:720px;margin:0 auto 94px;padding:0 16px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;font-size:.7rem;color:var(--ink-muted)}.app-legal a{color:var(--ink-muted)}

/* Auth */
.auth-page{min-height:100vh;background:#eef2ff}.auth-shell{min-height:calc(100vh - 52px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)}.auth-visual{background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.2),transparent 30%),var(--grad-primary);color:#fff;padding:48px;display:flex;flex-direction:column}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.05rem}.auth-copy{margin:auto 0;max-width:580px}.auth-copy .eyebrow{color:#ddd6fe}.auth-copy h1{font-size:clamp(2.2rem,5vw,4.5rem);line-height:.96;letter-spacing:-.05em;margin:0 0 20px}.auth-copy p{font-size:1.05rem;line-height:1.6;color:rgba(255,255,255,.84);max-width:560px}.auth-points{display:flex;flex-direction:column;gap:9px;margin-top:24px;font-weight:600;font-size:.9rem}.auth-panel{display:flex;align-items:center;justify-content:center;padding:28px}.auth-card{width:100%;max-width:430px;background:white;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 22px 60px rgba(15,23,42,.12)}.auth-card h2,.auth-card h1{margin:0 0 6px;font-size:1.7rem;letter-spacing:-.03em}.auth-card>.muted{margin-bottom:22px}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--ink-muted);font-size:.75rem;margin:16px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:var(--line);flex:1}.auth-legal,.auth-bottom{font-size:.76rem;line-height:1.5;color:var(--ink-muted);text-align:center;margin:16px 0 0}.auth-footer{min-height:52px;padding:14px;display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;background:#fff;border-top:1px solid var(--line);font-size:.75rem}.auth-footer a{color:var(--ink-soft)}

/* Public / legal */
.public-body{background:#f8fafc}.public-topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.public-container{max-width:980px;margin:0 auto;padding:38px 18px 70px}.public-narrow{max-width:620px;margin:0 auto}.auth-card.standalone{max-width:none}.legal-footer{border-top:1px solid var(--line);background:#fff;padding:22px 16px;display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:.78rem}.legal-footer a{color:var(--ink-soft)}.legal-doc{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(22px,5vw,46px);box-shadow:var(--shadow-sm)}.legal-doc h1{font-size:2rem;letter-spacing:-.035em;margin:0 0 22px}.legal-doc h2{font-size:1.05rem;margin:28px 0 8px}.legal-doc p{line-height:1.7;color:var(--ink-soft)}.legal-warning{background:var(--amber-soft);color:#92400e;border:1px solid #fde68a;border-radius:12px;padding:12px 14px;font-size:.84rem;line-height:1.5}.legal-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.legal-summary>div{background:var(--line-soft);border-radius:12px;padding:12px}.legal-summary span{display:block;color:var(--ink-muted);font-size:.72rem;margin-bottom:4px}

/* Subscription / admin / credit */
.subscription-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.subscription-card h2{margin:0}.price-line{font-size:1.5rem;font-weight:800;margin:6px 0 0}.status-pill{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:.75rem;font-weight:800;background:var(--line-soft);color:var(--ink-soft)}.status-active,.status-trialing,.status-legacy{background:var(--green-soft);color:#047857}.status-past_due,.status-unpaid{background:var(--amber-soft);color:#92400e}.status-canceled{background:var(--red-soft);color:#991b1b}
.credit-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:12px;margin-bottom:14px}.credit-summary{background:var(--grad-primary);color:#fff;border-radius:var(--radius);padding:18px}.credit-summary .muted{color:rgba(255,255,255,.8)}.credit-total{font-size:1.85rem;font-weight:800;margin:8px 0}.credit-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.credit-metric{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px}.credit-metric span{display:block;color:var(--ink-muted);font-size:.72rem;margin-bottom:4px}.credit-metric strong{font-size:.95rem}.credit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.credit-grid>div{background:var(--line-soft);padding:10px;border-radius:11px}.credit-grid span{display:block;font-size:.72rem;color:var(--ink-muted);margin-bottom:3px}
.admin-shell{max-width:1180px;margin:0 auto;padding:24px}.admin-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.admin-nav a{padding:9px 12px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:.82rem;font-weight:700}.admin-nav a.active{background:var(--ink);color:#fff}.admin-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.admin-kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.admin-kpi span{font-size:.75rem;color:var(--ink-muted)}.admin-kpi strong{display:block;font-size:1.55rem;margin-top:5px}.admin-table{width:100%;border-collapse:collapse;font-size:.82rem}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.admin-table th{text-align:left;color:var(--ink-muted);font-size:.72rem;text-transform:uppercase}.admin-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin-top:14px}.code-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;word-break:break-all}

@media (max-width: 820px){.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:300px;padding:26px}.auth-copy{margin:44px 0 8px}.auth-copy h1{font-size:2.35rem}.auth-panel{padding:18px}.auth-card{padding:24px}.admin-kpis{grid-template-columns:1fr 1fr}.credit-hero{grid-template-columns:1fr}.credit-metrics{grid-template-columns:1fr}.credit-grid{grid-template-columns:1fr 1fr}}
@media (max-width: 520px){.auth-visual{min-height:250px}.auth-copy p,.auth-points{display:none}.auth-copy h1{font-size:2rem;margin-bottom:0}.field-row{grid-template-columns:1fr}.public-container{padding-top:22px}.legal-summary{grid-template-columns:1fr}.admin-kpis{grid-template-columns:1fr 1fr}.subscription-card{align-items:flex-start;flex-direction:column}.credit-grid{grid-template-columns:1fr}.app-legal{display:none}}

.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.system-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.system-check{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px}.status-dot{width:10px;height:10px;border-radius:50%;margin-top:5px;background:var(--red)}.status-dot.ok{background:var(--green)}

/* ========== Comptabilité admin ========== */
.accounting-settings-grid,.accounting-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.accounting-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.field-wide{grid-column:1/-1}.readonly-field{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--line-soft);font-weight:750;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.accounting-actions{display:flex;align-items:center;gap:8px}.accounting-actions select{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.btn-sm{padding:8px 11px;font-size:.82rem}.form-help{margin:8px 0 0}.quarter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.quarter-grid>div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--line-soft)}.quarter-grid span{display:block;font-size:.75rem;color:var(--ink-muted);font-weight:700;text-transform:uppercase}.quarter-grid strong{display:block;margin-top:4px;font-size:1.05rem}.integrity-badge{font-size:.76rem;font-weight:750;padding:5px 9px;border-radius:999px;background:var(--green-soft);color:#065f46}.integrity-badge.bad{background:var(--red-soft);color:#991b1b}.warning-text{color:#b45309;font-size:.75rem;font-weight:650;margin-top:2px}.accounting-credit td{background:rgba(239,68,68,.035)}.legal-accounting-note p{line-height:1.55}.accounting-summary tfoot th{padding:12px 10px;border-top:2px solid var(--line);font-weight:800}.admin-kpi small{display:block;margin-top:4px;color:var(--ink-muted);font-size:.72rem;font-weight:500}
@media(max-width:900px){.accounting-settings-grid{grid-template-columns:1fr 1fr}.accounting-entry-grid{grid-template-columns:1fr 1fr}.quarter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.accounting-settings-grid,.accounting-entry-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.quarter-grid{grid-template-columns:1fr 1fr}.accounting-actions{flex-wrap:wrap}}

/* === V2.4 État financier compact et cliquable === */
.tx-pointable {
  padding: 12px; gap: 12px; cursor: pointer;
  transition: opacity .15s, border-color .15s, background .15s, transform .12s;
  -webkit-tap-highlight-color: transparent;
}
.tx-pointable:active { transform: scale(.995); }
.tx-pointable:focus-visible { outline: 3px solid var(--primary-soft); outline-offset: 2px; }
.tx-pointable.is-pointed { background: var(--line-soft); }
.tx-pointable.pointing-pending { opacity: .72; }
.tx-state-action {
  display: inline-flex; align-items: center; gap: 4px; vertical-align: baseline;
  margin: 0 0 0 2px; padding: 2px 7px; border: 0; border-radius: 999px;
  font: inherit; font-size: .68rem; line-height: 1.35; font-weight: 800;
  cursor: pointer; white-space: nowrap; -webkit-tap-highlight-color: transparent;
  transition: transform .12s, opacity .12s, box-shadow .12s;
}
.tx-state-action:active:not(:disabled) { transform: scale(.95); }
.tx-state-action:focus-visible { outline: 3px solid var(--primary-soft); outline-offset: 2px; }
.tx-state-action.planned { background: var(--amber-soft); color: #92400e; }
.tx-state-action.realized { background: #e0f2fe; color: #075985; }
.tx-state-action.pointed { background: var(--green-soft); color: #047857; }
.tx-state-action:disabled { cursor: default; opacity: .72; }
.tx-amount.planned-amount { color: var(--ink-muted); }
.tx-amount.planned-amount small { display:block; font-size:.62rem; text-transform:uppercase; letter-spacing:.04em; }
@media (max-width: 420px) {
  .tx-pointable { gap: 8px; padding: 10px; }
  .tx-pointable .tx-ico { width: 40px; height: 40px; }
  .tx-meta { line-height: 1.45; }
  .tx-state-action { padding: 2px 6px; }
}

/* === V2.3 Cohérence financière === */
.bank-balance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}.bank-balance-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;color:inherit;text-decoration:none;box-shadow:var(--shadow-sm)}.bank-balance-card.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.bank-balance-card.static{cursor:default}.bank-dot{width:13px;height:13px;border-radius:50%;display:inline-block;flex:0 0 13px}.bank-balance-card strong,.bank-settings-row strong{display:block}.bank-balance-card small,.bank-settings-row small{display:block;color:var(--ink-muted);font-size:.72rem;margin-top:2px}.bank-balance-values{text-align:right}.bank-balance-values>strong{font-size:1rem}.movement-state-summary{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.movement-state-summary span{background:var(--line-soft);border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:.75rem;color:var(--ink-soft)}.tx-amount.planned-amount{color:var(--ink-muted)}.tx-amount.planned-amount small{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}.bank-inline{font-weight:650}.recurrence-card{background:var(--line-soft);border:1px dashed var(--line);margin:0 -4px 14px;padding:14px}.bank-settings-row{border-bottom:1px solid var(--line-soft);padding:3px 0}.bank-settings-row>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 2px;cursor:pointer;list-style:none}.bank-settings-row>summary::-webkit-details-marker{display:none}.bank-settings-balance{text-align:right;font-weight:800}.bank-edit-form{padding:10px 0 14px}.setting-line{display:flex;align-items:center;gap:9px;padding:7px 0;border-bottom:1px solid var(--line-soft)}.setting-line form{margin:0}.custom-share-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.input-suffix{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.input-suffix input{border:0!important;border-radius:0!important}.input-suffix span{padding:0 12px;color:var(--ink-muted);font-weight:700}.repartition-filter{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.repartition-filter .field{margin:0}.repartition-filter .segments{grid-column:1/-1;grid-template-columns:repeat(2,1fr)}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.dashboard-bank-grid{margin-top:-4px}
@media(max-width:700px){.bank-balance-grid{grid-template-columns:1fr}.custom-share-grid{grid-template-columns:1fr}.bank-balance-card{grid-template-columns:auto minmax(0,1fr)}.bank-balance-values{grid-column:2;text-align:left}.bank-settings-row>summary{grid-template-columns:auto minmax(0,1fr)}.bank-settings-balance{grid-column:2;text-align:left}}

/* === V2.6 Catégories, crédits liés et automatisation === */
.category-settings-row{border-bottom:1px solid var(--line-soft);padding:3px 0}.category-settings-row>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 2px;cursor:pointer;list-style:none}.category-settings-row>summary::-webkit-details-marker{display:none}.category-settings-row[data-archived="1"]{opacity:.62}.category-preview{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.15rem}.category-settings-row small{display:block;color:var(--ink-muted);font-size:.72rem;margin-top:2px}
.credit-auto-box{background:var(--line-soft);border:1px dashed var(--line);border-radius:14px;padding:14px;margin:0 0 14px}.credit-auto-box .checkline{margin-bottom:10px}.credit-auto-box small{color:var(--ink-muted);font-weight:500}.credit-auto-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-size:.7rem;font-weight:800}.credit-link-line{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;padding-top:11px;border-top:1px solid var(--line-soft);font-size:.75rem;color:var(--ink-muted)}.credit-link-line a{font-weight:750;color:var(--primary-ink);white-space:nowrap}.credit-inline{font-weight:700;color:var(--primary-ink)}
.alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}
@media(max-width:560px){.category-settings-row>summary{grid-template-columns:auto minmax(0,1fr)}.category-settings-row>summary>.tag{grid-column:2;justify-self:start}.credit-link-line{align-items:flex-start;flex-direction:column;gap:6px}}

/* V2.7 — exploitation & conformité */
.check-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fafafa}.check-row input{margin-top:3px;flex:0 0 auto}.check-row span{display:flex;flex-direction:column;gap:2px}.check-row small{color:var(--ink-muted);line-height:1.35}.danger-card{border-color:rgba(220,38,38,.28);background:rgba(254,242,242,.45)}


/* === V2.8 Finition & contrôle qualité === */
:focus-visible{outline:3px solid rgba(99,102,241,.35);outline-offset:2px}
.skip-link{position:fixed;left:12px;top:8px;z-index:9999;padding:10px 14px;border-radius:10px;background:#0f172a;color:#fff;font-weight:750;transform:translateY(-160%);transition:transform .15s}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.segments input{display:block;position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.segments input:focus-visible+label{outline:3px solid rgba(99,102,241,.35);outline-offset:2px}
.filter-actions{display:flex;gap:8px;margin-top:14px}.filter-actions .btn{flex:1}
.top-icon,.bottom-nav a,.btn,.tx-state-action{min-height:44px}
.top-icon{min-width:44px}
#chart-annee{width:100%;height:100%;display:block}
.chart-fallback{font-size:.8rem;color:var(--ink-muted);text-align:center}
@media (hover:hover){.tx-pointable:hover,.bank-balance-card:not(.static):hover{border-color:#c7d2fe;background:#fafaff}.btn:hover{filter:brightness(.98)}}
@media (max-width:520px){
  .container{padding-left:12px;padding-right:12px}
  .topbar{padding:10px 12px}.brand-name{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .top-actions{gap:4px}.top-icon{width:44px;height:44px}
  .page-header h1{font-size:1.55rem}
  .kpi{min-height:104px;padding:14px}.kpi-value{font-size:1.28rem}
  .tx{align-items:flex-start}.tx-amount{max-width:34%;text-align:right;overflow-wrap:anywhere}.tx-meta{padding-right:2px}
  .filter-actions{flex-direction:column}
  .bottom-nav a{min-height:48px;justify-content:center}.add-fab{min-height:56px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* === V2.8.6 — édition native des mouvements, indépendante du JavaScript === */
.tx-pointable{position:relative;cursor:pointer}
.tx-edit-hitarea{position:absolute;inset:0;z-index:1;border-radius:inherit;text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent}
.tx-edit-hitarea:focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}
.tx-pointable>.tx-ico,.tx-pointable>.tx-body,.tx-pointable>.tx-amount{position:relative;z-index:2;pointer-events:none}
.tx-pointable .tx-state-action{position:relative;z-index:3;pointer-events:auto}
@media(hover:hover){.tx-pointable:has(.tx-edit-hitarea:hover){border-color:#c7d2fe;background:#fafaff}}


/* === V2.8.8 — validations Budget & retour précis dans Mouvements === */
.tx[id^="tx-"]{scroll-margin-top:88px}
.tx[id^="tx-"]:target{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft),var(--shadow-sm)}
.budget-dialog-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(15,23,42,.36);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);opacity:0;transition:opacity .12s ease}
.budget-dialog-overlay[hidden]{display:none}
.budget-dialog-overlay.is-open{opacity:1}
.budget-dialog{width:min(100%,420px);background:var(--bg-elev);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 24px 70px rgba(15,23,42,.22);transform:translateY(8px) scale(.985);transition:transform .12s ease;text-align:center}
.budget-dialog-overlay.is-open .budget-dialog{transform:translateY(0) scale(1)}
.budget-dialog-icon{width:48px;height:48px;margin:0 auto 12px;border-radius:15px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary-ink);font-size:1.25rem;font-weight:900}
.budget-dialog h2{margin:0 0 8px;font-size:1.2rem;letter-spacing:-.015em}
.budget-dialog p{margin:0;color:var(--ink-soft);line-height:1.5}
.budget-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}
.budget-dialog-actions .btn:only-child,.budget-dialog-actions .btn[hidden]+.btn{grid-column:1/-1}
@media(max-width:420px){.budget-dialog-overlay{align-items:end;padding:12px}.budget-dialog{border-radius:22px 22px 18px 18px;padding:20px}.budget-dialog-actions{grid-template-columns:1fr}}

/* === V2.8.9 — accordéons, abonnement Premium et mots de passe === */
.app-accordion,.settings-group{overflow:hidden}
.app-accordion>summary,.settings-group>summary{list-style:none}
.app-accordion>summary::-webkit-details-marker,.settings-group>summary::-webkit-details-marker{display:none}
.app-accordion-summary,.settings-group-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.app-accordion-summary{padding:2px 0}
.app-accordion-summary>span:first-child{display:flex;flex-direction:column;gap:3px}
.app-accordion-summary strong{font-size:1rem}.app-accordion-summary small{font-size:.74rem;color:var(--ink-muted);font-weight:500}
.app-accordion-body{padding-top:18px;margin-top:14px;border-top:1px solid var(--line-soft)}
.accordion-chevron{font-size:1.1rem;color:var(--ink-muted);transition:transform .16s ease}
details[open]>.app-accordion-summary .accordion-chevron,details[open]>.settings-group-summary .accordion-chevron{transform:rotate(180deg)}

.settings-group{margin:0 0 12px;border:1px solid var(--line);border-radius:18px;background:var(--bg-elev);box-shadow:var(--shadow-sm)}
.settings-group-summary{grid-template-columns:auto minmax(0,1fr) auto;padding:15px 16px}
.settings-group-summary>span:nth-child(2){display:flex;flex-direction:column;gap:2px}
.settings-group-summary strong{font-size:.98rem}.settings-group-summary small{color:var(--ink-muted);font-size:.72rem;font-weight:500}
.settings-group-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--primary-soft);font-size:1.05rem}
.settings-group-body{padding:0 12px 12px;border-top:1px solid var(--line-soft)}
.settings-group-body>.card{box-shadow:none;border-color:var(--line-soft);margin-top:12px;margin-bottom:0}

.password-field{position:relative;width:100%}.password-field>input{width:100%;padding-right:50px!important}
.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:10px;background:transparent;display:grid;place-items:center;cursor:pointer;font-size:1rem;opacity:.58;transition:background .12s ease,opacity .12s ease}
.password-toggle:hover,.password-toggle:focus-visible,.password-toggle.is-visible{background:var(--line-soft);opacity:1}.password-toggle:focus-visible{outline:3px solid rgba(99,102,241,.28);outline-offset:1px}

.subscription-shell{display:grid;gap:14px;padding-bottom:10px}
.subscription-hero{position:relative;overflow:hidden;border-radius:28px;padding:30px 24px;background:linear-gradient(145deg,#111b3d 0%,#273078 52%,#4f46e5 100%);color:#fff;box-shadow:0 22px 55px rgba(30,41,59,.18)}
.subscription-glow{position:absolute;border-radius:999px;filter:blur(2px);opacity:.28;pointer-events:none}.subscription-glow-a{width:240px;height:240px;right:-100px;top:-100px;background:#5eead4}.subscription-glow-b{width:190px;height:190px;left:-95px;bottom:-100px;background:#fbbf24}
.subscription-hero-content{position:relative;z-index:1;max-width:720px;margin:auto;text-align:center}
.subscription-kicker{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.1);font-size:.78rem;font-weight:800;letter-spacing:.02em}.subscription-spark{color:#fde68a}
.subscription-hero h1{font-size:clamp(2rem,7vw,3.3rem);line-height:1.02;letter-spacing:-.045em;margin:18px 0 12px}.subscription-hero>*,.subscription-hero p{color:inherit}.subscription-hero-content>p{max-width:590px;margin-left:auto;margin-right:auto;opacity:.86;line-height:1.55}
.subscription-price{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:22px 0 7px}.subscription-price strong{font-size:1.65rem;letter-spacing:-.025em}.subscription-price span{font-size:.78rem;opacity:.68}
.trial-badge{display:inline-flex;margin-top:2px;padding:8px 13px;border-radius:999px;background:#fff;color:#312e81;font-size:.8rem;font-weight:900;box-shadow:0 8px 24px rgba(0,0,0,.12)}.trial-copy{font-size:.76rem!important;opacity:.72!important;margin-top:10px!important}
.subscription-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:24px auto 0;text-align:left}
.subscription-feature-grid>div{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:9px;row-gap:2px;padding:13px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.075);border-radius:15px}.subscription-feature-grid>div>span{grid-row:1/3;color:#a7f3d0;font-weight:900}.subscription-feature-grid strong{font-size:.83rem}.subscription-feature-grid small{font-size:.7rem;line-height:1.4;opacity:.7}
.subscription-cta-form{margin:22px auto 0;max-width:430px}.subscription-cta{width:100%;min-height:54px;border:0;background:#fff!important;color:#312e81!important;font-size:.95rem;box-shadow:0 12px 28px rgba(0,0,0,.16)}.subscription-cta:disabled{opacity:.5}
.subscription-trust{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:.69rem;opacity:.65}
.subscription-account-card{margin:0}.subscription-account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.subscription-account-head h2{margin:3px 0 0}.subscription-status-copy{margin:13px 0;color:var(--ink-soft)}.subscription-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.subscription-actions form{margin:0}.subscription-mini-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;font-size:.76rem}.subscription-mini-links a{color:var(--ink-muted);font-weight:650}
@media(max-width:560px){.settings-group-summary{padding:13px}.settings-group-icon{width:38px;height:38px}.settings-group-body{padding:0 9px 9px}.subscription-hero{border-radius:22px;padding:25px 15px}.subscription-feature-grid{grid-template-columns:1fr}.subscription-actions{grid-template-columns:1fr}.subscription-price{flex-direction:column;align-items:center;gap:2px}.subscription-trust{gap:8px}.subscription-account-head{align-items:flex-start}}
.subscription-safe-nav{grid-template-columns:repeat(3,1fr)}

/* === V2.8.11 — vitrine publique === */
.landing-shell{display:grid;gap:18px}
.landing-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:18px;align-items:center}
.landing-hero-copy,.landing-hero-visual,.landing-highlight-card,.landing-steps-grid article,.landing-price-card,.landing-faq-card,.landing-bottom-cta{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.landing-hero-copy{border-radius:30px;padding:clamp(24px,5vw,44px);background:linear-gradient(145deg,#fff 0%,#f7f9ff 100%)}
.landing-kicker{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-size:.78rem;font-weight:800}
.landing-kicker span{color:#f59e0b}
.landing-hero-copy h1{font-size:clamp(2.2rem,6vw,4.3rem);line-height:.96;letter-spacing:-.05em;margin:18px 0 14px}
.landing-hero-copy h1 em{font-style:normal;color:var(--primary)}
.landing-lead{font-size:1.02rem;line-height:1.68;color:var(--ink-soft);max-width:640px}
.landing-cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.landing-cta-primary{min-width:220px;justify-content:center;box-shadow:0 12px 26px rgba(79,70,229,.18)}
.landing-cta-secondary{min-width:180px;justify-content:center}
.landing-trust-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px;font-size:.82rem;color:var(--ink-muted);font-weight:700}
.landing-hero-visual{position:relative;min-height:460px;border-radius:30px;padding:18px;background:radial-gradient(circle at top left,rgba(94,234,212,.35),transparent 34%),linear-gradient(160deg,#111b3d 0%,#28357f 55%,#4f46e5 100%);overflow:hidden}
.landing-phone-card{position:absolute;border-radius:26px;padding:16px;background:rgba(255,255,255,.98);backdrop-filter:blur(6px);box-shadow:0 24px 55px rgba(15,23,42,.22)}
.landing-phone-main{inset:26px 90px 26px 26px;display:grid;gap:14px}
.landing-phone-side{right:18px;bottom:24px;width:220px;padding:15px}
.landing-phone-top,.landing-side-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.landing-mini-badge{padding:6px 9px;border-radius:999px;background:var(--line-soft);font-size:.72rem;font-weight:800;color:var(--ink-soft)}
.landing-balance-block{padding:18px;border-radius:20px;background:linear-gradient(145deg,#161f4a 0%,#4338ca 100%);color:#fff}
.landing-balance-block small,.landing-balance-block span{display:block;opacity:.76}.landing-balance-block strong{display:block;font-size:2rem;line-height:1.05;margin:6px 0 8px;letter-spacing:-.04em}
.landing-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.landing-kpi-grid>div{padding:13px;border-radius:16px;background:#f8fafc;border:1px solid var(--line)}.landing-kpi-grid small{display:block;font-size:.72rem;color:var(--ink-muted);margin-bottom:4px}.landing-kpi-grid strong{font-size:1.05rem}
.landing-chart-card{padding:14px;border-radius:18px;border:1px solid var(--line);background:#fff}.landing-chart-card p{margin:10px 0 0;font-size:.78rem;color:var(--ink-muted);font-weight:700}.landing-chart-bars{height:118px;display:flex;align-items:flex-end;gap:10px}.landing-chart-bars span{flex:1;border-radius:12px 12px 4px 4px;background:linear-gradient(180deg,#5eead4 0%,#4f46e5 100%)}
.landing-distribution-list{display:grid;gap:9px;margin-top:12px}.landing-distribution-list>div{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:14px;background:#f8fafc;border:1px solid var(--line)}.landing-distribution-list span{color:var(--ink-soft);font-size:.82rem}.landing-distribution-list strong{font-size:.86rem}
.landing-highlight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.landing-highlight-card{border-radius:24px;padding:20px}.landing-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--primary-soft);font-size:1.15rem;margin-bottom:14px}.landing-highlight-card h2{font-size:1.02rem;margin:0 0 8px}.landing-highlight-card p{margin:0;color:var(--ink-soft);line-height:1.6;font-size:.9rem}
.landing-section{display:grid;gap:18px}.landing-section-head h2{font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.04em;margin:0 0 10px}.landing-section-head p{margin:0;max-width:760px;color:var(--ink-soft);line-height:1.65}
.landing-steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.landing-steps-grid article{border-radius:24px;padding:22px}.landing-steps-grid span{display:inline-block;font-size:.82rem;font-weight:900;color:var(--primary-ink);background:var(--primary-soft);padding:7px 10px;border-radius:999px}.landing-steps-grid h3{margin:16px 0 8px;font-size:1.02rem}.landing-steps-grid p{margin:0;color:var(--ink-soft);line-height:1.6;font-size:.9rem}
.landing-pricing-wrap{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);align-items:start}.landing-pricing-wrap{display:grid;gap:12px}
.landing-price-card,.landing-faq-card{border-radius:28px;padding:24px}.landing-price-card h2{font-size:2.45rem;letter-spacing:-.05em;margin:4px 0 10px}.landing-price-sub{margin:0;color:var(--ink-soft);line-height:1.6}.landing-check-list{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:11px}.landing-check-list li{position:relative;padding-left:28px;line-height:1.5;color:var(--ink-soft)}.landing-check-list li:before{content:"✓";position:absolute;left:0;top:0;width:20px;height:20px;border-radius:999px;background:var(--green-soft);color:#047857;display:grid;place-items:center;font-size:.78rem;font-weight:900}.landing-price-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.landing-faq-list{display:grid;gap:10px}.landing-faq-list details{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}.landing-faq-list summary{cursor:pointer;font-weight:800;list-style:none}.landing-faq-list summary::-webkit-details-marker{display:none}.landing-faq-list p{margin:10px 0 0;color:var(--ink-soft);line-height:1.55}
.landing-bottom-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:30px;padding:24px;background:linear-gradient(145deg,#ffffff 0%,#f7faff 100%)}.landing-bottom-cta h2{margin:4px 0 8px;font-size:clamp(1.45rem,4vw,2.2rem);letter-spacing:-.04em}.landing-bottom-cta p{margin:0;color:var(--ink-soft);max-width:680px;line-height:1.6}

@media(max-width:980px){.landing-hero,.landing-pricing-wrap,.landing-highlight-grid,.landing-steps-grid{grid-template-columns:1fr 1fr}.landing-hero-visual{min-height:420px}.landing-phone-main{right:70px}.landing-bottom-cta{flex-direction:column;align-items:flex-start}}
@media(max-width:720px){.landing-hero,.landing-highlight-grid,.landing-steps-grid,.landing-pricing-wrap{grid-template-columns:1fr}.landing-hero-copy,.landing-hero-visual,.landing-price-card,.landing-faq-card,.landing-bottom-cta{border-radius:24px}.landing-hero-visual{min-height:500px}.landing-phone-main{inset:18px 18px 158px 18px}.landing-phone-side{left:18px;right:18px;bottom:18px;width:auto}.landing-cta-primary,.landing-cta-secondary{min-width:0;flex:1}.landing-trust-row{gap:8px;font-size:.78rem}}
@media(max-width:480px){.landing-hero-copy h1{font-size:2.15rem}.landing-hero-visual{min-height:540px;padding:14px}.landing-phone-main{inset:14px 14px 188px 14px;padding:14px}.landing-kpi-grid{grid-template-columns:1fr 1fr}.landing-chart-bars{gap:8px}.landing-bottom-cta{padding:20px}.landing-cta-row{flex-direction:column}}

/* === V2.8.13 — vitrine enrichie === */
.public-nav{display:flex;align-items:center;gap:16px;margin-left:auto;margin-right:14px;font-size:.82rem}
.public-nav a{color:var(--ink-soft);font-weight:700}
.public-nav a:hover{color:var(--primary-ink)}
.landing-screens-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.landing-screen-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:16px;box-shadow:var(--shadow-sm)}
.landing-screen-card h3{margin:14px 0 8px;font-size:1rem}.landing-screen-card p{margin:0;color:var(--ink-soft);line-height:1.6;font-size:.88rem}
.landing-screen-frame{border-radius:24px;padding:10px;background:linear-gradient(160deg,#111b3d 0%,#24347e 60%,#4338ca 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.landing-screen-topbar{display:flex;gap:6px;padding:4px 6px 10px}.landing-screen-topbar span{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.7)}
.landing-screen-body{border-radius:18px;background:#f8fafc;padding:14px;border:1px solid rgba(255,255,255,.24);min-height:280px}
.landing-shot-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.landing-shot-head strong{font-size:.92rem}.landing-shot-head small{font-size:.72rem;color:var(--ink-muted)}
.landing-shot-balance{padding:14px;border-radius:16px;background:linear-gradient(145deg,#161f4a 0%,#4338ca 100%);color:#fff}.landing-shot-balance small,.landing-shot-balance span{display:block;opacity:.76}.landing-shot-balance strong{display:block;margin:4px 0 6px;font-size:1.45rem;line-height:1.05;letter-spacing:-.04em}
.landing-shot-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.landing-shot-kpis div,.landing-shot-credit-grid div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px}.landing-shot-kpis small,.landing-shot-credit-grid small{display:block;font-size:.68rem;color:var(--ink-muted);margin-bottom:4px}.landing-shot-kpis strong,.landing-shot-credit-grid strong{font-size:.86rem}
.landing-shot-chart{height:92px;display:flex;align-items:flex-end;gap:8px;margin-top:12px;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line)}.landing-shot-chart span{flex:1;border-radius:10px 10px 3px 3px;background:linear-gradient(180deg,#60a5fa 0%,#4f46e5 100%)}
.landing-shot-filter-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.landing-shot-filter-row span{padding:5px 8px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.67rem;font-weight:800;color:var(--ink-soft)}
.landing-shot-list{display:grid;gap:8px}.landing-shot-list div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px}.landing-shot-list span{font-weight:700;font-size:.82rem}.landing-shot-list strong{font-size:.82rem}.landing-shot-list small{grid-column:1/-1;font-size:.68rem;color:var(--ink-muted)}
.landing-shot-credit-highlight{padding:14px;border-radius:16px;background:var(--primary-soft);color:var(--primary-ink);margin-bottom:10px}.landing-shot-credit-highlight small,.landing-shot-credit-highlight strong{display:block}.landing-shot-credit-highlight strong{font-size:1.5rem;letter-spacing:-.04em;margin-top:4px}
.landing-shot-credit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.landing-compare-wrap{display:grid;gap:14px}.landing-compare-table{display:grid;gap:8px}.landing-compare-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;align-items:stretch}.landing-compare-row>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow-sm)}.landing-compare-head>div{background:#111b3d;color:#fff;border-color:#111b3d;font-weight:800}.landing-compare-row small{display:block;color:var(--ink-muted);font-size:.72rem;line-height:1.45;margin-top:4px}
.compare-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:.72rem;font-weight:900}.compare-badge.good{background:var(--green-soft);color:#047857}.compare-badge.neutral{background:var(--line-soft);color:var(--ink-soft)}
.landing-bottom-premium{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:16px;align-items:center;border-radius:32px;padding:28px;background:linear-gradient(135deg,#0f172a 0%,#1e1b4b 52%,#4338ca 100%);color:#fff;box-shadow:0 30px 70px rgba(15,23,42,.24)}
.landing-eyebrow-light{color:#c7d2fe}.landing-bottom-premium h2{margin:6px 0 12px;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.08;letter-spacing:-.05em}.landing-bottom-premium p{margin:0;color:rgba(255,255,255,.82);line-height:1.7}.landing-premium-points{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;font-size:.82rem;font-weight:700;color:#e0e7ff}
.landing-bottom-premium-panel{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:26px;padding:20px;backdrop-filter:blur(6px)}
.landing-premium-price small,.landing-premium-price span,.landing-premium-price strong{display:block}.landing-premium-price small{font-size:.75rem;color:#c7d2fe;text-transform:uppercase;letter-spacing:.08em}.landing-premium-price strong{font-size:2rem;letter-spacing:-.04em;margin:8px 0}.landing-premium-price span{font-size:.82rem;color:rgba(255,255,255,.72)}
.landing-premium-actions{display:grid;gap:10px;margin-top:18px}.landing-premium-btn{width:100%;justify-content:center;background:#fff!important;color:#312e81!important;border:0;min-height:52px}.landing-premium-ghost{width:100%;justify-content:center;background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.22)!important}

@media(max-width:980px){.public-nav{display:none}.landing-screens-grid,.landing-compare-row,.landing-bottom-premium{grid-template-columns:1fr 1fr}.landing-compare-head{display:none}.landing-compare-row>div:first-child{background:#eef2ff;font-weight:800;color:var(--primary-ink);box-shadow:none}}
@media(max-width:720px){.landing-screens-grid,.landing-compare-row,.landing-bottom-premium{grid-template-columns:1fr}.landing-screen-body{min-height:0}.landing-compare-row{gap:8px}.landing-compare-row>div{border-radius:16px}.landing-premium-points{gap:8px}}

/* === V2.8.14 — familles de catégories === */
.operation-family-segments{grid-template-columns:repeat(3,minmax(0,1fr))}
.operation-family-segments label{min-height:46px;display:flex;align-items:center;justify-content:center;text-align:center;padding:9px 7px}
.category-family{margin-top:10px;border:1px solid var(--line);border-radius:16px;background:var(--line-soft);overflow:hidden}
.category-family>summary{list-style:none}.category-family>summary::-webkit-details-marker{display:none}
.category-family-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 14px;cursor:pointer}
.category-family-summary>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.category-family-summary small{font-size:.72rem;color:var(--ink-muted)}
.category-family-icon{width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:1.05rem;border:1px solid var(--line)}
.category-family-body{padding:0 12px 10px;background:#fff;border-top:1px solid var(--line)}
.category-family-empty{padding:12px 2px 2px;margin:0}
.category-add-box{border:1px dashed var(--line);border-radius:14px;padding:12px}
.category-family[open]>.category-family-summary .accordion-chevron{transform:rotate(180deg)}
@media(max-width:520px){.operation-family-segments label{font-size:.76rem;padding:8px 4px}.category-family-summary{padding:11px 10px}.category-family-body{padding:0 9px 8px}}

/* === V2.8.16 — multi-filtres Mouvements + validations Budget === */
.multi-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.multi-filter{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--bg-elev);min-width:0}
.multi-filter>summary{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:8px;padding:12px 13px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.multi-filter>summary::-webkit-details-marker{display:none}
.multi-filter>summary>span:first-child{font-size:.72rem;color:var(--ink-muted);font-weight:700;grid-column:1/-1;margin-bottom:3px}
.multi-filter>summary strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;color:var(--ink);font-weight:800}
.multi-filter>summary .accordion-chevron{grid-column:3;grid-row:2;color:var(--ink-muted);transition:transform .15s ease}
.multi-filter[open]>summary .accordion-chevron{transform:rotate(180deg)}
.multi-filter[open]{border-color:#c7d2fe;box-shadow:0 0 0 3px var(--primary-soft)}
.multi-filter-menu{max-height:280px;overflow:auto;padding:5px 8px 9px;border-top:1px solid var(--line-soft)}
.multi-filter-menu label{display:flex;align-items:center;gap:10px;min-height:42px;padding:8px;border-radius:10px;cursor:pointer;font-size:.84rem;color:var(--ink-soft)}
.multi-filter-menu label:hover{background:var(--line-soft)}
.multi-filter-menu input[type="checkbox"]{width:18px;height:18px;accent-color:var(--primary);flex:0 0 auto}
.multi-filter-menu label:has(input:checked){background:var(--primary-soft);color:var(--primary-ink);font-weight:750}
.multi-filter-group-title{position:sticky;top:0;z-index:1;margin:5px 0 3px;padding:7px 8px;background:var(--bg-elev);color:var(--ink-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;font-weight:900}
.movement-filter-card .field>label{font-weight:750}

.budget-input-invalid{border-color:var(--red)!important;box-shadow:0 0 0 3px var(--red-soft)!important}
.budget-field-error{margin-top:6px;color:#b91c1c;font-size:.76rem;font-weight:700;line-height:1.4}
.checkline .budget-field-error{flex-basis:100%;width:100%}

@media(min-width:860px){.multi-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.multi-filter-grid{grid-template-columns:1fr}.multi-filter-menu{max-height:240px}.multi-filter>summary{padding:12px}}

/* === V2.8.17 — valeurs de période toujours lisibles dans les multi-filtres === */
.multi-filter>summary strong{grid-column:1/3;grid-row:2;display:block;min-height:1.15em;line-height:1.25}
.multi-filter>summary .accordion-chevron{grid-column:3;grid-row:2}

/* === V2.8.18 — contrôles Budget, nombres FR et unités === */
.budget-native-select{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;overflow:hidden!important}
.budget-select{position:relative;width:100%}
.budget-select-trigger{width:100%;min-height:50px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg-elev);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}
.budget-select-trigger:focus-visible,.budget-select.is-open .budget-select-trigger{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.budget-select-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
.budget-select-trigger.is-placeholder .budget-select-value{color:var(--ink-muted)}
.budget-select-chevron{color:var(--ink-muted);font-weight:900;transition:transform .15s ease}.budget-select.is-open .budget-select-chevron{transform:rotate(180deg)}
.budget-select-menu{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:120;max-height:min(320px,50vh);overflow:auto;padding:7px;background:var(--bg-elev);border:1px solid var(--line);border-radius:15px;box-shadow:0 18px 46px rgba(15,23,42,.16)}
.budget-select-menu[hidden]{display:none}
.budget-select-option{width:100%;min-height:43px;padding:9px 11px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);font:inherit;text-align:left;cursor:pointer;display:flex;align-items:center}
.budget-select-option:hover,.budget-select-option:focus-visible{outline:none;background:var(--line-soft);color:var(--ink)}
.budget-select-option.is-selected{background:var(--primary-soft);color:var(--primary-ink);font-weight:800}
.budget-select-option.is-selected:after{content:'✓';margin-left:auto;font-weight:900}
.budget-select-group{padding:9px 10px 5px;color:var(--ink-muted);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.budget-input-unit{position:relative;width:100%}.budget-input-unit>input{width:100%;padding-right:54px!important}.budget-input-unit-suffix{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--ink-muted);font-size:.82rem;font-weight:800;pointer-events:none}
.budget-input-unit:focus-within .budget-input-unit-suffix{color:var(--primary-ink)}

/* Cases à cocher cohérentes avec l'application, sans rendu natif. */
input[type="checkbox"]:not(.segments input){appearance:none;-webkit-appearance:none;width:20px!important;height:20px!important;min-width:20px;border:1.5px solid #cbd5e1;border-radius:6px;background:#fff;display:inline-grid;place-items:center;cursor:pointer;transition:.12s ease;margin:0}
input[type="checkbox"]:not(.segments input):checked{background:var(--primary);border-color:var(--primary)}
input[type="checkbox"]:not(.segments input):checked:after{content:'✓';color:#fff;font-size:13px;line-height:1;font-weight:900}
input[type="checkbox"]:not(.segments input):focus-visible{outline:3px solid var(--primary-soft);outline-offset:2px}
.multi-filter-menu input[type="checkbox"]{appearance:none;-webkit-appearance:none;accent-color:unset}

/* La période active est une vraie valeur, jamais un placeholder vide. */
.multi-filter>summary strong.multi-filter-current,.multi-filter>summary strong{color:var(--ink)!important;opacity:1!important;visibility:visible!important}

@media(max-width:560px){.budget-select-menu{position:fixed;left:12px;right:12px;top:auto;bottom:calc(86px + env(safe-area-inset-bottom));max-height:52vh;border-radius:20px;padding:9px;box-shadow:0 24px 70px rgba(15,23,42,.24)}.budget-select-option{min-height:48px;padding:11px 13px}}

/* === V2.8.19 — détail de répartition cohérent selon la méthode === */
.repartition-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}
.repartition-detail-head .card-title{margin-bottom:5px}.repartition-detail-head .muted{margin:0;max-width:590px;line-height:1.5}
.calc-base-pill{flex:0 0 auto;min-width:170px;padding:10px 12px;border-radius:14px;background:var(--primary-soft);color:var(--primary-ink);text-align:right}
.calc-base-pill span{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;opacity:.72;margin-bottom:2px}.calc-base-pill strong{display:block;font-size:.82rem}
.calc-explain{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin:12px 0 14px;border:1px solid #c7d2fe;border-radius:14px;background:#f7f7ff;color:var(--ink-soft);font-size:.8rem;line-height:1.45}
.calc-explain-dot{width:9px;height:9px;flex:0 0 9px;margin-top:4px;border-radius:999px;background:var(--primary)}
.repartition-calc-table tr{transition:background .12s ease,box-shadow .12s ease}
.repartition-calc-table tr.calc-source-active td{background:#eef2ff;border-bottom-color:#c7d2fe;border-top:1px solid #c7d2fe}
.repartition-calc-table tr.calc-source-active td:first-child{box-shadow:inset 4px 0 0 var(--primary)}
.repartition-calc-table tr.calc-support-row td{background:#fffaf0}
.repartition-calc-table tr.calc-summary-row td{background:var(--line-soft)}
.repartition-calc-table tr.calc-result-row td{background:var(--green-soft)}
.repartition-calc-table tr.calc-result-row .num strong{color:#047857}
.repartition-calc-table .calc-negative{color:var(--red)}.repartition-calc-table .calc-transfer{color:var(--primary-ink)}
.calc-used-badge,.calc-step-badge{display:inline-flex;vertical-align:middle;margin-left:6px;padding:3px 6px;border-radius:999px;font-size:.58rem;line-height:1;text-transform:uppercase;letter-spacing:.05em;font-weight:900}
.calc-used-badge{background:var(--primary);color:#fff}.calc-step-badge{background:#fef3c7;color:#92400e}
@media(max-width:620px){
  .repartition-detail-head{flex-direction:column}.calc-base-pill{width:100%;text-align:left;min-width:0}
  .repartition-calc-table th:first-child,.repartition-calc-table td:first-child{position:sticky;left:0;z-index:2;min-width:176px;max-width:176px;white-space:normal;background:#fff;box-shadow:1px 0 0 var(--line)}
  .repartition-calc-table thead th:first-child{z-index:3;background:#fff}
  .repartition-calc-table tr.calc-source-active td:first-child{background:#eef2ff;box-shadow:inset 4px 0 0 var(--primary),1px 0 0 #c7d2fe}
  .repartition-calc-table tr.calc-support-row td:first-child{background:#fffaf0}.repartition-calc-table tr.calc-summary-row td:first-child{background:var(--line-soft)}.repartition-calc-table tr.calc-result-row td:first-child{background:var(--green-soft)}
}

/* === V2.8.20 — cartes bancaires et débit différé === */
.bank-card-config{margin:16px 0 2px;padding:14px;border:1px solid var(--line-soft);border-radius:16px;background:#f8fafc}
.bank-card-config .section-title{margin:0 0 10px;align-items:center}.bank-card-config .section-title h4{margin:0;font-size:.92rem}
.payment-card-row,.payment-card-add{border:1px solid var(--line);border-radius:14px;background:#fff;margin-top:8px;overflow:hidden}
.payment-card-row>summary,.payment-card-add>summary{list-style:none;cursor:pointer;padding:12px 13px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.payment-card-add>summary{grid-template-columns:1fr;font-weight:750;color:var(--primary-ink)}
.payment-card-row>summary::-webkit-details-marker,.payment-card-add>summary::-webkit-details-marker{display:none}
.payment-card-row>summary>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.payment-card-row>summary small{font-size:.7rem;color:var(--ink-muted)}
.payment-card-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primary-soft)}
.payment-card-row[data-archived="1"]{opacity:.68}.payment-card-form{padding:13px;border-top:1px solid var(--line-soft)}
.card-deferred-fields[hidden]{display:none!important}
.bank-debit-preview{margin-top:9px;padding:10px 12px;border-radius:12px;background:var(--primary-soft);color:var(--primary-ink);font-size:.78rem;font-weight:700;line-height:1.45}
.card-inline{font-weight:650}.deferred-date{display:inline-flex;margin-left:3px;padding:2px 6px;border-radius:999px;background:var(--amber-soft);color:#92400e;font-size:.66rem;font-weight:800;white-space:nowrap}
@media(max-width:520px){.bank-card-config{padding:10px}.payment-card-row>summary{padding:11px}.payment-card-form{padding:11px}.deferred-date{display:inline-flex;margin-top:3px}}
.tx-state-action.deferred-pending{background:var(--amber-soft);color:#92400e;opacity:1}

/* === V2.9.0 — cohérence bancaire complète === */
.alert-top-icon{position:relative}.alert-top-icon>b{position:absolute;right:-2px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:.65rem;display:grid;place-items:center;border:2px solid #fff}
.bank-tools-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0 14px}.bank-tools-strip>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:74px;padding:10px 5px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm);font-size:.72rem;text-align:center;color:var(--ink-soft)}.bank-tools-strip>a span{font-size:1.25rem}.bank-tools-strip>a strong{font-size:.7rem}
.deferred-statement-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.deferred-statement-summary strong{display:block}.statement-list{display:grid;gap:12px}.statement-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.statement-card h3{margin:2px 0 5px}.statement-card p{margin:0;color:var(--ink-soft);font-size:.84rem}.statement-amount{text-align:right}.statement-amount strong{display:block;font-size:1.2rem;margin-bottom:7px}.statement-card form{grid-column:1/-1}.status-ready{background:var(--amber-soft);color:#92400e}.status-open{background:var(--primary-soft);color:var(--primary-ink)}
.bank-event-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.bank-event-row>div{display:flex;flex-direction:column;gap:4px}.bank-event-row small{color:var(--ink-muted)}
.reconcile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.reconcile-summary>div{padding:13px;border-radius:14px;background:var(--line-soft)}.reconcile-summary span{display:block;font-size:.72rem;color:var(--ink-muted);margin-bottom:4px}.reconcile-summary strong{font-size:.95rem}
.recurrence-card{margin-bottom:12px}.recurrence-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.recurrence-meta span{padding:6px 9px;border-radius:999px;background:var(--line-soft);font-size:.72rem;color:var(--ink-soft)}.status-paused{background:var(--amber-soft);color:#92400e}.status-stopped{background:var(--line-soft);color:var(--ink-muted)}
.alert-list,.dashboard-alerts{display:grid;gap:9px}.finance-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);box-shadow:var(--shadow-sm)}.finance-alert-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--line-soft)}.finance-alert strong,.finance-alert small{display:block}.finance-alert small{margin-top:3px;color:var(--ink-muted);line-height:1.4}.finance-alert-danger{border-color:#fecaca;background:#fffafa}.finance-alert-warning{border-color:#fde68a;background:#fffdf7}
.landing-real-screens-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.landing-real-screen{background:#fff;border:1px solid var(--line);border-radius:26px;padding:12px;box-shadow:var(--shadow-sm);overflow:hidden}.landing-real-screen img{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;object-position:top;border-radius:18px;border:1px solid var(--line);background:#f8fafc}.landing-real-screen h3{margin:14px 2px 7px}.landing-real-screen p{margin:0 2px 4px;color:var(--ink-soft);font-size:.84rem;line-height:1.5}
@media(max-width:900px){.landing-real-screens-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.bank-tools-strip{grid-template-columns:repeat(3,1fr)}.statement-card{grid-template-columns:1fr}.statement-amount{text-align:left}.reconcile-summary{grid-template-columns:1fr}.landing-real-screens-grid{grid-template-columns:1fr 1fr}.landing-real-screen{border-radius:20px;padding:8px}}
@media(max-width:420px){.top-actions{gap:2px}.top-actions .top-icon{width:40px;height:40px;min-width:40px;min-height:40px}.topbar .brand-name{max-width:76px}.landing-real-screens-grid{grid-template-columns:1fr}}
.statement-purchases{grid-column:1/-1;border-top:1px solid var(--line);padding-top:10px}.statement-purchases summary{cursor:pointer;font-size:.8rem;font-weight:800;color:var(--primary-ink)}.statement-purchases>div{display:grid;gap:7px;margin-top:9px}.statement-purchases a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:11px;background:var(--line-soft);font-size:.8rem}.statement-purchases a span{color:var(--ink-soft)}

/* === V2.9.1 — validation des imports bancaires === */
.import-review-shell{display:grid;gap:14px}.import-review-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.import-review-head h2{margin:4px 0 6px}.import-review-kpis{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px;min-width:310px}.import-review-kpis>div{padding:12px;border-radius:15px;background:var(--line-soft);text-align:center}.import-review-kpis strong{display:block;font-size:1.2rem}.import-review-kpis span{display:block;font-size:.7rem;color:var(--ink-muted);margin-top:3px}.import-bulk-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.import-bulk-head small{display:block;color:var(--ink-muted);font-weight:500;margin-top:3px}.checkline.compact{margin:0;white-space:nowrap}.import-bulk-grid{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr) auto;gap:9px;align-items:end;margin-top:14px}.import-bulk-grid .field{margin:0}.import-review-list{display:grid;gap:10px}.import-review-row{margin:0;border-left:4px solid var(--line)}.import-review-row.recognized{border-left-color:#10b981}.import-review-row.suggested{border-left-color:#3b82f6}.import-review-row.review{border-left-color:#f59e0b}.import-review-row.duplicate{border-left-color:#94a3b8;opacity:.78}.import-review-row-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.import-row-select{display:grid;place-items:center}.import-bank-original{display:flex;flex-direction:column;gap:3px;min-width:0}.import-bank-original strong{overflow-wrap:anywhere}.import-bank-original small{color:var(--ink-muted);font-size:.7rem}.import-status-badge{display:inline-flex;width:max-content;max-width:100%;padding:5px 8px;border-radius:999px;font-size:.67rem;font-weight:900}.import-status-badge.recognized{background:var(--green-soft);color:#047857}.import-status-badge.suggested{background:#dbeafe;color:#1d4ed8}.import-status-badge.review{background:var(--amber-soft);color:#92400e}.import-status-badge.duplicate{background:var(--line-soft);color:var(--ink-muted)}.import-amount{font-size:1rem;white-space:nowrap}.import-amount.positive{color:#047857}.import-amount.negative{color:#b91c1c}.import-review-fields{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(220px,1.5fr) minmax(180px,1fr) minmax(160px,.8fr);gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}.import-review-fields .field{margin:0}.import-field-wide{min-width:0}.import-remember{grid-column:1/-1;margin:0;padding-top:2px}.import-special-match{grid-column:2/-1;align-self:stretch;padding:11px 13px;border-radius:13px;background:var(--green-soft);display:flex;flex-direction:column;justify-content:center}.import-special-match span{font-size:.69rem;color:#047857}.import-special-match strong{font-size:.84rem;margin-top:3px}.import-duplicate-note{margin-top:12px;padding:10px 12px;border-radius:12px;background:var(--line-soft);color:var(--ink-muted);font-size:.8rem}.import-review-actions{position:sticky;bottom:72px;z-index:15;margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);box-shadow:0 14px 40px rgba(15,23,42,.14);display:flex;align-items:center;gap:14px}.import-review-actions .btn{min-width:220px}.import-cancel-form{margin:0}.import-rule-line form{margin:0}.import-history-state{display:flex;align-items:center;justify-content:flex-end}.import-upload-card h2{margin:4px 0 8px}
@media(max-width:920px){.import-review-head{align-items:flex-start;flex-direction:column}.import-review-kpis{width:100%;min-width:0}.import-bulk-grid{grid-template-columns:1fr 1fr}.import-review-fields{grid-template-columns:1fr 1fr}.import-special-match{grid-column:1/-1}}
@media(max-width:600px){.import-review-kpis{grid-template-columns:repeat(3,1fr)}.import-bulk-head{flex-direction:column}.import-bulk-grid,.import-review-fields{grid-template-columns:1fr}.import-review-row-head{grid-template-columns:auto minmax(0,1fr)}.import-amount{grid-column:2}.import-review-actions{bottom:64px;flex-direction:column;align-items:stretch}.import-review-actions .btn{width:100%;min-width:0}.import-review-actions .muted{text-align:center;font-size:.72rem}.import-rule-line{align-items:flex-start;gap:8px}.import-rule-line form{flex:0 0 auto}}

/* === V2.9.2 — prévision de trésorerie 30 jours === */
.dashboard-forecast-card{margin-top:14px}.dashboard-forecast-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.dashboard-forecast-summary>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--line-soft)}.dashboard-forecast-summary span,.dashboard-forecast-summary small{display:block;color:var(--ink-muted);font-size:.72rem}.dashboard-forecast-summary strong{display:block;font-size:1.05rem;margin:4px 0}.dashboard-forecast-chart{position:relative;height:220px}.forecast-danger-text{color:var(--red)!important}.forecast-note{margin:10px 0 0;color:var(--ink-muted);font-size:.75rem;line-height:1.5}
.forecast-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.forecast-kpi{padding:15px}.forecast-kpi>span,.forecast-kpi small{display:block;color:var(--ink-muted);font-size:.72rem}.forecast-kpi strong{display:block;font-size:1.25rem;margin:5px 0}.forecast-kpi-in{border-color:#a7f3d0}.forecast-kpi-out{border-color:#fecaca}.forecast-kpi-danger{border-color:#fca5a5;background:#fffafa}.forecast-main-card{margin-bottom:14px}.forecast-window{font-size:.75rem;color:var(--ink-muted);font-weight:700}.forecast-minimum{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;margin:12px 0}.forecast-minimum span,.forecast-minimum small{font-size:.75rem}.forecast-minimum strong{font-size:1.25rem}.forecast-minimum.is-safe{background:var(--green-soft);color:#047857}.forecast-minimum.is-danger{background:var(--red-soft);color:#991b1b}.forecast-chart-wrap{height:270px;position:relative}
.forecast-account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.forecast-account{padding:15px}.forecast-account-danger{border-color:#fecaca;background:#fffafa}.forecast-account-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.forecast-account-head strong,.forecast-account-head small{display:block}.forecast-account-head small{font-size:.72rem;color:var(--ink-muted);margin-top:2px}.forecast-account-values{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.forecast-account-values>div{background:var(--line-soft);border-radius:12px;padding:10px}.forecast-account-values small,.forecast-account-values span{display:block;color:var(--ink-muted);font-size:.68rem}.forecast-account-values strong{display:block;font-size:.9rem;margin:3px 0}
.forecast-event-list{display:grid;gap:7px;margin-top:12px}.forecast-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft)}.forecast-event:last-child{border-bottom:0}.forecast-event-date{min-width:46px;padding:6px 8px;border-radius:999px;background:var(--line-soft);font-size:.72rem;font-weight:800;text-align:center}.forecast-event>div strong,.forecast-event>div small{display:block}.forecast-event>div small{color:var(--ink-muted);font-size:.7rem;margin-top:2px}.forecast-event-amount{font-size:.86rem;text-align:right}.forecast-event-amount.is-in{color:#047857}.forecast-event-amount.is-out{color:#b91c1c}.forecast-event-amount.is-transfer{color:var(--primary-ink)}
@media(max-width:780px){.forecast-kpis{grid-template-columns:1fr 1fr}.forecast-account-grid{grid-template-columns:1fr}}
@media(max-width:520px){.dashboard-forecast-summary{grid-template-columns:1fr}.dashboard-forecast-chart{height:205px}.forecast-kpis{grid-template-columns:1fr 1fr}.forecast-chart-wrap{height:235px}.forecast-account-values{grid-template-columns:1fr}.forecast-event{grid-template-columns:auto minmax(0,1fr)}.forecast-event-amount{grid-column:2;text-align:left}}
.forecast-inline-warning{margin-top:10px;padding:10px 12px;border:1px solid #fecaca;border-radius:12px;background:#fffafa;color:#991b1b;font-size:.78rem;line-height:1.45}.forecast-inline-warning a{color:inherit;font-weight:800;text-decoration:underline}

/* === V2.9.3 — opérations fractionnées === */
.split-toggle-card{margin:0 0 16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#f8faff);padding:15px}
.split-checkline{margin:0}.split-checkline>span{display:flex;flex-direction:column;gap:3px}.split-checkline small{font-size:.75rem;color:var(--ink-muted);font-weight:500}
#split-editor{margin-top:15px;padding-top:15px;border-top:1px solid var(--line-soft)}
.split-info{padding:11px 12px;border-radius:13px;background:var(--primary-soft);color:var(--primary-ink);font-size:.78rem;line-height:1.5;margin-bottom:11px}
.split-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(110px,.75fr) minmax(110px,.75fr) 42px;gap:8px;align-items:end;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.split-row .field{margin:0}.split-remove{width:42px;height:44px;border:0;border-radius:12px;background:var(--red-soft);color:#991b1b;font-size:1.4rem;cursor:pointer}.split-remove:disabled{opacity:.28;cursor:not-allowed}
.split-total-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 14px;border-radius:14px;background:#111b3d;color:#fff}.split-total-bar span{font-size:.78rem;opacity:.82}.split-total-bar strong{font-size:.84rem;text-align:right}
#movement-budget-total[readonly],#movement-real-total[readonly]{background:var(--line-soft);color:var(--ink-soft)}
.tx-split-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-size:.68rem;font-weight:800}
.tx-split-categories{display:block;color:var(--ink-muted);font-size:.7rem;line-height:1.35;margin-top:3px}
@media(max-width:620px){.split-row{grid-template-columns:1fr 1fr 42px}.split-category-field{grid-column:1/-1}.split-total-bar{align-items:flex-start;flex-direction:column}.split-total-bar strong{text-align:left}}

/* === V2.9.4 — objectifs d'épargne === */
.savings-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:14px;align-items:start}
.savings-goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.savings-goal-card{margin:0}.savings-goal-card.paused{opacity:.78}.savings-goal-card.completed{border-color:#a7f3d0;background:linear-gradient(145deg,#fff 0%,#f0fdf4 100%)}
.savings-goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.savings-goal-title{display:flex;align-items:center;gap:10px;min-width:0}.savings-goal-title h2{margin:0;font-size:1.05rem}.savings-goal-title small{display:block;color:var(--ink-muted);margin-top:3px}.savings-goal-icon{width:42px;height:42px;border-radius:14px;background:var(--primary-soft);display:grid;place-items:center;flex:0 0 42px;font-size:1.15rem}
.savings-progress{height:9px;border-radius:999px;background:var(--line-soft);overflow:hidden;display:block;margin:15px 0 8px}.savings-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#14b8a6 0%,#4f46e5 100%)}
.savings-amount-line{display:flex;align-items:baseline;gap:7px}.savings-amount-line strong{font-size:1.45rem;letter-spacing:-.035em}.savings-amount-line span{font-size:.78rem;color:var(--ink-muted)}
.savings-goal-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.savings-goal-metrics>div{padding:10px;border-radius:13px;background:var(--line-soft)}.savings-goal-metrics small{display:block;color:var(--ink-muted);font-size:.68rem;margin-bottom:4px}.savings-goal-metrics strong{font-size:.8rem;line-height:1.3}
.savings-inline-alert{margin:12px 0 0;padding:9px 11px;font-size:.76rem}.savings-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.savings-form{position:sticky;top:82px}.savings-status-actions{display:flex;gap:7px;flex-wrap:wrap}.savings-status-actions form{margin:0}
.savings-link-list{display:grid;gap:8px}.savings-link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:14px}.savings-link-row>div:first-child{min-width:0}.savings-link-row small{display:block;color:var(--ink-muted);font-size:.7rem;margin-top:3px}.savings-link-amount{text-align:right;display:grid;gap:5px;justify-items:end}.savings-link-amount form{margin:0}
.dashboard-savings-card{margin-top:14px}.dashboard-savings-list{display:grid;gap:8px}.dashboard-savings-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:15px;color:inherit}.dashboard-savings-row:hover{background:var(--line-soft)}.dashboard-savings-main{min-width:0}.dashboard-savings-main strong,.dashboard-savings-main small{display:block}.dashboard-savings-main .savings-progress{margin:7px 0 5px;height:7px}.dashboard-savings-main small{font-size:.7rem;color:var(--ink-muted)}.dashboard-savings-side{text-align:right}.dashboard-savings-side strong,.dashboard-savings-side small{display:block}.dashboard-savings-side small{font-size:.67rem;color:var(--ink-muted)}.savings-dashboard-empty{padding:12px}.savings-inline{color:#5b21b6;font-weight:700}
@media(max-width:860px){.savings-layout{grid-template-columns:1fr}.savings-form{position:static}.savings-goal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.savings-goal-grid{grid-template-columns:1fr}.savings-link-row{align-items:flex-start}.dashboard-savings-row{grid-template-columns:auto minmax(0,1fr)}.dashboard-savings-side{grid-column:2;text-align:left;display:flex;gap:5px;align-items:baseline}}

/* === V2.9.5 — règles d’automatisation === */
.import-toolbar{display:flex;justify-content:flex-end;margin:-6px 0 14px}
.automation-intro{display:flex;align-items:center;justify-content:space-between;gap:18px}.automation-intro h2{margin:2px 0 6px;font-size:1.18rem}.automation-intro p{margin:0;max-width:720px}
.automation-rule-block{border:1px solid var(--line);background:var(--line-soft);border-radius:18px;padding:16px;margin:14px 0}.automation-rule-block>.eyebrow{margin-bottom:12px}
.automation-rules-list{display:grid;gap:10px}.automation-rule-card{margin:0}.automation-rule-card.is-disabled{opacity:.7}.automation-rule-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.automation-rule-head>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.automation-rule-head strong{font-size:1rem}.automation-rule-head small{width:100%;color:var(--ink-muted);font-size:.72rem}.automation-priority{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-weight:900;font-size:.7rem}
.automation-flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;margin:16px 0}.automation-flow>div:not(.automation-arrow){border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px}.automation-flow span{display:block;color:var(--primary-ink);font-weight:900;font-size:.7rem;letter-spacing:.08em;margin-bottom:5px}.automation-flow p{margin:0;color:var(--ink-soft);font-size:.84rem;line-height:1.5}.automation-arrow{font-size:1.25rem;color:var(--ink-muted);font-weight:900}.automation-rule-actions{display:flex;gap:7px;flex-wrap:wrap}.automation-rule-actions form{margin:0}.automation-help p{line-height:1.6}.import-rule-applied{grid-column:1/-1;padding:10px 12px;border-radius:12px;background:var(--primary-soft);color:var(--primary-ink);font-size:.78rem}.import-rule-applied a{text-decoration:underline;font-weight:800}.import-status-badge.recognized{max-width:100%}
@media(max-width:620px){.automation-intro{align-items:flex-start;flex-direction:column}.automation-intro .btn{width:100%}.automation-flow{grid-template-columns:1fr}.automation-arrow{transform:rotate(90deg);justify-self:center}.automation-rule-actions{display:grid;grid-template-columns:1fr 1fr}.automation-rule-actions .btn{width:100%;justify-content:center}.automation-rule-actions form:last-child{grid-column:1/-1}.import-toolbar .btn{width:100%}}

/* === V2.9.6 — détection des abonnements et récurrences === */
.recurring-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.recurring-summary-card{display:flex;flex-direction:column;gap:4px}.recurring-summary-card>span{font-size:.75rem;color:var(--ink-muted);font-weight:700}.recurring-summary-card strong{font-size:1.45rem;letter-spacing:-.035em}.recurring-summary-card small{color:var(--ink-muted)}
.recurring-tools{margin-bottom:14px}.recurring-detection-list{display:grid;gap:12px}.recurring-detection-card{margin:0}.recurring-detection-card.is-muted{opacity:.7}.recurring-detection-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.recurring-detection-head h2{margin:0 0 5px;font-size:1.15rem}.recurring-detection-head p{margin:0;color:var(--ink-muted);font-size:.8rem;line-height:1.45}.recurring-confidence{flex:0 0 auto;border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:900}.recurring-confidence-high{background:var(--green-soft);color:#047857}.recurring-confidence-medium{background:var(--amber-soft);color:#92400e}.recurring-confidence-low{background:var(--line-soft);color:var(--ink-soft)}
.recurring-detection-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}.recurring-detection-metrics>div{padding:11px;border-radius:14px;background:var(--line-soft)}.recurring-detection-metrics span{display:block;font-size:.68rem;color:var(--ink-muted);margin-bottom:4px}.recurring-detection-metrics strong{font-size:.83rem}.recurring-history{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:.72rem;color:var(--ink-muted)}.recurring-history b{padding:5px 7px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink-soft)}.recurring-cost-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:11px 12px;border-radius:14px;background:var(--primary-soft);color:var(--primary-ink);font-size:.8rem}.recurring-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.recurring-actions form{margin:0}.recurring-method-note{margin-top:14px}.recurring-method-note h3{margin:0 0 7px}.recurring-method-note p{margin:0;color:var(--ink-soft);line-height:1.6}
@media(max-width:700px){.recurring-summary-grid{grid-template-columns:1fr}.recurring-detection-head{flex-direction:column}.recurring-detection-metrics{grid-template-columns:1fr 1fr}.recurring-actions{grid-template-columns:1fr}.recurring-cost-line{align-items:flex-start;flex-direction:column}}

/* === V3.0 — foyer multi-utilisateur === */
.household-readonly-banner{padding:9px 14px;background:#eef2ff;color:#3730a3;text-align:center;font-size:.82rem;border-bottom:1px solid #c7d2fe;font-weight:700}
.household-overview-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-bottom:14px}
.household-current-card h2{margin:2px 0 8px;font-size:1.45rem;letter-spacing:-.03em}
.household-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.household-switch-row:last-child{border-bottom:0}.household-switch-row span{display:flex;flex-direction:column;gap:2px;min-width:0}.household-switch-row small{font-size:.72rem;color:var(--ink-muted)}
.household-inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}.household-inline-form .field{margin:0}
.household-members-list{display:grid;gap:10px}.household-member-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}.household-avatar{width:42px;height:42px;border-radius:14px;background:var(--primary-soft);color:var(--primary-ink);display:grid;place-items:center;font-weight:900}.household-member-main{display:flex;flex-direction:column;gap:3px;min-width:0}.household-member-main small{color:var(--ink-muted);font-size:.72rem;overflow-wrap:anywhere}.household-member-actions{position:relative}.household-member-actions>summary{list-style:none;cursor:pointer}.household-member-actions>summary::-webkit-details-marker{display:none}.household-member-actions[open]{grid-column:1/-1}.household-member-actions[open]>summary{margin-left:auto;width:max-content}.household-member-actions form{margin-top:10px;padding:12px;border-radius:14px;background:var(--line-soft)}
.household-invite-link .copy-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.household-invite-link input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}
.subscription-household-note{margin:18px auto 0;max-width:600px;background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important}
.household-safe-nav{grid-template-columns:repeat(4,1fr)!important}.readonly-fab{background:#eef2ff!important;color:#4338ca!important}
@media(max-width:760px){.household-overview-grid{grid-template-columns:1fr}.household-member-row{grid-template-columns:auto minmax(0,1fr) auto}.household-member-actions{grid-column:1/-1}.household-member-row>.status-pill{justify-self:end}.household-inline-form{grid-template-columns:1fr}.household-invite-link .copy-line{grid-template-columns:1fr}.household-invite-link .copy-line .btn{width:100%}}

/* === V3.1 — offres Personnel/Famille + nouvelle vitrine === */
.subscription-v31{gap:18px}.subscription-hero-v31{background:radial-gradient(circle at 15% 15%,rgba(94,234,212,.2),transparent 28%),radial-gradient(circle at 88% 12%,rgba(250,204,21,.15),transparent 26%),linear-gradient(145deg,#0f172a 0%,#1e1b4b 52%,#4338ca 100%)}
.subscription-hero-v31 .subscription-hero-content{max-width:780px}.subscription-hero-v31 h1{max-width:720px;margin-left:auto;margin-right:auto}
.pricing-v31{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pricing-tier-v31{position:relative;background:#fff;border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:var(--shadow-sm)}.pricing-tier-v31.family{border-color:#c7d2fe;background:linear-gradient(180deg,#fff 0%,#f8f7ff 100%)}.pricing-tier-v31.is-current{box-shadow:0 0 0 2px var(--primary-soft),var(--shadow-sm)}
.pricing-tier-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.pricing-tier-head h2{margin:2px 0 0;font-size:1.35rem;letter-spacing:-.03em}.pricing-seat{padding:7px 10px;border-radius:999px;background:var(--line-soft);font-size:.72rem;font-weight:800;color:var(--ink-soft)}.pricing-tier-v31>p{color:var(--ink-soft);line-height:1.55}
.pricing-popular{display:inline-flex;padding:7px 10px;border-radius:999px;background:#312e81;color:#fff;font-size:.7rem;font-weight:850;margin-bottom:12px}.pricing-options-v31{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.pricing-option-form{margin:0}.pricing-option-v31{width:100%;min-height:92px;border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px;text-align:left;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;position:relative;color:var(--ink)}.pricing-option-v31:hover{border-color:#c7d2fe;background:#fafaff}.pricing-option-v31.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.pricing-option-v31:disabled{opacity:.42;cursor:not-allowed}.pricing-option-v31 span:first-child{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.pricing-option-v31 small{font-size:.66rem;color:var(--ink-muted)}.pricing-option-price{font-size:.95rem;font-weight:850}.pricing-option-v31 em{position:absolute;right:8px;bottom:8px;font-style:normal;padding:4px 7px;border-radius:999px;background:var(--green-soft);color:#047857;font-size:.62rem;font-weight:900}.pricing-feature-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}.pricing-feature-list li{position:relative;padding-left:24px;color:var(--ink-soft);font-size:.86rem;line-height:1.45}.pricing-feature-list li:before{content:"✓";position:absolute;left:0;top:0;color:#059669;font-weight:900}.family-seat-meter{margin-top:16px;padding:12px 13px;border-radius:15px;background:#eef2ff;display:grid;grid-template-columns:1fr auto;gap:3px 10px}.family-seat-meter span,.family-seat-meter small{font-size:.72rem;color:var(--ink-muted)}.family-seat-meter strong{font-size:.84rem}.family-seat-meter small{grid-column:1/-1}.family-managed-card{max-width:720px;margin:0 auto}.family-upgrade-callout{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-radius:18px;background:linear-gradient(135deg,#eef2ff,#f5f3ff);border:1px solid #c7d2fe}.family-upgrade-callout p{margin:5px 0 0;color:var(--ink-soft);line-height:1.5}

.landing-v31{gap:22px}.showcase-hero-v31{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:18px;align-items:stretch}.showcase-hero-copy-v31{border-radius:32px;padding:clamp(28px,5vw,52px);background:linear-gradient(145deg,#fff 0%,#f7f8ff 100%);border:1px solid var(--line);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:center}.showcase-hero-copy-v31 h1{font-size:clamp(2.55rem,6vw,5rem);line-height:.94;letter-spacing:-.055em;margin:18px 0}.showcase-hero-copy-v31 h1 em{font-style:normal;color:#4338ca}.showcase-hero-copy-v31>p{font-size:1.05rem;color:var(--ink-soft);line-height:1.7;max-width:660px}.showcase-trust-v31{display:flex;gap:10px 16px;flex-wrap:wrap;margin-top:18px;font-size:.78rem;color:var(--ink-muted);font-weight:700}
.showcase-hero-media-v31{position:relative;min-height:570px;border-radius:32px;padding:28px;background:radial-gradient(circle at 20% 10%,rgba(94,234,212,.26),transparent 32%),linear-gradient(150deg,#0f172a 0%,#1e1b4b 55%,#4338ca 100%);overflow:hidden}.showcase-orbit-card{position:absolute;inset:34px 56px 34px 34px;border-radius:26px;overflow:hidden;box-shadow:0 26px 70px rgba(2,6,23,.35);transform:rotate(-2deg);background:#fff}.showcase-orbit-card img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}.showcase-float-card{position:absolute;z-index:2;border-radius:18px;padding:13px 15px;background:rgba(255,255,255,.96);box-shadow:0 18px 40px rgba(15,23,42,.25);display:grid;gap:3px}.showcase-float-card strong{font-size:.86rem}.showcase-float-card span{font-size:.7rem;color:var(--ink-muted)}.showcase-float-card.float-a{right:18px;top:80px}.showcase-float-card.float-b{right:20px;bottom:70px}
.showcase-proof-v31{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.showcase-proof-v31>div{background:#fff;border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:var(--shadow-sm)}.showcase-proof-v31 strong{display:block;font-size:1rem}.showcase-proof-v31 span{display:block;margin-top:4px;font-size:.75rem;color:var(--ink-muted);line-height:1.4}.showcase-centered-head{text-align:center;margin:0 auto;max-width:820px}.showcase-centered-head p{margin-left:auto;margin-right:auto}
.showcase-pricing-section-v31{padding:8px 0}.showcase-pricing-grid-v31{display:grid;grid-template-columns:1fr 1fr;gap:14px}.showcase-plan-v31{position:relative;background:#fff;border:1px solid var(--line);border-radius:30px;padding:24px;box-shadow:var(--shadow-sm)}.showcase-plan-v31.family{border-color:#a5b4fc;background:linear-gradient(180deg,#fff,#f7f6ff);box-shadow:0 22px 55px rgba(79,70,229,.12)}.showcase-plan-top{display:flex;align-items:center;gap:13px}.showcase-plan-icon{width:48px;height:48px;border-radius:15px;background:var(--primary-soft);display:grid;place-items:center;font-size:1.15rem}.showcase-plan-top h3{margin:2px 0 0;font-size:1.25rem;letter-spacing:-.025em}.showcase-price-switch-v31{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.showcase-price-switch-v31>div{padding:14px;border-radius:17px;border:1px solid var(--line);background:#fff}.showcase-price-switch-v31>div.annual{background:#eef2ff;border-color:#c7d2fe}.showcase-price-switch-v31 strong{display:block;font-size:1.1rem}.showcase-price-switch-v31 span{display:block;margin-top:3px;font-size:.68rem;color:var(--ink-muted)}.showcase-price-note{text-align:center;color:var(--ink-muted);font-size:.76rem;line-height:1.55;margin:0}
.showcase-family-v31{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;align-items:center;border-radius:32px;padding:28px;background:linear-gradient(140deg,#f8fafc,#eef2ff);border:1px solid #dbeafe}.showcase-family-copy-v31 h2{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.05;letter-spacing:-.045em;margin:5px 0 12px}.showcase-family-copy-v31>p{color:var(--ink-soft);line-height:1.65}.showcase-role-grid-v31{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.showcase-role-grid-v31>div{padding:13px;border-radius:16px;background:#fff;border:1px solid var(--line)}.showcase-role-grid-v31 strong{font-size:.8rem}.showcase-role-grid-v31 span{display:block;font-size:.69rem;color:var(--ink-muted);line-height:1.4;margin-top:4px}.showcase-family-panel-v31{background:#fff;border:1px solid var(--line);border-radius:26px;padding:16px;box-shadow:var(--shadow-sm);display:grid;gap:9px}.family-owner-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:14px;background:#f8fafc}.family-owner-row div{display:grid}.family-owner-row small{font-size:.68rem;color:var(--ink-muted)}.family-seat-visual-v31{padding:10px}.family-seat-visual-v31 span{font-size:.72rem;font-weight:800}.family-seat-visual-v31>div{height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin-top:7px}.family-seat-visual-v31 i{display:block;height:100%;background:linear-gradient(90deg,#5eead4,#4f46e5);border-radius:inherit}
.showcase-feature-grid-v31{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.showcase-feature-grid-v31 article{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow-sm)}.showcase-feature-grid-v31 article>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--primary-soft);font-size:1rem}.showcase-feature-grid-v31 h3{font-size:.93rem;margin:13px 0 6px}.showcase-feature-grid-v31 p{margin:0;color:var(--ink-soft);font-size:.78rem;line-height:1.55}
.showcase-screenshot-grid-v31{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:auto auto;gap:12px}.showcase-shot-v31{margin:0;background:#fff;border:1px solid var(--line);border-radius:24px;padding:10px;box-shadow:var(--shadow-sm);overflow:hidden}.showcase-shot-v31.large{grid-row:1/3}.showcase-shot-v31 img{display:block;width:100%;height:310px;object-fit:cover;object-position:top;border-radius:17px;border:1px solid var(--line-soft)}.showcase-shot-v31.large img{height:100%;min-height:650px}.showcase-shot-v31 figcaption{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 5px 3px}.showcase-shot-v31 figcaption strong{font-size:.82rem}.showcase-shot-v31 figcaption span{font-size:.7rem;color:var(--ink-muted)}
.showcase-plan-compare-v31{max-width:900px;margin:0 auto;width:100%}.plan-compare-table-v31{display:grid;gap:7px}.plan-compare-row{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:8px}.plan-compare-row>*{padding:13px 14px;background:#fff;border:1px solid var(--line);border-radius:15px;text-align:center}.plan-compare-row>span{text-align:left;color:var(--ink-soft)}.plan-compare-row.head>*{background:#111827;color:#fff;border-color:#111827;font-weight:850}.plan-compare-row strong{color:#312e81}.plan-compare-row.head strong{color:#fff}.showcase-faq-v31{max-width:900px;margin:0 auto;width:100%}.showcase-final-v31{margin-top:4px}.showcase-final-price-v31{display:grid;grid-template-columns:1fr 1fr;gap:8px}.showcase-final-price-v31>div{padding:12px;border-radius:15px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.showcase-final-price-v31 small,.showcase-final-price-v31 strong{display:block}.showcase-final-price-v31 small{color:#c7d2fe;font-size:.68rem}.showcase-final-price-v31 strong{font-size:1rem;margin-top:4px}

@media(max-width:1000px){.showcase-hero-v31,.showcase-family-v31{grid-template-columns:1fr}.showcase-hero-media-v31{min-height:500px}.showcase-proof-v31,.showcase-feature-grid-v31{grid-template-columns:1fr 1fr}.showcase-screenshot-grid-v31{grid-template-columns:1fr 1fr}.showcase-shot-v31.large{grid-row:auto;grid-column:1/-1}.showcase-shot-v31.large img{min-height:0;height:500px}}
@media(max-width:760px){.pricing-v31,.showcase-pricing-grid-v31,.showcase-role-grid-v31{grid-template-columns:1fr}.showcase-proof-v31{grid-template-columns:1fr 1fr}.showcase-feature-grid-v31{grid-template-columns:1fr 1fr}.showcase-screenshot-grid-v31{grid-template-columns:1fr}.showcase-shot-v31.large{grid-column:auto}.showcase-shot-v31 img,.showcase-shot-v31.large img{height:auto;max-height:580px}.showcase-family-v31{padding:20px}.showcase-hero-media-v31{min-height:430px}.showcase-orbit-card{inset:24px 38px 24px 20px}.showcase-float-card.float-a{top:50px}.showcase-float-card.float-b{bottom:40px}.plan-compare-row{grid-template-columns:1.2fr .8fr .8fr}.plan-compare-row>*{padding:10px 8px;font-size:.76rem}}
@media(max-width:520px){.pricing-options-v31,.showcase-price-switch-v31,.showcase-proof-v31,.showcase-feature-grid-v31,.showcase-final-price-v31{grid-template-columns:1fr}.family-upgrade-callout{flex-direction:column;align-items:stretch}.showcase-hero-copy-v31{padding:25px 20px}.showcase-hero-copy-v31 h1{font-size:2.35rem}.showcase-hero-media-v31{min-height:380px}.showcase-float-card{display:none}.showcase-orbit-card{inset:18px}.showcase-role-grid-v31{grid-template-columns:1fr}.plan-compare-row{grid-template-columns:1fr 70px 70px}.plan-compare-row>*{font-size:.7rem;padding:9px 6px}.showcase-family-panel-v31{padding:10px}}
.plan-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.plan-admin-item{padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--line-soft);display:grid;gap:4px}.plan-admin-item span{font-size:.7rem;color:var(--ink-muted)}.plan-admin-item strong{font-size:.86rem}.plan-admin-item small{font-size:.68rem}.ok-text{color:#047857}.warn-text{color:#b45309}.signup-plan-chip{margin:0 0 18px;padding:12px 14px;border-radius:14px;background:var(--primary-soft);display:grid;gap:2px}.signup-plan-chip span,.signup-plan-chip small{font-size:.7rem;color:var(--ink-muted)}.signup-plan-chip strong{font-size:.9rem;color:var(--primary-ink)}
@media(max-width:900px){.plan-admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.plan-admin-grid{grid-template-columns:1fr}}
.alert-warning{background:var(--amber-soft);color:#92400e;border:1px solid #fde68a}
.household-plan-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:10px 12px;border-radius:13px;background:var(--line-soft);font-size:.78rem}.household-plan-line span{color:var(--ink-muted)}
.public-container-wide{max-width:1180px}

/* === V3.1.1 — prévision 30 j strictement responsive === */
.dashboard-forecast-card,.forecast-main-card{min-width:0;overflow:hidden}
.dashboard-forecast-chart,.forecast-chart-wrap{width:100%;max-width:100%;min-width:0;overflow:hidden}
#chart-prevision{display:block;width:100%!important;height:100%!important;max-width:100%!important;min-width:0}
@media(max-width:520px){
  .dashboard-forecast-chart{height:190px}
  .forecast-chart-wrap{height:215px}
  .dashboard-forecast-card{padding-left:14px;padding-right:14px}
}

/* === V3.1.3 — guide utilisateur intégré === */
.guide-page-header{margin-bottom:14px}.guide-page-header h1{margin-top:2px}
.guide-search-card{position:sticky;top:74px;z-index:12;padding:16px;margin-bottom:14px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
.guide-search-card>label{display:block;font-size:.8rem;font-weight:800;color:var(--ink-soft);margin-bottom:8px}.guide-search-box{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;padding:0 12px;background:#fff}.guide-search-box>span{color:var(--ink-muted);font-size:1.15rem}.guide-search-box input{border:0!important;box-shadow:none!important;padding:13px 0!important;background:transparent!important}
.guide-quick-nav{display:flex;gap:7px;overflow-x:auto;padding-top:11px;scrollbar-width:none}.guide-quick-nav::-webkit-scrollbar{display:none}.guide-quick-nav a{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:var(--line-soft);color:var(--ink-soft);font-size:.74rem;font-weight:800}.guide-quick-nav a:hover{background:var(--primary-soft);color:var(--primary-ink)}
.guide-section{scroll-margin-top:190px;margin-bottom:14px}.guide-section[hidden]{display:none!important}.guide-section h2{margin:0;font-size:1.3rem;letter-spacing:-.025em}.guide-section h3{font-size:1rem;margin:18px 0 8px}.guide-section>p,.guide-section li{line-height:1.62}.guide-section ol{padding-left:21px}.guide-section ol li+li{margin-top:5px}
.guide-section-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.guide-step{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:var(--primary-soft);color:var(--primary-ink);font-weight:900}.guide-section-head .eyebrow{margin:0 0 2px}
.guide-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.guide-callout{border:1px solid var(--line);border-radius:16px;background:var(--line-soft);padding:15px}.guide-callout h3{margin:0 0 8px}.guide-callout p{margin:0;line-height:1.55;color:var(--ink-soft)}
.guide-plan{display:grid;gap:2px;padding:11px 12px;border:1px solid var(--line);background:#fff;border-radius:13px;margin-bottom:8px}.guide-plan span{color:var(--primary-ink);font-weight:800}.guide-plan small{color:var(--ink-muted)}
.guide-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;margin-top:14px;padding:13px 14px;border-radius:15px;background:var(--primary-soft);color:var(--ink-soft);line-height:1.5}.guide-note strong{color:var(--primary-ink)}.guide-note.warning{background:var(--amber-soft)}.guide-note.warning strong{color:#92400e}
.guide-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.guide-grid-3>div{padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.guide-grid-3 p{margin:6px 0 0;color:var(--ink-soft);font-size:.84rem;line-height:1.5}
.guide-faq-list{display:grid;gap:9px}.guide-faq-list details{border:1px solid var(--line);border-radius:15px;background:#fff;padding:13px}.guide-faq-list summary{list-style:none;cursor:pointer;font-weight:800}.guide-faq-list summary::-webkit-details-marker{display:none}.guide-faq-list p,.guide-faq-list ol{margin:10px 0 0;color:var(--ink-soft);line-height:1.58}
.guide-screen{margin:4px 0 16px;border:1px solid var(--line);border-radius:19px;overflow:hidden;background:#f8fafc}.guide-screen img{display:block;width:100%;max-height:520px;object-fit:contain;background:#f8fafc}.guide-screen figcaption{padding:9px 12px;color:var(--ink-muted);font-size:.72rem;border-top:1px solid var(--line)}
.guide-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.guide-status-grid>div{border:1px solid var(--line);border-radius:14px;padding:11px}.guide-status-grid p{margin:8px 0 0;font-size:.78rem;line-height:1.4;color:var(--ink-soft)}.guide-status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.7rem;font-weight:900}.guide-status.planned{background:#eef2ff;color:#4338ca}.guide-status.realized{background:#ecfeff;color:#0f766e}.guide-status.deferred{background:#fff7ed;color:#c2410c}.guide-status.pointed{background:#ecfdf5;color:#047857}
.guide-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px}.guide-table{width:100%;border-collapse:collapse;min-width:560px;background:#fff}.guide-table th,.guide-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.guide-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);background:var(--line-soft)}.guide-table td{font-size:.84rem;line-height:1.45}.guide-table tr:last-child td{border-bottom:0}
.guide-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.guide-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px}.guide-checklist label{display:flex;align-items:flex-start;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:13px;background:#fff;font-size:.82rem;line-height:1.4}
@media(max-width:760px){.guide-two-cols,.guide-grid-3{grid-template-columns:1fr}.guide-status-grid{grid-template-columns:1fr 1fr}.guide-search-card{top:69px}.guide-section{scroll-margin-top:185px}.guide-screen img{max-height:440px}.guide-checklist{grid-template-columns:1fr}}
@media(max-width:430px){.guide-search-card{padding:12px;top:64px}.guide-section{padding:16px;scroll-margin-top:178px}.guide-section-head{align-items:flex-start}.guide-step{width:38px;height:38px;flex-basis:38px}.guide-section h2{font-size:1.15rem}.guide-status-grid{grid-template-columns:1fr}.guide-note{grid-template-columns:1fr;gap:4px}.guide-screen{border-radius:14px}.guide-screen img{max-height:390px}.guide-actions{display:grid}.guide-actions .btn{width:100%}}
@media print{.topbar,.bottom-nav,.app-legal,.guide-search-card,.guide-actions{display:none!important}.container{max-width:none;padding:0}.guide-section{break-inside:avoid;box-shadow:none}.guide-section[hidden]{display:block!important}}

/* === V3.1.5 — recherche du guide === */
.guide-search-status{margin:8px 2px 0;font-size:.76rem;line-height:1.4;color:var(--ink-muted)}
.guide-section.guide-search-hit{border-color:#c7d2fe;box-shadow:0 0 0 2px rgba(99,102,241,.08),var(--shadow-sm)}

/* === V3.1.7 — répartition budget mois suivant / retards / années mouvements === */
.repartition-budget-period{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:center;margin-bottom:14px;background:linear-gradient(145deg,#fff 0%,#f8faff 100%)}
.repartition-budget-period>div{display:flex;flex-direction:column;gap:2px}
.repartition-budget-period>div>strong{font-size:1.15rem;letter-spacing:-.02em}
.repartition-budget-period>p{grid-column:1/-1;margin:4px 0 0;color:var(--ink-soft);line-height:1.5;font-size:.84rem}
.overdue-filter-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;margin-bottom:14px}
.overdue-filter-banner>span{grid-column:1/2;line-height:1.45}
.overdue-filter-banner>.btn{grid-column:2;grid-row:1/3}
@media(max-width:520px){.repartition-budget-period{grid-template-columns:1fr}.repartition-budget-period>.status-pill{justify-self:start}.repartition-budget-period>p{grid-column:1}.overdue-filter-banner{grid-template-columns:1fr}.overdue-filter-banner>span,.overdue-filter-banner>.btn{grid-column:1;grid-row:auto}.overdue-filter-banner>.btn{margin-top:6px}}

/* === V3.1.8 — répartition : navigation directe et ordre de calcul === */
#methode-repartition{scroll-margin-top:92px}
.calc-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:14px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--line-soft);font-size:.76rem;color:var(--ink-soft)}
.calc-flow span{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:750;color:var(--ink-soft)}
.calc-flow b{color:var(--primary-ink);font-weight:900}
@media(max-width:520px){.calc-flow{gap:5px;padding:9px}.calc-flow span{font-size:.7rem;padding:5px 7px}.calc-flow b{font-size:.72rem}}

/* === V3.1.9 — suppression rapide, période Répartition, libellés par famille === */
.tx-delete-form{display:inline-flex;margin:0 0 0 6px;position:relative;z-index:4;pointer-events:auto;vertical-align:middle}
.tx-delete-pill{min-height:28px;padding:4px 9px;border:1px solid #fecaca;border-radius:999px;background:#fff1f2;color:#b91c1c;font:inherit;font-size:.72rem;font-weight:800;line-height:1;cursor:pointer;white-space:nowrap}
.tx-delete-pill:focus-visible{outline:3px solid rgba(239,68,68,.18);outline-offset:2px}
@media(hover:hover){.tx-delete-pill:hover{background:#ffe4e6;border-color:#fda4af}}
.repartition-budget-period>.repartition-period-head{grid-column:1/-1;display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:12px}
.repartition-period-head>div{display:flex;flex-direction:column;gap:2px}.repartition-period-head>div>strong{font-size:1.15rem;letter-spacing:-.02em}
.repartition-period-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin:6px 0 2px}
.repartition-period-form .field{margin:0}.repartition-period-form .btn{min-height:50px}
@media(max-width:560px){.tx-delete-form{margin-left:3px}.tx-delete-pill{padding:4px 7px;font-size:.68rem}.repartition-budget-period>.repartition-period-head{flex-direction:column}.repartition-period-form{grid-template-columns:1fr 1fr}.repartition-period-form .btn{grid-column:1/-1;width:100%}}

/* === V3.1.10 — sélecteurs ancrés sous le champ === */
.budget-select-menu{overscroll-behavior:contain;scrollbar-gutter:stable}
@media(max-width:560px){
  .budget-select-menu{position:absolute;left:0;right:0;top:calc(100% + 7px);bottom:auto;max-height:min(320px,45vh);border-radius:15px;padding:7px;box-shadow:0 18px 46px rgba(15,23,42,.18)}
}

/* === V3.1.12 — Dashboard piloté par compte === */
.dashboard-account-help{margin:-2px 0 10px;color:var(--ink-muted);font-size:.78rem;line-height:1.45}
.dashboard-account-card{cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease,background .14s ease}
.dashboard-account-card.active{border-color:var(--primary);background:linear-gradient(145deg,#fff 0%,var(--primary-soft) 100%);box-shadow:0 0 0 2px rgba(79,70,229,.12),var(--shadow-sm)}
.dashboard-account-card.active .bank-balance-values>strong{color:var(--primary-ink)}
.dashboard-account-context{scroll-margin-top:86px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:10px 13px;border-radius:14px;background:var(--primary-soft);color:var(--primary-ink);font-size:.78rem}
.dashboard-account-context strong{font-size:.88rem;text-align:right}
@media(hover:hover){.dashboard-account-card:hover{transform:translateY(-1px);border-color:#c7d2fe;background:#fafaff}}
@media(max-width:520px){.dashboard-account-context{scroll-margin-top:78px}.dashboard-account-help{padding:0 2px}}

/* V3.1.16 — virements : pointage séparé source/destination + suppression */
.bank-event-row-actions{flex-wrap:wrap}.bank-event-row-actions .bank-event-main{min-width:0;flex:1 1 230px}.bank-event-row-actions .bank-event-amount{white-space:nowrap}.bank-event-actions{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}.bank-event-actions form{margin:0}.transfer-edit-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}.transfer-edit-heading>div{display:flex;flex-direction:column;gap:3px}.transfer-edit-heading small{color:var(--ink-muted)}
.transfer-pointing-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;padding-top:4px}.transfer-pointing-side{display:flex!important;flex-direction:row!important;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft,#f8f9ff)}.transfer-pointing-side>div{display:flex;flex-direction:column;gap:2px;min-width:0}.transfer-pointing-side>div>span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted)}.transfer-pointing-side>div>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-pointing-side>div>small{font-size:.78rem}.transfer-pointing-side.is-pointed{background:rgba(34,197,94,.06)}.transfer-pointing-side form{margin:0;flex:0 0 auto}
@media(max-width:680px){.bank-event-row-actions{align-items:flex-start}.bank-event-row-actions .bank-event-main{flex:1 1 calc(100% - 110px)}.bank-event-actions{width:100%;justify-content:stretch}.bank-event-actions .btn,.bank-event-actions form{flex:1}.bank-event-actions form .btn{width:100%}.transfer-edit-heading{align-items:flex-start}.transfer-pointing-grid{grid-template-columns:1fr}.transfer-pointing-side{flex-direction:column!important;align-items:stretch;justify-content:flex-start}.transfer-pointing-side>div{width:100%}.transfer-pointing-side>div>strong{white-space:normal;overflow:visible;text-overflow:clip}.transfer-pointing-side .btn,.transfer-pointing-side form{width:100%}.transfer-pointing-side form .btn{width:100%;margin-top:4px}}

/* === V3.2.0 — gestion mensuelle complète === */
.month-management-card{scroll-margin-top:86px}.month-status-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:.72rem;font-weight:900}.month-status-badge.is-open{background:var(--green-soft);color:#047857}.month-status-badge.is-closed{background:var(--primary-soft);color:var(--primary-ink)}
.month-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.month-check{display:flex;flex-direction:column;gap:4px;padding:11px;border:1px solid var(--line);border-radius:14px;background:#fff}.month-check span{font-size:.72rem;line-height:1.3;color:var(--ink-muted)}.month-check strong{font-size:1.05rem}.month-check.is-ok strong{color:var(--green)}
.month-close-details{border:1px solid var(--line);border-radius:14px;background:var(--line-soft);padding:11px 12px}.month-close-details>summary{cursor:pointer;font-weight:800;font-size:.82rem}.month-close-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:11px}.month-close-summary>div{display:flex;flex-direction:column;gap:3px;padding:9px;border-radius:11px;background:#fff}.month-close-summary span{font-size:.7rem;color:var(--ink-muted)}.month-close-summary strong{font-size:.86rem}
.month-balance-list{display:grid;gap:6px;margin-top:8px}.month-balance-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:9px 10px;border-radius:11px;background:#fff}.month-balance-list>div>span{font-weight:800}.month-balance-list>div>small{grid-column:1;color:var(--ink-muted);line-height:1.35}.month-balance-list>div>strong{grid-column:2;grid-row:1/3;align-self:center;font-size:.78rem;color:var(--green)}.month-balance-list>div>strong.has-gap{color:var(--red)}
.month-main-action{margin-top:10px}.month-closed-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}.month-prepared-inline{display:flex;align-items:center;gap:8px;flex:1 1 100%;padding:9px 10px;border-radius:12px;background:var(--green-soft);font-size:.78rem}.month-prepared-inline>span{flex:1;font-weight:800}.month-prepared-inline form{margin:0}
.month-preparation-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.month-prep-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.month-prep-heading>div{display:flex;flex-direction:column;gap:3px}.month-prep-heading small{color:var(--ink-muted);line-height:1.4}.month-prep-list{display:grid;gap:8px;margin-bottom:10px}.month-prep-row{border:1px solid var(--line);border-radius:14px;background:#fff;padding:10px}.month-prep-row.is-existing{opacity:.68;background:var(--line-soft)}.month-prep-select{display:flex;align-items:flex-start;gap:9px;cursor:pointer}.month-prep-select input{margin-top:3px}.month-prep-select>span{display:flex;flex-direction:column;gap:2px;min-width:0}.month-prep-select strong{overflow:hidden;text-overflow:ellipsis}.month-prep-select small{color:var(--ink-muted)}.month-prep-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:9px}.month-prep-fields .field{margin:0}.month-prep-fields label{font-size:.68rem}.month-prep-fields input,.month-prep-fields select{min-width:0;padding:9px 8px;font-size:.78rem}.month-prep-fields small{display:block;margin-top:3px;font-size:.65rem;color:var(--ink-muted)}
.category-envelope-card .eyebrow{margin-bottom:2px}.category-envelope-list{display:grid;gap:9px}.category-envelope-row{padding:11px;border:1px solid var(--line);border-radius:14px;background:#fff}.category-envelope-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.category-envelope-head>span:first-child{display:flex;align-items:center;gap:9px;min-width:0}.category-envelope-head>span:first-child>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.category-envelope-head small{color:var(--ink-muted);font-size:.7rem}.category-envelope-values{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;white-space:nowrap}.category-envelope-values strong{font-size:.9rem}.category-envelope-progress{height:7px;margin-top:8px;border-radius:999px;background:var(--line-soft);overflow:hidden}.category-envelope-progress>span{display:block;height:100%;border-radius:inherit}.danger-text{color:var(--red)!important}
.category-budget-form{margin:0 12px 10px;padding:11px;border:1px solid var(--line);border-radius:13px;background:var(--line-soft)}.category-budget-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.category-budget-head>div{display:flex;flex-direction:column;gap:2px}.category-budget-head small{font-size:.7rem;color:var(--ink-muted)}.switchline{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:800}.category-budget-form .field{margin-bottom:9px}
@media(max-width:700px){.month-prep-fields{grid-template-columns:1fr 1fr}.month-prep-fields .field:last-child{grid-column:1/-1}.month-close-summary{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.month-management-card{scroll-margin-top:78px}.month-check-grid{grid-template-columns:1fr}.month-check{flex-direction:row;align-items:center;justify-content:space-between}.month-close-summary{grid-template-columns:1fr 1fr}.month-balance-list>div{grid-template-columns:1fr}.month-balance-list>div>strong{grid-column:1;grid-row:auto}.month-closed-actions{display:grid}.month-closed-actions>.btn,.month-closed-actions>form,.month-closed-actions>form .btn{width:100%}.month-prepared-inline{display:grid}.month-prepared-inline form,.month-prepared-inline .btn{width:100%}.month-prep-heading{flex-direction:column}.month-prep-fields{grid-template-columns:1fr 1fr}.category-envelope-head{align-items:flex-start}.category-envelope-values{white-space:normal;max-width:45%}}
@media(max-width:390px){.month-close-summary,.month-prep-fields{grid-template-columns:1fr}.month-prep-fields .field:last-child{grid-column:1}.category-envelope-head{display:grid}.category-envelope-values{align-items:flex-start;text-align:left;max-width:none}}
.month-history{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}.month-history>strong{width:100%;font-size:.74rem}.month-history>span{font-size:.7rem;color:var(--ink-muted)}


/* V3.2.2 — Virements lisibles et budgets par libellé */
.bank-event-inline-row .bank-event-main{min-width:0;flex:1 1 auto}.bank-event-inline-row .bank-event-amount{flex:0 0 auto;white-space:nowrap;font-size:1.08rem;font-variant-numeric:tabular-nums}
.label-budget-settings-list{display:flex;flex-direction:column;gap:9px;margin-top:12px}.label-budget-settings-row{border:1px solid var(--line);border-radius:14px;background:var(--line-soft);overflow:hidden}.label-budget-settings-row>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;cursor:pointer;list-style:none}.label-budget-settings-row>summary::-webkit-details-marker{display:none}.label-budget-settings-row>summary>span:nth-child(2){display:flex;flex-direction:column;min-width:0;gap:2px}.label-budget-settings-row>summary small{color:var(--ink-muted);font-size:.74rem}.label-budget-edit-form{padding:0 12px 10px}.label-budget-delete-form{padding:0 12px 12px}.label-budget-empty{margin:10px 0 0}.label-budget-dashboard-row{padding:10px;border:1px solid var(--line-soft);border-radius:12px}.label-budget-dashboard-row.is-overrun{background:rgba(239,68,68,.06);border-left:3px solid var(--red)}.label-budget-dashboard-row .bar-label{align-items:flex-start}.label-budget-dashboard-row .bar-label .v{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.label-budget-dashboard-row .bar-label .v span{color:var(--ink-muted);font-size:.72rem;font-weight:500}.label-budget-dashboard-meta{font-size:.75rem;margin-top:4px;color:var(--ink-muted)}
@media(max-width:680px){.bank-event-inline-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:8px}.bank-event-inline-row .bank-event-main{width:100%}.bank-event-inline-row .bank-event-amount{display:block;width:100%;font-size:1.2rem;line-height:1.2;text-align:left;white-space:nowrap}.label-budget-dashboard-row .bar-label{gap:8px}.label-budget-dashboard-row .bar-label .v{align-items:flex-end;font-size:.9rem}.label-budget-dashboard-row .bar-label .v span{white-space:normal;text-align:right;max-width:160px}}


/* === V3.3.2 — Objectifs d’épargne : UX desktop === */
@media(min-width:980px){
  .container.savings-page-container{max-width:1180px;padding-left:28px;padding-right:28px}
}
.savings-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.savings-page-header>div{min-width:0}.savings-new-goal{flex:0 0 auto;white-space:nowrap}
.savings-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 16px}
.savings-overview>div{padding:15px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
.savings-overview span,.savings-overview small{display:block;color:var(--ink-muted);font-size:.74rem}.savings-overview strong{display:block;margin:5px 0 3px;font-size:1.12rem;letter-spacing:-.02em}
.savings-layout.is-browsing{grid-template-columns:1fr}.savings-layout.is-browsing .savings-goal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.savings-layout.is-editing{grid-template-columns:minmax(0,1.55fr) minmax(340px,.7fr);gap:18px}.savings-layout.is-editing .savings-goal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.savings-goals-pane{min-width:0}.savings-editor-pane{min-width:0}.savings-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 2px 10px}.savings-editor-head h2{margin:0;font-size:1.25rem}.savings-editor-head .eyebrow{margin-bottom:3px}
.savings-goal-card{display:flex;flex-direction:column;min-width:0}.savings-goal-card .savings-card-actions{margin-top:auto;padding-top:14px}.savings-card-actions .btn{min-height:40px}.savings-goal-title{min-width:0}.savings-goal-title h2{overflow-wrap:anywhere}
.savings-empty .btn{margin-top:12px}
@media(max-width:979px){.savings-layout.is-editing,.savings-layout.is-browsing{grid-template-columns:1fr}.savings-layout.is-browsing .savings-goal-grid,.savings-layout.is-editing .savings-goal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.savings-form{position:static}}
@media(max-width:620px){.savings-page-header{align-items:stretch;flex-direction:column}.savings-new-goal{width:100%}.savings-overview{grid-template-columns:1fr 1fr}.savings-overview>div:last-child{grid-column:1/-1}.savings-layout.is-browsing .savings-goal-grid,.savings-layout.is-editing .savings-goal-grid{grid-template-columns:1fr}.savings-editor-head{align-items:center}}

/* === V3.3.3 — Rapprochement bancaire : UX mobile isolée === */
.reconcile-page{display:grid;gap:14px}
.reconcile-page .page-header{margin-bottom:0}
.reconcile-main-card{margin:0}
.reconcile-account-form .field{margin-bottom:0}
.reconcile-adjust-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft)}
.input-unit{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg-elev);transition:border-color .15s,box-shadow .15s}
.input-unit:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.input-unit input{border:0!important;border-radius:0!important;box-shadow:none!important;min-width:0}
.input-unit>span{flex:0 0 auto;padding:0 14px;color:var(--ink-muted);font-weight:800}
.reconcile-review{min-width:0}
.reconcile-review-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 0 10px}
.reconcile-review-heading{display:flex;align-items:center;gap:11px;min-width:0}
.reconcile-review-alert{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:var(--primary-soft);color:var(--primary-ink);font-weight:900}
.reconcile-review-heading>div{min-width:0}
.reconcile-review-heading h2{margin:0;font-size:1.05rem;line-height:1.2;letter-spacing:-.015em}
.reconcile-review-heading p{margin:4px 0 0;color:var(--ink-muted);font-size:.78rem;line-height:1.35}
.reconcile-review-count{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary-ink);font-size:.82rem;font-weight:900;white-space:nowrap}
.reconcile-review-card{padding:0 16px;overflow:hidden}
.reconcile-review-list{display:grid}
.reconcile-review-row{display:grid;grid-template-columns:40px minmax(0,1fr) max-content;align-items:center;gap:11px;min-width:0;padding:13px 0;border-bottom:1px solid var(--line-soft)}
.reconcile-review-row:last-child{border-bottom:0}
.reconcile-review-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;font-size:1rem;font-weight:800}
.reconcile-review-icon-event{background:var(--primary-soft);color:var(--primary-ink)}
.reconcile-review-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.reconcile-review-copy strong{display:block;min-width:0;font-size:.91rem;line-height:1.28;overflow-wrap:anywhere}
.reconcile-review-copy small{display:block;color:var(--ink-muted);font-size:.72rem;line-height:1.35;overflow-wrap:anywhere}
.reconcile-review-amount{font-size:.91rem;line-height:1.2;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.reconcile-review-amount.is-income{color:#047857}
.reconcile-review-amount.is-expense{color:#b91c1c}

@media(max-width:560px){
  .reconcile-page{gap:12px}
  .reconcile-page-header h1{font-size:1.45rem}
  .reconcile-page-header .muted{font-size:.84rem;line-height:1.45}
  .reconcile-main-card{padding:16px}
  .reconcile-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .reconcile-summary>div{padding:10px 9px;min-width:0}
  .reconcile-summary span{font-size:.65rem;line-height:1.25}
  .reconcile-summary strong{font-size:.82rem;white-space:nowrap}
  .reconcile-review-head{align-items:flex-start}
  .reconcile-review-heading{align-items:flex-start}
  .reconcile-review-card{padding:0 14px}
  .reconcile-review-row{grid-template-columns:38px minmax(0,1fr) max-content;gap:9px;padding:12px 0}
  .reconcile-review-icon{width:38px;height:38px;border-radius:11px}
  .reconcile-review-copy strong{font-size:.88rem}
  .reconcile-review-copy small{font-size:.69rem}
  .reconcile-review-amount{font-size:.88rem}
}

@media(max-width:390px){
  .reconcile-review-head{gap:8px}
  .reconcile-review-alert{width:34px;height:34px;flex-basis:34px}
  .reconcile-review-heading{gap:8px}
  .reconcile-review-heading h2{font-size:.98rem}
  .reconcile-review-heading p{font-size:.72rem}
  .reconcile-review-count{min-width:34px;height:34px;font-size:.76rem}
  .reconcile-review-card{padding:0 12px}
  .reconcile-review-row{grid-template-columns:34px minmax(0,1fr);align-items:start;gap:8px 9px}
  .reconcile-review-icon{width:34px;height:34px;border-radius:10px;grid-row:1/3}
  .reconcile-review-amount{grid-column:2;text-align:left;margin-top:-1px}
}

/* === V3.3.5 — Mouvements / virements === */
.movement-filter-card{overflow:visible}
.multi-filter-grid{align-items:start}
.multi-filter[open]>.multi-filter-menu{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 46px rgba(15,23,42,.18);padding:7px 8px;overflow:auto}
.multi-filter[open]>.multi-filter-menu .multi-filter-group-title{top:-7px;margin-left:-1px;margin-right:-1px}
.pointing-filter-banner{display:grid;gap:4px;margin-bottom:14px}
.pointing-filter-banner>span{line-height:1.45}
.future-date-inline{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:var(--amber-soft);color:#92400e;font-size:.68rem;font-weight:800;white-space:nowrap}
.bank-event-inline-tail{display:flex!important;flex-direction:column!important;align-items:flex-end;gap:4px;flex:0 0 auto}
.bank-event-manage-link{position:relative;z-index:2;color:var(--primary-ink);font-size:.72rem;font-weight:800;text-decoration:none;white-space:nowrap}
.bank-event-manage-link:hover{text-decoration:underline}
.movement-filter-empty{margin-top:14px}
@media(max-width:680px){
  .bank-event-inline-tail{align-items:flex-start;width:100%}
  .bank-event-manage-link{font-size:.76rem}
  .future-date-inline{white-space:normal}
}


/* === V3.3.6 — Répartition compte commun === */
.repartition-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px}
.repartition-summary-card{display:flex;flex-direction:column;gap:4px;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
.repartition-summary-card>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:var(--ink-muted)}
.repartition-summary-card>strong{font-size:1.22rem;letter-spacing:-.025em}.repartition-summary-card>small{color:var(--ink-muted);line-height:1.35}
.repartition-summary-common{background:linear-gradient(145deg,var(--primary-soft),#fff);border-color:#c7d2fe}
.repartition-income-list{padding-top:4px;padding-bottom:4px}.repartition-income-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-soft);scroll-margin-top:110px}.repartition-income-row:last-child{border-bottom:0}
.repartition-income-main{min-width:0}.repartition-income-main strong,.repartition-income-main small{display:block}.repartition-income-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repartition-income-main small{margin-top:3px;color:var(--ink-muted);font-size:.72rem;line-height:1.35}
.repartition-income-amount{text-align:right;white-space:nowrap}.repartition-income-amount strong,.repartition-income-amount small{display:block}.repartition-income-amount small{color:var(--ink-muted);font-size:.68rem;margin-top:2px}
.repartition-income-actions{display:flex;align-items:center;gap:5px}.repartition-income-actions form{margin:0}.repartition-delete-pill{min-width:38px;padding-left:8px;padding-right:8px}
.repartition-income-empty{margin-top:0}.section-title>div>.muted{margin:3px 0 0;font-size:.78rem}
@media(max-width:720px){.repartition-summary-grid{grid-template-columns:1fr}.repartition-income-row{grid-template-columns:auto minmax(0,1fr) auto}.repartition-income-amount{grid-column:2;text-align:left}.repartition-income-actions{grid-column:3;grid-row:1/3;flex-direction:column;align-items:stretch}.repartition-income-actions .btn{min-width:42px}.section-title#revenus-repartition{align-items:flex-start}.section-title#revenus-repartition>.btn{flex:0 0 auto}}
@media(max-width:430px){.section-title#revenus-repartition{display:grid;grid-template-columns:1fr}.section-title#revenus-repartition>.btn{width:100%;margin-top:7px}.repartition-income-row{grid-template-columns:auto minmax(0,1fr);align-items:start}.repartition-income-amount{grid-column:2}.repartition-income-actions{grid-column:1/-1;grid-row:auto;flex-direction:row;justify-content:flex-end}.repartition-income-actions .btn{min-width:0}}


/* === V3.3.7 — Dashboard réellement piloté par compte === */
.dashboard-overview-card{min-width:0;overflow:hidden}
.dashboard-year-chart{position:relative;width:100%;max-width:100%;min-width:0;height:260px;overflow:hidden}
.dashboard-year-chart canvas{display:block;max-width:100%}
.dashboard-year-legend{display:flex;gap:10px 16px;justify-content:center;align-items:center;margin-top:12px;font-size:.76rem;flex-wrap:wrap}
.dashboard-year-legend>span{display:grid;grid-template-columns:auto auto;grid-template-areas:'dot label' 'dot value';column-gap:6px;align-items:center}
.dashboard-year-legend i{grid-area:dot;width:11px;height:11px;border-radius:3px;display:inline-block}
.dashboard-year-legend span span{grid-area:label;color:var(--ink-muted)}
.dashboard-year-legend strong{grid-area:value;font-size:.78rem}
@media(max-width:520px){.dashboard-year-chart{height:225px}.dashboard-year-legend{justify-content:flex-start}.dashboard-year-legend>span{flex:1 1 90px}}
