/* Saisie rapide — bouton + et fiches. */
.qa-fab, .qa-desk, .qa-sheet {
  --qa-ink: #07102a; --qa-muted: #4f5f7c; --qa-blue: #0866ff; --qa-link: #0757de; --qa-glass: #ffffffeb; --qa-edge: #ffffffc4;
  --qa-hair: #07102a0b; --qa-line: #07102a14; --qa-soft: #0866ff17; --qa-page: #edf3fa; --qa-green: #0f7a4d; --qa-green-bg: #0f7a4d1a;
  --qa-violet: #6d4fd6; --qa-violet-bg: #8370c924; --qa-gold: #9a6d12; --qa-gold-bg: #c4932f26; --qa-ease: cubic-bezier(.22,1,.36,1);
  font-family: TodayJakarta, 'Plus Jakarta Sans', system-ui, sans-serif;
}
html[data-today-theme="dark"] :is(.qa-fab, .qa-desk, .qa-sheet) {
  --qa-ink: #eef4ff; --qa-muted: #a9bdd8; --qa-blue: #3d8bff; --qa-link: #6aa6ff; --qa-glass: #16344cf0; --qa-edge: #ffffff17;
  --qa-hair: #ffffff0d; --qa-line: #ffffff17; --qa-soft: #3d8bff24; --qa-page: #0b2436; --qa-green: #5fd3a3; --qa-green-bg: #5fd3a31f;
  --qa-violet: #b4a3f0; --qa-violet-bg: #b4a3f024; --qa-gold: #e0b45a; --qa-gold-bg: #e0b45a24;
}
:where(.qa-sheet) button { font: inherit; color: inherit; min-height: 0; padding: 0; border: 0; border-radius: 0; background: none; flex: none; gap: 0; box-shadow: none; cursor: pointer; }
:where(.qa-sheet) button:hover { background: none; }
:where(.qa-sheet) p { margin: 0; color: inherit; }
.qa-sheet .wellness-icon, .qa-fab .wellness-icon, .qa-desk .wellness-icon { width: 20px; height: 20px; }
.qa-sheet :focus-visible, .qa-fab:focus-visible, .qa-desk:focus-visible { outline: 3px solid #75a7ff; outline-offset: 2px; }

/* Bouton + (mobile) à droite de la barre d’onglets */
.qa-fab { display: none; }
.qa-desk { display: inline-flex !important; align-items: center; gap: 8px !important; min-height: 48px !important; padding: 0 18px 0 14px !important; margin: 0 4px 0 0; border: 0; border-radius: 999px !important; background: var(--qa-blue) !important; color: #fff !important; font-size: 14px; font-weight: 700; box-shadow: 0 12px 26px -12px #0866ffa6 !important; cursor: pointer; transition: transform .3s var(--qa-ease); flex: none !important; }
.qa-desk:active { transform: scale(.96); }
@media (max-width: 760px) {
  .qa-desk { display: none !important; }
  .qa-fab { position: fixed; z-index: 7; right: 12px; bottom: var(--tabbar-bottom, 18px); display: grid !important; place-items: center; width: 68px; height: 68px; min-height: 0 !important; padding: 0 !important; border: 0; border-radius: 50% !important; background: var(--qa-blue) !important; color: #fff !important; box-shadow: 0 16px 30px -12px #0866ffb3, inset 0 1px 0 #ffffff40 !important; cursor: pointer; transition: transform .35s var(--qa-ease), background .25s; flex: none !important; }
  .qa-fab .wellness-icon { width: 26px; height: 26px; transition: transform .35s var(--qa-ease); }
  .qa-fab.is-open { background: var(--qa-ink) !important; z-index: 1000; }
  .qa-fab.is-open .wellness-icon { transform: rotate(45deg); }
  .qa-fab:active { transform: scale(.94); }
  body[data-quick-add="on"] #nav { right: 88px !important; }
  body:is([data-live-session="true"], [data-view="onboarding"]) .qa-fab, body[data-auth="checking"] .qa-fab { display: none !important; }
  body[data-session-v2]:not([data-session-v2="hub"]):not([data-session-v2="session-calendar"]) .qa-fab { display: none !important; }
  body[data-quick-add="on"][data-view="nutrition"] .nx-fab { right: 88px; }
}
body:is([data-live-session="true"], [data-view="onboarding"]) .qa-desk, body[data-auth="checking"] .qa-desk { display: none !important; }

/* Fiche */
.qa-sheet { position: fixed; inset: auto 0 0 0; width: 100%; max-width: 480px; max-height: min(94dvh, 900px); margin: auto auto 0; padding: 0; border: 0; border-radius: 30px 30px 0 0; background: var(--qa-page); color: var(--qa-ink); box-shadow: 0 -20px 60px -20px #04101e66; overflow: auto; overscroll-behavior: contain; animation: qa-up .3s var(--qa-ease) both; }
.qa-sheet::backdrop { background: #04101e59; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.qa-inner { display: flex; flex-direction: column; gap: 14px; padding: 8px 16px calc(104px + env(safe-area-inset-bottom)); }
.qa-grab { display: block; width: 40px; height: 5px; margin: 2px auto 0; border-radius: 3px; background: var(--qa-line); }
.qa-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.qa-title { flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; min-width: 0; }
.qa-title strong { font-size: 18px; font-weight: 800; letter-spacing: -.3px; }
.qa-title span { font-size: 12.5px; color: var(--qa-muted); }
.qa-spacer { width: 44px; }
.qa-round { display: grid !important; place-items: center; width: 44px; height: 44px; border-radius: 50% !important; background: var(--qa-hair) !important; flex-shrink: 0; }
.qa-link { width: 100%; min-height: 36px; color: var(--qa-link) !important; font-weight: 750 !important; font-size: 14px; text-align: center; }
.qa-link[hidden] { display: none; }
.qa-k { margin: 4px 4px -4px !important; font-size: 11px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--qa-muted) !important; }
.qa-k.is-light { margin: 0 !important; color: #ffffffcc !important; }
.qa-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.qa-tile { display: flex !important; flex-direction: column; align-items: flex-start; gap: 6px !important; min-height: 128px; padding: 14px !important; border-radius: 24px !important; background: var(--qa-glass) !important; border: 1px solid var(--qa-edge) !important; text-align: left; box-shadow: 0 12px 26px -22px #14386e80 !important; transition: transform .3s var(--qa-ease); }
.qa-tile:active { transform: scale(.97); }
.qa-tile strong { margin-top: auto; font-size: 16px; font-weight: 800; }
.qa-tile > span:last-child { font-size: 12.5px; color: var(--qa-muted); line-height: 1.35; }
.qa-tile-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--qa-soft); color: var(--qa-link); }
.qa-tile.is-violet .qa-tile-ic { background: var(--qa-violet-bg); color: var(--qa-violet); }
.qa-tile.is-green .qa-tile-ic { background: var(--qa-green-bg); color: var(--qa-green); }
.qa-tile.is-gold .qa-tile-ic { background: var(--qa-gold-bg); color: var(--qa-gold); }
.qa-rows { display: flex; flex-direction: column; gap: 8px; }
.qa-row { display: flex !important; align-items: center; gap: 12px !important; width: 100%; min-height: 64px; padding: 10px 10px 10px 12px !important; border-radius: 20px !important; background: var(--qa-glass) !important; border: 1px solid var(--qa-edge) !important; text-align: left; }
.qa-row-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--qa-hair); color: var(--qa-muted); flex-shrink: 0; }
.qa-grow { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.qa-grow strong { font-size: 14.5px; font-weight: 750; }
.qa-grow span { font-size: 12.5px; color: var(--qa-muted); }
.qa-go { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--qa-soft); color: var(--qa-link); flex-shrink: 0; }
.qa-go .wellness-icon { width: 16px; height: 16px; }
.qa-big { display: flex; align-items: center; justify-content: center; gap: 14px; }
.qa-val { display: flex; align-items: baseline; gap: 4px; }
.qa-val b { font-size: 64px; font-weight: 800; letter-spacing: -3px; line-height: 1; font-variant-numeric: tabular-nums; }
.qa-val small { font-size: 18px; font-weight: 700; color: var(--qa-muted); }
.qa-step { display: grid !important; place-items: center; width: 56px; height: 56px; border-radius: 50% !important; background: var(--qa-glass) !important; border: 1px solid var(--qa-edge) !important; font-weight: 800 !important; font-size: 14px; }
.qa-hint { text-align: center; font-size: 12.5px; color: var(--qa-muted) !important; }
.qa-trend { color: var(--qa-blue); }
.qa-trend svg { display: block; width: 100%; height: 50px; fill: var(--qa-blue); }
.qa-trend-row { display: flex; justify-content: space-between; align-items: center; margin-top: 6px; font-size: 12.5px; color: var(--qa-muted); }
.qa-trend-row b { padding: 3px 9px; border-radius: 999px; background: var(--qa-green-bg); color: var(--qa-green); font-size: 12px; }
.qa-keys { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.qa-key { display: grid !important; place-items: center; min-height: 54px; border-radius: 16px !important; background: var(--qa-glass) !important; box-shadow: 0 1px 0 var(--qa-line) !important; font-size: 22px; font-weight: 700 !important; font-variant-numeric: tabular-nums; }
.qa-key:active { background: var(--qa-hair) !important; }
.qa-cta { display: flex !important; align-items: center; justify-content: center; gap: 8px !important; flex: 1; min-height: 56px; border-radius: 28px !important; background: var(--qa-blue) !important; color: #fff !important; font-size: 16px; font-weight: 750 !important; box-shadow: 0 14px 30px -14px #0866ffb3 !important; }
.qa-cta:disabled { opacity: .5; }
.qa-btn { min-height: 56px; padding: 0 22px !important; border-radius: 28px !important; background: var(--qa-glass) !important; font-weight: 700 !important; }
.qa-acts { display: flex; gap: 10px; }
.qa-zones { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 4px; scrollbar-width: none; }
.qa-zones::-webkit-scrollbar { display: none; }
.qa-zone { display: flex !important; flex-direction: column; align-items: center; gap: 6px !important; flex-shrink: 0; min-width: 78px; padding: 10px 8px !important; border-radius: 18px !important; background: var(--qa-glass) !important; font-size: 12px; font-weight: 700 !important; color: var(--qa-muted) !important; }
.qa-zone-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--qa-soft); color: var(--qa-link); }
.qa-zone.is-on { background: var(--qa-ink) !important; color: var(--qa-page) !important; }
.qa-zone.is-done:not(.is-on) { background: var(--qa-green-bg) !important; color: var(--qa-green) !important; }
.qa-done { display: flex; flex-direction: column; gap: 6px; }
.qa-done-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 18px; background: var(--qa-glass); }
.qa-ok { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--qa-green-bg); color: var(--qa-green); }
.qa-ok .wellness-icon { width: 15px; height: 15px; }
.qa-hero { display: flex; flex-direction: column; gap: 6px; padding: 18px; border-radius: 26px; background: linear-gradient(135deg, #0866ff, #3d7ff5); color: #fff; box-shadow: 0 18px 34px -16px #0866ffb3; }
.qa-hero strong { font-size: 26px; font-weight: 800; letter-spacing: -.6px; }
.qa-hero > span:not(.qa-k) { font-size: 13px; color: #ffffffd9; }
.qa-hero-go { display: flex !important; align-items: center; justify-content: center; gap: 8px !important; min-height: 52px; margin-top: 8px; border-radius: 26px !important; background: #fff !important; color: #0757de !important; font-weight: 800 !important; font-size: 15px; }
@keyframes qa-up { from { transform: translateY(40px); opacity: .4; } }
@media (min-width: 761px) {
  .qa-sheet { inset: 0; margin: auto; border-radius: 30px; max-height: min(90dvh, 860px); }
  .qa-inner { padding: 20px 22px 22px; }
  .qa-grab { display: none; }
}
@media (prefers-reduced-motion: reduce) { .qa-sheet, .qa-fab, .qa-fab .wellness-icon { animation: none !important; transition: none !important; } }
body[data-today-motion="none"] :is(.qa-sheet, .qa-fab, .qa-fab .wellness-icon) { animation: none !important; transition: none !important; }
