/* Control Tower · the side menu (version A of the menu round, picked by Alex on Oct 22: « Je choisis A définitivement…
   le bouton pour changer de plateforme en mauve »). side.js draws it on every page and hides the old header (kept in the page: the
   tour, Resync and the language links still use it). Light / dark: the page's tokens follow :root[data-theme], set in <head>. */
:root{--gsw:252px;
  --gs-bg:#FBFAFB;--gs-fg:#201A21;--gs-muted:#6D5F6F;--gs-faint:#A39BA4;--gs-line:#E6E3E7;--gs-line2:#CFC9D1;--gs-hover:#F3F1F4;--gs-sel:#ECE9EE;--gs-surface:#FFFFFF;--gs-mark:#4B2766;
  --gs-shadow:0 16px 40px -16px rgba(32,26,33,.35),0 2px 6px rgba(32,26,33,.06)}
:root.gs-col{--gsw:68px}
:root[data-theme="dark"]{--gs-bg:#1A151B;--gs-fg:#FFFFFF;--gs-muted:#B3A9B4;--gs-faint:#857986;--gs-line:#3A323B;--gs-line2:#4A4150;--gs-hover:#332B33;--gs-sel:#3D343E;--gs-surface:#2A2329;--gs-mark:#D9C4EA;--gs-shadow:0 16px 40px -14px rgba(0,0,0,.7)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--gs-bg:#1A151B;--gs-fg:#FFFFFF;--gs-muted:#B3A9B4;--gs-faint:#857986;--gs-line:#3A323B;--gs-line2:#4A4150;--gs-hover:#332B33;--gs-sel:#3D343E;--gs-surface:#2A2329;--gs-mark:#D9C4EA;--gs-shadow:0 16px 40px -14px rgba(0,0,0,.7)}}
:root[data-theme="dark"] body{background:var(--bg,#201A21)}

/* the page makes room; the old header goes (it stays in the DOM) */
.gs-on body{padding-left:var(--gsw)!important}
.gs-on body header.top.fph{display:none!important}
.gs-on body .qbar{top:0!important}
.gs-on body .mapcard{top:12px!important}
.gs-on body .gx-last{top:18px!important}
.gs-on body .bk,.gs-on body .bx-fbar,.gs-on body .fb-stack,.gs-on body .gn-toast,.gs-on body .gm-toast,.gs-on body .au-toast,.gs-on body .toast{left:calc(50% + var(--gsw) / 2)!important}
.gs-on body .bx-fbar{width:min(920px,calc(100vw - var(--gsw) - 24px))!important}
.gs-on body .fb-stack{width:min(560px,calc(100vw - var(--gsw) - 24px))!important}
.gs-on body .bk{max-width:calc(100vw - var(--gsw) - 24px)}

.gside,.gs-top,.gs-pop,.gs-tip{font-family:Figtree,system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;box-sizing:border-box}
.gside *,.gs-top *,.gs-pop *{box-sizing:border-box}
.gside{position:fixed;left:0;top:0;bottom:0;width:var(--gsw);z-index:60;display:flex;flex-direction:column;gap:8px;padding:12px 10px 10px;background:var(--gs-bg);border-right:1px solid var(--gs-line);color:var(--gs-fg);font-size:14px;line-height:1.4;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.gside button,.gs-top button,.gs-pop button{font:inherit;color:inherit}
.gside a,.gs-top a,.gs-pop a{color:inherit;text-decoration:none}
.gs-ico{display:block;flex-shrink:0}
.gs-brand{display:flex;align-items:center;gap:9px;height:34px;padding:0 2px 0 6px;font-weight:700;font-size:16.5px;letter-spacing:-.01em}
.gs-brand .mk svg{width:22px;height:22px;display:block}
.gs-brand .sp{flex:1}
.gs-ib{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:8px;background:none;cursor:pointer;color:var(--gs-muted)}
.gs-ib:hover{background:var(--gs-hover);color:var(--gs-fg)}
.gs-shut{display:none}
/* the platform switch: purple (Alex) */
.gs-pfb{display:flex;align-items:center;gap:8px;width:100%;min-height:46px;padding:5px 10px 5px 12px;border:1px solid #4B2766;border-radius:10px;background:#4B2766;color:#fff;cursor:pointer;text-align:left}
.gs-pfb:hover,.gs-pfb[aria-expanded="true"]{background:#5B3279;border-color:#5B3279}
.gs-pfb .tx{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.2}
.gs-pfb .k{font:500 10px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;color:#D9C4EA}
.gs-pfb .nm{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-pfb .gs-ico{color:#D9C4EA}
.gs-pfb .ab{display:none;font:700 12px 'JetBrains Mono',ui-monospace,monospace;color:#fff}
:root[data-theme="dark"] .gs-pfb{border-color:#6B4489}
/* the pages */
.gs-nav{display:flex;flex-direction:column;gap:1px;margin-top:6px}
.gs-gh{display:flex;align-items:center;font:600 12px Figtree,system-ui,sans-serif;color:var(--gs-muted);padding:14px 10px 5px;height:34px}
.gs-it{position:relative;display:flex;align-items:center;gap:11px;height:36px;padding:0 10px;border-radius:8px;color:var(--gs-muted);font-weight:500;font-size:14px}
.gs-it:hover{background:var(--gs-hover);color:var(--gs-fg)}
.gs-it[aria-current="page"]{background:var(--gs-sel);color:var(--gs-fg);font-weight:600}
.gs-it[aria-current="page"]::before{content:'';position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--gs-mark)}
.gs-it[aria-current="page"] .gs-ico{color:var(--gs-mark)}
.gs-it .lb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* the bottom: Demo, Resync, the sheet, EN | FR, Light | Dark */
.gs-foot{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--gs-line)}
.gs-row{display:flex;gap:6px;align-items:center}
.gs-ob{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 10px;border:1.5px solid #BFE27A;border-radius:8px;background:var(--gs-surface);cursor:pointer;font-weight:600;font-size:13px;white-space:nowrap;color:var(--gs-fg)}
.gs-ob:hover{background:#F4FBE3}
:root[data-theme="dark"] .gs-ob{border-color:rgba(213,240,152,.55)}
:root[data-theme="dark"] .gs-ob:hover{background:rgba(213,240,152,.08)}
.gs-read{font-size:12px;color:var(--gs-muted);padding:0 2px}
.gs-read a{text-decoration:underline!important;text-underline-offset:2px;text-decoration-color:var(--gs-line2)!important}
.gs-seg{display:inline-flex;border:1px solid var(--gs-line);border-radius:9px;padding:2px;background:var(--gs-surface);gap:2px}
.gs-seg>*{border:0;background:none;border-radius:7px;padding:4px 9px;font:600 12px Figtree,system-ui,sans-serif;color:var(--gs-muted);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.gs-seg>[aria-pressed="true"],.gs-seg>[aria-current="page"]{background:var(--gs-fg);color:var(--gs-bg)}
.gs-seg .mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11.5px}
.gside :focus-visible,.gs-top :focus-visible,.gs-pop :focus-visible{outline:2px solid var(--gs-fg);outline-offset:2px}
/* folded to icons */
.gs-col .gside{padding:12px 8px 10px;align-items:center}
.gs-col .gs-brand{padding:0;justify-content:center;flex-direction:column;height:auto;gap:8px}
.gs-col .gs-brand .lb,.gs-col .gs-brand .sp,.gs-col .gs-pfb .tx,.gs-col .gs-pfb>.gs-ico,.gs-col .gs-it .lb,.gs-col .gs-gh .t,.gs-col .gs-read,.gs-col .gs-ob .lb{display:none}
.gs-col .gs-pfb{width:44px;height:40px;min-height:0;padding:0;justify-content:center}
.gs-col .gs-pfb .ab{display:block}
.gs-col .gs-nav{width:100%}
.gs-col .gs-it{justify-content:center;padding:0;height:40px}
.gs-col .gs-it[aria-current="page"]::before{left:-8px}
.gs-col .gs-gh{height:14px;padding:6px 8px;justify-content:center}
.gs-col .gs-gh::after{content:'';display:block;width:24px;height:1px;background:var(--gs-line)}
.gs-col .gs-foot{align-items:center;width:100%}
.gs-col .gs-row{flex-direction:column}
.gs-col .gs-ob{width:44px;padding:0;flex:none}
.gs-col .gs-seg{flex-direction:column}
.gs-col .gs-seg .w{display:none}
/* menus + tooltips */
.gs-pop{position:fixed;z-index:200;min-width:280px;max-width:min(360px,calc(100vw - 16px));padding:6px;background:var(--gs-surface);border:1px solid var(--gs-line2);border-radius:12px;box-shadow:var(--gs-shadow);color:var(--gs-fg);font-size:14px}
.gs-pop .t{font:500 10.5px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--gs-faint);padding:8px 10px 6px}
.gs-pop .row{display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:10px;align-items:center;width:100%;padding:7px 8px;border:0;border-radius:8px;background:none;text-align:left;cursor:pointer;color:var(--gs-fg)}
.gs-pop .row:hover{background:var(--gs-hover)}
.gs-pop .row.on{background:var(--gs-sel)}
.gs-pop div.row{cursor:default}
.gs-pop .row .tx{display:flex;flex-direction:column;min-width:0}
.gs-pop .row b{font-weight:600;font-size:13.5px}
.gs-pop .row small{font-size:12px;color:var(--gs-muted)}
.gs-pop .row em{font-style:normal;color:var(--gs-muted);text-align:center}
.gs-pop .ab{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font:700 11px 'JetBrains Mono',ui-monospace,monospace;background:#D5F098;color:#201A21}
.gs-pop .ab.all{background:var(--gs-sel);color:var(--gs-muted);font-size:10px}
.gs-pop .ab.add{background:none;border:1.5px dashed var(--gs-line2);color:var(--gs-muted);font-size:15px}
.gs-pop .ab.pf{background:#4B2766;color:#D5F098}
.gs-pop .sep{height:1px;background:var(--gs-line);margin:6px 4px}
.gs-pop.tr .tr-in a,.gs-pop.tr .tr-in button{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--gs-fg);font:600 13px Figtree,system-ui,sans-serif;cursor:pointer}
.gs-pop.tr .tr-in a small,.gs-pop.tr .tr-in button small{display:block;font-weight:400;font-size:12px;color:var(--gs-muted);margin-top:1px}
.gs-pop.tr .tr-in a:hover,.gs-pop.tr .tr-in button:hover{background:var(--gs-hover)}
.gs-pop.tr .tr-in .sep{height:1px;background:var(--gs-line);margin:4px 6px}
.gs-tip{position:fixed;z-index:210;max-width:260px;padding:8px 10px;border-radius:9px;background:#201A21;color:#fff;font-size:12.5px;line-height:1.35;box-shadow:0 10px 24px -12px rgba(0,0,0,.5);pointer-events:none;display:flex;flex-direction:column;gap:2px}
.gs-tip b{font-weight:600;font-size:13px}
.gs-tip span{color:rgba(255,255,255,.75)}
:root[data-theme="dark"] .gs-tip{background:#F2EEF3;color:#201A21}
:root[data-theme="dark"] .gs-tip span{color:#5A4E5C}
/* the phone: a top bar (it scrolls away, as the old header did), ☰ opens the menu as a drawer */
.gs-top{display:none}
.gs-scrim{position:fixed;inset:0;background:rgba(20,8,24,.45);z-index:59}
.gs-scrim[hidden]{display:none}
@media (max-width:760px){
  :root,:root.gs-col{--gsw:0px}
  .gs-top{display:flex;align-items:center;gap:8px;height:56px;padding:0 10px;background:var(--gs-bg);border-bottom:1px solid var(--gs-line);color:var(--gs-fg);position:relative;z-index:5}
  .gs-top .pg{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .gs-top .sp{flex:1}
  .gs-top .gs-ib{width:44px;height:44px;border:1px solid var(--gs-line);background:var(--gs-surface)}
  .gs-top .gs-th{width:38px;height:38px}
  .gside{width:min(300px,86vw);transform:translateX(-104%);transition:transform .2s ease,visibility 0s .2s;visibility:hidden;box-shadow:var(--gs-shadow)}
  .gside.open{transform:none;visibility:visible;transition:transform .2s ease}
  .gs-shut{display:inline-flex}
  .gs-colb{display:none}
  .gs-col .gside{padding:12px 10px 10px;align-items:stretch}
}
@media print{.gside,.gs-top{display:none!important}.gs-on body{padding-left:0!important}}
.gs-gh.gs-set{height:12px;padding:6px 10px 6px}.gs-gh.gs-set::after{content:"";display:block;flex:1;height:1px;background:var(--gs-line)}
/* the buttons keep their own ink (the page's « button { color: inherit } » would win) */
.gside .gs-pfb{color:#fff}

/* gestion-cas 05 (Oct 24): the count on « Legal monitoring » */
.gs-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#D5F098;color:#201A21;box-shadow:0 0 0 1px rgba(32,26,33,.12);font:700 11px/20px var(--sans,Figtree,system-ui);text-align:center}
.gs-col .gs-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;line-height:16px;font-size:10px;padding:0 4px}

/* the platform switch, the same on the three platforms (Alex, Oct 25): the console's icons, its rows (name · what it does · address) */
.gs-pfb .ab.pfi{display:block;width:22px;height:22px;flex:none;line-height:0;margin-left:-2px}
.gs-pfb .ab.pfi svg{display:block;width:22px;height:22px;border-radius:6px;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.gs-pfb:has(.pfi){gap:7px;padding-left:10px}
.gs-col .gs-pfb .ab.pfi{display:block}
.gs-pop .ab.pfi{width:34px;height:34px;background:none;line-height:0}
.gs-pop .ab.pfi svg{display:block;width:34px;height:34px}
.gs-pop .row.pfrow{grid-template-columns:34px minmax(0,1fr) 18px;align-items:start;gap:12px;padding:10px}
.gs-pop .row.pfrow em{padding-top:2px}
.gs-pop .row.pfrow u{text-decoration:none;font:500 11px 'JetBrains Mono',ui-monospace,monospace;color:var(--gs-muted);margin-top:3px;opacity:.85}
.gs-pop .t.pfoot{text-transform:none;letter-spacing:0;font-family:Figtree,system-ui,sans-serif;font-size:12px}

/* ---------- view switches (Alex, Oct 25: « les menus où on a quelques options de swap de vue… juste un peu plus obvious »): ONE
   segmented control for the views on every page — a grey track, the view shown in ink (dark mode: in white). Views only, never the
   filters (Pipeline, FR + EN…). Same rule on Video production (kit/base.css). ---------- */
.vsw.vsw{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--border);border-radius:10px;background:var(--track,#EEEBEF);font-size:13px}
.vsw.vsw button{height:30px;padding:0 13px;border:0;border-radius:7px;background:none;color:var(--muted);font:600 13px Figtree,system-ui,sans-serif;cursor:pointer;white-space:nowrap;box-shadow:none}
.vsw.vsw button:hover{color:var(--fg);background:rgba(255,255,255,.75)}
.vsw.vsw button.on,.vsw.vsw button[aria-selected="true"],.vsw.vsw button[aria-pressed="true"]{background:#201A21;color:#fff}
.vsw.vsw button:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.vsw-l{font:500 10.5px 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:8px;white-space:nowrap}
:root[data-theme="dark"] .vsw.vsw{background:rgba(255,255,255,.06)}
:root[data-theme="dark"] .vsw.vsw button:hover{background:rgba(255,255,255,.1)}
:root[data-theme="dark"] .vsw.vsw button.on,:root[data-theme="dark"] .vsw.vsw button[aria-selected="true"],:root[data-theme="dark"] .vsw.vsw button[aria-pressed="true"]{background:#fff;color:#201A21}

/* C5-01 (final tests, Oct 27): who is signed in, at the top of the menu's foot */
.gs-me{display:flex;align-items:center;gap:8px;padding:4px 6px 6px;min-width:0}
.gs-me .gs-av{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--gs-sel,#ECE9EE);color:var(--gs-fg,#201A21);font:700 11px/1 Figtree,system-ui,sans-serif}
.gs-me .lb{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.gs-me .lb b{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gs-me .lb small{font-size:11px;color:var(--gs-muted,#6D5F6F)}
.gs-col .gs-me{justify-content:center;padding:4px 0}
.gs-col .gs-me .lb{display:none}
