:root {
  --openea-max-width: 90rem;
  --openea-sidebar-width: 16rem;
  --openea-blue: #206bc4;
  --openea-blue-deep: #1856a3;
  --openea-surface-soft: #f5f7fb;
}

html { scroll-behavior: smooth; }
body { min-height: 100vh; }
.container, .container-xl { max-width: var(--openea-max-width); }
.openea-skip-link { position: fixed; z-index: 1100; top: .75rem; left: .75rem; padding: .65rem 1rem; border-radius: .5rem; background: var(--tblr-bg-surface); box-shadow: var(--tblr-box-shadow); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid color-mix(in srgb, var(--openea-blue) 55%, transparent); outline-offset: 2px; }
.icon-sm { width: 1rem; height: 1rem; vertical-align: -.125em; }
.icon { width: 1.15rem; height: 1.15rem; stroke-width: 1.8; }
.empty-icon { width: 2.5rem; height: 2.5rem; color: var(--tblr-secondary); }
.tracking-tight { letter-spacing: -.035em; }
.min-w-0 { min-width: 0; }

/* OpenEA branding */
.openea-brand {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  text-decoration: none;
}

.openea-brand-mark {
  width: 32px;
  height: 32px;
  display: block;
  flex: 0 0 auto;
}

.openea-brand-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1;
}

.openea-brand-name {
  color: var(--tblr-body-color);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -.02em;
}

.openea-brand-edition {
  margin-top: .25rem;
  color: var(--tblr-secondary);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .09em;
  line-height: 1;
  text-transform: uppercase;
}

/* Authenticated application shell */
.openea-app-shell { min-height: 100vh; }
.openea-sidebar { --tblr-navbar-vertical-width: var(--openea-sidebar-width); border-right: 1px solid var(--tblr-border-color); background: var(--tblr-bg-surface); box-shadow: 8px 0 30px rgba(24,36,51,.035); }
.openea-sidebar .navbar-brand { min-height: 4.5rem; padding: 1rem 1.25rem; justify-content: flex-start; }
.openea-sidebar .nav-link { margin: .12rem .65rem; padding: .62rem .8rem; border-radius: .55rem; font-weight: 500; }
.openea-sidebar .nav-link:hover { background: rgba(32,107,196,.07); }
.openea-sidebar .nav-link.active { color: var(--openea-blue); background: rgba(32,107,196,.11); font-weight: 650; }
.openea-sidebar .nav-link-icon { width: 1.6rem; margin-right: .6rem; color: currentColor; }
.openea-sidebar .nav-link-icon svg { width: 1.15rem; height: 1.15rem; }
.openea-nav-label { padding: .45rem 1.45rem .3rem; color: var(--tblr-secondary); font-size: .69rem; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.openea-sidebar-footer { border-top: 1px solid var(--tblr-border-color); }
.openea-topbar { min-height: 4.5rem; border-bottom: 1px solid var(--tblr-border-color); background: color-mix(in srgb, var(--tblr-bg-surface) 94%, transparent); backdrop-filter: blur(12px); }
.openea-global-search { max-width: 38rem; }
.page-body { background: var(--tblr-bg-surface-secondary, var(--openea-surface-soft)); }
[data-bs-theme="dark"] .page-body { background: #111827; }

/* Public shell */
.openea-public-shell { min-height: 100vh; background: var(--tblr-bg-surface); }
.openea-public-nav { min-height: 4.75rem; border-bottom: 1px solid var(--tblr-border-color); background: color-mix(in srgb, var(--tblr-bg-surface) 94%, transparent); backdrop-filter: blur(14px); }
.openea-public-footer { border-top: 1px solid var(--tblr-border-color); color: var(--tblr-secondary); }
.openea-hero { position: relative; overflow: hidden; min-height: calc(100vh - 9rem); display: grid; align-items: center; }
.openea-hero::before { content: ""; position: absolute; width: 42rem; height: 42rem; border-radius: 50%; right: -13rem; top: -14rem; background: radial-gradient(circle, rgba(32,107,196,.18), rgba(32,107,196,0) 68%); pointer-events: none; }
.openea-hero::after { content: ""; position: absolute; width: 30rem; height: 30rem; border-radius: 50%; left: -12rem; bottom: -14rem; background: radial-gradient(circle, rgba(66,153,225,.10), rgba(66,153,225,0) 70%); pointer-events: none; }
.openea-hero .container-xl { position: relative; z-index: 1; }
.openea-eyebrow { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .65rem; border: 1px solid rgba(32,107,196,.2); border-radius: 999px; background: rgba(32,107,196,.07); color: var(--openea-blue); font-size: .78rem; font-weight: 700; letter-spacing: .03em; }
.openea-hero-title { max-width: 13ch; font-size: clamp(2.8rem, 6vw, 5.15rem); line-height: .98; letter-spacing: -.055em; }
.openea-hero-copy { max-width: 44rem; font-size: 1.12rem; line-height: 1.75; }
.openea-feature-card { border: 1px solid var(--tblr-border-color); background: color-mix(in srgb, var(--tblr-bg-surface) 93%, transparent); box-shadow: 0 18px 50px rgba(24,36,51,.07); }
.openea-feature-icon { width: 2.5rem; height: 2.5rem; border-radius: .7rem; display: grid; place-items: center; color: var(--openea-blue); background: rgba(32,107,196,.1); }

/* Authentication */
.openea-auth-wrap { min-height: calc(100vh - 9rem); display: grid; align-items: center; }
.openea-auth-card { border: 1px solid var(--tblr-border-color); box-shadow: 0 24px 70px rgba(24,36,51,.10); }
.openea-auth-aside { min-height: 100%; border-radius: .75rem; padding: clamp(2rem, 5vw, 4rem); background: linear-gradient(145deg, #1856a3, #206bc4 55%, #4299e1); color: white; position: relative; overflow: hidden; }
.openea-auth-aside::after { content: ""; position: absolute; width: 18rem; height: 18rem; right: -7rem; bottom: -8rem; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(255,255,255,.04), 0 0 0 6rem rgba(255,255,255,.03); }
.openea-auth-mark { width: 3.25rem; height: 3.25rem; }

/* Existing repository components */
.foundation-card { background: color-mix(in srgb, var(--tblr-bg-surface) 92%, transparent); }
.foundation-card li { display: flex; gap: .7rem; align-items: center; }
.foundation-card svg { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; }
.object-type-card { color: inherit; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.object-type-card:hover { border-color: var(--openea-blue); box-shadow: 0 .35rem 1.2rem rgba(0,0,0,.07); transform: translateY(-1px); }
.detail-grid dt { color: var(--tblr-secondary); font-weight: 500; }
.detail-grid dd { overflow-wrap: anywhere; }
.impact-graph { height: 32rem; min-height: 24rem; background: var(--tblr-bg-surface); }
.impact-result summary { cursor: pointer; }
.impact-path { padding-left: 1.25rem; }
.card { --tblr-card-border-color: color-mix(in srgb, var(--tblr-border-color) 90%, transparent); }
.table { --tblr-table-border-color: color-mix(in srgb, var(--tblr-border-color) 85%, transparent); }

@media (min-width: 992px) {
  .openea-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--openea-sidebar-width); z-index: 1030; }
  .openea-app-shell > .page-wrapper { margin-left: var(--openea-sidebar-width); min-height: 100vh; }
  .openea-sidebar .container-fluid, .openea-sidebar .navbar-collapse { height: 100%; }
  .openea-sidebar .navbar-collapse { display: flex !important; flex-direction: column; }
}

@media (max-width: 991.98px) {
  .openea-sidebar { position: sticky; top: 0; z-index: 1035; box-shadow: 0 5px 20px rgba(24,36,51,.08); }
  .openea-sidebar .navbar-brand { min-height: 3.75rem; }
  .openea-sidebar-footer { margin-top: 1rem !important; }
  .openea-topbar { min-height: 4rem; }
  .openea-hero { min-height: auto; padding: 4rem 0; }
}
