/* Shared BlueWhiteNile visual language. Framework-independent and opt-in.
   Import in the console; the static renderer copies these same bytes. */
:root {
  --bwn-bg: #08090a; --bwn-surface: #0f1113; --bwn-border: #2a2e33;
  --bwn-ink: #f7f8f8; --bwn-muted: #a8b0b8; --bwn-blue: #62b5ff;
  --bwn-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Noto Sans Arabic", sans-serif;
  --bwn-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
  --bwn-radius: 12px; --bwn-space: 8px; --bwn-duration: 180ms;
}
:root[data-theme="light"] {
  --bwn-bg: #fff; --bwn-surface: #f7f8fa; --bwn-border: #d3d8de;
  --bwn-ink: #0d0f12; --bwn-muted: #48505a; --bwn-blue: #075d9e;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]):not([data-theme="light"]) {
    --bwn-bg: #fff; --bwn-surface: #f7f8fa; --bwn-border: #d3d8de;
    --bwn-ink: #0d0f12; --bwn-muted: #48505a; --bwn-blue: #075d9e;
  }
}
.bwn-surface { box-sizing: border-box; min-height: 100svh; background: var(--bwn-bg); color: var(--bwn-ink); font: 16px/1.7 var(--bwn-font); -webkit-font-smoothing: antialiased; text-align: start; }
.bwn-surface *, .bwn-surface *::before, .bwn-surface *::after { box-sizing: border-box; }
.bwn-surface a { color: inherit; text-underline-offset: .22em; transition: color var(--bwn-duration) ease, border-color var(--bwn-duration) ease; }
.bwn-surface a:hover { color: var(--bwn-blue); }
.bwn-surface :focus-visible { outline: 2px solid var(--bwn-blue); outline-offset: 4px; }
.bwn-surface bdi { unicode-bidi: isolate; }
.bwn-surface .bwn-bar { position: static; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; max-width: 1200px; margin: auto; padding: 20px 32px; border-bottom: 1px solid var(--bwn-border); background: transparent; }
.bwn-brand { font-size: 18px; font-weight: 700; letter-spacing: -.02em; text-decoration: none; }
.bwn-brand span { color: var(--bwn-blue); }
.bwn-links { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; font-size: 14px; }
.bwn-links a { min-height: 44px; display: inline-flex; align-items: center; }
.bwn-surface .bwn-legal-head { position: static; max-width: 1200px; margin: auto; padding: 64px 32px 40px; background: transparent; border: 0; backdrop-filter: none; }
.bwn-eyebrow { margin: 0 0 16px; color: var(--bwn-blue); font-size: 14px; font-weight: 600; }
.bwn-surface .bwn-legal-head h1 { max-width: none; margin: 0 0 20px; font: 650 clamp(36px, 5vw, 60px)/1.12 var(--bwn-font); letter-spacing: -.03em; text-align: start; }
.bwn-summary { max-width: 760px; margin: 0; color: var(--bwn-muted); font-size: 19px; line-height: 1.65; }
.bwn-meta { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 24px 0 0; font-size: 14px; }
.bwn-meta div { display: flex; gap: 8px; }
.bwn-meta dt { color: var(--bwn-muted); }
.bwn-meta dd { margin: 0; }
.bwn-notice { margin: 24px 0 0; padding: 20px 24px; border: 1px solid var(--bwn-border); border-inline-start: 3px solid var(--bwn-blue); border-radius: var(--bwn-radius); background: var(--bwn-surface); max-width: 840px; font-size: 15px; line-height: 1.75; }
.bwn-legal-grid { max-width: 1200px; margin: auto; padding: 0 32px 72px; display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 64px; align-items: start; }
.bwn-surface .bwn-toc { position: sticky; top: 24px; max-height: calc(100svh - 48px); overflow-y: auto; padding: 8px 12px 8px 0; font-size: 14px; }
.bwn-toc h2 { margin: 0 0 12px; font: 600 14px/1.6 var(--bwn-font); color: var(--bwn-ink); }
.bwn-toc ol { list-style: none; padding: 0; margin: 0; }
.bwn-toc a { display: block; padding: 8px 0; color: var(--bwn-muted); text-decoration: none; }
.bwn-surface .bwn-article section { border-top: 1px solid var(--bwn-border); padding: 28px 0; margin: 0; scroll-margin-top: 24px; }
.bwn-surface .bwn-article h2 { margin: 0 0 16px; font: 600 23px/1.5 var(--bwn-font); letter-spacing: -.015em; text-align: start; }
.bwn-article p { margin: 0 0 16px; overflow-wrap: anywhere; line-height: 1.85; }
.bwn-article p:last-child { margin-bottom: 0; }
.bwn-surface .bwn-legal-footer { border-top: 1px solid var(--bwn-border); max-width: 1136px; margin: auto; padding: 28px 0 48px; display: flex; gap: 24px; flex-wrap: wrap; font-size: 15px; }
.bwn-surface[dir="rtl"] { letter-spacing: 0; }
.bwn-surface[dir="rtl"] h1, .bwn-surface[dir="rtl"] h2 { letter-spacing: 0; }
@media (max-width: 900px) {
  .bwn-legal-grid { grid-template-columns: 1fr; gap: 32px; }
  .bwn-surface .bwn-toc { position: static; max-height: none; padding: 20px; border: 1px solid var(--bwn-border); border-radius: var(--bwn-radius); background: var(--bwn-surface); }
  .bwn-toc ol { columns: 2; column-gap: 24px; }
  .bwn-toc li { break-inside: avoid; }
  .bwn-surface .bwn-legal-footer { margin: 0 32px; }
}
@media (max-width: 480px) {
  .bwn-surface .bwn-bar { padding: 16px 20px; gap: 8px; }
  .bwn-links { gap: 12px; }
  .bwn-surface .bwn-legal-head { padding: 40px 20px 32px; }
  .bwn-summary { font-size: 17px; }
  .bwn-notice { padding: 16px; }
  .bwn-legal-grid { padding: 0 20px 40px; }
  .bwn-toc ol { columns: 1; }
  .bwn-surface .bwn-legal-footer { margin: 0 20px; }
}
@media (prefers-reduced-motion: reduce) { .bwn-surface *, .bwn-surface *::before, .bwn-surface *::after { transition: none !important; scroll-behavior: auto !important; } }
@media print {
  .bwn-surface { --bwn-bg: #fff; --bwn-ink: #000; --bwn-muted: #333; --bwn-blue: #000; --bwn-border: #ccc; }
  .bwn-bar, .bwn-toc, .bwn-legal-footer { display: none !important; }
  .bwn-legal-grid { display: block; padding: 0; }
  .bwn-surface .bwn-legal-head { padding: 0 0 24px; }
  .bwn-article h2 { break-after: avoid; }
}

.bwn-mobile-toc { display: none; }
@media (max-width: 900px) {
  .bwn-surface .bwn-toc { display: none; }
  .bwn-mobile-toc { display: block; padding: 16px 20px; border: 1px solid var(--bwn-border); border-radius: var(--bwn-radius); background: var(--bwn-surface); }
  .bwn-mobile-toc summary { min-height: 32px; cursor: pointer; font-weight: 600; }
  .bwn-toc-mobile-nav ol { list-style: none; margin: 16px 0 0; padding: 0; }
  .bwn-toc-mobile-nav a { display: block; padding: 10px 0; text-decoration: none; font-size: 14px; }
}
@media print { .bwn-mobile-toc { display: none !important; } }
