:root {
  color-scheme: light;
  --ink: #151a18;
  --ink-2: #26302c;
  --muted: #66736e;
  --line: #d8dfdb;
  --paper: #f3f5f2;
  --panel: #ffffff;
  --surface: #eef2ef;
  --green: #23624f;
  --teal: #176f7a;
  --gold: #b67526;
  --rose: #a7484c;
  --blue: #345f93;
  --shadow: 0 14px 34px rgba(20, 31, 27, 0.08);
  --shadow-soft: 0 6px 18px rgba(20, 31, 27, 0.05);
  --focus: 0 0 0 3px rgba(35, 98, 79, 0.16);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--paper);
  color: var(--ink);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    sans-serif;
}

button,
input,
textarea {
  font: inherit;
}

button {
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  touch-action: manipulation;
}

a {
  touch-action: manipulation;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--green);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: none;
  box-shadow: var(--focus);
}

.shell {
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr);
  gap: 22px;
  min-height: 100vh;
  padding: 18px;
}

.sidebar {
  align-self: start;
  display: grid;
  align-content: start;
  gap: 22px;
  position: sticky;
  top: 18px;
  min-height: calc(100vh - 36px);
  padding: 22px;
  border: 1px solid #25322d;
  border-radius: 8px;
  background: linear-gradient(180deg, #151a18, #202a26);
  color: #fff;
  box-shadow: 0 18px 42px rgba(20, 31, 27, 0.12);
}

.brand-mark {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.09);
  color: #fff;
  font-weight: 850;
}

.sidebar h2,
.topbar h1,
.panel h2,
.panel h3,
.panel p {
  margin: 0;
}

.sidebar h2 {
  margin: 6px 0 8px;
  font-size: 1.55rem;
  letter-spacing: 0;
}

.muted {
  color: var(--muted);
  line-height: 1.5;
}

.sidebar .muted {
  color: rgba(255, 255, 255, 0.7);
}

.eyebrow {
  color: var(--green);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0;
  text-transform: uppercase;
}

.sidebar .eyebrow {
  color: #9bd1bd;
}

.launch-card {
  align-self: end;
  display: grid;
  gap: 4px;
  margin-top: auto;
  padding: 16px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-left: 4px solid var(--gold);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.launch-card strong {
  font-size: 1.15rem;
}

.launch-card span {
  color: rgba(255, 255, 255, 0.72);
}

.launch-card a {
  color: #f4d6a8;
  font-weight: 820;
  text-decoration: none;
}

.launch-card a:hover {
  color: #fff;
}

#app {
  min-width: 0;
}

.topbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
  padding: 8px 2px 0;
}

.topbar h1 {
  margin-top: 4px;
  font-size: clamp(2rem, 3.2vw, 3rem);
  line-height: 1;
}

.topbar-subtitle {
  margin-top: 8px;
  color: var(--muted);
  font-size: 0.95rem;
  font-weight: 650;
}

nav {
  display: flex;
  gap: 4px;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

nav button,
.ghost-button,
.template-list button,
.library-grid button,
.fit-meter button {
  min-height: 36px;
  padding: 0 13px;
  background: transparent;
  color: var(--muted);
  font-weight: 780;
}

nav button.active,
.ghost-button:hover,
.template-list button:hover,
.library-grid button:hover,
.fit-meter button:hover {
  background: var(--ink);
  color: #fff;
}

nav button,
.ghost-button,
.template-list button,
.library-grid button,
.fit-meter button,
.primary-link,
.checkout-link,
.interest-form button,
.report-header button,
.admin-header a,
.admin-header button,
.verification-table a,
.verification-table button,
.upgrade-button,
.plan-toggle,
.modal-close {
  transition:
    background 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

nav button:active,
.ghost-button:active,
.template-list button:active,
.library-grid button:active,
.fit-meter button:active,
.primary-link:active,
.checkout-link:active,
.interest-form button:active,
.report-header button:active,
.admin-header a:active,
.admin-header button:active,
.verification-table a:active,
.verification-table button:active,
.upgrade-button:active,
.plan-toggle:active,
.modal-close:active {
  transform: translateY(0);
}

nav button:hover,
.ghost-button:hover,
.template-list button:hover,
.library-grid button:hover,
.fit-meter button:hover,
.primary-link:hover,
.checkout-link:hover,
.interest-form button:hover,
.report-header button:hover,
.admin-header a:hover,
.admin-header button:hover,
.verification-table a:hover,
.verification-table button:hover,
.upgrade-button:hover,
.plan-toggle:hover,
.modal-close:hover {
  transform: translateY(-1px);
}

.dashboard-grid {
  display: grid;
  align-items: start;
  grid-auto-flow: dense;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
}

.dashboard-column {
  display: grid;
  grid-column: span 4;
  gap: 14px;
  align-content: start;
}

.dashboard-column > .panel {
  grid-column: 1 / -1;
}

.product-advantage {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 16px;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid #cad6d0;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(35, 98, 79, 0.08), rgba(52, 95, 147, 0.06)),
    #fff;
  box-shadow: var(--shadow-soft);
}

.product-advantage h2 {
  margin: 4px 0 6px;
  font-size: 1.35rem;
}

.product-advantage p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.advantage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.advantage-grid span {
  display: grid;
  gap: 3px;
  min-height: 70px;
  padding: 12px;
  border: 1px solid #dce5e0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.76);
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 740;
}

.advantage-grid strong {
  color: var(--green);
  font-size: 1rem;
}

.casaa-prep-notice {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 13px 16px;
  border: 1px solid #d8e7df;
  border-left: 4px solid var(--green);
  border-radius: 8px;
  background: #f6fbf8;
  color: var(--ink-2);
  box-shadow: var(--shadow-soft);
}

.casaa-prep-notice strong {
  color: var(--green);
  font-size: 0.78rem;
  font-weight: 880;
  text-transform: uppercase;
}

.casaa-prep-notice span {
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 720;
  line-height: 1.4;
}

.source-freshness-panel {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 18px;
  align-items: start;
  padding: 18px;
  border: 1px solid #d8e7df;
  border-radius: 8px;
  background: linear-gradient(135deg, #ffffff 0%, #f7fbf9 100%);
  box-shadow: var(--shadow-soft);
}

.source-freshness-copy {
  display: grid;
  align-content: start;
  gap: 9px;
}

.source-freshness-copy h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.35rem;
  letter-spacing: 0;
}

.source-freshness-copy p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 680;
  line-height: 1.45;
}

.source-freshness-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 4px;
}

.source-freshness-stats span {
  display: grid;
  align-content: center;
  min-height: 56px;
  padding: 10px 12px;
  border: 1px solid #dce5e0;
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.25;
}

.source-freshness-stats strong {
  color: var(--green);
  font-size: 1rem;
}

.source-freshness-list {
  display: grid;
  gap: 8px;
}

.source-freshness-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, auto);
  gap: 14px;
  align-items: center;
  min-height: 62px;
  padding: 12px 14px;
  border: 1px solid #e1e8e4;
  border-radius: 8px;
  background: #fff;
}

.source-freshness-list strong {
  display: block;
  color: var(--ink);
  font-size: 0.88rem;
  line-height: 1.15;
}

.source-freshness-list span,
.source-freshness-list small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 760;
  line-height: 1.25;
}

.source-freshness-list small {
  justify-self: end;
  text-align: right;
  color: var(--green);
}

.command-start {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.command-start h2 {
  margin: 4px 0 6px;
  font-size: 1.35rem;
}

.command-start p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.command-start ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.command-start li {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 118px;
  padding: 12px;
  border: 1px solid #e1e8e4;
  border-radius: 8px;
  background: #f9fbfa;
}

.command-start li span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 860;
}

.command-start li strong {
  line-height: 1.12;
}

.command-start li small {
  color: var(--muted);
  font-weight: 740;
}

.community-radar {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: 18px;
  padding: 20px;
  border: 1px solid #cbd8d2;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(23, 111, 122, 0.08), rgba(182, 117, 38, 0.06)),
    #fff;
  box-shadow: var(--shadow-soft);
}

.community-radar h2 {
  margin: 4px 0 8px;
  font-size: 1.35rem;
}

.community-radar p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.community-radar-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.community-radar-grid article {
  display: grid;
  gap: 9px;
  min-height: 190px;
  padding: 13px;
  border: 1px solid #dce6e1;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.84);
}

.community-radar-grid article > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.community-radar-grid span,
.community-radar-grid strong {
  font-size: 0.72rem;
  font-weight: 860;
  text-transform: uppercase;
}

.community-radar-grid span {
  color: var(--teal);
}

.community-radar-grid strong {
  color: var(--green);
  text-align: right;
}

.community-radar-grid h3 {
  margin: 0;
  font-size: 0.96rem;
  line-height: 1.18;
}

.community-radar-grid p {
  font-size: 0.82rem;
}

.community-radar-grid small {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 760;
  line-height: 1.35;
}

.averages-panel {
  grid-column: 1 / -1;
}

.averages-panel .section-heading {
  align-items: flex-start;
}

.averages-panel .section-heading p:not(.eyebrow) {
  max-width: 720px;
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.average-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.average-summary-grid article {
  display: grid;
  gap: 6px;
  min-height: 112px;
  padding: 13px;
  border: 1px solid #dde7e2;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(248, 252, 250, 0.98), rgba(255, 255, 255, 0.98)),
    #fff;
}

.average-summary-grid span,
.average-table span {
  color: var(--teal);
  font-size: 0.7rem;
  font-weight: 880;
  text-transform: uppercase;
}

.average-summary-grid strong {
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
}

.average-summary-grid small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1.32;
}

.average-table {
  display: grid;
  gap: 10px;
}

.average-table article {
  display: grid;
  grid-template-columns: minmax(180px, 0.92fr) minmax(0, 1.4fr) minmax(180px, 0.72fr);
  gap: 14px;
  align-items: start;
  padding: 14px;
  border: 1px solid #dde6e1;
  border-left: 4px solid var(--green);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(20, 31, 27, 0.035);
}

.average-table article.benchmark {
  border-left-color: var(--gold);
}

.average-table article.unreported {
  border-left-color: var(--line);
  background: #fbfcfb;
}

.average-program {
  display: grid;
  gap: 5px;
}

.average-program h3 {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.16;
}

.average-program p,
.average-table article > p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.average-table dl {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.average-table dl div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.average-table dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 820;
  text-transform: uppercase;
}

.average-table dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 830;
  line-height: 1.28;
  overflow-wrap: anywhere;
}

.average-table a,
.average-table small {
  justify-self: end;
  align-self: start;
  padding: 8px 10px;
  border: 1px solid #cfe0d8;
  border-radius: 999px;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 850;
  text-align: center;
  text-decoration: none;
}

.competitive-panel {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.68fr) minmax(0, 1.32fr);
  gap: 18px;
  padding: 20px;
  border: 1px solid #cad8d1;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(35, 98, 79, 0.08), rgba(52, 95, 147, 0.07)),
    #fff;
  box-shadow: var(--shadow-soft);
}

.competitive-copy h2 {
  margin: 4px 0 8px;
  font-size: 1.35rem;
  line-height: 1.12;
}

.competitive-copy p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.competitive-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.competitive-grid article {
  display: grid;
  align-content: start;
  gap: 9px;
  min-height: 220px;
  padding: 13px;
  border: 1px solid #dce6e1;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.86);
}

.competitive-grid article > div {
  display: grid;
  gap: 5px;
}

.competitive-grid span,
.competitive-grid strong {
  font-size: 0.68rem;
  font-weight: 860;
  text-transform: uppercase;
}

.competitive-grid span {
  color: var(--muted);
}

.competitive-grid strong {
  color: var(--green);
}

.competitive-grid h3 {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.14;
}

.competitive-grid p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.36;
}

.competitive-grid b {
  color: var(--ink);
}

.advocacy-panel {
  grid-column: 1 / -1;
}

.advocacy-heading {
  align-items: flex-start;
}

.advocacy-heading p:not(.eyebrow) {
  max-width: 830px;
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.advocacy-disclaimer {
  margin-bottom: 12px;
  padding: 11px 12px;
  border: 1px solid #d7c29f;
  border-radius: 8px;
  background: #fff8ea;
  color: #6d4c17;
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1.38;
}

.advocacy-brief,
.professional-conduct-grid,
.organization-grid,
.profession-event-grid,
.state-academy-grid {
  display: grid;
  gap: 10px;
}

.advocacy-brief {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 12px;
}

.professional-conduct-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 12px;
}

.advocacy-brief article,
.professional-conduct-grid article,
.organization-grid article,
.profession-event-grid article,
.state-academy-grid article {
  min-width: 0;
  border: 1px solid #dce6e1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(20, 31, 27, 0.035);
}

.advocacy-brief article {
  padding: 14px;
  background:
    linear-gradient(135deg, rgba(35, 98, 79, 0.07), rgba(52, 95, 147, 0.05)),
    #fff;
}

.professional-conduct-grid article {
  padding: 12px;
  background: #f7fbf8;
}

.advocacy-brief span,
.professional-conduct-grid span,
.organization-grid span,
.profession-event-grid span,
.state-directory-head span {
  display: block;
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 880;
  text-transform: uppercase;
}

.advocacy-brief h3,
.organization-grid h3,
.profession-event-grid h3,
.state-directory-head h3 {
  margin: 4px 0 0;
  font-size: 0.98rem;
  line-height: 1.18;
}

.state-directory-head p {
  max-width: 760px;
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.advocacy-brief p,
.professional-conduct-grid p,
.organization-grid p,
.profession-event-grid p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.43;
}

.organization-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 12px;
}

.organization-grid article {
  display: grid;
  align-content: start;
  gap: 9px;
  padding: 14px;
}

.organization-grid article > strong {
  color: var(--ink);
  font-size: 0.84rem;
  line-height: 1.3;
}

.organization-grid small,
.profession-event-grid small,
.state-academy-grid small {
  color: var(--blue);
  font-size: 0.76rem;
  font-weight: 830;
  line-height: 1.32;
}

.advocacy-actions,
.state-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.advocacy-actions a,
.profession-event-grid a,
.state-actions a,
.state-directory-head > a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #cfe0d8;
  border-radius: 999px;
  color: var(--green);
  font-size: 0.73rem;
  font-weight: 850;
  text-decoration: none;
}

.profession-event-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 12px;
}

.profession-event-grid article {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 13px;
}

.profession-event-grid article > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.state-academy-directory {
  display: grid;
  gap: 10px;
}

.state-directory-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-end;
  padding-top: 2px;
}

.state-directory-head .ghost-button {
  width: auto;
  white-space: nowrap;
}

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

.state-academy-grid article {
  display: grid;
  align-content: space-between;
  gap: 10px;
  min-height: 126px;
  padding: 12px;
}

.state-academy-grid strong {
  display: block;
  margin-bottom: 5px;
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.18;
}

.plan-panel {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 18px;
  padding: 20px;
  border: 1px solid #c7d6cf;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.62)),
    linear-gradient(135deg, rgba(182, 117, 38, 0.1), rgba(23, 111, 122, 0.07)),
    #fff;
  box-shadow: var(--shadow);
}

.plan-panel h2 {
  margin: 4px 0 6px;
  font-size: 1.35rem;
}

.plan-panel p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.plan-panel-copy {
  display: grid;
  align-content: start;
  gap: 8px;
}

.plan-status-strip {
  display: inline-flex;
  width: fit-content;
  gap: 4px;
  margin-top: 6px;
  padding: 4px;
  border: 1px solid #dce5e0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
}

.plan-status-strip span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
}

.plan-status-strip span.active {
  background: var(--ink);
  color: #fff;
}

.plan-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.plan-grid article {
  display: grid;
  align-content: start;
  gap: 10px;
  min-height: 100%;
  padding: 16px;
  border: 1px solid #dae5df;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.plan-grid article.featured {
  border-color: #bad6ca;
  background:
    linear-gradient(180deg, rgba(245, 251, 248, 0.94), rgba(255, 255, 255, 0.94)),
    #f5fbf8;
  box-shadow: inset 4px 0 0 var(--green);
}

.plan-grid article.active {
  border-color: #8ab6a3;
  box-shadow:
    inset 0 0 0 1px rgba(35, 98, 79, 0.2),
    var(--shadow-soft);
}

.plan-grid article:hover {
  transform: translateY(-1px);
}

.plan-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.plan-grid span {
  color: var(--green);
  font-size: 0.74rem;
  font-weight: 850;
  text-transform: uppercase;
}

.plan-grid strong {
  font-size: 1.45rem;
  line-height: 1;
}

.plan-grid small {
  color: var(--muted);
  font-weight: 780;
}

.plan-card-head small {
  min-height: 24px;
  padding: 4px 8px;
  border: 1px solid #dce8e2;
  border-radius: 999px;
  background: #f5faf7;
  color: var(--green);
  font-size: 0.68rem;
  line-height: 1;
  text-transform: uppercase;
}

.plan-grid ul {
  display: grid;
  gap: 6px;
  margin: 4px 0 0;
  padding-left: 18px;
}

.plan-grid li {
  color: var(--ink-2);
  font-size: 0.84rem;
  line-height: 1.35;
}

.plan-toggle,
.upgrade-button {
  justify-self: start;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 850;
  box-shadow: 0 5px 14px rgba(20, 31, 27, 0.04);
}

.plan-toggle.primary,
.upgrade-button.primary {
  border-color: var(--ink);
  background: var(--ink);
  color: #fff;
}

.hidden {
  display: none;
}

.panel {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel);
  box-shadow: var(--shadow-soft);
}

@keyframes screen-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.readiness-panel {
  grid-column: span 4;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
}

.readiness-panel h2 {
  margin: 3px 0 8px;
  font-size: 3.3rem;
  line-height: 0.95;
}

.score-ring {
  display: grid;
  width: 108px;
  height: 108px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--green) calc(var(--score) * 1%), #e7ece9 0);
}

.score-ring span {
  display: grid;
  width: 74px;
  height: 74px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  font-size: 1.7rem;
  font-weight: 850;
}

.score-breakdown {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.score-breakdown div {
  display: grid;
  gap: 3px;
  min-height: 58px;
  padding: 10px;
  border: 1px solid #e5ebe7;
  border-radius: 8px;
  background: #f8faf8;
}

.score-breakdown span {
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.1;
}

.score-breakdown strong {
  font-size: 1.2rem;
}

.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.section-heading h2 {
  margin-top: 3px;
  font-size: 1.14rem;
  line-height: 1.1;
}

.pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f6e7e8;
  color: var(--rose);
  font-size: 0.75rem;
  font-weight: 850;
  white-space: nowrap;
}

.pill.accent {
  background: #e8f2f3;
  color: var(--teal);
}

.heading-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.heading-actions [data-reset-profile] {
  min-height: 28px;
  padding: 0 10px;
  background: #f6e7e8;
  color: var(--rose);
  font-size: 0.75rem;
  font-weight: 850;
}

.action-list,
.program-list,
.supplemental-list,
.template-list,
.checklist,
.prompt-list,
#intake-form,
.check-group,
.school-groups,
.target-school-list,
.test-picker {
  display: grid;
  gap: 10px;
}

.action-card,
.program-card,
.supplemental-list article,
.template-list article,
.checklist div {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.action-card {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 13px;
}

.action-card.high {
  border-left: 4px solid var(--rose);
}

.action-card.medium {
  border-left: 4px solid var(--gold);
}

.action-card h3,
.program-card h3,
.template-list h3,
.library-grid h3,
.supplemental-list h3 {
  margin-bottom: 5px;
  font-size: 0.95rem;
  line-height: 1.14;
}

.action-card p,
.program-card p,
.program-card small,
.program-table p,
.program-table small,
.library-grid p,
.prompt-list p,
.supplemental-list p {
  display: block;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.42;
}

.program-card small,
.program-table small {
  margin-top: 6px;
  color: var(--teal);
  font-size: 0.76rem;
  font-weight: 820;
}

.program-card small.verification-badge,
.program-table small.verification-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 24px;
  margin: 8px 0 0;
  padding: 0 8px;
  border: 1px solid #cfe1d8;
  border-radius: 999px;
  background: #eff7f2;
  color: var(--green);
  font-size: 0.7rem;
  letter-spacing: 0;
  line-height: 1;
}

.program-card small.watchlist,
.program-table small.watchlist {
  border-color: #eadcbd;
  background: #fff8e8;
  color: #8a6216;
}

.program-card small.unconfirmed,
.program-table small.unconfirmed {
  border-color: #ebc4c7;
  background: #fff1f2;
  color: #a7424d;
}

.action-card time {
  color: var(--blue);
  font-size: 0.8rem;
  font-weight: 850;
  white-space: nowrap;
}

.timeline {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.timeline li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 9px;
  min-height: 50px;
}

.timeline li span {
  position: relative;
  display: block;
  width: 11px;
  height: 11px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--line);
}

.timeline li:not(:last-child) span::after {
  content: "";
  position: absolute;
  top: 13px;
  left: 5px;
  width: 1px;
  height: 38px;
  background: var(--line);
}

.timeline strong,
.checklist strong {
  font-size: 0.93rem;
}

.timeline small,
.checklist small {
  color: var(--muted);
  font-size: 0.8rem;
}

.timeline .active span {
  background: var(--green);
}

.timeline .next span {
  background: var(--gold);
}

.timeline .target span {
  background: var(--blue);
}

.program-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px;
}

.program-card:hover,
.action-card:hover,
.supplemental-list article:hover,
.template-list article:hover,
.program-table article:hover {
  border-color: #c9d4ce;
  box-shadow: var(--shadow-soft);
  transform: translateY(-1px);
}

.fit-meter {
  display: grid;
  justify-items: end;
  min-width: 78px;
  gap: 4px;
}

.fit-meter strong {
  color: var(--green);
  font-size: 1.4rem;
}

.fit-meter span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
  white-space: nowrap;
}

.fit-meter button {
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink-2);
  font-size: 0.72rem;
}

.interview-panel blockquote {
  margin: 0 0 12px;
  padding: 16px;
  border: 1px solid #d9e7e9;
  border-radius: 8px;
  background: #f0f7f8;
  color: var(--teal);
  font-size: 1.04rem;
  font-weight: 760;
  line-height: 1.35;
}

.prompt-list p {
  padding: 10px 0;
  border-top: 1px solid var(--line);
}

.template-list article {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
}

.template-list article.template-upgrade {
  border-color: #eadcbd;
  background: #fffaf0;
}

.template-list span,
.library-grid span {
  color: var(--green);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.checklist div {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
}

.status-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--line);
}

.status-dot.complete {
  background: var(--green);
}

.status-dot.needs-revision {
  background: var(--gold);
}

.status-dot.missing {
  background: var(--rose);
}

.program-panel,
.interview-panel {
  grid-column: span 4;
}

.intake-panel {
  grid-column: span 4;
}

.supplemental-panel {
  grid-column: span 5;
}

.actions-panel {
  grid-column: span 4;
}

.timeline-panel {
  grid-column: span 3;
}

.template-panel,
.checklist-panel {
  grid-column: span 4;
}

.panel:not(.readiness-panel, .program-panel, .interview-panel, .intake-panel, .supplemental-panel, .actions-panel, .timeline-panel, .template-panel, .checklist-panel, .program-detail-panel, .program-database-panel, .report-panel, .wide-panel) {
  grid-column: span 3;
}

#intake-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.77rem;
  font-weight: 820;
}

#intake-form input {
  min-width: 0;
  min-height: 36px;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font-weight: 680;
  padding: 7px 10px;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    background 160ms ease;
}

#intake-form input:focus {
  border-color: var(--green);
  outline: none;
  box-shadow: var(--focus);
}

.field-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.check-group,
.target-school-list,
.test-picker {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf8;
}

.check-group strong,
.target-school-list > strong,
.test-picker strong {
  font-size: 0.82rem;
}

.target-school-list p,
.test-picker p {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.plan-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}

.plan-note button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #cfe1d8;
  background: #edf7f2;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 850;
}

.plan-note button:hover {
  border-color: #a8c9bb;
  background: #e3f2eb;
}

.check-group label,
.school-groups label,
.test-picker label {
  grid-template-columns: 16px 1fr;
  align-items: center;
  color: var(--ink);
  font-size: 0.83rem;
  font-weight: 660;
}

#intake-form .check-group input,
#intake-form .target-school-list input,
#intake-form .test-picker input {
  min-height: 16px;
  width: 16px;
  padding: 0;
}

.school-groups {
  max-height: 230px;
  overflow: auto;
  padding-right: 3px;
  scrollbar-color: #becbc5 transparent;
  scrollbar-width: thin;
}

.school-groups section {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid #e6ebe8;
  border-radius: 8px;
  background: #fff;
}

.school-groups h3 {
  margin: 0;
  color: var(--green);
  font-size: 0.78rem;
}

.test-picker > div {
  display: flex;
  gap: 10px;
}

.test-picker label {
  grid-template-columns: 16px auto;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.test-picker label.disabled {
  color: var(--muted);
  opacity: 0.55;
}

.school-groups input:disabled + span {
  color: var(--muted);
  opacity: 0.58;
}

.upgrade-lock {
  display: grid;
  grid-column: span 5;
  gap: 16px;
  position: relative;
  overflow: hidden;
  border-color: #d7c8a6;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 250, 240, 0.78)),
    linear-gradient(135deg, rgba(182, 117, 38, 0.11), rgba(35, 98, 79, 0.05)),
    #fff;
}

.upgrade-lock::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--gold), var(--green));
}

.program-screen .upgrade-lock,
[data-screen="report"] .upgrade-lock {
  grid-column: 1 / -1;
}

.upgrade-lock-copy {
  display: grid;
  gap: 6px;
}

.lock-kicker {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 26px;
  padding: 0 9px;
  border: 1px solid #d8e7df;
  border-radius: 999px;
  background: #f1faf5;
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 880;
  text-transform: uppercase;
}

.upgrade-lock h2 {
  margin: 4px 0 6px;
  font-size: 1.25rem;
}

.upgrade-lock p {
  color: var(--muted);
  line-height: 1.45;
}

.upgrade-lock ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.upgrade-lock li {
  min-height: 40px;
  padding: 10px 11px;
  border: 1px solid #eadcbd;
  border-radius: 8px;
  background: rgba(255, 250, 240, 0.88);
  color: #6b5932;
  font-size: 0.82rem;
  font-weight: 760;
}

.supplemental-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px;
  gap: 14px;
  padding: 13px;
  border-left: 4px solid var(--gold);
}

.supplemental-list article.submitted {
  border-left-color: var(--green);
}

.supplemental-list article.not-started {
  border-left-color: var(--rose);
}

.supplemental-list p {
  margin: 0;
}

.supplemental-list article > div:last-child {
  display: grid;
  justify-items: end;
  align-content: start;
  gap: 5px;
  text-align: right;
}

.supplemental-list strong {
  color: var(--ink);
  font-size: 0.84rem;
}

.supplemental-list span {
  color: var(--blue);
  font-size: 0.76rem;
  font-weight: 850;
}

.wide-panel {
  grid-column: span 8;
}

.strategy-panel {
  grid-column: 1 / -1;
}

.program-screen .wide-panel {
  grid-column: 1 / -1;
}

[data-screen="interview"] .wide-panel,
[data-screen="shadowing"] .wide-panel,
[data-screen="templates"] .wide-panel {
  grid-column: 1 / -1;
}

.strategy-grid,
.audit-grid,
.interview-prep-grid,
.material-studio-grid {
  display: grid;
  gap: 10px;
}

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

.audit-grid,
.interview-prep-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.material-studio-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.material-studio-panel .section-heading {
  align-items: flex-start;
}

.material-studio-panel .section-heading p:not(.eyebrow) {
  max-width: 760px;
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.materials-hero {
  display: grid;
  grid-template-columns: minmax(180px, 0.35fr) minmax(0, 1fr);
  gap: 12px;
  margin-bottom: 12px;
  padding: 14px;
  border: 1px solid #d8e6df;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(35, 98, 79, 0.08), rgba(182, 117, 38, 0.06)),
    #fff;
}

.materials-hero > div {
  display: grid;
  gap: 5px;
}

.materials-hero span {
  color: var(--green);
  font-size: 0.72rem;
  font-weight: 880;
  text-transform: uppercase;
}

.materials-hero strong {
  color: var(--ink);
  font-size: 2.35rem;
  line-height: 1;
}

.materials-hero small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 780;
}

.materials-hero ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.materials-hero li {
  padding-left: 12px;
  border-left: 3px solid var(--gold);
  color: var(--ink-2);
  font-size: 0.86rem;
  font-weight: 740;
  line-height: 1.38;
}

.statement-recommender-board {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 12px;
  margin-bottom: 12px;
}

.statement-builder,
.recommender-builder {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid #dce6e1;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(248, 252, 250, 0.96), rgba(255, 255, 255, 0.96)),
    #fff;
  box-shadow: 0 8px 18px rgba(20, 31, 27, 0.035);
}

.mini-section-heading {
  display: grid;
  gap: 3px;
}

.mini-section-heading span {
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 880;
  text-transform: uppercase;
}

.mini-section-heading h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.18;
}

.statement-step-list,
.recommender-list,
.rubric-list,
.scorecard-list {
  display: grid;
  gap: 9px;
}

.statement-step-list section,
.recommender-list section,
.rubric-list section,
.scorecard-list section {
  min-width: 0;
  padding: 12px;
  border: 1px solid #e1ebe6;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
}

.statement-step-list section,
.rubric-list section,
.scorecard-list section {
  display: grid;
  gap: 7px;
}

.statement-step-list section > div,
.rubric-list section > div,
.scorecard-list section > div,
.recommender-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
}

.statement-step-list strong,
.recommender-list strong,
.rubric-list strong,
.scorecard-list strong {
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.2;
}

.statement-step-list small,
.recommender-list small,
.rubric-list small,
.scorecard-list small {
  color: var(--blue);
  font-size: 0.74rem;
  font-weight: 850;
  line-height: 1.25;
  text-align: right;
}

.statement-step-list p,
.recommender-list p,
.recommender-list dd,
.rubric-list p,
.scorecard-list p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

.rubric-list b {
  color: var(--ink);
}

.statement-step-list blockquote {
  margin: 0;
  padding-left: 10px;
  border-left: 3px solid var(--green);
  color: var(--ink-2);
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1.35;
}

.statement-step-list em,
.recommender-list em,
.rubric-list em,
.scorecard-list em {
  color: #7a5a21;
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 760;
  line-height: 1.35;
}

.mini-section-heading.compact {
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid #e1ebe6;
}

.recommender-list section {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
}

.recommender-rank {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: var(--green);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 900;
}

.recommender-list section > div:last-child {
  display: grid;
  gap: 7px;
}

.recommender-list dl {
  display: grid;
  gap: 7px;
  margin: 0;
}

.recommender-list dt {
  margin-bottom: 2px;
  color: var(--green);
  font-size: 0.68rem;
  font-weight: 880;
  text-transform: uppercase;
}

.strategy-grid article,
.stacked-strategy-list article,
.audit-grid article,
.interview-prep-grid article,
.material-studio-grid article {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  min-height: 100%;
  padding: 14px;
  border: 1px solid #dde6e1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(20, 31, 27, 0.035);
}

.strategy-grid article {
  background:
    linear-gradient(180deg, rgba(248, 252, 250, 0.96), rgba(255, 255, 255, 0.96)),
    #fff;
}

.strategy-grid article > div,
.stacked-strategy-list article,
.audit-grid article,
.interview-prep-grid article,
.material-studio-grid article {
  min-width: 0;
}

.strategy-grid h3,
.stacked-strategy-list h3,
.audit-grid h3,
.interview-prep-grid h3,
.material-studio-grid h3 {
  font-size: 0.95rem;
  line-height: 1.18;
}

.strategy-grid p,
.stacked-strategy-list p,
.audit-grid p,
.interview-prep-grid p,
.material-studio-grid p,
.cycle-list p {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.42;
}

.strategy-grid span,
.stacked-strategy-list span,
.audit-grid span,
.interview-prep-grid span,
.material-studio-grid span {
  width: fit-content;
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 880;
  text-transform: uppercase;
}

.strategy-grid small,
.stacked-strategy-list small,
.audit-grid small,
.cycle-list small,
.material-studio-grid small {
  color: var(--blue);
  font-size: 0.76rem;
  font-weight: 850;
  line-height: 1.32;
}

.stacked-strategy-list,
.cycle-list {
  display: grid;
  gap: 10px;
}

.shadowing-directory {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.shadowing-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 14px 0;
}

.shadowing-filters,
.shadowing-progress {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.shadowing-filters button,
.shadowing-progress span {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #d9e7df;
  border-radius: 999px;
  background: #fff;
  color: var(--ink-2);
  font-size: 0.78rem;
  font-weight: 850;
}

.shadowing-filters button.active {
  border-color: var(--green);
  background: var(--green);
  color: #fff;
}

.shadowing-progress span {
  display: inline-flex;
  align-items: center;
  background: #f6fbf8;
  color: var(--green);
}

.shadowing-directory article {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  padding: 16px;
  border: 1px solid #dde6e1;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 22px rgba(20, 31, 27, 0.04);
}

.opportunity-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.opportunity-head h3 {
  font-size: 1rem;
  line-height: 1.2;
}

.opportunity-head p,
.shadowing-directory p,
.shadowing-directory dd {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.42;
}

.opportunity-head a {
  flex: 0 0 auto;
  padding: 8px 10px;
  border: 1px solid #cfe0d8;
  border-radius: 999px;
  color: var(--green);
  font-size: 0.76rem;
  font-weight: 850;
  text-decoration: none;
}

.opportunity-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.opportunity-tags span,
.opportunity-head span,
.shadowing-directory > article > small {
  width: fit-content;
  color: var(--green);
  font-size: 0.7rem;
  font-weight: 880;
  text-transform: uppercase;
}

.opportunity-tags span {
  padding: 5px 8px;
  border: 1px solid #dce9e1;
  border-radius: 999px;
  background: #f6fbf8;
}

.opportunity-status {
  display: grid;
  gap: 6px;
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.opportunity-status select {
  min-height: 38px;
  border: 1px solid #d7e5de;
  border-radius: 8px;
  background: #fbfdfc;
  color: var(--ink);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 760;
  text-transform: none;
}

.shadowing-directory dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.shadowing-directory dl > div {
  display: grid;
  gap: 2px;
}

.shadowing-directory dt {
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.shadowing-directory dd {
  margin: 0;
}

.cycle-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.cycle-list li {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 12px;
  padding: 13px;
  border: 1px solid #dde6e1;
  border-radius: 8px;
  background: #fff;
}

.cycle-list li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: start;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid #d8e7df;
  border-radius: 999px;
  background: #f1faf5;
  color: var(--green);
  font-size: 0.68rem;
  font-weight: 880;
}

.cycle-list strong {
  display: block;
  margin-bottom: 3px;
  font-size: 0.9rem;
  line-height: 1.2;
}

.cycle-list p {
  margin-top: 6px;
}

.audit-grid ul {
  display: grid;
  gap: 6px;
  margin: 2px 0 0;
  padding-left: 18px;
}

.audit-grid li {
  color: var(--ink-2);
  font-size: 0.82rem;
  line-height: 1.35;
}

.program-detail-panel {
  grid-column: 1 / -1;
  padding: 0;
  overflow: hidden;
}

.program-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  padding: 22px;
  background:
    linear-gradient(135deg, rgba(21, 32, 28, 0.96), rgba(38, 52, 46, 0.96)),
    linear-gradient(90deg, rgba(182, 117, 38, 0.2), transparent 42%);
  color: #fff;
}

.program-detail-hero .eyebrow {
  color: #9bd1bd;
}

.program-detail-hero h2 {
  margin: 5px 0 8px;
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  line-height: 1;
}

.program-detail-hero p {
  color: rgba(255, 255, 255, 0.76);
  font-weight: 680;
}

.program-detail-score {
  display: grid;
  justify-items: end;
  min-width: 116px;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
}

.program-detail-score strong {
  font-size: 2.4rem;
  line-height: 1;
}

.program-detail-score span {
  color: #9bd1bd;
  font-weight: 850;
}

.program-detail-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.program-detail-summary div {
  display: grid;
  gap: 4px;
  min-height: 84px;
  padding: 16px;
  background: #f8faf8;
}

.program-detail-summary span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 850;
  text-transform: uppercase;
}

.program-detail-summary strong {
  font-size: 0.98rem;
  line-height: 1.25;
}

.program-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
  gap: 14px;
  padding: 18px;
}

.program-detail-grid article {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.program-detail-grid h3 {
  margin: 0 0 12px;
  font-size: 1rem;
}

.program-detail-grid ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.program-detail-grid li {
  padding: 10px 11px;
  border: 1px solid #e3e9e5;
  border-radius: 8px;
  background: #f8faf8;
  color: var(--ink-2);
  font-size: 0.84rem;
  font-weight: 760;
  line-height: 1.3;
}

.program-detail-grid p {
  color: var(--ink-2);
  font-size: 0.92rem;
  line-height: 1.5;
}

.program-detail-grid .detail-muted {
  margin-top: 12px;
  color: var(--muted);
}

.program-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.program-links a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 10px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 820;
  text-decoration: none;
  transition:
    background 160ms ease,
    transform 160ms ease;
}

.program-links a:hover {
  background: var(--green);
  transform: translateY(-1px);
}

.program-database-panel {
  grid-column: 1 / -1;
  padding: 20px;
}

.report-panel {
  grid-column: 1 / -1;
}

.program-screen .supplemental-panel,
.program-screen .program-panel {
  grid-column: span 6;
}

.program-screen .checklist-panel {
  grid-column: span 4;
}

.program-table,
.library-grid {
  display: grid;
  gap: 8px;
}

.database-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
  margin-bottom: 16px;
}

.database-header h2 {
  margin: 3px 0 6px;
  font-size: 1.5rem;
}

.database-header p {
  max-width: 680px;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.45;
}

.database-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.database-stats span {
  display: grid;
  min-width: 116px;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid #e3e9e5;
  border-radius: 8px;
  background: #f8faf8;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 760;
}

.database-stats strong {
  color: var(--ink);
  font-size: 1.2rem;
}

.database-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #eadcbd;
  border-radius: 8px;
  background: #fffaf0;
  color: #6b5932;
  font-size: 0.86rem;
  line-height: 1.42;
}

.database-notice strong {
  color: #8a6216;
}

.program-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 18px 0 10px;
}

.program-section-header h3 {
  margin: 0;
  font-size: 1rem;
}

.program-section-header span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 850;
}

.program-section-header.watchlist {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.program-table article {
  display: grid;
  grid-template-columns: minmax(260px, 1.05fr) minmax(320px, 1.4fr) 78px;
  align-items: center;
  gap: 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.watchlist-table article {
  background: #fffdf8;
}

.program-table article.active {
  border-color: #a8c9bb;
  box-shadow:
    inset 3px 0 0 var(--green),
    var(--shadow-soft);
}

.program-main h3 {
  margin-bottom: 4px;
  font-size: 0.94rem;
  line-height: 1.18;
}

.program-main p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.program-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.program-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 9px;
  border: 1px solid #e3e9e5;
  border-radius: 999px;
  background: #f8faf8;
  color: var(--ink-2);
  font-size: 0.78rem;
  font-weight: 850;
}

.fit-meter.compact {
  min-width: 0;
}

.fit-meter.compact strong {
  font-size: 1.35rem;
}

.muted-meter strong,
.muted-meter span {
  color: #8a6216;
}

.report-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.report-header h2 {
  margin: 4px 0 6px;
  font-size: 2rem;
}

.report-header p {
  color: var(--muted);
  font-weight: 650;
}

.report-header button {
  min-height: 40px;
  padding: 0 14px;
  background: var(--ink);
  color: #fff;
  font-weight: 820;
}

.report-score {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.report-score div {
  display: grid;
  gap: 4px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8faf8;
}

.report-score span {
  color: var(--muted);
  font-weight: 760;
}

.report-score strong {
  font-size: 2rem;
}

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

.report-grid article {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.report-grid h3 {
  margin-bottom: 12px;
}

.report-grid ol {
  display: grid;
  gap: 12px;
  margin: 0;
  padding-left: 20px;
}

.report-grid li strong,
.report-grid li span {
  display: block;
}

.report-grid li span {
  margin-top: 4px;
  color: var(--muted);
  line-height: 1.4;
}

.outcome-review-panel .section-heading p:not(.eyebrow) {
  max-width: 780px;
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.outcome-review-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 14px;
}

.outcome-review-grid > article {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.outcome-review-grid h3 {
  margin: 0 0 4px;
  font-size: 1rem;
}

.outcome-decision-list label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid #edf2ef;
}

.outcome-decision-list label:first-of-type {
  border-top: 0;
}

.outcome-decision-list strong,
.outcome-weakness-list strong {
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.2;
}

.outcome-decision-list small,
.outcome-weakness-list small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 720;
  line-height: 1.35;
}

.outcome-decision-list select {
  min-height: 38px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font-weight: 760;
}

.outcome-weakness-list section {
  display: grid;
  gap: 5px;
  padding: 11px;
  border: 1px solid #e1ebe6;
  border-radius: 8px;
  background: #f8fbf9;
}

.outcome-weakness-list p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
}

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

.library-grid article {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  transition:
    border-color 180ms ease,
    box-shadow 180ms ease,
    transform 180ms ease;
}

.library-grid article.library-lock {
  border-color: #eadcbd;
  background:
    linear-gradient(135deg, rgba(255, 250, 240, 0.92), rgba(245, 251, 248, 0.72)),
    #fffaf0;
}

.library-grid button {
  justify-self: start;
  background: var(--ink);
  color: #fff;
}

#toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  transform: translateY(16px);
  padding: 12px 14px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  opacity: 0;
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}

#toast.visible {
  transform: translateY(0);
  opacity: 1;
}

.upgrade-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(21, 26, 24, 0.48);
  backdrop-filter: blur(10px);
  animation: modal-backdrop-in 170ms ease-out both;
}

.upgrade-modal {
  position: relative;
  display: grid;
  gap: 14px;
  width: min(540px, 100%);
  padding: 26px;
  border: 1px solid #cad6d0;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 249, 0.98)),
    #fff;
  box-shadow: 0 28px 70px rgba(20, 31, 27, 0.24);
  animation: modal-in 190ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.upgrade-modal h2 {
  margin: 0;
  font-size: 1.65rem;
  line-height: 1.08;
}

.upgrade-modal p {
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.upgrade-modal ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  color: var(--ink-2);
  font-weight: 740;
  list-style: none;
}

.upgrade-modal li {
  padding: 10px 11px;
  border: 1px solid #dde8e2;
  border-radius: 8px;
  background: #fff;
}

.upgrade-modal small {
  color: var(--muted);
  line-height: 1.4;
}

.modal-close {
  justify-self: end;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 850;
}

.upgrade-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.modal-open {
  overflow: hidden;
}

@keyframes modal-backdrop-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes modal-in {
  from {
    opacity: 0;
    transform: translateY(8px) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.landing-page {
  background: #f5f7f4;
}

.landing-shell {
  display: grid;
  gap: 18px;
  max-width: 1120px;
  margin: 0 auto;
  padding: 22px;
}

.landing-hero {
  display: grid;
  min-height: 620px;
  padding: 24px;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(21, 26, 24, 0.72), rgba(21, 26, 24, 0.86)),
    url("https://images.unsplash.com/photo-1579684385127-1ef15d508118?auto=format&fit=crop&w=1800&q=80");
  background-position: center;
  background-size: cover;
  color: #fff;
}

.landing-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  align-self: start;
}

.landing-nav > div:last-child {
  display: flex;
  gap: 10px;
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 12px;
}

.brand-lockup > div:last-child {
  display: grid;
  gap: 2px;
}

.brand-lockup span {
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.72rem;
  font-weight: 760;
}

.landing-nav a,
.primary-link,
.secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-weight: 820;
  text-decoration: none;
}

.hero-copy {
  align-self: end;
  max-width: 760px;
  padding-bottom: 18px;
}

.hero-copy h1 {
  margin: 10px 0 18px;
  font-size: clamp(2.45rem, 5vw, 4.25rem);
  line-height: 1;
}

.hero-copy p {
  max-width: 680px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.12rem;
  line-height: 1.55;
}

.hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.hero-proof span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 11px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.82rem;
  font-weight: 840;
}

.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 28px;
}

.primary-link {
  background: #fff;
  color: var(--ink);
}

.secondary-link {
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.1);
}

.hero-actions span {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 720;
}

.landing-band,
.differentiator-section,
.positioning-section,
.comparison-section,
.offer-section {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.landing-band article,
.differentiator-section,
.differentiator-grid article,
.positioning-section,
.positioning-grid article,
.comparison-section,
.comparison-grid article,
.offer-section,
.offer-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.landing-band article {
  padding: 20px;
}

.landing-band span {
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 850;
}

.landing-band h2,
.offer-section h2 {
  margin: 8px 0;
  font-size: 1.25rem;
}

.landing-band p,
.differentiator-section p,
.differentiator-grid span,
.positioning-section p,
.positioning-grid p,
.comparison-section p,
.comparison-grid p,
.offer-section p,
.offer-card li {
  color: var(--muted);
  line-height: 1.5;
}

.differentiator-section {
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  padding: 24px;
}

.differentiator-section h2 {
  margin: 8px 0;
  font-size: 2rem;
  line-height: 1.05;
}

.differentiator-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.differentiator-grid article {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 118px;
  padding: 14px;
  box-shadow: none;
}

.differentiator-grid strong {
  color: var(--ink);
}

.positioning-section {
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  padding: 24px;
}

.positioning-section h2 {
  margin: 8px 0 0;
  font-size: 2rem;
  line-height: 1.05;
}

.positioning-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.positioning-grid article {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 142px;
  padding: 15px;
  box-shadow: none;
}

.positioning-grid span {
  color: var(--gold);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.positioning-grid strong {
  font-size: 1.05rem;
  line-height: 1.18;
}

.comparison-section {
  grid-template-columns: minmax(0, 0.76fr) minmax(0, 1.24fr);
  padding: 24px;
  background:
    linear-gradient(135deg, rgba(35, 98, 79, 0.08), rgba(52, 95, 147, 0.06)),
    #fff;
}

.comparison-section h2 {
  margin: 8px 0 10px;
  font-size: 2rem;
  line-height: 1.05;
}

.comparison-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.comparison-grid article {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 150px;
  padding: 15px;
  box-shadow: none;
}

.comparison-grid span {
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.comparison-grid strong {
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.18;
}

.offer-section {
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  padding: 24px;
}

.offer-section h2 {
  font-size: 2rem;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.offer-card {
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 18px;
  box-shadow: none;
}

.offer-card.featured {
  border-color: #bad6ca;
  background: #f5fbf8;
  box-shadow: inset 4px 0 0 var(--green);
}

.offer-card > span {
  color: var(--green);
  font-size: 0.75rem;
  font-weight: 850;
  text-transform: uppercase;
}

.offer-card strong.price {
  color: var(--ink);
  font-size: 2rem;
  line-height: 1;
}

.offer-card small {
  color: var(--muted);
  font-weight: 760;
}

.offer-card ul {
  display: grid;
  gap: 9px;
  margin: 8px 0 0;
  padding-left: 18px;
}

.checkout-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  width: 100%;
  margin-top: 16px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-weight: 850;
  text-decoration: none;
}

.interest-section {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 18px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.interest-section h2 {
  margin: 8px 0;
  font-size: 2rem;
}

.interest-section p {
  color: var(--muted);
  line-height: 1.5;
}

.interest-form {
  display: grid;
  gap: 12px;
}

.interest-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 820;
}

.interest-form input,
.interest-form textarea {
  min-width: 0;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font-weight: 650;
  padding: 10px 12px;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.interest-form input {
  min-height: 42px;
}

.interest-form textarea {
  resize: vertical;
}

.interest-form input:focus,
.interest-form textarea:focus {
  border-color: var(--green);
  outline: none;
  box-shadow: var(--focus);
}

.interest-form button {
  min-height: 44px;
  background: var(--ink);
  color: #fff;
  font-weight: 820;
}

.support-form {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.support-form label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 820;
}

.support-form input,
.support-form select,
.support-form textarea {
  min-width: 0;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font-weight: 650;
  padding: 10px 12px;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.support-form input,
.support-form select {
  min-height: 42px;
}

.support-form textarea {
  resize: vertical;
}

.support-form input:focus,
.support-form select:focus,
.support-form textarea:focus {
  border-color: var(--green);
  outline: none;
  box-shadow: var(--focus);
}

.support-form button {
  min-height: 44px;
  background: var(--ink);
  color: #fff;
  font-weight: 820;
}

.support-form > p {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.5;
}

.hidden-field {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

#interest-confirmation {
  min-height: 22px;
  color: var(--green);
  font-size: 0.9rem;
  font-weight: 750;
}

#interest-confirmation a {
  color: var(--green);
}

.landing-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 4px 2px 10px;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 650;
}

.landing-footer > div {
  display: flex;
  gap: 14px;
}

.landing-footer a {
  color: var(--green);
  font-weight: 820;
  text-decoration: none;
}

.landing-footer a:hover {
  color: var(--ink);
}

.legal-page {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(243, 245, 242, 0.96)),
    var(--paper);
}

.legal-shell {
  display: grid;
  gap: 16px;
  max-width: 960px;
  margin: 0 auto;
  padding: 22px;
}

.legal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.legal-nav .brand-lockup {
  color: var(--ink);
  text-decoration: none;
}

.legal-nav .brand-mark {
  border-color: rgba(21, 26, 24, 0.08);
  background: var(--ink);
}

.legal-nav span {
  color: var(--muted);
}

.legal-nav > div:last-child {
  display: flex;
  gap: 10px;
}

.legal-nav a:not(.brand-lockup) {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font-weight: 820;
  text-decoration: none;
}

.legal-hero,
.legal-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.legal-hero {
  padding: 34px;
}

.legal-hero h1 {
  max-width: 760px;
  margin: 8px 0 10px;
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  line-height: 0.98;
}

.legal-hero p,
.legal-card p {
  color: var(--muted);
  line-height: 1.58;
}

.legal-card {
  padding: 22px;
}

.legal-card h2 {
  margin: 0 0 8px;
  font-size: 1.18rem;
}

.legal-card p {
  margin: 0;
}

.legal-card a {
  color: var(--green);
  font-weight: 820;
}

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

.checklist-hero h1 {
  max-width: 850px;
}

.checklist-summary,
.readiness-checklist,
.checklist-cta {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.checklist-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 16px;
}

.checklist-summary article {
  display: grid;
  gap: 6px;
  padding: 14px;
  border: 1px solid #e0e8e3;
  border-radius: 8px;
  background: #f9fbfa;
}

.checklist-summary span,
.checklist-lanes li {
  color: var(--muted);
  line-height: 1.45;
}

.readiness-checklist {
  display: grid;
  grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr);
  gap: 18px;
  padding: 24px;
}

.readiness-checklist h2,
.checklist-cta h2 {
  margin: 8px 0 0;
  font-size: 2rem;
  line-height: 1.05;
}

.checklist-lanes {
  display: grid;
  gap: 10px;
}

.checklist-lanes article {
  display: grid;
  gap: 8px;
  padding: 15px;
  border: 1px solid #e0e8e3;
  border-radius: 8px;
  background: #f9fbfa;
}

.checklist-lanes article > span {
  color: var(--gold);
  font-size: 0.74rem;
  font-weight: 860;
}

.checklist-lanes h3 {
  margin: 0;
}

.checklist-lanes ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
}

.checklist-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px;
}

.checklist-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

.admin-page {
  background: var(--paper);
}

.admin-shell {
  display: grid;
  gap: 16px;
  max-width: 1060px;
  margin: 0 auto;
  padding: 18px;
}

.admin-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
}

.admin-header > div:last-child {
  display: flex;
  gap: 10px;
}

.admin-header a,
.admin-header button {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-weight: 780;
  text-decoration: none;
}

.admin-header button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.admin-shell h1 {
  margin: 4px 0 8px;
}

#empty-state {
  display: none;
  margin-top: 16px;
  padding: 16px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  color: var(--muted);
}

#empty-state.visible {
  display: block;
}

.lead-table {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.lead-table article,
.verification-table article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 100px 160px minmax(240px, 1fr);
  align-items: start;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}

.verification-table {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.verification-table article {
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
}

.lead-table h2,
.verification-table h2 {
  margin: 0 0 4px;
  font-size: 1rem;
}

.lead-table p,
.lead-table span,
.verification-table p,
.verification-table span {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.lead-table span,
.verification-table span {
  color: var(--ink);
  font-weight: 780;
}

.verification-table a,
.verification-table button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 11px;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 820;
  text-decoration: none;
}

.verification-table button {
  background: #edf4ef;
  color: var(--green);
}

@media (max-width: 1180px) {
  .shell {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .sidebar {
    position: static;
    min-height: 0;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
  }

  .launch-card {
    align-self: center;
    margin-top: 0;
    min-width: 190px;
    padding: 12px 14px;
  }

  .readiness-panel,
  .program-panel,
  .interview-panel,
  .intake-panel,
  .supplemental-panel,
  .program-database-panel,
  .report-panel,
  .actions-panel,
  .timeline-panel,
  .template-panel,
  .checklist-panel,
  .upgrade-lock,
  .panel:not(.readiness-panel, .program-panel, .interview-panel, .intake-panel, .supplemental-panel, .actions-panel, .timeline-panel, .template-panel, .checklist-panel, .program-detail-panel, .program-database-panel, .report-panel, .wide-panel),
  .wide-panel {
    grid-column: span 6;
  }

  .dashboard-column {
    grid-column: span 6;
  }

  .program-screen .program-database-panel,
  .program-screen .program-detail-panel {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .landing-band,
  .differentiator-section,
  .differentiator-grid,
  .positioning-section,
  .positioning-grid,
  .comparison-section,
  .comparison-grid,
  .offer-section,
  .interest-section,
  .support-grid,
  .checklist-summary,
  .readiness-checklist,
  .product-advantage,
  .advantage-grid,
  .casaa-prep-notice,
  .source-freshness-panel,
  .source-freshness-stats,
  .source-freshness-list article,
  .command-start,
  .command-start ol,
  .community-radar,
  .community-radar-grid,
  .average-summary-grid,
  .average-table article,
  .average-table dl,
  .competitive-panel,
  .competitive-grid,
  .advocacy-brief,
  .professional-conduct-grid,
  .organization-grid,
  .profession-event-grid,
  .state-academy-grid,
  .materials-hero,
  .statement-recommender-board,
  .plan-panel,
  .plan-grid,
  .pricing-grid,
  .strategy-grid,
  .audit-grid,
  .interview-prep-grid,
  .material-studio-grid,
  .outcome-review-grid,
  .outcome-decision-list label,
  .upgrade-lock ul {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .shell {
    padding: 12px;
    gap: 14px;
  }

  .sidebar {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: 12px;
  }

  .sidebar .launch-card {
    grid-column: auto;
    min-width: 0;
    padding: 9px 10px;
  }

  .sidebar .muted {
    display: none;
  }

  .sidebar h2 {
    margin: 3px 0 0;
    font-size: 1.15rem;
  }

  .sidebar .eyebrow {
    font-size: 0.64rem;
  }

  .brand-mark {
    width: 38px;
    height: 38px;
  }

  .launch-card strong {
    font-size: 0.92rem;
  }

  .launch-card span {
    font-size: 0.78rem;
  }

  .topbar {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }

  .shadowing-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: visible;
  }

  nav button {
    min-width: 0;
    padding: 0 9px;
  }

  .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .readiness-panel,
  .program-panel,
  .interview-panel,
  .intake-panel,
  .supplemental-panel,
  .program-database-panel,
  .report-panel,
  .actions-panel,
  .timeline-panel,
  .template-panel,
  .checklist-panel,
  .upgrade-lock,
  .panel:not(.readiness-panel, .program-panel, .interview-panel, .intake-panel, .supplemental-panel, .actions-panel, .timeline-panel, .template-panel, .checklist-panel, .program-detail-panel, .program-database-panel, .report-panel, .wide-panel),
  .wide-panel {
    grid-column: 1;
  }

  .dashboard-column {
    grid-column: 1;
  }

  .program-screen .program-database-panel,
  .program-screen .program-detail-panel {
    grid-column: 1;
  }

  .program-detail-hero,
  .program-detail-summary,
  .program-detail-grid,
  .program-detail-grid ul,
  .average-summary-grid,
  .average-table article,
  .average-table dl,
  .upgrade-lock ul {
    grid-template-columns: 1fr;
  }

  .average-table a,
  .average-table small {
    justify-self: start;
  }

  .program-detail-score {
    justify-items: start;
  }

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

  .readiness-panel h2 {
    font-size: 3rem;
  }

  .score-ring {
    width: 94px;
    height: 94px;
  }

  .score-ring span {
    width: 64px;
    height: 64px;
    font-size: 1.5rem;
  }

  .library-grid,
  .shadowing-directory,
  .strategy-grid,
  .audit-grid,
  .interview-prep-grid,
  .material-studio-grid,
  .field-row {
    grid-template-columns: 1fr;
  }

  .cycle-list li {
    grid-template-columns: 1fr;
  }

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

  .template-list article,
  .supplemental-list article {
    grid-template-columns: 1fr;
  }

  .program-table article {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .program-table .program-main {
    min-width: 0;
  }

  .program-table .program-meta {
    grid-column: 1 / -1;
  }

  .program-table .fit-meter.compact {
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }

  .database-header {
    grid-template-columns: 1fr;
  }

  .report-header,
  .report-grid,
  .report-score {
    grid-template-columns: 1fr;
  }

  .report-header {
    flex-direction: column;
  }

  .database-stats {
    justify-content: stretch;
  }

  .database-stats span {
    min-width: 0;
    flex: 1 1 150px;
  }

  .program-table article {
    gap: 10px;
  }

  .program-meta {
    gap: 6px;
  }

  .program-screen .supplemental-panel,
  .program-screen .program-panel,
  .program-screen .checklist-panel {
    grid-column: 1;
  }

  .program-card,
  .action-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .program-card .fit-meter,
  .supplemental-list article > div:last-child {
    justify-items: start;
    text-align: left;
  }

  .test-picker > div {
    flex-direction: column;
  }

  .school-groups {
    max-height: 300px;
  }

  .landing-shell {
    padding: 12px;
  }

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

  .landing-nav {
    align-items: flex-start;
    flex-direction: column;
  }

  .landing-nav > div:last-child,
  .landing-footer,
  .legal-nav,
  .legal-nav > div:last-child,
  .admin-header,
  .admin-header > div:last-child {
    align-items: stretch;
    flex-direction: column;
  }

  .hero-copy h1 {
    font-size: 3rem;
  }

  .lead-table article,
  .verification-table article {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
  }
}

@media print {
  body {
    background: #fff;
  }

  .sidebar,
  .topbar nav,
  .report-header button,
  .dashboard-grid:not([data-screen="report"]) {
    display: none !important;
  }

  .shell {
    display: block;
    padding: 0;
  }

  .panel {
    box-shadow: none;
  }
}
