/* © 2026 Guy Cardinal (Beedy — en voie d'incorporation). Tous droits réservés. Code propriétaire, usage sous licence uniquement. */
/* ═══════════════════════════════════════════════════════════════════════
   POLARIS NIGHT-OPS SKIN — the app wears the product-page identity.
   Loaded LAST (after scheduler.css + polaris-overrides.css) so it wins.
   One deliberate world: deep navy mission-control, cyan/plum/amber signals,
   JetBrains Mono instrumentation. Derived from polaris.beedy.ca (approved).
   ═══════════════════════════════════════════════════════════════════════ */

/* ── LOGIN: first impression = the aurora (video) ─────────────────── */
#login-overlay {
  background: url('../images/bg/hero-aurora.jpg') center 62%/cover no-repeat #06090f !important;
}
#login-overlay .lo-bgvideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
#login-overlay::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse 640px 520px at 50% 46%, rgba(6,9,15,.66), rgba(6,9,15,.28) 60%, rgba(6,9,15,.16)),
              linear-gradient(180deg, rgba(6,9,15,.35), transparent 30%, transparent 70%, rgba(6,9,15,.55));
}
#login-overlay .lo-card {
  position: relative;
  background: rgba(11,17,25,.78) !important;
  backdrop-filter: blur(14px);
  border: 1px solid rgba(120,200,220,.22) !important;
  border-radius: 16px !important;
  box-shadow: 0 24px 70px rgba(0,0,0,.6), 0 0 60px rgba(58,217,217,.08) !important;
}
#login-overlay .lo-logos .beedy {
  color: #3ad9d9 !important;
  font-family: 'JetBrains Mono', monospace !important;
  letter-spacing: .3em !important;
}
#login-overlay .lo-logos .beedy::before { content: "✶ "; color: #e6eef7; }
#login-overlay .lo-logos .beedy::after  { content: " ✶"; color: #e6eef7; }
#login-overlay h2 { font-family: 'Playfair Display', serif !important; font-weight: 700 !important; }
#login-overlay input {
  background: rgba(6,9,15,.7) !important;
  border: 1px solid rgba(120,200,220,.25) !important;
  border-radius: 8px !important;
}
#login-overlay input:focus { outline: 2px solid #3ad9d9 !important; border-color: #3ad9d9 !important; }
#login-overlay button[type="submit"] {
  background: #3ad9d9 !important;
  color: #06090f !important;
  border: 0 !important;
  border-radius: 8px !important;
  font-weight: 700 !important;
  box-shadow: 0 6px 24px rgba(58,217,217,.25) !important;
  transition: transform .15s !important;
}
#login-overlay button[type="submit"]:hover { transform: translateY(-1px); }

/* ── HERO BANNER: the aurora — Polaris's visual signature ─────────── */
/* This is the continuity thread (login video → beedy.ca → here). It has its
   own minimize button (▴ → body.hero-minimized) for operators who want the
   grid dense — density is the USER'S choice, not ours. Don't slim it again. */
.hero-video { display: none !important; }
.hero-banner {
  background: url('../images/bg/hero-aurora.jpg') center 62%/cover no-repeat #06090f !important;
  height: 118px !important;
  min-height: 118px !important;
  border-bottom: 1px solid rgba(120,200,220,.28) !important;
}
body.hero-minimized .hero-banner { height: auto !important; min-height: 0 !important; }
.hero-overlay {
  background: linear-gradient(90deg, rgba(6,9,15,.72), rgba(6,9,15,.25) 55%, rgba(6,9,15,.1)) !important;
}
.hero-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  letter-spacing: -.01em !important;
  text-shadow: 0 2px 18px rgba(6,9,15,.9) !important;
}

/* ── SCHEDULER LEGEND: what the codes mean ────────────────────────── */
.sched-legend {
  display: flex; align-items: center; flex-wrap: wrap; gap: 16px;
  padding: 9px 22px; background: #0a0f18;
  border-bottom: 1px solid rgba(120,200,220,.1);
  font-family: 'JetBrains Mono', monospace; font-size: .68rem;
}
.slg-title { color: #576a80; letter-spacing: .18em; text-transform: uppercase; font-size: .6rem; }
.slg-item { display: inline-flex; align-items: center; gap: 7px; color: #8ba0b6; }
.slg-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 18px; padding: 0 5px; border-radius: 4px;
  font-style: normal; font-weight: 700; font-size: .62rem;
}
.slg-chip.j    { background: rgba(58,217,217,.17);  color: #4fe3e3; box-shadow: inset 0 0 0 1px rgba(58,217,217,.3); }
.slg-chip.n    { background: rgba(192,132,252,.17); color: #cf9cff; box-shadow: inset 0 0 0 1px rgba(192,132,252,.28); }
.slg-chip.arr  { background: rgba(67,221,133,.15);  color: #43dd85; box-shadow: inset 0 0 0 1px rgba(67,221,133,.28); font-size:.55rem; }
.slg-chip.dep  { background: rgba(255,188,87,.15);  color: #ffbc57; box-shadow: inset 0 0 0 1px rgba(255,188,87,.28); font-size:.55rem; }
.slg-chip.x    { background: rgba(255,90,110,.16);  color: #ff5a6e; box-shadow: inset 0 0 0 1px rgba(255,90,110,.3); }
.slg-chip.miss { background: rgba(255,90,110,.14);  box-shadow: inset 0 0 0 1px rgba(255,90,110,.45); min-width: 18px; }
:root[data-theme="light"] .sched-legend { background: #f4ede0; border-color: rgba(70,55,30,.12); }
:root[data-theme="light"] .slg-item { color: #5b5240; }
.hero-powered {
  font-family: 'JetBrains Mono', monospace !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #3ad9d9 !important;
}
.hero-powered strong { color: #e6eef7 !important; }

/* ── THE GRID: from Excel 2003 to mission control ─────────────────── */
.scheduler-grid thead th {
  background: #0b1018 !important;
  color: #8aa0b8 !important;
  border: 1px solid rgba(120,200,220,.14) !important;
  font-family: 'JetBrains Mono', monospace !important;
  letter-spacing: .03em;
}
.scheduler-grid thead .dow-row th { background: #0e141e !important; color: #8aa0b8 !important; }
/* Today column highlight — cyan, not the old blue */
.scheduler-grid th.is-today {
  background: rgba(58,217,217,.22) !important;
  color: #06090f !important;
  box-shadow: inset 0 0 0 1px rgba(58,217,217,.5) !important;
}
.scheduler-grid td.is-today { box-shadow: inset 1px 0 0 rgba(58,217,217,.35), inset -1px 0 0 rgba(58,217,217,.35) !important; }
/* Weekend day columns get a faint cool wash so the week reads at a glance */
.scheduler-grid td.shift-cell.weekend { background: #070b11 !important; }
.scheduler-grid th.weekend { background: #0e141e !important; }
.scheduler-grid thead .th-project,
.scheduler-grid thead .th-poste,
.scheduler-grid thead .th-employee { background: #0b1018 !important; }

/* ── MAP (carte): unified scale + true light theme ────────────────── */
/* Leaflet layer switcher (Satellite/Plan) — console glass, not white box */
.leaflet-control-layers {
  background: rgba(10,15,24,.92) !important;
  border: 1px solid rgba(120,190,220,.2) !important;
  border-radius: 10px !important;
  color: #e7eef7 !important;
  box-shadow: 0 8px 30px rgba(0,0,0,.45) !important;
}
.leaflet-control-layers-toggle {
  background-color: rgba(10,15,24,.92) !important;
  border-radius: 10px !important;
  filter: invert(1) hue-rotate(180deg);
}
.leaflet-control-layers label { font-family: 'JetBrains Mono', monospace; font-size: .72rem; }
.leaflet-control-layers input:checked + span { color: #4fe3e3; }
:root[data-theme="light"] .leaflet-control-layers {
  background: rgba(251,246,234,.95) !important;
  border-color: rgba(70,55,30,.25) !important;
  color: #1c1a14 !important;
}
:root[data-theme="light"] .leaflet-control-layers input:checked + span { color: #0e6e7e; }

/* dark: fold panel blacks into the scale, purge the red count badge */
#mapUnassignedPanel, .unassigned-panel { background: rgba(10,15,24,.94) !important; border-color: rgba(120,190,220,.14) !important; }
.unassigned-count { background: rgba(67,224,224,.18) !important; color: #4fe3e3 !important; }
.unassigned-item { background: #0b1018 !important; border-color: rgba(120,190,220,.1) !important; }
.unassigned-avatar { background: #3ad9d9 !important; color: #06080e !important; }
.map-hint, .map-drag-hint { background: rgba(10,15,24,.92) !important; color: #8ba0b6 !important; border: 1px solid rgba(120,190,220,.14) !important; }
/* light: the map is no longer a black hole in a cream app */
:root[data-theme="light"] #mapUnassignedPanel,
:root[data-theme="light"] .unassigned-panel { background: rgba(251,246,234,.96) !important; border-color: rgba(70,55,30,.2) !important; }
:root[data-theme="light"] .unassigned-header h4 { color: #1c1a14 !important; }
:root[data-theme="light"] .unassigned-count { background: rgba(14,110,126,.14) !important; color: #0e6e7e !important; }
:root[data-theme="light"] .unassigned-item { background: #f4ede0 !important; border-color: rgba(70,55,30,.15) !important; }
:root[data-theme="light"] .unassigned-item .unassigned-name { color: #1c1a14 !important; }
:root[data-theme="light"] .unassigned-item .unassigned-role { color: #85795e !important; }
:root[data-theme="light"] .unassigned-avatar { background: #0e6e7e !important; color: #fff !important; }
:root[data-theme="light"] .unassigned-empty { color: #85795e !important; }
:root[data-theme="light"] .map-hint, :root[data-theme="light"] .map-drag-hint { background: rgba(251,246,234,.94) !important; color: #5b5240 !important; border: 1px solid rgba(70,55,30,.2) !important; }
:root[data-theme="light"] .map-date-toolbar { background: rgba(251,246,234,.94) !important; border: 1px solid rgba(70,55,30,.2) !important; }
:root[data-theme="light"] .map-date-btn { background: #f4ede0 !important; color: #1c1a14 !important; border-color: rgba(70,55,30,.2) !important; }
:root[data-theme="light"] .map-date-btn-active { background: #0e6e7e !important; color: #fff !important; }
:root[data-theme="light"] .map-date-input { background: #f4ede0 !important; color: #1c1a14 !important; border-color: rgba(70,55,30,.2) !important; }

/* frozen left columns — unified scale (were purple-navy #111a26/#0d1522/#0f1822) */
.scheduler-grid .col-project {
  background: #0b1018 !important; color: #e7eef7 !important;
  border: 1px solid rgba(120,190,220,.12) !important;
}
/* the MERGED project cell (scheduler.css hard-codes #1a1a2e — the purple) */
.scheduler-grid td.project-cell {
  background: #0b1018 !important;
  color: #e7eef7 !important;
  border: 1px solid rgba(120,190,220,.14) !important;
}
:root[data-theme="light"] .scheduler-grid td.project-cell {
  background: #efe6d3 !important;
  color: #1c1a14 !important;
  border: 1px solid rgba(70,55,30,.18) !important;
}
.scheduler-grid .col-poste {
  background: #0b1018 !important; color: #8ba0b6 !important;
  border: 1px solid rgba(120,190,220,.10) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: .62rem !important;
  text-transform: uppercase; letter-spacing: .02em;
}
.scheduler-grid .col-employee {
  background: #0b1018 !important; color: #e7eef7 !important;
  border: 1px solid rgba(120,190,220,.10) !important;
}

.scheduler-grid td.shift-cell {
  background: #0a0f18 !important;
  border: 1px solid rgba(120,200,220,.07) !important;
  color: #33415a;
}
.scheduler-grid td.shift-cell:hover {
  outline: 2px solid #3ad9d9 !important;
  outline-offset: -2px;
}

/* Shift signal palette — soft fills + colored glyphs, night-legible */
.shift-J { background: rgba(58,217,217,.34) !important;  color: #b7f6f6 !important; box-shadow: inset 0 0 0 1px rgba(58,217,217,.5); }
.shift-N { background: rgba(192,132,252,.34) !important; color: #e9d5ff !important; box-shadow: inset 0 0 0 1px rgba(192,132,252,.5); }
.shift-V { background: rgba(61,220,122,.30) !important;  color: #b5f2cc !important; box-shadow: inset 0 0 0 1px rgba(61,220,122,.48); }
.shift-A { background: rgba(61,220,122,.30) !important;  color: #b5f2cc !important; }
.shift-R { background: rgba(255,181,71,.16) !important;  color: #ffb547 !important; box-shadow: inset 0 0 0 1px rgba(255,181,71,.25); }
.shift-X { background: rgba(255,90,110,.32) !important;  color: #ffc2ca !important; box-shadow: inset 0 0 0 1px rgba(255,90,110,.55); }

/* ── Controls: month tabs, view toggle, toolbar ───────────────────── */
.month-tabs { background: transparent !important; }
.month-tab, .view-btn, .toolbar-btn {
  background: rgba(20,30,46,.6) !important;
  border: 1px solid rgba(120,200,220,.16) !important;
  color: #8aa0b8 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: .72rem !important;
  border-radius: 7px !important;
}
.month-tab:hover, .view-btn:hover, .toolbar-btn:hover { color: #e6eef7 !important; border-color: rgba(120,200,220,.35) !important; }
.month-tab.active, .view-btn.active {
  background: #3ad9d9 !important;
  color: #06090f !important;
  border-color: #3ad9d9 !important;
  font-weight: 700 !important;
}
.scheduler-controls, .scheduler-toolbar {
  background: #0a0e16 !important;
  border-bottom: 1px solid rgba(120,200,220,.12) !important;
}

/* ── Coverage / MISSING chips: instrument, not alarm bell ─────────── */
.project-coverage-badge, .coverage-missing {
  background: rgba(255,90,110,.12) !important;
  color: #ff5a6e !important;
  border: 1px solid rgba(255,90,110,.3) !important;
  border-radius: 6px !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: .62rem !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
}
.coverage-ok, .coverage-full { color: #3ddc7a !important; }

/* ── Assistant FAB: brand, not fire alarm ─────────────────────────── */
#beedy-ai-btn {
  background: linear-gradient(145deg, #0e141e, #0b1018) !important;
  border: 1px solid rgba(58,217,217,.5) !important;
  color: #3ad9d9 !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.5), 0 0 24px rgba(58,217,217,.18) !important;
}
#beedy-ai-btn:hover { border-color: #3ad9d9 !important; box-shadow: 0 8px 30px rgba(58,217,217,.3) !important; }

/* ── Modals & editors follow the same surfaces ────────────────────── */
.modal-panel, .cell-edit-modal, .context-menu {
  background: #0d1119 !important;
  border: 1px solid rgba(120,200,220,.22) !important;
  border-radius: 14px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.6) !important;
}
.editor-tab.active { color: #3ad9d9 !important; border-color: #3ad9d9 !important; }

/* ── Scrollbars ───────────────────────────────────────────────────── */
.scheduler-grid-scroll::-webkit-scrollbar { height: 10px; width: 10px; }
.scheduler-grid-scroll::-webkit-scrollbar-track { background: #0a0e16; }
.scheduler-grid-scroll::-webkit-scrollbar-thumb { background: rgba(120,200,220,.22); border-radius: 5px; }
.scheduler-grid-scroll::-webkit-scrollbar-thumb:hover { background: rgba(58,217,217,.45); }

/* ═══════════════════════════════════════════════════════════════════
   ATMOSPHERE — kill the flat-black void. Aurora glows breathe behind the
   content like the product-page sections. Fixed layer, pointer-events none.
   ═══════════════════════════════════════════════════════════════════ */
body.dashboard-page::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(720px 520px at 82% -6%, rgba(58,217,217,.10), transparent 60%),
    radial-gradient(680px 520px at 6% 42%, rgba(192,132,252,.08), transparent 60%),
    radial-gradient(900px 620px at 96% 96%, rgba(255,181,71,.05), transparent 62%);
}
.sidebar, .dash-topbar, .scheduler-main, main, .hero-banner { position: relative; z-index: 1; }

/* ═══════════════════════════════════════════════════════════════════
   LIGHT WORLD — the planning room. Flips the ops --ndb-* tokens + the app
   shell to the drafting-paper palette from polaris.beedy.ca's light theme.
   ═══════════════════════════════════════════════════════════════════ */
:root[data-theme="light"] {
  --ndb-bg: #f4ede0; --ndb-card: #fbf6ea; --ndb-card-soft: rgba(251,246,234,.75);
  --ndb-border: rgba(70,55,30,.14); --ndb-border-hot: rgba(14,110,126,.4);
  --ndb-text: #1c1a14; --ndb-text-dim: #5b5240; --ndb-muted: #85795e; --ndb-dim: #b8ab90;
  --ndb-water: #0e6e7e; --ndb-cyan: #0e6e7e; --ndb-green: #1a6a2c;
  --ndb-amber: #b8590b; --ndb-red: #a8351a; --ndb-purple: #7c3aad;
}
:root[data-theme="light"] body.dashboard-page,
:root[data-theme="light"] body { background: #f4ede0 !important; color: #1c1a14; }
:root[data-theme="light"] body.dashboard-page::before {
  background:
    radial-gradient(720px 520px at 82% -6%, rgba(14,110,126,.10), transparent 60%),
    radial-gradient(680px 520px at 6% 42%, rgba(184,89,11,.07), transparent 60%),
    radial-gradient(circle at 18% 28%, rgba(255,255,255,.55), transparent 30%);
}
:root[data-theme="light"] .sidebar {
  background: linear-gradient(180deg, #ecdfc8 0%, #e3d4b8 100%) !important;
  border-right: 1px solid rgba(70,55,30,.16) !important;
}
:root[data-theme="light"] .sidebar-label,
:root[data-theme="light"] .sidebar-nav a { color: #3b3426 !important; }
:root[data-theme="light"] .sidebar-nav a.active { color: #0e6e7e !important; }
:root[data-theme="light"] .sidebar-group-header,
:root[data-theme="light"] .sidebar-section-label { color: #85795e !important; }
:root[data-theme="light"] .dash-topbar, :root[data-theme="light"] .topbar {
  background: #fbf6ea !important; border-bottom: 1px solid rgba(70,55,30,.16) !important;
}
:root[data-theme="light"] .dash-topbar h1, :root[data-theme="light"] #userDisplayName { color: #1c1a14 !important; }
:root[data-theme="light"] [style*="background:#111827"] { background: #fbf6ea !important; box-shadow: 0 1px 3px rgba(70,55,30,.1) !important; }
:root[data-theme="light"] #sites-grid > [data-project-click],
:root[data-theme="light"] #emp-supervisors > div,
:root[data-theme="light"] #emp-operators > div { border-color: rgba(70,55,30,.14) !important; }

/* light: login + hero = the drafting room */
:root[data-theme="light"] #login-overlay { background: url('../images/bg/hero-day.jpg') center 55%/cover no-repeat #f4ede0 !important; }
:root[data-theme="light"] #login-overlay::before {
  background: radial-gradient(ellipse 640px 520px at 50% 46%, rgba(244,237,224,.82), rgba(244,237,224,.4) 60%, rgba(244,237,224,.2)),
              linear-gradient(180deg, rgba(244,237,224,.25), transparent 40%, rgba(244,237,224,.55));
}
:root[data-theme="light"] #login-overlay .lo-card { background: rgba(251,246,234,.9) !important; border: 1px solid rgba(70,55,30,.2) !important; box-shadow: 0 24px 70px rgba(70,55,30,.2) !important; }
:root[data-theme="light"] #login-overlay .lo-logos .beedy { color: #0e6e7e !important; }
:root[data-theme="light"] #login-overlay .lo-logos .beedy::before,
:root[data-theme="light"] #login-overlay .lo-logos .beedy::after { color: #1c1a14; }
:root[data-theme="light"] #login-overlay h2 { color: #1c1a14 !important; font-family: 'Fraunces', serif !important; }
:root[data-theme="light"] #login-overlay input { background: rgba(255,255,255,.7) !important; border: 1px solid rgba(70,55,30,.25) !important; color: #1c1a14 !important; }
:root[data-theme="light"] #login-overlay input:focus { outline: 2px solid #0e6e7e !important; border-color: #0e6e7e !important; }
:root[data-theme="light"] #login-overlay button[type="submit"] { background: #b8590b !important; color: #fff !important; }
:root[data-theme="light"] .hero-banner { background: url('../images/bg/hero-day.jpg') center 52%/cover no-repeat #f4ede0 !important; border-bottom: 1px solid rgba(70,55,30,.2) !important; }
:root[data-theme="light"] .hero-overlay { background: linear-gradient(90deg, rgba(244,237,224,.72), rgba(244,237,224,.2) 55%, transparent) !important; }
:root[data-theme="light"] .hero-title { color: #1c1a14 !important; font-family: 'Fraunces', serif !important; text-shadow: 0 1px 12px rgba(244,237,224,.9) !important; }
:root[data-theme="light"] .hero-powered { color: #0e6e7e !important; }
:root[data-theme="light"] .hero-powered strong { color: #1c1a14 !important; }

/* light: the grid = ink on paper */
:root[data-theme="light"] .scheduler-grid thead th { background: #ecdfc8 !important; color: #5b5240 !important; border-color: rgba(70,55,30,.16) !important; }
:root[data-theme="light"] .scheduler-grid thead .dow-row th { background: #e3d4b8 !important; color: #85795e !important; }
:root[data-theme="light"] .scheduler-grid thead .th-project,
:root[data-theme="light"] .scheduler-grid thead .th-poste,
:root[data-theme="light"] .scheduler-grid thead .th-employee { background: #ecdfc8 !important; }
:root[data-theme="light"] .scheduler-grid .col-project { background: #ecdfc8 !important; color: #1c1a14 !important; border-color: rgba(70,55,30,.14) !important; }
:root[data-theme="light"] .scheduler-grid .col-poste { background: #f0e6d2 !important; color: #6b5f47 !important; border-color: rgba(70,55,30,.12) !important; }
:root[data-theme="light"] .scheduler-grid .col-employee { background: #fbf6ea !important; color: #1c1a14 !important; border-color: rgba(70,55,30,.12) !important; }
:root[data-theme="light"] .scheduler-grid td.shift-cell { background: #fdfaf2 !important; border-color: rgba(70,55,30,.08) !important; color: #cbb48f; }
:root[data-theme="light"] .shift-J { background: rgba(14,110,126,.26) !important; color: #063c45 !important; box-shadow: inset 0 0 0 1px rgba(14,110,126,.45); }
:root[data-theme="light"] .shift-N { background: rgba(124,58,173,.24) !important; color: #491d69 !important; box-shadow: inset 0 0 0 1px rgba(124,58,173,.42); }
:root[data-theme="light"] .shift-V, :root[data-theme="light"] .shift-A { background: rgba(26,106,44,.24) !important; color: #114a1e !important; box-shadow: inset 0 0 0 1px rgba(26,106,44,.4); }
:root[data-theme="light"] .shift-R { background: rgba(184,89,11,.15) !important; color: #9c5a00 !important; box-shadow: inset 0 0 0 1px rgba(184,89,11,.28); }
:root[data-theme="light"] .shift-X { background: rgba(168,53,26,.14) !important; color: #a8351a !important; box-shadow: inset 0 0 0 1px rgba(168,53,26,.3); }
:root[data-theme="light"] .scheduler-grid th.is-today { background: rgba(14,110,126,.22) !important; color: #fff !important; box-shadow: inset 0 0 0 1px rgba(14,110,126,.5) !important; }

/* light: controls + chrome */
:root[data-theme="light"] .month-tab, :root[data-theme="light"] .view-btn, :root[data-theme="light"] .toolbar-btn {
  background: rgba(255,255,255,.5) !important; border: 1px solid rgba(70,55,30,.2) !important; color: #5b5240 !important;
}
:root[data-theme="light"] .month-tab.active, :root[data-theme="light"] .view-btn.active { background: #b8590b !important; color: #fff !important; border-color: #b8590b !important; }
:root[data-theme="light"] .scheduler-controls, :root[data-theme="light"] .scheduler-toolbar { background: #f4ede0 !important; border-bottom: 1px solid rgba(70,55,30,.14) !important; }
:root[data-theme="light"] #beedy-ai-btn { background: linear-gradient(145deg,#fff,#f0e6d2) !important; border: 1px solid rgba(14,110,126,.5) !important; color: #0e6e7e !important; }
:root[data-theme="light"] .modal-panel, :root[data-theme="light"] .cell-edit-modal, :root[data-theme="light"] .context-menu {
  background: #fbf6ea !important; border: 1px solid rgba(70,55,30,.2) !important; box-shadow: 0 20px 60px rgba(70,55,30,.2) !important;
}
#pol-theme-btn .tt-icon { font-size: .95rem; }
/* single theme control: the global sidebar "Thème" toggle. Hide the legacy
   scheduler-toolbar theme button (now unified but redundant). */
#btnThemeToggle { display: none !important; }

/* ── ONE BLACK: canvas unification ────────────────────────────────────
   Measured drift (Guy caught it): body #0a0a14, Settings/Tasks #0a0f1a,
   controls #0a0e16, legend #0a0f18, scheduler wrap BEIGE. One scale now:
   void #06080e (canvas) · #0a0f18 (chrome bars) · #0b1018 (panels). */
body.dashboard-page { background: #06080e !important; }
.dash-main, .page-section { background: transparent !important; }
#page-workflows, #page-parametres { background: transparent !important; }
.scheduler-grid-wrap, .scheduler-grid-scroll { background: #06080e !important; }
.scheduler-controls, .sched-legend {
  background: #0a0f18 !important;
  border-color: rgba(120,190,220,.1) !important;
}
.dash-topbar { background: rgba(8,12,19,.85) !important; }
/* the sidebar painted its own purple-tinted gradient (#0b0b17→#08080f) —
   fold it into the scale: chrome-bar tone, standard hairline */
.sidebar {
  background: #0a0f18 !important;
  border-right: 1px solid rgba(120,190,220,.08) !important;
}
/* active nav item + lang toggle carried the OLD red/sky-blue tints */
.sidebar .sidebar-nav a.active {
  background: rgba(67,224,224,.09) !important;
  color: #4fe3e3 !important;
  box-shadow: inset 2px 0 0 #3ad9d9 !important;
}
.sidebar .sidebar-nav a.active svg { color: #4fe3e3 !important; stroke: #4fe3e3 !important; }
.sidebar .lang-toggle {
  background: rgba(67,224,224,.07) !important;
  border-color: rgba(67,224,224,.25) !important;
  color: #4fe3e3 !important;
}
:root[data-theme="light"] .sidebar {
  background: #efe6d3 !important;
  border-right: 1px solid rgba(70,55,30,.14) !important;
}
:root[data-theme="light"] .sidebar .sidebar-nav a.active {
  background: rgba(14,110,126,.1) !important;
  color: #0e6e7e !important;
  box-shadow: inset 2px 0 0 #0e6e7e !important;
}
:root[data-theme="light"] .sidebar .sidebar-nav a.active svg { color: #0e6e7e !important; stroke: #0e6e7e !important; }
:root[data-theme="light"] .sidebar .lang-toggle {
  background: rgba(14,110,126,.08) !important;
  border-color: rgba(14,110,126,.3) !important;
  color: #0e6e7e !important;
}
:root[data-theme="light"] body.dashboard-page { background: #f4ede0 !important; }
:root[data-theme="light"] .scheduler-grid-wrap,
:root[data-theme="light"] .scheduler-grid-scroll { background: #f4ede0 !important; }
:root[data-theme="light"] .scheduler-controls, :root[data-theme="light"] .sched-legend {
  background: #efe6d3 !important;
  border-color: rgba(70,55,30,.12) !important;
}
:root[data-theme="light"] .dash-topbar { background: rgba(244,237,224,.9) !important; }
/* full-sweep stragglers found by the computed-style probe (dark only —
   the light section later in this file keeps its own values): */
:root:not([data-theme="light"]) .month-tab,
:root:not([data-theme="light"]) .view-btn,
:root:not([data-theme="light"]) .toolbar-btn {
  background: #0e141e !important;
  border-color: rgba(120,190,220,.16) !important;
}
:root:not([data-theme="light"]) .month-tab.active,
:root:not([data-theme="light"]) .view-btn.active {
  background: rgba(67,224,224,.16) !important;
  color: #4fe3e3 !important;
  border-color: rgba(67,224,224,.4) !important;
}
:root:not([data-theme="light"]) .year-selector select {
  background: #0e141e !important;
  border-color: rgba(120,190,220,.16) !important;
  color: #e7eef7 !important;
}
:root:not([data-theme="light"]) .scheduler-toolbar { background: #0a0f18 !important; border-color: rgba(120,190,220,.1) !important; }
:root:not([data-theme="light"]) #beedy-ai-panel { background: #0b1018 !important; border: 1px solid rgba(120,190,220,.16) !important; }
:root:not([data-theme="light"]) #beedy-ai-panel .ai-messages { background: #0a0f18 !important; }
:root:not([data-theme="light"]) #beedy-ai-panel .ai-input-area { background: rgba(6,8,14,.5) !important; }
:root:not([data-theme="light"]) .lang9-menu { background: #0e141e !important; border-color: rgba(120,190,220,.16) !important; }
/* language menu in LIGHT theme (base styles are dark-only) */
:root[data-theme="light"] .lang9-menu {
  background: #fbf6ea !important;
  border-color: rgba(70,55,30,.25) !important;
  box-shadow: 0 -10px 40px rgba(70,55,30,.2) !important;
}
:root[data-theme="light"] .lang9-item { color: #1c1a14 !important; }
:root[data-theme="light"] .lang9-item:hover { background: rgba(14,110,126,.08) !important; }
:root[data-theme="light"] .lang9-item.on { background: rgba(184,89,11,.12) !important; color: #b8590b !important; }
:root[data-theme="light"] .lang9-code { color: #0e6e7e !important; }
:root[data-theme="light"] .lang9-item.on .lang9-code { color: #b8590b !important; }
:root:not([data-theme="light"]) .hero-banner { background-color: #06080e !important; }
/* interactive hovers: the grid flashed RED on mouse-over (.clickable:hover
   rgba(229,57,53,.12) + red text; row hover red wash + #DC2626 name) — the
   'other colour graduating in' Guy chased. Brand cyan, both themes: */
.clickable:hover {
  background-color: rgba(67,224,224,.1) !important;
  color: #4fe3e3 !important;
}
.grid-employee-row:hover td { background: rgba(67,224,224,.05) !important; }
.grid-employee-row:hover td:first-child { color: #4fe3e3 !important; }
:root[data-theme="light"] .clickable:hover {
  background-color: rgba(14,110,126,.1) !important;
  color: #0e6e7e !important;
}
:root[data-theme="light"] .grid-employee-row:hover td { background: rgba(14,110,126,.06) !important; }
:root[data-theme="light"] .grid-employee-row:hover td:first-child { color: #0e6e7e !important; }

/* ── TOP-LEFT LOCKUP: Polaris wordmark + Beedy show-window ────────── */
/* polaris-overrides.css hides the whole logo block (old rebrand leftover);
   restore it — the product deserves its name, and Beedy its signature. */
.sidebar-header { flex-wrap: wrap; }
.sidebar-header .logo { display: flex !important; align-items: center; gap: 9px; }
.sidebar-header .logo-img { display: block !important; width: 22px; height: 22px; }
.sidebar-header .logo .sidebar-label {
  display: inline !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: .92rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: #e6eef7;
}
:root[data-theme="light"] .sidebar-header .logo .sidebar-label { color: #1c1a14; }
.sidebar.collapsed .sidebar-header .logo .sidebar-label,
.sidebar.collapsed .beedy-mark { display: none !important; }

.beedy-mark {
  display: block;
  margin: 2px 0 0 34px;             /* aligns under the wordmark, past the icon */
  font-family: 'JetBrains Mono', monospace;
  font-size: .58rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #576a80;
  text-decoration: none;
  transition: color .2s;
}
.beedy-mark b { color: #3ad9d9; font-weight: 700; }
.beedy-mark .bm-dot { color: #8ba0b6; }
.beedy-mark:hover { color: #8ba0b6; }
.beedy-mark:hover b { text-shadow: 0 0 8px rgba(58,217,217,.5); }
:root[data-theme="light"] .beedy-mark { color: #85795e; }
:root[data-theme="light"] .beedy-mark b { color: #0e6e7e; }
:root[data-theme="light"] .beedy-mark .bm-dot { color: #5b5240; }
/* collapsed sidebar hides labels — the mark rides along via .sidebar-label */

/* light sidebar: the Polaris wordmark + user chip were white-on-cream */
:root[data-theme="light"] .sidebar .logo .sidebar-label { color: #1c1a14 !important; }
:root[data-theme="light"] #topbarUser #userDisplayName,
:root[data-theme="light"] .sidebar .user-name { color: #1c1a14 !important; }
:root[data-theme="light"] .pl-identity > div:first-child,
:root[data-theme="light"] .pl-identity { color: #1c1a14 !important; }

/* ═══════════════════════════════════════════════════════════════════
   DASHBOARD = a dense cockpit, not a scroll-story. The content (KPIs,
   today's roster, rotations) is excellent but was buried under a magazine-
   style mega-header + generous section whitespace, so login showed an empty-
   feeling first screen. Compact the editorial chrome ON THE DASHBOARD ONLY
   (Sites/Employees browse-pages keep their big heroes) so the useful data
   rises above the fold immediately.
   ═══════════════════════════════════════════════════════════════════ */
#page-dashboard .ndb-set-hero { margin-bottom: 14px; }
#page-dashboard .ndb-set-hero-meta { margin-bottom: 12px; }
#page-dashboard .ndb-set-title { margin-bottom: 0; gap: 2px; }
#page-dashboard .ndb-set-title-main { font-size: 1.8rem !important; line-height: 1.05; }
#page-dashboard .ndb-set-rule { margin: 14px 0; }
#page-dashboard .ndb-set-section { grid-template-columns: 168px 1fr; gap: 28px; padding: 12px 0 16px;
  animation: none !important; opacity: 1 !important; }
#page-dashboard .ndb-set-section-head { top: 12px; }
#page-dashboard .ndb-set-section-head h2 { font-size: 1.12rem; margin: 0 0 4px; }
#page-dashboard .ndb-set-serial { font-size: 1.25rem; transform: translateY(-1px); }
/* the always-there "no action required" alert shouldn't own a whole screen */
#page-dashboard .ndb-set-section[data-section="01"] { padding-top: 6px; padding-bottom: 12px; }
/* KPI cards: a touch denser + a hairline accent so they read as instruments */
#page-dashboard .ndb-kpis { gap: 12px; }
#page-dashboard .ndb-kpi { border-top: 2px solid rgba(58,217,217,.35); }
:root[data-theme="light"] #page-dashboard .ndb-kpi { border-top-color: rgba(14,110,126,.4); }

/* ═══════════════════════════════════════════════════════════════════
   MODAL & FORM BRAND CONSISTENCY — the editors (employee/project/
   assignment/export) carried leftover off-brand colors: sky-blue primary
   buttons and RED checkboxes (read as errors). Bring them to the Polaris
   accent so the modals feel like the same product as everything else.
   ═══════════════════════════════════════════════════════════════════ */
.btn-primary, #empAddBtn, #projAddBtn, #posteAddBtn, #formAddBtn {
  background: #3ad9d9 !important;
  color: #06090f !important;
  box-shadow: 0 4px 18px rgba(58,217,217,.28) !important;
  font-weight: 700 !important;
}
.btn-primary:hover, #empAddBtn:hover, #projAddBtn:hover {
  box-shadow: 0 6px 26px rgba(58,217,217,.4) !important;
}
:root[data-theme="light"] .btn-primary,
:root[data-theme="light"] #empAddBtn, :root[data-theme="light"] #projAddBtn,
:root[data-theme="light"] #posteAddBtn, :root[data-theme="light"] #formAddBtn {
  background: #b8590b !important; color: #fff !important;
  box-shadow: 0 4px 18px rgba(184,89,11,.28) !important;
}
/* every checkbox / radio in the app → cyan (was danger-red) */
input[type="checkbox"], input[type="radio"],
.export-checkbox-item input[type="checkbox"],
.checklist-item input[type="checkbox"],
.export-radio input, #ndb-radar input, #af-modal input {
  accent-color: #3ad9d9 !important;
}
:root[data-theme="light"] input[type="checkbox"],
:root[data-theme="light"] input[type="radio"],
:root[data-theme="light"] .export-checkbox-item input[type="checkbox"] {
  accent-color: #0e6e7e !important;
}
/* modal titles get a small cyan tick so they read as branded, not bootstrap */
.modal-panel h2, .modal-panel h3,
#employeeEditorModal > div > div:first-child,
#projEditorModal h2, #posteEditorModal h2, #exportModal h2 {
  letter-spacing: -.01em;
}
/* cell hover outline was danger-red → cyan */
.scheduler-grid td.shift-cell:hover { outline-color: #3ad9d9 !important; }
:root[data-theme="light"] .scheduler-grid td.shift-cell:hover { outline-color: #0e6e7e !important; }

/* LIGHT-THEME MODALS — the real modal class is .modal (not .modal-panel).
   In light theme they were staying dark; flip them to the paper world. */
:root[data-theme="light"] .modal {
  background: #fbf6ea !important; color: #1c1a14 !important;
  border: 1px solid rgba(70,55,30,.2) !important;
  box-shadow: 0 24px 70px rgba(70,55,30,.25) !important;
}
:root[data-theme="light"] .modal-header,
:root[data-theme="light"] .modal .modal-header { border-bottom-color: rgba(70,55,30,.14) !important; }
:root[data-theme="light"] .modal h2, :root[data-theme="light"] .modal h3,
:root[data-theme="light"] .modal-header h2, :root[data-theme="light"] .modal label { color: #1c1a14 !important; }
:root[data-theme="light"] .modal input[type="text"],
:root[data-theme="light"] .modal input[type="date"],
:root[data-theme="light"] .modal input[type="email"],
:root[data-theme="light"] .modal input[type="number"],
:root[data-theme="light"] .modal select,
:root[data-theme="light"] .modal textarea,
:root[data-theme="light"] .modal .export-checkbox-list,
:root[data-theme="light"] .modal .export-select-list {
  background: #fff !important; color: #1c1a14 !important;
  border: 1px solid rgba(70,55,30,.22) !important;
}
:root[data-theme="light"] .modal .export-form-group,
:root[data-theme="light"] .modal .export-checkbox-item { border-color: rgba(70,55,30,.1) !important; }
:root[data-theme="light"] .editor-search, :root[data-theme="light"] .editor-row {
  background: #fff !important; color: #1c1a14 !important; border-color: rgba(70,55,30,.14) !important;
}
:root[data-theme="light"] .editor-list, :root[data-theme="light"] .modal table td,
:root[data-theme="light"] .modal table th { color: #1c1a14 !important; border-color: rgba(70,55,30,.1) !important; }

/* SUPERVISOR WORKSPACE (Tasks & Reports) — was sky-blue #0ea5e9 throughout */
.sw-kicker { color: #3ad9d9 !important; }
.sw-tab.active { color: #3ad9d9 !important; border-bottom-color: #3ad9d9 !important; }
.sw-tab.active .sw-tab-count { background: rgba(58,217,217,.15) !important; color: #3ad9d9 !important; }
.sw-btn-primary, #sw-new-task {
  background: #3ad9d9 !important; color: #06090f !important; font-weight: 700 !important;
  box-shadow: 0 4px 18px rgba(58,217,217,.28) !important;
}
.sw-inp:focus, .sw-ta:focus { border-color: #3ad9d9 !important; }
:root[data-theme="light"] .sw-kicker,
:root[data-theme="light"] .sw-tab.active { color: #0e6e7e !important; }
:root[data-theme="light"] .sw-tab.active { border-bottom-color: #0e6e7e !important; }
:root[data-theme="light"] .sw-btn-primary, :root[data-theme="light"] #sw-new-task {
  background: #b8590b !important; color: #fff !important; box-shadow: 0 4px 18px rgba(184,89,11,.28) !important;
}

/* light: the gap-radar panel follows the paper world */
:root[data-theme="light"] #ndb-radar { background: rgba(251,246,234,.85) !important; border-color: rgba(14,110,126,.3) !important; }
:root[data-theme="light"] #ndb-radar .rad-head { border-bottom-color: rgba(70,55,30,.14) !important; }
:root[data-theme="light"] #ndb-radar .rad-title { color: #1c1a14 !important; }
:root[data-theme="light"] #ndb-radar .rad-sub, :root[data-theme="light"] #ndb-radar .rad-note { color: #85795e !important; }
:root[data-theme="light"] #ndb-radar .rad-row { border-bottom-color: rgba(70,55,30,.08) !important; color: #3b3426 !important; }
:root[data-theme="light"] #ndb-radar .rad-row .mono { color: #6b5f47 !important; }
:root[data-theme="light"] #ndb-radar .rad-btn { background: #b8590b !important; color: #fff !important; }
:root[data-theme="light"] #ndb-radar .rad-btn.ghost { background: transparent !important; border-color: rgba(70,55,30,.3) !important; color: #3b3426 !important; }
:root[data-theme="light"] #ndb-radar .rad-shift.J { background: rgba(14,110,126,.14) !important; color: #0b5a67 !important; }
:root[data-theme="light"] #ndb-radar .rad-shift.N { background: rgba(124,58,173,.14) !important; color: #6a2f96 !important; }
:root[data-theme="light"] #af-modal .af-card { background: #fbf6ea !important; border-color: rgba(14,110,126,.3) !important; }
:root[data-theme="light"] #af-modal h3, :root[data-theme="light"] #af-modal .af-cand { color: #1c1a14 !important; }
:root[data-theme="light"] #af-modal .af-item { border-bottom-color: rgba(70,55,30,.1) !important; }
:root[data-theme="light"] #af-modal .af-gap { color: #0e6e7e !important; }
:root[data-theme="light"] #af-modal .af-reasons { color: #6b5f47 !important; }

/* light: rescue inline light-on-dark text colors baked into card markup so
   names/labels stay readable on paper (attribute selectors, like the app's
   own card-bg technique). */
:root[data-theme="light"] [style*="color:#e2e8f0"],
:root[data-theme="light"] [style*="color:#f8fafc"],
:root[data-theme="light"] [style*="color:#e5e7eb"],
:root[data-theme="light"] [style*="color: #e2e8f0"] { color: #1c1a14 !important; }
:root[data-theme="light"] .ndb-person-name,
:root[data-theme="light"] .ndb-person-lastname { color: #1c1a14 !important; }
:root[data-theme="light"] [style*="color:#9ca3af"],
:root[data-theme="light"] [style*="color:#94a3b8"],
:root[data-theme="light"] [style*="color:#64748b"] { color: #6b5f47 !important; }

/* ── CALENDAR LEGIBILITY (Guy: "the one main thing people look at") ──
   The grid must SCAN like the Excel roster it replaced: color blocks,
   row tracking, obvious today, receding weekends. */
.scheduler-grid td { border-bottom: 1px solid rgba(120,190,220,.12) !important; }
.scheduler-grid td.shift-cell { font-size: .8rem !important; }
.scheduler-grid .col-employee { font-size: .82rem !important; font-weight: 600 !important; }
/* today: a visible cyan column band, not just header paint */
.scheduler-grid td.is-today {
  background-color: rgba(58,217,217,.07) !important;
  box-shadow: inset 1px 0 0 rgba(58,217,217,.55), inset -1px 0 0 rgba(58,217,217,.55) !important;
}
:root[data-theme="light"] .scheduler-grid td { border-bottom: 1px solid rgba(70,55,30,.14) !important; }
:root[data-theme="light"] .scheduler-grid td.is-today {
  background-color: rgba(14,110,126,.08) !important;
  box-shadow: inset 1px 0 0 rgba(14,110,126,.5), inset -1px 0 0 rgba(14,110,126,.5) !important;
}
:root[data-theme="light"] .scheduler-grid td.shift-cell.weekend { background: #e9dfc9 !important; }

/* ── EMBEDDED EDITORS: Assignments & Formations as real pages ─────────
   The editor modal nodes are adopted into page containers; this strips
   the popup frame (overlay, backdrop, close ✕) — logic untouched. */
.pl-embed-host .modal-overlay.pl-embedded {
  position: static !important;
  display: block !important;
  background: none !important;
  backdrop-filter: none !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: auto !important;
}
.pl-embed-host .pl-embedded .modal {
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  box-shadow: none !important;
  border: 1px solid rgba(120,190,220,.14) !important;
  border-radius: 14px !important;
  transform: none !important;
}
.pl-embed-host .pl-embedded .modal-header { border-radius: 14px 14px 0 0; }
.pl-embed-host .pl-embedded .modal-close { display: none !important; }
.pl-embed-host .pl-embedded .modal-body { max-height: none !important; }
:root[data-theme="light"] .pl-embed-host .pl-embedded .modal { border-color: rgba(70,55,30,.2) !important; }

/* Export PDF relocated into the scheduler controls row */
.scheduler-controls .pl-export-ctl {
  margin-left: auto !important;
  display: inline-flex !important;
  align-items: center; gap: 6px;
}

/* ── FROZEN BLOCK WIDTH DISCIPLINE (Guy: 'project/name/profession take half
   the window'). Base css sets max-width but table cells ignore it without
   overflow:hidden — long EN professions ballooned the columns. Clamp hard;
   the DAYS get the space. Full text stays available in the editors. */
.scheduler-grid .col-project, .scheduler-grid td.project-cell {
  min-width: 128px !important; max-width: 128px !important; width: 128px !important;
  white-space: normal !important;
  overflow: hidden !important;
  font-size: .72rem !important;
  line-height: 1.25 !important;
  padding: 4px 8px !important;
}
.scheduler-grid .col-poste {
  min-width: 104px !important; max-width: 104px !important; width: 104px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.scheduler-grid .col-employee {
  min-width: 122px !important; max-width: 122px !important; width: 122px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  left: 232px !important;
}
.scheduler-grid .col-poste { left: 128px !important; }
.scheduler-grid thead .th-project { min-width: 128px !important; max-width: 128px !important; }
.scheduler-grid thead .th-poste { left: 128px !important; }
.scheduler-grid thead .th-employee { left: 232px !important; }
/* the MISSING badge inside project cells: compact */
.project-coverage-badge { font-size: .56rem !important; padding: 2px 6px !important; margin-top: 3px !important; }
/* colspan=2 unstaffed rows were forcing poste+employee wider */
.scheduler-grid td.unstaffed-label {
  max-width: 226px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  font-size: .64rem !important;
  padding: 3px 6px !important;
}
.unstaffed-assign-btn { padding: 2px 7px !important; font-size: .6rem !important; }
.scheduler-grid thead .th-poste { min-width: 104px !important; max-width: 104px !important; }
.scheduler-grid thead .th-employee { min-width: 122px !important; max-width: 122px !important; }
/* inner clip spans — auto-layout tables can't shrink below text min-content,
   so the FIXED-WIDTH inner block is what actually enforces column width */
.scheduler-grid .colclip {
  display: block; width: 86px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.scheduler-grid .colclip.clip-emp { width: 104px; }

/* ── EMBEDDED EDITOR PAGES polish: console tables, not gray modal guts ── */
.pl-embed-host .modal-header h2 { font-family: 'JetBrains Mono', monospace; font-size: .78rem !important; letter-spacing: .16em; text-transform: uppercase; color: #8ba0b6 !important; }
.pl-embed-host .modal-header { background: #0a0f18 !important; border-bottom: 1px solid rgba(120,190,220,.12) !important; }
.pl-embed-host table { width: 100%; border-collapse: collapse; }
.pl-embed-host table thead th {
  font-family: 'JetBrains Mono', monospace; font-size: .62rem !important;
  letter-spacing: .14em; text-transform: uppercase; color: #576a80 !important;
  border-bottom: 1px solid rgba(120,190,220,.16) !important;
  padding: 10px 12px !important; text-align: left; background: transparent !important;
}
.pl-embed-host .editor-row td { padding: 11px 12px !important; border-bottom: 1px solid rgba(120,190,220,.07) !important; font-size: .86rem; }
.pl-embed-host .editor-row:nth-child(even) td { background: rgba(120,190,220,.025); }
.pl-embed-host .editor-row { cursor: pointer; transition: background .15s; }
.pl-embed-host .editor-row:hover td { background: rgba(67,224,224,.06) !important; }
.pl-embed-host .editor-row td:first-child { font-weight: 600; color: #e7eef7; }
.pl-embed-host input[type="search"], .pl-embed-host input[type="text"] {
  background: #0e141e !important; border: 1px solid rgba(120,190,220,.18) !important;
  border-radius: 9px !important; color: #e7eef7 !important;
}
.pl-embed-host .editor-empty {
  border: 1px dashed rgba(120,190,220,.2) !important; border-radius: 12px;
  color: #576a80 !important; padding: 34px !important; text-align: center;
}
:root[data-theme="light"] .pl-embed-host .modal-header { background: #efe6d3 !important; border-color: rgba(70,55,30,.15) !important; }
:root[data-theme="light"] .pl-embed-host .modal-header h2 { color: #5b5240 !important; }
:root[data-theme="light"] .pl-embed-host table thead th { color: #85795e !important; border-color: rgba(70,55,30,.2) !important; }
:root[data-theme="light"] .pl-embed-host .editor-row td { border-color: rgba(70,55,30,.1) !important; }
:root[data-theme="light"] .pl-embed-host .editor-row:nth-child(even) td { background: rgba(70,55,30,.03); }
:root[data-theme="light"] .pl-embed-host .editor-row:hover td { background: rgba(14,110,126,.07) !important; }
:root[data-theme="light"] .pl-embed-host .editor-row td:first-child { color: #1c1a14; }
:root[data-theme="light"] .pl-embed-host input[type="search"], :root[data-theme="light"] .pl-embed-host input[type="text"] {
  background: #f4ede0 !important; border-color: rgba(70,55,30,.22) !important; color: #1c1a14 !important;
}
.scheduler-grid .colclip.clip-unstaffed { width: 208px; display: flex; align-items: center; gap: 6px; }
.scheduler-grid .clip-unstaffed .unstaffed-warning { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .62rem; }
/* unstaffed colspan cells: explicit inner widths are what table min-content
   sizing respects — cap the warning text so the columns can't be forced wide */
.scheduler-grid .unstaffed-label .unstaffed-warning {
  display: inline-block; width: 116px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  vertical-align: middle; font-size: .6rem !important;
}
/* table width:100% was DISTRIBUTING leftover space into the poste column
   (auto layout ignores max-width when handing out extra). Size to content;
   the wrapper already scrolls horizontally. */
.scheduler-grid { width: max-content !important; min-width: 100%; }
.scheduler-grid { min-width: 0 !important; }
/* the colspan unstaffed cell's min-content was inflating the poste column
   (spans distribute width). The empty row IS the signal — keep the action. */
.scheduler-grid .unstaffed-label .unstaffed-warning { display: none !important; }

/* ── EMBED PAGES: scroll + stat strip + chips ─────────────────────── */
#page-assignments, #page-formations { overflow-y: auto; height: 100%; }
.pl-embed-host .pl-embedded .modal { overflow: visible !important; }
.pl-embed-host .pl-embedded .modal-body { overflow: visible !important; }
.emb-stats { display: flex; gap: 12px; margin: 0 24px 18px; flex-wrap: wrap; }
.emb-stat {
  display: flex; align-items: baseline; gap: 8px;
  background: #0b1018; border: 1px solid rgba(120,190,220,.12);
  border-radius: 11px; padding: 10px 16px;
}
.emb-stat b { font-family: 'JetBrains Mono', monospace; font-size: 1.3rem; color: #e7eef7; }
.emb-stat span { font-family: 'JetBrains Mono', monospace; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: #576a80; }
.emb-stat.ice b { color: #4fe3e3; } .emb-stat.plum b { color: #cf9cff; }
.emb-stat.amber b { color: #ffbc57; } .emb-stat.rose b { color: #ff6478; }
.emb-chip {
  display: inline-block; font-family: 'JetBrains Mono', monospace;
  font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 12px;
}
.emb-chip.emb-day { background: rgba(58,217,217,.16); color: #4fe3e3; box-shadow: inset 0 0 0 1px rgba(58,217,217,.3); }
.emb-chip.emb-night { background: rgba(192,132,252,.16); color: #cf9cff; box-shadow: inset 0 0 0 1px rgba(192,132,252,.3); }
.pl-embed-host td.emb-mono { font-family: 'JetBrains Mono', monospace; font-size: .76rem !important; color: #8ba0b6 !important; }
:root[data-theme="light"] .emb-stat { background: #fbf6ea; border-color: rgba(70,55,30,.15); }
:root[data-theme="light"] .emb-stat b { color: #1c1a14; }
:root[data-theme="light"] .emb-stat span { color: #85795e; }
:root[data-theme="light"] .emb-stat.ice b { color: #0e6e7e; } :root[data-theme="light"] .emb-stat.plum b { color: #7c3aad; }
:root[data-theme="light"] .emb-stat.amber b { color: #b8590b; } :root[data-theme="light"] .emb-stat.rose b { color: #a8351a; }
:root[data-theme="light"] .emb-chip.emb-day { background: rgba(14,110,126,.12); color: #0e6e7e; box-shadow: inset 0 0 0 1px rgba(14,110,126,.3); }
:root[data-theme="light"] .emb-chip.emb-night { background: rgba(124,58,173,.12); color: #7c3aad; box-shadow: inset 0 0 0 1px rgba(124,58,173,.3); }
:root[data-theme="light"] .pl-embed-host td.emb-mono { color: #5b5240 !important; }

/* ── EMBED PAGES: identity band + site thumbs (imagery that informs) ── */
.emb-hero {
  position: relative; margin: 0 24px 18px; height: 128px;
  border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(120,190,220,.18);
  background: url('../images/bg/hero-aurora.jpg') center 60%/cover no-repeat #06080e;
  display: flex; align-items: flex-end; padding: 14px;
}
.emb-hero::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(6,8,14,.15), rgba(6,8,14,.72));
}
.emb-hero .emb-stats { position: relative; margin: 0; }
.emb-hero .emb-stat { background: rgba(10,15,24,.78); backdrop-filter: blur(8px); border-color: rgba(120,190,220,.22); }
:root[data-theme="light"] .emb-hero {
  background-image: url('../images/bg/hero-day.jpg');
  border-color: rgba(70,55,30,.25);
}
:root[data-theme="light"] .emb-hero::before { background: linear-gradient(180deg, rgba(244,237,224,.05), rgba(30,24,14,.55)); }
:root[data-theme="light"] .emb-hero .emb-stat { background: rgba(251,246,234,.88); }
.emb-site { display: inline-flex; align-items: center; gap: 9px; }
.emb-site-thumb {
  width: 26px; height: 26px; border-radius: 7px; flex-shrink: 0;
  background-size: cover; background-position: center;
  box-shadow: inset 0 0 0 1px rgba(120,190,220,.3);
}
:root[data-theme="light"] .emb-site-thumb { box-shadow: inset 0 0 0 1px rgba(70,55,30,.3); }

/* ── LANGUAGE SELECTOR: the site's pattern (top-right pill + dropdown) ── */
#pl-lang-wrap { position: fixed; top: 14px; right: 60px; z-index: 9500; }
#pl-lang-wrap #langToggle {
  display: inline-flex !important; align-items: center; gap: 6px;
  height: 34px; padding: 0 12px;
  border-radius: 8px; border: 1px solid rgba(120,190,220,.3) !important;
  background: rgba(10,15,24,.82) !important; backdrop-filter: blur(8px);
  color: #8ba0b6 !important;
  font-family: 'JetBrains Mono', monospace !important; font-size: .76rem !important;
  cursor: pointer; width: auto !important; margin: 0 !important;
}
#pl-lang-wrap #langToggle:hover { color: #4fe3e3 !important; border-color: rgba(67,224,224,.5) !important; }
#pl-lang-wrap #langToggle .pl-caret { font-size: .58rem; opacity: .7; }
#pl-lang-wrap .lang9-menu {
  position: absolute !important; top: 42px !important; right: 0 !important;
  left: auto !important; bottom: auto !important;
  min-width: 190px; border-radius: 10px !important;
  box-shadow: 0 14px 44px rgba(0,0,0,.5) !important;
}
:root[data-theme="light"] #pl-lang-wrap #langToggle {
  background: rgba(251,246,234,.9) !important;
  border-color: rgba(70,55,30,.3) !important;
  color: #5b5240 !important;
}
:root[data-theme="light"] #pl-lang-wrap #langToggle:hover { color: #0e6e7e !important; border-color: rgba(14,110,126,.5) !important; }
/* the old footer pill styling no longer applies */
.sidebar-footer #langToggle { display: none; }

/* ── TOP-RIGHT CONTROL CLUSTER: theme + language (site pattern) ────── */
#pl-lang-wrap { display: flex; align-items: center; gap: 8px; }
#pl-lang-wrap .pl-ctl-icon {
  width: 34px !important; height: 34px !important;
  padding: 0 !important; margin: 0 !important;
  border-radius: 8px !important;
  border: 1px solid rgba(120,190,220,.3) !important;
  background: rgba(10,15,24,.82) !important; backdrop-filter: blur(8px);
  color: #8ba0b6 !important;
  display: inline-flex !important; align-items: center; justify-content: center;
  font-size: .92rem !important; cursor: pointer;
}
#pl-lang-wrap .pl-ctl-icon:hover { color: #4fe3e3 !important; border-color: rgba(67,224,224,.5) !important; }
#pl-lang-wrap .pl-ctl-icon .sidebar-label { display: none !important; }
:root[data-theme="light"] #pl-lang-wrap .pl-ctl-icon {
  background: rgba(251,246,234,.9) !important;
  border-color: rgba(70,55,30,.3) !important;
  color: #5b5240 !important;
}
:root[data-theme="light"] #pl-lang-wrap .pl-ctl-icon:hover { color: #0e6e7e !important; }

/* clear the lane: nothing sits under the cluster */
#pl-lang-wrap { right: 18px !important; }
.hero-min-btn { right: 156px !important; }         /* scheduler aurora ▴ */
.cmd-statusbar { padding-right: 158px !important; } /* dashboard state pill */
#pw-serial { margin-right: 148px !important; }      /* project workspace serial */
#pl-lang-wrap { height: 34px !important; bottom: auto !important; align-items: center; }

/* ── crew SMS action ── */
.crew-card { position: relative; }
.crew-sms {
  position: absolute; top: 10px; right: 10px;
  width: 30px; height: 30px; border-radius: 8px;
  border: 1px solid rgba(120,190,220,.2); background: rgba(120,190,220,.06);
  cursor: pointer; font-size: .8rem; display: inline-flex;
  align-items: center; justify-content: center;
  opacity: 0; transition: opacity .15s, border-color .15s;
}
.crew-card:hover .crew-sms { opacity: 1; }
.crew-sms:hover { border-color: rgba(67,224,224,.5); background: rgba(67,224,224,.1); }
:root[data-theme="light"] .crew-sms { border-color: rgba(70,55,30,.2); background: rgba(70,55,30,.05); }

/* ── RESERVATIONS DESK (rsv-*) — bookings queue, providers, housing ── */
#page-reservations { overflow-y: auto; height: 100%; }
.rsv-tabs { display: flex; align-items: center; gap: 8px; margin: 0 24px 16px; }
.rsv-tab {
  background: transparent; border: 1px solid rgba(120,190,220,.16);
  color: #8ba0b6; border-radius: 9px; padding: 8px 16px; cursor: pointer;
  font-family: 'JetBrains Mono', monospace; font-size: .68rem;
  letter-spacing: .08em; text-transform: uppercase; transition: all .15s;
}
.rsv-tab.on { color: #4fe3e3; border-color: rgba(67,224,224,.45); background: rgba(67,224,224,.07); }
.rsv-spacer { flex: 1; }
.rsv-panel { margin: 0 24px 40px; }
.rsv-table { width: 100%; border-collapse: collapse; background: #0b1018; border: 1px solid rgba(120,190,220,.1); border-radius: 12px; overflow: hidden; }
.rsv-table thead th {
  font-family: 'JetBrains Mono', monospace; font-size: .6rem; letter-spacing: .14em;
  text-transform: uppercase; color: #576a80; text-align: left;
  padding: 11px 12px; border-bottom: 1px solid rgba(120,190,220,.14);
}
.rsv-row td { padding: 10px 12px; border-bottom: 1px solid rgba(120,190,220,.06); font-size: .84rem; color: #c7d3e2; }
.rsv-row:nth-child(even) td { background: rgba(120,190,220,.02); }
.rsv-row:hover td { background: rgba(67,224,224,.05); }
.rsv-type { font-size: .78rem; white-space: nowrap; }
.rsv-route { color: #8ba0b6; font-size: .8rem; }
.rsv-strong { font-weight: 600; color: #e7eef7; }
.rsv-dim { color: #576a80; font-size: .78rem; }
.rsv-phone { font-family: 'JetBrains Mono', monospace; font-size: .68rem; color: #4fe3e3; margin-top: 3px; }
.rsv-prov, .rsv-ref, .rsv-cost, .rsv-addbar select, .rsv-addbar input, .rsv-assignbar select, .rsv-assignbar input {
  background: #0e141e; border: 1px solid rgba(120,190,220,.18); border-radius: 8px;
  color: #e7eef7; padding: 6px 9px; font-size: .78rem; font-family: 'Inter', sans-serif;
}
.rsv-ref { width: 110px; } .rsv-cost { width: 64px; }
.rsv-st {
  border-radius: 999px; padding: 5px 12px; cursor: pointer;
  font-family: 'JetBrains Mono', monospace; font-size: .6rem;
  letter-spacing: .1em; text-transform: uppercase; border: 1px solid; background: transparent;
}
.rsv-st-needed { color: #ff6478; border-color: rgba(255,100,120,.4); background: rgba(255,100,120,.08); }
.rsv-st-requested { color: #ffbc57; border-color: rgba(255,188,87,.4); background: rgba(255,188,87,.08); }
.rsv-st-confirmed { color: #43dd85; border-color: rgba(67,221,133,.4); background: rgba(67,221,133,.08); }
.rsv-addbar { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.rsv-addbar input { flex: 1; min-width: 130px; }
.rsv-houses { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 14px; }
.rsv-house { background: #0b1018; border: 1px solid rgba(120,190,220,.12); border-radius: 14px; padding: 16px; }
.rsv-house-h { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.rsv-house-meta { text-align: right; font-size: .72rem; color: #8ba0b6; display: flex; flex-direction: column; gap: 3px; }
.rsv-occ { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid rgba(120,190,220,.07); font-size: .82rem; }
.rsv-occ span:first-child { color: #e7eef7; }
.rsv-x { margin-left: auto; background: transparent; border: 0; color: #576a80; cursor: pointer; font-size: .72rem; }
.rsv-x:hover { color: #ff6478; }
.rsv-empty-house { padding: 8px 0; }
.rsv-assignbar { display: flex; gap: 6px; margin-top: 12px; }
.rsv-assignbar select { flex: 1; min-width: 0; }
.rsv-assignbar input[type="date"] { width: 118px; }
/* light theme */
:root[data-theme="light"] .rsv-table, :root[data-theme="light"] .rsv-house { background: #fbf6ea; border-color: rgba(70,55,30,.15); }
:root[data-theme="light"] .rsv-table thead th { color: #85795e; border-color: rgba(70,55,30,.2); }
:root[data-theme="light"] .rsv-row td { color: #3a3428; border-color: rgba(70,55,30,.08); }
:root[data-theme="light"] .rsv-row:hover td { background: rgba(14,110,126,.06); }
:root[data-theme="light"] .rsv-strong, :root[data-theme="light"] .rsv-occ span:first-child { color: #1c1a14; }
:root[data-theme="light"] .rsv-dim, :root[data-theme="light"] .rsv-route { color: #85795e; }
:root[data-theme="light"] .rsv-phone { color: #0e6e7e; }
:root[data-theme="light"] .rsv-prov, :root[data-theme="light"] .rsv-ref, :root[data-theme="light"] .rsv-cost,
:root[data-theme="light"] .rsv-addbar select, :root[data-theme="light"] .rsv-addbar input,
:root[data-theme="light"] .rsv-assignbar select, :root[data-theme="light"] .rsv-assignbar input {
  background: #f4ede0; border-color: rgba(70,55,30,.22); color: #1c1a14;
}
:root[data-theme="light"] .rsv-tab { color: #85795e; border-color: rgba(70,55,30,.2); }
:root[data-theme="light"] .rsv-tab.on { color: #0e6e7e; border-color: rgba(14,110,126,.45); background: rgba(14,110,126,.07); }
:root[data-theme="light"] .rsv-occ { border-color: rgba(70,55,30,.08); }
.rsv-gen {
  background: rgba(67,224,224,.12); border: 1px solid rgba(67,224,224,.45);
  color: #4fe3e3; border-radius: 9px; padding: 8px 16px; cursor: pointer;
  font-family: 'JetBrains Mono', monospace; font-size: .68rem;
  letter-spacing: .06em; text-transform: uppercase; white-space: nowrap;
}
.rsv-gen:hover { background: rgba(67,224,224,.2); }
.rsv-gen-sm { padding: 6px 12px; }
.rsv-assignbar select { min-width: 150px; }
:root[data-theme="light"] .rsv-gen { background: rgba(14,110,126,.1); border-color: rgba(14,110,126,.45); color: #0e6e7e; }
/* research corrections: status select, stale, capacity bars, mail btn */
select.rsv-st { border-radius: 999px; padding: 5px 10px; font-family: 'JetBrains Mono', monospace; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.rsv-st-waitlisted { color: #cf9cff; border-color: rgba(207,156,255,.4); background: rgba(207,156,255,.08); }
.rsv-st-noshow { color: #8ba0b6; border-color: rgba(139,160,182,.4); background: rgba(139,160,182,.08); }
.rsv-code { margin-top: 4px; }
.rsv-stale td, tr.rsv-stale td { background: rgba(255,188,87,.05) !important; }
.rsv-stalebadge { font-family: 'JetBrains Mono', monospace; font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; color: #ffbc57; margin-top: 3px; }
.rsv-mail { background: transparent; border: 1px solid rgba(120,190,220,.2); border-radius: 8px; color: #8ba0b6; cursor: pointer; padding: 5px 9px; margin-left: 6px; }
.rsv-mail:hover { color: #4fe3e3; border-color: rgba(67,224,224,.5); }
.rsv-cap { display: flex; align-items: center; gap: 8px; }
.rsv-capbar { width: 90px; height: 7px; border-radius: 4px; background: rgba(120,190,220,.1); overflow: hidden; }
.rsv-capbar i { display: block; height: 100%; border-radius: 4px; }
a.rsv-gen { text-decoration: none; display: inline-block; }
:root[data-theme="light"] .rsv-st-noshow { color: #85795e; }
:root[data-theme="light"] .rsv-mail { border-color: rgba(70,55,30,.2); color: #5b5240; }
:root[data-theme="light"] .rsv-capbar { background: rgba(70,55,30,.12); }
/* worker-access key: stacked action cluster on crew cards */
.crew-actions { position: absolute; top: 10px; right: 10px; display: flex; flex-direction: column; gap: 6px; }
.crew-actions .crew-sms { position: static; }

/* ── MOBILE LAYOUT (Guy on his phone: 'the site hides') ──────────────
   The 260px sticky sidebar left a ~130px sliver for content at 390px.
   Below 820px: sidebar goes off-canvas behind a ☰, content takes 100%. */
.pl-burger { display: none; }
@media (max-width: 820px) {
  .pl-burger {
    display: inline-flex; position: fixed; top: 10px; left: 12px; z-index: 12500;
    width: 40px; height: 40px; align-items: center; justify-content: center;
    border-radius: 10px; border: 1px solid rgba(120,190,220,.3);
    background: rgba(10,15,24,.85); backdrop-filter: blur(8px);
    color: #cfe2f0; font-size: 1.1rem; cursor: pointer;
  }
  :root[data-theme="light"] .pl-burger { background: rgba(251,246,234,.92); border-color: rgba(70,55,30,.3); color: #1c1a14; }
  .sidebar {
    position: fixed !important; left: 0; top: 0; bottom: 0; height: 100vh;
    transform: translateX(-105%); transition: transform .25s ease;
    z-index: 12000; box-shadow: 24px 0 60px rgba(0,0,0,.45);
  }
  body.pl-nav-open .sidebar { transform: translateX(0); }
  body.pl-nav-open::after {
    content: ""; position: fixed; inset: 0; z-index: 11500;
    background: rgba(3,5,9,.55); backdrop-filter: blur(2px);
  }
  .dash-main { width: 100% !important; }
  #pl-lang-wrap { top: 10px !important; right: 12px !important; }
  .hero-min-btn { right: 120px !important; }
  .cmd-statusbar { padding-right: 12px !important; padding-left: 58px !important; flex-wrap: wrap; }
  .pset-head { padding-left: 60px; }   /* clear the burger */
  .pset-title { font-size: 1.6rem !important; }
  .emb-hero { height: auto; min-height: 100px; padding: 12px; }
  .emb-stats { gap: 8px; }
  .emb-stat { padding: 8px 12px; } .emb-stat b { font-size: 1.05rem; }
  .rsv-panel { overflow-x: auto; }
  .rsv-tabs { flex-wrap: wrap; }
  .cmd { padding: 10px !important; }
  .pl-embed-host { overflow-x: auto; }
}
