:root {
  --ink:#F7FAFC; --panel:#FFFFFF; --panel-2:#EEF4FA; --line:#E2E8F0;
  --ivory:#0F172A; --muted:#5C6B7A; --faint:#3A5A8C;
  --gold:#C9A227; --on-gold:#0B0F16; --copper:#F59E0B; --sea:#2563EB;
  --good:#10B981; --bad:#EF4444; --warn:#F59E0B; --info:#2563EB;
  --gold-wash:rgba(201,162,39,.10); --good-wash:rgba(16,185,129,.12); --bad-wash:rgba(239,68,68,.10); --warn-wash:rgba(245,158,11,.14);
  --accent:#C9A227;
  --serif:"Segoe UI", "Segoe UI Variable", system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --sans:"Segoe UI", "Segoe UI Variable", system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", "SFMono-Regular", Menlo, Consolas, monospace;
  --fs-meta:13px; --fs-body:16px; --fs-title:22px; --fs-page:32px; --fs-display:28px; --fs-stat:20px;
  --shadow:0 1px 3px rgba(15,23,42,.05), 0 1px 2px rgba(15,23,42,.03);
}
* { box-sizing:border-box; }
html, body { margin:0; background:
  radial-gradient(900px 420px at 100% -10%, var(--gold-wash), transparent 55%),
  var(--ink); color:var(--ivory); font-family:var(--sans); font-weight:400; font-size:var(--fs-body); line-height:1.5; }
button, input, select, textarea { font-family:inherit; font-size:var(--fs-body); color:inherit; }
button { cursor:pointer; }
a { color:var(--sea); }
.top { display:flex; flex-direction:column; align-items:stretch; gap:0; padding:0; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--panel); box-shadow:var(--shadow); z-index:20; }
.top-row { display:flex; justify-content:flex-start; gap:16px; align-items:center; min-height:56px; padding:0 20px; }
.brand { display:inline-flex; gap:10px; align-items:center; min-width:0; color:inherit; text-decoration:none; flex:0 0 auto; padding-right:14px; margin-right:4px; border-right:1px solid var(--line); }
.brand-logo { width:auto; height:34px; display:block; }
.brand-text { display:flex; flex-direction:column; line-height:1.05; min-width:0; }
.brand-kicker, .product { margin:0; color:var(--gold); font-size:var(--fs-meta); font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.brand h1 { font-family:var(--sans); font-weight:600; font-size:10px; margin:2px 0 0; letter-spacing:.1em; line-height:1.2; color:var(--muted); text-transform:uppercase; }
html[dir="rtl"] h1, html[dir="rtl"] h2, html[dir="rtl"] h3 { letter-spacing:0; }
html[lang="ar"] body, html[lang="fa"] body { font-family:"Noto Naskh Arabic", "Segoe UI", system-ui, sans-serif; }
html[lang="he"] body { font-family:"Noto Sans Hebrew", "Segoe UI", system-ui, sans-serif; }
html[lang="zh-Hans"] body { font-family:"Noto Sans SC", "Segoe UI", system-ui, sans-serif; }
html[lang="ja"] body { font-family:"Noto Sans JP", "Segoe UI", system-ui, sans-serif; }
html[lang="ko"] body { font-family:"Noto Sans KR", "Segoe UI", system-ui, sans-serif; }
html[lang="hi"] body { font-family:"Noto Sans Devanagari", "Segoe UI", system-ui, sans-serif; }
.brand p, .quiet { margin:2px 0 0; color:var(--muted); font-size:var(--fs-meta); letter-spacing:.08em; text-transform:uppercase; }
.heights { display:flex; gap:22px; flex-wrap:wrap; font-size:var(--fs-meta); color:var(--muted); }
.top-meta { padding:8px 20px; background:var(--panel-2); border-top:1px solid var(--line); }
.heights b { display:block; color:var(--ivory); font-family:var(--mono); font-size:var(--fs-stat); font-weight:500; margin-top:2px; }
.top-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:flex-end; margin-left:auto; }
.portal-nav { display:flex; align-items:center; gap:2px; flex:1 1 auto; min-width:0; }
.portal-group { position:relative; }
.portal-trigger { display:inline-flex; align-items:center; gap:5px; height:32px; padding:0 12px; border-radius:6px; font-size:var(--fs-meta); font-weight:500; color:var(--muted); text-decoration:none; white-space:nowrap; background:transparent; border:0; }
.portal-group > .portal-trigger::after { content:""; width:5px; height:5px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-1px) rotate(45deg); opacity:.45; margin-left:2px; }
.portal-group:hover > .portal-trigger, .portal-group:focus-within > .portal-trigger, .portal-group.on > .portal-trigger, .portal-direct.on, .portal-trigger:hover { background:var(--gold-wash); color:var(--gold); }
.portal-menu { position:absolute; top:100%; left:0; min-width:220px; background:var(--panel); border:1px solid var(--line); border-radius:8px; box-shadow:0 12px 32px rgba(15,23,42,.12); padding:6px; display:none; z-index:30; }
.portal-group:hover > .portal-menu, .portal-group:focus-within > .portal-menu { display:block; }
.portal-item { display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:5px; font-size:var(--fs-meta); font-weight:500; color:var(--muted); text-decoration:none; white-space:nowrap; }
.portal-item:hover { background:var(--gold-wash); color:var(--ivory); }
.portal-item.on { background:rgba(201,162,39,.16); color:var(--gold); font-weight:600; }
a.textlink { color:var(--muted); text-decoration:none; font-size:var(--fs-meta); padding:4px 8px; border-radius:5px; white-space:nowrap; }
a.textlink:hover { color:var(--ivory); background:var(--panel-2); }
.btn:focus-visible, .portal-nav a:focus-visible, .portal-trigger:focus-visible, nav.side button:focus-visible, a.textlink:focus-visible, a.brand:focus-visible, .wire-btn:focus-visible, .flow-site:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
select.jil-lang, .session { background:var(--panel-2); color:var(--ivory); border:1px solid var(--line); border-radius:6px; padding:6px 10px; }
select.jil-lang { max-width:148px; }
.shell { display:grid; grid-template-columns:248px minmax(0,1fr); min-height:calc(100vh - var(--header-h, 128px)); }
nav.side { border-inline-end:1px solid var(--line); padding:14px 10px 32px; }
nav.side .sec { margin:18px 12px 6px; font-size:var(--fs-meta); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
nav.side button, .textbtn { width:100%; text-align:start; background:transparent; border:0; color:var(--muted); padding:9px 12px; border-radius:10px; font-size:var(--fs-body); line-height:1.3; }
nav.side button.on { color:var(--gold); background:rgba(201,162,39,.16); box-shadow:inset 3px 0 0 var(--gold); }
html[dir="rtl"] nav.side button.on { box-shadow:inset -3px 0 0 var(--gold); }
nav.side button small { display:block; color:var(--muted); font-size:var(--fs-meta); }
.view { padding:28px 32px 80px; max-width:1180px; }
h2 { font-family:var(--serif); font-weight:600; font-size:var(--fs-page); line-height:1.15; margin:0; letter-spacing:0; }
.rule { width:48px; height:2px; background:var(--accent); margin:12px 0; border:0; }
.lede { color:var(--muted); margin:0 0 22px; font-size:var(--fs-body); line-height:1.5; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.grid-2 { display:grid; grid-template-columns:1.15fr .85fr; gap:14px; }
.grid-3 { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:18px; text-align:left; color:inherit; box-shadow:var(--shadow); }
a.card { display:block; text-decoration:none; color:inherit; }
a.card:hover { border-color:var(--gold); }
.card h3 { font-family:var(--serif); font-weight:600; font-size:var(--fs-title); margin:6px 0; letter-spacing:0; line-height:1.2; }
.card.pick { width:100%; }
.card.pick.on { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.kicker { letter-spacing:.12em; text-transform:uppercase; font-size:var(--fs-meta); color:var(--muted); }
.price, .mono { font-family:var(--mono); }
.mono, .canon { overflow-wrap:anywhere; }
.canon { white-space:pre-wrap; font-size:var(--fs-meta); color:var(--muted); margin-top:14px; }
a.textbtn { display:block; color:var(--muted); padding:8px 12px; }
.price { color:var(--gold); font-size:var(--fs-stat); }
.muted { color:var(--muted); }
.faint { color:var(--faint); }
.btn { border:1px solid var(--line); background:var(--panel); color:var(--ivory); border-radius:6px; padding:8px 14px; box-shadow:var(--shadow); }
.btn.gold { background:var(--gold); color:var(--on-gold); border-color:transparent; font-weight:600; }
.btn.danger { border-color:var(--bad); color:var(--bad); background:var(--bad-wash); }
.btn:disabled { opacity:.45; cursor:not-allowed; }
.banner { border:1px solid var(--line); border-radius:8px; padding:12px 14px; margin:0 0 14px; color:var(--muted); background:var(--panel); }
.banner.bad { border-color:var(--bad); color:var(--bad); background:var(--bad-wash); }
.banner.ok { border-color:var(--good); color:var(--good); background:var(--good-wash); }
.banner.warn { border-color:var(--warn); color:var(--warn); background:var(--warn-wash); }
.figures { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.figure { background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:14px 16px; }
.figure b { display:block; font-family:var(--mono); font-size:var(--fs-stat); font-weight:500; margin-top:4px; }
label.f, .f { display:block; margin-top:12px; color:var(--muted); font-size:var(--fs-meta); }
.why { display:block; color:var(--muted); font-size:var(--fs-meta); margin-top:4px; line-height:1.45; }
input.inp, select.inp, textarea.inp { width:100%; background:var(--panel); color:var(--ivory); border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin-top:6px; }
textarea.inp { min-height:96px; resize:vertical; }
.checks { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }
.check { display:flex; gap:8px; align-items:flex-start; background:var(--panel-2); border-radius:12px; padding:10px 12px; color:var(--ivory); font-size:var(--fs-body); }
table { width:100%; border-collapse:collapse; font-size:var(--fs-body); }
th { text-align:start; font-size:var(--fs-meta); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-weight:600; padding:8px; border-bottom:1px solid var(--line); }
td { padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
tr.hit { cursor:pointer; }
tr.hit:hover td { background:var(--panel-2); }
.chip { display:inline-block; border:1px solid var(--line); border-radius:999px; padding:3px 8px; font-family:var(--mono); font-size:var(--fs-meta); color:var(--muted); background:var(--panel); }
.chip.ok { color:var(--good); border-color:var(--good); background:var(--good-wash); }
.chip.bad { color:var(--bad); border-color:var(--bad); background:var(--bad-wash); }
.chip.warn { color:var(--warn); border-color:var(--warn); background:var(--warn-wash); }
.steps { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.steps i { font-style:normal; font-size:var(--fs-meta); color:var(--muted); border-bottom:2px solid var(--line); padding-bottom:4px; }
.steps i.on { color:var(--ivory); border-color:var(--accent); }
.steps i.done { color:var(--good); }
.split { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:18px; align-items:start; }
.rail .card { position:sticky; top:92px; }
.doc, .person, .ticket { display:grid; grid-template-columns:1fr auto; gap:8px 12px; padding:12px 0; border-top:1px solid var(--line); }
.path { list-style:none; padding:0; margin:0; }
.path li { padding-block:10px; padding-inline:14px 0; border-inline-start:2px solid var(--accent); margin-inline-start:8px; }
.tree { display:flex; flex-direction:column; gap:8px; }
.tree .node { background:var(--panel-2); border-radius:12px; padding:10px 12px; }
.wire { overflow:auto; max-height:min(70vh, 640px); padding:4px 2px 8px; }
.wire ul { list-style:none; margin:0; padding:0; }
.wire ul ul { padding-inline-start:22px; }
.wire li { position:relative; margin:0; padding:6px 0; }
.wire ul ul > li { padding-inline-start:16px; }
.wire ul ul > li::before { content:""; position:absolute; inset-inline-start:0; top:0; bottom:0; border-inline-start:1px solid var(--muted); }
.wire ul ul > li::after { content:""; position:absolute; inset-inline-start:0; top:24px; inline-size:14px; border-top:1px solid var(--muted); }
.wire ul ul > li:last-child::before { bottom:auto; height:24px; }
.wire-btn { display:inline-flex; align-items:baseline; gap:10px; background:var(--panel-2); border:1px solid var(--line); color:var(--ivory); border-radius:10px; padding:8px 12px; text-align:start; font-size:var(--fs-body); font-weight:600; line-height:1.3; white-space:nowrap; }
.wire-btn .wire-meta { color:var(--muted); font-weight:400; font-size:var(--fs-meta); }
.wire-btn.on { border-color:var(--gold); }
.wire-btn:hover { border-color:var(--gold); color:var(--ivory); }
.cc { display:flex; flex-direction:column; gap:10px; margin:0 0 18px; }
.cc-bar { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; padding:16px 18px 14px; background:var(--panel); border:1px solid var(--line); border-radius:18px; box-shadow:inset 0 3px 0 var(--gold); }
.cc-title { font-family:var(--serif); font-weight:600; font-size:var(--fs-title); line-height:1.15; margin-top:4px; color:var(--ivory); }
.cc-sub { margin:4px 0 0; color:var(--muted); font-size:var(--fs-meta); }
.cc-status { display:flex; flex-direction:column; align-items:flex-end; gap:2px; text-align:end; min-width:0; }
.cc-count { font-family:var(--mono); font-size:var(--fs-stat); font-weight:600; color:var(--good); }
.cc-tiles { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.cc-tile { display:flex; flex-direction:column; min-width:0; background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:14px 16px 12px; box-shadow:inset 0 3px 0 var(--line); }
.cc-tile.tone-gold { box-shadow:inset 0 3px 0 var(--gold); }
.cc-tile.tone-sea { box-shadow:inset 0 3px 0 var(--sea); }
.cc-tile.tone-copper { box-shadow:inset 0 3px 0 var(--copper); }
.cc-tile.tone-warn { box-shadow:inset 0 3px 0 var(--warn); }
.cc-tile.tone-bad { box-shadow:inset 0 3px 0 var(--bad); }
.cc-tile.tone-good { box-shadow:inset 0 3px 0 var(--good); }
.cc-num { display:block; margin:8px 0; font-family:var(--mono); font-weight:500; font-size:var(--fs-page); line-height:1.05; color:var(--ivory); overflow-wrap:anywhere; }
.cc-tile.tone-gold .cc-num { color:var(--gold); }
.cc-tile.tone-sea .cc-num { color:var(--sea); }
.cc-tile.tone-copper .cc-num { color:var(--copper); }
.cc-tile.tone-warn .cc-num { color:var(--warn); }
.cc-tile.tone-bad .cc-num { color:var(--bad); }
.cc-tile.tone-good .cc-num { color:var(--good); }
.cc-count.warn { color:var(--warn); }
.cc-tile .why { margin-top:auto; }
.cc-board { display:grid; grid-template-columns:minmax(0, 1fr); gap:10px; align-items:start; }
.cc-board > * { min-width:0; }
.cc-ops { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:8px; margin-top:10px; }
.cc-ops-card { display:flex; align-items:center; gap:8px; min-width:0; padding:7px 10px; background:var(--panel-2); border:1px solid var(--line); border-radius:10px; }
.cc-ops-flag { font-size:16px; line-height:1; flex:0 0 auto; }
.cc-ops-name { display:flex; flex-direction:column; min-width:0; }
.cc-ops-name b { color:var(--ivory); font-size:var(--fs-meta); font-weight:600; line-height:1.2; letter-spacing:.04em; }
.cc-ops-name span { color:var(--muted); font-size:var(--fs-meta); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cc-id { font-family:var(--mono); font-weight:600; color:var(--ivory); }
.cc-dot { width:8px; height:8px; border-radius:50%; background:var(--good); flex:0 0 auto; box-shadow:0 0 8px 1px var(--good); animation:cc-seat-blink 1.1s linear infinite; }
.cc-vals td .cc-dot { display:inline-block; margin-inline-end:8px; vertical-align:middle; }
.cc-ops-card:nth-child(2) .cc-dot, .cc-vals tr:nth-child(2) .cc-dot { animation-delay:.1s; }
.cc-ops-card:nth-child(3) .cc-dot, .cc-vals tr:nth-child(3) .cc-dot { animation-delay:.2s; }
.cc-ops-card:nth-child(4) .cc-dot, .cc-vals tr:nth-child(4) .cc-dot { animation-delay:.3s; }
.cc-ops-card:nth-child(5) .cc-dot, .cc-vals tr:nth-child(5) .cc-dot { animation-delay:.4s; }
.cc-ops-card:nth-child(6) .cc-dot, .cc-vals tr:nth-child(6) .cc-dot { animation-delay:.5s; }
.cc-ops-card:nth-child(7) .cc-dot, .cc-vals tr:nth-child(7) .cc-dot { animation-delay:.6s; }
.cc-ops-card:nth-child(8) .cc-dot, .cc-vals tr:nth-child(8) .cc-dot { animation-delay:.7s; }
.cc-ops-card:nth-child(9) .cc-dot, .cc-vals tr:nth-child(9) .cc-dot { animation-delay:.8s; }
.cc-ops-card:nth-child(10) .cc-dot, .cc-vals tr:nth-child(10) .cc-dot { animation-delay:.9s; }
.cc-node-name { font-family:var(--serif); font-weight:600; font-size:var(--fs-title); margin:8px 0 4px; color:var(--ivory); }
.flow-card { margin:0; }
.flow-stage { position:relative; --flow-list:min(52vh, 520px); }
.flow-stage.compact { --flow-list:240px; }
.flow-svg { position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; overflow:hidden; }
.flow-clusters { position:relative; z-index:1; display:grid; gap:22px; align-items:stretch; }
.flow-clusters:has([data-cluster="uae"]):has([data-cluster="india"]) { grid-template-columns:minmax(200px, 300px) 76px minmax(0, 1fr); }
.flow-clusters:has([data-cluster="uae"]):not(:has([data-cluster="india"])) { grid-template-columns:minmax(0, 1fr) 76px; }
.flow-clusters:has([data-cluster="india"]):not(:has([data-cluster="uae"])) { grid-template-columns:76px minmax(0, 1fr); }
.flow-corridor-col { display:flex; flex-direction:column; min-width:0; min-height:160px; }
.flow-corridor-col .flow-kicker { text-align:center; }
.flow-site.flow-corridor { flex:1; align-items:center; text-align:center; justify-content:center; min-height:140px; padding:10px 6px; }
.flow-site.flow-corridor .flow-name,
.flow-corridor-col .flow-kicker { overflow-wrap:normal; word-break:normal; }
.flow-site.flow-corridor .flow-name { white-space:nowrap; }
.flow-cluster { min-width:0; }
.flow-cluster[data-cluster="uae"] { max-width:480px; }
.flow-kicker { margin:0 0 10px; color:var(--muted); font-size:var(--fs-meta); letter-spacing:.12em; text-transform:uppercase; }
.flow-uae { display:grid; grid-template-columns:1fr 1fr; gap:64px 40px; }
.flow-uae .flow-hub { grid-column:1 / -1; justify-self:center; min-width:min(100%, 180px); }
.flow-india { display:grid; grid-template-columns:168px minmax(0, 1fr); column-gap:56px; align-items:start; }
.flow-bank-list { display:flex; flex-direction:column; gap:8px; max-height:var(--flow-list); overflow:auto; padding-inline-end:4px; min-width:0; }
.flow-site { display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-width:0; text-decoration:none; color:var(--ivory); background:var(--panel-2); border:1px solid var(--line); border-radius:12px; padding:8px 10px; box-shadow:inset 0 3px 0 var(--good); }
.flow-site.warn { box-shadow:inset 0 3px 0 var(--warn); }
.flow-site.bad { box-shadow:inset 0 3px 0 var(--bad); }
.flow-site.here { border-color:var(--gold); }
.flow-site .flow-code { font-family:var(--mono); font-weight:600; font-size:var(--fs-body); line-height:1.2; color:var(--ivory); }
.flow-site.warn .flow-code { color:var(--warn); }
.flow-site.bad .flow-code { color:var(--bad); }
.flow-site .flow-name, .flow-site .flow-state { font-size:var(--fs-meta); line-height:1.3; color:var(--muted); overflow-wrap:anywhere; }
.flow-site.bad .flow-state { color:var(--bad); }
.flow-site.warn .flow-state { color:var(--warn); }
.flow-dot { width:8px; height:8px; border-radius:50%; background:var(--good); }
.flow-site.warn .flow-dot { background:var(--warn); }
.flow-site.bad .flow-dot { background:var(--bad); }
.flow-legend { display:flex; flex-wrap:wrap; gap:8px 16px; margin:14px 0 0; color:var(--muted); font-size:var(--fs-meta); }
.flow-key { display:inline-flex; align-items:center; gap:6px; }
.flow-key i { width:18px; height:0; border-top:2px dotted var(--good); }
.flow-key.warn i { border-top-color:var(--warn); }
.flow-key.bad i { border-top-color:var(--bad); }
.flow-line { fill:none; stroke:var(--good); stroke-width:1.6; stroke-dasharray:2 7; stroke-linecap:round; animation:flow-dash 2.4s linear infinite; }
.flow-line.warn { stroke:var(--warn); }
.flow-line.bad { stroke:var(--bad); }
@keyframes flow-dash { to { stroke-dashoffset:-36; } }
@keyframes cc-seat-blink {
  0%, 46% { opacity:1; box-shadow:0 0 8px 1px var(--good); }
  54%, 100% { opacity:.15; box-shadow:none; }
}
@media (prefers-reduced-motion: reduce) {
  .flow-line { animation:none; }
  .cc-dot { animation:none; opacity:1; box-shadow:none; }
}
.missing li { margin:4px 0; }
.navtoggle { display:none; align-items:center; height:32px; padding:0 10px; border:1px solid var(--line); border-radius:6px; background:var(--panel-2); color:var(--ivory); font-size:var(--fs-meta); font-weight:600; }
.session { max-width:280px; }
details.gen { border-top:1px solid var(--line); padding:10px 0; }
details.gen summary { cursor:pointer; color:var(--ivory); }
.gen-row { display:grid; grid-template-columns:1.4fr .9fr; gap:12px; align-items:center; padding:10px 0; border-top:1px solid var(--line); }
.gen-row.rule-off { opacity:.45; }
.gen-ctrl { display:flex; flex-direction:column; gap:6px; align-items:flex-start; }
.gen-ctrl .inp { margin-top:0; }
pre.pack { max-height:240px; overflow:auto; margin:12px 0 0; background:var(--ink); border:1px solid var(--line); border-radius:10px; padding:12px; white-space:pre-wrap; word-break:break-word; color:var(--muted); }
.swatch { width:28px; height:28px; border-radius:50%; border:2px solid transparent; }
.swatch.on { border-color:var(--ivory); }
.notes { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:14px; }
.note { position:relative; background:var(--panel); border:1px solid var(--line); border-radius:22px; padding:18px 18px 16px; color:var(--ivory); min-width:0; }
.note .note-top { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.note .code { font-family:var(--serif); font-weight:500; font-size:var(--fs-display); line-height:1.1; margin:8px 0 4px; color:var(--ivory); letter-spacing:-.02em; overflow-wrap:anywhere; }
.note p { margin:6px 0; color:var(--ivory); font-size:var(--fs-body); line-height:1.5; }
.note .unit, .note .kicker { color:var(--muted); }
.note .issued { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin:8px 0 2px; }
.note .issued .num { font-family:var(--serif); font-weight:500; font-size:var(--fs-display); line-height:1.1; letter-spacing:-.02em; color:var(--ivory); }
.note .issued .cap { font-size:var(--fs-meta); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.note .big { font-family:var(--serif); font-weight:500; font-size:var(--fs-display); line-height:1.15; letter-spacing:-.02em; color:var(--ivory); margin:8px 0 2px; }
.card .big { font-family:var(--sans); font-size:var(--fs-body); font-weight:400; line-height:1.5; color:var(--ivory); margin-top:12px; }
.note .btn { margin-top:12px; text-decoration:none; color:var(--ivory); }
.note.uae { box-shadow:inset 0 3px 0 var(--gold); }
.note.gld { box-shadow:inset 0 3px 0 var(--copper); }
.note.oil { box-shadow:inset 0 3px 0 var(--sea); }
.note.yours { box-shadow:inset 0 3px 0 var(--gold); }
.note.on { border-color:var(--ivory); }
.note + .figures { margin-top:14px; }
.desk { display:grid; grid-template-columns:1.15fr .85fr; gap:14px; margin-top:14px; }
.stage-follow { margin-top:22px; }
.desk-inline { margin-top:14px; }
.flow { height:3px; background:var(--line); margin:10px 0 14px; border-radius:2px; }
.flow i { display:block; height:3px; width:0; background:var(--gold); transition:width .4s linear; }
@media (prefers-reduced-motion: reduce) { .flow i { transition:none; } }
@media (max-width:980px) {
  .shell, .grid-2, .grid-3, .split, .figures, .checks, .gen-row, .notes, .desk { grid-template-columns:1fr; display:grid; }
  .shell { display:block; }
  .top-row { flex-wrap:wrap; padding:8px 16px; }
  .brand { border-right:0; margin-right:0; padding-right:0; }
  .top-actions { width:100%; justify-content:flex-start; margin-left:0; }
  .top-meta { padding:8px 16px; }
  .top-actions .btn, .session, select.jil-lang { white-space:nowrap; }
  .session { flex:1; max-width:none; }
  .navtoggle { display:inline-flex; }
  .portal-nav { position:fixed; top:var(--header-h, 96px); right:0; bottom:0; width:280px; max-width:80vw; flex:none; flex-direction:column; align-items:stretch; gap:0; padding:12px 8px; background:var(--panel); border-left:1px solid var(--line); box-shadow:-8px 0 32px rgba(15,23,42,.12); transform:translateX(100%); z-index:30; overflow:auto; }
  .portal-nav.open { transform:translateX(0); }
  .portal-group { width:100%; }
  .portal-group > .portal-trigger, .portal-direct { width:100%; justify-content:space-between; height:38px; }
  .portal-menu { position:static; display:block; box-shadow:none; border:0; background:transparent; padding:0 0 4px 12px; min-width:0; }
  nav.side { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:4px; padding:8px 10px; border-inline-end:0; border-bottom:1px solid var(--line); position:sticky; top:var(--header-h, 120px); background:var(--panel); z-index:4; }
  nav.side .sec { flex:0 0 auto; margin:0 4px 0 10px; align-self:center; }
  nav.side button, nav.side a.textbtn { width:auto; flex:0 0 auto; white-space:nowrap; }
  .view { padding:22px 16px 72px; }
  .cc-bar { flex-direction:column; align-items:flex-start; }
  .cc-status { align-items:flex-start; text-align:start; }
  .cc-tiles { display:flex; gap:10px; overflow-x:auto; }
  .cc-tile { flex:1 0 148px; }
  .cc-num { font-size:var(--fs-stat); }
  .cc-board { grid-template-columns:1fr; }
  .cc-ops { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .flow-clusters:has([data-cluster="uae"]):has([data-cluster="india"]) { grid-template-columns:96px minmax(0, 1fr); grid-template-areas:"corridor india" "corridor uae"; }
  .flow-corridor-col { grid-area:corridor; }
  .flow-cluster[data-cluster="uae"] { grid-area:uae; }
  .flow-cluster[data-cluster="india"] { grid-area:india; }
  .flow-clusters:has([data-cluster="uae"]):not(:has([data-cluster="india"])) { grid-template-columns:minmax(0, 1fr) 96px; }
  .flow-clusters:has([data-cluster="india"]):not(:has([data-cluster="uae"])) { grid-template-columns:96px minmax(0, 1fr); }
  .flow-india { grid-template-columns:96px minmax(0, 1fr); column-gap:24px; }
  .flow-bank-list { max-height:320px; }
  .flow-cluster[data-cluster="uae"] { max-width:none; }
}
