/* WizBI site palette — MONO (owner, 2026-10-02): black and white type and surfaces,
   neutral greys instead of blue/navy. Colour only where it means something (brand
   logos, WhatsApp green, ✓ pills, chart data). Load after /ds/v1/tokens.css and
   /ds/fonts/fonts.css; it re-points the design-system tokens, nothing else. */
:root {
  --brand: #0a0a0a; --brand-2: #262626; --brand-fg: #ffffff; --brand-soft: #f4f4f2; --brand-line: #d6d6d2;
  --bg: #ffffff; --bg-card: #ffffff; --bg-soft: #f6f6f4; --bg-hover: #efefec;
  --line: #e6e6e2; --line-soft: #efefeb;
  --text: #0a0a0a; --text-soft: #4f4f4c; --text-mut: #6b6b66;
  --nav-bg: #0a0a0a; --nav-line: rgba(255,255,255,.09); --nav-text: #d4d4d2; --nav-text-soft: #8f8f8a;
  --ok: #15803d; --ok-soft: #eaf5ee;
  --shadow-lg: 0 18px 40px -18px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.04);
}
:root[data-theme="dark"] {
  --brand: #fafafa; --brand-2: #e7e7e4; --brand-fg: #0a0a0a; --brand-soft: rgba(255,255,255,.06); --brand-line: rgba(255,255,255,.2);
  --bg: #0a0a0a; --bg-card: #0a0a0a; --bg-soft: #141414; --bg-hover: #1b1b1b;
  --line: #262626; --line-soft: #1c1c1c;
  --text: #fafafa; --text-soft: #a8a8a3; --text-mut: #8f8f89;
  --nav-bg: #000000; --ok: #4ade80; --ok-soft: rgba(74,222,128,.12);
}

/* Top bar: white, quiet, a hairline under it */
:root .top { background: rgba(255,255,255,.9); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  color: var(--text); border-bottom: 1px solid var(--line); }
:root[data-theme="dark"] .top { background: rgba(10,10,10,.85); }
:root .top .logo, :root .top .logo svg { color: var(--text); }
:root .top .langs { border-color: var(--line); }
:root .top .langs a { color: var(--text-mut); }
:root .top .langs a:hover { color: var(--text); }
:root .top .langs a[aria-current="page"] { background: var(--bg-soft); color: var(--text); }
:root .top .icon-btn { border-color: var(--line); color: var(--text-soft); }
:root .top .icon-btn:hover { color: var(--text); }
:root .top nav.main a { color: var(--text-soft); }
:root .top nav.main a:hover { color: var(--text); background: var(--bg-soft); }
footer .logo svg { color: #ffffff; }

/* Legal template (/privacy, /privacy/en, /legal/*): the homepage's white top bar,
   a black W mark instead of the blue one, neutral focus rings and pills */
:root .topbar { background: rgba(255,255,255,.92); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--line); }
:root[data-theme="dark"] .topbar { background: rgba(10,10,10,.85); }
:root .topbar .brand-link { color: var(--text); }
:root .topbar .brand-sub { color: var(--text-mut); }
:root .brand-mark { background: var(--text); color: var(--bg); }
:root .topbar .icon-btn, :root .topbar .lang-link { color: var(--text-soft); border-color: var(--line); }
:root .topbar .icon-btn:hover, :root .topbar .lang-link:hover { background: var(--bg-soft); color: var(--text); }
:root .topbar a:focus-visible, :root .topbar button:focus-visible, :root .skip:focus-visible { outline-color: var(--text); }
:root .skip { background: var(--text); color: var(--bg); }
:root .pill.on, :root[data-theme="dark"] .pill.on { color: var(--text); }

/* Language: one icon in the top bar (like Translate), a short menu on tap — on every width */
.lang-menu { position: relative; display: inline-flex; }
.lang-list { position: absolute; top: calc(100% + 8px); inset-inline-end: 0; z-index: 60; min-width: 172px; padding: 6px;
  display: grid; gap: 2px; background: var(--bg-card); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg); }
.lang-list[hidden] { display: none; }
.lang-list a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; border-radius: 8px;
  color: var(--text); font: var(--fw-medium) var(--t-sm)/1.2 var(--font-ui); }
.lang-list a:hover { background: var(--bg-soft); text-decoration: none; }
.lang-list a[aria-current="page"] { font-weight: var(--fw-semi); }
.lang-list a[aria-current="page"]::after { content: "✓"; }
:root .top .lang-menu .icon-btn[aria-expanded="true"] { background: var(--bg-soft); color: var(--text); }
/* Phones: a tidy full-width bar right under the top bar — three big choices, the current one
   filled black, the page dimmed behind it (the sticky .top is the containing block) */
@media (max-width: 760px) {
  .top .lang-menu { position: static; }
  .lang-list { top: calc(100% + 8px); inset-inline: 12px; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 6px;
    border-radius: 14px; box-shadow: 0 12px 30px -12px rgba(0,0,0,.35), 0 0 0 100vmax rgba(10,10,10,.28); }
  .lang-list a { justify-content: center; padding: 14px 6px; border-radius: 10px; background: var(--bg-soft); font-size: var(--t-base); text-align: center; }
  .lang-list a[aria-current="page"] { background: var(--text); color: var(--bg); }
  .lang-list a[aria-current="page"]::after { content: none; }
}

/* Lighter chrome (owner, 2026-10-04): borderless icon buttons, a brand-gradient hairline under the
   top bar instead of a grey rule, and no grey frame lines down the sides of the page. */
:root .top, :root .topbar { border-bottom-color: transparent; }
:root .top::after, :root .topbar::after { content: ""; position: absolute; inset-inline: 0; bottom: -1px; height: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(37,99,235,.45) 20%, rgba(124,58,237,.45) 50%, rgba(219,39,119,.45) 80%, transparent); }
:root .top .icon-btn, :root .topbar .icon-btn { border-color: transparent; background: transparent; }
:root .top .icon-btn:hover, :root .topbar .icon-btn:hover { background: var(--bg-soft); }
:root .rail { border-inline-color: transparent; }

/* The W in the top bar (owner, 2026-10-04): a touch of magic that keeps the bar quiet — the mark
   is drawn in the brand gradient (blue → violet → pink), flowing slowly, with a soft breathing
   glow; hover quickens it. The word "WizBI" stays ink. Still under reduced motion. */
:root .top .logo svg {
  color: transparent;
  background: linear-gradient(110deg, #2563eb, #7c3aed, #db2777, #7c3aed, #2563eb) 0 0 / 300% 100%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6.5 L8.25 18 L12 11 L15.75 18 L21 6.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6.5 L8.25 18 L12 11 L15.75 18 L21 6.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: wz-flow 9s linear infinite, wz-breathe 4.5s ease-in-out infinite;
}
:root[data-theme="dark"] .top .logo svg { background-image: linear-gradient(110deg, #60a5fa, #a78bfa, #f472b6, #a78bfa, #60a5fa); }
:root .top .logo:hover svg { animation-duration: 2.5s, 4.5s; }
@keyframes wz-flow { to { background-position: 300% 0; } }
@keyframes wz-breathe { 0%, 100% { filter: drop-shadow(0 0 0 rgba(124,58,237,0)); } 50% { filter: drop-shadow(0 0 5px rgba(124,58,237,.45)); } }
@media (prefers-reduced-motion: reduce) { :root .top .logo svg { animation: none; } }

/* The same gradient W on dark grounds: the footer, the legal top-bar/footer mark (black square,
   like the app icon) — lighter stops so it reads on black. */
:root footer .logo svg, :root .brand-mark svg {
  color: transparent;
  background: linear-gradient(110deg, #60a5fa, #a78bfa, #f472b6, #a78bfa, #60a5fa) 0 0 / 300% 100%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6.5 L8.25 18 L12 11 L15.75 18 L21 6.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6.5 L8.25 18 L12 11 L15.75 18 L21 6.5' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: wz-flow 9s linear infinite;
}
:root .brand-mark { background: #0a0a0a; }
:root[data-theme="dark"] .brand-mark { background: #0a0a0a; box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
@media (prefers-reduced-motion: reduce) { :root footer .logo svg, :root .brand-mark svg { animation: none; } }

