/* HACKTIX theme layer — intentionally restrained, not a colour inversion filter. */
:root {
  color-scheme: light;
  --ht-bg: #f5f7fb;
  --ht-surface: #ffffff;
  --ht-surface-2: #f8f9fc;
  --ht-ink: #172238;
  --ht-muted: #718096;
  --ht-line: #e5eaf2;
  --ht-brand: #4c63d9;
  --ht-brand-soft: #eef1ff;
  --ht-input: #ffffff;
  --ht-shadow: 0 12px 32px rgba(0,0,0,.16);
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --ht-bg: #11151d;
  --ht-surface: #191f2a;
  --ht-surface-2: #202837;
  --ht-ink: #e8edf5;
  --ht-muted: #a2adbd;
  --ht-line: #303a4a;
  --ht-brand: #9aaaff;
  --ht-brand-soft: #293451;
  --ht-input: #151c27;
  --ht-shadow: 0 14px 38px rgba(0,0,0,.42);
}
html, body { background: var(--ht-bg); color: var(--ht-ink); }
body { transition: background-color .16s ease, color .16s ease; }
/* Shared surfaces across organiser, jury, authentication, public and legal pages. */
:root[data-theme="dark"] .sidebar,
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .top,
:root[data-theme="dark"] .nav,
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .panel,
:root[data-theme="dark"] .stat,
:root[data-theme="dark"] .teamcard,
:root[data-theme="dark"] .empty,
:root[data-theme="dark"] .accountmenu,
:root[data-theme="dark"] .feature,
:root[data-theme="dark"] .product,
:root[data-theme="dark"] .btn.secondary,
:root[data-theme="dark"] .btn2,
:root[data-theme="dark"] .signout {
  background: var(--ht-surface) !important;
  color: var(--ht-ink) !important;
  border-color: var(--ht-line) !important;
}
:root[data-theme="dark"] .workspace,
:root[data-theme="dark"] .mocktable,
:root[data-theme="dark"] .stat,
:root[data-theme="dark"] .teamcode,
:root[data-theme="dark"] .note,
:root[data-theme="dark"] .pill,
:root[data-theme="dark"] .nav a.active,
:root[data-theme="dark"] .nav a:hover,
:root[data-theme="dark"] .navlink.active,
:root[data-theme="dark"] .navlink:hover,
:root[data-theme="dark"] .mocknav.active {
  background: var(--ht-brand-soft) !important;
  color: var(--ht-ink) !important;
  border-color: var(--ht-line) !important;
}
:root[data-theme="dark"] .nav a,
:root[data-theme="dark"] .navlink,
:root[data-theme="dark"] .accountmenu a,
:root[data-theme="dark"] .crumb,
:root[data-theme="dark"] .user,
:root[data-theme="dark"] .topright,
:root[data-theme="dark"] .top a,
:root[data-theme="dark"] .mocknav,
:root[data-theme="dark"] .mockrow,
:root[data-theme="dark"] .navlinks { color: var(--ht-muted) !important; }
:root[data-theme="dark"] h1,
:root[data-theme="dark"] h2,
:root[data-theme="dark"] h3,
:root[data-theme="dark"] strong,
:root[data-theme="dark"] .eventname,
:root[data-theme="dark"] label,
:root[data-theme="dark"] .accountmenu a:hover { color: var(--ht-ink) !important; }
:root[data-theme="dark"] p,
:root[data-theme="dark"] .muted,
:root[data-theme="dark"] .sub,
:root[data-theme="dark"] .help,
:root[data-theme="dark"] .meta,
:root[data-theme="dark"] .micro { color: var(--ht-muted) !important; }
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea {
  background: var(--ht-input) !important;
  color: var(--ht-ink) !important;
  border-color: var(--ht-line) !important;
}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder { color: #8995a7; }
:root[data-theme="dark"] th,
:root[data-theme="dark"] td,
:root[data-theme="dark"] .kv,
:root[data-theme="dark"] .mockrow,
:root[data-theme="dark"] .windowbar { border-color: var(--ht-line) !important; }
:root[data-theme="dark"] .accountmenu { box-shadow: var(--ht-shadow) !important; }
:root[data-theme="dark"] .closing { background: #0b1018 !important; }
:root[data-theme="dark"] .closing p { color: #aeb8c8 !important; }
:root[data-theme="dark"] .alert { background: #3a2426 !important; color: #ffc8c5 !important; border-color: #63383b !important; }
:root[data-theme="dark"] .pill.green { background: #18392e !important; color: #9be0c2 !important; }
:root[data-theme="dark"] .btn.primary,
:root[data-theme="dark"] .btn:not(.secondary),
:root[data-theme="dark"] .teamcard .view,
:root[data-theme="dark"] .btn { background: #536bdc !important; color: #fff !important; border-color: #536bdc !important; }
:root[data-theme="dark"] .btn.secondary,
:root[data-theme="dark"] .btn2 { background: var(--ht-surface-2) !important; color: var(--ht-ink) !important; }
:root[data-theme="dark"] .product { box-shadow: 0 18px 55px rgba(0,0,0,.3) !important; }
.ht-theme-control { display: inline-flex; align-items: center; gap: 7px; color: var(--ht-muted); font: 600 12px/1.2 Inter,system-ui,sans-serif; }
.ht-theme-control select { width: auto; min-width: 82px; padding: 7px 26px 7px 9px; border: 1px solid var(--ht-line); border-radius: 8px; background: var(--ht-surface); color: var(--ht-ink); font: inherit; cursor: pointer; }
.ht-theme-inline { margin-left: 12px; }
.ht-theme-floating { position: fixed; z-index: 9999; top: 14px; right: 14px; padding: 8px 10px; background: var(--ht-surface); border: 1px solid var(--ht-line); border-radius: 10px; box-shadow: var(--ht-shadow); }
@media (max-width: 720px) { .ht-theme-inline { margin-left: auto; } .ht-theme-control select { min-width: 74px; } }
