/* ---------------------------------------------------------------------------
 * FICHIER GÉNÉRÉ — ne pas éditer à la main.
 * Source   : _source/Sedam-Valentin-V28-Actions-Tabulaires-Comite.html
 * Commande : php scripts/extract-design-v28.php
 *
 * Concaténation verbatim des 30 blocs <style> de la maquette, dans
 * l'ordre du document : le design V28 EST cette cascade (couches v3 → v28).
 * Toute retouche doit se faire dans assets/styles/app.css, chargé après.
 * ------------------------------------------------------------------------- */

/* ===== couche 1 : base-0 ===== */
:root{--brand:#0F4C5C;--brand-700:#0b3a46;--accent:#1B9AAA;--accent-2:#27c4d6;--ink:#1f2a2e;--muted:#6b767b;--bg:#eef2f3;--card:#fff;--line:#e1e9ea;--ok:#2faa6a;--warn:#d9952a;--err:#d2553f;--soft:#edf3f4;--shadow:0 1px 2px rgba(15,76,92,.06),0 8px 24px rgba(15,76,92,.08);--radius:14px}
  *{box-sizing:border-box}html,body{margin:0;height:100%}
  body{font-family:-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px;line-height:1.45}
  button{font-family:inherit;cursor:pointer}a{color:var(--accent);text-decoration:none;cursor:pointer}.hidden{display:none!important}
  .btn{border:none;border-radius:10px;padding:10px 16px;font-weight:600;font-size:13px}
  .btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#168796}
  .btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn-block{width:100%}
  .field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}
  .field input,.field select,.field textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px;background:#fbfdfd;font-family:inherit}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(27,154,170,.15)}
  /* login */
  #login{position:fixed;inset:0;z-index:50;display:flex;background:linear-gradient(120deg,var(--brand),var(--brand-700) 45%,#06262e);color:#fff}
  #login .left{flex:1;display:flex;flex-direction:column;justify-content:center;padding:6vw}
  #login .brand-tag{letter-spacing:.18em;font-size:12px;color:var(--accent-2);font-weight:700;margin-bottom:18px}
  #login h1{font-size:40px;line-height:1.1;margin:0 0 16px;font-weight:800}#login h1 span{color:var(--accent-2)}
  #login p.lead{max-width:430px;color:#cfe3e7;font-size:16px}
  #login .right{width:430px;background:#fff;color:var(--ink);display:flex;flex-direction:column;justify-content:center;padding:46px;border-radius:28px 0 0 28px}
  #login h2{margin:0 0 4px;font-size:22px;color:var(--brand)}#login .sub{color:var(--muted);margin-bottom:24px}
  .err-box{background:#fbe6e0;color:var(--err);padding:10px 12px;border-radius:9px;font-size:13px;margin-bottom:12px}
  .hint{margin-top:18px;border-top:1px solid var(--line);padding-top:14px;font-size:12px;color:var(--muted)}
  .hint b{color:var(--ink)}.hint code{background:var(--soft);padding:1px 6px;border-radius:5px}
  .cred-bubble{position:relative;margin-top:26px;background:linear-gradient(135deg,#0F4C5C,#0b3a46);color:#dff1f4;border-radius:14px;padding:14px 16px;box-shadow:0 10px 26px rgba(15,76,92,.28)}
  .cred-bubble::before{content:"";position:absolute;top:-8px;left:32px;width:17px;height:17px;background:#0F4C5C;transform:rotate(45deg);border-radius:3px}
  .cred-bubble .cb-title{font-weight:700;font-size:11.5px;letter-spacing:.05em;color:#7fe0ec;margin-bottom:10px;text-transform:uppercase}
  .cred-bubble .cb-row{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:9px;cursor:pointer;font-size:13px;transition:.15s}
  .cred-bubble .cb-row:hover{background:rgba(255,255,255,.10)}
  .cred-bubble .cb-role{font-weight:700;width:52px;color:#fff}
  .cred-bubble code{background:rgba(255,255,255,.16);color:#fff;padding:2px 8px;border-radius:6px;font-size:12px}
  .cred-bubble .cb-hint{margin-top:8px;font-size:11px;color:#9fc3ca}
  /* shell */
  #app{display:flex;min-height:100vh}
  .sidebar{width:260px;flex:none;background:var(--brand);color:#cfe1e5;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
  .sidebar .logo{padding:20px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(255,255,255,.08)}
  .sidebar .logo .mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-weight:800;color:#04222a}
  .sidebar .logo b{color:#fff;font-size:15px}.sidebar .logo small{display:block;color:var(--accent-2);font-size:10px;letter-spacing:.16em;font-weight:700}
  .nav{flex:1;overflow:auto;padding:10px 12px}
  .nav .grp{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7fb0b9;margin:14px 10px 6px}
  .nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#cfe1e5;font-weight:500;margin:2px 0;font-size:13.5px}
  .nav a .ic{width:18px;height:18px;flex:none;opacity:.85}
  .nav a:hover{background:rgba(255,255,255,.07);color:#fff}
  .nav a.active{background:linear-gradient(135deg,var(--accent),#1690a0);color:#fff}
  .nav a .badge{margin-left:auto;background:var(--err);color:#fff;font-size:10px;padding:1px 7px;border-radius:10px;font-weight:700}
  .sidebar .foot{padding:14px 18px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;display:flex;align-items:center;gap:10px}
  .sidebar .foot .av{width:32px;height:32px;border-radius:50%;background:var(--accent-2);color:#04222a;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
  .main{flex:1;min-width:0;display:flex;flex-direction:column}
  .topbar{height:62px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:20}
  .crumb{font-size:13px;color:var(--muted)}.crumb b{color:var(--ink)}.topbar .spacer{flex:1}
  .lang-toggle{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
  .lang-toggle button{border:none;background:#fff;padding:6px 12px;font-size:12px;font-weight:700;color:var(--muted)}.lang-toggle button.on{background:var(--brand);color:#fff}
  .pill-machine{display:flex;align-items:center;gap:8px;background:var(--soft);border:1px solid #d3e2e4;padding:6px 12px;border-radius:30px;font-size:12.5px;font-weight:600;color:var(--brand)}
  .content{padding:24px 26px;flex:1;overflow:auto}
  h2.title{margin:0 0 4px;font-size:22px;color:var(--brand)}.subtitle{color:var(--muted);margin:0 0 20px}
  .card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
  .grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,1fr)}.machines{grid-template-columns:repeat(3,1fr)}
  .stat{padding:18px 20px}.stat .k{font-size:12px;color:var(--muted);font-weight:600}.stat .v{font-size:30px;font-weight:800;color:var(--brand);margin-top:6px}.stat .t{font-size:12px;color:var(--ok);margin-top:2px}
  .m-card{padding:0;overflow:hidden;cursor:pointer;transition:.15s}.m-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(15,76,92,.14)}
  .m-card .ph{height:110px;background:linear-gradient(135deg,#15576a,#1b9aaa);display:flex;align-items:center;justify-content:center;position:relative}
  .m-card .tag{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.9);color:var(--brand);font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px}
  .m-card .bd{padding:14px 16px}.m-card .bd h4{margin:0 0 2px}.m-card .bd .sn{color:var(--muted);font-size:12px}.m-card .bd .go{margin-top:10px;color:var(--accent);font-weight:600;font-size:12.5px}
  /* chat */
  .chat-wrap{display:grid;grid-template-columns:1fr 280px;gap:16px}
  .chat{display:flex;flex-direction:column;height:calc(100vh - 210px);min-height:440px}
  .chat .hd{padding:15px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}
  .chat .hd .bot{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;color:#04222a;font-weight:800}
  .chat .hd b{display:block;font-size:15px;color:var(--brand)}.chat .hd small{color:var(--ok);font-size:12px}
  .stream{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px;background:#fafcfc}
  .msg{display:flex;gap:10px;max-width:88%}.msg .ava{width:30px;height:30px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
  .msg.bot .ava{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#04222a}.msg.user{margin-left:auto;flex-direction:row-reverse}.msg.user .ava{background:var(--brand);color:#fff}
  .bubble{padding:11px 14px;border-radius:14px;font-size:14px;box-shadow:var(--shadow);white-space:pre-wrap}
  .msg.bot .bubble{background:#fff;border:1px solid var(--line);border-top-left-radius:4px}.msg.user .bubble{background:var(--brand);color:#fff;border-top-right-radius:4px}
  .sources{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px}.src{font-size:11px;background:var(--soft);border:1px solid #d3e2e4;color:var(--brand);padding:3px 9px;border-radius:20px;font-weight:600}
  .resolved{margin-top:11px;padding-top:11px;border-top:1px dashed var(--line);font-size:13px;color:var(--muted);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
  .resolved button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 14px;font-weight:600;font-size:12px}.resolved .y{color:var(--ok)}.resolved .n{color:var(--err)}
  .composer{padding:13px 16px;border-top:1px solid var(--line);background:#fff}
  .suggest{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.suggest button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 12px;font-size:12px;color:var(--brand);font-weight:600}
  .composer .row{display:flex;gap:10px}.composer input{flex:1;border:1px solid var(--line);border-radius:11px;padding:11px 14px;font-size:14px;background:#fbfdfd}
  .composer .send{background:var(--accent);color:#fff;border:none;border-radius:11px;width:46px;display:flex;align-items:center;justify-content:center;font-size:18px}
  .side-panel .card{padding:15px 16px;margin-bottom:14px}.side-panel h5{margin:0 0 10px;font-size:11px;color:var(--brand);text-transform:uppercase;letter-spacing:.05em}
  .doc-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--soft);font-size:13px;cursor:pointer}.doc-row:last-child{border:none}
  .doc-row .fi{width:30px;height:30px;border-radius:8px;background:var(--soft);display:flex;align-items:center;justify-content:center;color:var(--err);font-size:9px;font-weight:700;flex:none}
  .hist-item{padding:8px 10px;border-radius:9px;font-size:13px;cursor:pointer}.hist-item:hover{background:var(--soft)}.hist-item small{display:block;color:var(--muted);font-size:11px}
  .typing span{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:3px;animation:bl 1s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
  @keyframes bl{0%,60%,100%{opacity:.25}30%{opacity:1}}
  /* tables */
  table{width:100%;border-collapse:collapse;font-size:13px}
  thead th{text-align:left;background:var(--brand);color:#fff;padding:10px 13px;font-size:12px;font-weight:600}
  tbody td{padding:10px 13px;border-bottom:1px solid var(--soft)}tbody tr:hover{background:#f8fbfb}
  .chip{font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;display:inline-flex;gap:5px}
  .chip.ok{background:#e3f5ec;color:var(--ok)}.chip.idx{background:#e7f0fb;color:#2f6bd2}.chip.wait{background:#fbf2dd;color:var(--warn)}.chip.err{background:#fbe6e0;color:var(--err)}.chip.role{background:var(--soft);color:var(--brand)}
  .toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.toolbar .spacer{flex:1}
  .search input{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:280px}
  .filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filters .f{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}.filters .f.on{background:var(--brand);color:#fff;border-color:var(--brand)}
  .dropzone{border:2px dashed #b9d2d6;border-radius:16px;padding:30px;text-align:center;background:linear-gradient(180deg,#fafcfc,#f1f7f8);margin-bottom:18px;cursor:pointer}
  .dropzone.drag{border-color:var(--accent);background:#e9f5f7}.dropzone b{color:var(--brand);font-size:16px}.dropzone p{color:var(--muted);margin:4px 0 0}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .pdfview .page{height:380px;background:#f4f7f7;display:flex;align-items:center;justify-content:center;color:var(--muted);white-space:pre-wrap;padding:18px;overflow:auto;text-align:left;font-size:13px}
  .meta-row{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:12px 16px;border-top:1px solid var(--line)}.meta-row b{color:var(--ink)}
  .qr-card{padding:22px;display:flex;gap:22px;align-items:center}.qr-box{width:150px;height:150px;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff;flex:none}.qr-box svg{width:100%;height:100%}
  .modal-bg{position:fixed;inset:0;background:rgba(8,30,36,.45);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px}
  .modal{background:#fff;border-radius:16px;width:460px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}
  .modal.wide{width:720px}
  .field textarea.code-ta{font-family:Consolas,Menlo,monospace;font-size:12px;line-height:1.45;background:#0d2b33;color:#bfe7ee;border-color:#0d2b33;resize:vertical}
  .modal .mh{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center}.modal .mh h3{margin:0;color:var(--brand)}.modal .mh .x{margin-left:auto;cursor:pointer;color:var(--muted);font-size:20px}
  .modal .mb{padding:20px 22px}.modal .mf{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px}
  .toast{position:fixed;bottom:18px;right:18px;background:var(--brand);color:#fff;padding:12px 18px;border-radius:12px;z-index:90;box-shadow:var(--shadow);font-size:13px;opacity:0;transform:translateY(10px);transition:.25s}.toast.show{opacity:1;transform:none}
  .logout-btn{margin-left:auto;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#cfe1e5;background:rgba(255,255,255,.07);transition:.15s}
  .logout-btn:hover{background:rgba(210,85,63,.85);color:#fff}
  .logout-btn svg{width:22px;height:22px}
  .mtabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:18px}
  .mtabs button{border:none;background:transparent;padding:11px 18px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;display:flex;align-items:center;gap:8px}
  .mtabs button:hover{color:var(--brand)}
  .mtabs button.on{color:var(--brand);border-bottom-color:var(--accent)}
  .code-layout{display:grid;grid-template-columns:240px 1fr;gap:16px}
  .code-list .rub{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin:6px 6px 8px}
  .code-list .ci{padding:10px 12px;border-radius:10px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink);border:1px solid var(--line);margin-bottom:8px;background:#fff}
  .code-list .ci:hover{border-color:var(--accent)}.code-list .ci.on{background:var(--brand);color:#fff;border-color:var(--brand)}
  .code-stage{min-height:380px;border-radius:14px;background:radial-gradient(circle at 50% 40%,#eef6f7,#dde9ec);border:1px solid var(--line);padding:18px;display:flex;align-items:center;justify-content:center}
  @media(max-width:980px){.stats{grid-template-columns:1fr 1fr}.machines{grid-template-columns:1fr}.chat-wrap,.two-col{grid-template-columns:1fr}#login .left{display:none}#login .right{width:100%;border-radius:0}}

/* ===== couche 2 : sv-redesign ===== */
:root { --sv-blue:#0879df; --sv-blue-2:#25a8ff; --sv-red:#ff2b43; --sv-green:#35df84; --sv-orange:#ffb339; }
html[data-theme="night"] {
  --brand:#0879df; --brand-700:#045cae; --accent:#1597ff; --accent-2:#48b9ff; --ink:#eaf6ff; --muted:#8aa9c1;
  --bg:#031524; --card:#08233a; --line:rgba(69,170,239,.20); --ok:#39dd86; --warn:#ffb439; --err:#ff465d; --soft:#0b2a44;
  --shadow:0 16px 50px rgba(0,0,0,.22),0 0 0 1px rgba(31,142,224,.03); --radius:14px;
  --sidebar:#041827; --top:#061c2f; --field:#061d31; --hover:#0a3150; --panel:#08233a; --panel2:#092a46; --hero:#06243d;
}
html[data-theme="day"] {
  --brand:#076fc8; --brand-700:#055ca8; --accent:#087fe8; --accent-2:#48aefe; --ink:#0a2850; --muted:#68819d;
  --bg:#f1f7fc; --card:#ffffff; --line:#d8e7f4; --ok:#1ba861; --warn:#dd941d; --err:#ef3e52; --soft:#eaf3fb;
  --shadow:0 15px 35px rgba(37,92,137,.08),0 2px 8px rgba(31,95,145,.04); --radius:16px;
  --sidebar:#ffffff; --top:rgba(255,255,255,.94); --field:#f8fbfe; --hover:#edf6fd; --panel:#ffffff; --panel2:#f7fbff; --hero:#eaf4fc;
}
* { scrollbar-width:thin; scrollbar-color:var(--brand) transparent; }
body { background:var(--bg); color:var(--ink); transition:background .25s ease,color .25s ease; }
body:before { content:""; position:fixed; inset:0; pointer-events:none; z-index:-1; opacity:.22; background-image:linear-gradient(rgba(55,143,201,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(55,143,201,.08) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(to bottom,black,transparent 82%); }
html[data-theme="day"] body:before { opacity:.12; }
a { color:var(--accent); }
.btn { border-radius:10px; transition:.18s ease; }
.btn-primary { background:linear-gradient(135deg,var(--brand),var(--accent)); color:#fff; box-shadow:0 8px 22px rgba(8,121,223,.22); }
.btn-primary:hover { background:linear-gradient(135deg,#0a89f3,#0876d8); transform:translateY(-1px); }
.btn-ghost { background:transparent; color:var(--ink); border:1px solid var(--line); }
.btn-ghost:hover { background:var(--hover); border-color:rgba(46,155,229,.45); }
.field input,.field select,.field textarea,.search input,.composer input { background:var(--field); border-color:var(--line); color:var(--ink); }
.field input::placeholder,.field textarea::placeholder,.composer input::placeholder,.top-search input::placeholder { color:var(--muted); }

/* LOGIN */
#login { background:radial-gradient(circle at 22% 18%,rgba(19,129,219,.28),transparent 30%),linear-gradient(125deg,#031321 0%,#06233c 52%,#03121e 100%); overflow:hidden; }
#login:before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(41,154,230,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(41,154,230,.08) 1px,transparent 1px); background-size:38px 38px; opacity:.7; }
#login:after { content:"SV"; position:absolute; left:7%; bottom:-8%; font-size:28vw; font-weight:900; color:rgba(27,139,227,.035); letter-spacing:-.12em; line-height:1; }
#login .left,#login .right { position:relative; z-index:2; }
.login-logo { width:min(360px,72%); height:112px; object-fit:contain; object-position:left center; margin:0 0 28px -8px; }
#login .brand-tag { color:#63beff; letter-spacing:.22em; font-size:11px; }
#login h1 { color:#fff; font-size:clamp(36px,4.1vw,62px); max-width:720px; letter-spacing:-.035em; }
#login h1 span { color:#2aa8ff; }
#login p.lead { color:#a8c4d9; font-size:16px; max-width:590px; }
#login .right { width:440px; margin:24px 24px 24px 0; border-radius:24px; background:rgba(7,29,48,.88); border:1px solid rgba(66,165,232,.22); color:#eaf6ff; backdrop-filter:blur(18px); box-shadow:0 30px 80px rgba(0,0,0,.34); }
#login h2 { color:#fff; font-size:26px; } #login .sub { color:#89a9c1; }
#login .right .field input { background:#061b2e; color:#fff; border-color:rgba(75,165,226,.25); }
#login .cred-bubble { background:#061829; border:1px solid rgba(40,154,234,.22); box-shadow:none; } #login .cred-bubble::before { background:#061829; }
html[data-theme="day"] #login { background:radial-gradient(circle at 17% 16%,#dcefff 0,transparent 34%),linear-gradient(135deg,#f9fcff,#e8f3fb); color:var(--ink); }
html[data-theme="day"] #login:after { color:rgba(6,112,202,.04); }
html[data-theme="day"] #login h1 { color:#092952; } html[data-theme="day"] #login h1 span { color:#087ee5; } html[data-theme="day"] #login p.lead { color:#607d9c; }
html[data-theme="day"] #login .right { background:rgba(255,255,255,.9); border-color:#d9e9f5; color:var(--ink); box-shadow:0 28px 80px rgba(41,100,146,.16); }
html[data-theme="day"] #login h2 { color:#0a3769; } html[data-theme="day"] #login .sub { color:var(--muted); } html[data-theme="day"] #login .right .field input { background:#f7fbff; color:var(--ink); border-color:#d6e6f3; }
html[data-theme="day"] #login .cred-bubble { background:linear-gradient(135deg,#0879df,#065bab); color:#e9f6ff; } html[data-theme="day"] #login .cred-bubble::before { background:#0879df; }

/* SHELL */
#app { background:var(--bg); }
.sidebar { width:264px; background:linear-gradient(180deg,var(--sidebar),color-mix(in srgb,var(--sidebar) 86%,#00101d)); color:var(--muted); border-right:1px solid var(--line); box-shadow:10px 0 40px rgba(0,0,0,.08); overflow:hidden; }
.sidebar:before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:linear-gradient(to bottom,var(--sv-red) 0 72px,transparent 72px 100%); }
.sidebar:after { content:""; position:absolute; left:0; right:0; bottom:74px; height:210px; pointer-events:none; opacity:.2; background:linear-gradient(145deg,transparent 30%,rgba(21,151,255,.15)),repeating-linear-gradient(0deg,transparent 0 24px,rgba(54,159,224,.16) 25px),repeating-linear-gradient(90deg,transparent 0 32px,rgba(54,159,224,.12) 33px); clip-path:polygon(0 38%,100% 0,100% 100%,0 100%); }
.sidebar .logo { min-height:112px; padding:14px 18px 12px; gap:6px; flex-direction:column; align-items:flex-start; justify-content:center; border-bottom:1px solid var(--line); position:relative; z-index:2; }
.brand-logo { width:205px; height:66px; object-fit:contain; object-position:left center; display:block; }
.brand-copy { display:flex; align-items:center; gap:8px; color:var(--muted); padding-left:4px; } .brand-copy b,.brand-copy small { font-size:9px!important; letter-spacing:.21em!important; color:var(--muted)!important; }
.nav { padding:12px 12px 245px; position:relative; z-index:2; }
.nav .grp { color:color-mix(in srgb,var(--muted) 75%,transparent); font-size:9px; letter-spacing:.18em; margin:14px 12px 7px; }
.nav a { position:relative; color:var(--muted); padding:10px 13px; margin:3px 0; border:1px solid transparent; border-radius:10px; font-size:13px; }
.nav a:hover { color:var(--ink); background:var(--hover); border-color:var(--line); }
.nav a.active { color:#fff; background:linear-gradient(90deg,rgba(8,121,223,.22),rgba(8,121,223,.08)); border-color:rgba(35,151,231,.28); box-shadow:inset 0 0 26px rgba(19,140,226,.08); }
.nav a.active:before { content:""; position:absolute; left:-13px; top:7px; bottom:7px; width:4px; border-radius:3px; background:var(--sv-red); box-shadow:0 0 14px rgba(255,43,67,.45); }
.nav a.active .ic { color:#45b7ff; } .nav a .badge { background:rgba(16,144,237,.22); color:#5cc3ff; border:1px solid rgba(45,166,245,.28); }
html[data-theme="day"] .nav a.active { color:#fff; background:linear-gradient(135deg,#087ce3,#0568c3); box-shadow:0 9px 24px rgba(7,112,203,.18); }
html[data-theme="day"] .nav a.active .ic { color:#fff; } html[data-theme="day"] .nav a.active:before { background:var(--sv-red); }
.sidebar .foot { position:relative; z-index:3; background:color-mix(in srgb,var(--sidebar) 88%,transparent); border-top:1px solid var(--line); backdrop-filter:blur(8px); }
.sidebar .foot .av { background:linear-gradient(135deg,#0c87f1,#42b9ff); color:#fff; box-shadow:0 0 0 4px rgba(18,143,228,.1); }
.logout-btn { color:var(--muted); background:var(--soft); }

.main { background:var(--bg); min-height:100vh; }
.topbar { height:72px; padding:0 22px; background:var(--top); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); gap:12px; }
.crumb { min-width:130px; color:var(--muted); } .crumb b { color:var(--ink); font-size:13px; }
.top-search { width:min(520px,42vw); height:42px; display:flex; align-items:center; gap:10px; padding:0 11px; border:1px solid var(--line); border-radius:10px; background:var(--field); color:var(--muted); box-shadow:inset 0 1px 0 rgba(255,255,255,.02); }
.top-search svg { width:18px; height:18px; flex:none; } .top-search input { min-width:0; flex:1; border:0; outline:0; color:var(--ink); background:transparent; font:inherit; font-size:12.5px; }
.top-search kbd { border:1px solid var(--line); border-radius:5px; padding:2px 6px; color:var(--muted); font:10px/1.3 ui-monospace,monospace; background:var(--soft); white-space:nowrap; }
.top-icon { position:relative; width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; background:var(--field); color:var(--muted); } .top-icon svg { width:18px; } .top-icon:hover { color:var(--accent); border-color:rgba(43,157,232,.42); }
.notify-dot { position:absolute; width:7px; height:7px; border-radius:50%; background:var(--sv-red); right:7px; top:6px; box-shadow:0 0 0 3px var(--top); }
.pill-machine { background:var(--soft); border-color:var(--line); color:var(--accent); }
.lang-toggle { border-color:var(--line); background:var(--field); } .lang-toggle button { background:transparent; color:var(--muted); } .lang-toggle button.on { background:var(--brand); color:#fff; }
.content { padding:24px 26px 34px; }
h2.title { color:var(--ink); font-size:25px; letter-spacing:-.025em; } .subtitle { color:var(--muted); }
.card { background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 94%,#000)); border-color:var(--line); box-shadow:var(--shadow); }
html[data-theme="day"] .card { background:var(--card); }

/* JOUR / NUIT switch */
.theme-toggle { height:38px; display:flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:11px; padding:0 9px; background:var(--field); color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; }
.theme-track { width:32px; height:17px; border-radius:20px; background:var(--soft); border:1px solid var(--line); padding:2px; display:block; position:relative; } .theme-track i { display:block; width:11px; height:11px; border-radius:50%; background:var(--brand); transform:translateX(14px); transition:.2s ease; box-shadow:0 0 10px rgba(21,151,255,.5); }
html[data-theme="day"] .theme-track i { transform:translateX(0); background:#ffb61f; box-shadow:0 0 10px rgba(255,182,31,.38); }
.theme-day-word,.theme-night-word { opacity:.48; } html[data-theme="day"] .theme-day-word,html[data-theme="night"] .theme-night-word { opacity:1; color:var(--ink); }
.theme-toggle-login { position:absolute; right:28px; top:28px; z-index:10; background:rgba(5,28,46,.8); border-color:rgba(87,173,231,.24); color:#9bb8ce; backdrop-filter:blur(12px); }
html[data-theme="day"] .theme-toggle-login { background:rgba(255,255,255,.82); border-color:#d7e6f2; color:#62809b; }

/* DASHBOARD selected concept */
.dash-hero { min-height:235px; border:1px solid var(--line); border-radius:18px; overflow:hidden; position:relative; display:grid; grid-template-columns:1.05fr .95fr; margin-bottom:16px; background:radial-gradient(circle at 80% 20%,rgba(20,135,221,.25),transparent 35%),linear-gradient(120deg,var(--hero),color-mix(in srgb,var(--hero) 82%,#00101f)); box-shadow:var(--shadow); }
.dash-hero:before { content:""; position:absolute; inset:0; background:linear-gradient(120deg,transparent 0 54%,rgba(29,150,226,.08) 54% 55%,transparent 55% 100%),repeating-linear-gradient(90deg,transparent 0 48px,rgba(47,157,225,.055) 49px); opacity:.9; }
.dash-hero-copy { position:relative; z-index:2; padding:34px 34px; display:flex; flex-direction:column; justify-content:center; } .eyebrow { font-size:10px; font-weight:800; letter-spacing:.25em; color:var(--accent-2); margin-bottom:11px; }
.dash-hero h1 { margin:0; color:var(--ink); font-size:clamp(31px,3vw,48px); line-height:1.02; letter-spacing:-.045em; } .dash-hero h1 em { font-style:normal; color:var(--accent); } .dash-hero p { max-width:650px; color:var(--muted); font-size:14px; margin:13px 0 0; } .red-rule { width:46px; height:4px; border-radius:4px; background:var(--sv-red); margin-top:17px; box-shadow:0 0 16px rgba(255,43,67,.32); }
.dash-hero-art { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; min-height:225px; } .hero-machine { width:92%; color:rgba(72,180,247,.42); position:relative; } .hero-machine svg { width:100%; max-height:205px; stroke-width:1.5; filter:drop-shadow(0 0 18px rgba(19,143,226,.18)); } .hero-machine span { position:absolute; right:8%; top:28%; font-size:10px; line-height:1.9; letter-spacing:.25em; color:var(--muted); border-left:2px solid var(--sv-red); padding-left:16px; }
html[data-theme="day"] .dash-hero { background:radial-gradient(circle at 80% 18%,#d3eaff,transparent 40%),linear-gradient(120deg,#ffffff,#edf6fd); } html[data-theme="day"] .hero-machine { color:rgba(15,112,195,.26); }
.neo-stats { margin-bottom:16px; } .neo-stats .stat { min-height:95px; display:flex; align-items:center; gap:16px; padding:16px; } .stat-icon { width:50px; height:50px; flex:none; display:grid; place-items:center; border-radius:11px; color:#55c1ff; background:linear-gradient(135deg,rgba(8,121,223,.26),rgba(22,145,229,.09)); border:1px solid rgba(63,173,239,.18); font-weight:900; font-size:19px; } .stat-icon.gear { color:#48e29a; } .stat-icon.people { color:#ff6475; letter-spacing:-5px; padding-right:5px; font-size:14px; } .stat-icon.qrmini { color:#bb8cff; } .stat .v { color:var(--ink); font-size:27px; margin-top:1px; } .stat .k { color:var(--muted); } .stat .t { color:var(--ok); font-size:11px; }
.dashboard-grid { display:grid; grid-template-columns:1.5fr 1fr .78fr; gap:14px; align-items:start; } .dash-panel { padding:15px; min-width:0; } .dash-panel header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:14px; } .dash-panel header h3 { margin:3px 0 0; font-size:15px; color:var(--ink); } .panel-kicker { color:var(--accent-2); font-size:9px; font-weight:800; letter-spacing:.13em; } .dash-panel header a { font-size:11px; }
.fleet-panel { grid-column:span 2; } .fleet-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; } .fleet-card { border:1px solid var(--line); border-radius:11px; padding:9px; background:color-mix(in srgb,var(--panel2) 88%,transparent); cursor:pointer; transition:.18s; } .fleet-card:hover { transform:translateY(-2px); border-color:rgba(46,164,238,.44); box-shadow:0 12px 28px rgba(0,0,0,.12); } .fleet-visual { height:68px; display:grid; place-items:center; color:#55b9f4; background:radial-gradient(circle at 50% 40%,rgba(28,137,219,.14),transparent 66%); } .fleet-visual svg { width:100%; height:62px; opacity:.7; } .fleet-name { display:flex; align-items:center; gap:6px; color:var(--ink); font-size:12px; } .fleet-card small { color:var(--muted); font-size:10px; display:block; margin:2px 0 8px 13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .status-dot { width:7px; height:7px; border-radius:50%; } .status-dot.ok { background:var(--ok); box-shadow:0 0 9px rgba(57,221,134,.35); } .status-dot.wait { background:var(--warn); } .status-dot.err { background:var(--err); box-shadow:0 0 9px rgba(255,70,93,.35); } .fleet-status { display:block; border-radius:18px; text-align:center; padding:4px 7px; font-size:9px; font-weight:800; } .fleet-status.ok { background:rgba(48,220,130,.13); color:var(--ok); } .fleet-status.wait { background:rgba(255,180,57,.13); color:var(--warn); } .fleet-status.err { background:rgba(255,70,93,.13); color:var(--err); }
.assistant-panel { min-height:274px; } .beta-pill { font-size:9px; font-weight:800; color:#56baff; background:rgba(13,134,219,.14); border:1px solid rgba(43,162,233,.24); border-radius:12px; padding:3px 8px; } .assistant-orb { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:23px; background:radial-gradient(circle at 32% 28%,#69c9ff,#087de2 65%); box-shadow:0 0 30px rgba(18,141,229,.25); } .assistant-panel h4 { margin:10px 0 3px; font-size:16px; } .assistant-panel p { color:var(--muted); font-size:12px; line-height:1.5; } .assistant-suggestion { width:100%; text-align:left; display:flex; justify-content:space-between; margin:6px 0; border:1px solid var(--line); background:var(--field); color:var(--ink); border-radius:8px; padding:8px 10px; font-size:11px; } .assistant-suggestion:hover { border-color:rgba(52,169,238,.43); background:var(--hover); }
.index-panel { min-height:220px; } .index-body { display:flex; align-items:center; gap:22px; padding:8px 5px; } .ring { --p:0; width:118px; height:118px; border-radius:50%; flex:none; display:grid; place-items:center; position:relative; background:conic-gradient(var(--accent) calc(var(--p)*1%),rgba(116,160,190,.18) 0); } .ring:after { content:""; position:absolute; inset:15px; border-radius:50%; background:var(--panel); border:1px solid var(--line); } .ring strong,.ring span { position:absolute; z-index:2; } .ring strong { font-size:24px; color:var(--ink); transform:translateY(-7px); } .ring span { font-size:10px; color:var(--muted); transform:translateY(14px); } .index-legend { flex:1; } .index-legend>div { display:grid; grid-template-columns:10px 1fr auto; gap:8px; padding:7px 0; border-bottom:1px solid var(--line); font-size:11px; } .index-legend i { width:7px; height:7px; border-radius:50%; margin-top:4px; } .index-legend i.g { background:var(--ok); } .index-legend i.r { background:var(--err); } .index-legend i.b { background:var(--accent); } .index-legend span { color:var(--muted); } .index-legend b { color:var(--ink); }
.live-list { display:flex; flex-direction:column; } .live-row { display:grid; grid-template-columns:10px 1fr auto; gap:9px; padding:8px 0; border-bottom:1px solid var(--line); align-items:start; } .live-row:last-child { border-bottom:0; } .live-row b { display:block; font-size:11px; color:var(--ink); } .live-row small { display:block; color:var(--muted); font-size:10px; margin-top:2px; } .live-row time { font-size:9px; color:var(--muted); } .live-dot { width:7px; height:7px; border-radius:50%; margin-top:4px; background:var(--accent); } .live-dot.l1 { background:var(--ok); } .live-dot.l2 { background:var(--sv-red); } .live-dot.l3 { background:#a880ff; }
.qr-panel { min-height:220px; } .qr-illustration { display:flex; align-items:center; gap:16px; } .qr-illustration p { color:var(--muted); font-size:11px; } .fake-qr { width:104px; height:104px; padding:8px; flex:none; background:#fff; display:grid; grid-template-columns:repeat(3,1fr); gap:4px; border-radius:8px; border:1px solid var(--line); } .fake-qr i { background:#061420; border-radius:2px; } .fake-qr i:nth-child(2),.fake-qr i:nth-child(6),.fake-qr i:nth-child(8) { background:#fff; border:5px solid #061420; } .errors-panel { margin-top:14px; padding:16px; } .errors-panel h5 { margin:0 0 12px; color:var(--err); font-size:11px; text-transform:uppercase; }

/* Generic components in both themes */
.m-card .ph { background:linear-gradient(145deg,#0a3356,#075fa8); color:#6ac7ff; border-bottom:1px solid var(--line); } html[data-theme="day"] .m-card .ph { background:linear-gradient(145deg,#eaf5fd,#d9edfb); color:#0877d5; } .m-card .ph svg { stroke:currentColor!important; } .m-card .tag { background:color-mix(in srgb,var(--card) 92%,transparent); color:var(--brand); border:1px solid var(--line); } .m-card .bd .go { color:var(--accent); }
.chat .hd,.composer,.modal .mh,.modal .mf { background:var(--panel); border-color:var(--line); } .stream { background:color-mix(in srgb,var(--bg) 72%,var(--panel)); } .msg.bot .bubble { background:var(--panel2); color:var(--ink); border-color:var(--line); } .msg.user .bubble { background:linear-gradient(135deg,#087ce2,#075fab); color:#fff; } .msg.bot .ava,.chat .hd .bot { color:#fff; background:linear-gradient(135deg,#0878de,#35b5ff); } .sources .src { background:var(--soft); border-color:var(--line); color:var(--accent-2); } .resolved button,.suggest button { background:var(--field); color:var(--ink); border-color:var(--line); } .composer .send { background:linear-gradient(135deg,var(--brand),var(--accent)); }
.side-panel h5 { color:var(--accent-2); } .doc-row { border-color:var(--line); } .doc-row .fi { background:rgba(255,48,68,.1); color:var(--err); } .hist-item:hover { background:var(--hover); }
thead th { background:color-mix(in srgb,var(--brand) 48%,#05203a); color:#fff; border-bottom:1px solid var(--line); } html[data-theme="day"] thead th { background:#0a6cc3; } tbody td { border-color:var(--line); } tbody tr:hover { background:var(--hover); } .filters .f { background:var(--field); border-color:var(--line); color:var(--muted); } .filters .f.on { background:var(--brand); color:#fff; } .dropzone { background:linear-gradient(180deg,var(--panel2),var(--soft)); border-color:rgba(55,159,225,.35); } .pdfview .page { background:var(--field); color:var(--ink); } .meta-row { border-color:var(--line); } .modal-bg { background:rgba(0,9,18,.68); backdrop-filter:blur(5px); } .modal { background:var(--panel); color:var(--ink); border:1px solid var(--line); } .modal .mh h3 { color:var(--ink); } .toast { background:#0a76d4; } .mtabs { border-color:var(--line); } .mtabs button { color:var(--muted); } .mtabs button.on { color:var(--accent-2); border-bottom-color:var(--sv-red); } .code-list .ci { background:var(--field); border-color:var(--line); color:var(--ink); } .code-list .ci.on { background:var(--brand); color:#fff; } .code-stage { background:radial-gradient(circle at 50% 40%,var(--panel2),var(--bg)); border-color:var(--line); }

@media(max-width:1200px) { .top-search { width:340px; } .dashboard-grid { grid-template-columns:1fr 1fr; } .fleet-panel { grid-column:1 / -1; } .fleet-grid { grid-template-columns:repeat(3,1fr); } .assistant-panel { grid-column:auto; } }
@media(max-width:980px) { .sidebar { width:222px; } .brand-logo { width:178px; } .top-search { display:none; } .theme-word { display:none; } .theme-toggle { padding:0 7px; } .dash-hero { grid-template-columns:1fr; } .dash-hero-art { display:none; } .dashboard-grid { grid-template-columns:1fr; } .fleet-panel { grid-column:auto; } .fleet-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:720px) { .sidebar { width:74px; } .sidebar .logo { min-height:76px; padding:8px; } .brand-logo { width:58px; height:52px; object-fit:cover; object-position:left; } .brand-copy,.nav .grp,.nav a span:not(.badge),.sidebar .foot>div:not(.av),.logout-btn { display:none; } .nav { padding:10px 9px 160px; } .nav a { justify-content:center; padding:12px; } .nav a.active:before { left:-10px; } .sidebar .foot { justify-content:center; padding:12px 8px; } .content { padding:16px; } .topbar { padding:0 12px; } .crumb { min-width:0; } .lang-toggle { display:none; } .neo-stats { grid-template-columns:1fr 1fr; } .fleet-grid { grid-template-columns:1fr; } }

/* ===== couche 3 : sv-premium-v3 ===== */
/* ====================== SEDAM VALENTIN PREMIUM V3 ====================== */
html[data-theme="night"]{--hero-photo:none;--glass:rgba(5,29,49,.72);--glass-strong:rgba(4,24,41,.88);--hero-copy-bg:linear-gradient(90deg,rgba(2,18,31,.94) 0%,rgba(2,22,38,.80) 58%,rgba(2,22,38,0) 100%);--glow:rgba(0,151,255,.32);}
html[data-theme="day"]{--hero-photo:none;--glass:rgba(255,255,255,.78);--glass-strong:rgba(255,255,255,.93);--hero-copy-bg:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(250,253,255,.86) 57%,rgba(255,255,255,0) 100%);--glow:rgba(3,121,221,.20);}

body{overflow-x:hidden;background:
 radial-gradient(circle at 85% 6%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 22%),
 var(--bg);}
body:after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 70% 22%,var(--glow),transparent 28%),radial-gradient(circle at 16% 76%,rgba(255,43,67,.055),transparent 23%);opacity:.8;transition:opacity .35s ease;}

/* Premium login with real visual background */
#login .left{isolation:isolate;overflow:hidden;padding:6vw 6vw 7vw;background-image:linear-gradient(90deg,rgba(2,19,33,.96),rgba(3,28,48,.76) 52%,rgba(3,28,48,.30)),var(--hero-photo);background-size:cover;background-position:center;}
#login .left:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 52%,rgba(3,18,31,.86)),repeating-linear-gradient(90deg,transparent 0 75px,rgba(63,173,245,.035) 76px);}
html[data-theme="day"] #login .left{background-image:linear-gradient(90deg,rgba(248,252,255,.98),rgba(248,252,255,.86) 48%,rgba(248,252,255,.22)),var(--hero-photo);}
html[data-theme="day"] #login .left:before{background:linear-gradient(180deg,transparent 55%,rgba(238,247,254,.86)),repeating-linear-gradient(90deg,transparent 0 75px,rgba(7,112,202,.025) 76px);}
#login .right{animation:svLoginIn .6s cubic-bezier(.2,.75,.25,1) both;}
@keyframes svLoginIn{from{opacity:0;transform:translateX(28px) scale(.985)}to{opacity:1;transform:none}}

/* shell depth */
.sidebar{backdrop-filter:blur(20px);}
.topbar{box-shadow:0 12px 34px rgba(0,0,0,.05);}
.content{max-width:1760px;width:100%;margin:0 auto;}
.card,.fleet-card,.quick-action,.assistant-suggestion,.top-search,.theme-toggle{transition:transform .22s cubic-bezier(.2,.75,.25,1),box-shadow .22s ease,border-color .22s ease,background .22s ease;}
.card{position:relative;overflow:hidden;}
.card:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(91,193,255,.32),transparent);pointer-events:none;opacity:.75;}
html[data-theme="day"] .card:before{background:linear-gradient(90deg,transparent,rgba(7,112,202,.17),transparent);}
.card.premium-hover:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:0 24px 60px rgba(0,0,0,.14),0 0 38px color-mix(in srgb,var(--accent) 8%,transparent);}
html[data-theme="day"] .card.premium-hover:hover{box-shadow:0 22px 55px rgba(29,91,138,.13);}

/* realistic cinematic hero */
.dash-hero.premium-hero{height:305px;min-height:305px;display:block;position:relative;isolation:isolate;background-image:var(--hero-photo);background-size:cover;background-position:center 48%;border-radius:22px;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);overflow:hidden;box-shadow:0 28px 70px rgba(0,0,0,.22);margin-bottom:18px;}
.dash-hero.premium-hero:before{content:"";position:absolute;inset:0;z-index:0;background:var(--hero-copy-bg);opacity:1;}
.dash-hero.premium-hero:after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 48%,rgba(0,0,0,.15)),linear-gradient(110deg,transparent 56%,rgba(20,154,245,.11) 56.2%,transparent 57%);pointer-events:none;}
.premium-hero-copy{position:relative;z-index:2;width:min(670px,58%);height:100%;padding:34px 38px;display:flex;flex-direction:column;justify-content:center;}
.premium-hero .eyebrow{display:flex;align-items:center;gap:9px;color:#62c4ff;font-size:10px;font-weight:900;letter-spacing:.25em;text-transform:uppercase;margin-bottom:10px;}
.premium-hero .eyebrow:before{content:"";width:32px;height:2px;background:var(--sv-red);box-shadow:0 0 14px rgba(255,43,67,.45);}
.premium-hero h1{font-size:clamp(34px,3.2vw,53px);line-height:.98;letter-spacing:-.05em;margin:0;color:#fff;text-shadow:0 8px 28px rgba(0,0,0,.22);}
.premium-hero h1 span{color:#35abff;}
.premium-hero p{color:#c4d8e8;font-size:14px;max-width:585px;margin:13px 0 18px;line-height:1.55;}
.premium-hero .hero-actions{display:flex;gap:9px;flex-wrap:wrap;}
.premium-hero .hero-actions button{border:1px solid rgba(113,199,255,.28);background:rgba(5,35,59,.60);color:#fff;backdrop-filter:blur(10px);padding:10px 14px;border-radius:10px;font-size:12px;font-weight:800;}
.premium-hero .hero-actions button.primary{background:linear-gradient(135deg,#078af5,#076bc8);border-color:#35aeff;box-shadow:0 10px 30px rgba(3,121,221,.28);}
.premium-hero .hero-actions button:hover{transform:translateY(-2px);border-color:#68c5ff;}
.premium-hero .hero-caption{position:absolute;right:22px;bottom:18px;z-index:2;display:flex;gap:14px;align-items:center;color:rgba(255,255,255,.78);font-size:9px;font-weight:800;letter-spacing:.19em;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.45);}
.premium-hero .hero-caption i{width:42px;height:3px;border-radius:4px;background:linear-gradient(90deg,#0c8ff5 0 50%,#fff 50% 72%,#f52d43 72%);}
html[data-theme="day"] .premium-hero h1{color:#09294f;text-shadow:none;}
html[data-theme="day"] .premium-hero p{color:#536f8b;}
html[data-theme="day"] .premium-hero .eyebrow{color:#0877d3;}
html[data-theme="day"] .premium-hero .hero-actions button{background:rgba(255,255,255,.80);color:#0a315b;border-color:rgba(13,114,196,.18);}
html[data-theme="day"] .premium-hero .hero-actions button.primary{background:linear-gradient(135deg,#078af5,#076bc8);color:#fff;}

/* KPI row */
.premium-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;}
.premium-kpi{padding:15px 16px;display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center;background:linear-gradient(145deg,var(--glass-strong),var(--glass));backdrop-filter:blur(16px);}
.premium-kpi .kpi-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#159cff,#046ad1);box-shadow:0 10px 26px rgba(8,121,223,.22);font-size:21px;}
.premium-kpi.red .kpi-icon{background:linear-gradient(145deg,#ff6475,#f02c43);box-shadow:0 10px 26px rgba(240,44,67,.22);}
.premium-kpi.green .kpi-icon{background:linear-gradient(145deg,#36e18c,#129a59);box-shadow:0 10px 26px rgba(18,154,89,.18);}
.premium-kpi.purple .kpi-icon{background:linear-gradient(145deg,#a786ff,#6a48df);box-shadow:0 10px 26px rgba(106,72,223,.18);}
.premium-kpi .kpi-label{font-size:11px;color:var(--muted);font-weight:700;}
.premium-kpi .kpi-value{font-size:29px;line-height:1.05;font-weight:900;color:var(--ink);margin-top:2px;letter-spacing:-.035em;}
.premium-kpi .kpi-trend{font-size:10px;font-weight:900;color:var(--ok);white-space:nowrap;}

/* Main dashboard mosaic */
.premium-dashboard-grid{display:grid;grid-template-columns:1.08fr .9fr .92fr;gap:14px;align-items:stretch;}
.premium-panel{padding:16px;background:linear-gradient(145deg,var(--glass-strong),var(--glass));backdrop-filter:blur(17px);min-width:0;}
.premium-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px;}
.premium-panel h3{font-size:14px;margin:2px 0;color:var(--ink);}
.premium-panel .panel-kicker{font-size:8.5px;letter-spacing:.18em;color:var(--accent-2);font-weight:900;}
.premium-panel header a{font-size:10px;font-weight:800;color:var(--accent);}
.activity-panel{grid-row:span 2;}
.chart-panel{min-height:263px;}
.assistant-panel-premium{min-height:263px;}
.quick-panel{min-height:255px;}
.fleet-panel-premium{grid-column:span 2;}

/* timeline */
.timeline{position:relative;margin-top:4px;}
.timeline:before{content:"";position:absolute;left:13px;top:12px;bottom:12px;width:1px;background:linear-gradient(var(--sv-red),var(--accent),var(--ok));opacity:.75;}
.timeline-item{position:relative;display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:9px 0;align-items:start;border-bottom:1px solid var(--line);}
.timeline-item:last-child{border-bottom:0;}
.timeline-dot{width:11px;height:11px;margin:5px auto 0;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 15%,transparent),0 0 14px color-mix(in srgb,var(--accent) 45%,transparent);position:relative;z-index:2;}
.timeline-item:nth-child(2) .timeline-dot{background:var(--sv-red)}
.timeline-item:nth-child(3) .timeline-dot{background:var(--warn)}
.timeline-item:nth-child(4) .timeline-dot{background:#9a79ff}
.timeline-item:nth-child(5) .timeline-dot{background:var(--ok)}
.timeline-item b{font-size:11px;color:var(--ink);display:block;}
.timeline-item small{font-size:9.5px;color:var(--muted);display:block;margin-top:2px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.timeline-item time{font-size:9px;color:var(--muted);padding-top:3px;white-space:nowrap;}

/* donut */
.status-wrap{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:center;}
.status-donut{width:136px;height:136px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#0c82ed 0 38%,#23c979 38% 65%,#ffbc3d 65% 84%,#ff4d64 84% 100%);box-shadow:0 0 34px rgba(8,121,223,.12);}
.status-donut:before{content:"";position:absolute;inset:22px;border-radius:50%;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);}
.status-donut .inside{position:relative;z-index:2;text-align:center;}
.status-donut strong{font-size:25px;display:block;line-height:1;color:var(--ink);}
.status-donut span{font-size:9px;color:var(--muted);}
.status-legend{display:flex;flex-direction:column;gap:9px;}
.status-legend div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;font-size:10px;}
.status-legend i{width:8px;height:8px;border-radius:50%;}.status-legend span{color:var(--muted)}.status-legend b{color:var(--ink)}

/* chart */
.spark-chart{position:relative;height:178px;border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent),repeating-linear-gradient(0deg,transparent 0 34px,color-mix(in srgb,var(--line) 70%,transparent) 35px),repeating-linear-gradient(90deg,transparent 0 74px,color-mix(in srgb,var(--line) 55%,transparent) 75px);overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);}
.spark-chart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;}
.spark-chart .chart-label{position:absolute;right:12px;top:10px;background:var(--glass-strong);border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:9px;color:var(--muted);backdrop-filter:blur(10px);}
.spark-chart .chart-label b{display:block;color:var(--ink);font-size:12px;}

/* assistant */
.ai-head{display:flex;gap:12px;align-items:center;margin-bottom:9px;}
.ai-orb{width:50px;height:50px;border-radius:50%;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 34% 30%,#75d4ff,#077bdc 66%);color:#fff;font-size:23px;box-shadow:0 0 30px rgba(12,139,231,.27);}
.ai-orb:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(66,184,255,.28);border-radius:50%;animation:aiPulse 2.3s ease-out infinite;}
@keyframes aiPulse{0%{transform:scale(.82);opacity:.8}70%,100%{transform:scale(1.35);opacity:0}}
.ai-copy b{display:block;color:var(--ink);font-size:12px}.ai-copy small{color:var(--muted);font-size:9.5px;}
.ai-box{border:1px solid var(--line);background:var(--field);border-radius:11px;padding:10px;margin:10px 0;font-size:10px;color:var(--muted);line-height:1.45;}
.ai-ask{display:flex;gap:7px;margin-top:9px;}.ai-ask input{flex:1;min-width:0;background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:9px 10px;font-size:10px;outline:0;}.ai-ask button{width:36px;border:0;border-radius:9px;background:linear-gradient(135deg,#0b8bf2,#0569c9);color:#fff;}

/* fleet */
.fleet-cards-premium{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.machine-mini{border:1px solid var(--line);background:var(--field);border-radius:13px;padding:11px;cursor:pointer;position:relative;overflow:hidden;min-height:134px;}
.machine-mini:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 20%,rgba(18,150,240,.12),transparent 35%);pointer-events:none;}
.machine-mini:hover{transform:translateY(-3px);border-color:rgba(60,174,244,.45);box-shadow:0 16px 35px rgba(0,0,0,.11);}
.machine-mini .machine-visual{height:55px;display:grid;place-items:center;color:#52baff;}.machine-mini svg{width:95px;height:55px;opacity:.78;}
.machine-mini strong{display:block;color:var(--ink);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.machine-mini small{display:block;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:2px 0 8px;}
.machine-mini .machine-state{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:4px 7px;background:rgba(34,197,113,.10);color:var(--ok);font-size:8.5px;font-weight:900;}.machine-mini .machine-state i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 9px currentColor;}
.machine-mini.warn .machine-state{background:rgba(255,181,57,.10);color:var(--warn)}.machine-mini.err .machine-state{background:rgba(255,70,93,.10);color:var(--err)}

/* quick actions */
.quick-actions{display:flex;flex-direction:column;gap:7px;}
.quick-action{width:100%;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:10px;padding:7px 9px;font-size:10px;font-weight:800;}
.quick-action i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-style:normal;color:#fff;background:linear-gradient(145deg,#0c8cf2,#076cca);font-size:13px;}.quick-action:nth-child(2) i{background:linear-gradient(145deg,#ffbc43,#e58d08)}.quick-action:nth-child(3) i{background:linear-gradient(145deg,#26c987,#138e5e)}.quick-action:nth-child(4) i{background:linear-gradient(145deg,#a986ff,#6747dc)}.quick-action:nth-child(5) i{background:linear-gradient(145deg,#ff6578,#df2841)}
.quick-action:hover{transform:translateX(3px);border-color:rgba(61,177,247,.42);background:var(--hover);}
.quick-action span:last-child{color:var(--muted)}

/* premium footer strip */
.premium-values{margin:14px 0 0;display:flex;align-items:center;justify-content:center;gap:18px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.24em;text-transform:uppercase;}
.premium-values i{width:38px;height:2px;background:linear-gradient(90deg,#087fe8 0 38%,#fff 38% 62%,#ef3347 62%);}

/* page motion */
.sv-reveal{animation:svReveal .55s cubic-bezier(.2,.78,.24,1) both;}
@keyframes svReveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.sv-reveal:nth-child(2){animation-delay:.04s}.sv-reveal:nth-child(3){animation-delay:.08s}.sv-reveal:nth-child(4){animation-delay:.12s}

/* profile chip */
.top-user-chip{height:42px;display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--field);color:var(--ink);min-width:150px;}
.top-user-chip .mini-av{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#158ff2,#075fae);color:#fff;font-size:9px;font-weight:900;box-shadow:0 0 0 3px rgba(17,139,229,.10);}
.top-user-chip b{display:block;font-size:10px;line-height:1.1}.top-user-chip small{display:block;font-size:8.5px;color:var(--muted);margin-top:2px;}

/* Buttons ripple */
.btn,.quick-action,.assistant-suggestion,.hero-actions button,.theme-toggle,.top-icon{position:relative;overflow:hidden;}
.sv-ripple{position:absolute;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;background:rgba(255,255,255,.25);animation:svRipple .55s ease-out forwards;}
@keyframes svRipple{from{width:0;height:0;opacity:.55}to{width:240px;height:240px;opacity:0}}

@media(max-width:1320px){.premium-dashboard-grid{grid-template-columns:1fr 1fr}.activity-panel{grid-row:auto}.fleet-panel-premium{grid-column:1/-1}.quick-panel{grid-column:auto}.premium-hero-copy{width:65%}.fleet-cards-premium{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1040px){.premium-kpis{grid-template-columns:1fr 1fr}.premium-dashboard-grid{grid-template-columns:1fr}.fleet-panel-premium{grid-column:auto}.premium-hero-copy{width:76%}.top-user-chip{display:none}.fleet-cards-premium{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.dash-hero.premium-hero{height:330px}.premium-hero-copy{width:100%;padding:26px 22px;background:linear-gradient(90deg,rgba(2,20,34,.90),rgba(2,20,34,.62))}.premium-hero .hero-caption{display:none}.premium-kpis{grid-template-columns:1fr}.premium-dashboard-grid{display:block}.premium-panel{margin-bottom:12px}.fleet-cards-premium{grid-template-columns:1fr 1fr}.status-wrap{grid-template-columns:120px 1fr}.status-donut{width:118px;height:118px}.topbar{height:66px}.content{padding:14px}}

/* ===== couche 4 : sv-v5-agent-committee-patch ===== */
/* Agent committee refinement — pass 10/10 */
:root{
  --v5-day-shadow:0 18px 50px rgba(40,92,138,.10),0 4px 14px rgba(50,108,159,.05);
}
html[data-theme="day"]{
  --bg:#f4f8fc;
  --card:#ffffff;
  --field:#f7fbff;
  --soft:#edf5fb;
  --line:#d7e6f2;
  --muted:#647d98;
  --ink:#0d2f57;
  --top:rgba(255,255,255,.88);
  --panel:#ffffff;
  --panel2:#f8fbff;
  --hero:#eef6fd;
  --shadow:var(--v5-day-shadow);
}
html[data-theme="day"] body{
  background:
    radial-gradient(circle at 10% 10%, rgba(80,170,255,.10), transparent 24%),
    radial-gradient(circle at 92% 8%, rgba(255,87,106,.07), transparent 16%),
    linear-gradient(180deg,#f7fbff,#f3f8fc);
}
body::after{
  content:"";
  position:fixed;
  right:-10vw;
  bottom:-16vw;
  width:44vw;
  height:44vw;
  border-radius:50%;
  background:radial-gradient(circle, rgba(34,164,251,.12), transparent 63%);
  filter:blur(22px);
  pointer-events:none;
  z-index:-1;
}
html[data-theme="day"] body::before{opacity:.08;}

/* Full-width connected logo */
body[data-role] .sidebar .logo{
  min-height:132px!important;
  padding:18px 18px 14px!important;
  align-items:stretch!important;
  gap:8px!important;
}
body[data-role] .brand-logo{
  display:block;
  width:100%!important;
  max-width:none!important;
  height:84px!important;
  object-fit:contain;
  object-position:left center;
  filter:drop-shadow(0 12px 22px rgba(0,0,0,.10));
}
body[data-role] .brand-copy{
  width:100%;
  justify-content:space-between;
  flex-wrap:wrap;
}
body[data-role] .brand-copy b,
body[data-role] .brand-copy small{white-space:nowrap;}

/* Abstract visual language instead of image-driven heroes */
#login .left,
.dash-hero.premium-hero,
.client-hero-v4,
.admin-hero-v4{
  background-image:none!important;
  background:
    radial-gradient(circle at 14% 18%, rgba(53,182,255,.24), transparent 22%),
    radial-gradient(circle at 86% 18%, rgba(255,45,67,.14), transparent 18%),
    radial-gradient(circle at 76% 78%, rgba(53,223,132,.11), transparent 18%),
    linear-gradient(135deg,#041524 0%, #072742 48%, #04111d 100%)!important;
  background-size:cover!important;
  background-position:center!important;
  position:relative;
}
html[data-theme="day"] #login .left,
html[data-theme="day"] .dash-hero.premium-hero,
html[data-theme="day"] .client-hero-v4,
html[data-theme="day"] .admin-hero-v4{
  background:
    radial-gradient(circle at 12% 20%, rgba(0,129,255,.12), transparent 24%),
    radial-gradient(circle at 86% 16%, rgba(255,71,94,.10), transparent 18%),
    radial-gradient(circle at 75% 78%, rgba(68,199,147,.10), transparent 18%),
    linear-gradient(135deg,#ffffff 0%, #eef6fd 48%, #f8fbff 100%)!important;
}
#login .left::before,
.dash-hero.premium-hero::before,
.client-hero-v4::before,
.admin-hero-v4::before{
  content:"";
  position:absolute;
  right:-6%;
  top:-10%;
  width:44%;
  height:86%;
  border-radius:36px;
  background:
    radial-gradient(circle at 50% 50%, rgba(94,190,255,.28), transparent 62%),
    radial-gradient(circle at 36% 30%, rgba(255,255,255,.16), transparent 25%),
    linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,0));
  filter:blur(12px);
  opacity:.95;
  transform:rotate(-12deg);
  z-index:0;
}
html[data-theme="day"] #login .left::before,
html[data-theme="day"] .dash-hero.premium-hero::before,
html[data-theme="day"] .client-hero-v4::before,
html[data-theme="day"] .admin-hero-v4::before{
  background:
    radial-gradient(circle at 50% 50%, rgba(19,137,235,.14), transparent 62%),
    radial-gradient(circle at 40% 28%, rgba(255,255,255,.72), transparent 24%),
    linear-gradient(145deg, rgba(255,255,255,.5), rgba(255,255,255,0));
}
#login .left::after,
.dash-hero.premium-hero::after,
.client-hero-v4::after,
.admin-hero-v4::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(120deg, transparent 0 52%, rgba(255,255,255,.06) 52.2%, transparent 53%),
    repeating-linear-gradient(90deg, transparent 0 42px, rgba(116,195,255,.07) 43px 44px),
    repeating-linear-gradient(0deg, transparent 0 34px, rgba(116,195,255,.05) 35px 36px);
  opacity:.75;
  pointer-events:none;
  z-index:0;
}
html[data-theme="day"] #login .left::after,
html[data-theme="day"] .dash-hero.premium-hero::after,
html[data-theme="day"] .client-hero-v4::after,
html[data-theme="day"] .admin-hero-v4::after{opacity:.55;}
#login .left > *{position:relative;z-index:2;}

/* Glass content surfaces inside heroes */
.premium-hero-copy,
.client-hero-copy,
.admin-hero-copy{
  position:relative;
  z-index:2;
  margin:18px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(3,20,34,.70), rgba(3,24,41,.34));
  border:1px solid rgba(111,202,255,.18);
  backdrop-filter:blur(18px);
  box-shadow:0 18px 44px rgba(0,0,0,.16);
}
html[data-theme="day"] .premium-hero-copy,
html[data-theme="day"] .client-hero-copy,
html[data-theme="day"] .admin-hero-copy{
  background:linear-gradient(135deg, rgba(255,255,255,.84), rgba(255,255,255,.56));
  border-color:rgba(113,175,228,.28);
  box-shadow:0 16px 44px rgba(29,84,126,.10);
}
html[data-theme="day"] .client-hero-copy h1,
html[data-theme="day"] .admin-hero-copy h1,
html[data-theme="day"] .premium-hero-copy h1{color:#0a2d55!important;text-shadow:none!important;}
html[data-theme="day"] .client-hero-copy p,
html[data-theme="day"] .admin-hero-copy p,
html[data-theme="day"] .premium-hero-copy p,
html[data-theme="day"] .premium-hero .hero-caption{color:#617c97!important;}
html[data-theme="day"] .client-hero-actions button:not(.primary),
html[data-theme="day"] .admin-hero-actions button:not(.primary){
  background:rgba(255,255,255,.78)!important;
  border-color:#d4e5f3!important;
  color:#0d3158!important;
}
html[data-theme="day"] .client-hero-badge,
html[data-theme="day"] .telemetry-cell{
  background:rgba(255,255,255,.80)!important;
  border-color:#d8e7f4!important;
  color:#5f7b95!important;
}
html[data-theme="day"] .client-hero-badge b,
html[data-theme="day"] .telemetry-cell strong{color:#0d3058!important;}

/* Day mode is now fully coherent for admin too */
html[data-theme="day"] body[data-role="admin"] .sidebar,
html[data-theme="day"] body[data-role="client"] .sidebar{
  background:linear-gradient(180deg,#ffffff,#f5faff)!important;
  color:#6a829b!important;
  box-shadow:10px 0 34px rgba(43,93,136,.08);
}
html[data-theme="day"] body[data-role="admin"] .sidebar::after,
html[data-theme="day"] body[data-role="client"] .sidebar::after{opacity:.08;}
html[data-theme="day"] body[data-role] .nav a,
html[data-theme="day"] body[data-role] .brand-copy b,
html[data-theme="day"] body[data-role] .brand-copy small,
html[data-theme="day"] body[data-role] .sidebar .foot,
html[data-theme="day"] body[data-role] .crumb,
html[data-theme="day"] body[data-role] .role-mode-badge,
html[data-theme="day"] body[data-role] .top-command-hint{color:#617d98!important;}
html[data-theme="day"] body[data-role] .nav .grp{color:#8fa5bb!important;}
html[data-theme="day"] body[data-role] .nav a:hover{
  background:#eef6fd!important;
  color:#0d3059!important;
  border-color:#d7e6f2!important;
}
html[data-theme="day"] body[data-role] .nav a.active{
  background:linear-gradient(135deg,#087de5,#4aaeff)!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(7,122,223,.18)!important;
}
html[data-theme="day"] body[data-role] .nav a.active .ic{color:#fff!important;}
html[data-theme="day"] body[data-role] .sidebar .foot{
  background:rgba(255,255,255,.78)!important;
  border-top-color:#d7e6f2!important;
}
html[data-theme="day"] body[data-role] .logout-btn{background:#eef6fd!important;color:#53718e!important;}
html[data-theme="day"] body[data-role] .topbar{
  background:rgba(255,255,255,.88)!important;
  border-color:#d8e7f4!important;
}
html[data-theme="day"] body[data-role] .top-search,
html[data-theme="day"] body[data-role] .top-icon,
html[data-theme="day"] body[data-role] .role-mode-badge,
html[data-theme="day"] body[data-role] .lang-toggle{
  background:#f7fbff!important;
  border-color:#d7e6f2!important;
}
html[data-theme="day"] body[data-role] .role-sidebar-card{
  background:linear-gradient(145deg,#ffffff,#f1f8ff)!important;
  border-color:#d6e7f4!important;
  box-shadow:0 14px 34px rgba(34,92,137,.10)!important;
}
html[data-theme="day"] body[data-role] .role-sidebar-card strong{color:#0c3766!important;}
html[data-theme="day"] body[data-role] .role-sidebar-card p{color:#69839c!important;}
html[data-theme="day"] body[data-role] .role-sidebar-card .role-label{color:#087de5!important;}

/* Secondary abstract surfaces */
.machine-hub-visual,
.client-machine-visual,
.code-stage{
  background:
    radial-gradient(circle at 50% 40%, rgba(42,169,251,.16), transparent 38%),
    radial-gradient(circle at 80% 18%, rgba(255,62,85,.10), transparent 18%),
    linear-gradient(145deg,var(--soft),color-mix(in srgb,var(--soft) 70%,#041c30))!important;
}
html[data-theme="day"] .machine-hub-visual,
html[data-theme="day"] .client-machine-visual,
html[data-theme="day"] .code-stage{
  background:
    radial-gradient(circle at 50% 40%, rgba(42,169,251,.10), transparent 40%),
    radial-gradient(circle at 80% 18%, rgba(255,62,85,.08), transparent 18%),
    linear-gradient(145deg,#f6fbff,#edf5fb)!important;
}

/* Responsive logo sizing */
@media(max-width:980px){
  body[data-role] .brand-logo{height:74px!important;}
}
@media(max-width:760px){
  body[data-role] .brand-logo{height:58px!important;}
}
@media(max-width:560px){
  body[data-role] .brand-copy{display:none!important;}
}

/* ===== couche 5 : sv-v6-industrial-luxe ===== */
/* ======================================================================
   SEDAM VALENTIN — V9 FINAL CHROMIUM VALIDATED / JOUR + NUIT
   Refinement pass: exceptional industrial premium design system
   ====================================================================== */
:root{
  --sv-gold:#d7b36a;
  --sv-gold-2:#f0dfb1;
  --sv-steel:#8ea5b8;
  --sv-steel-2:#cad7e3;
  --sv-coal:#081521;
  --sv-platinum:#f7fbff;
  --sv-premium-line:rgba(255,255,255,.10);
}
html[data-theme="night"]{
  --bg:#07131d;
  --card:#0d1d2b;
  --field:#102232;
  --soft:#0b1824;
  --line:rgba(154,190,219,.12);
  --muted:#88a2b9;
  --ink:#edf7ff;
  --top:rgba(8,18,29,.78);
  --hero:#0a1722;
  --shadow:0 24px 60px rgba(0,0,0,.32),0 6px 20px rgba(0,0,0,.14);
  --glow:rgba(18,144,233,.18);
}
html[data-theme="day"]{
  --bg:#f2f6fa;
  --card:#ffffff;
  --field:#f7fbff;
  --soft:#edf4fa;
  --line:#d5e2ee;
  --muted:#5d7893;
  --ink:#0d2d4b;
  --top:rgba(255,255,255,.82);
  --hero:#ffffff;
  --shadow:0 18px 48px rgba(30,82,124,.12),0 4px 16px rgba(54,103,143,.06);
}
html,body{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(circle at 14% 8%, rgba(40,157,245,.12), transparent 26%),
    radial-gradient(circle at 88% 10%, rgba(255,58,78,.08), transparent 18%),
    radial-gradient(circle at 72% 82%, rgba(215,179,106,.08), transparent 18%),
    linear-gradient(180deg,#09131d,#08131c 46%,#07111a 100%)!important;
}
html[data-theme="day"] body{
  background:
    radial-gradient(circle at 14% 8%, rgba(40,157,245,.10), transparent 24%),
    radial-gradient(circle at 88% 10%, rgba(255,58,78,.07), transparent 16%),
    radial-gradient(circle at 78% 80%, rgba(215,179,106,.08), transparent 16%),
    linear-gradient(180deg,#f7fbff,#f2f6fa 52%,#eef4f8 100%)!important;
}
body::before{
  opacity:.13!important;
  background-image:
    linear-gradient(rgba(106,184,247,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(106,184,247,.11) 1px,transparent 1px)!important;
  background-size:34px 34px!important;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    linear-gradient(115deg, transparent 0 58%, rgba(255,255,255,.022) 58.15%, transparent 58.3%),
    linear-gradient(0deg, rgba(255,255,255,.02), rgba(255,255,255,0));
}
html[data-theme="day"] body::after{background:linear-gradient(115deg, transparent 0 58%, rgba(255,255,255,.22) 58.15%, transparent 58.3%);opacity:.25;}

/* premium scrollbar */
*::-webkit-scrollbar{width:11px;height:11px}
*::-webkit-scrollbar-thumb{border-radius:999px;background:linear-gradient(180deg,rgba(17,143,237,.88),rgba(215,179,106,.58));border:2px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-track{background:transparent}

/* Sidebar redesigned as industrial-luxe command spine */
body[data-role] .sidebar{
  overflow:hidden;
  border-right:1px solid var(--line)!important;
  background:
    linear-gradient(180deg,rgba(6,19,30,.96),rgba(9,22,35,.98)),
    linear-gradient(90deg, rgba(255,255,255,.02), rgba(255,255,255,0));
  box-shadow:16px 0 40px rgba(0,0,0,.16);
}
html[data-theme="day"] body[data-role] .sidebar{
  background:
    linear-gradient(180deg,#ffffff,#f3f8fc)!important;
  box-shadow:12px 0 36px rgba(27,83,125,.08)!important;
}
body[data-role] .sidebar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.03), transparent 26%),
    repeating-linear-gradient(180deg, transparent 0 44px, rgba(255,255,255,.018) 45px 46px);
  opacity:.55;
}
html[data-theme="day"] body[data-role] .sidebar::before{opacity:.22;}
body[data-role] .sidebar .logo{
  position:relative;
  margin:14px 14px 10px;
  min-height:136px!important;
  padding:16px 16px 14px!important;
  border-radius:24px;
  border:1px solid rgba(132,196,245,.18);
  background:
    linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015)),
    linear-gradient(180deg,rgba(6,26,42,.86),rgba(7,20,31,.60));
  backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 16px 34px rgba(0,0,0,.16);
}
html[data-theme="day"] body[data-role] .sidebar .logo{
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,249,253,.92))!important;
  border-color:#d8e4ef!important;
  box-shadow:0 16px 32px rgba(40,90,129,.10), inset 0 1px 0 rgba(255,255,255,.75)!important;
}
body[data-role] .sidebar .logo::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(circle at 8% 18%, rgba(17,145,242,.22), transparent 24%),
    radial-gradient(circle at 92% 80%, rgba(255,45,67,.14), transparent 18%),
    linear-gradient(125deg, transparent 0 70%, rgba(215,179,106,.12) 70.2%, transparent 71%);
  pointer-events:none;
}
body[data-role] .brand-logo{
  width:100%!important;
  height:92px!important;
  object-fit:contain!important;
  object-position:left center!important;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.16));
}
body[data-role] .brand-copy{
  position:relative;
  z-index:2;
  margin-top:2px;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
body[data-role] .brand-copy b{
  color:var(--ink)!important;
  font-size:11px!important;
  letter-spacing:.16em!important;
  text-transform:uppercase;
}
body[data-role] .brand-copy small{
  color:var(--muted)!important;
  font-size:9px!important;
  letter-spacing:.12em;
}
body[data-role] .nav{padding:12px 14px 290px!important;}
body[data-role] .nav .grp{margin:18px 10px 8px;color:color-mix(in srgb,var(--muted) 85%,#fff);font-size:9px;letter-spacing:.18em;}
body[data-role] .nav a{
  position:relative;
  min-height:48px!important;
  margin-bottom:6px;
  border-radius:16px!important;
  border:1px solid transparent!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-weight:800!important;
}
body[data-role] .nav a::before{
  content:"";
  position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(90deg, rgba(255,255,255,.05), rgba(255,255,255,0));
  opacity:0;transition:.2s ease;
}
body[data-role] .nav a:hover{transform:translateX(3px);border-color:rgba(119,190,245,.16)!important;color:var(--ink)!important;background:rgba(255,255,255,.03)!important;}
body[data-role] .nav a:hover::before{opacity:1;}
body[data-role] .nav a.active{
  color:#fff!important;
  border-color:rgba(88,190,255,.24)!important;
  background:linear-gradient(135deg,rgba(9,127,231,.88),rgba(22,159,255,.72))!important;
  box-shadow:0 14px 28px rgba(8,126,230,.24), inset 0 1px 0 rgba(255,255,255,.14)!important;
}
body[data-role] .nav a.active::after{
  content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:4px;background:linear-gradient(180deg,#fff,var(--sv-gold-2));
}
html[data-theme="day"] body[data-role] .nav a{color:#627d97!important;}
html[data-theme="day"] body[data-role] .nav a:hover{background:#eff6fc!important;border-color:#d6e2ed!important;color:#0d3050!important;}
html[data-theme="day"] body[data-role] .nav a.active{background:linear-gradient(135deg,#0a81e8,#46acff)!important;color:#fff!important;box-shadow:0 16px 28px rgba(8,127,232,.18)!important;}
body[data-role] .sidebar .foot{
  background:linear-gradient(180deg,rgba(6,17,27,.18),rgba(6,17,27,.38))!important;
  border-top:1px solid var(--line)!important;
  backdrop-filter:blur(10px);
}
html[data-theme="day"] body[data-role] .sidebar .foot{background:rgba(255,255,255,.75)!important;}
body[data-role] .logout-btn{
  border-radius:14px!important;
  background:linear-gradient(135deg,rgba(255,58,78,.12),rgba(255,58,78,.06))!important;
  border:1px solid rgba(255,58,78,.16)!important;
}
html[data-theme="day"] body[data-role] .logout-btn{background:linear-gradient(135deg,rgba(255,78,96,.10),rgba(255,78,96,.04))!important;}

/* role card + topbar */
.role-sidebar-card{
  border-radius:22px!important;
  border:1px solid rgba(98,185,244,.18)!important;
  background:linear-gradient(155deg,rgba(8,39,64,.92),rgba(7,21,33,.96))!important;
  box-shadow:0 22px 44px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05)!important;
}
.role-sidebar-card::after{
  content:"";position:absolute;inset:auto -10% -26% 46%;height:120px;background:radial-gradient(circle, rgba(215,179,106,.20), transparent 68%);pointer-events:none;
}
.role-sidebar-card strong{font-size:15px!important;}
html[data-theme="day"] body[data-role] .role-sidebar-card{background:linear-gradient(145deg,#ffffff,#f1f7fc)!important;border-color:#d5e3ef!important;box-shadow:0 14px 36px rgba(38,93,134,.10)!important;}

body[data-role] .topbar{
  height:78px!important;
  margin:12px 14px 0 0;
  border:1px solid var(--line)!important;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(8,20,31,.82),rgba(9,22,35,.70))!important;
  backdrop-filter:blur(16px);
  box-shadow:0 18px 40px rgba(0,0,0,.10);
}
html[data-theme="day"] body[data-role] .topbar{
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(247,251,255,.72))!important;
  border-color:#d7e3ef!important;
}
body[data-role] .top-search,
body[data-role] .top-icon,
body[data-role] .role-mode-badge,
body[data-role] .lang-toggle,
body[data-role] .theme-toggle,
body[data-role] .top-user-chip{
  border-radius:15px!important;
  border:1px solid var(--line)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.02))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
html[data-theme="day"] body[data-role] .top-search,
html[data-theme="day"] body[data-role] .top-icon,
html[data-theme="day"] body[data-role] .role-mode-badge,
html[data-theme="day"] body[data-role] .lang-toggle,
html[data-theme="day"] body[data-role] .theme-toggle,
html[data-theme="day"] body[data-role] .top-user-chip{
  background:linear-gradient(145deg,#ffffff,#f7fbff)!important;
}
.theme-toggle{
  height:42px!important;
  padding:0 12px!important;
  position:relative;
}
.theme-toggle::before{
  content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(17,143,237,.10),rgba(215,179,106,.10));opacity:.9;pointer-events:none;
}
.theme-track{background:linear-gradient(90deg,#0c7ee2,#45b0ff)!important;box-shadow:0 0 0 4px rgba(16,146,240,.10)!important;}
html[data-theme="day"] .theme-track{background:linear-gradient(90deg,#8dcfff,#0a82e8)!important;}
.theme-word{position:relative;z-index:1;}
.top-user-chip .mini-av{box-shadow:0 0 0 3px rgba(17,143,237,.10), 0 8px 18px rgba(0,0,0,.12);}

/* shared page headers */
.v4-page-head{margin-bottom:20px!important;padding:6px 4px 2px!important;}
.v4-page-head .kicker{color:color-mix(in srgb,var(--accent) 82%,var(--sv-gold) 18%)!important;}
.v4-page-head h1{
  font-size:clamp(30px,2.8vw,44px)!important;
  letter-spacing:-.055em!important;
}
.v4-page-head p{font-size:13px!important;max-width:760px;}
.v4-page-head .head-actions button,
.btn,
body[data-role] .toolbar button,
body[data-role] .toolbar .f,
.client-hero-actions button,
.admin-hero-actions button,
.machine-hub-actions button,
.v4-ai-main .composer .send,
.v4-prompt,
.admin-action,
.quick-action{
  border-radius:14px!important;
}
button,.btn,.admin-action,.v4-prompt,.quick-action,.machine-hub-card,.client-summary-card,.v4-panel,.admin-panel,.admin-kpi,.machine-hub-card,.v4-ai-side,.v4-ai-main,.v4-ai-context,.role-sidebar-card,.topbar,.sidebar .logo{
  transition:transform .22s cubic-bezier(.2,.75,.25,1), box-shadow .22s ease, border-color .22s ease, background .22s ease, filter .22s ease;
}

/* hero redesign industrial luxe */
#login .left,
.client-hero-v4,
.admin-hero-v4,
.dash-hero.premium-hero{
  border-radius:30px!important;
  border:1px solid rgba(115,189,244,.14)!important;
  overflow:hidden;
  box-shadow:0 30px 70px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04)!important;
  background:
    radial-gradient(circle at 12% 20%, rgba(41,165,255,.28), transparent 22%),
    radial-gradient(circle at 88% 18%, rgba(255,45,67,.14), transparent 15%),
    radial-gradient(circle at 74% 80%, rgba(215,179,106,.12), transparent 16%),
    linear-gradient(135deg, rgba(8,21,33,.98) 0%, rgba(8,31,51,.94) 42%, rgba(7,16,25,.98) 100%)!important;
}
html[data-theme="day"] #login .left,
html[data-theme="day"] .client-hero-v4,
html[data-theme="day"] .admin-hero-v4,
html[data-theme="day"] .dash-hero.premium-hero{
  border-color:#d7e4ef!important;
  box-shadow:0 24px 60px rgba(30,81,122,.12), inset 0 1px 0 rgba(255,255,255,.75)!important;
  background:
    radial-gradient(circle at 12% 20%, rgba(41,165,255,.14), transparent 22%),
    radial-gradient(circle at 88% 18%, rgba(255,45,67,.08), transparent 15%),
    radial-gradient(circle at 74% 80%, rgba(215,179,106,.10), transparent 16%),
    linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(241,247,252,.95) 46%, rgba(250,252,255,.98) 100%)!important;
}
#login .left::before,
.client-hero-v4::before,
.admin-hero-v4::before,
.dash-hero.premium-hero::before{
  content:""!important;
  position:absolute;right:-8%;top:-14%;width:48%;height:100%;z-index:0;
  border-radius:38px;
  background:
    radial-gradient(circle at 46% 42%, rgba(65,187,255,.32), transparent 58%),
    radial-gradient(circle at 40% 24%, rgba(255,255,255,.16), transparent 22%),
    linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,0));
  filter:blur(8px); transform:rotate(-11deg);
}
html[data-theme="day"] #login .left::before,
html[data-theme="day"] .client-hero-v4::before,
html[data-theme="day"] .admin-hero-v4::before,
html[data-theme="day"] .dash-hero.premium-hero::before{
  background:
    radial-gradient(circle at 46% 42%, rgba(65,187,255,.15), transparent 58%),
    radial-gradient(circle at 40% 24%, rgba(255,255,255,.82), transparent 22%),
    linear-gradient(145deg, rgba(255,255,255,.48), rgba(255,255,255,0));
}
#login .left::after,
.client-hero-v4::after,
.admin-hero-v4::after,
.dash-hero.premium-hero::after{
  content:""!important;
  position:absolute;inset:0;z-index:0;
  background:
    linear-gradient(120deg, transparent 0 54%, rgba(255,255,255,.065) 54.1%, transparent 54.3%),
    repeating-linear-gradient(90deg, transparent 0 38px, rgba(107,189,248,.06) 39px 40px),
    repeating-linear-gradient(0deg, transparent 0 28px, rgba(107,189,248,.04) 29px 30px);
  pointer-events:none;
}
.premium-hero-copy,
.client-hero-copy,
.admin-hero-copy{
  position:relative;
  z-index:2;
  margin:18px!important;
  padding:34px 36px!important;
  border-radius:26px!important;
  border:1px solid rgba(120,196,245,.17)!important;
  background:
    linear-gradient(145deg, rgba(7,24,39,.76), rgba(9,22,35,.40))!important;
  backdrop-filter:blur(18px);
  box-shadow:0 22px 46px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.06)!important;
}
html[data-theme="day"] .premium-hero-copy,
html[data-theme="day"] .client-hero-copy,
html[data-theme="day"] .admin-hero-copy{
  border-color:#d8e5ef!important;
  background:linear-gradient(145deg, rgba(255,255,255,.86), rgba(255,255,255,.56))!important;
  box-shadow:0 18px 42px rgba(33,88,128,.10), inset 0 1px 0 rgba(255,255,255,.85)!important;
}
.client-hero-copy .overline,
.admin-hero-copy .console-status,
.premium-hero .eyebrow,
.premium-hero .hero-caption{color:color-mix(in srgb,#7dd3ff 78%, var(--sv-gold-2) 22%)!important;}
.client-hero-copy .overline i,
.premium-hero .red-rule,
.premium-hero .hero-caption i{background:linear-gradient(90deg,#0d87ef 0 54%, #ffffff 54% 74%, #ff3047 74% 100%)!important;box-shadow:none!important;}
.client-hero-copy h1,
.admin-hero-copy h1,
.premium-hero-copy h1{
  font-size:clamp(42px,4.2vw,64px)!important;
  line-height:.94!important;
  letter-spacing:-.065em!important;
  text-shadow:0 12px 32px rgba(0,0,0,.20);
}
.client-hero-copy h1 span,
.admin-hero-copy h1 span,
.premium-hero-copy h1 em{color:#38b2ff!important;}
.client-hero-copy p,
.admin-hero-copy p,
.premium-hero-copy p{font-size:14.2px!important;line-height:1.68!important;color:#b7cfde!important;}
html[data-theme="day"] .client-hero-copy h1,
html[data-theme="day"] .admin-hero-copy h1,
html[data-theme="day"] .premium-hero-copy h1{color:#0b2c48!important;text-shadow:none!important;}
html[data-theme="day"] .client-hero-copy p,
html[data-theme="day"] .admin-hero-copy p,
html[data-theme="day"] .premium-hero-copy p{color:#607b95!important;}
.client-hero-actions,.admin-hero-actions{gap:10px!important;margin-top:24px!important;}
.client-hero-actions button,
.admin-hero-actions button,
.v4-page-head .head-actions button,
.machine-hub-actions .primary,
.v4-ai-main .composer .send,
.btn.primary{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#0a82e8,#14a0ff)!important;
  color:#fff!important;
  border:1px solid rgba(104,196,255,.18)!important;
  box-shadow:0 14px 30px rgba(9,129,232,.24), inset 0 1px 0 rgba(255,255,255,.18)!important;
}
.client-hero-actions button:not(.primary),
.admin-hero-actions button:not(.primary),
.v4-page-head .head-actions button:not(.primary),
.machine-hub-actions button:not(.primary),
body[data-role] .toolbar button,
body[data-role] .toolbar .f,
.v4-prompt,
.admin-action{
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.02))!important;
  border:1px solid var(--line)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
html[data-theme="day"] .client-hero-actions button:not(.primary),
html[data-theme="day"] .admin-hero-actions button:not(.primary),
html[data-theme="day"] .v4-page-head .head-actions button:not(.primary),
html[data-theme="day"] .machine-hub-actions button:not(.primary),
html[data-theme="day"] body[data-role] .toolbar button,
html[data-theme="day"] body[data-role] .toolbar .f,
html[data-theme="day"] .v4-prompt,
html[data-theme="day"] .admin-action{
  background:linear-gradient(145deg,#ffffff,#f5f9fd)!important;
}
.client-hero-badge,
.telemetry-cell{
  border-radius:18px!important;
  background:linear-gradient(145deg,rgba(7,22,34,.72),rgba(8,26,41,.56))!important;
  border:1px solid rgba(110,194,244,.16)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.05);
}
.telemetry-cell small{color:#8daec3!important;}
.telemetry-cell strong{font-size:22px!important;}
html[data-theme="day"] .client-hero-badge,
html[data-theme="day"] .telemetry-cell{
  background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(255,255,255,.62))!important;
  border-color:#d8e4ef!important;
  box-shadow:0 14px 32px rgba(30,83,122,.10), inset 0 1px 0 rgba(255,255,255,.85)!important;
}

/* panels/cards now look machined and premium */
.v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,.v4-ai-side,.v4-ai-main,.v4-ai-context,.modal{
  border-radius:22px!important;
  border:1px solid var(--line)!important;
  background:
    linear-gradient(160deg, color-mix(in srgb,var(--card) 98%,#ffffff 2%), color-mix(in srgb,var(--card) 92%,#061421 8%))!important;
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.04)!important;
  overflow:hidden;
  position:relative;
}
html[data-theme="day"] .v4-panel,
html[data-theme="day"] .admin-panel,
html[data-theme="day"] .admin-kpi,
html[data-theme="day"] .client-summary-card,
html[data-theme="day"] .machine-hub-card,
html[data-theme="day"] .v4-ai-side,
html[data-theme="day"] .v4-ai-main,
html[data-theme="day"] .v4-ai-context,
html[data-theme="day"] .modal{
  background:linear-gradient(160deg,#ffffff,#f8fbfe)!important;
}
.v4-panel::before,.admin-panel::before,.admin-kpi::before,.client-summary-card::before,.machine-hub-card::before,.v4-ai-side::before,.v4-ai-main::before,.v4-ai-context::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(120deg, transparent 0 76%, rgba(255,255,255,.05) 76.2%, transparent 76.5%),
    radial-gradient(circle at var(--mx,82%) var(--my,18%), rgba(57,176,252,.12), transparent 22%),
    radial-gradient(circle at 92% 12%, rgba(215,179,106,.08), transparent 14%);
}
html[data-theme="day"] .v4-panel::before,
html[data-theme="day"] .admin-panel::before,
html[data-theme="day"] .admin-kpi::before,
html[data-theme="day"] .client-summary-card::before,
html[data-theme="day"] .machine-hub-card::before,
html[data-theme="day"] .v4-ai-side::before,
html[data-theme="day"] .v4-ai-main::before,
html[data-theme="day"] .v4-ai-context::before{opacity:.82;}
.v4-panel:hover,.admin-panel:hover,.admin-kpi:hover,.client-summary-card:hover,.machine-hub-card:hover,.v4-ai-side:hover,.v4-ai-main:hover,.v4-ai-context:hover{transform:translateY(-4px);box-shadow:0 28px 54px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05)!important;border-color:color-mix(in srgb,var(--accent) 46%,var(--line))!important;}
html[data-theme="day"] .v4-panel:hover,html[data-theme="day"] .admin-panel:hover,html[data-theme="day"] .admin-kpi:hover,html[data-theme="day"] .client-summary-card:hover,html[data-theme="day"] .machine-hub-card:hover,html[data-theme="day"] .v4-ai-side:hover,html[data-theme="day"] .v4-ai-main:hover,html[data-theme="day"] .v4-ai-context:hover{box-shadow:0 22px 44px rgba(34,92,132,.14)!important;}

.client-summary-grid,.admin-kpi-grid,.machine-hub-grid,.admin-docs-grid,.admin-actions-strip{gap:12px!important;}
.client-summary-card,.admin-kpi{min-height:98px!important;}
.client-summary-card strong,.admin-kpi strong{font-size:28px!important;}
.client-summary-icon,.admin-kpi .mini-icon,.admin-action i,.v4-ai-doc .ico,.admin-doc-mini .doc-icon{
  border-radius:14px!important;
  box-shadow:0 10px 22px rgba(0,0,0,.12);
}
.client-summary-icon{background:linear-gradient(145deg,#0a81e8,#149cff)!important;}
.client-summary-card.green .client-summary-icon{background:linear-gradient(145deg,#28cf7a,#1aa667)!important;}
.client-summary-card.red .client-summary-icon{background:linear-gradient(145deg,#ff5166,#eb3048)!important;}
.client-summary-card.violet .client-summary-icon{background:linear-gradient(145deg,#9a74ff,#7650f2)!important;}
.admin-kpi .mini-icon,.admin-action i{background:linear-gradient(145deg,rgba(17,143,237,.14),rgba(17,143,237,.05))!important;}
html[data-theme="day"] .admin-kpi .mini-icon,html[data-theme="day"] .admin-action i{background:linear-gradient(145deg,#eef6fd,#f8fbfe)!important;}

/* abstract machine visual zones */
.machine-hub-visual,
.client-machine-visual,
.code-stage{
  border-radius:18px!important;
  border:1px solid color-mix(in srgb,var(--line) 86%,transparent)!important;
  background:
    radial-gradient(circle at 50% 40%, rgba(46,171,250,.18), transparent 38%),
    radial-gradient(circle at 84% 20%, rgba(255,65,84,.10), transparent 14%),
    radial-gradient(circle at 16% 82%, rgba(215,179,106,.10), transparent 18%),
    linear-gradient(145deg,var(--soft),color-mix(in srgb,var(--soft) 74%,#041c30))!important;
}
html[data-theme="day"] .machine-hub-visual,
html[data-theme="day"] .client-machine-visual,
html[data-theme="day"] .code-stage{
  background:
    radial-gradient(circle at 50% 40%, rgba(46,171,250,.10), transparent 38%),
    radial-gradient(circle at 84% 20%, rgba(255,65,84,.06), transparent 14%),
    radial-gradient(circle at 16% 82%, rgba(215,179,106,.08), transparent 18%),
    linear-gradient(145deg,#f7fbff,#edf4fa)!important;
}
.machine-hub-visual::after,
.client-machine-visual::after,
.code-stage::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(90deg, transparent 0 24px, rgba(94,178,243,.05) 25px 26px),
    repeating-linear-gradient(0deg, transparent 0 24px, rgba(94,178,243,.04) 25px 26px),
    linear-gradient(130deg, transparent 0 60%, rgba(255,255,255,.08) 60.2%, transparent 60.4%);
}
.machine-hub-body h3{font-size:18px!important;}
.machine-hub-meta div,.admin-doc-mini,.v4-ai-context .context-block,.v4-ai-doc:hover,.v4-ai-main .stream .bubble.bot,.v4-ai-main .composer .row,.client-search-item,.history-item,.table-card,.stat{
  border-radius:16px!important;
}

/* tables, forms and AI workspace */
input,select,textarea{
  border-radius:14px!important;
  border:1px solid var(--line)!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--field) 98%,#fff 2%), color-mix(in srgb,var(--field) 92%,#061421 8%))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
html[data-theme="day"] input,html[data-theme="day"] select,html[data-theme="day"] textarea{background:linear-gradient(145deg,#ffffff,#f7fbff)!important;}
input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(38,168,246,.46)!important;box-shadow:0 0 0 4px rgba(38,168,246,.10), inset 0 1px 0 rgba(255,255,255,.06)!important;}
body[data-role="admin"] table{border-radius:18px!important;overflow:hidden;}
body[data-role="admin"] thead th{background:linear-gradient(180deg,#0a2a45,#091f34)!important;color:#e5f4ff!important;}
html[data-theme="day"] body[data-role="admin"] thead th{background:linear-gradient(180deg,#0d79da,#0766bb)!important;}
body[data-role="admin"] tbody tr:hover{background:rgba(20,149,238,.07)!important;}
.v4-ai-shell{gap:14px!important;}
.v4-ai-head{padding:16px 18px!important;border-bottom:1px solid var(--line)!important;background:linear-gradient(90deg,rgba(255,255,255,.02),transparent)!important;}
.v4-ai-head .orb{width:46px!important;height:46px!important;border-radius:16px!important;box-shadow:0 0 0 6px rgba(22,146,236,.08),0 12px 24px rgba(0,0,0,.10)!important;}
.v4-ai-main .stream{padding:18px!important;}
.v4-ai-main .bubble{border-radius:18px!important;padding:12px 14px!important;}
.v4-ai-main .msg.bot .bubble{background:linear-gradient(145deg,var(--soft),color-mix(in srgb,var(--soft) 86%,#051624))!important;border:1px solid var(--line)!important;}
html[data-theme="day"] .v4-ai-main .msg.bot .bubble{background:linear-gradient(145deg,#f7fbff,#eef5fa)!important;}
.v4-ai-main .msg.user .bubble{background:linear-gradient(135deg,#0a83e8,#149dff)!important;box-shadow:0 14px 24px rgba(9,130,233,.20)!important;}

/* login premium */
#login .panel{
  border-radius:28px!important;
  border:1px solid var(--line)!important;
  background:linear-gradient(155deg,rgba(8,20,31,.86),rgba(11,27,42,.78))!important;
  box-shadow:0 28px 60px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.04)!important;
}
html[data-theme="day"] #login .panel{background:linear-gradient(155deg,rgba(255,255,255,.90),rgba(249,252,255,.82))!important;box-shadow:0 22px 54px rgba(31,85,124,.12)!important;}
#login .panel .btn{height:46px!important;border-radius:15px!important;}
.theme-toggle-login{top:24px!important;right:24px!important;box-shadow:0 18px 36px rgba(0,0,0,.12)!important;}

/* responsive polish */
@media(max-width:1180px){
  .admin-hero-telemetry{width:224px!important}
  .premium-hero-copy,.client-hero-copy,.admin-hero-copy{padding:28px 28px!important}
}
@media(max-width:980px){
  body[data-role] .brand-logo{height:78px!important}
  .topbar{margin-right:10px!important}
}
@media(max-width:760px){
  .client-hero-copy,.admin-hero-copy,.premium-hero-copy{margin:14px!important;padding:24px 20px!important}
  body[data-role] .brand-logo{height:62px!important}
  .client-hero-copy h1,.admin-hero-copy h1,.premium-hero-copy h1{font-size:38px!important}
}
@media(max-width:560px){
  body[data-role] .brand-copy{display:none!important}
  body[data-role] .sidebar .logo{min-height:98px!important}
}

/* ===== couche 6 : base-5 ===== */
${c.css || ''}

/* ===== couche 7 : base-6 ===== */
${p.css || ''}

/* ===== couche 8 : base-7 ===== */
${c.css || ''}

/* ===== couche 9 : sv-agent-suite-v4 ===== */
/* =====================================================================
   SEDAM VALENTIN — EXPERIENCE V4
   Deux directions UX: CLIENT (simple, immersive) / ADMIN (control room)
   ===================================================================== */
:root{
  --v4-blue:#0787f5;
  --v4-cyan:#37c5ff;
  --v4-navy:#04192b;
  --v4-red:#ff334d;
  --v4-green:#32d987;
  --v4-amber:#ffb13b;
  --v4-violet:#8457ff;
  --v4-radius-xl:28px;
  --v4-radius-lg:20px;
  --v4-radius-md:15px;
}
body[data-role]{--role-glow:rgba(8,135,245,.18);}
body[data-role="admin"]{--role-glow:rgba(55,197,255,.20);}
body[data-role="client"]{--role-glow:rgba(8,135,245,.15);}

/* Global refinement */
body[data-role] .main{position:relative;background:
  radial-gradient(circle at 82% 4%,var(--role-glow),transparent 28%),
  radial-gradient(circle at 18% 70%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 34%),
  var(--bg);}
body[data-role] .content{max-width:1780px;width:100%;margin:0 auto;padding:24px 28px 34px;}
body[data-role] .card{border-color:color-mix(in srgb,var(--line) 92%,transparent);box-shadow:0 14px 44px rgba(1,18,31,.10);}
html[data-theme="day"] body[data-role] .card{box-shadow:0 18px 42px rgba(25,75,120,.07);}
body[data-role] h2.title{font-size:28px;letter-spacing:-.035em;margin-bottom:6px;}
body[data-role] .subtitle{font-size:13px;}

/* Sidebar — role aware */
body[data-role] .sidebar{width:278px;border-right:1px solid rgba(72,166,230,.18);box-shadow:18px 0 60px rgba(0,0,0,.12);}
body[data-role="admin"] .sidebar{background:
  radial-gradient(circle at 25% 3%,rgba(28,155,244,.18),transparent 24%),
  linear-gradient(180deg,#031726 0%,#051c2e 48%,#031522 100%);}
body[data-role="client"] .sidebar{background:
  radial-gradient(circle at 50% 2%,rgba(16,137,232,.16),transparent 27%),
  linear-gradient(180deg,var(--sidebar),color-mix(in srgb,var(--sidebar) 92%,#00121f));}
html[data-theme="day"] body[data-role="client"] .sidebar{background:linear-gradient(180deg,#ffffff,#f8fbff);}
html[data-theme="day"] body[data-role="admin"] .sidebar{background:linear-gradient(180deg,#071e31,#041522);}
body[data-role] .sidebar .logo{min-height:118px;padding:16px 20px 14px;}
body[data-role] .brand-logo{width:214px;height:70px;filter:drop-shadow(0 10px 20px rgba(0,0,0,.10));}
body[data-role] .brand-copy{padding-left:3px;}
body[data-role] .nav{padding:14px 13px 270px;}
body[data-role] .nav .grp{margin-top:16px;font-weight:900;}
body[data-role] .nav a{min-height:44px;border-radius:12px;padding:11px 13px;font-weight:650;letter-spacing:-.005em;}
body[data-role] .nav a .ic{width:19px;height:19px;}
body[data-role] .nav a.active{transform:translateX(2px);}
body[data-role="admin"] .nav a.active{background:linear-gradient(90deg,rgba(5,135,238,.24),rgba(20,166,255,.08));border-color:rgba(55,190,255,.28);box-shadow:inset 0 0 28px rgba(10,139,238,.10),0 8px 20px rgba(0,0,0,.10);}
body[data-role="client"] .nav a.active{box-shadow:0 10px 28px rgba(8,121,223,.20);}
body[data-role] .sidebar .foot{min-height:74px;padding:13px 16px;}

.role-sidebar-card{position:absolute;left:16px;right:16px;bottom:90px;z-index:4;padding:15px;border-radius:18px;border:1px solid rgba(69,169,235,.20);background:linear-gradient(145deg,rgba(10,47,77,.86),rgba(4,26,44,.92));box-shadow:0 18px 44px rgba(0,0,0,.18);overflow:hidden;}
.role-sidebar-card:before{content:"";position:absolute;inset:-40% 40% auto -30%;height:130px;background:radial-gradient(circle,rgba(41,169,255,.25),transparent 68%);}
.role-sidebar-card .role-label{position:relative;color:#6bc7ff;font-size:9px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;}
.role-sidebar-card strong{position:relative;display:block;margin:5px 0 4px;color:#fff;font-size:14px;}
.role-sidebar-card p{position:relative;margin:0;color:#87a9c1;font-size:10.5px;line-height:1.5;}
.role-sidebar-card .role-meter{position:relative;margin-top:11px;height:4px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden;}
.role-sidebar-card .role-meter i{display:block;height:100%;width:82%;background:linear-gradient(90deg,#0e8bf0,#35d7ff);border-radius:inherit;box-shadow:0 0 14px rgba(46,190,255,.46);}
html[data-theme="day"] body[data-role="client"] .role-sidebar-card{background:linear-gradient(145deg,#eef7ff,#ffffff);border-color:#d8eafa;box-shadow:0 14px 34px rgba(34,92,137,.10);}
html[data-theme="day"] body[data-role="client"] .role-sidebar-card strong{color:#0b3764;}
html[data-theme="day"] body[data-role="client"] .role-sidebar-card p{color:#69839c;}

/* Topbar command surface */
body[data-role] .topbar{height:76px;padding:0 26px;background:color-mix(in srgb,var(--top) 90%,transparent);box-shadow:0 8px 30px rgba(0,0,0,.05);}
body[data-role="admin"] .topbar{background:rgba(3,20,34,.88);border-color:rgba(63,167,235,.18);}
html[data-theme="day"] body[data-role="client"] .topbar{background:rgba(255,255,255,.86);}
.role-mode-badge{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--field);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.role-mode-badge i{width:8px;height:8px;border-radius:50%;background:var(--v4-green);box-shadow:0 0 0 4px rgba(50,217,135,.11),0 0 14px rgba(50,217,135,.35);}
body[data-role="admin"] .role-mode-badge{color:#76caff;background:rgba(8,74,119,.26);border-color:rgba(47,169,246,.25);}
.top-command-hint{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px;margin-left:2px;}
.top-user-chip{height:46px;border-radius:14px!important;padding:5px 10px 5px 6px!important;}
.top-user-chip .mini-av{width:34px!important;height:34px!important;border-radius:11px!important;}

/* Shared page head */
.v4-page-head{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px;padding:4px 2px;}
.v4-page-head .kicker{font-size:9px;font-weight:900;letter-spacing:.22em;color:var(--accent);text-transform:uppercase;}
.v4-page-head h1{margin:5px 0 4px;font-size:clamp(27px,2.6vw,40px);line-height:1.02;letter-spacing:-.045em;color:var(--ink);}
.v4-page-head p{margin:0;color:var(--muted);font-size:12.5px;}
.v4-page-head .head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.v4-page-head .head-actions button{height:40px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--field);color:var(--ink);font-weight:800;font-size:11px;}
.v4-page-head .head-actions .primary{color:#fff;background:linear-gradient(135deg,#087fe8,#159cff);border-color:transparent;box-shadow:0 10px 24px rgba(8,126,230,.22);}

/* CLIENT EXPERIENCE ===================================================== */
.client-dashboard{display:grid;gap:16px;}
.client-hero-v4{position:relative;min-height:340px;border-radius:var(--v4-radius-xl);overflow:hidden;border:1px solid var(--line);background-image:linear-gradient(90deg,rgba(2,20,34,.96) 0%,rgba(2,20,34,.80) 38%,rgba(2,20,34,.30) 66%,rgba(2,20,34,.08) 100%),var(--hero-photo);background-size:cover;background-position:center 48%;box-shadow:0 26px 70px rgba(0,0,0,.22);isolation:isolate;}
.client-hero-v4:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 56%,rgba(2,18,30,.36)),radial-gradient(circle at 82% 30%,rgba(23,151,255,.12),transparent 28%);pointer-events:none;}
html[data-theme="day"] .client-hero-v4{background-image:var(--hero-copy-bg),var(--hero-photo);box-shadow:0 24px 60px rgba(28,77,118,.12);}
.client-hero-copy{position:relative;z-index:2;width:min(650px,64%);padding:48px 46px;}
.client-hero-copy .overline{display:flex;align-items:center;gap:9px;color:#6cc8ff;font-size:9px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;}
.client-hero-copy .overline i{width:30px;height:3px;background:var(--v4-red);border-radius:999px;}
.client-hero-copy h1{margin:13px 0 10px;color:#fff;font-size:clamp(38px,4.3vw,62px);line-height:.96;letter-spacing:-.055em;text-shadow:0 12px 34px rgba(0,0,0,.18);}
.client-hero-copy h1 span{color:#24a9ff;}
.client-hero-copy p{margin:0;max-width:560px;color:#b5d0e3;font-size:14px;line-height:1.6;}
html[data-theme="day"] .client-hero-copy h1{color:#092d55;text-shadow:none;}
html[data-theme="day"] .client-hero-copy p{color:#607c97;}
.client-hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px;}
.client-hero-actions button{height:42px;border-radius:13px;padding:0 15px;border:1px solid rgba(255,255,255,.16);background:rgba(3,24,40,.46);backdrop-filter:blur(10px);color:#fff;font-weight:800;font-size:11px;}
.client-hero-actions .primary{background:linear-gradient(135deg,#0b8cff,#0874d8);border-color:transparent;box-shadow:0 11px 30px rgba(8,137,242,.25);}
html[data-theme="day"] .client-hero-actions button:not(.primary){background:rgba(255,255,255,.72);border-color:#d3e4f2;color:#0a315a;}
.client-hero-badge{position:absolute;z-index:3;right:24px;bottom:22px;display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:15px;background:rgba(3,20,33,.70);border:1px solid rgba(105,193,248,.22);backdrop-filter:blur(14px);color:#d8eeff;font-size:10px;}
.client-hero-badge b{display:block;color:#fff;font-size:12px;}
.client-hero-badge .pulse{width:10px;height:10px;border-radius:50%;background:#35de89;box-shadow:0 0 0 5px rgba(53,222,137,.10),0 0 18px rgba(53,222,137,.45);}

.client-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.client-summary-card{position:relative;display:flex;align-items:center;gap:12px;min-height:88px;padding:15px 16px;border-radius:18px;background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 94%,var(--accent) 6%));border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;transition:.2s ease;}
.client-summary-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 44%,var(--line));}
.client-summary-card:after{content:"";position:absolute;width:80px;height:80px;border-radius:50%;right:-34px;top:-38px;background:radial-gradient(circle,rgba(29,156,247,.13),transparent 70%);}
.client-summary-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,#0b8cf5,#0871d0);color:#fff;font-size:18px;box-shadow:0 9px 24px rgba(8,126,224,.24);}
.client-summary-card.green .client-summary-icon{background:linear-gradient(145deg,#32d987,#19a968);}
.client-summary-card.red .client-summary-icon{background:linear-gradient(145deg,#ff5266,#e92843);}
.client-summary-card.violet .client-summary-icon{background:linear-gradient(145deg,#966fff,#7043ef);}
.client-summary-card small{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;}
.client-summary-card strong{display:block;margin-top:2px;color:var(--ink);font-size:25px;letter-spacing:-.04em;}
.client-summary-card em{font-style:normal;color:var(--ok);font-size:10px;font-weight:800;}

.client-main-grid{display:grid;grid-template-columns:1.35fr .9fr .9fr;gap:14px;align-items:stretch;}
.v4-panel{position:relative;padding:18px;border-radius:20px;background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 97%,var(--accent) 3%));border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;}
.v4-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.v4-panel .panel-kicker{display:block;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.19em;text-transform:uppercase;margin-bottom:4px;}
.v4-panel h3{margin:0;font-size:15px;color:var(--ink);letter-spacing:-.02em;}
.v4-panel header a{font-size:10px;font-weight:800;white-space:nowrap;}
.client-machine-feature{grid-row:span 2;display:flex;flex-direction:column;min-height:390px;}
.client-machine-visual{height:168px;border-radius:17px;background:radial-gradient(circle at 50% 40%,rgba(29,158,247,.22),transparent 45%),linear-gradient(145deg,var(--soft),color-mix(in srgb,var(--soft) 70%,#031827));display:grid;place-items:center;overflow:hidden;position:relative;}
.client-machine-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(47,154,222,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(47,154,222,.07) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,black,transparent);}
.client-machine-visual svg{position:relative;width:78%;max-height:130px;color:var(--accent);filter:drop-shadow(0 10px 20px rgba(0,0,0,.18));}
.client-machine-info{padding:15px 2px 0;display:grid;gap:9px;}
.client-machine-info .name-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.client-machine-info .name-row strong{font-size:19px;color:var(--ink);}
.live-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:rgba(48,213,130,.10);color:var(--ok);font-size:9px;font-weight:900;}
.live-chip i{width:6px;height:6px;border-radius:50%;background:currentColor;}
.machine-meta-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.machine-meta-row div{padding:10px;border-radius:12px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);}
.machine-meta-row small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;font-weight:900;letter-spacing:.08em;}
.machine-meta-row b{display:block;margin-top:3px;color:var(--ink);font-size:11px;}
.client-machine-info .open-machine{height:42px;border:0;border-radius:12px;background:linear-gradient(135deg,#087fe8,#13a0ff);color:#fff;font-weight:850;box-shadow:0 10px 24px rgba(8,126,230,.22);}
.client-ai-card{background:radial-gradient(circle at 92% 0%,rgba(52,180,255,.16),transparent 28%),linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 92%,#062640));}
.client-ai-orb{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:radial-gradient(circle at 35% 28%,#8addff,#0d90f7 52%,#07529f);color:#fff;font-size:24px;box-shadow:0 0 0 7px rgba(24,150,244,.08),0 14px 32px rgba(8,121,223,.22);margin-bottom:14px;}
.client-ai-card p{font-size:11.5px;line-height:1.55;color:var(--muted);}
.client-ai-card .ai-btn{width:100%;height:40px;border-radius:12px;border:0;background:var(--soft);color:var(--ink);font-weight:800;font-size:10.5px;text-align:left;padding:0 12px;margin-top:7px;}
.client-ai-card .ai-btn:hover{background:color-mix(in srgb,var(--soft) 75%,var(--accent) 25%);}
.client-history-list{display:grid;gap:8px;}
.client-history-item{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line);}
.client-history-item:last-child{border-bottom:0;}
.client-history-item .dot{width:8px;height:8px;margin-top:4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(12,137,230,.08);}
.client-history-item b{font-size:10.5px;color:var(--ink);display:block;}
.client-history-item small{font-size:9px;color:var(--muted);display:block;margin-top:2px;}
.client-history-item time{font-size:8.5px;color:var(--muted);}
.client-search-panel{grid-column:2/4;}
.client-search-box{display:grid;grid-template-columns:1fr auto;gap:8px;padding:9px;border:1px solid var(--line);background:var(--field);border-radius:14px;}
.client-search-box input{min-width:0;height:38px;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;padding:0 5px;}
.client-search-box button{width:42px;height:38px;border:0;border-radius:10px;background:linear-gradient(135deg,#0b8df8,#0870cc);color:#fff;font-size:16px;}
.client-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.client-tags button{padding:6px 9px;border-radius:999px;border:1px solid var(--line);background:var(--soft);color:var(--muted);font-size:9px;font-weight:800;}

/* ADMIN CONTROL ROOM ==================================================== */
.admin-dashboard{display:grid;gap:14px;}
.admin-hero-v4{position:relative;min-height:248px;border-radius:26px;overflow:hidden;border:1px solid rgba(65,176,247,.20);background-image:linear-gradient(90deg,rgba(2,19,32,.98),rgba(3,27,47,.92) 46%,rgba(3,24,41,.48) 73%,rgba(3,20,34,.28)),var(--hero-photo);background-size:cover;background-position:center 48%;box-shadow:0 28px 70px rgba(0,0,0,.25);}
.admin-hero-v4:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 0 57%,rgba(25,159,249,.12) 57.2%,transparent 57.5%),repeating-linear-gradient(90deg,transparent 0 47px,rgba(61,164,227,.035) 48px);}
.admin-hero-copy{position:relative;z-index:2;width:min(760px,72%);padding:36px 38px;}
.admin-hero-copy .console-status{display:flex;align-items:center;gap:8px;color:#6fc9ff;font-size:9px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;}
.admin-hero-copy .console-status i{width:8px;height:8px;border-radius:50%;background:#32df8b;box-shadow:0 0 16px rgba(50,223,139,.45);}
.admin-hero-copy h1{margin:11px 0 8px;color:#fff;font-size:clamp(35px,4vw,56px);line-height:.98;letter-spacing:-.052em;}
.admin-hero-copy h1 span{color:#22a8ff;}
.admin-hero-copy p{margin:0;color:#9ebcd2;max-width:630px;font-size:12.5px;line-height:1.6;}
.admin-hero-actions{display:flex;gap:8px;margin-top:19px;flex-wrap:wrap;}
.admin-hero-actions button{height:39px;border-radius:11px;padding:0 13px;border:1px solid rgba(89,184,246,.20);background:rgba(5,39,65,.66);color:#dff3ff;font-weight:800;font-size:10px;backdrop-filter:blur(10px);}
.admin-hero-actions .primary{background:linear-gradient(135deg,#0b8af2,#0871ce);border-color:transparent;}
.admin-hero-telemetry{position:absolute;right:24px;top:22px;bottom:22px;width:252px;z-index:3;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:end;}
.telemetry-cell{padding:12px;border-radius:14px;background:rgba(2,22,38,.72);border:1px solid rgba(69,172,239,.20);backdrop-filter:blur(14px);}
.telemetry-cell small{display:block;color:#7fa9c4;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;}
.telemetry-cell strong{display:block;margin-top:4px;color:#fff;font-size:20px;letter-spacing:-.04em;}
.telemetry-cell em{display:block;color:#34dc89;font-style:normal;font-size:8.5px;margin-top:2px;font-weight:800;}

.admin-kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:11px;}
.admin-kpi{position:relative;min-height:92px;padding:15px 15px 13px;border-radius:17px;border:1px solid var(--line);background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 90%,#062b47));box-shadow:var(--shadow);overflow:hidden;}
.admin-kpi:before{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-40px;top:-45px;background:radial-gradient(circle,rgba(34,164,251,.15),transparent 68%);}
.admin-kpi .label{color:var(--muted);font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.11em;}
.admin-kpi strong{display:block;margin-top:4px;color:var(--ink);font-size:26px;letter-spacing:-.045em;}
.admin-kpi .trend{display:flex;align-items:center;gap:5px;margin-top:2px;color:var(--ok);font-size:8.5px;font-weight:850;}
.admin-kpi .mini-icon{position:absolute;right:14px;bottom:13px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-size:13px;}
.admin-kpi.danger .mini-icon{color:var(--err);}.admin-kpi.warn .mini-icon{color:var(--warn);}.admin-kpi.violet .mini-icon{color:#9b79ff;}

.admin-control-grid{display:grid;grid-template-columns:1.15fr .95fr .95fr;gap:12px;align-items:stretch;}
.admin-panel{padding:17px;border-radius:18px;border:1px solid rgba(66,167,232,.16);background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 94%,#082b46));box-shadow:var(--shadow);position:relative;overflow:hidden;}
.admin-panel header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px;}
.admin-panel .panel-kicker{font-size:8px;color:#63c4ff;font-weight:900;letter-spacing:.18em;text-transform:uppercase;display:block;margin-bottom:3px;}
.admin-panel h3{margin:0;color:var(--ink);font-size:14px;letter-spacing:-.02em;}
.admin-panel header a{font-size:9px;font-weight:850;}
.admin-quality{grid-row:span 2;}
.quality-ring-wrap{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:12px;padding:10px 0;}
.quality-ring{--q:80;width:145px;height:145px;border-radius:50%;background:conic-gradient(#17a5ff calc(var(--q)*1%),rgba(56,147,208,.13) 0);display:grid;place-items:center;position:relative;box-shadow:0 0 42px rgba(19,154,244,.08);}
.quality-ring:before{content:"";width:104px;height:104px;border-radius:50%;background:var(--card);border:1px solid var(--line);}
.quality-ring .inside{position:absolute;text-align:center;}
.quality-ring .inside strong{display:block;color:var(--ink);font-size:28px;line-height:1;}
.quality-ring .inside span{display:block;margin-top:4px;color:var(--muted);font-size:8.5px;font-weight:800;}
.quality-legend{display:grid;gap:9px;}
.quality-legend div{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center;color:var(--muted);font-size:9px;}
.quality-legend i{width:8px;height:8px;border-radius:3px;}
.quality-legend b{color:var(--ink);font-size:10px;}
.admin-alert-list{display:grid;gap:7px;}
.admin-alert{display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;padding:9px;border-radius:12px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);}
.admin-alert .ico{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(255,66,87,.11);color:var(--err);font-weight:900;}
.admin-alert b{display:block;color:var(--ink);font-size:9.5px;}
.admin-alert small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px;}
.admin-alert button{border:0;border-radius:8px;background:var(--card);color:var(--accent);font-size:8px;font-weight:900;padding:7px 8px;}
.admin-stream{display:grid;gap:2px;}
.admin-stream-item{display:grid;grid-template-columns:9px 1fr auto;gap:9px;padding:8px 1px;border-bottom:1px solid var(--line);}
.admin-stream-item:last-child{border-bottom:0;}
.admin-stream-item .s-dot{width:7px;height:7px;margin-top:4px;border-radius:50%;background:#1fa8ff;box-shadow:0 0 0 4px rgba(30,165,255,.08);}
.admin-stream-item b{display:block;color:var(--ink);font-size:9.5px;}
.admin-stream-item small{display:block;color:var(--muted);font-size:8.2px;margin-top:2px;}
.admin-stream-item time{color:var(--muted);font-size:8px;}
.admin-client-bars{display:grid;gap:9px;}
.client-bar .row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;color:var(--muted);}
.client-bar .row b{color:var(--ink);font-size:9.5px;}
.client-bar .bar{margin-top:5px;height:5px;border-radius:999px;background:var(--soft);overflow:hidden;}
.client-bar .bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b85e8,#29bdff);}
.admin-docs-panel{grid-column:2/4;}
.admin-docs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.admin-doc-mini{padding:10px;border-radius:12px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);}
.admin-doc-mini .doc-top{display:flex;align-items:center;justify-content:space-between;gap:7px;}
.admin-doc-mini .doc-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(255,58,78,.10);color:var(--err);font-size:10px;font-weight:900;}
.admin-doc-mini b{display:block;margin-top:8px;color:var(--ink);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-doc-mini small{display:block;color:var(--muted);font-size:8px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-doc-mini .doc-state{font-size:7.5px;font-weight:900;color:var(--ok);}
.admin-actions-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.admin-action{display:flex;align-items:center;gap:9px;min-height:54px;padding:9px 10px;border-radius:13px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-align:left;}
.admin-action i{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-style:normal;}
.admin-action b{font-size:9.5px;display:block;}.admin-action small{display:block;color:var(--muted);font-size:7.8px;margin-top:1px;}
.admin-action:hover{transform:translateY(-2px);border-color:rgba(52,175,248,.36);box-shadow:0 10px 24px rgba(0,0,0,.08);}

/* Machine hub — client + admin */
.machine-hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;}
.machine-hub-card{position:relative;overflow:hidden;border-radius:20px;border:1px solid var(--line);background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 95%,var(--accent) 5%));box-shadow:var(--shadow);transition:.22s ease;}
.machine-hub-card:hover{transform:translateY(-5px);border-color:rgba(48,173,248,.38);box-shadow:0 22px 48px rgba(0,0,0,.14);}
.machine-hub-visual{height:150px;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 52% 45%,rgba(42,169,251,.18),transparent 42%),linear-gradient(145deg,var(--soft),color-mix(in srgb,var(--soft) 72%,#041c30));overflow:hidden;}
.machine-hub-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(50,153,218,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(50,153,218,.06) 1px,transparent 1px);background-size:23px 23px;}
.machine-hub-visual svg{position:relative;width:72%;max-height:112px;color:var(--accent);filter:drop-shadow(0 12px 24px rgba(0,0,0,.16));}
.machine-hub-visual .doc-pill{position:absolute;top:11px;left:11px;padding:5px 8px;border-radius:999px;background:rgba(4,25,41,.70);border:1px solid rgba(90,189,248,.16);color:#cceaff;font-size:8px;font-weight:900;backdrop-filter:blur(10px);}
.machine-hub-visual .hub-status{position:absolute;top:11px;right:11px;display:flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:rgba(48,213,130,.12);color:#35dd89;font-size:8px;font-weight:900;}
.machine-hub-visual .hub-status i{width:6px;height:6px;border-radius:50%;background:currentColor;}
.machine-hub-body{padding:15px;}
.machine-hub-body h3{margin:0;color:var(--ink);font-size:17px;letter-spacing:-.025em;}
.machine-hub-body p{margin:3px 0 12px;color:var(--muted);font-size:9.5px;}
.machine-hub-meta{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:11px;}
.machine-hub-meta div{padding:8px;border-radius:10px;background:var(--soft);}
.machine-hub-meta small{display:block;color:var(--muted);font-size:7.5px;text-transform:uppercase;font-weight:900;letter-spacing:.08em;}
.machine-hub-meta b{display:block;margin-top:2px;color:var(--ink);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.machine-hub-actions{display:grid;grid-template-columns:1fr auto;gap:7px;}
.machine-hub-actions button{height:36px;border-radius:10px;border:1px solid var(--line);background:var(--soft);color:var(--ink);font-weight:850;font-size:9px;}
.machine-hub-actions .primary{background:linear-gradient(135deg,#0a87ee,#0872d0);color:#fff;border-color:transparent;padding:0 13px;}
.admin-fleet-overview{display:grid;grid-template-columns:1.4fr repeat(3,.7fr);gap:10px;margin-bottom:13px;}
.admin-fleet-overview>div{min-height:72px;padding:13px;border-radius:15px;border:1px solid var(--line);background:var(--card);}
.admin-fleet-overview small{font-size:8px;color:var(--muted);font-weight:900;text-transform:uppercase;letter-spacing:.1em;}.admin-fleet-overview strong{display:block;font-size:22px;color:var(--ink);margin-top:3px;}

/* Assistant workspace */
.v4-ai-shell{display:grid;grid-template-columns:250px minmax(0,1fr) 280px;gap:12px;min-height:calc(100vh - 230px);}
.v4-ai-side,.v4-ai-main,.v4-ai-context{border-radius:19px;border:1px solid var(--line);background:linear-gradient(145deg,var(--card),color-mix(in srgb,var(--card) 96%,var(--accent) 4%));box-shadow:var(--shadow);overflow:hidden;}
.v4-ai-side{padding:14px;}
.v4-ai-side .side-label,.v4-ai-context .side-label{display:block;color:var(--accent);font-size:8px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;margin-bottom:9px;}
.v4-ai-doc{display:flex;gap:9px;align-items:center;padding:9px;border-radius:11px;border:1px solid transparent;cursor:pointer;}
.v4-ai-doc:hover{background:var(--soft);border-color:var(--line);}
.v4-ai-doc .ico{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:rgba(255,55,75,.10);color:var(--err);font-size:8px;font-weight:900;flex:none;}
.v4-ai-doc b{display:block;color:var(--ink);font-size:9px;line-height:1.3;}.v4-ai-doc small{display:block;color:var(--muted);font-size:7.8px;margin-top:2px;}
.v4-ai-main{display:flex;flex-direction:column;min-height:570px;}
.v4-ai-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);}
.v4-ai-head .orb{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#91e2ff,#0a90f3 52%,#075098);color:#fff;font-size:18px;box-shadow:0 0 0 6px rgba(22,146,236,.07);}
.v4-ai-head b{display:block;color:var(--ink);font-size:12px;}.v4-ai-head small{display:block;color:var(--ok);font-size:8.5px;margin-top:1px;}
.v4-ai-head .machine-ai-chip{margin-left:auto;padding:6px 9px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:8px;font-weight:850;}
.v4-ai-main .stream{background:radial-gradient(circle at 90% 10%,rgba(28,154,244,.06),transparent 24%),transparent;padding:17px;}
.v4-ai-main .msg{max-width:86%;}.v4-ai-main .bubble{border-radius:15px;padding:11px 13px;font-size:12px;line-height:1.55;box-shadow:none;}
.v4-ai-main .msg.bot .bubble{background:var(--soft);border-color:var(--line);}.v4-ai-main .msg.user .bubble{background:linear-gradient(135deg,#0b86ea,#0870cc);}
.v4-ai-main .composer{background:transparent;padding:11px 13px;border-top:1px solid var(--line);}.v4-ai-main .composer .suggest{display:none;}
.v4-ai-main .composer .row{padding:7px;border-radius:13px;border:1px solid var(--line);background:var(--field);}.v4-ai-main .composer input{border:0!important;background:transparent!important;padding:8px 9px!important;}.v4-ai-main .composer .send{width:40px;border-radius:10px;background:linear-gradient(135deg,#0b8af2,#0872cf);}
.v4-ai-context{padding:14px;}
.v4-ai-context .context-block{padding:12px;border-radius:13px;background:var(--soft);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);margin-bottom:9px;}
.v4-ai-context .context-block b{display:block;color:var(--ink);font-size:9.5px;margin-bottom:5px;}.v4-ai-context .context-block p{margin:0;color:var(--muted);font-size:8.5px;line-height:1.45;}
.v4-prompt{width:100%;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font-size:8.7px;font-weight:750;text-align:left;margin-top:6px;}
.v4-prompt:hover{border-color:rgba(39,166,245,.4);background:var(--soft);}
.v4-mini-history{display:grid;gap:6px;max-height:170px;overflow:auto;}
.v4-mini-history div{padding:7px;border-radius:9px;background:var(--soft);color:var(--ink);font-size:8.5px;}.v4-mini-history small{display:block;color:var(--muted);margin-top:2px;font-size:7.5px;}

/* Generic admin tables/forms elevated */
body[data-role="admin"] table{border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:13px;}
body[data-role="admin"] thead th{background:linear-gradient(180deg,#092b47,#08243b);color:#cae9fb;border-bottom:1px solid rgba(82,180,242,.16);font-size:9px;letter-spacing:.06em;text-transform:uppercase;padding:11px 12px;}
body[data-role="admin"] tbody td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:10.5px;}
body[data-role="admin"] tbody tr{transition:.15s ease;}body[data-role="admin"] tbody tr:hover{background:rgba(22,132,207,.07);}
html[data-theme="day"] body[data-role="client"] thead th{background:#0a6fc5;}
body[data-role] .toolbar{padding:2px 0;margin-bottom:13px;}
body[data-role] .search input{min-height:42px;border-radius:12px;}
body[data-role] .filters .f{border-radius:999px;}
body[data-role] .modal{border-radius:22px;border:1px solid var(--line);background:var(--card);box-shadow:0 32px 100px rgba(0,0,0,.35);}
body[data-role] .modal .mh{padding:18px 21px;}body[data-role] .modal .mb{padding:20px 21px;}body[data-role] .modal .mf{padding:14px 21px;}

/* Motion */
@keyframes v4rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.v4-animate{animation:v4rise .5s cubic-bezier(.2,.8,.2,1) both;}
.v4-animate:nth-child(2){animation-delay:.04s}.v4-animate:nth-child(3){animation-delay:.08s}.v4-animate:nth-child(4){animation-delay:.12s}.v4-animate:nth-child(5){animation-delay:.16s}
body[data-role] button,body[data-role] a,body[data-role] .machine-hub-card{transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease;}
body[data-role] button:active{transform:scale(.98);}

/* Responsive */
@media(max-width:1380px){
  body[data-role] .sidebar{width:250px}.brand-logo{width:195px!important}.admin-kpi-grid{grid-template-columns:repeat(3,1fr)}.admin-control-grid{grid-template-columns:1fr 1fr}.admin-quality{grid-row:auto}.admin-docs-panel{grid-column:1/-1}.admin-actions-strip{grid-template-columns:repeat(3,1fr)}.client-main-grid{grid-template-columns:1.25fr 1fr}.client-search-panel{grid-column:auto}.client-history-panel{grid-column:2}.v4-ai-shell{grid-template-columns:220px minmax(0,1fr)}.v4-ai-context{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.v4-ai-context .context-block{margin:0}.admin-hero-telemetry{display:none}.admin-hero-copy{width:80%}
}
@media(max-width:1050px){
  body[data-role] .sidebar{width:218px}.role-sidebar-card{display:none}.nav{padding-bottom:100px!important}.client-summary-grid{grid-template-columns:1fr 1fr}.client-main-grid{grid-template-columns:1fr}.client-machine-feature{grid-row:auto}.client-search-panel,.client-history-panel{grid-column:auto}.admin-kpi-grid{grid-template-columns:1fr 1fr}.admin-control-grid{grid-template-columns:1fr}.admin-docs-panel{grid-column:auto}.admin-docs-grid{grid-template-columns:1fr 1fr}.admin-actions-strip{grid-template-columns:1fr 1fr}.machine-hub-grid{grid-template-columns:1fr 1fr}.client-hero-copy{width:78%}.v4-ai-shell{grid-template-columns:1fr}.v4-ai-side{display:none}.v4-ai-context{grid-column:auto;grid-template-columns:1fr 1fr}.top-command-hint{display:none}
}
@media(max-width:720px){
  body[data-role] .sidebar{width:74px}.role-mode-badge{display:none}.content{padding:14px!important}.client-hero-v4{min-height:380px}.client-hero-copy{width:100%;padding:34px 22px;background:linear-gradient(90deg,rgba(2,20,34,.87),rgba(2,20,34,.58))}.client-hero-copy h1{font-size:40px}.client-hero-badge{display:none}.client-summary-grid,.admin-kpi-grid,.machine-hub-grid,.admin-docs-grid,.admin-actions-strip{grid-template-columns:1fr}.admin-hero-v4{min-height:330px}.admin-hero-copy{width:100%;padding:34px 22px}.admin-hero-copy h1{font-size:39px}.admin-fleet-overview{grid-template-columns:1fr 1fr}.v4-ai-context{grid-template-columns:1fr}.v4-page-head{align-items:flex-start;flex-direction:column}.v4-page-head .head-actions{justify-content:flex-start}.quality-ring-wrap{grid-template-columns:1fr;justify-items:center}.quality-legend{width:100%}
}

/* ===== couche 10 : sv-v7-exceptional-design ===== */
/* ======================================================================
   SEDAM VALENTIN — V9 FINAL CHROMIUM VALIDATED
   Committee specification applied:
   - Direction artistique: industrial-luxury, abstract, machined precision
   - UX: restrained effects, readable hierarchy, consistent day/night
   - Contrarian review: effects communicate state, never compete with content
   - Motion: reduced-motion compliant; no permanent distracting movement
   ====================================================================== */
:root{
  --v7-blue:#0a87eb;
  --v7-cyan:#52c5ff;
  --v7-red:#f32f49;
  --v7-gold:#c9a45f;
  --v7-green:#30ce7b;
  --v7-radius:22px;
  --v7-metal-line:rgba(138,190,229,.16);
  --v7-light-metal:#edf4f9;
}

/* --- Foundation: calmer, higher quality than V6 --- */
body{letter-spacing:-.006em;}
.content{position:relative;isolation:isolate;}
.content::before{content:"";position:fixed;inset:92px 18px 18px 282px;border-radius:34px;pointer-events:none;z-index:-1;background:radial-gradient(circle at 88% 10%,rgba(56,178,250,.055),transparent 19%),radial-gradient(circle at 13% 88%,rgba(201,164,95,.035),transparent 16%);}
html[data-theme="day"] .content::before{background:radial-gradient(circle at 88% 10%,rgba(56,178,250,.065),transparent 19%),radial-gradient(circle at 13% 88%,rgba(201,164,95,.055),transparent 16%);}

/* --- Login / accueil: theme button is deliberately inside the auth card --- */
#login{gap:18px;padding:18px;background:linear-gradient(135deg,#06121d,#081d2e 52%,#06111b)!important;}
html[data-theme="day"] #login{background:linear-gradient(135deg,#edf4f9,#f8fbfd 52%,#eaf2f8)!important;}
#login .left{border-radius:34px!important;flex:1.55!important;padding:clamp(44px,6vw,88px)!important;box-shadow:0 30px 80px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.04)!important;}
#login .right{position:relative!important;width:min(455px,34vw)!important;min-width:390px;margin:0!important;border-radius:34px!important;padding:36px 38px 38px!important;justify-content:center!important;background:linear-gradient(165deg,rgba(8,27,43,.95),rgba(6,20,33,.96))!important;border:1px solid rgba(105,187,240,.16)!important;box-shadow:0 30px 80px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.04)!important;}
html[data-theme="day"] #login .right{background:linear-gradient(165deg,rgba(255,255,255,.97),rgba(245,250,254,.98))!important;border-color:#d3e2ed!important;box-shadow:0 28px 70px rgba(37,82,116,.13),inset 0 1px 0 rgba(255,255,255,.9)!important;}
.login-panel-head{position:absolute;left:28px;right:28px;top:24px;display:flex;align-items:center;justify-content:space-between;gap:18px;z-index:12;}
.login-security{display:flex;align-items:center;gap:10px;color:#dff3ff;}
.login-security-dot{width:9px;height:9px;border-radius:50%;background:var(--v7-green);box-shadow:0 0 0 5px rgba(48,206,123,.10),0 0 18px rgba(48,206,123,.32);}
.login-security b{display:block;font-size:9px;letter-spacing:.17em;color:#a9d9f6;}.login-security small{display:block;margin-top:2px;font-size:8px;letter-spacing:.11em;color:#688aa2;}
html[data-theme="day"] .login-security b{color:#0b67ad;} html[data-theme="day"] .login-security small{color:#7590a8;}
.theme-toggle-login{position:static!important;right:auto!important;top:auto!important;flex:none!important;margin:0!important;}
#login .right h2{font-size:31px!important;letter-spacing:-.045em!important;margin:18px 0 3px!important;}
#login .right .sub{margin-bottom:27px!important;}
#login .right .field{margin-bottom:16px!important;}
#login .right .field input{height:49px!important;padding:0 15px!important;}
#login .right .btn-primary{height:49px!important;font-size:12px!important;letter-spacing:.02em!important;}
#login .cred-bubble{margin-top:25px!important;border-radius:18px!important;padding:16px!important;background:linear-gradient(145deg,rgba(11,43,68,.90),rgba(6,24,39,.92))!important;border:1px solid rgba(97,183,239,.14)!important;}
html[data-theme="day"] #login .cred-bubble{background:linear-gradient(145deg,#eef7ff,#ffffff)!important;border-color:#d4e5f2!important;color:#42627d!important;}
html[data-theme="day"] #login .cred-bubble code{color:#0a477b!important;background:#e1effa!important;}
html[data-theme="day"] #login .cred-bubble .cb-role{color:#0c355d!important;}
#login .login-logo{width:min(430px,68%)!important;height:125px!important;margin-bottom:26px!important;filter:drop-shadow(0 16px 30px rgba(0,0,0,.18));}
#login .brand-tag{margin-bottom:10px!important;}
#login h1{max-width:780px!important;font-size:clamp(42px,4.8vw,72px)!important;line-height:.94!important;letter-spacing:-.06em!important;}
#login p.lead{font-size:15px!important;max-width:650px!important;line-height:1.65!important;}
.login-tech-signature{position:absolute;right:8%;top:18%;width:320px;height:320px;pointer-events:none;opacity:.72;z-index:1;}
.login-tech-signature span{position:absolute;inset:0;border:1px solid rgba(86,190,255,.16);border-radius:50%;}
.login-tech-signature span:nth-child(2){inset:42px;border-color:rgba(86,190,255,.12);}.login-tech-signature span:nth-child(3){inset:92px;border-color:rgba(243,47,73,.17);}
.login-tech-signature i{position:absolute;left:50%;top:50%;width:150%;height:1px;background:linear-gradient(90deg,transparent,rgba(86,190,255,.25),transparent);transform:translate(-50%,-50%) rotate(-28deg);}
html[data-theme="day"] .login-tech-signature{opacity:.42;}

/* theme control, both login and app */
.theme-toggle{height:40px!important;min-width:96px!important;justify-content:center!important;gap:8px!important;padding:0 11px!important;border-radius:14px!important;}
.theme-icon{position:relative;z-index:2;width:17px;height:17px;display:grid;place-items:center;font-size:14px;line-height:1;color:#6e8da5;opacity:.54;transition:.2s ease;}
html[data-theme="day"] .theme-sun{color:#d99922;opacity:1;filter:drop-shadow(0 0 7px rgba(226,160,44,.22));}
html[data-theme="night"] .theme-moon{color:#cce9ff;opacity:1;filter:drop-shadow(0 0 8px rgba(91,191,255,.25));}
.theme-track{width:34px!important;height:18px!important;flex:none!important;}
.theme-track i{width:12px!important;height:12px!important;}
html[data-theme="night"] .theme-track i{transform:translateX(14px)!important;} html[data-theme="day"] .theme-track i{transform:translateX(0)!important;}

/* --- Connected shell refinement --- */
body[data-role] .sidebar{width:276px!important;}
body[data-role] .sidebar .logo{margin:12px 12px 9px!important;min-height:148px!important;padding:14px 14px 12px!important;}
body[data-role] .brand-logo{width:100%!important;height:103px!important;object-fit:contain!important;object-position:center center!important;}
body[data-role] .brand-copy{justify-content:center!important;gap:10px!important;}
body[data-role] .nav{padding:10px 13px 292px!important;}
body[data-role] .topbar{margin:12px 14px 0 0!important;padding:0 18px!important;height:72px!important;border-radius:20px!important;}
body[data-role] .top-search{height:42px!important;border-radius:13px!important;}
body[data-role] .theme-toggle{min-width:96px!important;}
.content{padding:22px 24px 38px!important;}
.role-sidebar-card{left:14px!important;right:14px!important;bottom:86px!important;padding:14px!important;}

/* --- Industrial abstract frame shared by all major views --- */
.v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,.v4-ai-side,.v4-ai-main,.v4-ai-context,.card{
  box-shadow:0 18px 44px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.035)!important;
}
html[data-theme="day"] .v4-panel,html[data-theme="day"] .admin-panel,html[data-theme="day"] .admin-kpi,html[data-theme="day"] .client-summary-card,html[data-theme="day"] .machine-hub-card,html[data-theme="day"] .v4-ai-side,html[data-theme="day"] .v4-ai-main,html[data-theme="day"] .v4-ai-context,html[data-theme="day"] .card{box-shadow:0 15px 34px rgba(42,91,126,.09),inset 0 1px 0 #fff!important;}
.v4-panel,.admin-panel,.client-summary-card,.machine-hub-card,.admin-kpi{border-radius:20px!important;}

/* --- View 01: dashboards. Effect = telemetry arcs + precision light seams. --- */
.content[data-view="dashboard"] .client-hero-v4,
.content[data-view="dashboard"] .admin-hero-v4{min-height:300px!important;}
.content[data-view="dashboard"] .client-hero-v4::after,
.content[data-view="dashboard"] .admin-hero-v4::after{background:radial-gradient(circle at 86% 42%,transparent 0 84px,rgba(69,183,250,.13) 85px 86px,transparent 87px 128px,rgba(201,164,95,.09) 129px 130px,transparent 131px),linear-gradient(120deg,transparent 0 67%,rgba(255,255,255,.06) 67.15%,transparent 67.4%),repeating-linear-gradient(90deg,transparent 0 44px,rgba(80,178,241,.045) 45px 46px)!important;}
.content[data-view="dashboard"] .client-summary-card::after,.content[data-view="dashboard"] .admin-kpi::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--v7-blue),transparent);opacity:.28;}

/* --- View 02: Machines. Effect = technical scan sweep only on hover. --- */
.content[data-view="machines"] .machine-hub-visual{overflow:hidden;}
.content[data-view="machines"] .machine-hub-visual::before{opacity:.65!important;}
.content[data-view="machines"] .machine-hub-visual::after{content:"";position:absolute;left:-20%;top:-30%;width:140%;height:38px;background:linear-gradient(180deg,transparent,rgba(70,192,255,.15),rgba(70,192,255,.28),transparent);transform:translateY(-40px) rotate(-5deg);opacity:0;transition:.5s cubic-bezier(.2,.7,.2,1);}
.content[data-view="machines"] .machine-hub-card:hover .machine-hub-visual::after{transform:translateY(210px) rotate(-5deg);opacity:.9;}
.content[data-view="machines"] .machine-hub-card:hover .machine-hub-visual svg{filter:drop-shadow(0 14px 26px rgba(10,139,231,.25));transform:scale(1.025);transition:.3s ease;}

/* --- View 03: Assistant. Effect = slow intelligence pulse, source focus. --- */
.content[data-view="assistant"] .v4-ai-head .orb{position:relative;isolation:isolate;}
.content[data-view="assistant"] .v4-ai-head .orb::before,.content[data-view="assistant"] .v4-ai-head .orb::after{content:"";position:absolute;inset:-7px;border-radius:18px;border:1px solid rgba(62,185,255,.16);animation:v7-pulse 3.8s ease-out infinite;z-index:-1;}
.content[data-view="assistant"] .v4-ai-head .orb::after{inset:-13px;animation-delay:1.2s;opacity:.45;}
.content[data-view="assistant"] .v4-ai-doc:hover{transform:translateX(3px);}
.content[data-view="assistant"] .v4-prompt:hover{box-shadow:inset 3px 0 0 var(--v7-blue);}
@keyframes v7-pulse{0%{transform:scale(.88);opacity:.7}65%,100%{transform:scale(1.18);opacity:0}}

/* --- View 04: Search. Effect = optical focus line and result edge glow. --- */
.content[data-view="search"] .toolbar{position:relative;padding:12px!important;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent);}
html[data-theme="day"] .content[data-view="search"] .toolbar{background:linear-gradient(145deg,#fff,#f7fbff);}
.content[data-view="search"] .toolbar::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--v7-blue),var(--v7-gold),transparent);opacity:.35;}
.content[data-view="search"] #res .card{border-radius:20px!important;overflow:hidden;}
.content[data-view="search"] .doc-row:hover{box-shadow:inset 3px 0 0 var(--v7-blue);background:rgba(22,151,239,.055)!important;}

/* --- View 05: History / Journal. Effect = time rail, no animation. --- */
.content[data-view="hist"] table,.content[data-view="journal"] table{position:relative;}
.content[data-view="hist"] tbody tr td:first-child,.content[data-view="journal"] tbody tr td:first-child{position:relative;}
.content[data-view="hist"] tbody tr td:first-child::before,.content[data-view="journal"] tbody tr td:first-child::before{content:"";position:absolute;left:3px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--v7-blue);box-shadow:0 0 0 4px rgba(10,135,235,.08);}

/* --- View 06: Documents. Effect = controlled indexing scanner. --- */
.content[data-view="docs"] .dropzone{position:relative;overflow:hidden;border-radius:22px!important;background:linear-gradient(145deg,rgba(16,137,226,.06),rgba(255,255,255,.015))!important;}
html[data-theme="day"] .content[data-view="docs"] .dropzone{background:linear-gradient(145deg,#f7fbff,#edf6fc)!important;}
.content[data-view="docs"] .dropzone::after{content:"";position:absolute;left:8%;right:8%;top:18%;height:1px;background:linear-gradient(90deg,transparent,var(--v7-cyan),transparent);box-shadow:0 0 15px rgba(69,190,255,.28);animation:v7-scan-y 4.8s ease-in-out infinite;opacity:.55;}
@keyframes v7-scan-y{0%,100%{transform:translateY(0)}50%{transform:translateY(86px)}}

/* --- View 07: Codes / Modules. Effect = CAD corners and calibration grid. --- */
.content[data-view="codes"] .code-stage{position:relative;overflow:hidden;}
.content[data-view="codes"] .code-stage::before{content:"";position:absolute;inset:13px;border:1px solid rgba(75,181,244,.14);clip-path:polygon(0 0,42px 0,42px 2px,2px 2px,2px 42px,0 42px,0 0,100% 0,100% 42px,98% 42px,98% 2px,calc(100% - 42px) 2px,calc(100% - 42px) 0,100% 0,100% 100%,calc(100% - 42px) 100%,calc(100% - 42px) 98%,98% 98%,98% calc(100% - 42px),100% calc(100% - 42px),100% 100%,0 100%,0 calc(100% - 42px),2px calc(100% - 42px),2px 98%,42px 98%,42px 100%,0 100%);pointer-events:none;}
.content[data-view="codes"] .code-list .ci.on{box-shadow:inset 3px 0 0 var(--v7-gold)!important;}

/* --- View 08: Sections. Effect = hierarchy rail. --- */
.content[data-view="sections"] .card{position:relative;}
.content[data-view="sections"] .card::after{content:"";position:absolute;left:30px;top:24px;bottom:24px;width:1px;background:linear-gradient(180deg,transparent,rgba(62,173,240,.22),transparent);pointer-events:none;}

/* --- View 09: Clients / Users. Effect = data focus, no decorative motion. --- */
.content[data-view="clients"] tbody tr:hover,.content[data-view="users"] tbody tr:hover{box-shadow:inset 3px 0 0 var(--v7-blue);}
.content[data-view="clients"] table,.content[data-view="users"] table{border-radius:18px;overflow:hidden;}

/* --- View 10: QR. Effect = encoded dot matrix. --- */
.content[data-view="qr"] .card{position:relative;overflow:hidden;}
.content[data-view="qr"] .card::before{content:"";position:absolute;right:18px;top:16px;width:110px;height:60px;opacity:.06;background-image:radial-gradient(circle,var(--ink) 1.2px,transparent 1.4px);background-size:8px 8px;pointer-events:none;}
.qr-box{border-radius:20px!important;box-shadow:0 16px 34px rgba(0,0,0,.14),0 0 0 1px var(--line)!important;}

/* detail-document view used inside machine assistant */
.content[data-view="assistant"] .two-col .card,.content[data-view="assistant"] .pdfview{border-radius:20px!important;}
.pdfview .page{background:linear-gradient(145deg,var(--soft),color-mix(in srgb,var(--soft) 94%,#fff))!important;}
html[data-theme="day"] .pdfview .page{background:linear-gradient(145deg,#f8fbfe,#eef5fa)!important;}

/* Modals: machined bezel */
.modal-bg{backdrop-filter:blur(10px);background:rgba(1,10,17,.60)!important;}
html[data-theme="day"] .modal-bg{background:rgba(22,45,62,.30)!important;}
.modal{border-radius:26px!important;overflow:hidden!important;}
.modal::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(130deg,rgba(255,255,255,.06),transparent 28%),radial-gradient(circle at 92% 8%,rgba(68,184,250,.08),transparent 18%);}
.modal .mh{background:linear-gradient(90deg,rgba(17,137,226,.06),transparent)!important;}

/* Motion discipline from contrarian reviewer */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}

/* Responsive: no floating/escaped theme control */
@media(max-width:1100px){
  #login{padding:12px;gap:12px;} #login .right{width:405px!important;min-width:360px!important;padding:34px 30px!important;}
  .login-panel-head{left:24px;right:24px;top:20px;}
  body[data-role] .sidebar{width:238px!important;} .content::before{left:246px;} body[data-role] .brand-logo{height:88px!important;}
}
@media(max-width:820px){
  #login .left{display:none!important;} #login{display:grid!important;place-items:center!important;} #login .right{width:min(520px,calc(100vw - 28px))!important;min-width:0!important;min-height:650px!important;}
  .theme-toggle-login{display:flex!important;}
}
@media(max-width:720px){
  body[data-role] .sidebar{width:76px!important;} body[data-role] .sidebar .logo{min-height:88px!important;margin:8px!important;padding:8px!important;} body[data-role] .brand-logo{height:62px!important;} .content::before{display:none;} body[data-role] .topbar{margin:8px 8px 0 0!important;border-radius:16px!important;}
}

/* ===== couche 11 : sv-v8-chromium-corrections ===== */
/* Corrections issued after Chromium visual/interaction review */
.top-command-hint{display:none!important;}
.lang-toggle{flex:0 0 74px!important;min-width:74px!important;height:40px!important;border-radius:14px!important;overflow:hidden!important;}
.lang-toggle button{flex:1 1 37px!important;width:37px!important;min-width:37px!important;height:38px!important;padding:0!important;display:grid!important;place-items:center!important;}
body[data-role] .sidebar .logo{margin:8px 8px 9px!important;padding:10px 10px 11px!important;}
body[data-role] .brand-logo{width:100%!important;max-width:none!important;height:108px!important;}
body[data-role] .brand-copy{padding:0 4px!important;}
.v4-animate{animation-duration:.34s!important;animation-delay:0s!important;}
.v4-animate:nth-child(2){animation-delay:.02s!important}.v4-animate:nth-child(3){animation-delay:.04s!important}.v4-animate:nth-child(4){animation-delay:.06s!important}.v4-animate:nth-child(5){animation-delay:.08s!important}
/* Night readability floor */
html[data-theme="night"] .admin-kpi .label,html[data-theme="night"] .panel-kicker,html[data-theme="night"] .client-summary-card small{color:#85a7bf!important;}
html[data-theme="night"] .admin-kpi strong,html[data-theme="night"] .client-summary-card strong{color:#f2f9ff!important;}
/* Day-mode material: subtle anodized/aluminium depth without washing content */
html[data-theme="day"] .v4-panel,html[data-theme="day"] .admin-panel,html[data-theme="day"] .admin-kpi,html[data-theme="day"] .client-summary-card,html[data-theme="day"] .machine-hub-card,html[data-theme="day"] .v4-ai-side,html[data-theme="day"] .v4-ai-main,html[data-theme="day"] .v4-ai-context{
  background:linear-gradient(155deg,#ffffff 0%,#fbfdff 54%,#f3f8fc 100%)!important;
}
@media(max-width:1260px){
  .role-mode-badge{display:none!important;}
  .top-search{max-width:410px!important;}
}
@media(max-width:1120px){
  .top-user-chip{display:none!important;}
  .lang-toggle{flex-basis:70px!important;min-width:70px!important;}
}
@media(max-width:980px){
  body[data-role] .brand-logo{height:90px!important;}
}

/* ===== couche 12 : sv-v9-mobile-auth-fix ===== */
/* Chromium mobile audit correction: #login media display must never override auth hidden state. */
@media(max-width:820px){
  #login.hidden{display:none!important;}
  #login:not(.hidden){display:grid!important;place-items:center!important;}
}

/* ===== couche 13 : sv-v10-premium-discipline ===== */
/* ============================================================
   V10 — Premium discipline
   Objective: remove "cards inside cards", anchor top hero,
   and replace superficial decoration with a more architectural,
   industrial-luxe treatment.
   ============================================================ */

/* 01. Global discipline: calmer premium language */
.v4-panel,
.admin-panel,
.admin-kpi,
.client-summary-card,
.machine-hub-card,
.v4-ai-side,
.v4-ai-main,
.v4-ai-context,
.modal,
.card{
  border-radius:16px!important;
}
.v4-panel:hover,
.admin-panel:hover,
.admin-kpi:hover,
.client-summary-card:hover,
.machine-hub-card:hover,
.v4-ai-side:hover,
.v4-ai-main:hover,
.v4-ai-context:hover{
  transform:none!important;
  box-shadow:0 18px 40px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.04)!important;
}
html[data-theme="day"] .v4-panel:hover,
html[data-theme="day"] .admin-panel:hover,
html[data-theme="day"] .admin-kpi:hover,
html[data-theme="day"] .client-summary-card:hover,
html[data-theme="day"] .machine-hub-card:hover,
html[data-theme="day"] .v4-ai-side:hover,
html[data-theme="day"] .v4-ai-main:hover,
html[data-theme="day"] .v4-ai-context:hover{
  box-shadow:0 14px 34px rgba(34,92,132,.11), inset 0 1px 0 rgba(255,255,255,.84)!important;
}

/* 02. Home/login: theme switch properly integrated into the panel head */
#login .right{
  justify-content:flex-start!important;
}
.login-panel-head{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  margin:0 0 20px!important;
  padding:0 0 18px!important;
  border-bottom:1px solid var(--line)!important;
}
.login-security{flex:1 1 auto;min-width:0;}
.theme-toggle-login{
  position:static!important;
  margin-left:auto!important;
  align-self:flex-start!important;
  flex:0 0 auto!important;
}
#login .right h2{margin:0 0 4px!important;}
#login .right .sub{margin-bottom:24px!important;}

/* 03. Dashboard top slab: attached to the top, straight on top */
.content[data-view="dashboard"]{
  padding-top:0!important;
}
.content[data-view="dashboard"] .client-hero-v4,
.content[data-view="dashboard"] .admin-hero-v4,
.content[data-view="dashboard"] .dash-hero.premium-hero{
  margin:-22px -24px 22px!important;
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
  border-bottom-left-radius:24px!important;
  border-bottom-right-radius:24px!important;
  border-left:0!important;
  border-right:0!important;
  box-shadow:0 26px 52px rgba(0,0,0,.16)!important;
}
html[data-theme="day"] .content[data-view="dashboard"] .client-hero-v4,
html[data-theme="day"] .content[data-view="dashboard"] .admin-hero-v4,
html[data-theme="day"] .content[data-view="dashboard"] .dash-hero.premium-hero{
  box-shadow:0 18px 42px rgba(31,84,122,.10)!important;
}

/* 04. No card inside the hero: the hero itself is the only premium surface */
.premium-hero-copy,
.client-hero-copy,
.admin-hero-copy{
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.client-hero-copy,
.admin-hero-copy,
.premium-hero-copy{
  padding:38px 40px!important;
}
.client-hero-copy p,
.admin-hero-copy p,
.premium-hero-copy p{max-width:640px!important;}

.client-hero-badge{
  right:28px!important;
  bottom:26px!important;
  padding:0 0 0 14px!important;
  border-radius:0!important;
  border:0!important;
  border-left:2px solid rgba(89,196,255,.48)!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
html[data-theme="day"] .client-hero-badge{
  border-left-color:#0a84e9!important;
}
.client-hero-badge b{font-size:11px!important;letter-spacing:.06em;text-transform:uppercase;}
.client-hero-badge .pulse{box-shadow:none!important;}

.admin-hero-telemetry{
  right:26px!important;
  top:28px!important;
  bottom:28px!important;
  width:256px!important;
  gap:0!important;
  padding-left:20px!important;
  border-left:1px solid rgba(108,193,245,.18)!important;
}
html[data-theme="day"] .admin-hero-telemetry{
  border-left-color:#d7e3ee!important;
}
.telemetry-cell{
  padding:10px 0 10px 14px!important;
  border-radius:0!important;
  border:0!important;
  border-top:1px solid rgba(108,193,245,.12)!important;
  background:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.telemetry-cell:nth-child(-n+2){border-top:0!important;}
html[data-theme="day"] .telemetry-cell{border-top-color:#dce7f0!important;}
.telemetry-cell small{font-size:7.5px!important;letter-spacing:.14em!important;}
.telemetry-cell strong{font-size:22px!important;}

/* 05. Remove nested mini-cards inside larger cards; replace with structured rows */
.machine-meta-row,
.machine-hub-meta,
.quality-legend,
.admin-docs-grid,
.v4-ai-context,
.v4-mini-history{
  gap:0!important;
}
.machine-meta-row div,
.machine-hub-meta div,
.quality-legend div,
.admin-doc-mini,
.v4-ai-context .context-block,
.v4-ai-doc,
.client-history-item,
.client-search-item,
.history-item,
.table-card,
.stat{
  background:none!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.machine-meta-row div,
.machine-hub-meta div,
.quality-legend div,
.admin-doc-mini,
.v4-ai-context .context-block,
.v4-ai-doc,
.client-history-item,
.client-search-item,
.history-item{
  border:0!important;
  border-top:1px solid var(--line)!important;
}
.machine-meta-row div:nth-child(-n+2),
.machine-hub-meta div:nth-child(-n+2),
.quality-legend div:first-child,
.admin-doc-mini:first-child,
.v4-ai-context .context-block:first-child,
.v4-ai-doc:first-child,
.client-history-item:first-child,
.client-search-item:first-child,
.history-item:first-child{
  border-top:0!important;
}
.machine-meta-row div,
.machine-hub-meta div{padding:10px 0!important;}
.quality-legend div{padding:10px 0!important;grid-template-columns:10px 1fr auto!important;}
.admin-doc-mini{padding:12px 0!important;}
.v4-ai-doc{padding:11px 0!important;}
.v4-ai-context .context-block{padding:13px 0!important;margin:0!important;}
.client-history-item{padding:12px 0!important;}

/* 06. Make inner information blocks more editorial, less decorative */
.machine-hub-visual,
.client-machine-visual,
.code-stage{
  border-radius:12px!important;
}
.v4-panel header,
.admin-panel header{margin-bottom:16px!important;padding-bottom:12px;border-bottom:1px solid var(--line)!important;}
.v4-panel header a,
.admin-panel header a{font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase;}

/* 07. Premium summary cards: quieter, more architectural */
.client-summary-card,
.admin-kpi{
  min-height:92px!important;
  padding:16px 16px!important;
}
.client-summary-card::after,
.admin-kpi::after{opacity:.18!important;}
.client-summary-icon,
.admin-kpi .mini-icon{
  border-radius:12px!important;
  box-shadow:none!important;
}
.client-summary-card strong,
.admin-kpi strong{letter-spacing:-.05em!important;}

/* 08. Buttons less flashy, more premium */
.client-hero-actions button,
.admin-hero-actions button,
.v4-page-head .head-actions button,
.machine-hub-actions .primary,
.v4-ai-main .composer .send,
.btn.primary{
  box-shadow:0 10px 22px rgba(9,129,232,.18), inset 0 1px 0 rgba(255,255,255,.18)!important;
}
.client-hero-actions button:not(.primary),
.admin-hero-actions button:not(.primary),
.v4-page-head .head-actions button:not(.primary),
.machine-hub-actions button:not(.primary),
body[data-role] .toolbar button,
body[data-role] .toolbar .f,
.v4-prompt,
.admin-action{
  box-shadow:none!important;
}

/* 09. Mobile adjustments for the new top-anchored hero */
@media(max-width:720px){
  .content[data-view="dashboard"] .client-hero-v4,
  .content[data-view="dashboard"] .admin-hero-v4,
  .content[data-view="dashboard"] .dash-hero.premium-hero{
    margin:-14px -14px 18px!important;
    border-bottom-left-radius:18px!important;
    border-bottom-right-radius:18px!important;
  }
  .client-hero-copy,
  .admin-hero-copy,
  .premium-hero-copy{padding:28px 22px!important;}
  .admin-hero-telemetry{display:none!important;}
}
@media(max-width:820px){
  .login-panel-head{margin:0 0 16px!important;padding-bottom:16px!important;}
}

/* ===== couche 14 : sv-v11-premium-rectilinear ===== */
/* ============================================================
   V11 — Premium rectilinear refinement
   Feedback integration:
   - straight navigation shell on edges
   - no extra search-field drawing
   - day-mode hero better integrated
   - larger logo, light logo block preserved in night
   ============================================================ */

/* 01. Outer shell: straight and edge-aligned */
body[data-role] .sidebar{
  width:290px!important;
  border-radius:0!important;
  border-right:1px solid #dbe5ed!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
html[data-theme="night"] body[data-role] .sidebar{
  background:linear-gradient(180deg,#071420,#081925)!important;
}
html[data-theme="day"] body[data-role] .sidebar{
  background:linear-gradient(180deg,#f8fbfd,#f2f7fb)!important;
}
body[data-role] .topbar{
  margin:0!important;
  height:74px!important;
  padding:0 22px!important;
  border-radius:0!important;
  border-top:0!important;
  border-left:0!important;
  border-right:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
html[data-theme="night"] body[data-role] .topbar{
  background:rgba(9,24,37,.98)!important;
}
html[data-theme="day"] body[data-role] .topbar{
  background:rgba(255,255,255,.98)!important;
}
body[data-role] .content{
  padding:0 22px 30px!important;
}

/* 02. Logo block: bigger logo, light premium block in both themes */
body[data-role] .sidebar .logo{
  margin:0!important;
  min-height:172px!important;
  padding:18px 20px 16px!important;
  border-radius:0!important;
  border:0!important;
  border-bottom:1px solid #dbe5ed!important;
  background:linear-gradient(145deg,#f7f1e8 0%,#f8fbfd 48%,#eef4f8 100%)!important;
  box-shadow:none!important;
}
body[data-role] .brand-logo{
  width:100%!important;
  height:124px!important;
  max-width:none!important;
  object-fit:contain!important;
  object-position:center center!important;
}
body[data-role] .brand-copy{
  justify-content:center!important;
  padding:0!important;
}
body[data-role] .brand-copy b,
body[data-role] .brand-copy small{
  color:#6a8294!important;
}

/* 03. Sidebar info card: keep the light material even in night */
body[data-role] .role-sidebar-card{
  background:linear-gradient(145deg,#f7f1e8 0%,#ffffff 52%,#eef5fa 100%)!important;
  border:1px solid #dce6ee!important;
  box-shadow:none!important;
}
body[data-role] .role-sidebar-card::before,
body[data-role] .role-sidebar-card::after{opacity:.18!important;}
body[data-role] .role-sidebar-card .role-label{color:#0a84e9!important;}
body[data-role] .role-sidebar-card strong{color:#0d3158!important;}
body[data-role] .role-sidebar-card p{color:#6a8298!important;}
body[data-role] .role-sidebar-card .role-meter{background:#dfe9f0!important;}

/* 04. Search zone: one frame only, no inner drawn field */
body[data-role] .top-search{
  height:42px!important;
  border-radius:14px!important;
  border:1px solid var(--line)!important;
  background:var(--card)!important;
  box-shadow:none!important;
  padding:0 12px!important;
  gap:10px!important;
}
body[data-role] .top-search input{
  border:0!important;
  outline:none!important;
  background:transparent!important;
  box-shadow:none!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
body[data-role] .top-search input::-webkit-search-decoration,
body[data-role] .top-search input::-webkit-search-cancel-button,
body[data-role] .top-search input::-webkit-search-results-button,
body[data-role] .top-search input::-webkit-search-results-decoration{
  -webkit-appearance:none!important;
}
body[data-role] .top-search:focus-within{
  border-color:color-mix(in srgb,var(--accent) 35%,var(--line))!important;
  box-shadow:none!important;
}
body[data-role] .top-search kbd{
  box-shadow:none!important;
  border:1px solid var(--line)!important;
  background:var(--soft)!important;
}

/* 05. Dashboard band: attached to the top and straight on top edges */
.content[data-view="dashboard"] .client-hero-v4,
.content[data-view="dashboard"] .admin-hero-v4,
.content[data-view="dashboard"] .dash-hero.premium-hero{
  margin:0 -22px 22px!important;
  min-height:330px!important;
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
  border-bottom-left-radius:22px!important;
  border-bottom-right-radius:22px!important;
  border-left:0!important;
  border-right:0!important;
  box-shadow:none!important;
}

/* 06. Day-mode integration: more structural, less empty */
html[data-theme="day"] .content[data-view="dashboard"] .client-hero-v4,
html[data-theme="day"] .content[data-view="dashboard"] .admin-hero-v4,
html[data-theme="day"] .content[data-view="dashboard"] .dash-hero.premium-hero{
  background:
    linear-gradient(90deg,rgba(255,255,255,.99) 0 56%,rgba(247,250,253,.99) 56%,rgba(238,244,249,.99) 100%)!important;
  border-bottom:1px solid #d8e3ec!important;
}
html[data-theme="day"] .content[data-view="dashboard"] .client-hero-v4::before,
html[data-theme="day"] .content[data-view="dashboard"] .admin-hero-v4::before,
html[data-theme="day"] .content[data-view="dashboard"] .dash-hero.premium-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,transparent 0 56%,rgba(206,217,226,.85) 56%,transparent 56.15%),
    repeating-linear-gradient(90deg,transparent 0 28px,rgba(117,146,171,.045) 28px 29px),
    repeating-linear-gradient(180deg,transparent 0 28px,rgba(117,146,171,.03) 28px 29px)!important;
  opacity:1!important;
  pointer-events:none;
}
html[data-theme="day"] .content[data-view="dashboard"] .client-hero-v4::after,
html[data-theme="day"] .content[data-view="dashboard"] .admin-hero-v4::after,
html[data-theme="day"] .content[data-view="dashboard"] .dash-hero.premium-hero::after{
  background:
    radial-gradient(circle at 86% 43%,transparent 0 86px,rgba(92,170,229,.20) 86px 87px,transparent 87px 134px,rgba(206,176,112,.18) 134px 135px,transparent 135px),
    linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(233,240,246,.52) 100%)!important;
  opacity:1!important;
}

/* 07. Hero content itself stays clean and not boxed */
.client-hero-copy,
.admin-hero-copy,
.premium-hero-copy{
  width:min(720px,60%)!important;
  padding:38px 40px!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}
.client-hero-copy p,
.admin-hero-copy p,
.premium-hero-copy p{
  max-width:620px!important;
}
.client-hero-badge{
  right:34px!important;
  bottom:30px!important;
}

/* 08. Keep premium simplicity inside panels */
.v4-panel,
.admin-panel,
.admin-kpi,
.client-summary-card,
.machine-hub-card,
.v4-ai-side,
.v4-ai-main,
.v4-ai-context,
.card,
.modal{
  box-shadow:none!important;
}
html[data-theme="night"] .v4-panel,
html[data-theme="night"] .admin-panel,
html[data-theme="night"] .admin-kpi,
html[data-theme="night"] .client-summary-card,
html[data-theme="night"] .machine-hub-card,
html[data-theme="night"] .v4-ai-side,
html[data-theme="night"] .v4-ai-main,
html[data-theme="night"] .v4-ai-context,
html[data-theme="night"] .card{
  border-color:rgba(109,151,181,.14)!important;
}
html[data-theme="day"] .v4-panel,
html[data-theme="day"] .admin-panel,
html[data-theme="day"] .admin-kpi,
html[data-theme="day"] .client-summary-card,
html[data-theme="day"] .machine-hub-card,
html[data-theme="day"] .v4-ai-side,
html[data-theme="day"] .v4-ai-main,
html[data-theme="day"] .v4-ai-context,
html[data-theme="day"] .card{
  border-color:#d9e4ec!important;
}

/* 09. Responsive continuity */
@media(max-width:1100px){
  body[data-role] .sidebar{width:252px!important;}
}
@media(max-width:720px){
  body[data-role] .topbar{padding:0 14px!important;}
  body[data-role] .content{padding:0 14px 22px!important;}
  .content[data-view="dashboard"] .client-hero-v4,
  .content[data-view="dashboard"] .admin-hero-v4,
  .content[data-view="dashboard"] .dash-hero.premium-hero{margin:0 -14px 18px!important;}
}

/* ===== couche 15 : sv-v12-topless-control-center ===== */
/* ============================================================
   V12 — Topless Control Center
   User feedback integrated:
   1) no top bar
   2) remove crossed sidebar card
   3) integrate admin note into the "Centre de contrôle" container
   4) preserve night geometric effects in day mode with a white base
   ============================================================ */

/* 01. Suppress the upper bar completely */
body[data-role] .topbar{display:none!important;}
body[data-role] .main{display:flex!important;flex-direction:column!important;min-width:0!important;}
body[data-role] .content{padding:0 22px 28px!important;max-width:none!important;}

/* 02. Sidebar: strict, premium, rectilinear */
body[data-role] .sidebar{
  width:292px!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
body[data-role] .sidebar .logo{
  margin:0!important;
  padding:20px 22px 18px!important;
  min-height:176px!important;
  border-radius:0!important;
  border:0!important;
  border-bottom:1px solid #dce5ed!important;
  background:linear-gradient(145deg,#f7f1e8 0%,#ffffff 58%,#eef4f8 100%)!important;
}
body[data-role] .brand-logo{
  width:100%!important;
  height:128px!important;
  max-width:none!important;
  object-fit:contain!important;
}
body[data-role] .brand-copy{justify-content:center!important;}
body[data-role] .brand-copy b,
body[data-role] .brand-copy small{color:#6b8194!important;}
html[data-theme="night"] body[data-role] .sidebar{background:linear-gradient(180deg,#061522,#081826)!important;}
html[data-theme="day"] body[data-role] .sidebar{background:linear-gradient(180deg,#f8fbfd,#f2f7fb)!important;}

/* 03. Remove the crossed sidebar card */
body[data-role] .role-sidebar-card{display:none!important;}
body[data-role] .nav{padding-bottom:24px!important;}

/* 04. Relocate useful controls to the sidebar footer */
body[data-role] .foot{
  display:grid!important;
  grid-template-columns:auto 1fr auto!important;
  gap:10px 12px!important;
  align-items:center!important;
  padding:14px 16px 16px!important;
  border-top:1px solid var(--line)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.00),rgba(255,255,255,.02))!important;
}
html[data-theme="day"] body[data-role] .foot{background:linear-gradient(180deg,#f7fbfe,#f4f8fb)!important;}
body[data-role] .foot .shell-side-tools{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
body[data-role] .foot .theme-toggle,
body[data-role] .foot .lang-toggle{margin:0!important;}
body[data-role] .foot .pill-machine{margin-left:auto!important;}
body[data-role] .foot #who{color:#fff!important;}
body[data-role] .foot #whoSub{color:#9fb3c4!important;}
html[data-theme="day"] body[data-role] .foot #who{color:#173a60!important;}
html[data-theme="day"] body[data-role] .foot #whoSub{color:#6f869a!important;}
body[data-role] .foot .logout-btn{justify-self:end;}

/* 05. Dashboard starts immediately at the top */
.content[data-view="dashboard"]{padding-top:0!important;}
.content[data-view="dashboard"] .admin-hero-v4,
.content[data-view="dashboard"] .client-hero-v4,
.content[data-view="dashboard"] .dash-hero.premium-hero{
  margin:0 0 22px!important;
  border-top-left-radius:0!important;
  border-top-right-radius:0!important;
  border-bottom-left-radius:22px!important;
  border-bottom-right-radius:22px!important;
  box-shadow:none!important;
}

/* 06. Admin hero = main premium control container */
.admin-hero-v4{
  min-height:336px!important;
  border:1px solid rgba(60,178,248,.32)!important;
  background-image:
    linear-gradient(90deg,rgba(3,20,34,.98),rgba(4,30,50,.94) 49%,rgba(5,24,40,.86) 72%,rgba(6,23,38,.84)),
    var(--hero-photo)!important;
  background-size:cover!important;
  background-position:center center!important;
}
.admin-hero-v4::before{
  background:
    linear-gradient(104deg,transparent 0 57.5%,rgba(31,164,249,.13) 57.7%,transparent 58%),
    repeating-linear-gradient(90deg,transparent 0 43px,rgba(58,169,235,.048) 43px 44px),
    radial-gradient(circle at 88% 40%,transparent 0 84px,rgba(52,160,233,.18) 84px 85px,transparent 85px 132px,rgba(200,163,94,.10) 132px 133px,transparent 133px)!important;
  opacity:1!important;
}
.admin-hero-v4::after{
  background:
    linear-gradient(180deg,transparent 0%,rgba(7,20,32,.24) 100%),
    linear-gradient(120deg,transparent 0 70%,rgba(255,255,255,.06) 70.1%,transparent 70.4%)!important;
  opacity:1!important;
}
.admin-hero-copy{
  width:min(760px,61%)!important;
  padding:40px 40px 34px!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
}
.admin-hero-copy p{max-width:650px!important;}
.admin-hero-actions{margin-bottom:16px!important;}

/* 07. Integrated note inside Centre de contrôle, not in the sidebar */
.hero-inline-note{
  width:min(470px,100%);
  padding:14px 0 0!important;
  border-top:1px solid rgba(106,180,227,.18);
  background:none!important;
}
.hero-inline-note .role-label{
  display:block;
  margin-bottom:6px;
  color:#69c5ff;
  font-size:9px;
  font-weight:900;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.hero-inline-note strong{display:block;color:#fff;font-size:15px;letter-spacing:-.02em;margin-bottom:4px;}
.hero-inline-note p{margin:0;color:#9db6c9;font-size:11px;line-height:1.55;max-width:430px;}
.hero-inline-note .role-meter{margin-top:11px;height:3px;background:rgba(255,255,255,.10);overflow:hidden;}
.hero-inline-note .role-meter i{display:block;height:100%;width:88%;background:linear-gradient(90deg,#0f8ced,#34d8ff);}

/* 08. Right telemetry remains integrated within the hero */
.admin-hero-telemetry{
  right:28px!important;
  top:28px!important;
  bottom:28px!important;
  width:270px!important;
  padding-left:22px!important;
  border-left:1px solid rgba(89,178,235,.20)!important;
}
.telemetry-cell{padding:12px 0 12px 16px!important;}
.telemetry-cell strong{font-size:24px!important;}

/* 09. Day mode keeps the night geometry, on a white foundation */
html[data-theme="day"] .admin-hero-v4{
  border-color:#d9e4ec!important;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.99),rgba(250,252,254,.98) 49%,rgba(243,247,250,.97) 72%,rgba(238,244,248,.96)),
    none!important;
}
html[data-theme="day"] .admin-hero-v4::before{
  background:
    linear-gradient(104deg,transparent 0 57.5%,rgba(15,129,232,.10) 57.7%,transparent 58%),
    repeating-linear-gradient(90deg,transparent 0 43px,rgba(67,130,177,.055) 43px 44px),
    radial-gradient(circle at 88% 40%,transparent 0 84px,rgba(28,139,226,.16) 84px 85px,transparent 85px 132px,rgba(202,171,109,.13) 132px 133px,transparent 133px)!important;
  opacity:1!important;
}
html[data-theme="day"] .admin-hero-v4::after{
  background:
    linear-gradient(180deg,transparent 0%,rgba(226,235,242,.48) 100%),
    linear-gradient(120deg,transparent 0 70%,rgba(132,166,194,.11) 70.1%,transparent 70.4%)!important;
  opacity:1!important;
}
html[data-theme="day"] .admin-hero-copy h1,
html[data-theme="day"] .admin-hero-copy h1 span{color:#102f50!important;}
html[data-theme="day"] .admin-hero-copy p{color:#60788e!important;}
html[data-theme="day"] .admin-hero-telemetry{border-left-color:#d6e1ea!important;}
html[data-theme="day"] .telemetry-cell{border-top-color:#dde7ef!important;}
html[data-theme="day"] .telemetry-cell small{color:#6a8195!important;}
html[data-theme="day"] .telemetry-cell strong{color:#13345a!important;}
html[data-theme="day"] .telemetry-cell em{color:#0eac62!important;}
html[data-theme="day"] .hero-inline-note{border-top-color:#d6e1ea!important;}
html[data-theme="day"] .hero-inline-note .role-label{color:#0b82e8!important;}
html[data-theme="day"] .hero-inline-note strong{color:#12345a!important;}
html[data-theme="day"] .hero-inline-note p{color:#688195!important;}

/* 10. Day client hero keeps premium effects too */
html[data-theme="day"] .client-hero-v4,
html[data-theme="day"] .dash-hero.premium-hero{
  background:
    linear-gradient(90deg,rgba(255,255,255,.99),rgba(250,252,254,.98) 52%,rgba(240,246,250,.97) 100%)!important;
  border:1px solid #d9e4ec!important;
}
html[data-theme="day"] .client-hero-v4::before,
html[data-theme="day"] .dash-hero.premium-hero::before{
  opacity:1!important;
  background:
    repeating-linear-gradient(90deg,transparent 0 44px,rgba(69,128,174,.05) 44px 45px),
    linear-gradient(104deg,transparent 0 58%,rgba(15,129,232,.10) 58.2%,transparent 58.4%)!important;
}
html[data-theme="day"] .client-hero-v4::after,
html[data-theme="day"] .dash-hero.premium-hero::after{
  opacity:1!important;
}

/* 11. Responsive */
@media(max-width:1140px){
  body[data-role] .sidebar{width:254px!important;}
  .admin-hero-copy{width:66%!important;}
}
@media(max-width:900px){
  .admin-hero-telemetry{display:none!important;}
  .admin-hero-copy{width:100%!important;}
}
@media(max-width:720px){
  body[data-role] .content{padding:0 14px 20px!important;}
  body[data-role] .sidebar{width:78px!important;}
  body[data-role] .sidebar .logo{min-height:94px!important;padding:10px!important;}
  body[data-role] .brand-logo{height:66px!important;}
  .hero-inline-note{width:100%!important;}
}

/* ===== couche 16 : sv-v13-unified-responsive ===== */
/* V15 / Unified day-night dashboard and accessible mobile drawer.
   Geometry, padding and typography are NOT redefined by theme. */
:root {
  --sv-banner-bg:#0a1a29; --sv-banner-text:#eef4fa; --sv-banner-muted:#afc3d4;
  --sv-banner-accent:#57baff; --sv-banner-line:#284358;
  --sv-banner-grid:rgba(108,162,202,.065); --sv-banner-rail:rgba(101,171,224,.14);
  --sv-banner-halo:rgba(21,135,213,.13); --sv-banner-warm:rgba(220,168,109,.05);
  --sv-banner-button:#006fc5; --sv-banner-hover:#125283;
  --sv-menu-bg:#0c2132; --sv-menu-ink:#e7f2fa;
}
html[data-theme="day"] {
  --sv-banner-bg:#ffffff; --sv-banner-text:#153047; --sv-banner-muted:#516779;
  --sv-banner-accent:#0069ae; --sv-banner-line:#d4e0e9;
  --sv-banner-grid:rgba(47,102,146,.055); --sv-banner-rail:rgba(34,117,184,.14);
  --sv-banner-halo:rgba(44,143,216,.075); --sv-banner-warm:rgba(197,151,91,.045);
  --sv-banner-button:#006bb9; --sv-banner-hover:#e9f4fc;
  --sv-menu-bg:#ffffff; --sv-menu-ink:#153047;
}
html { scrollbar-gutter:stable; }
html, body { max-width:100%; }
body { -webkit-text-size-adjust:100%; }
body[data-role] .main { min-width:0; width:100%; }
body[data-role] .topbar { display:none!important; }
body[data-role] .content { width:100%; max-width:none!important; padding:0 26px 32px!important; }
body[data-role] .content:not([data-view="dashboard"]) { padding-top:32px!important; }
body[data-role] .content::before,body[data-role] .content::after { display:none!important; }
.client-dashboard,.admin-dashboard { min-width:0; gap:20px!important; }
.sv-dashboard-banner {
  --sv-hero-pad:36px;
  position:relative; isolation:isolate; overflow:hidden;
  margin:0 -26px 8px; padding:30px var(--sv-hero-pad) 0;
  color:var(--sv-banner-text); background-color:var(--sv-banner-bg);
  border:0; border-bottom:1px solid var(--sv-banner-line); border-radius:0;
  box-shadow:none; min-width:0;
}
.sv-dashboard-banner::before {
  content:""; position:absolute; inset:0; z-index:-2; pointer-events:none;
  background:radial-gradient(ellipse at 68% 18%,var(--sv-banner-halo),transparent 65%),radial-gradient(ellipse at 94% 58%,var(--sv-banner-warm),transparent 30%);
}
.sv-dashboard-banner::after {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background-image:linear-gradient(var(--sv-banner-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sv-banner-grid) 1px,transparent 1px);
  background-size:44px 44px; mask-image:linear-gradient(90deg,transparent 33%,#000 100%);
}
.sv-banner-drawing { position:absolute; inset:0 0 0 52%; z-index:-1; color:var(--sv-banner-rail); pointer-events:none; overflow:hidden; }
.sv-drawing-ring { position:absolute; width:286px; height:286px; right:-26px; top:-104px; border:1px solid currentColor; border-radius:50%; }
.sv-drawing-ring.ring-inner { width:220px; height:220px; top:-71px; right:7px; }
.sv-drawing-axis { position:absolute; height:160%; width:1px; background:currentColor; top:-20%; right:45%; transform:rotate(24deg); }
.sv-drawing-datum { position:absolute; top:48px; right:82px; width:22px; height:1px; background:currentColor; }
.sv-drawing-datum::after { content:""; position:absolute; width:1px; height:22px; background:currentColor; top:-11px; left:11px; }
.sv-banner-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:30px; }
.sv-banner-kicker { display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:10px; font-weight:650; line-height:1.7; letter-spacing:.13em; text-transform:uppercase; color:var(--sv-banner-accent); }
.sv-banner-kicker i { display:inline-block; flex:0 0 19px; height:3px; background:#ed1c24; }
.sv-kicker-divider { color:var(--sv-banner-muted); font-weight:400; }
.sv-banner-ref { font:11px/1.6 ui-monospace,Consolas,monospace; color:var(--sv-banner-muted); letter-spacing:.1em; white-space:nowrap; }
.sv-banner-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(230px,.44fr); gap:30px; align-items:center; }
.sv-banner-copy { min-width:0; padding:0; background:none; border:0; }
.sv-banner-copy h1 { margin:0; font-size:clamp(32px,3.2vw,52px); line-height:1.08; letter-spacing:-.045em; font-weight:650; color:var(--sv-banner-text); }
.sv-banner-copy h1 span { display:block; color:var(--sv-banner-accent); margin-top:4px; }
.sv-banner-copy p { margin:18px 0 0; max-width:570px; font-size:14px; line-height:1.8; color:var(--sv-banner-muted); }
.sv-banner-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.sv-dashboard-banner .sv-action { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; max-width:100%; padding:11px 15px; border:1px solid var(--sv-banner-line); background:transparent; color:var(--sv-banner-text); border-radius:5px; box-shadow:none; font-family:inherit; font-size:12px; font-weight:600; line-height:1.4; text-align:left; transition:background-color .18s,border-color .18s; }
.sv-dashboard-banner .sv-action svg { width:17px; height:17px; flex-shrink:0; }
.sv-dashboard-banner .sv-action-primary { background:var(--sv-banner-button); border-color:var(--sv-banner-button); color:white; }
.sv-dashboard-banner .sv-action:hover { background:var(--sv-banner-hover); border-color:var(--sv-banner-accent); transform:none; }
.sv-dashboard-banner .sv-action-primary:hover { background:#005995; color:#fff; border-color:#005995; }
.sv-dashboard-banner .sv-action-text { border-color:transparent; padding-right:0; }
.sv-banner-aside { min-width:0; padding-left:28px; border-left:1px solid var(--sv-banner-line); }
.sv-banner-aside-label { font-size:10px; font-weight:650; letter-spacing:.13em; text-transform:uppercase; color:var(--sv-banner-muted); }
.sv-banner-metrics { display:grid; grid-template-columns:1fr 1fr; margin:16px 0 0; gap:0 24px; }
.sv-banner-metric { min-width:0; padding:15px 0; }
.sv-banner-metric:nth-child(n+3) { border-top:1px solid var(--sv-banner-line); }
.sv-banner-metric dt { font-size:11px; line-height:1.4; font-weight:500; color:var(--sv-banner-muted); min-height:31px; }
.sv-banner-metric dd { font-size:27px; font-weight:600; line-height:1.2; letter-spacing:-.035em; margin:4px 0 6px; font-variant-numeric:tabular-nums; color:var(--sv-banner-text); }
.sv-banner-metric>span { display:block; font-size:10px; line-height:1.5; color:var(--sv-banner-muted); }
.sv-banner-baseline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:17px 0; margin-top:30px; border-top:1px solid var(--sv-banner-line); font-size:10px; line-height:1.6; color:var(--sv-banner-muted); }
.sv-banner-baseline>span { display:flex; align-items:center; gap:8px; }
.sv-banner-baseline i { width:5px; height:5px; border:1px solid currentColor; border-radius:50%; }

/* Permanent large-screen sidebar, not a narrow rail on mobile. */
body[data-role] .sidebar { position:sticky!important; top:0; height:100vh; height:100dvh; width:270px!important; flex:0 0 270px; z-index:30; overflow:hidden!important; display:flex!important; flex-direction:column; border-radius:0!important; }
body[data-role] .sidebar::before,body[data-role] .sidebar::after { display:none!important; }
body[data-role] .sidebar .logo { display:flex!important; flex-direction:column; flex-shrink:0; min-height:152px!important; padding:25px 17px 21px!important; background:#f8fafc!important; border-bottom:1px solid #dce5ed!important; align-items:stretch; }
body[data-role] .sidebar .logo::before,body[data-role] .sidebar .logo::after { display:none!important; }
body[data-role] .sidebar .brand-logo { display:block!important; width:100%!important; height:auto!important; aspect-ratio:383/122; max-width:none!important; object-fit:contain!important; filter:none!important; }
body[data-role] .sidebar .brand-copy { display:flex!important; align-items:center; justify-content:center!important; padding:0!important; margin-top:14px!important; gap:8px!important; }
body[data-role] .sidebar .brand-copy b,body[data-role] .sidebar .brand-copy small { color:#5b7388!important; font-size:8px!important; font-weight:650!important; letter-spacing:.17em!important; }
body[data-role] .nav { flex:1 1 auto; min-height:0; overflow-y:auto!important; overflow-x:hidden!important; padding:10px 14px 20px!important; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
body[data-role] .nav .grp { display:block!important; font-size:10px!important; font-weight:650!important; letter-spacing:.12em; margin:20px 10px 9px!important; }
body[data-role] .nav a { display:flex!important; align-items:center; gap:12px; min-height:44px!important; border-radius:5px!important; margin:3px 0!important; padding:11px 12px!important; font-size:13px!important; font-weight:550!important; transform:none!important; box-shadow:none!important; }
body[data-role] .nav a span { display:inline!important; }
body[data-role] .nav a .ic { flex:0 0 18px; width:18px; height:18px; }
body[data-role] .nav a::before,body[data-role] .nav a::after { display:none!important; }
body[data-role] .nav a.active { color:#fff!important; background:#006fb8!important; box-shadow:none!important; }
body[data-role] .nav a.active svg { color:#fff!important; }
body[data-role] .sidebar .role-sidebar-card { display:none!important; }
body[data-role] .sidebar .foot { flex:none!important; position:relative!important; bottom:auto!important; display:grid!important; grid-template-columns:36px minmax(0,1fr) 40px!important; gap:13px 8px!important; padding:15px 14px!important; align-items:center!important; }
body[data-role] .sidebar .foot>div:not(.shell-side-tools) { min-width:0; display:block!important; }
body[data-role] .sidebar .foot .av { display:flex!important; width:32px!important; height:32px!important; align-items:center!important; justify-content:center!important; }
body[data-role] .sidebar #who { font-size:12px!important; line-height:1.4; }
body[data-role] .sidebar #whoSub { font-size:10px!important; line-height:1.6; }
body[data-role] .shell-side-tools { grid-column:1/-1; display:flex!important; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.shell-side-tools .theme-toggle { flex:0 0 110px; height:44px!important; min-width:110px!important; border-radius:6px!important; box-shadow:none!important; }
.shell-side-tools .lang-toggle { border-radius:6px!important; height:44px!important; }
.shell-side-tools .lang-toggle button { height:42px!important; }
body[data-role] .sidebar .logout-btn { display:flex!important; width:40px; height:40px; margin-left:0; border-radius:6px!important; }
#svMenuToggle,#svDrawerClose,#svDrawerOverlay { display:none; }
#svMenuToggle,#svDrawerClose { appearance:none; align-items:center; justify-content:center; padding:0; border:1px solid var(--line); box-shadow:none; border-radius:5px; cursor:pointer; }
#svMenuToggle svg,#svDrawerClose svg { width:22px; height:22px; }
#svDrawerOverlay { position:fixed; inset:0; z-index:110; background:rgba(2,12,21,.55); border:0; }
#svDrawerClose { position:absolute; right:9px; top:8px; width:36px; height:36px; background:#f8fafc; color:#18354c; border-color:#dbe6ef; z-index:3; }
.sv-responsive-table { max-width:100%; }
.sv-responsive-table td { overflow-wrap:anywhere; }
/* Retain focus on the whole control, not a second frame inside an input. */
button:focus-visible,a:focus-visible,[tabindex]:focus-visible { outline:2px solid var(--accent)!important; outline-offset:3px; }
#content:focus,.main:focus { outline:none!important; }
.modal-bg { z-index:200!important; }
.toast { z-index:220!important; }

/* Tablet and phone: hidden drawer and genuine full-width single-column cards. */
@media(max-width:1100px) {
  html { scrollbar-gutter:auto; }
  body[data-role] #app { display:block!important; width:100%!important; }
  body[data-role] .main { width:100%!important; margin:0!important; }
  body[data-role] .sidebar {
    position:fixed!important; top:0!important; left:0!important; bottom:0!important;
    width:min(328px,88vw)!important; height:100vh!important; height:100dvh!important;
    margin:0!important; max-width:none!important; z-index:120; border-right:1px solid var(--line)!important;
    transform:translateX(-101%); visibility:hidden; pointer-events:none;
    transition:transform .22s ease,visibility 0s .22s;
  }
  body.sv-nav-open .sidebar { transform:translateX(0); visibility:visible; pointer-events:auto; transition:transform .22s ease,visibility 0s; }
  body.sv-nav-open { overflow:hidden!important; overscroll-behavior:none; }
  body[data-sv-connected="true"] #svMenuToggle { display:flex; position:fixed; left:max(14px,env(safe-area-inset-left)); top:max(12px,env(safe-area-inset-top)); width:44px; height:44px; z-index:100; background:var(--sv-menu-bg); color:var(--sv-menu-ink); }
  body.sv-nav-open #svMenuToggle { visibility:hidden; }
  body[data-role] #svDrawerClose { display:flex; }
  body.sv-nav-open #svDrawerOverlay { display:block; }
  body[data-role] .sidebar .logo { min-height:166px!important; padding:40px 22px 18px!important; }
  body[data-role] .sidebar .brand-logo { height:auto!important; }
  body[data-role] .sidebar .foot { padding-bottom:max(16px,env(safe-area-inset-bottom))!important; }
  body[data-role] .content { padding:0 20px 26px!important; width:100%!important; margin:0!important; }
  body[data-role] .content:not([data-view="dashboard"]) { padding-top:78px!important; }
  .sv-dashboard-banner { --sv-hero-pad:28px; margin:0 -20px 0; padding-top:80px; }
  .sv-banner-heading { margin-bottom:23px; }
  .sv-banner-body { grid-template-columns:minmax(0,1fr); gap:28px; }
  .sv-banner-copy h1 { font-size:clamp(30px,5.3vw,48px); }
  .sv-banner-copy p { max-width:690px; font-size:15px; }
  .sv-banner-aside { padding:22px 0 0; border-left:0; border-top:1px solid var(--sv-banner-line); }
  .sv-banner-metrics { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 20px; }
  .sv-banner-metric:nth-child(n+3) { border-top:0; }
  .sv-banner-baseline { margin-top:18px; }
  .sv-banner-drawing { left:44%; opacity:.75; }
  body[data-role] .content :is(.client-summary-grid,.admin-kpi-grid,.client-main-grid,.admin-control-grid,.machine-hub-grid,.admin-actions-strip,.admin-fleet-overview,.grid,.two-col,.chat-wrap,.v4-ai-shell,.v4-ai-context,.admin-docs-grid,.premium-kpis,.premium-dashboard-grid,.dashboard-grid,.fleet-grid,.fleet-cards-premium) {
    display:grid!important; grid-template-columns:minmax(0,1fr)!important; gap:16px!important;
    width:100%!important; min-width:0!important; max-width:100%!important;
  }
  body[data-role] .content :is(.client-summary-grid,.admin-kpi-grid,.client-main-grid,.admin-control-grid,.machine-hub-grid,.admin-actions-strip,.admin-fleet-overview,.grid,.two-col,.chat-wrap,.v4-ai-shell,.v4-ai-context,.admin-docs-grid,.premium-kpis,.premium-dashboard-grid,.dashboard-grid,.fleet-grid,.fleet-cards-premium)>* {
    grid-column:auto!important; grid-row:auto!important; min-width:0!important; width:100%; max-width:100%;
  }
  .client-machine-feature { min-height:0!important; }
  .client-summary-card,.admin-kpi { min-height:102px!important; padding:20px!important; }
  .admin-kpi .label,.client-summary-card small { font-size:12px!important; line-height:1.5; }
  .admin-kpi .trend,.client-summary-card em { font-size:12px!important; line-height:1.6; }
  .v4-panel,.admin-panel,.machine-hub-body { padding:20px!important; }
  .v4-panel .panel-kicker,.admin-panel .panel-kicker { font-size:10px!important; line-height:1.7; }
  .v4-panel h3,.admin-panel h3 { font-size:17px!important; line-height:1.4; }
  .v4-panel header,.admin-panel header { flex-wrap:wrap; }
  .v4-panel header a,.admin-panel header a { font-size:11px!important; line-height:1.5; white-space:normal; }
  .v4-panel p,.admin-panel p,.client-history-item small,.client-history-item b,.admin-stream-item b,.admin-stream-item small,.admin-alert b,.admin-alert small,.client-bar .row,.client-bar .row b { font-size:13px!important; line-height:1.6!important; }
  .admin-stream-item time,.client-history-item time,.quality-legend div,.quality-legend b { font-size:12px!important; }
  .client-bar .row { flex-wrap:wrap; }
  .admin-action { min-height:66px!important; border-radius:8px!important; padding:16px!important; }
  .admin-action b,.admin-action small { font-size:12px!important; line-height:1.7; }
  .admin-doc-mini b,.admin-doc-mini small { white-space:normal!important; font-size:12px!important; line-height:1.6!important; }
  .admin-doc-mini .doc-state { font-size:11px!important; }
  .admin-doc-mini { padding:16px 0!important; }
  .machine-hub-visual { height:180px!important; }
  .machine-hub-body p,.machine-hub-meta b { font-size:13px!important; line-height:1.5; }
  .machine-hub-meta small,.machine-meta-row small { font-size:10px!important; }
  .machine-hub-actions button { min-height:46px!important; font-size:13px!important; }
  .client-machine-info .name-row strong { font-size:20px!important; }
  .client-machine-info .open-machine,.client-ai-card .ai-btn { min-height:46px!important; font-size:13px!important; white-space:normal; }
  .toolbar { flex-wrap:wrap!important; min-width:0; width:100%; gap:10px!important; }
  .toolbar .search { width:100%; flex:1 1 100%!important; }
  .search input,.field input,.field select,.field textarea { width:100%; min-width:0!important; max-width:100%; font-size:16px!important; }
  .toolbar button { min-height:44px; white-space:normal; }
  .client-search-box { min-width:0; width:100%; }
  .client-search-box input { min-width:0!important; font-size:16px!important; }
  .client-tags { flex-wrap:wrap; }
  .client-tags button { min-height:36px; font-size:12px; }
  .v4-page-head { flex-direction:column!important; align-items:flex-start!important; }
  .v4-page-head .head-actions { justify-content:flex-start; }
  .v4-page-head .head-actions button { min-height:44px; height:auto; font-size:12px; }
  .v4-ai-side { display:block!important; order:1; padding:20px!important; }
  .v4-ai-main { order:0; height:600px; max-height:80dvh; min-height:440px!important; }
  .v4-ai-context { order:2; padding:20px!important; }
  .v4-ai-side .side-label,.v4-ai-context .side-label { font-size:11px!important; line-height:1.5; }
  .v4-ai-doc b,.v4-ai-doc small,.v4-ai-context .context-block b,.v4-ai-context .context-block p,.v4-prompt,.v4-mini-history div,.v4-mini-history small { font-size:12px!important; line-height:1.6!important; }
  .v4-ai-head { flex-wrap:wrap; gap:10px!important; }
  .v4-ai-head b { font-size:13px!important; line-height:1.5; }
  .v4-ai-head small { font-size:11px!important; line-height:1.5; }
  .v4-ai-head .machine-ai-chip { font-size:11px!important; }
  .v4-ai-main .stream { min-height:0; flex:1; overflow-y:auto; overflow-x:hidden; }
  .v4-ai-main .bubble { font-size:14px!important; overflow-wrap:anywhere; }
  .v4-ai-main .composer input { width:0; min-width:0; font-size:16px!important; }
  .v4-ai-main .composer .send { flex:0 0 44px; min-height:44px; }
  .v4-ai-main .composer .row { padding:4px!important; }
  .v4-ai-main .msg { max-width:100%; }
  .mtabs { display:flex; flex-wrap:wrap; gap:0; }
  .mtabs button { flex:1 1 auto; font-size:12px; min-height:44px; padding:12px; justify-content:center; }
  .code-layout { display:grid!important; grid-template-columns:minmax(0,1fr)!important; }
  .code-stage { min-width:0; max-width:100%; overflow:auto; }
  .code-stage svg { max-width:100%; }
  .qr-card { flex-wrap:wrap; justify-content:center; max-width:100%; }
  .modal-bg { padding:12px!important; }
  .modal { max-width:calc(100vw - 24px)!important; max-height:calc(100dvh - 24px)!important; overflow-y:auto!important; }
  .modal .mh,.modal .mb,.modal .mf { padding:16px!important; }
  .modal .mh h3 { overflow-wrap:anywhere; }
  .sv-responsive-table,.sv-responsive-table tbody { display:block; width:100%; min-width:0; }
  .sv-responsive-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .sv-responsive-table tr { display:block; border-bottom:1px solid var(--line); padding:12px; }
  .sv-responsive-table tbody td { display:grid; grid-template-columns:minmax(76px,29%) minmax(0,1fr); align-items:start; gap:10px; border:none!important; padding:7px 0!important; font-size:13px!important; width:100%; }
  .sv-responsive-table td::before { content:attr(data-label)!important; color:var(--muted); font-size:11px; font-weight:600; position:static!important; background:none!important; width:auto!important; height:auto!important; box-shadow:none!important; border-radius:0!important; }
  .sv-responsive-table td[colspan] { display:block; }
  .sv-responsive-table td[colspan]::before { content:none!important; }
  .sv-responsive-table td>a,.sv-responsive-table td>span { min-width:0; }
}
@media(max-width:540px) {
  body[data-role] .content { padding:0 14px 24px!important; }
  .sv-dashboard-banner { --sv-hero-pad:22px; margin:0 -14px 0; }
  .sv-banner-heading { gap:12px; align-items:flex-start; }
  .sv-banner-kicker { font-size:9px; gap:6px 8px; max-width:240px; letter-spacing:.10em; }
  .sv-banner-ref { font-size:9px; }
  .sv-banner-body { gap:26px; }
  .sv-banner-copy h1 { font-size:clamp(28px,7.6vw,39px); letter-spacing:-.045em; }
  .sv-banner-copy p { font-size:14px; line-height:1.7; margin-top:17px; }
  .sv-banner-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; margin-top:22px; }
  .sv-dashboard-banner .sv-action { width:100%; justify-content:space-between; min-height:46px; font-size:13px; padding:12px 14px; }
  .sv-dashboard-banner .sv-action-text { padding-left:0; padding-right:0; }
  .sv-banner-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; margin-top:10px; }
  .sv-banner-metric:nth-child(n+3) { border-top:1px solid var(--sv-banner-line); }
  .sv-banner-metric { padding:15px 0; }
  .sv-banner-metric dt { min-height:0; font-size:11px; }
  .sv-banner-metric dd { font-size:28px; margin-top:7px; }
  .sv-banner-metric>span { font-size:11px; }
  .sv-banner-aside-label { font-size:9px; }
  .sv-banner-baseline { font-size:10px; align-items:flex-start; }
  .sv-banner-drawing { left:25%; opacity:.65; }
  .sv-drawing-ring { right:-80px; }
  .sv-drawing-ring.ring-inner { right:-47px; }
  .quality-ring-wrap { grid-template-columns:minmax(0,1fr)!important; justify-items:center; gap:20px!important; }
  .quality-legend { width:100%; }
  .admin-control-grid .admin-quality { min-height:0!important; }
  .v4-panel,.admin-panel,.machine-hub-body { padding:18px!important; }
  .machine-hub-actions { grid-template-columns:minmax(0,1fr) 46px; }
  .client-machine-visual { height:158px; }
  .v4-ai-head .machine-ai-chip { display:none; }
  .v4-ai-head .orb { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .sidebar,#svMenuToggle,.sv-action { transition:none!important; }
}
/* Review corrections after first Chromium screenshots. */
body[data-role] .sidebar .nav a { justify-content:flex-start!important; }
body[data-role] .sidebar .foot>.av:not(.shell-side-tools) { display:flex!important; align-items:center!important; justify-content:center!important; }
body[data-role] .shell-side-tools .lang-toggle { display:flex!important; }
body[data-role] .shell-side-tools .lang-toggle button { display:grid!important; }
.admin-alert { border:0!important; background:transparent!important; padding-left:0!important; padding-right:0!important; box-shadow:none!important; border-radius:0!important; }
.client-search-box input { border:0!important; box-shadow:none!important; background:transparent!important; border-radius:0!important; }
.client-search-box:focus-within { outline:2px solid var(--accent); outline-offset:2px; }
@media(max-width:1100px) {
  /* The full-width KPI cards immediately below already carry these metrics. */
  .sv-banner-aside { display:none; }
  .sv-banner-copy h1 { max-width:100%; }
}

/* ===== couche 17 : sv-v14-domain-architecture ===== */
/* V15 — architecture métier : Société > Parc > Machine + Référentiel technique */
.domain-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:28px 2px 18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.domain-head .ey{font-size:9px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.domain-head h1{margin:5px 0 4px;font-size:clamp(28px,3vw,42px);letter-spacing:-.05em;color:var(--ink)}
.domain-head p{margin:0;color:var(--muted);max-width:720px}
.domain-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.domain-actions button{height:40px;border-radius:12px;border:1px solid var(--line);padding:0 14px;background:var(--field);color:var(--ink);font-weight:800}
.domain-actions .primary{background:linear-gradient(135deg,#087fe8,#159cff);color:white;border-color:transparent}
.domain-section{border-top:1px solid var(--line);padding:20px 0 4px;margin-top:8px}
.domain-section:first-of-type{border-top:0}
.domain-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.domain-section-head .k{font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.domain-section-head h2{font-size:18px;margin:3px 0 0;color:var(--ink);letter-spacing:-.025em}
.domain-section-head p{margin:3px 0 0;color:var(--muted);font-size:11px}
.domain-list{border-top:1px solid var(--line)}
.domain-row{display:grid;grid-template-columns:minmax(190px,1.4fr) minmax(150px,1fr) auto;gap:16px;align-items:center;padding:15px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.domain-row:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.domain-row strong{display:block;color:var(--ink);font-size:13px}.domain-row small{display:block;color:var(--muted);margin-top:2px;font-size:10px}
.domain-metrics{display:flex;gap:18px;align-items:center;color:var(--muted);font-size:10px}.domain-metrics b{color:var(--ink);font-size:13px;margin-right:3px}
.domain-link{font-size:10px;font-weight:900;color:var(--accent);white-space:nowrap}
.company-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:4px 0 18px}
.company-overview>div{padding:14px 14px;border-right:1px solid var(--line)}.company-overview>div:last-child{border-right:0}.company-overview small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;font-weight:900;letter-spacing:.1em}.company-overview strong{display:block;color:var(--ink);font-size:19px;margin-top:3px}
.company-user-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(200px,1.3fr) 90px 90px auto;gap:12px;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line);font-size:11px}.company-user-row .name{font-weight:800;color:var(--ink)}
.park-list{display:grid;gap:16px}.park-block{border-top:1px solid var(--line);padding-top:14px}.park-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.park-head h3{margin:0;color:var(--ink);font-size:16px}.park-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.park-head .meta{font-size:9px;color:var(--muted);text-align:right}.park-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.park-actions button{border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:10px;padding:7px 10px;font-size:9px;font-weight:800}
.park-machine-list{border-top:1px solid var(--line)}.park-machine-row{display:grid;grid-template-columns:minmax(170px,1.35fr) minmax(115px,.7fr) minmax(130px,.8fr) minmax(120px,.8fr) auto;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line);cursor:pointer}.park-machine-row:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.park-machine-row strong{color:var(--ink);font-size:11px}.park-machine-row small{display:block;color:var(--muted);font-size:9px}.park-machine-row .qr-state{font-size:9px;font-weight:900;color:var(--ok)}
.tech-two{display:grid;grid-template-columns:1fr 1fr;gap:24px}.tech-list{border-top:1px solid var(--line)}.tech-row{display:grid;grid-template-columns:minmax(140px,1fr) auto;gap:12px;padding:12px 2px;border-bottom:1px solid var(--line);align-items:center}.tech-row strong{font-size:11px;color:var(--ink)}.tech-row small{font-size:9px;color:var(--muted);display:block;margin-top:2px}.tech-badge{font-size:8px;font-weight:900;letter-spacing:.08em;padding:4px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.ref-model-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.ref-model-head h3{margin:0;color:var(--ink);font-size:16px}.model-value-row{display:grid;grid-template-columns:1.1fr .9fr 100px;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center;font-size:10px}.model-value-row b{color:var(--ink)}.model-value-row span{color:var(--muted)}
.client-parks-title{padding:28px 2px 18px}.client-parks-title .ey{font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:var(--accent)}.client-parks-title h1{font-size:clamp(30px,3vw,44px);margin:5px 0 5px;color:var(--ink);letter-spacing:-.05em}.client-parks-title p{margin:0;color:var(--muted)}
.client-parks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.client-park{border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:hidden}.client-park-head{padding:18px 18px 14px;border-bottom:1px solid var(--line);position:relative}.client-park-head:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(#0b84e8,#37bcff)}.client-park-head .ey{font-size:8px;font-weight:900;letter-spacing:.15em;color:var(--accent);text-transform:uppercase}.client-park-head h2{font-size:18px;margin:5px 0 3px;color:var(--ink)}.client-park-head p{margin:0;color:var(--muted);font-size:10px}.client-machine{padding:14px 18px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;cursor:pointer}.client-machine:last-child{border-bottom:0}.client-machine:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.client-machine strong{font-size:13px;color:var(--ink)}.client-machine small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.client-machine .go{font-size:10px;color:var(--accent);font-weight:900}.empty-inline{padding:18px;color:var(--muted);font-size:11px}
.account-type{font-size:8px;font-weight:900;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}.admin-user-row{display:grid;grid-template-columns:1fr 1.2fr 100px 100px auto;gap:12px;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line)}
@media(max-width:980px){.tech-two{grid-template-columns:1fr}.company-overview{grid-template-columns:1fr 1fr}.client-parks{grid-template-columns:1fr}.domain-row{grid-template-columns:1fr auto}.domain-row .domain-metrics{grid-column:1/-1}.park-machine-row{grid-template-columns:1fr 1fr}.park-machine-row>*:nth-child(n+3){font-size:9px}.company-user-row,.admin-user-row{grid-template-columns:1fr 1fr}.company-user-row>*:nth-child(n+3),.admin-user-row>*:nth-child(n+3){font-size:9px}}
@media(max-width:720px){.domain-head{align-items:flex-start;flex-direction:column}.domain-actions{justify-content:flex-start}.company-overview{grid-template-columns:1fr}.company-overview>div{border-right:0;border-bottom:1px solid var(--line)}.company-overview>div:last-child{border-bottom:0}.park-machine-row,.company-user-row,.admin-user-row,.domain-row,.model-value-row{grid-template-columns:1fr}.park-head{flex-direction:column}.park-actions{justify-content:flex-start}.client-parks{grid-template-columns:1fr!important}.client-park{width:100%}}

/* ===== couche 18 : sv-v15-workspaces-css ===== */
/* ================================================================
   V15 — architecture UX consolidee
   4 workspaces admin / 2 workspaces client.
   Une vue = un domaine de travail, les details restent dans la vue.
   ================================================================ */
:root{--v15-rail:rgba(113,164,202,.16);--v15-blue:#0b86e8;--v15-cyan:#37c2ff;--v15-green:#22c77a;}

/* Navigation: fewer, stronger destinations */
body[data-role] .nav .grp{margin-top:22px!important;}
body[data-role] .nav a{min-height:50px!important;}
body[data-role] .nav a.active{font-weight:900!important;}

/* Common workspace header */
.v15-workspace-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:30px 2px 18px;border-bottom:1px solid var(--line);margin-bottom:18px;}
.v15-workspace-head .ey{display:block;font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:900;color:var(--accent);}
.v15-workspace-head h1{margin:5px 0 4px;font-size:clamp(30px,3vw,44px);letter-spacing:-.052em;color:var(--ink);}
.v15-workspace-head p{margin:0;max-width:760px;color:var(--muted);font-size:12px;line-height:1.55;}
.v15-workspace-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.v15-workspace-actions button{height:40px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);color:var(--ink);font-weight:850;font-size:10px;}
.v15-workspace-actions .primary{background:linear-gradient(135deg,#0a82e8,#169fff);border-color:transparent;color:#fff;}

/* Internal tabs replace sidebar destinations */
.v15-tabs{display:flex;gap:0;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:18px;scrollbar-width:none;}
.v15-tabs::-webkit-scrollbar{display:none;}
.v15-tab{position:relative;flex:none;height:44px;padding:0 17px;border:0;background:transparent;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;}
.v15-tab.on{color:var(--ink);}
.v15-tab.on:after{content:"";position:absolute;left:17px;right:17px;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--v15-blue),var(--v15-cyan));}

/* Centre de controle: integrated, action-dense */
.v15-control-hero{position:relative;overflow:hidden;min-height:250px;padding:34px 36px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#071d2e,#0a263d 56%,#071723);color:#fff;}
.v15-control-hero:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 47px,rgba(83,177,239,.045) 48px),linear-gradient(112deg,transparent 0 68%,rgba(54,175,245,.09) 68.15%,transparent 68.4%),radial-gradient(circle at 86% 35%,transparent 0 72px,rgba(50,173,247,.15) 73px 74px,transparent 75px 118px,rgba(207,173,104,.09) 119px 120px,transparent 121px);pointer-events:none;}
html[data-theme="day"] .v15-control-hero{background:linear-gradient(135deg,#ffffff,#f6f9fc 58%,#eef4f8);color:#0d3157;}
html[data-theme="day"] .v15-control-hero:before{background:repeating-linear-gradient(90deg,transparent 0 47px,rgba(64,120,163,.05) 48px),linear-gradient(112deg,transparent 0 68%,rgba(18,132,227,.08) 68.15%,transparent 68.4%),radial-gradient(circle at 86% 35%,transparent 0 72px,rgba(26,137,224,.14) 73px 74px,transparent 75px 118px,rgba(205,174,112,.12) 119px 120px,transparent 121px);}
.v15-control-hero>*{position:relative;z-index:1;}
.v15-control-hero .ey{font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:900;color:#6dc9ff;}
html[data-theme="day"] .v15-control-hero .ey{color:#087fdc;}
.v15-control-hero h1{margin:9px 0 9px;font-size:clamp(38px,4vw,58px);letter-spacing:-.06em;line-height:.96;color:inherit;}
.v15-control-hero h1 span{color:#2caaff;}
.v15-control-hero p{max-width:690px;margin:0;color:#a9c0d1;line-height:1.58;font-size:12px;}
html[data-theme="day"] .v15-control-hero p{color:#637d94;}
.v15-control-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px;}
.v15-control-actions button{height:39px;padding:0 13px;border-radius:10px;border:1px solid rgba(104,191,245,.18);background:rgba(9,47,75,.56);color:#e9f6ff;font-weight:850;font-size:9.5px;}
.v15-control-actions .primary{background:linear-gradient(135deg,#0b85ea,#129df9);border-color:transparent;}
html[data-theme="day"] .v15-control-actions button:not(.primary){background:#fff;border-color:#d7e3ec;color:#163958;}

.v15-kpis{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line);}
.v15-kpi{position:relative;padding:17px 18px;border-right:1px solid var(--line);min-height:88px;}
.v15-kpi:last-child{border-right:0;}.v15-kpi small{display:block;color:var(--muted);font-size:8px;letter-spacing:.13em;text-transform:uppercase;font-weight:900;}.v15-kpi strong{display:block;color:var(--ink);font-size:27px;margin-top:4px;letter-spacing:-.05em;}.v15-kpi em{display:block;color:var(--v15-green);font-style:normal;font-size:8.5px;margin-top:2px;font-weight:850;}

.v15-control-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;padding-top:22px;}
.v15-section{min-width:0;}
.v15-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid var(--line);margin-bottom:4px;}
.v15-section-head .k{font-size:8px;letter-spacing:.16em;text-transform:uppercase;font-weight:900;color:var(--accent);}.v15-section-head h2{margin:3px 0 0;font-size:16px;color:var(--ink);}.v15-section-head button,.v15-section-head a{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.v15-row{display:grid;grid-template-columns:minmax(160px,1fr) auto;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line);}
.v15-row strong{display:block;color:var(--ink);font-size:11px;}.v15-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px;}.v15-row .meta{font-size:9px;color:var(--muted);text-align:right;}.v15-row .row-actions{display:flex;gap:8px;align-items:center;}.v15-row .row-actions a{font-size:9px;font-weight:900;}

/* Company workspace */
.v15-company-search{width:min(420px,100%);position:relative;}
.v15-company-search input{width:100%;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);color:var(--ink);}
.v15-company-layout{display:grid;grid-template-columns:minmax(240px,.68fr) minmax(0,1.55fr);gap:22px;min-height:560px;}
.v15-company-list{border-right:1px solid var(--line);padding-right:18px;}
.v15-company-item{padding:14px 10px;border-bottom:1px solid var(--line);cursor:pointer;}
.v15-company-item.on{box-shadow:inset 3px 0 0 var(--accent);background:color-mix(in srgb,var(--accent) 5%,transparent);padding-left:14px;}.v15-company-item strong{display:block;color:var(--ink);font-size:12px;}.v15-company-item small{display:block;margin-top:3px;color:var(--muted);font-size:9px;}.v15-company-item .counts{display:flex;gap:10px;margin-top:8px;color:var(--muted);font-size:8px;font-weight:800;}
.v15-company-detail{min-width:0;}
.v15-company-empty{min-height:420px;display:grid;place-items:center;text-align:center;color:var(--muted);}
.v15-company-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--line);}.v15-company-title h2{font-size:25px;letter-spacing:-.04em;margin:0;color:var(--ink);}.v15-company-title p{margin:4px 0 0;color:var(--muted);font-size:10px;}.v15-company-stats{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);margin-bottom:18px;}.v15-company-stats>div{padding:14px 12px;border-right:1px solid var(--line);}.v15-company-stats>div:last-child{border-right:0;}.v15-company-stats small{display:block;color:var(--muted);font-size:7.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;}.v15-company-stats strong{display:block;margin-top:3px;color:var(--ink);font-size:19px;}
.v15-park{padding:14px 0;border-bottom:1px solid var(--line);}.v15-park:last-child{border-bottom:0;}.v15-park-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px;}.v15-park-head h3{margin:0;color:var(--ink);font-size:13px;}.v15-park-head p{margin:3px 0 0;color:var(--muted);font-size:9px;}.v15-park-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}.v15-park-actions button{height:30px;padding:0 9px;border:1px solid var(--line);background:var(--field);border-radius:8px;color:var(--ink);font-size:8px;font-weight:850;}
.v15-machine-row{display:grid;grid-template-columns:minmax(160px,1.2fr) .7fr .7fr auto;gap:12px;align-items:center;padding:11px 6px;border-top:1px solid var(--line);}.v15-machine-row strong{display:block;color:var(--ink);font-size:10px;}.v15-machine-row small{display:block;color:var(--muted);font-size:8px;margin-top:2px;}.v15-machine-row .tools{display:flex;gap:8px;align-items:center;justify-content:flex-end;}.v15-machine-row .tools a{font-size:8.5px;font-weight:900;white-space:nowrap;}

/* Technical reference remains one workspace */
.v15-reference-shell .domain-head{padding-top:6px!important;}

/* Knowledge workspace */
.v15-knowledge-pane{min-height:460px;}
.v15-knowledge-toolbar{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-bottom:13px;flex-wrap:wrap;}.v15-knowledge-toolbar button{height:36px;padding:0 12px;border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:10px;font-size:9px;font-weight:850;}.v15-knowledge-toolbar .primary{background:linear-gradient(135deg,#0b84e8,#17a0ff);color:#fff;border-color:transparent;}
.v15-doc-table,.v15-module-list,.v15-section-list{border-top:1px solid var(--line);}.v15-doc-row{display:grid;grid-template-columns:1.35fr .8fr .7fr .55fr auto;gap:12px;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line);}.v15-doc-row strong,.v15-module-row strong{font-size:10px;color:var(--ink);}.v15-doc-row small,.v15-module-row small{font-size:8.5px;color:var(--muted);display:block;margin-top:2px;}.v15-doc-row a,.v15-module-row a{font-size:8.5px;font-weight:900;}
.v15-module-row{display:grid;grid-template-columns:1.15fr .7fr .8fr auto;gap:12px;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line);}.v15-section-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 3px;border-bottom:1px solid var(--line);}.v15-section-row strong{color:var(--ink);font-size:10px;}.v15-section-row small{color:var(--muted);font-size:8px;}

/* Client patrimoine */
.v15-parks-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:30px 2px 18px;border-bottom:1px solid var(--line);margin-bottom:18px;}.v15-parks-intro .ey{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:900;}.v15-parks-intro h1{font-size:clamp(30px,3vw,44px);margin:5px 0 5px;color:var(--ink);letter-spacing:-.05em;}.v15-parks-intro p{margin:0;color:var(--muted);}.v15-parks-summary{display:flex;gap:22px;}.v15-parks-summary div{text-align:right;}.v15-parks-summary small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase;font-weight:900;letter-spacing:.1em;}.v15-parks-summary strong{display:block;color:var(--ink);font-size:20px;margin-top:2px;}
.v15-client-parks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}.v15-client-park{border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;}.v15-client-park header{padding:17px 18px 14px;border-bottom:1px solid var(--line);}.v15-client-park header .ey{font-size:8px;color:var(--accent);letter-spacing:.14em;font-weight:900;text-transform:uppercase;}.v15-client-park header h2{font-size:18px;color:var(--ink);margin:4px 0 2px;}.v15-client-park header p{margin:0;color:var(--muted);font-size:9px;}.v15-client-machine{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);cursor:pointer;}.v15-client-machine:last-child{border-bottom:0;}.v15-client-machine:hover{background:color-mix(in srgb,var(--accent) 5%,transparent);}.v15-client-machine strong{display:block;color:var(--ink);font-size:12px;}.v15-client-machine small{display:block;color:var(--muted);font-size:9px;margin-top:3px;}.v15-client-machine .go{color:var(--accent);font-size:9px;font-weight:900;}

/* Client machine detail kept in Patrimoine workspace */
.v15-machine-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 2px 16px;border-bottom:1px solid var(--line);}.v15-machine-detail-head .ey{font-size:9px;letter-spacing:.16em;color:var(--accent);font-weight:900;text-transform:uppercase;}.v15-machine-detail-head h1{margin:5px 0 3px;color:var(--ink);font-size:clamp(28px,3vw,42px);letter-spacing:-.05em;}.v15-machine-detail-head p{margin:0;color:var(--muted);font-size:10px;}.v15-machine-detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}.v15-machine-detail-actions button{height:38px;padding:0 12px;border:1px solid var(--line);background:var(--field);border-radius:10px;color:var(--ink);font-size:9px;font-weight:850;}.v15-machine-detail-actions .primary{background:linear-gradient(135deg,#0a82e8,#179fff);color:#fff;border-color:transparent;}.v15-machine-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:22px;padding-top:18px;}.v15-specs{border-top:1px solid var(--line);}.v15-spec-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line);align-items:center;}.v15-spec-row b{color:var(--ink);font-size:10px;}.v15-spec-row span{color:var(--muted);font-size:9px;}.v15-doc-browser{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;min-height:380px;}.v15-doc-nav{border-right:1px solid var(--line);padding-right:12px;}.v15-doc-link{padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer;}.v15-doc-link b{display:block;font-size:9.5px;color:var(--ink);}.v15-doc-link small{display:block;font-size:8px;color:var(--muted);margin-top:2px;}.v15-doc-page{padding:17px 18px;background:var(--soft);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:11px;line-height:1.65;white-space:pre-wrap;overflow:auto;}

/* Client Assistance = Assistant + Search + Conversations */
.v15-assist-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:30px 2px 16px;border-bottom:1px solid var(--line);}.v15-assist-head .ey{font-size:9px;color:var(--accent);letter-spacing:.17em;font-weight:900;text-transform:uppercase;}.v15-assist-head h1{margin:5px 0 4px;font-size:clamp(30px,3vw,44px);letter-spacing:-.05em;color:var(--ink);}.v15-assist-head p{margin:0;color:var(--muted);}.v15-machine-selector{display:flex;align-items:center;gap:8px;}.v15-machine-selector label{font-size:8px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:900;}.v15-machine-selector select{height:40px;min-width:210px;}
.v15-assist-pane{min-height:500px;}.v15-search-shell{max-width:980px;}.v15-search-bar{display:flex;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--line);}.v15-search-bar input{flex:1;height:44px;}.v15-search-bar button{width:110px;border:0;border-radius:10px;background:linear-gradient(135deg,#0a82e8,#159dff);color:#fff;font-weight:900;}.v15-search-result{padding:13px 2px;border-bottom:1px solid var(--line);cursor:pointer;}.v15-search-result:hover{box-shadow:inset 3px 0 0 var(--accent);padding-left:10px;}.v15-search-result b{display:block;color:var(--ink);font-size:11px;}.v15-search-result p{margin:4px 0 0;color:var(--muted);font-size:9.5px;line-height:1.5;}.v15-conversation-row{display:grid;grid-template-columns:1fr .8fr auto;gap:12px;align-items:center;padding:12px 2px;border-bottom:1px solid var(--line);}.v15-conversation-row strong{display:block;color:var(--ink);font-size:10.5px;}.v15-conversation-row small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px;}.v15-conversation-row time{color:var(--muted);font-size:8px;}

/* Machine modal admin */
.v15-machine-modal-summary{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:16px;}.v15-machine-modal-summary>div{padding:12px;border-right:1px solid var(--line);}.v15-machine-modal-summary>div:last-child{border-right:0;}.v15-machine-modal-summary small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase;font-weight:900;letter-spacing:.1em;}.v15-machine-modal-summary strong{display:block;color:var(--ink);font-size:11px;margin-top:3px;}

@media(max-width:1180px){.v15-kpis{grid-template-columns:repeat(3,1fr)}.v15-kpi:nth-child(3){border-right:0}.v15-kpi:nth-child(n+4){border-top:1px solid var(--line)}.v15-control-grid{grid-template-columns:1fr}.v15-company-layout{grid-template-columns:1fr}.v15-company-list{border-right:0;border-bottom:1px solid var(--line);padding:0 0 14px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}.v15-machine-grid{grid-template-columns:1fr}.v15-client-parks{grid-template-columns:1fr}}
@media(max-width:820px){.v15-workspace-head,.v15-parks-intro,.v15-machine-detail-head,.v15-assist-head{align-items:flex-start;flex-direction:column}.v15-workspace-actions,.v15-machine-detail-actions{justify-content:flex-start}.v15-parks-summary{width:100%;justify-content:flex-start}.v15-parks-summary div{text-align:left}.v15-doc-browser{grid-template-columns:1fr}.v15-doc-nav{border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px}.v15-doc-row,.v15-module-row,.v15-machine-row{grid-template-columns:1fr}.v15-company-stats,.v15-machine-modal-summary{grid-template-columns:1fr 1fr}.v15-company-list{grid-template-columns:1fr}.v15-machine-selector{width:100%;flex-direction:column;align-items:flex-start}.v15-machine-selector select{width:100%}.v15-conversation-row{grid-template-columns:1fr}.v15-search-bar{flex-direction:column}.v15-search-bar button{width:100%;height:42px}}
@media(max-width:620px){.v15-kpis{grid-template-columns:1fr}.v15-kpi{border-right:0;border-top:1px solid var(--line)}.v15-kpi:first-child{border-top:0}.v15-company-stats,.v15-machine-modal-summary{grid-template-columns:1fr}.v15-client-parks{grid-template-columns:1fr}.v15-control-hero{padding:28px 20px}.v15-control-hero h1{font-size:38px}.v15-tab{padding:0 12px}.v15-tab.on:after{left:12px;right:12px}}

/* ===== couche 19 : sv-v16-ux-structure ===== */
/* ============================================================
   V16 — Structure UX cible
   Client: Mes parcs / Mes machines
   Admin: Société -> Utilisateurs / Parcs / Machines
   Machine: Assistance / Documentation / Caractéristiques / Informations
   ============================================================ */

/* Shared page headers */
.v16-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:30px 2px 18px;border-bottom:1px solid var(--line);margin-bottom:18px;}
.v16-head .ey{display:block;color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;}
.v16-head h1{margin:5px 0 4px;color:var(--ink);font-size:clamp(30px,3vw,44px);letter-spacing:-.05em;line-height:1;}
.v16-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.55;}
.v16-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;}
.v16-head-actions button,.v16-inline-actions button{height:38px;padding:0 13px;border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:10px;font-size:9px;font-weight:850;}
.v16-head-actions .primary,.v16-inline-actions .primary{background:linear-gradient(135deg,#0a82e8,#179fff);border-color:transparent;color:#fff;}

/* Client — parks list */
.v16-summary{display:flex;gap:24px;align-items:center;}
.v16-summary div{text-align:right;}.v16-summary small{display:block;color:var(--muted);font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:900}.v16-summary strong{display:block;color:var(--ink);font-size:22px;margin-top:2px}
.v16-list{border-top:1px solid var(--line);}
.v16-list-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(160px,.8fr) minmax(100px,.42fr) auto;gap:18px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);cursor:pointer;transition:.16s ease;}
.v16-list-row:hover{background:color-mix(in srgb,var(--accent) 4%,transparent);padding-left:10px;padding-right:10px;}
.v16-list-row strong{display:block;color:var(--ink);font-size:12px;}.v16-list-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px;line-height:1.4}.v16-list-row .metric{text-align:right}.v16-list-row .metric b{display:block;color:var(--ink);font-size:13px}.v16-list-row .metric span{color:var(--muted);font-size:8px}.v16-list-row .go{color:var(--accent);font-size:9px;font-weight:900;white-space:nowrap;}
.v16-park-detail-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:18px}.v16-park-detail-meta>div{padding:13px 14px;border-right:1px solid var(--line)}.v16-park-detail-meta>div:last-child{border-right:0}.v16-park-detail-meta small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.v16-park-detail-meta strong{display:block;color:var(--ink);font-size:14px;margin-top:3px}

/* Admin — companies list then dedicated tabbed company detail */
.v16-company-list .v16-list-row{grid-template-columns:minmax(200px,1.2fr) minmax(170px,.8fr) repeat(3,100px) auto;}
.v16-company-tabs,.v16-machine-tabs{display:flex;align-items:center;gap:2px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow:auto;scrollbar-width:none}.v16-company-tabs::-webkit-scrollbar,.v16-machine-tabs::-webkit-scrollbar{display:none}.v16-tab{position:relative;flex:none;height:48px;padding:0 18px;border:0;background:transparent;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.v16-tab.on{color:var(--ink)}.v16-tab.on:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:var(--accent)}
.v16-company-pane{min-height:420px;}.v16-pane-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:0 0 14px;border-bottom:1px solid var(--line);margin-bottom:2px}.v16-pane-head .k{display:block;color:var(--accent);font-size:8px;letter-spacing:.15em;text-transform:uppercase;font-weight:900}.v16-pane-head h2{margin:4px 0 2px;color:var(--ink);font-size:19px;letter-spacing:-.03em}.v16-pane-head p{margin:0;color:var(--muted);font-size:9.5px}.v16-pane-head button{height:36px;padding:0 12px;border:0;border-radius:9px;background:linear-gradient(135deg,#0a82e8,#179fff);color:#fff;font-size:9px;font-weight:900}
.v16-user-row{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(180px,1fr) 80px 90px auto;gap:14px;align-items:center;padding:13px 3px;border-bottom:1px solid var(--line)}.v16-user-row strong,.v16-admin-machine-row strong,.v16-park-row strong{display:block;color:var(--ink);font-size:10.5px}.v16-user-row small,.v16-admin-machine-row small,.v16-park-row small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px}.v16-user-row a,.v16-admin-machine-row a,.v16-park-row a{color:var(--accent);font-size:8.5px;font-weight:900}
.v16-park-row{display:grid;grid-template-columns:minmax(190px,1.1fr) minmax(180px,1fr) 90px auto;gap:14px;align-items:center;padding:14px 3px;border-bottom:1px solid var(--line)}
.v16-admin-machine-row{display:grid;grid-template-columns:minmax(190px,1.15fr) minmax(150px,.8fr) minmax(140px,.7fr) 110px auto;gap:14px;align-items:center;padding:14px 3px;border-bottom:1px solid var(--line);cursor:pointer}.v16-admin-machine-row:hover{box-shadow:inset 3px 0 0 var(--accent);padding-left:10px}

/* Shared machine workspace */
.v16-machine-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:28px 2px 16px;border-bottom:1px solid var(--line)}.v16-machine-head .ey{font-size:9px;color:var(--accent);letter-spacing:.17em;font-weight:900;text-transform:uppercase}.v16-machine-head h1{margin:5px 0 3px;color:var(--ink);font-size:clamp(28px,3vw,42px);letter-spacing:-.05em}.v16-machine-head p{margin:0;color:var(--muted);font-size:10px}.v16-machine-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.v16-machine-head-actions button{height:38px;padding:0 12px;border:1px solid var(--line);background:var(--field);color:var(--ink);border-radius:10px;font-size:9px;font-weight:850}.v16-machine-head-actions .primary{background:linear-gradient(135deg,#0a82e8,#179fff);border-color:transparent;color:#fff}
.v16-machine-pane{min-height:510px}.v16-machine-info{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:18px}.v16-info-section{border-top:1px solid var(--line)}.v16-info-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line);align-items:center}.v16-info-row strong{display:block;color:var(--ink);font-size:10.5px}.v16-info-row small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px}.v16-info-row .value{color:var(--ink);font-size:10px;text-align:right}
.v16-doc-workspace{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;min-height:420px}.v16-doc-side{border-right:1px solid var(--line);padding-right:14px}.v16-doc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:3px}.v16-doc-toolbar span{font-size:8px;color:var(--muted);font-weight:900;letter-spacing:.12em;text-transform:uppercase}.v16-doc-toolbar button{height:34px;padding:0 10px;border:0;border-radius:9px;background:linear-gradient(135deg,#0a82e8,#179fff);color:#fff;font-size:8px;font-weight:900}.v16-doc-item{padding:11px 3px;border-bottom:1px solid var(--line);cursor:pointer}.v16-doc-item:hover{padding-left:9px;box-shadow:inset 3px 0 0 var(--accent)}.v16-doc-item b{display:block;color:var(--ink);font-size:9.5px}.v16-doc-item small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.v16-doc-preview{padding:18px;border:1px solid var(--line);background:var(--soft);border-radius:12px;color:var(--ink);font-size:11px;line-height:1.65;white-space:pre-wrap;overflow:auto}.v16-spec-list{border-top:1px solid var(--line)}.v16-spec-row{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;gap:14px;padding:12px 2px;border-bottom:1px solid var(--line);align-items:center}.v16-spec-row b{color:var(--ink);font-size:10.5px}.v16-spec-row span{color:var(--muted);font-size:9px}

/* Keep assistant full width inside machine workspace */
.v16-machine-pane .v4-ai-shell{min-height:530px!important;}

@media(max-width:1050px){
  .v16-company-list .v16-list-row{grid-template-columns:1fr 1fr 90px 90px auto}.v16-company-list .v16-list-row>.company-address{grid-column:1/-1;grid-row:2}.v16-machine-info{grid-template-columns:1fr}.v16-user-row,.v16-admin-machine-row,.v16-park-row{grid-template-columns:1fr 1fr}.v16-user-row>*:last-child,.v16-admin-machine-row>*:last-child,.v16-park-row>*:last-child{justify-self:start}.v16-doc-workspace{grid-template-columns:220px minmax(0,1fr)}
}
@media(max-width:820px){
  .v16-head,.v16-machine-head,.v16-pane-head{align-items:flex-start;flex-direction:column}.v16-head-actions,.v16-machine-head-actions{justify-content:flex-start}.v16-summary{width:100%;justify-content:flex-start}.v16-summary div{text-align:left}.v16-list-row,.v16-company-list .v16-list-row,.v16-user-row,.v16-admin-machine-row,.v16-park-row{grid-template-columns:1fr!important;gap:7px}.v16-list-row .metric{text-align:left}.v16-doc-workspace{grid-template-columns:1fr}.v16-doc-side{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px}.v16-park-detail-meta{grid-template-columns:1fr}.v16-park-detail-meta>div{border-right:0;border-bottom:1px solid var(--line)}.v16-park-detail-meta>div:last-child{border-bottom:0}.v16-machine-tabs,.v16-company-tabs{margin-left:-14px;margin-right:-14px;padding:0 8px}.v16-machine-info{grid-template-columns:1fr}
}

/* ===== couche 20 : sv-v17-admin-hierarchy ===== */
/* ============================================================
   V18 — UX/UI simplification
   Main admin tabs: Types de machine / Société / Utilisateur
   Type -> Modèles de machine -> Machines
   ============================================================ */
.v17-admin-tabs{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--line);margin:0 -2px 20px;overflow:auto;scrollbar-width:none}
.v17-admin-tabs::-webkit-scrollbar{display:none}
.v17-admin-tab{position:relative;flex:none;height:54px;padding:0 21px;border:0;background:transparent;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.075em;text-transform:uppercase;cursor:pointer}
.v17-admin-tab:hover{color:var(--ink)}
.v17-admin-tab.on{color:var(--ink)}
.v17-admin-tab.on:after{content:"";position:absolute;left:20px;right:20px;bottom:-1px;height:2px;background:var(--accent)}
.v17-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--muted);font-size:9px;margin:4px 0 10px}
.v17-breadcrumb a{color:var(--accent);font-weight:850;cursor:pointer}.v17-breadcrumb i{font-style:normal;opacity:.5}
.v17-subtabs{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--line);margin:0 0 18px;overflow:auto;scrollbar-width:none}
.v17-subtabs::-webkit-scrollbar{display:none}
.v17-subtab{position:relative;flex:none;height:48px;padding:0 18px;border:0;background:transparent;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;cursor:pointer}
.v17-subtab.on{color:var(--ink)}.v17-subtab.on:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:var(--accent)}
.v17-type-list,.v17-model-list,.v17-model-machine-list{border-top:1px solid var(--line)}
.v17-type-row,.v17-model-row,.v17-model-machine-row{display:grid;align-items:center;gap:16px;padding:15px 3px;border-bottom:1px solid var(--line);cursor:pointer;transition:.16s ease}
.v17-type-row{grid-template-columns:minmax(220px,1.2fr) 120px 120px 120px auto}
.v17-model-row{grid-template-columns:minmax(220px,1.2fr) minmax(160px,.8fr) 110px auto}
.v17-model-machine-row{grid-template-columns:minmax(210px,1.15fr) minmax(150px,.8fr) minmax(160px,.85fr) 150px auto}
.v17-type-row:hover,.v17-model-row:hover,.v17-model-machine-row:hover{box-shadow:inset 3px 0 0 var(--accent);padding-left:10px}
.v17-type-row strong,.v17-model-row strong,.v17-model-machine-row strong{display:block;color:var(--ink);font-size:11px}
.v17-type-row small,.v17-model-row small,.v17-model-machine-row small{display:block;color:var(--muted);font-size:8.5px;margin-top:2px;line-height:1.45}
.v17-stat{text-align:right}.v17-stat b{display:block;color:var(--ink);font-size:13px}.v17-stat span{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.v17-go{color:var(--accent);font-size:8.5px;font-weight:900;white-space:nowrap;text-align:right}
.v17-characteristics{border-top:1px solid var(--line)}
.v17-char-row{display:grid;grid-template-columns:minmax(190px,1fr) 110px 130px 100px;gap:14px;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line)}
.v17-char-row b{color:var(--ink);font-size:10px}.v17-char-row span{color:var(--muted);font-size:8.5px}.v17-char-row .section{color:var(--accent);font-weight:900}
.v17-values{border-top:1px solid var(--line)}
.v17-value-row{display:grid;grid-template-columns:minmax(180px,1fr) 160px 90px;gap:14px;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line)}
.v17-value-row b{color:var(--ink);font-size:10px}.v17-value-row span{color:var(--muted);font-size:9px}
.v17-empty{padding:26px 3px;color:var(--muted);font-size:10px;border-bottom:1px solid var(--line)}
@media(max-width:900px){
 .v17-type-row,.v17-model-row,.v17-model-machine-row,.v17-char-row,.v17-value-row{grid-template-columns:1fr!important;gap:6px}.v17-stat,.v17-go{text-align:left}.v17-admin-tabs{margin-left:-14px;margin-right:-14px;padding:0 6px}.v17-admin-tab{padding:0 14px}.v17-subtabs{margin-left:-14px;margin-right:-14px;padding:0 6px}
}

/* ===== couche 21 : sv-v18-ux-ui-committee ===== */
/* ================================================================
   V18 — UX/UI simplification committee
   Principles:
   - one global navigation only (sidebar)
   - progressive disclosure inside the domain
   - flat editorial lists, not nested cards
   - fewer labels / effects, stronger hierarchy
   - identical information architecture day/night
   ================================================================ */
:root{--v18-max:1540px;--v18-row:rgba(115,156,188,.16);--v18-focus:color-mix(in srgb,var(--accent) 10%,transparent)}

/* One navigation system: the sidebar. V17 repeated it inside every admin view. */
.v17-admin-tabs{display:none!important}
body[data-role="admin"] .nav .grp,body[data-role="client"] .nav .grp{display:none!important}
body[data-role] .nav{padding-top:18px!important}
body[data-role] .nav a{min-height:46px!important;margin-bottom:4px!important;border-radius:10px!important;font-weight:800!important}
body[data-role] .nav a.active{transform:none!important;box-shadow:none!important}
body[data-role] .nav a.active::after{display:none!important}

/* Content architecture */
.content{max-width:var(--v18-max)!important;margin:0 auto!important;width:100%!important}
.v16-head,.v16-machine-head,.v15-workspace-head,.domain-head{padding:24px 2px 14px!important;margin-bottom:14px!important;border-bottom:1px solid var(--line)!important}
.v16-head .ey,.v15-workspace-head .ey,.domain-head .ey{display:none!important}
.v16-head h1,.v16-machine-head h1,.v15-workspace-head h1,.domain-head h1{font-size:clamp(28px,2.5vw,38px)!important;letter-spacing:-.045em!important;line-height:1.02!important}
.v16-head p,.v16-machine-head p,.v15-workspace-head p,.domain-head p{font-size:11px!important;line-height:1.5!important;max-width:760px!important}
.v16-head-actions button,.v16-machine-head-actions button,.v15-workspace-actions button,.domain-actions button,.v16-pane-head button{border-radius:8px!important;box-shadow:none!important;background:var(--field)!important;border:1px solid var(--line)!important;color:var(--ink)!important}
.v16-head-actions .primary,.v15-workspace-actions .primary,.domain-actions .primary,.v16-pane-head button{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}

/* Compact context / breadcrumbs */
.v17-breadcrumb{margin:18px 0 0!important;font-size:9px!important}
.v17-breadcrumb a{font-weight:800!important}
.v17-subtabs,.v16-company-tabs,.v16-machine-tabs{margin-bottom:14px!important;background:transparent!important}
.v17-subtab,.v16-tab{height:44px!important;padding:0 14px!important;font-size:9px!important;letter-spacing:.04em!important}
.v17-subtab.on:after,.v16-tab.on:after{left:14px!important;right:14px!important;height:2px!important}

/* Flat list system */
.v17-type-list,.v17-model-list,.v17-model-machine-list,.v16-list,.domain-list,.v17-values,.v17-characteristics{border-top:1px solid var(--line)!important}
.v17-type-row,.v17-model-row,.v17-model-machine-row,.v16-list-row,.domain-row,.v16-user-row,.v16-park-row,.v16-admin-machine-row,.v17-char-row,.v17-value-row,.admin-user-row{border-bottom:1px solid var(--line)!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;transition:background .14s ease!important}
.v17-type-row:hover,.v17-model-row:hover,.v17-model-machine-row:hover,.v16-list-row:hover,.domain-row:hover,.v16-admin-machine-row:hover{background:var(--v18-focus)!important;box-shadow:none!important;padding-left:8px!important;padding-right:8px!important}
.v17-go,.v16-list-row .go,.domain-link{font-weight:800!important}
.v17-stat b,.v16-list-row .metric b{font-size:12px!important}

/* Remove inner card language from machine and company workspaces */
.v16-park-detail-meta,.company-overview,.v15-company-stats{box-shadow:none!important;background:transparent!important}
.v16-machine-info,.v16-doc-workspace{gap:18px!important}
.v16-doc-preview,.v15-doc-page{border-radius:8px!important;box-shadow:none!important;background:color-mix(in srgb,var(--soft) 84%,transparent)!important}
.v16-doc-item:hover{box-shadow:none!important;background:var(--v18-focus)!important;padding-left:8px!important}
.v16-machine-pane .v4-ai-side,.v16-machine-pane .v4-ai-main,.v16-machine-pane .v4-ai-context{box-shadow:none!important;border-radius:10px!important}

/* Search/filter: high-value action without creating more views */
.v18-filter{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding:0 2px}
.v18-filter .v18-filter-field{position:relative;width:min(430px,100%)}
.v18-filter input{width:100%;height:40px;padding:0 38px 0 13px;border:1px solid var(--line)!important;border-radius:9px!important;background:var(--field)!important;color:var(--ink)!important;box-shadow:none!important}
.v18-filter input:focus{outline:2px solid color-mix(in srgb,var(--accent) 22%,transparent)!important;outline-offset:1px!important}
.v18-filter .count{font-size:9px;color:var(--muted);white-space:nowrap}
.v18-filter .clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:27px;height:27px;border:0;background:transparent;color:var(--muted);font-size:15px;cursor:pointer}
.v18-hidden{display:none!important}

/* Company: preserve one task at a time */
.v16-company-pane{min-height:360px!important}
.v16-pane-head{padding:0 0 12px!important;margin-bottom:0!important}
.v16-pane-head .k{display:none!important}
.v16-pane-head h2{font-size:17px!important}
.v16-pane-head p{font-size:9px!important}

/* Client pages: keep the two explicit destinations, reduce decoration */
body[data-role="client"] .v16-summary{gap:18px!important}
body[data-role="client"] .v16-summary strong{font-size:19px!important}
body[data-role="client"] .v16-list-row{padding-top:14px!important;padding-bottom:14px!important}

/* Mobile: full-width stack and drawers remain the only navigation overlay */
@media(max-width:820px){
  .content{max-width:none!important}
  .v16-head,.v16-machine-head,.v15-workspace-head,.domain-head{padding-top:18px!important}
  .v18-filter{align-items:stretch;flex-direction:column}.v18-filter .v18-filter-field{width:100%}.v18-filter .count{padding-left:2px}
  .v17-type-row,.v17-model-row,.v17-model-machine-row,.v16-list-row,.domain-row,.v16-user-row,.v16-park-row,.v16-admin-machine-row,.v17-char-row,.v17-value-row,.admin-user-row{grid-template-columns:1fr!important;width:100%!important;gap:6px!important;padding:13px 2px!important}
  .v17-stat,.v17-go,.v16-list-row .metric{text-align:left!important}
  .v16-company-tabs,.v16-machine-tabs,.v17-subtabs{padding-left:6px!important;padding-right:6px!important}
}

/* ===== couche 22 : sv-v19-admin-entity-cards ===== */
/* ================================================================
   V19 — Admin entity navigation + premium data cards
   Main admin domains: Type / Model / Machine / Company / User
   Card anatomy: entity icon + label, then data label left/value right.
   Responsive: 3 desktop / 2 tablet / 1 mobile.
   ================================================================ */
:root{
  --v19-radius:16px;
  --v19-card-line:color-mix(in srgb,var(--line) 88%,transparent);
  --v19-card-bg:color-mix(in srgb,var(--card) 96%,var(--soft) 4%);
  --v19-card-hover:color-mix(in srgb,var(--accent) 5%,var(--card));
}

/* Primary nav: five explicit admin domains */
body[data-role="admin"] .nav{padding-top:14px!important}
body[data-role="admin"] .nav a{min-height:48px!important;border-radius:9px!important}

/* View header */
.v19-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:25px 2px 14px;border-bottom:1px solid var(--line);margin-bottom:16px}
.v19-page-head h1{margin:0 0 5px;color:var(--ink);font-size:clamp(29px,2.6vw,40px);line-height:1;letter-spacing:-.048em}
.v19-page-head p{margin:0;max-width:760px;color:var(--muted);font-size:11px;line-height:1.55}
.v19-page-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.v19-page-actions button{height:39px;padding:0 14px;border-radius:9px;border:1px solid var(--line);background:var(--field);color:var(--ink);font-size:9px;font-weight:900}
.v19-page-actions button.primary{border-color:var(--accent);background:var(--accent);color:#fff}

/* Filter bar */
.v19-grid-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 15px}
.v19-grid-search{position:relative;width:min(430px,100%)}
.v19-grid-search input{width:100%;height:40px;padding:0 38px 0 13px;border:1px solid var(--line)!important;border-radius:9px!important;background:var(--field)!important;color:var(--ink)!important;box-shadow:none!important}
.v19-grid-search svg{position:absolute;right:13px;top:50%;width:15px;height:15px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.v19-grid-count{color:var(--muted);font-size:9px;font-weight:800;white-space:nowrap}

/* Card grid: 3 / 2 / 1 */
.v19-entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}
.v19-entity-card{position:relative;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--v19-card-line);border-radius:var(--v19-radius);background:var(--v19-card-bg);box-shadow:0 12px 28px rgba(1,22,38,.07);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}
.v19-entity-card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--accent),#3cc4ff 55%,transparent);opacity:.78}
.v19-entity-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--v19-card-hover);box-shadow:0 16px 34px rgba(1,22,38,.11)}
.v19-card-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:17px 17px 15px;border-bottom:1px solid var(--v19-card-line)}
.v19-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--field));color:var(--accent)}
.v19-card-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v19-card-kind{display:block;margin-bottom:3px;color:var(--muted);font-size:7.5px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.v19-card-title{display:block;overflow:hidden;color:var(--ink);font-size:14px;font-weight:900;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.v19-card-open{color:var(--accent);font-size:16px;font-weight:800;opacity:.74;transition:transform .18s ease}
.v19-entity-card:hover .v19-card-open{transform:translateX(2px);opacity:1}
.v19-card-data{margin:0;padding:7px 17px 10px}
.v19-card-data>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:14px;align-items:center;min-height:35px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.v19-card-data>div:last-child{border-bottom:0}
.v19-card-data dt{min-width:0;color:var(--muted);font-size:8.5px;font-weight:750;text-align:left}
.v19-card-data dd{min-width:0;margin:0;color:var(--ink);font-size:9.5px;font-weight:850;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v19-card-data dd.good{color:var(--ok)}
.v19-card-data dd.warn{color:var(--warn)}
.v19-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 17px 13px;border-top:1px solid var(--v19-card-line);color:var(--muted);font-size:8px}
.v19-card-foot strong{color:var(--accent);font-size:8.5px;letter-spacing:.02em}
.v19-empty{grid-column:1/-1;padding:34px 4px;color:var(--muted);font-size:11px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.v19-hidden{display:none!important}

/* Day/night share the exact same geometry, only material values change */
html[data-theme="night"] .v19-entity-card{background:linear-gradient(155deg,rgba(14,31,45,.97),rgba(10,24,36,.97));box-shadow:0 12px 28px rgba(0,0,0,.16)}
html[data-theme="night"] .v19-entity-card:hover{background:linear-gradient(155deg,rgba(16,36,52,.99),rgba(11,27,40,.99));box-shadow:0 17px 38px rgba(0,0,0,.22)}
html[data-theme="day"] .v19-entity-card{background:linear-gradient(155deg,#fff,#f8fbfd);box-shadow:0 10px 26px rgba(37,78,111,.07)}
html[data-theme="day"] .v19-entity-card:hover{background:linear-gradient(155deg,#fff,#f3f8fc);box-shadow:0 16px 32px rgba(37,78,111,.11)}

/* Existing company inner lists get the same premium surface vocabulary. */
.v16-company-pane .v16-user-row,.v16-company-pane .v16-park-row,.v16-company-pane .v16-admin-machine-row{position:relative;margin:10px 0;padding:14px 15px!important;border:1px solid var(--v19-card-line)!important;border-radius:12px!important;background:var(--v19-card-bg)!important;box-shadow:none!important}
.v16-company-pane .v16-user-row:hover,.v16-company-pane .v16-park-row:hover,.v16-company-pane .v16-admin-machine-row:hover{background:var(--v19-card-hover)!important;box-shadow:none!important}

@media(max-width:1180px){.v19-entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .v19-entity-grid{grid-template-columns:minmax(0,1fr)}
  .v19-page-head{align-items:flex-start;flex-direction:column;padding-top:18px}.v19-page-actions{justify-content:flex-start}
  .v19-grid-tools{align-items:stretch;flex-direction:column}.v19-grid-search{width:100%}
  .v19-card-head{padding:15px 14px 13px}.v19-card-data{padding:6px 14px 9px}.v19-card-foot{padding:10px 14px 12px}
  .v19-card-data>div{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
}

/* ===== couche 23 : sv-v20-unified-premium-cards ===== */
/* ============================================================
   V20 — Unified premium cards across Admin + Client
   - same visual language everywhere
   - no icon inside a square
   - bigger variable/value typography
   - subtle reflections for a premium feel
   ============================================================ */
:root{
  --v20-card-radius:18px;
  --v20-card-border:color-mix(in srgb,var(--line) 82%,transparent);
  --v20-card-bg-day:linear-gradient(160deg,rgba(255,255,255,.98),rgba(246,250,253,.96));
  --v20-card-bg-night:linear-gradient(160deg,rgba(14,31,45,.98),rgba(9,24,36,.98));
}
.v19-entity-grid,.v20-entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.v19-entity-card,.v20-premium-card{
  position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0;
  border:1px solid var(--v20-card-border)!important;border-radius:var(--v20-card-radius)!important;
  background:var(--v19-card-bg)!important;box-shadow:0 14px 34px rgba(4,29,48,.08),inset 0 1px 0 rgba(255,255,255,.28)!important;
  backdrop-filter:blur(6px);
}
.v19-entity-card::before,.v20-premium-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(115deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.03) 26%,transparent 54%),
    radial-gradient(140px 85px at 88% 10%,rgba(61,196,255,.08),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.06),transparent 38%);
  opacity:.9;
}
.v19-entity-card::after,.v20-premium-card::after{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--accent),#55ccff 55%,transparent);opacity:.9;
}
.v19-entity-card:hover,.v20-premium-card:hover{
  transform:translateY(-3px)!important;
  border-color:color-mix(in srgb,var(--accent) 40%,var(--line))!important;
  box-shadow:0 18px 40px rgba(4,29,48,.12),inset 0 1px 0 rgba(255,255,255,.34)!important;
}
html[data-theme="night"] .v19-entity-card,
html[data-theme="night"] .v20-premium-card{
  background:var(--v20-card-bg-night)!important;
  box-shadow:0 15px 34px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.05)!important;
}
html[data-theme="night"] .v19-entity-card:hover,
html[data-theme="night"] .v20-premium-card:hover{box-shadow:0 20px 44px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.07)!important}
html[data-theme="day"] .v19-entity-card,
html[data-theme="day"] .v20-premium-card{background:var(--v20-card-bg-day)!important}
.v19-card-head,.v20-card-head{
  position:relative;z-index:1;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:14px;align-items:center;
  padding:18px 18px 15px;border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent)
}
.v19-card-icon,.v20-card-icon{
  width:auto!important;height:auto!important;display:grid;place-items:center;
  border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:0!important;
  color:var(--accent)!important;
}
.v19-card-icon svg,.v20-card-icon svg{width:34px!important;height:34px!important;stroke-width:1.75!important;filter:drop-shadow(0 3px 8px color-mix(in srgb,var(--accent) 22%,transparent))}
.v19-card-kind,.v20-card-kind{display:block;margin-bottom:4px;color:var(--muted);font-size:10px!important;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.v19-card-title,.v20-card-title{display:block;color:var(--ink);font-size:17px!important;font-weight:900;line-height:1.24;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v19-card-open,.v20-card-open{color:var(--accent);font-size:17px;font-weight:900;opacity:.82}
.v19-card-data,.v20-card-data{position:relative;z-index:1;margin:0;padding:10px 18px 12px}
.v19-card-data>div,.v20-card-data>div{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:15px;align-items:center;min-height:42px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent)
}
.v19-card-data>div:last-child,.v20-card-data>div:last-child{border-bottom:0}
.v19-card-data dt,.v20-card-data dt{min-width:0;color:var(--muted);font-size:11px!important;font-weight:850;text-align:left;letter-spacing:.02em}
.v19-card-data dd,.v20-card-data dd{min-width:0;margin:0;color:var(--ink);font-size:14px!important;font-weight:900;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}
.v19-card-foot,.v20-card-foot{position:relative;z-index:1;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px 14px;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);color:var(--muted);font-size:10px!important}
.v19-card-foot strong,.v20-card-foot strong{color:var(--accent);font-size:11px!important;letter-spacing:.03em}
.v20-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 18px}
.v20-summary-tile{position:relative;overflow:hidden;border:1px solid var(--v20-card-border);border-radius:16px;padding:16px 18px;background:var(--v19-card-bg);box-shadow:0 12px 26px rgba(4,29,48,.06),inset 0 1px 0 rgba(255,255,255,.24)}
.v20-summary-tile::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.12),transparent 42%),radial-gradient(110px 70px at 86% 10%,rgba(61,196,255,.06),transparent 70%);pointer-events:none}
.v20-summary-tile small{display:block;color:var(--muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.14em}
.v20-summary-tile strong{display:block;margin-top:5px;color:var(--ink);font-size:28px;line-height:1;letter-spacing:-.05em}
html[data-theme="night"] .v20-summary-tile{background:var(--v20-card-bg-night)}
html[data-theme="day"] .v20-summary-tile{background:var(--v20-card-bg-day)}
@media(max-width:1180px){.v19-entity-grid,.v20-entity-grid,.v20-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .v19-entity-grid,.v20-entity-grid,.v20-summary-strip{grid-template-columns:minmax(0,1fr)}
  .v19-card-head,.v20-card-head{grid-template-columns:48px minmax(0,1fr) auto;padding:16px 15px 13px}
  .v19-card-data,.v20-card-data{padding:9px 15px 11px}
  .v19-card-foot,.v20-card-foot{padding:11px 15px 13px}
  .v19-card-icon svg,.v20-card-icon svg{width:30px!important;height:30px!important}
  .v19-card-title,.v20-card-title{font-size:16px!important}
}

/* ===== couche 24 : sv-v21-company-premium-tabs ===== */
/* ============================================================
   V21 — Société : tabs compacts + premium cards
   - counters moved into tab badges
   - contextual + button only on active tab
   - no redundant section heading
   - same card system as the rest of the app
   - no separators between data rows
   ============================================================ */

/* Remove row separators from the unified card system everywhere. */
.v19-card-data>div,.v20-card-data>div,.v21-card-data>div{
  border-bottom:0!important;
  min-height:40px!important;
  padding:4px 0!important;
}
.v19-card-data,.v20-card-data,.v21-card-data{
  padding-top:12px!important;
  padding-bottom:14px!important;
}

/* Increase the breathing room rather than drawing lines. */
.v19-card-data>div+div,.v20-card-data>div+div,.v21-card-data>div+div{margin-top:2px;}

/* Company detail header: no counter cards. */
.v21-company-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:27px 2px 18px;border-bottom:1px solid var(--line);margin-bottom:0;
}
.v21-company-head h1{margin:0 0 6px;color:var(--ink);font-size:clamp(30px,3vw,43px);letter-spacing:-.052em;line-height:1}
.v21-company-head p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.v21-company-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.v21-company-actions button{height:38px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--field);color:var(--ink);font-size:9px;font-weight:900}

/* Tabs: label + count badge + active contextual add action. */
.v21-company-tabs{
  display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--line);
  margin:0 0 20px;overflow:auto;scrollbar-width:none;
}
.v21-company-tabs::-webkit-scrollbar{display:none}
.v21-company-tab-item{position:relative;display:flex;align-items:center;flex:none;height:58px}
.v21-company-tab-main{
  height:100%;display:flex;align-items:center;gap:9px;padding:0 15px;border:0;background:transparent;
  color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;
}
.v21-company-tab-item.on .v21-company-tab-main{color:var(--ink)}
.v21-company-tab-item.on::after{content:"";position:absolute;left:15px;right:15px;bottom:-1px;height:2px;background:linear-gradient(90deg,var(--accent),#50caff)}
.v21-tab-count{
  min-width:24px;height:23px;padding:0 7px;display:inline-grid;place-items:center;border-radius:999px;
  background:color-mix(in srgb,var(--accent) 9%,var(--soft));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));
  color:var(--accent);font-size:10px;font-weight:950;letter-spacing:0;
}
.v21-tab-add{
  width:32px;height:32px;margin-right:10px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));
  border-radius:50%;background:color-mix(in srgb,var(--accent) 10%,var(--field));color:var(--accent);
  font-size:20px;font-weight:500;line-height:1;cursor:pointer;display:grid;place-items:center;
  transition:.18s ease;
}
.v21-tab-add:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-1px)}

/* Cards inside Society use the exact same material and layout. */
.v21-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.v21-company-grid .v21-entity-card{
  position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0;cursor:pointer;
  border:1px solid var(--v20-card-border)!important;border-radius:var(--v20-card-radius)!important;
  background:var(--v19-card-bg)!important;
  box-shadow:0 14px 34px rgba(4,29,48,.08),inset 0 1px 0 rgba(255,255,255,.28)!important;
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.v21-company-grid .v21-entity-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(112deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.035) 25%,transparent 53%),
    radial-gradient(180px 95px at 90% 7%,var(--v21-reflect,rgba(56,187,255,.09)),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.05),transparent 38%);
  opacity:.92;
}
.v21-company-grid .v21-entity-card::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--v21-accent,var(--accent)),color-mix(in srgb,var(--v21-accent,var(--accent)) 55%,#fff),transparent);opacity:.9}
.v21-company-grid .v21-entity-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--v21-accent,var(--accent)) 38%,var(--line))!important;box-shadow:0 19px 42px rgba(4,29,48,.13),inset 0 1px 0 rgba(255,255,255,.34)!important}
html[data-theme="night"] .v21-company-grid .v21-entity-card{background:var(--v20-card-bg-night)!important;box-shadow:0 15px 34px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.055)!important}
html[data-theme="day"] .v21-company-grid .v21-entity-card{background:var(--v20-card-bg-day)!important}

.v21-card-head{position:relative;z-index:1;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;padding:19px 18px 15px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.v21-card-icon{display:grid;place-items:center;color:var(--v21-accent,var(--accent));background:none!important;border:0!important;box-shadow:none!important}
.v21-card-icon svg{width:37px;height:37px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 10px color-mix(in srgb,var(--v21-accent,var(--accent)) 24%,transparent))}
.v21-card-kind{display:block;margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}
.v21-card-title{display:block;color:var(--ink);font-size:17px;font-weight:950;line-height:1.24;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v21-card-arrow{color:var(--v21-accent,var(--accent));font-size:17px;font-weight:900;opacity:.78}
.v21-card-data{position:relative;z-index:1;margin:0;padding:12px 18px 14px}
.v21-card-data>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px;align-items:center;min-height:42px;padding:4px 0;border:0}
.v21-card-data dt{color:var(--muted);font-size:11px;font-weight:850;text-align:left}
.v21-card-data dd{margin:0;color:var(--ink);font-size:14px;font-weight:900;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v21-card-data dd.good{color:var(--ok)}.v21-card-data dd.warn{color:var(--warn)}
.v21-card-foot{position:relative;z-index:1;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px 14px;border-top:1px solid color-mix(in srgb,var(--line) 68%,transparent);color:var(--muted);font-size:10px}
.v21-card-foot strong{color:var(--v21-accent,var(--accent));font-size:11px}

.v21-kind-user{--v21-accent:#8b6cff;--v21-reflect:rgba(139,108,255,.10)}
.v21-kind-park{--v21-accent:#22b979;--v21-reflect:rgba(34,185,121,.10)}
.v21-kind-machine{--v21-accent:#1598f6;--v21-reflect:rgba(21,152,246,.11)}

@media(max-width:1180px){.v21-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){
  .v21-company-head{align-items:flex-start;flex-direction:column;padding-top:20px}.v21-company-actions{justify-content:flex-start}
  .v21-company-grid{grid-template-columns:minmax(0,1fr)}
  .v21-company-tabs{margin-left:-14px;margin-right:-14px;padding-left:7px}
  .v21-company-tab-main{padding:0 11px}.v21-company-tab-item.on::after{left:11px;right:11px}
  .v21-card-head{grid-template-columns:50px minmax(0,1fr) auto;padding:16px 15px 13px}.v21-card-icon svg{width:32px;height:32px}.v21-card-title{font-size:16px}.v21-card-data{padding:10px 15px 12px}.v21-card-foot{padding:11px 15px 13px}
}

/* ===== couche 25 : sv-v22-assistant-surface-system ===== */
/* =====================================================================
   V22 — SEDAM premium surface system
   Reference: Assistant documentaire surface language.
   Same geometry/patterns in day & night; only light values change.
   ===================================================================== */
:root{
  --sv22-radius:18px;
  --sv22-grid-x:46px;
  --sv22-grid-y:38px;
  --sv22-accent:#1598f6;
}
html[data-theme="night"]{
  --sv22-surface-0:#091824;
  --sv22-surface-1:#0d2030;
  --sv22-surface-2:#0a1a28;
  --sv22-ink:#edf8ff;
  --sv22-muted:#8fa8bc;
  --sv22-border:rgba(117,174,210,.16);
  --sv22-grid:rgba(94,173,224,.040);
  --sv22-diagonal:rgba(91,187,246,.075);
  --sv22-ring:rgba(70,179,244,.090);
  --sv22-gold:rgba(217,180,108,.070);
  --sv22-shine:rgba(255,255,255,.055);
  --sv22-sheen:rgba(255,255,255,.028);
  --sv22-shadow:0 18px 42px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.045);
  --sv22-shadow-hover:0 22px 50px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.065);
}
html[data-theme="day"]{
  --sv22-surface-0:#ffffff;
  --sv22-surface-1:#f7fafc;
  --sv22-surface-2:#eef4f8;
  --sv22-ink:#102f4d;
  --sv22-muted:#607b92;
  --sv22-border:rgba(72,125,166,.17);
  --sv22-grid:rgba(69,130,176,.078);
  --sv22-diagonal:rgba(35,140,220,.105);
  --sv22-ring:rgba(35,145,224,.145);
  --sv22-gold:rgba(196,157,86,.120);
  --sv22-shine:rgba(255,255,255,.80);
  --sv22-sheen:rgba(54,121,170,.028);
  --sv22-shadow:0 16px 36px rgba(35,78,111,.095), inset 0 1px 0 rgba(255,255,255,.95);
  --sv22-shadow-hover:0 20px 44px rgba(35,78,111,.135), inset 0 1px 0 rgba(255,255,255,1);
}

/* The assistant is the reference material, not an exception anymore. */
:is(
  .v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,
  .v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,
  .v4-ai-side,.v4-ai-main,.v4-ai-context,.card,
  .v16-doc-preview,.v16-info-section,.v15-section,.modal
){
  --sv22-local-accent:var(--v21-accent,var(--accent));
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  border:1px solid var(--sv22-border)!important;
  border-radius:var(--sv22-radius)!important;
  background:
    repeating-linear-gradient(90deg,transparent 0 calc(var(--sv22-grid-x) - 1px),var(--sv22-grid) calc(var(--sv22-grid-x) - 1px) var(--sv22-grid-x)),
    repeating-linear-gradient(0deg,transparent 0 calc(var(--sv22-grid-y) - 1px),color-mix(in srgb,var(--sv22-grid) 72%,transparent) calc(var(--sv22-grid-y) - 1px) var(--sv22-grid-y)),
    linear-gradient(112deg,transparent 0 72%,var(--sv22-diagonal) 72.10%,transparent 72.36%),
    radial-gradient(circle at 86% 15%,transparent 0 58px,var(--sv22-ring) 59px 60px,transparent 61px 95px,var(--sv22-gold) 96px 97px,transparent 98px),
    linear-gradient(155deg,var(--sv22-surface-1),var(--sv22-surface-0) 56%,var(--sv22-surface-2))!important;
  box-shadow:var(--sv22-shadow)!important;
  color:var(--sv22-ink)!important;
  transition:border-color .22s ease,box-shadow .22s ease,transform .22s cubic-bezier(.2,.75,.25,1),filter .22s ease!important;
}
:is(
  .v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,
  .v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,
  .v4-ai-side,.v4-ai-main,.v4-ai-context,.card,
  .v16-doc-preview,.v16-info-section,.v15-section,.modal
)::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  opacity:1!important;
  background:
    linear-gradient(118deg,var(--sv22-shine) 0%,transparent 18%,transparent 72%,var(--sv22-sheen) 100%),
    radial-gradient(210px 110px at var(--mx,88%) var(--my,6%),color-mix(in srgb,var(--sv22-local-accent) 10%,transparent),transparent 72%)!important;
  filter:none!important;
  transform:none!important;
  border-radius:inherit!important;
}
:is(
  .v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,
  .v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,
  .v4-ai-side,.v4-ai-main,.v4-ai-context,.card,
  .v16-doc-preview,.v16-info-section,.v15-section,.modal
)::after{
  content:""!important;
  position:absolute!important;
  left:16px!important;right:16px!important;top:0!important;height:1px!important;
  z-index:1!important;pointer-events:none!important;
  border-radius:0!important;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--sv22-local-accent) 46%,#fff),transparent)!important;
  opacity:.36!important;
}
:is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.machine-hub-card,.v4-panel,.admin-panel):hover{
  transform:translateY(-2px)!important;
  border-color:color-mix(in srgb,var(--sv22-local-accent) 32%,var(--sv22-border))!important;
  box-shadow:var(--sv22-shadow-hover)!important;
}
/* All children stay above the technical decor. */
:is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,.v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,.v4-ai-side,.v4-ai-main,.v4-ai-context,.card,.v16-doc-preview,.v16-info-section,.v15-section,.modal)>*{position:relative;z-index:2}

/* Same card anatomy everywhere. */
.v19-card-head,.v20-card-head,.v21-card-head{
  border-bottom:0!important;
  padding-bottom:10px!important;
}
.v19-card-data,.v20-card-data,.v21-card-data{padding-top:8px!important}
.v19-card-data>div,.v20-card-data>div,.v21-card-data>div{
  border:0!important;margin:0!important;padding:5px 0!important;min-height:39px!important;
}
.v19-card-data dt,.v20-card-data dt,.v21-card-data dt{
  color:var(--sv22-muted)!important;font-size:12px!important;font-weight:800!important;line-height:1.35!important;
}
.v19-card-data dd,.v20-card-data dd,.v21-card-data dd{
  color:var(--sv22-ink)!important;font-size:15px!important;font-weight:900!important;line-height:1.35!important;
}
.v19-card-foot,.v20-card-foot,.v21-card-foot{
  border-top:0!important;padding-top:8px!important;color:var(--sv22-muted)!important;
}
.v19-card-title,.v20-card-title,.v21-card-title{color:var(--sv22-ink)!important}
.v19-card-kind,.v20-card-kind,.v21-card-kind{color:var(--sv22-muted)!important}

/* Big colored line icons — never boxed. */
.v19-card-icon,.v20-card-icon,.v21-card-icon{
  width:48px!important;height:48px!important;display:grid!important;place-items:center!important;
  padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;
}
.v19-card-icon svg,.v20-card-icon svg,.v21-card-icon svg{
  width:38px!important;height:38px!important;filter:drop-shadow(0 5px 12px color-mix(in srgb,currentColor 20%,transparent))!important;
}
.v19-entity-card[data-entity-kind="type"] .v19-card-icon{color:#45b7ff!important}
.v19-entity-card[data-entity-kind="model"] .v19-card-icon{color:#9b7cff!important}
.v19-entity-card[data-entity-kind="machine"] .v19-card-icon{color:#20c1ff!important}
.v19-entity-card[data-entity-kind="company"] .v19-card-icon{color:#38c98d!important}
.v19-entity-card[data-entity-kind="user"] .v19-card-icon{color:#f0b34f!important}
.v19-entity-card[data-entity-kind="park"] .v19-card-icon{color:#4cc983!important}

/* Assistant: preserve the loved composition while improving day mode parity. */
.v4-ai-main{--sv22-local-accent:#21a9ff!important}
.v4-ai-side{--sv22-local-accent:#6c9cff!important}
.v4-ai-context{--sv22-local-accent:#37c98c!important}
.v4-ai-head{border-bottom:1px solid color-mix(in srgb,var(--sv22-border) 88%,transparent)!important;background:transparent!important}
.v4-ai-head b{color:var(--sv22-ink)!important;font-size:13px!important}
.v4-ai-head small{color:var(--ok)!important;font-size:10px!important}
.v4-ai-main .stream{background:transparent!important}
.v4-ai-main .msg.bot .bubble{
  color:var(--sv22-ink)!important;
  background:color-mix(in srgb,var(--sv22-surface-2) 72%,transparent)!important;
  border:1px solid color-mix(in srgb,var(--sv22-border) 80%,transparent)!important;
}
.v4-ai-main .composer{border-top:1px solid color-mix(in srgb,var(--sv22-border) 88%,transparent)!important}
.v4-ai-main .composer .row{background:color-mix(in srgb,var(--sv22-surface-0) 78%,transparent)!important;border-color:var(--sv22-border)!important}
html[data-theme="day"] .v4-ai-main .composer .row{background:rgba(255,255,255,.74)!important}

/* Summary cards use same material, but stay quieter. */
.v20-summary-tile,.admin-kpi,.client-summary-card{--sv22-local-accent:#43b9ff}
.v20-summary-tile small,.admin-kpi .label,.client-summary-card small{color:var(--sv22-muted)!important}
.v20-summary-tile strong,.admin-kpi strong,.client-summary-card strong{color:var(--sv22-ink)!important}

/* Machine detail surfaces join the same material system. */
.v16-info-section{padding:15px 16px!important}
.v16-info-row{border-bottom:0!important;padding:10px 1px!important}
.v16-info-row strong{font-size:12px!important;color:var(--sv22-ink)!important}
.v16-info-row .value{font-size:14px!important;font-weight:900!important;color:var(--sv22-ink)!important}
.v16-spec-row{border-bottom:0!important;padding:10px 2px!important}
.v16-spec-row b{font-size:12px!important}.v16-spec-row span{font-size:13px!important}

/* The decor must remain in exactly the same place between themes.
   These theme-qualified selectors intentionally outrank inherited legacy theme rules. */
html[data-theme="day"] :is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,.v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,.v4-ai-side,.v4-ai-main,.v4-ai-context,.card,.v16-doc-preview,.v16-info-section,.v15-section,.modal),
html[data-theme="night"] :is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,.v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,.v4-ai-side,.v4-ai-main,.v4-ai-context,.card,.v16-doc-preview,.v16-info-section,.v15-section,.modal){
  background:
    repeating-linear-gradient(90deg,transparent 0 calc(var(--sv22-grid-x) - 1px),var(--sv22-grid) calc(var(--sv22-grid-x) - 1px) var(--sv22-grid-x)),
    repeating-linear-gradient(0deg,transparent 0 calc(var(--sv22-grid-y) - 1px),color-mix(in srgb,var(--sv22-grid) 72%,transparent) calc(var(--sv22-grid-y) - 1px) var(--sv22-grid-y)),
    linear-gradient(112deg,transparent 0 72%,var(--sv22-diagonal) 72.10%,transparent 72.36%),
    radial-gradient(circle at 86% 15%,transparent 0 58px,var(--sv22-ring) 59px 60px,transparent 61px 95px,var(--sv22-gold) 96px 97px,transparent 98px),
    linear-gradient(155deg,var(--sv22-surface-1),var(--sv22-surface-0) 56%,var(--sv22-surface-2))!important;
  background-position:0 0!important;background-size:auto!important;
}
html[data-theme="day"] :is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.machine-hub-card,.v4-panel,.admin-panel):hover,
html[data-theme="night"] :is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.machine-hub-card,.v4-panel,.admin-panel):hover{
  background:
    repeating-linear-gradient(90deg,transparent 0 calc(var(--sv22-grid-x) - 1px),var(--sv22-grid) calc(var(--sv22-grid-x) - 1px) var(--sv22-grid-x)),
    repeating-linear-gradient(0deg,transparent 0 calc(var(--sv22-grid-y) - 1px),color-mix(in srgb,var(--sv22-grid) 72%,transparent) calc(var(--sv22-grid-y) - 1px) var(--sv22-grid-y)),
    linear-gradient(112deg,transparent 0 72%,var(--sv22-diagonal) 72.10%,transparent 72.36%),
    radial-gradient(circle at 86% 15%,transparent 0 58px,var(--sv22-ring) 59px 60px,transparent 61px 95px,var(--sv22-gold) 96px 97px,transparent 98px),
    linear-gradient(155deg,var(--sv22-surface-1),var(--sv22-surface-0) 56%,var(--sv22-surface-2))!important;
}

@media(max-width:720px){
  .v19-card-data dt,.v20-card-data dt,.v21-card-data dt{font-size:11.5px!important}
  .v19-card-data dd,.v20-card-data dd,.v21-card-data dd{font-size:14px!important}
  .v19-card-icon svg,.v20-card-icon svg,.v21-card-icon svg{width:34px!important;height:34px!important}
}
@media(prefers-reduced-motion:reduce){
  :is(.v19-entity-card,.v20-premium-card,.v21-entity-card,.machine-hub-card,.v4-panel,.admin-panel){transition:none!important}
}

/* ===== couche 26 : sv-v23-responsive-header-system ===== */
/* ============================================================
   V23 — quieter day surfaces + responsive page header system
   Same decor coordinates day/night; day is deliberately much softer.
   On responsive layouts the page title owns the first line and the
   navigation trigger sits to its right. Tabs follow immediately below.
   ============================================================ */

/* DAY — preserve the exact same geometry, reduce its visual weight. */
html[data-theme="day"]{
  --sv22-surface-0:#ffffff;
  --sv22-surface-1:#fbfdfe;
  --sv22-surface-2:#f6f9fb;
  --sv22-ink:#102f4d;
  --sv22-muted:#607b92;
  --sv22-border:rgba(72,125,166,.105);
  --sv22-grid:rgba(69,130,176,.022);
  --sv22-diagonal:rgba(35,140,220,.030);
  --sv22-ring:rgba(35,145,224,.040);
  --sv22-gold:rgba(196,157,86,.030);
  --sv22-shine:rgba(255,255,255,.46);
  --sv22-sheen:rgba(54,121,170,.010);
  --sv22-shadow:0 12px 30px rgba(35,78,111,.052), inset 0 1px 0 rgba(255,255,255,.94);
  --sv22-shadow-hover:0 16px 36px rgba(35,78,111,.075), inset 0 1px 0 rgba(255,255,255,1);
}
html[data-theme="day"] :is(
  .v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,
  .v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,
  .v4-ai-side,.v4-ai-main,.v4-ai-context,.card,
  .v16-doc-preview,.v16-info-section,.v15-section,.modal
)::before{opacity:.42!important}
html[data-theme="day"] :is(
  .v19-entity-card,.v20-premium-card,.v21-entity-card,.v20-summary-tile,
  .v4-panel,.admin-panel,.admin-kpi,.client-summary-card,.machine-hub-card,
  .v4-ai-side,.v4-ai-main,.v4-ai-context,.card,
  .v16-doc-preview,.v16-info-section,.v15-section,.modal
)::after{opacity:.18!important}

/* Shared responsive header architecture. */
.sv23-action-anchor{display:none!important}
@media(max-width:1100px){
  body[data-role] .main{position:relative!important}
  body[data-role] .content,
  body[data-role] .content:not([data-view="dashboard"]){padding-top:78px!important}

  .sv23-mobile-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    column-gap:14px!important;
    row-gap:0!important;
    align-items:start!important;
    margin:0!important;
    padding:18px 0 12px!important;
    border-bottom:0!important;
    min-height:0!important;
  }
  .sv23-mobile-header>.sv23-header-copy,
  .sv23-mobile-header>div:first-child{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    align-self:start!important;
  }
  .sv23-mobile-header #svMenuToggle{
    grid-column:2!important;
    grid-row:1!important;
    position:static!important;
    inset:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    width:auto!important;
    min-width:78px!important;
    height:40px!important;
    margin:0!important;
    padding:0 12px!important;
    border:1px solid var(--line)!important;
    border-radius:10px!important;
    background:var(--field)!important;
    color:var(--ink)!important;
    box-shadow:none!important;
    visibility:visible!important;
    z-index:2!important;
  }
  .sv23-mobile-header #svMenuToggle::after{
    content:"Menu";
    font-size:10px;
    line-height:1;
    font-weight:900;
    letter-spacing:.04em;
  }
  .sv23-mobile-header #svMenuToggle svg{width:18px!important;height:18px!important}
  body.sv-nav-open .sv23-mobile-header #svMenuToggle{visibility:hidden!important}

  /* No artificial top spacer: the page identity is the top element. */
  .v16-machine-head .ey,
  .v16-head .ey,
  .v15-machine-detail-head .ey,
  .v15-workspace-head .ey,
  .v15-assist-head .ey,
  .v15-parks-intro .ey,
  .domain-head .ey{
    display:block!important;
    margin:0 0 5px!important;
    color:var(--accent)!important;
    font-size:9px!important;
    line-height:1.25!important;
    font-weight:900!important;
    letter-spacing:.15em!important;
    text-transform:uppercase!important;
  }
  .sv23-mobile-header h1{
    margin:0 0 5px!important;
    font-size:clamp(25px,6.8vw,32px)!important;
    line-height:1.04!important;
    letter-spacing:-.045em!important;
  }
  .sv23-mobile-header p{
    margin:0!important;
    max-width:none!important;
    font-size:11px!important;
    line-height:1.45!important;
  }

  /* Back controls are redundant on responsive: navigation is the drawer. */
  .sv23-back-action{display:none!important}

  /* Detail-page actions are moved below tabs, keeping tabs directly below identity. */
  .sv23-actions-after-tabs{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
    flex-wrap:wrap!important;
    margin:-6px 0 14px!important;
    padding:0!important;
  }
  .sv23-actions-after-tabs:empty{display:none!important}

  /* Tabs start immediately below the page identity. */
  .v16-machine-tabs,.v16-company-tabs,.v17-subtabs,.v15-tabs{
    margin-top:0!important;
    margin-bottom:14px!important;
  }
  .v16-machine-tabs,.v16-company-tabs,.v17-subtabs{
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  /* Machine header specifically follows the requested compact hierarchy. */
  .v16-machine-head{padding-bottom:10px!important}
  .v16-machine-head .v16-machine-head-actions{display:none!important}
  .v16-machine-head + .v16-machine-tabs{margin-top:0!important}

  /* If a list page has creation actions and no tabs, retain them compactly below header. */
  .sv23-mobile-header>.v19-page-actions,
  .sv23-mobile-header>.v16-head-actions,
  .sv23-mobile-header>.v15-workspace-actions,
  .sv23-mobile-header>.domain-actions{
    grid-column:1/-1!important;
    grid-row:2!important;
    margin-top:10px!important;
    justify-content:flex-start!important;
  }
}

@media(max-width:520px){
  body[data-role] .content{padding-left:14px!important;padding-right:14px!important}
  .sv23-mobile-header{padding-top:14px!important;column-gap:10px!important}
  .sv23-mobile-header #svMenuToggle{min-width:70px!important;height:38px!important;padding:0 10px!important}
  .sv23-mobile-header #svMenuToggle::after{font-size:9px}
  .sv23-mobile-header h1{font-size:25px!important}
  .sv23-mobile-header p{font-size:10.5px!important}
}

/* ===== couche 27 : sv-v24-sticky-view-bar ===== */
/* ============================================================
   V24 — Responsive sticky view bar
   A single compact page identity stays visible while scrolling.
   Icon spans the two text lines; edit/menu are square integrated controls.
   ============================================================ */
.sv24-viewbar,.sv24-secondary-actions{display:none}
@media(max-width:1100px){
  body[data-role] .content,
  body[data-role] .content:not([data-view="dashboard"]){padding-top:78px!important}

  .sv24-viewbar{
    position:fixed;top:0;left:0;right:0;z-index:120;
    display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-rows:auto auto;
    align-items:center;column-gap:11px;row-gap:1px;
    min-height:68px;margin:0;padding:10px 22px;
    background:color-mix(in srgb,var(--card) 93%,transparent);
    border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);
    box-shadow:0 8px 22px rgba(3,24,39,.055);
    backdrop-filter:blur(18px) saturate(125%);
    -webkit-backdrop-filter:blur(18px) saturate(125%);
  }
  html[data-theme="night"] .sv24-viewbar{
    background:rgba(7,20,31,.91);
    border-bottom-color:rgba(114,170,209,.13);
    box-shadow:0 8px 24px rgba(0,0,0,.16);
  }
  html[data-theme="day"] .sv24-viewbar{
    background:rgba(255,255,255,.93);
    border-bottom-color:rgba(79,128,164,.11);
    box-shadow:0 7px 20px rgba(43,82,112,.055);
  }
  .sv24-view-icon{
    grid-column:1;grid-row:1/3;align-self:center;
    width:38px;height:38px;display:grid;place-items:center;
    color:var(--accent);background:none;border:0;
  }
  .sv24-view-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 3px 8px color-mix(in srgb,var(--accent) 18%,transparent))}
  .sv24-context{
    grid-column:2;grid-row:1;min-width:0;align-self:end;
    color:var(--muted);font-size:8.5px;line-height:1.15;font-weight:900;
    letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .sv24-view-title{
    grid-column:2;grid-row:2;min-width:0;align-self:start;
    color:var(--ink);font-size:18px;line-height:1.12;font-weight:900;letter-spacing:-.035em;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .sv24-view-actions{
    grid-column:3;grid-row:1/3;display:flex;align-items:stretch;gap:7px;height:46px;
  }
  #svMenuToggle{display:none!important}
  .sv24-square-action,
  .sv24-menu-action{
    position:static!important;inset:auto!important;flex:0 0 46px!important;
    width:46px!important;min-width:46px!important;height:46px!important;
    display:grid!important;place-items:center!important;margin:0!important;padding:0!important;
    border:1px solid var(--line)!important;border-radius:10px!important;
    background:var(--field)!important;color:var(--ink)!important;box-shadow:none!important;
    visibility:visible!important;opacity:1!important;z-index:auto!important;
  }
  html[data-theme="night"] .sv24-square-action,
  html[data-theme="night"] .sv24-menu-action{background:rgba(255,255,255,.045)!important;border-color:rgba(113,165,203,.15)!important}
  html[data-theme="day"] .sv24-square-action,
  html[data-theme="day"] .sv24-menu-action{background:#f8fbfd!important;border-color:rgba(74,124,161,.13)!important}
  .sv24-square-action svg,.sv24-menu-action svg{width:20px!important;height:20px!important}
  .sv24-square-action:hover,.sv24-menu-action:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))!important;color:var(--accent)!important}
  .sv24-edit-hidden{display:none!important}

  /* Original page titles become data sources only: no duplicate lines or buttons. */
  .sv24-source-header{display:none!important}
  .sv24-hide-responsive{display:none!important}
  .v17-breadcrumb{display:none!important}
  .sv23-actions-after-tabs{display:none!important}

  /* Tabs are the very next visible level after the sticky identity bar. */
  .v16-machine-tabs,.v16-company-tabs,.v17-subtabs,.v15-tabs{
    margin-top:0!important;margin-bottom:12px!important;
    margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;
    border-bottom-color:color-mix(in srgb,var(--line) 76%,transparent)!important;
  }

  /* Creation / contextual actions are retained, but separated from the identity bar. */
  .sv24-secondary-actions{
    display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;
    margin:0 0 12px;padding:0;
  }
  .sv24-secondary-actions button,.sv24-secondary-actions a{
    min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:9px;
    background:var(--field);color:var(--ink);font-size:9px;font-weight:900;
    display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  }
  .sv24-secondary-actions .primary{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}

  /* V23's former responsive header mechanics are neutralized. */
  .sv23-mobile-header{display:none!important}
  .sv23-back-action{display:none!important}

  /* Keep page content compact once redundant heading lines are gone. */
  .v16-park-detail-meta,.v20-summary-strip{margin-top:0!important}
}
@media(max-width:520px){
  .sv24-viewbar{padding-left:14px;padding-right:14px;grid-template-columns:40px minmax(0,1fr) auto;column-gap:9px;min-height:64px}
  body[data-role] .content,body[data-role] .content:not([data-view="dashboard"]){padding-top:74px!important}
  .sv24-view-icon{width:35px;height:35px}.sv24-view-icon svg{width:29px;height:29px}
  .sv24-context{font-size:7.8px}.sv24-view-title{font-size:17px}
  .sv24-view-actions{height:44px;gap:6px}.sv24-square-action,.sv24-menu-action{width:44px!important;min-width:44px!important;height:44px!important;border-radius:9px!important}
}

/* ===== couche 28 : sv-v25-admin-launch-menu-fix ===== */
/* V25 — final responsive shell correction after Chromium audit */
@media(max-width:1100px){
  body[data-role] #app{display:block!important;width:100%!important;min-width:0!important}
  body[data-role] .main{width:100%!important;min-width:0!important;margin:0!important}
  body[data-role] .sidebar{
    position:fixed!important;left:0!important;top:0!important;bottom:0!important;
    width:min(328px,88vw)!important;max-width:min(328px,88vw)!important;
    height:100dvh!important;z-index:180!important;margin:0!important;
    transform:translateX(-102%)!important;visibility:hidden!important;pointer-events:none!important;
    transition:transform .22s ease,visibility 0s .22s!important;
    box-shadow:18px 0 48px rgba(0,0,0,.20)!important;
  }
  body.sv-nav-open .sidebar{
    transform:translateX(0)!important;visibility:visible!important;pointer-events:auto!important;
    transition:transform .22s ease,visibility 0s!important;
  }
  body.sv-nav-open{overflow:hidden!important}
  #svDrawerOverlay{z-index:170!important}
  body.sv-nav-open #svDrawerOverlay{display:block!important}
  body[data-role] #svDrawerClose{display:flex!important;z-index:190!important}
  .sv24-viewbar{z-index:160!important}
  .sv24-menu-action,.sv24-square-action{z-index:1!important}
}

/* ===== couche 29 : sv-v26-admin-live ===== */
:root{
  --sv26-blue:#0aa2ff;
  --sv26-blue-soft:rgba(10,162,255,.16);
  --sv26-red:#ff425c;
  --sv26-red-soft:rgba(255,66,92,.16);
  --sv26-panel:linear-gradient(160deg,rgba(7,20,32,.92),rgba(8,26,42,.82));
  --sv26-panel-2:linear-gradient(160deg,rgba(8,25,40,.78),rgba(6,18,30,.68));
}

body[data-role] .sidebar .logo,
body[data-role] .brand-logo,
body[data-role] .login-logo{
  position:relative;
}
body[data-role] .sidebar .logo::after,
body[data-role] .brand-logo::after{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  bottom:14px;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--sv26-blue) 0 62%,var(--sv26-red) 62% 100%);
  box-shadow:0 0 20px rgba(10,162,255,.35);
  opacity:.9;
}

.sv26-page{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.sv26-hero{
  display:flex;
  align-items:stretch;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px;
  border:1px solid color-mix(in srgb,var(--line) 72%, var(--sv26-blue) 28%);
  border-radius:26px;
  background:
    linear-gradient(120deg,rgba(8,22,35,.96),rgba(5,19,31,.88)),
    radial-gradient(circle at 90% 0%, rgba(10,162,255,.12), transparent 38%);
  box-shadow:0 20px 44px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05);
}
html[data-theme="day"] .sv26-hero{
  background:linear-gradient(130deg,rgba(255,255,255,.96),rgba(242,248,253,.92));
  box-shadow:0 16px 34px rgba(38,88,126,.12);
}
.sv26-hero-main{display:flex;gap:18px;min-width:0;align-items:center}
.sv26-hero-icon{
  flex:0 0 88px;
  width:88px;height:88px;
  display:grid;place-items:center;
  border-radius:24px;
  border:1px solid rgba(10,162,255,.32);
  background:linear-gradient(155deg,rgba(7,34,52,.95),rgba(11,27,41,.82));
  color:var(--sv26-blue);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 16px 36px rgba(0,0,0,.18);
  position:relative;
  overflow:hidden;
}
.sv26-hero-icon::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:8px;
  background:linear-gradient(90deg,var(--sv26-blue) 0 68%, var(--sv26-red) 68% 100%);
}
.sv26-hero-icon svg{width:48px;height:48px}
.sv26-hero-copy{min-width:0;display:flex;flex-direction:column;gap:8px}
.sv26-breadcrumb{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);
}
.sv26-breadcrumb button,.sv26-breadcrumb a{
  background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:none;
}
.sv26-breadcrumb i{font-style:normal;opacity:.5}
.sv26-overline{font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sv26-title{margin:0;font-size:56px;line-height:.94;letter-spacing:.01em;text-transform:uppercase;color:var(--ink)}
.sv26-subtitle{margin:0;color:var(--muted);font-size:14px;max-width:900px}
.sv26-tabsbar{
  display:flex;justify-content:space-between;align-items:stretch;gap:18px;
  padding:0;
}
.sv26-tabs{
  flex:1;display:flex;gap:0;align-items:flex-end;overflow:auto;scrollbar-width:none;
  border-bottom:1px solid var(--line);padding:0 4px;
}
.sv26-tabs::-webkit-scrollbar{display:none}
.sv26-tab{
  position:relative;flex:none;height:54px;padding:0 22px;border:0;background:transparent;color:var(--muted);cursor:pointer;
  font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;
}
.sv26-tab:hover{color:var(--ink)}
.sv26-tab.on{color:var(--ink)}
.sv26-tab.on::after{
  content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:4px;border-radius:999px;
  background:linear-gradient(90deg,var(--sv26-blue) 0 66%,var(--sv26-red) 66% 100%);
  box-shadow:0 0 16px rgba(10,162,255,.28);
}
.sv26-tab-badge{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;margin-left:9px;border-radius:999px;background:rgba(255,255,255,.06);font-size:10px}
.sv26-actions{
  flex:0 0 auto;min-width:240px;
  display:flex;justify-content:flex-end;align-items:flex-start;gap:10px;flex-wrap:wrap;
  padding:18px 0 0 16px;border-bottom:1px solid var(--line);
}
.sv26-actions .btn,.sv26-actions button,.sv26-inline-actions .btn,.sv26-inline-actions button{height:42px;border-radius:14px}
.sv26-accent-btn{
  background:linear-gradient(135deg,var(--sv26-blue),#28b4ff)!important;
  border:0!important;color:#fff!important;box-shadow:0 14px 28px rgba(10,162,255,.24)!important;
}
.sv26-content{display:flex;flex-direction:column;gap:18px}
.sv26-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.sv26-metric{
  padding:16px 18px;border-radius:20px;border:1px solid var(--line);background:var(--sv26-panel-2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
html[data-theme="day"] .sv26-metric{background:linear-gradient(145deg,#ffffff,#f3f8fc)}
.sv26-metric small{display:block;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}
.sv26-metric strong{font-size:28px;line-height:1;color:var(--ink)}
.sv26-card,.sv26-inline-panel,.sv26-doc-panel{
  border:1px solid var(--line);border-radius:24px;background:var(--sv26-panel);padding:20px 22px;
  box-shadow:0 18px 38px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.04);
  position:relative;overflow:hidden;
}
html[data-theme="day"] .sv26-card,html[data-theme="day"] .sv26-inline-panel,html[data-theme="day"] .sv26-doc-panel{background:linear-gradient(150deg,#ffffff,#f3f8fc)}
.sv26-card::before,.sv26-inline-panel::before,.sv26-doc-panel::before{
  content:"";position:absolute;left:22px;top:0;width:118px;height:4px;border-radius:999px;background:linear-gradient(90deg,var(--sv26-blue) 0 68%,var(--sv26-red) 68% 100%);
}
.sv26-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:16px}
.sv26-card-head h3{margin:0;font-size:20px}
.sv26-card-head p{margin:4px 0 0;color:var(--muted);font-size:13px}
.sv26-inline-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.sv26-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.sv26-kv-item{
  border:1px solid color-mix(in srgb,var(--line) 80%, transparent);border-radius:18px;padding:14px 16px;background:rgba(255,255,255,.03);
}
html[data-theme="day"] .sv26-kv-item{background:rgba(242,247,251,.9)}
.sv26-kv-item b{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.sv26-kv-item span{font-size:18px;font-weight:800;color:var(--ink);word-break:break-word}
.sv26-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.sv26-form-grid .field{margin:0}
.sv26-form-grid .field.full{grid-column:1 / -1}
.sv26-form-grid input,.sv26-form-grid select,.sv26-form-grid textarea{min-height:46px;border-radius:14px}
.sv26-form-grid textarea{min-height:118px;resize:vertical}
.sv26-entity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.sv26-entity-card{cursor:pointer}
.sv26-entity-card .sv26-card-head{margin-bottom:14px}
.sv26-entity-eyebrow{display:block;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.sv26-entity-title{display:block;font-size:28px;line-height:1.02;font-weight:900;color:var(--ink);text-transform:none}
.sv26-rowlist{display:grid;gap:12px}
.sv26-row{display:flex;justify-content:space-between;gap:14px;border-top:1px solid rgba(255,255,255,.06);padding-top:12px}
.sv26-row:first-child{border-top:0;padding-top:0}
.sv26-row div:first-child{color:var(--muted);font-size:12px;font-weight:700}
.sv26-row div:last-child{color:var(--ink);font-size:18px;font-weight:800;text-align:right}
.sv26-card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid rgba(255,255,255,.06);padding-top:14px;margin-top:16px;color:var(--muted);font-size:12px;font-weight:700}
.sv26-card-foot strong{color:var(--sv26-blue);font-size:13px}
.sv26-simple-list{display:grid;gap:12px}
.sv26-simple-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(140px,.75fr) auto;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03)}
html[data-theme="day"] .sv26-simple-row{background:#f7fbff}
.sv26-simple-row strong{display:block;color:var(--ink)}
.sv26-simple-row small{display:block;color:var(--muted)}
.sv26-linkish{color:var(--sv26-blue);font-weight:900;cursor:pointer}
.sv26-badge{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 10px;border-radius:999px;background:var(--sv26-blue-soft);color:var(--sv26-blue);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.sv26-doc-layout{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:16px}
.sv26-doc-list{display:grid;gap:10px}
.sv26-doc-item{padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:rgba(255,255,255,.03);cursor:pointer}
.sv26-doc-item b{display:block;font-size:15px;margin-bottom:4px}
.sv26-doc-item small{color:var(--muted)}
.sv26-doc-preview{min-height:360px;white-space:pre-wrap;line-height:1.55;color:var(--ink);font-size:14px}
.sv26-empty{padding:20px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}

.v17-admin-tab.on:after,.v17-subtab.on:after,.v21-company-tab-item.on .v21-company-tab-main::after{background:linear-gradient(90deg,var(--sv26-blue) 0 68%,var(--sv26-red) 68% 100%)!important;height:4px!important;border-radius:999px}
.v17-admin-tab.on,.v17-subtab.on,.v21-company-tab-main.on{color:var(--ink)!important}
.v21-card-foot strong,.v21-card-arrow,.domain-link,.v16-doc-item:hover b{color:var(--sv26-blue)!important}
.domain-actions .primary,.domain-actions .btn-primary,.v21-header-actions .btn-primary,.v16-machine-head-actions .btn-primary{background:linear-gradient(135deg,var(--sv26-blue),#28b4ff)!important;border:0!important;color:#fff!important}

@media(max-width:1100px){
  .sv26-tabsbar{flex-direction:column}
  .sv26-actions{padding:0 0 0 4px;border-bottom:0;justify-content:flex-start;min-width:0}
  .sv26-doc-layout{grid-template-columns:1fr}
}
@media(max-width:760px){
  .sv26-hero{padding:18px}
  .sv26-hero-main{align-items:flex-start}
  .sv26-hero-icon{width:74px;height:74px;flex-basis:74px;border-radius:22px}
  .sv26-title{font-size:40px}
  .sv26-tab{height:50px;padding:0 16px;font-size:10px}
  .sv26-simple-row{grid-template-columns:1fr;gap:6px}
}
@media(max-width:560px){
  .sv26-title{font-size:34px}
  .sv26-kv{grid-template-columns:1fr}
  .sv26-form-grid{grid-template-columns:1fr}
}

/* ===== couche 30 : sv-v28-action-matrix-flat-tables ===== */
/* ============================================================
   V28 — Action matrix + flat information tables
   Committee decision:
   - no nested cards for object information
   - one action zone driven by the selected tab
   - breadcrumb replaces redundant back buttons
   - SEDAM blue/red signature used as a restrained active marker
   ============================================================ */
:root{
  --sv28-blue:#0aa2ff;
  --sv28-red:#ff425c;
  --sv28-line:color-mix(in srgb,var(--line) 82%,transparent);
  --sv28-row-hover:color-mix(in srgb,var(--accent) 5%,transparent);
}

/* Flat object identity. No large rounded card around the header. */
.sv28-page{display:flex;flex-direction:column;gap:0;min-width:0}
.sv28-detail-head{
  display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:18px;align-items:center;
  min-height:132px;padding:20px 8px 18px;
  border:0;border-bottom:1px solid var(--sv28-line);background:transparent;
}
.sv28-object-icon{
  position:relative;width:76px;height:76px;display:grid;place-items:center;color:var(--sv28-blue);
}
.sv28-object-icon::after{
  content:"";position:absolute;left:9px;right:9px;bottom:0;height:4px;border-radius:999px;
  background:linear-gradient(90deg,var(--sv28-blue) 0 68%,var(--sv28-red) 68% 100%);
  box-shadow:0 0 14px rgba(10,162,255,.2);
}
.sv28-object-icon svg{width:56px;height:56px;filter:drop-shadow(0 7px 15px rgba(10,162,255,.18))}
.sv28-head-copy{min-width:0}
.sv28-breadcrumb{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:9px;color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.035em}
.sv28-breadcrumb button,.sv28-breadcrumb a{border:0;background:none;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:none}
.sv28-breadcrumb i{font-style:normal;opacity:.45}
.sv28-title{margin:0;color:var(--ink);font-size:clamp(34px,4vw,58px);line-height:.94;font-weight:900;letter-spacing:-.035em;text-transform:uppercase}
.sv28-subtitle{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.4;white-space:normal}
.sv28-mobile-menu{display:none}

/* Tabs and actions share one horizontal rail. The action zone has no independent floating box. */
.sv28-tabsline{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:18px;
  min-height:62px;border-bottom:1px solid var(--sv28-line);
}
.sv28-tabs{display:flex;align-items:stretch;overflow:auto;scrollbar-width:none;min-width:0}
.sv28-tabs::-webkit-scrollbar{display:none}
.sv28-tab{
  position:relative;flex:0 0 auto;min-height:62px;padding:0 22px;border:0;background:transparent;color:var(--muted);cursor:pointer;
  font-size:11px;font-weight:900;letter-spacing:.075em;text-transform:uppercase;white-space:nowrap;
}
.sv28-tab:hover{color:var(--ink)}
.sv28-tab.on{color:var(--ink)}
.sv28-tab.on::after{
  content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:4px;border-radius:999px;
  background:linear-gradient(90deg,var(--sv28-blue) 0 68%,var(--sv28-red) 68% 100%);
  box-shadow:0 0 15px rgba(10,162,255,.18);
}
.sv28-tab-count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;margin-left:8px;border-radius:999px;background:color-mix(in srgb,var(--field) 88%,transparent);color:var(--muted);font-size:10px;letter-spacing:0}
.sv28-tab.on .sv28-tab-count{color:var(--ink);background:color-mix(in srgb,var(--accent) 10%,var(--field))}
.sv28-action-host{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:150px;padding:9px 0 9px 12px}
.sv28-action-host:empty{min-width:0;padding-left:0}
.sv28-action{
  height:42px;min-width:42px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid var(--line);border-radius:12px;background:var(--field);color:var(--ink);cursor:pointer;
  font-size:11px;font-weight:900;letter-spacing:.01em;white-space:nowrap;box-shadow:none;
}
.sv28-action svg{width:17px;height:17px}
.sv28-action:hover{border-color:color-mix(in srgb,var(--sv28-blue) 42%,var(--line));color:var(--sv28-blue)}
.sv28-action.primary{border-color:transparent;background:linear-gradient(135deg,var(--sv28-blue),#2eb5ff);color:#fff;box-shadow:0 10px 24px rgba(10,162,255,.18)}
.sv28-action.primary:hover{color:#fff;transform:translateY(-1px)}
.sv28-action.danger{color:var(--sv28-red)}
.sv28-content{padding:20px 0 2px;min-width:0}

/* Information is tabular, compact and flat. No cards inside a card. */
.sv28-info-wrap{border-top:1px solid var(--sv28-line);border-bottom:1px solid var(--sv28-line);background:transparent;overflow:hidden}
.sv28-info-table{width:100%;border-collapse:collapse;table-layout:fixed;background:transparent}
.sv28-info-table th,.sv28-info-table td{padding:17px 18px;text-align:left;vertical-align:middle;border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent)}
.sv28-info-table tr:last-child th,.sv28-info-table tr:last-child td{border-bottom:0}
.sv28-info-table th{width:31%;color:var(--muted);font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.sv28-info-table td{color:var(--ink);font-size:18px;font-weight:850;line-height:1.35;word-break:break-word}
.sv28-info-table tr:hover{background:var(--sv28-row-hover)}
.sv28-info-table input,.sv28-info-table select,.sv28-info-table textarea{
  width:100%;min-height:44px;border:1px solid color-mix(in srgb,var(--line) 90%,transparent);border-radius:10px;background:var(--field);color:var(--ink);
  padding:9px 11px;font:inherit;font-size:15px;font-weight:750;outline:none;
}
.sv28-info-table textarea{min-height:92px;resize:vertical}
.sv28-info-table input:focus,.sv28-info-table select:focus,.sv28-info-table textarea:focus{border-color:color-mix(in srgb,var(--sv28-blue) 55%,var(--line));box-shadow:0 0 0 3px rgba(10,162,255,.08)}
.sv28-readonly-note{color:var(--muted);font-size:11px;font-weight:650}

/* Lists inside a tab stay as first-level cards; there is no surrounding card. */
.sv28-entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.sv28-empty{padding:24px 4px;color:var(--muted);font-size:13px;border-bottom:1px solid var(--sv28-line)}

/* Technical tables: variables and model values are also flat. */
.sv28-data-list{border-top:1px solid var(--sv28-line);border-bottom:1px solid var(--sv28-line)}
.sv28-data-row{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(120px,.75fr) minmax(120px,.75fr) minmax(100px,.55fr) auto;gap:14px;align-items:center;min-height:62px;padding:11px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent)}
.sv28-data-row:last-child{border-bottom:0}
.sv28-data-row:hover{background:var(--sv28-row-hover)}
.sv28-data-row strong{display:block;color:var(--ink);font-size:15px}
.sv28-data-row small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.sv28-data-cell{color:var(--ink);font-size:14px;font-weight:750}
.sv28-data-cell.muted{color:var(--muted)}
.sv28-data-row input,.sv28-data-row select{width:100%;height:40px;border:1px solid var(--line);border-radius:9px;background:var(--field);color:var(--ink);padding:0 10px}
.sv28-data-edit-stack{display:grid;gap:7px}.sv28-data-edit-stack input{min-width:0}.sv28-data-row.editing{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.sv28-inline-ops{display:flex;gap:8px;justify-content:flex-end}
.sv28-inline-ops button{height:36px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--field);color:var(--ink);font-size:10px;font-weight:850}

/* Documentation stays a workspace, but the add action lives in the tab rail. */
.sv28-doc-layout{display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr);gap:16px}
.sv28-doc-list{border-right:1px solid var(--sv28-line);padding-right:16px}
.sv28-doc-item{padding:14px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent);cursor:pointer}
.sv28-doc-item:first-child{border-top:1px solid color-mix(in srgb,var(--line) 58%,transparent)}
.sv28-doc-item:hover{background:var(--sv28-row-hover)}
.sv28-doc-item b{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}
.sv28-doc-item small{color:var(--muted);font-size:10px}
.sv28-doc-preview{min-height:360px;padding:16px 8px;white-space:pre-wrap;color:var(--ink);font-size:14px;line-height:1.6}

/* Remove redundant V26 visual nesting when a V28 detail is active. */
.content:has(> .sv28-page) .sv24-viewbar,.content:has(> .sv28-page) .sv24-secondary-actions{display:none!important}
.content:has(> .sv28-page) .sv26-card,.content:has(> .sv28-page) .sv26-metrics,.content:has(> .sv28-page) .sv26-kv{box-shadow:none}

html[data-theme="day"] .sv28-object-icon svg{filter:drop-shadow(0 4px 10px rgba(0,133,226,.09))}
html[data-theme="day"] .sv28-info-wrap,html[data-theme="day"] .sv28-data-list{background:rgba(255,255,255,.32)}

@media(max-width:1180px){.sv28-entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){
  body[data-role] .content:has(> .sv28-page){padding-top:0!important}
  .sv28-detail-head{
    position:sticky;top:0;z-index:155;grid-template-columns:58px minmax(0,1fr) 46px;gap:10px;min-height:72px;padding:9px 14px;
    background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px) saturate(125%);-webkit-backdrop-filter:blur(18px) saturate(125%);
    box-shadow:0 8px 24px rgba(0,0,0,.08)
  }
  .sv28-object-icon{width:52px;height:52px}.sv28-object-icon svg{width:39px;height:39px}.sv28-object-icon::after{left:6px;right:6px;height:3px}
  .sv28-breadcrumb{display:none}
  .sv28-title{font-size:19px;line-height:1.05;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sv28-subtitle{font-size:10px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sv28-mobile-menu{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:10px;background:var(--field);color:var(--ink);padding:0}
  .sv28-mobile-menu svg{width:20px;height:20px}
  .sv28-tabsline{grid-template-columns:1fr;gap:0}
  .sv28-tabs{border-bottom:1px solid var(--sv28-line)}
  .sv28-action-host{min-width:0;padding:10px 0;justify-content:flex-end;border-bottom:1px solid var(--sv28-line)}
  .sv28-info-table th{width:38%}
  .sv28-doc-layout{grid-template-columns:1fr}.sv28-doc-list{border-right:0;padding-right:0;border-bottom:1px solid var(--sv28-line);padding-bottom:12px}
  .sv28-data-row{grid-template-columns:1fr 1fr;gap:8px 12px}
}
@media(max-width:720px){
  .sv28-entity-grid{grid-template-columns:1fr}
  .sv28-tab{min-height:54px;padding:0 15px;font-size:10px}.sv28-tab.on::after{left:12px;right:12px}
  .sv28-action{height:40px;padding:0 12px}
  .sv28-info-table,.sv28-info-table tbody,.sv28-info-table tr,.sv28-info-table th,.sv28-info-table td{display:block;width:100%}
  .sv28-info-table tr{padding:13px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent)}
  .sv28-info-table tr:last-child{border-bottom:0}
  .sv28-info-table th,.sv28-info-table td{border:0;padding:3px 12px}
  .sv28-info-table th{font-size:10px}.sv28-info-table td{font-size:16px}
  .sv28-data-row{grid-template-columns:1fr}
  .sv28-inline-ops{justify-content:flex-start}
}
