/* ============================================================
   parseapi.dev — custom theme on top of Bootstrap 5.3
   ============================================================ */

[x-cloak] { display: none !important; }

/* ============================================================
   Extraction JSON viewer
   ============================================================ */
.extraction-kv {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}
.extraction-kv > tbody > tr {
    border-bottom: 1px solid var(--pa-border, #e5e7eb);
}
.extraction-kv > tbody > tr:last-child { border-bottom: none; }
.extraction-kv > tbody > tr > th.kv-key {
    text-align: left;
    font-weight: 500;
    color: var(--pa-muted, #6b7280);
    padding: 0.5rem 0.75rem 0.5rem 0;
    vertical-align: top;
    width: 38%;
    word-break: break-word;
}
.extraction-kv > tbody > tr > td.kv-value {
    padding: 0.5rem 0;
    vertical-align: top;
    color: var(--pa-ink, #111827);
    word-break: break-word;
}
.extraction-kv .extraction-kv {
    margin: 0;
    border-left: 2px solid var(--pa-border, #e5e7eb);
    padding-left: 0.5rem;
}
.extraction-rows th {
    white-space: nowrap;
}
.extraction-mixed {
    line-height: 1.4;
}

:root {
  --pa-primary:       #2563eb;
  --pa-primary-600:   #2563eb;
  --pa-primary-700:   #1d4ed8;
  --pa-primary-50:    #eff6ff;
  --pa-primary-100:   #dbeafe;

  --pa-ink:           #0a0a0b;
  --pa-ink-soft:      #1f2937;
  --pa-muted:         #6b7280;
  --pa-muted-light:   #9ca3af;
  --pa-line:          #e5e7eb;
  --pa-line-soft:     #f1f3f5;
  --pa-bg-soft:       #f8fafc;
  --pa-bg-tint:       #fafbfc;

  --bs-primary:        var(--pa-primary);
  --bs-primary-rgb:    37, 99, 235;
  --bs-body-color:     var(--pa-ink-soft);
  --bs-body-bg:        #ffffff;
  --bs-body-font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  --bs-border-color:   var(--pa-line);
  --bs-border-radius:        .625rem;
  --bs-border-radius-sm:     .375rem;
  --bs-border-radius-lg:     1rem;
  --bs-border-radius-xl:     1.25rem;
  --bs-link-color-rgb:       37, 99, 235;
  --bs-link-hover-color-rgb: 29, 78, 216;
}

html, body {
  font-family: var(--bs-body-font-family);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: -0.005em;
}
body { color: var(--pa-ink-soft); }

h1, h2, h3, h4, h5, h6, .display-1, .display-2, .display-3, .display-4 {
  letter-spacing: -0.022em;
  color: var(--pa-ink);
  font-weight: 700;
}
.display-1, .display-2, .display-3 { letter-spacing: -0.04em; line-height: 1; font-weight: 800; }

.text-ink       { color: var(--pa-ink) !important; }
.text-ink-soft  { color: var(--pa-ink-soft) !important; }
.text-muted     { color: var(--pa-muted) !important; }
.text-muted-2   { color: var(--pa-muted-light) !important; }

.bg-soft        { background-color: var(--pa-bg-soft) !important; }
.bg-tint        { background-color: var(--pa-bg-tint) !important; }
.bg-ink         { background-color: var(--pa-ink) !important; color: #f4f4f5; }
.bg-primary-50  { background-color: var(--pa-primary-50) !important; }

.border-line    { border-color: var(--pa-line) !important; }
.border-soft    { border-color: var(--pa-line-soft) !important; }

.btn {
  font-weight: 600;
  padding: .55rem 1.1rem;
  border-radius: var(--bs-border-radius);
  transition: all .15s ease;
  letter-spacing: -.005em;
}
.btn-lg { padding: .8rem 1.5rem; font-size: 0.95rem; }
.btn-primary {
  --bs-btn-bg: var(--pa-primary);
  --bs-btn-border-color: var(--pa-primary);
  --bs-btn-hover-bg: var(--pa-primary-700);
  --bs-btn-hover-border-color: var(--pa-primary-700);
  --bs-btn-active-bg: var(--pa-primary-700);
  --bs-btn-active-border-color: var(--pa-primary-700);
  box-shadow: 0 1px 2px rgba(37,99,235,.08), 0 4px 12px rgba(37,99,235,.18);
}
.btn-primary:hover { box-shadow: 0 1px 2px rgba(37,99,235,.1), 0 8px 20px rgba(37,99,235,.25); transform: translateY(-1px); }
.btn-dark {
  --bs-btn-bg: var(--pa-ink);
  --bs-btn-border-color: var(--pa-ink);
  --bs-btn-hover-bg: #2a2a2c;
  --bs-btn-hover-border-color: #2a2a2c;
  --bs-btn-active-bg: #1a1a1c;
  box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 4px 14px rgba(0,0,0,.12);
}
.btn-dark:hover { transform: translateY(-1px); box-shadow: 0 1px 2px rgba(0,0,0,.07), 0 8px 22px rgba(0,0,0,.18); }
.btn-outline-dark {
  --bs-btn-color: var(--pa-ink);
  --bs-btn-border-color: var(--pa-line);
  --bs-btn-hover-bg: var(--pa-bg-soft);
  --bs-btn-hover-border-color: #d1d5db;
  --bs-btn-hover-color: var(--pa-ink);
}
.btn-ghost { background: transparent; border: 1px solid transparent; color: var(--pa-ink-soft); }
.btn-ghost:hover { background: var(--pa-bg-soft); color: var(--pa-ink); }

.card {
  border: 1px solid var(--pa-line);
  border-radius: var(--bs-border-radius-lg);
  background: #fff;
  box-shadow: 0 1px 2px rgba(15,23,42,.04);
}
.card-hover { transition: all .2s ease; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15,23,42,.08); border-color: #d1d5db; }
.card-flat { box-shadow: none; }
.card-pop { box-shadow: 0 24px 48px -16px rgba(15,23,42,.18), 0 4px 8px rgba(15,23,42,.05); }
.card-dark { background: var(--pa-ink); color: #e5e7eb; border-color: #27272a; }

.form-control, .form-select {
  border: 1px solid var(--pa-line);
  border-radius: var(--bs-border-radius);
  padding: .6rem .85rem;
  font-size: .925rem;
  background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.form-control:focus, .form-select:focus {
  border-color: var(--pa-primary);
  box-shadow: 0 0 0 4px rgba(37,99,235,.12);
}
.form-label { font-weight: 600; font-size: .85rem; color: var(--pa-ink); margin-bottom: .4rem; }
.form-text { font-size: .8rem; color: var(--pa-muted); }
.form-control-lg { padding: .8rem 1rem; font-size: 1rem; }

.navbar {
  background: rgba(255,255,255,.92);
  backdrop-filter: saturate(180%) blur(12px);
  -webkit-backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--pa-line-soft);
  padding: .6rem 0;
  min-height: 60px;
}
.navbar-brand { font-weight: 700; font-size: 1rem; color: var(--pa-ink); letter-spacing: -.02em; display: inline-flex; align-items: center; gap: .55rem; }
.navbar-brand:hover { color: var(--pa-ink); }
.brand-mark { width: 26px; height: 26px; border-radius: 7px; background: var(--pa-primary); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(37,99,235,.3); }
.brand-mark i { color: #fff; font-size: .85rem; }
.brand-tld { color: var(--pa-muted-light); font-weight: 500; }
.brand-accent { color: var(--pa-primary); }
.nav-link { color: var(--pa-muted); font-weight: 500; font-size: .9rem; padding: .35rem .85rem !important; border-radius: .5rem; transition: all .15s; }
.nav-link:hover, .nav-link.active { color: var(--pa-ink); background: var(--pa-bg-soft); }

.pill {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .72rem; font-weight: 600;
  padding: .25rem .65rem;
  border-radius: 999px;
  background: var(--pa-bg-soft);
  border: 1px solid var(--pa-line);
  color: var(--pa-ink-soft);
  letter-spacing: -.005em;
}
.pill-primary  { background: var(--pa-primary-50); border-color: #bfdbfe; color: var(--pa-primary-700); }
.pill-success  { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; }
.pill-warning  { background: #fffbeb; border-color: #fde68a; color: #92400e; }
.pill-danger   { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.pill-dot      { width: 6px; height: 6px; border-radius: 999px; background: currentColor; opacity: .8; }
.pulse-dot { animation: pulseDot 2s infinite; }
@keyframes pulseDot { 0%,100% { opacity: .9; } 50% { opacity: .35; } }

.eyebrow {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: .75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--pa-primary);
}
.eyebrow::before { content: ""; display: block; width: 22px; height: 1px; background: var(--pa-primary); }

code, kbd, pre, samp, .font-mono { font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
code { background: var(--pa-bg-soft); color: var(--pa-ink); padding: .1rem .4rem; border-radius: .35rem; font-size: .85em; border: 1px solid var(--pa-line-soft); }

.code-window { background: #fff; border: 1px solid var(--pa-line); border-radius: var(--bs-border-radius-lg); overflow: hidden; box-shadow: 0 24px 48px -20px rgba(15,23,42,.18), 0 4px 8px rgba(15,23,42,.04); }
.code-window-dark { background: #0b0d12; color: #d4d4d8; border: 1px solid #1c1f26; box-shadow: 0 24px 48px -16px rgba(15,23,42,.4); }
.code-window-header { display: flex; align-items: center; gap: .75rem; padding: .65rem .9rem; background: var(--pa-bg-soft); border-bottom: 1px solid var(--pa-line); }
.code-window-dark .code-window-header { background: #11141b; border-bottom-color: #1c1f26; }
.dot { width: 11px; height: 11px; border-radius: 999px; background: #e4e4e7; }
.dot-red { background: #f87171; } .dot-amber { background: #fbbf24; } .dot-green { background: #34d399; }
.code-body { padding: 1rem 1.1rem; font-family: 'JetBrains Mono', monospace; font-size: 12.5px; line-height: 1.85; overflow-x: auto; }
.code-body .k  { color: var(--pa-primary); }
.code-body .s  { color: #059669; }
.code-body .n  { color: #d97706; }
.code-body .c  { color: var(--pa-muted-light); }
.code-window-dark .code-body .k { color: #60a5fa; }
.code-window-dark .code-body .s { color: #6ee7b7; }
.code-window-dark .code-body .n { color: #fbbf24; }
.code-window-dark .code-body .c { color: #71717a; }

.hero-title {
  font-size: clamp(2.5rem, 6vw, 4.75rem);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1;
  color: var(--pa-ink);
}
.hero-lead { font-size: clamp(1.05rem, 1.4vw, 1.2rem); color: var(--pa-muted); line-height: 1.65; max-width: 36rem; }
.section-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.05;
  color: var(--pa-ink);
}

.stat-number { font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--pa-ink); }
.stat-number .accent { color: var(--pa-primary); }
.stat-label { font-size: .8rem; color: var(--pa-muted); margin-top: .35rem; }

.app-shell { min-height: 100vh; background: var(--pa-bg-tint); display: flex; }
.app-sidebar {
  width: 250px; border-right: 1px solid var(--pa-line); background: #fff;
  padding: 1rem .75rem; display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh; flex-shrink: 0;
}
.app-main { flex: 1; min-width: 0; padding: 1.5rem 2rem 4rem; }
.sidebar-link {
  display: flex; align-items: center; gap: .65rem;
  padding: .55rem .75rem; margin: 1px 0; border-radius: .5rem;
  font-size: .875rem; font-weight: 500;
  color: var(--pa-ink-soft); text-decoration: none;
  transition: background-color .12s, color .12s;
}
.sidebar-link:hover { background: var(--pa-bg-soft); color: var(--pa-ink); }
.sidebar-link.active { background: var(--pa-primary-50); color: var(--pa-primary-700); }
.sidebar-link.active i { color: var(--pa-primary); }
.sidebar-link i { font-size: 1rem; color: var(--pa-muted); width: 18px; text-align: center; }
.sidebar-section { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--pa-muted-light); padding: 1rem .75rem .35rem; }

.section { padding: 5rem 0; }
.section-lg { padding: 7rem 0; }
.section-sm { padding: 3rem 0; }
@media (min-width: 768px) { .section { padding: 6.5rem 0; } .section-lg { padding: 9rem 0; } }

.hairline-top { border-top: 1px solid var(--pa-line); }
.hairline-bottom { border-bottom: 1px solid var(--pa-line); }

.auth-shell { min-height: 100vh; display: grid; grid-template-columns: 1fr; background: #fff; }
@media (min-width: 992px) { .auth-shell { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
.auth-pane { padding: 2.5rem 1.75rem; display: flex; flex-direction: column; }
.auth-form { max-width: 26rem; margin: auto; width: 100%; }
.auth-aside { display: none; position: relative; background: linear-gradient(135deg, #0a0a0b 0%, #1f2937 100%); color: #fff; padding: 4rem 3rem; overflow: hidden; }
@media (min-width: 992px) { .auth-aside { display: flex; flex-direction: column; justify-content: space-between; } }
.auth-aside::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 30% 20%, rgba(37,99,235,.4), transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(59,130,246,.3), transparent 50%);
  opacity: .85;
}
.auth-aside > * { position: relative; z-index: 1; }
.oauth-btn { display: flex; align-items: center; justify-content: center; gap: .65rem; width: 100%; padding: .7rem 1rem; border-radius: var(--bs-border-radius); border: 1px solid var(--pa-line); background: #fff; color: var(--pa-ink); font-weight: 600; font-size: .9rem; transition: all .15s; text-decoration: none; }
.oauth-btn:hover { background: var(--pa-bg-soft); border-color: #d1d5db; }
.oauth-btn img, .oauth-btn svg { width: 18px; height: 18px; }

.folder-card { border: 1px solid var(--pa-line); border-radius: var(--bs-border-radius-lg); background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.04); overflow: hidden; }
.folder-card-header { display: flex; align-items: center; gap: .55rem; padding: .65rem .85rem; border-bottom: 1px solid var(--pa-line-soft); background: #fbfbfb; }
.folder-card-header i { color: var(--pa-primary); }
.folder-card ul { list-style: none; margin: 0; padding: 0; }
.folder-card li { display: flex; align-items: center; gap: .65rem; padding: .55rem .85rem; border-bottom: 1px solid var(--pa-line-soft); }
.folder-card li:last-child { border-bottom: 0; }
.pdf-thumb { width: 24px; height: 28px; background: #fef2f2; border: 1px solid #fecaca; border-radius: 3px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 8px; font-weight: 700; color: #dc2626; }

.step-num { width: 32px; height: 32px; border-radius: 999px; background: var(--pa-ink); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .8rem; }

.usecase-tile {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between;
  gap: 1.25rem; padding: 1.5rem 1.25rem;
  background: #fff; border: 1px solid var(--pa-line); border-radius: var(--bs-border-radius-lg);
  transition: all .25s ease; text-decoration: none; color: var(--pa-ink);
  position: relative; overflow: hidden; min-height: 11rem;
}
.usecase-tile::after {
  content: ""; position: absolute; right: -20px; bottom: -20px;
  width: 90px; height: 90px; border-radius: 50%;
  background: var(--ut-tint, rgba(37,99,235,.06));
  opacity: 0; transition: opacity .25s, transform .25s; transform: scale(.6);
  pointer-events: none;
}
.usecase-tile:hover { border-color: var(--pa-ink); transform: translateY(-4px); box-shadow: 0 18px 40px rgba(15,23,42,.10); color: var(--pa-ink); }
.usecase-tile:hover::after { opacity: 1; transform: scale(1); }
.usecase-tile .uc-icon {
  width: 48px; height: 48px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ut-bg, rgba(37,99,235,.08));
  color: var(--ut-color, var(--pa-primary));
  flex-shrink: 0;
  transition: transform .25s ease;
}
.usecase-tile:hover .uc-icon { transform: scale(1.08) rotate(-3deg); }
.usecase-tile .uc-icon i { font-size: 1.4rem; }
.usecase-tile .uc-meta { display: flex; flex-direction: column; gap: .25rem; }
.usecase-tile .uc-title { font-weight: 700; font-size: 1rem; color: var(--pa-ink); letter-spacing: -.015em; }
.usecase-tile .uc-tag { font-size: .7rem; color: var(--pa-muted); font-family: 'JetBrains Mono', monospace; }
.usecase-tile.uc-blue   { --ut-bg: rgba(37,99,235,.08);  --ut-color: #2563eb; --ut-tint: rgba(37,99,235,.06); }
.usecase-tile.uc-pink   { --ut-bg: rgba(236,72,153,.08); --ut-color: #db2777; --ut-tint: rgba(236,72,153,.06); }
.usecase-tile.uc-amber  { --ut-bg: rgba(245,158,11,.10); --ut-color: #d97706; --ut-tint: rgba(245,158,11,.06); }
.usecase-tile.uc-green  { --ut-bg: rgba(16,185,129,.10); --ut-color: #059669; --ut-tint: rgba(16,185,129,.06); }
.usecase-tile.uc-violet { --ut-bg: rgba(139,92,246,.10); --ut-color: #7c3aed; --ut-tint: rgba(139,92,246,.06); }
.usecase-tile.uc-rose   { --ut-bg: rgba(244,63,94,.10);  --ut-color: #e11d48; --ut-tint: rgba(244,63,94,.06); }
.usecase-tile.uc-cyan   { --ut-bg: rgba(6,182,212,.10);  --ut-color: #0891b2; --ut-tint: rgba(6,182,212,.06); }
.usecase-tile.uc-slate  { --ut-bg: rgba(71,85,105,.10);  --ut-color: #475569; --ut-tint: rgba(71,85,105,.06); }

/* ── Live ops band (dark) ─────────────────────────────────── */
.ops-band {
  background: #0a0a0b;
  background-image:
    radial-gradient(ellipse 100% 50% at 50% 0%, rgba(37,99,235,.10), transparent 70%),
    linear-gradient(180deg, #0a0a0b, #0a0a0b);
  color: #f4f4f5;
  position: relative;
  overflow: hidden;
}
.ops-band::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 100% at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 100% at 50% 50%, #000 30%, transparent 80%);
  pointer-events: none;
}
.ops-band > * { position: relative; z-index: 1; }
.ops-header {
  display: flex; align-items: center; gap: .65rem;
  font-family: 'JetBrains Mono', monospace; font-size: .75rem;
  color: #71717a; letter-spacing: .05em; padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.ops-live {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .2rem .55rem; border-radius: 999px;
  background: rgba(16,185,129,.12); border: 1px solid rgba(16,185,129,.25);
  color: #6ee7b7; font-weight: 600; font-size: .68rem; letter-spacing: .12em;
}
.ops-live-dot { width: 6px; height: 6px; border-radius: 50%; background: #10b981; box-shadow: 0 0 0 0 rgba(16,185,129,.5); animation: opsLivePulse 2s infinite; }
@keyframes opsLivePulse { 0% { box-shadow: 0 0 0 0 rgba(16,185,129,.6); } 70% { box-shadow: 0 0 0 8px rgba(16,185,129,0); } 100% { box-shadow: 0 0 0 0 rgba(16,185,129,0); } }
.ops-metric {
  padding: 1.5rem .25rem 0;
  border-right: 1px solid rgba(255,255,255,.06);
}
.ops-metric:last-child { border-right: 0; }
.ops-metric-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 8px;
  background: rgba(255,255,255,.05); color: #a1a1aa;
  margin-bottom: .9rem;
}
.ops-metric-number {
  font-size: clamp(2rem, 3.5vw, 2.75rem); font-weight: 800;
  letter-spacing: -.04em; line-height: 1; color: #fff;
  margin-bottom: .35rem;
}
.ops-metric-number .accent { color: #60a5fa; }
.ops-metric-label { font-size: .8rem; color: #71717a; margin-bottom: .9rem; }
.ops-spark { display: flex; gap: 2px; align-items: end; height: 16px; }
.ops-spark span { width: 3px; background: rgba(96,165,250,.35); border-radius: 1px; }
.ops-spark span.hi { background: #60a5fa; }
@media (max-width: 767.98px) {
  .ops-metric { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.06); padding-bottom: 1.25rem; }
  .ops-metric:last-child { border-bottom: 0; }
}

.site-footer { background: var(--pa-ink); color: #9ca3af; padding: 4rem 0 1.5rem; }
.site-footer h6 { color: #d4d4d8; font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; margin-bottom: 1rem; }
.site-footer a { color: #9ca3af; text-decoration: none; font-size: .9rem; transition: color .15s; }
.site-footer a:hover { color: #fff; }
.site-footer .footer-bottom { border-top: 1px solid #27272a; margin-top: 3rem; padding-top: 1.5rem; font-size: .8rem; }

.grid-bg { position: relative; }
.grid-bg::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, rgba(0,0,0,.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(0,0,0,.04) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 80%);
  pointer-events: none; z-index: 0;
}
.grid-bg > * { position: relative; z-index: 1; }

.marker { position: relative; display: inline-block; }
.marker::after { content: ""; position: absolute; left: 0; right: 0; bottom: .08em; height: .35em; background: rgba(37,99,235,.22); z-index: -1; border-radius: 2px; }

.skip-link { position: absolute; top: -40px; left: .5rem; padding: .5rem 1rem; background: #fff; border-radius: .5rem; font-weight: 600; box-shadow: 0 4px 12px rgba(0,0,0,.1); transition: top .15s; z-index: 1100; }
.skip-link:focus { top: .5rem; }

@keyframes fade-in-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.fade-in-up { animation: fade-in-up .5s ease both; }

.text-blue       { color: var(--pa-primary) !important; }
.bg-blue         { background-color: var(--pa-primary) !important; color: #fff; }
.rounded-2xl     { border-radius: var(--bs-border-radius-xl) !important; }
.shadow-pop      { box-shadow: 0 20px 40px rgba(15,23,42,.1) !important; }
.fw-800          { font-weight: 800 !important; }
.fw-900          { font-weight: 900 !important; }
.tracking-tight  { letter-spacing: -.02em; }
.tracking-tighter{ letter-spacing: -.04em; }
.lh-tight        { line-height: 1.1 !important; }
.lh-none         { line-height: 1 !important; }

@media (max-width: 991.98px) {
  .app-sidebar { position: fixed; left: -260px; top: 0; z-index: 1040; transition: left .25s; box-shadow: 0 16px 48px rgba(0,0,0,.15); }
  .app-sidebar.is-open { left: 0; }
  .sidebar-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 1030; opacity: 0; pointer-events: none; transition: opacity .2s; }
  .sidebar-backdrop.is-open { opacity: 1; pointer-events: all; }
  .app-main { padding: 1rem 1.25rem 3rem; }
}

/* ── Bootstrap Icons local font override ─────────────────── */
.bi { line-height: 1; vertical-align: -.125em; }
