@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css");

:root {
  --font-sans: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg: #f7f8fb;
  --canvas: #f1f4f7;
  --surface: #ffffff;
  --surface-2: #f8fafb;
  --surface-3: #f1f5f7;
  --ink: #151922;
  --text: #303846;
  --muted: #697586;
  --faint: #9aa6b2;
  --line: #e4e8ee;
  --line-strong: #c7d2dc;
  --brand: #151922;
  --brand-2: #0b0f16;
  --brand-soft: #eceff3;
  --nav: #ffffff;
  --nav-muted: #7d8a99;
  --green: #0e7c59;
  --amber: #a96700;
  --red: #b42318;
  --blue: #2563eb;
  --radius: 8px;
  --radius-lg: 12px;
  --shadow-sm: 0 1px 2px rgba(16,24,40,.05);
  --shadow: 0 18px 48px rgba(16,24,40,.10);
  --content: 1320px;
}

/* Bio landing v3: production landing reset and final art direction */
.bio-landing,
.bio-landing * {
  box-sizing: border-box;
  letter-spacing: 0 !important;
}

.bio-landing {
  --bio-ink: #18202d;
  --bio-muted: #5b6675;
  --bio-line: rgba(17, 24, 39, .11);
  --bio-paper: #f7f4ed;
  --bio-card: rgba(255, 255, 255, .78);
  --bio-dark: #111b22;
  --bio-teal: #18a6a7;
  --bio-mint: #dff4e8;
  --bio-amber: #f2b950;
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 8%, rgba(24, 166, 167, .18), transparent 28%),
    radial-gradient(circle at 90% 4%, rgba(242, 185, 80, .18), transparent 30%),
    linear-gradient(180deg, #fbf8f1 0%, #eef4f1 54%, #f8faf8 100%);
  color: var(--bio-ink);
  font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", sans-serif;
}

.bio-header,
.bio-main,
.bio-toast {
  width: min(1180px, calc(100vw - 40px));
  margin-inline: auto;
}

.bio-header {
  position: sticky;
  top: 14px;
  z-index: 50;
  min-height: 68px;
  margin-top: 14px;
  padding: 10px 12px 10px 16px;
  border: 1px solid rgba(17, 24, 39, .09);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 18px 60px rgba(17, 24, 39, .09);
  backdrop-filter: blur(18px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.bio-brand {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--bio-ink);
  text-decoration: none;
}

.bio-brand img {
  width: 102px;
  height: 30px;
  object-fit: contain;
  display: block;
}

.bio-brand strong {
  font-size: 16px;
  line-height: 1;
  font-weight: 560;
  white-space: nowrap;
}

.bio-nav {
  padding: 5px;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: 999px;
  background: rgba(247, 244, 237, .72);
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.bio-nav a {
  min-height: 32px;
  padding: 0 13px;
  border-radius: 999px;
  color: #606a78;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 520;
}

.bio-nav a:hover {
  background: #fff;
  color: var(--bio-ink);
}

.bio-actions,
.bio-hero__buttons,
.bio-cta__actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  flex-wrap: wrap;
}

.bio-button {
  min-height: 38px;
  padding: 0 15px;
  border: 1px solid rgba(17, 24, 39, .11);
  border-radius: 999px;
  background: rgba(255, 255, 255, .84);
  color: var(--bio-ink);
  box-shadow: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 560;
  line-height: 1;
  white-space: nowrap;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.bio-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(17, 24, 39, .1);
}

.bio-button--dark,
.bio-button--primary {
  border-color: var(--bio-dark);
  background: var(--bio-dark);
  color: #fff;
}

.bio-button--soft,
.bio-button--ghost,
.bio-button--secondary,
.bio-button--light {
  background: rgba(255, 255, 255, .86);
  color: var(--bio-ink);
}

.bio-button--large {
  min-height: 46px;
  padding: 0 20px;
  font-size: 14px;
}

.bio-main {
  padding: 34px 0 82px;
  display: grid;
  gap: 34px;
}

.bio-kicker {
  width: fit-content;
  max-width: 100%;
  min-height: 28px;
  padding: 0 11px;
  border: 1px solid rgba(17, 24, 39, .1);
  border-radius: 999px;
  background: rgba(255, 255, 255, .74);
  color: #435160;
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 560;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.bio-hero {
  position: relative;
  min-height: 610px;
  padding: clamp(28px, 5vw, 58px);
  border: 1px solid rgba(17, 24, 39, .1);
  border-radius: 38px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .65) 42%, rgba(223, 244, 232, .64) 100%);
  box-shadow: 0 34px 90px rgba(17, 24, 39, .12);
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(440px, 1.08fr);
  align-items: center;
  gap: clamp(28px, 4vw, 54px);
}

.bio-hero::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  right: -160px;
  top: -170px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(24, 166, 167, .2), transparent 64%);
  pointer-events: none;
}

.bio-hero__copy {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 20px;
}

.bio-hero__copy h1 {
  max-width: 760px;
  margin: 0;
  color: var(--bio-ink);
  font-size: clamp(40px, 4.4vw, 58px);
  font-weight: 430;
  line-height: 1.05;
  word-break: keep-all;
}

.bio-hero__copy p {
  max-width: 610px;
  margin: 0;
  color: var(--bio-muted);
  font-size: 17px;
  line-height: 1.78;
  word-break: keep-all;
}

.bio-hero__visual {
  position: relative;
  z-index: 2;
}

.bio-window {
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 28px;
  background: linear-gradient(180deg, #152029, #0c1217);
  box-shadow: 0 28px 80px rgba(9, 17, 24, .28);
}

.bio-window__top {
  height: 42px;
  padding: 0 8px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: rgba(255, 255, 255, .58);
  font-size: 12px;
  font-weight: 500;
}

.bio-window__top span {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #f87171;
}

.bio-window__top span:nth-child(2) {
  background: #fbbf24;
}

.bio-window__top span:nth-child(3) {
  background: #34d399;
}

.bio-window__top strong {
  margin-left: 8px;
  color: rgba(255, 255, 255, .7);
  font-weight: 500;
}

.bio-review-card {
  min-height: 438px;
  padding: 16px;
  border-radius: 22px;
  background: #f7fbf8;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 14px;
}

.bio-micrograph {
  position: relative;
  min-height: 286px;
  border-radius: 18px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 28%, rgba(248, 250, 252, .95) 0 24px, transparent 26px),
    radial-gradient(circle at 38% 58%, rgba(248, 250, 252, .88) 0 34px, transparent 37px),
    radial-gradient(circle at 62% 31%, rgba(248, 250, 252, .92) 0 29px, transparent 31px),
    radial-gradient(circle at 78% 68%, rgba(248, 250, 252, .86) 0 41px, transparent 44px),
    radial-gradient(circle at 52% 78%, rgba(24, 166, 167, .33) 0 24px, transparent 27px),
    linear-gradient(135deg, #394957 0%, #17242c 100%);
}

.bio-micrograph::before {
  content: "";
  position: absolute;
  inset: 0 47% 0 0;
  background: rgba(255, 255, 255, .13);
  backdrop-filter: grayscale(1) contrast(1.08);
}

.bio-marker {
  position: absolute;
  border: 3px solid #2dd4bf;
  border-radius: 999px;
  box-shadow: 0 0 0 4px rgba(45, 212, 191, .16);
}

.bio-marker--one {
  width: 66px;
  height: 50px;
  left: 28%;
  top: 45%;
}

.bio-marker--two {
  width: 56px;
  height: 56px;
  right: 24%;
  top: 20%;
  border-color: #fbbf24;
  box-shadow: 0 0 0 4px rgba(251, 191, 36, .18);
}

.bio-marker--three {
  width: 82px;
  height: 66px;
  right: 8%;
  bottom: 19%;
}

.bio-marker--four {
  width: 48px;
  height: 42px;
  left: 12%;
  top: 19%;
  border-color: #fb7185;
  box-shadow: 0 0 0 4px rgba(251, 113, 133, .18);
}

.bio-divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 47%;
  width: 2px;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(17, 24, 39, .18), 0 0 28px rgba(255, 255, 255, .5);
}

.bio-divider::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #fff;
  transform: translate(-50%, -50%);
  box-shadow: 0 8px 22px rgba(17, 24, 39, .22);
}

.bio-readout {
  padding: 16px;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: 18px;
  background: #fff;
  display: grid;
  gap: 10px;
}

.bio-readout span {
  color: #6b7280;
  font-size: 11px;
  font-weight: 560;
  text-transform: uppercase;
}

.bio-readout strong {
  color: var(--bio-ink);
  font-size: 17px;
  line-height: 1.35;
  font-weight: 500;
  word-break: keep-all;
}

.bio-readout ul {
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 7px;
}

.bio-readout li {
  color: #3d4752;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 430;
}

.bio-readout b {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #2dd4bf;
}

.bio-readout li:nth-child(2) b {
  background: #fbbf24;
}

.bio-readout li:nth-child(3) b {
  background: #fb7185;
}

.bio-readout em {
  margin-left: auto;
  color: #6b7280;
  font-style: normal;
}

.bio-trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.bio-trust article,
.bio-feature-list article,
.bio-flow li {
  min-width: 0;
  border: 1px solid var(--bio-line);
  border-radius: 24px;
  background: var(--bio-card);
  box-shadow: 0 20px 52px rgba(17, 24, 39, .06);
}

.bio-trust article {
  padding: 22px;
  display: grid;
  gap: 8px;
}

.bio-trust span,
.bio-feature-list span,
.bio-flow span,
.bio-review__metrics span {
  color: var(--bio-teal);
  font-size: 12px;
  font-weight: 560;
  text-transform: uppercase;
}

.bio-trust strong,
.bio-feature-list strong,
.bio-flow strong,
.bio-review__metrics strong {
  color: var(--bio-ink);
  font-size: 19px;
  line-height: 1.35;
  font-weight: 500;
  word-break: keep-all;
}

.bio-trust p,
.bio-feature-list p,
.bio-flow p,
.bio-section__heading p {
  margin: 0;
  color: var(--bio-muted);
  font-size: 15px;
  line-height: 1.68;
  word-break: keep-all;
}

.bio-section {
  padding: clamp(28px, 4vw, 44px) 0;
}

.bio-section--split {
  display: grid;
  grid-template-columns: minmax(0, .86fr) minmax(420px, 1fr);
  gap: clamp(24px, 5vw, 68px);
  align-items: start;
}

.bio-section__heading {
  display: grid;
  gap: 13px;
}

.bio-section__heading--center {
  max-width: 760px;
  margin: 0 auto 24px;
  text-align: center;
  justify-items: center;
}

.bio-section__heading h2,
.bio-cta h2 {
  margin: 0;
  color: var(--bio-ink);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 450;
  line-height: 1.08;
  word-break: keep-all;
}

.bio-feature-list {
  display: grid;
  gap: 12px;
}

.bio-feature-list article {
  padding: 22px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px 16px;
}

.bio-feature-list span {
  grid-row: span 2;
  width: 44px;
  height: 44px;
  border-radius: 15px;
  background: #102028;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.bio-flow {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.bio-flow li {
  min-height: 230px;
  padding: 22px;
  display: grid;
  align-content: space-between;
  gap: 18px;
}

.bio-review {
  padding: 0;
}

.bio-review__panel {
  min-height: 390px;
  padding: clamp(28px, 5vw, 52px);
  border-radius: 34px;
  background:
    radial-gradient(circle at 84% 24%, rgba(24, 166, 167, .2), transparent 26%),
    linear-gradient(135deg, #111b22 0%, #1b2d34 58%, #314036 100%);
  box-shadow: 0 28px 78px rgba(17, 24, 39, .18);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr);
  gap: clamp(22px, 4vw, 52px);
  align-items: end;
}

.bio-review__panel .bio-kicker {
  border-color: rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .1);
  color: #d8f5ee;
}

.bio-review__panel h2 {
  color: #fff;
}

.bio-review__panel p {
  color: rgba(255, 255, 255, .76);
}

.bio-review__metrics {
  display: grid;
  gap: 12px;
}

.bio-review__metrics article {
  min-height: 96px;
  padding: 18px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 22px;
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(14px);
  display: grid;
  align-content: center;
  gap: 5px;
}

.bio-review__metrics span {
  color: #9ee4d4;
}

.bio-review__metrics strong {
  color: #fff;
}

.bio-cta {
  padding: clamp(28px, 5vw, 48px);
  border: 1px solid var(--bio-line);
  border-radius: 32px;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 22px 58px rgba(17, 24, 39, .08);
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
}

.bio-cta > div:first-child {
  display: grid;
  gap: 12px;
}

@media (max-width: 1060px) {
  .bio-hero,
  .bio-section--split,
  .bio-review__panel,
  .bio-cta {
    grid-template-columns: 1fr;
  }

  .bio-hero {
    min-height: auto;
  }

  .bio-hero__visual {
    max-width: 680px;
  }

  .bio-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .bio-header,
  .bio-main,
  .bio-toast {
    width: min(100vw - 28px, 720px);
  }

  .bio-header {
    top: 8px;
    border-radius: 26px;
    flex-wrap: wrap;
  }

  .bio-brand {
    flex: 1 1 auto;
  }

  .bio-nav {
    order: 3;
    width: 100%;
    justify-content: center;
  }

  .bio-actions {
    margin-left: auto;
  }

  .bio-main {
    padding-top: 22px;
    gap: 24px;
  }

  .bio-hero {
    padding: 26px;
    border-radius: 30px;
  }

  .bio-hero__copy h1 {
    font-size: clamp(34px, 10vw, 46px);
  }

  .bio-hero__copy p {
    font-size: 15px;
  }

  .bio-trust,
  .bio-flow {
    grid-template-columns: 1fr;
  }

  .bio-review-card {
    min-height: 0;
  }

  .bio-micrograph {
    min-height: 240px;
  }

  .bio-feature-list article {
    grid-template-columns: 1fr;
  }

  .bio-feature-list span {
    grid-row: auto;
  }

  .bio-hero__buttons .bio-button,
  .bio-cta__actions .bio-button {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .bio-nav {
    display: none;
  }

  .bio-header {
    min-height: 58px;
    flex-wrap: nowrap;
  }

  .bio-actions {
    flex: 0 0 auto;
    flex-wrap: nowrap;
  }

  .bio-header .bio-button {
    width: auto;
    min-height: 36px;
    padding: 0 13px;
  }

  .bio-actions .bio-button:first-child {
    display: none;
  }

  .bio-brand img {
    width: 92px;
  }

  .bio-brand strong {
    font-size: 15px;
  }

  .bio-hero,
  .bio-review__panel,
  .bio-cta {
    border-radius: 24px;
  }

  .bio-window {
    padding: 8px;
    border-radius: 22px;
  }

  .bio-window__top strong {
    display: none;
  }

  .bio-review-card {
    padding: 10px;
    border-radius: 18px;
  }

  .bio-micrograph {
    min-height: 210px;
    border-radius: 14px;
  }

  .bio-readout strong {
    font-size: 15px;
  }

  .bio-trust article,
  .bio-flow li,
  .bio-feature-list article {
    border-radius: 20px;
  }
}
* { box-sizing: border-box; letter-spacing: 0; }
html { font-family: var(--font-sans); background: var(--bg); }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-sans); font-size: 14px; line-height: 1.55; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.hidden { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 276px minmax(0, 1fr); background: var(--bg); }
.app-sidebar { position: sticky; top: 0; height: 100vh; padding: 22px 16px; background: var(--nav); color: #f7fafc; display: flex; flex-direction: column; gap: 18px; }
.brand-block { display: flex; align-items: center; gap: 12px; min-height: 38px; padding: 2px 6px 14px; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand-block--link { color: inherit; text-decoration: none; }
.brand-logo { width: 104px; max-height: 30px; object-fit: contain; display: block; flex: 0 0 auto; }
.brand-meta { min-width: 0; display: grid; gap: 2px; }
.brand-mark { width: 38px; height: 38px; border-radius: 10px; background: #f8ffff; color: var(--brand-2); display: grid; place-items: center; font-size: 12px; font-weight: 620; }
.brand-block strong { display: block; font-size: 16px; line-height: 1.1; font-weight: 650; }
.brand-script {
  margin-top: 1px;
  font-family: var(--font-sans);
  font-size: 17px !important;
  font-weight: 720 !important;
  letter-spacing: -0.02em;
  line-height: 1 !important;
  white-space: nowrap;
  color: var(--ink);
}
.brand-block span { display: block; color: var(--nav-muted); font-size: 12px; font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.primary-create { height: 42px; border-radius: 8px; background: #f7ffff; color: var(--brand-2); display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; font-size: 13px; font-weight: 650; box-shadow: 0 8px 22px rgba(0,0,0,.16); }
.primary-create svg { width: 17px; height: 17px; }
.side-nav { display: grid; gap: 5px; }
.side-nav__label { margin: 13px 10px 5px; color: var(--nav-muted); font-size: 11px; font-weight: 650; text-transform: uppercase; }
.side-nav__link { min-height: 40px; padding: 0 11px; border-radius: 8px; display: flex; align-items: center; gap: 10px; color: #c9d3dc; text-decoration: none; font-size: 14px; font-weight: 560; }
.side-nav__link svg { width: 17px; height: 17px; color: #9fb0bc; }
.side-nav__link:hover { background: rgba(255,255,255,.07); color: #fff; }
.side-nav__link.is-active { background: rgba(255,255,255,.12); color: #fff; }
.side-nav__link.is-active svg { color: #7ee3df; }
.sidebar-note { margin-top: auto; padding: 14px; border: 1px solid rgba(255,255,255,.10); border-radius: 12px; background: rgba(255,255,255,.055); }
.sidebar-note span { display: block; color: #9fb0bc; font-size: 11px; font-weight: 650; text-transform: uppercase; }
.sidebar-note strong { display: block; margin-top: 6px; color: #f8fafc; font-size: 13px; line-height: 1.45; font-weight: 560; }
.app-frame { min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 30; height: 66px; padding: 0 30px; border-bottom: 1px solid rgba(223,230,236,.9); background: rgba(244,246,248,.9); backdrop-filter: blur(16px); display: grid; grid-template-columns: 220px minmax(260px, 520px) auto; align-items: center; gap: 18px; }
.topbar__title { display: flex; align-items: center; min-height: 40px; }
.topbar__title span { color: var(--muted); font-size: 12px; font-weight: 560; }
.topbar__title strong { color: var(--ink); font-size: 15px; font-weight: 650; }
.global-search { position: relative; }
.global-search svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--faint); }
.global-search input { width: 100%; height: 38px; padding: 0 12px 0 36px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.86); outline: none; color: var(--text); }
.global-search input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(21,25,34,.10); }
.topbar__actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 10px; }
.locale-toggle { padding: 2px; border-radius: 8px; background: #e8eef2; display: inline-flex; }
.locale-toggle a { height: 28px; min-width: 32px; border-radius: 7px; display: grid; place-items: center; color: var(--muted); font-size: 12px; text-decoration: none; font-weight: 650; }
.locale-toggle a.is-active { background: #fff; color: var(--brand); box-shadow: var(--shadow-sm); }
.user-menu { position: relative; }
.user-menu__button { height: 38px; padding: 0 10px 0 4px; border: 1px solid var(--line); border-radius: 999px; background: #fff; display: flex; align-items: center; gap: 8px; cursor: pointer; color: var(--text); font-weight: 560; }
.avatar { width: 30px; height: 30px; border-radius: 999px; background: var(--nav); color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 620; }
.user-menu__button svg { width: 14px; height: 14px; }
.user-menu__content { position: absolute; right: 0; top: calc(100% + 8px); width: 250px; padding: 8px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); color: var(--text); }
.user-menu__meta { padding: 9px 10px 11px; border-bottom: 1px solid var(--line); display: grid; gap: 2px; }
.user-menu__meta strong { font-size: 13px; overflow: hidden; text-overflow: ellipsis; }
.user-menu__meta span { color: var(--muted); font-size: 12px; }
.user-menu__item, .user-menu__danger { min-height: 36px; width: 100%; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; display: flex; align-items: center; text-decoration: none; font-size: 13px; }
.user-menu__danger { color: var(--red); }
.app-content { width: min(var(--content), calc(100vw - 276px - 56px)); margin: 0 auto; padding: 28px 0 64px; }
.toast { margin: 16px 30px 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-sm); font-size: 13px; }

.page-stack { display: grid; gap: 18px; }
.page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 18px; }
.eyebrow { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 650; }
.eyebrow a { text-decoration: none; }
.page-head h1 { margin: 7px 0 0; color: var(--ink); font-size: 30px; line-height: 1.16; font-weight: 650; }
.page-head p { margin: 8px 0 0; max-width: 760px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.page-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.editable-page-title { display: flex; align-items: center; gap: 8px; margin-top: 7px; }
.editable-page-title h1 { margin: 0; }
.editable-page-title input { width: min(560px, 70vw); height: 42px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 12px; color: var(--ink); font: inherit; font-size: 28px; font-weight: 650; outline: none; background: var(--surface); }
.editable-page-title input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.title-edit-button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.title-edit-button:hover { color: var(--brand); border-color: var(--line-strong); background: var(--surface-2); }
.title-edit-button svg { width: 16px; height: 16px; }
.ui-button, .button { height: 38px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; color: var(--text); display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; font-size: 13px; font-weight: 650; white-space: nowrap; cursor: pointer; box-shadow: var(--shadow-sm); }
.ui-button--primary { border-color: var(--brand); background: var(--brand); color: #fff; }
.ui-button--ghost { background: #fff; color: var(--text); }
.ui-button--danger { color: var(--red); border-color: #fecaca; }
.ui-button--danger:hover { background: #fff5f4; border-color: #fca5a5; }
.ui-button--excel { border-color: #107c41; background: #107c41; color: #fff; }
.ui-button--excel:hover { border-color: #0b5f32; background: #0b5f32; }
.ui-button--excel svg { width: 16px; height: 16px; }
.ui-button.is-disabled { opacity: .45; pointer-events: none; }

.insight-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.insight-card, .panel-card, .lab-panel { border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-sm); }
.insight-card { min-height: 112px; padding: 16px; display: grid; align-content: space-between; }
.insight-card span { color: var(--muted); font-size: 12px; font-weight: 650; }
.insight-card strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: 25px; line-height: 1; font-weight: 650; }
.insight-card p { margin: 8px 0 0; color: var(--muted); font-size: 12px; }
.panel-card, .lab-panel { overflow: hidden; }
.panel-card__header, .lab-panel__head { min-height: 62px; padding: 15px 18px 13px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #fff, #fbfcfd); }
.panel-card__header h2, .lab-panel__head h2 { margin: 0; color: var(--ink); font-size: 16px; line-height: 1.3; font-weight: 650; }
.panel-card__header p, .lab-panel__head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.panel-card__header--split, .lab-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }

.workbench-grid { display: grid; grid-template-columns: minmax(0, 1.14fr) minmax(360px, .86fr); gap: 14px; align-items: start; }
.dense-list { display: grid; }
.dense-item { min-height: 68px; padding: 13px 18px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; text-decoration: none; }
.dense-item:last-child { border-bottom: 0; }
.dense-item strong { color: var(--ink); font-size: 14px; font-weight: 650; }
.dense-item p { margin: 4px 0 0; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.status-pill, .tag { min-height: 24px; padding: 0 9px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 650; white-space: nowrap; }
.is-complete { background: #e6f5ee; color: var(--green); }
.is-processing { background: #fff4dd; color: var(--amber); }
.is-failed { background: #fff0ed; color: var(--red); }
.is-waiting { background: #edf2f6; color: #596674; }
.muted { color: var(--muted); font-size: 12px; }

.data-table-wrap, .comparison-table-wrap, .summary-table-wrap { overflow-x: auto; }
.data-table, .comparison-table, .result-matrix table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; table-layout: fixed; }
.data-table { min-width: 980px; }
.comparison-table, .result-matrix table { min-width: 960px; }
.comparison-table--analysis-rows { min-width: 1320px; }
.data-table--comparison-list { min-width: 760px; }
.data-table th, .comparison-table th, .result-matrix th { height: 40px; padding: 0 14px; border-bottom: 1px solid var(--line); background: #f8fafb; color: #667085; text-align: left; font-size: 11px; font-weight: 650; white-space: nowrap; vertical-align: middle; }
.data-table td, .comparison-table td, .result-matrix td { height: 54px; padding: 10px 14px; border-bottom: 1px solid var(--line); color: #465464; vertical-align: middle; }
.data-table th:first-child, .comparison-table th:first-child, .result-matrix th:first-child,
.data-table td:first-child, .comparison-table td:first-child, .result-matrix td:first-child { padding-left: 20px; }
.data-table th:last-child, .comparison-table th:last-child, .result-matrix th:last-child,
.data-table td:last-child, .comparison-table td:last-child, .result-matrix td:last-child { padding-right: 20px; }
.data-table tbody tr:hover td, .comparison-table tbody tr:hover td { background: #fbfcfe; }
.data-table tr:last-child td, .comparison-table tr:last-child td, .result-matrix tr:last-child td { border-bottom: 0; }
.data-table__primary { color: var(--ink); font-weight: 650; text-decoration: none; }
.data-table td p, .comparison-table td p { margin: 3px 0 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 12px; line-height: 1.35; }
.is-number, .is-right { text-align: right; font-variant-numeric: tabular-nums; }
.data-table th.is-number, .data-table th.is-right,
.comparison-table th.is-number, .comparison-table th.is-right,
.result-matrix th.is-number, .result-matrix th.is-right { text-align: right; }
.metric-cell { display: inline-grid; justify-items: end; gap: 2px; min-width: 0; }
.metric-cell strong { color: var(--ink); font-weight: 620; line-height: 1.1; }
.metric-cell span { color: var(--muted); font-size: 11px; line-height: 1.1; }
.text-cell { display: grid; min-width: 0; }
.text-cell .data-table__primary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.text-cell p .status-pill { margin-right: 6px; vertical-align: middle; }
.text-cell p span:not(.status-pill) { vertical-align: middle; }
.cell-chip { display: inline-flex; align-items: center; gap: 6px; min-width: 0; white-space: nowrap; }
.ratio-cell { display: grid; gap: 3px; justify-items: end; min-width: 0; }
.ratio-cell strong { color: var(--ink); font-size: 12px; font-weight: 620; line-height: 1.1; }
.ratio-cell em { color: var(--muted); font-size: 11px; font-style: normal; line-height: 1.1; white-space: nowrap; }
.ratio-cell small { color: var(--faint); font-size: 10px; font-weight: 560; line-height: 1.1; white-space: nowrap; }
.ratio-cell i { width: min(54px, 100%); height: 4px; border-radius: 999px; background: linear-gradient(90deg, var(--brand) var(--ratio), #e7edf2 var(--ratio)); }
.table-meta { padding: 12px 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface-2); color: var(--muted); font-size: 12px; font-weight: 560; }
.pagination-bar { padding: 14px 16px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.pagination-bar > span:not(.ui-button) { color: var(--muted); font-size: 13px; font-weight: 650; }

.filter-bar { padding: 14px; display: grid; grid-template-columns: minmax(260px, 1fr) 180px 240px auto; gap: 10px; border-bottom: 1px solid var(--line); background: #fff; }
.filter-bar input, .filter-bar select, .run-form input, .run-form textarea, .run-form select, .auth-field input { width: 100%; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; color: var(--text); outline: none; }
.filter-bar input, .filter-bar select { height: 38px; padding: 0 12px; }
.filter-bar input:focus, .filter-bar select:focus, .run-form input:focus, .run-form textarea:focus, .run-form select:focus, .auth-field input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(21,25,34,.10); }
.empty-state { margin: 14px; padding: 26px 16px; border: 1px dashed var(--line-strong); border-radius: 12px; color: var(--muted); text-align: center; background: var(--surface-2); }
.empty-state.compact { margin: 0; padding: 20px 14px; }

.analysis-group-grid { padding: 14px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.analysis-group-card { min-height: 118px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fff; display: grid; align-content: space-between; text-decoration: none; transition: border-color .15s, transform .15s, box-shadow .15s; }
.analysis-group-card:hover { border-color: var(--brand); transform: translateY(-1px); box-shadow: var(--shadow); }
.analysis-group-card strong { color: var(--ink); font-size: 14px; font-weight: 650; }
.analysis-group-card p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.group-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--faint); font-size: 12px; }
.group-card-footer em { color: var(--brand); font-style: normal; font-weight: 650; }
.readiness-chip { min-height: 28px; padding: 0 10px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); display: inline-flex; align-items: center; font-size: 12px; font-weight: 650; }

.class-name { white-space: nowrap; }
.class-name i, .class-dot { width: 9px; height: 9px; border-radius: 999px; display: inline-block; margin-right: 8px; }
.class-name strong { display: inline !important; margin-right: 6px; color: var(--ink); }
.class-name span { display: inline !important; color: var(--muted); font-size: 12px; }
.result-matrix table { min-width: 960px; }
.result-matrix td strong, .comparison-table td strong { color: var(--ink); }
.comparison-table td em { display: block; color: var(--muted); font-size: 12px; font-style: normal; }
.process-notice { padding: 14px 16px; border: 1px solid #f1d59d; border-radius: 12px; background: #fffaf0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.process-notice div { display: grid; gap: 2px; }
.process-notice strong { color: var(--ink); }
.process-notice span { color: var(--muted); font-size: 12px; }
.process-notice span span { display: block; }
.process-notice i { height: 8px; min-width: 180px; border-radius: 999px; background: #f3e3bd; overflow: hidden; }
.process-notice b { display: block; height: 100%; background: var(--amber); }
.process-notice--danger { border-color: #fecaca; background: #fff5f4; }

.basis-grid { padding: 14px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.basis-grid > div { min-height: 82px; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); display: grid; align-content: space-between; gap: 8px; }
.basis-grid span { color: var(--muted); font-size: 12px; font-weight: 650; }
.basis-grid strong { color: var(--ink); font-size: 13px; font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.management-grid { padding: 14px; display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 14px; align-items: start; }
.management-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; gap: 10px; align-items: end; }
.management-form label { display: grid; gap: 6px; }
.management-form span { color: var(--muted); font-size: 12px; font-weight: 650; }
.management-form input, .management-form textarea, .management-form select { width: 100%; min-height: 38px; padding: 9px 10px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; outline: none; }
.management-form textarea { resize: vertical; }
.management-danger { padding: 12px; border: 1px solid #fee4e2; border-radius: 10px; background: #fff8f7; display: grid; gap: 8px; }
.management-danger strong { color: var(--red); font-size: 13px; }
.management-danger p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.project-delete-row { display: flex; justify-content: flex-end; }
.analysis-title-editor { display: flex; align-items: center; gap: 8px; margin-top: 7px; }
.analysis-title-editor h1 { margin: 0; }
.analysis-title-input { width: min(620px, 72vw); height: 42px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 12px; color: var(--ink); font: inherit; font-size: 28px; font-weight: 650; outline: none; background: var(--surface); }
.analysis-title-input:focus, .analysis-memo-input:focus, .analysis-project-form select:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.analysis-memo-editor { margin-top: 8px; display: grid; gap: 8px; justify-items: start; }
.analysis-memo-editor p { margin: 0; max-width: 760px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.memo-edit-button { height: 28px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--muted); font-size: 12px; font-weight: 650; cursor: pointer; }
.memo-edit-button:hover { color: var(--brand); border-color: var(--line-strong); background: var(--surface-2); }
.analysis-memo-input { width: min(720px, 72vw); min-height: 82px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 10px 12px; color: var(--text); font: inherit; font-size: 14px; line-height: 1.55; resize: vertical; outline: none; background: var(--surface); }
.inline-edit-actions { display: inline-flex; align-items: center; gap: 6px; }
.inline-error { margin: 6px 0 0; color: var(--red); font-size: 12px; }
.analysis-project-form { margin-top: 10px; display: inline-flex; align-items: center; gap: 8px; flex-wrap: nowrap; max-width: 100%; }
.analysis-project-form span { color: var(--muted); font-size: 12px; font-weight: 650; }
.analysis-project-form select { height: 34px; min-width: 210px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 10px; background: var(--surface); color: var(--text); outline: none; }
.analysis-project-form .ui-button { flex: 0 0 auto; height: 38px; }

.run-layout { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 14px; align-items: start; }
.run-setup { position: sticky; top: 86px; }
.run-setup.panel-card { overflow: visible; }
.run-upload-actions { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.run-form { padding: 16px; display: grid; gap: 14px; }
.run-form label { display: grid; gap: 7px; min-width: 0; }
.run-form span { color: var(--muted); font-size: 12px; font-weight: 650; }
.run-form input, .run-form textarea, .run-form select { padding: 10px; }
.run-form .custom-select__menu { z-index: 120; }
.run-form input[readonly] { background: var(--surface-2); color: var(--muted); }
.form-note { margin: 0; padding: 10px 12px; border-radius: 8px; background: var(--surface-2); color: var(--muted); font-size: 12px; line-height: 1.45; }
.run-drop { margin: 16px; min-height: 278px; border: 1px dashed var(--line-strong); border-radius: 12px; background: linear-gradient(180deg, #fbfcfd, #eff8f7); display: grid; place-items: center; align-content: center; gap: 10px; text-align: center; padding: 28px; }
.run-drop.is-over { border-color: var(--brand); background: var(--brand-soft); }
.run-drop strong { color: var(--ink); font-size: 17px; font-weight: 650; }
.run-drop span { max-width: 520px; color: var(--muted); font-size: 13px; }
.run-contact-sheet { padding: 0 16px 16px; min-height: 260px; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; align-content: start; }
.run-thumb { position: relative; height: 148px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: grid; grid-template-rows: 1fr auto; gap: 5px; text-align: left; }
.run-thumb img { width: 100%; height: 92px; border-radius: 8px; object-fit: cover; background: #111827; }
.run-thumb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.run-thumb button { position: absolute; top: 7px; right: 7px; width: 24px; height: 24px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.92); color: #475467; font-weight: 650; cursor: pointer; }
.project-analysis-card { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: grid; gap: 10px; }
.project-analysis-card__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 12px; }
.project-analysis-card__head label { display: grid; gap: 6px; }
.project-analysis-card__head span { color: var(--muted); font-size: 12px; font-weight: 650; }
.project-analysis-card__head input { width: 100%; height: 36px; padding: 0 10px; border: 1px solid var(--line-strong); border-radius: 8px; outline: none; }
.project-analysis-card__head strong { min-height: 24px; padding: 0 9px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); display: inline-flex; align-items: center; font-size: 12px; font-weight: 650; white-space: nowrap; }
.project-analysis-card__thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; align-items: stretch; }
.project-analysis-thumb { position: relative; min-width: 0; height: 104px; padding: 6px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); display: grid; grid-template-rows: 1fr auto; gap: 4px; }
.project-analysis-thumb img { width: 100%; height: 58px; border-radius: 6px; object-fit: cover; background: #111827; }
.project-analysis-thumb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-size: 11px; }
.project-analysis-thumb button { position: absolute; top: 5px; right: 5px; width: 22px; height: 22px; border: 1px solid var(--line); border-radius: 7px; background: rgba(255,255,255,.92); color: #475467; font-weight: 650; cursor: pointer; }
.project-analysis-card__thumbs em { min-height: 104px; border: 1px dashed var(--line-strong); border-radius: 8px; color: var(--muted); display: grid; place-items: center; font-size: 12px; font-style: normal; }
.run-page[data-analysis-run-mode-value="project"] .run-contact-sheet { grid-template-columns: 1fr; }
.run-overlay { position: fixed; inset: 0; z-index: 90; background: rgba(16,24,40,.46); backdrop-filter: blur(4px); display: grid; place-items: center; }
.run-overlay > div { width: min(380px, calc(100vw - 32px)); padding: 20px; border-radius: 12px; background: #fff; box-shadow: var(--shadow); display: grid; gap: 10px; }
.run-overlay i { height: 8px; border-radius: 999px; background: #e9eef5; overflow: hidden; }
.run-overlay b { display: block; height: 100%; background: var(--brand); }

.evidence-board { padding: 16px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; grid-template-areas: "stage side" "sheet sheet"; gap: 14px; }
.evidence-board__stage { grid-area: stage; position: relative; min-height: 560px; aspect-ratio: 16 / 10; border-radius: 12px; background: #0d1218; overflow: hidden; }
.evidence-board__zoom-toolbar { position: absolute; top: 14px; right: 14px; z-index: 12; display: inline-flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: #2d333b; }
.evidence-board__zoom-button { min-width: 32px; height: 32px; padding: 0 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; background: #4a5058; color: #f8fafc; font-size: 14px; font-weight: 700; line-height: 1; cursor: pointer; }
.evidence-board__zoom-button--reset { font-size: 12px; font-weight: 650; }
.evidence-board__zoom-scale { min-width: 52px; color: #f8fafc; font-size: 12px; font-weight: 650; text-align: center; }
.evidence-board__viewport { position: absolute; inset: 0; overflow: hidden; touch-action: none; }
.evidence-board__media { position: absolute; inset: 0; }
.evidence-board__compare-window { position: absolute; inset: 0; overflow: hidden; z-index: 2; pointer-events: none; }
.evidence-board__compare-media { position: absolute; inset: 0; }
.evidence-board__compare-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: grayscale(1) brightness(0.7) contrast(1.05); opacity: 0.96; pointer-events: none; }
.evidence-board__compare-handle { position: absolute; top: 0; bottom: 0; width: 0; transform: translateX(-50%); border: 0; background: none; cursor: ew-resize; z-index: 12; touch-action: none; }
.evidence-board__compare-handle::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; transform: translateX(-50%); background: rgba(255,255,255,.94); box-shadow: 0 0 0 1px rgba(17,24,39,.25); }
.evidence-board__compare-handle span { position: absolute; top: 50%; left: 50%; width: 38px; height: 38px; transform: translate(-50%, -50%); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(13,18,24,.78); box-shadow: 0 10px 24px rgba(15,23,42,.28); }
.evidence-board__compare-handle span::before, .evidence-board__compare-handle span::after { content: ""; position: absolute; top: 50%; width: 8px; height: 8px; border-top: 2px solid #fff; border-right: 2px solid #fff; }
.evidence-board__compare-handle span::before { left: 10px; transform: translateY(-50%) rotate(-135deg); }
.evidence-board__compare-handle span::after { right: 10px; transform: translateY(-50%) rotate(45deg); }
.evidence-board__stage img, .evidence-board__stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; user-select: none; -webkit-user-drag: none; }
.evidence-board__stage canvas { right: auto; bottom: auto; pointer-events: none; }
.evidence-board__side { grid-area: side; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); padding: 13px; display: grid; align-content: start; gap: 12px; }
.evidence-selected { display: grid; gap: 4px; }
.evidence-selected span { color: var(--muted); font-size: 12px; font-weight: 650; }
.evidence-selected strong { color: var(--ink); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evidence-compare-note { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: grid; gap: 4px; }
.evidence-compare-note strong { color: var(--ink); font-size: 13px; font-weight: 700; }
.evidence-compare-note p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.evidence-counts { display: grid; gap: 7px; }
.evidence-count-row { padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: grid; grid-template-columns: 16px 9px minmax(0, 1fr) auto auto; gap: 8px; align-items: center; font-size: 12px; cursor: pointer; }
.evidence-count-row--all { grid-template-columns: 16px minmax(0, 1fr) auto auto; background: #f8fafc; border-color: #d8e1ea; }
.evidence-count-row__all { width: 9px; height: 9px; border-radius: 3px; background: linear-gradient(135deg, #4b5563, #94a3b8); }
.evidence-count-row input { width: 14px; height: 14px; margin: 0; accent-color: var(--brand); }
.evidence-count-row i { width: 9px; height: 9px; border-radius: 999px; }
.evidence-count-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evidence-count-row strong { min-width: 26px; text-align: right; color: var(--ink); }
.evidence-count-row em { color: var(--muted); font-style: normal; }
.evidence-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.evidence-nav button { height: 34px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-weight: 650; cursor: pointer; }
.evidence-contact-sheet { grid-area: sheet; display: grid; grid-template-columns: repeat(auto-fill, minmax(142px, 1fr)); gap: 8px; max-height: 360px; overflow: auto; }
.evidence-contact-sheet button { height: 128px; padding: 7px; border: 1px solid var(--line); border-radius: 10px; background: #fff; display: grid; grid-template-rows: 1fr auto; gap: 6px; text-align: left; cursor: pointer; }
.evidence-contact-sheet button.is-selected { border-color: var(--brand); background: var(--brand-soft); }
.evidence-contact-sheet img { width: 100%; height: 84px; border-radius: 8px; object-fit: cover; background: #111827; }
.evidence-contact-sheet span { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.empty-count { color: var(--muted); font-size: 12px; }

td.admin-actions { display: table-cell; text-align: right; white-space: nowrap; }
td.admin-actions form { display: inline-block; margin: 0 0 0 6px; vertical-align: middle; }
.admin-actions { justify-content: flex-end; align-items: center; gap: 8px; }
.admin-table td strong { color: var(--ink); }
.admin-panel--attention { border-color: #f4c970; }

.work-modal { position: fixed; inset: 0; z-index: 80; display: none; align-items: center; justify-content: center; padding: 24px; }
.work-modal.is-open { display: flex; }
.work-modal__backdrop { position: absolute; inset: 0; background: rgba(16,24,40,.48); backdrop-filter: blur(5px); }
.work-modal__panel { position: relative; width: min(720px, 100%); border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.work-modal__header { padding: 22px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 16px; }
.modal-kicker { color: var(--brand); font-size: 11px; font-weight: 620; text-transform: uppercase; }
.work-modal__header h2 { margin: 2px 0 0; color: var(--ink); font-size: 20px; font-weight: 650; }
.work-modal__header p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }
.work-modal__close { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; color: var(--muted); text-decoration: none; font-size: 20px; }
.work-modal__options { padding: 16px; display: grid; gap: 12px; }
.work-option { min-height: 102px; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 14px; text-decoration: none; }
.work-option:hover { border-color: var(--brand); background: #fbffff; }
.work-option__icon { width: 52px; height: 44px; border-radius: 10px; background: var(--brand); color: #fff; display: grid; place-items: center; font-size: 13px; font-weight: 620; }
.work-option strong { display: block; color: var(--ink); font-size: 15px; font-weight: 650; }
.work-option em { display: block; margin-top: 4px; color: var(--muted); font-size: 13px; line-height: 1.45; font-style: normal; }

.guest-shell { min-height: 100vh; background: var(--bg); display: grid; grid-template-rows: auto 1fr; }
.guest-header { height: 72px; padding: 0 32px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.95); display: flex; align-items: center; justify-content: space-between; }
.guest-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; font-weight: 650; }
.guest-brand img { width: 128px; max-height: 42px; object-fit: contain; display: block; }
.guest-header nav { display: inline-flex; gap: 8px; }
.guest-header nav a { height: 36px; padding: 0 12px; border-radius: 8px; display: inline-flex; align-items: center; color: #475467; text-decoration: none; font-size: 13px; font-weight: 650; }
.guest-header .guest-cta { background: var(--brand); color: #fff; }
.guest-content { display: grid; align-content: start; }
.auth-shell { min-height: calc(100vh - 72px); padding: 48px 20px; display: grid; place-items: center; }
.auth-card { width: min(420px, 100%); padding: 28px; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.auth-card__head { margin-bottom: 22px; text-align: center; }
.auth-card__icon { width: 42px; height: 42px; margin: 0 auto 14px; border-radius: 10px; background: var(--brand); color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 620; }
.auth-card h1 { margin: 0; color: var(--ink); font-size: 20px; line-height: 1.2; }
.auth-card p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.auth-form { display: grid; gap: 14px; }
.auth-field { display: grid; gap: 7px; }
.auth-field span { color: #344054; font-size: 12px; font-weight: 650; }
.auth-field input { height: 40px; padding: 0 11px; }
.auth-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.auth-row a, .auth-switch a { color: var(--brand); font-weight: 650; text-decoration: none; }
.auth-check { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.auth-check input { width: 16px; height: 16px; }
.auth-submit { height: 40px; border: 1px solid var(--brand); border-radius: 8px; background: var(--brand); color: #fff; font-size: 14px; font-weight: 650; cursor: pointer; }
.auth-switch, .auth-note { margin-top: 18px !important; text-align: center; font-size: 13px !important; }
.auth-note { padding: 10px 12px; border-radius: 8px; background: #f8fafc; color: #475467 !important; }
.auth-errors { padding: 12px; border: 1px solid #fecaca; border-radius: 8px; background: #fff0ee; color: var(--red); font-size: 13px; }
.auth-errors strong { display: block; margin-bottom: 6px; }
.auth-errors ul { margin: 0; padding-left: 18px; }

@media (max-width: 1120px) {
  .app-shell { grid-template-columns: 1fr; }
  .app-sidebar { position: relative; height: auto; }
  .app-content { width: min(100% - 32px, 980px); }
  .topbar { grid-template-columns: 1fr auto; }
  .global-search { display: none; }
  .page-head, .workbench-grid, .run-layout, .evidence-board { grid-template-columns: 1fr; grid-template-areas: none; }
  .evidence-board__stage, .evidence-board__side, .evidence-contact-sheet { grid-area: auto; }
  .run-setup { position: static; }
  .insight-grid, .analysis-group-grid, .basis-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-bar { grid-template-columns: 1fr 1fr; }
  .management-grid, .management-form { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .app-content { width: min(100% - 24px, 980px); padding-top: 20px; }
  .topbar { height: 58px; padding: 0 16px; }
  .topbar__title span, .locale-toggle, .user-menu__button > span:not(.avatar) { display: none; }
  .page-head { align-items: start; }
  .page-actions { justify-content: stretch; flex-direction: column; }
  .insight-grid, .analysis-group-grid, .filter-bar, .basis-grid { grid-template-columns: 1fr; }
  .evidence-board__stage { min-height: 320px; }
  .process-notice { grid-template-columns: 1fr; }
  .process-notice i { min-width: 0; }
  .guest-header { height: 64px; padding: 0 16px; }
  .guest-brand img { width: 104px; max-height: 34px; }
  .guest-brand span { display: none; }
  .auth-shell { min-height: calc(100vh - 64px); padding: 28px 14px; }
  .auth-card { padding: 22px; }
}


/* Modern product polish: calmer visual hierarchy, brighter shell, consistent weights */
.app-shell { grid-template-columns: 252px minmax(0, 1fr); background: linear-gradient(180deg, #f9fafc 0%, #f4f7fa 100%); }
.app-sidebar { background: #fff; color: var(--text); border-right: 1px solid var(--line); box-shadow: none; }
.brand-block { border-bottom-color: var(--line); }
.brand-block--link:hover strong { color: var(--brand); }
.brand-mark { width: 34px; height: 34px; border-radius: 9px; background: #151922; color: #fff; font-weight: 650; }
.brand-block strong { color: var(--ink); font-size: 16px; font-weight: 700; }
.brand-block span, .sidebar-note span { color: var(--muted); font-weight: 450; }
.primary-create { background: #151922; color: #fff; box-shadow: none; font-weight: 600; height: 38px; }
.side-nav__label { color: #98a2b3; font-weight: 600; }
.side-nav__link { color: #4b5565; font-size: 13px; font-weight: 500; }
.side-nav__link svg { color: #8894a3; }
.side-nav__link:hover { background: #f3f6f8; color: var(--ink); }
.side-nav__link.is-active { background: #eef0f3; color: #151922; box-shadow: none; font-weight: 620; }
.side-nav__link.is-active svg { color: #151922; }
.sidebar-note { border-color: var(--line); background: #f8fafc; }
.sidebar-note strong { color: #3b4655; font-size: 12px; font-weight: 520; }
.topbar { height: 60px; background: rgba(255,255,255,.88); border-bottom-color: var(--line); grid-template-columns: 190px minmax(260px, 520px) auto; }
.topbar__title span { font-size: 11px; font-weight: 450; }
.topbar__title strong { font-size: 15px; font-weight: 620; }
.avatar { background: #303846; font-weight: 650; }
.app-content { width: min(var(--content), calc(100vw - 252px - 56px)); padding-top: 26px; }
.page-stack { gap: 16px; }
.eyebrow { font-weight: 500; }
.page-head h1 { font-size: 25px; line-height: 1.24; font-weight: 680; }
.page-head p { font-size: 13px; max-width: 720px; }
.ui-button, .button { height: 36px; font-weight: 560; box-shadow: none; }
.insight-card, .panel-card, .lab-panel, .analysis-group-card { border-radius: 8px; box-shadow: none; }
.insight-card { min-height: 92px; }
.insight-card span { font-weight: 520; }
.insight-card strong { font-size: 21px; line-height: 1.08; font-weight: 680; }
.insight-card p { line-height: 1.42; }
.panel-card__header, .lab-panel__head { min-height: 56px; background: #fff; }
.panel-card__header h2, .lab-panel__head h2 { font-size: 14px; font-weight: 650; }
.panel-card__header p, .lab-panel__head p { font-size: 12px; }
.dense-item strong, .analysis-group-card strong, .data-table__primary { font-weight: 620; }
.status-pill, .tag, .readiness-chip { min-height: 22px; font-size: 11px; font-weight: 560; }
.data-table th, .comparison-table th, .result-matrix th { height: 40px; font-size: 11px; font-weight: 600; color: #667085; }
.data-table td, .comparison-table td, .result-matrix td { color: #3f4b59; }
.result-matrix td strong, .comparison-table td strong, .class-name strong { font-weight: 620; }
.filter-bar input, .filter-bar select, .global-search input { height: 36px; font-size: 13px; }
.work-modal__header h2 { font-size: 18px; font-weight: 650; }
.work-option strong { font-size: 14px; font-weight: 650; }
.work-option__icon { font-weight: 650; }
.run-drop { background: #fbfcfd; }
.run-drop strong { font-size: 15px; font-weight: 620; }


/* Evidence board must never overlap the side panel */
.evidence-board__stage { min-width: 0; width: 100%; height: 560px; min-height: 0; aspect-ratio: auto; }
.evidence-board__stage img, .evidence-board__stage canvas { max-width: 100%; max-height: 100%; }
@media (max-width: 1120px) { .evidence-board__stage { height: 520px; } }
@media (max-width: 680px) { .evidence-board__stage { height: 320px; } }

.group-cell-summary {
  margin-top: 12px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 12px;
}
.group-cell-summary b {
  margin-left: 6px;
  color: var(--ink);
  font-weight: 620;
  font-variant-numeric: tabular-nums;
}
.class-name.compact {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.class-name.compact i,
.class-name.compact strong {
  margin-right: 0;
}
.data-table .is-number {
  white-space: nowrap;
}
.ui-link {
  color: var(--brand);
  font-size: 12px;
  font-weight: 620;
  text-decoration: none;
}
.ui-link:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Project-first workflow refresh */
.app-shell svg {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
}
.primary-create,
.ui-button--primary {
  background: #151922;
  border-color: #151922;
}
.primary-create:hover,
.ui-button--primary:hover {
  background: #0b0f16;
  border-color: #0b0f16;
}
.page-head {
  padding: 4px 0 2px;
}

/* Public landing */
.landing-shell {
  min-height: 100vh;
  background:
    radial-gradient(circle at top left, rgba(45, 212, 191, 0.10), transparent 26%),
    radial-gradient(circle at 85% 10%, rgba(250, 204, 21, 0.12), transparent 24%),
    linear-gradient(180deg, #f7fafb 0%, #edf2f5 46%, #f8fafc 100%);
  color: var(--text);
}
.landing-header {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: min(1240px, calc(100vw - 40px));
  margin: 0 auto;
  padding: 18px 0 14px;
  backdrop-filter: blur(16px);
}
.landing-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  text-decoration: none;
}
.landing-brand img {
  width: 112px;
  max-height: 34px;
  object-fit: contain;
  display: block;
}
.landing-brand strong {
  font-size: 17px;
  font-weight: 720;
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.landing-nav {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px;
  border: 1px solid rgba(202, 211, 220, 0.86);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06);
}
.landing-nav a {
  min-height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: #556170;
  font-size: 13px;
  font-weight: 560;
}
.landing-nav a:hover {
  background: #f3f6f8;
  color: var(--ink);
}
.landing-header__actions,
.landing-hero__actions,
.landing-cta__actions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.landing-button {
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}
.landing-button:hover {
  transform: translateY(-1px);
}
.landing-button--primary {
  background: #151922;
  border-color: #151922;
  color: #fff;
  box-shadow: 0 16px 28px rgba(21, 25, 34, 0.15);
}
.landing-button--primary:hover {
  background: #0b0f16;
  border-color: #0b0f16;
}
.landing-button--ghost {
  background: rgba(255, 255, 255, 0.78);
  color: var(--ink);
}
.landing-toast {
  width: min(1240px, calc(100vw - 40px));
  margin-left: auto;
  margin-right: auto;
}
.landing-main {
  width: min(1240px, calc(100vw - 40px));
  margin: 0 auto;
  padding: 20px 0 72px;
  display: grid;
  gap: 34px;
}
.landing-kicker {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  width: fit-content;
  max-width: max-content;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(199, 210, 220, 0.9);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: #485467;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.landing-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(540px, 1.08fr);
  gap: 36px;
  align-items: stretch;
  padding: 34px;
  border: 1px solid rgba(207, 216, 226, 0.9);
  border-radius: 34px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.84), rgba(246, 249, 251, 0.92)),
    rgba(255, 255, 255, 0.72);
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}
.landing-hero__copy {
  display: grid;
  align-content: center;
  gap: 18px;
  min-width: 0;
  position: relative;
  z-index: 2;
}
.landing-hero__copy h1 {
  margin: 0;
  color: var(--ink);
  max-width: 8.6em;
  font-size: clamp(2.8rem, 4.2vw, 4.6rem);
  line-height: 0.98;
  font-weight: 760;
  letter-spacing: -0.05em;
  text-wrap: balance;
}
.landing-hero__copy p {
  margin: 0;
  max-width: 560px;
  color: #566273;
  font-size: 17px;
  line-height: 1.78;
  word-break: keep-all;
}
.landing-proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 8px;
}
.landing-proof article {
  min-height: 118px;
  padding: 16px;
  border: 1px solid rgba(214, 221, 229, 0.92);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.76);
  display: grid;
  align-content: start;
  gap: 8px;
}
.landing-proof strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}
.landing-proof span {
  color: #5f6c7d;
  font-size: 13px;
  line-height: 1.6;
}
.landing-hero__visual {
  position: relative;
  min-height: 640px;
  display: grid;
  place-items: center;
  min-width: 0;
}
.landing-hero__glow {
  position: absolute;
  border-radius: 999px;
  filter: blur(14px);
  opacity: 0.74;
}
.landing-hero__glow--teal {
  top: 58px;
  left: 36px;
  width: 190px;
  height: 190px;
  background: radial-gradient(circle, rgba(45, 212, 191, 0.38), rgba(45, 212, 191, 0));
}
.landing-hero__glow--amber {
  right: 18px;
  bottom: 42px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(251, 191, 36, 0.35), rgba(251, 191, 36, 0));
}
.landing-console {
  position: relative;
  z-index: 2;
  width: min(100%, 620px);
  padding: 22px;
  border: 1px solid rgba(198, 208, 219, 0.9);
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.88)),
    rgba(255, 255, 255, 0.7);
  box-shadow: 0 30px 90px rgba(15, 23, 42, 0.12);
  backdrop-filter: blur(16px);
  display: grid;
  gap: 18px;
  margin-left: auto;
}
.landing-console__top,
.landing-console__stats,
.landing-console__legend,
.landing-console__grid {
  display: grid;
  gap: 12px;
}
.landing-console__top {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
.landing-console__top span {
  color: var(--ink);
  font-size: 15px;
  font-weight: 700;
}
.landing-console__top em {
  font-style: normal;
  color: #657283;
  font-size: 12px;
  font-weight: 650;
}
.landing-console__stats,
.landing-console__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.landing-console__stats div,
.landing-console__grid article {
  min-height: 78px;
  padding: 14px;
  border: 1px solid rgba(214, 221, 229, 0.9);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.84);
  display: grid;
  align-content: space-between;
}
.landing-console__stats span,
.landing-console__grid span {
  color: #6b7787;
  font-size: 11px;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.landing-console__stats strong,
.landing-console__grid strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 700;
}
.landing-console__stage {
  position: relative;
  height: 330px;
  border-radius: 26px;
  overflow: hidden;
  background: linear-gradient(135deg, #131922, #202a34);
}
.landing-console__image {
  position: absolute;
  inset: 0;
}
.landing-console__image--base {
  background:
    radial-gradient(circle at 20% 28%, rgba(238, 242, 247, 0.95) 0 12px, transparent 13px),
    radial-gradient(circle at 34% 50%, rgba(237, 241, 246, 0.95) 0 15px, transparent 16px),
    radial-gradient(circle at 56% 34%, rgba(245, 248, 250, 0.96) 0 13px, transparent 14px),
    radial-gradient(circle at 72% 56%, rgba(234, 239, 244, 0.96) 0 17px, transparent 18px),
    radial-gradient(circle at 48% 72%, rgba(237, 241, 247, 0.94) 0 14px, transparent 15px),
    radial-gradient(circle at 82% 28%, rgba(246, 248, 251, 0.95) 0 12px, transparent 13px),
    linear-gradient(135deg, rgba(62, 71, 85, 0.18), rgba(245, 247, 250, 0.08));
  opacity: 0.92;
}
.landing-console__image--seg {
  clip-path: inset(0 0 0 50%);
  background:
    radial-gradient(circle at 20% 28%, transparent 0 12px, rgba(255, 123, 123, 0.95) 13px 15px, transparent 16px),
    radial-gradient(circle at 34% 50%, transparent 0 15px, rgba(63, 193, 201, 0.95) 16px 18px, transparent 19px),
    radial-gradient(circle at 56% 34%, transparent 0 13px, rgba(251, 191, 36, 0.95) 14px 16px, transparent 17px),
    radial-gradient(circle at 72% 56%, transparent 0 17px, rgba(255, 123, 123, 0.95) 18px 20px, transparent 21px),
    radial-gradient(circle at 48% 72%, transparent 0 14px, rgba(63, 193, 201, 0.95) 15px 17px, transparent 18px),
    radial-gradient(circle at 82% 28%, transparent 0 12px, rgba(251, 191, 36, 0.95) 13px 15px, transparent 16px),
    linear-gradient(135deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
}
.landing-console__divider {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 0;
  transform: translateX(-50%);
}
.landing-console__divider i {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.92);
}
.landing-console__divider span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 999px;
  background: rgba(13, 18, 24, 0.78);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.3);
  transform: translate(-50%, -50%);
}
.landing-console__divider span::before,
.landing-console__divider span::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.landing-console__divider span::before {
  left: 12px;
  transform: translateY(-50%) rotate(-135deg);
}
.landing-console__divider span::after {
  right: 12px;
  transform: translateY(-50%) rotate(45deg);
}
.landing-console__legend {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.landing-console__legend span {
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(214, 221, 229, 0.9);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.84);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #455161;
  font-size: 12px;
  font-weight: 650;
}
.landing-console__legend i {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
}
.landing-console__legend i.is-red { background: #ff7b7b; }
.landing-console__legend i.is-cyan { background: #3fc1c9; }
.landing-console__legend i.is-gold { background: #fbbf24; }
.landing-float {
  position: absolute;
  z-index: 3;
  width: 220px;
  padding: 14px 16px;
  border: 1px solid rgba(206, 216, 226, 0.9);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 18px 42px rgba(15, 23, 42, 0.08);
  backdrop-filter: blur(12px);
  display: grid;
  gap: 6px;
}
.landing-float span {
  color: #6b7787;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.landing-float strong {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.45;
  font-weight: 700;
}
.landing-float--top {
  display: none;
}
.landing-float--bottom {
  right: 30px;
  bottom: 10px;
}
.landing-product,
.landing-workflow,
.landing-results,
.landing-cta {
  position: relative;
}
.landing-section-heading {
  display: grid;
  gap: 14px;
  max-width: 760px;
}
.landing-section-heading h2,
.landing-workflow__intro h2,
.landing-results__copy h2,
.landing-cta h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.9rem, 2.5vw, 3rem);
  line-height: 1.08;
  font-weight: 740;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
.landing-product-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) repeat(2, minmax(0, 0.96fr));
  gap: 16px;
  margin-top: 22px;
}
.landing-product-card,
.landing-workflow__intro,
.landing-step,
.landing-results__panel {
  border: 1px solid rgba(207, 216, 226, 0.9);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 16px 38px rgba(15, 23, 42, 0.05);
  min-width: 0;
}
.landing-product-card {
  min-height: 220px;
  padding: 24px;
  display: grid;
  align-content: start;
  gap: 12px;
}
.landing-product-card--lead {
  grid-row: span 2;
  background:
    linear-gradient(160deg, rgba(255, 255, 255, 0.92), rgba(240, 246, 245, 0.92)),
    rgba(255, 255, 255, 0.8);
}
.landing-product-card--accent {
  background:
    radial-gradient(circle at top right, rgba(45, 212, 191, 0.08), transparent 30%),
    rgba(255, 255, 255, 0.78);
}
.landing-card-index {
  color: #8a97a7;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.landing-product-card strong,
.landing-step strong,
.landing-results__highlights strong {
  color: var(--ink);
  font-size: 18px;
  font-weight: 720;
  line-height: 1.3;
}
.landing-product-card p,
.landing-workflow__intro p,
.landing-step p,
.landing-results__copy p,
.landing-results__highlights span {
  margin: 0;
  color: #5d6979;
  font-size: 14px;
  line-height: 1.68;
  word-break: keep-all;
}
.landing-bullet-list {
  margin: auto 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}
.landing-bullet-list li {
  position: relative;
  padding-left: 14px;
  color: #455161;
  font-size: 14px;
  line-height: 1.6;
}
.landing-bullet-list li::before {
  content: "";
  position: absolute;
  top: 9px;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #151922;
}
.landing-workflow {
  display: grid;
  grid-template-columns: minmax(320px, 0.78fr) minmax(0, 1.22fr);
  gap: 18px;
  align-items: start;
}
.landing-workflow__intro {
  padding: 26px;
  display: grid;
  gap: 14px;
  position: sticky;
  top: 92px;
}
.landing-workflow__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.landing-step {
  min-height: 218px;
  padding: 22px;
  display: grid;
  align-content: start;
  gap: 14px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(244, 248, 250, 0.96)),
    rgba(255, 255, 255, 0.7);
}
.landing-step span {
  color: #7d8a99;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.landing-results__panel {
  padding: 30px;
  display: grid;
  grid-template-columns: minmax(0, 0.96fr) minmax(0, 1.04fr);
  gap: 22px;
  background:
    radial-gradient(circle at top right, rgba(45, 212, 191, 0.10), transparent 30%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.9), rgba(242, 247, 249, 0.96));
}
.landing-results__copy,
.landing-results__highlights {
  display: grid;
  gap: 14px;
  min-width: 0;
}
.landing-results__copy {
  align-content: start;
}
.landing-results__highlights article {
  min-height: 112px;
  padding: 16px 18px;
  border: 1px solid rgba(214, 221, 229, 0.88);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.82);
  display: grid;
  align-content: center;
  gap: 6px;
}
.landing-cta {
  padding: 28px 30px;
  border: 1px solid rgba(207, 216, 226, 0.9);
  border-radius: 30px;
  background:
    radial-gradient(circle at 10% 10%, rgba(45, 212, 191, 0.12), transparent 24%),
    radial-gradient(circle at 85% 25%, rgba(251, 191, 36, 0.14), transparent 28%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(244, 248, 250, 0.98));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
}

@media (max-width: 1260px) {
  .landing-header,
  .landing-main,
  .landing-toast {
    width: min(100vw - 32px, 1120px);
  }
  .landing-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    padding: 28px;
  }
  .landing-hero__visual {
    min-height: 520px;
  }
  .landing-console {
    margin: 0 auto;
  }
  .landing-float {
    display: none;
  }
  .landing-product-grid,
  .landing-workflow,
  .landing-results__panel,
  .landing-cta {
    grid-template-columns: 1fr;
  }
  .landing-workflow__intro {
    position: static;
  }
}

@media (max-width: 1120px) {
  .landing-header,
  .landing-main,
  .landing-toast {
    width: min(100vw - 28px, 980px);
  }
  .landing-proof,
  .landing-console__stats,
  .landing-console__grid,
  .landing-workflow__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .landing-hero__visual {
    min-height: 500px;
  }
  .landing-product-card--lead {
    grid-row: auto;
  }
  .landing-results__panel {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 760px) {
  .landing-header {
    padding-top: 16px;
    gap: 12px;
    flex-wrap: wrap;
  }
  .landing-nav {
    display: none;
  }
  .landing-header__actions,
  .landing-hero__actions,
  .landing-cta__actions {
    width: 100%;
  }
  .landing-button {
    flex: 1 1 180px;
  }
  .landing-hero__copy h1 {
    max-width: none;
    font-size: clamp(2.35rem, 10vw, 3.6rem);
    max-width: none;
    line-height: 1;
  }
  .landing-hero__copy p {
    font-size: 15px;
  }
  .landing-hero {
    padding: 20px;
    border-radius: 24px;
  }
  .landing-console {
    padding: 16px;
    border-radius: 22px;
  }
  .landing-console__stage {
    height: 240px;
    border-radius: 18px;
  }
  .landing-proof,
  .landing-console__legend,
  .landing-console__stats,
  .landing-console__grid,
  .landing-workflow__list {
    grid-template-columns: 1fr;
  }
  .landing-product-card,
  .landing-workflow__intro,
  .landing-step,
  .landing-results__panel,
  .landing-cta {
    border-radius: 22px;
  }
  .landing-results__panel,
  .landing-cta {
    padding: 22px;
  }
  .landing-hero__visual {
    min-height: 400px;
  }
  .landing-results__panel {
    grid-template-columns: 1fr;
  }
}
.page-head h1 {
  letter-spacing: 0;
}
.page-actions .ui-button {
  min-width: 104px;
}
.work-modal {
  padding: 20px;
}
.work-modal__backdrop {
  background: rgba(15, 23, 42, .48);
  backdrop-filter: blur(10px);
}
.work-modal__panel {
  width: min(780px, 100%);
  border-radius: 18px;
  border-color: rgba(203, 213, 225, .9);
  box-shadow: 0 28px 70px rgba(15, 23, 42, .22);
}
.work-modal__header {
  padding: 24px 26px 20px;
  background:
    linear-gradient(180deg, rgba(237, 247, 247, .9), rgba(255, 255, 255, 1)),
    #fff;
}
.modal-kicker {
  letter-spacing: 0;
}
.work-modal__header h2 {
  font-size: 22px;
}
.work-modal__header p {
  max-width: 560px;
  font-size: 13px;
}
.work-modal__close {
  background: rgba(255, 255, 255, .74);
  border: 1px solid var(--line);
}
.work-modal__options { padding: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.work-option { min-height: 136px; grid-template-columns: 46px minmax(0, 1fr); align-content: start; border-radius: 12px; background: #fff; transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.work-option:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .09);
}
.work-option--project:hover { background: #fff; }
.work-option__icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #151922;
}
.work-option__icon--project {
  background: #293241;
}
.work-option__icon svg {
  width: 21px;
  height: 21px;
}
.work-option strong {
  font-size: 16px;
}
.work-option em { min-height: 42px; }
.work-option b { display: inline-flex; align-items: center; margin-top: 12px; color: var(--brand); font-size: 12px; font-weight: 650; }
.work-option--project b { color: #293241; }
.project-command-grid {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(440px, 1.08fr);
  gap: 14px;
  align-items: stretch;
}
.command-card {
  min-height: 236px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 10px;
}
.command-card--primary {
  background:
    linear-gradient(135deg, rgba(227, 243, 242, .95), rgba(255, 255, 255, .92)),
    #fff;
}
.command-card > span {
  color: #151922;
  font-size: 11px;
  font-weight: 650;
  text-transform: uppercase;
}
.command-card h2 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
  font-weight: 680;
}
.command-card p {
  margin: 0;
  max-width: 560px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}
.command-card__actions {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.analysis-import-form {
  display: grid;
  gap: 12px;
}
.analysis-import-list {
  display: grid;
  max-height: 280px;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 9px;
}
.analysis-import-row {
  min-height: 58px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  cursor: pointer;
}
.analysis-import-row:last-child {
  border-bottom: 0;
}
.analysis-import-row:hover {
  background: #f8fafb;
}
.analysis-import-row input {
  width: 16px;
  height: 16px;
  accent-color: #151922;
}
.analysis-import-row span {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.analysis-import-row strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink);
  font-size: 13px;
  font-weight: 620;
}
.analysis-import-row em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}
.analysis-import-row i {
  font-style: normal;
}
.project-new-page {
  max-width: 860px;
}
.project-create-panel {
  max-width: 680px;
}
.project-create-form {
  padding: 18px;
  display: grid;
  gap: 16px;
}
.field-block {
  display: grid;
  gap: 7px;
}
.field-block span {
  color: var(--ink);
  font-size: 13px;
  font-weight: 650;
}
.field-block input {
  width: 100%;
  height: 44px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: var(--surface);
  color: var(--ink);
  padding: 0 12px;
  outline: none;
}
.field-block input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px var(--brand-soft);
}
.field-block em {
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
}
.field-help {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.form-alert {
  padding: 10px 12px;
  border: 1px solid #fecaca;
  border-radius: 8px;
  background: #fff5f4;
  color: var(--red);
  font-size: 13px;
  font-weight: 560;
  display: grid;
  gap: 2px;
}
.form-alert strong {
  color: var(--red);
  font-weight: 650;
}
.form-alert span {
  color: #9f1f15;
  font-weight: 500;
}
.project-create-form__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.account-settings-page {
  max-width: 820px;
}
.account-settings-form {
  display: grid;
  gap: 14px;
}
.account-settings-panel {
  max-width: 680px;
}
.account-settings-fields {
  padding: 18px;
  display: grid;
  gap: 12px;
}
.account-settings-fields--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 12px;
  row-gap: 8px;
}
.account-settings-actions {
  max-width: 680px;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.account-danger-panel {
  max-width: 680px;
  padding: 16px 18px;
  border-color: #fecaca;
  background: #fffafa;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.account-danger-panel h2 {
  margin: 0;
  color: var(--red);
  font-size: 15px;
  font-weight: 680;
}
.account-danger-panel p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}
.run-drop {
  border-radius: 10px;
  background:
    linear-gradient(180deg, #ffffff, #f4fbfa);
}
.run-thumb,
.project-analysis-card,
.project-analysis-thumb,
.evidence-board__side,
.evidence-contact-sheet button {
  border-radius: 8px;
}
.data-table tbody tr,
.dense-item,
.analysis-import-row {
  transition: background .14s ease;
}
@media (max-width: 1120px) {
  .project-command-grid,
  .work-modal__options {
    grid-template-columns: 1fr;
  }
  .project-command-grid {
    align-items: start;
  }
}
@media (max-width: 680px) {
  .work-modal {
    align-items: flex-end;
    padding: 10px;
  }
  .work-modal__panel {
    border-radius: 16px;
  }
  .work-option {
    min-height: auto;
  }
  .project-command-grid {
    grid-template-columns: 1fr;
  }
  .analysis-import-row {
    grid-template-columns: 18px minmax(0, 1fr);
  }
  .analysis-import-row i {
    grid-column: 2;
    justify-self: start;
  }
  .analysis-project-form {
    display: grid;
    grid-template-columns: 1fr auto;
    width: 100%;
  }
  .analysis-project-form > span {
    grid-column: 1 / -1;
  }
  .analysis-project-form .custom-select {
    width: 100%;
    min-width: 0;
  }
  .account-settings-fields--two {
    grid-template-columns: 1fr;
  }
  .account-danger-panel {
    align-items: stretch;
    flex-direction: column;
  }
  .account-danger-panel .button_to,
  .account-danger-panel .ui-button {
    width: 100%;
  }
}

/* Landing rebuild: restrained bio-workspace presentation */
.landing-shell,
.landing-shell * {
  letter-spacing: 0 !important;
}

.landing-shell {
  min-height: 100vh;
  background: #f5f7f8;
  color: #151922;
}

.landing-header {
  position: sticky;
  top: 0;
  z-index: 40;
  width: min(1180px, calc(100vw - 40px));
  height: 64px;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: rgba(245, 247, 248, 0.86);
  backdrop-filter: blur(14px);
}

.landing-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #151922;
  text-decoration: none;
}

.landing-brand img {
  width: 104px;
  max-height: 30px;
  object-fit: contain;
  display: block;
}

.landing-brand strong {
  font-size: 15px;
  line-height: 1;
  font-weight: 720;
  white-space: nowrap;
}

.landing-nav {
  height: 36px;
  padding: 3px;
  border: 1px solid #d7dee6;
  border-radius: 8px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  box-shadow: none;
}

.landing-nav a {
  min-height: 28px;
  padding: 0 12px;
  border-radius: 6px;
  color: #667085;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 12px;
  font-weight: 650;
}

.landing-nav a:hover {
  background: #f2f5f7;
  color: #151922;
}

.landing-header__actions,
.landing-hero__actions,
.landing-cta__actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.landing-button {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid #cbd5df;
  border-radius: 8px;
  background: #fff;
  color: #151922;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 680;
  white-space: nowrap;
  box-shadow: none;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.landing-button:hover {
  transform: translateY(-1px);
}

.landing-button--primary {
  border-color: #151922;
  background: #151922;
  color: #fff;
  box-shadow: 0 12px 24px rgba(21, 25, 34, .14);
}

.landing-button--primary:hover {
  border-color: #0b0f16;
  background: #0b0f16;
}

.landing-button--ghost {
  background: rgba(255, 255, 255, .9);
}

.landing-toast,
.landing-main {
  width: min(1180px, calc(100vw - 40px));
  margin-left: auto;
  margin-right: auto;
}

.landing-main {
  padding: 18px 0 72px;
  display: grid;
  gap: 64px;
}

.landing-kicker {
  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid #d7dee6;
  border-radius: 6px;
  background: rgba(255, 255, 255, .9);
  color: #536171;
  display: inline-flex;
  align-items: center;
  justify-self: start;
  font-size: 11px;
  line-height: 1;
  font-weight: 760;
  text-transform: uppercase;
  white-space: nowrap;
}

.landing-hero {
  position: relative;
  min-height: 620px;
  padding: 56px;
  border: 0;
  border-radius: 0;
  background: #16202a;
  box-shadow: none;
  overflow: hidden;
  display: grid;
  align-items: end;
}

.landing-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(15, 22, 30, .92) 0%, rgba(15, 22, 30, .72) 46%, rgba(15, 22, 30, .18) 100%),
    linear-gradient(0deg, rgba(15, 22, 30, .34), rgba(15, 22, 30, .08));
  pointer-events: none;
}

.landing-micrograph {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 28%, rgba(255, 255, 255, .86) 0 22px, transparent 24px),
    radial-gradient(circle at 31% 48%, rgba(255, 255, 255, .78) 0 30px, transparent 32px),
    radial-gradient(circle at 56% 32%, rgba(255, 255, 255, .82) 0 24px, transparent 26px),
    radial-gradient(circle at 78% 54%, rgba(255, 255, 255, .76) 0 36px, transparent 38px),
    radial-gradient(circle at 68% 18%, rgba(255, 204, 77, .66) 0 18px, transparent 21px),
    radial-gradient(circle at 45% 74%, rgba(74, 195, 202, .54) 0 22px, transparent 25px),
    linear-gradient(135deg, #263442, #121922 72%);
  transform: scale(1.04);
}

.cell {
  position: absolute;
  width: 0;
  height: 0;
}

.landing-hero__content {
  position: relative;
  z-index: 2;
  max-width: 660px;
  display: grid;
  gap: 18px;
}

.landing-hero__content .landing-kicker {
  border-color: rgba(255, 255, 255, .26);
  background: rgba(255, 255, 255, .1);
  color: #eef4f6;
}

.landing-hero h1 {
  margin: 0;
  color: #fff;
  font-size: 72px;
  line-height: .95;
  font-weight: 780;
}

.landing-hero p {
  margin: 0;
  max-width: 610px;
  color: #d7e0e6;
  font-size: 17px;
  line-height: 1.72;
  word-break: keep-all;
}

.landing-hero__summary {
  position: relative;
  z-index: 2;
  width: min(100%, 860px);
  margin: 42px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .1);
  backdrop-filter: blur(12px);
}

.landing-hero__summary div {
  min-height: 96px;
  padding: 16px 18px;
  border-right: 1px solid rgba(255, 255, 255, .18);
  display: grid;
  align-content: center;
  gap: 4px;
}

.landing-hero__summary div:last-child {
  border-right: 0;
}

.landing-hero__summary dt {
  color: #fff;
  font-size: 14px;
  font-weight: 760;
}

.landing-hero__summary dd {
  margin: 0;
  color: #c7d1d8;
  font-size: 13px;
  line-height: 1.55;
}

.landing-section,
.landing-workflow,
.landing-results,
.landing-cta {
  position: relative;
}

.landing-section__head {
  max-width: 900px;
  display: grid;
  gap: 10px;
}

.landing-section__head h2,
.landing-cta h2 {
  margin: 0;
  color: #151922;
  font-size: 34px;
  line-height: 1.16;
  font-weight: 760;
  word-break: keep-all;
  overflow-wrap: normal;
}

.landing-section__head p {
  margin: 0;
  color: #596675;
  font-size: 15px;
  line-height: 1.7;
  word-break: keep-all;
}

.landing-feature-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.landing-feature,
.landing-steps li,
.landing-result-list article {
  min-width: 0;
  min-height: 170px;
  padding: 18px;
  border: 1px solid #dfe6ee;
  border-radius: 8px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 10px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .035);
}

.landing-feature span,
.landing-steps span {
  color: #7b8795;
  font-size: 12px;
  font-weight: 760;
}

.landing-feature strong,
.landing-steps strong,
.landing-result-list strong {
  color: #151922;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 760;
}

.landing-feature p,
.landing-steps p,
.landing-result-list p {
  margin: 0;
  color: #5c6877;
  font-size: 14px;
  line-height: 1.64;
  word-break: keep-all;
}

.landing-steps {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.landing-steps li {
  min-height: 150px;
}

.landing-result-list {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.landing-result-list article {
  min-height: 140px;
}

.landing-cta {
  min-height: 180px;
  padding: 26px 0;
  border-top: 1px solid #dfe6ee;
  border-bottom: 1px solid #dfe6ee;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
}

.landing-cta .landing-kicker {
  margin-bottom: 10px;
}

@media (max-width: 1040px) {
  .landing-feature-grid,
  .landing-steps,
  .landing-result-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .landing-hero {
    min-height: 580px;
    padding: 40px;
  }

  .landing-hero h1 {
    font-size: 58px;
  }
}

@media (max-width: 760px) {
  .landing-header,
  .landing-main,
  .landing-toast {
    width: min(100vw - 28px, 680px);
  }

  .landing-header {
    height: auto;
    min-height: 64px;
    flex-wrap: wrap;
    padding: 12px 0;
  }

  .landing-nav {
    order: 3;
    width: 100%;
    justify-content: center;
  }

  .landing-header__actions {
    margin-left: auto;
  }

  .landing-main {
    padding-top: 12px;
    gap: 44px;
  }

  .landing-hero {
    min-height: 560px;
    padding: 26px;
  }

  .landing-hero h1 {
    font-size: 48px;
  }

  .landing-hero p {
    font-size: 15px;
  }

  .landing-hero__summary,
  .landing-feature-grid,
  .landing-steps,
  .landing-result-list,
  .landing-cta {
    grid-template-columns: 1fr;
  }

  .landing-hero__summary div {
    min-height: 78px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
  }

  .landing-hero__summary div:last-child {
    border-bottom: 0;
  }

  .landing-section__head h2,
  .landing-cta h2 {
    font-size: 28px;
  }

  .landing-cta__actions,
  .landing-button {
    width: 100%;
  }
}

/* Unified controls: black primary actions, custom selects, modal confirms */
.primary-create,
.primary-create:hover,
.ui-button--primary,
.ui-button--primary:hover,
.auth-submit,
.guest-header .guest-cta {
  background: #151922;
  border-color: #151922;
  color: #fff;
}
.ui-button--primary:hover,
.primary-create:hover,
.auth-submit:hover {
  background: #0b0f16;
  border-color: #0b0f16;
}
.work-option__icon,
.work-option__icon--project {
  background: #151922;
  color: #fff;
}
.work-option b,
.work-option--project b,
.ui-link,
.group-card-footer em,
.modal-kicker {
  color: #151922;
}
.readiness-chip,
.project-analysis-card__head strong {
  background: #eef0f3;
  color: #151922;
}
.command-card--primary {
  background: linear-gradient(135deg, rgba(238, 240, 243, .95), rgba(255, 255, 255, .92)), #fff;
}
.command-card > span {
  color: #151922;
}
.analysis-import-row input {
  accent-color: #151922;
}
.custom-select {
  position: relative;
  width: 100%;
  min-width: 0;
}
.filter-bar .custom-select {
  min-width: 170px;
}
.analysis-project-form .custom-select {
  flex: 0 1 300px;
  width: 300px;
  min-width: 210px;
}
.custom-select__button {
  width: 100%;
  height: 38px;
  padding: 0 10px 0 12px;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  text-align: left;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
}
.custom-select__button span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.custom-select__button svg {
  width: 16px;
  height: 16px;
  color: var(--muted);
  transition: transform .14s ease;
}
.custom-select.is-open .custom-select__button,
.custom-select__button:focus {
  border-color: #151922;
  box-shadow: 0 0 0 3px rgba(21, 25, 34, .10);
  outline: none;
}
.custom-select.is-open .custom-select__button svg {
  transform: rotate(180deg);
}
.custom-select__menu {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 80;
  max-height: 280px;
  overflow: auto;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(15, 23, 42, .16);
  opacity: 0;
  transform: translateY(-4px) scale(.98);
  pointer-events: none;
  transition: opacity .12s ease, transform .12s ease;
}
.custom-select.is-open .custom-select__menu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.custom-select__option {
  width: 100%;
  min-height: 34px;
  padding: 0 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  text-align: left;
  cursor: pointer;
}
.custom-select__option span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.custom-select__option svg {
  width: 15px;
  height: 15px;
  opacity: 0;
  color: #151922;
}
.custom-select__option:hover,
.custom-select__option:focus {
  background: #f3f5f7;
  outline: none;
}
.custom-select__option.is-selected {
  background: #eef0f3;
  color: #151922;
  font-weight: 650;
}
.custom-select__option.is-selected svg {
  opacity: 1;
}
.confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  overflow-y: auto;
}
.confirm-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .52);
  backdrop-filter: blur(8px);
}
.confirm-modal__stage {
  min-height: 100%;
  padding: 18px;
  display: grid;
  place-items: center;
}
.confirm-modal__panel {
  position: relative;
  width: min(420px, 100%);
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(15, 23, 42, .24);
  overflow: hidden;
}
.confirm-modal__close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  display: grid;
  place-items: center;
  cursor: pointer;
}
.confirm-modal__close:hover {
  border-color: var(--line);
  background: #f8fafb;
  color: var(--ink);
}
.confirm-modal__close svg,
.confirm-modal__icon svg,
.confirm-modal__spinner {
  width: 18px;
  height: 18px;
}
.confirm-modal__body {
  padding: 24px 52px 22px 22px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
}
.confirm-modal__icon {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  display: grid;
  place-items: center;
}
.confirm-modal__icon.is-danger {
  background: #fff0ed;
  color: var(--red);
}
.confirm-modal__icon.is-primary {
  background: #eef0f3;
  color: #151922;
}
.confirm-modal__body h3 {
  margin: 0;
  color: var(--ink);
  font-size: 17px;
  line-height: 1.25;
  font-weight: 680;
}
.confirm-modal__body p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-line;
}
.confirm-modal__actions {
  padding: 14px 18px;
  border-top: 1px solid var(--line);
  background: #f8fafb;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}
.ui-button--danger-solid {
  background: var(--red);
  border-color: var(--red);
  color: #fff;
}
.ui-button--danger-solid:hover {
  background: #911b12;
  border-color: #911b12;
}
.confirm-modal__spinner {
  animation: spin .8s linear infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Neutralize legacy Tailwind indigo accents in older account/directory surfaces. */
.bg-indigo-500,
.hover\:bg-indigo-600:hover {
  background-color: #151922 !important;
}
.bg-indigo-50,
.bg-indigo-50\/30,
.bg-indigo-50\/40,
.bg-indigo-100,
.bg-indigo-100\/90 {
  background-color: #eef0f3 !important;
}
.text-indigo-500,
.text-indigo-600,
.text-indigo-700,
.hover\:text-indigo-500:hover {
  color: #151922 !important;
}
.border-indigo-300,
.border-indigo-400,
.border-indigo-500,
.focus\:border-indigo-500:focus {
  border-color: #151922 !important;
}
.ring-indigo-200,
.ring-indigo-300,
.ring-indigo-300\/60,
.ring-indigo-400,
.focus\:ring-indigo-300:focus,
.focus\:ring-indigo-500\/20:focus,
.focus\:ring-indigo-500\/50:focus {
  --tw-ring-color: rgba(21, 25, 34, .22) !important;
}

/* Keep the analysis intake page stable after the later product-polish rules. */
@media (max-width: 1120px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .app-sidebar {
    position: relative;
    height: auto;
  }

  .app-content {
    width: min(100% - 32px, 980px);
  }

  .topbar {
    grid-template-columns: 1fr auto;
  }

  .run-layout {
    grid-template-columns: 1fr;
  }

  .run-setup {
    position: static;
  }
}

@media (max-width: 680px) {
  .app-content {
    width: min(100% - 24px, 980px);
    padding-top: 20px;
  }

  .topbar {
    height: 58px;
    padding: 0 16px;
  }

  .run-form {
    padding: 14px;
  }

  .run-drop {
    margin: 14px;
    min-height: 260px;
  }
}

@media not all {
/* Bio landing v2: isolated from older landing rules */
.bio-landing,
.bio-landing * {
  letter-spacing: 0 !important;
}

.bio-landing {
  min-height: 100vh;
  background: #f5f7f8;
  color: #151922;
}

.bio-landing__header {
  position: sticky;
  top: 0;
  z-index: 40;
  width: min(1180px, calc(100vw - 40px));
  height: 64px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: rgba(245, 247, 248, .88);
  backdrop-filter: blur(14px);
}

.bio-landing__brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #151922;
  text-decoration: none;
}

.bio-landing__brand img {
  width: 104px;
  max-height: 30px;
  display: block;
  object-fit: contain;
}

.bio-landing__brand strong {
  font-size: 15px;
  line-height: 1;
  font-weight: 720;
  white-space: nowrap;
}

.bio-landing__nav {
  height: 36px;
  padding: 3px;
  border: 1px solid #d7dee6;
  border-radius: 8px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.bio-landing__nav a {
  min-height: 28px;
  padding: 0 12px;
  border-radius: 6px;
  color: #667085;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  font-size: 12px;
  font-weight: 650;
}

.bio-landing__nav a:hover {
  background: #f2f5f7;
  color: #151922;
}

.bio-landing__actions,
.bio-hero__buttons,
.bio-cta__actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.bio-button {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid #cbd5df;
  border-radius: 8px;
  background: #fff;
  color: #151922;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 680;
  white-space: nowrap;
  box-shadow: none;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.bio-button:hover {
  transform: translateY(-1px);
}

.bio-button--primary {
  border-color: #151922;
  background: #151922;
  color: #fff;
  box-shadow: 0 12px 24px rgba(21, 25, 34, .14);
}

.bio-button--primary:hover {
  border-color: #0b0f16;
  background: #0b0f16;
}

.bio-button--secondary,
.bio-button--light {
  background: rgba(255, 255, 255, .92);
}

.bio-landing__toast,
.bio-landing__main {
  width: min(1180px, calc(100vw - 40px));
  margin-left: auto;
  margin-right: auto;
}

.bio-landing__main {
  padding: 18px 0 72px;
  display: grid;
  gap: 64px;
}

.bio-eyebrow {
  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  padding: 0 9px;
  border: 1px solid #d7dee6;
  border-radius: 6px;
  background: rgba(255, 255, 255, .92);
  color: #536171;
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  line-height: 1;
  font-weight: 760;
  text-transform: uppercase;
  white-space: nowrap;
}

.bio-hero {
  position: relative;
  min-height: 620px;
  padding: 56px;
  background: #16202a;
  overflow: hidden;
  display: grid;
  align-items: end;
}

.bio-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(15, 22, 30, .92) 0%, rgba(15, 22, 30, .7) 46%, rgba(15, 22, 30, .16) 100%),
    linear-gradient(0deg, rgba(15, 22, 30, .34), rgba(15, 22, 30, .08));
  pointer-events: none;
}

.bio-hero__image {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 28%, rgba(255, 255, 255, .86) 0 22px, transparent 24px),
    radial-gradient(circle at 31% 48%, rgba(255, 255, 255, .78) 0 30px, transparent 32px),
    radial-gradient(circle at 56% 32%, rgba(255, 255, 255, .82) 0 24px, transparent 26px),
    radial-gradient(circle at 78% 54%, rgba(255, 255, 255, .76) 0 36px, transparent 38px),
    radial-gradient(circle at 68% 18%, rgba(255, 204, 77, .66) 0 18px, transparent 21px),
    radial-gradient(circle at 45% 74%, rgba(74, 195, 202, .54) 0 22px, transparent 25px),
    linear-gradient(135deg, #263442, #121922 72%);
  transform: scale(1.04);
}

.bio-cell {
  position: absolute;
  width: 0;
  height: 0;
}

.bio-hero__content {
  position: relative;
  z-index: 2;
  max-width: 660px;
  display: grid;
  gap: 18px;
}

.bio-hero__content .bio-eyebrow {
  border-color: rgba(255, 255, 255, .28);
  background: rgba(255, 255, 255, .1);
  color: #eef4f6;
}

.bio-hero h1 {
  margin: 0;
  color: #fff;
  font-size: 72px;
  line-height: .95;
  font-weight: 780;
}

.bio-hero p {
  margin: 0;
  max-width: 610px;
  color: #d7e0e6;
  font-size: 17px;
  line-height: 1.72;
  word-break: keep-all;
}

.bio-hero__rail {
  position: relative;
  z-index: 2;
  width: min(100%, 860px);
  margin-top: 42px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .1);
  backdrop-filter: blur(12px);
}

.bio-hero__rail article {
  min-height: 96px;
  padding: 16px 18px;
  border-right: 1px solid rgba(255, 255, 255, .18);
  display: grid;
  align-content: center;
  gap: 4px;
}

.bio-hero__rail article:last-child {
  border-right: 0;
}

.bio-hero__rail span {
  color: #8fa0ad;
  font-size: 11px;
  font-weight: 760;
}

.bio-hero__rail strong {
  color: #fff;
  font-size: 14px;
  font-weight: 760;
}

.bio-hero__rail p {
  margin: 0;
  color: #c7d1d8;
  font-size: 13px;
  line-height: 1.55;
}

.bio-section__heading {
  max-width: 900px;
  display: grid;
  gap: 10px;
}

.bio-section__heading h2,
.bio-cta h2 {
  margin: 0;
  color: #151922;
  font-size: 34px;
  line-height: 1.16;
  font-weight: 760;
  word-break: keep-all;
}

.bio-section__heading p {
  margin: 0;
  color: #596675;
  font-size: 15px;
  line-height: 1.7;
  word-break: keep-all;
}

.bio-feature-grid,
.bio-results__grid {
  margin-top: 22px;
  display: grid;
  gap: 12px;
}

.bio-feature-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bio-results__grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bio-feature-grid article,
.bio-process__list li,
.bio-results__grid article {
  min-width: 0;
  min-height: 170px;
  padding: 18px;
  border: 1px solid #dfe6ee;
  border-radius: 8px;
  background: #fff;
  display: grid;
  align-content: start;
  gap: 10px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .035);
}

.bio-feature-grid span,
.bio-process__list span {
  color: #7b8795;
  font-size: 12px;
  font-weight: 760;
}

.bio-feature-grid strong,
.bio-process__list strong,
.bio-results__grid strong {
  color: #151922;
  font-size: 17px;
  line-height: 1.35;
  font-weight: 760;
}

.bio-feature-grid p,
.bio-process__list p,
.bio-results__grid p {
  margin: 0;
  color: #5c6877;
  font-size: 14px;
  line-height: 1.64;
  word-break: keep-all;
}

.bio-process__list {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.bio-process__list li {
  min-height: 150px;
}

.bio-results__grid article {
  min-height: 140px;
}

.bio-cta {
  min-height: 180px;
  padding: 26px 0;
  border-top: 1px solid #dfe6ee;
  border-bottom: 1px solid #dfe6ee;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
}

.bio-cta .bio-eyebrow {
  margin-bottom: 10px;
}

@media (max-width: 1040px) {
  .bio-feature-grid,
  .bio-process__list,
  .bio-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .bio-hero {
    min-height: 580px;
    padding: 40px;
  }

  .bio-hero h1 {
    font-size: 58px;
  }
}

@media (max-width: 760px) {
  .bio-landing__header,
  .bio-landing__main,
  .bio-landing__toast {
    width: min(100vw - 28px, 680px);
  }

  .bio-landing__header {
    height: auto;
    min-height: 64px;
    flex-wrap: wrap;
    padding: 12px 0;
  }

  .bio-landing__nav {
    order: 3;
    width: 100%;
    justify-content: center;
  }

  .bio-landing__actions {
    margin-left: auto;
  }

  .bio-landing__main {
    padding-top: 12px;
    gap: 44px;
  }

  .bio-hero {
    min-height: 560px;
    padding: 26px;
  }

  .bio-hero h1 {
    font-size: 48px;
  }

  .bio-hero p {
    font-size: 15px;
  }

  .bio-hero__rail,
  .bio-feature-grid,
  .bio-process__list,
  .bio-results__grid,
  .bio-cta {
    grid-template-columns: 1fr;
  }

  .bio-hero__rail article {
    min-height: 78px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .18);
  }

  .bio-hero__rail article:last-child {
    border-bottom: 0;
  }

  .bio-section__heading h2,
  .bio-cta h2 {
    font-size: 28px;
  }

  .bio-cta__actions,
  .bio-button {
    width: 100%;
  }
}
}
