/* Atos Dark Mode v3 - matched to atos.ai */
:root{
  --dm-bg:#000000; --dm-surface:#0E0E14; --dm-raised:#1A1A21;
  --dm-text:#FFFFFF; --dm-body:#D9D9DE; --dm-muted:#9C9CA1;
  --dm-line:#2A2A31; --dm-accent:#3DC7FF;
  --dm-heading:#4D9BFF; /* Atos blue, brightened for black background */
}

/* ================= Toggle button ================= */
#darkModeToggle{
  position:fixed; right:20px; bottom:24px; z-index:99999;
  width:46px; height:46px; padding:0; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#fff; color:#00005C; border:1px solid #E5E7EB; cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,.16);
  transition:bottom .45s cubic-bezier(.22,1,.36,1), right .45s cubic-bezier(.22,1,.36,1),
             transform .3s ease, background-color .4s ease, color .4s ease, border-color .4s ease;
}
#darkModeToggle:hover{ transform:scale(1.08); }
#darkModeToggle:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(61,199,255,.45); }
#darkModeToggle svg{ display:block; }
#darkModeToggle.dm-spin svg{ animation:dmSpin .6s cubic-bezier(.22,1,.36,1); }
@keyframes dmSpin{ from{ transform:rotate(-120deg) scale(.4); opacity:0; } to{ transform:none; opacity:1; } }
html.dark-mode #darkModeToggle{
  background:rgba(20,20,26,.85); color:var(--dm-accent);
  border-color:rgba(255,255,255,.35); box-shadow:0 8px 24px rgba(0,0,0,.6);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}

/* ================= No white flash on load ================= */
html.dark-mode.dm-loading{ background:#000 !important; }
html.dark-mode.dm-loading body{ opacity:0 !important; }
html.dark-mode body{ transition:opacity .25s ease; }

/* ================= Animation ================= */
::view-transition-old(root), ::view-transition-new(root){ animation:none; mix-blend-mode:normal; }
html.theme-anim *{ transition:background-color .4s ease, color .4s ease, border-color .4s ease !important; }

/* ================= Base ================= */
html.dark-mode:not(.dm-scanning){ color-scheme:dark; background:var(--dm-bg) !important; scrollbar-color:#2A2A31 #000; }
html.dark-mode:not(.dm-scanning) body{ background:var(--dm-bg) !important; color:var(--dm-body); }
html.dark-mode:not(.dm-scanning) ::selection{ background:var(--dm-accent); color:#000; }

/* Surfaces */
html.dark-mode:not(.dm-scanning) [data-dm-bg="page"]{ background-color:var(--dm-bg) !important; }
html.dark-mode:not(.dm-scanning) [data-dm-bg="card"]{
  background-color:var(--dm-surface) !important; box-shadow:none !important;
}
/* Nested light boxes blend into parent - no box-inside-box look */
html.dark-mode:not(.dm-scanning) [data-dm-bg="card"] [data-dm-bg="card"]{ background-color:transparent !important; }
html.dark-mode:not(.dm-scanning) [data-dm-bg="navy"]{ background-color:var(--dm-raised) !important; }

/* Text - white headings like atos.ai, soft body, cyan only for highlights */
html.dark-mode:not(.dm-scanning) [data-dm-text="main"]{ color:var(--dm-body) !important; }
/* Headings keep Atos blue (light mode navy -> brighter Atos blue in dark) */
html.dark-mode:not(.dm-scanning) :is(h1,h2,h3,h4,h5,h6)[data-dm-text="main"],
html.dark-mode:not(.dm-scanning) :is(h1,h2,h3,h4,h5,h6) [data-dm-text="main"]{ color:var(--dm-heading) !important; }
html.dark-mode:not(.dm-scanning) :is(strong,b)[data-dm-text="main"]{ color:var(--dm-text) !important; }
html.dark-mode:not(.dm-scanning) [data-dm-text="muted"]{ color:var(--dm-muted) !important; }
html.dark-mode:not(.dm-scanning) [data-dm-text="accent"]{ color:var(--dm-accent) !important; }

/* Borders / hairlines */
html.dark-mode:not(.dm-scanning) [data-dm-border="line"]:not([data-dm-btn]):not(input):not(select):not(textarea):not(hr){ border-color:transparent !important; }
html.dark-mode:not(.dm-scanning) [data-dm-border="accent"]{ border-color:rgba(255,255,255,.4) !important; }
html.dark-mode:not(.dm-scanning) hr{ border-color:var(--dm-line) !important; }

/* Buttons - white outline, fill white on hover (atos.ai style) */
html.dark-mode:not(.dm-scanning) [data-dm-btn]{
  background-color:transparent !important; color:#fff !important;
  border:1px solid rgba(255,255,255,.85) !important; box-shadow:none !important;
  transition:background-color .25s ease, color .25s ease !important;
}
html.dark-mode:not(.dm-scanning) [data-dm-btn] *{ color:inherit !important; }
html.dark-mode:not(.dm-scanning) [data-dm-btn]:hover{ background-color:#fff !important; color:#000 !important; }

/* ================= Header - pure black ================= */
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header, .header-upper, .header-lower){
  background-color:#000 !important; box-shadow:none !important; border-bottom-color:var(--dm-line) !important;
}
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header) [data-dm-bg]{ background-color:transparent !important; }
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header) [data-dm-text]{ color:#fff !important; }
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header) a:hover,
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header) a:hover *{ color:var(--dm-accent) !important; }
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header) li ul,
html.dark-mode:not(.dm-scanning) :is(header, .main-header, .sticky-header) .dropdown-menu{
  background-color:#0E0E14 !important; border:1px solid var(--dm-line) !important; box-shadow:0 18px 40px rgba(0,0,0,.6) !important;
}

/* ================= Footer - black, muted text ================= */
html.dark-mode:not(.dm-scanning) :is(footer, .main-footer, #footer, .footer, .footer-bottom, .copyright, [class*="footer"]:not(body):not(html)){
  background-color:#000 !important; background-image:none !important; box-shadow:none !important;
}
html.dark-mode:not(.dm-scanning) :is(footer, .main-footer, #footer, .footer){ border-top:1px solid var(--dm-line) !important; }
html.dark-mode:not(.dm-scanning) :is(footer, .main-footer, #footer, .footer) :is(p, li, span, a, address, small, div, i){ color:var(--dm-muted) !important; }
html.dark-mode:not(.dm-scanning) :is(footer, .main-footer, #footer, .footer) :is(h1,h2,h3,h4,h5,h6,strong){ color:#fff !important; }
html.dark-mode:not(.dm-scanning) :is(footer, .main-footer, #footer, .footer) a:hover{ color:var(--dm-accent) !important; }
html.dark-mode:not(.dm-scanning) :is(footer, .main-footer, #footer, .footer) [data-dm-bg]{ background-color:transparent !important; }

/* ================= Forms & popup ================= */
html.dark-mode:not(.dm-scanning) :is(input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]), select, textarea){
  background-color:var(--dm-raised) !important; color:#fff !important; border-color:#323239 !important;
}
html.dark-mode:not(.dm-scanning) :is(input, textarea)::placeholder{ color:var(--dm-muted) !important; }
html.dark-mode:not(.dm-scanning) :is(input, select, textarea):focus{
  border-color:var(--dm-accent) !important; box-shadow:0 0 0 .125rem rgba(61,199,255,.3) !important; outline:none !important;
}
html.dark-mode:not(.dm-scanning) .modal-content{ background-color:var(--dm-surface) !important; border:1px solid var(--dm-line) !important; }
html.dark-mode:not(.dm-scanning) .modal-backdrop.show{ opacity:.8; }
html.dark-mode:not(.dm-scanning) .modal .close{ color:#fff !important; text-shadow:none; opacity:.8; }

/* ================= Media ================= */
html.dark-mode:not(.dm-scanning) img[data-dm-logo]{ filter:brightness(0) invert(1); }
html.dark-mode:not(.dm-scanning) img:not([data-dm-logo]){ filter:brightness(.9) contrast(1.05); transition:filter .3s ease; }
html.dark-mode:not(.dm-scanning) img:not([data-dm-logo]):hover{ filter:none; }
