/* Lunel — surfaces, typographie et navigation. Les traitements métier restent indépendants. */
:root {
  color-scheme: light;
  --font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", sans-serif;
  --paroza-indigo: #0066cc;
  --paroza-indigo-dark: #0055ad;
  --paroza-violet: #0071e3;
  --paroza-blue: #0071e3;
  --paroza-purple: #0066cc;
  --paroza-primary: #0066cc;
  --paroza-primary-muted: #eaf3ff;
  --paroza-gradient: linear-gradient(#0077ed, #0066cc);
  --bg: #f5f5f7;
  --bg-page: #f5f5f7;
  --surface: #fff;
  --text: #1d1d1f;
  --ink: #1d1d1f;
  --text-muted: #626269;
  --border: #e5e5e9;
  --focus: #0071e3;
  --shadow-soft: 0 2px 10px rgb(0 0 0 / 2%);
  --shadow-lift: 0 16px 48px rgb(0 0 0 / 9%);
  --shadow-pill: none;
  --radius-xl: 24px;
  --radius-lg: 20px;
  --radius-md: 12px;
  --sidebar-w: 236px;
  --ui-glass: rgb(250 250 252 / 88%);
  --ui-ease: cubic-bezier(.2,.7,.2,1);
}
body { font-family: var(--font); letter-spacing: -.012em; }
button, input, textarea, select { font-family: inherit; }
button, a, input, select, textarea, summary { touch-action: manipulation; }
button, a { -webkit-tap-highlight-color: rgb(0 102 204 / 10%); }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--paroza-primary); }
.paroza-skip { position: fixed; z-index: 10000; top: 12px; left: 12px; padding: 12px 20px; border-radius: 12px; background: #fff; transform: translateY(-160%); box-shadow: var(--shadow-lift); }
.paroza-skip:focus { transform: none; }
body .btn { min-height: 44px; padding: .65rem 1.25rem; font-weight: 500; font-size: .9375rem; letter-spacing: -.012em; border-radius: 999px; box-shadow: none; transition: background .18s, color .18s, opacity .18s; }
body .btn:hover { transform: none; box-shadow: none; }
body :is(.btn--primary,.btn--gradient,.btn--dark) { background: #0071e3; border: 1px solid transparent; color: #fff; }
body :is(.btn--primary,.btn--gradient,.btn--dark):hover { background: #0066cc; }
body :is(.btn--outline,.btn--outline-dark) { border: 1px solid #c8d8ec; background: transparent; color: #0066cc; }
body :is(.btn--ghost,.btn--secondary) { background: #edf3fa; border-color: transparent; color: #0066cc; }
body :is(.btn--ghost,.btn--secondary,.btn--outline):hover { background: #e1edfa; }
body .btn--danger { background: #b42318; color: #fff; }
body .btn:active { opacity: .72; }
body :is(.form-input,.form-control,.famille-v2-input) { min-height: 48px; border: 1px solid #c7c7cc; border-radius: 12px; background: #fff; color: #1d1d1f; padding: .75rem .9rem; box-shadow: none; font-size: 1rem; }
body :is(.form-input,.form-control,.famille-v2-input):focus { border-color: #0071e3; box-shadow: 0 0 0 3px rgb(0 113 227 / 13%); }
body .form-label { font-size: .875rem; font-weight: 500; color: #45454b; }
body .form-stack { gap: 1.2rem; }
body :is(.alert,.form-errors) { border-radius: 14px; box-shadow: none; }
body :is(.section__title,.dash-title,.profil-card__title) { letter-spacing: -.035em; }
/* Compte public */
.paroza-public { background: #f5f5f7; }
.paroza-public .site-header { background: rgb(255 255 255 / 86%); border-bottom: 1px solid var(--border); backdrop-filter: blur(20px); }
.paroza-public .site-header__inner { max-width: 1120px; min-height: 72px; padding: .5rem 24px; }
.paroza-public .site-header__name { font-size: 1.35rem; font-weight: 600; letter-spacing: -.04em; }
.paroza-public .site-header__logo-mark { width: 29px; height: 29px; }
.paroza-public .page-main { padding: 64px 20px; }
.paroza-public .page-card--form { max-width: 480px; padding: 40px; border: 1px solid rgb(0 0 0 / 4%); border-radius: 28px; box-shadow: 0 12px 45px rgb(0 0 0 / 4%); }
.paroza-public .page-card--form .section__title { font-size: 2rem; margin-bottom: 28px; text-align: center; }
.paroza-public .site-footer { background: transparent; border-top: 0; color: var(--text-muted); }
/* Application : navigation latérale et barre de titre */
body.app-body { background: var(--bg-page); }
body.app-body .app-sidebar { background: #ededf0; border-right: 1px solid #dddde2; padding: 30px 14px 20px; gap: 18px; }
body.app-body .app-sidebar__brand { padding: 0 12px 12px; gap: 10px; }
body.app-body .app-sidebar__mark { width: 31px; height: 31px; }
body.app-body .app-sidebar__name { font-size: 1.45rem; font-weight: 600; letter-spacing: -.05em; }
body.app-body .app-sidebar__nav { margin: 0; gap: 5px; }
body.app-body .app-sidebar__link { min-height: 46px; padding: 10px 13px; margin: 0; border: 0; border-radius: 10px; color: #505057; font-size: .9rem; gap: 12px; }
body.app-body .app-sidebar__link:hover { background: rgb(0 0 0 / 4%); }
body.app-body .app-sidebar__link--current { background: #fff; color: #0066cc; font-weight: 600; box-shadow: 0 1px 5px rgb(0 0 0 / 5%); }
body.app-body .app-sidebar__icon { width: 21px; height: 21px; opacity: 1; }
body.app-body .app-sidebar__space { background: rgb(255 255 255 / 65%); border: 1px solid rgb(0 0 0 / 4%); border-radius: 14px; padding: 14px; box-shadow: none; }
body.app-body .app-sidebar__space-title { font-size: .8125rem; }
body.app-body .app-sidebar__logout { border: 0; background: transparent; font-weight: 400; min-height: 44px; }
body.app-body .app-sidebar__plan-hub { background: transparent; border: 0; box-shadow: none; border-radius: 0; }
body.app-body .app-sidebar__plan-hub-row { border-radius: 10px; min-height: 44px; }
body.app-body .app-sidebar__plan-hub-row--current { background: #fff; color: #0066cc; box-shadow: none; }
body.app-body .app-sidebar__plan-hub-ico { background: transparent; color: #0066cc; }
body.app-body .app-sidebar__plan-hub-row--current :is(.app-sidebar__plan-hub-title,.app-sidebar__plan-hub-hint) { color: #0066cc; }
body.app-body .app-topbar-desk { border: 0; background: #f5f5f7; isolation: isolate; padding: 30px 0 24px; margin: 0; }
body.app-body .app-topbar-desk__title { font-family: var(--font); font-size: clamp(1.7rem, 2.5vw, 2.25rem); font-weight: 650; letter-spacing: -.045em; }
body.app-body .app-topbar-desk__sub { font-size: .875rem; margin-top: 8px; max-width: 48rem; color: var(--text-muted); }
body.app-body .app-topbar-desk__profile { background: #fff; border: 0; box-shadow: none; border-radius: 999px; padding: 6px 16px 6px 6px; }
body.app-body :is(.app-topbar-desk__avatar-ring,.app-topbar-desk__avatar--fallback,.app-topbar-mobile__avatar--fallback) { background: #e4ebf4; color: #37547a; }
body.app-body .app-topbar-desk__avatar-ring { padding: 0; }
body.app-body :is(.app-ico-btn,.app-topbar-mobile__ico-btn,.app-notif-panel__close) { min-width: 44px; min-height: 44px; }
body.app-body .app-site-footer { border: 0; color: #77777d; font-size: .75rem; padding: 24px 0 12px; }
/* Surfaces communes, listes et données */
body.app-body :is(.dash-board-card,.dash-mock-card,.page-card,.profil-card,.family-card,.famille-v2-card,.docs-kpi,.docs-aside-card,.depenses-stat-card,.depense-maquette-card,.decompte-aside-card,.decompte-panel) {
  background: #fff; border: 1px solid rgb(0 0 0 / 4%); border-radius: 20px; box-shadow: var(--shadow-soft);
}
body.app-body :is(.dash-board-card,.profil-card,.famille-v2-card) { padding: 24px; }
body.app-body :is(.depenses-page,.decompte-page,.docs-page--maquette,.famille-page--maquette,.plan-page) { background: transparent; }
body.app-body :is(.dash-board-card__title,.famille-v2-card__title,.docs-aside-card__title) { font-size: 1.1rem; font-weight: 600; letter-spacing: -.025em; }
body.app-body :is(.depenses-stat-card__value,.docs-kpi__val) { font-size: clamp(1.65rem, 2.3vw, 2.2rem); font-weight: 600; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
body.app-body :is(.depenses-stat-card__label,.docs-kpi__label) { color: #626269; font-weight: 500; }
body.app-body :is(.depenses-stat-card__hint,.docs-kpi__hint) { color: #6b6b73; }
body.app-body :is(.depenses-stat-card__ico--wallet,.decompte-maquette-stat-ico--purple) { background: #eaf3ff; color: #0066cc; }
body.app-body :is(.depenses-table,.docs-table,.decompte-maquette-table) { border-collapse: collapse; }
body.app-body :is(.depenses-table,.docs-table,.decompte-maquette-table) th { background: #fafafb; color: #626269; font-weight: 500; padding-top: 15px; padding-bottom: 15px; border-color: #ececef; }
body.app-body :is(.depenses-table,.docs-table,.decompte-maquette-table) td { border-color: #ececef; padding-top: 18px; padding-bottom: 18px; font-variant-numeric: tabular-nums; }
body.app-body :is(.depenses-table,.docs-table,.decompte-maquette-table) tbody tr:hover { background: #f8fbff; }
body.app-body :is(.depenses-tabs,.docs-tabs,.famille-v2-tabs) { background: #e9e9ed; border-radius: 11px; padding: 4px; border: 0; gap: 4px; }
body.app-body :is(.depenses-tabs__tab,.docs-tabs__tab,.famille-v2-tabs__btn) { border: 0; border-radius: 8px; color: #505057; min-height: 44px; }
body.app-body :is(.depenses-tabs__tab--active,.docs-tabs__tab--active,.famille-v2-tabs__btn.is-active) { background: #fff; color: #1d1d1f; box-shadow: 0 2px 5px rgb(0 0 0 / 7%); }
body.app-body :is(.famille-v2-child,.famille-v2-card--nested) { background: #f5f5f7; box-shadow: none; border: 0; border-radius: 12px; }
body.app-body :is(.famille-v2-role--owner,.famille-v2-you,.docs-pill--expense) { color: #005cb8; background: #eaf3ff; }
body.app-body .famille-v2-lock-note { color: #505057; background: #f5f5f7; border-color: #e5e5e9; }
body.app-body :is(.docs-action-btn,.famille-v2-icon-btn,.famille-v2-dialog__close,.docs-preview-dialog__close) { min-width: 44px; min-height: 44px; }
body.app-body :is(.famille-v2-dialog,.docs-preview-dialog,.app-push-modal__card) { border: 1px solid #e5e5e9; background: #fff; border-radius: 24px; box-shadow: 0 24px 100px rgb(0 0 0 / 20%); }
body.app-body :is(.famille-v2-dialog,.docs-preview-dialog)::backdrop { background: rgb(0 0 0 / 35%); backdrop-filter: blur(5px); }
body.app-body .app-notif-panel { border-color: #e5e5e9; background: #fff; box-shadow: var(--shadow-lift); border-radius: 20px; }
body.app-body .app-notif-panel__head { background: #fff; }
/* Accueil */
body.app-body .dash-board { gap: 24px; }
body.app-body .dash-board__hero { background: #eaf3ff; border: 0; padding: 26px 28px; gap: 20px; box-shadow: none; }
body.app-body .dash-board__hero-ico { width: 54px; height: 54px; border-radius: 16px; background: #fff; color: #0066cc; }
body.app-body .dash-board__hero-kicker { font-size: .6875rem; letter-spacing: .075em; color: #486887; }
body.app-body .dash-board__hero-title { font-size: 1.35rem; letter-spacing: -.03em; margin-top: 5px; }
body.app-body .dash-board__hero-sub { font-size: .875rem; margin-top: 4px; color: #52697f; }
body.app-body .dash-board__hero-cta { background: #fff; border: 0; font-size: .875rem; }
body.app-body .dash-board__grid { gap: 24px; grid-template-rows: auto auto; }
body.app-body .dash-board-card__head { margin-bottom: 20px; }
body.app-body .dash-board-card__link { font-size: .8125rem; font-weight: 400; }
body.app-body .dash-board-card__foot { font-size: .875rem; padding-top: 16px; margin-top: 16px; font-weight: 400; }
body.app-body .dash-board-week { gap: 6px; margin: 0 0 18px; }
body.app-body .dash-board-day { border-radius: 12px; padding: 12px 2px; background: #f5f5f7; gap: 8px; }
body.app-body .dash-board-day--active { background: #0071e3; color: #fff; box-shadow: none; }
body.app-body .dash-board-day__num { font-size: 1.125rem; }
body.app-body .dash-board-day__dow { font-size: .625rem; }
body.app-body :is(.dash-board-exp__row,.dash-board-msg__row,.dash-board-docs__row) { padding-top: 14px; padding-bottom: 14px; }
body.app-body :is(.dash-board-exp__label,.dash-board-msg__from,.dash-board-docs__name) { font-size: .9375rem; font-weight: 500; }
body.app-body :is(.dash-board-msg__snippet,.dash-board-exp__meta,.dash-board-docs__sub) { font-size: .8125rem; color: #626269; }
body.app-body .dash-board-exp__price { font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; }
body.app-body .dash-board-exp__price--violet { color: #0066cc; }
body.app-body .dash-board-msg__avatar { border-radius: 50%; background: #e7edf5; color: #45617f; }
body.app-body .dash-board-docs__pdf { background: #fff0ee; color: #c8463d; border-radius: 10px; }
/* Planning : couleurs de garde conservées, outils allégés */
body.app-body :is(.plan-cal-toolbar,.plan-cal-main,.plan-cal-aside,.plan-card,.plan-panel,.plan-modal__dialog) { background: #fff; border-color: #e5e5e9; border-radius: 18px; box-shadow: none; }
body.app-body .plan-cal-toolbar { padding: 14px 18px; margin-bottom: 16px; }
body.app-body :is(.plan-btn,.plan-cal-nav-btn) { min-height: 44px; border-radius: 10px; }
body.app-body .plan-btn--primary { background: #0071e3; border-color: #0071e3; color: #fff; }
body.app-body :is(.plan-title,.plan-cal-title) { letter-spacing: -.035em; }
/* Messages */
body.app-body .comm-app { --body-font: var(--font); --border-color: #e5e5e9; --chat-text-bg: #e9e9ec; }
body.app-body .comm-app__wrapper { background: #fff; border: 1px solid #e5e5e9; border-radius: 20px; }
body.app-body .comm-app :is(.conversation-area,.detail-area) { background: #fafafb; }
body.app-body .comm-app .chat-area { background: #fff; }
body.app-body .comm-app .chat-area-header { background: rgb(255 255 255 / 92%); border-color: #e5e5e9; }
body.app-body .comm-app .chat-msg-text { border-radius: 18px; box-shadow: none; }
body.app-body .comm-app .chat-msg.owner .chat-msg-text { background: var(--theme-color); color: #fff; }
body.app-body .comm-chat .comm-msg__bubble { background: #e9e9ec; box-shadow: none; }
body.app-body .comm-chat .comm-msg--mine .comm-msg__bubble { background: var(--msg-bubble-bg, #0071e3); color: var(--msg-bubble-fg, #fff); box-shadow: none; }
/* Desktop : rythme plus aéré, contenu scrollable sans le tronquer */
@media (min-width: 960px) {
  body.app-body .app-main { padding: 0 clamp(24px,3vw,48px) 16px; }
  body.app-body .app-main:has(> main.dash-page--board) { overflow-y: auto; }
  body.app-body .app-main > main.dash-page--board.dash-page--accueil.page-main--dashboard { overflow: visible; flex: 0 0 auto; padding: 0 0 12px; }
  body.app-body .dash-board__grid { flex: 0 0 auto; }
  body.app-body .dash-board__cell { min-height: 270px; }
  body.app-body .app-main:has(> main.plan-page) > main.page-main--dashboard.plan-page { padding: 0 0 12px; }
  body.app-body .page-main--dashboard:not(.dash-page--board):not(.plan-page):not(.comm-page) { padding-top: 8px; }
}
/* Mobile / PWA : barre de navigation fixe, zones tactiles et safe areas */
@media (max-width: 959.98px) {
  body.app-body { --mobile-float-gutter: 12px; --mobile-dock-bottom: max(10px,env(safe-area-inset-bottom, 0px)); }
  body.app-body .app-mobile-chrome { --mobile-header-gap: 0px; --mobile-bar-h: 64px; --mobile-greet-gap: 18px; }
  body.app-body .app-topbar-mobile--glass { top: 0; left: 0; width: 100%; max-width: none; transform: none; border-radius: 0; padding: calc(env(safe-area-inset-top,0px) + 10px) 16px 10px; min-height: calc(64px + env(safe-area-inset-top,0px)); background: var(--ui-glass); border: 0; border-bottom: 1px solid rgb(0 0 0 / 6%); box-shadow: none; backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); }
  body.app-body .app-topbar-mobile__name { font-size: 1.2rem; font-weight: 600; letter-spacing: -.045em; }
  body.app-body .app-topbar-mobile__page-title { font-size: 1.0625rem; font-weight: 600; }
  body.app-body .app-topbar-mobile__back { min-width: 44px; min-height: 44px; color: #0066cc; }
  body.app-body .app-topbar-mobile__mark { width: 26px; height: 26px; }
  body.app-body .app-topbar-mobile__actions { gap: 0; }
  body.app-body .app-topbar-mobile__user { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  body.app-body .app-mobile-greet { padding: 12px 20px 4px; }
  body.app-body .app-mobile-greet__title { font-size: 1.875rem; font-weight: 650; letter-spacing: -.045em; }
  body.app-body .app-main { padding-bottom: calc(110px + env(safe-area-inset-bottom,0px)); }
  body.app-body .page-main--dashboard:not(.comm-page) { padding-left: 16px; padding-right: 16px; }
  body.app-body .dash-board { gap: 16px; }
  body.app-body .dash-board__grid { gap: 16px; grid-template-columns: 1fr; }
  body.app-body .dash-board__cell { grid-column: auto; grid-row: auto; }
  body.app-body .dash-board-card { padding: 20px; border-radius: 20px; }
  body.app-body .dash-board__hero { padding: 22px; gap: 14px; }
  body.app-body .dash-board__hero-main { flex-basis: calc(100% - 75px); }
  body.app-body .dash-board__hero-title { font-size: 1.2rem; }
  body.app-body .dash-board__hero-cta { margin-left: 0; width: 100%; }
  body.app-body .dash-board-card__head { margin-bottom: 18px; }
  body.app-body .dash-board-card__link { min-height: 32px; display: inline-flex; align-items: center; }
  body.app-body .app-dock--switcher { --c-content: #63636a; --c-action: #0066cc; --dock-expand-duration: 200ms; --dock-expand-ease: var(--ui-ease); width: min(calc(100% - 24px),460px); }
  body.app-body .app-dock__shell { border-radius: 26px; background: rgb(250 250 252 / 94%); border: 1px solid rgb(0 0 0 / 8%); box-shadow: 0 6px 32px rgb(0 0 0 / 9%); backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); }
  body.app-body .app-dock__label { font-size: .6875rem; font-weight: 500; letter-spacing: -.015em; }
  body.app-body .app-dock__option { min-height: 58px; border-radius: 16px; }
  body.app-body .app-dock__option--current { color: #0066cc; }
  body.app-body .app-dock__bar::before { background: #e6edf6; box-shadow: none; border-radius: 18px; }
  body.app-body .app-dock__extra { min-height: 62px; gap: 6px; }
  body.app-body .app-dock__extra-label { font-size: .6875rem; line-height: 1.25; }
  body.app-body .app-dock__panel-grid--plan { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
  body.app-body .app-dock__panel-grid--more { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
  body.app-body .app-dock__panel-grid--plan .app-dock__extra { min-height: 62px; }
  body.app-body .app-dock__panel-grid--plan .app-dock__extra-label { font-size: .6875rem; }
  body.app-body .app-dock--expanded .app-dock__drawer { max-height: min(360px,55dvh); overflow-y: auto; }
  body.app-body :is(input,select,textarea) { font-size: max(16px,1em); }
  body.app-body .app-site-footer { padding: 24px 16px; }
  body.app-body .comm-app__wrapper { border-radius: 0; border: 0; }
  body.app-body .famille-v2-card { padding: 20px; }
  body.app-body.comm-keyboard-open .app-topbar-mobile--glass { top: var(--vv-offset-top,0px); }
}
@media (max-width: 420px) {
  .paroza-public .page-card--form { padding: 28px 22px; }
  .paroza-public .site-header__inner { padding-inline: 16px; }
  .paroza-public .site-nav { gap: 8px; }
  .paroza-public .site-nav__link { font-size: .8125rem; }
  body.app-body .app-topbar-mobile__ico-btn { min-width: 36px; }
}
/* La WebView native possède déjà sa propre navigation et ses marges. */
body.app-body--ios-embed .app-main { padding-bottom: 0; }
body.app-body--ios-embed :is(.app-mobile-chrome,.app-dock,.app-topbar-desk,.app-sidebar) { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-transparency: reduce) {
  body.app-body :is(.app-topbar-mobile--glass,.app-dock__shell),.paroza-public .site-header { background: #fafafc; backdrop-filter: none; -webkit-backdrop-filter: none; }
}
@media print {
  .paroza-skip { display: none; }
  body.app-body .app-main { height: auto; overflow: visible; margin: 0; width: 100%; }
}
/* Ajustements vérifiés sur les écrans métier. */
body.app-body .depenses-stat-card { position: relative; display: block; padding: 20px; min-width: 0; }
body.app-body .depenses-stat-card__body { min-width: 0; }
body.app-body :is(.depenses-stat-card__ico,.decompte-maquette-stat-ico) { position: absolute; top: 18px; right: 16px; width: 28px; height: 28px; border-radius: 8px; }
body.app-body .depenses-stat-card__ico svg { width: 19px; height: 19px; }
body.app-body .depenses-stat-card__label { max-width: calc(100% - 26px); min-height: 34px; font-size: .65rem; line-height: 1.5; }
body.app-body .depenses-stat-card__value { white-space: nowrap; font-size: clamp(1.25rem,1.85vw,1.8rem); line-height: 1.3; margin: 10px 0 6px; }
body.app-body .depenses-stat-card__hint { font-size: .75rem; }
body.app-body .depenses-filter-select__control { padding-left: 2.8rem; }
body.app-body .depenses-tab { border: 0; border-radius: 8px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 14px; font-size: .8125rem; color: #626269; }
body.app-body .depenses-tab--current { color: #1d1d1f; background: #fff; box-shadow: 0 1px 5px rgb(0 0 0 / 7%); }
body.app-body :is(.depenses-tab::after,.depenses-tab--current::after) { display: none; }
body.app-body :is(.depenses-td-amount,.decompte-mtd--num,.docs-table__amount) { white-space: nowrap; }
body.app-body .dash-board-rail-block { background: transparent; border: 0; border-radius: 0; padding: 0 0 20px; margin: 0 0 20px; border-bottom: 1px solid #e5e5e9; }
body.app-body .dash-board-rail-block:last-child { border: 0; margin: 0; padding-bottom: 0; }
body.app-body :is(.dash-board-rail-block__ico,.dash-board-plan__badge) { background: #eaf3ff; color: #0066cc; }
body.app-body .dash-board-rail-block__hint { background: #f5f5f7; border: 0; padding: 10px; border-radius: 10px; }
body.app-body .plan-view-toggle { background: #e9e9ed; border: 0; padding: 4px; border-radius: 10px; }
body.app-body .plan-view-btn { min-height: 36px; color: #626269; border-radius: 7px; }
body.app-body .plan-view-btn--on { background: #fff; color: #1d1d1f; box-shadow: 0 1px 4px rgb(0 0 0 / 8%); }
body.app-body .plan-btn-grad { background: #0071e3; box-shadow: none; border: 0; }
body.app-body .plan-btn-grad:hover { background: #0066cc; box-shadow: none; }
@media (max-width: 959.98px) {
  body.app-body .dash-board__rail { grid-column: 1; grid-row: 5; }
  body.app-body .app-dock__bar::after { background: #e5edf7; box-shadow: none; border-radius: 19px; animation: none; }
  body.app-body .app-dock--expanded .app-dock__panel:not([hidden]) .app-dock__extra { transition-delay: 0ms; transition-duration: 180ms; }
  body.app-body .depenses-stat-card__value { font-size: 1.6rem; }
  body.app-body .app-dock__extra-label { white-space: normal; overflow: visible; text-overflow: clip; }
  body.app-body .app-topbar-mobile__ico-btn { min-width: 44px; }
}
body.app-body .depenses-table__td--amount { white-space: nowrap; }
body.app-body .famille-v2-btn-outline { min-height: 44px; border-color: #c7d9ed; border-radius: 999px; padding-inline: 16px; }
body.app-body .famille-v2-invite-role input:checked + .famille-v2-invite-role__box { border-color: #0071e3; background: #f3f8ff; box-shadow: 0 0 0 3px rgb(0 113 227 / 9%); }
body.app-body .famille-v2-invite-form > .btn { margin-top: 12px; }
body.app-body :is(.docs-upload-dialog,.plan-modal,.expense-drawer__panel) { background: #fff; border-color: #e5e5e9; border-radius: 24px; box-shadow: var(--shadow-lift); }
body.app-body :is(.plan-view-btn,.plan-modal__x) { min-height: 44px; }
body.app-body { font-family: var(--font); }
body.app-body .plan-modal-backdrop { z-index: 6000; }
body.app-body :is(.plan-modal__x,.expense-drawer__close) { min-width: 44px; min-height: 44px; }
@media (max-width: 959.98px) {
  body.app-body .plan-cal-main--surface { padding: 16px; }
  body.app-body .plan-cal-week__mx-lab { flex-basis: 58px; width: 58px; font-size: .6875rem; line-height: 1.3; color: #626269; }
  body.app-body .plan-cal-week__mx-hr { font-size: .625rem; color: #626269; }
  body.app-body .plan-cal-week__mx-day { min-height: 60px; }
  body.app-body .plan-cal-week__mx-day--today .plan-cal-week__mx-lab { color: #0066cc; }
  body.app-body :is(.plan-ev,.plan-ev--sm) { font-size: .6875rem; line-height: 1.2; padding: 4px; border-radius: 5px; }
  body.app-body .plan-cal-week__mx-time { min-height: 32px; }
  body.app-body .plan-legend { font-size: .6875rem; }
}
body.app-body--ios-embed .app-main { width: 100%; max-width: none; }
body.app-body .decompte-closure-banner { background: #eaf3ff; border-color: #dceafa; border-radius: 20px; }
body.app-body .decompte-closure-banner__ico { background: #fff; color: #0066cc; }
@media (max-width: 959.98px) {
  body.app-body .plan-modal-backdrop { --plan-modal-inset-top: max(16px,env(safe-area-inset-top,0px)); --plan-modal-inset-bottom: max(16px,env(safe-area-inset-bottom,0px)); background: rgb(0 0 0 / 35%); backdrop-filter: blur(5px); }
}

/* En-tête opaque jusque dans les marges : aucun texte ne transparaît au défilement. */
@media (min-width: 960px) {
  body.app-body .app-topbar-desk::before { content: ""; position: absolute; inset: 0 calc(-1 * clamp(24px,3vw,48px)); z-index: -1; background: #f5f5f7; border-bottom: 1px solid #e7e7eb; pointer-events: none; }
  body.app-body .app-topbar-desk { flex-shrink: 0; }
}
