
/* Layout : barre de menu sombre flottante en haut + grille « bento » de cartes ; sur téléphone le menu défile horizontalement */
:root{
  --bg:#f4f4f1; --card:#ffffff; --ink:#101114; --muted:#6b6e76; --line:#e6e6e1; --soft:#f0f0ec;
  --side:#121317; --side-ink:#f2f2ee; --side-muted:#8c8f98; --side-hi:#23252b;
  --accent:#ff5b2e; --accent-ink:#ffffff; --accent-soft:#ffe9e1;
  --c-log:#4a63ff; --c-ebook:#f2a516; --c-esim:#12b3a0;
  --ok:#14804a; --ok-bg:#ddf5e7; --warn:#a15c00; --warn-bg:#fff0d4; --bad:#c2321f; --bad-bg:#ffe3de; --draft:#5f6370; --draft-bg:#ececea;
  --paper:#ffffff; --paper-ink:#141414;
  --shadow:0 1px 2px rgba(16,17,20,.04),0 6px 24px rgba(16,17,20,.06);
  --f:"Geist", "Segoe UI", system-ui, sans-serif;
  --f-num:"Geist Mono", ui-monospace, Consolas, monospace;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0c0d10; --card:#16171c; --ink:#ededea; --muted:#9a9da6; --line:#26282f; --soft:#1d1f25;
  --side:#050608; --side-ink:#f2f2ee; --side-muted:#80838c; --side-hi:#1b1d22;
  --accent:#ff6d43; --accent-ink:#1a0700; --accent-soft:#3a1a10;
  --c-log:#7e90ff; --c-ebook:#f6bb45; --c-esim:#38d0bd;
  --ok:#6bd99b; --ok-bg:#12301f; --warn:#f3c066; --warn-bg:#36280c; --bad:#ff8f7f; --bad-bg:#3b1712; --draft:#a7aab3; --draft-bg:#24262c;
  --paper:#fbfbf9; --paper-ink:#141414; --shadow:0 1px 2px rgba(0,0,0,.3); color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0c0d10; --card:#16171c; --ink:#ededea; --muted:#9a9da6; --line:#26282f; --soft:#1d1f25;
  --side:#050608; --side-ink:#f2f2ee; --side-muted:#80838c; --side-hi:#1b1d22;
  --accent:#ff6d43; --accent-ink:#1a0700; --accent-soft:#3a1a10;
  --c-log:#7e90ff; --c-ebook:#f6bb45; --c-esim:#38d0bd;
  --ok:#6bd99b; --ok-bg:#12301f; --warn:#f3c066; --warn-bg:#36280c; --bad:#ff8f7f; --bad-bg:#3b1712; --draft:#a7aab3; --draft-bg:#24262c;
  --paper:#fbfbf9; --paper-ink:#141414; --shadow:0 1px 2px rgba(0,0,0,.3); color-scheme:dark }

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:700;text-wrap:balance;margin:0;letter-spacing:-.025em}
h1{font-size:2rem;line-height:1.15} h2{font-size:1.05rem;letter-spacing:-.01em} h3{font-size:.95rem}
.num{font-family:var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
a{color:inherit}

/* ---------- Connexion ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.login-art{background:var(--side);color:var(--side-ink);padding:48px max(40px, env(safe-area-inset-left,0px));display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-art::before{content:"";position:absolute;width:620px;height:620px;right:-220px;bottom:-260px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--accent),transparent 62%);opacity:.55;filter:blur(10px)}
.login-art::after{content:"";position:absolute;width:420px;height:420px;left:-140px;top:-160px;border-radius:50%;background:radial-gradient(circle,var(--c-log),transparent 65%);opacity:.35}
.login-art > *{position:relative}
.login-art h1{font-size:clamp(2rem,4vw,3.2rem);max-width:12ch;letter-spacing:-.04em}
.login-art p{color:var(--side-muted);max-width:38ch}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badges span{border:1px solid #ffffff22;background:#ffffff0d;border-radius:99px;padding:6px 12px;font-size:.84rem}
.login-form{display:grid;place-items:center;padding-block:40px;padding-left:max(24px, env(safe-area-inset-left,0px));padding-right:max(24px, env(safe-area-inset-right,0px))}
.login-box{width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px}
.login-box h2{font-size:1.5rem}
.login-box p{margin:0;color:var(--muted)}
.steps{display:flex;gap:6px}
.steps i{height:4px;flex:1;border-radius:9px;background:var(--line)}
.steps i.on{background:var(--accent)}
.field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600}
.field input{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px 14px;font-weight:400;font-size:1rem}
.code{display:flex;gap:8px}
.code input{width:100%;min-width:0;text-align:center;font-family:var(--f-num);font-size:1.4rem;padding:12px 0;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.qr-wrap{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px}
.qr-wrap canvas{width:132px;height:132px;flex:none;border-radius:10px;background:#fff;padding:8px}
.qr-wrap small{color:var(--muted);font-size:.84rem}
.link{background:none;border:0;padding:0;color:var(--accent);font-weight:600;cursor:pointer;text-align:left}

/* ---------- Application ---------- */
.app{min-height:100vh}
.side{margin:12px max(16px, env(safe-area-inset-right,0px)) 0 max(16px, env(safe-area-inset-left,0px));background:var(--side);color:var(--side-ink);border-radius:20px;padding:10px 12px;display:flex;align-items:center;gap:16px;position:sticky;top:calc(12px + env(safe-area-inset-top,0px));z-index:5;box-shadow:0 10px 30px rgba(0,0,0,.18)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px}
.brand-logo{width:42px;height:42px;border-radius:12px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:1rem;overflow:hidden;flex:none}
.brand-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.brand b{display:block;font-size:.98rem;letter-spacing:-.02em;line-height:1.15}
.brand small{color:var(--side-muted);font-size:.76rem}
nav{display:flex;align-items:center;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
nav > a:first-of-type{margin-left:auto} nav > a:last-of-type{margin-right:auto}
nav::-webkit-scrollbar{display:none}
.side .brand{flex:none;padding:0 4px}
.nav-lab{display:none;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--side-muted);padding:12px 10px 4px;font-weight:600}
nav a{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;white-space:nowrap;flex:none;color:var(--side-ink);text-decoration:none;font-weight:500;font-size:.92rem;opacity:.78}
nav a svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
nav a:hover{background:var(--side-hi);opacity:1}
nav a.on{background:var(--side-hi);opacity:1;box-shadow:inset 0 -2px 0 var(--accent)}
nav .count{margin-left:2px;font-size:.7rem;background:var(--accent);color:var(--accent-ink);padding:1px 7px;border-radius:99px;font-weight:700}
.side-user{flex:none;display:flex;align-items:center;gap:10px;padding:6px 10px 6px 6px;border-radius:14px;background:var(--side-hi)}
.av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--c-log),var(--c-esim));display:grid;place-items:center;font-weight:700;font-size:.85rem;color:#fff;flex:none}
.side-user b{font-size:.88rem;display:block}
.side-user small{color:var(--side-muted);font-size:.74rem;display:flex;align-items:center;gap:5px}
.side-user small::before{content:"";width:7px;height:7px;border-radius:50%;background:#3ddc84}
.side-user button{margin-left:auto;background:none;border:0;color:var(--side-muted);cursor:pointer;font-size:.78rem}

main{min-width:0;max-width:1400px;margin:0 auto;padding-block:28px 64px;padding-left:max(32px, env(safe-area-inset-left,0px));padding-right:max(32px, env(safe-area-inset-right,0px))}
.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:22px}
.top p{margin:6px 0 0;color:var(--muted)}
.demo{display:inline-flex;gap:8px;align-items:center;font-size:.78rem;color:var(--muted);border:1px dashed var(--line);border-radius:99px;padding:3px 10px;margin-bottom:12px}
.demo::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c-ebook)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);background:var(--card);padding:9px 15px;border-radius:12px;font-weight:600;cursor:pointer;font-size:.9rem;text-decoration:none}
.btn:hover{border-color:var(--muted)}
.btn.main{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.btn.acc{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.main:hover,.btn.acc:hover{filter:brightness(1.12)}
.btn.full{width:100%;padding:13px}
.btns{display:flex;flex-wrap:wrap;gap:8px}

.card{background:var(--card);border-radius:20px;padding:20px;box-shadow:var(--shadow);min-width:0;border:1px solid var(--line)}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.card-h a{color:var(--muted);font-weight:600;font-size:.85rem;text-decoration:none}
.card-h a:hover{color:var(--ink)}
.bento{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}
.s2{grid-column:span 2} .s3{grid-column:span 3} .s4{grid-column:1/-1}
.hero{background:var(--side);color:var(--side-ink);border:0;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-80px;top:-90px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,var(--accent),transparent 65%);opacity:.6}
.hero > *{position:relative}
.lab{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}
.hero .lab,.hero .sub{color:var(--side-muted)}
.big{font-family:var(--f-num);font-size:2.4rem;font-weight:600;letter-spacing:-.04em;margin:6px 0 2px;line-height:1.1}
.mid{font-family:var(--f-num);font-size:1.6rem;font-weight:600;letter-spacing:-.03em;margin:6px 0 2px}
.sub{font-size:.85rem;color:var(--muted)}
.up{color:#3ddc84;font-weight:700}
.split{display:flex;height:10px;border-radius:99px;overflow:hidden;margin-top:18px;gap:3px}
.split i{display:block;height:100%;border-radius:99px}
.split-l{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:.82rem}
.gauge{height:8px;border-radius:99px;background:var(--soft);margin-top:12px;overflow:hidden}
.gauge i{display:block;height:100%;background:var(--accent);border-radius:99px}

.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.d-log{background:var(--c-log)} .d-ebook{background:var(--c-ebook)} .d-esim{background:var(--c-esim)}
svg.chart{width:100%;height:auto;display:block}
svg.chart text{fill:var(--muted);font-family:var(--f-num);font-size:11px}
.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.82rem;color:var(--muted)}

.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.feed li{display:flex;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.feed li:first-child{border-top:0;padding-top:0}
.src{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:none;font-weight:700;font-size:.72rem;color:#fff}
.src.esim{background:var(--c-esim)} .src.ebook{background:var(--c-ebook)} .src.log{background:var(--c-log)}
.feed .t{min-width:0;flex:1}
.feed b{display:block;font-size:.92rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feed span{color:var(--muted);font-size:.82rem}
.feed .amt{font-family:var(--f-num);font-weight:600;white-space:nowrap}
.todo li .src{background:var(--soft);color:var(--ink)}
.todo li .src.bad{background:var(--bad-bg);color:var(--bad)} .todo li .src.warn{background:var(--warn-bg);color:var(--warn)}

.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right}
tbody tr.click{cursor:pointer}
tbody tr.click:hover td{background:var(--soft)}
tbody tr.sel td{background:var(--accent-soft)}
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:.76rem;font-weight:600;white-space:nowrap}
.p-ok{background:var(--ok-bg);color:var(--ok)} .p-warn{background:var(--warn-bg);color:var(--warn)} .p-bad{background:var(--bad-bg);color:var(--bad)} .p-draft{background:var(--draft-bg);color:var(--draft)}
.tag{display:inline-flex;align-items:center;font-size:.82rem;color:var(--muted);white-space:nowrap}
.muted{color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.chip{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:6px 13px;font-size:.84rem;font-weight:600;cursor:pointer}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* Sources connectées */
.conn{display:flex;gap:14px;align-items:center}
.conn .src{width:46px;height:46px;border-radius:14px;font-size:.8rem}
.conn b{display:block}
.conn small{color:var(--muted)}
.live{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--ok)}
.live::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px var(--ok-bg)}
.flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;font-size:.82rem;color:var(--muted)}
.flow span{background:var(--soft);border-radius:8px;padding:4px 9px;color:var(--ink)}

/* Facture papier */
.inv-layout{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}
.paper{background:var(--paper);color:var(--paper-ink);border-radius:14px;box-shadow:0 2px 4px rgba(0,0,0,.05),0 18px 40px rgba(0,0,0,.1);padding:34px;font-size:.84rem;min-width:0}
.paper .ptop{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}
.paper .plogo{width:54px;height:54px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;overflow:hidden;margin-bottom:10px}
.paper .plogo img{width:100%;height:100%;object-fit:contain;background:#fff}
.paper .meta{text-align:right}
.paper .doc{font-size:1.6rem;font-weight:800;letter-spacing:-.03em}
.paper .to{margin:24px 0 18px;padding:12px 14px;background:#f4f4f1;border-radius:10px;max-width:300px}
.paper .to small{color:#777;text-transform:uppercase;letter-spacing:.07em;font-size:.66rem;font-weight:700}
.paper th{color:#666;border-bottom:1.5px solid #141414}
.paper td{border-bottom:1px solid #e6e6e1}
.paper .tot{display:flex;justify-content:flex-end;margin-top:12px}
.paper .tot div{min-width:220px}
.paper .tot p{display:flex;justify-content:space-between;margin:4px 0}
.paper .tot .bigt{font-size:1.1rem;font-weight:700;border-top:1.5px solid #141414;padding-top:8px;margin-top:8px}
.paper .legal{margin-top:24px;padding-top:12px;border-top:1px solid #e6e6e1;color:#666;font-size:.74rem}
.paper .legal b{color:#141414}
.paper .stamp{display:inline-block;background:#ddf5e7;color:#14804a;padding:3px 10px;border-radius:99px;font-weight:700;font-size:.76rem;margin-top:8px}
.paper .tc{background:#fff0c4;padding:0 3px;border-radius:3px}
.paper .origin{display:inline-block;margin-top:6px;color:#777;font-size:.74rem}

/* Formulaires */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
label.f{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:var(--muted)}
label.f input,label.f select{border:1px solid var(--line);background:var(--bg);border-radius:11px;padding:10px 12px;font-weight:400;color:var(--ink);min-width:0}
.lines td input{width:64px;border:1px solid var(--line);border-radius:8px;padding:5px 7px;background:var(--bg)}
.x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:1.1rem}
.addline{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.addline select{flex:1;min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:11px;padding:9px 12px}
.total-box{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:16px 18px;border-radius:16px;background:var(--side);color:var(--side-ink)}
.total-box small{color:var(--side-muted)}
.total-box .num{font-size:1.6rem;font-weight:600}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;font-size:.9rem}
.checks li{display:flex;gap:10px}
.checks li::before{content:"✓";flex:none;width:22px;height:22px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;font-size:.75rem;font-weight:700}
.checks span{display:block;color:var(--muted);font-size:.84rem}

/* Réglages */
.drop{border:2px dashed var(--line);border-radius:18px;padding:22px;display:flex;gap:18px;align-items:center;cursor:pointer;flex-wrap:wrap}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.drop .prev{width:84px;height:84px;border-radius:18px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:1.4rem;overflow:hidden;flex:none}
.drop .prev img{width:100%;height:100%;object-fit:contain;background:#fff}
.drop input{display:none}
.kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;font-size:.9rem;align-items:center}
.kv span{color:var(--muted)}
.urssaf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.urssaf .box{border-radius:16px;padding:16px;background:var(--soft)}
.urssaf .box .num{font-size:1.35rem;font-weight:600;display:block;margin:4px 0}
.note{font-size:.83rem;color:var(--muted);margin-top:12px}

.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:14px;font-weight:600;font-size:.88rem;z-index:20;max-width:calc(100% - 32px);text-align:center}
.fade{animation:fade .35s ease both}
@keyframes fade{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}

@media (max-width:1560px){ nav a svg{display:none} }
@media (max-width:1320px){ .side-user > div:not(.av){display:none} .side .brand div:last-child{display:none} }
@media (max-width:1100px){ .side{flex-wrap:wrap} nav{flex-basis:100%;order:3} .side-user{margin-left:auto} .side .brand div:last-child,.side-user > div:not(.av){display:block} }
@media (max-width:1150px){ .bento{grid-template-columns:repeat(2,minmax(0,1fr))} .s3{grid-column:1/-1} .inv-layout{grid-template-columns:minmax(0,1fr)} }
@media (max-width:820px){
  .login{grid-template-columns:minmax(0,1fr)}
  .login-art{padding:32px max(16px, env(safe-area-inset-right,0px)) 32px max(16px, env(safe-area-inset-left,0px));gap:28px}
  .side{position:static;margin:0;border-radius:0;flex-wrap:wrap;padding:12px max(16px, env(safe-area-inset-right,0px)) 10px max(16px, env(safe-area-inset-left,0px));gap:10px}
  .side .brand div:last-child{display:block}
  nav{flex-basis:100%;order:3}
  .side-user{margin-left:auto;padding:4px 8px 4px 4px}
  .side-user > div:not(.av){display:none!important}
  .side .brand{min-width:0;flex:1}
  .side .brand b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  main{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}
  .form-grid,.urssaf{grid-template-columns:minmax(0,1fr)}
  .paper{padding:22px 18px} .paper .meta{text-align:left}
}
@media (max-width:520px){ .bento{grid-template-columns:minmax(0,1fr)} .s2,.s3{grid-column:auto} h1{font-size:1.6rem} .big{font-size:2rem} }
@media (prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important} }

/* ================= Ajouts de l'application réelle ================= */
.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}
.field select,.field textarea{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px 14px;font-weight:400;font-size:1rem}
.err{background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:10px 14px;font-size:.9rem}
.okmsg{background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:10px 14px;font-size:.9rem}
.side-user .sec{background:none;border:0;color:var(--side-muted);cursor:pointer;font-size:.78rem;padding:0 4px}
.side-user .sec:hover,.side-user button:hover{color:var(--side-ink)}
textarea{font:inherit;color:inherit;resize:vertical}
label.f textarea{border:1px solid var(--line);background:var(--bg);border-radius:11px;padding:10px 12px;font-weight:400;color:var(--ink);min-height:80px}
label.f.wide{grid-column:1/-1}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.empty{padding:34px 16px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font-size:1.05rem;margin-bottom:4px}
.search{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:7px 14px;min-width:0;flex:1;max-width:280px}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.toolbar .filters{margin:0}
.btn.sm{padding:6px 11px;font-size:.82rem;border-radius:10px}
.btn.danger{color:var(--bad);border-color:var(--bad-bg)}
.btn[disabled]{opacity:.5;cursor:default}
.linkbtn{background:none;border:0;padding:0;color:var(--accent);font-weight:600;cursor:pointer;font:inherit}

/* fenêtres */
.modal-ov{position:fixed;inset:0;background:rgba(10,11,14,.55);z-index:30;display:grid;place-items:center;padding:16px;overflow-y:auto}
.modal{background:var(--card);border-radius:22px;width:100%;max-width:620px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.35);border:1px solid var(--line);max-height:calc(100vh - 32px);overflow-y:auto}
.modal.wide{max-width:820px}
.modal-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}
.modal-h h2{font-size:1.25rem}
.modal-x{background:var(--soft);border:0;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:1.1rem;color:var(--ink)}
.modal-f{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:18px}
.steps-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:.92rem}
.steps-list li::marker{font-weight:700;color:var(--accent)}
.copy{display:flex;gap:6px;align-items:center;background:var(--soft);border-radius:10px;padding:6px 6px 6px 12px;font-family:var(--f-num);font-size:.82rem;word-break:break-all}
.copy span{flex:1;min-width:0}
code{font-family:var(--f-num);background:var(--soft);padding:1px 6px;border-radius:6px;font-size:.88em}

/* éditeur de facture */
.lines-ed{width:100%;border-collapse:collapse}
.lines-ed td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.lines-ed input,.lines-ed select{width:100%;min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:8px 9px}
.lines-ed .c-qty{width:76px}.lines-ed .c-unit{width:110px}.lines-ed .c-kind{width:150px}.lines-ed .c-tot{width:110px;text-align:right;padding-top:14px;font-family:var(--f-num)}.lines-ed .c-x{width:34px}
@media (max-width:760px){
  .lines-ed thead{display:none}
  .lines-ed tr{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 0;border-bottom:1px solid var(--line)}
  .lines-ed td{border:0;padding:0;width:auto!important}
  .lines-ed td:first-child{grid-column:1/-1}
  .lines-ed .c-tot{padding-top:8px}
  .form-grid.three{grid-template-columns:minmax(0,1fr)}
}

/* aperçu de document */
.doc-frame{width:100%;border:0;background:#fff;border-radius:14px;box-shadow:0 2px 4px rgba(0,0,0,.05),0 18px 40px rgba(0,0,0,.1);min-height:600px;display:block}
.doc-side{display:flex;flex-direction:column;gap:14px}
.facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 14px;font-size:.9rem}
.facts span{color:var(--muted)}
.big-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.big-status .pill{font-size:.9rem;padding:5px 14px}
.back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);text-decoration:none;font-weight:600;font-size:.88rem;margin-bottom:10px}
.back:hover{color:var(--ink)}
.set-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.logo-prev{width:84px;height:84px;border-radius:18px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:800;font-size:1.4rem;overflow:hidden;flex:none}
.logo-prev img{width:100%;height:100%;object-fit:contain;background:#fff}
.tfa-box{max-width:520px;margin:12vh auto;padding:0 16px}
.year-sel{display:flex;gap:6px;align-items:center}
.src.service{background:var(--draft)}
.d-service{background:var(--draft)}
.hide{display:none!important}
.f2fa-btn.dng{display:none!important} /* double vérification obligatoire ici */
