/* edc-gezira.net — Direction C: Field-Training Atlas & Workforce Calculator */
:root {
  --gz-canvas: #F5F6F2;
  --gz-surface: #FFFFFF;
  --gz-subtle: #E9ECE6;
  --gz-ink: #131B23;
  --gz-ink-muted: #44505C;
  --gz-rule: #D1D7CF;
  --gz-rule-strong: #131B23;
  --gz-indigo: #3B3F8C;
  --gz-indigo-soft: #ECEDF8;
  --gz-clay: #9F4A26;
  --gz-clay-soft: #F9EDE8;
  --gz-safe: #1B6B4A;
  --gz-safe-soft: #E7F4EE;
  --gz-urgent: #B45309;
  --gz-urgent-soft: #FEF3C7;
  --gz-critical: #A61B2B;
  --gz-critical-soft: #FDECEC;
  --font-display: 'Zilla Slab', Georgia, serif;
  --font-sans: 'Barlow', sans-serif;
  --font-mono: 'Spline Sans Mono', monospace;
  --font-ar: 'IBM Plex Sans Arabic', 'Barlow', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; background: var(--gz-canvas); color: var(--gz-ink); overflow-x: clip; }
body {
  font-family: var(--font-sans);
  line-height: 1.66;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
  max-width: 100%;
}
html[lang="ar"] body {
  font-family: var(--font-ar);
  line-height: 1.76;
}
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--gz-clay); outline-offset: 2px; }

.skip-link {
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  background: var(--gz-ink);
  color: #FFFFFF;
  z-index: 100;
  font-weight: 600;
}
.skip-link:focus {
  width: auto;
  height: auto;
  overflow: visible;
  clip-path: none;
  padding: 0.6rem 1rem;
  inset-inline-start: 1rem;
  top: 1rem;
}

.gz-wrap {
  max-width: 76rem;
  margin: 0 auto;
  padding: 0 2.25rem;
}

/* Top Notice Strip & Limestone Header */
.gz-notice-strip {
  background: var(--gz-ink);
  color: #E9ECE6;
  font-size: 0.78rem;
  padding: 0.45rem 0;
}
.gz-notice-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.gz-header-atlas {
  background: var(--gz-subtle);
  border-bottom: 2px solid var(--gz-clay);
  padding: 0.95rem 0;
}
.gz-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}
.gz-brand {
  font-family: var(--font-display);
  font-size: 1.32rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gz-ink);
}
html[lang="ar"] .gz-brand {
  font-family: var(--font-ar);
  letter-spacing: 0;
}
.gz-nav {
  display: flex;
  align-items: center;
  gap: 1.15rem;
  font-size: 0.89rem;
  font-weight: 600;
  color: var(--gz-ink-muted);
  flex-wrap: wrap;
}
.gz-nav a:hover, .gz-nav a[aria-current="page"] { color: var(--gz-clay); }
.gz-nav a[aria-current="page"] {
  border-bottom: 2px solid var(--gz-clay);
  padding-bottom: 2px;
}
.gz-ar-btn {
  font-family: var(--font-ar);
  font-size: 0.84rem;
  font-weight: 600;
  padding: 0.4rem 0.85rem;
  background: var(--gz-surface);
  border: 1px solid var(--gz-rule-strong);
  min-height: 40px;
  display: inline-flex;
  align-items: center;
}
.gz-ar-btn:hover { background: var(--gz-clay); color: #FFFFFF; border-color: var(--gz-clay); }

/* Workbench Hero (Direction C) */
.gz-workbench-hero {
  background: var(--gz-surface);
  border-bottom: 2px solid var(--gz-rule-strong);
  padding: 2rem 0 2.25rem;
}
.gz-wb-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
  margin-bottom: 1.35rem;
  flex-wrap: wrap;
}
.gz-wb-kicker {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--gz-clay);
  letter-spacing: 0.04em;
  margin-bottom: 0.35rem;
}
.gz-wb-head h1, .gz-page-head h1 {
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.2vw, 2.55rem);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.1;
  text-wrap: balance;
  max-width: 28ch;
}
html[lang="ar"] .gz-wb-head h1, html[lang="ar"] .gz-page-head h1 {
  font-family: var(--font-ar);
  letter-spacing: 0;
  line-height: 1.25;
}
.gz-wb-sub {
  max-width: 44ch;
  font-size: 0.94rem;
  color: var(--gz-ink-muted);
}

.gz-wb-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.95fr);
  border: 1px solid var(--gz-rule-strong);
  background: var(--gz-canvas);
}
.gz-wb-inputs {
  padding: 1.25rem 1.35rem;
  border-inline-end: 1px solid var(--gz-rule);
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.gz-wb-group-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--gz-ink-muted);
  display: block;
  margin-bottom: 0.4rem;
}
html[lang="ar"] .gz-wb-group-label { font-family: var(--font-ar); }
.gz-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.gz-pill-opt {
  min-height: 44px;
  padding: 0.45rem 0.8rem;
  border: 1px solid var(--gz-rule-strong);
  background: var(--gz-surface);
  font-size: 0.82rem;
  font-weight: 600;
}
.gz-pill-opt.is-selected {
  background: var(--gz-clay);
  border-color: var(--gz-clay);
  color: #FFFFFF;
}

.gz-stepper-5 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}
.gz-step-card {
  background: var(--gz-surface);
  border: 1px solid var(--gz-rule);
  padding: 0.55rem 0.65rem;
}
.gz-step-lbl {
  font-size: 0.74rem;
  font-weight: 600;
  color: var(--gz-ink-muted);
  display: block;
  margin-bottom: 0.3rem;
}
.gz-step-ctrl {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.gz-step-btn {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--gz-rule);
  background: var(--gz-subtle);
  font-family: var(--font-mono);
  font-size: 1rem;
  font-weight: 600;
}
.gz-step-btn:hover { background: var(--gz-clay-soft); border-color: var(--gz-clay); }
.gz-step-val {
  font-family: var(--font-mono);
  font-size: 0.92rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  direction: ltr;
  unicode-bidi: isolate;
}

.gz-wb-outputs {
  padding: 1.25rem 1.35rem;
  background: var(--gz-surface);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 1rem;
}
.gz-verdict-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid var(--gz-rule-strong);
  padding-bottom: 0.65rem;
}
.gz-verdict-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
}
html[lang="ar"] .gz-verdict-title { font-family: var(--font-ar); }
.gz-status-pill:not(td):not(th) {
  display: inline-block;
  padding: 0.22rem 0.65rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 600;
}
.gz-status-pill.is-critical { background: var(--gz-critical-soft); color: var(--gz-critical); border: 1px solid var(--gz-critical); }
.gz-status-pill.is-urgent { background: var(--gz-urgent-soft); color: var(--gz-urgent); border: 1px solid var(--gz-urgent); }
.gz-status-pill.is-safe { background: var(--gz-safe-soft); color: var(--gz-safe); border: 1px solid var(--gz-safe); }

.gz-kpi-4 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.gz-kpi {
  border-inline-start: 3px solid var(--gz-indigo);
  padding-inline-start: 0.65rem;
}
.gz-kpi-k { font-size: 0.74rem; color: var(--gz-ink-muted); display: block; }
.gz-kpi-v {
  font-family: var(--font-mono);
  font-size: 1.22rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--gz-ink);
  direction: ltr;
  unicode-bidi: isolate;
  display: inline-block;
}
.gz-svg-gauge svg, .gz-svg-box svg {
  display: block;
  width: 100%;
  height: auto;
  direction: ltr;
}
.gz-wb-advice {
  font-size: 0.85rem;
  line-height: 1.52;
  color: var(--gz-ink-muted);
  border-top: 1px solid var(--gz-rule);
  padding-top: 0.65rem;
}

/* Inner Page Header */
.gz-page-head {
  background: var(--gz-surface);
  border-bottom: 2px solid var(--gz-rule-strong);
  padding: 2rem 0 1.75rem;
}
.gz-breadcrumb {
  font-size: 0.82rem;
  color: var(--gz-ink-muted);
  margin-bottom: 0.6rem;
}
.gz-breadcrumb a { color: var(--gz-indigo); font-weight: 600; }
.gz-page-lead {
  margin-top: 0.75rem;
  font-size: 1.04rem;
  color: var(--gz-ink-muted);
  max-width: 65ch;
}

/* Asymmetric 2-Column Sections & GuideLayout */
.gz-atlas-section {
  padding: 2.35rem 0;
  border-bottom: 1px solid var(--gz-rule);
}
.gz-atlas-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.95fr);
  gap: 2.5rem;
  align-items: start;
}
.gz-guide-grid {
  display: grid;
  grid-template-columns: minmax(0, 49rem) minmax(0, 1fr);
  gap: 2.5rem;
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
  align-items: start;
}
.gz-atlas-grid > *, .gz-guide-grid > *, .gz-wb-shell > * {
  min-width: 0;
}
.gz-guide-prose, .gz-dir-item, .gz-ref-body {
  min-width: 0;
  overflow-wrap: break-word;
}
.gz-guide-prose h2, .gz-atlas-section h2, .gz-table-section h2 {
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 0.85rem;
  color: var(--gz-ink);
}
html[lang="ar"] .gz-guide-prose h2,
html[lang="ar"] .gz-atlas-section h2,
html[lang="ar"] .gz-table-section h2 {
  font-family: var(--font-ar);
  letter-spacing: 0;
}
.gz-guide-prose h3 {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  margin: 1.4rem 0 0.5rem;
  color: var(--gz-ink);
}
html[lang="ar"] .gz-guide-prose h3 { font-family: var(--font-ar); }
.gz-guide-prose p, .gz-guide-prose li {
  color: var(--gz-ink-muted);
  max-width: 66ch;
  margin-bottom: 0.85rem;
}
.gz-guide-prose ul, .gz-guide-prose ol {
  padding-inline-start: 1.35rem;
  margin-bottom: 1rem;
}
.gz-guide-prose a {
  color: var(--gz-indigo);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gz-sticky-toc {
  position: sticky;
  top: 1.5rem;
  background: var(--gz-surface);
  border-top: 3px solid var(--gz-indigo);
  border-bottom: 1px solid var(--gz-rule);
  padding: 1rem 1.15rem;
}
.gz-toc-title {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--gz-indigo);
  margin-bottom: 0.55rem;
}
.gz-toc-list {
  list-style: none;
  font-size: 0.88rem;
}
.gz-toc-list li {
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--gz-subtle);
}
.gz-toc-list li:last-child { border-bottom: 0; }
.gz-toc-list a:hover { color: var(--gz-clay); }

/* GEO Link-Free Answer Capsule */
.gz-answer-capsule {
  background: var(--gz-indigo-soft);
  border-inline-start: 4px solid var(--gz-indigo);
  padding: 1rem 1.2rem;
  margin: 1rem 0 1.35rem;
  max-width: 66ch;
}
.gz-capsule-label {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--gz-indigo);
  text-transform: uppercase;
  margin-bottom: 0.35rem;
}
html[lang="ar"] .gz-capsule-label { font-family: var(--font-ar); }
.gz-answer-capsule p {
  margin-bottom: 0;
  color: var(--gz-ink);
  font-size: 0.94rem;
}

/* TimelineStepper */
.gz-timeline {
  list-style: none;
  border-inline-start: 2px solid var(--gz-indigo);
  margin-inline-start: 0.5rem;
  padding-inline-start: 1.5rem;
}
.gz-tl-item {
  position: relative;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid var(--gz-rule);
  margin-bottom: 1.25rem;
}
.gz-tl-item:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.gz-tl-dot {
  position: absolute;
  inset-inline-start: -1.875rem;
  top: 0.25rem;
  width: 12px;
  height: 12px;
  background: var(--gz-clay);
  border: 2px solid var(--gz-canvas);
}
.gz-tl-year {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--gz-clay);
  display: block;
  margin-bottom: 0.2rem;
}
.gz-tl-item h3 {
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 700;
  color: var(--gz-ink);
  margin-bottom: 0.3rem;
}
.gz-tl-item p {
  font-size: 0.92rem;
  color: var(--gz-ink-muted);
  max-width: 60ch;
}

/* Documentary Plate + Arabic Router Card */
.gz-side-stack {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.gz-plate-box {
  border-top: 2px solid var(--gz-rule-strong);
  padding-top: 0.75rem;
}
.gz-plate-box img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  border: 1px solid var(--gz-rule);
}
.gz-plate-cap {
  margin-top: 0.6rem;
  font-size: 0.84rem;
  color: var(--gz-ink-muted);
}
.gz-plate-cap strong {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--gz-clay);
  margin-inline-end: 0.35rem;
}

.gz-ar-panel {
  background: var(--gz-surface);
  border-inline-end: 4px solid var(--gz-indigo);
  border-top: 1px solid var(--gz-rule);
  border-bottom: 1px solid var(--gz-rule);
  padding: 1.15rem 1.25rem;
  font-family: var(--font-ar);
}
.gz-ar-panel h3 {
  font-size: 1.16rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
  color: var(--gz-ink);
}
.gz-ar-panel p {
  font-size: 0.92rem;
  line-height: 1.72;
  color: var(--gz-ink-muted);
  margin-bottom: 0.8rem;
}
.gz-cta-link {
  display: inline-flex;
  align-items: center;
  padding: 0.45rem 0.9rem;
  background: var(--gz-indigo);
  color: #FFFFFF !important;
  text-decoration: none !important;
  font-size: 0.86rem;
  font-weight: 600;
  min-height: 40px;
}

/* Booktabs 3-Line Tables */
.gz-table-section {
  padding: 2.25rem 0;
}
.gz-table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1rem 0 1.4rem;
}
table.gz-booktabs {
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid var(--gz-rule-strong);
  border-bottom: 2px solid var(--gz-rule-strong);
  background: var(--gz-surface);
  font-size: 0.89rem;
  font-variant-numeric: tabular-nums;
}
table.gz-booktabs thead th {
  text-align: start;
  font-family: var(--font-mono);
  font-size: 0.74rem;
  font-weight: 600;
  padding: 0.7rem 0.8rem;
  background: var(--gz-subtle);
  border-bottom: 1.5px solid var(--gz-rule-strong);
}
html[lang="ar"] table.gz-booktabs thead th { font-family: var(--font-ar); }
table.gz-booktabs tbody td {
  padding: 0.7rem 0.8rem;
  border-bottom: 1px solid var(--gz-rule);
  color: var(--gz-ink-muted);
  vertical-align: top;
}
table.gz-booktabs tbody tr:last-child td { border-bottom: 0; }
table.gz-booktabs tbody td strong { color: var(--gz-ink); }
.gz-badge:not(td):not(th) {
  display: inline-block;
  white-space: nowrap;
  padding: 0.14rem 0.45rem;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 600;
}
.gz-badge-clay { background: var(--gz-clay-soft); color: var(--gz-clay); }
.gz-badge-indigo { background: var(--gz-indigo-soft); color: var(--gz-indigo); }
.gz-badge-safe { background: var(--gz-safe-soft); color: var(--gz-safe); }

/* SVG Panel */
.gz-svg-box {
  background: var(--gz-surface);
  border: 1px solid var(--gz-rule);
  padding: 1rem;
  margin: 1.25rem 0;
}

/* Filter Bar & Directory Cards */
.gz-filter-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}
.gz-filter-count {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--gz-ink-muted);
}
.gz-dir-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.85rem;
}
.gz-dir-item {
  background: var(--gz-surface);
  border-top: 1px solid var(--gz-rule);
  border-bottom: 1px solid var(--gz-rule);
  border-inline-start: 3px solid var(--gz-indigo);
  padding: 1rem 1.15rem;
}
.gz-dir-meta {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--gz-clay);
  margin-bottom: 0.25rem;
}
.gz-dir-item h3 {
  font-family: var(--font-display);
  font-size: 1.1rem;
  margin-bottom: 0.3rem;
}

/* Silent Archive Disclosure (#archive-*) */
.gz-archive-ledger {
  margin-top: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
details.gz-ref-disclosure {
  background: var(--gz-subtle);
  border: 1px solid var(--gz-rule);
  padding: 0.85rem 1.1rem;
}
details.gz-ref-disclosure summary {
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}
html[lang="ar"] details.gz-ref-disclosure summary { font-family: var(--font-ar); }
.gz-ref-body {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--gz-rule);
  font-size: 0.88rem;
  color: var(--gz-ink-muted);
}
.gz-ref-body p { margin-bottom: 0.55rem; }
.gz-ref-body p:last-child { margin-bottom: 0; }

/* Clean Universal Footer */
.gz-footer {
  border-top: 2px solid var(--gz-rule-strong);
  padding: 1.65rem 0 2.1rem;
  font-size: 0.84rem;
  color: var(--gz-ink-muted);
  margin-top: 1.5rem;
}
.gz-footer-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.55rem;
}
.gz-footer-id {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--gz-ink);
}
html[lang="ar"] .gz-footer-id { font-family: var(--font-ar); }
.gz-footer-links {
  display: flex;
  gap: 1.15rem;
  flex-wrap: wrap;
}
.gz-footer-links a:hover { color: var(--gz-indigo); text-decoration: underline; }

@media (max-width: 980px) {
  .gz-wb-shell, .gz-atlas-grid, .gz-guide-grid { grid-template-columns: minmax(0, 1fr); }
  .gz-wb-inputs { border-inline-end: 0; border-bottom: 1px solid var(--gz-rule); }
  .gz-stepper-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gz-sticky-toc { position: static; }
}
@media (max-width: 600px) {
  .gz-wrap { padding: 0 1rem; }
  .gz-stepper-5, .gz-kpi-4 { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  * { transition-duration: 0ms !important; animation-duration: 0ms !important; }
}
@media print {
  .gz-notice-strip, .gz-header-atlas, .gz-footer, .skip-link { display: none; }
  body { background: #FFFFFF; }
}
