/* InstantGPA v39 — task-first, accessible academic workspace.
   This file is intentionally loaded last so the experience has one
   predictable layout contract without rewriting legacy tool styles. */

:root {
  --ux-ink: #15322e;
  --ux-copy: #465d58;
  --ux-muted: #697b77;
  --ux-primary: #0f766e;
  --ux-primary-strong: #095e57;
  --ux-primary-soft: #eaf5f1;
  --ux-ivory: #faf7f0;
  --ux-surface: #fffefb;
  --ux-border: #ddd8ce;
  --ux-focus: rgba(15, 118, 110, .18);
}

html { background: var(--ux-ivory); }
body {
  background:
    radial-gradient(circle at 9% 0%, rgba(15, 118, 110, .08), transparent 34rem),
    radial-gradient(circle at 96% 8%, rgba(201, 165, 92, .07), transparent 28rem),
    var(--ux-ivory);
  color: var(--ux-ink);
}

#app {
  width: 100%;
  max-width: none;
  min-height: 100vh;
  background: transparent;
  box-shadow: none;
}

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  width: 100%;
  max-width: none;
  min-height: 76px;
  padding: 12px clamp(20px, 5vw, 72px);
  border-bottom: 1px solid rgba(221, 216, 206, .86);
  background: rgba(255, 254, 251, .94);
  box-shadow: 0 6px 20px rgba(35, 71, 63, .045);
  backdrop-filter: blur(16px);
}

.brand { min-height: 48px; }
.brand-mark {
  width: 46px;
  height: 46px;
  border-radius: 13px;
}
.brand-text strong { font-size: 22px; }
.brand-text small {
  margin-top: 1px;
  color: #71807d;
  font-size: 9px;
  letter-spacing: .07em;
}

.header-nav { margin-inline: auto 0; }
.tools-menu > summary {
  min-height: 44px;
  padding: 0 14px;
  font-size: 14px;
}
.tools-menu > summary > span { display: none; }
.tools-menu > summary > b { font: inherit; }
.header-actions { gap: 10px; }
.icon-link,
.lang-switcher {
  min-height: 44px;
  border-radius: 12px;
}
.icon-link {
  min-width: 44px;
  padding-inline: 14px;
}
.lang-switcher select { min-height: 42px; }

main#mainContent {
  width: 100%;
  max-width: 1280px;
  padding: 0 clamp(20px, 5vw, 72px) 72px;
}

.home-stage.home-stage--portal {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(400px, .88fr);
  align-items: center;
  gap: clamp(42px, 6vw, 82px);
  min-height: min(760px, calc(100vh - 76px));
  padding: clamp(54px, 7vw, 94px) 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.home-stage--portal .setup-hero {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  width: 100%;
  max-width: 720px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  text-align: start;
}

.home-stage--portal .setup-hero .hero-eyebrow {
  display: inline-flex;
  min-height: 34px;
  margin: 0 0 22px;
  padding: 7px 13px;
  border: 1px solid #cce3dc;
  border-radius: 999px;
  background: rgba(234, 245, 241, .78);
  color: var(--ux-primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
}

.home-stage--portal .setup-hero h2 {
  max-width: 13ch;
  margin: 0;
  color: var(--ux-ink);
  font-size: clamp(46px, 5.25vw, 68px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -.052em;
}

.home-stage--portal .setup-hero .hero-lead {
  max-width: 59ch;
  margin: 24px 0 0;
  color: var(--ux-copy);
  font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.62;
}

.hero-actions {
  justify-content: flex-start;
  gap: 12px;
  margin-top: 30px;
}

.hero-actions .btn {
  min-height: 56px;
  padding-inline: 24px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 780;
}

.hero-actions .btn--primary {
  background: var(--ux-primary);
  box-shadow: 0 14px 28px -16px rgba(9, 94, 87, .7);
}
.hero-actions .btn--primary:hover { background: var(--ux-primary-strong); }
.hero-actions .btn--ghost {
  border: 1.5px solid var(--ux-primary);
  background: rgba(255, 254, 251, .82);
  color: var(--ux-primary-strong);
  box-shadow: none;
}
.hero-actions .btn--ghost:hover { background: var(--ux-primary-soft); }

.hero-reassurance {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 0;
  padding: 10px 13px;
  border-radius: 11px;
  background: rgba(230, 241, 236, .78);
  color: #365b53;
  font-size: 13px;
  font-weight: 650;
}
.hero-reassurance > span { color: var(--ux-primary); font-weight: 900; }
.hero-reassurance > i { color: #94aaa4; font-style: normal; }

.home-setup-panel {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  max-width: 500px;
  margin: 0;
  padding: 28px;
  border: 1px solid var(--ux-border);
  border-radius: 20px;
  background: rgba(255, 254, 251, .96);
  box-shadow: 0 24px 62px -36px rgba(30, 65, 56, .34);
}

.home-stage--portal .setup-host,
.home-stage--portal .setup-card {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.home-stage--portal .setup-card::before { display: none; }

.context-title {
  align-items: flex-start;
  margin-bottom: 8px;
}
.context-title > span:first-child {
  width: 34px;
  height: 34px;
  margin-top: 1px;
  border-radius: 10px;
  background: var(--ux-primary-soft);
  color: var(--ux-primary);
}
.context-title strong {
  color: var(--ux-ink);
  font-size: 22px;
  line-height: 1.2;
}
.context-title div > span {
  margin-top: 4px;
  color: var(--ux-muted);
  font-size: 12px;
}
.home-stage .setup-intro {
  margin: 0 0 22px;
  padding-inline-start: 44px;
  color: var(--ux-copy);
  font-size: 13px;
}

.home-stage .context-grid {
  grid-template-columns: 1fr;
  gap: 17px;
}
.home-stage .field > span {
  margin-bottom: 7px;
  color: #29443e;
  font-size: 12px;
  letter-spacing: .045em;
}
.home-stage .field select,
.home-stage .field input {
  width: 100%;
  min-height: 54px;
  border: 1px solid var(--ux-border);
  border-radius: 11px;
  background: #fff;
  color: var(--ux-ink);
  font-size: 15px;
}
.home-stage .field select:focus,
.home-stage .field input:focus {
  border-color: var(--ux-primary);
  box-shadow: 0 0 0 4px var(--ux-focus);
  outline: 0;
}
.home-stage .field select:disabled {
  background: #f3f1ec;
  color: #8b9591;
}

.advanced-setup {
  margin-top: 13px;
  border: 1px solid #e5e1d8;
  border-radius: 12px;
  background: rgba(250, 248, 243, .75);
}
.advanced-setup > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 48px;
  padding: 10px 13px;
  color: #31554d;
  font-size: 12px;
  font-weight: 780;
  cursor: pointer;
  list-style: none;
}
.advanced-setup > summary::-webkit-details-marker { display: none; }
.advanced-setup > summary::after {
  content: "+";
  color: var(--ux-primary);
  font-size: 18px;
  font-weight: 700;
}
.advanced-setup[open] > summary::after { content: "−"; }
.advanced-setup > summary > span { display: grid; gap: 2px; }
.advanced-setup > summary small {
  color: var(--ux-muted);
  font-size: 10px;
  font-weight: 550;
}
.advanced-setup > .context-grid,
.advanced-setup > .grading-editor {
  margin: 0;
  padding: 14px;
  border: 0;
  border-top: 1px solid #e5e1d8;
  border-radius: 0 0 12px 12px;
  background: #fff;
}

.setup-empty-state {
  margin-top: 13px;
  padding: 12px 14px;
  border: 0;
  border-radius: 11px;
  background: #f2f7f4;
}
.setup-empty-state strong { color: #31554d; font-size: 12px; }
.setup-empty-state span { margin-top: 3px; font-size: 11px; }

.setup-status { min-height: 0; margin: 10px 0 0; }
.setup-confirm-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  margin-top: 15px;
  padding: 0;
  border: 0;
  background: transparent;
}
.setup-confirm-row > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.setup-confirm-row > div strong { color: #31554d; font-size: 11px; }
.setup-confirm-row > div span {
  max-width: 30ch;
  color: var(--ux-muted);
  font-size: 10px;
  text-align: end;
}
.setup-confirm-row .btn {
  width: 100%;
  min-height: 54px;
  border-radius: 11px;
}

.consent-banner {
  position: fixed;
  z-index: 70;
  inset: auto 18px 18px auto;
  width: min(430px, calc(100vw - 36px));
  margin: 0;
  padding: 15px;
  border: 1px solid #cfe0da;
  border-radius: 15px;
  background: rgba(244, 250, 247, .98);
  box-shadow: 0 20px 54px -28px rgba(19, 64, 53, .42);
}
.consent-banner p {
  margin: 0;
  color: #38554f;
  font-size: 12px;
  line-height: 1.5;
}
.consent-banner > div { gap: 8px; margin-top: 11px; }
.consent-banner .btn { min-height: 40px; padding-inline: 13px; font-size: 12px; }

.home-section { margin-top: clamp(60px, 8vw, 96px); }
.home-section__head {
  align-items: end;
  gap: 28px;
}
.home-section__head h2 { color: var(--ux-ink); }
.home-section__head .home-tool-search {
  width: min(410px, 100%);
  min-height: 50px;
  margin: 0;
  border: 1px solid var(--ux-border);
  border-radius: 12px;
  box-shadow: none;
}
.home-section__head .home-tool-search input { height: 48px; }
.home-tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-tool-card {
  min-height: 106px;
  border-color: var(--ux-border);
  border-radius: 15px;
  box-shadow: 0 14px 34px -30px rgba(18, 63, 56, .36);
}
.home-tool-card:hover {
  border-color: #93c4b9;
  box-shadow: 0 18px 40px -29px rgba(15, 118, 110, .34);
}
.home-tool-card__icon {
  background: var(--ux-primary-soft);
  color: var(--ux-primary);
}
.home-tool-card strong { color: var(--ux-ink); font-size: 13px; }
.home-tool-card small { color: var(--ux-muted); font-size: 10px; }
.home-tool-card[hidden] { display: none; }
.home-search-empty {
  margin: 18px 0 0;
  padding: 14px;
  border-radius: 12px;
  background: #f4f1ea;
  color: var(--ux-copy);
  text-align: center;
}

.workflow-section {
  background:
    radial-gradient(circle at 10% 10%, rgba(52, 174, 145, .12), transparent 34%),
    #12332f;
}
.workflow-section .section-kicker { color: #7bd5bd; }
.home-workflow > a { border-color: rgba(202, 231, 223, .16); }
.home-workflow > a > span { color: #78d8bf; }

.home-trust {
  border-color: #d9e5e0;
  background: #f1f7f4;
}
.home-trust-grid article { border-color: #dfe7e2; }

.tools-menu__panel {
  inset-inline-start: auto;
  inset-inline-end: 0;
  max-height: calc(100dvh - 92px);
  overflow-y: auto;
  overscroll-behavior: contain;
}

@media (max-width: 1000px) {
  .home-stage.home-stage--portal {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
    gap: 34px;
  }
  .home-stage--portal .setup-hero h2 { font-size: clamp(42px, 6vw, 58px); }
  .home-tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .site-header { min-height: 68px; padding: 9px 14px; }
  .brand-mark { width: 42px; height: 42px; }
  .header-nav { margin-inline-start: auto; }
  .tools-menu > summary {
    justify-content: center;
    width: 44px;
    min-width: 44px;
    padding: 0;
    font-size: 0;
  }
  .tools-menu > summary > span { display: inline; font-size: 18px; }
  .tools-menu > summary > b { font-size: 0; }
  .tools-menu__panel {
    position: fixed;
    inset: 68px 12px auto;
    width: auto;
    max-height: calc(100dvh - 80px);
  }
  .header-actions { width: auto; flex-wrap: nowrap; }
  .icon-link {
    display: inline-flex !important;
    width: 44px;
    padding: 0;
    font-size: 0;
  }
  .icon-link::before {
    content: "◉";
    font-size: 17px;
  }
  .lang-switcher { min-width: 112px; }

  main#mainContent { padding: 0 18px 58px; }
  .home-stage.home-stage--portal {
    grid-template-columns: 1fr;
    gap: 34px;
    min-height: 0;
    padding: 48px 0 60px;
  }
  .home-stage--portal .setup-hero {
    grid-column: 1;
    grid-row: 1;
    max-width: 680px;
  }
  .home-stage--portal .setup-hero h2 {
    max-width: 12ch;
    font-size: clamp(42px, 9vw, 60px);
  }
  .home-stage--portal .setup-hero .hero-lead { font-size: 17px; }
  .home-setup-panel {
    grid-column: 1;
    grid-row: 2;
    max-width: 680px;
    padding: 24px;
  }
  .home-section__head { align-items: stretch; flex-direction: column; }
  .home-section__head .home-tool-search { width: 100%; }
  .home-workflow { grid-template-columns: 1fr; }
  .home-workflow > i { display: none; }
}

@media (max-width: 520px) {
  .brand-text small { display: none; }
  .brand-text strong { font-size: 18px; }
  .lang-switcher { min-width: 94px; }
  .lang-switcher select { padding-inline: 8px 26px; font-size: 11px; }
  .tools-menu__grid { grid-template-columns: 1fr; }

  main#mainContent { padding-inline: 13px; }
  .home-stage.home-stage--portal { padding: 34px 0 48px; }
  .home-stage--portal .setup-hero h2 {
    max-width: none;
    font-size: clamp(38px, 12vw, 50px);
  }
  .home-stage--portal .setup-hero .hero-lead {
    margin-top: 18px;
    font-size: 15px;
  }
  .hero-actions { align-items: stretch; flex-direction: column; margin-top: 24px; }
  .hero-actions .btn { justify-content: center; width: 100%; }
  .hero-reassurance { width: 100%; font-size: 11px; }
  .home-setup-panel { padding: 18px 15px; border-radius: 17px; }
  .context-title strong { font-size: 20px; }
  .home-stage .setup-intro { padding-inline-start: 0; }
  .setup-confirm-row > div { align-items: flex-start; flex-direction: column; }
  .setup-confirm-row > div span { text-align: start; }
  .home-tools-grid { grid-template-columns: 1fr; }
  .consent-banner { inset: auto 10px 10px; width: auto; }
}

@media (max-width: 430px) {
  .brand-text { display: none; }
  .lang-switcher { min-width: 86px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-tool-card:hover,
  .hero-actions .btn:hover { transform: none; }
}

/* InstantGPA Pro — subscriber decision workspace */
.pro-header-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 0 12px;
  border: 1px solid #dfcf9f;
  border-radius: 11px;
  background: #fffaf0;
  color: #624a15;
  font-size: 12px;
  font-weight: 760;
  text-decoration: none;
}
.pro-header-link span {
  padding: 3px 6px;
  border-radius: 999px;
  background: #173d37;
  color: #fbe39f;
  font-size: 9px;
  letter-spacing: .12em;
}
.pro-home-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: clamp(28px, 5vw, 52px);
  border: 1px solid #d5c690;
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0%, rgba(246, 218, 136, .18), transparent 35%),
    #153b35;
  color: #eef9f5;
  box-shadow: 0 28px 70px -48px rgba(7, 50, 44, .75);
}
.pro-home-banner h2 { margin: 5px 0 8px; color: #fff; font-size: clamp(30px, 4vw, 46px); }
.pro-home-banner p { max-width: 66ch; margin: 0; color: #c8ddd7; line-height: 1.65; }
.pro-home-banner .section-kicker { color: #f3d47f; }
.pro-home-banner .btn--primary { background: #f2d47e; color: #173d37; }
.pro-home-banner .btn--ghost { border-color: rgba(255,255,255,.4); color: #fff; }

.pro-paywall,
.pro-header,
.pro-tabs,
.pro-panel,
.pro-stack {
  width: min(1160px, 100%);
  margin-inline: auto;
}
.pro-paywall {
  display: grid;
  grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: clamp(34px, 6vw, 74px);
  margin-top: 48px;
  padding: clamp(28px, 5vw, 58px);
  border: 1px solid #d9cfaa;
  border-radius: 24px;
  background: #fffefb;
  box-shadow: 0 28px 70px -46px rgba(19, 61, 54, .45);
}
.pro-paywall__visual {
  display: grid;
  align-content: end;
  min-height: 330px;
  padding: 28px;
  border-radius: 20px;
  background:
    radial-gradient(circle at 80% 18%, rgba(244, 215, 127, .35), transparent 27%),
    linear-gradient(145deg, #102f2b, #1d544b);
  color: #fff;
}
.pro-paywall__visual span {
  align-self: start;
  justify-self: start;
  padding: 5px 9px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  color: #f5d77f;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .16em;
}
.pro-paywall__visual strong { margin-top: auto; font-size: clamp(32px, 4vw, 48px); letter-spacing: -.04em; }
.pro-paywall__visual i { margin-top: 10px; color: #bcd7d0; font-size: 12px; font-style: normal; }
.pro-paywall h2 { margin: 7px 0 12px; color: var(--ux-ink); font-size: clamp(30px, 4vw, 46px); line-height: 1.08; letter-spacing: -.035em; }
.pro-paywall p { color: var(--ux-copy); line-height: 1.65; }
.pro-check-list { display: grid; gap: 9px; margin: 22px 0; padding: 0; list-style: none; }
.pro-check-list li { position: relative; padding-inline-start: 24px; color: #36544e; }
.pro-check-list li::before { position: absolute; inset-inline-start: 0; content: "✓"; color: var(--ux-primary); font-weight: 900; }

.pro-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 30px;
  margin-top: 36px;
  padding: clamp(26px, 4vw, 42px);
  border: 1px solid #d5c690;
  border-radius: 22px 22px 0 0;
  background:
    radial-gradient(circle at 95% 0%, rgba(242, 209, 112, .2), transparent 30%),
    #143b35;
  color: #fff;
}
.pro-header h2 { margin: 6px 0 10px; color: #fff; font-size: clamp(30px, 4vw, 48px); letter-spacing: -.04em; }
.pro-header p { max-width: 70ch; margin: 0; color: #c7ddd7; line-height: 1.6; }
.pro-header .section-kicker { color: #f3d47f; }
.pro-plan-chip {
  display: grid;
  flex: 0 0 auto;
  gap: 3px;
  min-width: 150px;
  padding: 12px 15px;
  border: 1px solid rgba(245, 218, 141, .35);
  border-radius: 13px;
  background: rgba(255,255,255,.06);
  text-align: end;
}
.pro-plan-chip span { color: #f6df9d; font-size: 11px; }
.pro-plan-chip strong { color: #fff; font-size: 13px; text-transform: capitalize; }

.pro-tabs {
  display: grid;
  grid-template-columns: repeat(10, minmax(88px, 1fr));
  overflow-x: auto;
  border-inline: 1px solid #d5c690;
  border-bottom: 1px solid #d5c690;
  background: #fffefb;
}
.pro-tabs button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 60px;
  padding: 10px;
  border: 0;
  border-inline-end: 1px solid #e8e1ca;
  background: transparent;
  color: #58706a;
  cursor: pointer;
}
.pro-tabs button:last-child { border-inline-end: 0; }
.pro-tabs button span { color: #b08e35; font-size: 17px; }
.pro-tabs button strong { font-size: 12px; }
.pro-tabs button[aria-selected="true"] {
  box-shadow: inset 0 -3px #0f766e;
  background: #f0f7f4;
  color: #0b5f58;
}
.pro-tabs button:focus-visible { position: relative; z-index: 1; outline: 3px solid var(--ux-focus); outline-offset: -3px; }
.pro-panel { padding: 30px 0 0; }
.pro-panel[hidden] { display: none; }
.pro-grid { display: grid; gap: 22px; }
.pro-grid--split { grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr); }
.pro-stack { display: grid; gap: 18px; margin-top: 22px; }
.pro-grid .tool-card,
.pro-stack .tool-card { margin: 0; }
.pro-value-card {
  align-content: start;
  background: linear-gradient(145deg, #f0f7f4, #fffefb);
}
.pro-value-card h3 { margin: 6px 0 10px; color: var(--ux-ink); font-size: 22px; }
.pro-value-card p { color: var(--ux-copy); line-height: 1.65; }
.pro-mini-flow { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 24px; }
.pro-mini-flow span,
.pro-mini-flow strong { padding: 7px 9px; border-radius: 9px; background: #e7f2ee; color: #22584f; font-size: 10px; }
.pro-mini-flow strong { background: #173d37; color: #fff; }
.pro-mini-flow i { color: #a88b42; font-style: normal; }
.pro-empty {
  display: grid;
  place-items: center;
  gap: 5px;
  min-height: 150px;
  padding: 28px;
  border: 1px dashed #cfc8b7;
  border-radius: 17px;
  background: rgba(255,254,251,.65);
  color: #526b65;
  text-align: center;
}
.pro-empty span { color: #71817d; font-size: 12px; }
.pro-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.pro-card-head h3 { margin: 4px 0; color: var(--ux-ink); font-size: 24px; }
.pro-card-head p { margin: 0; color: var(--ux-muted); font-size: 12px; }
.pro-target-ring {
  display: grid;
  place-items: center;
  flex: 0 0 88px;
  width: 88px;
  height: 88px;
  border: 8px solid #d5ebe4;
  border-top-color: #0f766e;
  border-radius: 50%;
}
.pro-target-ring strong { color: #0f6159; font-size: 25px; line-height: 1; }
.pro-target-ring span { color: #68807a; font-size: 9px; text-transform: uppercase; }
.pro-warning-list { color: #75551a; font-size: 12px; }
.pro-syllabus-card input {
  width: 100%;
  min-width: 80px;
  min-height: 40px;
  padding: 8px 9px;
  border: 1px solid #d7d4c9;
  border-radius: 8px;
  background: #fff;
}

.pro-confidence {
  display: grid;
  min-width: 100px;
  padding: 10px 12px;
  border: 1px solid #d5ded9;
  border-radius: 11px;
  background: #f1f7f4;
  text-align: center;
}
.pro-confidence span { color: #6b7d78; font-size: 9px; text-transform: uppercase; }
.pro-confidence strong { color: #0e665e; font-size: 13px; text-transform: capitalize; }
.pro-scenario-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.pro-scenario {
  padding: 20px;
  border: 1px solid #ded9cb;
  border-radius: 15px;
  background: #fff;
}
.pro-scenario--balanced { border-color: #78b9aa; box-shadow: 0 14px 38px -30px rgba(15,118,110,.7); }
.pro-scenario > span { display: block; color: #9b7623; font-size: 10px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.pro-scenario > strong { display: block; margin: 7px 0 17px; color: var(--ux-ink); font-size: 20px; }
.pro-scenario dl { display: grid; gap: 8px; margin: 0; }
.pro-scenario dl div { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 7px; border-bottom: 1px solid #eee9df; }
.pro-scenario dt { color: #6b7b77; font-size: 11px; }
.pro-scenario dd { margin: 0; color: #29463f; font-size: 11px; font-weight: 750; }
.pro-scenario details { margin-top: 14px; color: #5d706b; font-size: 10px; }

.pro-transfer-inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.pro-transfer-inputs textarea { min-height: 220px; resize: vertical; font: 12px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }
.pro-transfer-boundary { border-color: #e5d5a3; background: #fffaf0; }
.pro-transfer-boundary strong { color: #745719; }
.pro-transfer-boundary p { color: #685f4b; line-height: 1.65; }
.pro-inline-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.pro-inline-metrics span { padding: 15px; border-radius: 12px; background: #f1f6f3; color: #5c706b; font-size: 11px; text-align: center; }
.pro-inline-metrics strong { display: block; color: #0f675f; font-size: 24px; }
.pro-decision { display: inline-flex; padding: 4px 7px; border-radius: 999px; font-size: 9px; font-weight: 800; text-transform: capitalize; }
.pro-decision--likely_match { background: #dcf5ea; color: #136048; }
.pro-decision--review { background: #fff2ca; color: #785612; }
.pro-decision--unmatched { background: #f4e9e7; color: #823f35; }

.pro-semester-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 27px 30px;
  border: 1px solid #b9d8ce;
  border-radius: 18px;
  background: linear-gradient(135deg, #e7f5f0, #fffdf7);
}
.pro-semester-hero h3 { margin: 7px 0; color: #123f38; font-size: clamp(28px, 4vw, 42px); }
.pro-semester-hero p { max-width: 65ch; margin: 0; color: #47645d; line-height: 1.6; }
.pro-semester-actions { display: flex; flex-wrap: wrap; gap: 9px; justify-content: flex-end; }
.pro-dashboard-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0 22px;
}
.pro-dashboard-metrics article {
  display: grid;
  gap: 4px;
  padding: 18px;
  border: 1px solid #d5dfda;
  border-radius: 14px;
  background: #fff;
}
.pro-dashboard-metrics span { color: #5f7670; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pro-dashboard-metrics strong { color: #0d675e; font-size: 30px; }
.pro-dashboard-metrics small { color: #75847f; font-size: 10px; line-height: 1.45; }
.pro-deadline-list,
.pro-course-pulse { display: grid; gap: 9px; margin-top: 18px; }
.pro-deadline-list article {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  gap: 13px;
  padding: 11px;
  border: 1px solid #e1e6e2;
  border-radius: 11px;
  background: #fbfdfc;
}
.pro-deadline-list time { color: #9a6c12; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.pro-deadline-list div { display: grid; gap: 2px; }
.pro-deadline-list strong { color: #28453f; font-size: 13px; }
.pro-deadline-list span { color: #6e7f7a; font-size: 10px; }
.pro-course-pulse button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #dbe3df;
  border-inline-start: 4px solid #49a58e;
  border-radius: 10px;
  background: #fff;
  color: #29463f;
  text-align: start;
  cursor: pointer;
}
.pro-course-pulse button.is-high { border-inline-start-color: #c68b24; }
.pro-course-pulse button.is-critical { border-inline-start-color: #bc5d4f; }
.pro-course-pulse button.is-watch { border-inline-start-color: #d2b15c; }
.pro-course-pulse button strong { font-size: 11px; }

.pro-syllabus-chat { margin-top: 22px; }
.pro-chat-controls {
  display: grid;
  grid-template-columns: minmax(180px, .45fr) minmax(280px, 1fr) auto;
  align-items: end;
  gap: 12px;
  margin: 22px 0;
}
.pro-chat-history { display: grid; gap: 12px; }
.pro-chat-history > article { overflow: hidden; border: 1px solid #dbe2de; border-radius: 14px; }
.pro-chat-question,
.pro-chat-answer { display: grid; gap: 5px; padding: 14px 16px; }
.pro-chat-question { background: #f0f7f4; }
.pro-chat-question span,
.pro-chat-answer > span { color: #7a887f; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.pro-chat-question strong { color: #214b43; font-size: 13px; }
.pro-chat-answer p { margin: 0; color: #354f49; line-height: 1.6; }
.pro-chat-answer ol { display: grid; gap: 6px; margin: 8px 0 0; padding-inline-start: 20px; color: #65756f; font-size: 11px; }

.pro-probability-change {
  display: grid;
  min-width: 150px;
  padding: 13px;
  border: 1px solid #d7ddd9;
  border-radius: 12px;
  text-align: center;
}
.pro-probability-change span { color: #6a7974; font-size: 9px; text-transform: uppercase; }
.pro-probability-change strong { color: #9b3d31; font-size: 21px; }
.pro-probability-change.is-positive strong { color: #087158; }
.pro-undo-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 22px 0; }
.pro-undo-comparison article { padding: 20px; border: 1px solid #e2ddd0; border-radius: 15px; background: #fffdf8; }
.pro-undo-comparison article.is-after { border-color: #79b7a8; background: #f0f8f4; }
.pro-undo-comparison article > span { color: #776a4d; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.pro-undo-comparison article > strong { display: block; margin: 6px 0 16px; color: #0e675e; font-size: 38px; }
.pro-undo-comparison dl { display: grid; gap: 7px; margin: 0; }
.pro-undo-comparison dl div { display: flex; justify-content: space-between; gap: 12px; padding-top: 7px; border-top: 1px solid #e4e4dc; }
.pro-undo-comparison dt { color: #687871; font-size: 11px; }
.pro-undo-comparison dd { margin: 0; color: #2e4943; font-size: 11px; font-weight: 800; }
.pro-impact-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 18px 0; }
.pro-impact-grid span { padding: 13px; border-radius: 11px; background: #f3f6f4; color: #667670; font-size: 10px; text-align: center; }
.pro-impact-grid strong { display: block; color: #214b43; font-size: 15px; text-transform: capitalize; }
.pro-evidence-box { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 18px 0; padding: 13px 15px; border: 1px solid #d9cc9e; border-radius: 11px; background: #fff9e9; }
.pro-evidence-box strong { color: #5b491d; }
.pro-evidence-box a { color: #0d6a61; font-weight: 800; }
.pro-evidence-box span,
.pro-evidence-box small { color: #746b54; font-size: 10px; }

.pro-policy-toolbar { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; margin: 22px 0 8px; }
.pro-policy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.pro-policy-grid > article { display: grid; align-content: start; gap: 12px; padding: 18px; border: 1px solid #d9dfdb; border-radius: 14px; background: #fff; }
.pro-policy-grid header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.pro-policy-grid header div { display: grid; gap: 4px; }
.pro-policy-grid header span { color: #8a732f; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.pro-policy-grid h4 { margin: 0; color: #244840; font-size: 16px; }
.pro-policy-grid header > strong { padding: 5px 7px; border-radius: 7px; background: #edf5f2; color: #17645a; font-size: 9px; }
.pro-policy-grid p { margin: 0; color: #61716c; font-size: 11px; line-height: 1.55; }
.pro-policy-grid ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pro-policy-grid li { color: #526760; font-size: 10px; line-height: 1.5; }
.pro-policy-grid li span { display: inline-flex; margin-inline-end: 6px; padding: 2px 5px; border-radius: 5px; background: #fff4d7; color: #785b15; font-size: 8px; font-weight: 850; text-transform: uppercase; }
.pro-policy-grid footer { display: grid; gap: 5px; padding-top: 10px; border-top: 1px solid #eceeea; }
.pro-policy-grid footer a { color: #0a6c63; font-size: 10px; font-weight: 800; }
.pro-policy-grid footer small { color: #83908b; font-size: 9px; }
.pro-source-notes { margin-top: 18px; color: #60736c; font-size: 11px; }

.pro-translation-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }
.pro-translation-compare > div { min-width: 0; overflow: hidden; border: 1px solid #d9dfdb; border-radius: 12px; background: #fbfdfc; }
.pro-translation-compare span { display: block; padding: 9px 12px; border-bottom: 1px solid #dfe5e1; color: #526a63; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.pro-translation-compare pre,
.pro-batch-result pre,
.pro-api-example pre { max-height: 420px; margin: 0; overflow: auto; padding: 14px; white-space: pre-wrap; overflow-wrap: anywhere; color: #29443d; font: 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; }
.pro-glossary { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.pro-glossary span { display: grid; gap: 2px; padding: 7px 9px; border-radius: 8px; background: #eef5f2; color: #4f6861; font-size: 10px; }
.pro-credit-result { margin-top: 16px; padding: 16px; border: 1px solid #bed9d0; border-radius: 13px; background: #eef8f4; }
.pro-credit-result > strong { color: #0b675d; font-size: 28px; }
.pro-credit-result > span { margin-inline-start: 7px; color: #4f6c64; font-size: 11px; font-weight: 800; }
.pro-credit-result p { color: #50675f; font-size: 11px; line-height: 1.55; }
.pro-credit-result div { display: grid; gap: 4px; }
.pro-credit-result a { color: #087168; font-size: 10px; font-weight: 800; }

.pro-api-key-list { display: grid; gap: 8px; margin: 15px 0; }
.pro-api-key-list > article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; border: 1px solid #dce1de; border-radius: 10px; }
.pro-api-key-list article > div { display: grid; gap: 3px; min-width: 0; }
.pro-api-key-list strong { color: #264a43; font-size: 12px; }
.pro-api-key-list span,
.pro-api-key-list small { color: #71807c; font-size: 9px; overflow-wrap: anywhere; }
.pro-api-key-list .is-revoked { opacity: .65; }
.pro-api-example { margin-top: 18px; border-top: 1px solid #e2e5e2; padding-top: 13px; color: #5c6e68; font-size: 11px; }
.pro-api-example pre { margin-top: 10px; border-radius: 10px; background: #102f2b; color: #daf2ea; }
.pro-batch-result { margin-top: 16px; }
.pro-batch-result details { border: 1px solid #dce1de; border-radius: 11px; overflow: hidden; }
.pro-batch-result summary { padding: 11px 13px; cursor: pointer; font-weight: 800; }

.pro-integrity-result {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  align-items: center;
  gap: 30px;
}
.pro-integrity-score {
  display: grid;
  place-items: center;
  width: 160px;
  height: 160px;
  border: 12px solid #d9eee7;
  border-top-color: #0f766e;
  border-radius: 50%;
}
.pro-integrity-score strong { color: #0c5f58; font-size: 48px; line-height: 1; }
.pro-integrity-score span { color: #607570; font-size: 10px; }
.pro-signal-list { display: grid; gap: 8px; padding: 0; list-style: none; }
.pro-signal-list li { display: grid; gap: 3px; padding: 12px 13px; border-inline-start: 4px solid #8dbbae; border-radius: 8px; background: #f4f8f6; }
.pro-signal-list li.is-high { border-color: #be5f50; background: #fff1ef; }
.pro-signal-list li.is-medium { border-color: #c6922e; background: #fff8e8; }
.pro-signal-list strong { color: #29463f; font-size: 12px; }
.pro-signal-list span { color: #687873; font-size: 11px; }
.pro-advisor-link { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.pro-advisor-link div { display: grid; gap: 4px; }
.pro-advisor-link span { color: #6c7c78; font-size: 11px; }
.account-pro-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid #d6c68f;
  border-radius: 14px;
  background: #fffaf0;
}
.account-pro-summary h3 { margin: 4px 0; }
.account-pro-summary p { max-width: 65ch; margin: 0; color: #655f50; font-size: 12px; }

.pro-editorial-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px;
  border-radius: 18px;
  background: #143b35;
  color: #fff;
}
.pro-editorial-hero h3 { margin: 8px 0; color: #fff; font-size: 28px; }
.pro-editorial-hero p { margin: 0; color: #c7ddd7; }
.pro-editorial-badge { display: inline-flex; padding: 5px 8px; border-radius: 999px; background: #f2d47e; color: #173d37; font-size: 10px; font-weight: 900; letter-spacing: .14em; }
.pro-feature-grid article { border-top: 3px solid #d0b663; }

@media (max-width: 920px) {
  .pro-grid--split,
  .pro-paywall { grid-template-columns: 1fr; }
  .pro-paywall__visual { min-height: 260px; }
  .pro-scenario-grid { grid-template-columns: 1fr; }
  .pro-transfer-inputs { grid-template-columns: 1fr; }
  .pro-dashboard-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pro-policy-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .pro-header-link { width: 44px; padding: 0; justify-content: center; font-size: 0; }
  .pro-header-link span { font-size: 8px; }
  .pro-home-banner,
  .pro-header,
  .pro-semester-hero,
  .pro-card-head,
  .account-pro-summary,
  .pro-editorial-hero { align-items: stretch; flex-direction: column; }
  .pro-plan-chip { min-width: 0; text-align: start; }
  .pro-tabs { grid-template-columns: repeat(10, minmax(88px, 1fr)); overflow-x: auto; }
  .pro-tabs button { min-width: 80px; }
  .pro-integrity-result { grid-template-columns: 1fr; }
  .pro-integrity-score { margin-inline: auto; }
  .pro-chat-controls { grid-template-columns: 1fr; }
  .pro-translation-compare { grid-template-columns: 1fr; }
  .pro-undo-comparison { grid-template-columns: 1fr; }
  .pro-impact-grid { grid-template-columns: 1fr 1fr; }
  .pro-semester-actions { justify-content: flex-start; }
}

@media (max-width: 520px) {
  .pro-paywall,
  .pro-header { padding: 22px 18px; border-radius: 17px; }
  .pro-paywall { margin-top: 26px; }
  .pro-paywall__visual { min-height: 210px; padding: 20px; }
  .pro-tabs { margin-inline: -13px; width: calc(100% + 26px); }
  .pro-panel { padding-top: 18px; }
  .pro-grid { gap: 14px; }
  .pro-inline-metrics { grid-template-columns: 1fr; }
  .pro-dashboard-metrics { grid-template-columns: 1fr; }
  .pro-policy-toolbar { grid-template-columns: 1fr; }
  .pro-impact-grid { grid-template-columns: 1fr; }
  .pro-target-ring { width: 72px; height: 72px; flex-basis: 72px; }
  .pro-advisor-link { align-items: stretch; flex-direction: column; }
}
