/* ============================================================
   AUPAM Experts' Office — Design System
   Aesthetic: near-black forest/navy · brass-gold · ivory serif
   Typography: Fraunces (display) · Inter (body) · Amiri (Arabic)
   ============================================================ */

:root {
  /* Color system — restrained: ink, forest, gold, ivory */
  --ink:        #224f3f;
  --ink-2:      #1b4233;
  --panel:      #285c47;
  --panel-2:    #2f6850;
  --forest:     #36805f;
  --forest-2:   #1f4d3b;
  --gold:       #c9a24b;
  --gold-soft:  #ddc488;
  --gold-deep:  #9a7a33;
  --green-accent: #3f8f6b;
  --ivory:      #f4efe1;
  --ivory-dim:  #d9d3c2;
  --sage:       #9aa79a;
  --sage-dim:   #6f7b6f;
  --line:       rgba(201,162,75,.16);
  --line-soft:  rgba(244,239,225,.08);
  --red:        #b8453a; /* logo accent, used sparingly */

  --maxw: 1200px;
  --gutter: clamp(20px, 5vw, 64px);
  --r: 14px;

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --arabic: "Amiri", "Noto Naskh Arabic", serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after { box-sizing: border-box; }
* { margin: 0; }
[hidden] { display: none !important; }   /* author display rules must never override the hidden attribute */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: hidden; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration:.001ms!important; transition-duration:.001ms!important; }
}

body {
  font-family: var(--sans);
  color: var(--ivory);
  background: var(--ink);
  line-height: 1.65;
  font-size: 18.5px;
  letter-spacing: .002em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* Ambient backdrop — forest + navy radial wash, very subtle */
body::before {
  content:""; position: fixed; inset: 0; z-index: -2;
  background:
    radial-gradient(120% 90% at 80% -10%, rgba(54,128,95,.45), transparent 58%),
    radial-gradient(120% 90% at 0% 110%, rgba(20,60,46,.6), transparent 58%),
    var(--ink);
}
/* Fine grain for depth (invisible-expensive-stuff) */
body::after {
  content:""; position: fixed; inset: 0; z-index: -1; pointer-events:none;
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

::selection { background: var(--gold); color: var(--ink); }

/* Gold hairline frame around the viewport — signature element from the deck */
.viewframe {
  position: fixed; inset: 14px; z-index: 60; pointer-events: none;
  border: 1px solid var(--line);
  border-radius: 18px;
}
@media (max-width: 640px){ .viewframe{ inset: 8px; border-radius: 12px; } }

/* ---------- Layout primitives ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
section { position: relative; padding: clamp(64px, 9vh, 118px) 0; }
.divider { height:1px; background: linear-gradient(90deg, transparent, var(--line), transparent); }

/* Section rhythm — raised panels break up the flat dark field */
#board, #assets, #cooperate {
  background: linear-gradient(180deg, rgba(15,42,32,.5), rgba(15,42,32,.18));
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
/* Ambient green/gold washes for colour depth — applied as section backgrounds (no overlay layers) */
#expertise { background: radial-gradient(50% 42% at 94% 4%, rgba(63,143,107,.14), transparent 62%); }
#knowledge { background: radial-gradient(50% 42% at 6% 4%, rgba(63,143,107,.13), transparent 62%); }
#support   { background: radial-gradient(48% 40% at 4% 6%, rgba(201,162,75,.10), transparent 60%); }
#engagement{ background: radial-gradient(46% 40% at 96% 4%, rgba(201,162,75,.08), transparent 60%); }

/* Eyebrow / section kicker */
.kicker {
  font-family: var(--sans);
  font-size: 13px; font-weight: 600;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--gold);
  display: inline-flex; align-items: center; gap: 12px;
}
.kicker::before { content:""; width: 28px; height:1px; background: var(--gold); opacity:.7; }
.kicker .ar { font-family: var(--arabic); letter-spacing: 0; text-transform: none; color: var(--sage); font-size: 15.5px; }

h1,h2,h3 { font-family: var(--serif); font-weight: 350; line-height: 1.04; letter-spacing: -.01em; }
.h-xl { font-size: clamp(40px, 7.5vw, 92px); }
.h-lg { font-size: clamp(32px, 5.2vw, 60px); }
.h-md { font-size: clamp(24px, 3.4vw, 38px); }
em.gold { font-style: italic; color: var(--gold); }
.lead { font-size: clamp(19.5px,2.3vw,24px); color: var(--ivory-dim); max-width: 60ch; line-height: 1.6; }
.ar { font-family: var(--arabic); direction: rtl; }
.ar-line { font-family: var(--arabic); direction: rtl; color: var(--sage); font-size: 1.05em; line-height: 1.9; }

.section-head { margin-bottom: clamp(36px, 6vh, 64px); max-width: 920px; }
.section-head h2 { margin: 18px 0 14px; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 15.5px; font-weight: 600; letter-spacing: .02em;
  padding: 14px 26px; border-radius: 999px;
  border: 1px solid var(--gold);
  transition: transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease);
  cursor: pointer;
}
.btn-primary { background: var(--gold); color: #14110a; }
.btn-primary:hover { background: var(--gold-soft); transform: translateY(-2px); box-shadow: 0 14px 36px -14px rgba(201,162,75,.6); }
.btn-ghost { color: var(--gold-soft); background: transparent; }
.btn-ghost:hover { background: rgba(201,162,75,.1); transform: translateY(-2px); }
/* global keyboard focus ring — visible on every interactive control (a11y / WCAG 2.4.7) */
a:focus-visible, button:focus-visible, .btn:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 3px;
}
.btn svg { width: 16px; height:16px; }

/* ============================================================
   NAV
   ============================================================ */
.nav {
  position: fixed; top: 0; inset-inline: 0; z-index: 50;
  transition: background .4s var(--ease), backdrop-filter .4s var(--ease), border-color .4s;
  border-bottom: 1px solid transparent;
}
.nav.scrolled {
  background: rgba(24,58,45,.82);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.nav .wrap { display: flex; align-items: center; justify-content: space-between; height: 76px; max-width: 1520px; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand img { width: 38px; height: 38px; object-fit: contain; background:#fff; border-radius:50%; padding:3px; border:1px solid var(--line); }
.brand .bt { line-height: 1.05; }
.brand .bt b { font-family: var(--serif); font-weight: 500; font-size: 17px; letter-spacing: .01em; display:block; white-space: nowrap; }
.brand .bt span { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--sage); }
.nav-links { display: flex; align-items: center; gap: 18px; }
.nav-links a { font-size: 13.5px; color: var(--ivory-dim); letter-spacing: .01em; transition: color .25s; position: relative; }
.nav-links a:hover { color: var(--ivory); }
.nav-links a::after { content:""; position:absolute; left:0; bottom:-6px; height:1px; width:0; background:var(--gold); transition: width .3s var(--ease); }
.nav-links a:hover::after { width:100%; }
.nav-cta { font-size: 13.5px!important; padding: 9px 16px; }
/* grouped dropdown nav */
.nav-grp { position: relative; display: inline-flex; }
.nav-top { font-size: 13.5px; color: var(--ivory-dim); letter-spacing: .01em; transition: color .25s; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }
.nav-top:hover, .nav-grp:hover .nav-top, .nav-grp:focus-within .nav-top { color: var(--ivory); }
/* top-level link with no dropdown (the Workspace door) — same look, navigates directly */
.nav-solo { font-size: 13.5px; color: var(--gold-soft); letter-spacing: .01em; transition: color .25s; display: inline-flex; align-items: center; gap: 5px; }
.nav-solo::before { content: "🔒"; font-size: 11px; }
.nav-solo:hover { color: var(--ivory); }
.nav-caret { font-size: 8px; opacity: .55; transition: transform .2s; }
.nav-grp:hover .nav-caret, .nav-grp:focus-within .nav-caret { transform: rotate(180deg); }
.nav-solo::after { content:""; position:absolute; left:0; bottom:-6px; height:1px; width:0; background:var(--gold); transition: width .3s var(--ease); }
.nav-solo:hover::after { width:100%; }
.nav-menu { position: absolute; top: calc(100% + 12px); left: 0; min-width: 214px; display: flex; flex-direction: column; gap: 1px; padding: 8px; background: var(--ink-2); border: 1px solid rgba(201,162,75,.28); border-radius: 13px; box-shadow: 0 18px 46px rgba(0,0,0,.5); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s var(--ease), transform .18s var(--ease), visibility .18s; z-index: 60; }
.nav-menu::before { content:""; position:absolute; top:-12px; left:0; right:0; height:12px; } /* hover bridge */
.nav-grp:hover .nav-menu, .nav-grp:focus-within .nav-menu { opacity: 1; visibility: visible; transform: none; }
.nav-menu a { font-size: 13px; color: var(--ivory-dim); padding: 9px 12px; border-radius: 8px; white-space: nowrap; transition: color .2s, background .2s; }
.nav-menu a::after { display: none !important; }
.nav-menu a:hover { color: var(--ivory); background: rgba(201,162,75,.1); }
[dir="rtl"] .nav-menu { left: auto; right: 0; }
.burger { display:none; background:none; border:1px solid var(--line); border-radius:8px; width:42px; height:38px; cursor:pointer; align-items:center; justify-content:center; }
.burger span, .burger span::before, .burger span::after { content:""; display:block; width:18px; height:1.5px; background:var(--ivory); position:relative; transition:.3s; }
.burger span::before{ position:absolute; top:-6px; } .burger span::after{ position:absolute; top:6px; }
@media (max-width: 1180px){
  .nav-links { position: fixed; inset: 0 0 0 auto; width: min(320px,82vw); flex-direction: column; align-items: flex-start; justify-content:center; gap: 22px; padding: 40px; background: var(--ink-2); border-left:1px solid var(--line); transform: translateX(100%); transition: transform .45s var(--ease); }
  .nav-links.open { transform: translateX(0); }
  .nav-links a { font-size: 19.5px; }
  .burger { display:flex; z-index: 51; }
  /* grouped nav → a clean stacked list inside the burger panel */
  .nav-links { align-items: stretch; gap: 16px; overflow-y: auto; }
  .nav-grp { display: block; width: 100%; border-bottom: 1px solid var(--line-soft); padding-bottom: 4px; }
  .nav-top { font-size: 18px; color: var(--gold-soft); display: flex; align-items: center; justify-content: space-between; width: 100%; cursor: pointer; padding: 4px 0; }
  .nav-caret { display: inline-block; font-size: 13px; transition: transform .28s var(--ease); }
  /* accordion: submenus collapsed by default, expand only when their group is .open */
  .nav-menu { position: static; transform: none; display: block; background: none; border: 0; box-shadow: none; min-width: 0;
    opacity: 0; visibility: hidden; max-height: 0; overflow: hidden; padding: 0;
    transition: max-height .32s var(--ease), opacity .22s var(--ease), padding .22s var(--ease); }
  .nav-grp.open > .nav-menu { opacity: 1; visibility: visible; max-height: 1600px; padding: 4px 0 8px; }
  .nav-grp.open > .nav-top { color: var(--ivory); }
  .nav-grp.open > .nav-top .nav-caret { transform: rotate(180deg); }
  .nav-menu::before { display: none; }
  .nav-menu a { font-size: 15.5px; padding: 7px 0 7px 14px; }
  [dir="rtl"] .nav-menu a { padding: 7px 14px 7px 0; }
  .nav-solo { font-size: 18px; width: 100%; padding: 4px 0 8px; border-bottom: 1px solid var(--line-soft); }
}

/* ============================================================
   HERO
   ============================================================ */
.hero { min-height: 100svh; display: grid; align-items: center; padding-top: 100px; padding-bottom: 60px; }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(30px,5vw,70px); align-items: center; }
@media (max-width: 940px){ .hero-grid{ grid-template-columns: 1fr; text-align: left; } }

.hero .since { display:flex; align-items:center; gap:14px; margin-bottom: 26px; }
.hero .since .dot { width:6px; height:6px; border-radius:50%; background: var(--gold); box-shadow: 0 0 14px var(--gold); }
.hero .since b { font-size:13px; letter-spacing:.26em; text-transform:uppercase; color: var(--gold-soft); }
.hero h1 { margin: 0 0 22px; }
.hero h1 .sub { display:block; font-size: clamp(15px,2vw,19px); font-family: var(--sans); letter-spacing:.04em; color: var(--sage); margin-top: 18px; font-weight:400; }
.hero .hero-arab-title {
  font-family: var(--arabic); direction: rtl; font-weight: 700;
  font-size: clamp(26px, 4.2vw, 50px); line-height: 1.35;
  color: var(--ivory); margin: 18px 0 10px; letter-spacing: 0;
  text-shadow: 0 1px 18px rgba(0,0,0,.4);
}
.hero .hero-arab-title::after {
  content:""; display:block; width: 76px; height:2px; margin-top: 16px;
  background: linear-gradient(90deg, var(--gold), transparent);
}
.hero .ar-hero { font-family: var(--arabic); direction: rtl; color: var(--ivory-dim); font-size: clamp(16px,2.1vw,20px); margin: 4px 0 30px; line-height:1.8; max-width: 56ch; }
.hero-cta { display:flex; gap:14px; flex-wrap:wrap; margin-top: 8px; }
.hero-chair { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line-soft); font-size: 15.5px; color: var(--sage); }
.hero-chair b { color: var(--ivory); font-weight: 500; }

.hero-emblem { display:grid; place-items:center; position: relative; overflow: hidden; }
/* faint Arab-world map behind the emblem */
.hero-emblem .emblem-mapbg {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: min(200%, 1000px); max-width: none; height: auto; aspect-ratio: auto;
  object-fit: fill; background: none; border: 0; padding: 0; box-shadow: none;
  animation: none;   /* must stay static — a transform animation would override the centering translate */
  z-index: 0; pointer-events: none; user-select: none;
  opacity: .24;
  -webkit-mask: radial-gradient(circle at 50% 50%, #000 52%, rgba(0,0,0,.5) 72%, transparent 92%);
          mask: radial-gradient(circle at 50% 50%, #000 52%, rgba(0,0,0,.5) 72%, transparent 92%);
}
.hero-emblem .ring { position: relative; z-index: 1; width: min(420px, 78vw); aspect-ratio: 1; display:grid; place-items:center; }
.hero-emblem .ring::before, .hero-emblem .ring::after { content:""; position:absolute; border-radius:50%; border:1px solid var(--line); }
.hero-emblem .ring::before { inset: 0; }
.hero-emblem .ring::after { inset: 8%; border-color: var(--line-soft); }
.hero-emblem .glow { position:absolute; inset:14%; border-radius:50%; background: radial-gradient(circle, rgba(201,162,75,.22), transparent 68%); filter: blur(8px); }
.hero-emblem img { width: 72%; aspect-ratio:1; object-fit:contain; position: relative; background:#fff; border-radius:50%; padding:7%; border:2px solid var(--gold); box-shadow: 0 24px 60px -20px rgba(0,0,0,.7), 0 0 0 8px rgba(201,162,75,.06); animation: floaty 7s var(--ease) infinite; }
.hero-emblem .emblem-media { width: 74%; aspect-ratio:1; object-fit:cover; position: relative; display:block; background:#0f2019; border-radius:50%; border:2px solid var(--gold); box-shadow: 0 24px 60px -20px rgba(0,0,0,.7), 0 0 0 8px rgba(201,162,75,.06); animation: floaty 7s var(--ease) infinite; }
.hero-emblem .emblem-media img { width:100%; height:100%; padding:0; border:none; background:transparent; box-shadow:none; animation:none; }
@keyframes floaty { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-12px); } }
.spin { position:absolute; inset:0; animation: spin 60s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.spin svg { width:100%; height:100%; }

/* Stat strip under hero */
.stats { display:grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); border:1px solid var(--line); border-radius: var(--r); overflow:hidden; margin-top: clamp(40px,7vh,72px); }
.stats .s { background: var(--panel); padding: 26px 22px; }
.stats .s b { font-family: var(--serif); font-size: clamp(28px,3.6vw,40px); color: var(--gold-soft); display:block; line-height:1; }
.stats .s span { font-size: 13.5px; color: var(--sage); letter-spacing:.04em; margin-top:8px; display:block; }
@media (max-width:760px){ .stats{ grid-template-columns: repeat(2,1fr);} }

/* ============================================================
   GENERIC CARDS / GRIDS
   ============================================================ */
.grid { display:grid; gap: 20px; }
.cols-2 { grid-template-columns: repeat(2,1fr); }
.cols-3 { grid-template-columns: repeat(3,1fr); }
.cols-4 { grid-template-columns: repeat(4,1fr); }
@media (max-width: 980px){ .cols-3,.cols-4{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 620px){ .cols-2,.cols-3,.cols-4{ grid-template-columns: 1fr;} }

.card {
  background: linear-gradient(180deg, var(--panel), var(--ink-2));
  border: 1px solid var(--line-soft);
  border-radius: var(--r);
  padding: 30px 28px;
  transition: transform .4s var(--ease), border-color .4s, background .4s;
  position: relative; overflow: hidden;
}
.card::before { content:""; position:absolute; top:0; left:0; height:2px; width:0; background: linear-gradient(90deg, var(--gold), var(--gold-soft)); transition: width .45s var(--ease); }
.card:hover { transform: translateY(-6px); border-color: var(--line); background: linear-gradient(180deg, var(--panel-2), var(--ink-2)); box-shadow: 0 26px 50px -30px rgba(0,0,0,.8); }
.card:hover::before { width:100%; }
.card h3 { font-size: 23px; margin-bottom: 8px; }
.card .ar-line { font-size: 16.5px; margin-bottom: 12px; }
.card p { color: var(--ivory-dim); font-size: 16.5px; }
.card .ico { width: 48px; height:48px; border-radius:12px; display:grid; place-items:center; border:1px solid var(--line); color: var(--gold); margin-bottom: 18px; background: radial-gradient(120% 120% at 30% 20%, rgba(201,162,75,.12), transparent 70%); transition: color .35s, border-color .35s, background .35s; }
.card:hover .ico { color: var(--gold-soft); border-color: var(--gold); background: radial-gradient(120% 120% at 30% 20%, rgba(201,162,75,.22), transparent 70%); }
.card .ico svg { width:23px; height:23px; }

/* Vision / Mission */
.vm { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,4vw,56px); align-items:start; }
@media (max-width:860px){ .vm{ grid-template-columns:1fr; } }
.vm .vision { background: linear-gradient(150deg, var(--forest-2), var(--ink-2)); border:1px solid var(--line); border-radius: var(--r); padding: clamp(28px,4vw,46px); }
.vm .vision .kicker{ margin-bottom:18px; }
.vm .vision p { font-family: var(--serif); font-size: clamp(20px,2.4vw,27px); line-height:1.4; color: var(--ivory); font-weight:350; }
.mission-list { list-style:none; padding:0; display:grid; gap: 2px; }
.mission-list li { display:flex; gap:20px; padding: 20px 4px; border-bottom:1px solid var(--line-soft); }
.mission-list li .n { font-family: var(--serif); font-style:italic; font-size: 28px; color: var(--gold); line-height:1; min-width: 38px; }
.mission-list li p { font-size:17.5px; }
.mission-list li .ar-line { font-size:15.5px; margin-top:6px; }

/* ============================================================
   BOARD
   ============================================================ */
.board-grid { display:grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
@media (max-width:980px){ .board-grid{ grid-template-columns: repeat(2,1fr);} }
@media (max-width:520px){ .board-grid{ grid-template-columns: 1fr;} }
.member { text-align:center; }
.member .ph {
  width: 100%; aspect-ratio: 1; border-radius: var(--r); overflow:hidden;
  border:1px solid var(--line); margin-bottom:16px; position:relative;
  background: var(--panel);
}
.member .ph img { width:100%; height:100%; object-fit: cover; transform: scale(1.13); transition: transform .6s var(--ease), filter .6s; filter: saturate(.92); }
.member:hover .ph img { transform: scale(1.05); filter: saturate(1); }
.member .ph::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 55%, rgba(10,13,10,.55)); }
/* Emblem placeholder for board members without a photo yet */
.member .ph.ph-logo { display:grid; place-items:center; background: linear-gradient(180deg, var(--panel-2), var(--ink-2)); }
.member .ph.ph-logo img { width:66%; height:auto; object-fit:contain; transform:none; filter:none; background:#fff; border-radius:50%; padding:5%; border:1px solid var(--line); }
.member:hover .ph.ph-logo img { transform:none; }
.member .ph.ph-logo::after { display:none; }
.member h3 { font-size: 19.5px; margin-bottom: 4px; }
.member .role { font-size: 12.5px; letter-spacing:.16em; text-transform:uppercase; color: var(--gold); margin-bottom:8px; }
.member .bio { font-size: 14px; color: var(--sage); line-height:1.5; }
.member.lead-card .ph { border-color: var(--gold); }

/* ============================================================
   ENGAGEMENT (FDA/EMA/WHO)
   ============================================================ */
.engage-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
@media (max-width:860px){ .engage-grid{ grid-template-columns:1fr; } }
.reg { padding: 30px 28px; border-radius: var(--r); border:1px solid var(--line-soft); background: linear-gradient(180deg,var(--panel),var(--ink-2)); transition: transform .4s var(--ease), border-color .4s; }
.reg:hover{ transform: translateY(-5px); border-color: var(--line); }
.reg .org { font-family: var(--serif); font-size: 30px; color: var(--ivory); }
.reg .tag { display:inline-block; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color: var(--gold); border:1px solid var(--line); border-radius:999px; padding:4px 12px; margin: 14px 0; }
.reg .doc { font-size:16.5px; color: var(--ivory-dim); line-height:1.5; }
.reg .ar-line{ font-size:14px; margin-top:8px; }
.reg .ref { font-size:13px; color: var(--sage-dim); margin-top:14px; font-family: var(--sans); letter-spacing:.02em; }

.who-banner { margin-top: 30px; display:grid; grid-template-columns: 1.3fr .7fr; gap: 0; border:1px solid var(--gold); border-radius: var(--r); overflow:hidden; background: linear-gradient(150deg, var(--forest-2), var(--ink-2)); }
@media (max-width:820px){ .who-banner{ grid-template-columns:1fr; } }
.who-banner .txt { padding: clamp(28px,4vw,44px); }
.who-banner .txt .kicker{ margin-bottom:16px; }
.who-banner .txt h3 { font-size: clamp(22px,3vw,30px); margin-bottom:14px; }
.who-banner .txt p { color: var(--ivory-dim); font-size:17px; }
.who-banner .txt .ar-line{ margin-top:10px; font-size:15.5px; }
.who-banner .doc-img { position:relative; border-left:1px solid var(--line); min-height:220px; background:#fff; }
.who-banner .doc-img img { width:100%; height:100%; object-fit: cover; object-position: top; }
.who-banner .doc-img::after{ content:"WHO · GENEVA — 1 JULY 2026"; position:absolute; left:0; right:0; bottom:0; font-size:11px; letter-spacing:.18em; text-align:center; padding:8px; background:rgba(10,13,10,.82); color:var(--gold-soft); }

/* ============================================================
   FLAGSHIP ASSETS
   ============================================================ */
.assets-grid { display:grid; grid-template-columns: 1fr 1fr; gap:24px; align-items:start; }
@media (max-width:860px){ .assets-grid{ grid-template-columns:1fr; } }
.asset { border:1px solid var(--line-soft); border-radius: var(--r); overflow:hidden; background: linear-gradient(180deg,var(--panel),var(--ink-2)); transition: transform .4s var(--ease), border-color .4s; }
.asset:hover{ transform: translateY(-5px); border-color: var(--line); }
.asset .top { padding: 30px 30px 0; }
.asset .num { font-family: var(--serif); font-style:italic; font-size: 26px; color: var(--gold); }
.asset h3 { font-size: 24px; margin: 10px 0 6px; }
.asset .ar-line{ font-size:16.5px; }
.asset p { color: var(--ivory-dim); font-size:16.5px; padding: 16px 30px 0; }
.asset .mini-stats { display:flex; gap: 0; margin: 24px 30px 0; border-top:1px solid var(--line-soft); }
.asset .mini-stats div { flex:1; padding:18px 6px; text-align:center; border-right:1px solid var(--line-soft); }
.asset .mini-stats div:last-child{ border-right:0; }
.asset .mini-stats b { font-family:var(--serif); font-size:24px; color:var(--gold-soft); display:block; }
.asset .mini-stats span{ font-size:12px; color:var(--sage); letter-spacing:.04em; }
.asset .foot { display:flex; align-items:center; justify-content:space-between; padding: 22px 30px; margin-top: 18px; border-top:1px solid var(--line-soft); }
.asset .foot a { font-size:14px; color: var(--gold-soft); display:inline-flex; align-items:center; gap:8px; }
.asset .foot a:hover{ color: var(--gold); }
.asset .cover { display:flex; gap:20px; padding: 8px 30px 0; align-items:flex-start; }
.asset .cover img { width: 150px; border-radius:8px; border:1px solid var(--line); box-shadow: 0 14px 30px -16px rgba(0,0,0,.7); }

/* GMP public-consultation document pack */
.asset-docs { padding: 22px 30px 0; display:flex; flex-direction:column; gap:10px; }
.docs-label { font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:2px; }
.docs-label .ar-line { display:inline; font-size:14px; letter-spacing:0; color:var(--sage); }
.doc-row { display:flex; align-items:center; gap:14px; padding:13px 15px; border:1px solid var(--line-soft); border-radius:12px;
  background:rgba(15,42,32,.45); transition:border-color .25s, background .25s, transform .25s var(--ease); }
.doc-row:hover { border-color:var(--gold); background:rgba(15,42,32,.7); transform:translateX(3px); }
.doc-row:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.doc-ico { flex:none; width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; color:var(--gold); }
.doc-ico svg { width:19px; height:19px; }
.doc-txt { flex:1; min-width:0; line-height:1.3; }
.doc-txt b { display:block; font-size:16px; font-weight:500; color:var(--ivory); }
.doc-txt .ar-line { display:block; font-size:13.5px; margin-top:2px; }
.doc-dl { flex:none; display:inline-flex; align-items:center; gap:6px; font-size:12px; letter-spacing:.08em; color:var(--gold-soft); white-space:nowrap; }
.doc-dl svg { width:15px; height:15px; }
.doc-row:hover .doc-dl { color:var(--gold); }

/* ============================================================
   KNOWLEDGE
   ============================================================ */
.know-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
@media (max-width:860px){ .know-grid{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .know-grid{ grid-template-columns:1fr;} }
.pub { display:flex; flex-direction:column; width:100%; text-align:start; font:inherit; color:inherit; cursor:pointer;
  border:1px solid var(--line-soft); border-radius:12px; padding: 22px 22px; background: var(--panel);
  transition: border-color .3s, transform .3s var(--ease), background .3s; position:relative; }
.pub:hover{ border-color: var(--line); transform: translateY(-3px); background: var(--panel-2); }
.pub:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.pub h4 { font-family: var(--serif); font-size: 20.5px; font-weight: 400; margin-bottom:6px; }
.pub .cad { font-size:13px; color: var(--gold); letter-spacing:.06em; }
.pub .ar-line{ font-size:14px; margin-top:8px; }
.pub-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:16px; }
.pub-count { font-size:13px; color:var(--ivory-dim); background:rgba(201,162,75,.12); border:1px solid var(--line-soft); border-radius:999px; padding:3px 10px; white-space:nowrap; }
.pub-open { font-size:13.5px; color:var(--gold-soft); transition:color .25s, transform .3s var(--ease); }
.pub:hover .pub-open { color:var(--gold); }

.feature-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.feature-actions .btn { font-size:14px; padding:11px 20px; }
.feature-actions .pub-count { background:rgba(201,162,75,.14); }

/* ---------- Newsletter archive modal ---------- */
.modal { position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:24px; overflow-y:auto; }
.modal[hidden]{ display:none; }
@media (max-height:560px){ .modal{ padding:12px; place-items:start center; } }
.modal-backdrop { position:fixed; inset:0; background:rgba(8,20,15,.74); backdrop-filter:blur(6px); animation:fade .3s var(--ease); }
.modal-card { position:relative; width:min(620px,100%); max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px); overflow-y:auto;
  background: linear-gradient(180deg, var(--panel), var(--ink-2)); border:1px solid var(--gold);
  border-radius:18px; padding: clamp(24px,4vw,40px); box-shadow:0 40px 90px -30px rgba(0,0,0,.75);
  animation:pop .35s var(--ease); }
@keyframes fade{ from{opacity:0} } @keyframes pop{ from{opacity:0; transform:translateY(16px) scale(.98)} }
@media (prefers-reduced-motion: reduce){ .modal-backdrop,.modal-card{ animation:none; } }
.modal-x { position:absolute; top:16px; right:16px; width:40px; height:40px; display:grid; place-items:center;
  border:1px solid var(--line); border-radius:10px; background:transparent; color:var(--ivory-dim); cursor:pointer; transition:.25s; }
.modal-x:hover{ color:var(--ink); background:var(--gold); border-color:var(--gold); }
.modal-x svg{ width:18px; height:18px; }
.modal-card .kicker{ margin-bottom:14px; }
.modal-card #archiveTitle{ margin-bottom:4px; }
.modal-card #archiveTitleAr{ font-size:16.5px; }
.modal-cad { font-size:13.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); margin-top:8px; }

.modal-list { margin:22px 0; display:flex; flex-direction:column; gap:10px; }
.ed { display:flex; align-items:flex-start; gap:14px; padding:14px 16px; border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.5); }
.ed .ed-num { font-family:var(--serif); font-style:italic; font-size:22px; color:var(--gold); line-height:1.2; min-width:26px; }
.ed .ed-main { flex:1; min-width:0; }
.ed .ed-title { font-size:16.5px; color:var(--ivory); word-break:break-word; }
.ed .ed-title[dir="rtl"], .ed .ed-meta[dir="rtl"] { font-family:var(--arabic); text-align:right; }
.ed .ed-meta { font-size:13.5px; color:var(--sage); margin-top:3px; }
.ed .ed-link { font-size:13.5px; color:var(--gold-soft); display:inline-flex; align-items:center; gap:5px; margin-top:6px; }
.ed .ed-link:hover{ color:var(--gold); text-decoration:underline; }
.ed .ed-del { flex:none; width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line-soft); border-radius:8px; background:transparent; color:var(--sage); cursor:pointer; transition:.2s; }
.ed .ed-del:hover{ color:#fff; border-color:var(--red); background:rgba(184,69,58,.25); }
.ed .ed-del svg{ width:15px; height:15px; }
.ed .ed-tag { flex:none; align-self:flex-start; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-soft); border:1px solid var(--line-soft); border-radius:999px; padding:3px 9px; white-space:nowrap; }
.ed .ed-actions { flex:none; display:flex; gap:8px; }
.ed .ed-edit { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line-soft); border-radius:8px; background:transparent; color:var(--sage); cursor:pointer; transition:.2s; }
.ed .ed-edit:hover { color:var(--ink); border-color:var(--gold); background:var(--gold); }
.ed .ed-edit svg { width:14px; height:14px; }

/* Admin: read-only hint, footer link, status bar, login modal */
.modal-readonly { font-size:14.5px; color:var(--gold-soft); background:rgba(201,162,75,.1); border:1px solid var(--line-soft); border-radius:10px; padding:14px 16px; margin:6px 0 20px; display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.modal-readonly .ar-line { display:inline; }
.modal-readonly .btn { font-size:14px; padding:9px 18px; }
.modal-card-sm { width:min(440px,100%); }
.admin-link { background:none; border:1px solid var(--line); color:var(--gold-soft); font:inherit; font-size:13.5px; letter-spacing:.04em; cursor:pointer; padding:7px 16px; border-radius:999px; transition:color .25s, background .25s, border-color .25s; }
.admin-link:hover { color:var(--ink); background:var(--gold-soft); border-color:var(--gold-soft); }
.admin-bar { position:fixed; left:50%; transform:translateX(-50%); bottom:18px; z-index:55;
  display:flex; align-items:center; gap:16px; padding:10px 12px 10px 18px; border-radius:999px;
  background:rgba(11,28,21,.92); border:1px solid var(--gold); backdrop-filter:blur(10px);
  box-shadow:0 18px 40px -18px rgba(0,0,0,.7); font-size:14px; color:var(--ivory-dim); }
.admin-bar .dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#5fb98a; box-shadow:0 0 10px #5fb98a; margin-right:6px; }
.admin-bar button { font:inherit; font-size:13.5px; font-weight:600; color:var(--ink); background:var(--gold); border:none; border-radius:999px; padding:7px 16px; cursor:pointer; transition:background .25s; }
.admin-bar button:hover { background:var(--gold-soft); }
@media (max-width:560px){ .admin-bar{ left:12px; right:12px; transform:none; justify-content:space-between; } }
.modal-empty { text-align:center; color:var(--sage); font-size:15.5px; padding:26px 10px; border:1px dashed var(--line-soft); border-radius:12px; }

.modal-form { border-top:1px solid var(--line-soft); padding-top:22px; }
.modal-form h4 { font-family:var(--serif); font-weight:400; font-size:20.5px; margin-bottom:16px; }
.mf-row { display:grid; grid-template-columns:1fr 200px; gap:14px; }
@media (max-width:560px){ .mf-row{ grid-template-columns:1fr; } }
.mf-field { display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.mf-field > span { font-size:13px; letter-spacing:.04em; color:var(--sage); }
.mf-field > span i { color:var(--gold); font-style:normal; }
.mf-field input { width:100%; font:inherit; font-size:16.5px; color:var(--ivory); background:rgba(8,20,15,.5);
  border:1px solid var(--line-soft); border-radius:10px; padding:12px 14px; transition:border-color .25s, background .25s; }
.mf-field input::placeholder{ color:var(--sage-dim); }
.mf-field input:focus{ outline:none; border-color:var(--gold); background:rgba(8,20,15,.75); }
.mf-err { color:#f0a89f; font-size:14px; margin:2px 0 12px; }
.mf-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; }
.mf-note { font-size:13.5px; color:var(--sage); margin-top:16px; line-height:1.6; }
.mf-note b { color:var(--ivory-dim); font-weight:500; }
body.modal-open { overflow:hidden; }

.feature-pub { margin-top: 24px; border:1px solid var(--gold); border-radius: var(--r); padding: clamp(26px,4vw,40px); background: linear-gradient(150deg, var(--forest-2), var(--ink-2)); display:grid; grid-template-columns: auto 1fr; gap: 28px; align-items:center; }
@media (max-width:680px){ .feature-pub{ grid-template-columns:1fr; } .feature-pub img{ width:84px; } }
.feature-pub .badge { font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.feature-pub h3 { font-size: clamp(24px,3.4vw,34px); margin:12px 0; }
.feature-pub .quote { font-family:var(--serif); font-style:italic; color: var(--ivory-dim); font-size:19.5px; }
.feature-pub img { width: 120px; }

/* Article scans */
.articles { display:grid; grid-template-columns: 1fr 1fr; gap:24px; margin-top: 24px; }
@media (max-width:760px){ .articles{ grid-template-columns:1fr; } }
.article { display:grid; grid-template-columns: 130px 1fr; gap:20px; border:1px solid var(--line-soft); border-radius:var(--r); padding:20px; background: var(--panel); transition: border-color .3s, transform .3s var(--ease);}
.article:hover{ border-color: var(--line); transform: translateY(-3px); }
.article img { width:100%; border-radius:6px; border:1px solid var(--line); }
.article h4 { font-family:var(--serif); font-size:19.5px; font-weight:400; line-height:1.25; margin-bottom:8px; }
.article p { font-size:14px; color: var(--sage); }
.article .st { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-top:10px; }

/* ============================================================
   MEMBERSHIP — styled after the $10K checklist
   ============================================================ */
.membership { background: linear-gradient(180deg, var(--ink-2), var(--ink)); }
.checklist { display:grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(40px,6vw,90px); margin-top: 20px; }
@media (max-width:760px){ .checklist{ grid-template-columns:1fr; } }
.ck { display:grid; grid-template-columns: auto 1fr; gap: 22px; align-items:start; padding: 26px 0; border-bottom:1px solid var(--line-soft); }
.ck .n { font-family: var(--serif); font-style: italic; font-size: clamp(34px,4vw,46px); color: var(--gold); line-height:.9; }
.ck .t { font-family: var(--serif); font-size: clamp(18px,2vw,21px); color: var(--ivory); font-weight:400; line-height:1.3; }
.ck .d { font-size: 15.5px; color: var(--sage); margin-top:8px; line-height:1.55; }
.ck .ar-line{ font-size:15.5px; margin-top:8px; }
.join-cta { margin-top: clamp(40px,6vh,64px); display:grid; grid-template-columns: 1fr auto; gap: 28px; align-items:center; padding: clamp(26px,4vw,40px); border:1px solid var(--gold); border-radius: var(--r); background: linear-gradient(150deg, var(--forest-2), var(--ink-2)); }
@media (max-width:680px){ .join-cta{ grid-template-columns:1fr; text-align:left; } }
.join-cta .fee { font-family:var(--serif); }
.join-cta .fee b { font-size: clamp(30px,4vw,44px); color: var(--gold-soft); display:block; line-height:1; }
.join-cta .fee span { font-size:14px; color:var(--sage); letter-spacing:.04em; }

/* ============================================================
   COOPERATE
   ============================================================ */
.coop-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
@media (max-width:860px){ .coop-grid{ grid-template-columns:1fr; } }
.coop { border:1px solid var(--line-soft); border-radius:var(--r); padding: 32px 30px; background: linear-gradient(180deg,var(--panel),var(--ink-2)); }
.coop h3 { font-size:24px; margin-bottom:4px; }
.coop .ar-line{ font-size:16.5px; margin-bottom:18px; }
.coop ul { list-style:none; padding:0; display:grid; gap:14px; }
.coop li { display:flex; gap:12px; align-items:flex-start; font-size:16.5px; color:var(--ivory-dim); }
.coop li::before { content:""; flex:none; width:7px; height:7px; margin-top:9px; border-radius:50%; border:1px solid var(--gold); }

/* ============================================================
   FOOTER / CONTACT
   ============================================================ */
.contact { padding-top: clamp(80px,12vh,150px); }
.contact-inner { text-align:center; max-width: 820px; margin-inline:auto; }
.contact h2 { margin: 18px 0; }
.contact .ar-line{ font-size:clamp(17px,2.4vw,22px); margin-bottom:30px; }
.contact .mail { font-family:var(--serif); font-size: clamp(22px,3.4vw,34px); color: var(--gold-soft); display:inline-block; border-bottom:1px solid var(--line); padding-bottom:6px; transition: color .3s, border-color .3s; }
.contact .mail:hover{ color: var(--gold); border-color: var(--gold); }
.footer { margin-top: clamp(60px,10vh,110px); border-top:1px solid var(--line-soft); }
.footer .brand .bt b { font-size:16.5px; }
.footer-grid { display:grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: clamp(24px,4vw,52px); padding-block: clamp(40px,6vh,64px); align-items:start; }
@media (max-width:820px){ .footer-grid{ grid-template-columns: 1fr 1fr; row-gap:34px; } .footer-brand{ grid-column:1 / -1; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns: 1fr; } }
.footer-brand p { color:var(--sage); font-size:14.5px; line-height:1.6; margin-top:16px; max-width:44ch; }
.footer-brand .ar-line { font-size:14px; margin-top:6px; unicode-bidi: plaintext; }
.footer-col h4 { font-family:var(--sans); font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; font-weight:600; }
.footer-col a, .footer-col span { display:block; color:var(--ivory-dim); font-size:15.5px; line-height:1.45; margin-bottom:11px; transition:color .25s; }
.footer-col a:hover { color:var(--gold-soft); }
.footer-base { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; padding-block:22px; border-top:1px solid var(--line-soft); }
.footer-base small { color: var(--sage-dim); font-size:13.5px; line-height:1.7; }

/* ---------- Scroll reveal (progressive enhancement: only hides when JS is active) ---------- */
.js .reveal { opacity:0; transform: translateY(22px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.js .reveal.in { opacity:1; transform:none; }
.js .reveal.d1{ transition-delay:.06s;} .js .reveal.d2{ transition-delay:.12s;} .js .reveal.d3{ transition-delay:.18s;} .js .reveal.d4{ transition-delay:.24s;}
@media (prefers-reduced-motion: reduce){ .js .reveal{ opacity:1; transform:none; } }

/* Scroll progress bar */
.progress { position: fixed; top:0; left:0; height:2px; width:0; background: linear-gradient(90deg,var(--gold-deep),var(--gold-soft)); z-index:61; }

/* ============================================================
   PROFESSIONAL POLISH PASS
   ============================================================ */
/* Anchor offset so the fixed nav never covers a section heading */
section, header.hero, .trust { scroll-margin-top: 92px; }

/* Active nav link (scrollspy) */
.nav-links a.active { color: var(--ivory); }
.nav-links a.active::after { width: 100%; }

/* Standards trust strip */
.trust { border-block:1px solid var(--line-soft); background: linear-gradient(180deg, rgba(15,42,32,.5), transparent); padding: 22px 0; }
.trust .wrap { display:flex; align-items:center; gap: clamp(16px,4vw,46px); flex-wrap:wrap; justify-content:center; }
.trust-label { font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); white-space:nowrap; }
.trust-list { display:flex; flex-wrap:wrap; gap: clamp(16px,3vw,38px); list-style:none; padding:0; margin:0; align-items:center; }
.trust-list li { font-family:var(--serif); font-size: clamp(16px,1.9vw,22px); color:var(--ivory-dim); letter-spacing:.01em; position:relative; transition: color .3s; }
.trust-list li:hover { color:var(--ivory); }
.trust-list li:not(:last-child)::after { content:"·"; position:absolute; right: clamp(-20px,-1.6vw,-9px); color:var(--gold-deep); }

/* Count-up numbers settle in (paired with JS) */
.stats .s b[data-count] { font-variant-numeric: tabular-nums; }

/* ============================================================
   CMS — custom sections + inline text editing
   ============================================================ */
.cms-section { border-top: 1px solid var(--line-soft); }
.cms-section .section-head { margin-bottom: 18px; }
.cms-section.cms-hidden { opacity: .55; }
.cms-addbar { padding-block: 26px 4px; }
.cms-tools { display:flex; align-items:center; gap:10px; margin-top:26px; padding-top:18px; border-top:1px solid var(--line-soft); }
.cms-tools .btn { font-size:13.5px; padding:8px 16px; }
.cms-danger:hover { border-color: var(--red)!important; color:#fff!important; background: rgba(184,69,58,.28)!important; }
.cms-hidden-tag { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sage); }

/* admin "edit mode" — clickable text overrides */
.cms-on [data-cms] { outline:1px dashed var(--gold); outline-offset:4px; border-radius:3px; cursor:pointer; transition: background .2s; }
.cms-on [data-cms]:hover { background: rgba(201,162,75,.14); }
/* editable photos */
.cms-on [data-cms-img] { outline:2px dashed var(--gold); outline-offset:3px; cursor:pointer; transition: filter .2s; }
.cms-on [data-cms-img]:hover { filter:brightness(1.06); }
.cms-on .member .ph, .cms-on .asset .cover { position:relative; }
.cms-on .member .ph::before, .cms-on .asset .cover::before {
  content:"Click to replace photo"; position:absolute; z-index:3; left:50%; bottom:8px; transform:translateX(-50%);
  font-size:11px; letter-spacing:.05em; color:var(--ink); background:var(--gold-soft); padding:3px 9px; border-radius:999px;
  opacity:0; transition:opacity .2s; pointer-events:none; white-space:nowrap;
}
.cms-on .member .ph:hover::before, .cms-on .asset .cover:hover::before { opacity:.95; }
/* upload toast */
.cms-toast { position:fixed; left:50%; bottom:86px; transform:translateX(-50%) translateY(8px); z-index:90;
  background:rgba(11,28,21,.96); border:1px solid var(--gold); color:var(--ivory); font-size:14.5px;
  padding:11px 20px; border-radius:999px; box-shadow:0 18px 40px -18px rgba(0,0,0,.7); backdrop-filter:blur(8px);
  opacity:0; pointer-events:none; transition:opacity .3s, transform .3s; }
.cms-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }
.cms-toast.err { border-color:var(--red); }

/* editor form bits */
.mf-field textarea { width:100%; font:inherit; font-size:16.5px; color:var(--ivory); background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:10px; padding:12px 14px; resize:vertical; transition:border-color .25s, background .25s; }
.mf-field textarea:focus { outline:none; border-color:var(--gold); background:rgba(8,20,15,.75); }
.mf-check { display:flex; align-items:flex-start; gap:10px; font-size:15.5px; color:var(--ivory-dim); margin:8px 0 4px; cursor:pointer; line-height:1.5; }
.mf-check input { width:17px; height:17px; accent-color:var(--gold); margin-top:2px; flex:none; }
.mf-check i { color:var(--gold); font-style:normal; }
/* membership application */
.apply-files { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:6px 0 8px; }
.apply-files-note { font-size:13.5px; color:var(--sage); line-height:1.55; margin:0 0 10px; }
@media (max-width:560px){ .apply-files{ grid-template-columns:1fr; } }
.apply-file { display:flex; flex-direction:column; gap:7px; }
.apply-file > span { font-size:13px; letter-spacing:.04em; color:var(--sage); }
.apply-file input[type=file] { font:inherit; font-size:13.5px; color:var(--ivory-dim); background:rgba(8,20,15,.5); border:1px dashed var(--line); border-radius:10px; padding:10px; cursor:pointer; }
.apply-file input[type=file]::file-selector-button { font:inherit; font-size:13px; margin-right:10px; color:var(--ink); background:var(--gold-soft); border:none; border-radius:999px; padding:5px 12px; cursor:pointer; }
.apply-success { text-align:center; padding:16px 8px 8px; }
.apply-success .apply-tick { width:56px; height:56px; margin:0 auto 16px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--gold); color:var(--gold); }
.apply-success .apply-tick svg { width:28px; height:28px; }
.apply-success h4 { font-family:var(--serif); font-weight:400; font-size:24px; margin-bottom:10px; }
.apply-success p { color:var(--ivory-dim); font-size:16.5px; line-height:1.6; margin-bottom:20px; max-width:44ch; margin-inline:auto; }
.admin-bar #cmsEditToggle { background:transparent; color:var(--gold-soft); border:1px solid var(--line); }
.admin-bar #cmsEditToggle:hover { background:rgba(201,162,75,.14); color:var(--gold); }
.admin-bar #gNotifBtn { background:transparent; color:var(--gold-soft); border:1px solid var(--line); padding:7px 12px; }
.admin-bar #gNotifBtn:hover { background:rgba(201,162,75,.14); color:var(--gold); }
.admin-bar #gNotifBtn.has-new { background:var(--gold); color:var(--ink); border-color:var(--gold); }
.admin-notif-badge { display:inline-block; min-width:17px; text-align:center; font-size:11px; font-weight:800; line-height:17px; color:var(--gold); background:var(--ink); border-radius:999px; padding:0 5px; margin-inline-start:3px; }
.admin-bar #gNotifBtn.has-new .admin-notif-badge { color:var(--ink); background:rgba(0,0,0,.16); }
.admin-bar #appsView.has-apps .admin-notif-badge { color:#fff; background:#b0403a; }
.gnotif-drop { position:fixed; z-index:56; bottom:74px; left:50%; transform:translateX(-50%); width:min(460px,calc(100vw - 24px)); background:var(--ink-2); border:1px solid rgba(201,162,75,.4); border-radius:14px; box-shadow:0 18px 50px rgba(0,0,0,.5); overflow:hidden; }
.gnotif-drop .fm-notif-list { max-height:300px; }
.gnotif-drop .fm-notif-item { border-bottom-color:rgba(201,162,75,.12); }
.gnotif-foot { display:block; width:100%; text-align:center; background:rgba(201,162,75,.08); border:0; border-top:1px solid var(--line-soft); color:var(--gold); font:inherit; font-size:12.5px; font-weight:600; padding:11px; cursor:pointer; }
.gnotif-foot:hover { background:rgba(201,162,75,.16); }
@media (max-width:560px){ .gnotif-drop{ left:12px; right:12px; transform:none; width:auto; bottom:70px; } }

/* =====================================================================
   Language toggle + Arabic RTL mode
   ===================================================================== */
.nav .wrap > .brand { margin-inline-end: auto; }
.lang-toggle {
  background: transparent; border: 1px solid var(--line); color: var(--gold-soft);
  font: inherit; font-size: 14px; font-weight: 600; line-height: 1;
  border-radius: 999px; padding: 8px 15px; cursor: pointer; white-space: nowrap;
  margin-inline-end: 20px; transition: background .25s, color .25s, border-color .25s;
}
.lang-toggle:hover { background: var(--gold-soft); color: var(--ink-2); border-color: var(--gold-soft); }
@media (max-width: 900px) { .lang-toggle { margin-inline-end: 12px; font-size: 13.5px; padding: 7px 13px; } }
/* Narrow screens: let the brand title shrink & ellipsize so it never collides
   with the language toggle or burger (it was overflowing into them on phones). */
@media (max-width: 900px) {
  .nav .wrap { gap: 10px; }
  .nav .wrap > .brand { margin-inline-end: 0; min-width: 0; flex: 1 1 auto; }
  .brand .bt { min-width: 0; }
  .brand .bt b { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
  .lang-toggle, .burger { flex: 0 0 auto; }
}
@media (max-width: 560px) {
  .brand { gap: 8px; }
  .brand img { width: 32px; height: 32px; }
  .brand .bt b { font-size: 15px; }
  .lang-toggle { margin-inline-end: 8px; padding: 7px 11px; }
}
@media (max-width: 400px) { .brand .bt b { font-size: 14px; letter-spacing: 0; } }

/* ============ Regulatory Index ============ */
.ri { margin-top: 8px; }
.ri-controls { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-bottom:16px; }
.ri-pills { display:inline-flex; gap:4px; padding:4px; background:var(--ink-2); border:1px solid var(--line); border-radius:999px; }
.ri-pill { font:inherit; font-size:13px; font-weight:600; color:var(--ivory-dim); background:transparent; border:0; padding:7px 15px; border-radius:999px; cursor:pointer; transition:background .25s,color .25s; }
.ri-pill:hover { color:var(--ivory); }
.ri-pill.is-on { background:var(--gold); color:var(--ink-2); }
.ri-selects { display:flex; flex-wrap:wrap; gap:10px; margin-inline-start:auto; }
.ri-select, .ri-search { font:inherit; font-size:13.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:10px; padding:9px 13px; }
.ri-select { cursor:pointer; }
.ri-search { min-width:min(260px,60vw); }
.ri-select:focus, .ri-search:focus { outline:none; border-color:var(--gold-soft); }
.ri-search::placeholder { color:var(--sage); }
.ri-meta { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:12px; font-size:12.5px; color:var(--sage); letter-spacing:.02em; }
.ri-count { color:var(--gold-soft); font-weight:600; }
.ri-tablewrap { overflow-x:auto; border:1px solid var(--line); border-radius:14px; }
.ri-table { width:100%; border-collapse:collapse; font-size:14px; min-width:660px; }
.ri-table thead th { text-align:start; font-family:var(--serif); font-weight:500; font-size:12px; text-transform:uppercase; letter-spacing:.13em; color:var(--sage); padding:14px 16px; border-bottom:1px solid var(--line); white-space:nowrap; background:var(--ink-2); }
.ri-table td { padding:13px 16px; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.ri-table tbody tr:last-child td { border-bottom:0; }
.ri-table tbody tr:hover { background:rgba(201,162,75,.05); }
.ri-date { white-space:nowrap; color:var(--sage); font-size:13px; }
.ri-auth b { display:block; color:var(--ivory); font-weight:600; font-size:13.5px; }
.ri-auth span { display:block; color:var(--sage); font-size:11.5px; margin-top:2px; }
.ri-tag { display:inline-block; font-size:11px; font-weight:600; letter-spacing:.03em; color:var(--ivory); background:color-mix(in srgb, var(--rc,#6b6b6b) 30%, transparent); border:1px solid color-mix(in srgb, var(--rc,#6b6b6b) 55%, transparent); padding:3px 9px; border-radius:999px; white-space:nowrap; }
.ri-title-link { color:var(--ivory); font-weight:500; text-decoration:none; }
.ri-title-link:hover { color:var(--gold-soft); }
.ri-ext { color:var(--gold); font-size:11px; }
.ri-sum { display:block; color:var(--ivory-dim); font-size:12.5px; margin-top:5px; max-width:74ch; line-height:1.5; }
.ri-empty { padding:30px; text-align:center; color:var(--sage); }
@media (max-width:720px){
  .ri-selects { margin-inline-start:0; width:100%; }
  .ri-search { flex:1 1 auto; }
  .ri-sum { display:none; }
  .ri-table { font-size:13px; }
  .ri-table thead th, .ri-table td { padding:11px 12px; }
}

/* ============ Membership applications (admin review archive) ============ */
.apps-filters { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 10px; }
.apps-chip { font:inherit; font-size:12.5px; color:var(--ivory-dim); background:var(--ink-2); border:1px solid var(--line); border-radius:999px; padding:5px 12px; cursor:pointer; transition:background .2s,color .2s; }
.apps-chip em { font-style:normal; opacity:.6; margin-inline-start:3px; }
.apps-chip.is-on { background:var(--gold); color:var(--ink-2); border-color:var(--gold); }
.apps-badge { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.02em; color:#fff; background:var(--sc,#6b6b6b); border-radius:999px; padding:2px 9px; margin-inline-start:8px; }
.apps-docs { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.apps-doc { font:inherit; font-size:12.5px; color:var(--ivory); background:rgba(201,162,75,.12); border:1px solid var(--line); border-radius:8px; padding:6px 11px; cursor:pointer; }
.apps-doc:hover { border-color:var(--gold-soft); background:rgba(201,162,75,.2); }
.apps-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:11px; }
.apps-act { font:inherit; font-size:13px; font-weight:600; border-radius:8px; padding:7px 15px; cursor:pointer; border:1px solid var(--line); background:var(--ink-2); color:var(--ivory); }
.apps-act.acc { background:#2f6d54; border-color:#2f6d54; color:#fff; }
.apps-act.rej { background:transparent; border-color:#a5352b; color:#e0897f; }
.apps-act.reset { background:transparent; color:var(--ivory-dim); }
.apps-act.del { background:transparent; border-color:#7a3050; color:#cf9bb2; margin-inline-start:auto; }
.apps-act.del:hover { background:rgba(122,48,80,.25); }

/* per-forum moderator sign-in */
.fm-modlink { font:inherit; font-size:12.5px; color:var(--gold-soft); background:transparent; border:1px solid var(--line); border-radius:999px; padding:5px 12px; cursor:pointer; margin-inline-end:8px; }
.fm-modlink:hover { border-color:var(--gold-soft); color:var(--gold); }
.fm-modbadge { font-size:12.5px; color:#8fd0b0; margin-inline-end:8px; white-space:nowrap; }
.fm-modbadge a { color:var(--ivory-dim); text-decoration:underline; margin-inline-start:5px; }
.fm-thread:focus-visible { outline:2px solid var(--gold-soft); outline-offset:2px; }
/* inline edit (admin) for topics & replies */
.fm-edit { display:flex; flex-direction:column; gap:10px; margin-top:6px; }
.fm-edit-title { font:inherit; font-size:15px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:9px 12px; }
.fm-edit-body { font:inherit; font-size:14px; line-height:1.6; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:10px 12px; resize:vertical; }
.fm-edit-title:focus, .fm-edit-body:focus { outline:none; border-color:var(--gold-soft); }

/* --- Full RTL when Arabic is active --- */
html[dir="rtl"] body { text-align: right; }
html[dir="rtl"] .kicker::before,
html[dir="rtl"] .kicker::after { display: none; }        /* the LTR lead-rule reads wrong in RTL */
/* Mixed-script safety: every text block derives its own direction from its
   content, so English keeps LTR acronyms/punctuation while Arabic flows RTL —
   both align to the right to sit in the RTL column. This kills the "leading
   period" bidi artefact on English sentences without tagging each element. */
html[dir="rtl"] h1, html[dir="rtl"] h2, html[dir="rtl"] h3, html[dir="rtl"] h4,
html[dir="rtl"] p, html[dir="rtl"] li, html[dir="rtl"] .kicker, html[dir="rtl"] .sub,
html[dir="rtl"] blockquote, html[dir="rtl"] figcaption, html[dir="rtl"] dt, html[dir="rtl"] dd,
html[dir="rtl"] small, html[dir="rtl"] .lead { unicode-bidi: plaintext; }
/* Latin-dense rows stay fully LTR so figures / codes keep reading order */
html[dir="rtl"] .stats,
html[dir="rtl"] .mini-stats,
html[dir="rtl"] .trust-list,
html[dir="rtl"] .footer-legal { direction: ltr; }
/* Arabic script gets a touch more presence in Arabic mode */
body.lang-ar { font-feature-settings: "kern"; }
body.lang-ar .ar, body.lang-ar .ar-line, body.lang-ar .hero-arab-title { color: var(--ivory); }

/* =====================================================================
   Interactive Arab map — 22 member states
   ===================================================================== */
.arabmap-sec { padding-block: clamp(56px, 8vw, 104px); }
.arabmap { display: flex; gap: clamp(20px, 3vw, 40px); align-items: stretch; margin-top: clamp(28px, 4vw, 46px); }
.am-stage {
  position: relative; flex: 1 1 64%; min-width: 0;
  display: flex; flex-direction: column; gap: 12px;
  background: radial-gradient(120% 130% at 50% 0%, rgba(63,143,107,.16), transparent 60%), var(--ink-2);
  border: 1px solid var(--line); border-radius: var(--r);
  padding: clamp(12px, 2vw, 22px); overflow: hidden;
}
/* colour-mode control + legend */
.am-controls { display: flex; flex-direction: column; gap: 10px; }
.am-ctrlrow { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; }
.am-dlgroup { display: inline-flex; align-items: center; gap: 8px; }
.am-dl { font: inherit; font-size: 13px; font-weight: 600; color: var(--ink-2); background: var(--gold-soft); border: 1px solid var(--gold-soft); border-radius: 999px; padding: 6px 14px; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s; }
.am-dl:hover { background: var(--gold); border-color: var(--gold); }
.am-csv { font: inherit; font-size: 12.5px; font-weight: 600; color: var(--sage); background: transparent; border: 1px solid var(--line); border-radius: 999px; padding: 6px 11px; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s; }
.am-csv:hover { background: rgba(201,162,75,.12); color: var(--gold-soft); }
.am-modes { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 3px; gap: 2px; }
.am-mode { font: inherit; font-size: 13px; font-weight: 600; color: var(--sage); background: transparent; border: none; border-radius: 999px; padding: 6px 13px; cursor: pointer; white-space: nowrap; transition: background .2s, color .2s; }
.am-mode.is-on { background: var(--gold); color: var(--ink-2); }
.am-legend { display: flex; flex-wrap: wrap; gap: 8px 14px; font-size: 12px; color: var(--ivory-dim); }
.am-legend span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.am-legend span::before { content: ""; width: 11px; height: 11px; border-radius: 3px; background: rgba(244,239,225,.14); border: 1px solid var(--line); }
.am-legend span[data-t="A"]::before { background: #e6c56a; border-color: #e6c56a; }
.am-legend span[data-t="B"]::before { background: #b98f3e; border-color: #b98f3e; }
.am-legend span[data-t="C"]::before { background: #6f7b5a; border-color: #6f7b5a; }
/* recolour the map in "International standing" mode (active/hover always win) */
.am-mode-standing .am-country[data-tier="A"]:not(.is-active):not(.is-hover) { fill: rgba(230,197,106,.58); stroke: rgba(230,197,106,.85); }
.am-mode-standing .am-country[data-tier="B"]:not(.is-active):not(.is-hover) { fill: rgba(185,143,62,.5); stroke: rgba(185,143,62,.7); }
.am-mode-standing .am-country[data-tier="C"]:not(.is-active):not(.is-hover) { fill: rgba(111,123,90,.5); stroke: rgba(111,123,90,.7); }
/* panel: international-standing badges */
.am-standing { margin-top: 18px; display: flex; flex-direction: column; gap: 9px; }
.am-standing .am-k { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
.am-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.am-badge { display: inline-flex; align-items: baseline; gap: 6px; font-size: 13.5px; color: var(--ivory-dim); background: rgba(8,20,15,.4); border: 1px solid var(--line); border-radius: 8px; padding: 5px 10px; }
.am-badge b { font-size: 11px; letter-spacing: .06em; color: var(--sage); font-weight: 700; }
.am-badge.is-on { border-color: var(--gold); color: var(--ivory); background: rgba(201,162,75,.14); }
.am-badge.is-on b { color: var(--gold-soft); }
.am-verif { font-size: 11.5px; color: var(--sage-dim); }
.am-portal { display: inline-flex; align-items: center; gap: 7px; margin-top: 16px; font-size: 14px; font-weight: 600; color: var(--gold-soft); border: 1px solid var(--line); border-radius: 999px; padding: 8px 15px; transition: background .2s, color .2s, border-color .2s; }
.am-portal:hover { background: rgba(201,162,75,.14); color: var(--gold); border-color: var(--gold-soft); }
.am-methodology { max-width: var(--maxw); margin: 18px auto 0; padding-inline: var(--gutter); font-size: 13px; line-height: 1.6; color: var(--sage); }
.am-methodology a { color: var(--gold-soft); }
#amSvg { display: block; width: 100%; height: auto; overflow: visible; }
.am-country {
  fill: rgba(244,239,225,.055); stroke: rgba(201,162,75,.34); stroke-width: .7;
  stroke-linejoin: round; transition: fill .2s var(--ease), stroke .2s var(--ease);
}
.am-country.is-hover { fill: rgba(201,162,75,.24); stroke: rgba(201,162,75,.6); }
.am-country.is-active { fill: rgba(201,162,75,.46); stroke: var(--gold); stroke-width: 1; }
.am-inset { fill: none; stroke: rgba(201,162,75,.28); stroke-width: .8; stroke-dasharray: 3 4; }
.am-hit { fill: transparent; cursor: pointer; outline: none; }
.am-hit:focus-visible + .am-dot { r: 4.4; }
.am-dot { fill: var(--gold-soft); pointer-events: none; transition: r .2s var(--ease), fill .2s var(--ease); }
.am-dot.is-hover { fill: var(--gold); r: 3.6; }
.am-dot.is-active { fill: #fff; r: 4.2; }
.am-tag {
  position: absolute; z-index: 4; pointer-events: none;
  transform: translate(-50%, calc(-100% - 9px));   /* default: above the marker */
  background: var(--ink-2); color: var(--ivory); border: 1px solid var(--gold);
  font-size: 13.5px; font-weight: 600; letter-spacing: .01em; white-space: nowrap;
  padding: 4px 10px; border-radius: 999px; box-shadow: 0 10px 24px -12px rgba(0,0,0,.7);
}
.am-tag.am-tag--below { transform: translate(-50%, 9px); }   /* northern tier: flip below */
/* info panel */
.am-panel {
  flex: 1 1 36%; min-width: 0; display: flex; flex-direction: column; justify-content: center;
  background: linear-gradient(180deg, var(--panel), var(--forest-2));
  border: 1px solid var(--line); border-radius: var(--r); padding: clamp(22px, 3vw, 34px);
}
.am-hint .am-count { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.am-hint .am-count b { font-family: var(--serif); font-weight: 500; font-size: 46px; color: var(--gold-soft); line-height: 1; }
.am-hint .am-count span { font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--sage); }
.am-hint p { color: var(--ivory-dim); font-size: 16.5px; line-height: 1.7; }
.am-card .am-iso { display: inline-block; font-size: 12px; letter-spacing: .22em; color: var(--gold); border: 1px solid var(--line); border-radius: 6px; padding: 4px 9px; margin-bottom: 14px; }
.am-card .am-name { font-family: var(--serif); font-weight: 500; font-size: clamp(26px, 3.4vw, 34px); line-height: 1.1; color: var(--ivory); }
.am-card .am-alt { color: var(--sage); font-size: 16.5px; margin-top: 4px; }
.am-rows { margin-top: 22px; border-top: 1px solid var(--line); }
.am-row { display: flex; flex-direction: column; gap: 3px; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.am-row .am-k { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
.am-row .am-v { font-size: 17px; color: var(--ivory); line-height: 1.45; }
.am-row .am-v em { color: var(--gold-soft); font-style: normal; }
.am-note { margin-top: 18px; font-size: 14px; line-height: 1.6; color: var(--sage); }
@media (max-width: 880px) {
  .arabmap { flex-direction: column; }
  .am-stage, .am-panel { flex: 1 1 auto; }
}

/* =====================================================================
   Accessibility + polish (site audit)
   ===================================================================== */
.skip-link {
  position: fixed; top: 10px; left: 50%; transform: translate(-50%, -160%);
  z-index: 2147483001; background: var(--gold); color: var(--ink-2);
  font-weight: 600; font-size: 14px; padding: 10px 20px; border-radius: 999px;
  box-shadow: 0 14px 34px -12px rgba(0,0,0,.6); transition: transform .25s var(--ease);
}
.skip-link:focus-visible { transform: translate(-50%, 0); outline: 2px solid var(--ivory); outline-offset: 2px; }
#main:focus { outline: none; }

/* keyboard focus on interactive map states */
.am-hit:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 50%; }

/* back-to-top */
.to-top {
  position: fixed; inset-block-end: 22px; inset-inline-end: 22px; z-index: 55;
  width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%;
  background: var(--ink-2); color: var(--gold-soft); border: 1px solid var(--gold); cursor: pointer;
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .3s var(--ease), transform .3s var(--ease), background .2s, color .2s;
  box-shadow: 0 16px 36px -14px rgba(0,0,0,.7);
}
.to-top.show { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { background: var(--gold); color: var(--ink-2); }
.to-top:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 3px; }
.to-top svg { width: 20px; height: 20px; }

/* =====================================================================
   Print — a clean, branded document (atlas / register / any section)
   ===================================================================== */
@media print {
  body { background: #fff !important; color: #1b1b1b !important; overflow: visible; font-size: 12pt; }
  body::before, body::after { display: none !important; }
  .nav, .progress, .viewframe, .burger, .lang-toggle, .skip-link, .to-top,
  .modal, .admin-bar, .cms-toast, .am-controls, .am-tag, .hero-emblem, .spin, .gate-teaser { display: none !important; }
  .wrap { max-width: none; padding-inline: 0; }
  section { padding: 14px 0 !important; break-inside: avoid; }
  h1, h2, h3, .h-xl, .h-lg, .h-md { color: #12261c !important; }
  .lead, p, li, td, .card p, .reg .doc, .asset p, .am-v, .am-name { color: #222 !important; }
  a { color: #1a4d3a !important; }
  .am-country { fill: #e8eee9 !important; stroke: #9aa79a !important; }
  .am-panel { background: #f4f1e8 !important; border-color: #cfc8b4 !important; }
  .am-name, .am-badge { color: #12261c !important; }
}

/* =====================================================================
   GMP Readiness Self-Assessment + subscription funnel
   ===================================================================== */
#readiness { background: radial-gradient(52% 42% at 50% 0%, rgba(63,143,107,.13), transparent 62%); }
.gmp { display: grid; grid-template-columns: 1.55fr 1fr; gap: clamp(20px,3vw,36px); align-items: start; margin-top: clamp(28px,4vw,44px); }
@media (max-width: 940px) { .gmp { grid-template-columns: 1fr; } }

.gmp-tool { background: var(--ink-2); border: 1px solid var(--line); border-radius: var(--r); padding: clamp(18px,2.4vw,28px); }
.gmp-intro { color: var(--sage); font-size: 14px; line-height: 1.6; margin-bottom: 16px; }
.gmp-head { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.gmp-score { display: flex; align-items: baseline; gap: 8px; }
.gmp-num { font-family: var(--serif); font-weight: 500; font-size: 46px; line-height: 1; color: var(--gold-soft); font-variant-numeric: tabular-nums; }
.gmp-score span { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--sage); }
.gmp-band { flex: 1; min-width: 210px; }
.gmp-band b { display: block; font-weight: 600; font-size: 15px; color: var(--ivory); }
.gmp-band span { display: block; font-size: 12.5px; color: var(--sage); line-height: 1.5; margin-top: 2px; }
.gmp-band.tone-good b { color: #8fe0b0; } .gmp-band.tone-warn b { color: #e6c56a; } .gmp-band.tone-bad b { color: #f0a89f; }

.gmp-heatwrap { display: flex; align-items: center; gap: 12px; margin: 14px 0 4px; flex-wrap: wrap; }
.gmp-heat { display: flex; gap: 4px; flex-wrap: wrap; }
.gmp-cell { width: 22px; height: 10px; border-radius: 3px; background: rgba(244,239,225,.12); }
.gmp-prog { font-size: 11.5px; color: var(--sage); margin-inline-start: auto; font-variant-numeric: tabular-nums; }

.gmp-ch { border-bottom: 1px solid var(--line-soft); }
.gmp-ch-head { width: 100%; display: flex; align-items: center; gap: 12px; background: none; border: 0; color: var(--ivory); font: inherit; text-align: start; padding: 14px 2px; cursor: pointer; }
.gmp-ch-bar { position: relative; width: 46px; height: 5px; border-radius: 999px; background: rgba(244,239,225,.12); overflow: hidden; flex: none; }
.gmp-ch-bar i { position: absolute; inset-block: 0; inset-inline-start: 0; width: 0; background: var(--sage); transition: width .3s var(--ease); border-radius: 999px; }
.gmp-ch-name { font-weight: 500; font-size: 15px; }
.gmp-ch-ref { font-size: 11px; color: var(--sage); letter-spacing: .02em; }
.gmp-ch-pct { margin-inline-start: auto; font-weight: 700; font-size: 13px; color: var(--sage); font-variant-numeric: tabular-nums; }
.gmp-ch-caret { color: var(--sage); transition: transform .25s var(--ease); }
.gmp-ch-head[aria-expanded="true"] .gmp-ch-caret { transform: rotate(180deg); }
.gmp-ch-head:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 8px; }

.gmp-qs { padding: 2px 2px 14px; }
.gmp-q { padding: 10px 0; border-top: 1px dashed var(--line-soft); }
.gmp-q p { font-size: 14.5px; color: var(--ivory-dim); line-height: 1.55; margin-bottom: 10px; }
.gmp-opts { display: flex; gap: 8px; flex-wrap: wrap; }
.gmp-opt { font: inherit; font-size: 13px; font-weight: 600; color: var(--sage); background: rgba(8,20,15,.4); border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.gmp-opt:hover { border-color: var(--gold-soft); color: var(--ivory-dim); }
.gmp-opt:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.gmp-opt.is-sel.tone-good { background: #5cae86; color: #0f2019; border-color: transparent; }
.gmp-opt.is-sel.tone-warn { background: #dcb45c; color: #2a1e05; border-color: transparent; }
.gmp-opt.is-sel.tone-bad { background: #d96e64; color: #2a0d0a; border-color: transparent; }
.gmp-opt.is-sel.tone-na { background: rgba(154,167,154,.7); color: #0f2019; border-color: transparent; }

.gmp-weak { margin-top: 16px; background: rgba(201,162,75,.07); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.gmp-weak h4 { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-soft); margin-bottom: 8px; }
.gmp-weak ul { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.gmp-weak li { font-size: 14px; color: var(--ivory-dim); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gmp-weak li em { color: var(--sage); font-size: 11.5px; font-style: normal; margin-inline-start: auto; }
.gmp-weak .dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }

.gmp-actions { display: flex; gap: 12px; align-items: center; margin-top: 18px; flex-wrap: wrap; }
.gmp-reset { font: inherit; font-size: 13px; font-weight: 600; color: var(--sage); background: none; border: 1px solid var(--line); border-radius: 999px; padding: 11px 18px; cursor: pointer; }
.gmp-reset:hover { color: var(--ivory-dim); border-color: var(--gold-soft); }

/* shared tone fills */
.gmp-cell.tone-good, .gmp-ch-bar i.tone-good, .dot.tone-good { background: #5cae86; }
.gmp-cell.tone-warn, .gmp-ch-bar i.tone-warn, .dot.tone-warn { background: #dcb45c; }
.gmp-cell.tone-bad,  .gmp-ch-bar i.tone-bad,  .dot.tone-bad  { background: #d96e64; }
.gmp-num.tone-good { color: #8fe0b0; } .gmp-num.tone-warn { color: #e6c56a; } .gmp-num.tone-bad { color: #f0a89f; }
.gmp-ch-pct.tone-good { color: #8fe0b0; } .gmp-ch-pct.tone-warn { color: #e6c56a; } .gmp-ch-pct.tone-bad { color: #f0a89f; }

/* subscription funnel */
.gmp-upsell { background: linear-gradient(180deg, var(--panel), var(--forest-2)); border: 1px solid var(--gold); border-radius: var(--r); padding: clamp(20px,2.6vw,30px); position: sticky; top: 96px; }
.gmp-upsell h3 { font-family: var(--serif); font-weight: 500; font-size: 22px; margin: 10px 0; line-height: 1.15; }
.gmp-upsell > p { color: var(--ivory-dim); font-size: 14.5px; line-height: 1.6; }
.gmp-tiers { list-style: none; display: flex; flex-direction: column; gap: 10px; margin: 18px 0; }
.gmp-tiers li { display: grid; gap: 2px; background: rgba(8,20,15,.3); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
.gmp-tiers b { font-size: 14.5px; }
.gmp-tiers span { font-size: 12.5px; color: var(--sage); line-height: 1.45; }
.gmp-tiers em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--gold-soft); margin-top: 4px; }
.gmp-fee { font-size: 12.5px; color: var(--sage); line-height: 1.55; }
.gmp-upsell-cta { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.gmp-upsell-cta .btn { justify-content: center; }
@media (max-width: 940px) { .gmp-upsell { position: static; } }

.gmp-attach { font-size: 12px; color: #8fe0b0; margin: 8px 0 0; text-align: center; line-height: 1.5; }

/* edit mode: let clicks reach the photo (overlays/labels must not swallow them) */
.cms-on .member .ph::after, .cms-on .member .ph::before,
.cms-on .asset .cover::before, .cms-on .who-banner .doc-img::after { pointer-events: none; }
.cms-toast.err { cursor: pointer; max-width: min(560px, 92vw); }

/* ============================================================
   REGULATORY-CHANGE RADAR  +  LEAD CAPTURE  +  LEADS ADMIN
   ============================================================ */
#radar { background: radial-gradient(48% 40% at 96% 4%, rgba(63,143,107,.10), transparent 60%); }
.radar-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.radar-filters { display:flex; gap:9px; flex-wrap:wrap; }
.radar-chip { font:inherit; font-size:13px; letter-spacing:.02em; color:var(--ivory-dim); background:rgba(15,42,32,.5);
  border:1px solid var(--line-soft); border-radius:999px; padding:7px 15px; cursor:pointer; transition:all .22s var(--ease); }
.radar-chip:hover { border-color:var(--rc); color:var(--ivory); }
.radar-chip.is-on { background:color-mix(in srgb, var(--rc) 26%, transparent); border-color:var(--rc); color:var(--ivory); }
.radar-add { flex-shrink:0; }

.radar-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(310px,1fr)); gap:18px; }
.radar-card { position:relative; border:1px solid var(--line-soft); border-radius:16px; background:rgba(15,42,32,.5);
  padding:22px 24px 20px; transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
.radar-card:hover { border-color:rgba(201,162,75,.4); transform:translateY(-3px); box-shadow:0 20px 44px -26px rgba(0,0,0,.6); }
.radar-metarow { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:13px; }
.radar-date { font-size:12.5px; letter-spacing:.03em; color:var(--sage); font-variant-numeric:tabular-nums; }
.radar-cat { font-size:11px; letter-spacing:.09em; text-transform:uppercase; font-weight:600; padding:3px 10px; border-radius:999px;
  border:1px solid var(--rc); color:var(--ivory); background:color-mix(in srgb, var(--rc) 24%, transparent); }
.radar-country { font-size:12.5px; color:var(--sage-dim); }
.radar-title { font-family:var(--serif); font-weight:400; font-size:20.5px; line-height:1.3; color:var(--ivory); margin:0 0 8px; }
.radar-sum { font-size:15px; line-height:1.58; color:var(--ivory-dim); margin:0; }
.radar-foot { margin-top:14px; }
.radar-src { font-size:13px; letter-spacing:.02em; color:var(--gold-soft); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s; }
.radar-src:hover { border-bottom-color:var(--gold-soft); }
.radar-admin-actions { margin-inline-start:auto; display:flex; gap:6px; }
.radar-ico { width:26px; height:26px; display:grid; place-items:center; font-size:13px; line-height:1; cursor:pointer;
  color:var(--sage); background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:7px; transition:all .2s; }
.radar-ico:hover { color:var(--ivory); border-color:var(--gold); }
.radar-empty { text-align:center; color:var(--sage); font-size:15.5px; padding:34px 0; }
@media (max-width:560px){ .radar-list{ grid-template-columns:1fr; } }

/* ---- lead modal: snapshot panel, consent, success ---- */
.lead-snap { display:flex; align-items:center; gap:16px; margin:16px 0 4px; padding:15px 18px;
  border:1px solid rgba(201,162,75,.32); border-radius:12px; background:rgba(201,162,75,.08); }
.lead-snap .ls-score { font-family:var(--serif); font-size:34px; font-weight:700; color:var(--gold); line-height:1; }
.lead-snap .ls-txt { display:flex; flex-direction:column; gap:3px; font-size:14px; }
.lead-snap .ls-txt b { color:var(--ivory); font-weight:600; font-size:15px; }
.lead-snap .ls-txt em { color:var(--sage); font-style:normal; font-size:13px; }
.lead-snap .ls-gaps { color:var(--ivory-dim); font-size:12.5px; margin-top:2px; }
.mf-check { display:flex; align-items:flex-start; gap:10px; margin:6px 0 4px; font-size:13.5px; color:var(--sage); line-height:1.5; cursor:pointer; }
.mf-check input { margin-top:3px; accent-color:var(--gold); flex-shrink:0; }
.lead-done { text-align:center; padding:26px 10px 12px; }
.lead-done-ic { width:56px; height:56px; margin:0 auto 16px; display:grid; place-items:center; font-size:28px; color:var(--ink);
  background:var(--gold); border-radius:50%; }
.lead-done h4 { font-family:var(--serif); font-weight:400; font-size:23px; color:var(--ivory); margin:0 0 8px; }
.lead-done p { color:var(--ivory-dim); font-size:15px; line-height:1.6; max-width:38ch; margin:0 auto; }

/* ---- admin leads list ---- */
.leads-list { max-height:none; }
.leads-msg { color:var(--sage); font-size:14.5px; line-height:1.6; padding:18px 4px; }
.lead-item { border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.5); padding:14px 16px; }
.lead-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.lead-head b { color:var(--ivory); font-size:15.5px; }
.lead-score { font-family:var(--serif); font-weight:700; color:var(--gold); font-size:16px; }
.lead-band { font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); }
.lead-when { margin-inline-start:auto; font-size:12.5px; color:var(--sage-dim); font-variant-numeric:tabular-nums; }
.lead-org { color:var(--ivory-dim); font-size:14px; margin-top:5px; }
.lead-contact { font-size:13.5px; margin-top:5px; }
.lead-contact a { color:var(--gold-soft); text-decoration:none; }
.lead-contact a:hover { text-decoration:underline; }
.lead-gaps { font-size:13px; color:var(--sage); margin-top:7px; line-height:1.5; }
.lead-gaps span { color:var(--ivory-dim); font-weight:500; }
.lead-item .lead-msg { font-size:13.5px; color:var(--ivory-dim); font-style:italic; margin-top:7px; }
#leadForm .mf-row, #radarForm .mf-row { grid-template-columns:1fr 1fr; }
@media (max-width:560px){ #leadForm .mf-row, #radarForm .mf-row { grid-template-columns:1fr; } }

/* ============================================================
   FLAGSHIP PLATFORM — hub, RegPath, Halal-Pharma, Supply-Watch
   + IP-protection notices
   ============================================================ */
#platform  { background: radial-gradient(52% 42% at 50% 0%, rgba(63,143,107,.12), transparent 62%); }
#regpath   { background: radial-gradient(46% 40% at 4% 4%, rgba(201,162,75,.09), transparent 60%); }
#halal     { background: radial-gradient(46% 40% at 96% 4%, rgba(63,143,107,.12), transparent 60%); }
#supplywatch { background: radial-gradient(46% 40% at 4% 4%, rgba(201,162,75,.08), transparent 60%); }

.proprietary-ribbon { display:flex; align-items:center; justify-content:center; gap:9px; text-align:center;
  font-size:13px; letter-spacing:.02em; color:var(--gold-soft); background:rgba(201,162,75,.08);
  border:1px solid rgba(201,162,75,.28); border-radius:999px; padding:9px 18px; max-width:760px; margin:0 auto 30px; }

/* ---- platform hub cards ---- */
.platform-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:18px; }
.platform-card { position:relative; display:flex; flex-direction:column; gap:9px; text-decoration:none;
  border:1px solid var(--line-soft); border-radius:16px; background:rgba(15,42,32,.55); padding:24px 22px 20px;
  transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
.platform-card:hover { border-color:rgba(201,162,75,.45); transform:translateY(-4px); box-shadow:0 22px 46px -26px rgba(0,0,0,.6); }
.pc-badge { position:absolute; top:16px; right:16px; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--sage); border:1px solid var(--line-soft); border-radius:999px; padding:2px 9px; }
.pc-badge.new { color:var(--ink); background:var(--gold); border-color:var(--gold); }
html[dir="rtl"] .pc-badge { right:auto; left:16px; }
.pc-ic { font-size:26px; color:var(--gold); line-height:1; }
.platform-card h3 { font-family:var(--serif); font-weight:400; font-size:20px; color:var(--ivory); margin:2px 0 0; }
.platform-card p { font-size:14px; line-height:1.55; color:var(--ivory-dim); margin:0; flex:1; }
.pc-go { font-size:13.5px; color:var(--gold-soft); letter-spacing:.02em; margin-top:4px; }

/* ---- shared tool upsell ---- */
.tool-upsell { margin-top:30px; border:1px solid rgba(201,162,75,.32); border-radius:18px; padding:clamp(24px,4vw,40px);
  background:linear-gradient(155deg, rgba(24,58,45,.6), rgba(27,66,51,.55)); }
.tool-upsell h3 { font-family:var(--serif); font-weight:400; font-size:clamp(22px,3vw,28px); color:var(--ivory); margin:8px 0 10px; }
.tool-upsell > p { color:var(--ivory-dim); font-size:16px; line-height:1.6; max-width:70ch; margin:0 0 20px; }
.tool-tiers { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin:0 0 20px; padding:0; }
.tool-tiers li { border:1px solid var(--line-soft); border-radius:12px; background:rgba(8,20,15,.4); padding:16px 18px; display:flex; flex-direction:column; gap:5px; }
.tool-tiers b { font-size:15px; color:var(--ivory); font-weight:600; }
.tool-tiers span { font-size:13px; color:var(--sage); line-height:1.5; flex:1; }
.tool-tiers em { font-style:normal; font-weight:700; color:var(--gold); font-size:15.5px; margin-top:4px; }
.tool-upsell-cta { display:flex; gap:12px; flex-wrap:wrap; }
.tool-disclaimer { font-size:12.5px; color:var(--sage-dim); line-height:1.55; margin:16px 0 0; font-style:italic; }

/* ---- shared option-button tones (Halal + Supply) ---- */
.hz-opt, .sw-opt { flex:1; min-width:74px; font:inherit; font-size:13.5px; color:var(--ivory-dim); cursor:pointer;
  background:rgba(8,20,15,.45); border:1px solid var(--line-soft); border-radius:9px; padding:9px 8px; transition:all .2s var(--ease); }
.hz-opt:hover, .sw-opt:hover { border-color:var(--gold); color:var(--ivory); }
.tone-good.is-sel, .is-sel.tone-good { background:rgba(92,174,134,.16); border-color:#5cae86; color:#bfe8d2; }
.tone-warn.is-sel, .is-sel.tone-warn { background:rgba(220,180,92,.16); border-color:#dcb45c; color:#f0dca6; }
.tone-bad.is-sel,  .is-sel.tone-bad  { background:rgba(217,110,100,.16); border-color:#d96e64; color:#f2c2bc; }

/* ---- RegPath ---- */
.rp { display:grid; gap:20px; }
.rp-controls { display:flex; flex-wrap:wrap; gap:22px; align-items:flex-end; border:1px solid var(--line-soft);
  border-radius:16px; background:rgba(15,42,32,.5); padding:20px 22px; }
.rp-select { display:flex; flex-direction:column; gap:7px; min-width:230px; }
.rp-select > span, .rp-mk-lbl { font-size:13px; letter-spacing:.04em; color:var(--sage); }
.rp-select select { font:inherit; font-size:15.5px; color:var(--ivory); background:rgba(8,20,15,.6);
  border:1px solid var(--line-soft); border-radius:10px; padding:11px 13px; }
.rp-mk { display:flex; flex-direction:column; gap:8px; flex:1; }
.rp-markets { display:flex; gap:8px; flex-wrap:wrap; }
.rp-mkchip { font:inherit; font-size:13px; color:var(--ivory-dim); background:rgba(8,20,15,.45); border:1px solid var(--line-soft);
  border-radius:999px; padding:8px 15px; cursor:pointer; transition:all .2s var(--ease); }
.rp-mkchip:hover { border-color:var(--gold); color:var(--ivory); }
.rp-mkchip.is-on { background:var(--gold); border-color:var(--gold); color:var(--ink); font-weight:600; }
.rp-card { border:1px solid var(--line-soft); border-radius:16px; background:rgba(15,42,32,.5); padding:24px 26px; }
.rp-card-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.rp-card-head h3 { font-family:var(--serif); font-weight:400; font-size:22px; color:var(--ivory); margin:0; }
.rp-badge { font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(201,162,75,.4);
  background:rgba(201,162,75,.1); border-radius:999px; padding:3px 11px; }
.rp-row { display:grid; grid-template-columns:200px 1fr; gap:16px; padding:12px 0; border-top:1px solid var(--line-soft); }
.rp-row:first-of-type { border-top:none; }
.rp-k { font-size:13px; letter-spacing:.03em; color:var(--sage); text-transform:uppercase; }
.rp-v { font-size:15px; line-height:1.55; color:var(--ivory-dim); }
.rp-note { margin-top:14px; padding-top:14px; border-top:1px solid var(--line-soft); font-size:14px; color:var(--ivory-dim); line-height:1.55; }
.rp-note b { color:var(--gold-soft); }
.rp-cite { display:inline-block; margin-top:14px; font-size:13px; color:var(--gold-soft); text-decoration:none; }
.rp-cite:hover { text-decoration:underline; }
.rp-ask { display:flex; gap:10px; }
.rp-ask input { flex:1; font:inherit; font-size:15.5px; color:var(--ivory); background:rgba(8,20,15,.55);
  border:1px solid var(--line-soft); border-radius:11px; padding:13px 16px; }
.rp-ask input:focus { outline:none; border-color:var(--gold); }
.rp-answer { border:1px solid rgba(201,162,75,.28); border-radius:14px; background:rgba(201,162,75,.07); padding:18px 22px; }
.rp-answer p { margin:0 0 8px; font-size:15.5px; line-height:1.6; color:var(--ivory); }
@media (max-width:620px){ .rp-row{ grid-template-columns:1fr; gap:4px; } .rp-k{ font-size:12px; } }

/* ---- Halal-Pharma ---- */
.halal-tabs { display:flex; gap:8px; margin-bottom:20px; }
.halal-tab { font:inherit; font-size:14px; color:var(--ivory-dim); background:rgba(15,42,32,.5); border:1px solid var(--line-soft);
  border-radius:999px; padding:9px 18px; cursor:pointer; transition:all .2s var(--ease); }
.halal-tab:hover { border-color:var(--gold); }
.halal-tab.is-on { background:var(--gold); border-color:var(--gold); color:var(--ink); font-weight:600; }
#hzSearch { width:100%; font:inherit; font-size:16px; color:var(--ivory); background:rgba(8,20,15,.55);
  border:1px solid var(--line-soft); border-radius:12px; padding:14px 18px; margin-bottom:16px; }
#hzSearch:focus { outline:none; border-color:var(--gold); }
.hz-legend { display:flex; gap:18px; flex-wrap:wrap; margin-bottom:16px; }
.hz-leg { display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--sage); }
.hz-leg i { width:12px; height:12px; border-radius:3px; display:inline-block; }
.hz-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.hz-item { border:1px solid var(--line-soft); border-radius:13px; background:rgba(15,42,32,.5); padding:16px 18px; }
.hz-item-h { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; }
.hz-item-h b { font-size:15.5px; color:var(--ivory); }
.hz-tag { font-size:11px; letter-spacing:.03em; padding:3px 9px; border-radius:999px; white-space:nowrap;
  border:1px solid var(--hc); color:var(--ivory); background:color-mix(in srgb, var(--hc) 22%, transparent); }
.hz-item p { font-size:13.5px; line-height:1.55; color:var(--ivory-dim); margin:0; }
.hz-empty { color:var(--sage); font-size:15px; padding:20px 0; }
.halal-score { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.hz-num { font-family:var(--serif); font-size:44px; font-weight:700; line-height:1; }
.hz-band { display:flex; flex-direction:column; gap:3px; }
.hz-band b { color:var(--ivory); font-size:16px; }
.hz-band span { color:var(--sage); font-size:13px; }
.hz-q { border-top:1px solid var(--line-soft); padding:16px 0; }
.hz-q:first-child { border-top:none; }
.hz-q p { font-size:15px; color:var(--ivory-dim); line-height:1.5; margin:0 0 10px; }
.hz-opts, .sw-opts { display:flex; gap:8px; }

/* ---- Supply-Watch ---- */
.sw-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:22px; align-items:start; }
.sw-assess, .sw-feed-wrap { border:1px solid var(--line-soft); border-radius:16px; background:rgba(15,42,32,.5); padding:22px 24px; }
.sw-head { display:flex; align-items:center; gap:16px; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid var(--line-soft); }
.sw-score { display:flex; flex-direction:column; align-items:center; }
.sw-num { font-family:var(--serif); font-size:40px; font-weight:700; line-height:1; }
.sw-score span { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--sage); }
.sw-band b { display:block; color:var(--ivory); font-size:16px; }
.sw-band span { color:var(--sage); font-size:13px; }
.sw-q { border-top:1px solid var(--line-soft); padding:13px 0; }
.sw-q:first-child { border-top:none; }
.sw-q p { font-size:14.5px; color:var(--ivory-dim); line-height:1.5; margin:0 0 9px; }
.sw-feed-wrap h4 { font-family:var(--serif); font-weight:400; font-size:19px; color:var(--ivory); margin:0 0 14px; }
.sw-feed { display:flex; flex-direction:column; gap:14px; }
.sw-sig { border:1px solid var(--line-soft); border-radius:12px; background:rgba(8,20,15,.4); padding:14px 16px; }
.sw-sig-h { display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:8px; }
.sw-sev { font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; font-weight:700; padding:2px 9px; border-radius:999px;
  border:1px solid var(--sc); color:var(--ivory); background:color-mix(in srgb, var(--sc) 24%, transparent); }
.sw-sig-h time { font-size:12px; color:var(--sage); font-variant-numeric:tabular-nums; }
.sw-scope { font-size:12px; color:var(--sage-dim); }
.sw-sig h5 { font-family:var(--serif); font-weight:400; font-size:16.5px; color:var(--ivory); margin:0 0 6px; line-height:1.35; }
.sw-sig p { font-size:13.5px; color:var(--ivory-dim); line-height:1.5; margin:0 0 8px; }
.sw-src { font-size:12.5px; color:var(--gold-soft); text-decoration:none; }
.sw-src:hover { text-decoration:underline; }
@media (max-width:820px){ .sw-grid{ grid-template-columns:1fr; } }

/* ---- footer legal ---- */
.footer-legal { font-size:12.5px; line-height:1.65; color:var(--sage); max-width:none; margin:0 0 20px;
  padding:16px 20px; border:1px solid var(--line-soft); border-radius:12px; background:rgba(8,20,15,.3); }
.footer-legal b { color:var(--ivory-dim); }

/* ---- IP-protection toast ---- */
.protect-toast { position:fixed; left:50%; bottom:26px; transform:translate(-50%,20px); z-index:9999;
  background:#2a1414; color:#f2c2bc; border:1px solid #d96e64; border-radius:10px; padding:12px 20px; font-size:14px;
  max-width:min(560px,92vw); text-align:center; opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; }
.protect-toast.show { opacity:1; transform:translate(-50%,0); }
[data-protected] { -webkit-user-drag:none; }

/* RegPath AI assistant states */
.rp-loading { color:var(--sage); font-size:15px; margin:0; }
.rp-loading::after { content:"…"; animation:rpDots 1.2s steps(4,end) infinite; }
@keyframes rpDots { 0%{opacity:.3} 50%{opacity:1} 100%{opacity:.3} }
.rp-ai-tag { margin-bottom:8px; }
.rp-ai-badge { font-size:11px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; color:var(--ink);
  background:var(--gold); border-radius:999px; padding:3px 11px; }
.rp-auth { font-size:13px; color:var(--sage); margin:-6px 0 14px; line-height:1.5; }
html[dir="rtl"] .rp-auth { text-align:right; }

/* ---- Traffic / visitor analytics dashboard ---- */
.st-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:6px 0 22px; }
.st-kpi { border:1px solid var(--line-soft); border-radius:12px; background:rgba(8,20,15,.4); padding:16px 14px; text-align:center; }
.st-kpi b { display:block; font-family:var(--serif); font-size:30px; font-weight:700; color:var(--gold); line-height:1; }
.st-kpi span { display:block; font-size:12px; color:var(--sage); margin-top:6px; letter-spacing:.02em; }
.st-chart-wrap { margin-bottom:24px; }
.st-chart-wrap h4, .st-panel h4 { font-family:var(--serif); font-weight:400; font-size:17px; color:var(--ivory); margin:0 0 12px; }
.st-chart { display:flex; align-items:flex-end; gap:5px; height:120px; padding:6px 2px 0; border-bottom:1px solid var(--line-soft); }
.st-col { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:5px; }
.st-col i { display:block; width:100%; max-width:26px; background:linear-gradient(180deg,var(--gold),var(--gold-deep)); border-radius:4px 4px 0 0; transition:height .4s var(--ease); }
.st-col b { font-size:10px; color:var(--sage-dim); font-weight:400; font-variant-numeric:tabular-nums; }
.st-cols { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.st-panel { border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.4); padding:16px 18px; }
.st-row { display:grid; grid-template-columns:1fr 90px auto; align-items:center; gap:10px; padding:6px 0; }
.st-lbl { font-size:13.5px; color:var(--ivory-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.st-bar { height:7px; background:rgba(8,20,15,.5); border-radius:999px; overflow:hidden; }
.st-bar i { display:block; height:100%; background:var(--gold-soft); border-radius:999px; }
.st-n { font-size:13px; color:var(--ivory); font-variant-numeric:tabular-nums; white-space:nowrap; }
.st-n em { color:var(--sage); font-style:normal; font-size:12px; }
.st-empty { color:var(--sage); font-size:13.5px; }
@media (max-width:640px){ .st-kpis{ grid-template-columns:repeat(2,1fr);} .st-cols{ grid-template-columns:1fr; } }

/* public visitor counter (footer) */
.visitor-counter { text-align:center; font-size:13px; color:var(--sage); margin:0 0 14px; letter-spacing:.02em; }
.visitor-counter b { color:var(--gold-soft); font-weight:600; font-variant-numeric:tabular-nums; }
.visitor-counter .vc-ic { opacity:.8; }
.visitor-counter .vc-dot { display:inline-block; width:7px; height:7px; border-radius:50%; background:#5cae86; margin-inline-end:2px; vertical-align:middle; box-shadow:0 0 0 0 rgba(92,174,134,.6); animation:vcPulse 2s infinite; }
@keyframes vcPulse { 0%{box-shadow:0 0 0 0 rgba(92,174,134,.5)} 70%{box-shadow:0 0 0 6px rgba(92,174,134,0)} 100%{box-shadow:0 0 0 0 rgba(92,174,134,0)} }
@media (prefers-reduced-motion: reduce){ .visitor-counter .vc-dot{ animation:none; } }
/* conversions panel in the Traffic dashboard */
.st-actions { margin-top:16px; }

/* "What they actually came for" — section interest */
.st-sections { margin:18px 0 0; }
.st-sections .st-lbl { white-space:normal; }
.st-sections .st-bar i { background:var(--gold); }
.st-sub { font-family:var(--sans); font-style:normal; font-size:12px; color:var(--sage-dim); letter-spacing:.04em; }
.st-note { margin:12px 0 0; font-size:12px; line-height:1.5; color:var(--sage-dim); }

/* RegPath market filter */
.rp-mkfilter { width:100%; max-width:340px; font:inherit; font-size:14px; color:var(--ivory); background:rgba(8,20,15,.5);
  border:1px solid var(--line-soft); border-radius:9px; padding:9px 13px; margin-bottom:10px; }
.rp-mkfilter::placeholder { color:var(--sage-dim); }
.rp-mkfilter:focus { outline:none; border-color:var(--gold); }

/* ============================================================
   Compare · Renewal tracker · Halal registry · Subscribe · Lead tiers
   ============================================================ */
#tracker { background: radial-gradient(46% 40% at 96% 4%, rgba(201,162,75,.08), transparent 60%); }

/* RegPath compare */
.rp-compare-ctl { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:12px; }
.rp-cmp-btn { font:inherit; font-size:13px; color:var(--ivory-dim); background:rgba(8,20,15,.45); border:1px solid var(--line-soft); border-radius:999px; padding:8px 15px; cursor:pointer; transition:all .2s var(--ease); }
.rp-cmp-btn:hover { border-color:var(--gold); }
.rp-cmp-btn.is-on { background:var(--gold); border-color:var(--gold); color:var(--ink); font-weight:600; }
.rp-cmp-sel { font:inherit; font-size:14px; color:var(--ivory); background:rgba(8,20,15,.6); border:1px solid var(--line-soft); border-radius:9px; padding:8px 12px; max-width:260px; }
.rp-compare { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:760px){ .rp-compare{ grid-template-columns:1fr; } }

/* Renewal tracker */
.trk { display:grid; gap:18px; }
.trk-form { display:grid; grid-template-columns:1.4fr 1.2fr auto 90px auto; gap:10px; align-items:center;
  border:1px solid var(--line-soft); border-radius:14px; background:rgba(15,42,32,.5); padding:16px 18px; }
.trk-form input { font:inherit; font-size:14.5px; color:var(--ivory); background:rgba(8,20,15,.55); border:1px solid var(--line-soft); border-radius:9px; padding:10px 12px; }
.trk-form input:focus { outline:none; border-color:var(--gold); }
.trk-table { display:flex; flex-direction:column; border:1px solid var(--line-soft); border-radius:14px; overflow:hidden; }
.trk-row { display:grid; grid-template-columns:1.5fr 1.3fr 1.1fr 1fr 40px; gap:12px; align-items:center; padding:12px 18px; border-top:1px solid var(--line-soft); font-size:14px; color:var(--ivory-dim); }
.trk-row:first-child { border-top:none; }
.trk-head { background:rgba(8,20,15,.4); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--sage); }
.trk-p { color:var(--ivory); font-weight:500; }
.trk-st { font-weight:600; font-variant-numeric:tabular-nums; }
.trk-st.tone-good { color:#79c79f; } .trk-st.tone-warn { color:#e6c774; } .trk-st.tone-bad { color:#e89a91; } .trk-st.tone-na { color:var(--sage); }
.trk-del { width:26px; height:26px; border-radius:7px; border:1px solid var(--line-soft); background:rgba(8,20,15,.5); color:var(--sage); cursor:pointer; }
.trk-del:hover { color:var(--ivory); border-color:var(--gold); }
.trk-empty { color:var(--sage); font-size:15px; padding:22px 0; text-align:center; }
.trk-actions { display:flex; gap:12px; }
@media (max-width:720px){ .trk-form{ grid-template-columns:1fr 1fr; } .trk-row{ grid-template-columns:1.4fr 1fr 40px; } .trk-row span:nth-child(3){ display:none; } .trk-head span:nth-child(3){ display:none; } }

/* Halal registry */
.hz-registry { margin-top:30px; border-top:1px solid var(--line-soft); padding-top:28px; }
.hz-reg-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:14px; flex-wrap:wrap; }
.hz-reg-head h3 { font-family:var(--serif); font-weight:400; font-size:22px; color:var(--ivory); margin:0; }
#hzRegSearch { width:100%; font:inherit; font-size:15px; color:var(--ivory); background:rgba(8,20,15,.55); border:1px solid var(--line-soft); border-radius:11px; padding:12px 15px; margin-bottom:16px; }
#hzRegSearch:focus { outline:none; border-color:var(--gold); }
.hz-reg-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.hz-reg { border:1px solid var(--line-soft); border-radius:13px; background:rgba(15,42,32,.5); padding:16px 18px; }
.hz-reg-h { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.hz-reg-h b { font-size:15.5px; color:var(--ivory); }
.hz-reg-m { font-size:13.5px; color:var(--ivory-dim); margin-bottom:8px; }
.hz-reg-f { display:flex; gap:12px; flex-wrap:wrap; align-items:center; font-size:12.5px; color:var(--sage); }
.hz-reg-adm { margin-inline-start:auto; display:flex; gap:6px; }

/* Newsletter subscribe (footer) */
.footer-subscribe { margin:0 0 22px; padding:18px 20px; border:1px solid rgba(201,162,75,.28); border-radius:14px; background:rgba(201,162,75,.06); max-width:560px; }
.sub-lbl { display:block; font-size:14.5px; color:var(--ivory); margin-bottom:10px; font-weight:500; }
.sub-row { display:flex; gap:10px; }
.sub-row input { flex:1; font:inherit; font-size:15px; color:var(--ivory); background:rgba(8,20,15,.55); border:1px solid var(--line-soft); border-radius:10px; padding:11px 14px; }
.sub-row input:focus { outline:none; border-color:var(--gold); }
.sub-done { color:#7fce9f; font-size:15px; }
@media (max-width:520px){ .sub-row{ flex-direction:column; } }

/* Lead tiers + reply (admin) */
.lead-tier { font-size:11px; letter-spacing:.04em; padding:2px 8px; border-radius:999px; font-weight:600; white-space:nowrap; }
.lt-hot { background:rgba(217,110,100,.2); color:#f2c2bc; border:1px solid #d96e64; }
.lt-warm { background:rgba(220,180,92,.16); color:#f0dca6; border:1px solid #dcb45c; }
.lt-cool { background:rgba(154,167,154,.12); color:var(--sage); border:1px solid var(--line-soft); }
.lead-reply { color:var(--gold-soft); text-decoration:none; }
.lead-reply:hover { text-decoration:underline; }

/* ============================================================
   TRAINING & WORKSHOPS
   ============================================================ */
#training { background: radial-gradient(48% 40% at 6% 4%, rgba(63,143,107,.12), transparent 60%); }
.trn-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:26px; }
.trn-add { flex-shrink:0; }
.trn-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:18px; }
.trn-card { display:flex; flex-direction:column; border:1px solid var(--line-soft); border-radius:16px; background:rgba(15,42,32,.55);
  padding:22px 24px 20px; transition:border-color .3s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease); }
.trn-card:hover { border-color:rgba(201,162,75,.4); transform:translateY(-3px); box-shadow:0 20px 44px -26px rgba(0,0,0,.6); }
.trn-card-h { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px; }
.trn-st { font-size:11px; letter-spacing:.07em; text-transform:uppercase; font-weight:700; padding:3px 10px; border-radius:999px;
  border:1px solid var(--sc); color:var(--ivory); background:color-mix(in srgb, var(--sc) 22%, transparent); }
.trn-adm { display:flex; gap:6px; }
.trn-card h3 { font-family:var(--serif); font-weight:400; font-size:20.5px; line-height:1.3; color:var(--ivory); margin:0 0 8px; }
.trn-card p { font-size:14.5px; line-height:1.55; color:var(--ivory-dim); margin:0 0 14px; flex:1; }
.trn-meta { display:flex; flex-wrap:wrap; gap:8px 16px; font-size:13px; color:var(--sage); margin-bottom:16px; }
.trn-meta .trn-fee { color:var(--gold); font-weight:600; }
.trn-foot { margin-top:auto; }
.trn-reg { width:100%; }
.trn-closed { display:inline-block; font-size:13.5px; color:var(--sage); }
.trn-empty { text-align:center; color:var(--sage); font-size:15.5px; padding:34px 0; max-width:60ch; margin-inline:auto; }
@media (max-width:560px){ .trn-list{ grid-template-columns:1fr; } }

/* Training: calendar / pay / certificate buttons */
.trn-foot { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.trn-reg { width:auto; flex:1 1 auto; min-width:150px; }
.trn-pay { flex:0 0 auto; }
.trn-ics { font:inherit; font-size:12.5px; color:var(--sage); background:transparent; border:1px solid var(--line-soft); border-radius:8px; padding:7px 12px; cursor:pointer; transition:border-color .2s, color .2s; }
.trn-ics:hover { border-color:var(--gold); color:var(--ivory); }
.trn-cert-btn { font:inherit; font-size:12.5px; color:var(--gold-soft); background:rgba(201,162,75,.08); border:1px solid rgba(201,162,75,.28); border-radius:8px; padding:6px 12px; cursor:pointer; margin-top:8px; }
.trn-cert-btn:hover { background:rgba(201,162,75,.16); color:var(--ivory); }

/* ============================================================
   FORUMS
   ============================================================ */
#forums { background: radial-gradient(50% 42% at 6% 4%, rgba(63,143,107,.12), transparent 62%); }
.fm-empty { text-align:center; color:var(--sage); font-size:15.5px; padding:34px 0; }
.fm-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:14px; }
.fm-cat { display:flex; align-items:center; gap:14px; text-align:start; width:100%; cursor:pointer;
  border:1px solid var(--line-soft); border-radius:14px; background:rgba(15,42,32,.55); padding:18px 20px;
  transition:border-color .25s var(--ease), transform .25s var(--ease); font:inherit; color:inherit; }
.fm-cat:hover { border-color:rgba(201,162,75,.42); transform:translateY(-2px); }
.fm-ic { font-size:26px; line-height:1; flex-shrink:0; }
.fm-cat-b { display:flex; flex-direction:column; gap:3px; flex:1; min-width:0; }
.fm-cat-b b { color:var(--ivory); font-size:16px; font-weight:600; }
.fm-desc { color:var(--ivory-dim); font-size:13px; line-height:1.5; }
.fm-count { text-align:center; color:var(--gold); font-family:var(--serif); font-size:20px; font-weight:700; flex-shrink:0; }
.fm-count em { display:block; font-style:normal; font-family:var(--sans); font-size:10.5px; color:var(--sage); text-transform:uppercase; letter-spacing:.05em; font-weight:400; }

.fm-crumb { font-size:13px; color:var(--sage); margin-bottom:16px; }
.fm-crumb a { color:var(--gold-soft); text-decoration:none; }
.fm-crumb a:hover { text-decoration:underline; }
.fm-crumb .fm-sep { margin:0 8px; color:var(--sage-dim); }
.fm-bar { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.fm-bar h3 { font-family:var(--serif); font-weight:400; font-size:24px; color:var(--ivory); margin:0; }

.fm-threads { display:flex; flex-direction:column; gap:8px; }
.fm-thread { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; text-align:start; cursor:pointer;
  border:1px solid var(--line-soft); border-radius:11px; background:rgba(15,42,32,.5); padding:14px 18px; font:inherit; color:inherit; transition:border-color .2s; }
.fm-thread:hover { border-color:var(--gold); }
.fm-thread-b { display:flex; flex-direction:column; gap:3px; min-width:0; }
.fm-thread-b b { color:var(--ivory); font-size:15.5px; font-weight:500; }
.fm-meta { font-size:12.5px; color:var(--sage); }
.fm-badge { font-size:10px; letter-spacing:.05em; text-transform:uppercase; padding:2px 7px; border-radius:999px; vertical-align:middle; }
.fm-badge.pin { color:#f0dca6; background:rgba(220,180,92,.16); border:1px solid #dcb45c; }
.fm-badge.lock { color:#f2c2bc; background:rgba(217,110,100,.16); border:1px solid #d96e64; }
.fm-adm { display:flex; gap:6px; flex-shrink:0; }
.fm-ico { width:28px; height:28px; display:grid; place-items:center; font-size:13px; cursor:pointer;
  background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:7px; color:var(--sage); }
.fm-ico:hover { color:var(--ivory); border-color:var(--gold); }

.fm-form { display:flex; flex-direction:column; gap:10px; margin-top:16px; border:1px solid var(--line-soft); border-radius:14px; background:rgba(15,42,32,.5); padding:18px 20px; }
.fm-form input:not(.fm-hp), .fm-form textarea { font:inherit; font-size:15px; color:var(--ivory); background:rgba(8,20,15,.55); border:1px solid var(--line-soft); border-radius:10px; padding:12px 14px; resize:vertical; }
.fm-form input:focus, .fm-form textarea:focus { outline:none; border-color:var(--gold); }
.fm-form input::placeholder, .fm-form textarea::placeholder { color:var(--sage-dim); }
.fm-form-a { display:flex; gap:10px; }
.fm-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }

.fm-post { border:1px solid var(--line-soft); border-radius:13px; background:rgba(15,42,32,.5); padding:16px 20px; margin-bottom:12px; }
.fm-op { border-color:rgba(201,162,75,.28); background:rgba(24,58,45,.55); }
.fm-post-h { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.fm-post-h b { color:var(--gold-soft); font-size:14px; }
.fm-post-h span { color:var(--sage); font-size:12.5px; }
.fm-post-h .fm-ico { margin-inline-start:auto; }
/* forum reactions: 👍 helpful + ★ best answer */
.fm-post-f { display:flex; align-items:center; gap:10px; margin-top:14px; }
.fm-help { font:inherit; font-size:12.5px; font-weight:600; color:var(--ivory-dim); background:transparent; border:1px solid var(--line); border-radius:999px; padding:5px 14px; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.fm-help:hover:not([disabled]) { color:var(--ivory); border-color:var(--gold-soft); background:rgba(201,162,75,.08); }
.fm-help.voted { color:var(--gold-soft); border-color:color-mix(in srgb, var(--gold) 45%, transparent); background:rgba(201,162,75,.12); cursor:default; }
.fm-help span { font-variant-numeric:tabular-nums; margin-inline-start:2px; }
.fm-bestbtn { font:inherit; font-size:12px; font-weight:600; color:var(--sage); background:transparent; border:1px solid var(--line-soft); border-radius:999px; padding:5px 13px; cursor:pointer; transition:color .2s, border-color .2s, background .2s; }
.fm-bestbtn:hover { color:#8fe0b3; border-color:color-mix(in srgb, #2f9e6e 45%, transparent); }
.fm-bestbtn.on { color:#8fe0b3; border-color:color-mix(in srgb, #2f9e6e 55%, transparent); background:rgba(47,158,110,.12); }
.fm-best-badge { flex:none; font-size:11px; font-weight:700; letter-spacing:.02em; color:#8fe0b3; background:rgba(47,158,110,.16); border:1px solid color-mix(in srgb, #2f9e6e 45%, transparent); padding:2px 10px; border-radius:999px; }
.fm-post.fm-best { border-color:color-mix(in srgb, #2f9e6e 42%, transparent); box-shadow:inset 3px 0 0 -1px #2f9e6e; }
body.lang-ar .fm-post.fm-best { box-shadow:inset -3px 0 0 -1px #2f9e6e; }
.fm-op h3 { font-family:var(--serif); font-weight:400; font-size:21px; color:var(--ivory); margin:2px 0 10px; }
.fm-body { font-size:15px; line-height:1.65; color:var(--ivory-dim); word-wrap:break-word; }
.fm-replies-h { font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--sage); margin:22px 0 12px; }
.fm-locked { text-align:center; color:var(--sage); font-size:14.5px; padding:16px; border:1px dashed var(--line-soft); border-radius:12px; margin-top:16px; }
@media (max-width:560px){ .fm-grid{ grid-template-columns:1fr; } }

/* Forum membership gate */
.fm-gate { max-width:520px; margin:0 auto; text-align:center; border:1px solid rgba(201,162,75,.3); border-radius:18px;
  background:linear-gradient(155deg, rgba(24,58,45,.6), rgba(27,66,51,.5)); padding:clamp(28px,5vw,44px); }
.fm-gate-ic { font-size:34px; }
.fm-gate h3 { font-family:var(--serif); font-weight:400; font-size:26px; color:var(--ivory); margin:12px 0 8px; }
.fm-gate p { color:var(--ivory-dim); font-size:15.5px; line-height:1.6; margin:0 0 20px; }
.fm-join { text-align:start; background:transparent; border:none; padding:0; }
.fm-gate-alt { text-align:center; font-size:13.5px; margin:6px 0 0; }
.fm-gate-alt a { color:var(--gold-soft); text-decoration:none; }
.fm-gate-alt a:hover { text-decoration:underline; }

/* Forum admin: members management */
.fm-adminbar { display:flex; justify-content:flex-end; gap:10px; margin-bottom:14px; }
.fm-notif-btn { position:relative; }
.fm-notif-btn.has-new { border-color:#dcb45c; color:#f0dca6; }
.fm-notif-badge { display:inline-block; min-width:18px; text-align:center; font-size:11px; font-weight:700; line-height:18px; color:#1b2b22; background:var(--gold); border-radius:999px; padding:0 5px; margin-inline-start:4px; }
.fm-notifs { margin:0 0 16px; border:1px solid rgba(201,162,75,.28); border-radius:14px; background:rgba(15,42,32,.55); overflow:hidden; }
.fm-notif-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 16px; border-bottom:1px solid var(--line-soft); background:rgba(201,162,75,.06); }
.fm-notif-head b { font-size:13.5px; color:var(--ivory); }
.fm-notif-mark { font-size:12px; color:var(--gold); background:none; border:0; cursor:pointer; text-decoration:underline; }
.fm-notif-empty { padding:14px 16px; color:var(--ivory-dim); font-size:13px; margin:0; }
.fm-notif-list { display:flex; flex-direction:column; max-height:340px; overflow-y:auto; }
.fm-notif-item { display:flex; align-items:center; gap:10px; width:100%; text-align:start; background:none; border:0; border-bottom:1px solid rgba(201,162,75,.1); padding:11px 16px; cursor:pointer; color:var(--ivory); }
.fm-notif-item:last-child { border-bottom:0; }
.fm-notif-item:hover { background:rgba(201,162,75,.07); }
.fm-notif-tag { flex:none; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; padding:2px 7px; border-radius:999px; }
.fm-notif-tag.thread { color:#f0dca6; background:rgba(220,180,92,.16); border:1px solid #dcb45c; }
.fm-notif-tag.reply { color:#8fd0b0; background:rgba(90,180,140,.14); border:1px solid #4f9d78; }
.fm-notif-tx { flex:1; min-width:0; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fm-notif-tx b { color:var(--ivory); }
.fm-notif-when { flex:none; font-size:11.5px; color:var(--ivory-dim); white-space:nowrap; }
.fm-mcount { font-size:14px; color:var(--gold); background:rgba(201,162,75,.1); border:1px solid rgba(201,162,75,.3); border-radius:999px; padding:1px 10px; vertical-align:middle; }
.fm-members { display:flex; flex-direction:column; gap:8px; }
.fm-member { display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid var(--line-soft); border-radius:11px; background:rgba(15,42,32,.5); padding:12px 16px; }
.fm-member.is-blocked { opacity:.72; border-color:rgba(217,110,100,.4); }
.fm-member-b { display:flex; flex-direction:column; gap:2px; min-width:0; }
.fm-member-b b { color:var(--ivory); font-size:15px; }
.fm-member-b span { color:var(--ivory-dim); font-size:13px; }
.fm-member-b em { color:var(--sage); font-size:12px; font-style:normal; }
.fm-member .btn { flex-shrink:0; padding:8px 16px; }
.fm-block { color:#f2c2bc !important; border-color:rgba(217,110,100,.4) !important; }
.fm-block:hover { background:rgba(217,110,100,.14) !important; }

/* ===== Live from AUPAM (homepage activity strip) ===== */
#live { background: radial-gradient(60% 44% at 6% 2%, rgba(63,143,107,.12), transparent 60%); }
.live { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:30px; }
@media (max-width:820px){ .live { grid-template-columns:1fr; gap:16px; } }
.live-card {
  background: linear-gradient(180deg, var(--panel), var(--ink-2));
  border:1px solid var(--line-soft); border-radius:var(--r);
  padding:22px 24px; position:relative; overflow:hidden;
  transition: border-color .4s, background .4s;
}
.live-card::before { content:""; position:absolute; top:0; inset-inline-start:0; height:2px; width:0; background:linear-gradient(90deg, var(--gold), var(--gold-soft)); transition:width .45s var(--ease); }
.live-card:hover { border-color:var(--line); background:linear-gradient(180deg, var(--panel-2), var(--ink-2)); }
.live-card:hover::before { width:100%; }
.live-card-h { display:flex; align-items:center; gap:10px; padding-bottom:12px; margin-bottom:4px; border-bottom:1px solid var(--line-soft); }
.live-card-h h3 { flex:1; margin:0; font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ivory); letter-spacing:.2px; }
.live-ic { font-size:18px; line-height:1; }
.live-more { flex-shrink:0; font-size:13px; font-weight:600; color:var(--gold); text-decoration:none; white-space:nowrap; opacity:.9; transition:opacity .25s, color .25s; }
.live-more:hover { opacity:1; color:var(--gold-soft); }
.live-list { list-style:none; margin:0; padding:0; }
.live-item { border-top:1px solid var(--line-soft); }
.live-item:first-child { border-top:0; }
.live-link { display:block; padding:12px 6px; margin:0 -6px; text-decoration:none; color:inherit; border-radius:10px; transition:background .2s, padding-inline-start .2s; }
.live-link:hover { background:rgba(201,162,75,.08); padding-inline-start:14px; }
.live-title {
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  font-size:15.5px; font-weight:600; line-height:1.4; color:var(--ivory);
}
.live-ext { color:var(--sage); font-size:12px; font-weight:400; }
.live-meta { display:block; margin-top:5px; font-size:12.5px; color:var(--sage); letter-spacing:.1px; }
.live-pin { margin-inline-end:5px; }
.live-tag { display:inline-block; font-size:10.5px; font-weight:700; padding:1px 8px; border-radius:999px; letter-spacing:.4px; vertical-align:1px; text-transform:uppercase; }
.live-tag.reg-ar { background:rgba(201,162,75,.2); color:var(--gold-soft); }
.live-tag.reg-int { background:rgba(154,167,154,.16); color:var(--sage); }
.live-empty { color:var(--sage); font-size:14px; padding:16px 6px; }
body.lang-ar .live-link:hover { padding-inline-start:6px; padding-inline-end:14px; }

/* ===== Reference-Product Register (BE comparators) ===== */
#register { background: radial-gradient(56% 40% at 96% 4%, rgba(63,143,107,.12), transparent 62%); }
.rld-disclaimer {
  margin:0 0 22px; padding:14px 18px; font-size:13px; line-height:1.65; color:var(--ivory-dim);
  background:linear-gradient(180deg, rgba(201,162,75,.08), rgba(201,162,75,.03));
  border:1px solid var(--line); border-inline-start:3px solid var(--gold); border-radius:12px; max-width:96ch;
}
.rld-disclaimer b { color:var(--ivory); font-weight:600; }
.rld-table { min-width:900px; }
.rld-mol b { display:block; color:var(--ivory); font-weight:600; font-size:14.5px; line-height:1.35; }
.rld-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.rld-cls { display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:1px 8px; border-radius:999px; }
.rld-cls-G { color:var(--sage); background:rgba(154,167,154,.14); }
.rld-cls-B { color:var(--gold-soft); background:rgba(201,162,75,.16); }
.rld-form { color:var(--ivory-dim); font-size:13px; white-space:nowrap; }
.rld-brand { color:var(--ivory-dim); font-size:13.5px; }
.rld-method { min-width:200px; }
.rld-mfull { display:block; margin-top:6px; color:var(--sage); font-size:11.5px; line-height:1.5; max-width:34ch; }
.rld-notes { color:var(--sage); font-size:12.5px; max-width:22ch; }
.rld-dash { color:var(--line); }
.rld-wd { background:rgba(165,53,43,.07); }
.rld-wd:hover { background:rgba(165,53,43,.12) !important; }
.rld-wd td { box-shadow: inset 3px 0 0 -1px rgba(165,53,43,.55); }
body.lang-ar .rld-wd td { box-shadow: inset -3px 0 0 -1px rgba(165,53,43,.55); }
.rld-warn { color:#e0897f; }
.rld-wdcount { color:#e0897f; font-weight:600; }
.rld-sources { margin-top:18px; border-top:1px solid var(--line-soft); padding-top:14px; }
.rld-sources summary { cursor:pointer; font-size:13px; font-weight:600; color:var(--gold-soft); list-style:none; padding:4px 0; }
.rld-sources summary::-webkit-details-marker { display:none; }
.rld-sources summary::before { content:"▸ "; color:var(--gold); }
.rld-sources[open] summary::before { content:"▾ "; }
.rld-sources ol { margin:10px 0 0; padding-inline-start:22px; color:var(--sage); font-size:12.5px; line-height:1.7; }
.rld-sources li { margin-bottom:5px; }
.rld-sources a { color:var(--ivory-dim); text-decoration:none; border-bottom:1px solid var(--line); }
.rld-sources a:hover { color:var(--gold-soft); border-color:var(--gold-soft); }
@media (max-width:720px){ .rld-mfull, .rld-notes { max-width:none; } }
/* per-row sourcing-tier badge */
.rld-tier { display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.04em; padding:1px 8px; border-radius:999px; color:var(--tc,#ccc); background:color-mix(in srgb, var(--tc,#6b6b6b) 15%, transparent); border:1px solid color-mix(in srgb, var(--tc,#6b6b6b) 42%, transparent); }
/* sourcing-tier framework panel */
.rld-tiers { margin:0 0 20px; border:1px solid var(--line); border-radius:12px; background:rgba(15,42,32,.35); overflow:hidden; }
.rld-tiers summary { cursor:pointer; list-style:none; padding:13px 18px; font-size:13.5px; font-weight:600; color:var(--gold-soft); }
.rld-tiers summary::-webkit-details-marker { display:none; }
.rld-tiers summary::before { content:"▸ "; color:var(--gold); }
.rld-tiers[open] summary::before { content:"▾ "; }
.rld-tiers[open] summary { border-bottom:1px solid var(--line-soft); }
.rld-tiers .ri-tablewrap { border:0; border-radius:0; }
.rld-tiertbl { width:100%; border-collapse:collapse; font-size:13px; min-width:720px; }
.rld-tiertbl thead th { text-align:start; font-family:var(--serif); font-weight:500; font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--sage); padding:11px 16px; border-bottom:1px solid var(--line); background:var(--ink-2); white-space:nowrap; }
.rld-tiertbl td { padding:13px 16px; border-bottom:1px solid var(--line-soft); vertical-align:top; color:var(--ivory-dim); line-height:1.55; }
.rld-tiertbl tbody tr:last-child td { border-bottom:0; }
.rld-tc { border-inline-start:3px solid var(--tc,#6b6b6b); min-width:160px; }
.rld-tk { display:block; font-weight:700; font-size:14.5px; font-family:var(--serif); }
.rld-tm { display:block; margin-top:4px; font-size:12px; color:var(--sage); }
.rld-tb em { color:var(--sage); font-style:italic; }
/* collapsible register — opens the 375-row list on click */
.rld-collapse { margin-top:8px; }
.rld-collapse > summary {
  list-style:none; cursor:pointer; width:fit-content;
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--serif); font-size:16px; font-weight:600; letter-spacing:.2px; color:var(--ink-2);
  background:linear-gradient(180deg, var(--gold-soft), var(--gold));
  padding:14px 26px; border-radius:999px;
  box-shadow:0 12px 26px -14px rgba(201,162,75,.7);
  transition:filter .2s, transform .2s;
}
.rld-collapse > summary::-webkit-details-marker { display:none; }
.rld-collapse > summary:hover { filter:brightness(1.06); transform:translateY(-1px); }
.rld-collapse > summary:focus-visible { outline:2px solid var(--ivory); outline-offset:3px; }
.rld-collapse > summary::after { content:"▾"; font-size:13px; transition:transform .28s var(--ease); }
.rld-collapse[open] > summary::after { transform:rotate(180deg); }
.rld-collapse[open] > summary { margin-bottom:24px; }
.rld-collapse #rldApp { animation:rldReveal .4s var(--ease); }
@keyframes rldReveal { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }

/* ============================================================
   Solutions Bank / بنك الحلول
   ============================================================ */
.solbank { max-width: 940px; margin: 0 auto; }
.sol-toolbar { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-bottom:16px; }
.sol-search { position:relative; flex:1 1 300px; min-width:240px; }
.sol-search-ic { position:absolute; inset-inline-start:16px; top:50%; transform:translateY(-50%); color:var(--gold-soft); font-size:19px; pointer-events:none; }
#solSearch { width:100%; padding:14px 18px 14px 46px; border-radius:999px; border:1px solid var(--line);
  background:rgba(11,28,21,.5); color:var(--ivory); font-family:var(--sans); font-size:15px; outline:none;
  transition:border-color .3s var(--ease), background .3s; }
#solSearch::placeholder { color:var(--sage-dim); }
#solSearch:focus { border-color:rgba(201,162,75,.5); background:rgba(11,28,21,.72); }
html[dir="rtl"] #solSearch { padding:14px 46px 14px 18px; }

.sol-chips { display:flex; flex-wrap:wrap; gap:8px; }
.sol-chip { font-family:var(--sans); font-size:12.5px; letter-spacing:.01em; color:var(--ivory-dim);
  background:transparent; border:1px solid var(--line); border-radius:999px; padding:9px 15px; cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.sol-chip:hover { border-color:rgba(201,162,75,.4); color:var(--ivory); }
.sol-chip.on { background:var(--gold); color:var(--ink); border-color:var(--gold); font-weight:600; }

.sol-count { color:var(--sage); font-size:13px; margin:0 4px 18px; }

.sol-list { display:flex; flex-direction:column; gap:12px; }
.sol-card { border:1px solid var(--line); border-radius:var(--r); background:linear-gradient(180deg,var(--panel),var(--ink-2));
  overflow:hidden; transition:border-color .3s var(--ease); }
.sol-card:hover { border-color:rgba(201,162,75,.35); }
.sol-card.open { border-color:rgba(201,162,75,.5); }
.sol-q { width:100%; display:flex; align-items:center; gap:14px; text-align:start; cursor:pointer;
  background:transparent; border:0; padding:20px 22px; color:var(--ivory); font-family:inherit; }
.sol-field { flex:none; align-self:flex-start; font-family:var(--sans); font-size:10.5px; text-transform:uppercase;
  letter-spacing:.07em; color:var(--gold-soft); background:rgba(201,162,75,.1); border:1px solid var(--line);
  border-radius:6px; padding:5px 9px; white-space:nowrap; max-width:180px; overflow:hidden; text-overflow:ellipsis; }
.sol-qt { flex:1; font-family:var(--serif); font-weight:400; font-size:18px; line-height:1.4; color:var(--ivory); }
.sol-chev { flex:none; color:var(--gold-soft); font-size:24px; line-height:1; transition:transform .3s var(--ease); }
.sol-card.open .sol-chev { transform:rotate(90deg); }
html[dir="rtl"] .sol-chev { transform:scaleX(-1); }
html[dir="rtl"] .sol-card.open .sol-chev { transform:scaleX(-1) rotate(90deg); }

.sol-a { padding:2px 24px 24px; border-top:1px solid var(--line-soft); }
.sol-lbl { font-family:var(--sans); font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--gold); margin:18px 0 6px; }
.sol-cause { color:var(--ivory-dim); font-size:15px; line-height:1.65; }
.sol-steps { margin:0; padding-inline-start:22px; display:flex; flex-direction:column; gap:8px; }
.sol-steps li { color:var(--ivory-dim); font-size:15px; line-height:1.6; }
.sol-steps li::marker { color:var(--gold-soft); font-family:var(--serif); }
.sol-src { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px; }
.sol-src li { color:var(--ivory-dim); font-size:14px; padding-inline-start:16px; position:relative; }
.sol-src li::before { content:"›"; position:absolute; inset-inline-start:0; color:var(--gold-soft); }
html[dir="rtl"] .sol-src li::before { content:"‹"; }
.sol-src a { color:var(--gold-soft); text-decoration:none; border-bottom:1px solid var(--line); }
.sol-src a:hover { color:var(--gold); }
.sol-std { color:var(--sage); font-size:13px; line-height:1.6; margin-top:16px; }
.sol-std b { color:var(--ivory-dim); }

.sol-cta { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.sol-tool, .sol-ask { font-family:var(--sans); font-size:13.5px; font-weight:500; text-decoration:none;
  padding:10px 16px; border-radius:999px; transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.sol-tool { background:var(--gold); color:var(--ink); }
.sol-tool:hover { background:var(--gold-soft); transform:translateY(-2px); }
.sol-ask { color:var(--gold-soft); border:1px solid var(--line); }
.sol-ask:hover { background:rgba(201,162,75,.1); color:var(--gold); }

.sol-empty { text-align:center; color:var(--sage); padding:40px 20px; border:1px dashed var(--line); border-radius:var(--r); }

@media (max-width:640px){
  .sol-q { flex-wrap:wrap; padding:16px 18px; gap:10px; }
  .sol-qt { font-size:16px; flex-basis:100%; order:2; }
  .sol-chev { order:3; margin-inline-start:auto; }
  .sol-a { padding:2px 18px 20px; }
}

/* ============================================================
   Research & Data Hub / مركز البيانات والبحث العلمي
   ============================================================ */
.datahub { max-width: 1000px; margin: 0 auto; }
.res-divider { height:1px; background:linear-gradient(90deg,transparent,var(--line),transparent); margin:44px 0; }
.res-block-head { text-align:center; margin-bottom:26px; }
.res-block-head h3 { font-family:var(--serif); font-weight:400; font-size:clamp(24px,3.4vw,32px); color:var(--ivory); }
.res-block-head p { color:var(--sage); font-size:15px; margin-top:8px; max-width:60ch; margin-inline:auto; }

/* A — Consensus evidence search */
.res-search { text-align:center; max-width:760px; margin:0 auto; padding:34px 28px;
  border:1px solid var(--line); border-radius:20px;
  background:radial-gradient(120% 130% at 50% -20%, rgba(201,162,75,.1), transparent 60%), linear-gradient(180deg,var(--panel),var(--ink-2)); }
.res-search-kicker { display:inline-block; font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-soft); background:rgba(201,162,75,.12); border:1px solid var(--line); border-radius:999px; padding:5px 13px; }
.res-search h3 { font-family:var(--serif); font-weight:400; font-size:clamp(22px,3.2vw,30px); color:var(--ivory); margin:16px 0 8px; }
.res-search p { color:var(--ivory-dim); font-size:15px; line-height:1.6; max-width:56ch; margin:0 auto 22px; }
.res-search-form { display:flex; gap:10px; flex-wrap:wrap; }
.res-search-form input { flex:1 1 320px; min-width:220px; padding:14px 18px; border-radius:999px; border:1px solid var(--line);
  background:rgba(11,28,21,.55); color:var(--ivory); font-family:var(--sans); font-size:15px; outline:none; transition:border-color .3s var(--ease); }
.res-search-form input::placeholder { color:var(--sage-dim); }
.res-search-form input:focus { border-color:rgba(201,162,75,.55); }
.res-search-form .btn { white-space:nowrap; }

/* B — featured evidence */
.res-ev-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; }
.res-ev { border:1px solid var(--line); border-radius:var(--r); padding:22px 22px 20px;
  background:linear-gradient(180deg,var(--panel),var(--ink-2)); display:flex; flex-direction:column; }
.res-ev h4 { font-family:var(--serif); font-weight:400; font-size:19px; line-height:1.35; color:var(--ivory); }
.res-ev-take { color:var(--ivory-dim); font-size:14px; line-height:1.6; margin:12px 0 16px; }
.res-papers { list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:12px; flex:1; }
.res-papers li { display:flex; flex-direction:column; gap:3px; }
.res-papers a { color:var(--gold-soft); text-decoration:none; font-size:14px; line-height:1.45; font-weight:500; border-bottom:1px solid transparent; }
.res-papers a:hover { color:var(--gold); border-bottom-color:var(--line); }
.res-paper-meta { color:var(--sage); font-size:12px; }
.res-ev-more { color:var(--gold-soft); font-size:13px; font-weight:500; text-decoration:none; margin-top:auto; }
.res-ev-more:hover { color:var(--gold); }

/* C — resource directory grid */
.res-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.res-card { display:flex; flex-direction:column; gap:9px; text-decoration:none; padding:18px 18px 20px;
  border:1px solid var(--line); border-radius:var(--r); background:linear-gradient(180deg,var(--panel),var(--ink-2));
  transition:border-color .3s var(--ease), transform .3s var(--ease); }
a.res-card:hover { border-color:rgba(201,162,75,.45); transform:translateY(-3px); }
.res-card-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.res-cat-tag { font-family:var(--sans); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--sage);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:60%; }
.res-badge { font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:.02em; padding:3px 8px; border-radius:999px; white-space:nowrap; }
.res-badge.b-free, .res-badge.b-freeapi { background:rgba(63,143,107,.22); color:#a9d9bf; }
.res-badge.b-reg { background:rgba(154,167,154,.18); color:var(--sage); }
.res-badge.b-paid { background:rgba(184,69,58,.16); color:#e0a49c; }
.res-badge.b-aupam { background:rgba(201,162,75,.2); color:var(--gold-soft); }
.res-name { font-family:var(--serif); font-weight:400; font-size:17px; color:var(--ivory); margin:2px 0 0; }
.res-what { font-size:13px; line-height:1.55; color:var(--ivory-dim); margin:0; }

@media (max-width:640px){
  .res-search { padding:26px 18px; }
  .res-search-form .btn { flex:1 1 100%; }
}

/* ============================================================
   The Boardroom / غرفة القرار — executive decision room
   ============================================================ */
.boardroom { max-width: 1040px; margin: 0 auto; }
.br-kicker { display:inline-block; font-family:var(--sans); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-soft); background:rgba(201,162,75,.12); border:1px solid var(--line); border-radius:999px; padding:5px 13px; }

/* pillars */
.br-pillars { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px; margin-bottom:26px; }
.br-pillar { display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-size:13.5px; color:var(--ivory-dim); }
.br-pillar i { font-style:normal; color:var(--gold); font-size:15px; }

/* the executive snapshot panel */
.br-snap { position:relative; border:1px solid rgba(201,162,75,.3); border-radius:22px; overflow:hidden;
  padding:clamp(24px,4vw,44px); background:radial-gradient(120% 100% at 50% -10%, rgba(201,162,75,.1), transparent 55%), linear-gradient(180deg,#143127,#0f261d);
  box-shadow:0 34px 90px -54px rgba(0,0,0,.85); }
.br-snap::before { content:""; position:absolute; inset:0 0 auto 0; height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.br-snap-head { text-align:center; max-width:60ch; margin:0 auto 22px; }
.br-snap-head h3 { font-family:var(--serif); font-weight:400; font-size:clamp(22px,3.2vw,30px); color:var(--ivory); margin:14px 0 8px; }
.br-snap-head p { color:var(--ivory-dim); font-size:14.5px; line-height:1.6; }

.br-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:20px; }
.br-form label { display:flex; flex-direction:column; gap:7px; font-family:var(--sans); font-size:12px; letter-spacing:.02em; color:var(--sage); text-transform:uppercase; }
.br-form input, .br-form select { padding:12px 14px; border-radius:12px; border:1px solid var(--line); background:rgba(8,20,15,.6);
  color:var(--ivory); font-family:var(--sans); font-size:15px; outline:none; transition:border-color .3s var(--ease); text-transform:none; letter-spacing:0; }
.br-form input:focus, .br-form select:focus { border-color:rgba(201,162,75,.55); }
.br-form select { appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold-soft) 50%),linear-gradient(135deg,var(--gold-soft) 50%,transparent 50%);
  background-position:calc(100% - 18px) center, calc(100% - 13px) center; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
html[dir="rtl"] .br-form select { background-position:18px center, 23px center; }
.br-calc { display:block; margin:0 auto; }

/* the board scorecard output */
.br-out { margin-top:24px; }
.br-scorecard { display:flex; flex-wrap:wrap; align-items:center; gap:24px; padding:24px; border-radius:18px;
  border:1px solid var(--line); background:rgba(8,20,15,.4); }
.br-gauge { flex:0 0 auto; text-align:center; width:210px; max-width:100%; }
.br-gsvg { width:210px; max-width:100%; height:auto; display:block; }
.br-gbg { stroke:rgba(244,239,225,.1); }
.br-gval { transition:stroke-dasharray 1s var(--ease); }
.br-gval.br-band-risk { stroke:#db8a7f; }
.br-gval.br-band-dev { stroke:var(--gold); }
.br-gval.br-band-strong { stroke:var(--green-accent); }
.br-gnum { fill:var(--ivory); font-family:var(--serif); font-weight:600; font-size:48px; }
.br-glabel { display:block; font-family:var(--sans); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); margin-top:-6px; }
.br-gband { display:inline-block; margin-top:8px; font-family:var(--sans); font-size:12px; font-weight:700; padding:4px 12px; border-radius:999px; }
.br-band-risk .br-gband { background:rgba(219,138,127,.16); color:#e6a89f; }
.br-band-dev .br-gband { background:rgba(201,162,75,.18); color:var(--gold-soft); }
.br-band-strong .br-gband { background:rgba(63,143,107,.2); color:#a9d9bf; }
.br-verdict { flex:1; min-width:220px; }
.br-verdict .br-lbl { color:var(--gold); }
.br-verdict p { font-family:var(--serif); font-weight:400; font-size:clamp(17px,2.3vw,22px); line-height:1.45; color:var(--ivory); margin-top:6px; }

.br-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:16px; }
.br-metric { border:1px solid var(--line); border-radius:14px; padding:18px 20px; background:linear-gradient(180deg,var(--panel),var(--ink-2)); }
.br-metric > b { display:block; font-family:var(--serif); font-weight:500; font-size:28px; color:var(--gold-soft); }
.br-metric > span { display:block; font-family:var(--sans); font-size:12px; letter-spacing:.03em; text-transform:uppercase; color:var(--ivory-dim); margin:4px 0 8px; }
.br-metric small { color:var(--sage); font-size:12.5px; line-height:1.5; }
.br-prio { display:flex; flex-direction:column; }
.br-prio > b { color:var(--gold); }
.br-prio-cta { margin-top:12px; align-self:flex-start; font-family:var(--sans); font-size:13px; font-weight:600; color:var(--ink);
  background:var(--gold); border-radius:999px; padding:8px 15px; text-decoration:none; transition:background .25s var(--ease); }
.br-prio-cta:hover { background:var(--gold-soft); }

.br-lbl { font-family:var(--sans); font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--gold); }

/* decision briefs */
.br-block-head { text-align:center; margin:0 0 24px; }
.br-block-head h3 { font-family:var(--serif); font-weight:400; font-size:clamp(24px,3.4vw,32px); color:var(--ivory); }
.br-block-head p { color:var(--sage); font-size:15px; margin:8px auto 0; max-width:64ch; }
.br-briefs { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; }
.br-card { border:1px solid var(--line); border-radius:var(--r); background:linear-gradient(180deg,var(--panel),var(--ink-2)); overflow:hidden; transition:border-color .3s var(--ease); }
.br-card:hover { border-color:rgba(201,162,75,.4); }
.br-card.open { border-color:rgba(201,162,75,.55); }
.br-q { width:100%; display:flex; align-items:flex-start; gap:14px; text-align:start; cursor:pointer; background:transparent; border:0; padding:20px; color:var(--ivory); font-family:inherit; }
.br-ic { flex:none; width:38px; height:38px; display:grid; place-items:center; border-radius:10px; font-size:18px;
  color:var(--gold-soft); background:rgba(201,162,75,.1); border:1px solid var(--line); }
.br-qt { flex:1; display:flex; flex-direction:column; gap:5px; }
.br-qt b { font-family:var(--serif); font-weight:400; font-size:18px; line-height:1.3; color:var(--ivory); }
.br-qsub { font-size:13.5px; color:var(--sage); line-height:1.45; }
.br-chev { flex:none; color:var(--gold-soft); font-size:22px; line-height:1; transition:transform .3s var(--ease); }
.br-card.open .br-chev { transform:rotate(90deg); }
html[dir="rtl"] .br-chev { transform:scaleX(-1); }
html[dir="rtl"] .br-card.open .br-chev { transform:scaleX(-1) rotate(90deg); }
.br-a { padding:2px 22px 22px; border-top:1px solid var(--line-soft); }
.br-a .br-lbl { margin:16px 0 5px; display:block; }
.br-risk-lbl { color:#db8a7f !important; }
.br-txt { color:var(--ivory-dim); font-size:14.5px; line-height:1.6; }
.br-signal { margin-top:14px; font-size:13px; color:var(--sage); line-height:1.5; }
.br-signal b { color:var(--ivory-dim); }
.br-cta { display:inline-block; margin-top:16px; font-family:var(--sans); font-size:13.5px; font-weight:600; color:var(--ink);
  background:var(--gold); border-radius:999px; padding:9px 16px; text-decoration:none; transition:background .25s var(--ease), transform .25s var(--ease); }
.br-cta:hover { background:var(--gold-soft); transform:translateY(-2px); }

/* confidential briefing CTA band */
.br-cta-band { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:22px; margin-top:36px;
  padding:clamp(24px,3.5vw,38px); border-radius:20px; border:1px solid rgba(201,162,75,.35);
  background:radial-gradient(120% 130% at 100% 0%, rgba(201,162,75,.12), transparent 55%), linear-gradient(180deg,var(--panel),var(--ink-2)); }
.br-cta-band h3 { font-family:var(--serif); font-weight:400; font-size:clamp(21px,3vw,28px); color:var(--ivory); margin:12px 0 8px; }
.br-cta-band p { color:var(--ivory-dim); font-size:14.5px; line-height:1.6; max-width:60ch; }
.br-cta-band .btn { white-space:nowrap; }

/* download board brief */
.br-print { display:block; margin:20px auto 0; background:transparent; border:1px solid var(--gold); color:var(--gold-soft);
  font-family:var(--sans); font-size:13.5px; font-weight:600; padding:10px 22px; border-radius:999px; cursor:pointer;
  transition:background .25s var(--ease), color .25s var(--ease); }
.br-print:hover { background:rgba(201,162,75,.1); color:var(--gold); }

/* P&L outcomes strip */
.br-outcomes { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; }
.br-outcome { border:1px solid var(--line); border-radius:14px; padding:22px 20px; text-align:center; display:flex; flex-direction:column;
  background:linear-gradient(180deg,var(--panel),var(--ink-2)); transition:border-color .3s var(--ease), transform .3s var(--ease); }
.br-outcome:hover { border-color:rgba(201,162,75,.4); transform:translateY(-3px); }
.br-oic { font-size:26px; display:block; margin-bottom:10px; }
.br-outcome b { display:block; font-family:var(--serif); font-weight:400; font-size:18px; color:var(--ivory); margin-bottom:6px; }
.br-outcome p { color:var(--ivory-dim); font-size:13px; line-height:1.55; margin:0; }
.br-ointel { margin-top:16px; padding-top:14px; border-top:1px solid var(--line-soft); text-align:start; font-size:12px; line-height:1.6; color:var(--ivory-dim); }
.br-outcome .br-ointel b { display:inline; font-family:var(--serif); font-size:15px; color:var(--gold); font-weight:400; margin:0; }
.br-olink { margin-top:auto; padding-top:13px; align-self:start; font-size:12.5px; font-weight:600; color:var(--gold); text-decoration:none; }
.br-olink:hover { color:var(--gold-soft); }

/* Chairman's note */
.br-chair { margin:40px auto 0; max-width:800px; text-align:center; position:relative;
  padding:clamp(26px,4vw,42px); border:1px solid rgba(201,162,75,.3); border-radius:22px;
  background:radial-gradient(120% 130% at 50% 0%, rgba(201,162,75,.09), transparent 60%), linear-gradient(180deg,var(--panel),var(--ink-2)); }
.br-chair blockquote { font-family:var(--serif); font-weight:400; font-style:italic; font-size:clamp(18px,2.7vw,24px);
  line-height:1.5; color:var(--ivory); margin:18px auto 16px; max-width:64ch; }
.br-chair figcaption { font-family:var(--sans); font-size:13px; letter-spacing:.02em; color:var(--gold-soft); }

/* Executive Desk — the CEO's morning link launchpad */
.br-desk { display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:20px 26px; }
.br-desk-lbl { display:block; font-family:var(--sans); font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; }
.br-links { display:flex; flex-wrap:wrap; gap:8px; }
.br-link { font-family:var(--sans); font-size:13px; color:var(--ivory-dim); text-decoration:none; white-space:nowrap;
  border:1px solid var(--line); border-radius:999px; padding:8px 14px;
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.br-link:hover { border-color:rgba(201,162,75,.45); color:var(--ivory); background:rgba(201,162,75,.08); }
.br-link.in { color:var(--gold-soft); border-color:rgba(201,162,75,.35); background:rgba(201,162,75,.06); }
.br-link.in:hover { color:var(--gold); }

/* Marketing Command Center — grouped resource cards (reuses .res-* card styles) */
.mkthub { max-width:1000px; margin:0 auto; }
.mkt-group + .mkt-group { margin-top:30px; }
.mkt-group .br-desk-lbl { margin-bottom:14px; }

@media (max-width:640px){
  .br-scorecard { flex-direction:column; text-align:center; }
  .br-verdict { min-width:0; }
  .br-q { padding:16px; }
}

/* ============ GMP ENFORCEMENT WATCH ============ */
.enf-block-h { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-soft); margin:0 0 14px; }
.enf-subh { font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--sage); margin:22px 0 10px; }
.enf-block-h + .enf-subh { margin-top:2px; }
.enf-live-h { display:flex; align-items:center; gap:12px; }
.enf-live-badge { display:inline-flex; align-items:center; gap:6px; font-size:10px; letter-spacing:.06em; color:#8fd0b0; background:rgba(90,180,140,.12); border:1px solid rgba(90,180,140,.3); border-radius:999px; padding:3px 9px; text-transform:none; }
.enf-live-dot { width:7px; height:7px; border-radius:50%; background:#5fb98a; box-shadow:0 0 8px #5fb98a; animation:pulseDot 1.8s ease-in-out infinite; }
.enf-feed { margin-bottom:26px; }
.enf-rows { display:flex; flex-direction:column; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.enf-row { display:flex; align-items:center; gap:14px; padding:13px 16px; border-bottom:1px solid rgba(201,162,75,.1); text-decoration:none; color:var(--ivory); transition:background .18s; }
.enf-row:last-child { border-bottom:0; }
.enf-row:hover { background:rgba(201,162,75,.06); }
.enf-row-date { flex:none; width:82px; font-size:11.5px; color:var(--ivory-dim); font-variant-numeric:tabular-nums; }
.enf-row-auth { flex:none; width:96px; display:flex; flex-direction:column; line-height:1.25; }
.enf-row-auth b { font-size:12.5px; color:var(--ivory); }
.enf-row-auth span { font-size:10.5px; color:var(--ivory-dim); }
.enf-cat { flex:none; font-size:10.5px; font-weight:700; letter-spacing:.03em; padding:3px 10px; border-radius:999px; color:color-mix(in srgb, var(--ec) 36%, white); background:color-mix(in srgb, var(--ec) 30%, transparent); border:1px solid color-mix(in srgb, var(--ec) 62%, transparent); white-space:nowrap; }
.enf-row-tx { flex:1; min-width:0; font-size:13px; line-height:1.4; }
.enf-firm { color:var(--gold-soft); }
.enf-row-sum { display:block; font-size:11.5px; color:var(--ivory-dim); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.enf-row .enf-ext { flex:none; color:var(--gold-soft); font-size:12px; }
@media (max-width:640px){ .enf-row { flex-wrap:wrap; gap:6px 10px; } .enf-row-tx { flex-basis:100%; order:5; } }
.enf-srcs { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.enf-src { display:flex; flex-direction:column; gap:5px; padding:15px 16px; border:1px solid var(--line); border-radius:14px; background:rgba(15,42,32,.4); text-decoration:none; transition:border-color .2s, transform .2s, background .2s; }
.enf-src:hover { border-color:var(--gold); transform:translateY(-2px); background:rgba(201,162,75,.06); }
.enf-src-auth { font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); }
.enf-src b { font-size:14px; color:var(--ivory); font-weight:600; }
.enf-ext { color:var(--gold-soft); font-size:12px; }
.enf-src-d { font-size:12px; color:var(--ivory-dim); line-height:1.45; }
.enf-themes { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.enf-theme { display:flex; gap:13px; padding:15px 16px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(180deg,rgba(165,53,43,.05),rgba(15,42,32,.35)); }
.enf-rank { flex:none; font-family:var(--serif,"Fraunces",serif); font-size:22px; line-height:1; color:#d98a80; opacity:.8; }
.enf-theme-b { display:flex; flex-direction:column; gap:4px; min-width:0; }
.enf-theme-b b { font-size:14.5px; color:var(--ivory); }
.enf-theme-b > span { font-size:12.5px; color:var(--ivory-dim); line-height:1.5; }
.enf-ref { font-size:11px !important; color:var(--gold-soft) !important; letter-spacing:.02em; font-variant-numeric:tabular-nums; }
.enf-cta { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:26px; padding:20px 24px; border:1px solid rgba(201,162,75,.28); border-radius:16px; background:rgba(201,162,75,.06); }
.enf-cta p { margin:0; font-size:15px; color:var(--ivory); }
@media (max-width:860px){ .enf-srcs { grid-template-columns:repeat(2,1fr); } .enf-themes { grid-template-columns:1fr; } }
@media (max-width:480px){ .enf-srcs { grid-template-columns:1fr; } }

/* ============ STATE OF ARAB PHARMA — PULSE BAND ============ */
.pulse { margin:34px auto 6px; }
.pulse-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.pulse-stat { text-align:center; padding:20px 12px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(180deg,rgba(201,162,75,.06),rgba(15,42,32,.35)); }
.pulse-num { display:block; font-family:var(--serif,"Fraunces",serif); font-size:clamp(30px,5vw,46px); line-height:1; color:var(--gold); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.pulse-stat span { display:block; margin-top:8px; font-size:12.5px; color:var(--ivory-dim); letter-spacing:.01em; }
.pulse-ticker { display:flex; align-items:center; gap:10px; margin-top:14px; padding:11px 16px; border:1px solid var(--line-soft); border-radius:999px; background:rgba(15,42,32,.4); overflow:hidden; }
.pulse-tk-dot { flex:none; width:8px; height:8px; border-radius:50%; background:#5fb98a; box-shadow:0 0 10px #5fb98a; animation:pulseDot 1.8s ease-in-out infinite; }
@keyframes pulseDot { 0%,100%{ opacity:1; transform:scale(1); } 50%{ opacity:.45; transform:scale(.8); } }
.pulse-tk-lbl { flex:none; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-soft); }
.pulse-tk-text { flex:1; min-width:0; font-size:13.5px; color:var(--ivory); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pulse-tk-text:hover { color:var(--gold-soft); }
.pulse-tk-text.is-in { animation:tkIn .5s ease; }
@keyframes tkIn { from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
@media (max-width:720px){ .pulse-stats { grid-template-columns:repeat(2,1fr); } }
@media (prefers-reduced-motion: reduce){ .pulse-tk-dot, .pulse-tk-text.is-in { animation:none; } }

/* ============ COMMAND PALETTE (⌘K universal search) ============ */
.cp-trigger { position:fixed; left:20px; bottom:20px; z-index:60; display:inline-flex; align-items:center; gap:9px;
  font:inherit; font-size:13px; font-weight:600; color:var(--ivory); background:rgba(18,47,37,.86); backdrop-filter:blur(8px);
  border:1px solid rgba(201,162,75,.4); border-radius:999px; padding:9px 14px; cursor:pointer; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:border-color .2s, background .2s, transform .2s; }
.cp-trigger:hover { border-color:var(--gold); background:rgba(18,47,37,.96); transform:translateY(-1px); }
.cp-trigger .cp-tk { display:inline-flex; gap:2px; }
.cp-trigger kbd, .cp-root kbd { font:inherit; font-size:11px; line-height:1; color:var(--gold-soft); background:rgba(201,162,75,.12); border:1px solid rgba(201,162,75,.3); border-radius:5px; padding:3px 5px; }
.cp-trigger .cp-lbl-ar { display:none; }
:root[lang="ar"] .cp-trigger .cp-lbl-en, html[lang="ar"] .cp-trigger .cp-lbl-en { display:none; }
:root[lang="ar"] .cp-trigger .cp-lbl-ar, html[lang="ar"] .cp-trigger .cp-lbl-ar { display:inline; }

.cp-root { position:fixed; inset:0; z-index:200; display:flex; justify-content:center; align-items:flex-start; padding:12vh 16px 16px; }
.cp-root[hidden] { display:none; }
.cp-scrim { position:absolute; inset:0; background:rgba(8,20,15,.62); backdrop-filter:blur(5px); opacity:0; transition:opacity .16s ease; }
.cp-root.is-on .cp-scrim { opacity:1; }
.cp-panel { position:relative; width:min(640px,94vw); max-height:72vh; display:flex; flex-direction:column;
  background:var(--ink-2); border:1px solid rgba(201,162,75,.34); border-radius:18px; overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.55); opacity:0; transform:translateY(-10px) scale(.985); transition:opacity .16s ease, transform .16s ease; }
.cp-root.is-on .cp-panel { opacity:1; transform:none; }
.cp-inputwrap { display:flex; align-items:center; gap:11px; padding:15px 18px; border-bottom:1px solid var(--line-soft); }
.cp-search { color:var(--gold); font-size:20px; line-height:1; }
.cp-input { flex:1; min-width:0; background:none; border:0; outline:none; color:var(--ivory); font:inherit; font-size:16.5px; }
.cp-input::placeholder { color:var(--ivory-dim); }
.cp-body { overflow-y:auto; padding:8px; flex:1; }
.cp-group { font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--gold-soft); padding:12px 12px 6px; }
.cp-item { display:flex; align-items:center; gap:12px; width:100%; text-align:start; background:none; border:0; border-radius:11px; padding:10px 12px; cursor:pointer; color:var(--ivory); }
.cp-item.is-sel { background:rgba(201,162,75,.13); box-shadow:inset 0 0 0 1px rgba(201,162,75,.3); }
.cp-ic { flex:none; width:24px; text-align:center; font-size:16px; }
.cp-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.cp-tx b { font-size:14px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cp-de { font-size:12px; color:var(--ivory-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cp-go { flex:none; color:var(--gold); font-size:13px; opacity:0; }
.cp-item.is-sel .cp-go { opacity:.9; }
.cp-empty { padding:26px 16px; text-align:center; color:var(--ivory-dim); font-size:14px; }
.cp-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 16px; border-top:1px solid var(--line-soft); font-size:11.5px; color:var(--ivory-dim); }
.cp-foot > span { display:inline-flex; align-items:center; gap:6px; }
.cp-brand { color:var(--gold-soft); font-weight:600; letter-spacing:.02em; }
.cp-esc { align-self:center; }
@media (max-width:560px){ .cp-trigger .cp-lbl-en, .cp-trigger .cp-lbl-ar, .cp-trigger .cp-tk { display:none; } :root[lang="ar"] .cp-trigger .cp-lbl-ar { display:none; } .cp-trigger { left:14px; bottom:14px; padding:11px; } .cp-foot { display:none; } .cp-root { padding-top:8vh; } }
@media (prefers-reduced-motion: reduce){ .cp-scrim, .cp-panel { transition:none; } .cp-panel { transform:none; } }

/* ================= Supply Resilience Studio (flagship) ================= */
#supply { background: radial-gradient(60% 46% at 4% 2%, rgba(63,143,107,.14), transparent 60%); }
.sup-manifesto { margin:0 0 26px; padding:22px 26px; border:1px solid var(--line); border-inline-start:4px solid var(--gold); border-radius:14px;
  background:linear-gradient(180deg, rgba(201,162,75,.09), rgba(201,162,75,.02)); color:var(--ivory-dim); font-size:16px; line-height:1.7; max-width:92ch; }
.sup-manifesto .sup-mani-k { display:block; font-family:var(--serif); font-size:20px; font-weight:600; color:var(--ivory); margin-bottom:8px; letter-spacing:.2px; }
.sup-manifesto b { color:var(--ivory); font-weight:600; }
.sup-manifesto b.gold { color:var(--gold-soft); }

.sup-top { display:flex; gap:26px; align-items:stretch; flex-wrap:wrap; margin-bottom:16px; }
.sup-gauge-wrap { flex:0 0 260px; display:grid; place-items:center; background:linear-gradient(180deg,var(--panel),var(--ink-2)); border:1px solid var(--line-soft); border-radius:16px; padding:10px 8px; }
.sup-gauge { width:100%; max-width:260px; height:auto; }
.sup-gauge .sup-gv { font-size:38px; font-weight:700; fill:var(--ivory); font-family:var(--serif); }
.sup-gauge .sup-gr { font-size:16px; font-weight:700; }
.sup-gauge .sup-gl { font-size:10px; fill:var(--sage); letter-spacing:.06em; text-transform:uppercase; }
.sup-kpis { flex:1 1 420px; display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.sup-kpi { background:linear-gradient(180deg,var(--panel),var(--ink-2)); border:1px solid var(--line-soft); border-radius:14px; padding:16px 18px; display:flex; flex-direction:column; gap:4px; }
.sup-kpi b { font-family:var(--serif); font-size:24px; font-weight:600; color:var(--ivory); line-height:1.05; }
.sup-kpi span { font-size:12px; color:var(--sage); letter-spacing:.02em; }
.sup-kpi.good b { color:#8fe0b3; } .sup-kpi.warn b { color:var(--gold-soft); } .sup-kpi.bad b { color:#e88a80; }
.sup-kpi.good { border-color:color-mix(in srgb,#2f9e6e 35%,transparent); } .sup-kpi.bad { border-color:color-mix(in srgb,#c9524b 42%,transparent); }

.sup-verdict { margin:0 0 24px; padding:14px 20px; border-radius:12px; font-size:15.5px; line-height:1.6; color:var(--ivory-dim);
  background:rgba(15,42,32,.5); border:1px solid var(--line); }
.sup-verdict u { text-decoration:none; font-weight:700; color:var(--ivory); }
.sup-verdict.bad { border-color:color-mix(in srgb,#c9524b 50%,transparent); background:rgba(165,53,43,.1); }
.sup-verdict.warn { border-color:color-mix(in srgb,var(--gold) 40%,transparent); }

.sup-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:24px; align-items:start; }
@media (max-width:900px){ .sup-grid { grid-template-columns:1fr; } }
.sup-col { display:flex; flex-direction:column; gap:26px; }
.sup-block-h { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-soft); margin:0 0 12px; }

/* shortage radar */
.sup-radar { display:flex; flex-direction:column; gap:2px; border:1px solid var(--line); border-radius:12px; padding:12px; background:rgba(15,42,32,.35); overflow-x:auto; }
.sup-rad-row { display:flex; align-items:center; gap:2px; min-width:520px; }
.sup-rad-mat { flex:0 0 170px; font-size:12px; color:var(--ivory-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding-inline-end:6px; }
.sup-rad-c { flex:1 1 0; height:22px; border-radius:3px; background:var(--cc,#3a5f4c); }
.sup-rad-head .sup-rad-c { background:transparent; }
.sup-rad-mon { font-size:9.5px; color:var(--sage); text-align:center; line-height:22px; }
.sup-single { color:var(--gold-soft); font-style:normal; margin-inline-end:4px; font-size:9px; }
.sup-legend { display:flex; flex-wrap:wrap; gap:14px; margin-top:10px; font-size:11.5px; color:var(--sage); }
.sup-legend i { display:inline-block; width:11px; height:11px; border-radius:3px; margin-inline-end:5px; vertical-align:-1px; }

/* capacity */
.sup-cap { display:flex; flex-direction:column; gap:10px; }
.sup-cap-row { display:flex; align-items:center; gap:12px; }
.sup-cap-n { flex:0 0 150px; font-size:12.5px; color:var(--ivory-dim); display:flex; flex-direction:column; }
.sup-cap-n em { font-style:normal; font-size:10.5px; color:var(--sage); }
.sup-cap-bar { flex:1; height:12px; border-radius:999px; background:rgba(244,239,225,.08); position:relative; overflow:hidden; display:flex; }
.sup-cap-bar i { height:100%; border-radius:999px; }
.sup-cap-bar i.ok { background:linear-gradient(90deg,#3a7d59,#4f9e6b); } .sup-cap-bar i.warn { background:linear-gradient(90deg,#b0902f,var(--gold)); } .sup-cap-bar i.bad { background:linear-gradient(90deg,#b0542f,#c9524b); }
.sup-cap-bar u { height:100%; background:repeating-linear-gradient(45deg,#c9524b,#c9524b 4px,#8a3a33 4px,#8a3a33 8px); }
.sup-cap-v { flex:0 0 42px; text-align:end; font-size:13px; font-weight:600; font-variant-numeric:tabular-nums; }
.sup-cap-v.ok { color:#8fe0b3; } .sup-cap-v.warn { color:var(--gold-soft); } .sup-cap-v.bad { color:#e88a80; }

/* action ledger */
.sup-acts { display:flex; flex-direction:column; gap:10px; }
.sup-act { border:1px solid var(--line-soft); border-inline-start:3px solid var(--gold); border-radius:10px; padding:11px 14px; background:rgba(15,42,32,.4); }
.sup-act.over { border-inline-start-color:#c9524b; background:rgba(165,53,43,.08); }
.sup-act-l { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13.5px; color:var(--ivory); }
.sup-act-l b { font-weight:600; }
.sup-act-tag { font-size:10.5px; font-weight:700; letter-spacing:.03em; padding:2px 9px; border-radius:999px; background:rgba(201,162,75,.16); color:var(--gold-soft); white-space:nowrap; }
.sup-act-tag.over { background:rgba(201,82,75,.2); color:#e88a80; }
.sup-act-d { font-size:12px; color:var(--sage); margin-top:5px; }
.sup-clear { color:var(--sage); font-size:13px; padding:8px; }

/* supply-route exposure */
.sup-route { border:1px solid var(--line); border-radius:12px; padding:16px 18px; background:rgba(15,42,32,.4); transition:border-color .3s, background .3s; }
.sup-route.active { border-color:color-mix(in srgb,#c9524b 55%,transparent); background:rgba(165,53,43,.1); }
.sup-route-hd { font-size:14px; color:var(--ivory-dim); line-height:1.5; }
.sup-route-hd b { font-family:var(--serif); font-size:20px; color:var(--ivory); margin-inline-end:4px; }
.sup-route-hd u { text-decoration:none; color:var(--gold-soft); font-weight:600; }
.sup-route-bar { height:10px; border-radius:999px; background:rgba(244,239,225,.08); margin:12px 0 8px; overflow:hidden; }
.sup-route-bar i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--gold-deep),var(--gold)); }
.sup-route.active .sup-route-bar i { background:linear-gradient(90deg,#b0542f,#c9524b); }
.sup-route-sub { font-size:12.5px; color:var(--sage); }
.sup-route-sub b.over { color:#e88a80; }
.sup-route-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.sup-route-chip { font-size:11px; padding:3px 10px; border-radius:999px; border:1px solid var(--line); color:var(--ivory-dim); background:rgba(201,162,75,.06); }
.sup-route-chip.hit { border-color:color-mix(in srgb,#c9524b 55%,transparent); color:#e88a80; background:rgba(165,53,43,.12); }

/* what-if */
.sup-wi { display:flex; flex-direction:column; gap:14px; border:1px solid var(--line); border-radius:12px; padding:16px 18px; background:rgba(15,42,32,.35); }
.sup-wi label { display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--ivory-dim); }
.sup-wi label b { margin-inline-start:auto; font-variant-numeric:tabular-nums; color:var(--gold-soft); font-size:12px; min-width:42px; text-align:end; }
.sup-wi input[type=range] { flex:1; accent-color:var(--gold); }
.sup-wi-sel { flex-wrap:wrap; }
.sup-wi-sel select { flex:1; min-width:140px; font:inherit; font-size:12.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:7px 10px; }
.sup-wi-geo { width:100%; font:inherit; font-size:13px; font-weight:700; letter-spacing:.02em; text-align:center; cursor:pointer;
  color:#e88a80; background:rgba(165,53,43,.12); border:1px solid color-mix(in srgb,#c9524b 45%,transparent); border-radius:10px; padding:11px; transition:all .2s; }
.sup-wi-geo:hover { background:rgba(165,53,43,.2); }
.sup-wi-geo.on { color:var(--ink-2); background:linear-gradient(180deg,#d16a5f,#c9524b); border-color:#c9524b; box-shadow:0 8px 22px -12px rgba(201,82,75,.8); }
.sup-reset { align-self:flex-start; font:inherit; font-size:12px; color:var(--sage); background:transparent; border:1px solid var(--line-soft); border-radius:999px; padding:6px 15px; cursor:pointer; }
.sup-reset:hover { color:var(--ivory); border-color:var(--gold-soft); }

/* CTA */
.sup-cta { margin-top:26px; display:flex; align-items:center; gap:22px; flex-wrap:wrap; justify-content:space-between; padding:22px 26px; border-radius:16px;
  background:linear-gradient(180deg,var(--panel-2),var(--ink-2)); border:1px solid var(--line); }
.sup-cta > div { flex:1 1 340px; font-size:15px; line-height:1.6; color:var(--ivory-dim); }
.sup-cta b { color:var(--ivory); }
.sup-cta .btn { flex:none; }
@media (max-width:560px){ .sup-top { flex-direction:column; } .sup-kpis { grid-template-columns:repeat(2,1fr); } .sup-rad-mat, .sup-cap-n { flex-basis:120px; } }

/* ================= Supply Studio — LIVE cockpit additions ================= */
#supplyApp { position:relative; }
/* gauge: CSS-transition sweep (rAF-free) */
#supArc { transition:stroke-dashoffset .85s cubic-bezier(.22,.61,.36,1), stroke .4s ease; }
#supNeedleG { transform-origin:110px 110px; transform-box:view-box; transition:transform .85s cubic-bezier(.22,.61,.36,1); }
@media (prefers-reduced-motion: reduce){ #supArc, #supNeedleG { transition:none; } }
/* bar growth + radar cursor transitions */
.sup-cap-bar i, .sup-cap-bar u, .sup-route-bar i { transition:width .65s cubic-bezier(.22,.61,.36,1); }
.sup-rad-c { transition:box-shadow .18s ease; }
.sup-rad-c.cur { box-shadow:0 0 0 2px var(--gold-soft) inset; }
.sup-rad-mat { cursor:default; }
.sup-rad-mat[data-drill] { cursor:pointer; }
.sup-rad-mat[data-drill]:hover { color:var(--gold-soft); }
.sup-watch { color:#8fc4dc; font-style:normal; margin-inline-end:4px; font-size:11px; font-weight:700; }
.sup-legend-h { margin-inline-start:auto; color:var(--sage-dim); font-style:italic; }

/* scenarios */
.sup-scen { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:20px; }
.sup-scen-l { font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--gold-soft); margin-inline-end:2px; }
.sup-scen-b { font:inherit; font-size:12.5px; color:var(--ivory-dim); background:rgba(15,42,32,.5); border:1px solid var(--line); border-radius:999px; padding:7px 14px; cursor:pointer; transition:all .18s; }
.sup-scen-b:hover { border-color:var(--gold-soft); color:var(--ivory); }
.sup-scen-b.on { background:linear-gradient(180deg,var(--gold),var(--gold-deep)); color:var(--ink-2); border-color:var(--gold); font-weight:700; box-shadow:0 8px 20px -12px rgba(201,162,75,.7); }

/* radar tooltip */
.sup-tip { position:absolute; transform:translate(-50%,-100%); z-index:30; pointer-events:none; background:var(--ink-2); border:1px solid var(--gold-soft); border-radius:8px; padding:7px 11px; font-size:11.5px; color:var(--ivory); box-shadow:0 14px 34px -14px rgba(0,0,0,.7); white-space:nowrap; }
.sup-tip b { display:block; color:var(--gold-soft); font-size:12px; }
.sup-tip span { color:var(--sage); font-size:10.5px; }
.sup-tip i { display:block; font-style:normal; color:var(--ivory-dim); margin-top:2px; }

/* timeline */
.sup-tl { display:flex; align-items:center; gap:12px; margin-top:12px; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:rgba(15,42,32,.35); }
.sup-tl-play { flex:0 0 auto; width:32px; height:32px; border-radius:50%; border:1px solid var(--gold-soft); background:rgba(201,162,75,.12); color:var(--gold-soft); cursor:pointer; font-size:11px; line-height:1; }
.sup-tl-play:hover { background:var(--gold); color:var(--ink-2); }
.sup-tl input[type=range] { flex:1; accent-color:var(--gold); }
.sup-tl-read { flex:0 0 auto; font-size:11.5px; color:var(--sage); min-width:160px; text-align:end; }
.sup-tl-read b { color:var(--ivory); }
@media (max-width:560px){ .sup-tl { flex-wrap:wrap; } .sup-tl-read { min-width:0; text-align:start; } }

/* live editor */
details.sup-ed { border:1px solid var(--line); border-radius:12px; background:rgba(15,42,32,.35); overflow:hidden; }
.sup-ed > summary { cursor:pointer; padding:13px 16px; font-size:13.5px; font-weight:600; color:var(--gold-soft); list-style:none; user-select:none; }
.sup-ed > summary::-webkit-details-marker { display:none; }
.sup-ed[open] > summary { border-bottom:1px solid var(--line); }
.sup-ed-body { padding:14px 16px; display:flex; flex-direction:column; gap:12px; }
.sup-ed-h { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-soft); margin-top:6px; display:flex; align-items:center; gap:10px; }
.sup-ed-add { margin-inline-start:auto; font:inherit; font-size:11.5px; color:var(--ink-2); background:var(--gold-soft); border:none; border-radius:999px; padding:5px 12px; cursor:pointer; font-weight:600; }
.sup-ed-add:hover { background:var(--gold); }
.sup-ed input[type=number] { font:inherit; font-size:12.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:7px; padding:6px 8px; width:100%; }
.sup-ed input[type=number]:focus { outline:none; border-color:var(--gold-soft); }
.sup-ed-caps { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
@media (max-width:560px){ .sup-ed-caps { grid-template-columns:repeat(2,1fr); } }
.sup-ed-f { display:flex; flex-direction:column; gap:4px; font-size:11px; color:var(--sage); }
.sup-ed-prods { display:flex; flex-direction:column; gap:6px; }
.sup-ed-prow { display:flex; align-items:center; gap:10px; }
.sup-ed-pn { flex:1; color:var(--ivory-dim); display:flex; flex-direction:column; font-size:12.5px; }
.sup-ed-pn em { font-style:normal; font-size:10px; color:var(--sage); }
.sup-ed-prow label { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--sage); }
.sup-ed-prow input { width:118px; }
.sup-ed-mtbl { display:flex; flex-direction:column; gap:4px; overflow-x:auto; }
.sup-ed-mhead, .sup-ed-mrow { display:grid; grid-template-columns:1.6fr .9fr .62fr .62fr .34fr .3fr; gap:6px; align-items:center; min-width:430px; }
.sup-ed-mhead { font-size:9.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--sage-dim); padding:2px 0; }
.sup-ed-mrow input[type=number] { padding:5px 6px; font-size:11.5px; }
.sup-ed-mn { font-size:11.5px; color:var(--ivory-dim); display:flex; flex-direction:column; overflow:hidden; }
.sup-ed-mn em { font-style:normal; font-size:9.5px; color:var(--sage); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sup-ed-chk { display:flex; justify-content:center; }
.sup-ed-chk input { accent-color:var(--gold); width:16px; height:16px; }
.sup-ed-rm { text-align:center; }
.sup-ed-rm button { background:none; border:none; color:var(--sage); cursor:pointer; font-size:13px; }
.sup-ed-rm button:hover { color:#e88a80; }

/* material drill-down */
.sup-drill-ov { position:fixed; inset:0; z-index:1000; background:rgba(8,20,15,.7); backdrop-filter:blur(3px); display:grid; place-items:center; padding:20px; }
.sup-drill { width:min(560px,94vw); max-height:88vh; overflow:auto; background:linear-gradient(180deg,var(--panel),var(--ink-2)); border:1px solid var(--gold-soft); border-radius:16px; padding:20px 22px; }
.sup-drill-h { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.sup-drill-h b { font-family:var(--serif); font-size:19px; color:var(--ivory); flex:1; }
.sup-drill-h .sup-single { color:var(--gold-soft); font-size:11px; }
.sup-drill-x { background:none; border:none; color:var(--sage); font-size:16px; cursor:pointer; }
.sup-drill-x:hover { color:var(--ivory); }
.sup-drill-facts { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:12.5px; color:var(--sage); margin-bottom:16px; }
.sup-drill-facts b { color:var(--ivory-dim); }
.sup-drill-title { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-soft); margin-bottom:8px; }
.sup-drill-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:4px; }
@media (max-width:480px){ .sup-drill-grid { grid-template-columns:repeat(6,1fr); } }
.sup-drill-m { display:flex; flex-direction:column; align-items:center; gap:3px; font-size:9px; color:var(--sage); }
.sup-drill-m i { width:100%; height:26px; border-radius:3px; background:var(--cc,#3a5f4c); }
.sup-drill-m u { text-decoration:none; font-size:8.5px; color:var(--ivory-dim); }
.sup-drill-act { margin-top:16px; padding:10px 14px; border-radius:10px; background:rgba(201,162,75,.12); border:1px solid var(--line); color:var(--gold-soft); font-size:13px; font-weight:600; text-align:center; }

/* ---- add-material dialog (demand-linked; Data Bank or custom/unlisted) ---- */
.sup-ed-addbtns { margin-inline-start:auto; display:flex; gap:7px; flex-wrap:wrap; }
.sup-ed-add2 { background:transparent; color:var(--gold-soft); box-shadow:inset 0 0 0 1px var(--gold-soft); }
.sup-ed-add2:hover { background:var(--gold-soft); color:var(--ink-2); }
.sup-ed-mrow.added { background:rgba(201,162,75,.07); border-radius:7px; }
.sup-am { width:min(660px,95vw); max-height:90vh; overflow:auto; background:linear-gradient(180deg,var(--panel),var(--ink-2)); border:1px solid var(--gold-soft); border-radius:16px; padding:20px 22px; }
.sup-am .sup-drill-h { flex-wrap:wrap; }
.sup-am-cat { font-size:11px; color:var(--sage); background:rgba(15,42,32,.6); border:1px solid var(--line); border-radius:999px; padding:3px 10px; }
.sup-am-body { display:flex; flex-direction:column; gap:12px; }
.sup-am-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
@media (max-width:600px){ .sup-am-grid { grid-template-columns:repeat(2,1fr); } }
.sup-am-f { display:flex; flex-direction:column; gap:4px; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--sage); position:relative; }
.sup-am-f.sup-am-wide { grid-column:span 2; }
.sup-am-f input, .sup-am-f select { font:inherit; text-transform:none; letter-spacing:0; font-size:13px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:8px 10px; width:100%; }
.sup-am-f input:focus, .sup-am-f select:focus { outline:none; border-color:var(--gold-soft); }
.sup-am-f input[readonly] { color:var(--ivory-dim); background:rgba(15,42,32,.5); }
.sup-am-chkf { flex-direction:row; align-items:center; gap:8px; text-transform:none; letter-spacing:0; font-size:12.5px; color:var(--ivory-dim); align-self:end; padding-bottom:8px; }
.sup-am-chkf input { accent-color:var(--gold); width:17px; height:17px; }
.sup-am-mini { position:absolute; inset-inline-end:6px; bottom:7px; font:inherit; font-size:10px; font-weight:600; color:var(--ink-2); background:var(--gold-soft); border:none; border-radius:6px; padding:3px 7px; cursor:pointer; }
.sup-am-mini:hover { background:var(--gold); }
.sup-am-h { font-size:11px; text-transform:uppercase; letter-spacing:.07em; color:var(--gold-soft); margin-top:4px; border-top:1px solid var(--line); padding-top:12px; }
.sup-am-prods { display:flex; flex-direction:column; gap:5px; max-height:230px; overflow-y:auto; padding:2px; }
.sup-am-prods.dim { opacity:.4; pointer-events:none; }
.sup-am-prow { display:flex; align-items:center; gap:10px; padding:6px 8px; border:1px solid var(--line); border-radius:8px; background:rgba(15,42,32,.35); cursor:pointer; }
.sup-am-prow.on { border-color:var(--gold-soft); background:rgba(201,162,75,.08); }
.sup-am-prow input[type=checkbox] { accent-color:var(--gold); width:16px; height:16px; flex:none; }
.sup-am-pn { flex:1; display:flex; flex-direction:column; font-size:12.5px; color:var(--ivory-dim); overflow:hidden; }
.sup-am-pn em { font-style:normal; font-size:9.5px; color:var(--sage); }
.sup-am-mg { width:96px; flex:none; font:inherit; font-size:12px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:7px; padding:6px 8px; text-align:end; }
.sup-am-mg:disabled { opacity:.4; }
.sup-am-standalone { display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--ivory-dim); flex-wrap:wrap; }
.sup-am-standalone input[type=checkbox] { accent-color:var(--gold); width:16px; height:16px; }
.sup-am-standalone span { flex:1; min-width:180px; }
.sup-am-standalone input[type=number] { width:120px; font:inherit; font-size:12.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:7px; padding:6px 8px; }
.sup-am-none { font-size:12px; color:var(--sage); }
.sup-am-preview { display:flex; flex-wrap:wrap; gap:7px; padding:12px; border-radius:10px; background:rgba(15,42,32,.5); border:1px solid var(--line); }
.sup-am-chip { font-size:11.5px; color:var(--ivory-dim); background:var(--ink-2); border:1px solid var(--line); border-radius:999px; padding:5px 11px; }
.sup-am-risk { color:var(--sage); border-color:var(--rk,var(--gold-soft)); }
.sup-am-risk b { color:var(--rk,var(--gold-soft)); }
.sup-am-foot { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.sup-am-cancel { font:inherit; font-size:13px; color:var(--sage); background:none; border:1px solid var(--line); border-radius:9px; padding:9px 18px; cursor:pointer; }
.sup-am-cancel:hover { color:var(--ivory); border-color:var(--sage); }
.sup-am-save { font:inherit; font-size:13px; font-weight:600; color:var(--ink-2); background:var(--gold); border:none; border-radius:9px; padding:9px 20px; cursor:pointer; }
.sup-am-save:hover { filter:brightness(1.08); }

/* add-product: demand-row remove + product dialog bill-of-materials */
.sup-ed-prow.added { background:rgba(201,162,75,.07); border-radius:7px; padding:2px 6px; }
.sup-ed-prm { min-width:20px; text-align:center; }
.sup-ed-prm button { background:none; border:none; color:var(--sage); cursor:pointer; font-size:13px; }
.sup-ed-prm button:hover { color:#e88a80; }
.sup-ap-bom { display:flex; flex-direction:column; gap:5px; max-height:220px; overflow-y:auto; padding:2px; }
.sup-ap-new { margin-top:2px; }
.sup-ap-newtog { font:inherit; font-size:12px; color:var(--gold-soft); background:transparent; border:1px dashed var(--gold-soft); border-radius:999px; padding:6px 14px; cursor:pointer; }
.sup-ap-newtog:hover { background:rgba(201,162,75,.1); }
.sup-ap-newf { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-top:10px; padding:10px; border:1px solid var(--line); border-radius:10px; background:rgba(15,42,32,.4); }
.sup-ap-newf input[type=text] { flex:1; min-width:130px; }
.sup-ap-newf input, .sup-ap-newf select { font:inherit; font-size:12.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:7px; padding:7px 9px; }
.sup-ap-newf input:focus, .sup-ap-newf select:focus { outline:none; border-color:var(--gold-soft); }
.sup-ap-newf input[type=number] { width:74px; }
.sup-ap-newchk { display:flex; align-items:center; gap:4px; color:var(--gold-soft); font-size:13px; cursor:pointer; }
.sup-ap-newchk input { accent-color:var(--gold); width:16px; height:16px; }
.sup-ap-newadd { font:inherit; font-size:12.5px; font-weight:600; color:var(--ink-2); background:var(--gold-soft); border:none; border-radius:8px; padding:7px 14px; cursor:pointer; }
.sup-ap-newadd:hover { background:var(--gold); }

/* ================= API & Excipient Data Bank ================= */
#databank { background: radial-gradient(60% 46% at 96% 2%, rgba(63,143,107,.1), transparent 60%); }
.db-head { margin-bottom:14px; }
.db-stats { display:flex; flex-wrap:wrap; gap:10px 22px; font-size:13px; color:var(--sage); }
.db-stats b { font-family:var(--serif); font-size:20px; color:var(--ivory); margin-inline-end:4px; }
.db-danger-t b { color:#e0a37a; }
.db-controls { display:flex; flex-direction:column; gap:10px; margin-bottom:12px; }
.db-search { width:100%; font:inherit; font-size:14px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:10px; padding:11px 14px; }
.db-search:focus { outline:none; border-color:var(--gold-soft); }
.db-pills { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.db-pill { font:inherit; font-size:12.5px; color:var(--ivory-dim); background:rgba(15,42,32,.5); border:1px solid var(--line); border-radius:999px; padding:7px 14px; cursor:pointer; transition:all .16s; }
.db-pill:hover { border-color:var(--gold-soft); color:var(--ivory); }
.db-pill.on { background:var(--gold-soft); color:var(--ink-2); border-color:var(--gold-soft); font-weight:600; }
.db-pill.db-danger.on { background:#c9524b; border-color:#c9524b; color:#fff; }
.db-sel { font:inherit; font-size:12.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:999px; padding:7px 12px; cursor:pointer; }
.db-count { font-size:12px; color:var(--sage); margin-bottom:12px; }
.db-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(285px,1fr)); gap:12px; max-height:660px; overflow-y:auto; padding:2px; }
.db-card { border:1px solid var(--line); border-radius:12px; padding:14px; background:rgba(15,42,32,.4); display:flex; flex-direction:column; gap:7px; }
.db-card.single { border-inline-start:3px solid #c9524b; }
.db-c-top { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.db-kind { font-size:9.5px; font-weight:700; letter-spacing:.05em; padding:2px 8px; border-radius:999px; text-transform:uppercase; }
.db-kind.api { background:rgba(63,143,176,.18); color:#8fc4dc; }
.db-kind.exc { background:rgba(123,182,97,.16); color:#a8d18c; }
.db-route { font-size:10px; padding:2px 8px; border-radius:999px; border:1px solid var(--rc,#3f8fb0); color:var(--rc,#3f8fb0); }
.db-single { font-size:10px; color:#e88a80; font-weight:600; margin-inline-start:auto; }
.db-name { font-family:var(--serif); font-size:16px; color:var(--ivory); margin:0; display:flex; flex-direction:column; line-height:1.2; }
.db-name em { font-style:normal; font-size:11px; color:var(--sage); font-family:var(--sans); margin-top:2px; }
.db-cat { font-size:11.5px; color:var(--gold-soft); }
.db-syn { font-size:11px; color:var(--sage-dim); }
.db-props { font-size:12px; color:var(--ivory-dim); line-height:1.5; }
.db-uses { font-size:11.5px; color:var(--sage); }
.db-uses b { color:var(--ivory-dim); }
.db-c-foot { display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; align-items:center; margin-top:2px; font-size:11px; color:var(--sage); }
.db-bands { display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.db-band { font-size:10.5px; font-weight:700; padding:2px 7px; border-radius:6px; background:rgba(201,162,75,.14); color:var(--gold-soft); }
.db-lead.lead-short { background:rgba(63,143,107,.18); color:#8fe0b3; }
.db-lead.lead-medium { background:rgba(201,162,75,.16); color:var(--gold-soft); }
.db-lead.lead-long { background:rgba(201,82,75,.16); color:#e88a80; }
.db-comp { font-size:10px; color:var(--sage); }
.db-note { font-size:11px; color:#d8c39a; background:rgba(201,162,75,.08); border-radius:7px; padding:5px 9px; }
.db-empty { color:var(--sage); padding:20px; text-align:center; }
.db-legend { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px; font-size:11px; color:var(--sage); }
.db-legend b { color:var(--ivory-dim); }
.db-legend-note { font-style:italic; color:var(--sage-dim); }

/* Data Bank picker overlay */
.db-pick-ov { position:fixed; inset:0; z-index:1000; background:rgba(8,20,15,.72); backdrop-filter:blur(3px); display:grid; place-items:start center; padding:6vh 20px; }
.db-pick { width:min(560px,95vw); max-height:82vh; display:flex; flex-direction:column; background:linear-gradient(180deg,var(--panel),var(--ink-2)); border:1px solid var(--gold-soft); border-radius:16px; overflow:hidden; }
.db-pick-h { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--line); }
.db-pick-h b { font-family:var(--serif); font-size:16px; color:var(--ivory); }
.db-pick-x { background:none; border:none; color:var(--sage); font-size:16px; cursor:pointer; }
.db-pick-x:hover { color:var(--ivory); }
.db-pick-c { padding:14px 18px 10px; display:flex; flex-direction:column; gap:10px; }
.db-pick-list { overflow-y:auto; padding:6px 12px 14px; display:flex; flex-direction:column; gap:6px; }
.db-pick-row { display:flex; align-items:center; gap:8px; text-align:start; font:inherit; background:rgba(15,42,32,.5); border:1px solid var(--line); border-radius:9px; padding:9px 12px; cursor:pointer; color:var(--ivory-dim); transition:all .14s; }
.db-pick-row:hover { border-color:var(--gold-soft); background:rgba(201,162,75,.08); }
.db-pick-nm { flex:1; display:flex; flex-direction:column; font-size:13px; color:var(--ivory); }
.db-pick-nm em { font-style:normal; font-size:10.5px; color:var(--sage); }
@media (prefers-reduced-motion: reduce){ .sup-cap-bar i, .sup-cap-bar u, .sup-route-bar i, .sup-rad-c { transition:none; } }

/* ================= Supply Studio — reliability layer, per-year, guided-tour "intro video" ================= */
/* launch row: tour button + month/year toggle */
.sup-launch { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.sup-tour-btn { display:inline-flex; align-items:center; gap:11px; font:inherit; font-size:14px; font-weight:600; color:var(--ink-2); cursor:pointer;
  background:linear-gradient(180deg,var(--gold-soft),var(--gold)); border:1px solid var(--gold); border-radius:999px; padding:9px 20px 9px 9px; box-shadow:0 10px 26px -14px rgba(201,162,75,.8); transition:transform .18s, box-shadow .18s; }
.sup-tour-btn:hover { transform:translateY(-1px); box-shadow:0 14px 30px -14px rgba(201,162,75,.95); }
.sup-tour-play { width:26px; height:26px; border-radius:50%; background:var(--ink-2); color:var(--gold-soft); display:flex; align-items:center; justify-content:center; font-size:11px; }
.sup-unit { display:inline-flex; border:1px solid var(--line); border-radius:999px; overflow:hidden; }
.sup-unit button { font:inherit; font-size:12.5px; color:var(--sage); background:transparent; border:0; padding:7px 15px; cursor:pointer; transition:all .16s; }
.sup-unit button.on { background:var(--gold-soft); color:var(--ink-2); font-weight:600; }

/* reliability chip under the gauge */
.sup-rel { margin-top:9px; font-size:11.5px; color:var(--sage); text-align:center; line-height:1.55; padding:0 6px; }
.sup-rel:empty { display:none; }
.sup-rel b { color:var(--ivory); font-variant-numeric:tabular-nums; }
.sup-rel-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--rc,#4f9e6b); margin-inline-end:5px; }
.sup-rel em { display:block; font-style:normal; font-size:10px; color:var(--sage-dim); margin-top:2px; letter-spacing:.03em; text-transform:uppercase; }
/* reliability verdict sentence */
.sup-rel-verdict { margin:-14px 0 24px; padding:11px 18px; font-size:13px; line-height:1.55; color:var(--sage); background:rgba(15,42,32,.35); border:1px solid var(--line); border-inline-start:3px solid var(--gold-deep); border-radius:10px; }
.sup-rel-verdict:empty { display:none; }
.sup-rel-verdict b { color:var(--ivory-dim); }
/* KPI reliability band sub-line */
.sup-kpi-band { display:block; font-size:10px; color:var(--sage); font-weight:400; margin-top:4px; font-variant-numeric:tabular-nums; }
.sup-kpi-band:empty { display:none; }
/* per-material stock-out probability chip in the radar */
.sup-rad-p { display:inline-block; min-width:30px; font-size:9px; font-weight:700; font-style:normal; margin-inline-end:5px; text-align:end; font-variant-numeric:tabular-nums; color:var(--sage); }
.sup-rad-p:empty { display:none; }
.sup-tip-p { color:var(--gold-soft) !important; }
.sup-drill-rec { margin-top:12px; padding:9px 13px; border-radius:9px; font-size:12.5px; color:#e0b878; background:rgba(201,162,75,.1); border:1px dashed color-mix(in srgb,var(--gold) 40%,transparent); }

/* toast */
.sup-toast { position:fixed; left:50%; bottom:30px; transform:translate(-50%,20px); z-index:1400; background:var(--ink-2); color:var(--ivory); border:1px solid var(--gold-soft); border-radius:10px; padding:10px 18px; font-size:13px; opacity:0; transition:opacity .3s, transform .3s; box-shadow:0 14px 34px -14px rgba(0,0,0,.7); }
.sup-toast.show { opacity:1; transform:translate(-50%,0); }

/* ===== guided-tour "intro video" — cinematic ===== */
html.tour-active { scroll-behavior:auto !important; }
#tourOv { position:fixed; inset:0; z-index:1200; }
/* dim: a radial vignette centred on the spotlight (JS sets --sx/--sy) */
.tour-dim { position:fixed; inset:0; z-index:1200;
  background:radial-gradient(135% 105% at var(--sx,50%) var(--sy,50%), rgba(6,16,12,.30) 0%, rgba(6,16,12,.62) 46%, rgba(6,16,12,.90) 100%);
  transition:background .5s ease; }
/* spotlight: a warm gold lens (not a black hole); position is a CUT, not a pan (opacity only) */
.tour-spot { position:fixed; z-index:1201; border-radius:var(--spot-r,14px); pointer-events:none;
  box-shadow:0 0 0 9999px rgba(6,16,12,.55), inset 0 0 0 1px var(--gold), inset 0 0 22px -6px var(--gold-soft), 0 0 34px -4px rgba(221,196,136,.55);
  border:1.5px solid var(--gold-soft); transition:opacity .28s ease; animation:tourBreathe 3.2s ease-in-out infinite; }
.tour-spot.cutting { opacity:0 !important; }
@keyframes tourBreathe {
  0%,100% { box-shadow:0 0 0 9999px rgba(6,16,12,.55), inset 0 0 0 1px var(--gold), inset 0 0 20px -7px var(--gold-soft), 0 0 28px -6px rgba(221,196,136,.42); }
  50%     { box-shadow:0 0 0 9999px rgba(6,16,12,.55), inset 0 0 0 1px var(--gold), inset 0 0 28px -3px var(--gold-soft), 0 0 50px -2px rgba(221,196,136,.74); } }
/* connector beam caption -> spot */
#tourLink { transition:opacity .3s ease; }
#tourBeam { stroke:var(--gold-soft); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 0 4px rgba(221,196,136,.6)); }
#tourDot { fill:var(--gold); }
/* transport / lower-third caption bar (flips top/bottom) */
.tour-bar { position:fixed; z-index:1300; left:50%; transform:translateX(-50%); bottom:24px; width:min(720px,94vw);
  background:linear-gradient(180deg,rgba(40,92,71,.92),rgba(27,66,51,.96)); border:1px solid var(--gold-soft); border-radius:16px; padding:15px 20px 16px; box-shadow:0 26px 70px -22px rgba(0,0,0,.78); }
@supports (backdrop-filter:blur(8px)) { .tour-bar { backdrop-filter:blur(8px); } }
.tour-bar--top { top:24px; bottom:auto; }
.tour-eyebrow { font-size:10.5px; letter-spacing:.11em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:9px; font-weight:600; }
.tour-cap { min-height:52px; transition:opacity .2s ease, transform .2s ease; }
.tour-cap.is-out { opacity:0; transform:translateY(6px); }
.tour-cap b { display:block; font-family:var(--serif); font-size:19px; color:var(--ivory); margin-bottom:4px; text-wrap:balance; line-height:1.2; }
.tour-cap span { font-size:14px; color:var(--ivory-dim); line-height:1.55; max-width:62ch; }
.tour-prog { height:3px; border-radius:2px; background:rgba(244,239,225,.14); margin:13px 0 10px; overflow:hidden; }
.tour-prog i { display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--gold-deep),var(--gold)); border-radius:2px; }
.tour-scrub { display:flex; gap:4px; margin-bottom:12px; }
.tour-scrub i { flex:1; height:4px; border-radius:2px; background:rgba(244,239,225,.16); cursor:pointer; transition:background .3s; }
.tour-scrub i.done { background:var(--gold-deep); }
.tour-scrub i.cur { background:var(--gold); box-shadow:0 0 8px -1px var(--gold); }
.tour-ctrls { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tour-count { font-size:12px; color:var(--sage); font-variant-numeric:tabular-nums; }
.tour-btns { display:flex; gap:7px; align-items:center; }
.tour-btns button { font:inherit; font-size:15px; min-width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:rgba(15,42,32,.6); color:var(--ivory-dim); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:transform .16s, border-color .16s, color .16s, background .16s; }
.tour-btns button:hover { border-color:var(--gold-soft); color:var(--ivory); transform:translateY(-1px); }
.tour-btns button:active { transform:translateY(0) scale(.95); }
.tour-btns button:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.tour-btns #tourClose { width:auto; padding:0 15px; font-size:13px; }
.tour-btns #tourMute.on { background:var(--gold-soft); color:var(--ink-2); border-color:var(--gold-soft); }
/* cover / outro cards */
.tour-card-wrap { position:fixed; inset:0; z-index:1320; display:none; place-items:center; padding:20px; }
.tour-card { width:min(560px,94vw); text-align:center; background:radial-gradient(120% 100% at 50% 0%, rgba(47,104,80,.6), transparent 60%), linear-gradient(180deg,var(--panel),var(--ink-2));
  border:1px solid var(--gold-soft); border-radius:20px; padding:34px 34px 30px; box-shadow:0 40px 100px -30px rgba(0,0,0,.85); animation:tourCardIn .5s cubic-bezier(.22,.61,.36,1) both; }
@keyframes tourCardIn { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
.tour-card-eye { display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft); font-weight:700; margin-bottom:16px; }
.tour-card-t { font-family:var(--serif); font-size:30px; line-height:1.12; color:var(--ivory); margin:0 0 10px; text-wrap:balance; }
.tour-card-s { font-size:15.5px; color:var(--ivory-dim); line-height:1.55; margin:0 auto 16px; max-width:44ch; }
.tour-card-chip { display:inline-block; font-size:12px; color:var(--gold-soft); border:1px solid var(--line); border-radius:999px; padding:5px 14px; font-variant-numeric:tabular-nums; }
.tour-card-recap { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 16px; margin:6px 0 18px; font-size:13px; color:#8fe0b3; }
.tour-card-btns { display:flex; flex-direction:column; align-items:center; gap:11px; margin:20px 0 14px; }
.tour-card-go { font:inherit; font-size:15px; font-weight:700; color:var(--ink-2); cursor:pointer; background:linear-gradient(180deg,var(--gold-soft),var(--gold)); border:1px solid var(--gold); border-radius:999px; padding:12px 30px; box-shadow:0 12px 30px -14px rgba(201,162,75,.9); transition:transform .16s, box-shadow .16s; text-decoration:none; display:inline-block; }
.tour-card-go:hover { transform:translateY(-1px); box-shadow:0 16px 34px -14px rgba(201,162,75,1); }
.tour-card-skip { font:inherit; font-size:13px; color:var(--sage); background:none; border:none; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.tour-card-skip:hover { color:var(--ivory); }
.tour-card-note { display:block; font-size:11.5px; color:var(--sage-dim); margin-top:6px; }
@media (max-width:560px){ .tour-bar { bottom:12px; padding:13px 15px; } .tour-cap b { font-size:17px; } .tour-cap span { font-size:13px; } .tour-btns button { min-width:34px; height:34px; } .tour-card { padding:26px 22px; } .tour-card-t { font-size:24px; } }
@media (prefers-reduced-motion: reduce){ .tour-spot { animation:none; } .tour-dim, .tour-cap { transition:none; } .tour-card { animation:none; } }

/* plant-location selector (impact factor) */
.sup-loc { display:flex; flex-direction:column; gap:4px; }
.sup-loc > span { font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold-soft); }
.sup-loc select { font:inherit; font-size:13.5px; color:var(--ivory); background:var(--ink-2); border:1px solid var(--gold-soft); border-radius:10px; padding:8px 12px; min-width:250px; max-width:100%; cursor:pointer; }
.sup-loc select:focus { outline:none; border-color:var(--gold); }
.sup-launch-right { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
@media (max-width:560px){ .sup-loc select { min-width:0; width:100%; } .sup-launch { gap:10px; } }

/* location-vs-closed-lane banner */
.sup-geo { margin:-8px 0 22px; padding:12px 18px; border-radius:11px; font-size:14px; line-height:1.55; }
.sup-geo:empty { display:none; }
.sup-geo b { font-weight:700; }
.sup-geo.hit { color:#e88a80; background:rgba(165,53,43,.12); border:1px solid color-mix(in srgb,#c9524b 50%,transparent); }
.sup-geo.safe { color:#8fe0b3; background:rgba(47,158,110,.1); border:1px solid color-mix(in srgb,#2f9e6e 45%,transparent); }
.sup-geo.safe b { color:#b6eccf; }
.sup-geo.hit b { color:#f2a89f; }

/* ================= Supply Studio — cinematic "how it works" explainer (composed, bulletproof) ================= */
#introOv, #siOv, #diOv, #dcOv, #friOv, #mriOv, #pibOv, #ledOv, #tndOv, #bsiOv { position:fixed; inset:0; z-index:1400; display:grid; place-items:center; padding:20px;
  background:radial-gradient(120% 100% at 50% 30%, rgba(10,26,19,.86), rgba(5,13,10,.96)); }
.intro-frame { width:min(860px,96vw); background:linear-gradient(180deg,var(--panel),var(--ink-2));
  border:1px solid var(--gold-soft); border-radius:20px; padding:20px 26px 18px; box-shadow:0 46px 110px -30px rgba(0,0,0,.9);
  animation:introFrameIn .5s cubic-bezier(.22,.61,.36,1) both; }
@keyframes introFrameIn { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
.intro-brand { font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-soft); font-weight:700; text-align:center; margin-bottom:12px; }
.intro-stage { min-height:min(44vh,330px); display:grid; place-items:center; }
.intro-c { width:100%; display:grid; place-items:center; text-align:center; }

/* gauge scene */
.intro-c-gauge .intro-gauge { width:min(340px,80%); height:auto; }
.intro-gv { font-family:var(--serif); font-size:46px; font-weight:700; fill:var(--ivory); opacity:0; }
.intro-gr { font-size:18px; font-weight:700; opacity:0; }
.intro-gauge-cap { margin-top:6px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); }
.playing .intro-gauge-arc { animation:introArc 1.3s cubic-bezier(.22,.61,.36,1) forwards; }
@keyframes introArc { from { stroke-dashoffset:100; } }
.intro-gauge-needle { transform-origin:130px 120px; }
.playing .intro-gauge-needle { animation:introNeedle 1.3s cubic-bezier(.22,.61,.36,1) forwards; }
@keyframes introNeedle { from { transform:rotate(0deg); } to { transform:rotate(var(--ang)); } }
.playing .intro-gv, .playing .intro-gr { animation:introFade .5s ease forwards; animation-delay:.9s; }
@keyframes introFade { to { opacity:1; } }

/* radar scene */
.intro-c-radar { gap:8px; }
.intro-radar-h { display:grid; grid-template-columns:repeat(12,1fr); gap:4px; width:min(560px,92%); font-size:9px; color:var(--sage); }
.intro-radar-h span { text-align:center; }
.intro-radar { display:grid; grid-template-columns:repeat(var(--cols),1fr); gap:4px; width:min(560px,92%); }
.intro-radar i { aspect-ratio:1; border-radius:3px; background:var(--cc); opacity:0; transform:scale(.5); }
.playing .intro-radar i { animation:introCell .42s ease forwards; animation-delay:var(--d); }
@keyframes introCell { to { opacity:1; transform:none; } }
.intro-radar-lg { display:flex; gap:16px; font-size:11px; color:var(--sage); margin-top:4px; }
.intro-radar-lg i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-inline-end:5px; vertical-align:-1px; }

/* map / route schematic scene */
.intro-c-map { gap:12px; }
.intro-map { width:min(620px,96%); height:auto; }
.intro-lane { stroke:var(--gold-soft); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1400; stroke-dashoffset:1400; filter:drop-shadow(0 0 3px rgba(221,196,136,.5)); }
.playing .lane-gulf { animation:introLane 1.4s ease forwards; }
.playing .lane-alg { animation:introLane 1.6s ease forwards .3s; }
@keyframes introLane { to { stroke-dashoffset:0; } }
.lane-dead { stroke:var(--gold-soft); animation:none !important; stroke-dashoffset:0; opacity:.5; stroke-dasharray:8 9; }
.playing .lane-dead { stroke:#c9524b; opacity:.9; animation:introDead .8s ease forwards; }
@keyframes introDead { from { stroke:#d69e1e; } to { stroke:#c9524b; } }
.lane-off { stroke-dashoffset:0; opacity:.16; animation:none !important; }
.intro-node circle { fill:var(--panel-2); stroke:var(--gold-soft); stroke-width:2; opacity:0; }
.playing .intro-node circle { animation:introPop .45s ease forwards; }
@keyframes introPop { from { opacity:0; } to { opacity:1; } }
.n-src circle { fill:#2f6850; }
.n-choke.choke-hot circle { fill:#3a2a14; stroke:var(--gold); }
.n-choke.choke-shut circle, .choke-shut circle { fill:#3a1614; stroke:#c9524b; }
.n-plant circle { fill:var(--gold-deep); stroke:var(--gold); r:11; }
.n-plant.plant-hit circle { fill:#5a1f1a; stroke:#c9524b; }
.n-plant.plant-safe circle { fill:#1f6a4a; stroke:#4f9e6b; }
.intro-nlbl { fill:var(--ivory); font-size:12px; font-weight:600; }
.intro-nsub { fill:var(--sage); font-size:10px; }
.n-choke .intro-nsub { fill:#e88a80; font-weight:700; }
.intro-x line { stroke:#e88a80; stroke-width:3; stroke-linecap:round; }
.playing .intro-x { animation:introPop .4s ease forwards .5s; opacity:0; }
.intro-idx { font-size:15px; color:var(--ivory-dim); padding:7px 16px; border-radius:999px; border:1px solid var(--line); opacity:0; }
.playing .intro-idx { animation:introFade .5s ease forwards 1.2s; }
.intro-idx b { font-family:var(--serif); font-size:19px; }
.intro-idx.bad { color:#e88a80; background:rgba(165,53,43,.14); border-color:color-mix(in srgb,#c9524b 45%,transparent); }
.intro-idx.ok { color:#8fe0b3; background:rgba(47,158,110,.12); border-color:color-mix(in srgb,#2f9e6e 45%,transparent); }

/* CTA scene */
.intro-c-cta { gap:6px; }
.intro-cta-mark { font-size:26px; color:var(--gold-soft); }
.intro-c-cta h4 { font-family:var(--serif); font-size:26px; color:var(--ivory); margin:6px 0; text-wrap:balance; }
.intro-c-cta p { font-size:14.5px; color:var(--ivory-dim); max-width:48ch; line-height:1.55; margin:0 auto; }
.intro-cta-btns { display:flex; flex-direction:column; align-items:center; gap:10px; margin-top:18px; }
.intro-book { font:inherit; font-size:15px; font-weight:700; color:var(--ink-2); cursor:pointer; background:linear-gradient(180deg,var(--gold-soft),var(--gold)); border:1px solid var(--gold); border-radius:999px; padding:12px 30px; box-shadow:0 12px 30px -14px rgba(201,162,75,.9); transition:transform .16s; }
.intro-book:hover { transform:translateY(-1px); }
.intro-explore { font:inherit; font-size:13px; color:var(--sage); background:none; border:none; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.intro-explore:hover { color:var(--ivory); }

/* KPI scene */
.intro-c-kpis .intro-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; width:min(660px,96%); }
@media (max-width:560px){ .intro-c-kpis .intro-kpis { grid-template-columns:repeat(2,1fr); } }
.intro-kpi { border:1px solid var(--line); border-radius:12px; padding:16px 12px; background:rgba(15,42,32,.5); display:flex; flex-direction:column; gap:5px; opacity:0; transform:translateY(10px); }
.playing .intro-kpi { animation:introRise .5s ease forwards; animation-delay:var(--d); }
@keyframes introRise { to { opacity:1; transform:none; } }
.intro-kpi b { font-family:var(--serif); font-size:27px; line-height:1; color:var(--ivory); }
.intro-kpi span { font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--sage); }
.intro-kpi.warn b { color:#e0b872; } .intro-kpi.bad b { color:#e88a80; } .intro-kpi.ok b { color:#8fd6ab; }
.intro-kpi.warn { border-color:color-mix(in srgb,#d69e1e 40%,transparent); }
.intro-kpi.bad { border-color:color-mix(in srgb,#c9524b 45%,transparent); }
.intro-kpi.ok { border-color:color-mix(in srgb,#4f9e6b 40%,transparent); }

/* capacity-vs-demand scene */
.intro-c-cap { gap:10px; }
.intro-cap-tbl { display:flex; flex-direction:column; gap:9px; width:min(560px,94%); }
.intro-cap-row { display:grid; grid-template-columns:1.2fr 2.3fr auto; gap:12px; align-items:center; }
.intro-cap-n { font-size:12px; color:var(--ivory-dim); text-align:start; }
.intro-cap-bar { position:relative; height:12px; border-radius:6px; background:rgba(244,239,225,.1); overflow:hidden; }
.intro-cap-bar i { position:absolute; inset:0 auto 0 0; width:0; border-radius:6px; background:#4f9e6b; }
.intro-cap-bar i.warn { background:#d69e1e; } .intro-cap-bar i.bad { background:#c9524b; }
.intro-cap-bar u { position:absolute; inset:0 auto 0 100%; width:0; background:repeating-linear-gradient(45deg,#c9524b,#c9524b 3px,#8f342e 3px,#8f342e 6px); }
.playing .intro-cap-bar i { animation:introGrow .8s cubic-bezier(.22,.61,.36,1) forwards; animation-delay:var(--d); }
.playing .intro-cap-bar u { animation:introGrow .8s cubic-bezier(.22,.61,.36,1) forwards; animation-delay:calc(var(--d) + .3s); }
@keyframes introGrow { to { width:var(--w); } }
.intro-cap-v { font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; color:var(--sage); }
.intro-cap-v.warn { color:#e0b872; } .intro-cap-v.bad { color:#e88a80; }
.intro-cap-note { font-size:11.5px; color:var(--sage); margin-top:2px; }

/* Monte-Carlo scene */
.intro-c-mc { gap:16px; }
.intro-mc-grid { display:grid; grid-template-columns:repeat(20,1fr); gap:4px; width:min(430px,84%); }
.intro-mc-grid i { aspect-ratio:1; border-radius:50%; opacity:0; transform:scale(.4); }
.intro-mc-grid i.clear { background:#3f8f66; } .intro-mc-grid i.stop { background:#c9524b; }
.playing .intro-mc-grid i { animation:introDot .3s ease forwards; animation-delay:var(--d); }
@keyframes introDot { to { opacity:1; transform:none; } }
.intro-mc-read { display:flex; flex-direction:column; align-items:center; gap:5px; }
.intro-mc-big { display:flex; align-items:baseline; gap:10px; }
.intro-mc-big b { font-family:var(--serif); font-size:40px; line-height:1; color:#8fd6ab; }
.intro-mc-big span { font-size:13px; color:var(--ivory-dim); }
.intro-mc-sub { font-size:12.5px; color:#e0b872; }

/* one-click scenarios scene */
.intro-c-scn { gap:20px; }
.intro-scn-row { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; width:min(600px,94%); }
.intro-scn { font-size:12px; color:var(--ivory-dim); background:rgba(15,42,32,.6); border:1px solid var(--line); border-radius:999px; padding:7px 14px; opacity:0; transform:scale(.9); }
.playing .intro-scn { animation:introRise .4s ease forwards; animation-delay:var(--d); }
.intro-scn.sc-red { border-color:#c9524b; color:#e88a80; }
.intro-scn.sc-green { border-color:#4f9e6b; color:#8fd6ab; }
.intro-scn-cmp { display:flex; align-items:center; gap:16px; }
.intro-scn-badge { display:flex; flex-direction:column; align-items:center; padding:10px 22px; border-radius:14px; border:1px solid var(--line); }
.intro-scn-badge b { font-family:var(--serif); font-size:30px; line-height:1; }
.intro-scn-badge span { font-size:11px; margin-top:4px; }
.intro-scn-badge.red { background:rgba(165,53,43,.14); border-color:color-mix(in srgb,#c9524b 45%,transparent); } .intro-scn-badge.red b, .intro-scn-badge.red span { color:#e88a80; }
.intro-scn-badge.green { background:rgba(47,158,110,.12); border-color:color-mix(in srgb,#2f9e6e 45%,transparent); } .intro-scn-badge.green b, .intro-scn-badge.green span { color:#8fd6ab; }
.intro-scn-arrow { font-size:22px; color:var(--gold-soft); }

/* order-ledger scene */
.intro-c-ord .intro-ord-tbl { display:flex; flex-direction:column; gap:8px; width:min(560px,94%); }
.intro-ord { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:11px 14px; border:1px solid var(--line); border-radius:10px; background:rgba(15,42,32,.5); text-align:start; opacity:0; transform:translateX(-8px); }
.playing .intro-ord { animation:introSlide .45s ease forwards; animation-delay:var(--d); }
@keyframes introSlide { to { opacity:1; transform:none; } }
.intro-ord.over { border-inline-start:3px solid #c9524b; }
.intro-ord-q { font-family:var(--serif); font-size:16px; color:var(--gold-soft); font-variant-numeric:tabular-nums; }
.intro-ord-n { font-size:13px; color:var(--ivory-dim); }
.intro-ord-tag { font-size:11px; color:var(--sage); white-space:nowrap; }
.intro-ord-tag.over { color:#e88a80; font-weight:700; }

/* add-material scene */
.intro-c-add { gap:14px; }
.intro-add-btns { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.intro-add-b { font-size:12px; font-weight:600; color:var(--ink-2); background:var(--gold-soft); border-radius:999px; padding:7px 15px; }
.intro-add-b.alt { background:transparent; color:var(--gold-soft); box-shadow:inset 0 0 0 1px var(--gold-soft); }
.intro-add-b.prod { background:transparent; color:#8fd6ab; box-shadow:inset 0 0 0 1px #4f9e6b; }
.intro-add-card { width:min(430px,92%); border:1px solid var(--gold-soft); border-radius:14px; padding:16px 18px; background:rgba(15,42,32,.55); display:flex; flex-direction:column; gap:11px; opacity:0; transform:translateY(10px); }
.playing .intro-add-card { animation:introRise .5s ease forwards; animation-delay:.3s; }
.intro-add-nm { font-family:var(--serif); font-size:17px; color:var(--ivory); display:flex; flex-direction:column; gap:3px; text-align:start; }
.intro-add-nm em { font-style:normal; font-size:11px; color:var(--sage); }
.intro-add-arrow { font-size:12px; color:var(--gold-soft); }
.intro-add-chips { display:flex; flex-wrap:wrap; gap:7px; }
.intro-add-chips span { font-size:11.5px; color:var(--ivory-dim); background:var(--ink-2); border:1px solid var(--line); border-radius:999px; padding:4px 11px; }
.intro-add-chips .risk { color:#e88a80; border-color:color-mix(in srgb,#c9524b 45%,transparent); }

/* caption + transport */
.intro-cap { text-align:center; min-height:66px; margin-top:14px; }
.intro-cap b { display:block; font-family:var(--serif); font-size:21px; color:var(--ivory); margin-bottom:5px; text-wrap:balance; }
.intro-cap span { font-size:14.5px; color:var(--ivory-dim); line-height:1.55; max-width:64ch; display:inline-block; }
.intro-prog { height:3px; border-radius:2px; background:rgba(244,239,225,.14); margin:14px 0 10px; overflow:hidden; }
.intro-prog i { display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--gold-deep),var(--gold)); }
.intro-scrub { display:flex; gap:5px; margin-bottom:12px; }
.intro-scrub i { flex:1; height:4px; border-radius:2px; background:rgba(244,239,225,.16); cursor:pointer; transition:background .3s; }
.intro-scrub i.done { background:var(--gold-deep); }
.intro-scrub i.cur { background:var(--gold); box-shadow:0 0 8px -1px var(--gold); }
.intro-ctrls { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.intro-count { font-size:12px; color:var(--sage); font-variant-numeric:tabular-nums; }
.intro-btns { display:flex; gap:7px; align-items:center; }
.intro-btns button { font:inherit; font-size:15px; min-width:38px; height:38px; border-radius:10px; border:1px solid var(--line); background:rgba(15,42,32,.6); color:var(--ivory-dim); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:transform .16s, border-color .16s, color .16s; }
.intro-btns button:hover { border-color:var(--gold-soft); color:var(--ivory); transform:translateY(-1px); }
.intro-btns button:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.intro-btns #introClose { width:auto; padding:0 15px; font-size:13px; }
.intro-btns #introMute.on { background:var(--gold-soft); color:var(--ink-2); border-color:var(--gold-soft); }
@media (max-width:560px){ .intro-frame { padding:16px 16px 14px; } .intro-cap b { font-size:18px; } .intro-cap span { font-size:13px; } .intro-c-cta h4 { font-size:21px; } .intro-btns button { min-width:34px; height:34px; } }
@media (prefers-reduced-motion: reduce){
  .intro-frame { animation:none; } .playing .intro-gauge-arc, .playing .intro-gauge-needle, .playing .intro-radar i, .playing .lane-gulf, .playing .lane-alg, .playing .intro-node circle, .playing .intro-x, .playing .intro-idx, .playing .intro-gv, .playing .intro-gr, .playing .intro-kpi, .playing .intro-cap-bar i, .playing .intro-cap-bar u, .playing .intro-mc-grid i, .playing .intro-scn, .playing .intro-ord, .playing .intro-add-card { animation-duration:.01s !important; animation-delay:0s !important; }
}

/* ================= Hero proof chips + "Why AUPAM is the reference" band ================= */
.hero-proof { list-style:none; display:flex; flex-wrap:wrap; gap:12px 26px; margin:22px 0 0; padding:0; }
.hero-proof li { display:flex; flex-direction:column; }
.hero-proof b { font-family:var(--serif); font-size:23px; color:var(--gold); line-height:1; font-weight:600; }
.hero-proof span { font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:var(--sage); margin-top:4px; }
.lang-ar .hero-proof span { text-transform:none; letter-spacing:0; font-size:12px; }

.why-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:36px; }
@media (max-width:900px){ .why-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .why-grid { grid-template-columns:1fr; } }
.why-card { position:relative; display:flex; flex-direction:column; gap:11px; border:1px solid var(--line); border-radius:14px; padding:22px 20px 20px; background:linear-gradient(180deg, rgba(15,42,32,.55), rgba(15,42,32,.22)); overflow:hidden; }
.why-card::before { content:""; position:absolute; inset:0 0 auto 0; height:2px; background:linear-gradient(90deg, var(--gold), transparent 78%); opacity:.75; }
.why-ico { width:34px; height:34px; color:var(--gold); }
.why-ico svg { width:100%; height:100%; display:block; }
.why-card h3 { font-family:var(--serif); font-size:17px; line-height:1.28; color:var(--ivory); }
.why-card p { font-size:13.5px; line-height:1.62; color:var(--sage); }
.why-link { margin-top:auto; padding-top:4px; font-size:12.5px; font-weight:600; color:var(--gold-soft); text-decoration:none; align-self:flex-start; }
.why-link:hover { color:var(--gold); }

/* ---- forum: admin "draft from the Regulatory-Change Radar" modal ---- */
.fm-draft-ov { position:fixed; inset:0; z-index:1000; background:rgba(8,20,15,.72); backdrop-filter:blur(3px); display:grid; place-items:center; padding:20px; }
.fm-draft { width:min(760px,96vw); max-height:88vh; overflow:auto; background:linear-gradient(180deg,var(--panel),var(--ink-2)); border:1px solid var(--gold-soft); border-radius:16px; padding:20px 22px; }
.fm-draft-h { display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.fm-draft-h b { font-family:var(--serif); font-size:19px; color:var(--ivory); flex:1; }
.fm-draft-x { background:none; border:none; color:var(--sage); font-size:16px; cursor:pointer; }
.fm-draft-x:hover { color:var(--ivory); }
.fm-draft-note { font-size:12.5px; color:var(--sage); margin:0 0 14px; line-height:1.55; }
.fm-draft-list { display:flex; flex-direction:column; gap:12px; }
.fm-draft-row { display:flex; gap:12px; padding:12px; border:1px solid var(--line); border-radius:12px; background:rgba(15,42,32,.4); }
.fm-draft-inc input { accent-color:var(--gold); width:17px; height:17px; margin-top:4px; }
.fm-draft-fields { flex:1; display:flex; flex-direction:column; gap:7px; min-width:0; }
.fm-draft-t { font:inherit; font-size:14px; font-weight:600; color:var(--ivory); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:8px 10px; }
.fm-draft-b { font:inherit; font-size:12.5px; line-height:1.5; color:var(--ivory-dim); background:var(--ink-2); border:1px solid var(--line); border-radius:8px; padding:8px 10px; resize:vertical; }
.fm-draft-t:focus, .fm-draft-b:focus { outline:none; border-color:var(--gold-soft); }
.fm-draft-src { font-size:11px; color:var(--gold-soft); text-decoration:none; word-break:break-all; }
.fm-draft-src:hover { color:var(--gold); text-decoration:underline; }
.fm-draft-empty { font-size:13px; color:var(--sage); text-align:center; padding:24px; }
.fm-draft-foot { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; }
.fm-draft-foot .btn { font-size:13.5px; padding:9px 18px; }
[dir="rtl"] .fm-draft-b, [dir="rtl"] .fm-draft-t { text-align:right; }

/* forum: bilingual bodies — each paragraph auto-directs (English LTR / Arabic RTL in one topic) */
.fm-body p { margin:0 0 .8em; }
.fm-body p:last-child { margin-bottom:0; }
.fm-body p[dir="rtl"] { text-align:right; }

/* ============================================================
   CONTROL PANEL — one cockpit for the Office (control.js)
   ============================================================ */
.ctl-card { width:min(940px,100%); }
.ctl-head { margin-bottom:22px; }
.ctl-head h3 { font-family:var(--serif); font-weight:400; font-size:clamp(24px,3vw,32px); color:var(--ivory); margin:10px 0 0; }

/* attention board — the reason the panel exists */
.ctl-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:30px; }
@media (max-width:720px){ .ctl-stats{ grid-template-columns:repeat(2,1fr); } }
.ctl-stat { text-align:start; font:inherit; cursor:pointer; border:1px solid var(--line-soft); border-radius:12px;
  background:rgba(15,42,32,.4); padding:16px 16px 14px; display:flex; flex-direction:column; gap:3px;
  transition:border-color .25s, background .25s, transform .25s var(--ease); }
.ctl-stat:hover { border-color:var(--line); background:rgba(15,42,32,.7); transform:translateY(-2px); }
.ctl-stat[disabled] { cursor:default; opacity:.5; }
.ctl-stat[disabled]:hover { transform:none; border-color:var(--line-soft); background:rgba(15,42,32,.4); }
.ctl-stat b { font-family:var(--serif); font-size:34px; line-height:1; color:var(--sage); font-variant-numeric:tabular-nums; font-weight:400; }
.ctl-stat.has b { color:var(--gold); }
.ctl-stat span { font-size:13px; color:var(--ivory-dim); }
.ctl-stat em { font-style:normal; font-size:11.5px; color:var(--sage-dim); line-height:1.4; }

/* capability groups */
.ctl-group { margin-bottom:26px; }
.ctl-group h4 { font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin:0 0 12px; }
.ctl-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:720px){ .ctl-grid{ grid-template-columns:1fr; } }
.ctl-item { text-align:start; font:inherit; cursor:pointer; border:1px solid var(--line-soft); border-radius:12px;
  background:rgba(15,42,32,.4); padding:14px 16px; display:flex; flex-direction:column; gap:5px;
  transition:border-color .25s, background .25s; }
.ctl-item:hover { border-color:var(--gold); background:rgba(15,42,32,.75); }
.ctl-item-h { display:flex; align-items:center; gap:8px; font-size:15.5px; color:var(--ivory); }
.ctl-item-d { font-size:12.5px; color:var(--sage); line-height:1.45; }
.ctl-badge { font-size:11px; font-weight:700; color:#fff; background:var(--red); border-radius:999px;
  padding:1px 7px; font-variant-numeric:tabular-nums; }

.ctl-note, .ctl-foot { font-size:12px; color:var(--sage-dim); line-height:1.5; margin:0; }
.ctl-note { margin-bottom:10px; }
.ctl-foot { border-top:1px solid var(--line-soft); padding-top:14px; margin-top:6px; }

/* ============================================================
   INTERNATIONAL FORUMS DIRECTORY (directory.js)
   ============================================================ */
.dir-tabs { display:flex; gap:8px; margin-bottom:26px; border-bottom:1px solid var(--line-soft); }
.dir-tab { font:inherit; font-family:var(--sans); font-size:14px; color:var(--sage); background:none; border:none;
  border-bottom:2px solid transparent; padding:10px 4px; margin-inline-end:18px; cursor:pointer;
  transition:color .25s, border-color .25s; }
.dir-tab:hover { color:var(--ivory-dim); }
.dir-tab.on { color:var(--ivory); border-bottom-color:var(--gold); }

/* the finding — the most important thing on the page */
.dir-finding { border:1px solid var(--gold); border-radius:var(--r); padding:clamp(22px,3vw,32px);
  background:linear-gradient(150deg, var(--forest-2), var(--ink-2)); margin-bottom:22px; }
.dir-finding h4 { font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin:0 0 14px; }
.dir-finding p { font-family:var(--serif); font-size:clamp(17px,1.9vw,20px); line-height:1.6; color:var(--ivory-dim); margin:0; }
.dir-finding b { color:var(--gold-soft); font-weight:400; }

.dir-meta { font-size:13px; color:var(--sage-dim); line-height:1.5; margin:0 0 30px; }

.dir-group { margin-bottom:34px; }
.dir-group h4 { font-family:var(--serif); font-weight:400; font-size:21px; color:var(--ivory);
  margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line-soft); }
.dir-group h4 em { font-style:normal; font-size:12px; font-family:var(--sans); color:var(--sage-dim); margin-inline-start:6px; }
.dir-ic { margin-inline-end:6px; }

.dir-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.dir-item { border:1px solid var(--line-soft); border-radius:12px; padding:16px 18px; background:rgba(15,42,32,.4);
  display:grid; grid-template-columns:1fr auto; gap:4px 14px; transition:border-color .25s, background .25s; }
.dir-item:hover { border-color:var(--line); background:rgba(15,42,32,.7); }
.dir-item.star { border-color:var(--gold); }
.dir-item.regional { border-color:var(--green-accent); }

.dir-link { grid-column:1; display:flex; flex-direction:column; gap:2px; }
.dir-name { font-size:16.5px; color:var(--ivory); transition:color .25s; }
.dir-link:hover .dir-name { color:var(--gold-soft); }
.dir-name::after { content:" ↗"; font-size:12px; color:var(--sage-dim); }
.dir-org { font-size:12.5px; color:var(--sage-dim); }
.dir-flag { font-style:normal; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); background:var(--gold); border-radius:999px; padding:2px 8px; margin-inline-start:6px; vertical-align:middle; }
.dir-flag.reg { background:var(--green-accent); color:var(--ivory); }

.dir-acc { grid-column:2; grid-row:1; justify-self:end; align-self:start; white-space:nowrap;
  font-size:11px; letter-spacing:.04em; border-radius:999px; padding:3px 10px; border:1px solid var(--line-soft); }
.dir-acc.ok { color:#8fd0a8; border-color:rgba(143,208,168,.3); }
.dir-acc.warn { color:var(--sage); }

.dir-what { grid-column:1 / -1; font-size:14px; color:var(--ivory-dim); line-height:1.55; margin:6px 0 0; }
.dir-caveat { grid-column:1 / -1; font-size:12.5px; color:var(--sage); line-height:1.5; margin:8px 0 0;
  padding-inline-start:12px; border-inline-start:2px solid var(--gold-deep); }
.dir-caveat b { color:var(--gold-soft); font-weight:600; }

/* boards where the honest answer is "nothing serves you" */
.dir-none { font-family:var(--serif); font-size:16px; line-height:1.65; color:var(--ivory-dim);
  margin:0; padding:18px 20px; border:1px dashed var(--line); border-radius:12px; background:rgba(8,20,15,.3); }

@media (max-width:600px){ .dir-item{ grid-template-columns:1fr; } .dir-acc{ grid-column:1; grid-row:auto; justify-self:start; } }

/* ============================================================
   UNIVERSAL DATA EDITOR (edit.js)
   ============================================================ */
.ed-card { width:min(820px,100%); }
.ed-head { margin-bottom:18px; }
.ed-head h3 { font-family:var(--serif); font-weight:400; font-size:clamp(22px,2.6vw,28px); color:var(--ivory); margin:10px 0 0; }
.ed-key { font-size:12px; color:var(--sage-dim); margin:8px 0 0; }
.ed-key code { font-family:ui-monospace,Menlo,monospace; color:var(--gold-soft); background:rgba(8,20,15,.5); padding:1px 6px; border-radius:5px; }
.ed-edited { color:var(--gold); font-weight:600; }

.ed-q { width:100%; font:inherit; font-size:16.5px; color:var(--ivory); background:rgba(8,20,15,.5);
  border:1px solid var(--line-soft); border-radius:10px; padding:13px 15px; transition:border-color .25s; }
.ed-q:focus { outline:none; border-color:var(--gold); }
.ed-q::placeholder { color:var(--sage-dim); }

.ed-chips { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 4px; }
.ed-chip { font-size:11.5px; color:var(--sage); border:1px solid var(--line-soft); border-radius:999px; padding:3px 10px; }
.ed-chip b { color:var(--gold-soft); font-weight:600; font-variant-numeric:tabular-nums; }

.ed-hits { list-style:none; padding:0; margin:16px 0 0; display:grid; gap:7px; max-height:46vh; overflow-y:auto; }
.ed-hits button { width:100%; text-align:start; font:inherit; cursor:pointer; border:1px solid var(--line-soft);
  border-radius:10px; background:rgba(15,42,32,.4); padding:11px 14px; display:flex; flex-direction:column; gap:2px;
  transition:border-color .2s, background .2s; }
.ed-hits button:hover { border-color:var(--gold); background:rgba(15,42,32,.75); }
.ed-hit-n { font-size:15px; color:var(--ivory); }
.ed-hit-s { font-size:11.5px; color:var(--sage-dim); }

.ed-fields { display:grid; gap:14px; max-height:52vh; overflow-y:auto; padding:2px 4px 2px 0; margin-bottom:18px; }
.ed-f { display:flex; flex-direction:column; gap:5px; }
.ed-f label { font-size:12px; letter-spacing:.04em; color:var(--sage); }
.ed-f label em { font-style:normal; color:var(--gold-deep); }
.ed-f textarea, .ed-f input[type=text], .ed-f input:not([type]) { width:100%; font:inherit; font-size:14.5px; color:var(--ivory);
  background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:9px; padding:9px 12px; resize:vertical; }
.ed-f textarea:focus, .ed-f input:focus { outline:none; border-color:var(--gold); background:rgba(8,20,15,.75); }
.ed-bool label { display:flex; align-items:center; gap:8px; font-size:14.5px; color:var(--ivory-dim); cursor:pointer; }

.ed-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; border-top:1px solid var(--line-soft); padding-top:16px; }
.ed-reset { color:var(--sage)!important; }
.ed-reset:hover { border-color:var(--red)!important; color:#fff!important; }
.ed-msg { font-size:13px; }
.ed-msg.ok { color:#8fd0a8; }
.ed-msg.bad { color:#f0a89f; }
.ed-note { font-size:13px; color:var(--sage-dim); line-height:1.55; margin:16px 0 0; }

/* ============================================================
   THE PROVENANCE LEDGER (provenance.js)
   ============================================================ */
.pv-card { width:min(760px,100%); }
.pv-head h3 { font-family:var(--serif); font-weight:400; font-size:clamp(23px,2.8vw,30px); color:var(--ivory); margin:10px 0 12px; }
.pv-intro { font-size:15px; line-height:1.65; color:var(--ivory-dim); margin:0 0 6px; }

.pv-sec { margin-top:26px; }
.pv-sec h4 { font-family:var(--sans); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold);
  font-weight:600; margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--line-soft); }
.pv-sec h4 em { font-style:normal; letter-spacing:0; text-transform:none; color:var(--sage-dim); font-size:12px; }

.pv-row { border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.4); padding:14px 16px; margin-bottom:10px; }
.pv-h { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pv-n { font-size:16px; color:var(--ivory); }
.pv-n em { font-style:normal; font-size:12px; color:var(--sage-dim); font-variant-numeric:tabular-nums; }
.pv-st { font-size:11px; letter-spacing:.06em; border-radius:999px; padding:3px 10px; white-space:nowrap; border:1px solid var(--line-soft); }
.pv-st.ok   { color:#8fd0a8; border-color:rgba(143,208,168,.32); }
.pv-st.warn { color:var(--sage); }
.pv-st.note { color:var(--gold-soft); border-color:var(--line); }

.pv-meta { font-size:11.5px; color:var(--sage-dim); margin:7px 0 0; font-variant-numeric:tabular-nums; }
.pv-due   { color:var(--sage-dim); }
.pv-stale { color:#f0a89f; }          /* an expiry that has passed must look passed */
.pv-m { font-size:13px; line-height:1.55; color:var(--ivory-dim); margin:9px 0 0; }
.pv-note { font-size:12.5px; line-height:1.5; color:var(--sage); margin:8px 0 0;
  padding-inline-start:11px; border-inline-start:2px solid var(--gold-deep); }

.pv-pre { font-size:14px; line-height:1.65; color:var(--ivory-dim); margin:0 0 14px;
  padding:16px 18px; border:1px dashed var(--line); border-radius:12px; background:rgba(8,20,15,.3); }
.pv-chips { display:flex; flex-wrap:wrap; gap:7px; }
.pv-chip { font-size:12px; color:var(--sage); border:1px solid var(--line-soft); border-radius:999px; padding:3px 11px; }
.pv-chip b { color:var(--sage-dim); font-weight:600; font-variant-numeric:tabular-nums; }

.pv-close { font-family:var(--serif); font-size:16.5px; line-height:1.6; color:var(--gold-soft);
  margin:26px 0 0; padding-top:18px; border-top:1px solid var(--line-soft); }
.pv-open { font-size:11.5px; color:var(--sage-dim); margin:10px 0 0; }
.pv-link { color:var(--sage-dim); text-decoration:underline; text-underline-offset:2px; transition:color .25s; }
.pv-link:hover { color:var(--gold-soft); }

/* provenance: the source gate in the editor */
.ed-src { border:1px solid var(--gold-deep); border-radius:12px; padding:14px 16px; margin-bottom:18px; background:rgba(201,162,75,.05); }
.ed-src h4 { font-family:var(--sans); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:600; margin:0 0 8px; }
.ed-src-why { font-size:12.5px; line-height:1.55; color:var(--sage); margin:0 0 12px; }
.ed-src .ed-f { margin-bottom:10px; }
.ed-src .ed-f:last-child { margin-bottom:0; }

/* provenance: the live, counted (never asserted) figure */
.pv-live { font-size:14px; line-height:1.6; margin:22px 0 0; padding:14px 16px; border-radius:12px; }
.pv-live b { font-family:var(--serif); font-size:20px; font-variant-numeric:tabular-nums; }
.pv-live.ok  { color:var(--ivory-dim); border:1px solid rgba(143,208,168,.3); background:rgba(143,208,168,.06); }
.pv-live.ok b  { color:#8fd0a8; }
.pv-live.bad { color:var(--ivory-dim); border:1px solid rgba(184,69,58,.4); background:rgba(184,69,58,.08); }
.pv-live.bad b { color:#f0a89f; }

/* ============================================================
   STABILITY & CLIMATIC-ZONE STUDIO (stability.js)
   ============================================================ */
#stabilityApp { border:1px solid var(--line); border-radius:var(--r); background:linear-gradient(180deg, var(--panel), var(--ink-2)); padding:clamp(18px,3vw,30px); }
.st-tabs { display:flex; gap:8px; flex-wrap:wrap; border-bottom:1px solid var(--line-soft); margin-bottom:22px; }
.st-tab { font:inherit; font-family:var(--sans); font-size:14px; color:var(--sage); background:none; border:none; border-bottom:2px solid transparent; padding:10px 6px; margin-inline-end:14px; cursor:pointer; transition:color .25s, border-color .25s; }
.st-tab:hover { color:var(--ivory-dim); }
.st-tab.on { color:var(--ivory); border-bottom-color:var(--gold); }

.st-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:760px){ .st-grid2 { grid-template-columns:1fr; } }
.st-panel { border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.4); padding:18px 20px; }
.st-panel h4 { font-family:var(--serif); font-weight:400; font-size:17px; color:var(--ivory); margin:0 0 12px; }

/* market chips + zone */
.st-mks { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.st-mk { font:inherit; font-size:12.5px; color:var(--sage); background:rgba(8,20,15,.4); border:1px solid var(--line-soft); border-radius:999px; padding:4px 11px; cursor:pointer; transition:all .2s; }
.st-mk:hover { border-color:var(--line); color:var(--ivory-dim); }
.st-mk.on { background:var(--gold); color:#14110a; border-color:var(--gold); font-weight:600; }
.st-zone { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:12px; border:1px solid var(--line); }
.st-zone-b { font-family:var(--serif); font-size:30px; font-weight:400; line-height:1; color:var(--gold); }
.st-zone > div { display:flex; flex-direction:column; gap:3px; }
.st-zone b { font-size:15.5px; color:var(--ivory); }
.st-zone span { font-size:12.5px; color:var(--sage); font-variant-numeric:tabular-nums; }
.st-zone-IVb { background:rgba(184,69,58,.10); } .st-zone-IVb .st-zone-b { color:#e79a90; }
.st-zone-IVa { background:rgba(201,162,75,.08); }
.st-zone-note, .st-hint { font-size:12.5px; line-height:1.55; color:var(--sage); margin:12px 0 0; }

.st-intents { display:flex; flex-direction:column; gap:7px; }
.st-intent { text-align:start; font:inherit; font-size:14px; color:var(--ivory-dim); background:rgba(8,20,15,.4); border:1px solid var(--line-soft); border-radius:9px; padding:10px 13px; cursor:pointer; transition:all .2s; }
.st-intent:hover { border-color:var(--line); }
.st-intent.on { border-color:var(--gold); background:rgba(201,162,75,.08); color:var(--ivory); }

.st-tbl { width:100%; border-collapse:collapse; margin-top:6px; }
.st-tbl th { text-align:start; font-family:var(--sans); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; padding:6px 8px; border-bottom:1px solid var(--line-soft); }
.st-tbl td { font-size:13.5px; color:var(--ivory-dim); padding:9px 8px; border-bottom:1px solid var(--line-soft); }
.st-cond { font-variant-numeric:tabular-nums; color:var(--ivory); }
.st-mo { font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--gold-soft); }
.st-sig { font-size:12.5px; line-height:1.55; color:var(--sage); margin:14px 0 0; }
.st-sig b { color:var(--ivory-dim); }
.st-src { font-size:11px; color:var(--sage-dim); margin:14px 0 0; line-height:1.5; }

/* MKT grid */
.st-mgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
@media (max-width:520px){ .st-mgrid { grid-template-columns:repeat(2,1fr); } }
.st-mrow { display:flex; flex-direction:column; gap:3px; }
.st-mrow span { font-size:11px; color:var(--sage-dim); }
.st-mrow input, .st-arow input, .st-lsl input { font:inherit; font-size:14.5px; color:var(--ivory); background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:8px; padding:8px 10px; width:100%; }
.st-mrow input:focus, .st-arow input:focus, .st-lsl input:focus { outline:none; border-color:var(--gold); }
.st-mkt-actions { display:flex; gap:8px; margin-top:14px; }
.st-mkt-out { border-radius:12px; padding:16px 18px; border:1px solid var(--line-soft); }
.st-mkt-out.bad { border-color:rgba(184,69,58,.5); background:rgba(184,69,58,.08); }
.st-mkt-out.warn { border-color:var(--line); background:rgba(201,162,75,.06); }
.st-mkt-out.ok { border-color:rgba(143,208,168,.32); background:rgba(143,208,168,.06); }
.st-mkt-big { display:flex; flex-direction:column; gap:2px; margin-bottom:8px; }
.st-mkt-big b { font-family:var(--serif); font-size:34px; line-height:1; color:var(--gold); font-variant-numeric:tabular-nums; }
.st-mkt-out.bad .st-mkt-big b { color:#e79a90; }
.st-mkt-big span { font-size:12px; color:var(--sage); }
.st-mkt-cmp { font-size:12.5px; color:var(--sage-dim); font-variant-numeric:tabular-nums; }
.st-mkt-v { font-size:13.5px; line-height:1.6; color:var(--ivory-dim); margin:10px 0 0; }

/* shelf-life */
.st-arows { display:flex; flex-direction:column; gap:7px; margin-bottom:12px; }
.st-ahead { display:grid; grid-template-columns:1fr 1fr 34px; gap:8px; }
.st-ahead span { font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--gold); }
.st-arow { display:grid; grid-template-columns:1fr 1fr 34px; gap:8px; align-items:center; }
.st-adel { font:inherit; font-size:18px; line-height:1; color:var(--sage-dim); background:none; border:1px solid var(--line-soft); border-radius:8px; cursor:pointer; padding:6px 0; }
.st-adel:hover { color:#f0a89f; border-color:rgba(184,69,58,.4); }
.st-lsl { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--sage); margin-top:14px; flex-wrap:wrap; }
.st-lsl input { max-width:100px; }
.st-shelf-out { border-radius:12px; padding:16px 18px; border:1px solid var(--line-soft); }
.st-shelf-out.warn { border-color:rgba(201,162,75,.4); background:rgba(201,162,75,.07); }
.st-shelf-out.ok { border-color:rgba(143,208,168,.3); background:rgba(143,208,168,.06); }
.st-shelf-big { display:flex; flex-direction:column; gap:2px; margin-bottom:8px; }
.st-shelf-big b { font-family:var(--serif); font-size:32px; line-height:1; color:var(--gold-soft); font-variant-numeric:tabular-nums; }
.st-shelf-big span { font-size:12px; color:var(--sage); }
.st-shelf-line { font-size:12.5px; color:var(--sage-dim); font-variant-numeric:tabular-nums; }
.st-shelf-v { font-size:13px; line-height:1.6; color:var(--ivory-dim); margin:10px 0 0; }
.st-warn-t { color:var(--gold-soft); }
.st-foot { font-size:12px; color:var(--sage-dim); line-height:1.6; margin:20px 0 0; }

/* stability: per-market zone breakdown (the region is not one climate) */
.st-mztable { display:flex; flex-direction:column; gap:1px; margin:14px 0 4px; border:1px solid var(--line-soft); border-radius:10px; overflow:hidden; }
.st-mzrow { display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:8px 12px; background:rgba(8,20,15,.35); }
.st-mz-n { font-size:13.5px; color:var(--ivory-dim); }
.st-mz-z { font-family:var(--serif); font-size:13px; font-weight:600; color:var(--ink); background:var(--gold-soft); border-radius:6px; padding:1px 8px; min-width:34px; text-align:center; }
.st-mz-z.st-zone-IVb { background:#e79a90; }
.st-mz-z.st-zone-IVa { background:var(--gold); }
.st-mz-z.st-zone-III { background:var(--gold-soft); }
.st-mz-z.st-zone-II  { background:#9ec8ad; }
.st-mz-c { font-size:12px; color:var(--sage); font-variant-numeric:tabular-nums; white-space:nowrap; }
.st-span { font-size:13px; line-height:1.6; color:var(--ivory-dim); margin:12px 0; padding:12px 14px; border-radius:10px; border:1px solid rgba(201,162,75,.35); background:rgba(201,162,75,.07); }
.st-span b { color:var(--gold-soft); }
.st-mk.unc { border-style:dashed; }
.st-unc { font-size:12px; color:var(--sage); line-height:1.5; margin:10px 0 0; }

/* stability — mode 4: excursion assessor (the flagship) */
.st-legs { display:flex; flex-direction:column; gap:7px; margin-bottom:12px; }
.st-leg-h, .st-leg { display:grid; grid-template-columns:1fr 72px 68px 34px; gap:8px; align-items:center; }
.st-leg-h span { font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--gold); }
.st-leg input { font:inherit; font-size:14px; color:var(--ivory); background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:8px; padding:8px 10px; width:100%; }
.st-leg input:focus { outline:none; border-color:var(--gold); }
.st-exc-out { border-radius:12px; padding:16px 18px; border:1px solid var(--line-soft); }
.st-exc-out.bad { border-color:rgba(184,69,58,.5); background:rgba(184,69,58,.08); }
.st-exc-out.warn { border-color:rgba(201,162,75,.4); background:rgba(201,162,75,.07); }
.st-exc-out.ok { border-color:rgba(143,208,168,.3); background:rgba(143,208,168,.06); }
.st-exc-big { display:flex; flex-direction:column; gap:2px; margin-bottom:8px; }
.st-exc-big b { font-family:var(--serif); font-size:36px; line-height:1; color:var(--gold); font-variant-numeric:tabular-nums; }
.st-exc-out.bad .st-exc-big b { color:#e79a90; }
.st-exc-big span { font-size:12px; color:var(--sage); }
.st-exc-lead { font-size:13.5px; line-height:1.6; color:var(--ivory-dim); margin:0 0 14px; }
.st-exc-lead b { color:var(--gold-soft); font-weight:600; }
.st-leg-rh, .st-leg-r { display:grid; grid-template-columns:1fr 60px 56px 1fr; gap:8px; padding:6px 0; font-variant-numeric:tabular-nums; }
.st-leg-rh { border-bottom:1px solid var(--line-soft); }
.st-leg-rh span { font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--sage-dim); }
.st-leg-r { font-size:13px; color:var(--ivory-dim); border-bottom:1px solid var(--line-soft); }
.st-leg-r.over span:nth-child(2) { color:#e79a90; }
.st-leg-r.cold span:nth-child(2) { color:#8fb8d0; }
.st-exc-mkt { font-size:13px; color:var(--sage); margin-top:12px; }
.st-exc-mkt b { color:var(--ivory); font-variant-numeric:tabular-nums; }
.st-exc-cold { font-size:12.5px; line-height:1.5; color:#8fb8d0; margin:10px 0 0; padding-inline-start:11px; border-inline-start:2px solid #4d7d99; }
.st-exc-warn { font-size:12px; line-height:1.6; color:var(--sage); margin:14px 0 0; padding:12px 14px; border:1px solid rgba(184,69,58,.3); border-radius:10px; background:rgba(184,69,58,.05); }
.st-exc-warn b { color:#e79a90; }
.st-leg-loc { min-width:0; }

/* stability mode 4 — disposition (allowed / refer / not allowed) */
.st-disp { border-radius:10px; padding:11px 16px; margin-bottom:12px; font-family:var(--serif); font-size:17px; text-align:center; border:1px solid; }
.st-disp.ok    { color:#8fd0a8; border-color:rgba(143,208,168,.5); background:rgba(143,208,168,.08); }
.st-disp.refer { color:var(--gold-soft); border-color:rgba(201,162,75,.5); background:rgba(201,162,75,.10); }
.st-disp.cold  { color:#8fb8d0; border-color:rgba(77,125,153,.5); background:rgba(77,125,153,.10); }
.st-disp.no    { color:#f0a89f; border-color:rgba(184,69,58,.55); background:rgba(184,69,58,.12); }
.st-band { font-size:11px; }
.st-leg-r.band-ok    .st-band { color:#8fd0a8; }
.st-leg-r.band-refer .st-band { color:var(--gold-soft); }
.st-leg-r.band-no    .st-band { color:#f0a89f; }
.st-leg-r.band-cold  .st-band { color:#8fb8d0; }
.st-leg-r.band-no    span:nth-child(2) { color:#f0a89f; font-weight:600; }
.st-leg-r.band-refer span:nth-child(2) { color:var(--gold-soft); }
.st-exc-inputs { display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; }
.st-exc-inputs .st-lsl { margin-top:0; }
.st-bio { display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--ivory-dim); margin-top:14px; cursor:pointer; }
.st-bio input { width:16px; height:16px; accent-color:var(--gold); }
.st-exc-add { font-size:12px; line-height:1.55; color:var(--sage-dim); margin:12px 0 0; padding-inline-start:11px; border-inline-start:2px solid var(--line); }
.st-exc-cold.no { color:#f0a89f; border-inline-start-color:#b8453a; }

/* stability studio — "watch how it works" button */
.st-tour-btn { display:inline-flex; align-items:center; gap:9px; font:inherit; font-size:13.5px; font-weight:600; color:var(--gold-soft); background:rgba(201,162,75,.08); border:1px solid var(--line); border-radius:999px; padding:8px 16px; margin-bottom:18px; cursor:pointer; transition:background .25s, border-color .25s; }
.st-tour-btn:hover { background:rgba(201,162,75,.16); border-color:var(--gold); }
.st-tour-play { display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--gold); color:#14110a; font-size:9px; }

/* stability explainer — scene visuals (chrome reuses intro-* classes) */
.st-in-c { width:100%; max-width:640px; margin-inline:auto; }
.st-in-hook { text-align:center; }
.st-in-thermo { width:34px; height:150px; margin:0 auto 22px; border:2px solid var(--gold-soft); border-radius:999px; position:relative; overflow:hidden; background:rgba(8,20,15,.4); }
.st-in-merc { position:absolute; left:0; right:0; bottom:0; height:0; background:linear-gradient(0deg,#b8453a,#e79a90); animation:stInFill 2.4s var(--ease) forwards; }
.playing .st-in-merc { height:82%; }
@keyframes stInFill { from{height:0} to{height:82%} }
.st-in-hero b { font-family:var(--serif); font-size:clamp(38px,7vw,64px); color:#e79a90; display:block; line-height:1; }
.st-in-hero span { font-size:15px; color:var(--ivory-dim); display:block; margin-top:12px; }

.st-in-zrow { display:grid; grid-template-columns:1fr auto auto; gap:16px; align-items:center; padding:14px 18px; border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.5); margin-bottom:10px; opacity:0; transform:translateY(14px); animation:stInUp .6s var(--ease) forwards; animation-delay:var(--d); }
.st-in-zn { font-size:19px; color:var(--ivory); }
.st-in-zb { font-family:var(--serif); font-size:17px; font-weight:600; color:#14110a; border-radius:7px; padding:2px 12px; }
.st-in-zb.st-zone-IVa { background:var(--gold); } .st-in-zb.st-zone-III { background:var(--gold-soft); } .st-in-zb.st-zone-II { background:#9ec8ad; }
.st-in-zc { font-size:15px; color:var(--sage); font-variant-numeric:tabular-nums; }
@keyframes stInUp { to{opacity:1;transform:none} }

.st-in-th, .st-in-tr { display:grid; grid-template-columns:1fr 1.4fr auto; gap:14px; padding:12px 16px; }
.st-in-th { color:var(--gold); font-size:12px; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid var(--line-soft); }
.st-in-tr { font-size:17px; color:var(--ivory-dim); border-bottom:1px solid var(--line-soft); opacity:0; animation:stInUp .5s var(--ease) forwards; animation-delay:var(--d); }
.st-in-cond { color:var(--ivory); font-variant-numeric:tabular-nums; } .st-in-mo { color:var(--gold-soft); }

.st-in-mkt { text-align:center; }
.st-in-mkt-big b { font-family:var(--serif); font-size:clamp(44px,8vw,72px); color:#e79a90; display:block; line-height:1; }
.st-in-mkt-big span { font-size:14px; color:var(--sage); display:block; margin-top:8px; }
.st-in-mkt-cmp { display:flex; gap:14px; justify-content:center; margin-top:24px; flex-wrap:wrap; }
.st-in-mkt-lab, .st-in-mkt-real { font-size:14px; border-radius:999px; padding:7px 16px; }
.st-in-mkt-lab { color:#8fd0a8; border:1px solid rgba(143,208,168,.4); }
.st-in-mkt-real { color:#e79a90; border:1px solid rgba(184,69,58,.5); background:rgba(184,69,58,.1); }

.st-in-svg { width:100%; max-width:420px; display:block; margin:0 auto; }
.st-in-lim { stroke:#e79a90; stroke-width:1.5; stroke-dasharray:5 4; }
.st-in-lim-t { fill:#e79a90; font-size:11px; font-family:var(--sans); }
.st-in-trend { fill:none; stroke:var(--gold-soft); stroke-width:2.5; stroke-dasharray:600; stroke-dashoffset:600; animation:stInDraw 2.2s var(--ease) forwards; }
.playing .st-in-trend { stroke-dashoffset:0; }
@keyframes stInDraw { to{stroke-dashoffset:0} }
.st-in-dot { fill:var(--gold); } .st-in-drop { stroke:var(--gold-deep); stroke-width:1; stroke-dasharray:3 3; }
.st-in-proj { fill:var(--gold-soft); font-size:12px; font-family:var(--sans); }
.st-in-cap-s { display:block; text-align:center; font-size:14px; color:var(--sage); margin-top:14px; }

.st-in-leg, .st-in-dr { display:grid; align-items:center; padding:13px 18px; border:1px solid var(--line-soft); border-radius:12px; margin-bottom:10px; opacity:0; transform:translateX(-16px); animation:stInIn .55s var(--ease) forwards; animation-delay:var(--d); }
[dir=rtl] .st-in-leg, [dir=rtl] .st-in-dr { transform:translateX(16px); }
@keyframes stInIn { to{opacity:1;transform:none} }
.st-in-leg { grid-template-columns:1fr auto auto; gap:16px; }
.st-in-leg-n { font-size:16px; color:var(--ivory-dim); } .st-in-leg-t { font-family:var(--serif); font-size:20px; }
.st-in-leg-af { font-size:15px; font-variant-numeric:tabular-nums; padding:3px 11px; border-radius:999px; }
.st-in-leg.band-no { border-color:rgba(184,69,58,.5); } .st-in-leg.band-no .st-in-leg-t, .st-in-leg.band-no .st-in-leg-af { color:#e79a90; } .st-in-leg.band-no .st-in-leg-af { background:rgba(184,69,58,.14); }
.st-in-leg.band-refer .st-in-leg-t, .st-in-leg.band-refer .st-in-leg-af { color:var(--gold-soft); }
.st-in-leg.band-ok .st-in-leg-t, .st-in-leg.band-ok .st-in-leg-af { color:#8fd0a8; }
.st-in-jrn-sum { text-align:center; font-size:16px; color:var(--ivory-dim); margin-top:8px; opacity:0; animation:stInUp .6s var(--ease) forwards; animation-delay:var(--d); }
.st-in-jrn-sum b { color:#e79a90; font-family:var(--serif); font-size:20px; }

.st-in-disp-band { text-align:center; font-family:var(--serif); font-size:22px; padding:12px; border-radius:10px; margin-bottom:16px; color:#f0a89f; border:1px solid rgba(184,69,58,.55); background:rgba(184,69,58,.12); }
.st-in-dr { grid-template-columns:auto 1fr; gap:16px; }
.st-in-dr span:first-child { font-family:var(--serif); font-size:20px; color:var(--ivory); }
.st-in-db { font-size:15px; }
.st-in-dr.band-no { border-color:rgba(184,69,58,.5); } .st-in-dr.band-no .st-in-db, .st-in-dr.band-no span:first-child { color:#f0a89f; }
.st-in-dr.band-refer .st-in-db { color:var(--gold-soft); } .st-in-dr.band-ok .st-in-db { color:#8fd0a8; }

.st-in-honest { text-align:center; max-width:520px; }
.st-in-h-ic { width:54px; height:54px; margin:0 auto 18px; display:grid; place-items:center; border-radius:50%; border:2px solid #8fd0a8; color:#8fd0a8; font-size:26px; }
.st-in-honest p { font-size:17px; line-height:1.7; color:var(--ivory-dim); }
.st-in-cta { text-align:center; }
.st-in-cta b { font-family:var(--serif); font-size:clamp(26px,4vw,38px); color:var(--ivory); display:block; }
.st-in-cta span { font-size:15.5px; color:var(--ivory-dim); display:block; margin:14px auto 22px; max-width:520px; line-height:1.6; }

/* stability mode 5 — sensitive-degradation catalog */
.st-sens-intro { font-size:14px; line-height:1.6; color:var(--ivory-dim); margin:0 0 14px; }
.st-sens-cards { display:flex; flex-direction:column; gap:10px; margin-top:16px; }
.st-sens-card { border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.4); overflow:hidden; }
.st-sens-card.open { border-color:var(--line); }
.st-sens-h { width:100%; text-align:start; font:inherit; cursor:pointer; background:none; border:none; display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:14px 16px; color:var(--ivory); }
.st-sens-h:hover { background:rgba(15,42,32,.6); }
.st-sens-ic { font-size:20px; }
.st-sens-n { font-family:var(--serif); font-size:17px; }
.st-sens-ct { font-size:12px; color:var(--sage-dim); font-variant-numeric:tabular-nums; border:1px solid var(--line-soft); border-radius:999px; padding:1px 9px; }
.st-sens-body { display:none; padding:2px 16px 16px; }
.st-sens-card.open .st-sens-body { display:block; }
.st-sens-why, .st-sens-do { font-size:13.5px; line-height:1.6; color:var(--ivory-dim); margin:8px 0 0; }
.st-sens-why b { color:#e79a90; } .st-sens-do b { color:#8fd0a8; }
.st-sxs { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.st-sx { font-size:12.5px; color:var(--ivory-dim); background:rgba(8,20,15,.45); border:1px solid var(--line-soft); border-radius:999px; padding:3px 11px; cursor:help; }
.st-sx.hit { border-color:var(--gold); color:var(--gold-soft); }

/* stability design — regulatory-requirement notes (Gulf, moisture-proof packaging) */
.st-reg { font-size:12.5px; line-height:1.6; color:var(--ivory-dim); margin:10px 0 0; padding:10px 13px; border-radius:9px; border:1px solid rgba(201,162,75,.3); background:rgba(201,162,75,.06); }
.st-reg b { color:var(--gold-soft); }

/* ============================================================
   MEDICAL DEVICE REGULATORY STUDIO (#device) — .dv-*
   ============================================================ */
.dv-tabs { display:flex; flex-wrap:wrap; gap:6px; border-bottom:1px solid var(--line); padding-bottom:14px; margin-bottom:20px; }
.dv-tab { font:inherit; font-size:13px; font-weight:600; color:var(--sage); background:rgba(15,42,32,.4); border:1px solid var(--line-soft); border-radius:999px; padding:8px 15px; cursor:pointer; transition:color .2s, background .2s, border-color .2s; }
.dv-tab:hover { color:var(--ivory-dim); border-color:var(--line); }
.dv-tab.on { color:var(--ink); background:var(--gold); border-color:var(--gold); }
.dv-body { min-height:340px; }
.dv-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.dv-grid-atlas { grid-template-columns:1.05fr 1fr; }
.dv-grid-std { grid-template-columns:.8fr 1.2fr; }
@media (max-width:820px){ .dv-grid2, .dv-grid-atlas, .dv-grid-std { grid-template-columns:1fr; } }
.dv-panel { background:rgba(15,42,32,.4); border:1px solid var(--line-soft); border-radius:16px; padding:20px; }
.dv-panel h4 { font-family:var(--sans); font-size:12.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); margin:0 0 14px; display:flex; align-items:center; gap:9px; }
.dv-qh { font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); margin:18px 0 10px; }
.dv-hint { font-size:12.5px; line-height:1.6; color:var(--sage); margin:10px 0 0; }

/* option buttons (radio-style) */
.dv-opts { display:flex; flex-wrap:wrap; gap:8px; }
.dv-opts-col { flex-direction:column; }
.dv-opt { text-align:start; font:inherit; font-size:13.5px; color:var(--ivory-dim); background:rgba(8,20,15,.4); border:1px solid var(--line-soft); border-radius:10px; padding:11px 14px; cursor:pointer; transition:border-color .2s, background .2s, color .2s; }
.dv-opt:hover { border-color:var(--line); color:var(--ivory); }
.dv-opt.on { border-color:var(--gold); background:rgba(201,162,75,.1); color:var(--gold-soft); }
.dv-flags { display:flex; flex-direction:column; gap:8px; }
.dv-chk { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.5; color:var(--ivory-dim); cursor:pointer; padding:4px 0; }
.dv-chk input { margin-top:3px; accent-color:var(--gold); flex:none; }
.dv-reset { margin-top:16px; font-size:12.5px; }

/* result — three framework cards */
.dv-empty { text-align:center; color:var(--sage); padding:40px 10px; }
.dv-empty-ic { font-size:40px; color:var(--line); display:block; margin-bottom:12px; }
.dv-res-h { font-family:var(--sans); font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--sage); margin-bottom:14px; }
.dv-fw { display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:12px; padding:13px 15px; border-radius:12px; border:1px solid var(--line-soft); background:rgba(8,20,15,.4); margin-bottom:9px; }
.dv-fw-l { font-size:12px; font-weight:700; color:var(--sage); letter-spacing:.02em; }
.dv-fw-c { font-family:var(--serif); font-size:23px; font-weight:500; color:var(--ivory); line-height:1; padding:0 4px; }
.dv-fw-s { font-size:11.5px; color:var(--sage); line-height:1.4; text-align:end; }
.dv-fw.ok  { border-color:rgba(54,128,95,.5); } .dv-fw.ok .dv-fw-c { color:#7fc9a0; }
.dv-fw.lo  { border-color:rgba(54,128,95,.5); } .dv-fw.lo .dv-fw-c { color:#7fc9a0; }
.dv-fw.mid { border-color:rgba(201,162,75,.5); } .dv-fw.mid .dv-fw-c { color:var(--gold-soft); }
.dv-fw.hi  { border-color:rgba(184,69,58,.55); background:rgba(184,69,58,.06); } .dv-fw.hi .dv-fw-c { color:#e79a90; }
.dv-fw.na  { border-color:var(--line-soft); } .dv-fw.na .dv-fw-c { font-size:16px; color:var(--sage); }
.dv-sub { font-size:12px; color:var(--gold-soft); margin:6px 0 0; }
.dv-why { font-size:13.5px; line-height:1.6; color:var(--ivory-dim); margin:14px 0 0; }
.dv-why b { color:var(--gold-soft); }
.dv-note { font-size:12px; line-height:1.6; color:var(--sage); margin:9px 0 0; }
.dv-src { font-size:11.5px; line-height:1.5; color:var(--sage); opacity:.85; margin:12px 0 0; font-style:italic; }

/* markets atlas */
.dv-panel-list { display:flex; flex-direction:column; }
.dv-gccfind { font-size:12.5px; line-height:1.65; color:var(--ivory-dim); margin:0 0 14px; padding:12px 14px; border-radius:11px; border:1px solid rgba(201,162,75,.28); background:rgba(201,162,75,.06); }
.dv-tiers { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.dv-tier { font:inherit; font-size:12px; color:var(--sage); background:none; border:1px solid var(--line-soft); border-radius:999px; padding:5px 12px; cursor:pointer; transition:.2s; }
.dv-tier:hover { border-color:var(--line); color:var(--ivory-dim); }
.dv-tier.on { color:var(--ink); background:var(--sage); border-color:var(--sage); }
.dv-mks { display:flex; flex-wrap:wrap; gap:7px; }
.dv-mk { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:13px; color:var(--ivory-dim); background:rgba(8,20,15,.4); border:1px solid var(--line-soft); border-radius:10px; padding:7px 12px; cursor:pointer; transition:.2s; }
.dv-mk:hover { border-color:var(--line); color:var(--ivory); }
.dv-mk.on { border-color:var(--gold); background:rgba(201,162,75,.1); color:var(--gold-soft); }
.dv-mk-fl { font-size:15px; line-height:1; }
.dv-mk.dv-t-dedicated { box-shadow:inset 3px 0 0 rgba(54,128,95,.7); }
.dv-mk.dv-t-functioning { box-shadow:inset 3px 0 0 rgba(201,162,75,.6); }
.dv-mk.dv-t-minimal { box-shadow:inset 3px 0 0 rgba(184,69,58,.55); }
html[dir="rtl"] .dv-mk.dv-t-dedicated { box-shadow:inset -3px 0 0 rgba(54,128,95,.7); }
html[dir="rtl"] .dv-mk.dv-t-functioning { box-shadow:inset -3px 0 0 rgba(201,162,75,.6); }
html[dir="rtl"] .dv-mk.dv-t-minimal { box-shadow:inset -3px 0 0 rgba(184,69,58,.55); }
.dv-mk-head { display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.dv-mk-bigfl { font-size:34px; line-height:1; }
.dv-mk-head h4 { font-family:var(--serif); font-size:22px; font-weight:400; color:var(--ivory); text-transform:none; letter-spacing:0; margin:0; }
.dv-mk-auth { font-size:12.5px; color:var(--sage); line-height:1.4; }
.dv-badges { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }
.dv-badge { font-size:11px; font-weight:600; letter-spacing:.02em; padding:4px 11px; border-radius:999px; border:1px solid var(--line-soft); color:var(--sage); }
.dv-b-law-yes { color:#7fc9a0; border-color:rgba(54,128,95,.5); background:rgba(54,128,95,.08); }
.dv-b-law-partial { color:var(--gold-soft); border-color:rgba(201,162,75,.45); background:rgba(201,162,75,.06); }
.dv-b-law-no { color:#e79a90; border-color:rgba(184,69,58,.5); background:rgba(184,69,58,.06); }
.dv-b-conf-high { color:#7fc9a0; } .dv-b-conf-medium { color:var(--gold-soft); } .dv-b-conf-low { color:#e79a90; border-color:rgba(184,69,58,.5); }
.dv-b-gcc { color:var(--gold-soft); border-color:rgba(201,162,75,.4); }
.dv-row { display:grid; grid-template-columns:130px 1fr; gap:12px; padding:10px 0; border-top:1px solid var(--line-soft); font-size:13px; line-height:1.55; }
.dv-row:first-of-type { border-top:none; }
.dv-row-l { color:var(--gold); font-weight:600; font-size:12px; }
.dv-row-v { color:var(--ivory-dim); }
.dv-mk-note { font-size:12.5px; line-height:1.6; color:var(--sage); margin:14px 0 0; font-style:italic; }
@media (max-width:520px){ .dv-row { grid-template-columns:1fr; gap:2px; } }

/* route */
.dv-clspicks { display:flex; flex-wrap:wrap; gap:7px; margin-top:14px; }
.dv-clspick { font:inherit; font-size:13px; font-weight:600; color:var(--ivory-dim); background:rgba(8,20,15,.4); border:1px solid var(--line-soft); border-radius:9px; padding:8px 16px; cursor:pointer; transition:.2s; }
.dv-clspick:hover { border-color:var(--line); }
.dv-clspick.on { border-color:var(--gold); background:rgba(201,162,75,.1); color:var(--gold-soft); }
.dv-route { border-radius:13px; padding:16px 18px; border:1px solid var(--line-soft); background:rgba(8,20,15,.4); }
.dv-route.self { border-color:rgba(54,128,95,.5); background:rgba(54,128,95,.06); }
.dv-route.nb { border-color:rgba(201,162,75,.5); background:rgba(201,162,75,.06); }
.dv-route-tag { display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; margin-bottom:9px; }
.dv-route.self .dv-route-tag { color:#7fc9a0; } .dv-route.nb .dv-route-tag { color:var(--gold-soft); }
.dv-route p { font-size:13.5px; line-height:1.65; color:var(--ivory-dim); margin:0; }
.dv-clin { font-size:12.5px; line-height:1.65; color:var(--ivory-dim); margin:16px 0 0; }
.dv-clin b { color:var(--gold-soft); }

/* standards */
.dv-attrs { display:flex; flex-direction:column; gap:8px; }
.dv-attr { text-align:start; font:inherit; font-size:13.5px; color:var(--ivory-dim); background:rgba(8,20,15,.4); border:1px solid var(--line-soft); border-radius:10px; padding:11px 14px; cursor:pointer; transition:.2s; }
.dv-attr:hover { border-color:var(--line); }
.dv-attr.on { border-color:var(--forest); background:rgba(54,128,95,.1); color:#9fd8b6; }
.dv-count { font-family:var(--serif); font-size:15px; color:var(--gold-soft); }
.dv-stds { display:flex; flex-direction:column; gap:9px; }
.dv-std { border:1px solid var(--line-soft); border-radius:11px; padding:13px 15px; background:rgba(8,20,15,.4); transition:.25s; }
.dv-std.on { border-color:var(--line); }
.dv-std.on.core { border-color:rgba(201,162,75,.4); }
.dv-std.off { opacity:.4; }
.dv-std-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.dv-std-top code { font-family:var(--mono, ui-monospace, monospace); font-size:12.5px; color:var(--gold-soft); }
.dv-std-core { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--gold); border:1px solid rgba(201,162,75,.4); border-radius:999px; padding:2px 8px; }
.dv-std-t { font-size:12.5px; color:var(--ivory-dim); margin-top:5px; line-height:1.45; }
.dv-std-why { font-size:12px; line-height:1.6; color:var(--sage); margin:8px 0 0; }
.dv-off-h { margin-top:20px !important; opacity:.7; }

/* device catalog (mode 5) */
.dv-cat-tiers { margin:12px 0 6px; }
.dv-cat-legend { font-size:12px; color:var(--sage); margin:6px 0 14px; }
.dv-cat-list { display:flex; flex-direction:column; gap:8px; }
.dv-cat-card { border:1px solid var(--line-soft); border-radius:12px; background:rgba(15,42,32,.4); overflow:hidden; }
.dv-cat-card.open { border-color:var(--line); }
.dv-cat-h { width:100%; text-align:start; font:inherit; cursor:pointer; background:none; border:none; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 15px; color:var(--ivory); flex-wrap:wrap; }
.dv-cat-h:hover { background:rgba(15,42,32,.6); }
.dv-cat-n { font-size:14px; font-weight:500; flex:1 1 200px; min-width:0; }
.dv-cat-tag { font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(201,162,75,.4); border-radius:5px; padding:1px 6px; margin-inline-start:4px; vertical-align:middle; }
.dv-cat-badges { display:flex; align-items:center; gap:7px; flex:none; }
.dv-cat-b { display:inline-flex; flex-direction:column; align-items:flex-start; line-height:1.15; font-size:13px; font-weight:600; padding:4px 9px; border-radius:8px; border:1px solid var(--line-soft); background:rgba(8,20,15,.45); white-space:nowrap; }
.dv-cat-b em { font-style:normal; font-size:9px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); }
.dv-cat-b.ok { border-color:rgba(54,128,95,.5); color:#7fc9a0; }
.dv-cat-b.lo { border-color:rgba(54,128,95,.5); color:#7fc9a0; }
.dv-cat-b.mid { border-color:rgba(201,162,75,.5); color:var(--gold-soft); }
.dv-cat-b.hi { border-color:rgba(184,69,58,.55); color:#e79a90; background:rgba(184,69,58,.06); }
.dv-cat-b.na { color:var(--sage); }
.dv-cat-conf { width:8px; height:8px; border-radius:50%; flex:none; }
.dv-conf-high { background:#7fc9a0; } .dv-conf-medium { background:var(--gold-soft); } .dv-conf-low { background:#e79a90; }
.dv-cat-body { display:none; padding:0 15px 14px; }
.dv-cat-card.open .dv-cat-body { display:block; }
.dv-cat-note { font-size:13px; line-height:1.6; color:var(--ivory-dim); margin:0; }
@media (max-width:560px){ .dv-cat-h { gap:8px; } .dv-cat-b { font-size:12px; padding:3px 7px; } }

/* problem solver (mode 6) */
.dv-solve-card .st-sens-n { font-weight:500; }
.dv-solve-why, .dv-solve-fix { font-size:13px; line-height:1.6; color:var(--ivory-dim); margin:8px 0 0; }
.dv-solve-why b { color:#e79a90; } .dv-solve-fix b { color:#8fd0a8; }
.dv-solve-std { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:12px 0 0; }
.dv-solve-std span { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--gold); }
.dv-solve-std code { font-family:var(--mono, ui-monospace, monospace); font-size:12.5px; color:var(--gold-soft); background:rgba(201,162,75,.08); border:1px solid rgba(201,162,75,.28); border-radius:7px; padding:3px 10px; }

/* ---- intro scene skins (dv-in-*) ---- */
.dv-in-c { width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding:20px; text-align:center; }
.dv-in-dev { font-size:64px; color:var(--gold); opacity:0; animation:dvPop .7s cubic-bezier(.2,.8,.2,1) forwards; }
.dv-in-hero b { font-family:var(--serif); font-size:clamp(22px,3.4vw,34px); font-weight:400; color:var(--ivory); display:block; }
.dv-in-hero span { display:block; font-size:14.5px; color:var(--sage); max-width:44ch; margin:12px auto 0; line-height:1.6; }
.dv-in-fws { flex-direction:row; flex-wrap:wrap; gap:16px; }
.dv-in-fw { display:flex; flex-direction:column; align-items:center; gap:6px; min-width:120px; padding:20px 22px; border-radius:16px; border:1px solid var(--line-soft); background:rgba(8,20,15,.5); opacity:0; transform:translateY(14px); animation:dvRise .6s ease forwards; animation-delay:var(--d); }
.dv-in-fw-l { font-size:12px; font-weight:700; color:var(--sage); letter-spacing:.03em; }
.dv-in-fw-c { font-family:var(--serif); font-size:38px; font-weight:500; color:var(--ivory); line-height:1; }
.dv-in-fw-s { font-size:12px; color:var(--sage); }
.dv-in-fw.t-mid { border-color:rgba(201,162,75,.5); } .dv-in-fw.t-mid .dv-in-fw-c { color:var(--gold-soft); }
.dv-in-fw.t-na .dv-in-fw-c { color:#9fd8b6; }
.dv-in-rule-tag, .dv-in-rule-flow { }
.dv-in-rule-tag { font-family:var(--mono, monospace); font-size:13px; color:var(--gold-soft); letter-spacing:.03em; }
.dv-in-rule-flow { display:flex; flex-direction:column; gap:10px; margin-top:6px; }
.dv-in-rf { font-size:15px; color:var(--ivory-dim); background:rgba(8,20,15,.5); border:1px solid var(--line-soft); border-radius:10px; padding:9px 18px; opacity:0; transform:translateY(10px); animation:dvRise .5s ease forwards; animation-delay:var(--d); }
.dv-in-rf.hi { color:#e79a90; border-color:rgba(184,69,58,.5); }
.dv-in-mks { flex-direction:column; gap:9px; width:min(440px,90%); }
.dv-in-mk { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; width:100%; padding:11px 16px; border-radius:11px; border:1px solid var(--line-soft); background:rgba(8,20,15,.5); opacity:0; transform:translateX(-14px); animation:dvSlide .5s ease forwards; animation-delay:var(--d); text-align:start; }
html[dir="rtl"] .dv-in-mk { transform:translateX(14px); }
.dv-in-mk-fl { font-size:20px; } .dv-in-mk-n { font-size:14px; color:var(--ivory); } .dv-in-mk-r { font-size:12px; color:var(--sage); }
.dv-in-mk.t-low { border-color:rgba(184,69,58,.45); } .dv-in-mk.t-low .dv-in-mk-r { color:#e79a90; }
.dv-in-mk-sum { font-size:14px; color:var(--gold-soft); margin-top:8px; opacity:0; animation:dvFade .6s ease forwards; animation-delay:var(--d); }
.dv-in-route { flex-direction:column; gap:14px; }
.dv-in-rt { display:flex; flex-direction:column; gap:3px; padding:16px 26px; border-radius:14px; border:1px solid var(--line-soft); background:rgba(8,20,15,.5); opacity:0; transform:translateY(12px); animation:dvRise .55s ease forwards; animation-delay:var(--d); }
.dv-in-rt b { font-family:var(--serif); font-size:20px; color:var(--ivory); } .dv-in-rt span { font-size:13px; color:var(--sage); }
.dv-in-rt.self { border-color:rgba(54,128,95,.5); } .dv-in-rt.self b { color:#9fd8b6; }
.dv-in-rt.nb { border-color:rgba(201,162,75,.5); } .dv-in-rt.nb b { color:var(--gold-soft); }
.dv-in-stds { flex-direction:row; flex-wrap:wrap; gap:11px; max-width:520px; }
.dv-in-std { font-family:var(--mono, monospace); font-size:14px; color:var(--gold-soft); padding:11px 18px; border-radius:11px; border:1px solid rgba(201,162,75,.35); background:rgba(201,162,75,.05); opacity:0; transform:scale(.9); animation:dvPop .5s ease forwards; animation-delay:var(--d); }
.dv-in-hard { flex-direction:row; flex-wrap:wrap; gap:12px; max-width:520px; }
.dv-in-hd { display:flex; align-items:center; gap:9px; font-size:14px; color:var(--ivory-dim); padding:12px 18px; border-radius:12px; border:1px solid var(--line-soft); background:rgba(8,20,15,.5); opacity:0; transform:translateY(12px); animation:dvRise .55s ease forwards; animation-delay:var(--d); }
.dv-in-hd span { font-size:20px; }
.dv-in-cap-s { font-size:13px; color:var(--sage); margin-top:6px; }
@keyframes dvPop { from { opacity:0; transform:scale(.8); } to { opacity:1; transform:scale(1); } }
@keyframes dvRise { to { opacity:1; transform:translateY(0); } }
@keyframes dvSlide { to { opacity:1; transform:translateX(0); } }
@keyframes dvFade { to { opacity:1; } }
@media (prefers-reduced-motion: reduce){ .dv-in-dev, .dv-in-fw, .dv-in-rf, .dv-in-mk, .dv-in-mk-sum, .dv-in-rt, .dv-in-std, .dv-in-hd { animation:none; opacity:1; transform:none; } }

/* ============================================================
   DATA INTEGRITY STUDIO (#dataintegrity) — .di-*
   Reuses .dv-tabs/.dv-panel/.dv-tier/.st-sens-card/.st-tbl.
   ============================================================ */
/* --- mode 1: the gap audit --- */
.di-pgroup { margin-top:18px; }
.di-phead { display:flex; align-items:center; gap:9px; padding-bottom:7px; border-bottom:1px solid var(--line-soft); margin-bottom:8px; }
.di-pl { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:6px; background:rgba(201,162,75,.14); color:var(--gold); font-family:var(--serif); font-size:13px; font-weight:600; flex:none; }
.di-pn { font-family:var(--sans); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.di-ppct { margin-inline-start:auto; font-size:12px; color:var(--sage); font-variant-numeric:tabular-nums; }
.di-qrow { padding:9px 10px; border-inline-start:2px solid transparent; border-radius:8px; transition:.2s; }
.di-qrow + .di-qrow { margin-top:4px; }
.di-qrow.miss { border-inline-start-color:#c96a5a; background:rgba(201,106,90,.07); }
.di-qrow.part { border-inline-start-color:var(--gold-deep); background:rgba(201,162,75,.06); }
.di-q { font-size:13.5px; color:var(--ivory-dim); line-height:1.55; }
.di-opts { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.di-opt { font:inherit; font-size:11.5px; color:var(--sage); background:none; border:1px solid var(--line-soft); border-radius:999px; padding:3px 11px; cursor:pointer; transition:.18s; }
.di-opt:hover { border-color:var(--line); color:var(--ivory-dim); }
.di-opt.on { color:var(--ink); font-weight:600; }
.di-opt-y.on { background:#7fb08a; border-color:#7fb08a; }
.di-opt-p.on { background:var(--gold-soft); border-color:var(--gold-soft); }
.di-opt-n.on { background:#c96a5a; border-color:#c96a5a; color:#fff; }
.di-opt-na.on { background:var(--sage-dim); border-color:var(--sage-dim); color:var(--ivory); }
.di-reset { margin-top:18px; font:inherit; font-size:12px; color:var(--sage); background:none; border:1px solid var(--line-soft); border-radius:999px; padding:6px 15px; cursor:pointer; }
.di-reset:hover { border-color:var(--line); color:var(--ivory-dim); }
/* result panel */
.di-result { align-self:start; position:sticky; top:16px; }
.di-score { display:flex; flex-direction:column; align-items:center; gap:3px; padding:18px; border-radius:14px; border:1px solid var(--line-soft); }
.di-score-n { font-family:var(--serif); font-size:46px; line-height:1; color:var(--ivory); font-variant-numeric:tabular-nums; }
.di-score-n i { font-style:normal; font-size:20px; color:var(--sage); }
.di-score-b { font-size:13px; font-weight:600; }
.di-score-a { font-size:11.5px; color:var(--sage); }
.di-score-ok { background:rgba(127,176,138,.10); border-color:rgba(127,176,138,.4); }
.di-score-ok .di-score-b { color:#7fb08a; }
.di-score-mid { background:rgba(201,162,75,.10); border-color:rgba(201,162,75,.4); }
.di-score-mid .di-score-b { color:var(--gold-soft); }
.di-score-bad { background:rgba(201,106,90,.10); border-color:rgba(201,106,90,.45); }
.di-score-bad .di-score-b { color:#e08e7e; }
.di-gaps { list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.di-gap { display:grid; grid-template-columns:auto 1fr; gap:4px 9px; padding:10px 12px; border-radius:10px; background:rgba(15,42,32,.5); border:1px solid var(--line-soft); }
.di-gap-tag { grid-row:1; font-size:10px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; padding:2px 8px; border-radius:999px; align-self:start; }
.di-gap-no .di-gap-tag { background:#c96a5a; color:#fff; }
.di-gap-part .di-gap-tag { background:var(--gold-soft); color:var(--ink); }
.di-gap-q { grid-row:1; font-size:12.5px; color:var(--ivory-dim); line-height:1.5; }
.di-gap-fix { grid-column:2; font-size:11.5px; color:var(--sage); line-height:1.5; }
.di-gap-none { color:var(--sage); font-size:12.5px; grid-template-columns:1fr; }
/* --- mode 2: failure bank --- */
.di-fp { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:7px; background:rgba(201,162,75,.14); color:var(--gold); font-family:var(--serif); font-size:13px; font-weight:600; flex:none; }
.di-fp-tag { margin-inline-start:auto; font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); border:1px solid var(--line-soft); border-radius:999px; padding:2px 9px; flex:none; }
.di-what { font-size:13.5px; color:var(--ivory-dim); line-height:1.65; }
.di-red { margin-top:9px; font-size:13px; color:#e08e7e; line-height:1.6; }
.di-red b { color:#e08e7e; }
.di-fix { margin-top:9px; font-size:13px; color:var(--ivory-dim); line-height:1.6; }
.di-fix b { color:#7fb08a; }
/* --- mode 3: audit-trail review --- */
.di-block { margin-top:16px; padding:14px 16px; border-radius:12px; background:rgba(15,42,32,.4); border:1px solid var(--line-soft); }
.di-block h4 { font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:6px; }
.di-block p { font-size:13.5px; color:var(--ivory-dim); line-height:1.7; }
/* --- mode 4: controls --- */
.di-ctbl td:first-child, .di-gamp .di-gcat { white-space:nowrap; color:var(--gold-soft); font-family:var(--mono,ui-monospace,monospace); font-size:12px; vertical-align:top; }
.di-ctbl tr.di-key td { background:rgba(201,162,75,.07); }
.di-ctbl tr.di-key td:first-child { color:var(--gold); font-weight:700; }
.di-csa-lead { font-size:13.5px; color:var(--ivory-dim); line-height:1.75; }
.di-controls h4 { font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; margin:18px 0 4px; }
.di-contrast { margin-top:14px; padding:12px 14px; border-radius:10px; background:rgba(201,162,75,.08); border:1px solid var(--line); font-size:13px; color:var(--ivory-dim); line-height:1.65; }
.di-contrast b { color:var(--gold); }
@media (max-width:820px){ .di-result { position:static; } }

/* ============================================================
   COUNTERFEIT & FALSIFIED STUDIO (#falsified) — .fx-*
   Reuses .dv-tabs/.dv-panel/.st-mk/.st-sens-card/.st-tbl/.di-block.
   ============================================================ */
/* --- shared chips --- */
.fx-status { font-size:10px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; padding:3px 10px; border-radius:999px; }
.fx-status-ok { background:rgba(127,176,138,.16); color:#7fb08a; }
.fx-status-mid { background:rgba(201,162,75,.16); color:var(--gold-soft); }
.fx-status-bad { background:rgba(201,106,90,.16); color:#e08e7e; }
.fx-status-unc { background:rgba(154,167,154,.14); color:var(--sage); }
.fx-dot { width:8px; height:8px; border-radius:50%; display:inline-block; flex:none; }
.fx-dot-ok { background:#7fb08a; } .fx-dot-mid { background:var(--gold-soft); }
.fx-dot-bad { background:#c96a5a; } .fx-dot-unc { background:var(--sage-dim); }
/* --- mode 1: verify --- */
.fx-sys { align-self:start; }
.fx-sys-h { display:flex; align-items:center; gap:9px; padding-bottom:10px; border-bottom:1px solid var(--line-soft); margin-bottom:10px; }
.fx-sys-h h4 { font-family:var(--serif); font-size:19px; color:var(--ivory); font-weight:400; margin-inline-end:auto; }
.fx-row { display:grid; grid-template-columns:130px 1fr; gap:10px; padding:8px 0; border-bottom:1px solid var(--line-soft); font-size:13px; }
.fx-row span { color:var(--sage); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; }
.fx-row b { color:var(--ivory-dim); font-weight:500; }
.fx-how { margin-top:14px; padding:12px 14px; border-radius:10px; background:rgba(201,162,75,.07); border:1px solid var(--line); }
.fx-how h5 { font-family:var(--sans); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:5px; }
.fx-how p { font-size:13px; color:var(--ivory-dim); line-height:1.7; }
.fx-note { margin-top:10px; font-size:12.5px; color:var(--sage); line-height:1.6; }
.fx-gs1 { margin-top:18px; padding-top:14px; border-top:1px solid var(--line-soft); }
.fx-gs1 h4 { font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:6px; }
.fx-gs1 p { font-size:13px; color:var(--ivory-dim); line-height:1.7; }
.fx-ai-c { white-space:nowrap; color:var(--gold-soft); font-family:var(--mono,ui-monospace,monospace); font-size:12px; }
/* --- mode 2: triage --- */
.fx-fgroup { margin-top:16px; }
.fx-fgroup h4 { font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; padding-bottom:6px; border-bottom:1px solid var(--line-soft); margin-bottom:7px; }
.fx-flag { display:flex; align-items:flex-start; gap:9px; width:100%; text-align:start; font:inherit; background:none; border:1px solid transparent; border-radius:9px; padding:8px 10px; cursor:pointer; transition:.18s; }
.fx-flag:hover { background:rgba(201,162,75,.05); }
.fx-flag.on { background:rgba(201,106,90,.09); border-color:rgba(201,106,90,.35); }
.fx-fk { width:17px; height:17px; border-radius:5px; border:1px solid var(--line); display:inline-flex; align-items:center; justify-content:center; font-size:11px; color:var(--ink); flex:none; margin-top:1px; }
.fx-flag.on .fx-fk { background:#c96a5a; border-color:#c96a5a; color:#fff; }
.fx-ft { font-size:13px; color:var(--ivory-dim); line-height:1.55; flex:1; }
.fx-fw { font-size:10px; font-weight:700; width:18px; height:18px; border-radius:5px; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.fx-fw-1 { background:rgba(154,167,154,.18); color:var(--sage); }
.fx-fw-2 { background:rgba(201,162,75,.2); color:var(--gold-soft); }
.fx-fw-3 { background:rgba(201,106,90,.22); color:#e08e7e; }
.fx-result { align-self:start; position:sticky; top:16px; }
.fx-band { display:flex; flex-direction:column; gap:5px; padding:16px; border-radius:14px; border:1px solid var(--line-soft); }
.fx-band-t { font-family:var(--serif); font-size:22px; }
.fx-band-n { font-size:11.5px; color:var(--sage); }
.fx-band-a { font-size:13px; color:var(--ivory-dim); line-height:1.6; margin-top:5px; }
.fx-band-none { background:rgba(15,42,32,.5); } .fx-band-none .fx-band-t { color:var(--sage); }
.fx-band-low { background:rgba(154,167,154,.10); border-color:rgba(154,167,154,.35); } .fx-band-low .fx-band-t { color:var(--sage); }
.fx-band-mid { background:rgba(201,162,75,.11); border-color:rgba(201,162,75,.45); } .fx-band-mid .fx-band-t { color:var(--gold-soft); }
.fx-band-high { background:rgba(201,106,90,.13); border-color:rgba(201,106,90,.5); } .fx-band-high .fx-band-t { color:#e08e7e; }
.fx-hits { list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.fx-hits li { padding:9px 12px; border-radius:9px; background:rgba(15,42,32,.5); border:1px solid var(--line-soft); display:flex; flex-direction:column; gap:3px; }
.fx-hits b { font-size:12.5px; color:var(--ivory); font-weight:600; }
.fx-hits span { font-size:12px; color:var(--sage); line-height:1.55; }
.fx-hits .fx-none { color:var(--sage); font-size:12.5px; }
/* --- mode 3: respond --- */
.fx-steps { list-style:none; margin:16px 0 0; padding:0; display:flex; flex-direction:column; gap:10px; }
.fx-step { display:flex; gap:12px; padding:14px 16px; border-radius:12px; background:rgba(15,42,32,.4); border:1px solid var(--line-soft); }
.fx-step-n { width:26px; height:26px; border-radius:8px; background:rgba(201,162,75,.16); color:var(--gold); font-family:var(--serif); font-size:14px; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.fx-step b { display:block; font-size:14px; color:var(--ivory); font-weight:600; }
.fx-step-t { display:inline-block; margin-top:3px; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); background:var(--gold-soft); border-radius:999px; padding:2px 9px; font-weight:700; }
.fx-step p { margin-top:6px; font-size:13px; color:var(--ivory-dim); line-height:1.7; }
/* --- mode 4: cases --- */
.fx-year { margin-inline-start:auto; font-size:11px; color:var(--sage); font-variant-numeric:tabular-nums; flex:none; }
.fx-mech { margin-top:9px; font-size:13px; color:var(--ivory-dim); line-height:1.65; }
.fx-mech b { color:var(--gold); }
.fx-lesson { margin-top:8px; font-size:13px; color:var(--ivory-dim); line-height:1.65; }
.fx-lesson b { color:#7fb08a; }
@media (max-width:820px){ .fx-result, .fx-sys { position:static; } .fx-row { grid-template-columns:1fr; gap:2px; } }

/* ============================================================
   QC & LAB STUDIO (#qclab) — .qc-*
   Reuses .dv-tabs/.dv-panel/.dv-tier/.st-tbl/.st-sens-card/.di-block.
   ============================================================ */
/* --- mode 1: OOS stepper --- */
.qc-phase { margin-top:16px; }
.qc-phase-h { display:flex; align-items:center; gap:9px; margin-bottom:8px; }
.qc-phase-b { font-family:var(--sans); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; padding:3px 11px; border-radius:999px; }
.qc-phase-1 .qc-phase-b { background:rgba(201,162,75,.16); color:var(--gold); }
.qc-phase-2 .qc-phase-b { background:rgba(127,176,138,.16); color:#7fb08a; }
.qc-phase-h span:last-child { font-size:12.5px; color:var(--sage); }
.qc-steps { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.qc-step { display:flex; gap:12px; padding:13px 15px; border-radius:12px; background:rgba(15,42,32,.4); border:1px solid var(--line-soft); }
.qc-step-n { width:25px; height:25px; border-radius:8px; background:rgba(201,162,75,.14); color:var(--gold); font-family:var(--serif); font-size:13px; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.qc-step b { display:block; font-size:14px; color:var(--ivory); }
.qc-step p { margin-top:5px; font-size:13px; color:var(--ivory-dim); line-height:1.65; }
.qc-step-r { display:block; margin-top:6px; font-size:11.5px; color:var(--gold-soft); border-inline-start:2px solid var(--line); padding-inline-start:8px; }
.qc-myths { margin-top:20px; }
.qc-myth { display:grid; grid-template-columns:1fr; gap:6px; padding:12px 14px; border-radius:10px; background:rgba(201,106,90,.06); border:1px solid rgba(201,106,90,.25); margin-top:8px; }
.qc-myth-m { font-size:13px; color:#e08e7e; } .qc-myth-m::before { content:"✗ "; font-weight:700; }
.qc-myth-t { font-size:13px; color:var(--ivory-dim); line-height:1.6; } .qc-myth-t::before { content:"✓ "; color:#7fb08a; font-weight:700; }
/* --- mode 2: Q2 matrix --- */
.qc-testpick { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 4px; }
.qc-q2tbl td.qc-yes { color:#7fb08a; font-weight:700; text-align:center; }
.qc-q2tbl td.qc-no { color:var(--sage-dim); text-align:center; }
.qc-q2tbl td.hl { background:rgba(201,162,75,.10); }
.qc-q2tbl th.hl { background:rgba(201,162,75,.16); color:var(--gold); }
.qc-crit { font-size:12px; color:var(--sage); }
/* --- mode 3: impurity calculator --- */
.qc-calc { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin-top:14px; }
.qc-calc label { display:flex; flex-direction:column; gap:5px; font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); }
.qc-calc input { font:inherit; font-size:15px; color:var(--ivory); background:rgba(15,42,32,.6); border:1px solid var(--line); border-radius:9px; padding:9px 12px; width:150px; }
.qc-seg { display:flex; gap:5px; }
.qc-thr { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.qc-thr-c { padding:16px; border-radius:14px; background:rgba(15,42,32,.5); border:1px solid var(--line-soft); text-align:center; }
.qc-thr-c h5 { font-family:var(--sans); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.qc-thr-v { font-family:var(--serif); font-size:30px; color:var(--ivory); margin:6px 0 2px; font-variant-numeric:tabular-nums; }
.qc-thr-s { font-size:11.5px; color:var(--sage); }
.qc-band-lbl { margin-top:12px; font-size:12.5px; color:var(--sage); text-align:center; }
@media (max-width:560px){ .qc-thr { grid-template-columns:1fr; } }
/* --- mode 4: <621> --- */
.qc-adjtbl td:first-child { color:var(--ivory-dim); font-weight:500; }
.qc-adjtbl code { font-family:var(--mono,ui-monospace,monospace); font-size:12px; color:var(--gold-soft); }
.qc-no-adjust { color:#e08e7e; font-size:12px; }
/* --- mode 5: potency --- */
.qc-prose { font-size:13.5px; color:var(--ivory-dim); line-height:1.75; }
.qc-prose + .qc-prose { margin-top:12px; }

/* ============================================================
   VAM & FDC STUDIO (#vamfdc) — .vf-*
   Reuses .dv-tabs/.dv-panel/.dv-tier/.di-qrow/.di-opt/.di-gap/.fx-band/.st-sens-card.
   ============================================================ */
.vf-h { font-family:var(--sans); font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; margin:16px 0 8px; }
/* mode 1: legal basis */
.vf-intents { display:flex; flex-direction:column; gap:7px; }
.vf-intent { text-align:start; font:inherit; background:rgba(15,42,32,.4); border:1px solid var(--line-soft); border-radius:10px; padding:11px 13px; cursor:pointer; transition:.18s; color:var(--ivory-dim); }
.vf-intent:hover { border-color:var(--line); background:rgba(201,162,75,.06); }
.vf-intent.on { border-color:var(--gold); background:rgba(201,162,75,.1); }
.vf-intent-t { font-size:13.5px; line-height:1.5; }
.vf-out { align-self:start; }
.vf-verdict { font-family:var(--serif); font-size:18px; color:var(--ivory); line-height:1.4; margin-bottom:14px; }
.vf-basis { padding:13px 0; border-top:1px solid var(--line-soft); }
.vf-basis-h { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.vf-basis-h code { background:rgba(201,162,75,.15); color:var(--gold); font-family:var(--mono,ui-monospace,monospace); font-size:12px; padding:2px 9px; border-radius:6px; white-space:nowrap; }
.vf-basis-h b { font-size:14px; color:var(--ivory); }
.vf-row { display:grid; grid-template-columns:120px 1fr; gap:10px; margin-top:6px; }
.vf-row span { font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--sage); padding-top:2px; }
.vf-row p { font-size:13px; color:var(--ivory-dim); line-height:1.6; }
.vf-quote { margin:10px 0 0; padding:8px 13px; border-inline-start:2px solid var(--gold-deep); background:rgba(201,162,75,.05); font-size:12px; color:var(--sage); line-height:1.6; font-style:italic; }
/* mode 2: justification */
.vf-q-h { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.vf-q-h b { font-size:13px; color:var(--ivory); }
.vf-w { font-size:10px; font-weight:700; width:18px; height:18px; border-radius:5px; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.vf-w-1 { background:rgba(154,167,154,.18); color:var(--sage); }
.vf-w-2 { background:rgba(201,162,75,.2); color:var(--gold-soft); }
.vf-w-3 { background:rgba(201,106,90,.22); color:#e08e7e; }
/* mode 4: archetypes */
.vf-cls { margin-inline-start:auto; font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--sage); border:1px solid var(--line-soft); border-radius:999px; padding:2px 9px; flex:none; }
.vf-rat { font-size:13.5px; color:var(--ivory-dim); line-height:1.65; }
.vf-rat b, .vf-path b { color:var(--gold); }
.vf-path { margin-top:8px; font-size:13px; color:var(--ivory-dim); line-height:1.6; }
@media (max-width:820px){ .vf-out { position:static; } .vf-row { grid-template-columns:1fr; gap:2px; } }

/* --- VAM/FDC mode 5: registered & withdrawn bank --- */
.vf-bankcard.vf-removed { border-inline-start:3px solid #c96a5a; }
.vf-bankcard.vf-reg { border-inline-start:3px solid #7fb08a; }
.vf-combo { font-size:11.5px; color:var(--sage); font-weight:400; }
.vf-meta { font-size:11.5px; color:var(--sage); letter-spacing:.02em; margin-bottom:8px; }
.vf-reason { font-size:13.5px; color:var(--ivory-dim); line-height:1.65; }
.vf-reason b { color:var(--gold); }
.vf-lesson { margin-top:8px; font-size:13px; color:var(--ivory-dim); line-height:1.65; }
.vf-lesson b { color:#7fb08a; }

/* ============================================================
   QC & LAB — bench troubleshooting (mode 6) — .qc-bench*
   ============================================================ */
.qc-bn { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:7px; background:rgba(201,162,75,.16); color:var(--gold); font-family:var(--serif); font-size:13px; font-weight:600; flex:none; }
.qc-short { font-size:14px; color:var(--ivory); line-height:1.6; }
.qc-short b { color:var(--gold); }
.qc-h5 { font-family:var(--sans); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); font-weight:600; margin:14px 0 6px; }
.qc-causes { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.qc-cause { padding:9px 11px; border-radius:9px; background:rgba(15,42,32,.5); border:1px solid var(--line-soft); display:flex; flex-direction:column; gap:3px; }
.qc-cause b { font-size:13px; color:var(--ivory-dim); }
.qc-cause span:last-child { font-size:12.5px; color:var(--sage); line-height:1.55; }
.qc-lk { align-self:flex-start; font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; font-weight:700; padding:2px 8px; border-radius:999px; }
.qc-lk-most { background:rgba(201,106,90,.2); color:#e08e7e; }
.qc-lk-common { background:rgba(201,162,75,.2); color:var(--gold-soft); }
.qc-lk-occasional { background:rgba(154,167,154,.16); color:var(--sage); }
.qc-fixes { margin:0; padding-inline-start:20px; display:flex; flex-direction:column; gap:5px; }
.qc-fixes li { font-size:13px; color:var(--ivory-dim); line-height:1.6; }
.qc-pitfall { margin-top:12px; padding:10px 12px; border-radius:9px; background:rgba(201,106,90,.09); border:1px solid rgba(201,106,90,.3); font-size:12.5px; color:var(--ivory-dim); line-height:1.6; }
.qc-pitfall b { color:#e08e7e; }

/* ── Supporting-tools tier under the flagship grid ─────────────────── */
.tool-tier { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  margin:34px 0 14px; padding-top:20px; border-top:1px solid var(--line-soft); }
.tool-tier-l { font-family:var(--sans); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold); font-weight:600; }
.tool-tier-d { font-size:13px; color:var(--sage); }
/* supporting cards read one step quieter than the flagships */
.platform-grid-sm .platform-card { padding:18px 20px; }
.platform-grid-sm .platform-card h3 { font-size:16px; }
.platform-grid-sm .platform-card p { font-size:12.5px; }
.platform-grid-sm .pc-ic { font-size:20px; opacity:.8; }
@media (max-width:720px){ .tool-tier { margin-top:26px; } }

/* ══════════════════════════════════════════════════════════════════
   AUDIT FIXES — mobile input zoom · Arabic UI font · touch targets
   ══════════════════════════════════════════════════════════════════ */

/* 1 ── Arabic gets a real UI font.
   Inter (--sans) and Fraunces (--serif) carry no Arabic glyphs, so in RTL the
   studios fell back to a random system font. IBM Plex Sans Arabic is a UI face
   that sits well beside Inter. Google serves it as a separate Arabic unicode-
   range @font-face, so an English-only visitor never downloads it. The elegant
   Amiri usages (.ar / .ar-hero / .ar-line) are more specific and stay Amiri. */
:root { --arabic-ui: "IBM Plex Sans Arabic", "Noto Sans Arabic", var(--sans); }
[dir="rtl"] body,
html[lang="ar"] body { font-family: var(--arabic-ui); line-height: 1.85; }
/* Arabic headings — Fraunces has no Arabic, so give them the UI face at weight 600
   (the decorative .ar-hero / .kicker .ar keep Amiri via higher specificity). */
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3, [dir="rtl"] h4,
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] h4 {
  font-family: var(--arabic-ui); font-weight: 600; letter-spacing: 0; }
/* studio UI controls + forms inherit the UI face in RTL */
[dir="rtl"] input, [dir="rtl"] textarea, [dir="rtl"] select, [dir="rtl"] button,
html[lang="ar"] input, html[lang="ar"] textarea, html[lang="ar"] select, html[lang="ar"] button {
  font-family: var(--arabic-ui); }

/* 2 ── Stop iOS Safari from zooming on field focus.
   Safari zooms any input whose font-size is < 16px. Scope to touch pointers so
   desktop keeps its compact field sizing. (Never use maximum-scale=1 for this —
   it disables pinch-zoom and fails accessibility.) */
@media (pointer: coarse) {
  input, textarea, select { font-size: 16px; }
}

/* 3 ── Give the studios' tap targets a real 44px hit area on phones. */
@media (max-width: 720px) and (pointer: coarse) {
  .be-opt, .di-opt, .st-mk, .fx-flag, .dv-tier, .dv-tab,
  .di-opt, .be-opt, .st-intent, .fx-status, .qc-tab {
    min-height: 44px; display: inline-flex; align-items: center;
  }
}

/* 4 ── Keep dense studio grids from clipping their right edge at 375px.
   min-width:0 lets flex/grid children shrink instead of overflowing the card. */
.dv-grid2 > *, .st-grid2 > *, .sup-grid > *, .fx-verify > *, .be-waiver > * { min-width: 0; }

/* ── Nav search pill — surfaces the ⌘K palette in the chrome ──────────
   The universal search was previously reachable only from a floating footer
   button and an untold keyboard shortcut. With eleven studios it is the single
   best answer to "which tool do I need", so it belongs in the header. */
.nav-search {
  display:inline-flex; align-items:center; gap:9px; margin-inline-start:auto;
  font:inherit; font-size:12.5px; color:var(--sage); cursor:pointer;
  background:rgba(15,42,32,.5); border:1px solid var(--line-soft);
  border-radius:999px; padding:7px 14px; transition:.2s; max-width:340px;
}
.nav-search:hover { border-color:var(--line); color:var(--ivory-dim); background:rgba(15,42,32,.75); }
.nav-search:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.ns-ico { font-size:14px; color:var(--gold); flex:none; }
.ns-lbl { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ns-kbd { display:inline-flex; gap:3px; flex:none; }
.ns-kbd kbd {
  font:inherit; font-size:10px; line-height:1; padding:3px 5px; color:var(--sage);
  background:rgba(201,162,75,.10); border:1px solid var(--line-soft); border-radius:4px;
}
/* tablet: keep the pill but drop the long label to just the icon + shortcut */
@media (max-width:1040px){ .nav-search .ns-lbl { display:none; } .nav-search { padding:7px 11px; } }
/* phone: icon only, and no keyboard hint (there is no ⌘ key) */
@media (max-width:720px){ .nav-search .ns-kbd { display:none; } }
[dir="rtl"] .nav-search { margin-inline-start:auto; }

/* ── "Not sure which tool?" bridge to the Solutions Bank ── */
.tools-bridge { text-align:center; margin-top:28px; font-size:14px; color:var(--sage); }
.tools-bridge a { color:var(--gold-soft); font-weight:500; border-bottom:1px solid var(--line); padding-bottom:1px; }
.tools-bridge a:hover { color:var(--gold); }

/* tertiary text-only CTA (hero "Discover the Office") */
.btn-text { background:transparent; border-color:transparent; color:var(--sage); padding-inline:6px; }
.btn-text:hover { color:var(--ivory-dim); }

/* ══════════════════════════════════════════════════════════════════
   REPORT / EXPORT — turns a studio result into a dated, citable page
   ══════════════════════════════════════════════════════════════════ */

/* the trigger, sitting in each studio's tab strip */
.rp-btn {
  margin-inline-start:auto; font:inherit; font-size:12px; cursor:pointer;
  color:var(--gold-soft); background:rgba(201,162,75,.10);
  border:1px solid var(--line); border-radius:999px; padding:6px 14px; transition:.2s;
}
.rp-btn:hover { background:rgba(201,162,75,.18); color:var(--gold); }
.rp-btn:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }

/* the report container is invisible on screen — it only exists for print */
#aupamReport { display:none; }

@media print {
  /* Print the report and nothing else. Studios are dark, dense and full of
     controls; a document has to be light, quiet and readable on paper. */
  html.printing-report body > *:not(#aupamReport) { display:none !important; }
  html.printing-report #aupamReport { display:block !important; }

  html.printing-report, html.printing-report body {
    background:#fff !important; color:#111 !important;
    font-family:"Inter",-apple-system,Segoe UI,sans-serif; font-size:10.5pt; line-height:1.5;
  }
  html.printing-report[lang="ar"] body,
  html.printing-report [dir="rtl"] { font-family:"IBM Plex Sans Arabic","Noto Sans Arabic",sans-serif; }

  @page { margin:16mm 14mm; }

  /* letterhead */
  #aupamReport .rp-head {
    display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
    padding-bottom:10px; border-bottom:2px solid #173a2e; margin-bottom:14px;
  }
  #aupamReport .rp-brand { display:flex; align-items:center; gap:10px; }
  #aupamReport .rp-brand img { width:34px; height:36px; }
  #aupamReport .rp-brand b { display:block; font-size:12pt; color:#173a2e; }
  #aupamReport .rp-brand span { display:block; font-size:8pt; color:#555; }
  #aupamReport .rp-meta { font-size:8.5pt; color:#333; text-align:end; }
  #aupamReport .rp-meta i { color:#777; font-style:normal; }

  #aupamReport .rp-title { font-size:16pt; color:#173a2e; margin:0 0 2px; font-weight:600; }
  #aupamReport .rp-mode { font-size:9.5pt; color:#555; margin:0 0 12px; }

  /* the cloned studio body, re-skinned for paper */
  #aupamReport .rp-body { color:#111; }
  #aupamReport .rp-body * {
    background:transparent !important; color:#111 !important;
    box-shadow:none !important; text-shadow:none !important;
  }
  #aupamReport .rp-body h3, #aupamReport .rp-body h4, #aupamReport .rp-body h5 {
    color:#173a2e !important; font-size:11pt; margin:12px 0 4px;
  }
  #aupamReport .rp-body p, #aupamReport .rp-body li, #aupamReport .rp-body td { font-size:9.5pt; }
  /* panels become bordered blocks instead of dark cards */
  #aupamReport .dv-panel, #aupamReport .st-panel, #aupamReport .di-block,
  #aupamReport .st-sens-card, #aupamReport .fx-band, #aupamReport .di-score {
    border:1px solid #ccc !important; border-radius:6px; padding:10px 12px; margin:8px 0;
    break-inside:avoid;
  }
  /* selected options must stay legible once colour is gone */
  #aupamReport .on, #aupamReport [aria-selected="true"] {
    border:1.5px solid #173a2e !important; font-weight:600;
  }
  #aupamReport .on::before { content:"✔ "; color:#173a2e !important; }
  /* tabs: keep only the active one, as a caption */
  #aupamReport .dv-tab:not(.on), #aupamReport .st-tab:not(.on), #aupamReport .rp-btn { display:none !important; }
  #aupamReport table { width:100%; border-collapse:collapse; }
  #aupamReport th, #aupamReport td { border:1px solid #ddd !important; padding:5px 7px; }
  #aupamReport th { background:#f3f1ea !important; color:#173a2e !important; }
  /* expandable cards print open — a collapsed card is a blank box on paper */
  #aupamReport .st-sens-body, #aupamReport .dv-solve-card .st-sens-body { display:block !important; }

  /* closing block */
  #aupamReport .rp-foot { margin-top:16px; padding-top:10px; border-top:1px solid #ccc; break-inside:avoid; }
  #aupamReport .rp-src { font-size:8pt; color:#555; margin:0 0 6px; }
  #aupamReport .rp-caveat { font-size:8.5pt; color:#222; line-height:1.5; margin:0 0 6px; }
  #aupamReport .rp-caveat b { color:#8a1c1c; }
  #aupamReport .rp-origin { font-size:7.5pt; color:#777; margin:0; }
  #aupamReport .rp-val { border-bottom:1px solid #999; padding:0 4px; font-weight:600; }
}

/* ── affiliation proof: the union link beside the claim ── */
.since-src { margin-inline-start:10px; font-size:11px; color:var(--gold-soft);
  border-bottom:1px solid var(--line); padding-bottom:1px; white-space:nowrap; }
.since-src:hover { color:var(--gold); }
.contact-union { margin-top:12px; font-size:13.5px; color:var(--sage); line-height:1.7; }
.contact-union a { color:var(--gold-soft); border-bottom:1px solid var(--line); }
.contact-union a:hover { color:var(--gold); }

/* ── Related-tool strip: the hand-off between studios ────────────────
   Sits at the foot of each studio and answers "what's my next question",
   which is how these tools are actually used in sequence. */
.sl-wrap { margin-top:26px; padding-top:18px; border-top:1px solid var(--line-soft); }
.sl-lbl { display:block; font-family:var(--sans); font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:10px; }
.sl-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; }
.sl-item { display:flex; flex-direction:column; gap:3px; padding:12px 14px; border-radius:11px;
  background:rgba(15,42,32,.45); border:1px solid var(--line-soft); transition:.2s; }
.sl-item:hover { border-color:var(--line); background:rgba(15,42,32,.7); transform:translateY(-1px); }
.sl-t { font-size:13.5px; color:var(--gold-soft); font-weight:500; }
.sl-t::after { content:" →"; color:var(--sage); }
[dir="rtl"] .sl-t::after { content:" ←"; }
.sl-w { font-size:12px; color:var(--sage); line-height:1.5; }
@media (max-width:720px){ .sl-row { grid-template-columns:1fr; } }

/* ── "Copy link" — shareable studio state ── */
.ss-btn { font:inherit; font-size:12px; cursor:pointer; color:var(--sage);
  background:rgba(15,42,32,.5); border:1px solid var(--line-soft);
  border-radius:999px; padding:6px 13px; transition:.2s; margin-inline-start:8px; }
.ss-btn:hover { border-color:var(--line); color:var(--ivory-dim); }
.ss-btn:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }

/* ---- task router: "what do you need to do today?" ---------------------- */
.tr-wrap{margin:0 0 28px}
.tr-q{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.05rem,2.2vw,1.32rem);
      color:var(--ivory);margin:0 0 12px;letter-spacing:.01em}
.tr-chips{display:flex;flex-wrap:wrap;gap:8px}
.tr-chip{font:inherit;font-size:.86rem;line-height:1.25;cursor:pointer;
         padding:8px 14px;border-radius:999px;
         border:1px solid rgba(199,168,105,.34);
         background:rgba(255,255,255,.03);color:var(--ivory-dim);
         transition:background .16s ease,border-color .16s ease,color .16s ease}
.tr-chip:hover{background:rgba(199,168,105,.11);border-color:rgba(199,168,105,.58);color:var(--ivory)}
.tr-chip.on{background:var(--gold);border-color:var(--gold);color:#12241c;font-weight:600}
.tr-chip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.tr-out{margin:14px 0 0;font-size:.86rem;color:var(--ivory-dim)}
.tr-clear{font:inherit;font-size:.86rem;cursor:pointer;background:none;border:0;padding:0 2px;
          color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.tr-clear:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
html[lang="ar"] .tr-chip,html[lang="ar"] .tr-q,html[lang="ar"] .tr-out{
  font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',system-ui,sans-serif}
@media print{.tr-wrap{display:none}}
/* .platform-card sets its own display, which overrides the hidden attribute */
.platform-card[hidden]{display:none!important}
.tr-also{display:block;margin-top:6px;font-size:.82rem;color:var(--ivory-dim)}
.tr-also a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}

/* ---- dataset edition / citation line ---------------------------------- */
.dsv{margin:22px 0 0;padding:14px 16px;border:1px solid rgba(199,168,105,.22);
     border-radius:10px;background:rgba(255,255,255,.02)}
.dsv-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:5px}
.dsv-name{font-family:'Fraunces',Georgia,serif;font-size:.95rem;color:var(--ivory)}
.dsv-ed{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;
        color:var(--gold);border:1px solid rgba(199,168,105,.4);
        border-radius:999px;padding:2px 9px;font-variant-numeric:tabular-nums}
.dsv-m{margin:0;font-size:.8rem;line-height:1.65;color:var(--ivory-dim);
       font-variant-numeric:tabular-nums}
.dsv-m b{color:var(--ivory);font-weight:600}
.dsv-c{margin-top:9px}
.dsv-c summary{cursor:pointer;font-size:.79rem;color:var(--gold);width:max-content}
.dsv-c summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.dsv-cite{margin:8px 0;padding:9px 11px;border-radius:7px;
          background:rgba(0,0,0,.24);font-size:.76rem;line-height:1.7;
          color:var(--ivory-dim);word-break:break-word}
.dsv-copy{font:inherit;font-size:.76rem;cursor:pointer;padding:5px 12px;
          border-radius:999px;border:1px solid rgba(199,168,105,.4);
          background:none;color:var(--gold)}
.dsv-copy:hover{background:rgba(199,168,105,.12)}
.dsv-copy:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
html[lang="ar"] .dsv{font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',system-ui,sans-serif}
@media print{.dsv{display:none}}
.rp-ds{font-size:9pt;margin:0 0 4px}
/* action bar for studios that have no tab strip of their own (Supply) */
.studio-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin:0 0 14px}
@media print{.studio-actions{display:none}}

/* ============================================================================
   The Decision Engine (#decision / #decisionApp)
   ========================================================================== */
.dec-head{text-align:center;margin:0 auto 20px;max-width:74ch}
.dec-head .h-md{font-family:'Fraunces',Georgia,serif;font-size:clamp(1.5rem,3.4vw,2.3rem);line-height:1.08;margin:6px 0 0;color:var(--ivory)}
.dec-app{margin-top:6px}
.dec-body{padding-top:4px}

.dec-intro p{font-size:.95rem;line-height:1.7;color:var(--ivory-dim);margin:6px 0 16px;max-width:80ch}
.dec-illus{font-size:.8rem;color:var(--sage);margin:0 0 14px;font-style:italic}

/* template picker */
.dec-tplbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.dec-tpl-lab{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}
.dec-tpl{font:inherit;font-size:.83rem;cursor:pointer;padding:7px 13px;border-radius:999px;
  border:1px solid rgba(199,162,75,.32);background:rgba(255,255,255,.03);color:var(--ivory-dim);
  transition:background .16s,border-color .16s,color .16s}
.dec-tpl:hover{background:rgba(199,162,75,.1);color:var(--ivory)}
.dec-tpl.on{background:var(--gold);border-color:var(--gold);color:#12241c;font-weight:600}

/* decision matrix */
.dec-matrix-wrap{overflow-x:auto;margin:6px 0 4px;-webkit-overflow-scrolling:touch}
.dec-matrix{border-collapse:separate;border-spacing:6px;min-width:640px;width:100%;table-layout:fixed}
.dec-matrix th,.dec-matrix td{vertical-align:middle}
.dec-cnr{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--sage);text-align:start;font-weight:500;padding:0 4px;width:250px}
.dec-st{background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:10px;padding:8px;min-width:132px}
.dec-st .dec-plab{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--sage);margin:6px 0 2px}
.dec-optname{text-align:start;min-width:250px;width:250px}
/* names are free text, so they wrap rather than clip. Textareas are styled to
   look exactly like the old inputs; only the wrapping behaviour differs. */
.dec-in.dec-optin,.dec-in.dec-stname{resize:none;overflow:hidden;line-height:1.35;
  font-family:inherit;display:block;min-height:2.7em;height:auto}
.dec-optname .dec-in{white-space:normal;word-break:break-word}
.dec-cell{background:rgba(0,0,0,.16);border:1px solid var(--line);border-radius:8px;padding:4px;text-align:center}
.dec-in{font:inherit;color:var(--ivory);background:transparent;border:0;width:100%;padding:5px 7px;border-radius:6px}
.dec-in:focus{outline:none;background:rgba(199,162,75,.1)}
.dec-stname,.dec-optname .dec-in{font-weight:600;font-size:.86rem}
.dec-prob{background:rgba(0,0,0,.22);border:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums}
.dec-val{text-align:center;font-variant-numeric:tabular-nums;font-size:.9rem}
.dec-x{font:inherit;cursor:pointer;background:none;border:0;color:var(--sage);font-size:1rem;line-height:1;padding:2px 5px;border-radius:5px}
.dec-x:hover{color:var(--red);background:rgba(184,69,58,.12)}
.dec-addbtn{font:inherit;font-size:.78rem;cursor:pointer;padding:6px 11px;border-radius:8px;
  border:1px dashed rgba(199,162,75,.4);background:none;color:var(--gold);white-space:nowrap}
.dec-addbtn:hover{background:rgba(199,162,75,.1)}
.dec-addbtn.wide{width:100%;margin:8px 0 4px;padding:10px}
.dec-addrow th{padding-top:4px}

/* risk tolerance */
.dec-risk{margin:14px 0;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.dec-risk-l{display:flex;align-items:baseline;gap:10px;font-size:.9rem;color:var(--ivory)}
.dec-rho-v{color:var(--gold-soft);font-variant-numeric:tabular-nums;font-weight:600}
.dec-risk input[type=range]{width:100%;margin:10px 0 6px;accent-color:var(--gold)}
.dec-neutral{display:flex;align-items:center;gap:7px;font-size:.82rem;color:var(--ivory-dim);cursor:pointer}
.dec-risk-note{font-size:.76rem;line-height:1.6;color:var(--sage);margin:9px 0 0}

/* results */
.dec-rec{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin:18px 0 12px;padding:14px 18px;
  border-radius:12px;background:linear-gradient(120deg,rgba(199,162,75,.14),rgba(199,162,75,.04));border:1px solid rgba(199,162,75,.34)}
.dec-rec-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);display:block}
.dec-rec-main b{font-family:'Fraunces',Georgia,serif;font-size:1.25rem;color:var(--ivory);display:block;margin:2px 0}
.dec-rec-sub{font-size:.8rem;color:var(--ivory-dim);font-variant-numeric:tabular-nums}
.dec-rec-flag{flex-basis:100%;font-size:.82rem;line-height:1.6;color:var(--gold-soft);margin:4px 0 0}

.dec-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.dec-card{position:relative;padding:14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.dec-card.rec{border-color:rgba(199,162,75,.55);background:rgba(199,162,75,.06)}
.dec-badge{position:absolute;top:-9px;inset-inline-start:12px;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;
  background:var(--gold);color:#12241c;padding:2px 9px;border-radius:999px;font-weight:700}
.dec-card h5{font-family:'Fraunces',Georgia,serif;font-size:1rem;color:var(--ivory);margin:2px 0 10px;line-height:1.2}
.dec-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dec-m{display:flex;flex-direction:column;gap:1px}
.dec-m-v{font-size:1.02rem;font-weight:600;color:var(--ivory);font-variant-numeric:tabular-nums}
.dec-m-l{font-size:.68rem;color:var(--sage);line-height:1.2}
.dec-m.big .dec-m-v{font-size:1.35rem;color:var(--gold-soft)}
.dec-m.neg .dec-m-v{color:var(--red)}
.dec-m.warn .dec-m-v{color:#e0a23a}

.dec-evpi{display:flex;align-items:center;gap:16px;margin:14px 0;padding:16px 18px;border-radius:12px;
  border:1px solid rgba(63,143,107,.4);background:rgba(63,143,107,.08)}
.dec-evpi-n{font-family:'Fraunces',Georgia,serif;font-size:2rem;color:var(--green-accent);font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap}
.dec-evpi-t b{color:var(--ivory);font-size:.95rem}
.dec-evpi-t p{margin:4px 0 0;font-size:.82rem;line-height:1.6;color:var(--ivory-dim)}

.dec-sum{font-size:.86rem;line-height:1.6;margin:0 0 14px;padding:10px 14px;border-radius:10px;
  color:#e6b24a;background:rgba(224,162,58,.1);border:1px solid rgba(224,162,58,.32)}
.dec-sum b{color:#f0c96a;font-weight:700}
.dec-empty{font-size:.9rem;line-height:1.7;color:var(--sage);margin:6px 0;padding:18px 16px;
  border-radius:10px;background:rgba(255,255,255,.02);border:1px dashed rgba(199,162,75,.35);text-align:center}
.dec-robust{font-size:.84rem;line-height:1.6;margin:8px 0;padding:8px 12px;border-radius:8px}
.dec-robust.ok{color:var(--sage);background:rgba(255,255,255,.02)}
.dec-robust.warn{color:#e0a23a;background:rgba(224,162,58,.08);border:1px solid rgba(224,162,58,.28)}
.dec-caveat{font-size:.8rem;line-height:1.65;color:var(--sage);font-style:italic;margin:10px 0 0;
  border-inline-start:2px solid rgba(199,162,75,.4);padding-inline-start:12px}

/* frame */
.dec-frame{display:grid;gap:14px;margin:6px 0}
.dec-frame-q label{display:block;margin-bottom:6px}
.dec-frame-q label b{color:var(--ivory);font-size:.92rem}
.dec-frame-q label span{display:block;font-size:.78rem;color:var(--sage);margin-top:2px;line-height:1.5}
.dec-ta{font:inherit;width:100%;color:var(--ivory);background:rgba(0,0,0,.18);border:1px solid var(--line);
  border-radius:10px;padding:10px 12px;resize:vertical;line-height:1.6}
.dec-ta:focus{outline:none;border-color:var(--gold-soft)}

/* decision quality */
.dec-dqscore{display:flex;align-items:center;gap:16px;margin:8px 0 16px}
.dec-dqbig{font-family:'Fraunces',Georgia,serif;font-size:2.6rem;line-height:1;font-variant-numeric:tabular-nums;
  width:110px;height:90px;display:flex;align-items:center;justify-content:center;border-radius:14px;border:1px solid var(--line)}
.dec-dqbig span{font-size:1rem;align-self:flex-start;margin-top:8px}
.dec-dqbig.good{color:var(--green-accent);background:rgba(63,143,107,.1)}
.dec-dqbig.mid{color:var(--gold-soft);background:rgba(199,162,75,.08)}
.dec-dqbig.low{color:var(--red);background:rgba(184,69,58,.08)}
.dec-dqbig-t b{color:var(--ivory);font-size:1rem}
.dec-dqbig-t p{margin:4px 0 0;font-size:.84rem;line-height:1.6;color:var(--ivory-dim)}
.dec-chain{display:flex;flex-wrap:wrap;align-items:stretch;gap:2px;margin:0 0 18px}
.dec-link{flex:1;min-width:88px;padding:10px 8px;border-radius:8px;text-align:center;
  background:linear-gradient(0deg,rgba(199,162,75,calc(var(--v)/380)),rgba(255,255,255,.02));border:1px solid var(--line)}
.dec-link.weak{border-color:var(--red);background:rgba(184,69,58,.1)}
.dec-link-n{display:block;font-size:1.1rem;font-weight:700;color:var(--ivory);font-variant-numeric:tabular-nums}
.dec-link-l{display:block;font-size:.7rem;color:var(--ivory-dim);line-height:1.25;margin-top:2px}
.dec-chain-j{align-self:center;color:var(--sage)}
.dec-dqsliders{display:grid;gap:14px}
.dec-dqrow{padding:10px 0;border-top:1px solid var(--line)}
.dec-dqhead{display:flex;justify-content:space-between;align-items:baseline}
.dec-dqhead b{color:var(--ivory);font-size:.9rem}
.dec-dqv{color:var(--gold-soft);font-weight:600;font-variant-numeric:tabular-nums}
.dec-dqq{font-size:.8rem;color:var(--sage);margin:3px 0 8px;line-height:1.5}
.dec-dqslider{width:100%;accent-color:var(--gold)}

/* pre-mortem */
.dec-pmlist{display:grid;gap:10px;margin:6px 0}
.dec-pm{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);border-inline-start-width:3px}
.dec-pm.hi{border-inline-start-color:var(--red)}
.dec-pm.mid{border-inline-start-color:#e0a23a}
.dec-pm.lo{border-inline-start-color:var(--sage)}
.dec-pm-top{display:flex;align-items:center;gap:8px}
.dec-pm-t{font-weight:600;font-size:.9rem;flex:1}
.dec-pm-score{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ivory);min-width:24px;text-align:center}
.dec-pm-ctrls{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0}
.dec-rater{display:flex;align-items:center;gap:8px}
.dec-rater>span{font-size:.76rem;color:var(--sage);min-width:64px}
.dec-dots{display:inline-flex;gap:3px}
.dec-dot{font:inherit;font-size:.75rem;width:24px;height:24px;border-radius:6px;cursor:pointer;
  border:1px solid var(--line);background:rgba(0,0,0,.16);color:var(--sage);font-variant-numeric:tabular-nums}
.dec-dot.on{background:var(--gold);border-color:var(--gold);color:#12241c;font-weight:700}
.dec-pm-fix{background:rgba(0,0,0,.18);border:1px solid var(--line);border-radius:8px;font-size:.84rem}

/* record */
.dec-record{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.dec-record h4{font-family:'Fraunces',Georgia,serif;font-size:1.15rem;color:var(--ivory);margin:0 0 12px}
.dec-rec-frame{font-size:.9rem;line-height:1.6;color:var(--ivory-dim);margin:0 0 12px}
.dec-rec-frame.muted{color:var(--sage);font-style:italic}
.dec-rec-line{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-top:1px solid var(--line);font-size:.88rem}
.dec-rec-line span{color:var(--ivory-dim)}
.dec-rec-line b{color:var(--ivory);font-variant-numeric:tabular-nums;text-align:end}
.dec-rec-risks{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.dec-rec-risks>span{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--sage)}
.dec-rec-risks ul{margin:8px 0 0;padding-inline-start:18px}
.dec-rec-risks li{font-size:.86rem;line-height:1.6;color:var(--ivory-dim);margin:4px 0}
.dec-rec-risks em{color:var(--gold-soft);font-style:normal}
.dec-rec-note{font-size:.78rem;color:var(--sage);margin:14px 0 0;line-height:1.6}

html[lang="ar"] .dec-app,html[lang="ar"] .dec-head{font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',system-ui,sans-serif}
html[lang="ar"] .dec-head .h-md{font-family:'Amiri',serif}
@media (max-width:640px){
  .dec-metrics{grid-template-columns:1fr 1fr}
  .dec-evpi{flex-direction:column;align-items:flex-start;gap:8px}
  .dec-chain{gap:4px}
  .dec-link{min-width:calc(33% - 6px)}
}

/* ============================================================================
   The CEO Academy (#academy / #academyApp)
   ========================================================================== */
.ac-app{margin-top:6px}
.ac-body{padding-top:4px}
.ac-intro{font-size:.92rem;line-height:1.7;color:var(--ivory-dim);margin:6px 0 16px;max-width:82ch}
.ac-loading{color:var(--sage);font-style:italic;padding:14px 0}

/* streak */
.ac-streak{display:flex;align-items:center;gap:14px;margin:4px 0 18px;padding:14px 18px;border-radius:14px;
  background:linear-gradient(120deg,rgba(199,162,75,.13),rgba(199,162,75,.03));border:1px solid rgba(199,162,75,.3)}
.ac-streak-n{font-family:'Fraunces',Georgia,serif;font-size:2.4rem;line-height:1;color:var(--gold-soft);font-variant-numeric:tabular-nums;min-width:52px;text-align:center}
.ac-streak-t b{display:block;color:var(--ivory);font-size:.95rem}
.ac-streak-t span{font-size:.8rem;color:var(--sage)}
.ac-dots{display:flex;gap:4px;margin-inline-start:auto;flex-wrap:wrap;max-width:220px}
.ac-dots i{width:11px;height:11px;border-radius:3px;background:rgba(255,255,255,.08);display:inline-block}
.ac-dots i.on{background:var(--gold)}
.ac-dots i.today{outline:2px solid var(--gold-soft);outline-offset:1px}

/* today cards */
.ac-today-card{padding:18px 20px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02);margin:0 0 14px}
.ac-tk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}
.ac-today-lab{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sage)}
.ac-cap-chip{font-size:.72rem;padding:3px 10px;border-radius:999px;background:rgba(63,143,107,.16);color:var(--green-accent);border:1px solid rgba(63,143,107,.3)}
.ac-drill-chip{font-size:.72rem;padding:3px 10px;border-radius:999px;background:rgba(199,162,75,.14);color:var(--gold-soft);border:1px solid rgba(199,162,75,.34)}
.ac-lesson h4{font-family:'Fraunces',Georgia,serif;font-size:1.3rem;line-height:1.15;color:var(--ivory);margin:2px 0 10px}
.ac-idea{font-size:.96rem;line-height:1.75;color:var(--ivory-dim);margin:0 0 12px}
.ac-pharma{font-size:.88rem;line-height:1.7;color:var(--ivory-dim);margin:0 0 10px;padding:10px 14px;border-radius:10px;background:rgba(63,143,107,.07);border-inline-start:2px solid rgba(63,143,107,.4)}
.ac-pharma-k{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--green-accent);margin-bottom:2px}
.ac-source{font-size:.8rem;color:var(--sage);margin:0}

/* drill */
.ac-drill-q{font-size:1rem;line-height:1.7;color:var(--ivory);margin:2px 0 14px}
.ac-choices{display:grid;gap:8px}
.ac-choice{font:inherit;text-align:start;display:flex;gap:10px;align-items:flex-start;cursor:pointer;
  padding:12px 14px;border-radius:11px;border:1px solid var(--line);background:rgba(0,0,0,.14);color:var(--ivory-dim);
  transition:background .15s,border-color .15s,color .15s;line-height:1.5}
.ac-choice:hover:not(:disabled){background:rgba(199,162,75,.08);border-color:rgba(199,162,75,.4);color:var(--ivory)}
.ac-choice-k{flex:none;width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.06);display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:var(--gold-soft)}
.ac-choice.right{border-color:var(--green-accent);background:rgba(63,143,107,.14);color:var(--ivory)}
.ac-choice.right .ac-choice-k{background:var(--green-accent);color:#0f2a20}
.ac-choice.wrong{border-color:var(--red);background:rgba(184,69,58,.12)}
.ac-choice.wrong .ac-choice-k{background:var(--red);color:#fff}
.ac-choice.dim{opacity:.5}
.ac-choice:disabled{cursor:default}
.ac-drill-why{margin:12px 0 0;padding:13px 16px;border-radius:11px;font-size:.9rem;line-height:1.7;color:var(--ivory-dim);
  background:rgba(184,69,58,.08);border:1px solid rgba(184,69,58,.26)}
.ac-drill-why.ok{background:rgba(63,143,107,.09);border-color:rgba(63,143,107,.32)}
.ac-drill-why b{color:var(--ivory)}
.ac-drill-teaches{margin:8px 0 0;font-size:.82rem;color:var(--gold-soft);font-style:italic}
.ac-drill-link{display:inline-block;margin-top:10px;font-size:.84rem;color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.ac-drilllist{display:grid;gap:14px}

/* today events */
.ac-today-events{padding:14px 18px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.ac-more{font:inherit;font-size:.85rem;cursor:pointer;background:none;border:0;color:var(--gold);padding:8px 0 2px;text-decoration:underline;text-underline-offset:3px}

/* curriculum tracks */
.ac-tracks{display:grid;gap:8px}
.ac-track{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);overflow:hidden}
.ac-track.open{border-color:rgba(199,162,75,.4)}
.ac-track-h{font:inherit;width:100%;display:flex;align-items:center;gap:12px;cursor:pointer;padding:14px 16px;background:none;border:0;text-align:start}
.ac-track-n{flex:none;width:28px;height:28px;border-radius:8px;background:rgba(199,162,75,.14);color:var(--gold-soft);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-variant-numeric:tabular-nums}
.ac-track-t{flex:1;color:var(--ivory);font-size:.98rem;font-weight:600}
.ac-track-c{font-size:.76rem;color:var(--sage);white-space:nowrap}
.ac-track-x{font-size:1.3rem;color:var(--gold);width:20px;text-align:center}
.ac-track-body{padding:0 16px 8px;display:grid;gap:12px}
.ac-lz{padding:12px 0;border-top:1px solid var(--line)}
.ac-lz h5{font-family:'Fraunces',Georgia,serif;font-size:1.02rem;color:var(--ivory);margin:0 0 6px}
.ac-lz p{font-size:.88rem;line-height:1.7;color:var(--ivory-dim);margin:0 0 6px}

/* conferences */
.ac-must-strip{margin:0 0 16px}
.ac-must-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.ac-must-chip{font-size:.82rem;padding:7px 13px;border-radius:999px;border:1px solid rgba(199,162,75,.4);background:rgba(199,162,75,.08);color:var(--gold-soft);text-decoration:none;white-space:nowrap}
.ac-must-chip:hover{background:rgba(199,162,75,.16)}
.ac-conflist{display:grid;gap:8px}
.ac-conf{display:grid;grid-template-columns:120px 1fr auto auto;gap:12px;align-items:center;text-decoration:none;
  padding:12px 15px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);transition:background .15s,border-color .15s}
.ac-conf:hover{background:rgba(199,162,75,.06);border-color:rgba(199,162,75,.34)}
.ac-conf.soon{border-inline-start:3px solid var(--gold)}
.ac-conf.tier-must{background:rgba(199,162,75,.05)}
.ac-conf-when{font-size:.82rem;color:var(--gold-soft);font-variant-numeric:tabular-nums;font-weight:600}
.ac-conf-main b{color:var(--ivory);font-size:.96rem;display:block}
.ac-conf-sub{font-size:.76rem;color:var(--sage);display:block;margin-top:1px}
.ac-conf-why{font-size:.8rem;color:var(--ivory-dim);display:block;margin-top:4px;line-height:1.5}
.ac-conf-tags{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.ac-conf-scope{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--sage)}
.ac-conf-must{font-size:.7rem;color:var(--gold-soft);white-space:nowrap}
.ac-conf-go{color:var(--gold);font-size:1rem}
.ac-conf-note{font-size:.78rem;color:var(--sage);margin:14px 0 0;line-height:1.6}

/* library */
.ac-lib-filters{margin:0 0 16px;display:grid;gap:8px}
.ac-lib-row{display:flex;flex-wrap:wrap;gap:6px}
.ac-lib-caps{padding-top:4px;border-top:1px solid var(--line)}
.ac-lib-chip{font:inherit;font-size:.8rem;cursor:pointer;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.02);color:var(--ivory-dim)}
.ac-lib-chip:hover{background:rgba(199,162,75,.08);color:var(--ivory)}
.ac-lib-chip.on{background:var(--gold);border-color:var(--gold);color:#12241c;font-weight:600}
.ac-reslist{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.ac-res{position:relative;display:block;text-decoration:none;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);transition:background .15s,border-color .15s}
.ac-res:hover{background:rgba(199,162,75,.06);border-color:rgba(199,162,75,.34)}
.ac-res-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.ac-res-kind{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--ivory-dim)}
.ac-res-kind.k-course,.ac-res-kind.k-cert{background:rgba(63,143,107,.16);color:var(--green-accent)}
.ac-res-kind.k-book{background:rgba(199,162,75,.14);color:var(--gold-soft)}
.ac-res-access{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--sage)}
.ac-res-access.free{color:var(--green-accent)}
.ac-res h5{font-family:'Fraunces',Georgia,serif;font-size:1rem;color:var(--ivory);margin:0 0 2px;line-height:1.2;padding-inline-end:16px}
.ac-res-prov{font-size:.76rem;color:var(--sage);display:block;margin-bottom:8px}
.ac-res-what{font-size:.84rem;line-height:1.6;color:var(--ivory-dim);margin:0 0 6px}
.ac-res-why{font-size:.8rem;line-height:1.6;color:var(--gold-soft);margin:0;font-style:italic}

html[lang="ar"] .ac-app,html[lang="ar"] .ac-head{font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',system-ui,sans-serif}
html[lang="ar"] .ac-lesson h4,html[lang="ar"] .ac-lz h5,html[lang="ar"] .ac-res h5{font-family:'Amiri',serif}
@media (max-width:680px){
  .ac-conf{grid-template-columns:1fr auto}
  .ac-conf-when{grid-column:1/-1}
  .ac-conf-tags{flex-direction:row;gap:8px}
  .ac-streak-n{font-size:2rem}
}
/* AUPAM's own events lead the radar and are visually distinct */
.ac-own-block{margin:0 0 20px}
.ac-ind-lab{display:block;margin:22px 0 8px}
.ac-conf.ac-own,.ac-conf.ac-union{border-color:rgba(199,162,75,.5);
  background:linear-gradient(120deg,rgba(199,162,75,.12),rgba(199,162,75,.03))}
.ac-conf.ac-own:hover,.ac-conf.ac-union:hover{background:linear-gradient(120deg,rgba(199,162,75,.18),rgba(199,162,75,.05))}
.ac-own-badge{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;
  background:var(--gold);color:#12241c;padding:3px 9px;border-radius:999px;white-space:nowrap}
/* Boardroom → jump straight to the two CEO studios */
.br-jump{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:0 0 26px}
.br-jump-b{display:block;text-decoration:none;padding:16px 18px;border-radius:14px;
  border:1px solid rgba(199,162,75,.34);background:linear-gradient(120deg,rgba(199,162,75,.12),rgba(199,162,75,.03));
  transition:background .16s,border-color .16s,transform .16s}
.br-jump-b:hover{background:linear-gradient(120deg,rgba(199,162,75,.2),rgba(199,162,75,.05));
  border-color:rgba(199,162,75,.6);transform:translateY(-2px)}
.br-jump-b>span[aria-hidden]{font-size:1.4rem;display:block;margin-bottom:6px}
.br-jump-b b{display:block;font-family:'Fraunces',Georgia,serif;font-size:1.12rem;color:var(--ivory);margin-bottom:3px}
.br-jump-b>span:last-child{display:block;font-size:.84rem;color:var(--ivory-dim);line-height:1.5}
html[lang="ar"] .br-jump-b b{font-family:'Amiri',serif}
/* Boardroom nav: card-style dropdown for the CEO studios */
.nav-menu.nav-cards{min-width:322px;gap:4px;padding:10px}
.nav-menu.nav-cards a.nav-card{display:flex;align-items:flex-start;gap:11px;white-space:normal;padding:11px 12px;border-radius:10px}
.nav-card-ic{flex:none;width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;
  font-size:1rem;background:rgba(201,162,75,.14);border:1px solid rgba(201,162,75,.3);color:var(--gold-soft)}
.nav-card-tx{display:block;line-height:1.35}
.nav-card-tx b{display:block;font-size:13.5px;color:var(--ivory);font-weight:600}
.nav-card-tx>span{display:block;font-size:11.8px;color:var(--sage);margin-top:2px}
.nav-menu.nav-cards a.nav-card:hover{background:rgba(201,162,75,.12)}
.nav-menu.nav-cards a.nav-card:hover .nav-card-ic{background:var(--gold);color:#12241c;border-color:var(--gold)}
.nav-menu.nav-cards a.nav-card:hover .nav-card-tx>span{color:var(--ivory-dim)}
@media (max-width:900px){
  .nav-menu.nav-cards{min-width:0;padding:6px 0 0}
  .nav-menu.nav-cards a.nav-card{padding:9px 0 9px 14px}
  [dir="rtl"] .nav-menu.nav-cards a.nav-card{padding:9px 14px 9px 0}
}

/* ============================================================================
   The Decision Engine — cinematic explainer scenes (dec-in-*)
   ========================================================================== */
.dec-in-c{width:100%;display:grid;place-items:center;text-align:center;gap:14px}
@keyframes decIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.playing .dec-in-c [style*="--d"]{opacity:0;animation:decIn .5s ease forwards;animation-delay:var(--d)}

/* hook: decision vs outcome */
.dec-in-hook{grid-auto-flow:column;align-items:center;gap:22px}
.dec-in-quad{width:min(280px,40vw);padding:20px 18px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
.dec-in-quad.good{border-color:rgba(63,143,107,.5);background:rgba(63,143,107,.1)}
.dec-in-quad.bad{border-color:rgba(184,69,58,.45);background:rgba(184,69,58,.08)}
.dec-in-qk{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-soft)}
.dec-in-quad b{display:block;font-family:var(--serif);font-size:26px;color:var(--ivory);margin:6px 0 4px}
.dec-in-quad i{font-size:13px;color:var(--sage);font-style:italic}
.dec-in-vs{font-size:15px;color:var(--sage);text-transform:uppercase;letter-spacing:.14em}

/* decision matrix */
.dec-in-matrix{gap:6px;width:min(600px,94%)}
.dec-in-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:6px;align-items:center;width:100%;transition:opacity .4s,transform .4s}
.dec-in-row.head{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sage)}
.dec-in-row.head span{text-align:center}
.dec-in-opt{text-align:start;font-size:15px;color:var(--ivory);font-weight:600}
.dec-in-cell{padding:11px 0;border-radius:9px;background:rgba(0,0,0,.2);border:1px solid var(--line);font-variant-numeric:tabular-nums;font-size:16px;color:var(--ivory)}
.dec-in-cell.neg{color:#e88a80}
.dec-in-row.win{transform:scale(1.02)}
.dec-in-row.win .dec-in-cell{border-color:var(--gold);background:rgba(199,162,75,.14)}
.dec-in-row.dim{opacity:.32}

/* risk slider + flip */
.dec-in-risk{gap:16px;width:min(560px,94%)}
.dec-in-slider{display:flex;align-items:center;gap:12px;width:100%}
.dec-in-slab{font-size:13px;color:var(--ivory-dim);white-space:nowrap}
.dec-in-track{position:relative;flex:1;height:6px;border-radius:999px;background:linear-gradient(90deg,#b8453a,#c9a24b,#3f8f6b)}
.dec-in-knob{position:absolute;top:50%;width:20px;height:20px;border-radius:50%;background:var(--ivory);border:3px solid var(--gold);transform:translate(-50%,-50%);transition:left .9s cubic-bezier(.7,0,.3,1)}
.dec-in-knob.high{left:82%}
.dec-in-knob.low{left:22%}
.dec-in-sval{font-size:13px;color:var(--gold-soft);white-space:nowrap;font-weight:600}
.dec-in-pick{display:flex;align-items:center;gap:12px}
.dec-in-pick b{font-family:var(--serif);font-size:30px;color:var(--ivory)}
.dec-in-tag{font-size:12px;text-transform:uppercase;letter-spacing:.05em;padding:4px 12px;border-radius:999px;background:var(--gold);color:#12241c;font-weight:700}
.dec-in-tag.flip{animation:decTagPop .5s ease .3s both}
@keyframes decTagPop{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
.dec-in-ce{display:flex;align-items:center;gap:12px;width:100%;font-size:13px;color:var(--sage)}
.dec-in-ce b{font-variant-numeric:tabular-nums;font-size:20px;color:var(--ivory)}
.dec-in-meter{flex:1;height:9px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.dec-in-meter-fill{display:block;height:100%;border-radius:999px;transition:width .8s ease}
.dec-in-meter-fill.g{background:var(--gold)}
.dec-in-meter-fill.a{background:#3f8f6b}
.dec-in-strike{font-size:14px;color:#e88a80;text-decoration:line-through;opacity:.75}

/* EVPI */
.dec-in-evpi{grid-auto-flow:column;align-items:center;gap:22px}
.dec-in-big{font-family:var(--serif);font-size:88px;line-height:1;color:#8fe0b3;font-variant-numeric:tabular-nums}
.dec-in-evt{text-align:start;max-width:420px}
.dec-in-evt b{display:block;font-size:19px;color:var(--ivory);margin-bottom:6px}
.dec-in-evt span{font-size:14px;color:var(--ivory-dim);line-height:1.6}

/* decision-quality chain */
.dec-in-dq{gap:10px}
.dec-in-dq{grid-auto-flow:row}
.dec-in-dq{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:3px;width:min(640px,96%)}
.dec-in-link{flex:1;min-width:84px;padding:12px 6px;border-radius:9px;border:1px solid var(--line);
  background:linear-gradient(0deg,rgba(199,162,75,calc(var(--v)/360)),rgba(255,255,255,.02))}
.dec-in-link.weak{border-color:#c9524b;background:rgba(184,69,58,.12)}
.dec-in-ln{display:block;font-size:19px;font-weight:700;color:var(--ivory);font-variant-numeric:tabular-nums}
.dec-in-ll{display:block;font-size:11px;color:var(--ivory-dim);margin-top:2px}
.dec-in-jn{align-self:center;color:var(--sage)}
.dec-in-dqcap{flex-basis:100%;font-size:14px;color:var(--ivory-dim);margin-top:8px}
.dec-in-dqcap b{color:#e88a80}

/* academy */
.dec-in-acad{gap:16px}
.dec-in-streak{display:inline-flex;align-items:baseline;gap:8px}
.dec-in-streak b{font-family:var(--serif);font-size:44px;color:var(--gold-soft);font-variant-numeric:tabular-nums}
.dec-in-streak span{font-size:13px;color:var(--sage)}
.dec-in-ac-cards{display:grid;gap:10px;width:min(560px,94%)}
.dec-in-ac{padding:13px 16px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.02);text-align:start}
.dec-in-ac-k{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-soft)}
.dec-in-ac b{display:block;font-size:15px;color:var(--ivory);margin-top:4px;line-height:1.4;font-weight:500}

/* cta */
.dec-in-cta{gap:8px}
.dec-in-cta>b{font-family:var(--serif);font-size:28px;color:var(--ivory);text-wrap:balance}
.dec-in-cta>span{font-size:15px;color:var(--ivory-dim);max-width:520px;line-height:1.6}
.dec-in-cta-slot{margin-top:10px}

/* ---- worked-case player (decision-case.js) — reuses .dec-in-* + these ---- */
.dc-cta-slot{margin-top:10px}
.dc-doors{gap:20px}
.dc-route{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;opacity:0}
.playing .dc-doors [style*="--d"]{opacity:0;animation:decIn .5s ease forwards var(--d)}
.dc-route b{font-family:var(--serif);font-size:30px;color:var(--ivory)}
.dc-route .dc-arrow{color:var(--gold);font-size:26px}
.dc-route i{flex-basis:100%;text-align:center;font-style:normal;font-size:13px;color:var(--ivory-dim);letter-spacing:.02em}
.dc-door-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.dc-door{min-width:150px;padding:16px 18px;border:1px solid rgba(199,162,75,.28);border-radius:14px;background:rgba(255,255,255,.03);text-align:center}
.dc-door-k{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.dc-door b{font-family:var(--serif);font-size:19px;color:var(--ivory)}
.dc-states{gap:18px}
.dc-state-row{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;justify-content:center}
.playing .dc-states [style*="--d"]{opacity:0;animation:decIn .5s ease forwards var(--d)}
.dc-state{min-width:140px;padding:14px 16px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.03);text-align:center;display:flex;flex-direction:column;gap:8px}
.dc-state b{font-size:15px;color:var(--ivory);font-weight:600}
.dc-state-p{font-family:var(--serif);font-size:28px;color:var(--gold)}
.dc-plus{align-self:center;font-size:22px;color:var(--ivory-dim)}
.dc-sum-badge{font-family:var(--serif);font-size:24px;color:var(--ivory)}
.dc-sum-badge span{font-family:var(--sans);font-size:13px;color:#7fb98a;margin-inline-start:8px}
.dc-hasemv .dec-in-row{grid-template-columns:1.5fr repeat(3,1fr) .8fr}
.dc-emv{font-family:var(--serif);font-size:20px;color:var(--gold);text-align:center;opacity:0}
.playing .dc-hasemv .dc-emv{animation:decIn .5s ease forwards var(--d)}
.dc-emv-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);text-align:center}
.dc-risk2{gap:12px;width:min(560px,86vw)}
.dc-riskrow{display:grid;grid-template-columns:1.6fr 1fr 1.2fr;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);opacity:0}
.playing .dc-risk2 [style*="--d"]{opacity:0;animation:decIn .5s ease forwards var(--d)}
.dc-riskname{font-size:15px;color:var(--ivory)}
.dc-riskcell{display:flex;flex-direction:column;gap:2px;text-align:center}
.dc-riskcell i{font-style:normal;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ivory-dim)}
.dc-riskcell b{font-family:var(--serif);font-size:20px}
.dc-riskcell b.neg,.dc-riskcell b.warn{color:#e88a80}
.dc-riskcell b.pos{color:#7fb98a}
.dc-robust{gap:14px;width:min(560px,86vw)}
.dc-sens{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:14px;opacity:0}
.playing .dc-robust [style*="--d"]{opacity:0;animation:decIn .5s ease forwards var(--d)}
.dc-sens-l{font-size:14px;color:var(--ivory)}
.dc-sens-b{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--gold),rgba(199,162,75,.25));width:calc(var(--v)*1%);justify-self:start;min-width:24px}
.dc-robust-cap{font-size:14px;color:var(--ivory-dim);line-height:1.6;text-align:center;max-width:520px;margin-top:6px}
html[lang="ar"] .dc-route b,html[lang="ar"] .dc-door b,html[lang="ar"] .dc-state-p,html[lang="ar"] .dc-sum-badge,html[lang="ar"] .dc-emv,html[lang="ar"] .dc-riskcell b{font-family:'Amiri',serif}
html[lang="ar"] #dcOv,html[lang="ar"] #dcOv .dec-in-c{font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',system-ui,sans-serif}

html[lang="ar"] #diOv,html[lang="ar"] #dcOv,html[lang="ar"] #friOv,html[lang="ar"] #mriOv,html[lang="ar"] #pibOv,html[lang="ar"] #ledOv,html[lang="ar"] #tndOv,html[lang="ar"] #bsiOv,html[lang="ar"] .dec-in-c{font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',system-ui,sans-serif}
html[lang="ar"] .dec-in-quad b,html[lang="ar"] .dec-in-pick b,html[lang="ar"] .dec-in-big,html[lang="ar"] .dec-in-cta>b,html[lang="ar"] .dec-in-streak b{font-family:'Amiri',serif}
@media (max-width:640px){
  .dec-in-hook,.dec-in-evpi{grid-auto-flow:row}
  .dec-in-big{font-size:64px}
  .dec-in-quad{width:min(320px,80vw)}
}

/* ================= First-Filer Window Radar (radar.js, fr-*) ================= */
.fr-app{max-width:1080px;margin:0 auto}
.fr-intro{text-align:center;max-width:74ch;margin:0 auto 18px}
.fr-intro p{font-size:.95rem;line-height:1.75;color:var(--sage)}
.fr-kpis{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:18px 0}
.fr-kpi{min-width:170px;padding:14px 20px;border:1px solid rgba(199,162,75,.25);border-radius:12px;background:rgba(255,255,255,.02);text-align:center}
.fr-kpi b{display:block;font-family:var(--serif);font-size:1.9rem;color:var(--gold)}
.fr-kpi span{font-size:.78rem;color:var(--sage);line-height:1.4;display:block;max-width:200px}
.fr-controls{margin:14px 0 16px;display:flex;flex-direction:column;gap:10px}
.fr-q{width:100%;max-width:460px;margin:0 auto;display:block;padding:10px 16px;border-radius:100px;
  border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:var(--ivory);font-size:.9rem}
.fr-q:focus{outline:none;border-color:var(--gold)}
.fr-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center}
.fr-lab{font-size:.78rem;color:var(--sage);letter-spacing:.04em}
.fr-chip{padding:6px 14px;border-radius:100px;border:1px solid rgba(255,255,255,.14);background:transparent;
  color:var(--sage);font-size:.8rem;cursor:pointer;transition:all .15s}
.fr-chip:hover{border-color:rgba(199,162,75,.5);color:var(--ivory)}
.fr-chip.on{border-color:var(--gold);background:rgba(199,162,75,.14);color:var(--gold-soft)}
.fr-tog{font-size:.8rem;color:var(--sage);display:flex;align-items:center;gap:6px;cursor:pointer;margin-inline-start:8px}
.fr-twrap{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.015)}
.fr-table{width:100%;border-collapse:collapse;min-width:640px}
.fr-table th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-soft);
  text-align:start;padding:12px 14px;border-bottom:1px solid rgba(199,162,75,.25)}
.fr-table td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06);vertical-align:top}
.fr-table tr:last-child td{border-bottom:none}
.fr-mol{min-width:250px}
.fr-mol b{color:var(--ivory);font-size:.92rem}
.fr-form{display:block;font-size:.76rem;color:var(--sage);margin-top:2px}
.fr-cliff{display:block;font-size:.78rem;color:var(--ivory-dim,#b7c3b3);margin-top:5px}
.fr-cliff b{color:var(--gold-soft)}
.fr-badges{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.fr-b{font-size:.68rem;font-style:normal;padding:2px 9px;border-radius:100px;border:1px solid transparent;text-decoration:none}
.fr-b.nogx{color:#8fd19a;border-color:rgba(127,185,138,.4);background:rgba(127,185,138,.08)}
.fr-b.gx{color:var(--sage);border-color:rgba(255,255,255,.14)}
.fr-b.reg{color:var(--gold-soft);border-color:rgba(199,162,75,.4);background:rgba(199,162,75,.08)}
.fr-b.reg:hover{background:rgba(199,162,75,.18)}
.fr-band{min-width:132px}
.fr-band i{display:block;font-style:normal;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:3px}
.fr-band span{font-size:.8rem;color:var(--ivory)}
.fr-band.open i{color:#8fd19a}
.fr-band.tight i{color:#e0a23a}
.fr-band.tight{background:rgba(224,162,58,.05)}
.fr-band.missed i{color:#e88a80}
.fr-band.missed span{color:var(--sage)}
.fr-more{display:block;margin:16px auto 0;padding:9px 22px;border-radius:100px;border:1px solid rgba(199,162,75,.4);
  background:transparent;color:var(--gold-soft);font-size:.84rem;cursor:pointer}
.fr-more:hover{background:rgba(199,162,75,.12)}
.fr-disc{margin:18px 0 6px;padding:12px 16px;border-radius:10px;font-size:.8rem;line-height:1.7;color:var(--sage);
  border:1px solid rgba(224,162,58,.25);background:rgba(224,162,58,.05)}
.fr-disc b{color:#e0a23a}

/* ---- radar intro scenes (fri-*) ---- */
.fri-hook{gap:14px}
.playing .fri-hook [style*="--d"],.playing .fri-cliff [style*="--d"],.playing .fri-tl [style*="--d"],
.playing .fri-band [style*="--d"],.playing .fri-states [style*="--d"],.playing .fri-join [style*="--d"],
.playing .fri-honest [style*="--d"]{opacity:0;animation:decIn .5s ease forwards var(--d)}
.fri-big{font-family:var(--serif);font-size:56px;color:var(--ivory);font-weight:600}
.fri-sub{font-size:19px;color:var(--ivory-dim)}
.fri-door{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:8px}
.fri-door i{display:block;width:120px;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--gold),rgba(199,162,75,.15))}
.fri-door span{font-size:14px;color:var(--gold-soft)}
.fri-cliff{gap:18px}
.fri-stat{display:flex;align-items:center;gap:18px;padding:14px 22px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.03);min-width:min(480px,80vw)}
.fri-stat b{font-family:var(--serif);font-size:44px;color:var(--ivory);min-width:96px;text-align:center}
.fri-stat.gold{border-color:rgba(199,162,75,.45)}
.fri-stat.gold b{color:var(--gold)}
.fri-stat span{font-size:15px;color:var(--ivory-dim);line-height:1.5}
.fri-src{font-size:13px;letter-spacing:.06em;color:var(--sage)}
.fri-tl{gap:22px;width:min(560px,86vw)}
.fri-tl-bar{position:relative;height:14px;border-radius:7px;background:rgba(255,255,255,.08);width:100%}
.fri-tl-rev{position:absolute;inset-inline-start:22%;width:56%;top:0;bottom:0;border-radius:7px;background:linear-gradient(90deg,rgba(224,162,58,.7),rgba(224,162,58,.25))}
.fri-tl-cliff{position:absolute;inset-inline-end:-6px;top:-30px;font-size:13px;color:#e88a80}
.fri-tl-cap{font-size:16px;color:var(--ivory-dim);line-height:1.65;text-align:center}
.fri-band{gap:26px;width:min(600px,88vw)}
.fri-band-track{position:relative;height:12px;border-radius:6px;width:100%;
  background:linear-gradient(90deg,#7fb98a 0 34%,#e0a23a 34% 72%,#e88a80 72% 100%)}
.fri-bp{position:absolute;top:20px;max-width:250px;font-size:13px;color:var(--ivory-dim);line-height:1.45}
.fri-bp i{display:block;font-style:normal;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}
.fri-bp.safe{inset-inline-start:20%}.fri-bp.safe i{color:#8fd19a}
.fri-bp.last{inset-inline-start:62%}.fri-bp.last i{color:#e0a23a}
.fri-band-cap{font-size:14px;color:var(--sage);text-align:center;margin-top:64px}
.fri-states{gap:14px}
.fri-st{display:flex;align-items:center;gap:16px;padding:13px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);min-width:min(460px,80vw)}
.fri-st i{font-style:normal;font-size:13px;letter-spacing:.1em;min-width:150px}
.fri-st.open i{color:#8fd19a}.fri-st.tight i{color:#e0a23a}.fri-st.missed i{color:#e88a80}
.fri-st span{font-size:15px;color:var(--ivory-dim)}
.fri-join{gap:18px}
.fri-jrow{display:flex;align-items:center;gap:18px;padding:14px 22px;border:1px solid rgba(199,162,75,.3);border-radius:14px;background:rgba(199,162,75,.06);min-width:min(520px,84vw)}
.fri-jrow b{font-family:var(--serif);font-size:42px;color:var(--gold);min-width:70px;text-align:center}
.fri-jrow span{font-size:15px;color:var(--ivory);line-height:1.5}
.fri-honest{gap:16px;max-width:560px}
.fri-hline{font-size:17px;color:var(--ivory);line-height:1.6;text-align:center}
.fri-hline.gold{font-family:var(--serif);font-size:21px;color:var(--gold-soft)}
.fri-cta-slot{margin-top:10px}

/* ---- radar: CEO layer ---- */
.fr-ceo{margin:16px 0 6px;padding:18px 22px;border:1px solid rgba(199,162,75,.3);border-radius:14px;background:rgba(199,162,75,.05)}
.fr-ceo-q b{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--ivory)}
.fr-ceo-q span{display:block;font-size:.82rem;color:var(--sage);margin-top:3px}
.fr-ceo-in{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px}
.fr-ceo-in label{display:flex;flex-direction:column;gap:5px;font-size:.78rem;color:var(--sage);flex:1;min-width:210px}
.fr-ceo-in input{padding:9px 13px;border-radius:9px;border:1px solid rgba(255,255,255,.16);
  background:rgba(0,0,0,.2);color:var(--ivory);font-size:1rem;font-family:var(--serif)}
.fr-ceo-in input:focus{outline:none;border-color:var(--gold)}
.fr-ceo-out{margin-top:14px;padding-top:13px;border-top:1px solid rgba(199,162,75,.22)}
.fr-ceo-out span{font-size:.85rem;color:var(--sage)}
.fr-ceo-out b{font-family:var(--serif);font-size:1.7rem;color:var(--gold);margin-inline-start:10px}
.fr-ceo-out i{display:block;font-style:normal;font-size:.75rem;color:var(--sage);margin-top:6px;line-height:1.6;opacity:.85}
.fr-kpi.urgent b{color:#e0a23a}
.fr-kpi.gold{border-color:rgba(199,162,75,.5);background:rgba(199,162,75,.07)}
.fr-decide{display:block;font-size:.82rem;color:var(--ivory);margin-top:5px}
.fr-decide b{color:#e0a23a;font-family:var(--serif);font-size:.95rem}
.fr-ev{background:transparent;border:1px solid rgba(255,255,255,.16);color:var(--sage);
  font-size:.68rem;padding:2px 9px;border-radius:100px;cursor:pointer}
.fr-ev:hover{border-color:rgba(199,162,75,.5);color:var(--gold-soft)}
.fr-eb{display:block;margin-top:8px;padding:9px 12px;border-radius:8px;background:rgba(0,0,0,.22);
  font-size:.75rem;color:var(--sage);line-height:1.65;border-inline-start:2px solid rgba(199,162,75,.4)}

/* radar intro v2: money scene */
.fri-sub.gold-em{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--gold-soft)}
.fri-money{gap:22px}
.playing .fri-money [style*="--d"]{opacity:0;animation:decIn .5s ease forwards var(--d)}
.fri-money-in{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.fri-mchip{padding:10px 18px;border:1px solid rgba(255,255,255,.15);border-radius:100px;background:rgba(255,255,255,.04);font-size:15px;color:var(--ivory)}
.fri-mx{color:var(--sage);font-size:18px}
.fri-money-out{text-align:center}
.fri-money-out b{display:block;font-family:var(--serif);font-size:64px;color:var(--gold)}
.fri-money-out span{font-size:15px;color:var(--ivory-dim)}
.fri-money-note{font-size:13px;color:var(--sage)}

/* ================= Margin-at-Risk Console (margin.js, mr-*) ================= */
.mr-app{max-width:1080px;margin:0 auto}
.mr-illus{text-align:center;font-size:.8rem;color:#e0a23a;margin:6px 0 2px;font-style:italic}
.mr-kpis{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:18px 0}
.fr-kpi.mr.small b{font-size:1.05rem;line-height:1.3}
.mr-custom{display:flex;align-items:center;gap:10px;justify-content:center;font-size:.82rem;color:var(--sage);margin:8px 0}
.mr-custom input{width:90px;padding:7px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:rgba(0,0,0,.2);color:var(--ivory);font-size:.95rem}
.mr-custom i{font-style:normal;font-size:.72rem;opacity:.8}
.mr-prod{min-width:290px}
.mr-in.name{width:100%;background:transparent;border:none;border-bottom:1px dashed rgba(255,255,255,.18);color:var(--ivory);font-size:.92rem;font-weight:600;padding:2px 0}
.mr-in.name:focus{outline:none;border-bottom-color:var(--gold)}
.mr-mini{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.mr-mini label{display:flex;flex-direction:column;gap:3px;font-size:.66rem;color:var(--sage);letter-spacing:.03em}
.mr-mini input,.mr-mini select{width:104px;padding:5px 8px;border-radius:7px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.18);color:var(--ivory);font-size:.8rem}
.mr-mini select{width:150px}
.mr-mini input:focus,.mr-mini select:focus{outline:none;border-color:var(--gold)}
.mr-peg{display:inline-block;margin-top:7px;font-size:.68rem;color:var(--sage);border:1px solid rgba(255,255,255,.14);border-radius:100px;padding:2px 9px}
.mr-res{min-width:120px;text-align:center}
.mr-res b{display:block;font-family:var(--serif);font-size:1.25rem;color:var(--ivory)}
.mr-res span{font-size:.68rem;color:var(--sage);line-height:1.35;display:block;max-width:130px;margin:2px auto 0}
.mr-res.ok b{color:#8fd19a}
.mr-res.warn b{color:#e0a23a}
.mr-res.bad b{color:#e88a80}
.mr-res.peg{font-size:.78rem;color:var(--sage);text-align:start;line-height:1.6}
.mr-x{width:34px}

/* ============= Proposal Interrogation Bench (bench.js, pb-*) ============= */
.pb-app{max-width:900px;margin:0 auto}
.pb-sheet{display:flex;flex-direction:column;gap:9px;margin:18px 0;padding:18px 20px;
  border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.02)}
.pb-row{display:grid;grid-template-columns:1.5fr .9fr 1fr .6fr;gap:10px;align-items:center}
.pb-row.hurdle{border-top:1px solid rgba(199,162,75,.25);padding-top:10px;margin-top:4px}
.pb-lab{font-size:.8rem;color:var(--sage)}
.pb-in,.pb-src,.pb-age{padding:8px 11px;border-radius:8px;border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.2);color:var(--ivory);font-size:.85rem}
.pb-in:focus,.pb-src:focus,.pb-age:focus{outline:none;border-color:var(--gold)}
.pb-verdict{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:16px 0 6px;
  padding:14px 18px;border:1px solid rgba(199,162,75,.3);border-radius:12px;background:rgba(199,162,75,.06)}
.pb-verdict span{font-size:.88rem;color:var(--sage)}
.pb-verdict b{font-family:var(--serif);font-size:1.6rem;color:var(--gold)}
.pb-verdict i{font-style:normal;font-size:.78rem;padding:3px 11px;border-radius:100px}
.pb-verdict i.ok{color:#8fd19a;border:1px solid rgba(127,185,138,.4)}
.pb-verdict i.bad{color:#e88a80;border:1px solid rgba(232,138,128,.4)}
.pb-empty{text-align:center;font-size:.85rem;color:var(--sage);padding:18px}
.pb-qs{list-style:none;counter-reset:pbq;margin:14px 0;display:flex;flex-direction:column;gap:12px;padding:0}
.pb-qs li{counter-increment:pbq;padding:13px 16px 13px 48px;position:relative;border-radius:12px;
  background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08)}
.pb-qs li::before{content:counter(pbq);position:absolute;inset-inline-start:14px;top:14px;
  width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  font-size:.75rem;color:var(--ink);background:var(--gold);font-weight:700}
html[dir="rtl"] .pb-qs li{padding:13px 48px 13px 16px}
.pb-qs li i{display:block;font-style:normal;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;margin-bottom:4px}
.pb-qs li.s3 i{color:#e88a80}.pb-qs li.s2 i{color:#e0a23a}.pb-qs li.s1 i{color:var(--sage)}
.pb-qs li.s3{border-color:rgba(232,138,128,.3)}
.pb-qs li b{display:block;font-size:.92rem;color:var(--ivory);line-height:1.55;font-weight:600}
.pb-qs li span{display:block;font-size:.72rem;color:var(--sage);margin-top:5px;font-family:ui-monospace,monospace}

/* ============= Decision Record & Review Ledger (ledger.js, lg-*) ============= */
.lg-app{max-width:860px;margin:0 auto}
.lg-topbtns{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin:6px 0 14px}
.lg-topbtns .fr-more{margin:0}
.lg-import{cursor:pointer}
.lg-form{display:flex;flex-direction:column;gap:10px;margin:14px 0;padding:18px 20px;
  border:1px solid rgba(199,162,75,.3);border-radius:14px;background:rgba(199,162,75,.05)}
.lg-lab{display:flex;flex-direction:column;gap:4px;font-size:.76rem;color:var(--sage)}
.lg-in{padding:9px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.2);color:var(--ivory);font-size:.88rem;font-family:inherit}
.lg-in:focus{outline:none;border-color:var(--gold)}
.lg-engine{margin-top:2px}
.lg-eng-ok{font-size:.8rem;color:#8fd19a}
.lg-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.lg-actions .fr-more{margin:0}
.lg-note{font-size:.7rem;color:var(--sage);line-height:1.5;max-width:420px}
.lg-list{display:flex;flex-direction:column;gap:12px;margin:14px 0}
.lg-card{border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.02);overflow:hidden}
.lg-card.due{border-color:rgba(224,162,58,.45)}
.lg-head{display:flex;flex-direction:column;gap:4px;width:100%;text-align:start;padding:13px 16px;
  background:transparent;border:none;cursor:pointer;color:inherit}
.lg-head b{font-size:.95rem;color:var(--ivory)}
.lg-meta{font-size:.72rem;color:var(--sage)}
.lg-meta i{font-style:normal}
.lg-ok{color:#8fd19a}.lg-bad{color:#e88a80;font-weight:700}.lg-due{color:#e0a23a}
.lg-detail{padding:4px 16px 16px;display:flex;flex-direction:column;gap:9px;border-top:1px solid rgba(255,255,255,.07)}
.lg-row{display:grid;grid-template-columns:150px 1fr;gap:12px;font-size:.82rem}
.lg-row i{font-style:normal;color:var(--sage);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding-top:2px}
.lg-row span{color:var(--ivory);line-height:1.6}
.lg-row.dissent{border-inline-start:2px solid rgba(232,138,128,.5);padding-inline-start:10px}
.lg-row.dissent i{color:#e88a80}
.lg-hash{font-family:ui-monospace,monospace;font-size:.66rem;word-break:break-all;color:var(--sage)}
.lg-amend{border-top:1px dashed rgba(255,255,255,.12);padding-top:8px;font-size:.8rem}
.lg-amend i{font-style:normal;color:var(--gold-soft);display:block;margin-bottom:3px;font-size:.72rem}
.lg-amend span{color:var(--ivory);line-height:1.55}
.lg-review{border-top:1px solid rgba(199,162,75,.25);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.lg-review b{font-size:.8rem;color:var(--gold-soft)}
.lg-outbtns{display:flex;gap:8px;flex-wrap:wrap}

/* ============ Tender & Localization Suite (tender.js, ts-*) ============ */
.ts-app{max-width:960px;margin:0 auto}
.ts-mod{margin:20px 0;padding:18px 20px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.02)}
.ts-mod h4{font-size:.95rem;color:var(--gold-soft);margin:0 0 12px;font-weight:600}
.ts-grid{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
.ts-lab{display:flex;flex-direction:column;gap:4px;font-size:.72rem;color:var(--sage)}
.ts-lab.chk{flex-direction:row;align-items:center;gap:8px;font-size:.8rem;padding-bottom:9px}
.ts-in{width:150px;padding:8px 11px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.2);color:var(--ivory);font-size:.9rem}
.ts-in.xs{width:82px}.ts-in.sm{width:120px}
.ts-in:focus{outline:none;border-color:var(--gold)}
.ts-out{display:flex;gap:14px;flex-wrap:wrap}
.ts-res{flex:1;min-width:250px;padding:13px 16px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.14)}
.ts-res i{display:block;font-style:normal;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--sage);margin-bottom:4px}
.ts-res b{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--ivory);line-height:1.35}
.ts-res.ok b{color:#8fd19a}.ts-res.bad b{color:#e88a80}
.ts-res span{display:block;font-size:.74rem;color:var(--sage);margin-top:5px;line-height:1.55}
.ts-ev{display:flex;flex-direction:column;gap:8px}
.ts-evrow{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:9px;border:1px solid rgba(255,255,255,.08)}
.ts-evrow.best{border-color:var(--gold);background:rgba(199,162,75,.08)}
.ts-evrow b{font-family:var(--serif);font-size:1.05rem;color:var(--ivory);min-width:90px}
.ts-evrow i{font-style:normal;font-size:.72rem;color:var(--gold)}
.ts-note{font-size:.72rem;color:var(--sage);line-height:1.6;margin-top:8px}
.ts-pen{display:flex;flex-direction:column;gap:7px}
.ts-penrow{display:flex;justify-content:space-between;gap:14px;padding:8px 12px;border-radius:9px;background:rgba(0,0,0,.14);font-size:.8rem;color:var(--ivory)}
.ts-penrow b{font-family:var(--serif);color:#e0a23a}
.ts-penrow.cap{border:1px solid rgba(232,138,128,.35)}
.ts-penrow.cap b{color:#e88a80}
.ts-pref{margin:20px 0;padding:16px 20px;border:1px solid rgba(199,162,75,.3);border-radius:14px;background:rgba(199,162,75,.05)}
.ts-pref>b{display:block;font-size:.92rem;color:var(--ivory);margin-bottom:10px}
.ts-prefrow{display:grid;grid-template-columns:110px 1fr;gap:12px;margin:8px 0;font-size:.78rem;line-height:1.6}
.ts-prefrow i{font-style:normal;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;align-self:start;padding:3px 10px;border-radius:100px;text-align:center}
.ts-prefrow.codified i{color:#8fd19a;border:1px solid rgba(127,185,138,.4)}
.ts-prefrow.practice i{color:#e0a23a;border:1px solid rgba(224,162,58,.4)}
.ts-prefrow span{color:var(--sage)}
.ts-preflab{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--ivory);margin-top:8px}
.ts-ctx{display:flex;gap:14px;flex-wrap:wrap;margin:14px 0}
.ts-card{flex:1;min-width:280px;padding:14px 17px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.02)}
.ts-card b{display:block;font-size:.85rem;color:var(--gold-soft);margin-bottom:5px}
.ts-card span{font-size:.75rem;color:var(--sage);line-height:1.65}

/* ============ BIOSIMILAR & BIOTECHNOLOGY STUDIO (#biosimilar) ============
   Reuses .dv-tabs/.dv-tab/.be-opt/.st-tour-btn/.fr-more. bs-* is its own. */
.bs-body{font-size:.9rem}
.bs-intro{margin-bottom:16px}
.bs-intro p{color:var(--ivory-dim);line-height:1.7;font-size:.92rem;margin:0 0 12px}
.bs-src{font-size:.72rem;color:var(--sage);line-height:1.6;margin:8px 0 0;font-style:italic}

/* status flags */
.bs-flag{display:inline-block;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:5px;vertical-align:middle;white-space:nowrap}
.bs-flag.ok{background:rgba(122,178,146,.18);color:#a9d3b6;border:1px solid rgba(122,178,146,.4)}
.bs-flag.warn{background:rgba(201,162,75,.16);color:var(--gold-soft);border:1px solid rgba(201,162,75,.45)}
.bs-flag.bad{background:rgba(196,110,92,.16);color:#e6a493;border:1px solid rgba(196,110,92,.45)}

/* input form */
.bs-form{display:flex;flex-direction:column;gap:12px;margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(15,42,32,.32)}
.bs-field{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
.bs-field-col{flex-direction:column;align-items:stretch}
.bs-flabel{flex:0 0 168px;font-size:.78rem;color:var(--sage);padding-top:6px;line-height:1.45}
.bs-field-col .bs-flabel{flex:none;padding-top:0;margin-bottom:2px;color:var(--ivory-dim);font-weight:600}
.bs-fopts{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.bs-checks{display:flex;flex-direction:column;gap:6px}
.bs-check{display:flex;align-items:flex-start;gap:9px;text-align:start;font:inherit;font-size:.82rem;color:var(--ivory-dim);background:rgba(15,42,32,.4);border:1px solid var(--line-soft);border-radius:10px;padding:9px 12px;cursor:pointer;transition:border-color .18s,background .18s;line-height:1.5}
.bs-check:hover{border-color:var(--line)}
.bs-check.on{border-color:var(--gold);background:rgba(201,162,75,.1)}
.bs-check i{flex:none;width:17px;height:17px;border-radius:5px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--gold);font-style:normal;margin-top:1px}
.bs-check.on i{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.bs-txt{font:inherit;font-size:.85rem;color:var(--ivory);background:rgba(15,42,32,.5);border:1px solid var(--line);border-radius:9px;padding:9px 12px;width:100%}
.bs-txt::placeholder{color:var(--sage)}
.bs-txt:focus{outline:none;border-color:var(--gold-soft)}

/* verdict block */
.bs-verdict{border:1px solid var(--line);border-radius:14px;padding:16px;margin:16px 0;background:linear-gradient(150deg,rgba(201,162,75,.06),rgba(15,42,32,.2))}
.bs-vq{font-family:var(--serif,'Fraunces',serif);font-size:1.15rem;color:var(--ivory);margin-bottom:12px}
.bs-vrow{display:flex;gap:10px;flex-wrap:wrap}
.bs-vcell{flex:1;min-width:180px;padding:12px 14px;border-radius:11px;border:1px solid var(--line)}
.bs-vcell b{display:block;font-size:.98rem;margin-bottom:4px;line-height:1.35}
.bs-vcell span{font-size:.74rem;color:var(--sage)}
.bs-vcell.good{border-color:rgba(122,178,146,.5);background:rgba(122,178,146,.08)}
.bs-vcell.good b{color:#a9d3b6}
.bs-vcell.warn{border-color:rgba(201,162,75,.5);background:rgba(201,162,75,.08)}
.bs-vcell.warn b{color:var(--gold-soft)}
.bs-vcell.dim{opacity:.5}
.bs-vnote{font-size:.75rem;color:var(--sage);margin:12px 0 0}
.bs-vone{font-size:.9rem;line-height:1.65;padding:12px 14px;border-radius:11px;border:1px solid var(--line)}
.bs-vone.good{border-color:rgba(122,178,146,.5);background:rgba(122,178,146,.07);color:#c3ddca}
.bs-vone.warn{border-color:rgba(201,162,75,.5);background:rgba(201,162,75,.07);color:var(--ivory-dim)}
.bs-vreasons{margin:12px 0 0;padding-inline-start:20px;font-size:.82rem;color:var(--ivory-dim);line-height:1.65}
.bs-vreasons li{margin-bottom:5px}

/* per-jurisdiction cards */
.bs-jgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:14px}
.bs-jcard{border:1px solid var(--line);border-radius:13px;padding:14px 15px;background:rgba(15,42,32,.3)}
.bs-jcard h4{font-size:.9rem;color:var(--gold-soft);margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bs-prow{padding:8px 0;border-bottom:1px dashed var(--line-soft)}
.bs-prow:last-child{border-bottom:none}
.bs-prow b{display:block;font-size:.8rem;color:var(--ivory);margin-bottom:3px}
.bs-prow span{display:block;font-size:.76rem;color:var(--ivory-dim);line-height:1.6}
.bs-psrc{display:block;font-size:.68rem;color:var(--sage);margin-top:4px;font-style:italic}
.bs-prow.good b{color:#a9d3b6}
.bs-prow.warn b{color:var(--gold-soft)}
.bs-prow.rely b,.bs-prow.ic b{color:#c9b0d8}
.bs-moving{margin-top:16px;padding:12px 14px;border-inline-start:3px solid var(--gold);background:rgba(201,162,75,.06);border-radius:0 10px 10px 0;font-size:.8rem;color:var(--ivory-dim);line-height:1.65}
.bs-btext{font-size:.82rem;color:var(--ivory-dim);line-height:1.65}
.bs-bextra{margin-top:8px;font-size:.76rem;color:var(--sage);line-height:1.6;padding-top:8px;border-top:1px dashed var(--line-soft)}

/* synthesis */
.bs-synth{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.bs-scell{flex:1;min-width:230px;padding:12px 14px;border-radius:11px;border:1px solid var(--line)}
.bs-scell b{display:block;font-size:.8rem;margin-bottom:4px}
.bs-scell span{display:block;font-size:.88rem;color:var(--ivory);margin-bottom:6px}
.bs-scell i{font-size:.73rem;color:var(--sage);font-style:normal;line-height:1.55}
.bs-scell.good{border-color:rgba(122,178,146,.4);background:rgba(122,178,146,.06)}
.bs-scell.good b{color:#a9d3b6}
.bs-scell.warn{border-color:rgba(201,162,75,.4);background:rgba(201,162,75,.06)}
.bs-scell.warn b{color:var(--gold-soft)}

/* stance + withdrawn panel (analytical) */
.bs-stance{padding:12px 14px;border-radius:11px;border:1px solid rgba(122,178,146,.35);background:rgba(122,178,146,.06);margin-bottom:14px}
.bs-stance b{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#a9d3b6;margin-bottom:5px;flex-wrap:wrap}
.bs-stance span{font-size:.8rem;color:var(--ivory-dim);line-height:1.65}
.bs-addattr{margin-bottom:12px}
.bs-addattr select,.bs-xgrid select,.bs-xcard select{font:inherit;font-size:.8rem;color:var(--ivory);background:rgba(15,42,32,.6);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.bs-attrs{display:flex;flex-direction:column;gap:10px}
.bs-attr{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(15,42,32,.3);border-inline-start-width:3px}
.bs-attr.high{border-inline-start-color:#c46e5c}
.bs-attr.mod{border-inline-start-color:var(--gold)}
.bs-attr.low{border-inline-start-color:var(--sage)}
.bs-ahead{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:8px}
.bs-ahead b{font-size:.85rem;color:var(--ivory);flex:1;min-width:140px}
.bs-aband{font-size:.62rem;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:5px}
.bs-aband.high{background:rgba(196,110,92,.18);color:#e6a493}
.bs-aband.mod{background:rgba(201,162,75,.16);color:var(--gold-soft)}
.bs-aband.low{background:rgba(154,167,154,.16);color:var(--sage)}
.bs-arm{font:inherit;background:none;border:none;color:var(--sage);cursor:pointer;font-size:.9rem;padding:2px 6px;border-radius:5px}
.bs-arm:hover{color:#e6a493;background:rgba(196,110,92,.1)}
.bs-ascore{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:8px}
.bs-ascore label{display:flex;align-items:center;gap:8px;font-size:.72rem;color:var(--sage)}
.bs-ascore input[type=range]{accent-color:var(--gold);width:100px}
.bs-ascore i{font-style:normal;font-weight:700;color:var(--gold-soft);min-width:12px}
.bs-averdict{font-size:.8rem;color:var(--ivory-dim);line-height:1.6;margin-bottom:7px}
.bs-ameth{font-size:.76rem;color:var(--sage);line-height:1.55;margin-bottom:5px}
.bs-ameth b{color:var(--ivory-dim)}
.bs-atype{font-size:.73rem;color:var(--sage);font-style:italic;line-height:1.5}
.bs-aflag{margin-top:8px;font-size:.75rem;color:var(--gold-soft);line-height:1.6;padding:8px 10px;background:rgba(201,162,75,.07);border-radius:8px}
.bs-lot{font-size:.76rem;color:var(--sage);line-height:1.6;margin:12px 0}
.bs-withdrawn{margin-top:8px;border:1px solid rgba(196,110,92,.3);border-radius:11px;overflow:hidden}
.bs-wtoggle{width:100%;text-align:start;font:inherit;font-size:.8rem;color:#e6a493;background:rgba(196,110,92,.06);border:none;padding:11px 14px;cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bs-wbody{padding:12px 14px;font-size:.78rem;color:var(--ivory-dim);line-height:1.7;border-top:1px solid rgba(196,110,92,.2)}

/* extrapolation */
.bs-pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-bottom:14px}
.bs-pill{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:rgba(15,42,32,.3)}
.bs-pill i{flex:none;width:22px;height:22px;border-radius:50%;background:rgba(201,162,75,.16);color:var(--gold-soft);font-style:normal;font-weight:700;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center}
.bs-pill span{font-size:.76rem;color:var(--ivory-dim);line-height:1.55}
.bs-xcards{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.bs-xcard{border:1px solid var(--line);border-radius:13px;padding:14px;background:rgba(15,42,32,.3);border-inline-start-width:3px}
.bs-xcard.good{border-inline-start-color:#7ab292}
.bs-xcard.warn{border-inline-start-color:var(--gold)}
.bs-xcard.bad{border-inline-start-color:#c46e5c}
.bs-xhead{display:flex;gap:9px;align-items:center;margin-bottom:10px}
.bs-xhead .bs-txt{flex:1}
.bs-xgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;margin-bottom:10px}
.bs-xgrid label{display:flex;flex-direction:column;gap:5px;font-size:.74rem;color:var(--sage)}
.bs-xverdict{font-size:.82rem;font-weight:600;padding:8px 12px;border-radius:9px;margin-bottom:8px}
.bs-xverdict.good{background:rgba(122,178,146,.1);color:#a9d3b6}
.bs-xverdict.warn{background:rgba(201,162,75,.1);color:var(--gold-soft)}
.bs-xverdict.bad{background:rgba(196,110,92,.1);color:#e6a493}
.bs-xgaps{margin:0 0 10px;padding-inline-start:20px;font-size:.78rem;color:var(--ivory-dim);line-height:1.6}
.bs-xgaps li{margin-bottom:4px}
.bs-xdraft{padding:11px 13px;background:rgba(15,42,32,.5);border-radius:10px}
.bs-xdraft b{display:block;font-size:.72rem;color:var(--gold-soft);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.bs-xdraft p{font-size:.82rem;color:var(--ivory-dim);line-height:1.7;margin:0 0 8px}
.bs-copy,.bs-precedent{font:inherit}
.bs-copy{font-size:.74rem;color:var(--gold-soft);background:rgba(201,162,75,.1);border:1px solid rgba(201,162,75,.35);border-radius:7px;padding:6px 14px;cursor:pointer}
.bs-copy:hover{background:rgba(201,162,75,.18)}
.bs-precedent{margin-top:14px;padding:12px 14px;border-inline-start:3px solid var(--gold);background:rgba(201,162,75,.06);border-radius:0 10px 10px 0;font-size:.8rem;color:var(--ivory-dim);line-height:1.7}

/* Q5E branches */
.bs-branch{margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:rgba(15,42,32,.3)}
.bs-branch b{display:block;font-size:.82rem;color:var(--gold-soft);margin-bottom:5px}
.bs-branch span{font-size:.78rem;color:var(--ivory-dim);line-height:1.7}

/* molecule bank */
.bs-bankbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.bs-bankbar .bs-txt{flex:1}
.bs-bankn{font-size:.75rem;color:var(--sage);white-space:nowrap;font-variant-numeric:tabular-nums}
.bs-mols,.bs-traps{display:flex;flex-direction:column;gap:7px}
.bs-mol,.bs-trap{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:rgba(15,42,32,.28)}
.bs-mol.open,.bs-trap.open{border-color:rgba(201,162,75,.4)}
.bs-mhead{width:100%;text-align:start;font:inherit;background:none;border:none;cursor:pointer;padding:11px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bs-mhead b{font-size:.86rem;color:var(--ivory);flex:0 0 auto;text-transform:capitalize}
.bs-mbrand{font-size:.76rem;color:var(--gold-soft)}
.bs-mcls{font-size:.72rem;color:var(--sage);flex:1;min-width:120px}
.bs-myrs{font-size:.72rem;color:var(--ivory-dim);font-variant-numeric:tabular-nums;white-space:nowrap}
.bs-mconf{font-size:.6rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px}
.bs-mconf.high{background:rgba(122,178,146,.15);color:#a9d3b6}
.bs-mconf.medium{background:rgba(201,162,75,.14);color:var(--gold-soft)}
.bs-mconf.low{background:rgba(154,167,154,.14);color:var(--sage)}
.bs-mbody{padding:0 14px 14px;border-top:1px solid var(--line-soft)}
.bs-mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0}
.bs-mgrid div{font-size:.78rem;color:var(--ivory-dim);line-height:1.5}
.bs-mgrid i{display:block;font-size:.68rem;color:var(--sage);text-transform:uppercase;letter-spacing:.05em;font-style:normal;margin-bottom:2px}
.bs-mnote{padding:11px 13px;background:rgba(201,162,75,.05);border-radius:10px}
.bs-mnote b{display:block;font-size:.72rem;color:var(--gold-soft);text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}
.bs-mnote p{font-size:.82rem;color:var(--ivory-dim);line-height:1.7;margin:0}

/* traps */
.bs-thead{width:100%;text-align:start;font:inherit;background:none;border:none;cursor:pointer;padding:12px 14px;display:flex;align-items:flex-start;gap:11px}
.bs-tx{flex:none;color:#e6a493;font-size:.95rem;font-weight:700;line-height:1.5}
.bs-tmis{flex:1;font-size:.85rem;color:var(--ivory);line-height:1.55}
.bs-ttopic{font-size:.7rem;color:var(--sage);white-space:nowrap}
.bs-tbody{padding:0 14px 14px 40px;display:flex;gap:11px;border-top:1px solid var(--line-soft);padding-top:12px}
.bs-tc{flex:none;color:#a9d3b6;font-size:.95rem;font-weight:700;line-height:1.6}
.bs-tbody p{font-size:.82rem;color:var(--ivory-dim);line-height:1.7;margin:0 0 6px}
.bs-tsrc{font-size:.7rem;color:var(--sage);font-style:italic}

.bs-empty{font-size:.82rem;color:var(--sage);padding:16px;text-align:center}
html[lang="ar"] .bs-tbody{padding:12px 40px 14px 14px}
@media (max-width:560px){
  .bs-flabel{flex-basis:100%}
  .bs-mhead{gap:7px}
  .bs-mcls{flex-basis:100%}
}

/* ---- Biosimilar Approvals Ledger (Tab 8) ---- */
.bs-lkpis{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 16px}
.bs-lkpi{border:1px solid var(--line);border-radius:11px;padding:9px 15px;background:rgba(15,42,32,.32);min-width:88px}
.bs-lkpi b{display:block;font-family:var(--serif);font-size:1.35rem;color:var(--gold-soft);font-variant-numeric:tabular-nums;line-height:1}
.bs-lkpi span{font-size:.68rem;color:var(--sage);letter-spacing:.02em}
.bs-lasof{margin-inline-start:auto;font-size:.75rem;color:var(--ivory-dim);font-variant-numeric:tabular-nums}
.bs-lbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.bs-lbar .bs-txt{flex:1;min-width:220px}
.bs-lchips{display:flex;flex-wrap:wrap;gap:6px}
.bs-lbadge{border:1px solid rgba(201,162,75,.4);background:rgba(201,162,75,.08);border-radius:11px;padding:11px 15px;margin-bottom:12px;font-size:.9rem;color:var(--ivory-dim);line-height:1.5;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bs-lbadge b{color:var(--gold-soft);font-weight:700}
.bs-lactions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.bs-lcount{font-size:.74rem;color:var(--sage);font-variant-numeric:tabular-nums}
.bs-ltwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.bs-ltable{width:100%;border-collapse:collapse;font-size:.8rem;min-width:720px}
.bs-ltable thead th{position:sticky;top:0;text-align:start;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sage);font-weight:600;padding:10px 12px;background:var(--ink-2);border-bottom:1px solid var(--line)}
.bs-ltable td{padding:9px 12px;border-bottom:1px solid var(--line-soft);color:var(--ivory-dim);vertical-align:top}
.bs-ltable tbody tr:hover{background:rgba(201,162,75,.05)}
.bs-lmol b{color:var(--ivory);text-transform:capitalize;font-weight:600}
.bs-lnp{display:block;font-size:.68rem;color:var(--sage);font-style:normal;margin-top:2px}
.bs-ldate{font-variant-numeric:tabular-nums;white-space:nowrap}
.bs-lic{display:inline-block;font-size:.62rem;font-weight:600;letter-spacing:.03em;padding:2px 8px;border-radius:5px;background:rgba(154,167,154,.14);color:var(--sage)}
.bs-lic.ok{background:rgba(122,178,146,.16);color:#a9d3b6}
.bs-lstatus{display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:2px 8px;border-radius:5px;background:rgba(196,110,92,.16);color:#e6a493;text-transform:uppercase;margin-inline-start:4px}
.bs-lconf{display:inline-block;font-size:.6rem;font-weight:700;padding:2px 7px;border-radius:5px;margin-inline-start:4px;text-transform:uppercase}
.bs-lconf.medium{background:rgba(201,162,75,.14);color:var(--gold-soft)}
.bs-lconf.low{background:rgba(154,167,154,.14);color:var(--sage)}
.bs-lsrc a{color:var(--gold-soft);text-decoration:none;font-size:.72rem;border-bottom:1px dotted rgba(201,162,75,.4)}
.bs-lsrc a:hover{color:var(--ivory)}
@media (max-width:560px){ .bs-lasof{margin-inline-start:0;width:100%} }

/* ---- Biosimilar Citation Spine (Tab 9) ---- */
.bs-splog{border:1px solid rgba(201,162,75,.28);border-radius:11px;padding:10px 14px;margin-bottom:14px;background:rgba(201,162,75,.05)}
.bs-splog-row{display:flex;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line-soft);font-size:.8rem;line-height:1.5}
.bs-splog-row:last-child{border-bottom:none}
.bs-splog-row b{flex:none;color:var(--gold-soft);font-variant-numeric:tabular-nums}
.bs-splog-row span{color:var(--ivory-dim)}
.bs-spine{display:flex;flex-direction:column;gap:18px;margin-top:4px}
.bs-spgroup h4{font-size:.82rem;color:var(--gold-soft);margin:0 0 9px;padding-bottom:6px;border-bottom:1px solid var(--line-soft);letter-spacing:.02em}
.bs-sprow{border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-bottom:9px;background:rgba(15,42,32,.3)}
.bs-sprow:last-child{margin-bottom:0}
.bs-sptop{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;margin-bottom:5px}
.bs-sptitle{font-size:.9rem;color:var(--ivory);line-height:1.4;font-weight:600}
.bs-spmeta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.bs-spref{font-size:.74rem;color:var(--gold-soft);font-variant-numeric:tabular-nums}
.bs-spver{font-size:.72rem;color:var(--sage)}
.bs-spver::before{content:"· "}
.bs-spnote{font-size:.82rem;color:var(--ivory-dim);line-height:1.7}
.bs-spchains{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.bs-spchain{font-size:.68rem;padding:3px 9px;border-radius:6px;background:rgba(122,178,146,.12);color:#a9d3b6;border:1px solid rgba(122,178,146,.3)}
.bs-spchain.warn{background:rgba(196,110,92,.12);color:#e6a493;border-color:rgba(196,110,92,.3)}
.bs-spfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding-top:8px;border-top:1px dashed var(--line-soft)}
.bs-spfoot a{font-size:.74rem;color:var(--gold-soft);text-decoration:none;border-bottom:1px dotted rgba(201,162,75,.4)}
.bs-spfoot a:hover{color:var(--ivory)}
.bs-spasof{font-size:.68rem;color:var(--sage);font-variant-numeric:tabular-nums}

/* ---- Evidence-Expectation Clock (Tab 10) ---- */
.bs-vcell.rely{border-color:rgba(201,176,216,.45);background:rgba(201,176,216,.08)}
.bs-vcell.rely b{color:#c9b0d8}
.bs-clkboard{display:flex;flex-direction:column;gap:9px;margin:14px 0 0}
.bs-clkrow{display:grid;grid-template-columns:150px 130px 1fr;gap:12px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(15,42,32,.3);border-inline-start-width:3px}
.bs-clkrow.waivable{border-inline-start-color:#7ab292}
.bs-clkrow.required{border-inline-start-color:var(--gold)}
.bs-clkrow.reliance{border-inline-start-color:#b79fcf}
.bs-clkauth{font-size:.84rem;color:var(--ivory);font-weight:600;line-height:1.35}
.bs-clkstate{font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:6px;text-align:center;align-self:start}
.bs-clkstate.waivable{background:rgba(122,178,146,.16);color:#a9d3b6}
.bs-clkstate.required{background:rgba(201,162,75,.16);color:var(--gold-soft)}
.bs-clkstate.reliance{background:rgba(201,176,216,.14);color:#c9b0d8}
.bs-clkbody p{font-size:.8rem;color:var(--ivory-dim);line-height:1.65;margin:0 0 7px}
.bs-clkinstr{font-size:.72rem;color:var(--sage);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.bs-clkinstr a{color:var(--gold-soft);text-decoration:none;border-bottom:1px dotted rgba(201,162,75,.4)}
.bs-clkinstr a:hover{color:var(--ivory)}
@media (max-width:640px){ .bs-clkrow{grid-template-columns:1fr;gap:7px} .bs-clkstate{justify-self:start} }

/* ============ THE FOUR DOORS (portal entry) ============ */
.portal{padding:46px 0 26px}
.portal-head{text-align:center;margin-bottom:30px}
.portal-doors{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.portal-door{position:relative;display:flex;flex-direction:column;gap:7px;padding:24px 22px 20px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(160deg,rgba(15,42,32,.5),rgba(15,42,32,.24));text-decoration:none;overflow:hidden;transition:transform .2s var(--ease),border-color .2s,box-shadow .2s}
.portal-door::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--gold),transparent);opacity:.5;transition:opacity .2s}
.portal-door:hover{transform:translateY(-4px);border-color:rgba(201,162,75,.55);box-shadow:0 22px 46px -20px rgba(0,0,0,.6)}
.portal-door:hover::before{opacity:1}
.portal-door:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.pd-ic{width:44px;height:44px;color:var(--gold);margin-bottom:4px}
.pd-ic svg{width:100%;height:100%}
.pd-for{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-soft);font-weight:600}
.pd-title{font-family:var(--serif);font-size:1.4rem;font-weight:500;color:var(--ivory);line-height:1.1}
.pd-desc{font-size:.82rem;color:var(--ivory-dim);line-height:1.6;flex:1;margin-top:2px}
.pd-go{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:.76rem;color:var(--sage)}
.pd-go b{color:var(--gold-soft);font-variant-numeric:tabular-nums;font-size:.92rem}
.pd-go i{margin-inline-start:auto;font-style:normal;color:var(--gold-soft);font-size:1rem;transition:transform .2s}
.portal-door:hover .pd-go i{transform:translateX(4px)}
html[lang="ar"] .portal-door:hover .pd-go i{transform:translateX(-4px)}
/* the office's private door — spans the grid beneath the four public doors */
.pd-ws{grid-column:1/-1;flex-direction:row;align-items:center;gap:18px;padding:18px 22px;border-style:dashed;border-color:rgba(201,162,75,.45)}
.pd-ws .pd-ic{width:36px;height:36px;margin-bottom:0;flex:0 0 auto}
.pd-ws-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.pd-ws .pd-title{font-size:1.15rem}
.pd-ws .pd-desc{flex:initial;margin-top:0}
.pd-ws .pd-go{margin-top:0;padding-top:0;border-top:0;flex:0 0 auto;white-space:nowrap}
.pd-ws-btn{flex:0 0 auto;white-space:nowrap;align-self:center}
.portal-door.pd-ws:hover .pd-ws-btn{filter:brightness(1.06)}
@media (max-width:900px){ .portal-doors{grid-template-columns:repeat(2,1fr)} }
@media (max-width:640px){ .pd-ws{flex-wrap:wrap;gap:10px 14px} .pd-ws-btn{width:100%;text-align:center;margin-top:4px} }
@media (max-width:520px){ .portal-doors{grid-template-columns:1fr} .portal{padding:32px 0 18px} }

/* ---- Arab Reliance Atlas (Tab 11) ---- */
.bs-atsel{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--ivory-dim);flex-wrap:wrap}
.bs-atsel select{font:inherit;font-size:.82rem;color:var(--ivory);background:rgba(15,42,32,.6);border:1px solid var(--line);border-radius:9px;padding:8px 11px}
.bs-atgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:4px}
.bs-atcard{border:1px solid var(--line);border-radius:13px;padding:14px 15px;background:rgba(15,42,32,.3);border-inline-start-width:3px;border-inline-start-color:var(--line)}
.bs-atcard.opens{border-inline-start-color:#7ab292}
.bs-atcard.partial{border-inline-start-color:var(--gold)}
.bs-atcard.dossier,.bs-atcard.closed{border-inline-start-color:#c46e5c}
.bs-athead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.bs-atname{font-size:.92rem;color:var(--ivory);font-weight:600}
.bs-atreli{font-size:.62rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:5px}
.bs-atreli.yes{background:rgba(122,178,146,.16);color:#a9d3b6}
.bs-atreli.partial{background:rgba(201,162,75,.16);color:var(--gold-soft)}
.bs-atreli.no{background:rgba(196,110,92,.16);color:#e6a493}
.bs-atreli.unknown{background:rgba(154,167,154,.14);color:var(--sage)}
.bs-atgccbadge{font-size:.6rem;font-weight:700;letter-spacing:.05em;padding:2px 7px;border-radius:5px;background:rgba(201,176,216,.14);color:#c9b0d8}
.bs-atopen{font-size:.62rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:5px;margin-inline-start:auto}
.bs-atopen.good{background:rgba(122,178,146,.18);color:#a9d3b6}
.bs-atopen.warn{background:rgba(201,162,75,.16);color:var(--gold-soft)}
.bs-atopen.bad{background:rgba(196,110,92,.18);color:#e6a493}
.bs-atmeta{display:flex;gap:10px;flex-wrap:wrap;font-size:.72rem;color:var(--sage);margin-bottom:7px}
.bs-atauth{color:var(--gold-soft);font-weight:600}
.bs-atroute{font-size:.8rem;color:var(--ivory-dim);line-height:1.65;margin-bottom:7px}
.bs-atguide{font-size:.74rem;color:var(--sage);line-height:1.55;margin-bottom:6px}
.bs-atguide b{color:var(--ivory-dim)}
.bs-atmfg{font-size:.75rem;color:var(--gold-soft);line-height:1.6;padding:8px 10px;background:rgba(201,162,75,.07);border-radius:8px;margin-bottom:6px}
.bs-atgapbtn{font:inherit;font-size:.72rem;color:#e6a493;background:none;border:none;cursor:pointer;padding:3px 0}
.bs-atgap{font-size:.75rem;color:var(--ivory-dim);line-height:1.6;padding:7px 10px;background:rgba(196,110,92,.06);border-radius:8px;margin-top:4px}
.bs-atfoot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line-soft);font-size:.68rem;color:var(--sage)}

/* ---- Analytical-Similarity Precedent Library (Tab 12) ---- */
.bs-precs{display:flex;flex-direction:column;gap:8px}
.bs-prec{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(15,42,32,.28)}
.bs-prec.open{border-color:rgba(201,162,75,.4)}
.bs-prhead{width:100%;text-align:start;font:inherit;background:none;border:none;cursor:pointer;padding:12px 15px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bs-prmol{font-size:.9rem;color:var(--ivory);font-weight:600;flex:0 0 auto}
.bs-prattr{font-size:.78rem;color:var(--ivory-dim);flex:1;min-width:160px}
.bs-prfam{font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:5px;background:rgba(201,176,216,.14);color:#c9b0d8}
.bs-prbody{padding:0 15px 14px;border-top:1px solid var(--line-soft)}
.bs-prref{font-size:.74rem;color:var(--gold-soft);margin:11px 0 8px;font-weight:600}
.bs-prseg{margin-bottom:10px}
.bs-prseg b{display:block;font-size:.7rem;color:var(--sage);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.bs-prseg p{font-size:.82rem;color:var(--ivory-dim);line-height:1.7;margin:0}
.bs-prseg.lesson{padding:10px 12px;background:rgba(201,162,75,.06);border-radius:9px;border-inline-start:3px solid var(--gold)}
.bs-prseg.lesson b{color:var(--gold-soft)}
.bs-prfoot{display:flex;flex-direction:column;gap:3px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line-soft);font-size:.7rem;color:var(--sage)}
.bs-prfoot a{color:var(--gold-soft);text-decoration:none;border-bottom:1px dotted rgba(201,162,75,.4);align-self:flex-start}

/* ---- universal permalink control ---- */
.bs-shelltools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0 4px;padding-top:12px;border-top:1px solid var(--line-soft)}
.bs-copylink{font:inherit;font-size:.78rem;color:var(--gold-soft);background:rgba(201,162,75,.08);border:1px solid rgba(201,162,75,.35);border-radius:8px;padding:8px 15px;cursor:pointer;transition:background .18s}
.bs-copylink:hover{background:rgba(201,162,75,.16)}
.bs-copylinkhint{font-size:.72rem;color:var(--sage)}

/* ============ THE ARAB PHARMA REGULATORY REPORT (#stateof) ============ */
.so-app { margin-top: 8px; }
.so-masthead { max-width: 860px; margin: 0 0 30px; }
.so-ed {
  display: inline-block; font-family: var(--sans); font-size: 12px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--gold);
  padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px;
  background: rgba(201,162,75,.06);
}
.so-title { font-family: var(--serif); font-size: clamp(26px, 4vw, 40px); line-height: 1.08;
  color: var(--ivory); margin: 16px 0 12px; font-weight: 400; }
.so-standfirst { color: var(--ivory-dim); font-size: 17px; line-height: 1.7; max-width: 760px; }

.so-grid {
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.so-find {
  border: 1px solid var(--line); border-radius: var(--r);
  background: linear-gradient(180deg, rgba(40,92,71,.30), rgba(27,66,51,.18));
  padding: 22px 22px 18px; display: flex; flex-direction: column;
  transition: border-color .25s var(--ease), transform .25s var(--ease);
}
.so-find:hover { border-color: rgba(201,162,75,.42); transform: translateY(-2px); }
.so-n {
  font-family: var(--serif); font-weight: 500; line-height: 1;
  font-size: clamp(38px, 6vw, 52px); color: var(--gold-soft);
  font-variant-numeric: tabular-nums;
}
.so-unit { color: var(--ivory); font-weight: 600; font-size: 15px; margin-top: 8px; line-height: 1.35; }
.so-sub { color: var(--gold); font-size: 13px; font-weight: 600; letter-spacing: .02em; margin-top: 6px;
  font-variant-numeric: tabular-nums; }
.so-body { color: var(--ivory-dim); font-size: 14.5px; line-height: 1.62; margin: 12px 0 0; }
.so-src { color: var(--sage); font-size: 12.5px; line-height: 1.55; margin: 12px 0 0;
  padding-top: 12px; border-top: 1px solid var(--line-soft); }
.so-open {
  margin-top: 14px; align-self: flex-start; font-family: var(--sans); font-size: 13px; font-weight: 600;
  color: var(--gold); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s;
}
.so-open:hover { border-bottom-color: var(--gold); }

.so-cite {
  margin-top: 26px; border: 1px solid var(--line); border-radius: var(--r);
  background: rgba(20,48,37,.34); padding: 22px 24px;
}
.so-cite-h { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.so-cite-txt { color: var(--ivory-dim); font-size: 14px; line-height: 1.7; font-style: italic;
  background: rgba(0,0,0,.14); border-left: 2px solid var(--gold); padding: 12px 14px; border-radius: 6px; }
html[lang="ar"] .so-cite-txt { border-left: none; border-right: 2px solid var(--gold); }
.so-cite-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.so-cite-row .btn { font-size: 13px; padding: 8px 16px; }
.so-method { color: var(--sage); font-size: 12.5px; line-height: 1.6; margin: 16px 0 0; }

@media (max-width: 560px) {
  .so-grid { grid-template-columns: 1fr; }
}

/* Print / save-PDF: isolate the report into a clean citable page */
@media print {
  body * { visibility: hidden !important; }
  #stateof, #stateof * { visibility: visible !important; }
  #stateof { position: absolute; inset: 0 auto auto 0; width: 100%; background: #fff; color: #111; padding: 24px; }
  #stateof .so-title, #stateof .so-n, #stateof .so-unit { color: #143b2d !important; }
  #stateof .so-sub { color: #9a7a33 !important; }
  #stateof .so-body, #stateof .so-standfirst, #stateof .so-cite-txt { color: #222 !important; }
  #stateof .so-src, #stateof .so-method { color: #555 !important; }
  #stateof .so-find { border-color: #ccc !important; background: #fafafa !important; break-inside: avoid; }
  #stateof .so-open, #stateof .so-cite-row { display: none !important; }
  #stateof .so-ed { color: #9a7a33 !important; border-color: #ccc !important; }
}

/* ============ TRUST CENTRE (#trust) ============ */
.card-link {
  display: inline-block; margin-top: 14px; font-family: var(--sans);
  font-size: 13.5px; font-weight: 600; color: var(--gold); text-decoration: none;
  border-bottom: 1px solid transparent; transition: border-color .2s var(--ease);
}
.card-link:hover { border-bottom-color: var(--gold); }
html[lang="ar"] .card-link { font-family: var(--arabic-ui); }

.trust-foot {
  margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 16px 24px;
  border: 1px solid var(--line); border-radius: var(--r);
  background: rgba(20,48,37,.34); padding: 20px 24px;
}
.trust-foot p { color: var(--ivory-dim); font-size: 15.5px; line-height: 1.6; margin: 0; max-width: 60ch; }
.trust-foot .btn { font-size: 14px; }

/* site-wide privacy assurance in the footer */
.footer-privacy {
  margin-top: 14px; font-size: 13px; line-height: 1.6; color: var(--sage);
  max-width: 42ch;
}
.footer-privacy a { color: var(--gold); text-decoration: none; border-bottom: 1px solid transparent; }
.footer-privacy a:hover { border-bottom-color: var(--gold); }
html[lang="ar"] .footer-privacy { direction: rtl; }

/* Data Bank — sort + export controls */
.db-export { display: inline-flex; gap: 8px; margin-inline-start: auto; }
.db-xbtn {
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; color: var(--ivory-dim);
  background: rgba(201,162,75,.08); border: 1px solid var(--line); border-radius: 999px;
  padding: 7px 14px; cursor: pointer; transition: border-color .2s var(--ease), color .2s var(--ease);
  white-space: nowrap;
}
.db-xbtn:hover { border-color: var(--gold); color: var(--ivory); }
@media (max-width: 560px) { .db-export { margin-inline-start: 0; width: 100%; } }

/* ============ WHAT'S NEW (#whatsnew) ============ */
.wn-app { margin-top: 6px; }
.wn-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 18px; }
.wn-badge {
  display: inline-flex; align-items: center; gap: 8px; font-family: var(--sans);
  font-size: 13px; font-weight: 700; letter-spacing: .01em; color: var(--forest-2);
  background: var(--gold-soft); border-radius: 999px; padding: 8px 16px;
}
.wn-badge-quiet { color: var(--sage); background: rgba(154,167,154,.12); }
.wn-actions { display: inline-flex; gap: 8px; }
.wn-act {
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; color: var(--ivory-dim);
  background: rgba(201,162,75,.08); border: 1px solid var(--line); border-radius: 999px;
  padding: 7px 14px; cursor: pointer; text-decoration: none; transition: border-color .2s var(--ease), color .2s var(--ease);
}
.wn-act:hover { border-color: var(--gold); color: var(--ivory); }

.wn-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-soft); }
.wn-row { display: grid; grid-template-columns: 168px 1fr; gap: 8px 22px; align-items: baseline;
  padding: 16px 0; border-bottom: 1px solid var(--line-soft); }
.wn-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wn-date { font-family: var(--sans); font-size: 13px; color: var(--sage); font-variant-numeric: tabular-nums; white-space: nowrap; }
.wn-area { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--gold); border: 1px solid var(--line); border-radius: 6px; padding: 2px 8px; }
.wn-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold-soft); box-shadow: 0 0 0 3px rgba(221,196,136,.18); }
.wn-fresh .wn-date { color: var(--ivory); }
.wn-text { color: var(--ivory-dim); font-size: 15.5px; line-height: 1.55; text-decoration: none;
  border-bottom: 1px solid transparent; transition: color .2s, border-color .2s; }
.wn-text:hover { color: var(--ivory); }
.wn-go { color: var(--gold); opacity: 0; transition: opacity .2s; }
.wn-text:hover .wn-go { opacity: 1; }
@media (max-width: 620px) { .wn-row { grid-template-columns: 1fr; gap: 6px; } }

/* ============ GOVERNANCE & CONTINUITY (#governance) ============ */
.gov-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
.gov-col { border: 1px solid var(--line); border-radius: var(--r);
  background: linear-gradient(180deg, rgba(40,92,71,.26), rgba(27,66,51,.16)); padding: 24px 26px; }
.gov-h { font-family: var(--serif); font-weight: 400; font-size: 22px; color: var(--ivory); margin: 0 0 8px; }
.gov-lead { color: var(--ivory-dim); font-size: 15px; line-height: 1.6; margin: 0 0 18px; }
.gov-cadence, .gov-committees { list-style: none; margin: 0; padding: 0; }
.gov-cadence li { display: flex; gap: 14px; align-items: baseline; padding: 11px 0; border-top: 1px solid var(--line-soft); }
.gov-cadence li:first-child { border-top: none; }
.gov-freq { flex: 0 0 92px; font-family: var(--sans); font-size: 11.5px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: var(--forest-2); background: var(--gold-soft); border-radius: 6px;
  padding: 4px 8px; text-align: center; white-space: nowrap; }
.gov-freq-2 { background: #e0b366; }
.gov-freq-3 { background: rgba(201,162,75,.22); color: var(--gold-soft); }
.gov-what { color: var(--ivory-dim); font-size: 14.5px; line-height: 1.5; }
.gov-committees li { padding: 12px 0; border-top: 1px solid var(--line-soft); }
.gov-committees li:first-child { border-top: none; }
.gov-committees b { display: block; color: var(--gold); font-size: 14.5px; font-weight: 600; margin-bottom: 3px; }
.gov-committees span { color: var(--sage); font-size: 13.5px; line-height: 1.5; }
.gov-foot { margin-top: 22px; border: 1px solid var(--line); border-radius: var(--r);
  background: rgba(20,48,37,.34); padding: 22px 26px; }
.gov-foot p { color: var(--ivory-dim); font-size: 15.5px; line-height: 1.65; margin: 8px 0 0; max-width: 90ch; }
@media (max-width: 760px) { .gov-grid { grid-template-columns: 1fr; } .gov-freq { flex-basis: 84px; } }

/* ===== Biosimilar studio — Statistical comparability + Quality→Clinical bridge ===== */
.bs-aband.ctx{background:rgba(63,143,176,.18);color:#8fc3d6}
.bs-conf{display:inline-block;font-size:.58rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:5px}
.bs-conf.hi{background:rgba(122,178,146,.16);color:#a9d3b6;border:1px solid rgba(122,178,146,.35)}
.bs-conf.md{background:rgba(201,162,75,.14);color:var(--gold-soft);border:1px solid rgba(201,162,75,.4)}
.bs-fit{font-size:.6rem;font-weight:700;letter-spacing:.04em;padding:2px 8px;border-radius:5px;margin-inline-start:auto}
.bs-fit.ok{background:rgba(122,178,146,.18);color:#a9d3b6}
.bs-fit.warn{background:rgba(201,162,75,.16);color:var(--gold-soft)}

.bs-smsel{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 14px}
.bs-smsel label{font-size:.75rem;color:var(--sage);display:flex;align-items:center;gap:7px}
.bs-smsel select{background:var(--ink-2);color:var(--ivory);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:.8rem}
.bs-smlist,.bs-qclist{display:flex;flex-direction:column;gap:9px}
.bs-smcard,.bs-qccard{border:1px solid var(--line);border-radius:11px;background:rgba(40,92,71,.14);overflow:hidden}
.bs-smcard.open,.bs-qccard.open{border-color:rgba(201,162,75,.4)}
.bs-smhead,.bs-qchead{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:none;border:0;cursor:pointer;text-align:start;color:var(--ivory)}
.bs-smhead b,.bs-qchead b{font-size:.9rem;font-weight:600}
.bs-smfam{font-size:.58rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:5px;white-space:nowrap;background:rgba(201,162,75,.12);color:var(--gold-soft)}
.bs-smfam.equivalence{background:rgba(196,110,92,.16);color:#e6a493}
.bs-smfam.multivariate{background:rgba(63,143,176,.16);color:#8fc3d6}
.bs-smcar{margin-inline-start:auto;color:var(--gold);font-style:normal;font-size:.85rem}
.bs-qchead .bs-smcar{margin-inline-start:0}
.bs-smbody,.bs-qcbody{padding:0 14px 14px;font-size:.82rem;color:var(--ivory-dim);line-height:1.65}
.bs-smbody p{margin:0 0 10px}
.bs-smcrit{margin:0 0 10px;font-size:.8rem}
.bs-smcrit code{background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:6px;padding:3px 8px;color:#e7cf8f;font-size:.82rem}
.bs-smrow,.bs-qcrow{margin:0 0 9px}
.bs-smrow b,.bs-qcrow b{color:var(--ivory)}
.bs-smrow.warn{color:#e6b9ac}
.bs-smfoot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 0}
.bs-smharm{font-size:.72rem;color:var(--gold-soft);border:1px dashed rgba(201,162,75,.4);border-radius:6px;padding:3px 9px}

.bs-qcpills{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}
.bs-qcpill{font-size:.74rem;color:var(--ivory-dim);background:rgba(201,162,75,.07);border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer}
.bs-qcpill.on{border-color:var(--gold);color:var(--ivory);background:rgba(201,162,75,.16)}
.bs-qccard{border-inline-start:3px solid var(--line)}
.bs-qccard.high{border-inline-start-color:#c46e5c}
.bs-qccard.mod{border-inline-start-color:var(--gold)}
.bs-qccard.low{border-inline-start-color:var(--sage)}
.bs-qccard.ctx{border-inline-start-color:#3f8fb0}
.bs-qcimp{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 10px}
.bs-qcimp>div{background:rgba(0,0,0,.16);border:1px solid var(--line-soft);border-radius:9px;padding:9px 11px;font-size:.78rem;line-height:1.55}
.bs-qcl{display:block;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:5px}
.bs-qcguide{background:rgba(122,178,146,.08);border:1px solid rgba(122,178,146,.32);border-radius:10px;padding:11px 13px;margin:4px 0 0;font-size:.82rem;line-height:1.65;color:var(--ivory-dim)}
.bs-qcguide b{display:block;color:#a9d3b6;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px}
@media (max-width:640px){.bs-qcimp{grid-template-columns:1fr}}

/* ================= EXPERT WORKSPACE (#governance cockpit) ================= */
.ws-ov{position:fixed;inset:0;z-index:2147483200;background:rgba(12,26,20,.92);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px;font-family:var(--sans)}
/* The Applications modal is opened from inside the workspace overlay, so it
   must sit ABOVE it (ws-ov is near max z-index). Without this it opens hidden
   behind the workspace and looks like nothing happened. */
#appsModal{z-index:2147483300}
#appsModal .modal-card,#appsModal .modal-in{max-height:88vh;overflow:auto}

.ws-gate{display:grid;place-items:center;width:100%}
.ws-gatecard{width:min(420px,100%);background:linear-gradient(180deg,#274b3c,#1a3629);border:1px solid var(--gold);border-radius:18px;padding:32px 30px;text-align:center;color:var(--ivory);box-shadow:0 40px 90px -30px rgba(0,0,0,.75)}
.ws-gico{font-size:30px;margin-bottom:10px}
.ws-gatecard h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 8px}
.ws-gatecard p{color:var(--ivory-dim);font-size:14px;line-height:1.6;margin:0 0 16px}
.ws-gatecard input{width:100%;font-size:16px;color:var(--ivory);background:rgba(8,20,15,.6);border:1px solid rgba(201,162,75,.3);border-radius:10px;padding:11px 14px;margin-bottom:8px}
.ws-gerr{color:#e6a493;font-size:13px;margin:0 0 8px}
.ws-grow{display:flex;gap:10px;margin-top:6px}
.ws-grow .ws-btn{flex:1}
.ws-gnote{font-size:12px!important;color:var(--sage)!important;margin:14px 0 0!important}

.ws-shell{width:min(1080px,100%);height:min(88vh,900px);display:flex;flex-direction:column;background:linear-gradient(180deg,#1e4030,#152e23);border:1px solid rgba(201,162,75,.35);border-radius:18px;overflow:hidden;color:var(--ivory);box-shadow:0 40px 100px -30px rgba(0,0,0,.8)}
.ws-head{position:relative;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.14)}
.ws-brand b{font-family:var(--serif);font-weight:500;font-size:18px;display:block}
.ws-brand span{font-size:11px;color:var(--sage);letter-spacing:.06em}
.ws-tools{display:flex;align-items:center;gap:8px}
.ws-btn{font-family:var(--sans);font-size:13px;font-weight:600;border-radius:8px;padding:8px 14px;cursor:pointer;border:1px solid var(--line);background:rgba(201,162,75,.08);color:var(--ivory-dim);white-space:nowrap}
.ws-btn.sm{font-size:12px;padding:7px 11px}
.ws-btn.gold{background:var(--gold);color:#153021;border-color:var(--gold);font-weight:700}
.ws-btn.ghost:hover{border-color:var(--gold);color:var(--ivory)}
.ws-x{background:none;border:0;color:var(--ivory-dim);font-size:18px;cursor:pointer;padding:4px 8px}
.ws-x:hover{color:var(--ivory)}
.ws-bell{position:relative;background:none;border:1px solid var(--line);border-radius:8px;padding:7px 10px;cursor:pointer;font-size:15px}
.ws-bell.has{border-color:var(--gold)}
.ws-bell i{position:absolute;top:-6px;right:-6px;background:#c46e5c;color:#fff;font-style:normal;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.ws-bellp{position:absolute;top:60px;right:16px;width:min(320px,86vw);background:#1a3629;border:1px solid rgba(201,162,75,.4);border-radius:12px;padding:12px;z-index:5;box-shadow:0 24px 50px rgba(0,0,0,.5)}
.ws-bellp>b{font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.06em;display:block;margin-bottom:8px}
.ws-bi{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--line-soft);font-size:13px}
.ws-bi em{font-style:normal;color:var(--sage);white-space:nowrap}
.ws-bi.over em{color:#e6a493}
[dir=rtl] .ws-bellp{right:auto;left:16px}
[dir=rtl] .ws-bell i{right:auto;left:-6px}

.ws-navbar{display:flex;gap:4px;padding:10px 14px 0;overflow-x:auto}
.ws-nav{font-size:13px;font-weight:600;color:var(--ivory-dim);background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;white-space:nowrap}
.ws-nav.on{color:var(--ivory);border-bottom-color:var(--gold)}
.ws-body{flex:1;overflow-y:auto;padding:16px 18px}
.ws-privacy{margin:0;padding:10px 18px;border-top:1px solid var(--line);background:rgba(0,0,0,.2);font-size:11.5px;line-height:1.55;color:var(--sage)}
.ws-h4{font-family:var(--serif);font-weight:500;font-size:16px;color:var(--ivory);margin:4px 0 10px}
.ws-empty{color:var(--sage);font-size:13.5px;padding:14px 0}

.ws-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:8px}
.ws-stat{border:1px solid var(--line);border-radius:12px;background:rgba(40,92,71,.2);padding:14px 16px}
.ws-stat b{font-family:var(--serif);font-size:26px;color:var(--gold-soft);display:block}
.ws-stat span{font-size:12px;color:var(--ivory-dim)}
.ws-stat.bad b{color:#e6a493}.ws-stat.warn b{color:var(--gold-soft)}.ws-stat.ok b{color:#a9d3b6}

.ws-add{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.ws-add input,.ws-add select{font:inherit;font-size:13px;color:var(--ivory);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.ws-add input[type=text]{flex:1;min-width:150px}
.ws-add.mini{margin-top:10px}
.ws-filt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.ws-filt select{font-size:12.5px;color:var(--ivory-dim);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:8px;padding:6px 9px}
.ws-count{margin-inline-start:auto;font-size:12px;color:var(--sage)}
.ws-list{display:flex;flex-direction:column;gap:8px}

.ws-task{border:1px solid var(--line);border-radius:11px;background:rgba(40,92,71,.14);padding:11px 13px;display:flex;flex-direction:column;gap:9px}
.ws-task.done{opacity:.6}.ws-task.over{border-color:rgba(196,110,92,.5)}
.ws-tmain{display:flex;gap:11px;align-items:flex-start}
.ws-check{flex:0 0 22px;width:22px;height:22px;border-radius:6px;border:1px solid var(--gold);background:none;color:#153021;cursor:pointer;font-size:12px;margin-top:1px}
.ws-check.on{background:var(--gold)}
.ws-tinfo{flex:1;min-width:0}
.ws-tinfo>b{font-size:14px;font-weight:600}
.ws-task.done .ws-tinfo>b{text-decoration:line-through}
.ws-tmeta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:4px;font-size:11.5px;color:var(--sage)}
.ws-tmeta i{font-style:normal}
.ws-tmeta .ws-tc{color:var(--gold-soft)}
.ws-tmeta .ws-od{color:#e6a493;font-weight:700}
.ws-pr{padding:1px 7px;border-radius:5px;font-weight:700;font-size:10.5px}
.ws-pr.high{background:rgba(196,110,92,.2);color:#e6a493}.ws-pr.med{background:rgba(201,162,75,.16);color:var(--gold-soft)}.ws-pr.low{background:rgba(154,167,154,.16);color:var(--sage)}
.ws-tctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ws-tctl select{font-size:12px;color:var(--ivory-dim);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:7px;padding:5px 8px}
.ws-tctl input[type=range]{flex:1;min-width:90px;accent-color:var(--gold)}
.ws-pct{font-size:11.5px;color:var(--sage);min-width:34px;font-variant-numeric:tabular-nums}
.ws-del{background:none;border:0;cursor:pointer;font-size:14px;opacity:.6}.ws-del:hover{opacity:1}

.ws-calhd{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ws-calhd b{font-family:var(--serif);font-size:17px}
.ws-cnav{background:rgba(201,162,75,.1);border:1px solid var(--line);border-radius:8px;color:var(--ivory);width:32px;height:32px;cursor:pointer;font-size:16px}
.ws-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.ws-cwd{text-align:center;font-size:11px;color:var(--sage);padding:4px 0;font-weight:700;letter-spacing:.03em}
.ws-cday{position:relative;aspect-ratio:1;border:1px solid var(--line-soft);border-radius:9px;background:rgba(40,92,71,.12);color:var(--ivory-dim);cursor:pointer;display:flex;align-items:flex-start;justify-content:flex-start;padding:6px}
.ws-cday.empty{border:0;background:none;cursor:default}
.ws-cday.today{border-color:var(--gold);color:var(--ivory)}
.ws-cday.sel{background:rgba(201,162,75,.2);border-color:var(--gold)}
.ws-cn{font-size:12px;font-weight:600}
.ws-cdot{position:absolute;bottom:5px;right:5px;background:var(--gold);color:#153021;font-size:10px;font-weight:700;min-width:15px;height:15px;border-radius:8px;display:grid;place-items:center;padding:0 3px}
.ws-cdot.over{background:#c46e5c;color:#fff}
[dir=rtl] .ws-cdot{right:auto;left:5px}
.ws-calpanel{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.ws-calpanel>b{font-size:13px;color:var(--gold-soft);display:block;margin-bottom:8px}

.ws-client{position:relative;border:1px solid var(--line);border-radius:11px;background:rgba(40,92,71,.14);padding:12px 13px}
.ws-clmain>b{font-size:14px;font-weight:600}
.ws-clmeta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:4px;font-size:11.5px;color:var(--sage)}
.ws-clmeta i{font-style:normal}
.ws-cst{padding:1px 7px;border-radius:5px;font-weight:700;font-size:10.5px}
.ws-cst.active{background:rgba(122,178,146,.18);color:#a9d3b6}.ws-cst.prospect{background:rgba(201,162,75,.16);color:var(--gold-soft)}.ws-cst.onhold{background:rgba(154,167,154,.16);color:var(--sage)}.ws-cst.closed{background:rgba(120,120,120,.16);color:#aaa}
.ws-clt{color:var(--gold-soft)}
.ws-clnote{font-size:12.5px;color:var(--ivory-dim);margin:8px 0 0;line-height:1.5}
.ws-client .ws-del{position:absolute;top:12px;inset-inline-end:12px}

.ws-notes{width:100%;min-height:340px;font:inherit;font-size:14px;line-height:1.7;color:var(--ivory);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:12px;padding:14px 16px;resize:vertical}

/* the Governance entry button */
.gov-ws{margin-top:22px;border:1px solid rgba(201,162,75,.4);border-radius:var(--r);background:linear-gradient(180deg,rgba(201,162,75,.1),rgba(40,92,71,.16));padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}
.gov-ws-tx b{font-family:var(--serif);font-size:19px;color:var(--ivory);display:block;margin-bottom:4px}
.gov-ws-tx span{font-size:13.5px;color:var(--ivory-dim)}

/* ===== Expert Relay v2 — identity, avatars, inbox, team, threads ===== */
.ws-av{position:relative;flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:#20493a center/cover no-repeat;border:1px solid rgba(201,162,75,.4);display:inline-grid;place-items:center;overflow:hidden;vertical-align:middle}
.ws-av i{font-style:normal;font-size:11px;font-weight:700;color:var(--gold-soft);opacity:0;text-transform:uppercase}
.ws-av[style*="url"] i{opacity:0}
.ws-av.xs{width:22px;height:22px}.ws-av.sm{width:28px;height:28px}.ws-av.lg{width:56px;height:56px}
.ws-av.allav{background:rgba(201,162,75,.14);font-size:20px;border-style:dashed}
.ws-av.lg.allav{font-size:26px}

/* header identity chip + profile panel */
.ws-mechip{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ivory-dim);background:rgba(201,162,75,.08);border:1px solid var(--line);border-radius:20px;padding:4px 10px 4px 4px;cursor:pointer;max-width:170px}
.ws-mechip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-mechip:hover{border-color:var(--gold);color:var(--ivory)}
.ws-mep{position:absolute;top:60px;inset-inline-end:16px;width:min(320px,88vw);background:#1a3629;border:1px solid rgba(201,162,75,.4);border-radius:14px;padding:14px;z-index:6;box-shadow:0 24px 50px rgba(0,0,0,.55)}
.ws-meh{display:flex;gap:11px;align-items:center;margin-bottom:12px}
.ws-meh b{font-family:var(--serif);font-size:15px;display:block}
.ws-meh span{font-size:11.5px;color:var(--sage)}
.ws-meform{display:flex;flex-direction:column;gap:7px;padding-bottom:12px;border-bottom:1px solid var(--line-soft);margin-bottom:10px}
.ws-meform input{font:inherit;font-size:13px;color:var(--ivory);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.ws-merow{display:flex;flex-wrap:wrap;gap:6px}
.ws-melink{font-size:11px;color:var(--sage);line-height:1.55;margin:10px 0 0}

/* sign-in screen */
.ws-shell.signin .ws-body{padding:22px}
.ws-signlead{font-size:13.5px;color:var(--ivory-dim);line-height:1.6;margin:0 0 16px;max-width:60ch}
.ws-signgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.ws-signcard{position:relative;display:flex;align-items:center;gap:11px;text-align:start;background:rgba(40,92,71,.16);border:1px solid var(--line);border-radius:13px;padding:12px 13px;cursor:pointer;color:var(--ivory);transition:border-color .18s var(--ease),transform .18s var(--ease)}
.ws-signcard:hover{border-color:var(--gold);transform:translateY(-2px)}
.ws-signcard b{font-size:13.5px;font-weight:600;display:block}
.ws-signcard span{font-size:11px;color:var(--sage);display:block;margin-top:2px}
.ws-signcard>div,.ws-signcard>b{min-width:0}
.ws-lockmark{position:absolute;top:9px;inset-inline-end:10px;font-size:11px;opacity:.7}
.ws-pinwrap{display:grid;place-items:center;margin-top:20px}
.ws-pincard{width:min(340px,100%);text-align:center;background:linear-gradient(180deg,#274b3c,#1a3629);border:1px solid var(--gold);border-radius:16px;padding:22px}
.ws-pincard b{font-family:var(--serif);font-size:17px;display:block;margin:8px 0 2px}
.ws-pincard p{font-size:12.5px;color:var(--ivory-dim);margin:0 0 12px}
.ws-pincard input{width:100%;font-size:16px;letter-spacing:.3em;text-align:center;color:var(--ivory);background:rgba(8,20,15,.6);border:1px solid rgba(201,162,75,.3);border-radius:10px;padding:11px 14px;margin-bottom:8px}

.ws-navb{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;margin-inline-start:5px;background:var(--gold);color:#153021;font-size:10px;font-weight:800;font-style:normal;border-radius:9px;vertical-align:middle}
.ws-syncwarn{margin:0;padding:8px 18px;background:rgba(184,69,58,.14);border-top:1px solid rgba(184,69,58,.35);border-bottom:1px solid rgba(184,69,58,.35);color:#e6a493;font-size:12px;line-height:1.5}

/* A closed Relay is not a fault. Gold, not red, and roomier to read: an
   expert seeing this needs to finish the sentence, not glance past it. */
.ws-lockwarn{background:rgba(200,162,75,.15);border-top:1px solid rgba(200,162,75,.45);border-bottom:1px solid rgba(200,162,75,.45);padding:12px 18px;line-height:1.65;font-size:13px}
.ws-flash{position:absolute;left:50%;transform:translateX(-50%);bottom:58px;background:var(--gold);color:#153021;font-size:12.5px;font-weight:700;padding:9px 16px;border-radius:20px;z-index:9;box-shadow:0 14px 30px rgba(0,0,0,.4);animation:wsflash .3s var(--ease)}
@keyframes wsflash{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.ws-empty.sm{font-size:12.5px;padding:6px 0}

.ws-hello{display:flex;align-items:center;gap:13px;margin-bottom:16px}
.ws-hello b{font-family:var(--serif);font-size:19px;color:var(--ivory);display:block}
.ws-hello span{font-size:12.5px;color:var(--sage)}

/* inbox + relay message cards */
.ws-inboxhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ws-msg{display:block;width:100%;text-align:start;border:1px solid var(--line);border-radius:12px;background:rgba(40,92,71,.14);padding:12px 13px;color:var(--ivory)}
.ws-msg.note{cursor:pointer;transition:border-color .16s var(--ease)}
.ws-msg.note:hover{border-color:var(--gold-soft)}
.ws-msg.unread{border-color:rgba(201,162,75,.55);background:rgba(201,162,75,.07)}
.ws-msg.assign.done{opacity:.62}
.ws-msgtop{display:flex;align-items:center;gap:9px}
.ws-msgwho{flex:1;min-width:0}
.ws-msgwho b{font-size:13px;font-weight:600;display:block}
.ws-msgwho span{font-size:11px;color:var(--sage)}
.ws-msgbody{font-size:13px;color:var(--ivory-dim);line-height:1.5;margin:8px 0 0}
.ws-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);flex:0 0 auto}
.ws-tag{font-style:normal;font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;background:rgba(154,167,154,.16);color:var(--sage)}
.ws-tag.warn{background:rgba(201,162,75,.18);color:var(--gold-soft)}
.ws-tag.ok{background:rgba(122,178,146,.18);color:#a9d3b6}
.ws-assigncard{margin:9px 0 0;padding:10px 12px;border:1px solid var(--line-soft);border-inline-start:2px solid var(--gold);border-radius:9px;background:rgba(8,20,15,.28)}
.ws-assigncard>b{font-size:13.5px;font-weight:600;display:block}
.ws-assignmeta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:5px;font-size:11px;color:var(--sage)}
.ws-assignmeta i{font-style:normal}
.ws-msgact{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;align-items:center}
.ws-recpt{font-size:11.5px;color:var(--gold-soft)}

/* team grid */
.ws-teamgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.ws-teamcard{position:relative;display:flex;align-items:center;gap:11px;text-align:start;background:rgba(40,92,71,.16);border:1px solid var(--line);border-radius:13px;padding:12px 13px;cursor:pointer;color:var(--ivory);transition:border-color .18s var(--ease),transform .18s var(--ease)}
.ws-teamcard:hover{border-color:var(--gold);transform:translateY(-2px)}
.ws-teamcard.broad{border-style:dashed;border-color:rgba(201,162,75,.4)}
.ws-teaminfo{flex:1;min-width:0}
.ws-teaminfo b{font-size:13px;font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-teaminfo span{font-size:11px;color:var(--sage);display:block;margin-top:1px}
.ws-seen{font-size:10.5px;color:var(--gold-soft);display:block;margin-top:3px;font-style:normal}
.ws-open{font-size:11px;color:var(--ivory-dim);white-space:nowrap}

/* conversation thread */
.ws-thread{display:flex;flex-direction:column;min-height:100%}
.ws-thhead{display:flex;flex-direction:column;gap:9px;padding-bottom:11px;border-bottom:1px solid var(--line);margin-bottom:12px}
.ws-back{align-self:flex-start;background:none;border:0;color:var(--gold-soft);font-size:12.5px;font-weight:600;cursor:pointer;padding:0}
.ws-thwho{display:flex;align-items:center;gap:11px}
.ws-thwho b{font-family:var(--serif);font-size:16px;display:block}
.ws-thwho span{font-size:11.5px;color:var(--sage)}
.ws-bubbles{display:flex;flex-direction:column;gap:9px;flex:1}
.ws-bwrap{display:flex;gap:8px;align-items:flex-end;max-width:82%}
.ws-bwrap.mine{align-self:flex-end;flex-direction:row-reverse}
.ws-bub{background:rgba(40,92,71,.3);border:1px solid var(--line);border-radius:14px;padding:9px 13px}
.ws-bwrap.mine .ws-bub{background:rgba(201,162,75,.16);border-color:rgba(201,162,75,.4)}
.ws-bub p{font-size:13.5px;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}
.ws-bub em{display:block;margin-top:4px;font-style:normal;font-size:10px;color:var(--sage)}
.ws-bub.assign{border-inline-start:2px solid var(--gold)}
.ws-bub.assign>b{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--gold-soft)}
.ws-atitle{font-weight:600}
.ws-bub.assign.done{opacity:.6}

/* composer + hand-off + mentions */
.ws-composer{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;position:sticky;bottom:0;background:linear-gradient(180deg,rgba(21,46,35,0),#152e23 30%)}
.ws-compin{display:flex;gap:8px;align-items:flex-end}
.ws-compin textarea{flex:1;font:inherit;font-size:14px;color:var(--ivory);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:11px;padding:10px 13px;resize:none;line-height:1.5;max-height:120px}
.ws-handoff{background:rgba(201,162,75,.1);border:1px solid var(--line);color:var(--gold-soft);border-radius:9px;font-size:12px;font-weight:600;padding:8px 11px;cursor:pointer;white-space:nowrap}
.ws-handoff:hover{border-color:var(--gold)}
.ws-hoform{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:rgba(8,20,15,.3);display:flex;flex-direction:column;gap:8px}
.ws-hoform input,.ws-hoform select{font:inherit;font-size:13px;color:var(--ivory);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.ws-horow{display:flex;flex-wrap:wrap;gap:8px}
.ws-horow>*{flex:1;min-width:120px}
.ws-horow.end{justify-content:flex-end}.ws-horow.end>*{flex:0 0 auto;min-width:0}
.ws-mentions{position:absolute;z-index:12;background:#1a3629;border:1px solid rgba(201,162,75,.45);border-radius:11px;padding:5px;box-shadow:0 18px 40px rgba(0,0,0,.5);min-width:230px;margin-top:4px}
.ws-ment{display:flex;align-items:center;gap:8px;width:100%;text-align:start;background:none;border:0;color:var(--ivory);font-size:12.5px;padding:7px 9px;border-radius:8px;cursor:pointer}
.ws-ment:hover{background:rgba(201,162,75,.14)}
.ws-tasg{color:var(--gold-soft)}
.ws-bellp b.mt{margin-top:10px}
.ws-bi.msg{cursor:pointer}.ws-bi.msg:hover span{color:var(--gold-soft)}

/* password visibility (typos were locking experts out) */
.ws-passrow{display:flex;gap:8px;align-items:stretch;margin-bottom:8px}
.ws-passrow input{flex:1;margin-bottom:0!important}
.ws-eye{flex:0 0 auto;width:46px;border:1px solid rgba(201,162,75,.3);border-radius:10px;background:rgba(8,20,15,.6);cursor:pointer;font-size:16px}
.ws-eye:hover{border-color:var(--gold)}

/* read-and-sign */
.ws-bub.signoff{border:1px solid rgba(201,162,75,.55);background:rgba(201,162,75,.09);min-width:min(340px,72vw)}
.ws-bub.signoff>b{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-soft)}
.ws-signstate{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid var(--line-soft)}
.ws-signed{font-size:11.5px;color:#a9d3b6}
.ws-signed.none{color:var(--sage)}

/* committee rooms */
.ws-teamcard.room{border-color:rgba(201,162,75,.3);background:rgba(201,162,75,.05)}

/* the ALCOA register */
.ws-reglead{font-size:12.5px;color:var(--ivory-dim);line-height:1.6;margin:2px 0 12px;max-width:70ch}
.ws-regfoot{font-size:11px;color:var(--sage);margin:10px 0 0}
.ws-regwrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.ws-reg{width:100%;border-collapse:collapse;font-size:12px;min-width:860px}
.ws-reg th{position:sticky;top:0;background:#1a3a2c;color:var(--gold-soft);text-align:start;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;padding:9px 10px;border-bottom:1px solid var(--line)}
.ws-reg td{padding:8px 10px;border-bottom:1px solid var(--line-soft);color:var(--ivory-dim);white-space:nowrap;font-variant-numeric:tabular-nums}
.ws-reg td:nth-child(6){white-space:normal;min-width:180px;color:var(--ivory)}
.ws-reg tr:last-child td{border-bottom:0}

/* ---- phones: the Relay must be fully usable one-handed ---- */
.ws-body{-webkit-overflow-scrolling:touch}
.ws-mentions{max-width:calc(100vw - 40px)}
@media (max-width:640px){
  .ws-ov{padding:8px}
  .ws-shell{height:94vh;height:94dvh;border-radius:14px}
  .ws-head{padding:10px 12px;gap:6px}
  .ws-brand b{font-size:16px}
  .ws-tools{gap:6px}
  .ws-body{padding:12px}
  .ws-navbar{padding:8px 10px 0;scrollbar-width:none}
  .ws-navbar::-webkit-scrollbar{display:none}
  .ws-nav{padding:10px 11px;font-size:13.5px}
  .ws-stat b{font-size:22px}
  .ws-signgrid,.ws-teamgrid{grid-template-columns:1fr}
  .ws-bwrap{max-width:92%}
  .ws-mechip{max-width:118px}
  .ws-bellp,.ws-mep{right:8px;width:min(320px,94vw)}
  [dir=rtl] .ws-bellp,[dir=rtl] .ws-mep{left:8px;right:auto}
  .ws-privacy{font-size:10.5px;padding:8px 12px}
  /* iOS zooms any focused field under 16px — keep every input at 16px on phones */
  .ws-add input,.ws-add select,.ws-hoform input,.ws-hoform select,.ws-compin textarea,
  .ws-gatecard input,.ws-pincard input,.ws-meform input,.ws-filt select,.ws-tctl select,.ws-notes{font-size:16px}
  .ws-compin{flex-wrap:wrap}
  .ws-compin textarea{flex:1 1 100%}
  .ws-compin .ws-handoff,.ws-compin .ws-btn{flex:0 0 auto;margin-inline-start:auto}
  .ws-compin .ws-handoff{margin-inline-start:0}
  .ws-thhead{gap:6px}
  .ws-cal{gap:3px}
  .ws-cday{border-radius:7px;padding:4px}
}
@media (max-width:480px){
  .ws-brand span{display:none}
  .ws-hello b{font-size:17px}
}
.ws-syncerr{font-style:normal;opacity:.75;font-size:11px}
.ws-sentst{margin-inline-start:auto;font-style:normal;font-size:11px;color:var(--gold-soft);white-space:nowrap;flex:0 0 auto}
.ws-msg.sent{opacity:.94}

/* file attachments */
.ws-fchip{display:inline-flex;align-items:center;gap:6px;max-width:100%;font:inherit;font-size:12px;color:var(--ivory);background:rgba(8,20,15,.45);border:1px solid rgba(201,162,75,.35);border-radius:8px;padding:5px 9px;cursor:pointer;text-align:start}
.ws-fchip:hover{border-color:var(--gold)}
.ws-fchip i{font-style:normal;font-size:10.5px;color:var(--sage);white-space:nowrap}
.ws-fchip.pend{cursor:default}
.ws-fx{background:none;border:0;color:var(--sage);cursor:pointer;font-size:11px;padding:0 2px}
.ws-fx:hover{color:#e6a493}
.ws-attachrow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.ws-bubfiles{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ws-reg .ws-fchip{padding:3px 8px;font-size:11.5px}

/* voice notes */
.ws-audio{width:min(280px,100%);height:36px;margin-top:6px}
.ws-handoff.recdg{background:rgba(184,69,58,.25);border-color:#b8453a;color:#e6a493;animation:wsrec 1.2s ease-in-out infinite}
@keyframes wsrec{0%,100%{opacity:1}50%{opacity:.55}}

/* meetings & decisions */
.ws-bub.meeting{border:1px solid rgba(201,162,75,.55);background:rgba(201,162,75,.07);min-width:min(360px,74vw)}
.ws-bub.meeting>b{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-soft)}
.ws-mtwhen{display:block;font-size:12.5px;color:var(--gold-soft);margin-top:4px;font-variant-numeric:tabular-nums}
.ws-mtnote{font-size:12.5px;color:var(--ivory-dim);margin:6px 0 0;line-height:1.5}
.ws-decs{margin-top:9px;padding:9px 11px;border:1px solid var(--line-soft);border-inline-start:2px solid var(--gold);border-radius:9px;background:rgba(8,20,15,.28)}
.ws-decs>b{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--gold-soft)}
.ws-dec{font-size:12.5px;line-height:1.55;margin:7px 0 0;color:var(--ivory)}
.ws-dec em{display:block;font-style:normal;font-size:10px;color:var(--sage);margin-top:2px}
.ws-cmt{position:absolute;top:4px;inset-inline-end:5px;font-size:10px}

/* overdue escalation */
.ws-msg.assign.late{border-color:rgba(184,69,58,.65);background:rgba(184,69,58,.08)}
.ws-reg tr.late td{color:#e6a493}

/* admin delete */
.ws-delmsg{align-self:center;background:none;border:0;cursor:pointer;font-size:12px;opacity:.35;padding:2px 4px;flex:0 0 auto}
.ws-delmsg:hover{opacity:1}

/* video calls */
.ws-bub.callcard{border:1px solid rgba(201,162,75,.5);background:rgba(201,162,75,.08)}
.ws-bub.callcard>b{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-soft)}
.ws-joincall{display:inline-block;text-decoration:none;margin-top:8px}

/* the Meetings section */
.ws-mtcard{border:1px solid rgba(201,162,75,.4);border-radius:13px;background:rgba(201,162,75,.06);padding:14px 15px}
.ws-mtcard.past{border-color:var(--line);background:rgba(40,92,71,.12);opacity:.92}
.ws-mthead{display:flex;align-items:flex-start;gap:10px}
.ws-mthead>div{flex:1;min-width:0}
.ws-mthead b{font-family:var(--serif);font-size:16px;display:block}
.ws-decs.mins{border-inline-start-color:#a9d3b6}
/* the permanent office meeting room card */
.ws-teamcard.standing{border-style:solid;border-color:var(--gold);background:rgba(201,162,75,.1);cursor:default}
.ws-teamcard.standing:hover{transform:none}
.ws-standact{display:flex;gap:6px;align-items:center;flex:0 0 auto}
/* the meeting-room hero card */
.ws-roomhero{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;border:1px solid var(--gold);border-radius:14px;background:linear-gradient(160deg,rgba(201,162,75,.14),rgba(201,162,75,.05));padding:16px 18px;margin-bottom:16px}
.ws-rh-tx{flex:1;min-width:min(360px,100%)}
.ws-rh-tx>b{font-family:var(--serif);font-size:18px;color:var(--ivory);display:block}
.ws-rh-tx>span{display:block;font-size:12.5px;color:var(--ivory-dim);line-height:1.55;margin-top:4px}
.ws-rh-opts{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px}
.ws-rh-opt{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ivory);cursor:pointer}
.ws-rh-opt input{accent-color:var(--gold);width:15px;height:15px}
.ws-standact.vert{flex-direction:column;align-items:stretch}
@media (max-width:640px){.ws-standact.vert{width:100%}}
/* guest invitation card */
.ws-guestcard{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px;border:1px dashed rgba(201,162,75,.5);border-radius:14px;background:rgba(40,92,71,.14);padding:14px 18px;margin-bottom:16px}
.ws-guestlink{display:block;margin-top:9px;font-size:12px;color:var(--gold-soft);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:8px;padding:8px 11px;word-break:break-all;user-select:all;direction:ltr;text-align:left}
/* standing room card: never truncate the title */
.ws-teamcard.standing{flex-wrap:wrap}
.ws-teamcard.standing .ws-teaminfo{min-width:180px}
/* round 10: search, status chips, console */
.ws-search{width:100%;font:inherit;font-size:14px;color:var(--ivory);background:rgba(8,20,15,.5);border:1px solid var(--line);border-radius:11px;padding:11px 14px;margin:4px 0 2px}
.ws-search:focus{border-color:var(--gold);outline:none}
.ws-stat{font-style:normal;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:6px;margin-top:4px;display:inline-block}
.ws-stat.ok{background:rgba(122,178,146,.18);color:#a9d3b6}
.ws-stat.warn{background:rgba(201,162,75,.2);color:var(--gold-soft)}
.ws-stat.off{background:rgba(154,167,154,.18);color:var(--sage)}

/* ---- VAM/FDC studio · tab 6: the newsletter ---- */
.vf-nl-bar{display:flex;justify-content:flex-end;margin:12px 0 10px}
.vf-nl-open{font-size:12.5px;font-weight:700;color:var(--gold-soft);text-decoration:none;border:1px solid rgba(201,162,75,.35);border-radius:999px;padding:7px 16px;transition:background .15s}
.vf-nl-open:hover{background:rgba(201,162,75,.12)}
.vf-nl-frame{width:100%;height:min(80vh,1000px);border:1px solid rgba(201,162,75,.28);border-radius:14px;background:#224f3f;display:block}

/* ---- nav fits one line with the GMP Dashboard tab added (2026-07-27) ----
   The bar carries six groups + Workspace + the CTA. Keep every label on one
   line and let the search pill be the thing that gives up room, not the tabs. */
.nav-top, .nav-solo, .nav-cta { white-space: nowrap; }
.nav-search { min-width: 0; flex: 0 1 auto; }
.nav-top-gmp { color: var(--gold-soft); }
.nav-top-gmp:hover, .nav-grp:hover .nav-top-gmp, .nav-grp:focus-within .nav-top-gmp { color: var(--ivory); }
@media (min-width: 1025px) and (max-width: 1560px) {
  .nav-links { gap: 13px; }
  .nav-search { max-width: 210px; padding: 7px 11px; }
}
@media (min-width: 1025px) and (max-width: 1360px) {
  .nav-links { gap: 11px; }
  .nav-top, .nav-solo, .nav-links a { font-size: 12.5px; }
  .nav-search .ns-lbl, .nav-search .ns-kbd { display: none; }
  .nav-search { max-width: none; padding: 8px 10px; }
  .brand .bt b { font-size: 15.5px; }
}

/* ============ 15 · THE PEPTIDE FRONTIER ============
   Added 29 July 2026 with the peptide tab. Reuses the studio's existing
   card, check and verdict language; only the pieces with no equivalent
   elsewhere are defined here. */
.bs-verdict.ok{border-color:rgba(122,178,146,.45);background:linear-gradient(150deg,rgba(122,178,146,.09),rgba(15,42,32,.22))}
.bs-verdict.warn,.bs-verdict.mid{border-color:rgba(201,162,75,.45)}
.bs-verdict.bad{border-color:rgba(196,110,92,.45);background:linear-gradient(150deg,rgba(196,110,92,.08),rgba(15,42,32,.22))}
.bs-verdict.ask{border-style:dashed;opacity:.9}
.bs-peprow{font-size:.82rem;color:var(--ivory-dim);line-height:1.65;padding:8px 0;border-top:1px dashed var(--line-soft)}
.bs-peprow:first-child{border-top:none;padding-top:0}

.bs-pepnum{width:104px;font:inherit;font-size:1.05rem;color:var(--ivory);background:rgba(15,42,32,.5);border:1px solid var(--line);border-radius:9px;padding:8px 11px;text-align:center}
.bs-pepnum:focus{outline:none;border-color:var(--gold)}
.bs-pephint{font-size:.72rem;color:var(--sage);align-self:center;margin-inline-start:10px}

.bs-peph{font-family:var(--serif,'Fraunces',serif);font-size:1.05rem;color:var(--gold-soft);font-weight:400;margin:22px 0 4px}
.bs-pepsub{font-size:.78rem;color:var(--sage);margin:0 0 10px}

.bs-pepmols{display:flex;flex-direction:column;gap:6px}
.bs-pepmol{border:1px solid var(--line-soft);border-radius:10px;background:rgba(15,42,32,.32);overflow:hidden}
.bs-pepmol.open{border-color:rgba(201,162,75,.4)}
.bs-pepmolhead{display:flex;align-items:center;gap:11px;width:100%;text-align:start;font:inherit;background:none;border:none;color:var(--ivory-dim);padding:10px 13px;cursor:pointer;flex-wrap:wrap}
.bs-pepmolhead:hover{background:rgba(201,162,75,.05)}
.bs-pepmolhead b{font-size:.86rem;color:var(--ivory);font-weight:600;min-width:132px}
.bs-pepaa{font-size:.72rem;color:var(--gold-soft);font-variant-numeric:tabular-nums;min-width:64px}
.bs-peproute{font-size:.58rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:2px 8px;border-radius:5px;white-space:nowrap}
.bs-peproute.drug{background:rgba(122,178,146,.16);color:#a9d3b6;border:1px solid rgba(122,178,146,.38)}
.bs-peproute.bio{background:rgba(196,110,92,.15);color:#e6a493;border:1px solid rgba(196,110,92,.4)}
.bs-pepuse{font-size:.72rem;color:var(--sage);margin-inline-start:auto;text-align:end}
.bs-pepnote{font-size:.8rem;color:var(--ivory-dim);line-height:1.7;padding:0 13px 12px;border-top:1px dashed var(--line-soft);padding-top:10px}

.bs-smfam.pep{background:rgba(201,162,75,.16);color:var(--gold-soft);min-width:20px;text-align:center}
.bs-pepmeth{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.bs-pepmeth span{font-size:.68rem;color:var(--gold-soft);border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:rgba(201,162,75,.06)}

.bs-pepconvs{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.bs-pepconv{display:grid;grid-template-columns:64px 152px 1fr auto;gap:12px;align-items:start;border:1px solid var(--line-soft);border-radius:10px;padding:11px 13px;background:rgba(15,42,32,.3)}
.bs-pepconv.bio{border-inline-start:3px solid rgba(63,143,176,.55)}
.bs-pepconv.gen{border-inline-start:3px solid rgba(122,178,146,.55)}
.bs-pepconv p{font-size:.81rem;color:var(--ivory-dim);line-height:1.65;margin:0}
.bs-pepwhen{font-size:.72rem;color:var(--gold-soft);font-variant-numeric:tabular-nums}
.bs-pepside{font-size:.68rem;color:var(--sage);letter-spacing:.03em}
@media(max-width:760px){.bs-pepconv{grid-template-columns:1fr;gap:6px}.bs-pepuse{margin-inline-start:0;text-align:start;flex-basis:100%}}

.bs-pepmoves{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:10px}
.bs-pepmove{border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:rgba(15,42,32,.3)}
.bs-pepmove b{display:block;font-size:.82rem;color:var(--gold-soft);margin-bottom:8px}
.bs-pepmove ul{margin:0;padding-inline-start:18px}
.bs-pepmove li{font-size:.8rem;color:var(--ivory-dim);line-height:1.7;margin-bottom:8px}
.bs-pepsrc{margin:6px 0 0;padding-inline-start:18px}
.bs-pepsrc li{font-size:.76rem;color:var(--sage);line-height:1.65;margin-bottom:6px}
.bs-pepsrc a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid var(--line)}
.bs-pepsrc a:hover{color:var(--ivory)}
/* before/after pair inside a peptide-frontier change card */
.bs-pepba{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.bs-pepba>div{border:1px solid var(--line-soft);border-radius:10px;padding:11px 13px;background:rgba(15,42,32,.34)}
.bs-pepba b{display:block;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px}
.bs-pepba p{font-size:.8rem;line-height:1.65;color:var(--ivory-dim);margin:0}
.bs-pepwas b{color:var(--sage)}
.bs-pepwas p{opacity:.82}
.bs-pepnow{border-color:rgba(201,162,75,.4)!important;background:rgba(201,162,75,.06)!important}
.bs-pepnow b{color:var(--gold-soft)}
@media(max-width:760px){.bs-pepba{grid-template-columns:1fr}}

/* .be-opt had a mobile hit-area rule but no base styling anywhere in this
   sheet, so every option button in the Biosimilar studio's planner, bridging
   and comparability tabs rendered as a raw browser button on the forest
   ground. Same visual contract as .dv-opt, which is what they were meant to
   look like. Found 29 July 2026 while adding the peptide tab. */
.be-opt{text-align:start;font:inherit;font-size:13.5px;color:var(--ivory-dim);background:rgba(8,20,15,.4);border:1px solid var(--line-soft);border-radius:10px;padding:9px 14px;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.be-opt:hover{border-color:var(--line);color:var(--ivory)}
.be-opt.on{border-color:var(--gold);background:rgba(201,162,75,.1);color:var(--gold-soft)}

/* ---- Share layer (share.js) ------------------------------------------------
   One quiet row per shareable section. Plain intent links, no SDK, nothing
   loads until the reader clicks — the Trust Centre stance applied to sharing.
   Mounted at the end of the section .wrap, outside the re-rendering apps. */
.shr{margin:26px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:9px;
  padding:12px 16px;border:1px solid rgba(199,168,105,.22);border-radius:12px;
  background:rgba(8,20,15,.28)}
.shr-h{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--gold);margin-inline-end:4px}
.shr-btn{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;border:1px solid rgba(199,162,75,.35);
  background:transparent;color:var(--ivory-dim);cursor:pointer;
  transition:border-color .2s,color .2s,background .2s}
.shr-btn:hover{border-color:var(--gold);color:var(--gold-soft);
  background:rgba(201,162,75,.08)}
.shr-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.shr-done{font-size:.78rem;color:var(--gold-soft)}
@media print{.shr{display:none}}

/* ---- Research & Academia (#academia, scholar.js) --------------------------
   Cards for the people who cite: dataset pages, citation formats, teaching
   material, the corrections channel. Same visual family as .so-* and .dsv. */
.aca-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:18px;margin-top:34px}
.aca-card{padding:22px 24px;border:1px solid rgba(199,168,105,.22);
  border-radius:14px;background:rgba(8,20,15,.28)}
.aca-card h3{font-family:'Fraunces',Georgia,serif;font-size:1.05rem;
  color:var(--ivory);margin:0 0 10px}
.aca-card p{font-size:.86rem;line-height:1.7;color:var(--ivory-dim);margin:0 0 10px}
.aca-card ul{list-style:none;margin:0;padding:0}
.aca-card li{margin:7px 0;font-size:.85rem;line-height:1.6}
.aca-card a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(201,162,75,.35)}
.aca-card a:hover{color:var(--gold);border-bottom-color:var(--gold)}
.aca-fmt{margin-top:14px;display:flex;flex-wrap:wrap;gap:9px}
.aca-note{margin-top:26px;font-size:.8rem;line-height:1.7;color:var(--sage);
  border-inline-start:2px solid rgba(201,162,75,.4);padding-inline-start:14px}

/* ---- Tasks v3 (workspace.js, 2026-08-31) ----------------------------------
   Inline-editable task rows, the whole-team assignment, and the on-server
   task block. The title edits in place: borderless input that only shows its
   seam on hover/focus, so the row still reads as a row. */
.ws-warn{margin:0 0 12px;padding:10px 14px;border:1px solid rgba(224,138,122,.5);
  border-radius:10px;background:rgba(224,138,122,.08);color:#e8b0a4;font-size:.82rem;line-height:1.6}
.ws-tedit{background:transparent;border:0;border-bottom:1px dashed transparent;
  color:inherit;font:inherit;font-weight:600;width:100%;min-width:120px;padding:0}
.ws-tedit:hover{border-bottom-color:rgba(201,162,75,.35)}
.ws-tedit:focus{border-bottom-color:var(--gold);outline:none}
.ws-tdate{background:rgba(8,20,15,.4);border:1px solid var(--line-soft);border-radius:7px;
  color:var(--ivory-dim);font-size:12px;padding:2px 6px;color-scheme:dark}
.ws-tdate.od{color:#e08a7a;border-color:rgba(224,138,122,.5)}
.ws-tprsel{background:rgba(8,20,15,.4);border:1px solid var(--line-soft);border-radius:7px;
  color:var(--ivory-dim);font-size:12px;padding:2px 6px}
.ws-syncsub{font-size:.72rem;color:var(--sage);font-weight:400}
.ws-check.srv{cursor:default;font-size:13px;color:var(--gold);display:inline-flex;
  align-items:center;justify-content:center}
.ws-task.srv{border-inline-start:2px solid rgba(201,162,75,.45)}
.ws-add .ws-attachrow{width:100%}

/* ---- The Morning Brief (#briefing, briefing.js) ---------------------------
   The day's regulatory movement at the very top of the page: real dated rows
   from the office's own monitors, three slim columns, nothing invented. */
#briefing{padding:26px 24px 6px}
.mb-band{border:1px solid rgba(199,168,105,.28);border-radius:16px;
  background:rgba(8,20,15,.34);padding:20px 24px 14px}
.mb-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;
  justify-content:space-between;margin-bottom:6px}
.mb-stamp{font-size:.74rem;letter-spacing:.05em;color:var(--gold-soft)}
.mb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:20px;min-height:120px}
.mb-h{font-family:'Fraunces',Georgia,serif;font-size:.95rem;color:var(--ivory);
  margin:8px 0 8px}
.mb-item{display:block;padding:7px 0;border-bottom:1px solid rgba(199,168,105,.12);
  text-decoration:none;color:inherit}
a.mb-item:hover .mb-t{color:var(--gold-soft)}
.mb-meta{display:flex;gap:8px;font-size:.7rem;letter-spacing:.04em;
  text-transform:uppercase;color:var(--sage);margin-bottom:2px}
.mb-meta time{color:var(--gold)}
.mb-t{display:block;font-size:.84rem;line-height:1.55;color:var(--ivory-dim);
  transition:color .2s}
.mb-none{font-size:.8rem;color:var(--sage);margin:6px 0}
.mb-more{display:inline-block;margin-top:9px;font-size:.78rem;color:var(--gold);
  text-decoration:none}
.mb-more:hover{color:var(--gold-soft)}
.mb-foot{margin:14px 0 0;font-size:.75rem;line-height:1.6;color:var(--sage)}
.mb-foot a{color:var(--gold)}
.mb-fallback{display:flex;flex-wrap:wrap;gap:14px;padding:8px 0 12px}
.mb-fallback a{color:var(--gold-soft);font-size:.85rem;text-decoration:none;
  border:1px solid rgba(199,162,75,.35);border-radius:999px;padding:7px 16px}
.mb-fallback a:hover{border-color:var(--gold);color:var(--gold)}
@media print{#briefing{display:none}}

/* ---- Morning Brief: the regulatory-impact chips ---------------------------
   Status and dates are facts read off the source; the impact chip is a
   judgement and renders only when a named expert signed it (briefing.js). */
.mb-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.mb-chip{font-style:normal;font-size:10px;letter-spacing:.03em;line-height:1.5;
  padding:1px 7px;border-radius:999px;border:1px solid rgba(201,162,75,.3);
  color:var(--gold-soft);white-space:nowrap}
.mb-chip.on{border-color:rgba(63,143,107,.6);color:#8fd0ae;
  background:rgba(63,143,107,.12)}
.mb-chip.warn{border-color:rgba(224,145,126,.55);color:#e0917e}
.mb-chip.quiet{border-color:rgba(154,167,154,.3);color:var(--sage)}
.mb-chip.imp{font-weight:600;cursor:help}
.mb-chip.imp.high{border-color:rgba(224,145,126,.75);color:#f0b3a4;
  background:rgba(224,145,126,.14)}
.mb-chip.imp.medium{border-color:rgba(201,162,75,.65);color:var(--gold-soft);
  background:rgba(201,162,75,.12)}
.mb-chip.imp.low{border-color:rgba(154,167,154,.45);color:var(--sage)}
