/* ==========================================================================
   seiflden.com v3 — lexicon.css
   «معجم هندسة الإيرادات / The Revenue Engineering Lexicon»: hub + term pages.
   Loaded after site.css (tokens, header, footer, buttons). Logical properties
   only; RTL is driven by dir="rtl" on <html>. Theme tokens only (both themes).
   ========================================================================== */

/* English pages never download Plex Arabic: Arabic runs use the system face */
html[lang="en"] [lang="ar"],
html[lang="en"] [lang="ar"] * {
  font-family: system-ui, -apple-system, "Segoe UI", Tahoma, "Geeza Pro", sans-serif;
  letter-spacing: 0;
}
.no-js .js-only { display: none !important; }
[hidden] { display: none !important; }

/* ---------- Shared ---------- */
.crumbs { margin-block-end: var(--sp-5); font-size: .8125rem; color: var(--t3); }
:lang(ar) .crumbs { font-size: .875rem; }
.crumbs ol { display: flex; flex-wrap: wrap; align-items: center; }
.crumbs li { display: inline-flex; align-items: center; min-width: 0; }
.crumbs li + li::before { content: "/"; margin-inline: 8px; color: var(--b2); }
.crumbs a { display: inline-flex; align-items: center; min-height: 24px; color: var(--t3); overflow-wrap: anywhere; }
.crumbs a:hover { color: var(--t1); }
.crumbs a[aria-current="page"] { color: var(--t2); }

.lx-kicker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  margin-block-end: var(--sp-4);
  font-size: .8125rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--acc);
}
:lang(ar) .lx-kicker { letter-spacing: 0; text-transform: none; font-size: .9375rem; }
.lx-kicker a { color: inherit; text-decoration: underline; text-decoration-color: var(--acc-line); text-underline-offset: 4px; }
.lx-kicker a:hover { text-decoration-color: currentColor; }
.lx-kicker .sep { display: inline-block; width: 16px; height: 1px; margin-inline: 10px; background: currentColor; opacity: .5; }

.lx-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 1px 10px;
  border-radius: 999px;
  border: 1px solid var(--b2);
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--t2);
  white-space: nowrap;
}
:lang(ar) .lx-badge { font-size: .8125rem; }
.lx-badge.is-canon { color: var(--acc); border-color: var(--acc-line); background: var(--acc-soft); }
.lx-badge.is-concept { color: var(--t1); border-color: var(--b2); background: var(--s2); }
.lx-badge.is-proposed { color: var(--t1); border-color: var(--amber); background: var(--amber-soft); border-style: dashed; }

.lx-other { color: var(--t3); }

.lx-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--b1); border-radius: var(--r-md); background: var(--s1); }
.lx-table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.lx-table caption { caption-side: top; text-align: start; padding: var(--sp-3) var(--sp-4); font-weight: 600; color: var(--t1); border-block-end: 1px solid var(--b1); }
.lx-table th, .lx-table td { padding: 10px var(--sp-4); text-align: start; vertical-align: top; border-block-start: 1px solid var(--b1); }
.lx-table thead th { border-block-start: 0; font-size: .75rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--t3); background: var(--s2); }
:lang(ar) .lx-table thead th { letter-spacing: 0; text-transform: none; font-size: .8125rem; }
.lx-table td { color: var(--t2); overflow-wrap: anywhere; }
.lx-table td:first-child { color: var(--t1); font-variant-numeric: tabular-nums; }
.lx-kind { display: block; margin-block-start: 2px; font-size: .75rem; font-weight: 500; color: var(--t3); }
:lang(ar) .lx-kind { font-size: .8125rem; }

sub { font-size: .72em; line-height: 0; vertical-align: -.25em; }

/* ---------- Hub: hero ---------- */
.lx-hero { position: relative; overflow: hidden; padding-block: var(--sp-7) var(--sp-7); border-block-end: 1px solid var(--b1); }
.lx-grid-bg {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse 70% 90% at 70% 0%, #000 20%, transparent 75%);
  mask-image: radial-gradient(ellipse 70% 90% at 70% 0%, #000 20%, transparent 75%);
  pointer-events: none;
}
.lx-hero .container { position: relative; }
.lx-title { font-size: var(--fs-h1); line-height: var(--lh-h); font-weight: 700; letter-spacing: -0.03em; }
:lang(ar) .lx-title { font-size: clamp(2.125rem, 1.5rem + 2.4vw, 3.5rem); line-height: 1.3; letter-spacing: 0; }
.lx-dek { margin-block-start: var(--sp-4); max-width: 60ch; font-size: clamp(1.0625rem, 1rem + .45vw, 1.25rem); line-height: 1.6; color: var(--t2); }
:lang(ar) .lx-dek { line-height: 1.85; }
.lx-byline { margin-block-start: var(--sp-4); font-size: .9375rem; color: var(--t3); }
.lx-byline a { font-weight: 600; color: var(--t1); }
.lx-byline a:hover { color: var(--acc); }
.lx-legend { margin-block-start: var(--sp-6); }
.lx-legend-h { font-size: .875rem; font-weight: 600; letter-spacing: 0; color: var(--t2); margin-block-end: var(--sp-3); }
:lang(ar) .lx-legend-h { font-size: .9375rem; }
.lx-stats { display: grid; gap: var(--sp-3); }
.lx-stats li { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: 4px var(--sp-3); }
.lx-stats .lx-badge { justify-self: start; }
.js .lx-total { display: none; }
.lx-url { overflow-wrap: anywhere; }
.lx-stat-n { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--t1); }
.lx-stat-d { font-size: .875rem; color: var(--t3); min-width: 0; }
@media (max-width: 559px) {
  .lx-stats li { grid-template-columns: auto 1fr; }
  .lx-stat-d { grid-column: 1 / -1; }
}
@media (min-width: 900px) { .lx-stats { grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); } .lx-stats li { grid-template-columns: auto auto; } .lx-stat-d { grid-column: 1 / -1; } }

/* ---------- Hub: index ---------- */
.lx-index { padding-block: var(--sp-7); }
.lx-index-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sp-2) var(--sp-4); margin-block-end: var(--sp-5); }
.lx-total { color: var(--t3); font-size: .9375rem; font-variant-numeric: tabular-nums; }

.lx-tools { display: grid; gap: var(--sp-4); margin-block-end: var(--sp-5); padding: var(--sp-4); border: 1px solid var(--b1); border-radius: var(--r-lg); background: var(--s1); }
.lx-search-label { display: block; margin-block-end: 6px; font-size: .875rem; font-weight: 600; color: var(--t1); }
.lx-search-field { position: relative; }
.lx-search-i { position: absolute; inset-inline-start: 14px; inset-block-start: 50%; transform: translateY(-50%); color: var(--t3); pointer-events: none; }
.lx-search-field input {
  width: 100%;
  min-height: 48px;
  padding-block: 10px;
  padding-inline: 44px 48px;
  border: 1px solid var(--b2);
  border-radius: var(--r-md);
  background: var(--bg);
  color: var(--t1);
  font-size: 1rem;
  -webkit-appearance: none;
  appearance: none;
}
.lx-search-field input::placeholder { color: var(--t3); opacity: 1; }
.lx-search-field input::-webkit-search-cancel-button { display: none; }
.lx-search-field input:focus-visible { outline: 2px solid var(--acc); outline-offset: 1px; border-color: var(--acc); }
.lx-clear { position: absolute; inset-inline-end: 2px; inset-block-start: 50%; transform: translateY(-50%); }
.lx-filter { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.lx-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--b2);
  border-radius: 999px;
  background: transparent;
  font-size: .875rem;
  font-weight: 500;
  color: var(--t2);
  transition: border-color var(--d1) var(--ease), color var(--d1) var(--ease), background var(--d1) var(--ease);
}
.lx-chip:hover { color: var(--t1); border-color: var(--t3); }
.lx-chip[aria-pressed="true"] { color: var(--on-acc); background: var(--acc-fill); border-color: var(--acc-fill); }
.lx-chip-n { font-variant-numeric: tabular-nums; opacity: .8; }
.lx-count { font-size: .875rem; color: var(--t3); font-variant-numeric: tabular-nums; }

.lx-az { margin-block-end: var(--sp-5); }
.lx-az ul { display: flex; flex-wrap: wrap; gap: 4px; }
.lx-az a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--b1);
  border-radius: var(--r-sm);
  font-weight: 600;
  color: var(--t1);
  background: var(--s1);
}
.lx-az a:hover { border-color: var(--acc-line); color: var(--acc); }
.lx-az a.is-off { opacity: .35; pointer-events: none; }
.lx-empty { padding: var(--sp-5); border: 1px dashed var(--b2); border-radius: var(--r-md); color: var(--t2); }

.lx-group { padding-block-start: var(--sp-5); scroll-margin-top: calc(var(--header-h) + 12px); }
.lx-letter {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-block-end: var(--sp-3);
  font-size: 1.5rem;
  line-height: 1.2;
  color: var(--acc);
}
.lx-letter::after { content: ""; flex: 1; height: 1px; background: var(--b1); }
.lx-list { display: grid; gap: var(--sp-3); }
@media (min-width: 760px) { .lx-list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1100px) { .lx-list { grid-template-columns: 1fr 1fr 1fr; } }
.lx-item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--sp-4) var(--sp-4) var(--sp-4);
  border: 1px solid var(--b1);
  border-radius: var(--r-md);
  background: var(--s1);
  transition: border-color var(--d2) var(--ease);
  min-width: 0;
}
.lx-item:hover { border-color: var(--acc-line); }
.lx-item:has(.stretched:focus-visible) { outline: 2px solid var(--acc); outline-offset: 2px; }
.lx-item-h { font-size: 1.0625rem; line-height: 1.35; font-weight: 600; letter-spacing: -0.01em; overflow-wrap: anywhere; }
:lang(ar) .lx-item-h { font-size: 1.0625rem; line-height: 1.6; }
.lx-item-h a:hover { color: var(--acc); }
.lx-item-alt { font-size: .875rem; color: var(--t3); }
.lx-item-def { font-size: .9375rem; color: var(--t2); line-height: 1.55; }
:lang(ar) .lx-item-def { line-height: 1.8; }
.lx-item-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-block-start: auto; padding-block-start: var(--sp-2); }
.lx-cat { display: inline-flex; align-items: center; min-height: 24px; font-size: .75rem; font-weight: 600; color: var(--t3); letter-spacing: .04em; text-transform: uppercase; }
:lang(ar) .lx-cat { font-size: .8125rem; letter-spacing: 0; text-transform: none; }
.lx-cat + .lx-badge { margin-inline-start: 4px; }

/* ---------- Hub: thresholds + about ---------- */
.lx-thresholds { padding-block: var(--sp-7); border-block-start: 1px solid var(--b1); background: var(--s1); }
.lx-thresholds .lx-table-wrap { background: var(--bg); }
.lx-intro { margin-block: var(--sp-3) var(--sp-5); max-width: 70ch; color: var(--t2); }
.lx-thr th[scope="row"] { min-width: 12rem; font-weight: 600; }
.lx-thr th[scope="row"] a { color: var(--t1); text-decoration: underline; text-decoration-color: var(--acc-line); text-underline-offset: 3px; }
.lx-thr th[scope="row"] a:hover { color: var(--acc); }
.lx-bands { display: grid; gap: 6px; min-width: 14rem; }
.lx-bands li { display: grid; gap: 0 var(--sp-3); }
.lx-tv { color: var(--t1); font-weight: 600; font-variant-numeric: tabular-nums; }
.lx-tr { color: var(--t2); }
@media (min-width: 900px) { .lx-bands li { grid-template-columns: minmax(9rem, 40%) 1fr; } }
.lx-srcs { display: grid; gap: 4px; min-width: 11rem; font-size: .875rem; }
.lx-srcs a, .lx-src a { color: var(--acc); text-decoration: underline; text-decoration-color: var(--acc-line); text-underline-offset: 3px; }
.lx-srcs a:hover, .lx-src a:hover { text-decoration-color: currentColor; }
@media (max-width: 759px) {
  .lx-thr thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .lx-thr, .lx-thr tbody, .lx-thr tr, .lx-thr th, .lx-thr td { display: block; }
  .lx-thr tr { border-block-start: 1px solid var(--b1); padding-block: var(--sp-2); }
  .lx-thr tr:first-child { border-block-start: 0; }
  .lx-thr th, .lx-thr td { border: 0; padding-block: 4px; }
  .lx-thr th[scope="row"], .lx-bands, .lx-srcs { min-width: 0; }
}
.lx-about { padding-block: var(--sp-7) var(--sp-8); }
.lx-about-card { padding: var(--sp-6); border: 1px solid var(--b1); border-radius: var(--r-lg); background: var(--s1); }
.lx-about-card h2 { font-size: 1.375rem; margin-block-end: var(--sp-3); }
.lx-about-card p { max-width: 70ch; color: var(--t2); }
.lx-cite-lex { margin-block-start: var(--sp-3); font-size: .875rem; overflow-wrap: anywhere; }
.lx-about-links { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-block-start: var(--sp-5); }

/* ---------- Term page ---------- */
.lx-term { padding-block: var(--sp-6) var(--sp-8); }
.lx-term-wrap { max-width: calc(820px + 2 * var(--gutter)); }
.lx-term-head { margin-block-end: var(--sp-5); }
.lx-term-title { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); line-height: 1.1; letter-spacing: -0.03em; overflow-wrap: anywhere; }
:lang(ar) .lx-term-title { font-size: clamp(1.875rem, 1.4rem + 1.8vw, 2.75rem); line-height: 1.35; letter-spacing: 0; }
.lx-term-sub { margin-block-start: var(--sp-2); font-size: 1.125rem; }
.lx-term-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); margin-block-start: var(--sp-4); }
.lx-since { font-size: .8125rem; color: var(--t3); }

.lx-def {
  position: relative;
  padding: var(--sp-5);
  border: 1px solid var(--acc-line);
  border-inline-start-width: 4px;
  border-radius: var(--r-md);
  background: var(--acc-soft);
}
.lx-def-h { font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--acc); margin-block-end: var(--sp-2); }
:lang(ar) .lx-def-h { font-size: .9375rem; letter-spacing: 0; text-transform: none; }
.lx-def-text { font-size: clamp(1.125rem, 1.05rem + .35vw, 1.3125rem); line-height: 1.6; color: var(--t1); }
:lang(ar) .lx-def-text { line-height: 1.95; }
.lx-def-foot { margin-block-start: var(--sp-3); }
.lx-def-foot .btn { margin-inline-start: -14px; }
.lx-note { margin-block-end: var(--sp-3); padding: var(--sp-2) var(--sp-3); border: 1px dashed var(--amber); border-radius: var(--r-sm); background: var(--amber-soft); color: var(--t1); font-size: .9375rem; }
.lx-alts { margin-block-start: var(--sp-4); padding-block-start: var(--sp-3); border-block-start: 1px solid var(--acc-line); }
.lx-mini-h { font-size: .8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--t3); margin-block: var(--sp-4) var(--sp-2); }
:lang(ar) .lx-mini-h { font-size: .875rem; letter-spacing: 0; text-transform: none; }
.lx-alts .lx-mini-h { margin-block-start: 0; color: var(--t2); }
.lx-saudi { margin-block-start: var(--sp-4); }
.lx-saudi .lx-mini-h { margin-block-start: 0; color: var(--t2); }
/* inside the tinted definition box --t3 sits at the 4.5:1 edge (axe, light theme): use --t2 */
.lx-plain .lx-mini-h, .lx-def .lx-acc, .lx-def time { color: var(--t2); }
.lx-saudi ul { display: grid; gap: var(--sp-2); }
.lx-saudi li { padding-inline-start: var(--sp-3); border-inline-start: 2px solid var(--b2); color: var(--t2); font-size: .9375rem; overflow-wrap: anywhere; }
.lx-saudi a { color: var(--acc); text-decoration: underline; text-decoration-color: var(--acc-line); text-underline-offset: 3px; }
.lx-acc { color: var(--t3); font-size: .8125rem; }
.lx-alts ul { display: flex; flex-wrap: wrap; gap: 6px; }
.lx-alts li { padding: 2px 10px; border-radius: 999px; background: var(--bg); border: 1px solid var(--b1); font-size: .875rem; color: var(--t2); overflow-wrap: anywhere; }

.lx-sec { margin-block-start: var(--sp-7); }
.lx-sec > h2 { font-size: 1.375rem; line-height: 1.3; margin-block-end: var(--sp-3); }
:lang(ar) .lx-sec > h2 { font-size: 1.3125rem; line-height: 1.5; }
.lx-sec > p { color: var(--t2); max-width: 70ch; }

.lx-formula { display: grid; gap: var(--sp-2); padding: var(--sp-4); border: 1px solid var(--b1); border-radius: var(--r-md); background: var(--s2); }
.lx-f { font-size: 1.0625rem; line-height: 1.6; font-weight: 500; color: var(--t1); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
:lang(ar) .lx-f { line-height: 1.9; }
.lx-f[dir="ltr"] { text-align: start; }
[dir="rtl"] .lx-f[dir="ltr"] { text-align: end; }
.lx-vars { display: grid; gap: 6px; }
.lx-vars div { display: grid; grid-template-columns: minmax(3.5rem, auto) 1fr; gap: var(--sp-3); align-items: baseline; }
.lx-vars dt { font-weight: 600; color: var(--t1); font-variant-numeric: tabular-nums; }
.lx-vars dd { margin: 0; color: var(--t2); min-width: 0; }

.lx-thr-block + .lx-thr-block { margin-block-start: var(--sp-5); }
.lx-src { margin-block-start: var(--sp-2); font-size: .875rem; color: var(--t3); }

.lx-example { padding: var(--sp-4) var(--sp-5); border: 1px dashed var(--b2); border-radius: var(--r-md); background: var(--s1); }
.lx-example p:not(.lx-stamp) { color: var(--t1); font-variant-numeric: tabular-nums; }
.lx-stamp { display: inline-flex; margin-block-end: var(--sp-2); padding: 1px 10px; border-radius: 999px; background: var(--amber-soft); color: var(--t1); font-size: .75rem; font-weight: 600; }
:lang(ar) .lx-stamp { font-size: .8125rem; }

.lx-refs { display: grid; gap: var(--sp-2); }
.lx-refs li { padding-inline-start: var(--sp-3); border-inline-start: 2px solid var(--b2); color: var(--t2); font-size: .9375rem; overflow-wrap: anywhere; }
.lx-refs a { color: var(--acc); text-decoration: underline; text-decoration-color: var(--acc-line); text-underline-offset: 3px; }

.lx-used { display: grid; gap: var(--sp-2); }
.lx-used a {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  min-height: 44px;
  padding: 10px var(--sp-3);
  border: 1px solid var(--b1);
  border-radius: var(--r-md);
  background: var(--s1);
  color: var(--t1);
}
.lx-used a:hover { border-color: var(--acc-line); }
.lx-used .i { margin-block-start: 3px; color: var(--acc); }
.lx-used a > span { min-width: 0; overflow-wrap: anywhere; }
.lx-u-t { display: block; font-weight: 600; }
.lx-u-m { display: block; font-size: .8125rem; color: var(--t3); }

.lx-rels { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.lx-rel {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--b2);
  border-radius: 999px;
  font-size: .9375rem;
  color: var(--t1);
  overflow-wrap: anywhere;
}
.lx-rel:hover { border-color: var(--acc); color: var(--acc); }

.lx-cite { display: grid; gap: var(--sp-3); padding: var(--sp-4); border: 1px solid var(--b1); border-radius: var(--r-md); background: var(--s1); }
.lx-cite p { font-size: .9375rem; color: var(--t1); overflow-wrap: anywhere; }
.lx-cite .btn { justify-self: start; }
.lx-cite-extra { margin-block-start: var(--sp-2); font-size: .875rem; color: var(--t3); overflow-wrap: anywhere; }

.lx-pn { display: grid; gap: var(--sp-3); margin-block-start: var(--sp-8); }
@media (min-width: 640px) { .lx-pn { grid-template-columns: 1fr 1fr; } }
.lx-pn-a { display: grid; gap: 4px; padding: var(--sp-4); border: 1px solid var(--b1); border-radius: var(--r-md); min-width: 0; }
.lx-pn-a:hover { border-color: var(--acc-line); }
.lx-pn-a.is-next { text-align: end; }
.lx-pn-k { display: inline-flex; align-items: center; gap: 6px; font-size: .8125rem; color: var(--t3); }
.lx-pn-a.is-next .lx-pn-k { justify-content: flex-end; }
.lx-pn-k .i { width: 16px; height: 16px; }
.lx-pn-t { font-weight: 600; color: var(--t1); overflow-wrap: anywhere; }
.lx-back { margin-block-start: var(--sp-5); }
.lx-back a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--acc); font-weight: 600; }
.lx-back .i { width: 18px; height: 18px; }

.lx-copy.is-done { color: var(--acc); }

/* ---------- Print ---------- */
@media print {
  .lx-tools, .lx-az, .lx-copy, .lx-pn, .crumbs, .lx-grid-bg { display: none !important; }
  .lx-def { background: none; }
  .lx-item, .lx-table-wrap { break-inside: avoid; }
}

.lx-gate-line { margin-block-start: var(--sp-5, 24px); }
.lx-gate-card { margin-block: 0 var(--sp-5, 24px); }
