/* Money Print — styles. Dark app shell, vivid colors reserved for pipeline stages. */
/* Layout : app sombre avec barre latérale (navigation par rôle, badges de file), zone principale en cartes fines ; la couleur vive est réservée aux étapes et aux tuiles de synthèse en bento. */
:root{
  --bg:#0B0B0D; --side:#101013; --surface:#151519; --raised:#1D1D22; --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.16);
  --ink:#F3F3F5; --muted:#8D8D97; --dim:#5E5E68;
  --accent:#2F6BFF; --money:#2BD46B; --alert:#FF3B4E;
  --c-texte:#2F81F7; --c-voix:#FF8FB7; --c-montage:#FF5A2C; --c-upload:#F5D547; --c-publie:#25D366;
  --danger:#FF5468; --warn:#F5B547;
  --f-display:"Sora", "Segoe UI", system-ui, sans-serif;
  --f-body:"Manrope", "Segoe UI", system-ui, sans-serif;
  --f-pixel:"Silkscreen", "Courier New", monospace;
  --f-mono:"Manrope", "Segoe UI", system-ui, sans-serif;
  --r:14px; --r-sm:10px; --r-lg:18px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;letter-spacing:-.02em}
h1{font-size:1.6rem;font-weight:700}
h2{font-size:1.2rem;font-weight:700}
h3{font-size:.95rem;font-weight:600}
.muted{color:var(--muted)}
.mono{font-variant-numeric:tabular-nums}
.label{font-family:var(--f-pixel);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Shell */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100%}
.side{background:var(--side);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;overflow-y:auto}
.logo{display:flex;align-items:center;gap:10px;padding:0 6px}
.logo .mark{width:40px;height:40px;border-radius:10px;display:block;flex:none;box-shadow:0 0 0 2px var(--money)}
/* Wordmark: lettering that looks traced with a mouse in MS Paint (wobbly font, jittered letters, Paint colors). */
.logo .word{font:400 1.6rem/1.1 "Gloria Hallelujah", "Comic Sans MS", cursive;color:#FFFFFF;display:inline-flex;align-items:baseline;white-space:nowrap;transform:rotate(-4deg);filter:url(#paint-wobble);-webkit-text-stroke:.9px currentColor;-webkit-font-smoothing:none}
.logo .word i{font-style:normal;display:inline-block}
.logo .word .m{color:#22B14C}
.logo .word .sp{width:.32em}
.navgroup{display:grid;gap:2px}
.navgroup > .label{padding:0 10px 6px}
.main{padding-block:28px 56px;padding-left:max(24px, env(safe-area-inset-left, 0px));padding-right:max(24px, env(safe-area-inset-right, 0px));display:grid;gap:22px;align-content:start;min-width:0;max-width:1320px;width:100%;margin:0 auto}
.welcome{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
.welcome p{margin:4px 0 0;color:var(--muted)}

.btn{border:1px solid var(--line-2);background:var(--raised);border-radius:var(--r-sm);padding:9px 15px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.2;color:var(--ink);text-decoration:none;transition:background .12s, border-color .12s}
.btn:hover{background:#26262C;border-color:rgba(255,255,255,.24)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:#4A7FFF}
.btn.stage{background:var(--sc);border-color:var(--sc);color:var(--sci, #111)}
.btn.stage:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);background:var(--raised)}
.btn.danger{color:var(--danger)}
.btn:disabled{opacity:.4;cursor:not-allowed;filter:none}
.btn.sm{padding:5px 11px;font-size:.84rem}
.side .btn.primary{width:100%;padding:11px}

/* Sidebar nav + roles */
.tabs{display:grid;gap:2px}
.tab{border:0;background:none;padding:9px 10px;border-radius:var(--r-sm);cursor:pointer;color:var(--muted);font-weight:600;display:flex;gap:10px;align-items:center;text-align:left;width:100%}
.tab:hover{background:var(--raised);color:var(--ink)}
.tab[aria-selected="true"]{background:var(--raised);color:var(--ink)}
.tab .count{margin-left:auto}
.count{font-family:var(--f-body);font-weight:700;font-size:.72rem;font-variant-numeric:tabular-nums;background:rgba(255,255,255,.07);border-radius:999px;padding:1px 7px;min-width:22px;text-align:center;color:var(--muted)}
.count.hot{background:var(--alert);color:#fff}
.myroles{display:grid;gap:2px}
.myroles > .label{padding:0 10px 6px}
.chip{border:0;background:none;border-radius:var(--r-sm);padding:7px 10px;font-weight:600;font-size:.88rem;cursor:pointer;display:flex;align-items:center;gap:10px;color:var(--muted);width:100%;text-align:left}
.chip::after{content:"";margin-left:auto;width:28px;height:16px;border-radius:999px;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px var(--line)}
.chip[aria-pressed="true"]{color:var(--ink)}
.chip[aria-pressed="true"]::after{background:var(--sc) radial-gradient(circle at 70% 50%, #fff 0 5px, transparent 5.5px)}
.chip:not([aria-pressed="true"])::after{background:rgba(255,255,255,.1) radial-gradient(circle at 30% 50%, #777 0 5px, transparent 5.5px)}
.chip:hover{background:var(--raised)}
.form .chip::after{display:none}
.form .chip{border:1px solid var(--line-2);width:auto;border-radius:999px;padding:6px 12px;color:var(--ink)}
.form .chip:has(input:checked){border-color:var(--accent);background:rgba(47,107,255,.14)}
.dot{width:9px;height:9px;border-radius:3px;background:var(--sc);display:inline-block;flex:none}

.banner{border:1px solid var(--line-2);background:var(--surface);border-radius:var(--r);padding:11px 14px;font-size:.9rem;color:var(--muted)}

/* Overview: bento summary */
.summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;display:grid;gap:10px;align-content:space-between;min-height:118px;position:relative;overflow:hidden}
.stat .label{color:var(--muted)}
.stat b{font-family:var(--f-display);font-size:2.4rem;font-weight:800;line-height:1;letter-spacing:-.04em}
.stat::before{content:"";position:absolute;right:-18px;top:-18px;width:64px;height:64px;border-radius:16px;background:var(--sc);opacity:.9;transform:rotate(18deg)}
.stat:first-child{grid-column:span 2;background:var(--sc);color:var(--sci, #111);border-color:transparent}
.stat:first-child .label{color:inherit;opacity:.75}
.stat:first-child::before{display:none}
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;align-items:start}
.col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px;display:grid;gap:8px;min-width:0}
.col-h{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 6px}
.col-h h3{display:flex;align-items:center;gap:8px}
.mini{all:unset;box-sizing:border-box;cursor:pointer;background:var(--raised);border:1px solid var(--line);border-radius:var(--r);padding:11px 12px;display:grid;gap:6px;min-width:0;transition:border-color .12s, transform .12s}
.mini:hover{border-color:var(--sc);transform:translateY(-1px)}
.mini:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mini .t{font-weight:700;overflow-wrap:anywhere}
.row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pf{font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 9px;background:rgba(255,255,255,.07);color:var(--ink)}
.pill{font-size:.74rem;font-weight:700;border-radius:999px;padding:2px 9px;background:rgba(255,255,255,.07);color:var(--muted);font-variant-numeric:tabular-nums}
.pill.late{color:#fff;background:var(--alert)}
.pill.soon{color:#1A1400;background:var(--warn)}
.who{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--muted);font-weight:600}
.who img{width:20px;height:20px;border-radius:50%}
.empty-col{font-size:.85rem;color:var(--dim);padding:6px}
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.team > div{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;display:grid;gap:8px}

/* Role queue */
.queue-h{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:baseline}
.queue{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;display:grid;gap:12px;min-width:0;position:relative;overflow:hidden;transition:border-color .12s}
.card:hover{border-color:var(--line-2)}
.card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--sc)}
.card .head{display:grid;gap:2px}
.card .head span:last-child{color:var(--muted)}
.card .t{font-family:var(--f-display);font-weight:700;font-size:1.12rem;overflow-wrap:anywhere}
.excerpt{font-size:.9rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.returned{font-size:.86rem;border-radius:var(--r-sm);padding:8px 12px;background:rgba(255,59,78,.12);color:#FFB3BC;border:1px solid rgba(255,59,78,.35)}
.empty{background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r-lg);padding:40px 20px;text-align:center;display:grid;gap:12px;justify-items:center}
.empty p{margin:0;max-width:46ch}

/* Sheet */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);z-index:20;display:flex;justify-content:flex-end}
.panel{background:var(--side);border-left:1px solid var(--line-2);width:min(780px,100%);height:100%;overflow-y:auto;padding-block:calc(20px + env(safe-area-inset-top, 0px)) calc(40px + env(safe-area-inset-bottom, 0px));padding-left:max(20px, env(safe-area-inset-left, 0px));padding-right:max(20px, env(safe-area-inset-right, 0px));display:grid;gap:14px;align-content:start}
.panel-h{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.step{display:grid;gap:6px;font-size:.76rem;font-weight:600;color:var(--dim);text-align:left}
.step i{height:4px;border-radius:999px;background:rgba(255,255,255,.08);display:block}
.step.done i,.step.now i{background:var(--sc)}
.step.done{color:var(--muted)}
.step.now{color:var(--ink)}
.step.now i{box-shadow:0 0 12px var(--sc)}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.meta div{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere;font-weight:600}
.sec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:12px;min-width:0}
.sec.active{border-color:color-mix(in srgb, var(--sc) 55%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--sc) 30%, transparent), 0 10px 40px -20px var(--sc)}
.sec.locked{opacity:.5}
.sec-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.sec-h h3{display:flex;gap:8px;align-items:center}
textarea,input[type=text],input[type=url],input[type=date],input[type=email],input[type=number],input[type=password],.field select{width:100%;min-width:0;background:var(--bg);color:var(--ink);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px;font:inherit}
.form .two > *{min-width:0}
textarea:disabled,input:disabled,select:disabled{opacity:.5;cursor:not-allowed}
textarea:focus,input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(47,107,255,.25)}
textarea{resize:vertical;min-height:90px}
textarea.script{min-height:280px;font-size:1rem;line-height:1.65}
.textview{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;max-height:340px;overflow:auto;line-height:1.65;overflow-wrap:anywhere}
.stats{display:flex;flex-wrap:wrap;gap:14px;font-size:.82rem;color:var(--muted);font-weight:600}
.warnline{color:var(--warn);font-size:.84rem;font-weight:600}
.drop{border:1px dashed var(--line-2);border-radius:var(--r-sm);padding:14px;display:grid;gap:10px;background:var(--bg)}
.drop.over{border-color:var(--sc);background:color-mix(in srgb, var(--sc) 8%, var(--bg))}
.or{display:flex;align-items:center;gap:10px;font-family:var(--f-pixel);font-size:.66rem;color:var(--dim)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.media{display:grid;gap:6px}
audio{width:100%}
video{width:100%;max-height:420px;border-radius:var(--r-sm);background:#000}
.actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.form{display:grid;gap:12px}
.form .two{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.field{display:grid;gap:5px}
.log{display:grid;gap:5px;font-size:.84rem;color:var(--muted);margin:0;padding:0;list-style:none}
.log li{display:flex;gap:10px}
.log .mono{flex:none;min-width:104px;color:var(--dim)}
.err{color:var(--danger);font-size:.86rem;font-weight:600}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom, 0px));background:var(--raised);color:var(--ink);border:1px solid var(--line-2);border-left:3px solid var(--money);padding:11px 16px;border-radius:var(--r-sm);z-index:40;font-size:.9rem;font-weight:600;max-width:calc(100% - 32px);box-shadow:0 10px 30px rgba(0,0,0,.5)}
a{color:#8FB0FF}

/* Videos inside a day */
.videos{display:grid;gap:12px}
.vid-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.vid-h .title{display:flex;align-items:baseline;gap:10px;min-width:0}
.vid-h .vnum{font-family:var(--f-pixel);font-size:.72rem;color:var(--sc);flex:none}
.vid-h h3{font-size:1.02rem;overflow-wrap:anywhere}
.slot{display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}
.slot-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.ok{color:var(--money);font-weight:700;font-size:.82rem}
.todo{color:var(--dim);font-weight:600;font-size:.82rem}
details summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:.88rem}
details[open] summary{margin-bottom:8px}
.actionbar{position:sticky;bottom:calc(-40px - env(safe-area-inset-bottom, 0px));margin-bottom:calc(-40px - env(safe-area-inset-bottom, 0px));background:var(--side);border-top:1px solid var(--line);padding-block:14px calc(18px + env(safe-area-inset-bottom, 0px));display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;z-index:2}
.actionbar .hint{color:var(--muted);font-size:.86rem;font-weight:600}
.channels{display:flex;flex-wrap:wrap;gap:8px}
.channels input{position:absolute;opacity:0;pointer-events:none}
.channels label{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 14px;font-weight:700;cursor:pointer;background:var(--surface)}
.channels label:has(input:checked){border-color:var(--money);background:rgba(43,212,107,.12);color:var(--ink)}
.channels label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.tip{font-size:.82rem;color:var(--muted)}
.confirm-layer{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.65);display:grid;place-items:center;padding:16px}
.confirm{background:var(--raised);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:22px;width:min(420px,100%);display:grid;gap:14px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.btn.danger-solid{background:var(--alert);border-color:var(--alert);color:#fff}
.btn.danger-solid:hover{filter:brightness(1.1);background:var(--alert)}
.rec{display:grid;gap:10px;justify-items:start}
.btn.rec-btn{background:var(--c-voix);border-color:var(--c-voix);color:#111;padding:12px 18px;font-size:1rem}
.btn.rec-btn::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--alert);box-shadow:0 0 0 3px rgba(0,0,0,.25)}
.linkish{background:none;border:0;padding:0;color:#8FB0FF;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bar{width:100%;height:6px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.bar i{display:block;height:100%;background:var(--c-voix);width:0}

@media (max-width: 860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding-block:14px;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));gap:14px}
  .side .navgroup:has(.tabs){order:3}
  .tabs{display:flex;overflow-x:auto;gap:4px;scrollbar-width:none}
  .tab{width:auto;white-space:nowrap}
  .myroles{display:flex;flex-wrap:wrap;gap:4px}
  .myroles > .label{width:100%;padding:0 0 2px}
  .chip{width:auto;border:1px solid var(--line-2);border-radius:999px;padding:5px 11px}
  .chip::after{display:none}
  .chip[aria-pressed="true"]{border-color:var(--sc);background:color-mix(in srgb, var(--sc) 14%, transparent)}
  .main{padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));padding-top:20px}
  .summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion: no-preference){.panel{animation:slide .18s ease-out}@keyframes slide{from{transform:translateX(24px);opacity:.6}}}
@media (prefers-reduced-motion: reduce){.mini,.btn,.card{transition:none}}

/* Desktop app additions */
body{margin:0}
[hidden]{display:none!important}
.side-foot{margin-top:auto;display:grid;gap:8px;padding:12px 10px 0;border-top:1px solid var(--line)}
.side-foot .who{font-size:.85rem}
.mode{font-family:var(--f-pixel);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.mode b{color:var(--money);font-weight:400}
.login{position:fixed;inset:0;z-index:80;background:var(--bg);display:grid;place-items:center;padding:16px}
.login form{width:min(380px,100%);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:26px;display:grid;gap:14px}
.login .logo{padding:0;margin-bottom:6px}
.login input{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px}

/* Voice recorder */
.recbox{display:grid;gap:10px;border:1px dashed var(--line-2);border-radius:var(--r-sm);padding:14px;background:var(--bg)}
.recrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rec-time{font:700 1.4rem/1 var(--f-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rec-live{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-pixel);font-size:.7rem;color:var(--alert)}
.rec-live::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--alert)}
@media (prefers-reduced-motion: no-preference){.rec-live::before{animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:.2}}}
.meter{flex:1;min-width:120px;height:8px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.meter i{display:block;height:100%;width:0;background:var(--c-voix);transition:width .08s linear}
select{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:7px 10px;max-width:100%}
.meter.hot i{background:var(--alert)}
kbd{font:600 .66rem/1 var(--f-body);padding:3px 6px;border-radius:5px;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.18);margin-left:4px;opacity:.85}
.sec.focus{outline:2px solid var(--c-voix);outline-offset:3px}

/* Prompter */
.prompt-wrap{display:grid;gap:8px}
.prompter{height:230px;overflow:hidden;border-radius:var(--r-sm);background:#050506;border:1px solid var(--line-2);position:relative;cursor:pointer;
  -webkit-mask-image:linear-gradient(transparent, #000 18%, #000 70%, transparent);mask-image:linear-gradient(transparent, #000 18%, #000 70%, transparent)}
.prompter .pt{padding:70px 22px 180px;font:600 1.75rem/1.45 var(--f-body);white-space:pre-wrap;will-change:transform}
.prompter.paused{border-color:var(--warn)}
.prompter::after{content:"";position:absolute;left:0;right:0;top:38%;border-top:1px dashed rgba(255,143,183,.35);pointer-events:none}

/* Takes */
.takes{display:grid;gap:8px}
.take{display:grid;grid-template-columns:auto auto minmax(160px,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}
.take.sel{border-color:var(--c-voix);background:rgba(255,143,183,.07)}
.take audio{height:34px;min-width:0}
.take-name{font-weight:700;white-space:nowrap}
.badge{font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 8px;background:rgba(255,255,255,.08);color:var(--muted);white-space:nowrap}
.badge.best{background:var(--money);color:#06210F}
.badge.bad{background:rgba(255,59,78,.18);color:#FFB3BC}
@media (max-width: 860px){.take{grid-template-columns:auto 1fr auto}.take audio{grid-column:1/-1}}

/* Export */
.exportbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px}

/* Update banner */
.banner.update{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border-color:var(--accent);color:var(--ink)}

/* Money */
.tab-money .coin{width:18px;height:18px;border-radius:50%;background:var(--money);color:#06210F;display:grid;place-items:center;font:800 .7rem/1 var(--f-display)}
.tab-money[aria-selected="true"]{box-shadow:inset 0 0 0 1px rgba(43,212,107,.4)}
.money{display:grid;gap:18px}
.money .stat b.small{font-size:1.5rem}
.money-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
.money-col{display:grid;gap:14px;min-width:0}
@media (max-width: 1100px){.money-grid{grid-template-columns:minmax(0,1fr)}}
.income-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.money .stat::before{display:none}
.money .stat:not(:first-child){border-top:3px solid var(--money)}
.income-form input,.income-form select{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:9px 11px}
.table-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem}
.tbl th{font-family:var(--f-pixel);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);text-align:left;padding:8px;border-bottom:1px solid var(--line);font-weight:400}
.tbl td{padding:8px;border-bottom:1px solid var(--line)}
.tbl .num{text-align:right;white-space:nowrap}
.tbl .strong{font-weight:800;color:var(--money)}
.shares{display:grid;gap:10px}
.share-row{display:grid;grid-template-columns:110px minmax(0,1fr) 60px;gap:10px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line)}
.share-inputs{display:flex;flex-wrap:wrap;gap:8px}
.share-in{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}
.share-in input{width:70px;background:var(--bg);border:1px solid var(--line-2);border-radius:8px;padding:5px 8px}
.jestr-mark{width:20px;height:20px;border-radius:6px;background:#fff;color:#000;display:inline-grid;place-items:center;font:900 .8rem/1 var(--f-display);font-style:italic}
.jestr-map{display:grid;gap:8px}
.chip-check{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);border-radius:999px;padding:6px 12px;font-weight:600;font-size:.88rem;cursor:pointer}
.chip-check input{margin:0}
.chip-check:has(input:checked){border-color:var(--sc);background:color-mix(in srgb, var(--sc) 14%, transparent)}
.created{display:grid;gap:8px;padding:12px;border:1px solid rgba(43,212,107,.4);background:rgba(43,212,107,.08);border-radius:var(--r-sm)}
.cred{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:8px;align-items:center}
.cred code{font-size:.92rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 8px;overflow-wrap:anywhere}
.member-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.member-list li{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg)}
.member-main{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:flex-start}
.member-list input{flex:1;background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:6px 10px}
.jestr-import{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;background:var(--bg)}
.jestr-import > summary{font-weight:700;color:var(--ink)}
.jestr-import[open] > summary{margin-bottom:6px}
.test-mail{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px dashed var(--line-2);border-radius:var(--r-sm)}
.inv-done{display:grid;gap:4px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid rgba(43,212,107,.4);background:rgba(43,212,107,.08)}
.badge.manager{background:rgba(47,107,255,.2);color:#9DB8FF}
.work-banner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--r);border:1px solid var(--warn);background:rgba(245,181,71,.1);color:var(--ink);font-weight:600;font-size:.9rem}
.btn.work-btn{border-color:var(--warn);color:var(--warn);background:transparent}
.btn.work-btn:hover{background:rgba(245,181,71,.12)}
#pageTitle{font-size:1.9rem;font-weight:800}
#pageTitle.money-title{color:var(--money)}
.readonly-note{font-size:.82rem;color:var(--warn);font-weight:600}
.jestr-howto{display:grid;gap:8px;padding:12px;border:1px dashed var(--line-2);border-radius:var(--r-sm);background:var(--bg)}
.pay-ch{display:grid;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}
.pay-head{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline}
.pay-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 130px auto;gap:8px;align-items:center}
.pay-row select{width:100%}
.pay-val{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.pay-val input{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:8px;padding:6px 8px}
.my-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:6px}
.my-total b{font:800 1.8rem/1 var(--f-display);color:var(--money);letter-spacing:-.03em}
.strong-money{font-weight:800;color:var(--money)}
.income > summary{list-style:none}
.income > summary::-webkit-details-marker{display:none}
.income-sum{display:flex;justify-content:space-between;align-items:center;gap:10px}
.income-sum::after{content:"▾";color:var(--muted);margin-left:auto;transition:transform .15s}
.income[open] .income-sum::after{transform:rotate(180deg)}
.income-sum strong{color:var(--ink);font-size:.95rem}
.jestr-steps{margin:0;padding-left:20px;display:grid;gap:8px;color:var(--muted)}
.jestr-steps li::marker{color:var(--ink);font-weight:700}
.btn.bookmarklet{background:#fff;color:#000;border-color:#fff;padding:5px 12px;font-size:.85rem;cursor:grab;margin-left:4px}
.jestr-accounts{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.jestr-accounts li{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg)}
.jestr-row{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.jestr-badge{margin-left:8px;background:#fff;color:#000}
.inv-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.inv-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}

/* ---- Argent : fraîcheur Jestr, paiements, historique, parts datées ---- */
.badge.fresh{background:rgba(43,212,107,.14);color:var(--money)}
.badge.fresh.old{background:rgba(245,181,71,.16);color:var(--warn)}
.badge.pay{font-weight:700}
.badge.pay.paid{background:rgba(43,212,107,.16);color:var(--money)}
.badge.pay.late{background:rgba(255,59,78,.18);color:#FFB3BC}
.badge.pay.wait{background:rgba(255,255,255,.08);color:var(--muted)}
.badge.pay.todo{background:rgba(245,181,71,.16);color:var(--warn)}
.inv-list li .inv-pay{grid-column:1/-1;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.inv-done .badge{justify-self:start;margin-top:4px}
.inv-done{display:grid;gap:4px}
.pay-list li,.hist-list li{grid-template-columns:minmax(0,1fr) auto auto auto}
.pay-list .row{gap:6px;justify-content:flex-end}
.linklike{background:none;border:0;padding:0;color:var(--ink);font:inherit;font-weight:700;text-align:left;cursor:pointer}
.linklike::first-letter{text-transform:uppercase}
.linklike:hover{color:var(--accent);text-decoration:underline}
.linklike:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.pay-versions{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg)}
.pay-versions ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.pay-versions li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:4px 6px;border-radius:8px}
.pay-versions li.on{background:rgba(43,212,107,.08)}
.pay-versions li.on .linklike{color:var(--money)}
.confirm select{width:100%}

/* Graphique tendances */
.chart-wrap{position:relative}
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart .grid{stroke:rgba(255,255,255,.06);stroke-width:1}
.chart .base{stroke:rgba(255,255,255,.22);stroke-width:1}
.chart .axis{fill:var(--muted);font:600 11px var(--f-body);font-variant-numeric:tabular-nums}
.chart .axis.cur{fill:var(--ink);font-weight:800}
.chart .hit{fill:transparent;cursor:pointer}
.chart .hit:hover{fill:rgba(255,255,255,.04)}
.chart-tip{position:absolute;top:0;min-width:180px;background:var(--raised);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px;display:grid;gap:4px;font-size:.82rem;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.tip-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;color:var(--muted)}
.tip-row b{color:var(--ink);font-variant-numeric:tabular-nums}
.tip-row i,.chart-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.chart-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--muted)}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.top-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;padding:2px}
.seg button{background:none;border:0;color:var(--muted);font:700 .78rem var(--f-body);padding:4px 10px;border-radius:999px;cursor:pointer}
.seg button.on{background:rgba(255,255,255,.1);color:var(--ink)}
.top-list{margin:0;padding-left:22px;display:grid;gap:8px}
.top-list li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) auto;gap:10px;align-items:center;font-size:.88rem}
.top-list li::marker{color:var(--muted);font-weight:700}
.top-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-bar{height:8px;background:rgba(255,255,255,.05);border-radius:4px;overflow:hidden}
.top-bar i{display:block;height:100%;background:var(--money);border-radius:0 4px 4px 0}
@media (max-width:640px){
  .pay-list li,.hist-list li{grid-template-columns:minmax(0,1fr) auto}
  .top-list li{grid-template-columns:minmax(0,1fr) auto}
  .top-bar{display:none}
}
.badge.pay.cancel{background:rgba(255,255,255,.06);color:var(--dim);text-decoration:line-through}
.inv-member{max-width:200px}
.fx-box{display:grid;gap:8px;padding:10px 12px;margin:4px 0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg)}
.fx-row{flex-wrap:wrap;gap:8px;align-items:center}
.fx-row input{width:110px}
.inv-list.all-inv li{grid-template-columns:minmax(0,1fr) auto}
.inv-list.all-inv .inv-pay{justify-content:flex-start}
.inv-list.all-inv .inv-pay .badge{margin-right:auto}
.top-h{flex-wrap:wrap}
.seg button{white-space:nowrap}

/* ---- Facturation : mise en page Cockpit ---- */
.cockpit{gap:16px}
.cp-top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.cp-month{display:inline-flex;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px}
.cp-month button{background:none;border:0;color:var(--ink);width:32px;height:32px;border-radius:999px;font-size:1.1rem;cursor:pointer}
.cp-month button:hover{background:var(--raised)}
.cp-month button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cp-month span{font:700 .95rem var(--f-display);padding:0 8px;min-width:150px;text-align:center}
.cp-month span::first-letter{text-transform:uppercase}
.cp-actions{flex-wrap:wrap;gap:8px}
.cp-kpis{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:14px}
.cp-kpis.worker{grid-template-columns:1.4fr 1fr 1fr}
.cp-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;display:grid;gap:6px;align-content:start;min-width:0}
.cp-kpi .label{color:var(--muted)}
.cp-kpi b{font:800 1.9rem/1.1 var(--f-display);letter-spacing:-.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cp-kpi.hero{background:linear-gradient(135deg,#1C3A27,var(--surface) 70%);border-color:rgba(43,212,107,.3)}
.cp-kpi.hero b{font-size:2.6rem;color:var(--money)}
.cp-kpi .badge{justify-self:start}
.delta{font-size:.78rem;font-weight:800;color:var(--money)}
.delta.down{color:var(--danger)}
.cp-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;align-items:start}
.cp-grid.even{grid-template-columns:1fr 1fr}
.todo-list{display:grid;gap:8px}
.todo-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}
.todo-item small{color:var(--muted)}
.todo-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:800}
.todo-ic.r{background:rgba(255,84,104,.15);color:#FFB3BC}
.todo-ic.y{background:rgba(245,181,71,.15);color:var(--warn)}
.todo-ic.g{background:rgba(43,212,107,.15);color:var(--money)}
.split-list{display:grid;gap:14px}
.split-row{display:grid;grid-template-columns:130px minmax(0,1fr) 96px;gap:6px 12px;align-items:center}
.split-track{height:12px;border-radius:6px;display:flex;gap:2px;overflow:hidden;background:var(--bg)}
.split-track i,.split-legend i{display:block;height:100%;background:var(--money)}
.split-track i.fixed,.split-legend i.fixed{background:#1E8E45}
.split-track i.kept,.split-legend i.kept{background:rgba(255,255,255,.12)}
.split-who{grid-column:2/-1;font-size:.78rem;color:var(--muted)}
.split-legend{display:flex;gap:16px;font-size:.78rem;color:var(--muted)}
.split-legend span{display:inline-flex;align-items:center;gap:6px}
.split-legend i{width:10px;height:10px;border-radius:3px}
.split-detail summary{cursor:pointer;color:var(--muted);font-weight:700;font-size:.85rem}
.cp-inv td{vertical-align:middle}
.cp-inv-act{justify-content:flex-end;gap:6px;flex-wrap:wrap}
@media (max-width:1100px){
  .cp-kpis,.cp-kpis.worker{grid-template-columns:1fr 1fr}
  .cp-grid,.cp-grid.even{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .cp-kpis,.cp-kpis.worker{grid-template-columns:minmax(0,1fr)}
  .split-row{grid-template-columns:90px minmax(0,1fr) auto}
}
.hist-list li{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
.hist-list li > :nth-child(3){justify-self:start}
.hist-list li > :nth-child(4){justify-self:end}
.coin.coin-members{width:20px;height:20px;border-radius:7px;background:var(--accent);color:#fff;display:grid;place-items:center;flex:none}
.coin-members .tab-ico{width:14px;height:14px;display:block}

/* Chaînes dans la barre latérale, étapes dans chaque chaîne */
.tabs-label{font:400 .62rem var(--f-pixel);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:14px 10px 4px}
.tab[aria-selected="true"] .dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--sc) 30%, transparent)}
.stage-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);width:max-content;max-width:100%}
.stage-tab{border:0;background:none;color:var(--muted);font:700 .9rem var(--f-body);padding:8px 14px;border-radius:var(--r-sm);display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.stage-tab:hover{background:var(--raised);color:var(--ink)}
.stage-tab[aria-selected="true"]{background:var(--sc);color:var(--sci)}
.stage-tab[aria-selected="true"] .dot{background:currentColor}
.stage-tab .count{font-size:.75rem;font-weight:800;padding:1px 8px;border-radius:999px;background:rgba(255,255,255,.08)}
.stage-tab[aria-selected="true"] .count{background:rgba(0,0,0,.18)}
.stage-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---- Journée en plein écran (espace de travail) ---- */
body.ws-open{overflow:hidden}
.ws{position:fixed;inset:0;z-index:30;background:var(--bg);display:flex;flex-direction:column}
.ws-top{display:grid;grid-template-columns:auto minmax(0,auto) minmax(260px,1fr) auto;gap:20px;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line);background:var(--side)}
.ws-title{display:grid;gap:2px;min-width:0}
.ws-title h2{margin:0;font:800 1.25rem var(--f-display);white-space:nowrap}
.ws-title h2::first-letter{text-transform:uppercase}
.ws-steps{max-width:620px;justify-self:center;width:100%}
.ws-returned{margin:12px 22px 0}
.ws-body{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:0;flex:1}
.ws-list{border-right:1px solid var(--line);background:var(--side);padding:14px 10px;display:grid;gap:4px;align-content:start;overflow-y:auto}
.ws-vid{display:grid;grid-template-columns:30px minmax(0,1fr) 22px;gap:8px;align-items:center;padding:10px;border-radius:var(--r-sm);border:1px solid transparent;background:none;color:var(--muted);font:600 .9rem var(--f-body);text-align:left;cursor:pointer}
.ws-vid:hover{background:var(--raised);color:var(--ink)}
.ws-vid.on{background:var(--raised);color:var(--ink);border-color:color-mix(in srgb, var(--sc) 55%, transparent)}
.ws-vid:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ws-num{font:400 .7rem var(--f-pixel);color:var(--dim)}
.ws-vid.on .ws-num{color:var(--sc)}
.ws-game{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-state{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:800;border:1.5px solid var(--line-2)}
.ws-state.ok{background:var(--money);border-color:var(--money);color:#06210F}
.ws-state.warn{background:rgba(255,84,104,.2);border-color:var(--danger);color:#FFB3BC}
.ws-add{margin-top:6px;justify-self:start}
.ws-list .exportbar{margin-top:14px;display:grid;gap:10px}
.ws-main{overflow-y:auto;padding:22px 28px 40px}
.ws-work{display:grid;gap:16px;max-width:1280px;margin:0 auto;min-height:100%;align-content:start}
.ws-vhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ws-vhead h3{margin:4px 0 0;font:800 1.5rem var(--f-display)}
.ws-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.ws-cols.wide{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr)}
.ws-pane{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:12px;align-content:start;min-width:0}
.ws-pane > summary{cursor:pointer;color:var(--muted);font-weight:700}
.ws-pane .textview{max-height:none;font-size:1.05rem}
.ws-player video{width:100%;max-height:70vh;border-radius:var(--r-sm);background:#000}
.ws-sep{height:1px;background:var(--line);margin:4px 0}
.ws-grow{display:grid}
.ws-script{min-height:52vh;font-size:1.05rem;line-height:1.65}
.ws .actionbar{position:static;margin:0;padding:12px 22px;border-top:1px solid var(--line);background:var(--side)}
.rec-btn.big{font-size:1.05rem;padding:14px 22px;justify-self:start}
.review{display:grid;gap:10px}
.review textarea{width:100%}
.new-day{width:min(520px,100%)}
/* Dérush */
.derush{display:grid;gap:12px}
.derush-bar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.derush-wave{width:100%;height:140px;display:block;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}
.derush-tools{flex-wrap:wrap;gap:8px;align-items:center}
.derush-tools input[type=range]{width:110px}
.derush-list{display:grid;gap:4px;max-height:320px;overflow-y:auto}
.derush-row{display:grid;grid-template-columns:28px 40px 120px 1fr auto;gap:10px;align-items:center;padding:6px 8px;border-radius:8px;border:1px solid transparent}
.derush-row.cur{border-color:var(--line-2);background:var(--raised)}
.derush-row.drop{opacity:.55}
.derush-n{color:var(--dim);font-weight:800}
.derush-toggle[aria-pressed="true"]{background:rgba(43,212,107,.16);border-color:rgba(43,212,107,.4);color:var(--money)}
@media (max-width:900px){
  .ws-top{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:10px 14px}
  .ws-steps{grid-column:1/-1;order:3}
  .ws-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .ws-list{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px}
  .ws-vid{min-width:170px}
  .ws-list .exportbar{display:none}
  .ws-main{padding:14px}
  .ws-cols,.ws-cols.wide{grid-template-columns:minmax(0,1fr)}
  .derush-row{grid-template-columns:24px 36px 1fr auto}
  .derush-row .tip{display:none}
}

/* ---- Traitement de texte (rédaction) ---- */
.doc{display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#E9EAEE}
.doc-toolbar{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 10px;background:#F8F9FC;border-bottom:1px solid #DADCE3;color:#30323A}
.tb-btn{min-width:30px;height:30px;padding:0 6px;border:0;border-radius:6px;background:none;color:#30323A;font:600 14px Arial, sans-serif;cursor:pointer;display:inline-grid;place-items:center}
.tb-btn:hover{background:#E4E7EE}
.tb-btn.on{background:#D3E3FD;color:#0B57D0}
.tb-btn:focus-visible{outline:2px solid #0B57D0;outline-offset:1px}
.tb-ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.tb-b{font-weight:800}.tb-i{font-style:italic;font-family:Georgia, serif}.tb-u{text-decoration:underline}.tb-s{text-decoration:line-through}
.tb-a{font-weight:800;border-bottom:3px solid #E03131;line-height:1}
.tb-mark{background:#FFF3BF;border-radius:3px;padding:0 3px}
.tb-sep{width:1px;height:20px;background:#DADCE3;margin:0 6px}
.tb-sel{height:30px;border:1px solid transparent;border-radius:6px;background:none;color:#30323A;font:500 13px Arial, sans-serif;padding:0 6px;cursor:pointer;max-width:150px}
.tb-sel:hover{background:#E4E7EE}
.tb-sel option{color:#111;background:#fff}
.tb-size{width:62px}
.tb-palette{position:relative;display:inline-block}
.tb-pop{position:absolute;top:34px;left:0;z-index:5;display:grid;grid-template-columns:repeat(5,22px);gap:6px;padding:10px;background:#fff;border:1px solid #DADCE3;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.tb-pop[hidden]{display:none!important}
.tb-swatch{width:22px;height:22px;border-radius:50%;border:1px solid rgba(0,0,0,.15);cursor:pointer}
.tb-swatch.none{background:linear-gradient(135deg,#fff 45%,#E03131 45%,#E03131 55%,#fff 55%)!important}
.doc-desk{padding:28px 16px 40px;overflow:auto;max-height:calc(100vh - 290px);min-height:420px}
.doc-page{max-width:816px;min-height:600px;margin:0 auto;background:#fff;color:#1F1F1F;box-shadow:0 1px 3px rgba(0,0,0,.12),0 4px 18px rgba(0,0,0,.08);padding:64px 72px;font:11pt/1.6 Arial, sans-serif;outline:none;overflow-wrap:anywhere}
.doc-page.empty::before{content:attr(data-placeholder);color:#9AA0A6;position:absolute;pointer-events:none}
.doc-page h1,.richview h1{font-size:20pt;margin:.6em 0 .3em;line-height:1.25}
.doc-page h2,.richview h2{font-size:16pt;margin:.6em 0 .3em;line-height:1.3}
.doc-page h3,.richview h3{font-size:13pt;margin:.6em 0 .3em;color:#434343}
.doc-page p,.richview p{margin:0 0 .5em}
.doc-page blockquote,.richview blockquote{margin:.4em 0;padding-left:14px;border-left:3px solid #DADCE3;color:#555}
.doc-page ul,.doc-page ol,.richview ul,.richview ol{margin:.2em 0 .6em;padding-left:1.6em}
.doc .stats{padding:8px 14px;background:#F8F9FC;border-top:1px solid #DADCE3;color:#5F6368}
.doc .stats .warnline{color:#B35C00}
/* Texte mis en forme en lecture seule */
.richview{background:#fff;color:#1F1F1F;border-radius:var(--r-sm);padding:18px 22px;font:11pt/1.6 Arial, sans-serif;overflow-wrap:anywhere;max-height:60vh;overflow:auto}
.richview.read{font-size:1.35rem;line-height:1.75;padding:26px 30px;max-height:none}
.ws-cols.voice{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr)}
.read-pane{position:sticky;top:0}
.rec-on{font-size:1.1rem}
@media (max-width:900px){
  .doc-page{padding:28px 22px;min-height:420px}
  .doc-desk{padding:12px 6px 24px;max-height:none}
  .ws-cols.voice{grid-template-columns:minmax(0,1fr)}
  .read-pane{position:static}
}
.doc-page{position:relative}
.doc-page :is(h1,h2,h3),.richview :is(h1,h2,h3){font-family:inherit;font-weight:700;letter-spacing:0}

/* ---- Pré-montage automatique ---- */
.pm{display:grid;gap:12px}
.pm-link{flex-wrap:nowrap;gap:8px}
.pm-link input{flex:1;min-width:0}
.pm-edit{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}
.pm-left{display:grid;gap:10px;position:sticky;top:0}
.pm-screen{position:relative;width:300px;aspect-ratio:9/16;background:#000;border-radius:14px;overflow:hidden;border:1px solid var(--line-2)}
.pm-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pm-media[hidden]{display:none}
.pm-cap{position:absolute;left:8%;right:8%;top:56%;transform:translateY(-50%);text-align:center;color:#fff;font:900 1.55rem/1.15 Montserrat, "Arial Black", sans-serif;letter-spacing:-.01em;
  text-shadow:0 0 2px #000,0 0 2px #000,2px 2px 0 #000,-2px 2px 0 #000,2px -2px 0 #000,-2px -2px 0 #000,0 3px 6px rgba(0,0,0,.6);pointer-events:none}
.pm-rows{display:grid;gap:4px;max-height:640px;overflow-y:auto}
.pm-row{display:grid;grid-template-columns:auto 56px minmax(0,1fr) minmax(140px,220px);gap:10px;align-items:center;padding:6px;border-radius:10px;border:1px solid transparent}
.pm-row.cur{background:var(--raised);border-color:var(--line-2)}
.pm-thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;background:var(--bg)}
.pm-text{font-size:.9rem;line-height:1.35}
.pm-row select{width:100%}
@media (max-width:1100px){
  .pm-edit{grid-template-columns:minmax(0,1fr)}
  .pm-left{position:static;justify-items:center}
  .pm-row{grid-template-columns:auto 44px minmax(0,1fr)}
  .pm-row select{grid-column:1/-1}
}

/* Pré-montage : fond vignette, texte animé, onglets plans / texte */
.pm-screen{background:#000 center/cover no-repeat}
.pm-media{opacity:1}
video.pm-media{opacity:0;transition:opacity .12s}
video.pm-media.ready{opacity:1}
.pm-note{position:absolute;left:10px;right:10px;bottom:10px;background:rgba(0,0,0,.72);color:#fff;font-size:.75rem;padding:8px 10px;border-radius:8px}
.pm-cap.pop{animation:pm-pop .22s cubic-bezier(.2,1.6,.4,1) both}
@keyframes pm-pop{0%{transform:translateY(-50%) scale(.55);opacity:0}60%{transform:translateY(-50%) scale(1.12);opacity:1}100%{transform:translateY(-50%) scale(1)}}
@media (prefers-reduced-motion: reduce){.pm-cap.pop{animation:none}}
.pm-right{display:grid;gap:10px;align-content:start;min-width:0}
.pm-tabs{justify-self:start}
.pm-caps{gap:2px}
.pm-cap-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:3px 6px;border-radius:8px;border:1px solid transparent}
.pm-cap-row.cur{background:var(--raised);border-color:var(--line-2)}
.pm-cap-row input{width:100%;font-weight:700}
.pm-rows[hidden]{display:none!important}
