/* family-app : styles de l'application. FICHIER GÉNÉRÉ par scripts/build-app.js à partir de src/css : ne pas modifier. */
/* family-app : réglages de base de la page (repris de l'en-tête de l'appli de référence) */
:root{color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px)}body{margin:0;padding:0;font:14px -apple-system,BlinkMacSystemFont,sans-serif;background:#fff;color:#000}img{max-width:100%}[hidden]:not([hidden=until-found i]){display:none!important}
/* family-app : Base : couleurs (clair / sombre), typographie, mise en page générale */
/* Layout: clean card-based expense app. Side rail on desktop, bottom tab bar with a central scan button on phones. Native system typeface. */
:root{
  --bg:#F3F5F8; --surface:#FFFFFF; --surface-2:#EEF1F5; --ink:#161B26; --muted:#5F6779; --line:#E4E7ED;
  --accent:#1E6BE6; --accent-ink:#FFFFFF; --accent-soft:#E7F0FE;
  --warn:#B25B00; --warn-soft:#FFF3DC; --bad:#B42318; --bad-soft:#FEE4E2; --good:#13834A; --good-soft:#DFF6E8;
  --paper:#FFFFFF; --shadow:0 1px 2px rgba(22,27,38,.05),0 2px 8px rgba(22,27,38,.05); --shadow-lg:0 12px 32px rgba(22,27,38,.16);
  --f-body:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-mono:var(--f-body);
  --r:14px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1F232A; --surface:#2B2F37; --surface-2:#363B44; --ink:#F3F5F8; --muted:#A3AAB6; --line:#3B4049;
  --accent:#5A9BFF; --accent-ink:#06142B; --accent-soft:#25395A;
  --warn:#F2B55B; --warn-soft:#4A3818; --bad:#F87171; --bad-soft:#4D2523; --good:#4CD787; --good-soft:#1F4430;
  --paper:#FFFFFF; --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 12px 32px rgba(0,0,0,.5); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1F232A; --surface:#2B2F37; --surface-2:#363B44; --ink:#F3F5F8; --muted:#A3AAB6; --line:#3B4049;
  --accent:#5A9BFF; --accent-ink:#06142B; --accent-soft:#25395A;
  --warn:#F2B55B; --warn-soft:#4A3818; --bad:#F87171; --bad-soft:#4D2523; --good:#4CD787; --good-soft:#1F4430;
  --paper:#FFFFFF; --shadow:0 1px 2px rgba(0,0,0,.3); --shadow-lg:0 12px 32px rgba(0,0,0,.5); color-scheme:dark}
:root[data-accent="green"]{--accent:#11804A;--accent-ink:#FFFFFF;--accent-soft:#E2F4E9}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-accent="green"]{--accent:#4CD787;--accent-ink:#05210F;--accent-soft:#1F4430}}
:root[data-theme="dark"][data-accent="green"]{--accent:#4CD787;--accent-ink:#05210F;--accent-soft:#1F4430}
:root[data-accent="violet"]{--accent:#6A46DB;--accent-ink:#FFFFFF;--accent-soft:#EEE9FD}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-accent="violet"]{--accent:#A68BFA;--accent-ink:#170B3A;--accent-soft:#35295C}}
:root[data-theme="dark"][data-accent="violet"]{--accent:#A68BFA;--accent-ink:#170B3A;--accent-soft:#35295C}
:root[data-accent="coral"]{--accent:#C23F22;--accent-ink:#FFFFFF;--accent-soft:#FDEAE4}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-accent="coral"]{--accent:#FF8A6B;--accent-ink:#2E0B03;--accent-soft:#4D2A20}}
:root[data-theme="dark"][data-accent="coral"]{--accent:#FF8A6B;--accent-ink:#2E0B03;--accent-soft:#4D2A20}
:root[data-accent="teal"]{--accent:#0B7F84;--accent-ink:#FFFFFF;--accent-soft:#DFF3F3}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-accent="teal"]{--accent:#3CC9C6;--accent-ink:#032224;--accent-soft:#1D4446}}
:root[data-theme="dark"][data-accent="teal"]{--accent:#3CC9C6;--accent-ink:#032224;--accent-soft:#1D4446}
:root[data-accent="graphite"]{--accent:#2B3240;--accent-ink:#FFFFFF;--accent-soft:#E8EBF0}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-accent="graphite"]{--accent:#D3D9E3;--accent-ink:#11151C;--accent-soft:#3F4550}}
:root[data-theme="dark"][data-accent="graphite"]{--accent:#D3D9E3;--accent-ink:#11151C;--accent-soft:#3F4550}
.swatches{display:flex;flex-wrap:wrap;gap:12px}.swatch{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;padding:4px;cursor:pointer;font-size:.85rem;color:var(--muted);font-family:inherit}.swatch i{width:44px;height:44px;border-radius:50%;display:block;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.swatch[aria-pressed="true"]{color:var(--ink);font-weight:600}.swatch[aria-pressed="true"] i{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--ink)}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{height:100%}body{min-height:100%;overflow-x:hidden;max-width:100%}
html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){html{font-size:19px}}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:1rem;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
h1,h2,h3{font-family:var(--f-display);font-weight:700;line-height:1.2;text-wrap:balance;margin:0}
h1{font-size:1.9rem;letter-spacing:-.02em} h2{font-size:1.15rem;letter-spacing:-.01em} h3{font-size:1rem}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)} .small{font-size:.9rem}
.label{font-size:.86rem;color:var(--muted);font-weight:500}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* couleur de l'app = ma couleur (choisie à l'inscription), un peu assombrie en thème clair : contraste de 4,5:1 sur blanc */
:root[data-accent="me"]{--accent:color-mix(in srgb,var(--me-c) 86%,#000);--accent-ink:#FFFFFF;--accent-soft:color-mix(in srgb,var(--me-c) 12%,#fff)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"])[data-accent="me"]{--accent:color-mix(in srgb,var(--me-c) 62%,#fff);--accent-ink:#11151C;--accent-soft:color-mix(in srgb,var(--me-c) 32%,#2B2F37)}}
:root[data-theme="dark"][data-accent="me"]{--accent:color-mix(in srgb,var(--me-c) 62%,#fff);--accent-ink:#11151C;--accent-soft:color-mix(in srgb,var(--me-c) 32%,#2B2F37)}
/* family-app : Cadre : barre latérale, barre d'onglets, en-têtes de page */
/* shell */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}
.rail{position:sticky;top:0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:4px;padding:22px 14px;background:var(--surface);box-shadow:1px 0 0 var(--line)}
.brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}
.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--accent);display:grid;place-items:center;flex:none;color:var(--accent-ink)}
.brand-mark svg{width:24px;height:19px}
.brand-name{font-family:var(--f-display);font-weight:700;font-size:1.08rem;letter-spacing:-.01em}
.brand-name span{color:var(--accent)}
.brand-name svg{height:21px;width:auto;display:block}.mobile-brand .brand-name svg{height:17px}
.nav-btn{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;background:none;border-radius:10px;cursor:pointer;color:var(--muted);font-weight:500;text-align:left}
.nav-btn svg{width:20px;height:20px;flex:none}
.nav-btn:hover{background:var(--surface-2);color:var(--ink)}
.nav-btn[aria-current="page"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.rail .scan-cta{margin:4px 0 14px}
.rail-foot{margin-top:auto;padding:12px 8px 0;border-top:1px solid var(--line)}
/* Écran peu haut (tablette à l'horizontale) : menu plus serré, tous les espaces visibles ; le reste défile, avec une barre fine */
@media (max-height:900px){.rail{gap:0;padding-block:14px;scrollbar-width:thin}.rail .nav-btn{padding-block:7px}.brand{padding-bottom:10px}.rail .scan-cta{margin:2px 0 8px}.rail .rail-sec{margin-top:8px}}
.main{min-width:0;padding-block:28px 120px;padding-inline:clamp(16px,4vw,44px)}
.drop-overlay{position:fixed;inset:0;z-index:300;background:rgba(10,14,22,.45);display:grid;place-items:center;padding:24px;pointer-events:none}.drop-box{background:var(--surface);border:3px dashed var(--accent);border-radius:24px;padding:48px 40px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;max-width:520px;box-shadow:var(--shadow-lg)}.drop-box svg{width:44px;height:44px;color:var(--accent)}.drop-box strong{font-size:1.4rem}.drop-box span{color:var(--muted)}
.wrap{max-width:1320px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
@media (min-width:1600px){html{font-size:17px}.app{grid-template-columns:260px minmax(0,1fr)}.wrap{max-width:1480px}}
@media (min-width:2100px){html{font-size:18px}.wrap{max-width:1680px}}
.tabbar{display:none}
/* Bande sous l'heure et la batterie (appli installée sur iPhone) : le contenu qui défile passe dessous au lieu de se mélanger à la barre d'état */
body::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:25;pointer-events:none}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.profile-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);font-size:.85rem;cursor:pointer}
.profile-pill select{border:0;background:transparent;font-weight:600;cursor:pointer;max-width:200px}
.pp-multi{border:0;color:var(--ink);font:inherit;font-size:.85rem;-webkit-tap-highlight-color:transparent}
.pp-n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;text-align:left}
.pp-dots{display:inline-flex;gap:3px;align-items:center;margin-left:auto;padding:4px 7px;border-radius:99px;background:color-mix(in srgb,var(--accent) 12%,transparent)}
.pp-dots i{width:5px;height:5px;border-radius:3px;background:var(--accent);opacity:.35}
.pp-dots i.on{width:12px;opacity:1}
.pp-multi>svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.7;transition:transform .2s}
.pp-multi[aria-expanded="true"]>svg{transform:rotate(180deg)}
.pp-menu{position:fixed;z-index:60;padding:6px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:ppIn .16s ease}
.pp-menu[hidden]{display:none}
@keyframes ppIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.pp-i{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pp-i:hover,.pp-i:focus-visible{background:color-mix(in srgb,var(--accent) 12%,transparent);outline:none}
.pp-av{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:800;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
.pp-i.on .pp-av{background:var(--accent);color:var(--accent-ink)}
.pp-x{display:flex;flex-direction:column;min-width:0;flex:1}.pp-x b{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-x small{color:var(--muted);font-size:.78rem}
.pp-i>svg{width:16px;height:16px;flex:none;fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}

@media (max-width:820px),(max-height:500px) and (max-width:1100px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{display:none}
  .main{padding-block:14px 140px}
  .tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);box-shadow:0 -1px 0 var(--line);padding:8px 4px max(12px,env(safe-area-inset-bottom,0px))}
  .tab{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:-.01em;padding:4px 0;cursor:pointer;min-width:0}
  .tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(10px,2.8vw,12px)}
  .tab:lang(de) span,:lang(de) .tab span{letter-spacing:-.03em}
  .tab svg{width:25px;height:25px}
  .tab[aria-current="page"]{color:var(--accent)}
  .tab-scan{position:relative;top:-18px}
  .tab-scan .fab{width:60px;height:60px;border:4px solid var(--surface);border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;box-shadow:var(--shadow-lg)}
  .tab-scan .fab svg{width:26px;height:26px}
  .mobile-brand{display:flex!important;width:100%}
  .topbar>.stack{align-self:stretch}
  html .tb-theme.tb-m{display:inline-grid;margin-left:auto;width:34px;height:34px}html .tb-theme.tb-d{display:none}
  h1{font-size:1.75rem}
  .panel{padding:16px}
  .topbar{align-items:flex-start;flex-direction:column}
  .profile-pill{align-self:stretch;justify-content:space-between}
  .profile-pill select{max-width:none;flex:1}
}
.mobile-brand{display:none;align-items:center;gap:8px}
.tb-theme{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;flex:none}.tb-theme:hover{background:var(--surface-2)}.tb-theme svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tb-theme.tb-m{display:none}
.mobile-brand .brand-mark{width:24px;height:24px;border-radius:7px}
.mobile-brand .brand-mark svg{width:18px;height:14px}

/* Téléphone couché : mise en page téléphone, plus compacte (peu de hauteur) : texte de base, barre du bas basse, icône et libellé côte à côte */
@media (max-height:500px) and (max-width:1100px){html{font-size:16px}.main{padding-block:10px 96px}.tabbar{padding:4px 4px max(6px,env(safe-area-inset-bottom,0px))}.tab{flex-direction:row;justify-content:center;gap:6px;padding:8px 0}.tab svg{width:21px;height:21px}.tab-scan{top:-6px}.tab-scan .fab{width:50px;height:50px;border-width:3px}}
html{scrollbar-gutter:stable}
/* family-app : Éléments communs : boutons, champs, cartes, puces, panneaux */
/* generic */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:12px;border:0;background:var(--surface-2);cursor:pointer;font-weight:600;font-size:1rem;color:var(--ink);min-height:46px;max-width:100%;text-align:center;line-height:1.2}
.btn:hover{filter:brightness(.97)}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{filter:brightness(1.06)}
.btn-danger{color:var(--bad);background:var(--bad-soft)}.btn-disc{color:var(--bad);background:transparent;border:1.5px solid var(--bad)}.btn-disc:hover{background:var(--bad-soft)}
.btn-ghost{background:transparent}
.ob-opt.rec{box-shadow:inset 0 0 0 2px var(--accent)}.ob-rec{font-size:.72rem;padding:2px 8px;margin-left:6px;vertical-align:2px}@keyframes obScan{from{top:2%}to{top:96%}}@keyframes obPop{from{transform:scale(.94);opacity:0}to{transform:none;opacity:1}}
.found{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:16px 20px;border-radius:18px;margin-bottom:14px;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 72%,#000));color:var(--accent-ink)}
#efCeleb{position:fixed;inset:0;z-index:230;pointer-events:none;display:flex;justify-content:center;align-items:flex-start;padding:calc(18px + env(safe-area-inset-top,0px)) 16px}
@keyframes celFall{to{top:105%;transform:rotate(calc(var(--r) + 540deg))}}
#efTour{position:fixed;inset:0;z-index:210;background:var(--bg);display:flex;justify-content:center;padding:calc(10px + env(safe-area-inset-top,0px)) 10px calc(10px + env(safe-area-inset-bottom,0px));user-select:none;-webkit-user-select:none;touch-action:pan-y}
.tr-card{position:relative;width:100%;max-width:520px;border-radius:28px;background:linear-gradient(180deg,var(--accent-soft),var(--surface) 75%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.tr-x{position:absolute;top:14px;right:14px;width:46px;height:46px;border-radius:50%;border:0;background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-lg);z-index:2}.tr-x svg{width:20px;height:20px}
.tr-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:70px 26px 10px;text-align:center}
.tr-h{margin:0;font-family:var(--f-display);font-size:1.75rem;line-height:1.15;letter-spacing:-.02em}
.tr-art{width:100%;max-width:340px}
@keyframes flEnd{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.tr-art.fm{max-width:none;display:flex;justify-content:center}
.tr-film .tr-main{gap:16px;padding-top:58px}.tr-film .tr-h{font-size:1.5rem}.tr-film .tr-p{font-size:.98rem}
@keyframes fmIn{from{opacity:0;transform:translateY(26px) scale(.96)}to{opacity:1;transform:none}}
@keyframes fmZoom{0%{transform:scale(1)}45%{transform:scale(1.04)}100%{transform:scale(1.13)}}
@keyframes fmTap{0%,36%{opacity:0;transform:scale(1.6)}44%{opacity:1;transform:scale(1)}50%{transform:scale(.82)}58%,82%{opacity:1;transform:scale(1)}92%,100%{opacity:0;transform:scale(1)}}
@keyframes fmRing{0%,48%{opacity:0;transform:scale(1)}52%{opacity:.9;transform:scale(1)}75%,100%{opacity:0;transform:scale(2.4)}}
@media (max-height:700px){.tr-film .tr-p{font-size:.92rem}.tr-film .tr-main{gap:12px}}.tr-art svg{width:100%;height:auto;display:block}
.tr-p{margin:0;font-size:1.08rem;line-height:1.5;font-weight:500;max-width:420px}
.tr-cta{display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px}.tr-cta .btn{min-height:50px}
.tr-foot{padding:14px 20px 18px;display:flex;flex-direction:column;gap:10px}.tr-foot .brand-name{font-size:1rem}
.tr-bars{display:flex;gap:5px}.tr-bar{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden}.tr-bar i{display:block;height:100%;background:var(--accent);border-radius:4px}
.tr-hint{margin:0;color:var(--muted);font-size:.8rem;text-align:center}
@media (prefers-reduced-motion: reduce){.tr-art animate{display:none}}
#efObBack{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:150;display:flex;align-items:center;gap:2px;background:var(--ink);color:var(--surface);border-radius:999px;padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
#efObBack button{border:0;background:transparent;color:inherit;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:999px}#efObBack svg{width:16px;height:16px}
@media (max-width:860px){#efObBack{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
#efConfetti{position:fixed;inset:0;z-index:300;pointer-events:none;overflow:hidden}#efConfetti i{position:absolute;top:-24px;opacity:0;animation-name:ef-fall;animation-timing-function:cubic-bezier(.25,.6,.45,1);animation-fill-mode:forwards}
@keyframes ef-fall{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}80%{opacity:1}100%{opacity:0;transform:translate3d(var(--sx),105vh,0) rotate(calc(var(--r) + 540deg))}}
#efWelcome{position:fixed;inset:0;z-index:200;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch}html.ob-open,html.ob-open body{overflow:hidden}
#efWelcome .ob-mark{position:fixed;right:-70px;bottom:-40px;color:var(--accent);opacity:.045;pointer-events:none}#efWelcome .ob-mark svg{width:360px;height:360px}
.ob-wrap{position:relative;max-width:520px;margin:0 auto;min-height:100%;display:flex;flex-direction:column;gap:14px;padding:calc(18px + env(safe-area-inset-top,0px)) 16px calc(20px + env(safe-area-inset-bottom,0px))}
.ob-top{display:flex;align-items:center;justify-content:space-between;min-height:40px}.ob-top .ef-link{white-space:nowrap}.ob-top .brand-name{font-size:1rem}.ob-top .brand-name svg{height:19px}
.ob-bars{display:flex;gap:8px;margin-top:6px}.ob-bar{flex:1;height:5px;border-radius:5px;background:var(--line)}.ob-bar.on{background:var(--accent)}
.ob-step{margin:0;color:var(--muted);font-size:.9rem}.ob-h{margin:0;font-family:var(--f-display);font-size:1.9rem;line-height:1.15;letter-spacing:-.02em}.ob-sub{margin:0;color:var(--muted);font-size:1.02rem;line-height:1.45}
.ob-body{gap:16px;flex:1}
/* Ordinateur : le bouton suit directement le contenu (au lieu d'être collé en bas de l'écran) */
@media (min-width:821px) and (min-height:600px){.ob-wrap{min-height:0;padding-top:clamp(24px,8vh,90px)}.ob-body{flex:none}.ob-foot{position:static;background:none;padding-top:6px}.ob-foot:not([style])::before{display:none}}.ob-foot .ob-go{min-height:58px;font-size:1.05rem;font-weight:700;gap:10px;box-shadow:0 10px 24px rgba(30,107,230,.28)}.ob-foot .ob-go svg{width:22px;height:22px}.ob-foot{display:flex;gap:10px;position:sticky;bottom:0;padding:12px 0 calc(4px + env(safe-area-inset-bottom,0px));background:var(--bg);z-index:2}.ob-foot:not([style])::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px;background:linear-gradient(transparent,var(--bg));pointer-events:none}.ob-foot .btn{flex:1;min-height:52px}.ob-foot3{flex-direction:column;align-items:stretch;gap:12px}
.ob-trial{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:14px;background:var(--accent-soft);font-size:.95rem}.ob-trial svg{width:20px;height:20px;flex:none;color:var(--accent);margin-top:2px}
.ob-opt{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:16px;border-radius:16px;border:0;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line)}.ob-opt:focus-visible{box-shadow:inset 0 0 0 1.5px var(--accent)}@media (hover:hover){.ob-opt:hover{box-shadow:inset 0 0 0 1.5px var(--accent)}}.ob-opt>svg:first-child{width:24px;height:24px;flex:none;color:var(--accent)}.ob-opt>svg:last-child{width:16px;height:16px;flex:none;margin-left:auto;color:var(--muted)}.ob-opt>span{flex:1;min-width:0}.ob-opt b{display:block}.ob-opt .muted{display:block;font-size:.88rem;margin-top:2px}
.ef-links{display:flex;flex-direction:column;align-items:center;gap:0}.ef-link{background:none;border:0;padding:8px 6px;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;text-underline-offset:3px}.ef-link:hover{text-decoration:underline}
.btn-ghost:not(.icon-btn):not(.spread):not(.cel-plan){box-shadow:inset 0 0 0 1.5px var(--accent)}.btn-ghost:not(.icon-btn):not(.spread):not(.cel-plan):hover{background:var(--accent-soft)}
.btn-sm{padding:8px 14px;font-size:.9rem;border-radius:10px;min-height:38px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-block{width:100%}
.icon-btn{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;flex:none}
.panel{background:var(--surface);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.grid{display:grid;gap:16px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kpi{padding:14px 16px;background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px;min-width:0}
.kpi .v{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kpi .s{font-size:.82rem;color:var(--muted)}
.kpi.hero{background:var(--accent);color:var(--accent-ink)} .kpi.hero .label,.kpi.hero .s{color:inherit;opacity:.85}
.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.8rem;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.chip.good{background:var(--good-soft);color:var(--good)} .chip.warn{background:var(--warn-soft);color:var(--warn)} .chip.bad{background:var(--bad-soft);color:var(--bad)} .chip.acc{background:var(--accent-soft);color:var(--accent)}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:.88rem;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.input,select.input,textarea.input{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0;font-size:1rem;min-height:46px}
.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}
.input.num{text-align:right}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:10px}
.empty{text-align:center;padding:40px 16px;display:flex;flex-direction:column;align-items:center;gap:12px}
.empty-ill{width:72px;height:72px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.empty-ill svg{width:34px;height:34px}

/* family-app : Barres de progression et jauges */
/* bars */
.bars{display:flex;flex-direction:column;gap:10px}
.bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;font-size:.95rem}
.bar-track{grid-column:1/-1;height:7px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.bar-fill{height:100%;background:var(--accent);border-radius:4px}

/* family-app : Listes : dépenses, accueil, banque, comptabilité, réglages */
/* list */
.toolbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px}
.thumb{width:52px;height:52px;border-radius:10px;background:var(--surface-2) center/cover no-repeat;display:grid;place-items:center;color:var(--muted);overflow:hidden}
.thumb svg{width:20px;height:20px}.chip svg{width:13px;height:13px}.banner svg{width:18px;height:18px;vertical-align:-3px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .banner{background:var(--surface);border:1px solid var(--line)}:root:not([data-theme="light"]) .set-ic{background:var(--surface-2)!important}:root:not([data-theme="light"]) .set-ic svg{filter:brightness(1.8) saturate(1.2)}:root:not([data-theme="light"]) .set-me{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 55%,#1F232A),color-mix(in srgb,var(--accent) 30%,#1F232A))}}:root[data-theme="dark"] .banner{background:var(--surface);border:1px solid var(--line)}:root[data-theme="dark"] .set-ic{background:var(--surface-2)!important}:root[data-theme="dark"] .set-ic svg{filter:brightness(1.8) saturate(1.2)}:root[data-theme="dark"] .set-me{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 55%,#1F232A),color-mix(in srgb,var(--accent) 30%,#1F232A))}
@media (max-width:480px){.kpi .v{white-space:nowrap;font-size:clamp(1.1rem,5.6vw,1.4rem)}}
#rvStatus{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
#xe_auto{width:20px;height:20px;flex:none;margin:2px 0 0}label:has(#xe_auto){display:flex;gap:10px;flex-wrap:nowrap;align-items:flex-start}
@media (max-width:600px){
 label:has(#xe_auto){flex-wrap:nowrap!important;align-items:flex-start}
 table.plain th,table.plain td{padding:8px 6px;font-size:.88rem}table.plain td.num{white-space:nowrap}
}
.pw-hero{width:52px;height:52px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:8px}.pw-hero svg{width:26px;height:26px}
.modal:has(.cel){width:min(100%,520px);padding:0;gap:0;overflow:hidden auto}
.cel-check{width:72px;height:72px;margin:0 auto;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px color-mix(in srgb,var(--accent) 40%,transparent);animation:celpop .5s cubic-bezier(.2,1.4,.4,1) both}.cel-check svg{width:36px;height:36px}
@keyframes celfall{0%{opacity:1;transform:translateY(0) rotate(0)}100%{opacity:0;transform:translateY(190px) rotate(320deg)}}@keyframes celpop{0%{transform:scale(.3);opacity:0}100%{transform:scale(1);opacity:1}}
@media (max-width:420px){.cel-check{width:60px;height:60px}.cel-check svg{width:30px;height:30px}}
@media (prefers-reduced-motion:reduce){.cel-check{animation:none}}
.mg-name{font-size:22px;font-weight:700;letter-spacing:-.01em;margin-top:2px}.mg-acts{gap:8px;flex-wrap:wrap}
.pw-list{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:8px}.pw-list li,.plan-feats li{display:flex;gap:8px;align-items:flex-start}.pw-list svg,.plan-feats svg{width:16px;height:16px;color:var(--accent);flex:none;margin-top:3px}
.plan-iv{margin:6px 0 12px;align-self:flex-start}.plan-iv .chip{font-size:.7rem;padding:2px 6px}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.plan-card{border:1.5px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px;background:var(--surface)}.plan-card.hl{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.plan-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.plan-top strong{font-size:1.05rem}.plan-price b{font-size:1.6rem;letter-spacing:-.02em}.plan-bill{min-height:1.2em}
.plan-feats{list-style:none;padding:0;margin:6px 0 10px;display:flex;flex-direction:column;gap:6px;font-size:.88rem;flex:1}.plan-card .btn{width:100%;justify-content:center}
.usage{display:flex;flex-direction:column;gap:6px}
.cat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.cat-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:14px;background:var(--surface-2);min-width:0}.cat-row>span:nth-child(2){flex:1;min-width:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-row .dh-ic{width:38px;height:38px;border-radius:50%;flex:none}.cat-row .dh-ic svg{width:20px;height:20px}
.cat-plus{width:40px;height:40px;border-radius:50%;padding:0}.cat-plus svg{width:20px;height:20px}.usage .bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.usage .bar i{display:block;height:100%;background:var(--accent);border-radius:99px}.usage .bar.hot i{background:var(--t-amber)}
.modal .plan-grid{margin-bottom:6px;grid-template-columns:1fr}
.set2{display:grid;grid-template-columns:380px minmax(0,1fr);gap:24px;align-items:start;max-width:1180px}
.set-list{display:flex;flex-direction:column;position:sticky;top:16px}
.set-me{display:flex;gap:14px;align-items:center;padding:18px;border-radius:20px;color:#fff;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));margin-bottom:6px}
.set-meav{width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center;font-weight:700;font-size:1.05rem;flex:none}
.set-me .set-t b{color:#fff}.set-me .set-t span{color:rgba(255,255,255,.82)}
.set-gl{font-size:.74rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:16px 6px 8px}
.set-grp{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.set-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.set-row:first-child{border-top:0}.set-row:hover{background:var(--surface-2)}.set-row[aria-current=page]{background:var(--accent-soft,var(--surface-2))}
.set-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none}.set-ic svg{width:18px;height:18px}
.set-t{flex:1;min-width:0;display:flex;flex-direction:column}.set-t b{font-weight:600;font-size:.95rem}.set-t span{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.set-chev{color:var(--muted);opacity:.6;display:grid}.set-chev svg{width:16px;height:16px}
.set-detail{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:26px;min-width:0}
.set-h{margin:0 0 4px;font-size:1.3rem}.set-intro{color:var(--muted);margin:0 0 6px}
.set-body2{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.set-body2>section.panel{box-shadow:none;border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface)}
.set-body2>section.panel h2{font-size:1rem}
.set-card{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}
.set-item{display:flex;align-items:center;gap:12px}.set-list-card .set-item{padding:10px 0;border-top:1px solid var(--line)}.set-list-card .set-item:first-child{border-top:0;padding-top:0}.set-list-card .set-item:last-child{padding-bottom:0}
.set-av{width:36px;height:36px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-weight:700;font-size:.8rem;flex:none}
.set-faq{display:flex;flex-direction:column;gap:8px}.set-faq details{background:var(--surface);border-radius:14px;box-shadow:0 0 0 1px var(--line)}.set-faq summary{list-style:none;display:flex;justify-content:space-between;gap:10px}.set-faq summary::-webkit-details-marker{display:none}.set-faq summary::after{content:"+";color:var(--accent);font-weight:700}.set-faq details[open] summary::after{content:"\2212"}.set-faq details p{margin:0;padding:0 16px 14px;color:var(--muted);line-height:1.5}
.tr-skip{position:absolute;top:14px;right:14px;z-index:2;border:0;background:transparent;color:var(--muted);font:inherit;font-weight:600;padding:8px 10px;cursor:pointer}
:root{--t-blue-bg:#E7F0FE;--t-blue:#1E6BE6;--t-coral-bg:#FDEAE4;--t-coral:#D9482B;--t-teal-bg:#DFF3F3;--t-teal:#0B7F84;--t-violet-bg:#EEE9FD;--t-violet:#6A46DB;--t-amber-bg:#FFF3DC;--t-amber:#B25B00;--t-green-bg:#DFF6E8;--t-green:#13834A;--dh-hero:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--accent) 60%,#fff) 0%,var(--accent) 38%,color-mix(in srgb,var(--accent) 55%,#071330) 100%);--dh-hero-line:transparent;--dh-hero-sh:0 18px 40px -20px color-mix(in srgb,var(--accent) 80%,transparent);--dh-b1:#fff;--dh-b1-ink:var(--accent);--dh-tile-line:transparent}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--t-blue-bg:#25395A;--t-blue:#5A9BFF;--t-coral-bg:#4D2A20;--t-coral:#FF8A6B;--t-teal-bg:#1D4446;--t-teal:#3CC9C6;--t-violet-bg:#35295C;--t-violet:#A68BFA;--t-amber-bg:#4A3818;--t-amber:#F2B55B;--t-green-bg:#1F4430;--t-green:#4CD787;--dh-hero:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--accent) 35%,transparent) 0%,transparent 55%),linear-gradient(160deg,#3A3F48 0%,#262A31 45%,#14161A 100%);--dh-hero-line:rgba(255,255,255,.08);--dh-hero-sh:0 24px 50px -24px rgba(0,0,0,.9);--dh-b1:var(--accent);--dh-b1-ink:var(--accent-ink);--dh-tile-line:rgba(255,255,255,.05)}}:root[data-theme="dark"]{--t-blue-bg:#25395A;--t-blue:#5A9BFF;--t-coral-bg:#4D2A20;--t-coral:#FF8A6B;--t-teal-bg:#1D4446;--t-teal:#3CC9C6;--t-violet-bg:#35295C;--t-violet:#A68BFA;--t-amber-bg:#4A3818;--t-amber:#F2B55B;--t-green-bg:#1F4430;--t-green:#4CD787;--dh-hero:radial-gradient(90% 120% at 100% 0%,color-mix(in srgb,var(--accent) 35%,transparent) 0%,transparent 55%),linear-gradient(160deg,#3A3F48 0%,#262A31 45%,#14161A 100%);--dh-hero-line:rgba(255,255,255,.08);--dh-hero-sh:0 24px 50px -24px rgba(0,0,0,.9);--dh-b1:var(--accent);--dh-b1-ink:var(--accent-ink);--dh-tile-line:rgba(255,255,255,.05)}.dt-blue{background:var(--t-blue-bg);color:var(--t-blue)}.dt-coral{background:var(--t-coral-bg);color:var(--t-coral)}.dt-teal{background:var(--t-teal-bg);color:var(--t-teal)}.dt-violet{background:var(--t-violet-bg);color:var(--t-violet)}.dt-amber{background:var(--t-amber-bg);color:var(--t-amber)}.dt-green{background:var(--t-green-bg);color:var(--t-green)}
.dh-hero{position:relative;overflow:hidden;border-radius:24px;padding:22px 20px 18px;color:#fff;background:var(--dh-hero);border:1px solid var(--dh-hero-line);box-shadow:var(--dh-hero-sh);margin-bottom:6px}
.dh-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 40%,rgba(255,255,255,.25));pointer-events:none}
.dh-lbl{font-size:.88rem;opacity:.8;text-transform:none;margin:-4px 0 10px;position:relative;z-index:1}
.dh-top{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}
.dh-per{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);color:#fff;font:inherit;font-size:.84rem;font-weight:600;cursor:pointer;max-width:72%;flex:none;white-space:nowrap}
.dh-per span{overflow:hidden;text-overflow:ellipsis}.dh-per:hover{background:rgba(255,255,255,.18)}.dh-per svg{width:15px;height:15px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dh-per:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dh-pm{position:fixed;z-index:60;min-width:220px;max-width:320px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:6px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 44px -12px rgba(0,0,0,.55)}
.dh-pm[hidden]{display:none}html.pm-open,html.pm-open body{overscroll-behavior:none}
.dh-amt{font-family:var(--f-display);font-size:2.6rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:6px 0 10px;font-variant-numeric:tabular-nums}.dh-amt small{font-size:.58em;opacity:.75;font-weight:700}
.dh-pills{display:flex;flex-wrap:wrap;gap:8px}.dh-pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.14);border-radius:99px;padding:5px 11px;font-size:.84rem;font-weight:600}
.dh-pill i{width:7px;height:7px;border-radius:50%;background:#4CD787;display:inline-block}.dh-pill svg{width:14px;height:14px}
/* Actions en boutons ronds, nom en dessous (Scanner en plein, Importer en discret) */
/* Société affichée et points : une carte par société, on glisse de l'une à l'autre */
.dh-co{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;font-weight:600;opacity:.92;min-width:0;flex:1 1 auto}
.dh-co i{width:8px;height:8px;border-radius:50%;background:#7CF0B0;box-shadow:0 0 0 3px rgba(124,240,176,.18);flex:none}.dh-co span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes dhFade{from{opacity:.35}to{opacity:1}}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.dh-hero .dh-amt,.dh-hero .dh-lbl{text-align:center}.dh-hero .dh-pills{justify-content:center}}
.dh-h{display:flex;justify-content:space-between;align-items:baseline;margin:22px 4px 12px}.dh-h h2{font-size:1.1rem;margin:0;white-space:nowrap}.dh-h .hint{font-size:.78rem;text-align:right;margin-left:12px}
.dh-all{border:0;background:none;color:var(--accent);font-weight:600;font-size:.9rem;cursor:pointer;font-family:inherit;padding:4px}
.dh-cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:100px;gap:16px 4px;max-height:254px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:y mandatory;scroll-padding:18px 0;scrollbar-width:thin;background:var(--surface);border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--dh-tile-line);padding:18px 8px}
.dh-cat{scroll-snap-align:start;border:0;background:none;cursor:pointer;text-align:center;color:var(--ink);font-family:inherit;padding:4px 2px;min-width:0;border-radius:14px;transition:background .15s}.dh-cat:hover{background:var(--surface-2)}.dh-cat:not(.used) b{font-weight:600}.dh-cat.used .dh-tile{box-shadow:0 0 0 2px color-mix(in srgb,currentColor 35%,transparent),0 8px 22px -10px currentColor}
.dh-tile{width:52px;height:52px;margin:0 auto 8px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;color:var(--muted);opacity:.75}.dh-tile.on{opacity:1}.dh-tile.on.dt-blue{background:var(--t-blue-bg);color:var(--t-blue)}.dh-tile.on.dt-coral{background:var(--t-coral-bg);color:var(--t-coral)}.dh-tile.on.dt-teal{background:var(--t-teal-bg);color:var(--t-teal)}.dh-tile.on.dt-violet{background:var(--t-violet-bg);color:var(--t-violet)}.dh-tile.on.dt-amber{background:var(--t-amber-bg);color:var(--t-amber)}.dh-tile.on.dt-green{background:var(--t-green-bg);color:var(--t-green)}
.dh-tile svg{width:24px;height:24px}.dh-cat b{display:block;font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dh-cat>span:last-child{font-size:.74rem;color:var(--muted);opacity:.7;font-variant-numeric:tabular-nums}.dh-cat>span.on:last-child{color:var(--ink);opacity:1;font-weight:700}
.dh-card{background:var(--surface);border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--dh-tile-line);overflow:hidden}
.dh-li{display:flex;align-items:center;gap:12px;padding:13px 16px;border:0;border-top:1px solid var(--line);background:none;width:100%;text-align:left;cursor:pointer;color:var(--ink);font-family:inherit}
.dh-li:first-child{border-top:0}.dh-li:hover{background:var(--surface-2)}.dh-ok{cursor:default}.dh-ok:hover{background:none}
.dh-ic{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:none}.dh-ic svg{width:20px;height:20px}
.dh-x{flex:1;min-width:0}.dh-x b{display:block;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dh-x span{display:block;font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dh-n{min-width:22px;height:22px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-size:.75rem;font-weight:700;display:grid;place-items:center;padding:0 7px}
.dh-chev{color:var(--muted);display:flex}.dh-chev svg{width:18px;height:18px}
.dh-r{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.dh-r b{font-size:.95rem;white-space:nowrap;font-variant-numeric:tabular-nums}.dh-r .chip{font-size:.7rem;padding:1px 8px}.dh-kv{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line)}.dh-kv:first-child{border-top:0}.dh-kv span{color:var(--muted);font-size:.9rem}.dh-kv small{display:block;font-size:.75rem;opacity:.8}.dh-kv b{font-size:1.05rem;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.dh-cats{grid-template-columns:repeat(8,minmax(0,1fr));padding:20px 10px;gap:0}.dh-cat{border-radius:0;position:relative}.dh-cat+.dh-cat:before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:var(--line)}.dh-cat:hover{background:none}.dh-cat:hover .dh-tile{opacity:1;transform:translateY(-1px)}.dh-tile{transition:transform .15s}.dh-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.dh-hero{padding:28px 28px 24px}}
.tb-back{display:inline-flex!important;margin:0 0 2px}@media (min-width:821px) and (min-height:501px),(min-width:1101px){.tb-back.tb-sub{display:none!important}}body:has(#efObBack) .tb-back.tb-sub{display:none!important}
.set-back{display:none;align-items:center;gap:4px;border:0;background:transparent;color:var(--accent);font:inherit;font-weight:600;padding:0;margin:0 0 10px;cursor:pointer}.set-back svg{width:18px;height:18px}
@media (max-width:860px){.set2{grid-template-columns:minmax(0,1fr)}.set-list{position:static}.set2[data-open="0"] .set-detail{display:none}.set2[data-open="1"] .set-list{display:none}.set-back{display:inline-flex}.set-row[aria-current=page]{background:transparent}.set-detail{padding:18px;border-radius:18px}}

/* Accueil : les trois façons d'ajouter une dépense, sous la carte (boutons ronds) */
.dh-acts{display:flex;justify-content:center;align-items:flex-start;gap:clamp(10px,4vw,26px);margin:18px 0 14px}
.dh-act{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto;min-width:76px;background:none;border:0;padding:0;color:var(--ink);font:inherit;font-size:.8rem;font-weight:600;line-height:1.25;text-align:center;cursor:pointer}
.dh-act span{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--accent);box-shadow:0 4px 14px rgba(0,0,0,.08);transition:transform .15s}
.dh-act svg{width:24px;height:24px}.dh-act .dh-al{display:block;font:inherit;white-space:pre}
.dh-act1 span{width:64px;height:64px;margin-top:-4px;background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 35%,transparent)}
.dh-act1 svg{width:28px;height:28px}
.dh-act:active span{transform:scale(.94)}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.dh-acts{gap:40px}.dh-act{font-size:.88rem}}
/* Sous-catégories d'une catégorie : menu déroulant */

.dh-cats.more{-webkit-mask-image:linear-gradient(#000 82%,transparent);mask-image:linear-gradient(#000 82%,transparent)}.dh-cats.more.end{-webkit-mask-image:none;mask-image:none}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.dh-cats{max-height:146px;row-gap:28px;padding:22px 10px;scroll-padding:22px 0}.dh-cats.more{max-height:274px}.dh-cats.more:not(.more2){-webkit-mask-image:none;mask-image:none}.dh-cat:nth-child(8n+1):before{display:none}}
/* Ordinateur : montant centré ; écran large : carte du montant à gauche, bloc des 3 boutons à droite (maquette B) */
@media (min-width:1200px){
.dh-actbox{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center;padding:18px 16px 14px}
.dh-actbox .dh-acts{margin:0 0 10px;gap:22px}
}
@media (max-width:380px){.dh-act{font-size:.74rem}.dh-acts{gap:8px}}
.dh-act:not(.dh-act1) span{margin:4px 0}
.card-del{color:var(--bad,#d93025)}
/* Accueil : quatre boutons ronds (scanner, importer, saisir, trajet), même taille, en grille régulière (style appli bancaire) */
.dh-acts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;justify-items:center}
.dh-act{min-width:0;width:100%;font-size:.8rem;line-height:1.2}
.dh-act .dh-al{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dh-act span,.dh-act1 span{width:54px;height:54px;margin:0}
.dh-act1 svg,.dh-act svg{width:23px;height:23px}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.dh-acts{gap:14px}.dh-act{font-size:.84rem}.dh-act span,.dh-act1 span{width:58px;height:58px}}
.dh-acts .dh-act span{margin:0}.dh-actbox .dh-acts{gap:10px}@media (max-width:380px){.dh-act{font-size:.7rem}.dh-acts{gap:4px}}
/* installer l'app sur le téléphone (remerciement après paiement) */
@keyframes instIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes instBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-6deg)}}
@keyframes instPulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 40%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 0%,transparent)}}
/* rapports : dépenses non comptées (hors période, ou encore à vérifier) */
/* Réglages sur téléphone : la rubrique n'est plus une carte dans une carte, et un seul bouton retour (celui du haut) */
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.set-detail{background:none;border:0;padding:0;border-radius:0}.set-detail>.set-back{display:none}}
/* Réglages : choix segmentés (thème, langue) sur une seule ligne, largeur partagée */
.set-body2 .seg{display:flex;flex-wrap:nowrap;width:100%}.set-body2 .seg button{flex:1 1 0;min-width:0;padding-inline:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Catégories de dépenses : nom sur deux lignes au besoin (mots longs en allemand) au lieu d'être coupé */
.dh-cat b{white-space:normal;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* family-app : Fiche de dépense (feuille de vérification) */
/* review sheet */
.sheet{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}
.card{background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.prov{font-size:.72rem;font-weight:600;padding:1px 7px;border-radius:999px}
.prov.read{background:var(--good-soft);color:var(--good)} .prov.low{background:var(--warn-soft);color:var(--warn)} .prov.calc{background:var(--accent-soft);color:var(--accent)} .prov.user{background:var(--surface-2);color:var(--ink)} .prov.empty{background:var(--surface-2);color:var(--muted)}
.save-err{flex-basis:100%;background:var(--bad-soft);color:var(--bad);padding:10px 12px;border-radius:10px;font-size:.9rem;font-weight:500}

/* TVA : une ligne claire, le détail replié */
/* Téléphone : le PDF n'a plus son propre défilement (il bloquait le défilement de la fiche, retour testeurs) */

/* Saisie manuelle sur ordinateur : une seule colonne centrée (pas de colonne vide à gauche) */
/* family-app : Fenêtres, visionneuse, messages, glisser-déposer */
/* overlays */
.modal-back{position:fixed;inset:0;z-index:60;background:rgba(10,14,22,.45);display:flex;align-items:flex-end;justify-content:center;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 16px}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.modal-back{align-items:center}}
.modal{background:var(--surface);border-radius:20px;padding:22px;width:min(100%,460px);display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-lg);max-height:calc(100vh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 28px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto;overscroll-behavior:contain;margin-bottom:env(safe-area-inset-bottom,0px)}
.toast{position:fixed;left:50%;bottom:calc(118px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:95;background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:12px;font-size:.95rem;max-width:min(92vw,520px);box-shadow:var(--shadow-lg)}
.toast.has-act{left:16px;right:16px;transform:none;margin:0 auto;max-width:520px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:10px 10px 10px 16px}.toast.has-act[hidden]{display:none}.toast .toast-msg{flex:1 1 200px;min-width:0;line-height:1.35}.toast .toast-act{flex:none;margin-left:auto;background:none;border:0;color:inherit;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:10px 8px;cursor:pointer;white-space:nowrap}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.toast{bottom:28px}}
/* Fenêtre ouverte : le message passe en haut de l'écran, pour ne jamais cacher les boutons de la fenêtre (posée en bas sur téléphone) */
body:has(#modalHost .modal) .toast{top:calc(12px + env(safe-area-inset-top,0px));bottom:auto}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .toast{background:var(--surface-2);color:var(--ink);box-shadow:0 0 0 1px var(--line),var(--shadow-lg)}}:root[data-theme="dark"] .toast{background:var(--surface-2);color:var(--ink);box-shadow:0 0 0 1px var(--line),var(--shadow-lg)}
.progress{display:flex;flex-direction:column;gap:8px}
@keyframes aiBorder{to{background-position:0 0,200% 0}}
@keyframes aiPulse{0%,100%{transform:scale(.85) rotate(0);opacity:.85}50%{transform:scale(1.08) rotate(12deg);opacity:1}}
@keyframes aiStep{0%{opacity:0;transform:translateY(60%)}6%,28%{opacity:1;transform:none}34%,100%{opacity:0;transform:translateY(-60%)}}
@keyframes aiBar{to{background-position:-200% 0}}
.spinner{width:16px;height:16px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
.seg{display:inline-flex;background:var(--surface-2);border-radius:10px;padding:3px;flex-wrap:wrap;gap:2px}
.seg button{border:0;background:transparent;padding:9px 14px;cursor:pointer;font-size:.95rem;font-weight:500;border-radius:8px}
.seg button[aria-pressed="true"]{background:var(--surface);box-shadow:var(--shadow);color:var(--accent);font-weight:600}
table.plain{width:100%;border-collapse:collapse;font-size:.95rem}
table.plain th,table.plain td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left}
table.plain td.num,table.plain th.num{text-align:right}
table.plain th{font-size:.8rem;color:var(--muted);font-weight:600}
.banner{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;border-radius:var(--r);background:var(--accent-soft);color:var(--ink)}
.hint{font-size:.88rem;color:var(--muted)}
.storage-note{display:flex;gap:8px;align-items:flex-start;font-size:.85rem;color:var(--muted)}
details summary{cursor:pointer;font-weight:600;padding:14px 16px}
details.filters summary{padding:4px 2px;color:var(--accent)}
/* guide par module (centre d'aide dans l'app) */
.tb-help.tb-m+.tb-theme.tb-m{margin-left:6px}
.modal:has(.gd){width:min(100%,560px);padding:0;gap:0;overflow:hidden;display:flex}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.modal:has(.gd-body){width:min(100%,860px)}}
.gd{display:flex;flex-direction:column;min-height:0;max-height:90vh;width:100%}
.gd-head{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--line)}
.gd-head h2{flex:1;margin:0;font-size:1.12rem;letter-spacing:-.01em}
.gd-x,.gd-back{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none}
.gd-x svg,.gd-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.gd-lead{margin:12px 18px 4px;color:var(--muted);font-size:.92rem}
.gd-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 10px 8px;display:flex;flex-direction:column}
.gd-it{display:flex;align-items:center;gap:12px;text-align:left;padding:11px 10px;border:0;background:none;border-radius:12px;color:var(--ink);cursor:pointer;font:inherit}
.gd-it:hover{background:var(--surface-2)}
.gd-n{font:700 .78rem var(--f-mono,ui-monospace,monospace);color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:5px 7px;flex:none}
.gd-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.gd-t b{font-size:.96rem}
.gd-t span{color:var(--muted);font-size:.84rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gd-it>svg{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:2;flex:none}
.gd-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 18px;display:grid;gap:18px;align-content:start}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.gd-body{grid-template-columns:1fr 250px;align-items:start}}
.gd-intro{margin:0 0 12px;line-height:1.5}
.gd-steps{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:10px}
.gd-steps li{counter-increment:s;position:relative;padding-left:36px;line-height:1.45;font-size:.94rem}
.gd-steps li::before{content:counter(s);position:absolute;left:0;top:-1px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 .78rem/24px var(--f-body,system-ui);text-align:center}
.gd-tip{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--accent-soft);font-size:.9rem;line-height:1.45}
.gd-foot{display:flex;gap:10px;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--line)}.gd-foot .btn{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:10px 14px;font-size:.9rem}
.gd-next{display:inline-flex;align-items:center;gap:6px;flex:none;max-width:60%}.gd-next svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2}
/* guide sur téléphone : plein écran, en-tête et pied fixes, contenu qui défile (comme la fiche trajet) */
@media (max-width:820px),(max-height:500px) and (max-width:1100px){
.modal-back:has(.gd){padding:0;align-items:stretch}
.modal:has(.gd){width:100%;max-width:none;height:100%;max-height:none;border-radius:0;margin:0;box-shadow:none}
.gd{max-height:none;height:100%;padding-top:env(safe-area-inset-top,0px)}
.gd-foot{margin-bottom:0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.gd-body{display:flex;flex-direction:column}
.gd-foot{padding-left:14px;padding-right:14px;gap:8px}.gd-foot .btn{flex:1 1 0;justify-content:center;padding:10px 8px;font-size:.86rem}.gd-next{max-width:none}
}
.sup-av{color:var(--accent);background:var(--accent-soft)}.sup-av svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sup-faq-g{margin:16px 4px 8px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
/* trajets (indemnités kilométriques) : en-tête fixe (titre, fermer), contenu qui défile, bouton d'enregistrement fixe en bas */
.modal:has(.mi){padding:0;gap:0;overflow:hidden;width:min(100%,520px)}
.mi{display:flex;flex-direction:column;max-height:90vh;width:100%;min-height:0}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){
.modal-back:has(.mi){padding:0;align-items:stretch}
.modal:has(.mi){width:100%;max-width:none;height:100%;max-height:none;border-radius:0;margin:0;box-shadow:none}
.mi{max-height:none;height:100%;padding-top:env(safe-area-inset-top,0px)}
}
/* Champs date (iPhone) : même largeur que les autres champs, texte à gauche */
/* Dates et heures (iPhone) : même largeur que les autres champs, texte à gauche, même hauteur même vide */
input[type=date].input,input[type=time].input{-webkit-appearance:none;appearance:none;display:block;text-align:left;min-width:0;max-width:100%;width:100%;min-height:46px;line-height:22px}
input[type=date].input::-webkit-date-and-time-value,input[type=time].input::-webkit-date-and-time-value{text-align:left}
/* Fenêtres longues (événement, ticket, voyage, menu +) : la rangée de boutons du bas reste visible, collée au bas de la fenêtre */
.modal>.row:last-child,.modal>form>.row:last-child,.modal>.stack>.row:last-child{position:sticky;bottom:-22px;z-index:2;margin:0 -22px -22px;padding:12px 22px 22px;background:var(--surface);border-top:1px solid var(--line);flex-wrap:wrap}
/* family-app : styles de l'aide (assistant IA et support), repris de l'appli de référence */
/* Aide : assistant IA et support */
.sup-hub{padding:4px!important}.sup-row{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:14px}.sup-row:hover{background:var(--surface-2)}.sup-row>svg{width:16px;height:16px;color:var(--muted);fill:none;stroke:currentColor;stroke-width:2.2;margin-left:auto;flex:none}
.ec-orb{width:40px;height:40px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 30%,#fff 0,#cfe0ff 22%,#5A9BFF 55%,#7B5CFF 100%);box-shadow:0 4px 14px rgba(90,155,255,.35)}
.sup-av{background:#E8F0FE!important;color:#2563EB!important}
#efChat{position:fixed;inset:0;z-index:215;background:var(--bg);display:flex;justify-content:center;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
.ec-wrap{width:min(100%,640px);display:flex;flex-direction:column;height:100%;min-height:0}
.ec-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.ec-back{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none}.ec-back svg{width:18px;height:18px}
.ec-who{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.ec-who>span:last-child{min-width:0}.ec-who b{display:block;font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ec-att{display:flex;gap:8px;align-items:flex-start;margin:0}.ec-att svg{width:16px;height:16px;flex:none;margin-top:2px;fill:none;stroke:var(--good);stroke-width:2.4}.ec-who small{display:block;color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ec-orb{width:34px;height:34px}.ec-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#E8F0FE;color:#2563EB;flex:none}.ec-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.ec-tohum{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 12px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap}
.ec-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 14px;display:flex;flex-direction:column;gap:10px}
.ec-m{max-width:86%;padding:10px 14px;border-radius:18px;line-height:1.45;font-size:.95rem;word-wrap:break-word}.ec-m p{margin:0 0 6px}.ec-m p:last-child{margin:0}.ec-m ul{margin:4px 0 6px;padding-left:18px}.ec-m li{margin:2px 0}
.ec-m.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:6px}.ec-m.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:6px}
.ec-hum{margin-top:10px;gap:6px}.ec-hum svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.ec-typing{display:flex;gap:5px;padding:14px 16px}.ec-typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:ecDot 1.2s infinite}.ec-typing i:nth-child(2){animation-delay:.15s}.ec-typing i:nth-child(3){animation-delay:.3s}
@keyframes ecDot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}
.ec-sugs{display:flex;flex-direction:column;gap:8px;margin-top:6px}.ec-sug{align-self:flex-start;text-align:left;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:14px;padding:9px 13px;font:inherit;font-size:.9rem;cursor:pointer}.ec-sug:hover{background:var(--surface)}
.ec-in{display:flex;gap:8px;padding:10px 14px 4px;border-top:1px solid var(--line)}.ec-in .input{flex:1;min-height:46px;border-radius:999px;padding:0 16px;font-size:1rem}
.ec-send{width:46px;min-width:46px;height:46px;border-radius:50%;padding:0;display:grid;place-items:center}.ec-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ec-note{margin:2px 0 8px;text-align:center;font-size:.72rem;color:var(--muted)}
.ec-form{padding:18px 14px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}
.ec-chips{display:flex;flex-wrap:wrap;gap:8px}.ec-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font:inherit;font-size:.88rem;cursor:pointer}.ec-chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.ec-done{text-align:center;padding:30px 10px;display:flex;flex-direction:column;align-items:center;gap:12px}.ec-done svg{width:44px;height:44px;color:var(--good);fill:none;stroke:currentColor;stroke-width:2.4}.ec-done p{margin:0;font-weight:600}
.card-t{display:flex;flex-direction:column;min-width:0;flex:1;white-space:normal!important;overflow:visible!important}.card-t b,.card-t small{white-space:normal;overflow:visible;text-overflow:clip}.card-t small{color:var(--muted);font-size:.8rem}

/* Questions fréquentes repliées sous un seul titre ; sommaire de la rubrique Compte */
.set-faqall{margin-top:6px}.set-faqall>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;padding:12px 14px;border-radius:14px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font-weight:600}
.set-faqall>summary::-webkit-details-marker{display:none}.set-faqall>summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.set-faqall[open]>summary svg{transform:rotate(180deg)}
.set-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}
.set-sec{scroll-margin-top:16px}
/* family-app : styles propres aux écrans de la famille (agenda, listes, repas, coffre, formulaires).
   Tout le reste vient des feuilles de l'appli de référence (01 à 08). Couleurs : variables de 01-base, en clair comme en sombre. */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.linkbtn{border:0;background:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.tb-intro{margin:2px 0 0}
.fa-err{margin:0;color:var(--bad);font-size:.9rem;font-weight:600}
.fa-ferr{margin-top:6px;scroll-margin-bottom:96px}.input[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}
.fa-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fa-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:480px){.fa-g2{grid-template-columns:minmax(0,1fr)}.fa-g3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fa-g3>.field:first-child{grid-column:1/-1}}
.fa-check{display:flex;align-items:center;gap:8px;font-size:.95rem;cursor:pointer}.fa-check input{width:18px;height:18px;accent-color:var(--accent)}
.fa-ib{width:36px;height:36px;padding:0;display:inline-grid;place-items:center;flex:none}.fa-ib svg{width:18px;height:18px}
.fa-tip{display:flex;gap:8px;align-items:flex-start;margin:12px 4px}.fa-tip svg{width:16px;height:16px;flex:none;margin-top:2px}
.hint svg{width:14px;height:14px;vertical-align:-2px}
.dh-all svg,.btn svg{width:16px;height:16px}

/* Pastilles de couleur (catégories, membres, moyens de paiement) : fond teinté de la couleur, icône de la couleur */
.fa-tint{background:color-mix(in srgb,var(--c) 15%,var(--surface))!important;color:var(--c)!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fa-tint{background:color-mix(in srgb,var(--c) 28%,var(--surface))!important;color:color-mix(in srgb,var(--c) 55%,#fff)!important}}
:root[data-theme="dark"] .fa-tint{background:color-mix(in srgb,var(--c) 28%,var(--surface))!important;color:color-mix(in srgb,var(--c) 55%,#fff)!important}
.fa-chip{background:color-mix(in srgb,var(--c) 14%,transparent)!important;color:color-mix(in srgb,var(--c) 80%,var(--ink))!important;border:0}
.fa-mini{color:var(--muted);display:inline-grid;place-items:center;flex:none}.fa-mini svg{width:15px;height:15px}
.fa-av{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:700;font-size:.78rem;flex:none}
.fa-av-lg{width:38px;height:38px;font-size:.95rem}
.dh-cat.fa-sel{background:var(--accent-soft)}

/* Lignes d'événement : barre de couleur du membre à gauche */
.fa-ev{position:relative}.fa-bar{position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0}
.dh-li.on{background:var(--accent-soft)}

/* Deux colonnes (ordinateur) : contenu principal et colonne d'appoint */
.fa-2col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:22px;align-items:start}
.fa-2col-w{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
@media (max-width:1100px){.fa-2col,.fa-2col-w{grid-template-columns:minmax(0,1fr)}}
.fa-side .dh-h:first-child{margin-top:0}
.fa-ltabs{margin:0 0 14px;max-width:100%;overflow-x:auto;scrollbar-width:none}.fa-ltabs::-webkit-scrollbar{display:none}
@media (min-width:1101px){.fa-ltabs:not(.fa-keep){display:none}}
.fa-ltabs.fa-keep,[data-view="rdv"] .fa-ltabs{display:inline-flex}

/* Agenda */
.fa-agnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.fa-agnav .seg{flex:0 1 auto}
.fa-range{font-weight:700;margin:0 4px}
.fa-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:.8rem;color:var(--muted)}.fa-legend span{display:inline-flex;align-items:center;gap:6px}

/* Listes */
.fa-list{padding:16px}.fa-list .panel-head{gap:8px}.fa-list .panel-head h2{margin-right:auto;min-width:0}
.fa-add{display:flex;gap:8px;margin:4px 0 12px}.fa-add .input{flex:1;min-width:0}
.fa-add .btn{width:46px;padding:0;display:grid;place-items:center;flex:none}.fa-add .btn svg{width:20px;height:20px}
@media (max-width:480px){.fa-add{flex-wrap:wrap}.fa-add .input:first-of-type{flex:1 1 100%}}
.fa-items{display:flex;flex-direction:column}
.fa-item{display:flex;align-items:center;gap:12px;padding:9px 4px;border-top:1px solid var(--line)}
.fa-items>.fa-item:first-child{border-top:0}
.fa-it{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.fa-it b{font-weight:500}.fa-it small{color:var(--muted);font-size:.82rem}
/* Poubelle d'un article : bien visible, grande zone de toucher */
.fa-idel{flex:none;width:40px;height:40px;margin:-6px 0;border:0;border-radius:12px;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer;padding:0}
.fa-idel svg{width:19px;height:19px}.fa-idel:hover,.fa-idel:focus-visible{background:color-mix(in srgb,var(--danger,#dc2626) 12%,transparent);color:var(--danger,#dc2626)}
/* Liste de courses : « Ma liste » et les rayons à gauche, leur contenu à droite (une colonne à la fois sur téléphone) */
.fa-split{display:grid;grid-template-columns:minmax(200px,250px) minmax(0,1fr);gap:16px;align-items:start}.fa-split.one{grid-template-columns:minmax(0,1fr)}
.fa-anavs{display:flex;flex-direction:column;gap:2px;position:sticky;top:12px}
.fa-anav{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 8px;border:0;border-radius:12px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-anav b{flex:1;min-width:0;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fa-anav em{font-style:normal;font-size:.75rem;font-weight:700;color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent);border-radius:99px;padding:2px 8px}
.fa-anav>svg{width:16px;height:16px;color:var(--muted);flex:none}
.fa-anav:hover{background:var(--surface-2)}.fa-anav.on{background:var(--accent-soft);color:var(--ink)}.fa-anav.on b{font-weight:800}
.fa-aicm{background:var(--accent-soft);color:var(--accent)}
.fa-pane{min-width:0;border-left:1px solid var(--line);padding-left:16px}.fa-split.one .fa-pane{border-left:0;padding-left:0}
.fa-panehead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 4px 8px}.fa-panehead h3{margin:0;font-size:1.05rem;font-weight:800;flex:1}
.fa-panehead em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--good)}.fa-panehead .fa-lback{flex-basis:100%;padding:0 0 4px}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.fa-split .fa-anav>svg{display:none}}
.fa-tog{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line));border-radius:99px;background:var(--surface);color:var(--accent);font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}
.fa-tog svg{width:15px;height:15px;stroke-width:2.6}.fa-tog.on{background:var(--good);border-color:var(--good);color:#fff}.fa-tog:disabled{opacity:.6;cursor:default}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-tog{min-height:32px;padding:0 10px;font-size:.78rem;gap:4px}.fa-tog svg{width:13px;height:13px}.fa-pane .fa-item{gap:8px}}
.fa-item.on .fa-it b{font-weight:600}
/* « Ma liste » : un rayon par menu déroulant (fermé par défaut) */
.fa-mgrp{border-top:1px solid var(--line)}.fa-mgrp:first-of-type{border-top:0}
.fa-mgh{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 4px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-mgh b{flex:1;font-size:.92rem}.fa-mgh em{font-style:normal;font-size:.75rem;font-weight:700;color:var(--good);background:color-mix(in srgb,var(--good) 12%,transparent);border-radius:99px;padding:2px 8px}
.fa-mgh>svg{width:18px;height:18px;color:var(--muted);transition:transform .15s;transform:rotate(-90deg)}.fa-mgrp.open .fa-mgh>svg{transform:none}
.fa-mgrp .fa-item{padding-left:14px}.fa-mgh+.fa-item{border-top:0}
/* Fenêtre de fin des courses */
.fa-endshop{text-align:center;align-items:center}.fa-endshop h2{margin:0}.fa-endshop p{margin:0}
.fa-endic{width:52px;height:52px}.fa-endic svg{width:26px;height:26px}
.fa-endbtns{display:flex;gap:10px;width:100%;flex-wrap:wrap}.fa-endbtns .btn{flex:1 1 160px;justify-content:center;min-height:46px}
.fa-raadd{display:flex;gap:8px;margin-top:12px}.fa-raadd .input{flex:1;min-width:0}.fa-raadd .btn{width:46px;padding:0;display:grid;place-items:center}
/* Au magasin : « Voir seulement ma liste », un toucher barre l'article (dans le caddie) */
/* En-tête de la liste : nom, étoile Favori, « ✓ Enregistrée » */
.fa-lhead{align-items:flex-start}.fa-ltitle{flex:1;min-width:0}
.fa-ltitle h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fa-saved{margin:2px 0 0;font-size:.78rem;font-weight:600;color:var(--good)}.fa-saved.busy{color:var(--muted)}
/* Boutons de la liste, avec du texte : favori, renommer, dupliquer, supprimer */
.fa-lacts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}.fa-lacts .btn{gap:6px}.fa-lacts .btn svg{width:16px;height:16px;flex:none}
.fa-lacts .fa-favoff svg{color:#E8A400}
.fa-lacts .fa-favon{background:#FFF4D6;border-color:#E8A400;color:#7A5600}.fa-lacts .fa-favon svg{color:#E8A400;fill:currentColor}
.fa-lacts .fa-lmore2{padding:0 12px}.fa-lacts .fa-lmore2 svg{width:18px;height:18px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-lacts{flex-wrap:nowrap}.fa-lacts .fa-favon,.fa-lacts .fa-favoff{flex:1;justify-content:center;font-size:.86rem;min-width:0;white-space:nowrap;padding:0 10px}}
.fa-favtag{display:inline-flex;align-items:center;gap:6px;margin:8px 0 0;font-size:.82rem;font-weight:700;color:#7A5600}.fa-favtag svg{width:15px;height:15px;color:#E8A400;fill:currentColor}
/* Onglets : Ma liste, + Ajouter, Au magasin */
.fa-lstabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;margin:12px 0 14px;border-radius:14px;background:var(--surface-2)}
/* Onglets collés en haut de l'écran pendant qu'on fait défiler les articles */
.fa-lstabs{position:sticky;top:calc(env(safe-area-inset-top,0px) + 6px);z-index:4;box-shadow:0 0 0 6px var(--surface)}
/* Téléphone : en-tête de la liste sur deux lignes (enregistrée, favori et ⋯) */
.fa-lhead-m{display:flex;flex-direction:column;gap:8px}.fa-lhead-m .fa-saved{margin:0}.fa-lhead-m .fa-lacts{margin:0}
.fa-emptyadd{margin:0 0 10px;font-size:.92rem;font-weight:600;color:var(--muted)}
.fa-lstab{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:0 8px;border:0;border-radius:11px;background:none;color:var(--muted);font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;white-space:nowrap}
.fa-lstab svg{width:17px;height:17px;flex:none}.fa-lstab span{overflow:hidden;text-overflow:ellipsis}
.fa-lstab em{font-style:normal;font-size:.72rem;background:var(--accent);color:var(--accent-ink);border-radius:99px;padding:1px 7px}
.fa-lstab.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-lstab{flex-direction:column;gap:2px;min-height:54px;padding:4px;font-size:.76rem;position:relative}.fa-lstab em{position:absolute;top:4px;right:calc(50% - 26px);font-size:.66rem;padding:0 6px}}
.fa-lzero{text-align:center;padding:28px 12px}.fa-lzero p{color:var(--muted);margin:0 0 14px}
/* Quantité : − 2 + */
.fa-step{flex:none;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:99px;overflow:hidden}
.fa-step button{width:34px;height:32px;border:0;background:none;color:var(--ink);font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer;padding:0}.fa-step button:disabled{color:var(--line);cursor:default}
.fa-step b{min-width:34px;text-align:center;font-size:.88rem;font-weight:700}.fa-step b small{margin-left:3px;font-weight:600;color:var(--muted)}
.fa-qtyro{color:var(--muted)}
.fa-rechint{margin:0 4px 6px}
/* Listes à gauche : ★ Favoris, autres listes */
.fa-lsec{display:flex;align-items:center;gap:6px;margin:6px 4px 2px;font-size:.74rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.fa-lsec svg{width:14px;height:14px;color:#E8A400;fill:currentColor}
.fa-lgrid .fa-lsec{grid-column:1/-1}
.fa-shopn{display:flex;flex-direction:column;gap:6px;margin:0 4px 6px;color:var(--muted);font-weight:600;font-size:.88rem}.fa-shopn i{display:block;height:6px;border-radius:99px;background:linear-gradient(90deg,var(--good) var(--p),var(--surface-2) var(--p))}
.fa-take{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;padding:8px 4px 8px 12px;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-ghead+.fa-take{border-top:0}
.fa-tkbox{flex:none;width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:transparent}.fa-tkbox svg{width:15px;height:15px;stroke-width:3}
.fa-take.on .fa-tkbox{background:var(--good);border-color:var(--good);color:#fff}.fa-take.on .fa-it b{text-decoration:line-through;color:var(--muted)}
.fa-sgrp{border-top:1px solid var(--line)}.fa-sgrp:first-of-type{border-top:0}
.fa-sgh{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:6px 4px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-sgh b{flex:1;font-size:.95rem}.fa-sgh em{font-style:normal;font-size:.8rem;font-weight:700;color:var(--muted)}
.fa-sgh>svg{width:18px;height:18px;color:var(--muted);transition:transform .15s;transform:rotate(-90deg)}.fa-sgrp.open .fa-sgh>svg{transform:none}
.fa-sgh.ok b,.fa-sgh.ok em{color:var(--good)}.fa-sgh .fa-aicok{background:var(--good);color:#fff}.fa-sgh .fa-aicok svg{stroke-width:3}
.fa-sgh+.fa-take{border-top:0}
.fa-shopend{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.fa-shopend .btn{flex:1 1 200px;justify-content:center;min-height:46px}
.fa-done{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.fa-done summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:.9rem;padding:6px 4px}

/* Repas : une ligne par jour, midi et soir côte à côte */
.fa-meals{display:flex;flex-direction:column;margin-top:6px}
.fa-mday{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center;padding:10px 4px;border-top:1px solid var(--line)}
.fa-mday:first-child,.fa-mcolh+.fa-mday{border-top:0}
.fa-mcolh{padding:4px 4px 8px;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.fa-mh{display:flex;align-items:baseline;gap:8px;min-width:0}
.fa-mh span{font-weight:600;text-transform:capitalize;color:var(--muted)}
.fa-mh b{font-size:1.25rem;font-weight:800;color:var(--ink)}
.fa-mday.today .fa-mh span,.fa-mday.today .fa-mh b{color:var(--accent)}
.fa-mday.today{background:color-mix(in srgb,var(--accent) 5%,transparent);border-radius:14px;border-top-color:transparent}
.fa-mday.today+.fa-mday{border-top-color:transparent}
.fa-meal{border:1.5px dashed var(--line);background:none;border-radius:14px;padding:0 16px;height:56px;text-align:left;cursor:pointer;font:inherit;color:var(--muted);display:flex;align-items:center;min-width:0}
.fa-meal b{font-size:.95rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
.fa-meal b svg{width:16px;height:16px;flex:none}
.fa-meal.on{border-style:solid;border-color:color-mix(in srgb,#B25B00 30%,var(--line));background:color-mix(in srgb,#B25B00 8%,var(--surface));color:var(--ink)}
.fa-meal:hover{border-color:var(--accent);color:var(--accent)}.fa-meal.on:hover{color:var(--ink)}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-mday{grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);gap:8px;padding:8px 2px}.fa-mh{flex-direction:column;gap:0;align-items:flex-start}.fa-mh span{font-size:.75rem}.fa-mh b{font-size:1.1rem}.fa-meal{height:52px;padding:0 10px}.fa-meal b{font-size:.86rem}}

/* Coffre */
.fa-drop{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:22px;margin-bottom:6px;cursor:pointer}
.fa-drop svg{width:28px;height:28px;color:var(--accent)}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-drop{display:none}}
.fa-prev{width:100%;max-height:300px;object-fit:contain;border-radius:12px;background:var(--surface-2)}
.fa-file{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;font-weight:600}.fa-file svg{width:20px;height:20px}
.fa-ai{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.9rem;min-height:22px}.fa-ai.ok{color:var(--good);font-weight:600}.fa-ai svg{width:16px;height:16px}
.fa-who{align-items:center;gap:10px;justify-content:flex-start}.fa-who h2{margin:0}
.fa-past .dh-li{opacity:.7}

/* Dépenses */
.fa-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.fa-filters .input{width:auto;flex:1 1 160px;min-height:40px;padding:8px 10px}

/* Formulaires : choix d'une couleur, choix d'une icône */
.fa-sw{gap:8px}.fa-sw .swatch{padding:0;position:relative}.fa-sw input{position:absolute;opacity:0;width:1px;height:1px}
.fa-sw .swatch i{width:34px;height:34px}
.fa-sw input:checked+i{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--ink)}
.fa-sw input:focus-visible+i{outline:2px solid var(--accent);outline-offset:3px}
.fa-icons{display:flex;flex-wrap:wrap;gap:6px}
.fa-icp{position:relative;cursor:pointer}.fa-icp input{position:absolute;opacity:0;width:1px;height:1px}
.fa-icp>span:not(.sr){width:40px;height:40px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted)}
.fa-icp svg{width:20px;height:20px}.fa-icp input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}

/* Agendas connectés, invitations */
.fa-copy{display:flex;gap:8px}.fa-copy .input{flex:1;min-width:0;font-size:.85rem}
.fa-how{border-top:1px solid var(--line);padding:8px 0}.fa-how summary{cursor:pointer;font-weight:600}.fa-how p{margin:8px 0 0;color:var(--muted);white-space:pre-line}
.fa-linkrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);width:100%}
.fa-linkrow .set-t{flex:1;min-width:0}
.fa-code{font-size:2rem;font-weight:800;letter-spacing:.2em;text-align:center;padding:14px;border-radius:14px;background:var(--surface-2);font-variant-numeric:tabular-nums}
.fa-codein{font-size:1.4rem;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}
.fa-roles .dh-kv span{display:flex;flex-direction:column;gap:2px}.fa-roles .dh-kv small{color:var(--muted);font-size:.84rem;font-weight:400}

/* Réglages : interrupteur (e-mail du lundi) */
.fa-sw-row{cursor:pointer}.fa-sw-row .set-t{flex:1}
.fa-switch{appearance:none;-webkit-appearance:none;width:46px;height:28px;border-radius:999px;background:var(--line);position:relative;cursor:pointer;flex:none;transition:background .2s;margin:0}
.fa-switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.fa-switch:checked{background:var(--good)}.fa-switch:checked:after{transform:translateX(18px)}
.fa-switch:disabled{opacity:.5;cursor:default}

/* Saisie assistée par l'IA : une carte par événement proposé */
.fa-aireview{max-height:none}
.fa-airow{border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}
.fa-airow:has([data-aion]:not(:checked)){opacity:.5}
.modal:has(.fa-aireview){width:min(100%,620px)}
.modal:has(.fa-form){width:min(100%,560px)}

/* Guide sans capture d'écran */
.fa-gd{display:block}

/* Menu latéral : compte en bas */
.rail-acct{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:6px 4px;border-radius:12px;cursor:pointer;color:var(--ink);font-family:inherit;text-align:left;margin-bottom:8px}
.rail-acct:hover{background:var(--surface-2)}.rail-acct .set-t{min-width:0}.rail-acct .set-t b,.rail-acct .set-t span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-acct .set-t span{font-size:.78rem;color:var(--muted)}
.rail-acct .set-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;flex:none}

/* Repli des onglets de liste : visibles seulement quand la colonne de droite passe dessous */
[data-view="lists"] .fa-side .dh-card{margin-bottom:6px}

/* Retouches après essai (téléphone et ordinateur) */
button.dh-pill{border:0;color:inherit;font:inherit;font-size:.84rem;font-weight:600;cursor:pointer}
.dh-h{min-height:32px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.topbar .tb-d{display:none}}
@media (max-width:480px){.dh-hero .dh-amt{font-size:2.1rem}.fa-agnav .btn:not(.fa-ib){flex:1 1 100%}}
.dh-cat>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.fa-mnav{display:inline-flex;align-items:center;gap:4px;flex:none}.fa-mnav .dh-per{padding:5px 8px}
.fa-it{border:0;background:none;padding:4px 0;text-align:left;font:inherit;color:inherit;cursor:default}

/* Listes : suggestions pendant la frappe, groupes repliables par rayon */
.fa-list .panel-head .dh-ic{width:34px;height:34px}.fa-list .panel-head .dh-ic svg{width:18px;height:18px}
.fa-sugw{position:relative;flex:1;min-width:0}.fa-sugw .input{width:100%}
.fa-sug{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:4px;max-height:320px;overflow:auto}
.fa-sugi{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:8px 10px;border-radius:10px;cursor:pointer;font:inherit;color:var(--ink);text-align:left}
.fa-sugi:hover,.fa-sugi.on{background:var(--accent-soft)}.fa-sugi b{font-weight:600;flex:1}.fa-sugi small{color:var(--muted);font-size:.78rem}
.fa-aic{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-grid;place-items:center;flex:none}.fa-aic svg{width:17px;height:17px}
.fa-aic2 svg{width:20px;height:20px}
.fa-grp{border-top:1px solid var(--line)}.fa-grp:first-child{border-top:0}
.fa-ghead{display:flex;align-items:center;gap:10px;padding:12px 4px 4px}.fa-ghead b{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.fa-ghead .fa-aic{width:26px;height:26px}.fa-ghead .fa-aic svg{width:15px;height:15px}
.fa-grp .fa-item{padding-left:12px}.fa-ghead+.fa-item{border-top:0}
.fa-aorder .cat-row .icon-btn{flex:none}
.modal:has(#listForm){width:min(100%,560px)}
.fa-ltabs{flex-wrap:nowrap}.fa-ltabs button{white-space:nowrap}
@media (max-width:480px){.fa-add .fa-sugw{flex:1 1 calc(100% - 56px)}.fa-aorder .fa-aic2{display:none}}
.fa-prevw{position:relative}
.fa-rot{position:absolute;right:10px;bottom:10px;width:40px;height:40px;border-radius:50%;border:0;background:rgba(15,20,30,.72);color:#fff;display:grid;place-items:center;cursor:pointer}
.fa-rot svg{width:20px;height:20px}
.fa-avbtn{position:relative;border:0;background:none;padding:0;cursor:pointer;flex:none;border-radius:50%}
.fa-avedit{position:absolute;right:-3px;bottom:-3px;width:18px;height:18px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted)}.fa-avedit svg{width:10px;height:10px}
.fa-colgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:12px}
.fa-colbtn{width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;color:#fff}.fa-colbtn svg{width:22px;height:22px;stroke-width:3}
.fa-colbtn.on{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--ink)}

/* ===== Agenda v3 : jour, semaine, mois, année, planning ===== */
.fa-agbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.fa-agtitle{margin:0 auto 0 0;font-size:1.35rem;letter-spacing:-.01em;display:flex;align-items:baseline;gap:10px}
.fa-agsub{font-size:.9rem;color:var(--muted);font-weight:500}
.fa-agarrows{display:inline-flex;gap:2px}
.fa-agseg button{min-width:72px}
.fa-agwrap{display:flex;gap:18px;align-items:flex-start}
.fa-agmain{flex:1;min-width:0}
.fa-agside{width:252px;flex:none;display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}
@media (max-width:1100px){.fa-agside{display:none}}
.fa-side-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:8px}
.fa-sidet{font-size:.74rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:6px;justify-content:space-between}
.fa-focus{display:inline-flex;align-items:center;gap:4px;cursor:pointer;text-transform:none;letter-spacing:0;font-size:.78rem}.fa-focus svg{width:12px;height:12px}
.fa-mmhead{display:flex;align-items:center;justify-content:space-between}.fa-mmhead b{font-size:.95rem}
.fa-mmnav{border:0;background:none;width:28px;height:28px;border-radius:8px;cursor:pointer;color:var(--muted);display:inline-grid;place-items:center}.fa-mmnav:hover{background:var(--surface-2)}.fa-mmnav svg{width:15px;height:15px}
.fa-mmgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.fa-mmgrid>span{font-size:.7rem;font-weight:700;color:var(--muted);padding:2px 0}
.fa-mm{height:30px;border:0;background:none;border-radius:8px;font:inherit;font-size:.8rem;color:var(--ink);cursor:pointer}
.fa-mm:hover{background:var(--surface-2)}.fa-mm.out{color:var(--muted);opacity:.5}
.fa-mm.wk{background:var(--accent-soft);color:var(--accent);font-weight:600;border-radius:0}
.fa-mm.on,.fa-mm.today{background:var(--accent);color:var(--accent-ink);font-weight:700;border-radius:8px}
.fa-memchk{display:flex;align-items:center;gap:10px;font-weight:500;cursor:pointer;padding:3px 0}
.fa-memchk input{position:absolute;opacity:0;pointer-events:none}
.fa-box{width:18px;height:18px;border-radius:6px;border:2px solid var(--c);display:grid;place-items:center;color:#fff;flex:none}
.fa-box svg{width:11px;height:11px;stroke-width:3.5;opacity:0}
.fa-memchk input:checked+.fa-box{background:var(--c)}.fa-memchk input:checked+.fa-box svg{opacity:1}
.fa-memchk input:focus-visible+.fa-box{outline:2px solid var(--accent);outline-offset:2px}
.fa-swl{display:flex;align-items:center;gap:10px;cursor:pointer}.fa-swl>span:nth-child(2){flex:1}
.fa-sq{width:10px;height:10px;border-radius:3px;flex:none}
/* grille d'heures */
.fa-tg{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.fa-tgrow{display:grid;grid-template-columns:56px repeat(var(--n),minmax(0,1fr))}
.fa-tghead{border-bottom:1px solid var(--line)}
.fa-tgh{border:0;border-left:1px solid var(--line);background:none;padding:10px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;font:inherit;color:var(--ink);cursor:pointer}
.fa-tgh span{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase}
.fa-tgh b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:1.05rem}
.fa-tgh.today b{background:var(--accent);color:var(--accent-ink)}
.fa-tgh:hover b{background:var(--surface-2)}.fa-tgh.today:hover b{background:var(--accent)}
.fa-tgall{border-bottom:1px solid var(--line);min-height:36px}
.fa-tglbl{font-size:.68rem;color:var(--muted);text-align:right;padding:8px 6px 0 0}
.fa-tgad{border-left:1px solid var(--line);padding:4px 3px;display:flex;flex-direction:column;gap:3px;min-width:0}
.fa-adv,.fa-adh,.fa-ade{font-size:.72rem;font-weight:600;border-radius:6px;padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.fa-adv{background:color-mix(in srgb,#6A46DB 14%,var(--surface));color:color-mix(in srgb,#6A46DB 80%,var(--ink))}
.fa-adh{background:color-mix(in srgb,#B25B00 14%,var(--surface));color:color-mix(in srgb,#B25B00 80%,var(--ink))}
.fa-ade{border:0;cursor:pointer;font-family:inherit;background:color-mix(in srgb,var(--c) 18%,var(--surface));color:color-mix(in srgb,var(--c) 75%,var(--ink));border-left:3px solid var(--c)}
.fa-tgscroll{max-height:calc(100vh - 230px);min-height:480px;overflow-y:auto;overscroll-behavior:contain}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-tgscroll{max-height:calc(100vh - 330px)}}
.fa-tghours{display:flex;flex-direction:column}.fa-tghours span{font-size:.68rem;color:var(--muted);text-align:right;padding-right:8px;transform:translateY(-6px);box-sizing:border-box}
.fa-tghours span:first-child{transform:none}
.fa-tgc{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,var(--line) 0,var(--line) 1px,transparent 1px,transparent 48px)}
.fa-tgc.today{background-color:color-mix(in srgb,var(--accent) 4%,transparent)}
.fa-tgc.vac{background-color:color-mix(in srgb,#6A46DB 4%,transparent)}
.fa-slot{position:absolute;left:0;right:0;height:48px;border:0;background:transparent;cursor:pointer;padding:0}
.fa-slot:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.fa-tge{position:absolute;z-index:1;border:0;border-left:3px solid var(--c);border-radius:8px;padding:4px 7px;text-align:left;cursor:pointer;font:inherit;overflow:hidden;display:flex;flex-direction:column;gap:1px;background:color-mix(in srgb,var(--c) 16%,var(--surface));color:color-mix(in srgb,var(--c) 70%,var(--ink));box-shadow:0 1px 2px rgba(0,0,0,.04)}
.fa-tge b{font-size:.78rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fa-tge span{font-size:.7rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-tge:hover{filter:brightness(.97)}
.fa-now{position:absolute;left:-1px;right:0;height:2px;background:#D92D20;z-index:2;pointer-events:none}.fa-now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#D92D20}
/* mois */
.fa-mgrid{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.fa-mdows{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}
.fa-mdows span{padding:10px 10px;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.fa-mcells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.fa-mcell{min-height:118px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:none;padding:6px;display:flex;flex-direction:column;gap:3px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;min-width:0}
.fa-mcell:nth-child(7n){border-right:0}
.fa-mcell:hover{background:var(--surface-2)}.fa-mcell.out{opacity:.45}
.fa-mcell.vac{background:color-mix(in srgb,#6A46DB 5%,transparent)}
.fa-mhead{display:flex;align-items:center;gap:6px;min-width:0}
.fa-mhead b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.82rem;flex:none}
.fa-mhead em{font-style:normal;font-size:.68rem;font-weight:700;color:#B25B00;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-mcell.today .fa-mhead b{background:var(--accent);color:var(--accent-ink)}
.fa-mchips{display:flex;flex-direction:column;gap:2px;min-width:0}
.fa-mc{font-size:.72rem;line-height:1.25;padding:2px 6px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:color-mix(in srgb,var(--c) 15%,var(--surface));color:color-mix(in srgb,var(--c) 75%,var(--ink))}
.fa-mc i{font-style:normal;font-weight:700;margin-right:4px}
.fa-mc.full{background:var(--c);color:#fff;font-weight:600}
.fa-mchips small{font-size:.7rem;color:var(--muted);font-weight:600;padding-left:6px}
.fa-mdots{display:none}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){
  .fa-mgrid{border-radius:16px}.fa-mdows span{padding:8px 0;text-align:center}
  .fa-mcell{min-height:52px;align-items:center;padding:4px 2px;border-right:0}
  .fa-mchips{display:none}.fa-mhead em{display:none}
  .fa-mdots{display:flex;gap:2px;height:5px}.fa-mdots i{width:5px;height:5px;border-radius:50%}
  .fa-mcell.sel .fa-mhead b{background:var(--ink);color:var(--bg)}
  .fa-mgrid+.fa-plday{margin-top:14px}
}
/* année */
.fa-year{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:1300px){.fa-year{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-year{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.fa-ym{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:10px}
.fa-ym.cur{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.fa-ymh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;border:0;background:none;padding:2px 2px 6px;font:inherit;color:var(--ink);cursor:pointer}
.fa-ymh b{font-size:.95rem}.fa-ym.cur .fa-ymh b{color:var(--accent)}.fa-ymh span{font-size:.72rem;color:var(--muted)}
.fa-ygrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:2px;text-align:center}
.fa-ydow{font-size:.64rem;font-weight:700;color:var(--muted)}
.fa-yd{height:24px;border:0;background:none;font:inherit;font-size:.72rem;color:var(--ink);cursor:pointer;position:relative;border-radius:6px;padding:0}
.fa-yd:hover{background:var(--surface-2)}
.fa-yd.vac{background:color-mix(in srgb,#6A46DB 13%,transparent);border-radius:0}
.fa-yd.hol{background:color-mix(in srgb,#B25B00 22%,transparent);color:color-mix(in srgb,#B25B00 85%,var(--ink));font-weight:700;border-radius:6px}
.fa-yd.busy:after{content:"";position:absolute;bottom:1px;left:50%;margin-left:-2px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.fa-yd.doc{background:none;box-shadow:inset 0 0 0 2px var(--warn);color:var(--warn);font-weight:700;border-radius:50%}
.fa-yd.today{background:var(--accent);color:var(--accent-ink);font-weight:700;border-radius:50%}
.fa-legend .fa-sw{width:12px;height:12px;border-radius:4px;display:inline-block}
.fa-legend .fa-sw.vac{background:color-mix(in srgb,#6A46DB 20%,transparent)}.fa-legend .fa-sw.hol{background:color-mix(in srgb,#B25B00 30%,transparent)}
.fa-legend .fa-sw.busy{width:6px;height:6px;border-radius:50%;background:var(--accent)}.fa-legend .fa-sw.doc{border-radius:50%;background:none;box-shadow:inset 0 0 0 2px var(--warn)}
.fa-agwrap.y .fa-legend{margin:0 0 12px}
/* planning (téléphone) */
.fa-pweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:6px;margin-bottom:12px}
.fa-pwd{border:0;background:none;border-radius:12px;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:3px;font:inherit;color:var(--ink);cursor:pointer}
.fa-pwd span{font-size:.68rem;font-weight:700;color:var(--muted)}
.fa-pwd b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:.95rem}
.fa-pwd em{display:flex;gap:2px;height:5px}.fa-pwd em i{width:5px;height:5px;border-radius:50%}
.fa-pwd.today b{color:var(--accent)}
.fa-pwd.on b{background:var(--accent);color:var(--accent-ink)}
.fa-plday{margin-bottom:12px}
.fa-plh{display:flex;align-items:baseline;gap:8px;margin:6px 4px 6px}.fa-plh b{font-size:.98rem}.fa-plh b.on{color:var(--accent)}.fa-plh span{font-size:.8rem;color:var(--muted)}
.fa-plband{font-size:.76rem;font-weight:600;border-radius:8px;padding:5px 10px;margin-bottom:6px;background:color-mix(in srgb,#6A46DB 13%,var(--surface));color:color-mix(in srgb,#6A46DB 80%,var(--ink))}
.fa-plband.hol{background:color-mix(in srgb,#B25B00 14%,var(--surface));color:color-mix(in srgb,#B25B00 85%,var(--ink))}
.fa-plcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.fa-pl{display:flex;align-items:center;gap:12px;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:11px 14px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.fa-pl:first-child{border-top:0}.fa-pl:hover{background:var(--surface-2)}
.fa-plt{width:48px;flex:none;text-align:right;display:flex;flex-direction:column}.fa-plt b{font-size:.82rem}.fa-plt small{font-size:.7rem;color:var(--muted)}
.fa-pl>i{width:4px;align-self:stretch;border-radius:4px;flex:none}
.fa-plx{flex:1;min-width:0;display:flex;flex-direction:column}.fa-plx b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fa-plx small{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-plempty{color:var(--muted);justify-content:center;gap:6px}.fa-plempty svg{width:14px;height:14px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-agbar{gap:8px}.fa-agtitle{flex:1 1 100%;font-size:1.15rem}.fa-agseg{flex:1 1 100%;display:flex}.fa-agseg button{flex:1;min-width:0}}

/* ===== Accueil v3 : colonnes par personne (ordinateur), fil de la journée (téléphone) ===== */
.fa-only-m{display:none}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-only-d{display:none}.fa-only-m{display:block}}
.fa-htop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.fa-htop h2{margin:0;font-size:1.25rem}.fa-hsp{flex:1}
.fa-hpill{font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:99px}
.fa-hpill.vac{background:color-mix(in srgb,#6A46DB 14%,var(--surface));color:color-mix(in srgb,#6A46DB 85%,var(--ink))}
.fa-hpill.hol{background:color-mix(in srgb,#B25B00 14%,var(--surface));color:color-mix(in srgb,#B25B00 85%,var(--ink))}
.fa-pcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}
.fa-pcol{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;min-height:260px}
.fa-pch{background:var(--c);color:#fff;padding:12px;display:flex;align-items:center;gap:10px}
.fa-pch b{display:block;font-size:.98rem}.fa-pch span{font-size:.76rem;opacity:.9}
.fa-av-col{width:36px;height:36px;font-size:1rem;background:#fff!important;color:var(--c)!important}.fa-av-col svg{width:18px;height:18px}
.fa-pcb{padding:10px;display:flex;flex-direction:column;gap:8px;flex:1}
.fa-pce{border:0;text-align:left;border-radius:12px;padding:9px 10px;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:2px;background:color-mix(in srgb,var(--c) 13%,var(--surface));color:color-mix(in srgb,var(--c) 72%,var(--ink));position:relative}
.fa-pce small{font-size:.72rem;font-weight:700;opacity:.85}.fa-pce b{font-size:.9rem}.fa-pce span{font-size:.74rem;opacity:.8}
.fa-pce .fa-tag{position:absolute;top:8px;right:8px}
.fa-pcfree{flex:1;min-height:80px;border:1.5px dashed var(--line);border-radius:12px;background:none;color:var(--muted);font:inherit;font-size:.84rem;cursor:pointer}
.fa-pcfree:hover{border-color:var(--c);color:var(--ink)}
.fa-pcdoc{display:flex;align-items:center;gap:6px;border:0;background:color-mix(in srgb,#D9482B 12%,var(--surface));color:color-mix(in srgb,#D9482B 85%,var(--ink));border-radius:10px;padding:7px 9px;font:inherit;font-size:.76rem;font-weight:600;cursor:pointer;margin-top:auto}
.fa-pcdoc svg{width:14px;height:14px}
.fa-tag{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:99px;flex:none}
.fa-tag.done{background:var(--good-soft);color:var(--good)}.fa-tag.now{background:#D92D20;color:#fff}
.fa-wids{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:6px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-wids{grid-template-columns:minmax(0,1fr);gap:8px;margin:14px 0 6px}}
.fa-wid{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--ink);text-align:left}
.fa-wid>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}.fa-wid small{font-size:.76rem;color:var(--muted);font-weight:600}.fa-wid b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-wid>svg{width:16px;height:16px;color:var(--muted)}
.fa-wid:hover{border-color:var(--accent)}
/* téléphone */
.fa-fweek{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:12px}
.fa-fwd{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 0;display:flex;flex-direction:column;align-items:center;font:inherit;color:var(--ink);cursor:pointer}
.fa-fwd span{font-size:.66rem;font-weight:700;opacity:.7}.fa-fwd b{font-size:1.05rem}.fa-fwd small{font-size:.62rem;opacity:.7;min-height:12px}
.fa-fwd.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.fa-fwd.past{opacity:.55}
.fa-feed{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:6px 12px 10px}
.fa-fh{font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:10px 4px 4px}
.fa-fr{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:9px 4px;border-radius:12px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.fa-fr.past{opacity:.5}.fa-fr.empty{color:var(--muted);cursor:default;font-size:.88rem}
.fa-ft{width:44px;text-align:right;font-size:.8rem;font-weight:700;flex:none}
.fa-fr>i{width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 18%,transparent);flex:none}
.fa-fx{flex:1;min-width:0;display:flex;flex-direction:column}.fa-fx b{font-weight:600}.fa-fx small{font-size:.76rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* agenda v3.1 : filtre par catégorie, agendas connectés, passés ; vaccins dans Papiers et santé */
.fa-agcats{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:-4px 0 14px;padding-bottom:2px}
.fa-agcats::-webkit-scrollbar{display:none}
.fa-agcat{flex:none;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer}
.fa-agcat i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.fa-agcat:hover{border-color:var(--muted)}
.fa-agcat[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.fa-agcat[aria-pressed="true"] i{box-shadow:0 0 0 2px var(--surface)}
.fa-conn{display:flex;align-items:center;gap:10px;width:100%;padding:8px;margin:0 -8px;border:0;border-radius:12px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;box-sizing:content-box}
button.fa-conn:hover{background:var(--surface-2)}
.fa-conn>svg{width:18px;height:18px;flex:none;color:var(--accent)}
.fa-conn>span{flex:1;min-width:0;display:flex;flex-direction:column}
.fa-conn b{font-size:.88rem}
.fa-conn small{font-size:.76rem;color:var(--muted);line-height:1.3}
.fa-conn.off{cursor:default}.fa-conn.off>svg{color:var(--muted)}
.fa-conn em{font-style:normal;font-size:.7rem;font-weight:700;color:var(--muted);background:var(--surface-2);padding:3px 8px;border-radius:99px}
.fa-pastbtn{margin:14px 0 4px}
.fa-past .fa-plh{display:flex;justify-content:space-between;align-items:center}
.fa-past .fa-pl{opacity:.75}
.fa-vacc{max-width:760px}

/* grille d'heures : en-tête collé dans la zone qui défile (colonnes alignées), barre de défilement fine */
.fa-tgstick{position:sticky;top:0;z-index:3;background:var(--surface);box-shadow:0 1px 0 var(--line)}
.fa-tgscroll{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 35%,transparent) transparent}
.fa-tgscroll::-webkit-scrollbar{width:8px}.fa-tgscroll::-webkit-scrollbar-track{background:transparent}
.fa-tgscroll::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 35%,transparent);border-radius:8px;border:2px solid var(--surface)}
.fa-tgbody{padding-top:8px}
.fa-tgc .fa-now{z-index:2}
.fa-tgbody .fa-tghours span:first-child{transform:translateY(-6px)}

/* couleur de l'app depuis le profil */
.fa-accgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 14px}
.fa-acc{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);font:inherit;color:var(--ink);cursor:pointer}
.fa-acc i{width:34px;height:34px;border-radius:50%}
.fa-acc[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-meal{height:auto;min-height:52px;padding:6px 10px}.fa-meal b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}.fa-meal:not(.on) b{display:flex}}

/* mails transférés à la famille */
.fa-inboxbar{display:flex;align-items:center;gap:12px;width:100%;margin:-4px 0 14px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-inboxbar>svg{width:22px;height:22px;color:var(--accent);flex:none}
.fa-inboxbar>span{flex:1;display:flex;flex-direction:column}.fa-inboxbar small{color:var(--muted);font-size:.8rem}
.fa-inboxbar em{font-style:normal;font-weight:700;color:var(--accent)}
.fa-iblist{display:flex;flex-direction:column;gap:2px;max-height:60vh;overflow:auto}
.fa-ibrow{display:flex;align-items:center;gap:12px;padding:10px 4px;border-top:1px solid var(--line)}.fa-ibrow:first-child{border-top:0}
.fa-ibx{flex:1;min-width:0;display:flex;flex-direction:column}.fa-ibx b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-ibx small{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fa-ibx .fa-ibst{color:var(--ink);font-weight:600}
.fa-ibacts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ibrow{flex-wrap:wrap}.fa-ibacts{width:100%;justify-content:flex-start;padding-left:48px}}
.fa-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}
.fa-steps{margin:10px 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--ink);font-size:.9rem;line-height:1.45}
.fa-senders{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.fa-sender{display:inline-flex;align-items:center;gap:4px}.fa-x{border:0;background:none;padding:0;display:grid;place-items:center;cursor:pointer;color:var(--muted)}.fa-x svg{width:14px;height:14px}
h2>svg{width:1.1em;height:1.1em;vertical-align:-3px;margin-right:4px;flex:none}.panel-head h2{display:flex;align-items:center;gap:6px}
p .fa-mono{word-break:break-all}
/* Réglages > Profil de la famille : couleurs */
.fa-colrow{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.fa-colrow>div:first-child{display:flex;flex-direction:column;min-width:200px;flex:1}.fa-colrow small{color:var(--muted);font-size:.8rem}
.fa-swrow{display:flex;gap:8px;flex-wrap:wrap}
.fa-sw1{width:32px;height:32px;border-radius:50%;border:0;background:var(--c);display:grid;place-items:center;cursor:pointer;color:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.fa-sw1 svg{width:16px;height:16px}.fa-sw1.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--c)}

/* Listes : menu des listes (ordinateur), grille (téléphone) */
.fa-lwrap{display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start}
.fa-lmenu{position:sticky;top:12px;display:flex;flex-direction:column;gap:6px}
.fa-lmain{min-width:0;display:flex;flex-direction:column;gap:16px}
.fa-lcard{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-lcard:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}
.fa-lcard.on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
.fa-lcx{flex:1;min-width:0;display:flex;flex-direction:column}.fa-lcx b{font-size:.95rem}.fa-lcx small{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-lcard em{font-style:normal;font-weight:800;font-size:.85rem;min-width:28px;height:28px;border-radius:99px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);padding:0 8px}
.fa-lcard em.zero{background:var(--surface-2);color:var(--muted)}
.fa-lnew{border-style:dashed;color:var(--muted);justify-content:center}.fa-lnew svg{width:18px;height:18px}
.fa-lset{display:flex;align-items:center;gap:8px;border:0;background:none;color:var(--muted);font:inherit;font-size:.85rem;padding:8px 6px;cursor:pointer}.fa-lset svg{width:16px;height:16px}
.fa-lgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.fa-lback{display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;padding:4px 0 10px;cursor:pointer}.fa-lback svg{width:18px;height:18px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-lwrap{grid-template-columns:minmax(0,1fr)}}
.fa-lempty{color:var(--muted);padding:14px 4px;margin:0}
.fa-who{font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:99px;background:color-mix(in srgb,var(--c) 15%,var(--surface));color:color-mix(in srgb,var(--c) 75%,var(--ink));flex:none}
.fa-done>summary{list-style:none;display:flex;align-items:center;gap:8px}.fa-done>summary::-webkit-details-marker{display:none}
.fa-done>summary b{flex:1}.fa-done>summary svg{width:16px;height:16px}.fa-done:not([open])>summary>svg:last-child{transform:rotate(-90deg)}
@keyframes faShake{0%,100%{transform:none}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.fa-shake{animation:faShake .25s 2;border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
/* notifications et installation (Réglages) */
.fa-devs{padding:4px 0;gap:0}
.fa-devrow{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line)}
.fa-devrow:first-child{border-top:0}
.fa-devrow>svg{width:22px;height:22px;flex:none;color:var(--muted)}
.fa-devrow.on>svg{color:var(--accent)}
.fa-devrow>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fa-devrow small{color:var(--muted);font-size:.82rem;line-height:1.35}
.fa-devrow .btn{flex:none}
@media (max-width:560px){.fa-devrow{flex-wrap:wrap}.fa-devrow>span{flex-basis:calc(100% - 40px)}}
/* mode écran de cuisine */
html.fa-kiosk .rail,html.fa-kiosk #tabbar,html.fa-kiosk .topbar{display:none!important}
html.fa-kiosk .app{grid-template-columns:1fr}
html.fa-kiosk .main{padding:clamp(14px,2.2vw,28px)!important}
html.fa-kiosk .wrap{max-width:none}
.k-wrap{display:flex;flex-direction:column;gap:18px;min-height:calc(100vh - 56px)}
.k-head{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.k-clock{font-size:clamp(3rem,8vw,5.6rem);font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.k-date{font-size:clamp(1.05rem,2vw,1.4rem);color:var(--muted);margin-top:6px}
.k-date::first-letter{text-transform:uppercase}
.k-fam{flex:1;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.k-who{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 14px 5px 5px;font-weight:600}
.k-av{width:30px;height:30px;font-size:.9rem}
.k-exit{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:9px 16px;font:inherit;cursor:pointer}
.k-exit svg{width:16px;height:16px}
.k-grid{flex:1;display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:18px;align-items:start}
.k-side{display:flex;flex-direction:column;gap:18px}
.k-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px 20px;display:flex;flex-direction:column;gap:10px}
.k-card h2{display:flex;align-items:center;gap:10px;margin:0;font-size:1.15rem}
.k-card h2 svg{width:20px;height:20px;color:var(--accent)}
.k-n{margin-left:auto;background:var(--surface-2);border-radius:999px;padding:2px 10px;font-size:.9rem;color:var(--muted)}
.k-ev{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--c) 10%,var(--surface));border-left:5px solid var(--c)}
.k-ev.past{opacity:.45}
.k-ev.live{box-shadow:0 0 0 2px var(--c)}
.k-t{min-width:5.6em;font-weight:700;font-variant-numeric:tabular-nums;font-size:1.02rem}
.k-x{flex:1;min-width:0;display:flex;flex-direction:column}
.k-x b{font-size:1.12rem}
.k-x small{color:var(--muted);font-size:.9rem}
.k-now{background:var(--c);color:#fff;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:700}
.k-empty{color:var(--muted);margin:4px 0}
.k-big{font-size:1.5rem;font-weight:700;margin:0}
.k-sub{color:var(--muted);margin:0}
.k-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:9px 2px;font:inherit;font-size:1.08rem;color:var(--ink);text-align:left;cursor:pointer;border-top:1px solid var(--line)}
.k-item:first-of-type{border-top:0}
.k-item>span:nth-child(2){flex:1}
.k-item small{color:var(--muted)}
.k-box{width:24px;height:24px;border:2px solid var(--line-strong,#c7ccd6);border-radius:7px;flex:none}
.k-more{color:var(--muted);margin:0;font-size:.9rem}
@media (max-width:1000px){.k-grid{grid-template-columns:1fr 1fr}.k-side{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}
@media (max-width:640px){.k-grid,.k-side{grid-template-columns:1fr}.k-fam{display:none}}
/* inscription terminée : bravo */
.ob-bravo{margin:0 0 10px}
.ob-bravoT{margin:0;color:var(--accent);font-weight:800;letter-spacing:.02em;text-transform:uppercase;font-size:.85rem}
/* accueil téléphone : carte d'accueil à la couleur de l'utilisateur */
@media (max-width:820px),(max-height:500px) and (max-width:1100px){#view[data-view="home"] .topbar h1,#view[data-view="home"] .topbar .profile-pill:not([data-ppopen]){display:none}}
.fa-hhero{position:relative;border-radius:22px;padding:18px 18px 16px;margin-bottom:12px;color:#fff;background:var(--dh-hero);box-shadow:var(--dh-hero-sh);border:1px solid var(--dh-hero-line)}
.fa-hdate{font-size:.84rem;opacity:.88}
.fa-hhero h2{margin:4px 0 12px;font-size:1.85rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;color:#fff}
.fa-hchips{display:flex;flex-wrap:wrap;gap:6px}
.fa-hchip{display:inline-flex;align-items:center;gap:6px;border:0;background:rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:7px 12px;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer}
.fa-hchip svg{width:14px;height:14px}
/* semaine : points de couleur de chacun */
.fa-fweek{gap:5px}
.fa-fwd{border:0;box-shadow:0 0 0 1px var(--line);border-radius:14px;padding:7px 0 8px}
.fa-fwd b{font-size:1.15rem;font-weight:800;margin:1px 0 3px}
.fa-fwd small{display:flex;gap:3px;justify-content:center;min-height:6px;opacity:1}
.fa-fwd small i{width:6px;height:6px;border-radius:50%;background:var(--c);display:block}
.fa-fwd.on{box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 35%,transparent)}
.fa-fwd.on small i{background:var(--accent-ink)}
.fa-fwd.past{opacity:1;color:var(--muted)}
/* fil : rendez-vous à la couleur de la personne, journée libre avec un bouton */
.fa-feed{border-radius:20px;padding:6px 12px 12px;display:flex;flex-direction:column;gap:8px}
.fa-feed .fa-fh{margin:10px 2px 0}
.fa-fr{padding:11px 12px;border-radius:14px;background:color-mix(in srgb,var(--c) 9%,var(--surface));border-left:4px solid var(--c);gap:12px}
.fa-fr .fa-ft{width:auto;min-width:44px;text-align:left;font-size:.9rem}
.fa-fr .fa-fx b{font-size:.98rem}
.fa-free{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--surface-2)}
.fa-freeic{width:38px;height:38px;border-radius:50%;background:var(--warn-soft);color:var(--warn);display:grid;place-items:center;flex:none}
.fa-freeic svg{width:20px;height:20px}
.fa-freeadd{display:inline-flex;align-items:center;gap:4px;border:0;border-radius:999px;padding:7px 12px;background:var(--accent-soft);color:var(--accent);font:inherit;font-weight:700;font-size:.82rem;cursor:pointer;flex:none}
.fa-freeadd svg{width:14px;height:14px}
/* ajout rapide : tuiles claires, icônes en couleur */
.dt-acc{background:var(--accent-soft);color:var(--accent)}
/* papiers : aucun papier encore */
.fa-vwel{border-radius:22px;padding:20px 18px 18px;background:linear-gradient(180deg,var(--accent-soft),var(--surface) 80%);border:1px solid var(--line)}
.fa-vwic{width:52px;height:52px;border-radius:16px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;box-shadow:0 10px 22px -10px var(--accent)}
.fa-vwic svg{width:26px;height:26px}
.fa-vwel h2{margin:12px 0 6px;font-size:1.3rem;font-weight:800;letter-spacing:-.02em}
.fa-vwel>p{margin:0;color:var(--muted);line-height:1.45}
.fa-vwbs{display:flex;gap:8px;margin-top:16px}
.fa-vwb{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:16px;border:0;background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--ink);font:inherit;cursor:pointer}
.fa-vwb svg{width:22px;height:22px;color:var(--accent)}
.fa-vwb b{font-size:.86rem}
.fa-vwb.pri{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 22px -10px var(--accent)}
.fa-vwb.pri svg{color:var(--accent-ink)}
.fa-vwel .fa-vwsec{display:flex;align-items:center;gap:6px;margin-top:14px;font-size:.8rem}
.fa-vwsec svg{width:14px;height:14px;color:var(--good)}
.fa-vplus{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex:none;margin-left:auto}
.fa-vplus svg{width:16px;height:16px}
/* recettes importées depuis un lien */
.fa-urlbox{border:1px dashed color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent-soft) 55%,var(--surface));border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px}
.fa-urlbox>label{display:flex;align-items:center;gap:6px;font-weight:700;color:var(--accent)}
.fa-urlbox>label svg{width:16px;height:16px}
.fa-urlbox .row{flex-wrap:nowrap}
.fa-urlbox .input{flex:1;min-width:0}
.fa-urlnote{margin:0;font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:6px}
.fa-urlnote svg{width:15px;height:15px;flex:none}
.fa-urlnote.ok{color:var(--good)}.fa-urlnote.bad{color:var(--bad)}
.fa-src{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:600;text-decoration:none}
.fa-src svg{width:15px;height:15px}
.fa-rimg{width:38px;height:38px;border-radius:10px;object-fit:cover;flex:none;background:var(--surface-2)}
/* agenda téléphone : 5 vues (Jour, Semaine, Mois, Année, Liste) */
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-agseg button{padding-inline:2px;font-size:.84rem;letter-spacing:-.01em}}
.fa-plt{min-width:56px}
/* ajout rapide à une liste (panneau sans quitter l'écran) */
.modal:has(.fa-qs){gap:0;padding:18px 18px calc(16px + env(safe-area-inset-bottom,0px))}
.fa-qs{display:flex;flex-direction:column;gap:12px}
.fa-qsh{display:flex;align-items:center;justify-content:space-between}
.fa-qsh h2{margin:0;font-size:1.2rem}
.fa-qsls{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -2px;padding:2px}
.fa-qsls::-webkit-scrollbar{display:none}
.fa-qsl{display:inline-flex;align-items:center;gap:7px;flex:none;border:0;box-shadow:0 0 0 1px var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 12px 5px 5px;font:inherit;font-weight:600;font-size:.86rem;cursor:pointer}
.fa-qsl .dh-ic{width:26px;height:26px}.fa-qsl .dh-ic svg{width:14px;height:14px}
.fa-qsl.on{box-shadow:0 0 0 2px var(--accent);background:var(--accent-soft)}
.fa-qsf{display:flex;gap:8px}
.fa-qsf .fa-sugw{flex:1;position:relative;min-width:0}
.fa-qsf .input{width:100%}
.fa-qsfh{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fa-qsfr{display:flex;flex-wrap:wrap;gap:6px}
.fa-qsc{display:inline-flex;align-items:center;gap:5px;border:0;background:var(--surface-2);color:var(--ink);border-radius:999px;padding:8px 12px;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer}
.fa-qsc svg{width:13px;height:13px;color:var(--accent)}
.fa-qsfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px;font-size:.86rem}
.fa-qsfoot .btn svg{width:14px;height:14px}
/* nouvelle dépense : photo du ticket, import ou saisie */
.fa-xch{display:flex;align-items:center;gap:12px;width:100%;border:0;box-shadow:0 0 0 1px var(--line);background:var(--surface);border-radius:16px;padding:12px 14px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.fa-xch>span:nth-child(2){flex:1;display:flex;flex-direction:column}.fa-xch small{color:var(--muted);font-size:.8rem}
.fa-xch>svg{width:16px;height:16px;color:var(--muted)}
.fa-xch.pri{box-shadow:0 0 0 2px var(--accent);background:var(--accent-soft)}
.fa-tprev{max-height:220px;object-fit:contain;width:100%;border-radius:12px;background:var(--surface-2)}
.fa-ai.ok{color:var(--good)}.fa-ai.bad{color:var(--bad)}
.fa-ai{display:flex;align-items:center;gap:8px;font-size:.86rem}.fa-ai svg{width:16px;height:16px}
/* rangée d'actions (Papiers, Dépenses) : centrée quel que soit le nombre de boutons, libellés sur 2 lignes au besoin */
.dh-acts{display:flex;justify-content:center;align-items:flex-start;gap:clamp(12px,6vw,36px)}
.dh-act{flex:0 0 86px;width:86px}
.dh-act .dh-al{white-space:normal;overflow:visible;text-overflow:clip;max-width:86px}
/* téléphone : titres et sous-titres des lignes sur 2 lignes au lieu d'être coupés */
@media (max-width:820px),(max-height:500px) and (max-width:1100px){
  .dh-x b,.dh-x span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip}
  .fa-lcard span,.fa-lcard small{white-space:normal}
}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.set-row .set-t>span,.set-item .set-t>span,.fa-wid b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip}}
/* détail des tickets et vos produits */
.fa-xlines{border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.fa-xlines summary{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;list-style:none}
.fa-xlines summary::-webkit-details-marker{display:none}
.fa-xlines summary svg{width:16px;height:16px;color:var(--accent)}
.fa-xlines>div{margin-top:8px;max-height:260px;overflow:auto}
.fa-xlines small{color:var(--muted)}
.fa-trend{font-style:normal;font-weight:700;font-size:.78rem;border-radius:999px;padding:1px 6px}
.fa-trend.up{color:var(--bad);background:var(--bad-soft)}.fa-trend.down{color:var(--good);background:var(--good-soft)}
.fa-xamt{flex:none;font-size:.95rem}
/* écran de scan */
#faScan{position:fixed;inset:0;z-index:400;background:#000;color:#fff;overflow:hidden}
#faScan video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#faScan .sc-mask{position:absolute;inset:0;pointer-events:none}
#faScan .sc-frame{position:absolute;left:11%;width:78%;top:calc((100% - 70%) / 2.4);height:70%;border-radius:18px;box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
#faScan .sc-frame i{position:absolute;width:34px;height:34px;border:4px solid #fff;border-radius:6px}
#faScan .sc-frame i:nth-child(1){left:-2px;top:-2px;border-right:0;border-bottom:0}
#faScan .sc-frame i:nth-child(2){right:-2px;top:-2px;border-left:0;border-bottom:0}
#faScan .sc-frame i:nth-child(3){left:-2px;bottom:-2px;border-right:0;border-top:0}
#faScan .sc-frame i:nth-child(4){right:-2px;bottom:-2px;border-left:0;border-top:0}
#faScan .sc-bar{position:absolute;left:6%;right:6%;height:2px;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:scBar 2.4s ease-in-out infinite alternate}
@keyframes scBar{from{top:6%}to{top:94%}}
#faScan .sc-top{position:absolute;left:0;right:0;top:0;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 10px;display:flex;align-items:flex-start;gap:10px;background:linear-gradient(rgba(0,0,0,.55),transparent)}
#faScan .sc-x{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;display:grid;place-items:center;flex:none;cursor:pointer}
#faScan .sc-x svg{width:20px;height:20px}
#faScan .sc-hint{margin:8px 0 0;font-weight:600;font-size:.95rem;text-shadow:0 1px 3px rgba(0,0,0,.6)}
#faScan .sc-bottom{position:absolute;left:0;right:0;bottom:0;padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,rgba(0,0,0,.7));display:flex;flex-direction:column;gap:10px}
#faScan .sc-thumbs{display:flex;gap:8px;min-height:0}
#faScan .sc-thumbs span{position:relative}
#faScan .sc-thumbs img{width:44px;height:60px;object-fit:cover;border-radius:8px;border:2px solid #fff}
#faScan .sc-thumbs button{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:0;background:#fff;color:#111;display:grid;place-items:center;padding:0}
#faScan .sc-thumbs button svg{width:12px;height:12px}
#faScan .sc-row{display:flex;align-items:center;justify-content:space-between}
#faScan .sc-auto,#faScan .sc-done{min-width:96px;height:40px;border-radius:999px;border:0;background:rgba(255,255,255,.18);color:#fff;font:inherit;font-weight:700;cursor:pointer}
#faScan .sc-auto.on{background:#fff;color:#111}
#faScan .sc-done:not(:disabled){background:var(--accent);color:var(--accent-ink)}
#faScan .sc-done:disabled{opacity:.5}
#faScan .sc-shot{width:74px;height:74px;border-radius:50%;border:4px solid #fff;background:transparent;padding:5px;cursor:pointer}
#faScan .sc-shot span{display:block;width:100%;height:100%;border-radius:50%;background:#fff}
#faScan .sc-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
#faScan .sc-flash.on{animation:scFlash .35s ease-out}
@keyframes scFlash{0%{opacity:.8}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){#faScan .sc-bar{animation:none;top:50%}}

/* connexion et premier lancement : fond joyeux (couleurs pastel et confettis) et textes centrés */
:root{--joy-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cg opacity='.55'%3E%3Ccircle cx='28' cy='40' r='5' fill='%23F59E0B'/%3E%3Crect x='250' y='22' width='12' height='6' rx='3' fill='%23EC4899' transform='rotate(30 256 25)'/%3E%3Ccircle cx='190' cy='92' r='3.5' fill='%230EA5E9'/%3E%3Cpath d='M84 128l7 12h-14z' fill='%238B5CF6'/%3E%3Crect x='292' y='150' width='10' height='5' rx='2.5' fill='%2322C55E' transform='rotate(-25 297 152)'/%3E%3Ccircle cx='140' cy='200' r='4.5' fill='%23EF6F6C'/%3E%3Crect x='34' y='236' width='12' height='6' rx='3' fill='%230EA5E9' transform='rotate(60 40 239)'/%3E%3Ccircle cx='236' cy='262' r='3' fill='%23F59E0B'/%3E%3Cpath d='M300 300c-6-4-10-1-10 3s6 7 10 10c4-3 10-6 10-10s-4-7-10-3z' fill='%23EC4899' opacity='.8'/%3E%3Ccircle cx='110' cy='300' r='3' fill='%2322C55E'/%3E%3C/g%3E%3C/svg%3E") 0 0/320px 320px repeat,radial-gradient(60% 40% at 0% 0%,#FFE3D4 0%,transparent 70%),radial-gradient(55% 38% at 100% 6%,#DCEBFF 0%,transparent 70%),radial-gradient(60% 42% at 0% 100%,#EEE4FF 0%,transparent 70%),radial-gradient(55% 40% at 100% 100%,#DDF5E7 0%,transparent 70%),var(--bg)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--joy-bg:radial-gradient(60% 40% at 0% 0%,rgba(255,138,107,.16) 0%,transparent 70%),radial-gradient(55% 38% at 100% 6%,rgba(90,155,255,.16) 0%,transparent 70%),radial-gradient(60% 42% at 0% 100%,rgba(166,139,250,.14) 0%,transparent 70%),radial-gradient(55% 40% at 100% 100%,rgba(76,215,135,.12) 0%,transparent 70%),var(--bg)}}
:root[data-theme="dark"]{--joy-bg:radial-gradient(60% 40% at 0% 0%,rgba(255,138,107,.16) 0%,transparent 70%),radial-gradient(55% 38% at 100% 6%,rgba(90,155,255,.16) 0%,transparent 70%),radial-gradient(60% 42% at 0% 100%,rgba(166,139,250,.14) 0%,transparent 70%),radial-gradient(55% 40% at 100% 100%,rgba(76,215,135,.12) 0%,transparent 70%),var(--bg)}
#efWelcome{background:var(--joy-bg)}
#efWelcome .ob-mark{display:none}
.ob-step,.ob-h,.ob-sub,.ob-bravoT{text-align:center}
.ob-bravo{margin:0 auto 10px}
html.ob-open .modal-back{z-index:260}
#efWelcome .ob-foot{background:transparent}
#efWelcome .ob-foot::before{display:none}
.ob-foot .ob-go{box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 30%,transparent)}
/* réglages : rubriques regroupées en sections */
.set-sec{display:flex;flex-direction:column;gap:14px;scroll-margin-top:16px}
.set-sec+.set-sec{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.set-subh{margin:0;font-size:1.1rem;font-weight:800;letter-spacing:-.01em}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.tb-monly{display:none!important}}
.fa-more2{margin-top:14px}
/* listes : bouton « ⋯ » sur chaque carte */
.fa-lcw{position:relative;display:flex}
.fa-lcw>.fa-lcard{padding-right:52px}
.fa-lmore{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:12px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.fa-lmore:hover,.fa-lmore:focus-visible{background:var(--surface-2);color:var(--ink)}
.fa-lmore svg{width:20px;height:20px}
.fa-lcw>.fa-lcard em{margin-right:2px}
.fa-xch.danger{box-shadow:0 0 0 1px color-mix(in srgb,var(--bad) 35%,var(--line))}
.fa-xch.danger b{color:var(--bad)}
.ob-invite{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;background:var(--accent-soft);color:var(--accent);border-radius:16px;padding:12px 14px}
.ob-invite b{font-size:1rem}.ob-invite span{font-size:.85rem;opacity:.85}
/* rond d'une personne : photo, avatar illustré, point « en ligne » */
.fa-av{position:relative}
.fa-avp img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.fa-avs svg{width:100%;height:100%;display:block;border-radius:50%}
.fa-avp,.fa-avs{background:none!important;overflow:visible}
.fa-on{position:absolute;right:-1px;bottom:-1px;width:30%;height:30%;min-width:8px;min-height:8px;border-radius:50%;background:#22C55E;box-shadow:0 0 0 2px var(--surface)}
/* profil : photo ou avatar */
.fa-av-xl{width:88px;height:88px;font-size:2rem}
.fa-profhead{display:flex;align-items:center;gap:18px}
.fa-avgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px}
.fa-avpick{border:0;background:none;padding:2px;border-radius:50%;cursor:pointer;aspect-ratio:1}
.fa-avpick svg{width:100%;height:100%;display:block;border-radius:50%}
.fa-avpick.on{box-shadow:0 0 0 3px var(--accent)}
.set-me{border:0;width:100%;text-align:left;font:inherit;cursor:pointer}
.set-me .set-meav{width:54px;height:54px;font-size:1.2rem;box-shadow:0 0 0 3px rgba(255,255,255,.35)}
.set-me .set-t>span{color:rgba(255,255,255,.88)}
.set-mehint{display:inline-flex!important;align-items:center;gap:5px;margin-top:4px;font-size:.78rem;font-weight:700;opacity:.9}
.set-mehint svg{width:13px;height:13px}
/* membres : statut et invitation */
.fa-st{font-style:normal;font-weight:600}
.fa-st.on{color:var(--good)}.fa-st.wait{color:var(--warn)}.fa-st.none{color:var(--muted);font-weight:500}
.fa-minv{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fa-ivdone{display:flex;flex-direction:column;gap:10px}
.fa-ivmsg{white-space:pre-line;background:var(--surface-2);border-radius:12px;padding:12px;font-size:.88rem;line-height:1.45;overflow-wrap:anywhere}
.fa-ivbtns{display:flex;flex-wrap:wrap;gap:8px}
.fa-ivbtns .btn svg{width:16px;height:16px}
/* agenda de chacun : rangée de photos */
.fa-ppls{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:2px 0 10px;padding:2px}
.fa-ppls::-webkit-scrollbar{display:none}
.fa-ppl{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none;min-width:58px;border:0;background:none;padding:6px 4px;border-radius:14px;font:inherit;font-size:.76rem;font-weight:600;color:var(--muted);cursor:pointer}
.fa-ppl[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent)}
.fa-ppl[aria-pressed="true"] .fa-av{box-shadow:0 0 0 3px var(--accent)}
.fa-av-md{width:40px;height:40px;font-size:1rem}
.fa-av-sm{width:24px;height:24px;font-size:.7rem;margin-left:auto}
.fa-ppall{background:var(--surface-2);color:var(--ink)}.fa-ppall svg{width:20px;height:20px}
.fa-fr .fa-av-sm{margin-left:6px}
.fa-ivbtns a.btn{text-decoration:none}
.fa-hfam{display:flex;justify-content:flex-end;margin:-4px -4px 6px 0}
.fa-av-hf{width:30px;height:30px;font-size:.8rem;margin-left:-8px;box-shadow:0 0 0 2px rgba(255,255,255,.75);border-radius:50%}
.fa-av-hf .fa-on{box-shadow:0 0 0 2px #fff}
/* pastilles de couleur : choix bien visible */
.fa-sw .swatch{cursor:pointer;-webkit-tap-highlight-color:transparent}
.fa-sw .swatch i{position:relative;transition:transform .12s}
.fa-sw input:checked+i{transform:scale(1.12)}
.fa-sw input:checked+i::after{content:"";position:absolute;left:50%;top:46%;width:9px;height:15px;border:solid #fff;border-width:0 3px 3px 0;transform:translate(-50%,-50%) rotate(45deg)}
/* tâches à cocher */
.fa-tk{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;margin-right:6px;vertical-align:-3px;font-size:.72rem;font-weight:900;flex:none;border:2px solid var(--muted)}
.fa-tk.done{background:var(--good);border-color:var(--good);color:#fff}
.fa-tk.done svg{width:11px;height:11px;stroke-width:3.5}
/* à faire (en retard ou aujourd'hui) : rond orange avec « ! », même taille que les autres signes, posé dans la ligne du titre */
.fa-tk.late{background:#F59E0B;border-color:#F59E0B;color:#fff;line-height:1}
/* titres longs : retour à la ligne entre les mots (et dans un mot trop long pour la carte) */
.fa-fx b,.k-x b,.fa-pce b{overflow-wrap:break-word}
.fa-fx .fa-tag{align-self:flex-start;margin-top:4px}
.k-t{flex:none}
.fa-alert{position:absolute;top:-4px;right:-5px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:14px solid #F59E0B;filter:drop-shadow(0 0 1.5px #fff);font-size:0}
.fa-alert::after{content:"!";position:absolute;left:-2px;top:2px;color:#fff;font-size:.6rem;font-weight:900;font-style:normal}
.fa-tasks .fa-task{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line)}
.fa-tasks .fa-task:first-child{border-top:0}
.fa-task.late{background:color-mix(in srgb,#F59E0B 8%,var(--surface))}
.fa-taskx{flex:1;min-width:0;display:flex;flex-direction:column;border:0;background:none;padding:0;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.fa-taskx b{font-size:.98rem}.fa-taskx small{color:var(--muted);font-size:.8rem}
.fa-task.done .fa-taskx b{text-decoration:line-through;color:var(--muted)}
.fa-task.late .fa-taskx small{color:#B45309;font-weight:600}
.fa-tick2{width:34px;height:34px;border-radius:50%;border:2.5px solid var(--line-strong,#C7CCD6);background:var(--surface);color:transparent;display:grid;place-items:center;flex:none;cursor:pointer;transition:all .15s}
.fa-tick2 svg{width:18px;height:18px;stroke-width:3}
.fa-tick2.late{border-color:#F59E0B}
.fa-tick2.done{background:var(--good);border-color:var(--good);color:#fff;transform:scale(1.05)}
.fa-tick2:active{transform:scale(.92)}
.fa-tick2.big{width:46px;height:46px}.fa-tick2.big svg{width:24px;height:24px}
.fa-evtick{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:16px;background:color-mix(in srgb,#F59E0B 10%,var(--surface));border:1px solid color-mix(in srgb,#F59E0B 35%,var(--line))}
.fa-evtick.done{background:var(--good-soft);border-color:color-mix(in srgb,var(--good) 35%,var(--line))}
.fa-evtick span{display:flex;flex-direction:column}.fa-evtick small{color:var(--muted)}
.fa-istask{align-items:flex-start;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface-2)}
.fa-istask span{display:flex;flex-direction:column}.fa-istask small{color:var(--muted);font-weight:400}
/* vacances de la famille */
.fa-plband.trip{display:flex;align-items:center;gap:6px;width:100%;border:0;font:inherit;text-align:left;cursor:pointer;background:color-mix(in srgb,#F59E0B 16%,var(--surface));color:#B45309;font-weight:700}
.fa-plband.trip svg,.fa-adtrip svg,.fa-mtrip svg{width:14px;height:14px;flex:none}
.fa-adtrip{display:flex;align-items:center;gap:4px;width:100%;border:0;border-radius:6px;padding:2px 6px;margin-bottom:2px;background:color-mix(in srgb,#F59E0B 22%,var(--surface));color:#92400E;font:inherit;font-size:.74rem;font-weight:700;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fa-mtrip{background:color-mix(in srgb,#F59E0B 22%,var(--surface))!important;color:#92400E!important;display:flex!important;align-items:center;gap:3px}
.fa-tripwho{display:flex;flex-wrap:wrap;gap:10px}.fa-tripwho>span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.76rem;color:var(--muted)}
.fa-tchk{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:0;border-top:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:left}
.fa-tchk:first-child{border-top:0}
button.fa-tchk{cursor:pointer}
.fa-tchk>span:nth-child(2){flex:1}
.fa-tchk .dh-ic{width:32px;height:32px}.fa-tchk .dh-ic svg{width:17px;height:17px}
.fa-tchk.bad .dh-ic{background:var(--bad-soft);color:var(--bad)}.fa-tchk.warn .dh-ic{background:var(--warn-soft);color:var(--warn)}
.fa-tchk.ok .dh-ic{background:var(--good-soft);color:var(--good)}.fa-tchk.todo .dh-ic{background:var(--accent-soft);color:var(--accent)}
.fa-tchk>svg{width:16px;height:16px;color:var(--muted)}.fa-tchk.ok>svg{color:var(--good)}
.fa-whos{display:flex;flex-wrap:wrap;gap:8px}
.fa-whochk{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px;border-radius:14px;cursor:pointer;font-size:.76rem;color:var(--muted);position:relative}
.fa-whochk input{position:absolute;opacity:0;width:1px;height:1px}
.fa-whochk .fa-av{opacity:.4;transition:opacity .15s}
.fa-whochk:has(input:checked){background:var(--accent-soft);color:var(--accent);font-weight:700}
.fa-whochk:has(input:checked) .fa-av{opacity:1}
/* accueil téléphone : espace entre « À cocher » et la semaine */
.fa-only-m .fa-tasks{margin-bottom:18px}
/* mode sombre : textes orange et bandeaux de l'agenda lisibles (contraste 4,5:1) */
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .fa-task.late .fa-taskx small,:root:not([data-theme="light"]) .fa-plband.trip,:root:not([data-theme="light"]) .fa-plband.hol{color:var(--warn)}:root:not([data-theme="light"]) .fa-plband{color:color-mix(in srgb,#A68BFA 60%,var(--ink))}}
:root[data-theme="dark"] .fa-task.late .fa-taskx small,:root[data-theme="dark"] .fa-plband.trip,:root[data-theme="dark"] .fa-plband.hol{color:var(--warn)}:root[data-theme="dark"] .fa-plband{color:color-mix(in srgb,#A68BFA 60%,var(--ink))}
/* agenda téléphone : filtres (personnes, catégories) dans un volet replié ; titre « Agenda » masqué (onglet du bas) */
.fa-agfilt{margin:-6px 0 12px}
.fa-agfilt>summary{display:flex;align-items:center;gap:8px;list-style:none;padding:8px 12px;border-radius:12px;background:var(--surface);box-shadow:var(--shadow);font-size:.9rem;cursor:pointer;width:max-content;max-width:100%}
.fa-agfilt>summary::-webkit-details-marker{display:none}
.fa-agfilt>summary svg{width:16px;height:16px;flex:none}.fa-agfilt[open]>summary>svg:last-child{transform:rotate(180deg)}
.fa-agfilt[open]>summary{margin-bottom:10px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){
#view[data-view="agenda"] .topbar h1,#view[data-view="agenda"] .topbar .profile-pill:not([data-ppopen]){display:none}
/* vue Jour : la grille d'heures suit le défilement de la page (plus de cadre qui défile dans la page) */
.fa-tgscroll{max-height:none;min-height:0;overflow:visible}.fa-tg{overflow:clip}
}
/* agenda ordinateur : vacances en bande continue sur les jours ; titres sur deux lignes dans la grille */
.fa-adv.cont{color:transparent;border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-4px}
.fa-adv.next{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:-4px}
.fa-adv.next:not(.cont){overflow:visible;position:relative;z-index:1}
.fa-tge.tall b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-inboxbar{padding:8px 12px;margin-bottom:10px}.fa-inboxbar small{display:none}}
.fa-adv.cont::before{content:"\00a0"}
.fa-ade{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;line-height:1.25}
/* Repas : jour en entier sur ordinateur, abrégé sur téléphone ; case vide = « + » seul sur téléphone ; plats sur deux lignes */
.fa-mh i{font-style:normal}.fa-wds{display:none}
.fa-meal.on b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;line-height:1.2;min-width:0}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-wdl{display:none}.fa-wds{display:inline}.fa-meal{padding:0 10px}.fa-meal:not(.on){justify-content:center}.fa-madd{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
/* écran de cuisine (grand écran) : aujourd'hui et demain l'un sous l'autre, menu et listes à côté sur deux colonnes (moins de vide) */
@media (min-width:1001px){.k-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,2fr);grid-template-rows:auto 1fr}.k-grid>.k-card:nth-child(1){grid-column:1;grid-row:1}.k-grid>.k-card:nth-child(2){grid-column:1;grid-row:2}.k-side{grid-column:2;grid-row:1/span 2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.k-side>.k-meal{grid-column:1/-1}}
/* Boîte repas des enfants (Repas > Boîte repas) */
.fa-mealtabs{margin:0 0 14px;display:grid;grid-template-columns:repeat(3,1fr)}.fa-mealtabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0}.fa-mealtabs svg{width:17px;height:17px}
.fa-lzero2{text-align:center;padding:28px 16px}.fa-lzero2 p{color:var(--muted);margin:0 0 14px}
.fa-lbkids{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 10px}
.fa-lbkid{display:inline-flex;align-items:center;gap:8px;padding:5px 14px 5px 5px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.fa-lbkid .fa-av{width:30px;height:30px;font-size:.8rem}.fa-lbkid.on{border-color:var(--accent);background:var(--accent-soft)}
.fa-lbintro{margin:2px 2px 10px;color:var(--muted);font-size:.9rem}
.fa-lbacts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.fa-lbacts .btn svg{width:16px;height:16px;flex:none}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-lbacts{display:grid;grid-template-columns:1fr 1fr}.fa-lbacts .btn{justify-content:center;font-size:.8rem;padding:0 8px;min-width:0}.fa-lbacts .btn:first-child{grid-column:1/-1}.fa-lbintro{font-size:.85rem}}
.fa-lbdays{display:flex;flex-direction:column;gap:10px}
.fa-lbday{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface)}
.fa-lbday.today{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}
.fa-lbday.off{background:var(--surface-2);border-style:dashed;padding:10px 14px}
.fa-lbhead{display:flex;align-items:center;gap:10px}.fa-lbhead .btn{margin-left:auto}.fa-lbhead em{margin-left:auto;font-style:normal;font-size:.82rem;font-weight:700;color:var(--muted)}
.fa-lbd{display:flex;flex-direction:column}.fa-lbd b{text-transform:capitalize}.fa-lbd small{color:var(--muted);font-size:.8rem}
.fa-lbchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.fa-lbchip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;border-radius:99px;background:var(--surface-2);font-size:.86rem;font-weight:600}
.fa-lbchip .fa-aic,.fa-lbsec h3 .fa-aic{width:24px;height:24px}.fa-lbchip .fa-aic svg,.fa-lbsec h3 .fa-aic svg{width:14px;height:14px}
.fa-lbempty{margin:8px 0 0;color:var(--muted);font-size:.88rem}
.fa-lbeh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fa-lbeh h2{margin:0;flex:1}
.fa-lbwho{display:inline-flex;align-items:center;gap:6px;font-weight:700}.fa-lbwho .fa-av{width:26px;height:26px;font-size:.75rem}
.fa-lbsec h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:.92rem}
.fa-lbis{display:flex;flex-wrap:wrap;gap:6px}
.fa-lbi{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:99px;background:var(--surface);overflow:hidden}
.fa-lbib{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:0 12px;border:0;background:none;color:var(--ink);font:inherit;font-size:.88rem;cursor:pointer}
.fa-lbib svg{width:14px;height:14px;stroke-width:3}
.fa-lbi.on{background:var(--good);border-color:var(--good)}.fa-lbi.on .fa-lbib{color:#fff;font-weight:700}
.fa-lbix{display:grid;place-items:center;width:32px;min-height:36px;border:0;border-left:1px solid var(--line);background:none;color:var(--muted);cursor:pointer;padding:0}.fa-lbix svg{width:12px;height:12px}
.fa-lbadd{display:flex;gap:6px;margin-top:8px}.fa-lbadd .input{flex:1;min-width:0;min-height:36px;padding:6px 12px}.fa-lbadd .btn{width:40px;padding:0;display:grid;place-items:center}
.fa-lbnext{align-self:center;margin-top:4px;gap:6px}.fa-lbnext svg{width:16px;height:16px}
.fa-lbdayck{display:flex;align-items:center;gap:10px;padding:8px 4px;text-transform:capitalize}.fa-lbdayck input{width:20px;height:20px}
/* Vacances : la page des voyages, puis la page d'un voyage (programme, valise, avant de partir, infos) */
.fa-tcic{flex:none;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#FFF4D6;color:#B25B00}.fa-tcic svg{width:22px;height:22px}
.fa-tcic.big{width:56px;height:56px;border-radius:18px}.fa-tcic.big svg{width:28px;height:28px}
.fa-tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.fa-tcard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"ic x cd" "ic who who";gap:4px 12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.fa-tcard:hover{border-color:var(--accent)}
.fa-tcard .fa-tcic{grid-area:ic;align-self:start}.fa-tcx{grid-area:x;display:flex;flex-direction:column;min-width:0}.fa-tcx b{font-size:1.02rem}
.fa-tcx small{color:var(--muted);font-size:.84rem}.fa-tcx em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--good);margin-top:4px}
.fa-tccd{grid-area:cd;align-self:start;font-size:.78rem;font-weight:800;color:#B25B00;background:#FFF4D6;border-radius:99px;padding:3px 10px;white-space:nowrap}
.fa-tcwho{grid-area:who;display:flex;margin-top:6px}.fa-tcwho .fa-av{width:28px;height:28px;font-size:.72rem;margin-right:-6px;border:2px solid var(--surface)}
.fa-tzero{text-align:center;padding:30px 16px;display:flex;flex-direction:column;align-items:center;gap:8px}.fa-tzero h2{margin:6px 0 0}.fa-tzero p{color:var(--muted);margin:0 0 8px}
.fa-tpast{margin-top:18px}
.fa-thero{display:flex;flex-direction:column;gap:12px;padding:16px;margin:4px 0 12px;border-radius:20px;background:linear-gradient(135deg,#FFF4D6,color-mix(in srgb,#FFF4D6 40%,var(--surface)))}
.fa-thx{display:flex;align-items:center;gap:12px}.fa-thx h2{margin:0;font-size:1.3rem}.fa-thx p{margin:2px 0 0;color:#7A5600;font-size:.88rem}
.fa-throw{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.fa-thcd{display:flex;flex-direction:column;font-weight:800;font-size:1.05rem;color:#7A5600}.fa-thcd small{font-weight:600;font-size:.78rem}
.fa-thero .fa-tcwho{margin:0}.fa-thero .fa-tcwho .fa-av{border-color:#FFF4D6;width:32px;height:32px}
.fa-ttabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;margin:0 0 12px;border-radius:14px;background:var(--surface-2)}
.fa-ttab{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 6px;border:0;border-radius:11px;background:none;color:var(--muted);font:inherit;font-size:.88rem;font-weight:700;cursor:pointer}
.fa-ttab svg{width:17px;height:17px;flex:none}.fa-ttab span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fa-ttab em{font-style:normal;font-size:.68rem;background:var(--surface);color:var(--muted);border-radius:99px;padding:1px 6px}
.fa-ttab.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}.fa-ttab.on em{background:var(--accent-soft);color:var(--accent)}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ttab{flex-direction:column;gap:2px;min-height:56px;font-size:.72rem}.fa-ttab em{position:absolute;top:3px;right:4px}}
.fa-tbody{padding:16px}
.fa-tacts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.fa-tacts .btn svg{width:16px;height:16px;flex:none}
.fa-tmail{display:flex;align-items:center;gap:12px;padding:12px;margin:0 0 14px;border-radius:14px;background:var(--accent-soft)}
.fa-tmail>svg{width:22px;height:22px;color:var(--accent);flex:none}.fa-tmail span{flex:1;min-width:0;display:flex;flex-direction:column}.fa-tmail small{color:var(--muted);font-size:.82rem}
@media (max-width:600px){.fa-tmail{flex-wrap:wrap}.fa-tmail .btn{width:100%;justify-content:center}}
.fa-tdays{display:flex;flex-direction:column;gap:14px}
.fa-tday h3{margin:0 0 6px;font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.fa-tday.out h3{opacity:.7}
.fa-tpi{display:flex;align-items:center;gap:12px;width:100%;padding:10px;margin-bottom:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.fa-tpi:disabled{cursor:default}
.fa-tpic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center}.fa-tpic svg{width:18px;height:18px}
.fa-tpic.k-transport{background:#E3EEFF;color:#1E6BE6}.fa-tpic.k-stay{background:#E6F5EC;color:#13834A}.fa-tpic.k-activity{background:#FFF4D6;color:#B25B00}
.fa-tpx{display:flex;flex-direction:column;min-width:0}.fa-tpx small{color:var(--muted);font-size:.82rem}
.fa-tfree{margin:0;padding:8px 10px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.86rem}
.fa-tzero2{text-align:center;padding:24px 12px;display:flex;flex-direction:column;align-items:center;gap:8px}.fa-tzero2 h3{margin:6px 0 0}.fa-tzero2 p{margin:0 0 8px;color:var(--muted);max-width:420px}
.fa-pwhos{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0 8px}.fa-pwhos::-webkit-scrollbar{display:none}
.fa-pwho{flex:none;display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border:1px solid var(--line);border-radius:99px;background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.fa-pwho .fa-av{width:30px;height:30px;font-size:.78rem}.fa-pwho em{font-style:normal;font-size:.74rem;color:var(--muted)}.fa-pwho em.ok{color:var(--good)}
.fa-pwho.on{border-color:var(--accent);background:var(--accent-soft)}
.fa-pall{display:grid;place-items:center;background:var(--surface-2);color:var(--muted);border-radius:50%}.fa-pall svg{width:16px;height:16px}
.fa-padd{display:flex;gap:8px;margin:4px 0 12px}.fa-padd .input{flex:1;min-width:0}.fa-padd .btn{width:46px;padding:0;display:grid;place-items:center;flex:none}
.fa-tnote{display:flex;align-items:center;gap:6px;margin:0 0 10px}.fa-tnote svg{width:15px;height:15px}
.fa-tdoadd{display:flex;gap:8px;margin:0 0 12px}.fa-tdoadd .input:first-child{flex:1;min-width:0}.fa-tdoadd .input[type=date]{flex:0 0 150px}.fa-tdoadd .btn{width:46px;padding:0;display:grid;place-items:center;flex:none}
@media (max-width:600px){.fa-tdoadd{flex-wrap:wrap}.fa-tdoadd .input:first-child{flex:1 1 100%}.fa-tdoadd .input[type=date]{flex:1}}
.fa-tdos{display:flex;flex-direction:column}
.fa-tdo{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line)}.fa-tdo:first-child{border-top:0}.fa-tdo .fa-take{border-top:0;flex:1;min-width:0}
.fa-tdo.late .fa-it small{color:var(--danger,#dc2626);font-weight:700}
.fa-tinfo{padding:4px 0 14px;border-bottom:1px solid var(--line);margin-bottom:14px}.fa-tinfo:last-of-type{border-bottom:0}
.fa-tinfo h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:.95rem}.fa-tinfo h3 svg{width:18px;height:18px;color:var(--accent)}
.fa-taddr{margin:0 0 8px}
.fa-tact,.fa-tacts2 span{display:inline-block;padding:3px 10px;border-radius:99px;background:var(--surface-2);font-size:.82rem;font-weight:600}.fa-tacts2{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.fa-tactcks{display:flex;gap:6px;flex-wrap:wrap}
.fa-tactck{position:relative;cursor:pointer}.fa-tactck input{position:absolute;opacity:0;pointer-events:none}
.fa-tactck span{display:inline-block;padding:7px 14px;border:1px solid var(--line);border-radius:99px;font-weight:600;font-size:.88rem}
.fa-tactck input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.fa-tactck input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.fa-delbtn2{color:var(--danger,#dc2626)}
.fa-tkinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.fa-tkind{position:relative;cursor:pointer}.fa-tkind input{position:absolute;opacity:0;pointer-events:none}
.fa-tkind span{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:1px solid var(--line);border-radius:14px;font-weight:700;font-size:.84rem}.fa-tkind svg{width:20px;height:20px}
.fa-tkind input:checked+span{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.fa-tkind input:focus-visible+span{outline:2px solid var(--accent)}
.fa-ptype{display:flex;align-items:center;gap:10px}.fa-ptype b{flex:1}.fa-ptype .fa-av{width:30px;height:30px;font-size:.78rem}.fa-ptype .input{width:auto;min-width:130px}
.fa-wxsum{margin:0 0 10px;display:flex;flex-direction:column}.fa-wxsum b{font-size:1.05rem}.fa-wxsum small{color:var(--muted);font-size:.82rem}
.fa-wxs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.fa-wxs::-webkit-scrollbar{display:none}
.fa-wxd{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:58px;padding:8px 4px;border-radius:12px;background:var(--surface-2)}
.fa-wxd small{color:var(--muted);font-size:.72rem;text-transform:capitalize}.fa-wxd i{font-style:normal;font-size:1.15rem}.fa-wxd b{font-size:.9rem}
/* Ticket de caisse depuis la liste : estimation d'après les derniers prix, bouton « Scanner le ticket » */
.fa-rcpt{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:0 0 12px;border-radius:12px;background:var(--surface-2)}
.fa-rcest{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.fa-rcest b{font-size:1.02rem}.fa-rcest small{color:var(--muted);font-size:.78rem}
.fa-rcpt{flex-wrap:wrap}.fa-rcest{flex:1 1 180px}
.fa-rcpt .btn{flex:none;gap:6px;background:var(--surface);border:1px solid var(--line)}.fa-rcpt .btn svg{width:16px;height:16px}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-rcpt .btn{flex:1 1 100%;justify-content:center;min-height:44px}}
/* Prix connu d'un article (un toucher : son historique) */
.fa-price{border:0;background:none;padding:0;font:inherit;font-size:.8rem;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.fa-price:hover{color:var(--ink)}
/* Bilan des courses après le ticket */
.fa-review .fa-endic{margin:0 auto}.fa-review h2{text-align:center;margin:0}.fa-review>p.muted{text-align:center;margin:0}
.fa-rvh{margin:6px 0 0;font-size:.95rem}
.fa-rvl{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fa-rvrow{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:48px;cursor:pointer}.fa-rvrow+.fa-rvrow{border-top:1px solid var(--line)}
.fa-rvrow b{flex:1;min-width:0;font-weight:500}.fa-rvrow small{color:var(--muted);font-size:.85rem;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.fa-rvrow input{position:absolute;opacity:0;pointer-events:none}
.fa-rvrow input:checked+.fa-tkbox{background:var(--good);border-color:var(--good);color:#fff}
.fa-rvrow input:focus-visible+.fa-tkbox{outline:2px solid var(--accent);outline-offset:2px}
.fa-rvrow.off{cursor:default;color:var(--muted)}
/* ---------- Nos espaces : tuiles (accueil, « Plus ») et page d'un espace ---------- */
.fa-spbox{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:14px 12px 8px;margin:14px 0 18px}
.fa-spbox h2{margin:0 6px 12px;font-size:.92rem;font-weight:600;color:var(--muted)}
.fa-sps{display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:14px 6px}
.fa-sp{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:2px;border:0;background:none;font:inherit;color:inherit;cursor:pointer}
.fa-spic{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);flex:none}
.fa-spic svg{width:22px;height:22px}
.fa-sp .fa-spic{width:54px;height:54px;border-radius:17px;background:var(--c);color:#fff}.fa-sp .fa-spic svg{width:25px;height:25px}
.fa-sp:hover .fa-spic{filter:brightness(1.08)}
.fa-spn{max-width:100%;font-size:.8rem;font-weight:500;line-height:1.2;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fa-spic em{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;border:2px solid var(--surface);background:var(--bad);color:#fff;font-style:normal;font-weight:700;font-size:.68rem;display:grid;place-items:center}
.fa-spmore{display:none;margin:10px auto 4px;padding:6px 12px;border:0;background:none;font:inherit;font-weight:600;font-size:.88rem;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-spbox{margin-top:0}.fa-sps{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 2px}.fa-spn{font-size:.74rem;letter-spacing:-.01em}.fa-spbox:not(.open) .fa-spx{display:none}.fa-spmore{display:block}}
.fa-spdi{background:var(--c);color:#fff}
/* Menu de l'ordinateur : titre du groupe des espaces */
.rail-sec{margin:14px 12px 4px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}

/* ---------- couleur de l'espace affiché : tout l'écran la prend (bandeau, boutons, onglets, liens) ---------- */
/* Les fenêtres (#modalHost) et la barre du bas restent dans la couleur de l'appli */
#view[data-sc]{--accent:var(--sc);--accent-ink:#fff;--accent-soft:color-mix(in srgb,var(--sc) 12%,var(--surface));--dh-hero:var(--sc);--dh-hero-line:transparent;--dh-hero-sh:0 18px 40px -22px var(--sc)}
/* Bandeaux : couleur unie, sans reflet ni ombre intérieure qui la changeraient */
#view[data-sc] .dh-hero{box-shadow:var(--dh-hero-sh)}
/* Bandeau d'un espace */
/* Rendez-vous d'un espace : le trait dans la couleur de l'espace */
.fa-space .fa-bar{background:var(--c)!important}
/* Le logo et le choix de la famille gardent la couleur de l'appli (couleur lue sur la racine, avant celle de l'espace) */
:root{--app-accent:var(--accent);--app-accent-soft:var(--accent-soft)}
#view[data-sc] .mobile-brand,#view[data-sc] .profile-pill{--accent:var(--app-accent);--accent-soft:var(--app-accent-soft)}

/* Bandeau d'un espace : la prochaine chose utile, puis les dépenses du mois ; l'icône de l'espace en filigrane */
.fa-sphero{display:flex;flex-direction:column;gap:12px;margin-bottom:6px;min-height:150px}
.fa-sphic{position:absolute;right:16px;top:16px;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:rgba(255,255,255,.2);color:#fff}.fa-sphic svg{width:24px;height:24px}
.fa-spnext{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0 56px 0 0;border:0;background:none;color:#fff;font:inherit;text-align:left;cursor:pointer}
div.fa-spnext{cursor:default}
.fa-spnext small{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.85}
.fa-spnext b{font-size:1.35rem;line-height:1.2}
.fa-spnext span{font-size:.9rem;opacity:.92}
.fa-spcta{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:8px 14px;border:0;border-radius:999px;background:#fff;color:var(--sc,var(--accent));font:inherit;font-weight:700;font-size:.85rem;cursor:pointer}.fa-spcta svg{width:16px;height:16px}
.fa-spfoot{position:relative;margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px 0 0;border:0;border-top:1px solid rgba(255,255,255,.22);background:none;color:#fff;font:inherit;font-size:.88rem;font-weight:600;text-align:left;cursor:pointer}
.fa-spfoot span{flex:1}.fa-spfoot svg{width:16px;height:16px;flex:none}
.fa-spacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;justify-items:center;margin:16px 0 6px}
.fa-spacts .dh-act{width:100%;min-width:0;font-size:.78rem}.fa-spacts .dh-al{white-space:normal;overflow:visible;max-width:100%;overflow-wrap:anywhere}
.fa-space .dh-act1 span{background:var(--c);border-color:var(--c);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--c) 35%,transparent)}
.fa-space .dh-act span{color:var(--c)}.fa-space .dh-act1 span{color:#fff}
/* Sport, Loisirs : la semaine comme un emploi du temps */
.fa-spw{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.fa-spw+.fa-spw{border-top:1px solid var(--line)}
.fa-spwd{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:48px;border-radius:12px;background:var(--c);color:#fff;flex:none}
.fa-spwd small{font-size:.66rem;font-weight:700;text-transform:uppercase;opacity:.9}.fa-spwd b{font-size:1.1rem;line-height:1}
/* Documents : filtre par personne ; rappel de suggestion */
.fa-spchips{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px;padding:2px 2px 4px;scrollbar-width:none}.fa-spchips::-webkit-scrollbar{display:none}
.fa-spchip{flex:none;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}
.fa-spchip.on{background:var(--c,var(--accent));border-color:var(--c,var(--accent));color:#fff}
#remForm .fa-spchips{flex-wrap:wrap;overflow:visible}
.fa-late{color:var(--bad)!important;font-weight:600}
/* Listes : l'icône de chaque liste dans la couleur de son type */
.fa-lci{background:var(--c)!important;color:#fff!important}
@media (min-width:821px) and (min-height:501px),(min-width:1101px){.fa-spacts{max-width:560px;margin:18px 0 8px}}
/* Météo réservée à l'offre payante */
.fa-wxlock{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:12px 14px;border:1px dashed var(--line);border-radius:14px}
.fa-wxlock p{display:flex;gap:8px;align-items:flex-start;margin:0;color:var(--muted);font-size:.9rem}.fa-wxlock svg{width:18px;height:18px;flex:none;margin-top:1px}
/* ---------- Documents (bibliothèque) ---------- */
.fa-libhero{min-height:0}
.fa-libuse{position:relative;display:flex;flex-direction:column;gap:6px;margin-top:4px;font-size:.84rem;font-weight:600;color:#fff}
.fa-libuse i{display:block;height:6px;border-radius:3px;background:rgba(255,255,255,.25);overflow:hidden}
.fa-libuse i::after{content:"";display:block;height:100%;width:var(--p);background:#fff;border-radius:3px}
.fa-libuse.full i::after{background:#FFD5CC}
.fa-libacts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:260px}
.fa-libq{position:relative;margin:14px 0 4px}.fa-libq svg{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.fa-libq .input{padding-left:38px}
.fa-libfold{background:var(--c)!important;color:#fff!important}
.fa-libtop{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px}.fa-libtop p{margin:0;white-space:nowrap}
.fa-libtop .btn{gap:6px;background:var(--c);border-color:var(--c);color:#fff}.fa-libtop .btn svg{width:18px;height:18px}
/* ---------- Échéances : ligne du temps ---------- */
.fa-duegrp{margin:14px 4px 6px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.fa-duerel{flex:none;font-style:normal;font-size:.78rem;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.fa-duerel.soon{background:var(--warn-soft);color:var(--warn)}.fa-duerel.late{background:var(--bad-soft);color:var(--bad)}
/* ---------- Repas, onglet Recettes : recherche, rangées de cartes en photo, fiche ---------- */
.fa-rtop{display:flex;gap:10px;align-items:center;margin:4px 0 6px}.fa-rtop .fa-rq{flex:1;margin:0}.fa-rtop .btn{flex:none;gap:6px}
.fa-rrow{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 10px;margin:0 -2px;scrollbar-width:none}.fa-rrow::-webkit-scrollbar{display:none}
.fa-rcard{flex:none;width:188px;display:flex;flex-direction:column;gap:6px;text-align:left;background:none;border:0;padding:0;color:var(--text);scroll-snap-align:start;cursor:pointer;font:inherit}
.fa-rcard img,.fa-rph{width:100%;aspect-ratio:4/3;border-radius:14px;object-fit:cover;background:var(--surface-2);display:block}
.fa-rph{display:flex;align-items:center;justify-content:center;color:var(--muted)}.fa-rph svg{width:30px;height:30px}
.fa-rcard b{font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fa-rcard span:not(.fa-rph){display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--muted)}.fa-rcard span svg{width:13px;height:13px}
.fa-rcard:focus-visible{outline:2px solid var(--app-accent);outline-offset:3px;border-radius:14px}
.fa-rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px 12px;margin-bottom:8px}.fa-rgrid .fa-rcard{width:auto}
.fa-rload{display:flex;align-items:center;gap:10px;color:var(--muted);padding:16px 4px}
.fa-razbtn{margin-top:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.fa-rletter{margin:14px 14px 4px;font-size:.8rem;font-weight:700;color:var(--muted)}.fa-raz .fa-rletter:first-child{margin-top:8px}
.fa-rback{gap:4px;margin:2px 0 -4px -6px}
.fa-rcredit{font-size:.75rem;color:var(--muted);margin:14px 4px 4px}.fa-rcredit a{color:inherit}
.fa-rwebbtn{width:100%;justify-content:center;gap:8px;margin:14px 0 6px}
.dh-li.busy{opacity:.55;pointer-events:none}
.fa-rsheet h2{margin:12px 0 2px}.fa-rhero{width:calc(100% + 44px);margin:-22px -22px 0;aspect-ratio:16/10;object-fit:cover;border-radius:20px 20px 0 0;display:block;background:var(--surface-2)}
.fa-racts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.fa-racts .btn{gap:6px}
.fa-rkept{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:600;color:var(--good);padding:0 6px}.fa-rkept svg{width:16px;height:16px}
.fa-rsteps{white-space:pre-line;line-height:1.55}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-mealtabs button{flex-direction:column;gap:3px;min-height:54px;padding:4px;font-size:.76rem;line-height:1.15;text-align:center}.fa-rcard{width:138px}.fa-rgrid{grid-template-columns:1fr 1fr}.fa-racts .btn{flex:1 1 auto;justify-content:center}.fa-rtop .btn .fa-rnew{display:none}.fa-rtop .btn{width:46px;height:46px;padding:0;justify-content:center}}
/* ---------- Santé : outils, prises à donner, fiche d'une personne, journal ---------- */
.fa-htools{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 4px}
.fa-htool{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:center}
.fa-htool span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c)}.fa-htool span svg{width:20px;height:20px}
.fa-htool b{font-size:.78rem;font-weight:600;line-height:1.2}
.fa-hrow{display:flex;align-items:center;gap:8px;padding:0 12px 0 0;border-bottom:1px solid var(--line)}.fa-hrow:last-child{border-bottom:0}
.fa-hx{flex:1;min-width:0;display:flex;align-items:center;gap:12px;padding:12px 0 12px 14px;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.fa-hgive{flex:none;gap:5px;background:var(--c,var(--accent));border-color:var(--c,var(--accent));color:#fff}.fa-hgive svg{width:15px;height:15px}
.fa-hdone{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--good-soft);color:var(--good)}.fa-hdone svg{width:16px;height:16px}
.fa-hslot{flex:none;box-sizing:border-box;min-width:66px;padding:12px 6px 12px 14px;font-weight:700;font-variant-numeric:tabular-nums}
.fa-hbtn{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--c)}.fa-hbtn svg{width:17px;height:17px}
.fa-htel{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface-2);color:var(--c);vertical-align:middle;margin-left:4px}.fa-htel svg{width:14px;height:14px}
.fa-hcard{border-left:0;box-shadow:inset 0 3px 0 var(--bad)}
.fa-hacts{gap:8px;margin:8px 0 4px}.fa-hacts .btn{gap:6px}
.fa-hfoot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.78rem;color:var(--muted);margin:18px 4px 6px}.fa-hfoot svg{width:14px;height:14px}.fa-hfoot .linkbtn{font-size:.78rem}
.fa-hlist{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--text)}
.fa-hlast{display:flex;align-items:center;gap:6px;font-size:.84rem;color:var(--c);font-weight:600;margin:4px 4px 8px}.fa-hlast svg{width:15px;height:15px}.fa-hlast:empty{display:none}
.fa-hj{display:flex;align-items:flex-start;gap:10px;padding:10px 12px 10px 14px;border-bottom:1px solid var(--line)}.fa-hj:last-child{border-bottom:0}
.fa-hjt{flex:none;width:118px;font-size:.78rem;color:var(--muted);padding-top:2px}
.fa-hjx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fa-hjx b{font-weight:600;font-size:.9rem}.fa-hjx small{color:var(--muted);font-size:.76rem}
.fa-hjdel{flex:none;width:28px;height:28px;border:0;border-radius:50%;background:none;color:var(--muted);display:grid;place-items:center;cursor:pointer}.fa-hjdel svg{width:14px;height:14px}
.fa-hsub{margin:10px 14px 2px;font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.fa-hdet summary{cursor:pointer;padding:10px 14px;font-size:.86rem;font-weight:600;color:var(--c)}
.modal .fa-hdet summary{padding:6px 0}
.fa-hall{padding:8px 14px}.fa-hall .btn{gap:6px}
.fa-hsrc{font-size:.74rem;color:var(--muted);padding:6px 14px 10px;margin:0}.fa-hsrc a{color:inherit}
.fa-hpast{opacity:.65}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-htools{gap:6px}.fa-htool{padding:10px 2px}.fa-htool b{font-size:.72rem}.fa-hjt{width:92px}}
/* ---------- impression d'une fiche (carte d'urgence, journal, résumé vaccinal) ---------- */
#printHost{display:none}
@media print{
  body.printing>*:not(#printHost){display:none!important}
  body.printing #printHost{display:block}
  body.printing{background:#fff!important;color:#111!important}
  .pr-sheet{font:12pt/1.45 system-ui,-apple-system,"Segoe UI",sans-serif;color:#111;max-width:180mm;margin:0 auto}
  .pr-sheet header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #ccc;padding-bottom:6px;margin-bottom:14px}
  .pr-sheet header .pr-wm svg{height:15pt;width:auto;display:block}.pr-sheet h1{font-size:18pt;margin:0 0 12px}
  .pr-rows{display:grid;grid-template-columns:52mm 1fr;gap:6px 12px;margin:0 0 14px}.pr-rows dt{color:#555}.pr-rows dd{margin:0;font-weight:600}
  .pr-table{width:100%;border-collapse:collapse;font-size:10.5pt}.pr-table th,.pr-table td{border-bottom:1px solid #ddd;padding:5px 6px;text-align:left;vertical-align:top}.pr-table th{color:#555;font-weight:600}
  .pr-note{font-size:9.5pt;color:#555;margin-top:12px}
  .pr-sheet footer{margin-top:18px;font-size:9pt;color:#777}
}
.fa-hrow .dh-x span{white-space:normal;overflow:visible;text-overflow:clip}.fa-hrow .dh-x{flex:1;min-width:0}
.modal .fa-spchips{flex-wrap:wrap;overflow:visible}
/* ---------- École : niveaux, résumé lu, « Demain à l'école », emploi du temps ---------- */
.fa-lvchip{flex:none;font-style:normal;font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.fa-lvchip.lv-urgent{background:var(--bad-soft);color:var(--bad)}.fa-lvchip.lv-sign{background:var(--warn-soft);color:var(--warn)}.fa-lvchip.lv-bring{background:color-mix(in srgb,#6A46DB 14%,transparent);color:#6A46DB}
.fa-task .fa-lvchip{align-self:center;margin-right:8px}
.fa-aisum{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:12px;background:var(--surface-2);line-height:1.45}.fa-aisum svg{flex:none;width:18px;height:18px;margin-top:2px;color:var(--app-accent)}
.fa-airow.dup{opacity:.7}.fa-aidup{font-style:normal;font-size:.76rem;font-weight:600;color:var(--muted);margin-left:8px}
.fa-ailv.lv-urgent{border-color:var(--bad);color:var(--bad)}.fa-ailv.lv-sign{border-color:var(--warn);color:var(--warn)}.fa-ailv.lv-bring{border-color:#6A46DB;color:#6A46DB}
.fa-kidf{margin:14px 0 2px}
.fa-tm{display:grid;gap:0}.fa-tmk{padding:12px 14px;border-bottom:1px solid var(--line)}.fa-tmk:last-child{border-bottom:0}
.fa-tmh{display:flex;align-items:center;gap:10px;margin-bottom:6px}.fa-tmh b{font-size:.95rem}
.fa-tml{list-style:none;margin:0;padding:0 0 0 2px;display:grid;gap:6px}.fa-tml li{display:flex;gap:9px;align-items:flex-start;font-size:.88rem;line-height:1.35}.fa-tml svg{flex:none;width:16px;height:16px;margin-top:1px;color:var(--c)}
.fa-tm0{margin:0;font-size:.86rem}
.fa-ttscan{gap:8px;flex-wrap:wrap}.fa-ttscan .btn{gap:6px}
.fa-tttabs{display:grid;grid-template-columns:1fr 1fr}
.fa-ttdays{display:grid;gap:10px}
.fa-ttday{display:grid;grid-template-columns:96px 1fr auto;gap:8px 10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.fa-ttdn{text-transform:capitalize;font-size:.88rem}
.fa-tth{display:flex;align-items:center;gap:6px}.fa-tth .input{min-width:0;padding-left:8px;padding-right:6px}
.fa-ttcant{white-space:nowrap;font-size:.84rem}
.fa-ttday>.input{grid-column:1/-1}
.fa-ttkv b{text-align:right}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ttday{grid-template-columns:1fr auto}.fa-ttdn{grid-column:1/-1}}
.fa-ttday,.fa-ttday>*{min-width:0}.fa-ttday .input{width:100%}.fa-tth .input{flex:1 1 0;min-width:0}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ttday{grid-template-columns:minmax(0,1fr) auto}.fa-tth .input{font-size:.9rem}}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ttday{grid-template-columns:minmax(0,1fr)}.fa-ttdn{display:flex;justify-content:space-between}}
/* ---------- gros blocs en tête d'écran (accueil, espaces, Documents, Échéances, Dépenses, voyage) : texte centré ---------- */
.fa-sphero .fa-spnext{align-items:center;text-align:center;padding:0 46px;align-self:stretch}
.fa-sphero .fa-spnext span,.fa-sphero .fa-spnext b{max-width:100%}
.fa-sphero .fa-spfoot{justify-content:center}.fa-sphero .fa-spfoot span{flex:none}
.fa-libhero .fa-libuse{align-items:center;text-align:center}.fa-libhero .fa-libuse i{align-self:stretch}
.fa-hhero{text-align:center}.fa-hhero .fa-hchips,.fa-hhero .fa-hfam{justify-content:center}
.dh-hero .dh-top{justify-content:center}.dh-hero .dh-amt,.dh-hero .dh-lbl{text-align:center;justify-content:center}.dh-hero .dh-pills{justify-content:center}
.fa-thero{text-align:center;align-items:center}.fa-thero .fa-thx{flex-direction:column}.fa-thero .fa-tcwho{justify-content:center}
.dh-hero .dh-co{flex:0 1 auto}
.fa-libhero .fa-spnext{align-items:center;text-align:center;padding:0 46px;align-self:stretch}
/* ---------- Vacances : partage, PDF, budget, champs à vérifier ---------- */
.fa-thbtns{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.fa-thbtns .btn{gap:6px;background:rgba(255,255,255,.7)}
.fa-bud{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:16px;border-radius:16px;background:var(--surface-2);margin-bottom:10px}
.fa-bud small{font-size:.78rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.fa-bud b{font-size:1.8rem;letter-spacing:-.02em}.fa-bud span{font-size:.86rem;color:var(--muted)}
.fa-bud i{display:block;align-self:stretch;height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin:4px 0 6px}.fa-bud i::after{content:"";display:block;height:100%;width:var(--p);background:var(--good);border-radius:3px}.fa-bud i.over::after{background:var(--bad)}
.fa-bud .btn{gap:6px;margin-top:4px}
.fa-shlink{display:flex;gap:8px}.fa-shlink .input{flex:1;min-width:0;font-size:.84rem}.fa-shlink .btn{gap:6px;flex:none}
.input.fa-unsure{border-color:var(--warn);background:var(--warn-soft)}
.fa-unsurenote{display:flex;align-items:center;gap:6px;margin:0;font-size:.82rem;font-weight:600;color:var(--warn)}.fa-unsurenote svg{width:15px;height:15px}
.fa-tchk a{font-weight:600}
@media print{.pr-h2{font-size:14pt;margin:16px 0 6px;border-bottom:1px solid #ddd;padding-bottom:3px}.pr-h{font-size:11.5pt;margin:10px 0 4px;text-transform:capitalize}.pr-ul{margin:0;padding-left:18px}.pr-ul li{margin:2px 0}.pr-cols{columns:2;list-style:none;padding-left:0}}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ttabs .fa-ttab span{font-size:.72rem}}
.fa-ttabs{display:flex;flex-wrap:nowrap}.fa-ttabs .fa-ttab{flex:1 1 0;min-width:0}.fa-ttabs .fa-ttab span{max-width:100%}
@media (max-width:820px),(max-height:500px) and (max-width:1100px){.fa-ttab em{top:2px;right:2px;padding:0 5px;font-size:.62rem}}
@media (max-width:400px){.fa-ttabs{gap:2px;padding:3px}.fa-ttabs .fa-ttab{padding:0 3px;flex:1 1 auto}.fa-ttabs .fa-ttab span{font-size:.66rem}}

/* ---------- Agenda : répétition, tour de rôle, rappels, privé ---------- */
.fa-hide { display: none !important; }
.fa-rec { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2, var(--bg)); }
.fa-recrow { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.fa-recrow .input { width: 72px; text-align: center; }
.fa-recdays, .fa-rotwho { display: flex; flex-wrap: wrap; gap: 6px; }
.fa-dchip { position: relative; cursor: pointer; }
.fa-dchip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.fa-dchip span { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px; border-radius: 999px; border: 1px solid var(--line); font-weight: 600; text-transform: capitalize; background: var(--surface, #fff); }
.fa-dchip input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; }
.fa-dchip input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.fa-rems { display: grid; gap: 6px; }
.fa-remadd { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; }
.fa-remadd svg { width: 16px; height: 16px; }
.fa-privchip { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--surface-2, #eef1f5); color: var(--muted); vertical-align: middle; }
.fa-privchip svg { width: 13px; height: 13px; }
.fa-evtick .btn-sm { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; }
.fa-evtick .btn-sm svg { width: 15px; height: 15px; }
.fa-optck { align-items: flex-start; gap: 10px; }
.fa-optck > span { display: flex; flex-direction: column; }
.fa-optck small { color: var(--muted); font-weight: 400; }
.fa-evcard .dh-kv b { white-space: normal; text-align: right; min-width: 0; overflow-wrap: anywhere; }

/* ---------- Repas : onglets bien visibles, catalogue de recettes ---------- */
.fa-mealtabs.seg { background: none; padding: 0; gap: 8px; width: 100%; }
.fa-mealtabs.seg button { background: var(--surface); border: 1.5px solid var(--line); border-radius: 14px; min-height: 52px; font-weight: 600; color: var(--ink); box-shadow: 0 1px 2px rgba(22, 27, 38, .06); }
.fa-mealtabs.seg button svg { color: var(--accent); }
.fa-mealtabs.seg button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); box-shadow: 0 6px 16px color-mix(in srgb, var(--accent) 30%, transparent); }
.fa-mealtabs.seg button[aria-pressed="true"] svg { color: var(--accent-ink); }
.fa-rweek { display: flex; align-items: center; gap: 12px; padding: 12px 14px; margin: 4px 0 12px; border-radius: 14px; background: color-mix(in srgb, var(--accent) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent); }
.fa-rweek > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.fa-rweek small { color: var(--muted); font-size: .84rem; }
.fa-rweekic { flex: none; width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--accent); color: var(--accent-ink); }
.fa-rweekic svg { width: 20px; height: 20px; }
.fa-rchips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 0 6px; padding-bottom: 2px; }
.fa-rchips::-webkit-scrollbar { display: none; }
.fa-rchip { flex: none; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 999px; padding: 8px 14px; font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; }
.fa-rchip:first-child { background: #E7F5EC; border-color: #A8D9BA; color: #11804A; }
.fa-rcard { position: relative; }
.fa-rveg { position: absolute; top: 8px; left: 8px; width: 26px; height: 26px; border-radius: 999px; display: grid; place-items: center; background: #fff; color: #11804A; box-shadow: 0 1px 4px rgba(0, 0, 0, .15); }
.fa-rveg svg { width: 15px; height: 15px; }
.fa-rph { position: relative; overflow: hidden; }
.fa-rph::before, .fa-rph::after { content: ""; position: absolute; border-radius: 50%; background: currentColor; opacity: .12; }
.fa-rph::before { width: 70%; aspect-ratio: 1; right: -18%; top: -25%; }
.fa-rph::after { width: 45%; aspect-ratio: 1; left: -12%; bottom: -20%; }
.fa-rph svg { width: 42px; height: 42px; position: relative; }
.fa-rph-amber { background: #FDF0DC; color: #B25B00; }
.fa-rph-green { background: #E3F4E9; color: #11804A; }
.fa-rph-blue { background: #E3EEFD; color: #1E6BE6; }
.fa-rph-coral { background: #FCE7E2; color: #D9482B; }
.fa-rph-violet { background: #EEE8FC; color: #6A46DB; }
.fa-rph-teal { background: #DDF2F2; color: #0B7F84; }
:root[data-theme="dark"] .fa-rph, :root[data-theme="dark"] .fa-rchip:first-child { filter: brightness(.82) saturate(.9); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .fa-rph, :root:not([data-theme="light"]) .fa-rchip:first-child { filter: brightness(.82) saturate(.9); } }
.fa-urlmore { border: 1px dashed var(--line); border-radius: 12px; padding: 10px 12px; }
.fa-urlmore summary { display: flex; align-items: center; gap: 6px; cursor: pointer; color: var(--muted); font-size: .9rem; font-weight: 600; list-style: none; }
.fa-urlmore summary::-webkit-details-marker { display: none; }
.fa-urlmore summary svg { width: 16px; height: 16px; flex: none; }
.fa-urlmore[open] summary { margin-bottom: 10px; }
.fa-rcard .fa-rph svg { width: 46px; height: 46px; }
.fa-urlmore summary { text-align: left; }

/* ---------- Accueil : blocs au choix, Maintenant / Ensuite, le soir, météo, ajout en une phrase ---------- */
.fa-hblocks { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: row dense; gap: 0 18px; align-items: start; }
.fa-hb { grid-column: 1 / -1; min-width: 0; }
.fa-hb.half { grid-column: auto; }
.fa-hb-now, .fa-hb-weather, .fa-hb-evening, .fa-hb-quick { margin-bottom: 14px; }
/* Téléphone : le même écart entre tous les blocs de l'accueil */
@media (max-width: 820px), (max-height: 500px) and (max-width: 1100px) { .fa-only-m > .fa-hb { margin: 12px 0 0; } }
.fa-nn, .fa-eve { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; }
.fa-nnh, .fa-eveh { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: .92rem; }
.fa-nnh svg, .fa-eveh svg { width: 18px; height: 18px; color: var(--accent); }
.fa-eveh .dh-all { margin-left: auto; }
.fa-nnrow { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid var(--line); }
.fa-nnrow:first-of-type { border-top: 0; }
.fa-nnwhen { flex: none; width: 108px; white-space: nowrap; overflow: hidden; display: flex; flex-direction: column; border-left: 4px solid var(--c); padding-left: 10px; }
.fa-nnwhen b { font-size: 1.05rem; line-height: 1.2; }
.fa-nnwhen small, .fa-nnx small { color: var(--muted); font-size: .8rem; }
.fa-nnrow.now .fa-nnwhen b { color: var(--accent); }
.fa-nnx { flex: 1; min-width: 0; display: flex; flex-direction: column; text-align: left; background: none; border: 0; padding: 0; font: inherit; color: var(--ink); cursor: pointer; }
.fa-nnx b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fa-nnmap { flex: none; display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; font-weight: 600; color: var(--accent); text-decoration: none; padding: 6px 8px; border-radius: 999px; background: var(--surface-2); }
.fa-nnmap svg { width: 14px; height: 14px; }
@media (max-width: 480px) { .fa-nnmap { font-size: 0; gap: 0; } .fa-nnmap svg { width: 16px; height: 16px; } .fa-nnwhen { width: 112px; } .fa-nnwhen small { font-size: .76rem; } }
.fa-wxh { display: flex; align-items: center; gap: 12px; width: 100%; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; color: var(--ink); font: inherit; text-align: left; }
.fa-wxh > span:nth-child(2) { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.fa-wxh b i { font-style: normal; color: var(--muted); font-weight: 500; }
.fa-wxh small { color: var(--muted); font-size: .84rem; }
.fa-wxh em { font-style: normal; font-size: .84rem; color: #1E6BE6; display: inline-flex; align-items: center; gap: 5px; margin-top: 2px; }
.fa-wxh em svg { width: 14px; height: 14px; flex: none; }
.fa-wxhic { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #FDF0DC; color: #B25B00; }
.fa-wxhic svg { width: 24px; height: 24px; }
.fa-wx-umbrella .fa-wxhic, .fa-wx-snow .fa-wxhic { background: #E3EEFD; color: #1E6BE6; }
.fa-wx-cloud .fa-wxhic { background: var(--surface-2); color: var(--muted); }
.fa-wxh-empty { cursor: pointer; border-style: dashed; }
.fa-wxh-empty > svg { width: 16px; height: 16px; color: var(--muted); }
.fa-evel, .fa-evek ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fa-evel li, .fa-evek li { display: flex; align-items: flex-start; gap: 8px; font-size: .92rem; }
.fa-evel li svg, .fa-evek li svg { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--muted); }
.fa-evek { display: flex; gap: 10px; padding-top: 10px; margin-top: 10px; border-top: 1px solid var(--line); }
.fa-qa { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 8px 10px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 10px 12px; }
.fa-qaic { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--accent); color: var(--accent-ink); }
.fa-qaic svg { width: 18px; height: 18px; }
.fa-qa .input { min-width: 0; }
.fa-qap { grid-column: 1 / -1; color: var(--muted); font-size: .82rem; min-height: 1.2em; }
.fa-hcust { display: flex; justify-content: center; margin: 22px 0 6px; }
.fa-hcust .linkbtn { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); }
.fa-hcust svg { width: 16px; height: 16px; }
.fa-hclist { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fa-hcrow { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.fa-hcrow .fa-check { flex: 1; align-items: flex-start; gap: 10px; min-width: 0; }
.fa-hcrow .fa-check > span { display: flex; flex-direction: column; }
.fa-hcrow small { color: var(--muted); font-weight: 400; font-size: .8rem; }
.fa-hcmv { display: flex; gap: 2px; flex: none; }
.fa-hcmv .btn { width: 34px; height: 34px; padding: 0; justify-content: center; border: 0; background: var(--surface-2); box-shadow: none; }
.fa-hcmv .btn[disabled] { opacity: .35; }
.fa-hcmv svg { width: 16px; height: 16px; }
.fa-eveh .dh-all { white-space: nowrap; }
.fa-eveh b { min-width: 0; }
.fa-hb-day { margin-top: 18px; }

/* ---------- Petit mot à la famille ---------- */
.fa-notes { display: grid; gap: 8px; margin: 12px 0 14px; }
.fa-note { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: 14px; background: #FFF8E6; border: 1px solid #F3DFA8; box-shadow: 0 1px 2px rgba(22, 27, 38, .05); color: #3B2F12; }
.fa-notepin { font-size: 1.15rem; line-height: 1.3; }
.fa-notex2 { flex: 1; min-width: 0; }
.fa-notex2 p { margin: 0 0 4px; font-weight: 600; white-space: pre-line; overflow-wrap: anywhere; }
.fa-notex2 small { display: flex; align-items: center; gap: 6px; color: #7A6630; font-size: .8rem; }
.fa-note .fa-av-xs { width: 18px; height: 18px; font-size: .6rem; }
.fa-note .btn-sm { flex: none; background: #fff; display: inline-flex; align-items: center; gap: 4px; }
.fa-note .btn-sm svg { width: 14px; height: 14px; }
.fa-notex { flex: none; border: 0; background: none; color: #7A6630; cursor: pointer; padding: 4px; border-radius: 8px; }
.fa-notex svg { width: 16px; height: 16px; }
:root[data-theme="dark"] .fa-note { background: #3A321C; border-color: #5A4C24; color: #F6EBC8; }
:root[data-theme="dark"] .fa-notex2 small, :root[data-theme="dark"] .fa-notex { color: #D9C68E; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .fa-note { background: #3A321C; border-color: #5A4C24; color: #F6EBC8; } :root:not([data-theme="light"]) .fa-notex2 small, :root:not([data-theme="light"]) .fa-notex { color: #D9C68E; } }
.fa-notes.big .fa-note { padding: 16px 20px; }
.fa-notes.big .fa-notex2 p { font-size: 1.35rem; }
.fa-notes.big { margin: 0; }

/* ---------- Routines des enfants ---------- */
.rt-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; margin-bottom: 12px; }
.rt-card.all { border-color: #9BD3AE; background: color-mix(in srgb, #11804A 6%, var(--surface)); }
.rt-h { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.rt-slot { color: var(--muted); font-size: .85rem; }
.rt-n { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; }
.rt-stars { font-weight: 700; background: #FFF4D6; color: #8A5A00; border-radius: 999px; padding: 3px 10px; font-size: .88rem; }
.rt-bravo { margin: 0 0 10px; font-weight: 700; color: #11804A; }
.rt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 8px; }
.rt-it { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 92px; padding: 10px 6px; border-radius: 14px; border: 2px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; cursor: pointer; transition: transform .12s ease, background .2s ease; }
.rt-it:active { transform: scale(.96); }
.rt-it[disabled] { cursor: default; }
.rt-it .rt-e { font-size: 2rem; line-height: 1; }
.rt-it .rt-l { font-size: .82rem; font-weight: 600; text-align: center; line-height: 1.2; }
.rt-it.on { border-color: var(--c); background: color-mix(in srgb, var(--c) 14%, var(--surface)); }
.rt-it.on .rt-e { opacity: .55; }
.rt-ok { position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 999px; background: var(--c); color: #fff; display: grid; place-items: center; }
.rt-ok svg { width: 14px; height: 14px; }
.rt-goal { display: grid; gap: 4px; margin-top: 10px; }
.rt-goal i { display: block; height: 8px; border-radius: 999px; background: var(--surface-2); position: relative; overflow: hidden; }
.rt-goal i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--p); background: #E0A100; border-radius: 999px; }
.rt-goal small { color: var(--muted); font-size: .8rem; }
.rt-card.big .rt-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
.rt-card.big .rt-it { min-height: 130px; }
.rt-card.big .rt-it .rt-e { font-size: 2.9rem; }
.rt-card.big .rt-it .rt-l { font-size: 1rem; }
.rt-card.big .rt-h b { font-size: 1.3rem; }
.rt-tabs { align-self: flex-start; }
.rt-pres { display: flex; flex-wrap: wrap; gap: 6px; }
.rt-pre { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--line); background: var(--surface); border-radius: 999px; padding: 6px 12px 6px 8px; font: inherit; font-size: .88rem; cursor: pointer; color: var(--ink); }
.rt-pre span { font-size: 1.1rem; }
.rt-pre.on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--surface)); font-weight: 600; }
.rt-own { display: grid; grid-template-columns: 76px 1fr auto; gap: 8px; }
.rt-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.rt-list li { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 12px; }
.rt-list li b { flex: 1; min-width: 0; }
.rt-list .rt-e { font-size: 1.4rem; }

/* ---------- Écran de cuisine : météo, routines, nuit, quitter par appui long ---------- */
.k-wx { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); }
.k-wx svg { width: 30px; height: 30px; color: #E0A100; }
.k-wx b { font-size: 1.6rem; }
.k-wx small { color: var(--muted); }
.k-rts { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.k-rts .rt-card { margin: 0; }
.k-exit { position: relative; overflow: hidden; }
.k-exit i { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--accent); }
.k-exit.holding i { width: 100%; transition: width 1.5s linear; }
html.k-night { filter: brightness(.45) saturate(.75); background: #000; }

/* ---------- Courses et listes : fiche d'article, habituels, au magasin, voix, envoi, magasins ---------- */
.fa-itb { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; text-align: left; cursor: pointer; align-items: center; flex-wrap: nowrap; }
.fa-itb > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.fa-itb b { overflow-wrap: anywhere; }
.fa-ithumb { flex: none; width: 38px; height: 38px; border-radius: 10px; overflow: hidden; background: var(--surface-2); display: grid; place-items: center; color: var(--muted); }
.fa-ithumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fa-ithumb svg { width: 16px; height: 16px; }
.fa-take .fa-ithumb { width: 34px; height: 34px; }
.fa-imeta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; color: var(--muted); font-size: .8rem; }
.fa-imeta svg { width: 12px; height: 12px; }
.fa-imeta span { opacity: .6; }
.fa-due { margin: 4px 0 10px; padding: 10px 12px; border-radius: 14px; background: color-mix(in srgb, var(--accent) 8%, var(--surface)); border: 1px solid color-mix(in srgb, var(--accent) 20%, transparent); }
.fa-due > p { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; font-size: .88rem; }
.fa-due > p svg { width: 16px; height: 16px; color: var(--accent); }
.fa-duechips { display: flex; gap: 6px; flex-wrap: wrap; }
.fa-duechip { display: inline-flex; align-items: center; gap: 5px; border: 1.5px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 999px; padding: 6px 12px 6px 8px; font: inherit; font-size: .88rem; cursor: pointer; }
.fa-duechip svg { width: 14px; height: 14px; color: var(--accent); }
.fa-duechip small { color: var(--muted); font-size: .76rem; }
.fa-atshop { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; padding: 10px 12px; border-radius: 14px; background: #E8F7EE; border: 1px solid #A8D9BA; color: #0D5B34; }
.fa-atshop svg { width: 20px; height: 20px; flex: none; }
.fa-atshop > span { display: flex; flex-direction: column; }
.fa-atshop small { font-size: .82rem; opacity: .85; }
:root[data-theme="dark"] .fa-atshop { background: #183526; border-color: #2D5A40; color: #BFF0D2; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .fa-atshop { background: #183526; border-color: #2D5A40; color: #BFF0D2; } }
.fa-shopgo { width: 100%; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; text-align: left; justify-content: start; padding: 12px 14px; margin: 4px 0 12px; border-radius: 14px; font-weight: 700; }
.fa-shopgo svg { grid-row: 1 / span 2; width: 22px; height: 22px; align-self: center; color: var(--accent); }
.fa-shopgo small { font-weight: 400; color: var(--muted); font-size: .82rem; }
.fa-mic { flex: none; width: 46px; padding: 0; justify-content: center; }
.fa-mic svg { width: 18px; height: 18px; }
.fa-micbox { text-align: center; padding: 8px 0; }
.fa-micic { width: 72px; height: 72px; border-radius: 999px; display: grid; place-items: center; margin: 0 auto; background: var(--accent); color: var(--accent-ink); animation: fa-pulse 1.4s ease-in-out infinite; }
.fa-micic svg { width: 32px; height: 32px; }
.fa-micout { min-height: 1.5em; font-weight: 600; font-size: 1.1rem; }
@keyframes fa-pulse { 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent); } 50% { box-shadow: 0 0 0 16px transparent; } }
@media (prefers-reduced-motion: reduce) { .fa-micic { animation: none; } }
.fa-iphoto img { width: 100%; max-height: 240px; object-fit: contain; border-radius: 14px; background: var(--surface-2); display: block; }
.fa-iphbtns { gap: 8px; }
.fa-iphbtns .btn svg { width: 15px; height: 15px; }
.fa-sendtxt { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .85rem; white-space: pre; resize: vertical; }
.fa-sendbtns { display: flex; flex-wrap: wrap; gap: 8px; }
.fa-sendbtns .btn { flex: 1 1 auto; justify-content: center; }
.fa-stchips { margin: 0 0 8px; }
.fa-stother { margin: 0 0 8px; }
.fa-sendbtns a.btn { text-decoration: none; }
.fa-stlist { display: grid; gap: 8px; }
.fa-strow { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.fa-strx { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.fa-strx small { color: var(--muted); font-size: .8rem; }
.fa-wxh-empty { border-style: solid; }
.fa-wxh-empty .fa-wxhic { background: var(--surface-2); color: var(--muted); }

/* ---------- Échéances : contrats, qui s'en occupe, renouveler, année ---------- */
.fa-hdl { flex: none; display: inline-flex; align-items: center; gap: 4px; font-size: .76rem; font-weight: 600; padding: 3px 8px 3px 4px; border-radius: 999px; background: var(--surface-2); color: var(--ink); white-space: nowrap; }
.fa-hdl .fa-av-xs { width: 18px; height: 18px; font-size: .6rem; }
.fa-hdl i { font-style: normal; color: var(--muted); font-weight: 500; }
.fa-hdl-doing i { color: #B25B00; }
.fa-hdl-done i { color: #11804A; }
.fa-ctsum { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; padding: 12px 14px; margin-bottom: 10px; border-radius: 14px; background: color-mix(in srgb, #0B7F84 9%, var(--surface)); border: 1px solid color-mix(in srgb, #0B7F84 25%, transparent); }
.fa-ctsum b { font-size: 1.35rem; }
.fa-ctsum small { color: var(--muted); width: 100%; }
.dh-x b small { font-weight: 400; color: var(--muted); font-size: .82rem; }
.fa-remch { display: flex; flex-wrap: wrap; gap: 6px; }
.fa-remch .fa-dchip span { min-width: 0; height: 34px; padding: 0 12px; font-size: .84rem; }
.fa-rnsteps { margin: 0; padding-left: 20px; display: grid; gap: 6px; }
.fa-olddocs { margin-top: 16px; }
.fa-olddocs summary { cursor: pointer; color: var(--muted); font-weight: 600; margin-bottom: 8px; }
.fa-year { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.fa-yc { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px; min-height: 92px; }
.fa-yc > b { text-transform: capitalize; font-size: .92rem; }
.fa-yc > b small { color: var(--muted); font-weight: 400; }
.fa-yc > em { position: absolute; top: 9px; right: 10px; font-style: normal; font-weight: 700; font-size: .78rem; background: var(--accent); color: var(--accent-ink); border-radius: 999px; padding: 1px 8px; }
.fa-yc:not(.on) { opacity: .6; }
.fa-yc ul { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; }
.fa-yc li button { display: flex; align-items: center; gap: 6px; width: 100%; background: none; border: 0; padding: 0; font: inherit; font-size: .8rem; color: var(--ink); text-align: left; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fa-yc li i { flex: none; width: 8px; height: 8px; border-radius: 999px; background: var(--c); }
@media (max-width: 480px) { .fa-year { grid-template-columns: 1fr 1fr; } }
.dh-acts.fa-vacts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; justify-items: center; }
.dh-actbox .dh-acts.fa-vacts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 10px; }
.fa-vacts .dh-act { min-width: 0; }
.fa-vacts .dh-al { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.fa-yc li { min-width: 0; }
.fa-yc li button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.fa-remch .fa-dchip span { text-transform: none; }
a.btn { text-decoration: none; }
/* Accueil ordinateur : « Maintenant » et la météo côte à côte, sous la journée */
.fa-hpair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 18px 0 0; align-items: stretch; }
.fa-hpair.one { grid-template-columns: 1fr; }
.fa-hpair > .fa-wxh, .fa-hpair > .fa-nn { height: 100%; }
.fa-only-d > .fa-eve { margin-top: 18px; }
.fa-hquick { margin: 18px 0 4px; }
.fa-hpair + .fa-wids, .fa-only-d > .fa-eve + .fa-wids { margin-top: 18px; }

/* ---------- Dépenses : en une phrase, budgets, entre parents, 12 mois ---------- */
.fa-xqa { margin: 4px 0 16px; }
.fa-xbuds { padding: 4px 14px; }
.fa-xbud { padding: 10px 0; border-top: 1px solid var(--line); }
.fa-xbud:first-child { border-top: 0; }
.fa-xbh { display: flex; justify-content: space-between; gap: 8px; font-size: .92rem; }
.fa-xbh span { color: var(--muted); font-variant-numeric: tabular-nums; }
.fa-xbud i { display: block; height: 8px; border-radius: 999px; background: var(--surface-2); margin: 6px 0 4px; position: relative; overflow: hidden; }
.fa-xbud i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--p); background: var(--c); border-radius: 999px; }
.fa-xbud small { color: var(--muted); font-size: .8rem; }
.fa-xbud.warn i::after { background: #E0A100; }
.fa-xbud.over i::after { background: #D9482B; }
.fa-xbud.over small { color: #D9482B; font-weight: 600; }
.fa-xbform { display: grid; gap: 6px; max-height: 55vh; overflow: auto; }
.fa-xbrow { display: grid; grid-template-columns: auto 1fr 110px; align-items: center; gap: 10px; }
.fa-xowe { display: flex; align-items: center; gap: 10px; padding: 12px 14px; }
.fa-xowe > .fa-xowet { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.fa-xowe small { color: var(--muted); font-size: .8rem; }
.fa-xowe.ok svg { width: 20px; height: 20px; color: #11804A; }
@media (max-width: 600px) { .fa-xowe { flex-wrap: wrap; } .fa-xowe > .btn, .fa-xowe > button { flex: 1 1 100%; } }
.fa-xpreq .row { gap: 6px; flex: none; }
.fa-xpst { display: block; font-size: .72rem; font-weight: 600; text-align: right; }
.fa-xpst.pending { color: #B25B00; }
.fa-xpst.accepted { color: #11804A; }
.fa-xpst.refused { color: #D9482B; }
.dh-x b small svg { width: 12px; height: 12px; vertical-align: -1px; }
.dh-r small { display: block; color: var(--muted); font-size: .74rem; text-align: right; }
.fa-xm12 { padding: 12px 14px; }
.fa-xmbars { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; align-items: end; height: 130px; }
.fa-xmb { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 4px; background: none; border: 0; padding: 0; cursor: pointer; font: inherit; }
.fa-xmb i { width: 100%; height: var(--h); min-height: 2px; border-radius: 6px 6px 2px 2px; background: color-mix(in srgb, var(--accent) 35%, var(--surface-2)); }
.fa-xmb.on i { background: var(--accent); }
.fa-xmb small { font-size: .72rem; color: var(--muted); text-transform: uppercase; }

/* ---------- Maison, Sport, Loisirs, Animaux : contacts, animaux, ménage, appareils, activités, trajets, idées ---------- */
.fa-spempty { background: var(--surface); border: 1px dashed var(--line-strong, #C7CCD6); border-radius: 18px; }
.fa-spempty + .fa-spempty, .dh-card + .fa-spempty { margin-top: 10px; }
.fa-scrow { padding: 0; cursor: default; }
.fa-scx { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 13px 0 13px 16px; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; text-decoration: none; }
.fa-scx:disabled { cursor: default; opacity: 1; }
.fa-sccall { flex: none; width: 40px; height: 40px; margin-right: 14px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--good) 14%, var(--surface)); color: var(--good); }
.fa-sccall svg { width: 18px; height: 18px; }
.fa-chk { position: relative; }
.fa-chk input { position: absolute; opacity: 0; pointer-events: none; }
.fa-chk:has(input:checked) { background: var(--c, var(--accent)); border-color: var(--c, var(--accent)); color: #fff; }
.fa-chk:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.fa-ffpet { display: none; }

/* Animaux */
.fa-ptgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 10px; }
.fa-ptc { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px; border: 1px solid var(--dh-tile-line); background: var(--surface); box-shadow: var(--shadow); font: inherit; color: var(--ink); text-align: left; cursor: pointer; min-width: 0; }
.fa-ptc > svg { width: 18px; height: 18px; color: var(--muted); flex: none; }
.fa-ptadd { border-style: dashed; box-shadow: none; }
.fa-ptadd .fa-ptpic { background: color-mix(in srgb, var(--c) 12%, var(--surface)); color: var(--c); }
.fa-ptadd .fa-ptpic svg { width: 22px; height: 22px; }
.fa-ptpic { flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; font-size: 28px; background: color-mix(in srgb, var(--c, #C2185B) 12%, var(--surface)); overflow: hidden; }
.fa-ptpic img { width: 100%; height: 100%; object-fit: cover; }
.fa-ptpic.big { width: 96px; height: 96px; font-size: 52px; }
.dh-li .fa-ptpic { width: 40px; height: 40px; font-size: 22px; }
.fa-ptx { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.fa-ptx b { font-size: 1.02rem; }
.fa-ptx small { color: var(--muted); font-size: .82rem; }
.fa-ptx em { font-style: normal; font-size: .8rem; font-weight: 600; color: var(--c); margin-top: 2px; }
.fa-ptx em.late { color: #B45309; }
.fa-pthead { display: flex; gap: 16px; align-items: flex-start; padding: 16px; }
.fa-ptinfo { flex: 1; min-width: 0; }
.fa-ptinfo h2 { margin: 0 0 6px; font-size: 1.25rem; }
.fa-ptinfo dl { margin: 0 0 10px; display: grid; gap: 4px; }
.fa-ptinfo dl div { display: flex; gap: 8px; font-size: .9rem; }
.fa-ptinfo dt { color: var(--muted); min-width: 90px; }
.fa-ptinfo dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 480px) { .fa-pthead { flex-direction: column; align-items: center; text-align: center; } .fa-ptinfo dl div { justify-content: center; } .fa-ptinfo dt { min-width: 0; } }
.fa-ptw { display: flex; align-items: center; gap: 16px; padding: 14px 16px; }
.fa-ptwn { flex: none; display: flex; flex-direction: column; }
.fa-ptwn b { font-size: 1.3rem; }
.fa-ptwn small { color: var(--muted); font-size: .8rem; }
.fa-ptws { flex: 1; min-width: 0; height: 70px; }
.fa-ptws path { fill: none; stroke: var(--c, #C2185B); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.fa-ptwl .dh-li { padding: 10px 14px; cursor: default; }
.fa-ptphoto { display: flex; align-items: center; gap: 14px; }
.fa-ptphoto > img, .fa-ptphoto > span { flex: none; width: 72px; height: 72px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; font-size: 38px; background: var(--surface-2); color: var(--muted); }
.fa-ptphoto > span svg { width: 28px; height: 28px; }
.fa-ptcare { padding: 4px 14px; }
.fa-ptcr { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.fa-ptcare > .fa-ptcr:first-child, .fa-chbh + .fa-ptcr { border-top: 0; }
.fa-ptcr .fa-check { flex: 1 1 190px; min-width: 0; align-items: flex-start; }
.fa-ptcr .fa-check > span { display: flex; flex-direction: column; min-width: 0; }
.fa-ptcr .fa-check small { color: var(--muted); font-size: .8rem; }
.fa-ptcr .input { flex: none; width: auto; max-width: 160px; }
.fa-ptcr .input[type="time"] { max-width: 120px; }
.fa-chbh { margin: 10px 0 2px; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.fa-mtmust { font-style: normal; font-size: .7rem; font-weight: 700; color: #B45309; background: color-mix(in srgb, #F59E0B 16%, var(--surface)); border-radius: 999px; padding: 1px 7px; margin-left: 4px; vertical-align: 1px; }

/* Maison : ménage */
.fa-chrooms { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin-bottom: 10px; }
.fa-chroom { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--dh-tile-line); background: var(--surface); font: inherit; color: var(--ink); text-align: left; cursor: pointer; min-width: 0; }
.fa-chroom b { font-size: .92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fa-chroom small { color: var(--muted); font-size: .76rem; }
.fa-chroom.on { border-color: var(--c); box-shadow: 0 0 0 1px var(--c); }
.fa-chg { display: block; height: 6px; border-radius: 99px; background: var(--surface-2); overflow: hidden; }
.fa-chg i { display: block; height: 100%; border-radius: inherit; background: var(--good); }
.fa-chg.soon i { background: #F59E0B; }
.fa-chg.due i { background: #E5484D; }
.fa-chr .fa-chg { margin-top: 6px; max-width: 220px; }
.fa-chr.due .fa-taskx small { color: #C2410C; font-weight: 600; }
.fa-chstars { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin: 10px 4px 0; font-size: .86rem; color: var(--muted); }
.fa-chstars span { color: var(--ink); font-weight: 600; }
.fa-hipic { overflow: hidden; }
.fa-hipic img { width: 100%; height: 100%; object-fit: cover; }

/* Sport et Loisirs : activités, trajets */
.fa-acl .fa-acard { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 16px; border: 0; border-top: 1px solid var(--line); background: none; font: inherit; color: var(--ink); text-align: left; cursor: pointer; }
.fa-acl .fa-acard:first-child { border-top: 0; }
.fa-acard .fa-av-sm { margin-left: 0; width: 34px; height: 34px; font-size: .85rem; flex: none; }
.fa-acard > svg { width: 18px; height: 18px; color: var(--muted); flex: none; }
.fa-acard .dh-x b small { font-weight: 500; color: var(--muted); }
.fa-acard .dh-x em { font-style: normal; font-size: .8rem; font-weight: 600; color: var(--c); }
.fa-achead .fa-scx { padding-top: 11px; padding-bottom: 11px; }
.fa-achead .dh-li:first-child { border-top: 0; }
.fa-acbtns { display: flex; justify-content: flex-end; padding: 8px 14px 12px; border-top: 1px solid var(--line); }
.fa-spwr + .fa-spwr { border-top: 1px solid var(--line); }
.fa-spwr .fa-ride { margin: -4px 14px 10px 70px; }
.fa-ride { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); font: inherit; font-size: .78rem; color: var(--ink); cursor: pointer; }
span.fa-ride { cursor: default; }
.fa-ride svg { width: 14px; height: 14px; flex: none; color: var(--muted); }
.fa-ride span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fa-ride.miss { border-color: color-mix(in srgb, #F59E0B 55%, var(--line)); background: color-mix(in srgb, #F59E0B 10%, var(--surface)); }
.fa-rdrow { cursor: default; }
.fa-rdrow .dh-x { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.fa-tdpet { flex: none; margin-right: 4px; }
/* Téléphone : « Fiche de garde » passe sous la ligne au lieu de pousser la corbeille hors de l'écran */
@media (max-width:480px) { .fa-tdo:has(.fa-tdpet) { flex-wrap: wrap; } .fa-tdo:has(.fa-tdpet) .fa-take { flex: 1 1 calc(100% - 52px); } .fa-tdo .fa-tdpet { order: 3; margin: 0 0 10px 58px; } }

/* Loisirs : idées de sorties */
.fa-idrow { padding: 0 14px 0 0; cursor: default; }
.fa-idrow .btn { flex: none; }
.fa-iddone { margin-top: 10px; }
.fa-iddone summary { cursor: pointer; color: var(--muted); font-size: .88rem; padding: 4px; }
.fa-iddone .dh-card { margin-top: 6px; }
.fa-idstars { display: flex; justify-content: center; gap: 6px; }
.fa-idstar { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); font-size: 26px; color: #F5A524; cursor: pointer; }
.fa-idstar:hover, .fa-idstar:focus-visible { background: color-mix(in srgb, #F5A524 14%, var(--surface)); }
.fa-side > * + #spSpent > .dh-h:first-child { margin-top: 22px; }
.fa-spempty + .dh-card, .dh-card + .fa-acclub { margin-top: 10px; }
.fa-pthead .fa-ptinfo dl { margin-top: 4px; }
/* Échéances et Dépenses : bandeau sur toute la largeur, boutons ronds en dessous (comme les espaces) */
.dh-acts.fa-spacts.fa-vacts { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dh-acts.fa-spacts.fa-xacts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width:821px) and (min-height:501px),(min-width:1101px) { .dh-acts.fa-spacts.fa-vacts { max-width: 700px; } .dh-acts.fa-spacts.fa-xacts { max-width: 420px; } }
/* Ordinateur : boutons ronds centrés sous le bandeau ; Santé : la fiche d'une personne s'ouvre à côté de la liste */
@media (min-width:821px) and (min-height:501px),(min-width:1101px) {
  .fa-spacts, .dh-acts.fa-spacts.fa-vacts, .dh-acts.fa-spacts.fa-xacts { margin-left: auto; margin-right: auto; width: 100%; }
}
/* Santé sur ordinateur : fiches en petites cartes, la fiche ouverte en dessous sur toute la largeur */
.fa-htiles { display: grid; grid-template-columns: repeat(var(--cols, 6), minmax(0, 1fr)); gap: 12px; }
.fa-htile { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 16px 10px 14px; border-radius: 18px; border: 1px solid var(--dh-tile-line); background: var(--surface); box-shadow: var(--shadow); font: inherit; color: var(--ink); cursor: pointer; min-width: 0; text-align: center; }
.fa-htile .fa-av-lg { width: 52px; height: 52px; font-size: 1.15rem; margin: 0 0 4px; }
.fa-htile b { font-size: .98rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fa-htile small { color: var(--muted); font-size: .8rem; min-height: 1.1em; }
.fa-htile em { font-style: normal; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: 2px 8px; margin-top: 2px; }
.fa-htile .fa-hte { color: #B45309; background: color-mix(in srgb, #F59E0B 14%, var(--surface)); }
.fa-htile .fa-htn { color: var(--c); background: color-mix(in srgb, var(--c) 12%, var(--surface)); }
.fa-htile.on { border-color: var(--c); box-shadow: 0 0 0 2px color-mix(in srgb, var(--c) 35%, transparent); background: color-mix(in srgb, var(--c) 6%, var(--surface)); }
.fa-hsheet { margin: 14px 0 6px; padding: 16px; border-radius: 22px; background: color-mix(in srgb, var(--c) 5%, var(--bg, var(--surface))); border: 1px solid color-mix(in srgb, var(--c) 22%, var(--line)); scroll-margin-top: 16px; }
.fa-hsheeth { display: flex; align-items: center; gap: 12px; }
.fa-hsheeth .fa-av-md { width: 44px; height: 44px; margin: 0; flex: none; }
.fa-hsheeth .dh-x b { font-size: 1.15rem; }
.fa-hsheeth .dh-x span { color: var(--muted); font-size: .85rem; }
.fa-hpanx { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); background: var(--surface); color: var(--muted); display: grid; place-items: center; cursor: pointer; }
.fa-hpanx svg { width: 16px; height: 16px; }
.fa-hgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 22px; align-items: start; }
.fa-hcell { min-width: 0; }
/* Ordinateur et tablette : toutes les fenêtres ont la même largeur, un peu plus large (le guide et la relecture gardent la leur) */
@media (min-width:821px) and (min-height:501px),(min-width:1101px) {
  .modal, .modal:has(.cel), .modal:has(.fa-form), .modal:has(#listForm) { width: min(100%, 600px); }
}
/* Deux colonnes : les premiers titres de gauche et de droite sur la même ligne (l'écart est porté par le bloc) */
* + .fa-2col { margin-top: 22px; }
.fa-2col > div > .dh-h:first-child, .fa-2col > div > div:first-child > .dh-h:first-child { margin-top: 0; }
/* Carte d'urgence : les valeurs longues passent à la ligne ; sur téléphone, l'intitulé au-dessus de la valeur */
.fa-hcard .dh-kv > span { flex: none; max-width: 45%; }
.fa-hcard .dh-kv b { white-space: normal; text-align: right; min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) { .fa-hcard .dh-kv { flex-direction: column; align-items: flex-start; gap: 2px; } .fa-hcard .dh-kv > span { max-width: none; } .fa-hcard .dh-kv b { text-align: left; } }
@media (max-width:820px),(max-height:500px) and (max-width:1100px) { .fa-hrow .dh-x span { -webkit-line-clamp: 4; } }
/* Accueil (ordinateur) : la météo en petit dans l'en-tête de la journée */
.fa-hwx { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; font-size: .86rem; white-space: nowrap; cursor: pointer; }
span.fa-hwx { cursor: default; }
.fa-hwx svg { width: 17px; height: 17px; color: #E0A100; flex: none; }
.fa-hwx.fa-wx-umbrella svg, .fa-hwx.fa-wx-cloud svg { color: #2F6FD6; }
.fa-hwx.fa-wx-snow svg { color: #5B8DEF; }
.fa-hwx b { font-weight: 700; }
.fa-hwx i { font-style: normal; color: var(--muted); }
.fa-hwx span { color: var(--muted); }
/* Cartes sur ordinateur : ajouter (pointillés), image d'un animal, dossier de Documents */
.fa-htile.fa-htadd { border-style: dashed; box-shadow: none; color: var(--muted); }
.fa-htile.fa-htadd b { color: var(--ink); }
.fa-htile small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.fa-htile em { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fa-ptpic.tile { width: 52px; height: 52px; font-size: 28px; margin-bottom: 4px; }
.fa-htadd .fa-ptpic.tile { background: color-mix(in srgb, var(--c) 12%, var(--surface)); color: var(--c); }
.fa-htadd .fa-ptpic.tile svg { width: 22px; height: 22px; }
.fa-libtic { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: color-mix(in srgb, var(--fc, var(--c)) 14%, var(--surface)); color: var(--fc, var(--c)); margin-bottom: 4px; flex: none; }
.fa-libtic svg { width: 24px; height: 24px; }
.fa-hsheeth .fa-libtic { width: 44px; height: 44px; margin: 0; }
.fa-hsheeth .fa-ptpic { width: 44px; height: 44px; font-size: 24px; }
.fa-lib .fa-htile.on { border-color: var(--fc); box-shadow: 0 0 0 2px color-mix(in srgb, var(--fc) 35%, transparent); }
/* Accueil : la ville de la météo seulement sur un grand écran (l'en-tête tient sur une ligne) */
@media (max-width: 1599px) { .fa-hwx .fa-hwxc, .fa-hwx .fa-hwxc + span { display: none; } }
.fa-hacts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-left: auto; justify-content: flex-end; }
.fa-hgrid { margin-top: 14px; }
.fa-hcell > .dh-h:first-child { margin-top: 0; }
/* Dépenses sur ordinateur : ajout en une phrase centré, 3 cartes de même hauteur, catégories en cartes */
.fa-xqwrap { max-width: 760px; margin: 0 auto; }
.fa-x3 { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 22px; align-items: stretch; margin-top: 8px; }
.fa-x3c { display: flex; flex-direction: column; min-width: 0; }
.fa-x3c > .dh-card, .fa-x3c > .fa-spempty, .fa-x3c > .fa-xpsplit0 { flex: 1; }
.fa-x3c > .fa-spempty, .fa-x3c > .fa-xpsplit0 { align-items: center; }
.fa-x3c .dh-h { margin-top: 18px; }
.fa-xcats .fa-htile { padding: 14px 6px 12px; }
.fa-xcats .fa-htile.zero small { opacity: .6; }
.fa-xcats .fa-htile.on { border-color: var(--fc); box-shadow: 0 0 0 2px color-mix(in srgb, var(--fc) 35%, transparent); }
.fa-xchips { flex-wrap: wrap; margin-bottom: 10px; }
.fa-xsep { width: 1px; align-self: stretch; background: var(--line); margin: 0 4px; }
.fa-x3c .fa-xowe { flex-wrap: wrap; }
.fa-x3c .fa-xowe > .btn { flex: 1 1 100%; }
.fa-xqwrap .fa-xqa { width: 100%; }
.fa-xwide > .dh-h:first-child { margin-top: 6px; }
.fa-xwide .fa-x3 { margin-top: 10px; }
.fa-xwide > .fa-2col { margin-top: 30px; }
.fa-tmh .fa-av-sm { margin-left: 0; }
