/* WDALAW — GitHub-inspired theme. Shared by every page. */
:root {
  --canvas: #ffffff;
  --canvas-subtle: #f6f8fa;
  --canvas-inset: #eaeef2;
  --border: #d0d7de;
  --border-muted: #d8dee4;
  --fg: #1f2328;
  --fg-muted: #59636e;
  --fg-subtle: #6e7781;
  --accent: #0969da;
  --accent-emphasis: #0550ae;
  --accent-subtle: #ddf4ff;
  --success: #1a7f37;
  --danger: #cf222e;
  --attention: #9a6700;
  --done: #8250df;
  --header-bg: #24292f;
  --header-bg-2: #1c2127;
  --header-border: #32383f;
  --header-fg: #f0f6fc;
  --header-fg-muted: #afb8c1;
  --btn-primary-bg: #1f883d;
  --btn-primary-bg-hover: #1a7f37;
  --shadow-sm: 0 1px 0 rgba(31,35,40,0.04);
  --radius: 6px;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
    --canvas: #0d1117;
    --canvas-subtle: #161b22;
    --canvas-inset: #010409;
    --border: #30363d;
    --border-muted: #21262d;
    --fg: #e6edf3;
    --fg-muted: #848d97;
    --fg-subtle: #6e7681;
    --accent: #4493f8;
    --accent-emphasis: #58a6ff;
    --accent-subtle: #0c2d6b;
    --success: #3fb950;
    --danger: #f85149;
    --attention: #d29922;
    --done: #a371f7;
    --header-bg: #010409;
    --header-bg-2: #010409;
    --header-border: #21262d;
    --header-fg: #e6edf3;
    --header-fg-muted: #848d97;
    --btn-primary-bg: #238636;
    --btn-primary-bg-hover: #2ea043;
  }
}

:root[data-theme="dark"] {
  --canvas: #0d1117;
  --canvas-subtle: #161b22;
  --canvas-inset: #010409;
  --border: #30363d;
  --border-muted: #21262d;
  --fg: #e6edf3;
  --fg-muted: #848d97;
  --fg-subtle: #6e7681;
  --accent: #4493f8;
  --accent-emphasis: #58a6ff;
  --accent-subtle: #0c2d6b;
  --success: #3fb950;
  --danger: #f85149;
  --attention: #d29922;
  --done: #a371f7;
  --header-bg: #010409;
  --header-bg-2: #010409;
  --header-border: #21262d;
  --header-fg: #e6edf3;
  --header-fg-muted: #848d97;
  --btn-primary-bg: #238636;
  --btn-primary-bg-hover: #2ea043;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(64px + env(safe-area-inset-top, 0px)); }
body {
  margin: 0;
  background: var(--canvas);
  color: var(--fg);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }

/* ---------- Header ---------- */
header.topbar {
  position: sticky; top: 0; z-index: 40;
  background: var(--header-bg);
  border-bottom: 1px solid var(--header-border);
  padding-top: env(safe-area-inset-top, 0px);
}
.topbar-inner {
  max-width: 1180px; margin: 0 auto; padding: 12px 24px;
  display: flex; align-items: center; gap: 16px;
}
.brand { display: flex; align-items: center; gap: 8px; color: var(--header-fg); font-weight: 600; }
.brand svg { flex: none; }
.brand-name { font-size: 15px; }
.brand-name b { font-weight: 600; }
.brand-name span { color: var(--header-fg-muted); font-weight: 400; }
nav.primary-nav { display: flex; gap: 2px; margin-left: 8px; flex: 1; min-width: 0; }
nav.primary-nav a {
  color: var(--header-fg-muted); font-size: 14px; font-weight: 500;
  padding: 8px 10px; border-radius: var(--radius);
}
nav.primary-nav a:hover { color: var(--header-fg); background: rgba(255,255,255,0.08); text-decoration: none; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.lang-pill {
  display: none;
  color: var(--header-fg-muted); font-size: 12px; font-family: var(--mono);
  border: 1px solid var(--header-border); border-radius: 999px; padding: 3px 10px;
}
@media (min-width: 900px) { .lang-pill { display: inline-block; } }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-family: var(--sans); font-size: 14px; font-weight: 500;
  padding: 5px 14px; border-radius: var(--radius); border: 1px solid var(--border);
  background: var(--canvas-subtle); color: var(--fg); cursor: pointer; white-space: nowrap;
}
.btn:hover { background: var(--canvas-inset); text-decoration: none; }
.btn-primary { background: var(--btn-primary-bg); border-color: rgba(240,246,252,0.1); color: #fff; }
.btn-primary:hover { background: var(--btn-primary-bg-hover); }
.btn-on-dark { background: #2d333b; border-color: #444c56; color: var(--header-fg); }
.btn-on-dark:hover { background: #373e47; }
.btn-sm { padding: 3px 10px; font-size: 12px; }
.menu-toggle { display: none; background: none; border: 1px solid var(--header-border); color: var(--header-fg); border-radius: var(--radius); padding: 6px 8px; }
@media (max-width: 820px) {
  nav.primary-nav { display: none; }
  .menu-toggle { display: inline-flex; }
}
nav.primary-nav.open { display: flex; flex-direction: column; position: absolute; top: 100%; left: 0; right: 0; background: var(--header-bg); border-bottom: 1px solid var(--header-border); padding: 8px 24px 16px; }

/* ---------- Hero ---------- */
.hero { padding: 72px 0 64px; border-bottom: 1px solid var(--border-muted); }
.hero-grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; }
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; gap: 40px; } .hero { padding: 48px 0 40px; } }
.hero h1 {
  font-size: clamp(32px, 4.4vw, 48px); line-height: 1.12; letter-spacing: -0.015em;
  margin: 0 0 20px; font-weight: 700;
}
.hero p.lede { font-size: 19px; color: var(--fg-muted); max-width: 46ch; margin: 0 0 28px; }
.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
.hero-ctas .btn { font-size: 15px; padding: 9px 18px; }
.hero-meta { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13px; color: var(--fg-subtle); font-family: var(--mono); }
.hero-meta span { display: inline-flex; align-items: center; gap: 6px; }
.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: none; }

/* code window */
.code-window {
  background: var(--canvas-subtle); border: 1px solid var(--border); border-radius: 12px;
  overflow: hidden; box-shadow: 0 8px 24px rgba(140,149,159,0.2);
}
.code-titlebar {
  display: flex; align-items: center; gap: 8px; padding: 10px 14px;
  background: var(--canvas-inset); border-bottom: 1px solid var(--border);
}
.code-titlebar .traffic { display: flex; gap: 6px; margin-right: 6px; }
.code-titlebar .traffic i { width: 11px; height: 11px; border-radius: 50%; display: block; }
.code-titlebar .traffic i:nth-child(1) { background: #ff5f57; }
.code-titlebar .traffic i:nth-child(2) { background: #febc2e; }
.code-titlebar .traffic i:nth-child(3) { background: #28c840; }
.code-titlebar .filename { font-family: var(--mono); font-size: 12.5px; color: var(--fg-muted); }
.code-body { padding: 20px 22px 24px; font-size: 14px; }
.code-body h3 { margin: 0 0 6px; font-size: 16px; }
.code-body .muted { color: var(--fg-muted); }
.badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0; }
.badge {
  font-family: var(--mono); font-size: 11.5px; padding: 3px 8px; border-radius: 4px;
  background: var(--canvas-inset); border: 1px solid var(--border); color: var(--fg-muted);
}
.badge.accent { color: var(--accent-emphasis); border-color: var(--accent); background: var(--accent-subtle); }
.code-kv { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; font-family: var(--mono); font-size: 12.5px; color: var(--fg-muted); margin-top: 16px; }
.code-kv b { color: var(--fg); font-weight: 500; }
.cursor { display: inline-block; width: 7px; height: 15px; background: var(--accent); vertical-align: -2px; animation: blink 1.05s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }

/* ---------- Sections generic ---------- */
section { padding: 56px 0; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.section-head h2 { font-size: 22px; margin: 0; }
.section-head p { margin: 4px 0 0; color: var(--fg-muted); font-size: 14px; }
.subtle-strip { background: var(--canvas-subtle); border-top: 1px solid var(--border-muted); border-bottom: 1px solid var(--border-muted); }

/* practice area repo cards */
.repo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 760px) { .repo-grid { grid-template-columns: 1fr; } }
.repo-card { border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 18px 16px; background: var(--canvas); }
.repo-card-top { display: flex; align-items: flex-start; gap: 10px; justify-content: space-between; }
.repo-name { display: flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 15px; color: var(--accent); font-weight: 600; }
.repo-name svg { flex: none; color: var(--fg-subtle); }
.repo-visibility { font-size: 11px; font-family: var(--mono); border: 1px solid var(--border); border-radius: 999px; padding: 1px 8px; color: var(--fg-muted); }
.repo-desc { color: var(--fg-muted); font-size: 13.5px; margin: 8px 0 14px; max-width: 54ch; }
.repo-footer { display: flex; align-items: center; gap: 16px; font-size: 12.5px; color: var(--fg-subtle); flex-wrap: wrap; }
.repo-footer .lang { display: inline-flex; align-items: center; gap: 5px; }
.repo-footer a { color: var(--fg-subtle); }
.repo-footer a:hover { color: var(--accent); }

/* profile section */
.profile-grid { display: grid; grid-template-columns: 296px 1fr; gap: 48px; }
@media (max-width: 820px) { .profile-grid { grid-template-columns: 1fr; gap: 28px; } }
.avatar {
  width: 200px; height: 200px; border-radius: 12px; border: 1px solid var(--border);
  background: linear-gradient(135deg, #0969da, #218bff);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-family: var(--mono); font-weight: 700; font-size: 44px; letter-spacing: -1px;
  margin-bottom: 16px;
}
.profile-side h3 { font-size: 22px; margin: 0 0 2px; }
.profile-side .handle { color: var(--fg-muted); font-family: var(--mono); font-size: 15px; margin-bottom: 12px; }
.profile-side p.bio { font-size: 14px; color: var(--fg); margin: 0 0 16px; }
.profile-facts { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; color: var(--fg-muted); }
.profile-facts li { display: flex; align-items: center; gap: 8px; }
.profile-facts svg { flex: none; color: var(--fg-subtle); }
.profile-facts a { color: var(--fg-muted); }
.profile-facts a:hover { color: var(--accent); }
.org-label { font-size: 12px; text-transform: none; color: var(--fg-muted); font-weight: 600; margin: 0 0 8px; }
.org-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.org-chip {
  aspect-ratio: 1; border-radius: 6px; border: 1px solid var(--border); background: var(--canvas-subtle);
  display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-size: 10px;
  font-weight: 700; color: var(--fg-muted); text-align: center; line-height: 1.15; padding: 2px;
}

.readme { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.readme-head { background: var(--canvas-subtle); border-bottom: 1px solid var(--border); padding: 10px 16px; font-size: 13px; color: var(--fg-muted); display: flex; align-items: center; gap: 8px; }
.readme-head svg { flex: none; }
.readme-body { padding: 22px 24px 26px; }
.readme-body h4 { font-size: 15px; margin: 22px 0 8px; }
.readme-body h4:first-child { margin-top: 0; }
.readme-body p { color: var(--fg); font-size: 14.5px; margin: 0 0 12px; max-width: 68ch; }
.readme-body ul { margin: 0 0 12px; padding-left: 22px; font-size: 14.5px; color: var(--fg); }
.readme-body li { margin-bottom: 4px; }
.readme-body code { font-family: var(--mono); background: var(--canvas-inset); padding: 1px 5px; border-radius: 4px; font-size: 12.5px; }

/* locations */
.loc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 760px) { .loc-grid { grid-template-columns: 1fr; } }
.loc-card { border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; background: var(--canvas); }
.loc-card .commit-line { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; color: var(--fg-subtle); margin-bottom: 10px; }
.loc-card .commit-line svg { color: var(--success); flex: none; }
.loc-card h3 { margin: 0 0 6px; font-size: 17px; }
.loc-card address { font-style: normal; color: var(--fg-muted); font-size: 14px; margin: 0 0 14px; line-height: 1.6; }
.loc-card .loc-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* CTA banner */
.cta-banner {
  border: 1px solid var(--border); border-radius: 12px; padding: 40px; text-align: center;
  background: var(--canvas-subtle);
}
.cta-banner h2 { font-size: 24px; margin: 0 0 8px; }
.cta-banner p { color: var(--fg-muted); margin: 0 0 20px; font-size: 15px; }

/* footer */
footer { background: var(--header-bg); color: var(--header-fg-muted); border-top: 1px solid var(--header-border); padding: 48px 0 28px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr repeat(3, 1fr); gap: 32px; margin-bottom: 36px; }
@media (max-width: 760px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
.footer-brand { display: flex; align-items: center; gap: 8px; color: var(--header-fg); font-weight: 600; margin-bottom: 10px; }
.footer-tag { font-size: 13px; max-width: 26ch; color: var(--header-fg-muted); }
.footer-col h5 { color: var(--header-fg); font-size: 13px; font-weight: 600; margin: 0 0 12px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.footer-col a { color: var(--header-fg-muted); font-size: 13px; }
.footer-col a:hover { color: var(--header-fg); }
.footer-bottom { border-top: 1px solid var(--header-border); padding-top: 20px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; font-size: 12.5px; }
.social-row { display: flex; gap: 14px; }
.social-row a { color: var(--header-fg-muted); display: inline-flex; }
.social-row a:hover { color: var(--header-fg); }

/* ---------- Skip link ---------- */
.skip-link { position: absolute; left: 12px; top: -48px; z-index: 100; background: var(--canvas); color: var(--fg); padding: 8px 12px; border-radius: var(--radius); border: 1px solid var(--border); }
.skip-link:focus { top: 12px; }
a.brand:hover { text-decoration: none; }

/* ---------- Dropdown navigation ---------- */
.nav-item { position: relative; }
.nav-item > a, .nav-item > button.nav-trigger {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--header-fg-muted); font: 500 14px/1.5 var(--sans);
  padding: 8px 10px; border-radius: var(--radius); background: none; border: 0; cursor: pointer;
}
.nav-item > a:hover, .nav-item > button.nav-trigger:hover, .nav-item.open > button.nav-trigger { color: var(--header-fg); background: rgba(255,255,255,0.08); text-decoration: none; }
.nav-item .caret { opacity: .7; transition: transform .15s; }
.nav-item.open .caret { transform: rotate(180deg); }
.nav-menu {
  display: none; position: absolute; top: calc(100% + 6px); left: 0; z-index: 50; min-width: 280px;
  background: var(--canvas); border: 1px solid var(--border); border-radius: 12px; padding: 8px;
  box-shadow: 0 8px 24px rgba(31,35,40,.18); list-style: none; margin: 0;
}
.nav-item.open .nav-menu { display: block; }
@media (hover: hover) and (min-width: 821px) { .nav-item:hover .nav-menu, .nav-item:focus-within .nav-menu { display: block; } }
.nav-menu a { display: block; padding: 7px 10px; border-radius: var(--radius); color: var(--fg); font-size: 14px; }
.nav-menu a:hover { background: var(--canvas-subtle); text-decoration: none; color: var(--accent); }
.nav-menu a small { display: block; color: var(--fg-muted); font-size: 12px; }
.nav-menu .sub a { padding-left: 24px; font-size: 13px; color: var(--fg-muted); }
@media (max-width: 820px) {
  nav.primary-nav.open { max-height: calc(100vh - 64px); overflow-y: auto; }
  nav.primary-nav.open .nav-item > a, nav.primary-nav.open .nav-item > button.nav-trigger { width: 100%; justify-content: space-between; }
  .nav-menu { position: static; box-shadow: none; border: 0; background: transparent; padding: 0 0 6px 8px; min-width: 0; }
  .nav-menu a { color: var(--header-fg-muted); }
  .nav-menu a:hover { background: rgba(255,255,255,0.08); color: var(--header-fg); }
  .nav-menu .sub a { color: var(--header-fg-muted); }
  .topbar-actions .btn-on-dark { display: none; }
}

/* ---------- Repo-style page header ---------- */
.repo-head { background: var(--canvas-subtle); border-bottom: 1px solid var(--border-muted); padding: 22px 0 0; }
.crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 18px; margin: 0 0 6px; padding: 0; list-style: none; }
.crumbs li { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.crumbs li + li::before { content: "/"; color: var(--fg-subtle); }
.crumbs a { color: var(--accent); }
.crumbs [aria-current] { color: var(--fg); font-weight: 600; overflow-wrap: anywhere; }
.crumbs svg { color: var(--fg-subtle); flex: none; }
.repo-head h1 { font-size: clamp(24px, 3.2vw, 32px); line-height: 1.2; margin: 10px 0 6px; letter-spacing: -0.01em; }
.repo-head .repo-desc-lg { color: var(--fg-muted); font-size: 15px; margin: 0 0 16px; max-width: 80ch; }
.tabs { display: flex; gap: 4px; overflow-x: auto; margin-top: 8px; }
.tabs a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; color: var(--fg); font-size: 14px; border-bottom: 2px solid transparent; white-space: nowrap; }
.tabs a:hover { text-decoration: none; border-bottom-color: var(--border); }
.tabs a[aria-current="page"] { border-bottom-color: #fd8c73; font-weight: 600; }
.tabs .count { background: var(--canvas-inset); border-radius: 999px; padding: 0 7px; font-size: 12px; color: var(--fg-muted); }

/* ---------- Interior page layout ---------- */
.page-grid { display: grid; grid-template-columns: minmax(0, 1fr) 296px; gap: 32px; padding: 28px 24px 56px; }
@media (max-width: 900px) { .page-grid { grid-template-columns: 1fr; } }
.page-grid > * { min-width: 0; }
.readme-body h2 { font-size: 22px; margin: 28px 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--border-muted); }
.readme-body h3 { font-size: 18px; margin: 24px 0 8px; }
.readme-body h2:first-child, .readme-body h3:first-child { margin-top: 0; }
.readme-body ol { margin: 0 0 12px; padding-left: 22px; font-size: 14.5px; }
.readme-body img { height: auto; border-radius: var(--radius); }
.readme-body table { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; margin: 0 0 16px; font-size: 14px; }
.readme-body th, .readme-body td { border: 1px solid var(--border); padding: 6px 12px; text-align: left; vertical-align: top; }
.readme-body tr:nth-child(2n) td { background: var(--canvas-subtle); }
.readme-body blockquote { margin: 0 0 12px; padding: 0 14px; color: var(--fg-muted); border-left: 4px solid var(--border); }
.readme-body p, .readme-body li { overflow-wrap: anywhere; }
.side-box { border-bottom: 1px solid var(--border-muted); padding: 0 0 20px; margin: 0 0 20px; }
.side-box:last-child { border-bottom: 0; }
.side-box h2 { font-size: 16px; margin: 0 0 10px; }
.side-box p { font-size: 14px; color: var(--fg-muted); margin: 0 0 12px; }
.side-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.side-list a { display: flex; gap: 8px; align-items: flex-start; }
.side-list svg { flex: none; margin-top: 3px; color: var(--fg-subtle); }
.side-list .here { font-weight: 600; color: var(--fg); }
.side-cta .btn { width: 100%; margin-bottom: 8px; }

/* ---------- File list (section indexes) ---------- */
.file-list { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-top: 24px; }
.file-list-head { background: var(--canvas-subtle); border-bottom: 1px solid var(--border); padding: 12px 16px; font-size: 14px; font-weight: 600; display: flex; justify-content: space-between; gap: 12px; }
.file-list-head span { color: var(--fg-muted); font-weight: 400; }
.file-list ul { list-style: none; margin: 0; padding: 0; }
.file-list li { border-top: 1px solid var(--border-muted); }
.file-list li:first-child { border-top: 0; }
.file-list a { display: flex; align-items: center; gap: 10px; padding: 9px 16px; font-size: 14px; color: var(--fg); }
.file-list a:hover { background: var(--canvas-subtle); text-decoration: none; }
.file-list a:hover .fl-name { color: var(--accent); text-decoration: underline; }
.file-list svg { flex: none; color: var(--fg-subtle); }
.file-list svg.dir { color: #54aeff; }
.fl-name { flex: 1; min-width: 0; }
.fl-meta { color: var(--fg-subtle); font-family: var(--mono); font-size: 12px; white-space: nowrap; }
@media (max-width: 560px) { .fl-meta { display: none; } }

/* ---------- Home additions ---------- */
.repo-name a { color: inherit; }
.repo-card { transition: border-color .15s; }
.repo-card:hover { border-color: var(--fg-subtle); }
.pending-note { border: 1px dashed var(--attention); border-radius: var(--radius); padding: 12px 16px; color: var(--attention); font-size: 14px; }
.footer-col h2 { color: var(--header-fg); font-size: 13px; font-weight: 600; margin: 0 0 12px; }
@media (max-width: 520px) { .brand-name span { display: none; } .crumbs { font-size: 16px; } }
.fl-meta { max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
/* imported WordPress content: one consistent body size whatever markup it arrives in */
.readme-body { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.readme-body p, .readme-body ul, .readme-body ol, .readme-body li { font-size: inherit; max-width: none; }
.readme-body > * { max-width: 78ch; }
.readme-body > table, .readme-body > iframe, .readme-body > img { max-width: 100%; }
.readme-body iframe { width: 100%; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.readme-body hr { border: 0; border-top: 1px solid var(--border-muted); margin: 24px 0; }
.readme-body h4 { font-size: 15px; }
.readme-body td > p:last-child { margin-bottom: 0; }
/* home helpers (no inline styles in the markup) */
.code-title { margin: 0 0 6px; font-size: 16px; font-weight: 600; }
.code-sub, .repo-card h3.repo-name, #publications h3.repo-name { margin: 0; }
h3.repo-name { margin: 0; }
.profile-name { font-size: 22px; margin: 0 0 2px; }
.hero-ctas.centered { justify-content: center; }
.dot-green { background: var(--success); }
.dot-blue { background: var(--accent); }
.dot-purple { background: var(--done); }
.dot-red { background: var(--danger); }
.dot-yellow { background: var(--attention); }
/* language switch */
.lang-switch { color: var(--header-fg-muted); font: 600 12px/1 var(--mono); border: 1px solid var(--header-border); border-radius: 999px; padding: 5px 10px; }
.lang-switch:hover { color: var(--header-fg); text-decoration: none; border-color: var(--header-fg-muted); }
.readme-body img { max-width: 100%; height: auto; }

/* ---------- Contact / service request form ---------- */
.form-card { padding: 0; border: 1px solid var(--border); border-radius: var(--radius); margin-top: 24px; overflow: hidden; scroll-margin-top: 80px; }
.form-card-head { display: flex; align-items: center; gap: 8px; background: var(--canvas-subtle); border-bottom: 1px solid var(--border); padding: 12px 16px; }
.form-card-head svg { color: var(--success); flex: none; }
.form-card-head h2 { font-size: 16px; margin: 0; }
.form-card-text { margin: 16px 16px 0; color: var(--fg-muted); font-size: 14px; }
.form-embed { display: block; width: 100%; max-width: 900px; height: 810px; border: 0; background: #fff; margin: 8px auto 0; }
@media (max-width: 600px) { .form-embed { height: 1150px; } }
.form-row { padding-bottom: 56px; }
.form-row .form-card { margin-top: 0; }
.form-wide .form-card-text, .form-wide .form-card-alt { text-align: center; }
.form-card-alt { margin: 0; padding: 12px 16px; border-top: 1px solid var(--border-muted); font-size: 13px; color: var(--fg-muted); }

/* ---------- Logo ---------- */
.brand { flex: none; }
.brand-logo { display: block; height: 48px; width: auto; }
.footer-logo { display: block; height: 60px; width: auto; }
.footer-brand { margin-bottom: 14px; }
.avatar.avatar-logo { background: #24292f; padding: 18px; }
.avatar.avatar-logo img { width: 100%; height: auto; }
@media (max-width: 520px) { .brand-logo { height: 40px; } }

/* ---------- Page-header banners (gold line art on charcoal; always dark) ---------- */
.repo-head.banner {
  background-color: #11161c;
  background-size: cover; background-position: right center; background-repeat: no-repeat;
  border-bottom: 1px solid #30363d; padding-top: 34px;
  color: #e6edf3;
}
.repo-head.banner .crumbs a { color: #f2c384; }
.repo-head.banner .crumbs [aria-current], .repo-head.banner h1 { color: #ffffff; }
.repo-head.banner .crumbs li + li::before, .repo-head.banner .crumbs svg { color: #8b949e; }
.repo-head.banner .repo-desc-lg { color: #c9d1d9; }
.repo-head.banner .tabs a { color: #e6edf3; }
.repo-head.banner .tabs a:hover { border-bottom-color: #6e7681; }
.repo-head.banner .tabs a[aria-current="page"] { border-bottom-color: #e7ad6a; }
.repo-head.banner .tabs .count { background: rgba(255,255,255,.12); color: #e6edf3; }
.repo-head.banner h1, .repo-head.banner .repo-desc-lg { max-width: 760px; }
@media (max-width: 700px) {
  .repo-head.banner { background-position: 78% center; }
}
.repo-head.banner-contact { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/contact.svg); }
.repo-head.banner-corporate { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/corporate.svg); }
.repo-head.banner-criminal { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/criminal.svg); }
.repo-head.banner-debt { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/debt.svg); }
.repo-head.banner-drugs { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/drugs.svg); }
.repo-head.banner-family { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/family.svg); }
.repo-head.banner-firm { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/firm.svg); }
.repo-head.banner-immigration { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/immigration.svg); }
.repo-head.banner-labor { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/labor.svg); }
.repo-head.banner-library { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/library.svg); }
.repo-head.banner-news { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/news.svg); }
.repo-head.banner-patent { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/patent.svg); }
.repo-head.banner-realestate { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/realestate.svg); }
.repo-head.banner-sanitary { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/sanitary.svg); }
.repo-head.banner-trademark { background-image: linear-gradient(90deg, rgba(13,17,23,.94) 0%, rgba(13,17,23,.80) 40%, rgba(13,17,23,.10) 75%), url(../images/headers/trademark.svg); }
@media (max-width: 700px) {
  .repo-head.banner-contact { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/contact.svg); }
  .repo-head.banner-corporate { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/corporate.svg); }
  .repo-head.banner-criminal { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/criminal.svg); }
  .repo-head.banner-debt { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/debt.svg); }
  .repo-head.banner-drugs { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/drugs.svg); }
  .repo-head.banner-family { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/family.svg); }
  .repo-head.banner-firm { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/firm.svg); }
  .repo-head.banner-immigration { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/immigration.svg); }
  .repo-head.banner-labor { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/labor.svg); }
  .repo-head.banner-library { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/library.svg); }
  .repo-head.banner-news { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/news.svg); }
  .repo-head.banner-patent { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/patent.svg); }
  .repo-head.banner-realestate { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/realestate.svg); }
  .repo-head.banner-sanitary { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/sanitary.svg); }
  .repo-head.banner-trademark { background-image: linear-gradient(180deg, rgba(13,17,23,.78) 0%, rgba(13,17,23,.92) 100%), url(../images/headers/trademark.svg); }
}
