/* ════════════════════════════════════════════════════════════
   Noma · premium.css — couche visuelle premium (jour + nuit)
   Chargée APRÈS noma.css. Style Apple / Artlist : verre dépoli,
   ombres douces, polices Sora + Inter, ambiance, micro-interactions.
   Scopée sous :root[data-theme] pour primer sur les règles existantes.
   ════════════════════════════════════════════════════════════ */

:root{
  --font-display:'Sora',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --ac:#7B6FE8; --ac2:#9B92F5; --ac3:#5D4FD4; --ac-rgb:123,111,232;
  --radius:18px; --radius-sm:13px; --radius-lg:24px;
}
/* —— Thème clair —— */
:root, :root[data-theme="light"]{
  --txt:#1b1830; --txt2:#6b6890;
  --surface:rgba(255,255,255,.74);
  --tabs-bg:rgba(255,255,255,.7);
  --hair:rgba(28,22,64,.08);
  --shadow:0 18px 44px -22px rgba(60,45,130,.30), 0 4px 14px -8px rgba(60,45,130,.13);
  --shadow-hover:0 28px 62px -24px rgba(60,45,130,.42), 0 6px 18px -8px rgba(60,45,130,.18);
  --glass:saturate(175%) blur(18px);
  --grain-op:.022;
  --chart-grid:rgba(28,22,64,.07); --chart-axis:#9a96b5;
}
/* —— Thème sombre —— */
:root[data-theme="dark"]{
  --txt:#f0eeff; --txt2:#b8b4d8;
  --surface:rgba(22,21,44,.9);
  --tabs-bg:rgba(14,14,26,.66);
  --hair:rgba(255,255,255,.08);
  --shadow:0 26px 58px -24px rgba(0,0,0,.72), 0 4px 16px -8px rgba(0,0,0,.5);
  --shadow-hover:0 34px 74px -26px rgba(0,0,0,.82), 0 8px 22px -8px rgba(0,0,0,.6);
  --glass:saturate(125%) blur(14px);
  --grain-op:.035;
  --chart-grid:rgba(255,255,255,.08); --chart-axis:#8e8aa8;
}

/* —— Ambiance / fond (crossfade jour ↔ nuit) —— */
html{ scroll-behavior:smooth; background:#ece9f7 !important; }
:root[data-theme="dark"] html{ background:#09090f !important; }
/* calque clair (toujours présent, fixé au viewport) */
html::before{
  content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(1100px 620px at 86% -10%, rgba(var(--ac-rgb),.16), transparent 60%),
    radial-gradient(840px 520px at -6% 108%, rgba(155,146,245,.13), transparent 60%),
    linear-gradient(180deg,#f4f2fc 0%,#eae7f7 100%);
}
body{
  font-family:var(--font-body)!important;
  color:var(--txt);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  transition:color .55s ease;
}
/* body transparent dans LES DEUX thèmes (le fond vit sur html + body::before) */
:root[data-theme] body{background:transparent!important}
/* couche sombre superposée, révélée en fondu */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0;
  transition:opacity .6s ease;
  background:
    radial-gradient(1000px 600px at 85% -8%, rgba(var(--ac-rgb),.20), transparent 60%),
    radial-gradient(780px 500px at -2% 106%, rgba(70,80,190,.12), transparent 60%),
    #09090f;
}
:root[data-theme="dark"] body::before{opacity:1}
/* grain subtil (texture premium) */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  opacity:var(--grain-op);mix-blend-mode:overlay;transition:opacity .6s ease;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:rgba(var(--ac-rgb),.26)}

/* —— Basculement jour/nuit en fondu (classe ajoutée ~700ms par toggleTheme) —— */
html.theme-transition, html.theme-transition *{
  transition:background-color .55s ease, color .55s ease, border-color .55s ease,
             box-shadow .55s ease, fill .55s ease, stroke .55s ease, opacity .55s ease !important;
}

/* —— Typographie —— */
:root[data-theme] .app-title{
  font-family:var(--font-display)!important;font-weight:800!important;letter-spacing:-.025em!important;
  background:linear-gradient(135deg,#2a2350 0%,var(--ac) 95%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;
  filter:drop-shadow(0 2px 12px rgba(var(--ac-rgb),.22));
}
:root[data-theme="dark"] .app-title{
  background:linear-gradient(135deg,#ffffff 0%,#c4beff 95%)!important;
  -webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;
}
:root[data-theme] .f-sec-h,
:root[data-theme] .cm-section-title,
:root[data-theme] .sp-title,
:root[data-theme] .step-title{font-family:var(--font-display)!important;letter-spacing:.005em}
/* grands chiffres en display = look dashboard premium */
:root[data-theme] .fcard-val,
:root[data-theme] .pat-val,
:root[data-theme] .inv-amt,
:root[data-theme] .stat-n,
:root[data-theme] .client-stat-val,
:root[data-theme] .goal-bar-pct,
:root[data-theme] .inv-tline-big b{font-family:var(--font-display)!important;letter-spacing:-.01em}

/* —— Surfaces (verre + ombre douce + hairline) —— */
:root[data-theme] .gc,
:root[data-theme] .task-card,
:root[data-theme] .form-box,
:root[data-theme] .fcard,
:root[data-theme] .pat-card,
:root[data-theme] .sc,
:root[data-theme] .slist,
:root[data-theme] .flist,
:root[data-theme] .habits-card,
:root[data-theme] .wb-today-card,
:root[data-theme] .wb-chart-wrap,
:root[data-theme] .f-chart-wrap,
:root[data-theme] .timer-active-card,
:root[data-theme] .wk-detail,
:root[data-theme] .sp-card,
:root[data-theme] .rdv-panel,
:root[data-theme] .obj-card,
:root[data-theme] .client-card,
:root[data-theme] .f-form-box,
:root[data-theme] .inv-row,
:root[data-theme] .auth-card,
:root[data-theme] .srch-card{
  background:var(--surface)!important;
  border:1px solid var(--hair)!important;
  border-radius:var(--radius)!important;
  box-shadow:var(--shadow)!important;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s ease, border-color .22s ease, background-color .4s ease;
}
/* léger soulèvement au survol (cartes interactives) */
:root[data-theme] .task-card:hover,
:root[data-theme] .obj-card:hover,
:root[data-theme] .client-card:hover,
:root[data-theme] .inv-row:hover,
:root[data-theme] .fcard:hover{
  transform:translateY(-2px)!important;
  box-shadow:var(--shadow-hover)!important;
  border-color:rgba(var(--ac-rgb),.28)!important;
}

/* —— Barre d'onglets + sous-onglets —— */
:root[data-theme] .tabs,
:root[data-theme] .f-stabs{
  border-radius:22px!important;border:1px solid var(--hair)!important;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
  box-shadow:var(--shadow)!important;
}
/* barre d'onglets collée en haut, verre dépoli (façon Apple) */
:root[data-theme] .tabs{
  position:sticky;top:8px;z-index:50;
  background:var(--tabs-bg)!important;
  -webkit-backdrop-filter:saturate(180%) blur(22px);backdrop-filter:saturate(180%) blur(22px);
}
:root[data-theme] .tab,
:root[data-theme] .f-stab{transition:all .2s ease!important;border-radius:16px!important;font-weight:600}
:root[data-theme] .tab.active,
:root[data-theme] .f-stab.active{
  box-shadow:0 4px 14px -4px rgba(var(--ac-rgb),.4), inset 0 0 0 1px rgba(var(--ac-rgb),.18)!important;
}

/* —— Boutons primaires (dégradé violet, relief, survol) —— */
:root[data-theme] .bt-a,
:root[data-theme] .f-bt-a,
:root[data-theme] .cm-save,
:root[data-theme] .auth-btn,
:root[data-theme] .sib-ok,
:root[data-theme] .cs-save,
:root[data-theme] .ngm-save,
:root[data-theme] .alldone-btn{
  background:linear-gradient(180deg,var(--ac2),var(--ac))!important;
  color:#fff!important;border:none!important;
  box-shadow:0 12px 26px -12px rgba(var(--ac-rgb),.6), inset 0 1px 0 rgba(255,255,255,.28)!important;
  transition:transform .18s ease, filter .18s ease, box-shadow .18s ease!important;
}
:root[data-theme] .bt-a:hover,
:root[data-theme] .f-bt-a:hover,
:root[data-theme] .cm-save:hover,
:root[data-theme] .auth-btn:hover,
:root[data-theme] .sib-ok:hover,
:root[data-theme] .alldone-btn:hover{filter:brightness(1.07);transform:translateY(-1px)}

/* CTA secondaires (verre) */
:root[data-theme] .add-btn,
:root[data-theme] .f-add-btn,
:root[data-theme] .inv-additem{transition:all .2s ease!important}
:root[data-theme] .add-btn:hover,
:root[data-theme] .f-add-btn:hover{border-color:rgba(var(--ac-rgb),.5)!important;color:var(--ac)!important;transform:translateY(-1px)}

/* —— Champs : focus violet doux —— */
:root[data-theme] input:focus,
:root[data-theme] textarea:focus,
:root[data-theme] select:focus,
:root[data-theme] .finput:focus,
:root[data-theme] .f-inp:focus,
:root[data-theme] .cm-inp:focus,
:root[data-theme] .auth-inp:focus{
  border-color:rgba(var(--ac-rgb),.6)!important;
  box-shadow:0 0 0 3px rgba(var(--ac-rgb),.16)!important;outline:none!important;
}

/* —— Barre de progression —— */
:root[data-theme] .prog-fill{background:linear-gradient(90deg,var(--ac2),var(--ac))!important;box-shadow:0 0 12px -2px rgba(var(--ac-rgb),.6)}

/* —— Horloge / header verre —— */
:root[data-theme] .dual-clock{-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow)!important;border-radius:18px!important}

/* —— Scrollbar fine —— */
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{background:rgba(var(--ac-rgb),.35);border-radius:8px;border:2px solid transparent;background-clip:content-box}
*::-webkit-scrollbar-thumb:hover{background:rgba(var(--ac-rgb),.55);background-clip:content-box}
*::-webkit-scrollbar-track{background:transparent}

/* ════════════════════════════════════════════════════════════
   POLISH TRANSVERSAL — niveau « ingénieur Apple », partout
   ════════════════════════════════════════════════════════════ */

/* —— Boutons flottants du header : pastilles de verre uniformes —— */
:root[data-theme] .theme-toggle,
:root[data-theme] #focus-toggle,
:root[data-theme] #cloud-status,
:root[data-theme] #global-search-btn{
  background:var(--surface)!important;
  border:1px solid var(--hair)!important;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
  box-shadow:var(--shadow)!important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease, background-color .3s ease!important;
}
.theme-toggle:hover,#focus-toggle:hover,#cloud-status:hover,#global-search-btn:hover{transform:translateY(-1px) scale(1.05)}
.theme-toggle:active,#focus-toggle:active,#global-search-btn:active{transform:scale(.96)}
:root[data-theme] .hdr-quote-txt{font-style:italic;letter-spacing:.005em}

/* —— Boutons icônes : halo doux au survol —— */
.icon-btn{transition:background-color .18s ease, transform .15s ease, color .18s ease!important;border-radius:9px!important}
.icon-btn:hover{background:rgba(var(--ac-rgb),.12)!important;transform:translateY(-1px)}

/* —— Contrôles segmentés / pilules (forme + fluidité + état actif) —— */
.pg,.wb-ptab,.ct-btn,.tg-tab,.pv-btn,.dq-btn,.pipe-btab,.pmt-btn{
  border-radius:11px!important;
  transition:transform .16s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease!important;
  font-weight:600!important;
}
.pg:hover,.wb-ptab:hover,.ct-btn:hover,.tg-tab:hover,.pv-btn:hover,.dq-btn:hover,.pipe-btab:hover{transform:translateY(-1px)}
.pg.active,.wb-ptab.active,.ct-btn.active,.dq-btn.active,.tg-tab.active,.pv-btn.active,.pipe-btab.active{
  box-shadow:0 6px 16px -6px rgba(var(--ac-rgb),.45), inset 0 0 0 1px rgba(var(--ac-rgb),.18)!important;
}

/* —— Chips / tags / badges : pilules élégantes —— */
.s-ugc,.s-mg,.s-acc,.s-sun,.s-urgent,.s-normal,.s-basse,.s-visio,
.chip,.chip-client,.chip-visio,.client-tag,.wb-hbadge,.pipe-count{
  border-radius:8px!important;font-weight:600!important;letter-spacing:.005em;
  transition:transform .15s ease, box-shadow .15s ease!important;
}

/* —— Cartes secteur (Stats) & lignes : profondeur + survol —— */
:root[data-theme] .sc{border-radius:var(--radius)!important;border:1px solid var(--hair)!important;box-shadow:var(--shadow)!important;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);transition:transform .2s ease, box-shadow .2s ease!important}
:root[data-theme] .sc:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)!important}
.frow{transition:background-color .18s ease!important;border-radius:10px}
.frow:hover{background:rgba(var(--ac-rgb),.06)!important}

/* —— Timer « journée en cours » : surface premium —— */
:root[data-theme] .timer-active-card{
  border-radius:var(--radius)!important;border:1px solid var(--hair)!important;
  box-shadow:var(--shadow)!important;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
}

/* —— Pipeline : colonnes en verre, cartes élevées —— */
:root[data-theme] .pipe-col{
  background:var(--surface)!important;border:1px solid var(--hair)!important;border-radius:var(--radius)!important;
  box-shadow:var(--shadow)!important;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
}
:root[data-theme] .pipe-card{
  border-radius:var(--radius-sm)!important;border:1px solid var(--hair)!important;
  box-shadow:0 8px 22px -14px rgba(40,30,90,.4)!important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .2s ease!important;
}
:root[data-theme] .pipe-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)!important;border-color:rgba(var(--ac-rgb),.3)!important}
/* ── Kanban premium : lanes colorées par étape ── */
.pipe-col{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:12px 10px 10px;position:relative;overflow:hidden;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}
.pipe-col::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--stage-c,var(--ac));opacity:.9}
.pipe-col-hdr{font-size:10.5px}
.pipe-col-hdr .pipe-count{background:color-mix(in srgb,var(--stage-c,var(--ac)) 16%,transparent);color:var(--stage-c,var(--ac))}
.pipe-col-body{min-height:18px}
.pipe-card{position:relative;padding-left:16px!important}
.pipe-card::before{content:'';position:absolute;left:7px;top:11px;bottom:11px;width:3px;border-radius:3px;background:var(--stage-c,var(--ac));opacity:.85}
.pipe-card .pipe-card-note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pipe-add-card-btn,.pipe-add-stage-btn,.pipe-add-board{transition:all .18s ease!important;border-radius:12px!important}
.pipe-add-card-btn:hover,.pipe-add-stage-btn:hover{border-color:rgba(var(--ac-rgb),.5)!important;color:var(--ac)!important;transform:translateY(-1px)}

/* —— Boutons secondaires : verre fin —— */
.bt-c,.f-bt-c,.cm-del,.wb-back-btn{transition:all .18s ease!important;border-radius:12px!important}
.bt-c:hover,.f-bt-c:hover,.wb-back-btn:hover{background:rgba(var(--ac-rgb),.08)!important;border-color:rgba(var(--ac-rgb),.35)!important}

/* —— Champs : fond doux + arrondi cohérent —— */
.finput,.f-inp,.cm-inp,.auth-inp,.inp,input[type=text],input[type=number],input[type=date],input[type=time],input[type=email],select,textarea{
  border-radius:12px!important;
  transition:border-color .18s ease, box-shadow .18s ease, background-color .25s ease!important;
}

/* —— Bien-être : cartes & insights premium —— */
:root[data-theme] .wb-insight,
:root[data-theme] .wb-breath-card{
  border-radius:var(--radius)!important;border:1px solid var(--hair)!important;box-shadow:var(--shadow)!important;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
}

/* —— États vides : élégance —— */
.empty{opacity:.9}
.empty i{filter:drop-shadow(0 4px 12px rgba(var(--ac-rgb),.25))}

/* —— Liens de note —— */
:root[data-theme] a{transition:color .15s ease}

/* —— Correctifs mode nuit pour les nouveaux modules (factures, recherche, auth) —— */
:root[data-theme="dark"] .inv-num,
:root[data-theme="dark"] .inv-amt,
:root[data-theme="dark"] .inv-it-tot,
:root[data-theme="dark"] .inv-ed-title,
:root[data-theme="dark"] .inv-tline b,
:root[data-theme="dark"] .inv-tline-big,
:root[data-theme="dark"] .inv-tline-big b,
:root[data-theme="dark"] .srch-it-lbl,
:root[data-theme="dark"] .srch-inp-row input,
:root[data-theme="dark"] .auth-title,
:root[data-theme="dark"] .auth-plan-name{color:var(--txt)!important}
:root[data-theme="dark"] .inv-tline{color:var(--txt2)}
:root[data-theme="dark"] .f-add-btn,
:root[data-theme="dark"] .inv-chip,
:root[data-theme="dark"] .inv-srch,
:root[data-theme="dark"] .inv-year{background:rgba(255,255,255,.05)!important;color:var(--txt2)!important;border-color:var(--hair)!important}
:root[data-theme="dark"] .inv-chip.active{background:var(--ac)!important;color:#fff!important;border-color:var(--ac)!important}
:root[data-theme="dark"] .auth-plan{background:rgba(var(--ac-rgb),.10)!important;border-color:rgba(var(--ac-rgb),.3)!important}

/* —— Transition fluide entre les vues / colonnes —— */
@keyframes nomaReveal{from{opacity:0;transform:translateY(10px) scale(.994);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
/* sous-onglets Finance : fondu + flou */
#fv-o,#fv-m,#fv-i,#fv-d,#fv-p,#fv-g{animation:nomaReveal .38s cubic-bezier(.22,.68,.28,1)}

/* Onglets principaux : glissement horizontal directionnel (--enter-x posé par gv()) */
@keyframes nomaSlideIn{from{opacity:0;transform:translateX(var(--enter-x,42px))}to{opacity:1;transform:translateX(0)}}
.view-enter{animation:nomaSlideIn .44s cubic-bezier(.22,.68,.28,1)}

/* Cascade des cartes (stagger) à l'ouverture d'une vue */
@keyframes nomaCardIn{from{opacity:0;transform:translateY(16px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card){animation:nomaCardIn .5s both cubic-bezier(.22,.68,.28,1)}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(1){animation-delay:0s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(2){animation-delay:.045s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(3){animation-delay:.09s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(4){animation-delay:.135s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(5){animation-delay:.18s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(6){animation-delay:.225s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(7){animation-delay:.27s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(8){animation-delay:.315s}
.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card):nth-child(n+9){animation-delay:.36s}
@media (prefers-reduced-motion:reduce){
  .view-enter,.view-enter :is(.task-card,.obj-card,.client-card,.fcard,.inv-row,.pat-card),
  #fv-o,#fv-m,#fv-i,#fv-d,#fv-p,#fv-g{animation:none!important}
}

/* —— Glass supplémentaire : modales, fonds floutés, bouton Noma AI —— */
:root[data-theme] .tpl-modal-card,
:root[data-theme] .client-modal-card,
:root[data-theme] .pipe-move-card,
:root[data-theme] .obj-type-card,
:root[data-theme] .merge-card,
:root[data-theme] .stage-inp-card,
:root[data-theme] .clock-settings-card,
:root[data-theme] .alldone-card,
:root[data-theme] .wm-box{
  border-radius:var(--radius-lg)!important;
  box-shadow:0 32px 84px -28px rgba(25,18,60,.5)!important;
  -webkit-backdrop-filter:saturate(160%) blur(20px);backdrop-filter:saturate(160%) blur(20px);
}
:root[data-theme] .tpl-modal-bg,
:root[data-theme] .client-modal-bg,
:root[data-theme] .pipe-move-bg,
:root[data-theme] .obj-type-bg,
:root[data-theme] .merge-bg,
:root[data-theme] .stage-inp-bg,
:root[data-theme] .clock-settings-bg,
:root[data-theme] .srch-bg,
:root[data-theme] .auth-bg{
  -webkit-backdrop-filter:blur(7px) saturate(120%);backdrop-filter:blur(7px) saturate(120%);
}
:root[data-theme] #nomaai-btn{
  -webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  box-shadow:0 16px 40px -14px rgba(60,40,160,.5), inset 0 1px 0 rgba(255,255,255,.12)!important;
  transition:transform .2s ease, box-shadow .2s ease!important;
}
:root[data-theme] #nomaai-btn:hover{transform:translateY(-2px)}

/* transitions douces sur les éléments interactifs (fluidité générale) */
:root[data-theme] .tab,
:root[data-theme] .f-stab,
:root[data-theme] .pg,:root[data-theme] .dq-btn,
:root[data-theme] .icon-btn,
:root[data-theme] button{transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .15s ease}

/* ════════════════════════════════════════════════════════════
   FINITIONS « ingénieur Apple » — chiffres, feedback, anims, splash
   ════════════════════════════════════════════════════════════ */

/* —— Chiffres tabulaires (alignés, ne sautent pas) —— */
.fcard-val,.pat-val,.inv-amt,.stat-n,.sc-val,.client-stat-val,.goal-bar-pct,
.inv-tline b,.inv-tline-big,.inv-tline-big b,.inv-it-tot,.clock-time,.frow-amt,
.f-total-bar,.cm-name,.pat-prog-lbl,.goal-meta{font-variant-numeric:tabular-nums}

/* —— Feedback au press (tous les boutons) —— */
button:active{transform:scale(.97)}
.bt-a:active,.f-bt-a:active,.cm-save:active,.auth-btn:active,.add-btn:active,
.f-add-btn:active,.inv-new:active,.pg:active,.tab:active,.f-stab:active{transform:scale(.97)}

/* —— Complétion de tâche : check qui apparaît + titre barré en douceur —— */
.cb .ti{display:inline-flex}
.cb.on .ti{animation:checkIn .34s cubic-bezier(.2,.85,.3,1.5)}
@keyframes checkIn{0%{opacity:0;transform:scale(.2) rotate(-12deg)}60%{transform:scale(1.18) rotate(4deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
.cb{transition:background-color .25s ease,border-color .25s ease,transform .15s ease}
.task-card.done{opacity:.72}
.task-card.done .task-name{text-decoration-thickness:1.5px}

/* —— Compteur animé (count-up) : léger fondu pendant l'incrément —— */
.counting{will-change:contents}

/* —— Skeletons shimmer —— */
.skeleton{position:relative;overflow:hidden;background:rgba(140,130,200,.12);border-radius:12px}
.skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(160,150,220,.28),transparent);animation:shimmer 1.25s infinite}
@keyframes shimmer{100%{transform:translateX(100%)}}

/* —— Écran de marque / splash de chargement —— */
#noma-splash{position:fixed;inset:0;z-index:35000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
  background:radial-gradient(900px 600px at 50% 35%,rgba(var(--ac-rgb),.18),transparent 60%),#0c0a1f;
  transition:opacity .55s ease, visibility .55s ease}
#noma-splash.hide{opacity:0;visibility:hidden;pointer-events:none}
.splash-logo{width:96px;height:96px;border-radius:26px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--ac2),var(--ac) 52%,var(--ac3));
  box-shadow:0 24px 60px -18px rgba(var(--ac-rgb),.7), inset 0 1px 0 rgba(255,255,255,.35);
  animation:splashPulse 2.2s ease-in-out infinite}
.splash-logo svg{width:58px;height:58px;filter:drop-shadow(0 3px 6px rgba(20,15,60,.4))}
@keyframes splashPulse{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.03)}}
.splash-bar{width:140px;height:4px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.splash-bar::after{content:"";display:block;width:40%;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--ac2),var(--ac));animation:splashSlide 1.1s ease-in-out infinite}
@keyframes splashSlide{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}

/* —— Toasts premium (verre + barre d'auto-dismiss + empilage) —— */
:root[data-theme] .f-toast{
  -webkit-backdrop-filter:saturate(170%) blur(20px);backdrop-filter:saturate(170%) blur(20px);
  border:1px solid var(--hair)!important;box-shadow:0 20px 50px -18px rgba(25,18,60,.5)!important;
  border-radius:16px!important;position:relative;overflow:hidden;
}
:root[data-theme="dark"] .f-toast{background:rgba(26,24,50,.86)!important;color:var(--txt)!important}
.f-toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left;
  background:linear-gradient(90deg,var(--ac2),var(--ac));animation:toastBar linear forwards}
@keyframes toastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.f-toast.out{opacity:0;transform:translateX(20px)!important;transition:opacity .3s ease, transform .3s ease}
.f-toast-close .ti{font-size:14px}

@keyframes spin{to{transform:rotate(360deg)}}

/* —— Accessibilité : focus clavier net (pas à la souris) —— */
:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:8px}
button:focus:not(:focus-visible){outline:none}

/* —— Vue Aujourd'hui : briefing, saisie rapide, filtres —— */
.t-brief{display:flex;align-items:center;gap:9px;padding:11px 16px;margin-bottom:12px;border-radius:14px;font-size:13.5px;color:var(--txt);
  background:linear-gradient(120deg,rgba(var(--ac-rgb),.13),rgba(155,146,245,.05));border:1px solid var(--hair);
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}
.t-brief .ti{color:var(--ac);font-size:16px;flex-shrink:0}
.t-brief b{font-weight:800;font-family:var(--font-display)}
#qa-wrap{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 14px;margin-bottom:12px;border-radius:16px;
  background:var(--surface);border:1px solid var(--hair);box-shadow:var(--shadow);
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);transition:border-color .2s,box-shadow .2s}
#qa-wrap:focus-within{border-color:rgba(var(--ac-rgb),.5);box-shadow:0 0 0 3px rgba(var(--ac-rgb),.14)}
.qa-ic{color:var(--ac);font-size:17px;flex-shrink:0}
#qa-input{flex:1;border:none;background:transparent;outline:none;font-size:14px;font-family:inherit;color:var(--txt);min-width:0}
#qa-input::placeholder{color:var(--txt2);opacity:.85}
.qa-go{flex-shrink:0;width:34px;height:34px;border:none;border-radius:11px;background:linear-gradient(180deg,var(--ac2),var(--ac));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -6px rgba(var(--ac-rgb),.6);transition:transform .15s,filter .15s}
.qa-go:hover{filter:brightness(1.07);transform:translateY(-1px)}
.t-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.t-fchip{padding:5px 12px;border-radius:18px;border:1px solid var(--hair);background:var(--surface);font-size:12px;font-weight:600;color:var(--txt2);cursor:pointer;font-family:inherit;transition:all .18s;display:inline-flex;align-items:center;gap:4px}
.t-fchip:hover{border-color:rgba(var(--ac-rgb),.4);color:var(--ac)}
.t-fchip.active{background:var(--ac);border-color:var(--ac);color:#fff}
.t-fhide.active{background:#6e6e80;border-color:#6e6e80}
.chip.ch-est{background:rgba(var(--ac-rgb),.12)!important;color:var(--ac)!important}
.chip.ch-timer{background:rgba(var(--ac-rgb),.12)!important;color:var(--ac)!important;font-variant-numeric:tabular-nums}
/* planning du jour (time-blocking) */
.t-vseg{display:inline-flex;margin-left:auto;background:rgba(var(--ac-rgb),.08);border-radius:11px;padding:3px;gap:2px}
.t-vseg button{width:32px;height:26px;border:none;border-radius:8px;background:transparent;color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;transition:all .15s}
.t-vseg button.active{background:var(--surface);color:var(--ac);box-shadow:0 2px 8px -3px rgba(var(--ac-rgb),.4)}
.plan-group{display:flex;align-items:center;gap:7px;font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.6px;margin:18px 0 8px;padding-left:2px}
.plan-group:first-child{margin-top:2px}
.plan-group .ti{color:var(--ac);font-size:15px}
.plan-now{display:flex;align-items:center;gap:8px;margin:8px 0}
.plan-now::before{content:'';width:8px;height:8px;border-radius:50%;background:#FF3B30;box-shadow:0 0 0 4px rgba(255,59,48,.15);flex-shrink:0}
.plan-now-lbl{font-size:11px;font-weight:800;color:#FF3B30;font-variant-numeric:tabular-nums;font-family:var(--font-display)}
.plan-now-line{flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,#FF3B30,rgba(255,59,48,.08))}
.plan-rdv{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:8px;border-radius:14px;border:1px solid rgba(var(--ac-rgb),.22);background:linear-gradient(120deg,rgba(var(--ac-rgb),.09),rgba(155,146,245,.03));-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}
.plan-rdv-time{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--ac);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:46px}
.plan-rdv-body{flex:1;min-width:0}
.plan-rdv-title{font-size:13.5px;font-weight:600;color:var(--txt);display:flex;align-items:center;gap:5px}
.plan-rdv-title .ti{color:var(--ac);font-size:14px}
.plan-rdv-sub{font-size:11.5px;color:var(--txt2);margin-top:1px}
.plan-rdv-join{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:10px;background:linear-gradient(180deg,var(--ac2),var(--ac));color:#fff;font-size:12px;font-weight:600;text-decoration:none;box-shadow:0 6px 14px -6px rgba(var(--ac-rgb),.55);transition:filter .15s}
.plan-rdv-join:hover{filter:brightness(1.08)}
/* briefing : actions */
.t-brief-txt{flex:1;min-width:0}
.t-brief-actions{display:flex;gap:6px;flex-shrink:0}
.t-brief-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:18px;border:1px solid rgba(var(--ac-rgb),.28);background:var(--surface);color:var(--ac);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;white-space:nowrap}
.t-brief-btn:hover{background:var(--ac);color:#fff;border-color:var(--ac);transform:translateY(-1px)}
.t-brief-btn .ti{font-size:14px}
/* briefing : carte enrichie */
.t-brief-rich{flex-direction:column;align-items:stretch;gap:9px}
.t-brief-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.t-brief-hello{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--txt)}
.t-brief-hello span{font-weight:500;color:var(--txt2);font-size:12.5px;text-transform:capitalize}
.t-brief-line{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--txt)}
.t-brief-line .ti{color:var(--ac);font-size:16px;flex-shrink:0}
.t-brief-alerts{display:flex;flex-wrap:wrap;gap:6px}
.t-brief-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:16px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;color:var(--c);transition:all .15s;
  border:1px solid color-mix(in srgb,var(--c) 36%,transparent);background:color-mix(in srgb,var(--c) 13%,transparent)}
.t-brief-chip:hover{filter:brightness(.96);transform:translateY(-1px)}
.t-brief-chip .ti{font-size:13px;color:inherit}
.t-brief-focus{font-size:12.5px;color:var(--txt2);display:flex;align-items:center;gap:6px}
.t-brief-focus .ti{color:var(--ac);font-size:15px;flex-shrink:0}
.t-brief-focus b{color:var(--txt);font-weight:700}
/* bilan du jour */
.recap-big{display:flex;gap:10px;margin-top:6px}
.recap-stat{flex:1;text-align:center;padding:14px 8px;border-radius:14px;background:rgba(var(--ac-rgb),.06);border:1px solid var(--hair)}
.recap-val{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--ac);font-variant-numeric:tabular-nums;line-height:1}
.recap-lbl{font-size:10.5px;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px;margin-top:5px;font-weight:600}
.recap-bar{height:7px;border-radius:4px;background:rgba(var(--ac-rgb),.12);overflow:hidden;margin-top:14px}
.recap-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ac2),var(--ac));transition:width .6s ease}
.recap-row{display:flex;align-items:center;gap:8px;padding:7px 2px;font-size:13px;color:var(--txt);border-bottom:1px solid var(--hair)}
.recap-row:last-child{border-bottom:none}
.recap-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
/* swipe mobile */
.task-card.swipe-right{box-shadow:inset 6px 0 0 #34C759 !important}
.task-card.swipe-left{box-shadow:inset -6px 0 0 #FF9500 !important}
.chip.ch-timer.live{background:rgba(52,199,89,.14)!important;color:#1f9d4d!important}
.chip.ch-timer.live::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#34C759;margin-right:5px;vertical-align:1px;animation:blink 1.4s infinite}
.task-timer-btn.running{background:rgba(52,199,89,.15)!important}
.task-timer-btn.running .ti{color:#34C759!important}
/* sous-tâches / checklist */
.sub-prog{height:3px;border-radius:2px;background:rgba(var(--ac-rgb),.15);margin:9px 0 2px;overflow:hidden}
.sub-prog-fill{height:100%;background:linear-gradient(90deg,var(--ac2),var(--ac));border-radius:2px;transition:width .4s ease}
.sub-toggle{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:3px 9px;border:none;background:transparent;color:var(--txt2);font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit;border-radius:8px;transition:all .15s}
.sub-toggle:hover{color:var(--ac);background:rgba(var(--ac-rgb),.08)}
.sub-toggle .ti{font-size:13px}
.subs-list{margin-top:6px;display:flex;flex-direction:column;gap:3px}
.sub-row{display:flex;align-items:center;gap:8px;padding:3px 2px}
.sub-cb{width:18px;height:18px;flex-shrink:0;border-radius:6px;border:1.5px solid rgba(var(--ac-rgb),.45);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s;padding:0}
.sub-cb .ti{font-size:12px;color:#fff;opacity:0;transform:scale(.4);transition:.18s}
.sub-cb.on{background:var(--ac);border-color:var(--ac)}
.sub-cb.on .ti{opacity:1;transform:scale(1)}
.sub-txt{flex:1;font-size:13px;color:var(--txt);line-height:1.35}
.sub-row.done .sub-txt{text-decoration:line-through;color:var(--txt2)}
.sub-del{background:none;border:none;cursor:pointer;color:#c7c7cc;padding:2px;border-radius:6px;display:flex;opacity:.55;transition:.15s}
.sub-del:hover{opacity:1;color:#FF3B30}
.sub-add{display:flex;align-items:center;gap:6px;margin-top:5px}
.sub-add input{flex:1;border:1px solid var(--hair);border-radius:9px;padding:6px 10px;font-size:12.5px;font-family:inherit;background:rgba(255,255,255,.55);color:var(--txt);outline:none}
:root[data-theme="dark"] .sub-add input{background:rgba(255,255,255,.05)}
.sub-add input:focus{border-color:rgba(var(--ac-rgb),.5)}
.sub-add button{flex-shrink:0;width:28px;height:28px;border:none;border-radius:8px;background:rgba(var(--ac-rgb),.12);color:var(--ac);cursor:pointer;display:flex;align-items:center;justify-content:center}

/* —— Chrono : mode focus plein écran + anneau —— */
#focus-fs{position:fixed;inset:0;z-index:38500;display:none;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(1100px 760px at 50% 40%,rgba(var(--ac-rgb),.26),transparent 60%),linear-gradient(160deg,#1b1640,#0c0a22);
  opacity:0;transition:opacity .5s ease}
#focus-fs.open{display:flex;opacity:1}
.ffs-aura{position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(var(--ac-rgb),.35),transparent 62%);filter:blur(42px);animation:bfsBreathe 6s ease-in-out infinite;pointer-events:none;z-index:-1}
#focus-fs.paused .ffs-aura{animation-play-state:paused;opacity:.45}
.ffs-exit{position:absolute;top:calc(20px + env(safe-area-inset-top));left:20px;display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:22px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:all .2s}
.ffs-exit:hover{background:rgba(255,255,255,.16)}
.ffs-task{font-family:var(--font-display);font-size:clamp(22px,3.4vw,30px);font-weight:800;color:#fff;text-align:center;max-width:80vw;letter-spacing:-.3px;margin-bottom:8px}
.ffs-meta{display:flex;gap:6px;margin-bottom:28px;opacity:.92}
.ffs-ring-wrap{position:relative;width:280px;height:280px;max-width:74vw;max-height:42vh;display:flex;align-items:center;justify-content:center}
.ffs-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}
.ffs-ring-bg{fill:none;stroke:rgba(255,255,255,.10);stroke-width:10}
.ffs-ring-fill{fill:none;stroke-width:10;stroke-linecap:round;stroke-dasharray:628;stroke-dashoffset:628;transition:stroke-dashoffset 1s linear;filter:drop-shadow(0 0 10px rgba(var(--ac-rgb),.6))}
.ffs-ring-fill.done{stroke:#34C759!important;filter:drop-shadow(0 0 12px rgba(52,199,89,.6))}
.ffs-center{position:absolute;display:flex;flex-direction:column;align-items:center}
.ffs-time{font-family:var(--font-display);font-size:clamp(38px,7vw,56px);font-weight:300;color:#fff;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-1px}
.ffs-target{font-size:14px;color:rgba(255,255,255,.5);margin-top:6px;font-variant-numeric:tabular-nums}
.ffs-controls{display:flex;align-items:center;gap:14px;margin-top:40px}
.ffs-pause{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:all .2s}
.ffs-pause:hover{background:rgba(255,255,255,.18);transform:scale(1.05)}
.ffs-finish{display:inline-flex;align-items:center;gap:7px;padding:15px 26px;border-radius:26px;border:none;background:linear-gradient(180deg,#34C759,#28a745);color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 12px 28px -10px rgba(52,199,89,.6);transition:all .18s}
.ffs-finish:hover{filter:brightness(1.06);transform:translateY(-1px)}
.ffs-phase{font-size:14px;font-weight:700;color:#c4beff;letter-spacing:.5px;margin-bottom:14px;min-height:18px}
.ffs-ring-fill.break{stroke:#34C759!important;filter:drop-shadow(0 0 12px rgba(52,199,89,.6))}
.ffs-pomo{display:flex;align-items:center;gap:10px;margin-top:22px}
.ffs-pomo-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .18s}
.ffs-pomo-toggle:hover{background:rgba(255,255,255,.12)}
.ffs-pomo-toggle.active{background:linear-gradient(180deg,var(--ac2),var(--ac));color:#fff;border-color:transparent;box-shadow:0 8px 20px -8px rgba(var(--ac-rgb),.6)}
.ffs-pomo-count{font-size:13px;font-weight:700;color:#c4beff;font-variant-numeric:tabular-nums}
/* extras Chrono : objectif, stats, historique */
.chrono-extras{margin-top:18px}
.cx-goal{padding:16px;border-radius:var(--radius);border:1px solid var(--hair);background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow);margin-bottom:12px}
.cx-goal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;gap:8px}
.cx-goal-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--txt2)}
.cx-goal-edit{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--ac);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.cx-goal-edit .ti{font-size:13px}
.cx-goal-val{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--txt);font-variant-numeric:tabular-nums;margin-bottom:8px}
.cx-goal-track{height:7px;border-radius:4px;background:rgba(var(--ac-rgb),.12);overflow:hidden}
.cx-goal-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ac2),var(--ac));transition:width .6s ease}
.cx-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.cx-stat{text-align:center;padding:12px 6px;border-radius:14px;background:rgba(var(--ac-rgb),.06);border:1px solid var(--hair)}
.cx-stat-v{font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--ac);font-variant-numeric:tabular-nums}
.cx-stat-l{font-size:9.5px;color:var(--txt2);text-transform:uppercase;letter-spacing:.3px;margin-top:3px;font-weight:600}
.cx-h-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--txt2);margin:6px 0 8px}
.cx-h-row{display:flex;align-items:center;gap:9px;padding:8px 4px;border-bottom:1px solid var(--hair);font-size:13px}
.cx-h-row:last-child{border-bottom:none}
.cx-h-time{font-weight:700;color:var(--ac);font-variant-numeric:tabular-nums;min-width:30px;font-size:12px}
.cx-h-name{flex:1;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-h-min{font-variant-numeric:tabular-nums;color:var(--txt2)}
@media(max-width:560px){.cx-stats{grid-template-columns:1fr 1fr}}
/* Chrono : démarrage rapide, filtre, temps manuel, note focus */
.chrono-quick{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.cq-urgent{flex:1;min-width:max-content;display:inline-flex;align-items:center;gap:7px;padding:11px 16px;border-radius:14px;border:none;background:linear-gradient(180deg,var(--ac2),var(--ac));color:#fff;font-size:13.5px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 10px 22px -10px rgba(var(--ac-rgb),.55);transition:all .18s}
.cq-urgent:hover{filter:brightness(1.06);transform:translateY(-1px)}
.cq-urgent .ti{font-size:16px}
.cq-search{display:flex;align-items:center;gap:7px;padding:0 12px;border-radius:14px;border:1px solid var(--hair);background:var(--surface);color:var(--txt2)}
.cq-search input{border:none;background:transparent;outline:none;font-size:13px;font-family:inherit;color:var(--txt);padding:10px 0;width:130px}
.tpk-manual{width:36px;height:36px;flex-shrink:0;border:1px solid var(--hair);border-radius:11px;background:transparent;color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-right:6px}
.tpk-manual:hover{border-color:rgba(var(--ac-rgb),.4);color:var(--ac)}
.ffs-note{display:flex;align-items:center;gap:8px;margin-top:20px;padding:0 14px;border-radius:14px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);width:min(420px,80vw)}
.ffs-note .ti{color:rgba(255,255,255,.5);font-size:15px;flex-shrink:0}
.ffs-note input{flex:1;border:none;background:transparent;outline:none;color:#fff;font-size:13.5px;font-family:inherit;padding:11px 0}
.ffs-note input::placeholder{color:rgba(255,255,255,.4)}

/* —— Bien-être : espace détente —— */
.relax-wrap{max-width:520px;margin:22px auto 0}
.relax-title{font-family:var(--font-display);font-size:15px;font-weight:800;color:var(--txt);display:flex;align-items:center;gap:7px;justify-content:center;margin-bottom:12px}
.relax-title .ti{color:var(--ac)}
.relax-express{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border:none;border-radius:16px;background:linear-gradient(135deg,var(--ac2),var(--ac) 60%,var(--ac3));color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 14px 30px -12px rgba(var(--ac-rgb),.6);transition:all .2s;margin-bottom:12px}
.relax-express:hover{filter:brightness(1.06);transform:translateY(-1px)}
.relax-express .ti{font-size:18px}
.relax-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.relax-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:16px;border-radius:16px;border:1px solid var(--hair);background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow);cursor:pointer;font-family:inherit;transition:all .2s}
.relax-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:rgba(var(--ac-rgb),.3)}
.relax-card>.ti{font-size:24px;color:var(--ac);margin-bottom:8px}
.relax-card-t{font-size:14px;font-weight:700;color:var(--txt)}
.relax-card-s{font-size:11.5px;color:var(--txt2);margin-top:2px}
.relax-panel{margin-top:10px}
.relax-panel:empty{display:none}
.relax-panel.open{padding:14px;border-radius:16px;border:1px solid var(--hair);background:var(--surface);-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow)}
.amb-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.amb-btn{display:flex;align-items:center;gap:7px;padding:11px 12px;border-radius:12px;border:1px solid var(--hair);background:rgba(var(--ac-rgb),.04);color:var(--txt);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.amb-btn:hover{border-color:rgba(var(--ac-rgb),.4)}
.amb-btn.active{background:var(--ac);color:#fff;border-color:var(--ac)}
.amb-emo{font-size:15px}
.amb-ctrl{display:flex;align-items:center;gap:10px;margin-top:12px}
.amb-stop{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:11px;border:none;background:rgba(255,59,48,.1);color:#FF3B30;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.amb-vol{flex:1;accent-color:var(--ac)}
.amb-hint{text-align:center;font-size:12px;color:var(--txt2);margin-top:10px}
.grat-title{font-size:13.5px;font-weight:700;color:var(--txt);margin-bottom:10px}
.grat-row{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.grat-n{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:rgba(var(--ac-rgb),.12);color:var(--ac);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.grat-inp{flex:1;border:1px solid var(--hair);border-radius:10px;padding:8px 11px;font-size:13px;font-family:inherit;background:rgba(255,255,255,.5);color:var(--txt);outline:none}
:root[data-theme="dark"] .grat-inp{background:rgba(255,255,255,.05)}
.grat-inp:focus{border-color:rgba(var(--ac-rgb),.5)}
.grat-hint{text-align:center;font-size:11.5px;color:var(--txt2);margin-top:6px}
.grat-hist-title{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 10px;padding-top:14px;border-top:1px solid var(--hair)}
.grat-hist-day{margin-bottom:12px}
.grat-hist-date{font-size:12.5px;font-weight:700;color:var(--ac);margin-bottom:5px;text-transform:capitalize}
.grat-hist-item{display:flex;gap:7px;align-items:flex-start;font-size:13px;color:var(--txt);line-height:1.45;padding:3px 0}
.grat-hist-item span{flex-shrink:0}
/* Multi-clients : chips dans le formulaire d'ajout */
.ci-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.ci-chips:empty{display:none;margin:0}
.ci-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 11px;border-radius:15px;font-size:12.5px;font-weight:700;line-height:1}
.ci-chip button{border:none;background:rgba(0,0,0,.1);color:inherit;width:18px;height:18px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;padding:0;transition:background .15s}
.ci-chip button:hover{background:rgba(0,0,0,.22)}
:root[data-theme="dark"] .ci-chip button{background:rgba(255,255,255,.16)}
:root[data-theme="dark"] .ci-chip button:hover{background:rgba(255,255,255,.3)}
/* Facture : ligne de détails par prestation (pleine largeur sous la ligne) */
.inv-it-desc{grid-column:1 / -1;margin-top:-1px;font-size:12px}
.inv-it-desc::placeholder{color:#b9b9c4;font-style:italic}
.ip-it-desc{font-size:11px;color:#666;margin-top:3px;line-height:1.4}
/* Facture : logo + blocs paiement / échéance à l'impression */
.ip-logo{max-height:74px;max-width:210px;margin-bottom:12px;display:block;object-fit:contain}
.ip-pay-block{margin-top:22px;font-size:11.5px;color:#1d1d1f;line-height:1.65}
.ip-pay-h{font-size:12.5px;font-weight:800;margin-bottom:5px;color:#1d1d1f}
.ip-pay-body{color:#333}
.ip-terms{margin-top:16px;font-size:11.5px;color:#444;line-height:1.55}
/* Réglages : aperçu du logo */
.inv-logo-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:2px}
.inv-logo-prev{max-height:48px;max-width:150px;border-radius:8px;border:1px solid var(--hair);background:#fff;padding:4px;object-fit:contain}
.inv-logo-none{font-size:12px;color:var(--txt2);font-style:italic}
/* Recadrage du logo */
#logo-crop-modal{position:fixed;inset:0;z-index:46000;display:none;align-items:center;justify-content:center;background:rgba(15,12,30,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lc-card{background:var(--surface);border-radius:20px;padding:22px;width:min(92vw,372px);box-shadow:0 30px 80px rgba(0,0,0,.45);border:1px solid var(--hair)}
.lc-title{font-family:var(--font-display);font-weight:700;font-size:17px;margin-bottom:14px;color:var(--txt)}
.lc-stage{position:relative;overflow:hidden;margin:0 auto;border-radius:10px;background:#11101a;cursor:grab;touch-action:none;outline:2px dashed rgba(var(--ac-rgb),.55);outline-offset:2px}
.lc-stage:active{cursor:grabbing}
.lc-img{position:absolute;user-select:none;-webkit-user-drag:none;max-width:none;pointer-events:none}
.lc-hint{font-size:11.5px;color:var(--txt2);text-align:center;margin:12px 0 10px}
.lc-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--txt2);margin-bottom:10px}
.lc-row input[type=range]{flex:1;accent-color:var(--ac)}
.lc-ratios{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--txt2);margin-bottom:16px;flex-wrap:wrap}
.lc-rb{padding:6px 13px;border-radius:14px;border:1px solid var(--hair);background:transparent;color:var(--txt);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.lc-rb.active{background:var(--ac);color:#fff;border-color:transparent}
.lc-btns{display:flex;gap:10px;justify-content:flex-end}
.lc-cancel{padding:10px 18px;border-radius:12px;border:1px solid var(--hair);background:transparent;color:var(--txt2);font-weight:600;cursor:pointer;font-family:inherit}
.lc-ok{padding:10px 22px;border-radius:12px;border:none;background:var(--ac);color:#fff;font-weight:700;cursor:pointer;font-family:inherit}

/* ════ Semaine 2.0 ════ */
.wk2-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.wk2-vtoggle{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.wk2-vt{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:20px;border:1px solid var(--hair);background:var(--surface);color:var(--txt2);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.wk2-vt.active{background:var(--ac);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(var(--ac-rgb),.3)}
.wk2-balance{display:inline-flex;align-items:center;gap:5px;padding:7px 13px;border-radius:20px;border:1px solid rgba(var(--ac-rgb),.4);background:rgba(var(--ac-rgb),.08);color:var(--ac);font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.wk2-balance:hover{background:rgba(var(--ac-rgb),.18)}
/* dashboard */
.wk2-kpis{display:grid;grid-template-columns:repeat(3,1fr) 1.5fr;gap:12px;margin-bottom:16px}
.wk2-card{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:14px 16px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow)}
.wk2-k-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.wk2-k-lbl{font-size:11px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px}
.wk2-k-sub{font-size:12px;font-weight:700;color:var(--ac)}
.wk2-k-val{font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--txt);line-height:1;font-variant-numeric:tabular-nums}
.wk2-k-of{font-size:14px;font-weight:500;color:var(--txt2);margin-left:5px}
.wk2-k-foot{font-size:11.5px;color:var(--txt2);margin-top:7px}
.wk2-k-bar{height:6px;border-radius:4px;background:rgba(var(--ac-rgb),.14);margin-top:9px;overflow:hidden}
.wk2-k-barfill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ac2),var(--ac));transition:width .5s}
.wk2-tr{font-size:12px;font-weight:700}
.wk2-tr.up{color:#34C759}.wk2-tr.down{color:#FF9500}.wk2-tr.flat{color:var(--txt2)}
.wk2-card-break{grid-row:span 1}
.wk2-brow{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.wk2-blabel{font-size:12px;color:var(--txt);width:34%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk2-btrack{flex:1;height:8px;border-radius:5px;background:rgba(120,120,140,.12);overflow:hidden}
.wk2-bfill{height:100%;border-radius:5px;transition:width .5s}
.wk2-bval{font-size:11px;color:var(--txt2);font-variant-numeric:tabular-nums;width:46px;text-align:right}
.wk2-bsep{font-size:10px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px;margin:8px 0 6px}
/* grille */
.wk2-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-bottom:16px}
.wk2-day{background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:9px;min-height:150px;display:flex;flex-direction:column;position:relative;transition:border-color .15s,box-shadow .15s}
.wk2-day.we{background:rgba(120,120,140,.05)}
.wk2-day.today{border-color:var(--ac);box-shadow:0 0 0 2px rgba(var(--ac-rgb),.18)}
.wk2-day.sel{box-shadow:0 0 0 2px var(--ac)}
.wk2-day.dragover{border-color:var(--ac);background:rgba(var(--ac-rgb),.12);border-style:dashed}
.wk2-dh{cursor:pointer;margin-bottom:7px}
.wk2-dname{font-size:12px;font-weight:700;color:var(--txt2);display:flex;align-items:center;gap:5px}
.wk2-dnum{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--txt)}
.wk2-todaybadge{font-size:9px;font-weight:800;color:#fff;background:var(--ac);padding:1px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.3px}
.wk2-dcount{font-size:10.5px;color:var(--txt2);margin-top:1px}
.wk2-load{height:5px;border-radius:3px;background:rgba(120,120,140,.14);overflow:hidden;margin-bottom:8px}
.wk2-load-fill{height:100%;border-radius:3px;transition:width .4s}
.wk2-load.dl-low .wk2-load-fill{background:#34C759}
.wk2-load.dl-mid .wk2-load-fill{background:#FF9500}
.wk2-load.dl-high .wk2-load-fill{background:#FF3B30}
.wk2-load.dl-none .wk2-load-fill{background:transparent}
.wk2-rdvs{display:flex;flex-direction:column;gap:3px;margin-bottom:7px}
.wk2-rdv{font-size:10.5px;color:#5856D6;background:rgba(88,86,214,.1);border-radius:6px;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:root[data-theme="dark"] .wk2-rdv{color:#b3b0ff;background:rgba(var(--ac-rgb),.16)}
.wk2-tasks{display:flex;flex-direction:column;gap:4px;flex:1}
.wk2-mt{display:flex;align-items:center;gap:5px;padding:5px 7px;border-radius:8px;background:rgba(120,120,140,.07);cursor:grab;font-size:11.5px;color:var(--txt);border:1px solid transparent;transition:all .12s}
.wk2-mt:hover{border-color:var(--hair);background:rgba(var(--ac-rgb),.08)}
.wk2-mt:active{cursor:grabbing}
.wk2-mt.done{opacity:.5}.wk2-mt.done .wk2-mt-title{text-decoration:line-through}
.wk2-mt.urg{background:rgba(255,59,48,.08)}
.wk2-mt-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.wk2-mt-time{font-size:10px;font-weight:700;color:var(--ac);flex-shrink:0}
.wk2-mt-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wk2-empty{font-size:10.5px;color:var(--txt2);opacity:.45;text-align:center;padding:10px 0;border:1px dashed var(--hair);border-radius:8px}
.wk2-addmini{margin-top:7px;width:100%;padding:5px;border-radius:8px;border:1px dashed var(--hair);background:transparent;color:var(--ac);cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.wk2-addmini:hover{background:rgba(var(--ac-rgb),.1)}
/* détail jour & agenda — ajout rapide */
.wk2-detail{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.wk2-det-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.wk2-det-day{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--txt);text-transform:capitalize}
.wk2-dup{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:14px;border:1px solid var(--hair);background:transparent;color:var(--txt2);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.wk2-dup:hover{border-color:var(--ac);color:var(--ac)}
.wk2-qa{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;border:1px solid var(--hair);background:rgba(var(--ac-rgb),.04);margin-bottom:12px}
.wk2-qa i{color:var(--ac)}
.wk2-qa input{flex:1;border:none;background:transparent;outline:none;font-size:13px;font-family:inherit;color:var(--txt)}
.wk2-qa button{border:none;background:var(--ac);color:#fff;width:30px;height:30px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.wk2-cards>.task-card{margin-bottom:8px}
.wk2-empty2{text-align:center;font-size:13px;color:var(--txt2);padding:18px}
.wk2-hint{display:flex;align-items:center;gap:8px;justify-content:center;font-size:13px;color:var(--txt2);padding:22px;background:var(--surface);border:1px dashed var(--hair);border-radius:16px}
.wk2-agenda{display:flex;flex-direction:column;gap:14px}
.wk2-ag-day{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);transition:border-color .15s,background .15s}
.wk2-ag-day.today{border-color:var(--ac);box-shadow:0 0 0 2px rgba(var(--ac-rgb),.16)}
.wk2-ag-day.dragover{border-color:var(--ac);background:rgba(var(--ac-rgb),.1);border-style:dashed}
.wk2-ag-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.wk2-ag-name{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--txt);text-transform:capitalize}
.wk2-ag-load{font-size:12px;color:var(--txt2);font-variant-numeric:tabular-nums}
@media(max-width:820px){
  .wk2-kpis{grid-template-columns:1fr 1fr}
  .wk2-card-break{grid-column:1/-1}
  .wk2-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .wk2-day{min-width:160px;scroll-snap-align:start}
}
@media(max-width:520px){.wk2-kpis{grid-template-columns:1fr}}
#ground-fs{position:fixed;inset:0;z-index:38500;display:none;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1000px 700px at 50% 40%,rgba(52,160,120,.22),transparent 60%),linear-gradient(160deg,#0f2a22,#0a1a14);opacity:0;transition:opacity .5s ease}
#ground-fs.open{display:flex;opacity:1}
.gnd-inner{text-align:center;max-width:440px;animation:nomaReveal .4s cubic-bezier(.2,.7,.3,1)}
.gnd-step{font-size:12px;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:1px;text-transform:uppercase;margin-bottom:14px}
.gnd-emoji{font-size:64px;margin-bottom:18px}
.gnd-big{font-family:var(--font-display);font-size:clamp(26px,5vw,34px);font-weight:800;color:#fff;line-height:1.2}
.gnd-big b{color:#6ee7b7}
.gnd-sub{font-size:15px;color:rgba(255,255,255,.6);margin-top:12px}
.gnd-next{margin-top:34px;display:block;width:100%;max-width:280px;margin-left:auto;margin-right:auto;padding:15px;border:none;border-radius:26px;background:linear-gradient(180deg,#34d399,#10b981);color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 14px 30px -12px rgba(16,185,129,.6);transition:all .18s}
.gnd-next:hover{filter:brightness(1.06);transform:translateY(-1px)}
.gnd-exit{margin-top:12px;background:none;border:none;color:rgba(255,255,255,.45);font-size:13px;cursor:pointer;font-family:inherit}
@media(max-width:560px){.relax-grid{grid-template-columns:1fr}.amb-row{grid-template-columns:1fr}}

/* —— Cohérence cardiaque PLEIN ÉCRAN —— */
#breath-fs{position:fixed;inset:0;z-index:38000;display:none;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(1100px 760px at 50% 40%,rgba(var(--ac-rgb),.30),transparent 60%),linear-gradient(160deg,#1b1640,#0c0a22);
  opacity:0;transition:opacity .5s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#breath-fs.open{display:flex;opacity:1}
.bfs-phase{font-family:var(--font-display);font-size:clamp(24px,4vw,34px);font-weight:700;color:#fff;letter-spacing:.4px;margin-bottom:46px;text-shadow:0 2px 24px rgba(var(--ac-rgb),.55)}
.bfs-orb-wrap{position:relative;width:300px;height:300px;max-width:78vw;max-height:46vh;
  animation:bfsBreathe 10s ease-in-out infinite;will-change:transform}
@keyframes bfsBreathe{0%{transform:scale(.46)}50%{transform:scale(1)}100%{transform:scale(.46)}}
/* aura vivante : calques violets qui se déforment, tournent et se mélangent */
.bfs-aura{position:absolute;inset:10%;filter:blur(24px);mix-blend-mode:screen;will-change:transform,border-radius}
.bfs-a1{background:radial-gradient(circle at 40% 38%,var(--ac2),var(--ac) 52%,transparent 72%);animation:auraMorph 9s ease-in-out infinite, auraSpin 22s linear infinite}
.bfs-a2{background:radial-gradient(circle at 62% 56%,#A78BFA,#6D4FD4 52%,transparent 72%);opacity:.92;animation:auraMorph2 11s ease-in-out infinite, auraSpinR 28s linear infinite}
.bfs-a3{background:radial-gradient(circle at 50% 66%,#C7C0FF,var(--ac3) 56%,transparent 76%);opacity:.85;animation:auraMorph3 8s ease-in-out infinite, auraSpin 34s linear infinite}
.bfs-core{position:absolute;inset:27%;border-radius:50%;filter:blur(7px);
  background:conic-gradient(from 0deg,#c4beff,var(--ac2),var(--ac),#a78bfa,#c4beff);
  animation:auraSpin 12s linear infinite, auraMorph 7s ease-in-out infinite;will-change:transform,border-radius}
.bfs-shine{position:absolute;width:24%;height:24%;left:32%;top:28%;border-radius:50%;pointer-events:none;filter:blur(2px);
  background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.8),rgba(255,255,255,.12) 45%,transparent 66%)}
@keyframes auraSpin{to{transform:rotate(360deg)}}
@keyframes auraSpinR{to{transform:rotate(-360deg)}}
@keyframes auraMorph{0%,100%{border-radius:58% 42% 55% 45% / 55% 48% 52% 45%}33%{border-radius:45% 55% 48% 52% / 48% 58% 42% 52%}66%{border-radius:52% 48% 42% 58% / 58% 42% 55% 45%}}
@keyframes auraMorph2{0%,100%{border-radius:50% 50% 55% 45% / 52% 45% 55% 48%}33%{border-radius:62% 38% 50% 50% / 45% 56% 50% 50%}66%{border-radius:42% 58% 56% 44% / 56% 50% 44% 56%}}
@keyframes auraMorph3{0%,100%{border-radius:55% 45% 50% 50% / 50% 55% 45% 50%}50%{border-radius:44% 56% 58% 42% / 56% 42% 58% 44%}}
@media (prefers-reduced-motion:reduce){.bfs-orb-wrap,.bfs-aura,.bfs-core{animation-duration:0s!important;animation:none!important}.bfs-orb-wrap{transform:scale(.82)}}
.bfs-count{font-family:var(--font-display);font-size:clamp(40px,7vw,58px);font-weight:300;color:rgba(255,255,255,.92);font-variant-numeric:tabular-nums;margin-top:46px;line-height:1}
.bfs-session{margin-top:22px;font-size:13px;font-weight:500;color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums;letter-spacing:.4px}
.bfs-exit{margin-top:26px;display:inline-flex;align-items:center;gap:7px;padding:12px 26px;border-radius:24px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:all .2s}
.bfs-exit:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){.bfs-orb,.bfs-ring{animation:none;transform:scale(.82)}}
/* Sélecteur de technique de respiration */
.bfs-pills{display:flex;gap:8px;margin-bottom:34px;flex-wrap:wrap;justify-content:center}
.bfs-pill{padding:9px 20px;border-radius:22px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:rgba(255,255,255,.82);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s}
.bfs-pill:hover{background:rgba(255,255,255,.14)}
.bfs-pill.active{background:rgba(255,255,255,.95);color:var(--ac3);border-color:transparent;box-shadow:0 6px 22px rgba(var(--ac-rgb),.4)}
.bfs-techsub{margin-top:14px;font-size:14px;font-weight:500;color:rgba(255,255,255,.62);letter-spacing:.3px;text-align:center;max-width:80vw}
/* Méditation plein écran */
#medit-fs{position:fixed;inset:0;z-index:38000;display:none;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(1100px 760px at 50% 40%,rgba(var(--ac-rgb),.30),transparent 60%),linear-gradient(160deg,#1b1640,#0c0a22);
  opacity:0;transition:opacity .5s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#medit-fs.open{display:flex;opacity:1}
.med-orb{animation:medBreathe 12s ease-in-out infinite!important}
@keyframes medBreathe{0%,100%{transform:scale(.62)}50%{transform:scale(.92)}}
.med-time{font-family:var(--font-display);font-size:clamp(46px,9vw,76px);font-weight:300;color:rgba(255,255,255,.95);font-variant-numeric:tabular-nums;margin-top:40px;line-height:1;letter-spacing:1px}
.med-durs{display:flex;gap:7px;margin-top:26px;flex-wrap:wrap;justify-content:center}
.med-dur{padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:rgba(255,255,255,.8);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}
.med-dur:hover{background:rgba(255,255,255,.14)}
.med-dur.active{background:rgba(255,255,255,.95);color:var(--ac3);border-color:transparent}
.med-dur.locked{opacity:.4;pointer-events:none}
.med-ctrls{display:flex;align-items:center;gap:16px;margin-top:30px}
.med-amb{display:inline-flex;align-items:center;gap:7px;padding:12px 20px;border-radius:24px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#fff;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}
.med-amb:hover{background:rgba(255,255,255,.15)}
.med-amb.on{background:rgba(var(--ac-rgb),.4);border-color:rgba(155,146,245,.6)}
.med-play{width:62px;height:62px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.95);color:var(--ac3);font-size:24px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(var(--ac-rgb),.5);transition:all .2s}
.med-play:hover{transform:translateY(-2px) scale(1.04)}
#medit-fs .bfs-exit{margin-top:30px}

/* —— Cohérence cardiaque : carte en verre + orbe violet de marque —— */
:root[data-theme] .wb-breath-card{
  background:var(--surface)!important;border:1px solid var(--hair)!important;
  border-radius:var(--radius-lg)!important;box-shadow:var(--shadow)!important;
  -webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);
  padding:30px 24px 28px!important;margin-top:18px!important;max-width:460px;margin-left:auto;margin-right:auto;
}
:root[data-theme] .wb-breath-lbl{font-family:var(--font-display)!important;color:var(--ac3)!important;font-size:11px!important;letter-spacing:1.6px!important}
:root[data-theme] .wb-breath-sub{color:var(--txt2)!important;margin-bottom:18px!important}
:root[data-theme] .wb-phase-txt{font-family:var(--font-display)!important;color:var(--txt)!important}
:root[data-theme] .wb-count-txt{color:var(--txt)!important;font-family:var(--font-display)!important;font-weight:300!important}
:root[data-theme] .wb-siri-wrap{width:200px!important;height:200px!important;margin-bottom:16px!important}
:root[data-theme] #wb-siri-core{background:conic-gradient(from 200deg at 50% 50%,var(--ac2) 0deg,var(--ac) 95deg,#A78BFA 180deg,#6D4FD4 265deg,var(--ac2) 360deg)!important}
:root[data-theme] .wb-aurora-1{background:radial-gradient(ellipse at 42% 44%,rgba(var(--ac-rgb),.6),rgba(155,146,245,.28) 50%,transparent 75%)!important}
:root[data-theme] .wb-aurora-2{background:radial-gradient(ellipse at 58% 52%,rgba(167,139,250,.5),rgba(124,90,224,.2) 50%,transparent 75%)!important}
:root[data-theme] .wb-aurora-3{background:radial-gradient(ellipse at 48% 36%,rgba(185,165,255,.5),rgba(93,79,212,.32) 55%,transparent 78%)!important}
:root[data-theme] .wb-session-btn{background:linear-gradient(180deg,var(--ac2),var(--ac))!important;color:#fff!important;border:none!important;box-shadow:0 10px 22px -10px rgba(var(--ac-rgb),.55),inset 0 1px 0 rgba(255,255,255,.28)!important;transition:transform .18s ease,filter .18s ease!important}
:root[data-theme] .wb-session-btn:hover{filter:brightness(1.07);transform:translateY(-1px)}
:root[data-theme] .wb-session-timer{color:var(--txt2)!important}

/* —— Panneau Réglages —— */
.set-modal{position:fixed;inset:0;z-index:16000;display:none;align-items:center;justify-content:center;padding:20px}
.set-modal.open{display:flex}
.set-bg{position:absolute;inset:0;background:rgba(20,15,45,.4);-webkit-backdrop-filter:blur(10px) saturate(120%);backdrop-filter:blur(10px) saturate(120%)}
.set-card{position:relative;width:min(440px,94vw);max-height:86vh;overflow-y:auto;border-radius:var(--radius-lg);padding:22px 22px 16px;
  background:var(--surface);-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);
  border:1px solid var(--hair);box-shadow:0 34px 90px -30px rgba(25,18,60,.6);color:var(--txt);
  animation:nomaReveal .34s cubic-bezier(.22,.68,.28,1)}
.set-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.set-title{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--txt)}
.set-close{width:32px;height:32px;border-radius:10px;border:1px solid var(--hair);background:transparent;color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .18s}
.set-close:hover{background:rgba(var(--ac-rgb),.12)}
.set-sec{padding:14px 0;border-top:1px solid var(--hair)}
.set-sec:first-of-type{border-top:none}
.set-sec-t{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--txt2);margin-bottom:10px}
.set-seg{display:flex;gap:6px;background:rgba(var(--ac-rgb),.07);border-radius:14px;padding:4px}
.set-seg-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px;border:none;border-radius:10px;background:transparent;color:var(--txt2);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .18s}
.set-seg-btn.active{background:var(--surface);color:var(--ac);box-shadow:0 4px 12px -4px rgba(var(--ac-rgb),.4),inset 0 0 0 1px rgba(var(--ac-rgb),.18)}
.set-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.set-btn{flex:1;min-width:max-content;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 14px;border:1px solid var(--hair);border-radius:12px;background:var(--surface);color:var(--txt);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .18s}
.set-btn:hover{border-color:rgba(var(--ac-rgb),.45);color:var(--ac);transform:translateY(-1px)}
.set-btn-danger{color:#FF3B30}.set-btn-danger:hover{color:#FF3B30;border-color:rgba(255,59,48,.4)}
.set-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.set-row-lbl{font-size:14px;font-weight:600;color:var(--txt)}
.set-row-sub{font-size:12px;color:var(--txt2);margin-top:2px}
.set-foot{text-align:center;font-size:11px;color:var(--txt2);padding-top:10px;border-top:1px solid var(--hair)}
/* ── Sélecteur de couleur d'accent (Réglages › Apparence) ── */
.set-accent{display:flex;flex-wrap:wrap;gap:9px}
.set-acc-sw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;position:relative;transition:transform .15s,box-shadow .15s;outline:none;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.set-acc-sw:hover{transform:scale(1.12)}
.set-acc-sw.active{border-color:var(--txt);box-shadow:0 0 0 2px var(--surface),0 2px 8px rgba(0,0,0,.25)}
.set-acc-custom{display:flex;align-items:center;justify-content:center;background:var(--surface);border:2px dashed var(--hair);color:var(--txt2);overflow:hidden}
.set-acc-custom input[type=color]{position:absolute;inset:0;opacity:0;cursor:pointer;border:none;padding:0}

/* ── Mode « chat seul » (index.html?chat=1, installé en PWA "Noma Chat") ── */
html.chatmode,html.chatmode body{background:#0a0c14!important}
html.chatmode #app,
html.chatmode #nomaai-btn,
html.chatmode #gem-panel,
html.chatmode #focus-toggle,
html.chatmode #noma-splash,
html.chatmode #flow-toast{display:none!important}
html.chatmode .nai-close{display:none!important}
html.chatmode #nomaai-panel{transform:none!important;top:0;right:0;bottom:0;left:0;width:100%!important;max-width:100%!important;border-left:none;box-shadow:none;
  padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
html.chatmode .nai-input-row{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
/* Raccourcis clavier */
.sc-table{width:100%;border-collapse:collapse}
.sc-table td{padding:8px 0;border-bottom:1px solid var(--hair);vertical-align:middle}
.sc-table tr:last-child td{border-bottom:none}
.sc-keys{white-space:nowrap;width:120px}
.sc-desc{font-size:13px;color:var(--txt);padding-left:14px}
.sc-kbd{display:inline-block;min-width:20px;text-align:center;font-family:inherit;font-size:12px;font-weight:700;color:var(--txt);
  background:var(--card2,rgba(var(--ac-rgb),.08));border:1px solid var(--hair);border-bottom-width:2px;border-radius:7px;padding:3px 7px;line-height:1}

/* ════════════════════════════════════════════════════════════
   RESPONSIVE MOBILE — premium, safe-areas, boutons flottants
   ════════════════════════════════════════════════════════════ */
@media (max-width:768px){
  body{padding:1rem .75rem calc(96px + env(safe-area-inset-bottom))!important}
  /* barre d'onglets : sticky sous l'encoche + scroll horizontal discret */
  :root[data-theme] .tabs{top:calc(6px + env(safe-area-inset-top))!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  :root[data-theme] .tabs::-webkit-scrollbar{display:none}
  /* boutons flottants : ancrés en bas, au-dessus de la safe-area */
  #nomaai-btn{top:auto!important;bottom:calc(16px + env(safe-area-inset-bottom))!important;left:14px!important;right:auto!important}
  #gem-btn{top:auto!important;bottom:calc(16px + env(safe-area-inset-bottom))!important}
  #focus-toggle{top:calc(12px + env(safe-area-inset-top))!important}
  /* grilles finance / stats : empilage propre */
  .fg4{grid-template-columns:1fr 1fr!important}
  .f-2col{grid-template-columns:1fr!important}
  /* éditeur de facture : lignes compactes (on masque le total/suppr redondants) */
  .inv-items-head{display:none}
  .inv-item{grid-template-columns:1fr 48px 64px!important}
  .inv-item .inv-it-tot,.inv-item>.icon-btn{display:none}
  .inv-toolbar{flex-wrap:wrap}
  /* modales : pleine largeur */
  .tpl-modal-card,.client-modal-card,.pipe-move-card,.obj-type-card,.merge-card,.stage-inp-card,.clock-settings-card,.noma-modal-card{max-width:100%!important;width:100%!important}
  /* recherche globale plus haute */
  .srch-card{top:max(8px,env(safe-area-inset-top))!important}
}
/* très petits écrans */
@media (max-width:400px){
  .fg4{grid-template-columns:1fr!important}
  .app-title{font-size:24px!important}
}

/* —— Graphiques : tracé animé de la courbe —— */
.chart-line{stroke-dasharray:1800;stroke-dashoffset:1800;animation:chartDraw 1.15s cubic-bezier(.3,.7,.3,1) forwards}
@keyframes chartDraw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.chart-line{animation:none;stroke-dashoffset:0}}

/* ════ Stats 2.0 — dashboard premium ════ */
.st-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.st-period{display:flex;gap:6px;background:var(--surface);border:1px solid var(--hair);border-radius:22px;padding:3px}
.st-pt{padding:6px 16px;border-radius:18px;border:none;background:transparent;color:var(--txt2);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.st-pt.active{background:var(--ac);color:#fff;box-shadow:0 3px 12px rgba(var(--ac-rgb),.3)}
.st-nav{display:flex;align-items:center;gap:8px}
.st-nav-lbl{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--txt);text-transform:capitalize;min-width:120px;text-align:center}
/* KPIs hero */
.st-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.st-kpi{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:15px 16px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass);box-shadow:var(--shadow)}
.st-kpi-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:6px}
.st-kpi-lbl{font-size:10.5px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px}
.st-kpi-sub{font-size:12px;font-weight:700;color:var(--ac)}
.st-kpi-val{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--txt);line-height:1;font-variant-numeric:tabular-nums}
.st-kpi-of{font-size:14px;font-weight:500;color:var(--txt2);margin-left:4px}
.st-kpi-foot{font-size:11px;color:var(--txt2);margin-top:7px}
.st-kpi-bar{height:6px;border-radius:4px;background:rgba(var(--ac-rgb),.14);margin-top:9px;overflow:hidden}
.st-kpi-barfill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ac2),var(--ac))}
.st-kpi-flame .st-kpi-val{color:#FF9500}
.st-tr{font-size:11.5px;font-weight:700;white-space:nowrap}
.st-tr.up{color:#34C759}.st-tr.down{color:#FF3B30}.st-tr.flat{color:var(--txt2)}
/* panneaux */
.st-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.st-panel{background:var(--surface);border:1px solid var(--hair);border-radius:16px;padding:15px 16px;box-shadow:var(--shadow);margin-bottom:12px;-webkit-backdrop-filter:var(--glass);backdrop-filter:var(--glass)}
.st-2col .st-panel{margin-bottom:0}
.st-ph{font-size:12px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.st-ph-sub{font-size:11px;font-weight:500;color:var(--txt2);text-transform:none;letter-spacing:0}
.st-empty{text-align:center;font-size:12.5px;color:var(--txt2);padding:24px 10px;opacity:.8}
/* colonnes */
.st-cols{display:flex;align-items:flex-end;gap:5px}
.st-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.st-col-v{font-size:9.5px;font-weight:700;color:var(--txt2);margin-bottom:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.st-col-bar{width:100%;max-width:34px;border-radius:6px 6px 3px 3px;min-height:3px;transition:height .5s cubic-bezier(.3,.7,.3,1)}
.st-col.hl .st-col-bar{box-shadow:0 0 0 2px rgba(255,255,255,.5) inset,0 4px 12px rgba(var(--ac-rgb),.4)}
.st-col-l{font-size:10px;color:var(--txt2);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* donut */
.st-donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}
.st-donut-v{font-family:var(--font-display);font-size:20px;font-weight:700;fill:var(--txt)}
.st-donut-l{font-size:9px;fill:var(--txt2);text-transform:uppercase;letter-spacing:.5px}
.st-legend{display:flex;flex-direction:column;gap:7px;min-width:130px}
.st-leg{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--txt)}
.st-leg b{margin-left:auto;color:var(--txt2);font-variant-numeric:tabular-nums}
/* barres horizontales */
.st-bars{display:flex;flex-direction:column;gap:9px}
.st-brow{display:flex;align-items:center;gap:8px}
.st-bdot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.st-blabel{font-size:12.5px;color:var(--txt);width:22%;min-width:60px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-btrack{flex:1;height:9px;border-radius:5px;background:rgba(120,120,140,.12);overflow:hidden}
.st-bfill{height:100%;border-radius:5px;transition:width .6s cubic-bezier(.3,.7,.3,1)}
.st-bval{font-size:11.5px;font-weight:700;color:var(--txt);font-variant-numeric:tabular-nums;min-width:46px;text-align:right}
.st-bsub{font-size:10.5px;color:var(--txt2);min-width:96px;text-align:right;white-space:nowrap}
/* estimations */
.st-est{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.st-est-main{flex:1;min-width:180px}
.st-est-verdict{font-family:var(--font-display);font-size:17px;font-weight:700;margin-bottom:4px}
.st-est-verdict.ok{color:#34C759}.st-est-verdict.over{color:#FF9500}.st-est-verdict.under{color:#5856D6}
.st-est-nums{font-size:12.5px;color:var(--txt2)}
.st-est-list{flex:1;min-width:200px;display:flex;flex-direction:column;gap:5px}
.st-est-row{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.st-est-t{color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-est-d{font-weight:700;white-space:nowrap}
.st-est-d.over{color:#FF9500}.st-est-d.under{color:#5856D6}
.st-moodchart{margin-top:4px}
@media(max-width:820px){.st-hero{grid-template-columns:1fr 1fr}.st-2col{grid-template-columns:1fr}}
@media(max-width:520px){.st-hero{grid-template-columns:1fr 1fr}.st-col-l{font-size:8.5px}}
.st-day-wb{display:flex;align-items:center;gap:16px}
.st-day-mood{font-size:42px;line-height:1}
.st-day-habits{display:flex;gap:6px;flex-wrap:wrap}
.st-hbadge{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:16px;background:rgba(120,120,140,.1)}
.st-hbadge.y{background:rgba(52,199,89,.18)}
.st-hbadge.n{opacity:.4;filter:grayscale(.6)}

/* ════ Missions — doublons, badge auto, masquées ════ */
.m-dups{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.m-dup{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px;border-radius:13px;background:rgba(255,149,0,.1);border:1px solid rgba(255,149,0,.32)}
:root[data-theme="dark"] .m-dup{background:rgba(255,149,0,.14)}
.m-dup-txt{font-size:13px;color:var(--txt);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.m-dup-txt i{color:#FF9500}
.m-dup-sub{flex-basis:100%;font-size:11.5px;color:var(--txt2);margin-top:2px}
.m-dup-btns{display:flex;gap:6px;flex-shrink:0}
.m-dup-merge{padding:7px 13px;border-radius:11px;border:none;background:var(--ac);color:#fff;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit}
.m-dup-merge:hover{filter:brightness(1.06)}
.m-dup-ign{padding:7px 13px;border-radius:11px;border:1px solid var(--hair);background:transparent;color:var(--txt2);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.m-auto{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--ac);background:rgba(var(--ac-rgb),.14);padding:1px 6px;border-radius:7px;margin-left:6px;vertical-align:1px}
.m-hidden-link{margin-top:10px;text-align:center;font-size:12px;color:var(--txt2);display:flex;align-items:center;justify-content:center;gap:6px}
.m-hidden-link button{border:none;background:none;color:var(--ac);font-weight:700;cursor:pointer;font-family:inherit;font-size:12px;text-decoration:underline}
/* Stats — édition manuelle du temps par jour */
.st-col-clickable{cursor:pointer;border-radius:8px;transition:background .15s}
.st-col-clickable:hover{background:rgba(var(--ac-rgb),.08)}
.st-col-clickable:hover .st-col-bar{filter:brightness(1.08)}
.st-dayedit{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.st-de-inp{width:110px;padding:10px 13px;border:1px solid var(--hair);border-radius:11px;font-size:16px;font-weight:700;font-family:var(--font-display);color:var(--txt);background:var(--surface);outline:none;font-variant-numeric:tabular-nums}
.st-de-inp:focus{border-color:var(--ac)}
.st-de-u{font-size:13px;color:var(--txt2)}
.st-de-reset{margin-left:auto;border:1px solid var(--hair);background:transparent;color:var(--txt2);font-size:12px;font-weight:600;padding:7px 12px;border-radius:11px;cursor:pointer;font-family:inherit}
.st-de-reset:hover{border-color:var(--ac);color:var(--ac)}

/* ════ Pipeline Prospection PRO ════ */
.pro-dash{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:12px}
.pro-kpi{background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:12px 13px;box-shadow:var(--shadow)}
.pro-kpi-l{font-size:10px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px}
.pro-kpi-v{font-family:var(--font-display);font-size:23px;font-weight:700;color:var(--txt);line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums}
.pro-kpi-f{font-size:10.5px;color:var(--txt2);margin-top:3px}
.pro-funnel{background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow);margin-bottom:12px;display:flex;flex-direction:column;gap:6px}
.pro-fn-row{display:flex;align-items:center;gap:9px}
.pro-fn-l{font-size:12px;font-weight:600;width:30%;min-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-fn-track{flex:1;height:9px;border-radius:5px;background:rgba(120,120,140,.12);overflow:hidden}
.pro-fn-fill{height:100%;border-radius:5px;min-width:2px;transition:width .5s}
.pro-fn-n{font-size:11px;color:var(--txt2);min-width:62px;text-align:right;font-variant-numeric:tabular-nums}
/* relances */
.pro-rel{background:var(--surface);border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
.pro-rel-empty{padding:11px 14px;font-size:12.5px;color:var(--txt2);background:rgba(52,199,89,.07);border-color:rgba(52,199,89,.25)}
.pro-rel-hdr{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;font-size:13px;font-weight:700;color:var(--txt);cursor:pointer}
.pro-rel-body{padding:0 10px 8px}
.pro-rel-grp{font-size:11px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.3px;padding:8px 4px 4px}
.pro-rel-over{color:#FF3B30}.pro-rel-today{color:#FF9500}
.pro-rel-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:background .15s}
.pro-rel-item:hover{background:rgba(124,58,237,.06)}
.pro-rel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#8e8e93}
.pro-rel-item.over .pro-rel-dot{background:#FF3B30}.pro-rel-item.tod .pro-rel-dot{background:#FF9500}.pro-rel-item.up .pro-rel-dot{background:#34C759}
.pro-rel-main{flex:1;min-width:0;font-size:13px;color:var(--txt)}
.pro-rel-sub{font-size:11px;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-rel-done{border:1px solid var(--hair);background:transparent;color:var(--txt2);font-size:11px;font-weight:600;padding:5px 9px;border-radius:9px;cursor:pointer;font-family:inherit;flex-shrink:0}
.pro-rel-done:hover{border-color:#34C759;color:#34C759}
/* toolbar */
.pro-toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.pro-search-wrap{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--hair);border-radius:11px;padding:7px 11px;flex:1;min-width:160px}
.pro-search-wrap i{color:var(--txt2)}
.pro-search-wrap input{border:none;background:transparent;outline:none;font-size:13px;font-family:inherit;color:var(--txt);width:100%}
.pro-sel{border:1px solid var(--hair);background:var(--surface);border-radius:11px;padding:7px 10px;font-size:12.5px;font-family:inherit;color:var(--txt);cursor:pointer}
.pro-chip{border:1px solid var(--hair);background:var(--surface);border-radius:18px;padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--txt2);cursor:pointer;font-family:inherit}
.pro-chip.on{background:rgba(255,149,0,.14);border-color:rgba(255,149,0,.4);color:#FF9500}
/* cartes */
.pro-col-val{font-size:11px;font-weight:700;color:#2563eb;margin:-2px 0 6px 2px}
.pro-warn{color:#FF9500;font-size:10px;float:right;font-weight:700}
.pro-c-line{font-size:11px;color:var(--txt2);margin-top:3px}
.pro-c-deal{font-size:11.5px;color:#2563eb;font-weight:700;margin-top:2px}
.pro-c-stars{font-size:11px;color:#FF9500;margin-top:2px}
.pro-c-next{font-size:11px;color:#7c3aed;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pro-c-date{color:var(--txt2)}
.pro-card-actions{display:flex;align-items:center;gap:4px;margin-top:7px}
.pro-mini{border:1px solid var(--hair);background:var(--surface);border-radius:8px;padding:3px 7px;font-size:12px;cursor:pointer;font-family:inherit;color:var(--txt2);line-height:1}
.pro-mini:hover{border-color:var(--ac)}
.pro-win:hover{border-color:#34C759;background:rgba(52,199,89,.1)}
.pro-lose:hover{border-color:#FF3B30;background:rgba(255,59,48,.1)}
/* gagnés / perdus */
.pro-closed{background:var(--surface);border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow);margin-top:14px;overflow:hidden}
.pro-closed-hdr{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;font-size:13px;font-weight:700;color:var(--txt);cursor:pointer}
.pro-closed-body{padding:0 10px 8px}
.pro-closed-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;font-size:12.5px;color:var(--txt);cursor:pointer}
.pro-closed-row:hover{background:rgba(120,120,140,.06)}
.pro-lost-r{color:var(--txt2);font-style:italic}
.pro-mlink{color:#34C759;font-weight:700;font-size:11px}
@media(max-width:900px){.pro-dash{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:560px){.pro-dash{grid-template-columns:1fr 1fr}}
.pro-rel-more{font-size:11px;color:var(--txt2);padding:4px 10px;font-style:italic}
.pro-rel-stale{font-size:12px;color:var(--txt2);padding:9px 10px;margin-top:4px;border-top:1px solid var(--hair)}
.pro-rel-stale button{border:none;background:none;color:var(--ac);font-weight:700;cursor:pointer;font-family:inherit;font-size:12px;text-decoration:underline}

/* Prospection — analytics & historique */
.pro-an{background:var(--surface);border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
.pro-an-hdr{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;font-size:13px;font-weight:700;color:var(--txt);cursor:pointer}
.pro-an-body{padding:4px 14px 14px}
.pro-an-velo{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.pro-an-v{flex:1;min-width:120px;background:rgba(124,58,237,.06);border:1px solid var(--hair);border-radius:11px;padding:10px 12px}
.pro-an-vn{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--txt)}
.pro-an-vl{font-size:10.5px;color:var(--txt2);margin-top:2px}
.pro-an-table{display:flex;flex-direction:column;gap:1px}
.pro-an-trow{display:grid;grid-template-columns:2fr .7fr 1fr .7fr 1fr;gap:8px;align-items:center;padding:7px 6px;font-size:12.5px;color:var(--txt);border-radius:8px}
.pro-an-trow:nth-child(even){background:rgba(120,120,140,.04)}
.pro-an-thead{font-size:10px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.3px;background:none!important}
.pro-an-src{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:2px}
.pro-an-bar{position:absolute;left:0;top:50%;transform:translateY(-50%);height:18px;background:rgba(124,58,237,.1);border-radius:5px;z-index:0}
.pro-an-src{z-index:1}
.prosp-hist{margin:2px 14px 0;padding:10px 0 4px;border-top:1px solid rgba(0,0,0,.06)}
:root[data-theme="dark"] .prosp-hist{border-top-color:rgba(255,255,255,.08)}
.prosp-hist-h{font-size:10px;font-weight:700;color:var(--txt2);text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px}
.prosp-hist-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:12px;color:var(--txt)}
.prosp-hist-dot{width:6px;height:6px;border-radius:50%;background:#7c3aed;flex-shrink:0}
.prosp-hist-x{flex:1}
.prosp-hist-t{font-size:11px;color:var(--txt2);font-variant-numeric:tabular-nums;flex-shrink:0}

/* ════ Pipeline Vidéos ════ */
.vid-card{border-left:3px solid #EC4899}
.vid-c-hook{font-size:11px;color:var(--txt2);font-style:italic;margin-top:3px;line-height:1.3}
.vid-c-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px}
.vid-plat{font-size:10px;font-weight:700;padding:1px 7px;border-radius:8px}
.vid-date{font-size:10.5px;color:var(--txt2)}
.vid-link{font-size:11px;color:#EC4899;font-weight:600;text-decoration:none}
.vid-c-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid var(--hair);font-size:11px;color:var(--txt);font-variant-numeric:tabular-nums}
.vid-c-eng{color:#34C759;font-weight:700;margin-left:auto}
/* éditeur : stats */
.vid-stats-edit{padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.06)}
.vid-stats-h{font-size:12px;font-weight:700;color:var(--txt);margin-bottom:9px}
.vid-stats-grid{display:flex;gap:8px;flex-wrap:wrap}
.vid-stat-inp{flex:1;min-width:78px}
.vid-stat-l{font-size:10.5px;color:var(--txt2);margin-bottom:3px}
.vid-stat-inp input{width:100%;padding:8px 10px;border:1px solid var(--hair);border-radius:10px;font-size:14px;font-weight:700;font-family:inherit;color:var(--txt);background:var(--surface);outline:none;font-variant-numeric:tabular-nums}
.vid-stat-inp input:focus{border-color:#EC4899}
.vid-eng{margin-top:8px;font-size:12.5px;color:var(--txt2)}
.vid-eng b{color:#34C759}

/* ════ Nettoyage doublons clients ════ */
#client-dedup-modal{position:fixed;inset:0;z-index:47000;display:none;align-items:center;justify-content:center;background:rgba(15,12,30,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:18px}
.cdd-card{background:var(--surface,#fff);border-radius:20px;padding:22px;width:min(94vw,560px);max-height:84vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.45);border:1px solid var(--hair,rgba(0,0,0,.08))}
.cdd-h{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--txt,#1d1d1f);margin-bottom:12px}
.cdd-empty{font-size:14px;color:var(--txt2,#8e8e93);padding:14px 0}
.cdd-intro{font-size:13px;color:var(--txt2,#8e8e93);margin-bottom:14px;line-height:1.5}
.cdd-row{border:1px solid var(--hair,rgba(0,0,0,.08));border-radius:13px;padding:11px 13px;margin-bottom:9px}
.cdd-check{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--txt,#1d1d1f);cursor:pointer}
.cdd-variants{margin:7px 0;display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--txt2,#8e8e93)}
.cdd-var{background:rgba(255,149,0,.12);color:#FF9500;border-radius:8px;padding:2px 9px;font-weight:600}
.cdd-keep{font-size:12.5px;color:var(--txt,#1d1d1f);display:flex;align-items:center;gap:7px}
.cdd-sel{border:1px solid var(--hair,rgba(0,0,0,.12));border-radius:9px;padding:6px 9px;font-size:13px;font-family:inherit;background:var(--surface,#fff);color:var(--txt,#1d1d1f)}
.cdd-btns{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.cdd-cancel{padding:10px 18px;border:1px solid var(--hair,rgba(0,0,0,.12));background:transparent;color:var(--txt2,#8e8e93);font-weight:600;border-radius:12px;cursor:pointer;font-family:inherit}
.cdd-ok{padding:10px 20px;border:none;background:var(--ac);color:#fff;font-weight:700;border-radius:12px;cursor:pointer;font-family:inherit}
/* fiche : détail temps */
.cm-tl-sub{font-size:11px;font-weight:700;color:var(--txt2,#8e8e93);text-transform:uppercase;letter-spacing:.3px;margin-bottom:5px}
.cm-tl{display:flex;flex-direction:column;gap:2px;margin-bottom:4px}
.cm-tl-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 8px;border-radius:8px}
.cm-tl-row:nth-child(odd){background:rgba(120,120,140,.05)}
.cm-tl-k{color:var(--txt,#1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-tl-n{color:#aeaeb2;font-size:11px}
.cm-tl-v{font-weight:700;color:var(--ac);font-variant-numeric:tabular-nums;flex-shrink:0}
.cm-tl-hint{font-size:11px;color:#aeaeb2;margin-top:6px;font-style:italic}

.st-cli-scroll{max-height:340px;overflow-y:auto;padding-right:4px}
/* Stats — sélecteur de semaine */
.st-weekpick{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:12px;background:var(--surface);border:1px solid var(--hair);border-radius:14px;padding:8px 10px;box-shadow:var(--shadow)}
.st-wp-month{font-size:12px;font-weight:700;color:var(--txt2);text-transform:capitalize;margin:0 4px}
.st-wp{display:flex;flex-direction:column;align-items:center;line-height:1.1;padding:6px 11px;border-radius:11px;border:1px solid var(--hair);background:transparent;color:var(--txt);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.st-wp span{font-size:9.5px;font-weight:500;color:var(--txt2);margin-top:2px}
.st-wp.active{background:var(--ac);color:#fff;border-color:transparent}
.st-wp.active span{color:rgba(255,255,255,.85)}
.st-wp-nav{width:28px;height:28px;border-radius:9px;border:1px solid var(--hair);background:transparent;color:var(--txt2);cursor:pointer;font-size:15px;font-family:inherit}
.st-wp-nav:hover{border-color:var(--ac);color:var(--ac)}

/* ════ Command center / palette ⌘K ════ */
.srch-cmd .srch-go{margin-left:auto;font-size:11px;color:var(--txt2);opacity:.6;border:1px solid var(--hair);border-radius:6px;padding:1px 6px}
.srch-cmd:hover .srch-go{opacity:1;color:var(--ac)}
/* cloche inbox */
.inbox-badge{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#FF3B30;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(255,59,48,.5)}
#inbox-overlay{position:fixed;inset:0;z-index:42000;display:none;align-items:flex-start;justify-content:center;padding:70px 16px 16px}
#inbox-overlay.open{display:flex}
.ibx-bg{position:absolute;inset:0;background:rgba(15,12,30,.5);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.ibx-card{position:relative;width:min(96vw,520px);max-height:80vh;overflow:auto;background:var(--surface);border:1px solid var(--hair);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.ibx-hdr{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--txt);position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--hair);z-index:1}
.ibx-x{border:none;background:transparent;color:var(--txt2);cursor:pointer;font-size:18px;width:30px;height:30px;border-radius:9px}
.ibx-x:hover{background:rgba(120,120,140,.12)}
.ibx-body{padding:8px 12px 14px}
.ibx-grp{margin-top:8px}
.ibx-grp-h{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;padding:8px 6px 5px}
.ibx-grp-n{margin-left:auto;background:rgba(120,120,140,.14);color:var(--txt2);border-radius:9px;padding:1px 8px;font-size:11px}
.ibx-item{display:flex;align-items:center;gap:10px;padding:10px 10px;border-radius:11px;cursor:pointer;transition:background .15s}
.ibx-item:hover{background:rgba(var(--ac-rgb),.08)}
.ibx-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ibx-it-main{flex:1;min-width:0}
.ibx-it-lbl{font-size:13.5px;color:var(--txt);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ibx-it-sub{font-size:11.5px;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ibx-chev{color:var(--txt2);opacity:.5;flex-shrink:0}
.ibx-empty{text-align:center;font-size:14px;color:var(--txt2);padding:34px 16px}
/* rapport mensuel (impression) */
.rep-kpis{display:flex;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.rep-k{flex:1;min-width:110px;border:1px solid #eee;border-radius:10px;padding:12px 14px}
.rep-k-v{font-size:20px;font-weight:800;color:#1d1d1f}
.rep-k-l{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.4px;margin-top:3px}
.rep-sec{font-size:13px;font-weight:800;color:#1d1d1f;margin:18px 0 8px}

/* ════ Passe de finition — micro-interactions & cohérence ════ */
#vb,#vt,#vw,#vs,#vp,#vo,#vcl,#vf{animation:nomaViewIn .34s cubic-bezier(.22,.7,.3,1)}
@keyframes nomaViewIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.theme-toggle,.tab,.f-stab,.pv-btn,.wk2-vt,.st-pt,.dq-btn,.pg,.bt-a,.bt-c,.f-add-btn,.inv-additem,.pro-chip{transition:transform .12s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease}
.theme-toggle:active,.tab:active,.f-stab:active,.pv-btn:active,.wk2-vt:active,.st-pt:active,.dq-btn:active,.pg:active,.bt-a:active,.bt-c:active,.f-add-btn:active{transform:scale(.95)}
.client-card,.relax-card,.wk2-day,.gear-card{transition:transform .18s cubic-bezier(.22,.7,.3,1),box-shadow .18s ease,border-color .15s ease}
.client-card:hover,.relax-card:hover,.gear-card:hover{transform:translateY(-2px)}
.finput:focus,.f-inp:focus,.cm-inp:focus,.prosp-inp:focus,#qa-input:focus,#search-inp:focus,.pro-search-wrap:focus-within{box-shadow:0 0 0 3px rgba(var(--ac-rgb),.18)}
.ibx-card::-webkit-scrollbar,.st-cli-scroll::-webkit-scrollbar,.lc-card::-webkit-scrollbar,.cdd-card::-webkit-scrollbar,.srch-results::-webkit-scrollbar{width:9px}
.ibx-card::-webkit-scrollbar-thumb,.st-cli-scroll::-webkit-scrollbar-thumb,.lc-card::-webkit-scrollbar-thumb,.cdd-card::-webkit-scrollbar-thumb,.srch-results::-webkit-scrollbar-thumb{background:rgba(var(--ac-rgb),.3);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
.theme-toggle:hover{box-shadow:0 4px 16px rgba(var(--ac-rgb),.22)}
#inbox-btn:hover .ti{color:var(--ac)}
@media(prefers-reduced-motion:reduce){#vb,#vt,#vw,#vs,#vp,#vo,#vcl,#vf{animation:none}.theme-toggle:active,.tab:active,.client-card:hover,.relax-card:hover,.gear-card:hover,.wk2-day:hover{transform:none}}
/* bouton export PDF dans l'en-tête Stats */
.st-export{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:7px 13px;border-radius:20px;border:1px solid rgba(var(--ac-rgb),.4);background:rgba(var(--ac-rgb),.08);color:var(--ac);font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.st-export:hover{background:var(--ac);color:#fff;border-color:transparent;box-shadow:0 4px 14px rgba(var(--ac-rgb),.3)}
@media print{.st-export,.st-head,.st-weekpick{display:none!important}}
