:root {
  --ink: #172033;
  --muted: #657084;
  --paper: #fffaf0;
  --panel: #ffffff;
  --line: #eadfcd;
  --amber: #f8c04f;
  --green: #177d5f;
  --red: #b34a3f;
  --blue: #255c99;
}

html {
  font-size: 16px;
  min-height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  margin-bottom: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at top left, rgba(248, 192, 79, .28), transparent 34rem),
    linear-gradient(135deg, #f6efe2 0%, #eef4f8 52%, #f8efe6 100%);
}

main {
  flex: 1 0 auto;
}

footer {
  flex-shrink: 0;
  margin-top: 3rem;
  background: rgba(255, 255, 255, .72);
  backdrop-filter: blur(14px);
}

.navbar {
  background: rgba(255, 255, 255, .82) !important;
  backdrop-filter: blur(16px);
}

.navbar-brand {
  font-weight: 800;
  letter-spacing: -.02em;
}

.app-brand {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
}

.app-brand img {
  width: 2.25rem;
  height: 2.25rem;
  object-fit: contain;
}

.auth-status {
  display: flex;
  align-items: center;
  gap: .75rem;
  color: var(--muted);
  font-size: .9rem;
  font-weight: 700;
}

.auth-status form {
  margin: 0;
}

.auth-status a {
  color: var(--blue);
  font-weight: 800;
  text-decoration: none;
}

.auth-status button {
  border: 0;
  border-radius: 999px;
  padding: .42rem .72rem;
  background: var(--ink);
  color: white;
  font-weight: 800;
}

.report-win-nav-link {
  margin-left: .25rem;
  border-radius: 999px;
  background: rgba(247, 148, 30, .16);
  color: #8b4b06 !important;
  font-weight: 850;
}

.home-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, .34fr);
  gap: 1rem;
  align-items: end;
  margin: 2rem 0 1rem;
  padding: 1.75rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 20px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 18px 42px rgba(23, 32, 51, .08);
}

.home-hero h1 {
  margin: 0;
  font-size: 3rem;
  font-weight: 900;
}

.home-hero-actions {
  display: grid;
  gap: .65rem;
}

.home-hero-actions .button-link {
  width: 100%;
}

.home-priority-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1rem 0 1.5rem;
}

.home-priority-strip article {
  min-height: 8.25rem;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 16px;
  background: rgba(255, 255, 255, .82);
}

.home-priority-strip span,
.home-action-card span {
  display: block;
  color: var(--blue);
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
}

.home-priority-strip strong {
  display: block;
  margin-top: .35rem;
  font-size: 1.05rem;
  font-weight: 900;
}

.home-priority-strip small,
.home-action-card small,
.home-link-list span {
  color: var(--muted);
  line-height: 1.45;
}

.home-section-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
  margin: 1.5rem 0 .75rem;
}

.home-section-heading h2 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 900;
}

.home-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: .85rem;
  margin-bottom: 1rem;
}

.home-action-card {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: .35rem;
  min-height: 11.5rem;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .92);
  border-radius: 18px;
  background: rgba(255, 255, 255, .9);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 12px 30px rgba(23, 32, 51, .07);
  transition: transform .16s ease, box-shadow .16s ease;
}

.home-action-card:hover {
  color: var(--ink);
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(23, 32, 51, .1);
}

.home-action-card strong {
  font-size: 1.2rem;
  font-weight: 900;
}

.home-action-card.feature {
  border-color: rgba(37, 92, 153, .24);
  background: rgba(238, 244, 248, .9);
}

.home-action-card.highlight {
  border-color: rgba(248, 192, 79, .42);
  background: rgba(255, 250, 240, .94);
}

.home-action-card.muted {
  background: rgba(250, 250, 250, .88);
}

.home-action-card.admin {
  border-color: rgba(23, 32, 51, .14);
  background: rgba(239, 244, 248, .88);
}

.home-panel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.home-panel {
  padding: 1.15rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 20px;
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 12px 32px rgba(23, 32, 51, .07);
}

.home-link-list {
  display: grid;
  gap: .65rem;
}

.home-link-list a {
  display: grid;
  gap: .15rem;
  padding: .85rem;
  border: 1px solid rgba(234, 223, 205, .76);
  border-radius: 14px;
  background: rgba(255, 250, 240, .58);
  color: var(--ink);
  text-decoration: none;
}

.home-link-list a:hover {
  background: rgba(248, 192, 79, .15);
}

.home-link-list strong {
  font-weight: 900;
}

.reports-hero {
  margin-bottom: 1rem;
}

.hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem;
  align-items: center;
  margin: 2rem 0 1rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 250, 240, .88)),
    repeating-linear-gradient(45deg, transparent 0 12px, rgba(248, 192, 79, .08) 12px 13px);
  box-shadow: 0 24px 70px rgba(23, 32, 51, .11);
}

.eyebrow {
  margin: 0 0 .4rem;
  color: var(--blue);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hero-panel h1 {
  margin: 0;
  font-size: clamp(2.5rem, 7vw, 5.2rem);
  font-weight: 900;
  letter-spacing: -.07em;
}

.hero-copy {
  max-width: 48rem;
  margin: 1rem 0 0;
  color: var(--muted);
  font-size: 1.08rem;
}

.hero-status {
  display: grid;
  place-items: center;
  min-width: 9rem;
  aspect-ratio: 1;
  border-radius: 999px;
  background: var(--ink);
  color: white;
  box-shadow: inset 0 0 0 8px rgba(248, 192, 79, .24);
}

.hero-status strong {
  display: block;
  font-size: 3rem;
  line-height: 1;
}

.hero-status span {
  color: #f5dfb3;
  font-size: .86rem;
  font-weight: 700;
}

.notice-panel {
  margin-bottom: 1.5rem;
  padding: 1rem 1.2rem;
  border-left: 5px solid var(--amber);
  border-radius: 16px;
  background: rgba(255, 255, 255, .78);
}

.metrics-entry-panel {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  margin-bottom: 1.5rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 18px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 14px 34px rgba(23, 32, 51, .07);
}

.metrics-entry-panel h2 {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 900;
}

.metrics-entry-panel p:not(.eyebrow) {
  margin: .35rem 0 0;
  color: var(--muted);
}

.flash-panel {
  margin-bottom: 1rem;
  padding: .95rem 1.1rem;
  border-radius: 16px;
  font-weight: 800;
}

.flash-panel.success {
  background: rgba(23, 125, 95, .13);
  color: var(--green);
}

.flash-panel.error {
  background: rgba(179, 74, 63, .13);
  color: var(--red);
}

.login-panel {
  max-width: 36rem;
  margin: 4rem auto;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 28px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 24px 70px rgba(23, 32, 51, .11);
}

.login-logo {
  width: 5.5rem;
  height: auto;
  margin: 0 0 1rem;
}

.login-panel h1 {
  margin: 0 0 .75rem;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  letter-spacing: -.06em;
}

.error-panel {
  max-width: 46rem;
  margin: 4rem auto 1rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 250, 240, .9)),
    radial-gradient(circle at top right, rgba(179, 74, 63, .12), transparent 18rem);
  box-shadow: 0 24px 70px rgba(23, 32, 51, .11);
}

.error-panel h1 {
  margin: 0 0 .75rem;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
  letter-spacing: -.06em;
}

.error-panel p:not(.eyebrow) {
  color: var(--muted);
}

.login-panel p {
  color: var(--muted);
}

.login-form {
  display: grid;
  gap: .6rem;
  margin-top: 1.5rem;
}

.login-form label {
  font-weight: 800;
}

.login-form input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: .85rem 1rem;
  font: inherit;
}

.login-form button {
  border: 0;
  border-radius: 999px;
  padding: .85rem 1.1rem;
  background: var(--ink);
  color: white;
  font-weight: 850;
}

.form-error,
.form-success,
.field-validation-error {
  color: var(--red);
  font-weight: 750;
}

.form-error,
.form-success {
  padding: .8rem 1rem;
  border-radius: 14px;
  background: rgba(179, 74, 63, .12);
}

.form-success {
  color: var(--green);
  background: rgba(23, 125, 95, .13);
}

.report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.report-card {
  display: flex;
  flex-direction: column;
  min-height: 20rem;
  padding: 1.25rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 22px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.report-card-header {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  align-items: center;
  margin-bottom: 1rem;
}

.report-key {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .32rem .62rem;
  font-size: .76rem;
  font-weight: 800;
}

.status-pill.ready {
  background: rgba(23, 125, 95, .14);
  color: var(--green);
}

.status-pill.missing {
  background: rgba(179, 74, 63, .14);
  color: var(--red);
}

.status-pill.freshness-fresh {
  background: rgba(23, 125, 95, .14);
  color: var(--green);
}

.status-pill.freshness-stale {
  background: rgba(248, 192, 79, .24);
  color: #855d00;
}

.status-pill.freshness-needsrefresh,
.status-pill.freshness-missing {
  background: rgba(179, 74, 63, .14);
  color: var(--red);
}

.report-card h2 {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 850;
  letter-spacing: -.03em;
}

.report-card p {
  flex: 1;
  margin: .75rem 0 1rem;
  color: var(--muted);
}

.report-card dl {
  display: grid;
  gap: .55rem;
  margin: 0;
}

.report-card dl div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: .55rem;
  border-top: 1px solid var(--line);
}

.report-card dt {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
}

.report-card dd {
  margin: 0;
  text-align: right;
  font-weight: 750;
}

.report-actions,
.detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1rem;
}

.report-actions form,
.refresh-form {
  margin: 0;
}

.refresh-form {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}

.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  padding: .72rem 1rem;
  background: var(--ink);
  color: white;
  font-weight: 800;
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease;
}

.button-link:hover {
  color: white;
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(23, 32, 51, .18);
}

.button-link.secondary {
  background: #f2eadc;
  color: var(--ink);
}

.button-link.compact {
  min-height: 2rem;
  padding: .42rem .66rem;
  border-radius: 8px;
  font-size: .82rem;
}

.button-link:disabled {
  cursor: not-allowed;
  background: #dfe7ef;
  color: #64748b;
  box-shadow: none;
  transform: none;
}

.button-link:disabled:hover {
  color: #64748b;
  box-shadow: none;
  transform: none;
}

.button-link.refresh {
  background: var(--blue);
}

.button-link.refresh:disabled,
.button-link.refresh.is-refreshing {
  cursor: wait;
  opacity: .78;
  box-shadow: none;
  transform: none;
}

.button-link.refresh:disabled:hover,
.button-link.refresh.is-refreshing:hover {
  color: white;
  box-shadow: none;
  transform: none;
}

.button-link.blocked {
  cursor: not-allowed;
  background: #dfe7ef;
  color: #64748b;
  box-shadow: none;
  transform: none;
}

.button-link.blocked:hover {
  color: #64748b;
  box-shadow: none;
  transform: none;
}

.metadata-note {
  display: block;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
}

.refresh-coming-soon {
  display: inline-flex;
  align-items: center;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 800;
}

.refresh-progress-note {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 750;
}

.refresh-progress-note[hidden] {
  display: none;
}

.report-error {
  max-width: 14rem;
  color: var(--red);
  font-size: .82rem;
}

.report-detail-header {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  margin: 2rem 0 1rem;
  padding: 1.5rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 24px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.report-detail-header h1 {
  margin: .3rem 0 .5rem;
  font-size: clamp(2rem, 5vw, 3.7rem);
  font-weight: 900;
  letter-spacing: -.06em;
}

.report-detail-header p {
  max-width: 54rem;
  margin: 0;
  color: var(--muted);
}

.security-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.security-card {
  padding: 1.25rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 22px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.security-card h2 {
  margin: 0 0 .5rem;
  font-size: 1.2rem;
  font-weight: 850;
}

.security-card p {
  color: var(--muted);
}

.security-card ul {
  margin: .75rem 0 0;
  padding-left: 1.1rem;
  font-weight: 800;
}

.status-good {
  color: var(--green) !important;
  font-weight: 850;
}

.status-risk {
  color: var(--red) !important;
  font-weight: 850;
}

.muted-line {
  margin-top: .7rem !important;
  font-size: .92rem;
}

.back-link {
  color: var(--blue);
  font-size: .88rem;
  font-weight: 850;
  text-decoration: none;
}

.embedded-report-shell {
  padding: 0;
  overflow: hidden;
  border-radius: 24px;
  background: white;
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.embedded-report-scroll {
  overflow-x: auto;
  overflow-y: visible;
}

.embedded-report-content {
  min-width: 1440px;
}

.embedded-report-content > style,
.embedded-report-content > meta,
.embedded-report-content > title {
  display: none;
}

.embedded-report-content body {
  margin: 0;
  background: white;
}

.embedded-report-content section {
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
}

.embedded-report-content table {
  table-layout: auto;
  width: 100%;
}

.embedded-report-content th,
.embedded-report-content td {
  white-space: normal;
}

.embedded-report-content td:last-child,
.embedded-report-content th:last-child {
  min-width: 220px;
}

.exercise-hero {
  background:
    radial-gradient(circle at top right, rgba(37, 92, 153, .16), transparent 22rem),
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(246, 239, 226, .9));
}

.hero-button-row {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin-top: 1.2rem;
}

.exercise-demo-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .8rem;
  margin: 1rem 0 1.5rem;
}

.exercise-demo-strip article {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .25rem .75rem;
  align-items: start;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .88)),
    radial-gradient(circle at bottom left, rgba(37, 92, 153, .12), transparent 12rem);
  box-shadow: 0 12px 34px rgba(23, 32, 51, .07);
}

.exercise-demo-strip span {
  grid-row: span 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: var(--blue);
  color: white;
  font-weight: 900;
}

.exercise-demo-strip strong {
  font-size: 1rem;
}

.exercise-demo-strip small {
  color: var(--muted);
  line-height: 1.45;
}

.exercise-library-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
  margin: 1.5rem 0;
}

.exercise-action-card {
  display: grid;
  gap: .45rem;
  min-height: 12rem;
  padding: 1.25rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 24px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 250, 240, .88)),
    radial-gradient(circle at bottom right, rgba(248, 192, 79, .22), transparent 12rem);
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
  transition: transform .16s ease, box-shadow .16s ease;
}

.exercise-action-card:hover {
  color: var(--ink);
  transform: translateY(-2px);
  box-shadow: 0 20px 52px rgba(23, 32, 51, .12);
}

.exercise-action-card.muted {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .94), rgba(238, 244, 248, .9));
}

.exercise-action-card.feature {
  border-color: rgba(37, 92, 153, .25);
  background:
    radial-gradient(circle at top right, rgba(37, 92, 153, .24), transparent 13rem),
    linear-gradient(135deg, rgba(255, 255, 255, .98), rgba(231, 240, 249, .92));
}

.exercise-action-card span,
.library-card-meta span,
.library-fact-stack span {
  color: var(--blue);
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.exercise-action-card strong {
  font-size: 1.35rem;
  letter-spacing: -.03em;
}

.exercise-action-card small,
.library-list-item small {
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.45;
}

.library-data-status {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  margin: 1rem 0 1.5rem;
  padding: 1.2rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 24px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .86)),
    radial-gradient(circle at top right, rgba(37, 92, 153, .14), transparent 18rem);
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.library-data-status.sample {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 250, 240, .9)),
    radial-gradient(circle at top right, rgba(248, 192, 79, .22), transparent 18rem);
}

.library-data-status h2 {
  margin: 0 0 .35rem;
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: -.04em;
}

.library-data-status p:not(.eyebrow) {
  margin: 0;
  color: var(--muted);
}

.library-data-status dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(6.5rem, auto));
  gap: .6rem;
  margin: 0;
}

.library-data-status dl div {
  display: grid;
  gap: .2rem;
  padding: .75rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, .78);
}

.library-data-status dt {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.library-data-status dd {
  margin: 0;
  font-weight: 900;
}

.library-columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1rem;
  margin: 1rem 0;
}

.library-panel,
.library-card {
  padding: 1.25rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 24px;
  background: rgba(255, 255, 255, .93);
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.library-panel.large {
  grid-column: span 2;
}

.library-panel.science-panel {
  grid-column: span 2;
}

.section-heading h2,
.library-panel h2,
.library-card h2 {
  margin: 0 0 .7rem;
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: -.04em;
}

.section-heading .eyebrow {
  margin-bottom: .25rem;
}

.library-list {
  display: grid;
  gap: .7rem;
}

.library-list.compact {
  gap: .55rem;
}

.library-list-item {
  display: grid;
  gap: .22rem;
  padding: .85rem;
  border: 1px solid rgba(234, 223, 205, .72);
  border-radius: 18px;
  background: rgba(255, 250, 240, .62);
  color: var(--ink);
  text-decoration: none;
}

a.library-list-item:hover {
  color: var(--ink);
  background: rgba(248, 192, 79, .16);
}

.library-list-item span,
.library-mini-facts dt {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
}

.library-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}

.library-card {
  display: flex;
  flex-direction: column;
  min-height: 18rem;
}

.library-card p {
  flex: 1;
  color: var(--muted);
}

.library-card-meta,
.library-fact-stack {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .65rem;
}

.demand-score-grid {
  gap: .7rem;
}

.library-card-meta span,
.library-fact-stack span {
  border-radius: 999px;
  padding: .28rem .55rem;
  background: rgba(37, 92, 153, .11);
}

.calibration-sort-links {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: 1rem;
}

.calibration-sort-links .text-button {
  border: 1px solid rgba(37, 92, 153, .16);
  border-radius: 999px;
  padding: .45rem .7rem;
  background: rgba(255, 255, 255, .74);
}

.calibration-sort-links .text-button.active {
  background: var(--navy);
  color: white;
}

.calibration-score-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  min-width: 12rem;
}

.calibration-score-strip span,
.calibration-score-strip strong {
  border-radius: 999px;
  padding: .24rem .5rem;
  background: rgba(37, 92, 153, .1);
  font-size: .85rem;
  white-space: nowrap;
}

.calibration-score-strip strong {
  background: rgba(248, 192, 79, .18);
}

.calibration-editor-summary {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .86)),
    radial-gradient(circle at top right, rgba(37, 92, 153, .12), transparent 18rem);
}

.calibration-score-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: .65rem;
}

.calibration-score-board div,
.calibration-editor-notes div {
  display: grid;
  gap: .2rem;
  border: 1px solid rgba(234, 223, 205, .76);
  border-radius: 18px;
  padding: .8rem;
  background: rgba(255, 255, 255, .78);
}

.calibration-score-board span,
.calibration-editor-notes strong {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.calibration-score-board strong {
  font-size: 1.35rem;
}

.calibration-editor-notes {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto;
  gap: .65rem;
  align-items: stretch;
  margin-top: .8rem;
}

.calibration-editor-notes > a {
  align-self: center;
}

.articulation-impact-preview {
  flex-basis: 100%;
  border: 1px solid rgba(37, 92, 153, .16);
  border-radius: 18px;
  padding: .75rem .9rem;
  background: rgba(37, 92, 153, .08);
  color: var(--muted);
  font-weight: 750;
}

.quick-preset-panel {
  display: grid;
  gap: .75rem;
  border: 1px solid rgba(37, 92, 153, .14);
  border-radius: 20px;
  padding: 1rem;
  background:
    linear-gradient(135deg, rgba(37, 92, 153, .07), rgba(255, 255, 255, .9)),
    var(--paper);
}

.quick-preset-panel strong {
  display: block;
  margin-bottom: .25rem;
}

.quick-preset-list {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.quick-preset-list .text-button,
[data-articulation-template].text-button {
  border: 1px solid rgba(37, 92, 153, .18);
  border-radius: 999px;
  padding: .35rem .65rem;
  background: rgba(37, 92, 153, .06);
}

.context-memory-status {
  color: var(--muted);
  font-size: .84rem;
  font-weight: 750;
}

.context-memory-status.warning {
  color: #a83b2d;
}

.library-mini-facts {
  display: grid;
  gap: .5rem;
  margin: 0 0 1rem;
}

.library-mini-facts div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--line);
  padding-top: .5rem;
}

.library-mini-facts dd {
  margin: 0;
  text-align: right;
  font-weight: 800;
}

.library-search {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: .6rem;
  align-items: end;
  min-width: min(34rem, 100%);
}

.library-search label {
  grid-column: 1 / -1;
  color: var(--muted);
  font-weight: 850;
}

.library-search input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .78rem 1rem;
  background: white;
  color: var(--ink);
  font: inherit;
}

.pathway-pattern-form select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .78rem 1rem;
  background: white;
  color: var(--ink);
  font: inherit;
}

.pathway-status {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .88)),
    radial-gradient(circle at top right, rgba(23, 125, 95, .16), transparent 18rem);
}

.pathway-completion-panel {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .97), rgba(238, 244, 248, .82)),
    radial-gradient(circle at top right, rgba(37, 92, 153, .12), transparent 20rem);
}

.pathway-completion-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .85rem;
  margin: 1rem 0 1.25rem;
}

.pathway-completion-summary-grid article {
  display: grid;
  gap: .15rem;
  border: 1px solid rgba(222, 210, 190, .88);
  border-radius: 20px;
  padding: .9rem;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 12px 28px rgba(24, 35, 58, .07);
}

.pathway-completion-summary-grid span,
.completion-priority,
.completion-check {
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pathway-completion-summary-grid span {
  color: var(--muted);
}

.pathway-completion-summary-grid strong {
  color: var(--ink);
  font-size: 1.65rem;
  font-weight: 950;
  letter-spacing: -.04em;
}

.pathway-completion-summary-grid small {
  color: var(--muted);
  font-weight: 750;
}

.pathway-completion-table td {
  vertical-align: top;
}

.pathway-completion-table td:first-child {
  min-width: 12rem;
}

.pathway-completion-table td:first-child a {
  display: block;
  font-weight: 950;
}

.pathway-completion-table td:first-child small {
  display: block;
  margin-top: .2rem;
  color: var(--muted);
  font-weight: 800;
}

.completion-meter {
  overflow: hidden;
  width: 7rem;
  height: .55rem;
  border-radius: 999px;
  background: rgba(24, 35, 58, .12);
}

.completion-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--blue), var(--green));
}

.completion-priority,
.completion-check {
  display: inline-flex;
  gap: .25rem;
  align-items: center;
  border-radius: 999px;
  padding: .32rem .55rem;
}

.completion-priority.ready,
.completion-check.done {
  background: rgba(23, 125, 95, .12);
  color: var(--green);
}

.completion-priority.medium,
.completion-check.warn {
  background: rgba(248, 192, 79, .22);
  color: #8a5a00;
}

.completion-priority.high,
.completion-check.missing {
  background: rgba(179, 74, 63, .12);
  color: var(--red);
}

.completion-check-list {
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
  min-width: min(34rem, 100%);
}

.completion-check small {
  letter-spacing: 0;
  text-transform: none;
}

.completion-next-action {
  display: grid;
  gap: .55rem;
  min-width: 13rem;
}

.completion-next-action strong {
  color: var(--ink);
  font-weight: 900;
}

.completion-quick-fix-list {
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
}

.quick-fix-link {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(37, 92, 153, .22);
  border-radius: 999px;
  padding: .36rem .62rem;
  background: rgba(255, 255, 255, .76);
  color: var(--blue);
  font-size: .78rem;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.quick-fix-link:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(24, 35, 58, .1);
}

.quick-fix-link.model,
.quick-fix-link.science {
  border-color: rgba(23, 125, 95, .24);
  color: var(--green);
}

.quick-fix-link.pathway {
  border-color: rgba(248, 192, 79, .42);
  color: #8a5a00;
}

.quick-fix-link.publish {
  border-color: rgba(179, 74, 63, .2);
  color: var(--red);
}

.library-panel[id] {
  scroll-margin-top: 6rem;
}

.pathway-builder-panel {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .97), rgba(250, 244, 234, .78)),
    radial-gradient(circle at top right, rgba(248, 192, 79, .14), transparent 18rem);
}

.pathway-builder-form {
  align-items: start;
}

.pathway-builder-table td {
  vertical-align: top;
}

.pathway-builder-table td:nth-child(1),
.pathway-builder-table td:nth-child(3) {
  min-width: 11rem;
}

.pathway-builder-table td:nth-child(4) {
  min-width: 15rem;
}

.pathway-builder-table td strong,
.pathway-builder-table td a {
  font-weight: 950;
}

.pathway-builder-table td small {
  display: block;
  margin-top: .25rem;
  color: var(--muted);
  font-weight: 750;
}

.relationship-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: .24rem .5rem;
  background: rgba(37, 92, 153, .1);
  color: var(--blue);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.relationship-chip.gate {
  margin-left: .35rem;
  background: rgba(179, 74, 63, .12);
  color: var(--red);
}

.relationship-chip.inside {
  background: rgba(23, 125, 95, .12);
  color: var(--green);
}

.relationship-chip.outside {
  background: rgba(248, 192, 79, .22);
  color: #8a5a00;
}

.pathway-builder-edit {
  min-width: min(38rem, 78vw);
}

.pathway-builder-edit summary {
  cursor: pointer;
}

.pathway-builder-edit .library-edit-form {
  margin-top: .75rem;
  padding: .85rem;
  border: 1px solid rgba(222, 210, 190, .9);
  border-radius: 18px;
  background: rgba(255, 255, 255, .82);
}

.pathway-node-actions.compact {
  gap: .35rem;
}

.pathway-node-actions.compact .button-link {
  padding: .42rem .72rem;
  font-size: .8rem;
}

.pathway-map-panel {
  overflow: hidden;
}

.pathway-diagram-panel {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .97), rgba(250, 244, 234, .78)),
    radial-gradient(circle at top left, rgba(37, 92, 153, .12), transparent 22rem),
    radial-gradient(circle at bottom right, rgba(23, 125, 95, .1), transparent 20rem);
}

.pathway-chart-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid rgba(222, 210, 190, .9);
  border-radius: 24px;
  background:
    linear-gradient(90deg, rgba(24, 35, 58, .035) 1px, transparent 1px),
    linear-gradient(rgba(24, 35, 58, .035) 1px, transparent 1px),
    rgba(255, 255, 255, .72);
  background-size: 80px 80px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.pathway-chart {
  display: block;
}

.pathway-chart-edge {
  fill: none;
  stroke: rgba(37, 92, 153, .52);
  stroke-width: 3;
  stroke-linecap: round;
}

.pathway-chart-edge.gate {
  stroke: rgba(23, 125, 95, .7);
  stroke-dasharray: 8 8;
}

.pathway-chart-edge.supporting {
  stroke: rgba(160, 98, 32, .78);
  stroke-dasharray: 5 7;
  stroke-width: 2.5;
}

.pathway-chart-arrow-head {
  fill: rgba(37, 92, 153, .72);
}

.pathway-chart-arrow-head.gate {
  fill: rgba(23, 125, 95, .82);
}

.pathway-chart-arrow-head.supporting {
  fill: rgba(160, 98, 32, .88);
}

.pathway-chart-empty {
  color: var(--muted);
  font-size: 16px;
  font-weight: 850;
}

.pathway-chart-node {
  --difficulty-start: #4b165f;
  --difficulty-end: #315f96;
  --difficulty-accent: #315f96;
  height: 100%;
  border: 1px solid color-mix(in srgb, var(--difficulty-accent) 46%, white);
  border-radius: 20px;
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--difficulty-start) 18%, white),
      color-mix(in srgb, var(--difficulty-end) 34%, white)),
    radial-gradient(circle at top right, rgba(255, 255, 255, .58), transparent 7rem);
  box-shadow: 0 14px 28px rgba(24, 35, 58, .12);
  overflow: hidden;
}

.pathway-chart-node a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .18rem .55rem;
  height: 100%;
  padding: .72rem .82rem .66rem;
  color: var(--ink);
  text-decoration: none;
}

.pathway-chart-node-score {
  grid-row: span 2;
  align-self: start;
  border-radius: 999px;
  min-width: 2.35rem;
  padding: .28rem .5rem;
  background: color-mix(in srgb, var(--difficulty-accent) 82%, var(--navy));
  color: white;
  font-size: .74rem;
  font-weight: 950;
  text-align: center;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--difficulty-accent) 18%, transparent);
}

.pathway-chart-node strong {
  min-width: 0;
  overflow: hidden;
  color: var(--ink);
  font-size: .92rem;
  font-weight: 950;
  letter-spacing: -.035em;
  line-height: 1.12;
  text-overflow: ellipsis;
}

.pathway-chart-node small {
  grid-column: 2;
  overflow: hidden;
  color: color-mix(in srgb, var(--muted) 82%, var(--navy));
  font-size: .72rem;
  font-weight: 850;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pathway-chart-node-range {
  grid-column: 1 / -1;
  align-self: end;
  height: .34rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--difficulty-start), var(--difficulty-end));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35);
}

.pathway-chart-node.foundation {
  border-color: color-mix(in srgb, var(--difficulty-accent) 38%, white);
}

.pathway-chart-node.intermediate {
  border-color: color-mix(in srgb, var(--difficulty-accent) 42%, white);
}

.pathway-chart-node.advanced {
  border-color: color-mix(in srgb, var(--difficulty-accent) 46%, white);
}

.pathway-chart-node.elite {
  border-color: color-mix(in srgb, var(--difficulty-accent) 55%, white);
}

.pathway-chart-node.needs-review {
  border-color: rgba(179, 74, 63, .38);
  box-shadow:
    0 14px 28px rgba(24, 35, 58, .12),
    inset 0 0 0 2px rgba(179, 74, 63, .12);
}

.pathway-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: 1rem;
}

.pathway-chart-legend span {
  display: inline-flex;
  gap: .38rem;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .34rem .62rem;
  background: rgba(255, 255, 255, .72);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
}

.pathway-chart-legend i {
  display: inline-block;
  width: .7rem;
  height: .7rem;
  border-radius: 999px;
  background: var(--green);
}

.pathway-chart-legend .difficulty-gradient i {
  width: 2.6rem;
  background: linear-gradient(90deg, #4b165f, #315f96, #1f9d8a);
}

.pathway-chart-legend .difficulty-gradient.high i {
  background: linear-gradient(90deg, #1f9d8a, #66bd63, #f2de2e, #f9b33d);
}

.pathway-chart-legend i.range {
  width: 1.8rem;
  background: linear-gradient(90deg, #315f96, #66bd63);
}

.pathway-chart-legend i.needs-review {
  background: var(--red);
}

.pathway-chart-legend i.supporting {
  background: repeating-linear-gradient(90deg, rgba(160, 98, 32, .88) 0 4px, transparent 4px 7px);
}

.pathway-node-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
}

.pathway-node-card {
  display: grid;
  gap: .75rem;
  align-content: start;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 22px;
  padding: 1rem;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 250, 240, .72)),
    radial-gradient(circle at top right, rgba(248, 192, 79, .18), transparent 12rem);
}

.pathway-node-card.needs-review {
  border-color: rgba(179, 74, 63, .28);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 244, 239, .76)),
    radial-gradient(circle at top right, rgba(179, 74, 63, .12), transparent 12rem);
}

.pathway-node-card h3 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: -.035em;
}

.pathway-node-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.45;
}

.pathway-node-topline,
.pathway-score-strip,
.pathway-node-actions,
.pathway-edge-item {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}

.pathway-node-topline {
  justify-content: space-between;
}

.pathway-node-topline span,
.pathway-score-strip span,
.pathway-gap-item > span {
  border-radius: 999px;
  padding: .26rem .55rem;
  background: rgba(37, 92, 153, .1);
  color: var(--blue);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pathway-node-topline strong {
  border-radius: 999px;
  padding: .35rem .65rem;
  background: var(--navy);
  color: white;
  font-weight: 900;
}

.pathway-score-strip span:nth-child(1) {
  background: rgba(23, 125, 95, .12);
  color: var(--green);
}

.pathway-score-strip span:nth-child(2) {
  background: rgba(248, 192, 79, .22);
  color: #8a5a00;
}

.pathway-score-strip span:nth-child(3) {
  background: rgba(37, 92, 153, .12);
  color: var(--blue);
}

.pathway-node-facts {
  display: grid;
  gap: .4rem;
  margin: 0;
}

.pathway-node-facts div {
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  border-top: 1px solid var(--line);
  padding-top: .4rem;
}

.pathway-node-facts dt {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
  text-transform: uppercase;
}

.pathway-node-facts dd {
  margin: 0;
  text-align: right;
  font-weight: 850;
}

.pathway-link-list,
.pathway-edge-list,
.pathway-gap-list {
  display: grid;
  gap: .55rem;
}

.pathway-link-list {
  border-top: 1px solid var(--line);
  padding-top: .65rem;
}

.pathway-link-list strong {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pathway-link-list a {
  width: fit-content;
  font-weight: 850;
}

.pathway-edge-item,
.pathway-gap-item {
  border: 1px solid rgba(234, 223, 205, .82);
  border-radius: 18px;
  padding: .75rem;
  background: rgba(255, 250, 240, .62);
}

.pathway-edge-item span[aria-hidden="true"] {
  color: var(--muted);
  font-weight: 900;
}

.pathway-edge-item small {
  border-radius: 999px;
  padding: .22rem .45rem;
  background: rgba(23, 125, 95, .12);
  color: var(--green);
  font-weight: 900;
}

.pathway-gap-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .75rem;
}

.pathway-gap-item.high > span {
  background: rgba(179, 74, 63, .12);
  color: var(--red);
}

.pathway-gap-item p {
  margin: 0 0 .25rem;
  font-weight: 850;
}

.pathway-gap-item small {
  color: var(--muted);
}

.library-detail-header {
  align-items: stretch;
}

.library-fact-stack {
  align-content: start;
  justify-content: flex-end;
  min-width: 14rem;
}

.exercise-view-switch {
  display: flex;
  gap: .25rem;
  width: 100%;
  justify-content: flex-end;
}

.exercise-view-switch a {
  border: 1px solid rgba(37, 92, 153, .18);
  border-radius: 999px;
  padding: .42rem .72rem;
  background: rgba(255, 255, 255, .82);
  color: var(--navy);
  font-weight: 900;
  text-decoration: none;
}

.exercise-view-switch a.active {
  background: var(--navy);
  color: white;
}

.coach-overview-panel {
  border-color: rgba(23, 125, 95, .22);
  background:
    radial-gradient(circle at top left, rgba(23, 125, 95, .12), transparent 30%),
    rgba(255, 255, 255, .94);
}

.model-overview-panel {
  border-color: rgba(37, 92, 153, .2);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .76)),
    var(--paper);
}

.model-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.model-overview-grid a {
  display: grid;
  gap: .25rem;
  padding: .8rem;
  border: 1px solid rgba(37, 92, 153, .14);
  border-radius: 18px;
  background: rgba(255, 255, 255, .78);
  color: var(--navy);
  text-decoration: none;
}

.model-overview-grid span {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.model-overview-grid strong {
  font-size: 1.45rem;
  line-height: 1;
}

.model-disclosure {
  margin-top: 1rem;
}

.model-disclosure[open] {
  padding-bottom: 1rem;
}

.model-disclosure-wide {
  padding: 1.1rem;
  border: 1px solid rgba(222, 210, 190, .88);
  border-radius: 24px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 18px 52px rgba(24, 35, 58, .08);
}

.model-disclosure-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
}

.model-disclosure-summary::-webkit-details-marker {
  display: none;
}

.model-disclosure-summary::after {
  content: "+";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 999px;
  background: rgba(37, 92, 153, .1);
  color: var(--blue);
  font-weight: 950;
}

.model-disclosure[open] > .model-disclosure-summary::after,
.model-disclosure-wide[open] > .model-disclosure-summary::after {
  content: "-";
}

.model-disclosure-summary span {
  display: grid;
  gap: .18rem;
}

.model-disclosure-summary small {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.model-disclosure-summary strong {
  color: var(--ink);
  font-size: 1.06rem;
  font-weight: 950;
}

.model-disclosure-summary em {
  color: var(--muted);
  font-style: normal;
  font-weight: 720;
}

.model-disclosure-summary b {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: .34rem .6rem;
  background: rgba(23, 125, 95, .11);
  color: var(--green);
  font-size: .78rem;
  font-weight: 900;
}

.model-disclosure > .library-table-wrap,
.model-disclosure > .library-subsection,
.model-disclosure > .library-detail-grid,
.model-disclosure > .science-muscle-list,
.model-disclosure > h3,
.model-disclosure > h4,
.model-disclosure > p,
.model-disclosure > .form-help,
.model-disclosure > .articulation-muscle-map,
.model-disclosure-wide > .library-columns {
  margin-top: 1rem;
}

.edit-model-disclosure > form,
.edit-model-disclosure > details,
.edit-model-disclosure > .library-admin-two-column,
.edit-model-disclosure > .library-card-meta,
.edit-model-disclosure > .inline-action-form,
.edit-model-disclosure > .copy-science-form,
.edit-model-disclosure > .bulk-articulation-form {
  margin-top: 1rem;
}

.edit-model-overview-panel {
  margin-top: 1rem;
}

.model-legacy-columns .library-subsection {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.coach-disclosure {
  margin-top: 1rem;
}

.coach-disclosure[open] {
  padding-bottom: 1rem;
}

.coach-disclosure-summary {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  list-style: none;
}

.coach-disclosure-summary::-webkit-details-marker {
  display: none;
}

.coach-disclosure-summary::after {
  content: "+";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 999px;
  background: rgba(23, 125, 95, .11);
  color: var(--green);
  font-weight: 950;
}

.coach-disclosure[open] > .coach-disclosure-summary::after {
  content: "-";
}

.coach-disclosure-summary span {
  display: grid;
  flex: 1 1 12rem;
  gap: .18rem;
  min-width: 0;
}

.coach-disclosure-summary small {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coach-disclosure-summary strong {
  color: var(--ink);
  font-size: 1.08rem;
  font-weight: 950;
  line-height: 1.18;
}

.coach-disclosure-summary em {
  color: var(--muted);
  font-size: .9rem;
  font-style: normal;
  font-weight: 720;
  line-height: 1.35;
}

.coach-disclosure-summary b {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: .32rem .58rem;
  background: rgba(37, 92, 153, .1);
  color: var(--navy);
  font-size: .76rem;
  font-weight: 900;
}

.coach-disclosure > .coach-score-grid,
.coach-disclosure > .exercise-media-grid,
.coach-disclosure > .coach-procedure-list,
.coach-disclosure > .coach-copy-stack,
.coach-disclosure > .coach-note-list,
.coach-disclosure > .coach-link-list,
.coach-disclosure > .coach-preset-grid,
.coach-disclosure > .coach-variation-grid,
.coach-disclosure > .form-help,
.coach-disclosure > .empty-state {
  margin-top: 1rem;
}

.coach-copy-stack {
  display: grid;
  gap: .8rem;
}

.coach-copy-stack p {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.02rem, 4vw, 1.16rem);
  line-height: 1.58;
}

.coach-note-list {
  display: grid;
  gap: .95rem;
}

.coach-score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.coach-score-grid article {
  display: grid;
  gap: .2rem;
  border: 1px solid rgba(37, 92, 153, .12);
  border-radius: 20px;
  padding: .9rem;
  background: rgba(255, 255, 255, .78);
}

.coach-score-grid span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coach-score-grid strong {
  font-size: 1.65rem;
  line-height: 1;
}

.coach-main-grid .library-panel p {
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.62;
}

.empty-state {
  margin: 0;
  color: var(--muted);
  font-weight: 800;
}

.coach-procedure-list {
  display: grid;
  gap: .75rem;
}

.coach-procedure-step {
  display: grid;
  gap: .85rem;
  border: 1px solid rgba(37, 92, 153, .14);
  border-radius: 8px;
  padding: .85rem;
  background: rgba(255, 255, 255, .76);
}

.coach-procedure-step-label {
  display: grid;
  align-content: start;
  gap: .2rem;
}

.coach-procedure-step-label span {
  width: fit-content;
  border-radius: 999px;
  padding: .24rem .56rem;
  background: rgba(37, 92, 153, .1);
  color: var(--navy);
  font-size: .78rem;
  font-weight: 950;
}

.coach-procedure-step-label small {
  color: var(--muted);
  font-weight: 850;
}

.coach-procedure-step-body {
  display: grid;
  gap: .55rem;
}

.coach-procedure-step-body p {
  margin: 0;
  color: var(--ink);
  line-height: 1.55;
}

.coach-procedure-note {
  display: grid;
  gap: .3rem;
  align-items: start;
}

.coach-procedure-note span {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 950;
  text-transform: uppercase;
}

.coach-procedure-note strong {
  color: var(--navy);
  font-size: clamp(1.02rem, 4.2vw, 1.18rem);
  line-height: 1.35;
}

.coach-procedure-note.warning strong {
  color: #8a3b18;
}

.coach-media-panel {
  display: grid;
  gap: 1rem;
}

.exercise-media-grid,
.exercise-media-list {
  display: grid;
  gap: .85rem;
}

.exercise-media-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.exercise-media-list.compact {
  gap: .65rem;
}

.exercise-media-card {
  display: grid;
  gap: .65rem;
  overflow: hidden;
  border: 1px solid rgba(37, 92, 153, .14);
  border-radius: 8px;
  background: rgba(255, 255, 255, .86);
}

.exercise-media-card.compact {
  grid-template-columns: minmax(140px, .42fr) 1fr;
  align-items: stretch;
}

.exercise-video-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 0;
  background: #101820;
}

.exercise-video-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.exercise-media-copy {
  display: grid;
  align-content: start;
  gap: .25rem;
  padding: .75rem;
}

.exercise-media-copy strong {
  color: var(--navy);
}

.exercise-media-copy p {
  margin: 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.45;
}

.component-cue-panel {
  display: grid;
  gap: .75rem;
  margin: 1rem 0;
  padding: .85rem;
  border: 1px solid rgba(37, 92, 153, .16);
  border-radius: 8px;
  background: rgba(247, 250, 255, .78);
}

.component-cue-heading {
  display: grid;
  gap: .2rem;
}

.component-cue-heading strong {
  color: var(--navy);
  font-size: .9rem;
  font-weight: 950;
}

.component-cue-heading span {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 760;
  line-height: 1.35;
}

.component-cue-list {
  display: grid;
  gap: .55rem;
}

.component-cue-card {
  display: grid;
  gap: .4rem;
  padding: .7rem;
  border: 1px solid rgba(37, 92, 153, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .9);
}

.component-cue-meta,
.component-cue-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  align-items: baseline;
}

.component-cue-meta span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 950;
  text-transform: uppercase;
}

.component-cue-meta strong {
  color: var(--green);
  font-size: .8rem;
}

.component-cue-meta small {
  color: var(--muted);
  font-weight: 760;
}

.component-cue-card p {
  margin: 0;
  color: var(--ink);
  font-weight: 830;
  line-height: 1.45;
}

.component-cue-actions form,
.component-cue-add-form {
  margin: 0;
}

.suggested-cue-panel {
  display: grid;
  gap: .75rem;
  margin: 1rem 0;
  padding: .85rem;
  border: 1px solid rgba(23, 125, 95, .18);
  border-radius: 8px;
  background: rgba(246, 252, 249, .76);
}

.suggested-cue-heading {
  display: grid;
  gap: .2rem;
}

.suggested-cue-heading strong {
  color: var(--green);
  font-size: .9rem;
  font-weight: 950;
}

.suggested-cue-heading span,
.suggested-cue-card small {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 760;
  line-height: 1.35;
}

.suggested-cue-list {
  display: grid;
  gap: .65rem;
}

.suggested-cue-card {
  display: grid;
  gap: .45rem;
  padding: .75rem;
  border: 1px solid rgba(37, 92, 153, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .86);
}

.suggested-cue-source {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  align-items: baseline;
}

.suggested-cue-source span,
.suggested-cue-fault span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 950;
  text-transform: uppercase;
}

.suggested-cue-source strong {
  color: var(--navy);
}

.suggested-cue-card p {
  margin: 0;
  color: var(--ink);
  font-weight: 820;
  line-height: 1.45;
}

.suggested-cue-fault {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .5rem;
  align-items: baseline;
}

.suggested-cue-fault strong {
  color: #8a3b18;
}

.suggested-cue-card form {
  margin: .1rem 0 0;
}

.coach-link-list {
  display: grid;
  gap: .85rem;
}

.coach-link-card {
  display: grid;
  gap: .35rem;
  border-top: 1px solid rgba(234, 223, 205, .9);
  padding-top: .85rem;
  background: transparent;
}

.coach-link-card:first-child {
  border-top: 0;
  padding-top: 0;
}

.coach-link-card a {
  color: var(--ink);
  font-size: clamp(1.02rem, 4.1vw, 1.18rem);
  font-weight: 950;
  line-height: 1.35;
  text-decoration: none;
}

.coach-link-card span {
  width: fit-content;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.coach-link-card p {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.45;
}

.coach-link-card small {
  color: #8a3b18;
  font-weight: 850;
}

.coach-variation-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: .8rem;
  margin-top: .75rem;
}

.coach-preset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: .8rem;
  margin-top: .75rem;
}

.coach-preset-card {
  display: grid;
  gap: .7rem;
  border: 1px solid rgba(37, 92, 153, .16);
  border-radius: 8px;
  padding: .95rem;
  background: rgba(255, 255, 255, .88);
}

.coach-preset-card > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
}

.coach-preset-card h3 {
  margin: 0;
}

.coach-preset-card p {
  margin: 0;
  color: var(--muted);
}

.coach-preset-card span {
  border-radius: 999px;
  padding: .24rem .5rem;
  background: rgba(23, 125, 95, .11);
  color: var(--green);
  font-size: .74rem;
  font-weight: 900;
}

.preset-value-list {
  display: grid;
  gap: .45rem;
  margin: 0;
}

.preset-value-list div,
.preset-value-list span {
  display: grid;
  gap: .15rem;
  border-top: 1px solid rgba(234, 223, 205, .8);
  padding-top: .45rem;
}

.preset-value-list.compact {
  gap: .35rem;
}

.preset-value-list.compact div,
.preset-value-list.compact span {
  border-top: 0;
  padding-top: 0;
}

.preset-value-list dt {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
}

.preset-value-list dd {
  margin: 0;
  font-weight: 850;
}

.preset-value-list form {
  margin-top: .1rem;
}

.coach-variation-card {
  border: 1px solid rgba(37, 92, 153, .14);
  border-radius: 8px;
  padding: .9rem;
  background: rgba(255, 255, 255, .86);
}

.coach-variation-card p {
  color: var(--muted);
}

.library-detail-grid,
.scaling-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.library-panel h3,
.scaling-card h3 {
  margin: .5rem 0 .55rem;
  font-size: 1rem;
  font-weight: 900;
}

.library-subsection {
  display: grid;
  gap: .65rem;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.library-subsection p {
  margin: 0;
  color: var(--muted);
}

.library-admin-advanced {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.library-admin-advanced summary {
  width: fit-content;
}

.library-chip-list,
.library-plain-list {
  display: grid;
  gap: .45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.library-chip-list li {
  border-radius: 16px;
  padding: .65rem .75rem;
  background: rgba(23, 125, 95, .1);
  color: var(--green);
  font-weight: 800;
}

.library-chip-list.warning li {
  background: rgba(179, 74, 63, .1);
  color: var(--red);
}

.library-plain-list li {
  border-bottom: 1px solid var(--line);
  padding-bottom: .45rem;
  color: var(--muted);
  font-weight: 750;
}

.science-muscle-list {
  display: grid;
  gap: .55rem;
  margin-bottom: 1rem;
}

.science-muscle-group-heading {
  margin: 1rem 0 .45rem;
  color: var(--muted);
  font-size: .88rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.science-muscle-item {
  display: grid;
  grid-template-columns: minmax(11rem, 1.3fr) minmax(7rem, .65fr) minmax(9rem, 1fr) minmax(12rem, 1.1fr) minmax(12rem, 1.2fr) minmax(5rem, .45fr);
  gap: .7rem;
  align-items: start;
  padding: .8rem;
  border: 1px solid rgba(234, 223, 205, .82);
  border-radius: 18px;
  background: rgba(255, 250, 240, .58);
}

.science-muscle-item.stretch {
  background: rgba(238, 244, 248, .62);
}

.science-muscle-item.stabiliser {
  background:
    linear-gradient(135deg, rgba(246, 238, 226, .72), rgba(255, 255, 255, .92)),
    var(--paper);
}

.science-muscle-main,
.science-muscle-detail {
  display: grid;
  gap: .15rem;
}

.science-muscle-main strong,
.science-muscle-detail strong {
  font-weight: 850;
}

.science-muscle-main span,
.science-muscle-detail span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.science-muscle-detail.context strong {
  color: var(--muted);
  font-weight: 750;
}

.science-explainer {
  margin: -.25rem 0 .8rem;
  color: var(--muted);
  font-weight: 720;
}

.articulation-muscle-map {
  display: grid;
  gap: .75rem;
  margin-bottom: 1.2rem;
}

.articulation-muscle-card {
  padding: .95rem;
  border: 1px solid rgba(37, 92, 153, .16);
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(238, 244, 248, .78), rgba(255, 255, 255, .94)),
    var(--paper);
}

.articulation-muscle-card p {
  margin: .45rem 0 .75rem;
  color: var(--muted);
  font-weight: 720;
}

.articulation-muscle-head {
  display: flex;
  gap: 1rem;
  align-items: start;
  justify-content: space-between;
}

.articulation-muscle-head > div {
  display: grid;
  gap: .2rem;
}

.articulation-muscle-head strong {
  font-weight: 900;
}

.articulation-muscle-head span {
  color: var(--muted);
  font-weight: 800;
}

.articulation-muscle-head code {
  width: fit-content;
  color: var(--pink);
  font-weight: 800;
}

.articulation-muscle-roles {
  display: grid;
  gap: .5rem;
}

.articulation-muscle-role {
  display: grid;
  grid-template-columns: minmax(7rem, .35fr) 1fr;
  gap: .7rem;
  align-items: start;
  padding-top: .5rem;
  border-top: 1px solid rgba(234, 223, 205, .82);
}

.articulation-muscle-role strong {
  font-weight: 820;
}

.role-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: .28rem .55rem;
  font-size: .76rem;
  font-weight: 900;
}

.role-pill.primary {
  background: rgba(23, 125, 95, .14);
  color: var(--green);
}

.role-pill.secondary,
.role-pill.synergist {
  background: rgba(37, 92, 153, .12);
  color: var(--blue);
}

.role-pill.stabiliser {
  background: rgba(248, 192, 79, .22);
  color: #855d00;
}

.role-pill.unknown {
  background: rgba(101, 112, 132, .12);
  color: var(--muted);
}

.scaling-card {
  padding: 1rem;
  border-radius: 18px;
  background: rgba(238, 244, 248, .72);
}

.scaling-card p {
  margin: .4rem 0;
  color: var(--muted);
}

.scale-steps {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .75rem;
}

.scale-steps span {
  align-self: start;
  border-radius: 999px;
  padding: .3rem .55rem;
  background: white;
  font-size: .82rem;
  font-weight: 850;
}

.scale-steps > .exercise-media-list {
  flex-basis: 100%;
}

.safety-note {
  display: grid;
  gap: .25rem;
  margin-top: 1rem;
  padding: 1rem;
  border-left: 5px solid var(--amber);
  border-radius: 18px;
  background: rgba(248, 192, 79, .13);
}

.safety-note span {
  color: var(--muted);
}

.library-table-wrap {
  overflow-x: auto;
}

.library-table {
  width: 100%;
  border-collapse: collapse;
}

.library-table th,
.library-table td {
  padding: .85rem;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}

.library-table th {
  background: rgba(37, 92, 153, .1);
  font-size: .82rem;
  text-transform: uppercase;
}

.library-table a {
  color: var(--blue);
  font-weight: 850;
  text-decoration: none;
}

.muted-small {
  margin-top: .2rem;
  color: var(--muted);
  font-size: .85rem;
}

.library-admin-two-column {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 1.5rem;
}

.inline-edit-grid {
  display: grid;
  grid-template-columns: minmax(9rem, 1fr) minmax(12rem, 1.4fr) minmax(9rem, 1fr) minmax(9rem, 1fr) 5rem auto;
  gap: .6rem;
  align-items: center;
}

.inline-edit-grid input,
.inline-edit-grid select {
  min-width: 0;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.compact-list {
  margin: 0;
  padding-left: 1.1rem;
}

.compact-list li + li {
  margin-top: .25rem;
}

.library-edit-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.library-edit-form.compact {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}

.copy-science-form {
  border: 1px solid rgba(37, 92, 153, .18);
  border-radius: 20px;
  padding: 1rem;
  background:
    linear-gradient(135deg, rgba(37, 92, 153, .08), rgba(255, 255, 255, .92)),
    var(--paper);
}

.bulk-articulation-form {
  border: 1px solid rgba(37, 92, 153, .18);
  border-radius: 20px;
  padding: 1rem;
  background:
    linear-gradient(135deg, rgba(255, 191, 82, .13), rgba(255, 255, 255, .94)),
    var(--paper);
}

.bulk-selection-toolbar {
  align-items: start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.bulk-selection-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
}

.bulk-selection-actions select {
  min-width: 12rem;
}

.bulk-update-field {
  display: grid;
  gap: .45rem;
}

.compact-checkbox {
  min-height: 2.7rem;
}

.bulk-articulation-checkbox {
  height: 1.05rem;
  width: 1.05rem;
}

.library-edit-form .form-row {
  display: grid;
  gap: .35rem;
}

.library-edit-form .form-row.full,
.library-edit-form .checkbox-row.full,
.library-edit-form .form-help.full,
.library-edit-form .report-actions.full {
  grid-column: 1 / -1;
}

.library-edit-form label {
  color: var(--ink);
  font-weight: 850;
}

.library-edit-form .sub-field-label {
  margin-top: .35rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 850;
}

.library-edit-form input,
.library-edit-form select,
.library-edit-form textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: .78rem .9rem;
  background: white;
  color: var(--ink);
  font: inherit;
}

.library-edit-form textarea {
  resize: vertical;
}

.library-edit-form .form-help {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.inline-action-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  margin: .9rem 0 1.1rem;
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--muted);
  font-weight: 750;
}

.checkbox-row input {
  width: auto;
}

.checkbox-grid {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.text-button {
  border: 0;
  background: transparent;
  color: var(--blue);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
  padding: 0;
}

.text-button.danger {
  color: #a13f35;
}

.marketing-hero {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .9)),
    radial-gradient(circle at top right, rgba(247, 148, 30, .22), transparent 19rem);
}

.marketing-table-panel,
.marketing-preview-shell,
.marketing-brief-panel {
  margin-top: 1rem;
}

.marketing-table-panel {
  padding: 1.25rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 24px;
  background: rgba(255, 255, 255, .93);
  box-shadow: 0 14px 40px rgba(23, 32, 51, .08);
}

.marketing-table td {
  min-width: 10rem;
}

.marketing-table td:first-child {
  min-width: 18rem;
}

.marketing-campaign-link {
  display: inline-block;
  color: var(--ink);
  font-weight: 900;
  text-decoration: none;
}

.marketing-campaign-link:hover {
  color: var(--blue);
  text-decoration: underline;
}

.marketing-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  align-items: center;
}

.marketing-row-actions form {
  margin: 0;
}

.marketing-row-actions button:disabled {
  color: var(--muted);
  cursor: not-allowed;
}

.marketing-performance-mini {
  display: grid;
  gap: .18rem;
  min-width: 8rem;
}

.marketing-performance-mini span {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
}

.marketing-checklist-form {
  display: grid;
  gap: .35rem;
  min-width: 12rem;
}

.marketing-checklist-form label {
  display: flex;
  gap: .45rem;
  align-items: center;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.25;
}

.marketing-checklist-form input {
  width: auto;
}

.marketing-checklist-form button {
  width: fit-content;
}

.marketing-error {
  display: block;
  max-width: 16rem;
  margin-top: .35rem;
  color: var(--red);
  font-size: .82rem;
  font-weight: 760;
}

.marketing-detail-header {
  align-items: flex-start;
}

.marketing-detail-actions form {
  margin: 0;
}

.marketing-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1rem;
  align-items: start;
  margin-top: 1rem;
}

.marketing-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: .8rem;
  margin: 0;
}

.marketing-summary-grid div {
  min-width: 0;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--line);
}

.marketing-summary-grid dt {
  color: var(--muted);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.marketing-summary-grid dd {
  margin: .25rem 0 0;
  font-weight: 850;
  overflow-wrap: anywhere;
}

.marketing-detail-checklist {
  display: grid;
  gap: .75rem;
}

.marketing-detail-checklist label {
  display: flex;
  gap: .55rem;
  align-items: center;
  color: var(--ink);
  font-weight: 850;
  line-height: 1.3;
}

.marketing-detail-checklist input {
  width: auto;
}

.marketing-schedule-toolbar {
  display: grid;
  grid-template-columns: minmax(16rem, .45fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
  margin-top: 1rem;
}

.marketing-month-form {
  display: grid;
  gap: .45rem;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 18px;
  background: rgba(255, 255, 255, .88);
}

.marketing-month-form label {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.marketing-month-form div {
  display: flex;
  gap: .6rem;
}

.marketing-month-form input,
.marketing-table-input,
.marketing-table-select,
.marketing-table-notes {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: white;
  color: var(--ink);
  font: inherit;
}

.marketing-month-form input,
.marketing-table-input,
.marketing-table-select {
  min-height: 2.45rem;
  padding: .5rem .65rem;
}

.marketing-schedule-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}

.marketing-schedule-summary div {
  min-height: 4.8rem;
  padding: .85rem 1rem;
  border: 1px solid rgba(234, 223, 205, .95);
  border-radius: 14px;
  background: rgba(255, 255, 255, .88);
}

.marketing-schedule-summary span {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.marketing-schedule-summary strong {
  display: block;
  margin-top: .3rem;
  font-size: 1.25rem;
}

.marketing-schedule-table td {
  min-width: 9rem;
  vertical-align: top;
}

.marketing-schedule-table td:nth-child(1) {
  min-width: 8.5rem;
}

.marketing-schedule-table td:nth-child(3),
.marketing-schedule-table td:nth-child(5),
.marketing-schedule-table td:nth-child(6) {
  min-width: 15rem;
}

.marketing-win-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.marketing-win-summary div {
  display: grid;
  gap: .35rem;
  padding: .85rem;
  border: 1px solid rgba(234, 223, 205, .82);
  border-radius: 8px;
  background: rgba(255, 255, 255, .84);
}

.marketing-win-summary span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.marketing-win-summary strong {
  color: var(--ink);
  font-size: 1.55rem;
  line-height: 1;
}

.marketing-win-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .45fr);
  gap: 1rem;
  align-items: start;
  margin-top: 1rem;
}

.marketing-win-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .9rem 1rem;
}

.marketing-win-form .section-heading,
.marketing-win-form .report-actions {
  grid-column: 1 / -1;
}

.marketing-tagged-students {
  display: grid;
  gap: .55rem;
}

.marketing-tagged-student-row {
  display: grid;
  grid-template-columns: minmax(12rem, .7fr) minmax(14rem, 1fr);
  gap: .55rem;
}

.marketing-win-template {
  display: grid;
  gap: 1rem;
}

.marketing-win-list-panel {
  margin-top: 1rem;
}

.marketing-win-filters {
  display: grid;
  grid-template-columns: minmax(10rem, .18fr) minmax(14rem, .4fr) auto;
  gap: .75rem;
  align-items: end;
  margin: 0 0 1rem;
}

.marketing-win-table td {
  min-width: 11rem;
  vertical-align: top;
}

.marketing-win-table td:first-child {
  min-width: 16rem;
}

.marketing-win-table td span,
.marketing-win-table td strong {
  display: block;
}

.marketing-win-use-form {
  align-items: stretch;
  display: grid;
  gap: .45rem;
  margin-top: .45rem;
}

.marketing-idea-list {
  display: grid;
  gap: 1rem;
}

.marketing-idea-card {
  display: grid;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .82);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 250, 240, .82)),
    radial-gradient(circle at top right, rgba(247, 148, 30, .12), transparent 14rem);
}

.marketing-idea-card.is-hidden {
  opacity: .72;
  background: rgba(255, 255, 255, .74);
}

.marketing-idea-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.marketing-idea-head h3 {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 900;
}

.marketing-idea-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  justify-content: flex-end;
}

.marketing-idea-caption {
  margin: 0;
  color: var(--ink);
  line-height: 1.55;
}

.marketing-idea-stats {
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
}

.marketing-idea-form {
  grid-template-columns: minmax(0, 1fr) minmax(12rem, .4fr);
}

.marketing-table-notes {
  min-height: 4.2rem;
  padding: .55rem .65rem;
  resize: vertical;
}

.marketing-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(20rem, .65fr);
  gap: 1rem;
  align-items: start;
}

.marketing-editor-form,
.marketing-instructions-panel {
  display: grid;
  gap: .8rem;
}

.marketing-editor-form label,
.marketing-form-options label {
  color: var(--ink);
  font-weight: 850;
}

.marketing-editor-form textarea,
.marketing-editor-form input,
.marketing-instructions,
.marketing-html-output,
.marketing-source-output,
.marketing-response-output {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: .85rem .95rem;
  background: white;
  color: var(--ink);
  font: inherit;
}

.marketing-editor-form textarea,
.marketing-instructions,
.marketing-html-output,
.marketing-source-output,
.marketing-response-output {
  min-height: 22rem;
  resize: vertical;
  font-family: Consolas, "Courier New", monospace;
  font-size: .92rem;
  line-height: 1.48;
}

.marketing-instructions {
  min-height: 32rem;
}

.marketing-html-output {
  min-height: 28rem;
}

.marketing-source-output {
  min-height: 30rem;
}

.marketing-response-output {
  min-height: 14rem;
}

.marketing-performance-brief-output {
  min-height: 34rem;
}

.marketing-error-detail {
  margin: 0;
  color: var(--red);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.marketing-form-options {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, .8fr);
  gap: .8rem;
  align-items: end;
}

.marketing-form-options label:not(.checkbox-row) {
  display: grid;
  gap: .35rem;
}

.marketing-preview-shell {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: 1rem;
}

.marketing-preview-panel {
  grid-column: 1 / -1;
}

.marketing-copy-grid {
  display: grid;
  gap: .65rem;
  margin: 0;
}

.marketing-copy-grid div {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr) auto;
  gap: .7rem;
  align-items: center;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--line);
}

.marketing-copy-grid dt {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.marketing-copy-grid dd {
  margin: 0;
  min-width: 0;
  font-weight: 820;
  overflow-wrap: anywhere;
}

.marketing-render-status {
  margin: 1rem 0 .5rem;
}

.marketing-panel-heading-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.marketing-panel-heading-row .hero-button-row {
  justify-content: flex-end;
  margin-top: 0;
}

.marketing-report-process {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin: .75rem 0 1rem;
}

.marketing-report-process div {
  min-height: 4.5rem;
  padding: .85rem 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .78);
}

.marketing-report-process span {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.marketing-report-process strong {
  display: block;
  margin-top: .35rem;
  line-height: 1.35;
}

.marketing-report-generation-status {
  margin: .75rem 0 1rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(37, 92, 153, .18);
  border-radius: 14px;
  background: rgba(238, 244, 248, .72);
}

.marketing-report-generation-status strong {
  display: block;
  margin-bottom: .45rem;
}

.marketing-report-generation-status ul {
  margin: 0;
  padding-left: 1.1rem;
  color: var(--muted);
  line-height: 1.5;
}

.marketing-preview-frame {
  width: 100%;
  min-height: 760px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #f0f0f0;
}

.metrics-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .4fr);
  gap: 1.25rem;
  align-items: end;
  margin: 2rem 0 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 20px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 18px 42px rgba(23, 32, 51, .08);
}

.metrics-hero h1 {
  margin: 0;
  font-size: clamp(2rem, 5vw, 3.8rem);
  font-weight: 900;
  letter-spacing: 0;
}

.metrics-period-tabs {
  display: inline-flex;
  gap: .35rem;
  margin-top: 1rem;
  padding: .3rem;
  border: 1px solid rgba(37, 92, 153, .15);
  border-radius: 8px;
  background: rgba(37, 92, 153, .06);
}

.period-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 6.5rem;
  min-height: 2.2rem;
  padding: .35rem .75rem;
  border-radius: 6px;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 900;
  text-decoration: none;
}

.period-tab:hover,
.period-tab.active {
  background: #fff;
  color: var(--blue);
  box-shadow: 0 8px 18px rgba(23, 32, 51, .08);
}

.metrics-month-picker {
  display: grid;
  gap: .45rem;
}

.metrics-month-picker label {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.metrics-month-picker div {
  display: flex;
  gap: .6rem;
}

.metrics-month-picker input,
.metric-input-row input,
.metric-review-row textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .95);
  color: var(--ink);
}

.metrics-month-picker input {
  min-height: 2.75rem;
  padding: .55rem .7rem;
  font-weight: 800;
}

.metrics-view-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .6rem;
  margin: .75rem 0 1rem;
}

.metrics-summary-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: .75rem;
  margin: 1rem 0 1.4rem;
}

.metrics-summary-strip div {
  min-height: 5.25rem;
  padding: .95rem 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .8);
}

.metrics-summary-strip span,
.section-heading-row span {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.metrics-summary-strip strong {
  display: block;
  margin-top: .35rem;
  font-size: 1.15rem;
  line-height: 1.2;
}

.monthly-metrics-form {
  display: grid;
  gap: 1.2rem;
}

.mentor-metrics-capture {
  display: grid;
  gap: .65rem;
  max-width: 1180px;
  margin: .75rem auto 1.5rem;
  padding: .85rem;
  border: 1px solid rgba(23, 32, 51, .12);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(23, 32, 51, .08);
}

.compact-metrics-header {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) repeat(3, minmax(8rem, .8fr));
  gap: .55rem;
  align-items: stretch;
}

.compact-metrics-header > div {
  min-height: 4.4rem;
  padding: .65rem .75rem;
  border: 1px solid rgba(23, 32, 51, .12);
  border-radius: 8px;
  background: rgba(246, 239, 226, .42);
}

.compact-metrics-header h2,
.compact-metrics-section h3,
.compact-review-notes h3 {
  margin: 0;
  letter-spacing: 0;
}

.compact-metrics-header h2 {
  font-size: 1.55rem;
  line-height: 1.05;
}

.compact-metrics-header span,
.compact-section-heading span {
  display: block;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.compact-metrics-header strong {
  display: block;
  margin-top: .25rem;
  font-size: .96rem;
  line-height: 1.2;
}

.compact-metrics-section {
  display: grid;
  gap: .35rem;
}

.compact-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .75rem;
  padding-top: .2rem;
}

.compact-section-heading h3,
.compact-review-notes h3 {
  font-size: .92rem;
  font-weight: 900;
}

.compact-metrics-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .42rem;
}

.compact-metric-tile {
  display: grid;
  gap: .18rem;
  min-height: 4.8rem;
  padding: .5rem .55rem;
  border: 1px solid rgba(23, 32, 51, .12);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
}

.compact-metric-tile.needs-review {
  border-color: rgba(201, 74, 58, .45);
  background: rgba(201, 74, 58, .05);
}

.compact-metric-tile > span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  line-height: 1.12;
}

.compact-metric-tile strong {
  color: var(--ink);
  font-size: clamp(1rem, 1.7vw, 1.45rem);
  line-height: 1.05;
}

.compact-metric-tile small {
  display: flex;
  flex-wrap: wrap;
  gap: .24rem;
  align-items: center;
  color: var(--muted);
  font-size: .62rem;
  font-weight: 800;
  line-height: 1.15;
}

.compact-metric-tile small span {
  padding: .08rem .25rem;
  border-radius: 6px;
  background: rgba(37, 92, 153, .1);
  color: var(--blue);
}

.compact-review-notes {
  display: grid;
  gap: .35rem;
  padding-top: .2rem;
}

.compact-review-notes div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: .35rem;
}

.compact-review-notes p {
  margin: 0;
  padding: .45rem .55rem;
  border: 1px solid rgba(201, 74, 58, .25);
  border-radius: 8px;
  background: rgba(201, 74, 58, .05);
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.25;
}

.monthly-metrics-section {
  display: grid;
  gap: .75rem;
}

.section-heading-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
}

.section-heading-row h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 900;
}

.monthly-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: .9rem;
}

.metric-editor {
  display: grid;
  grid-template-rows: auto auto auto auto 1fr;
  gap: .65rem;
  min-height: 17.5rem;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .88);
}

.metric-editor-heading {
  display: grid;
  gap: .5rem;
}

.metric-editor-heading label {
  font-weight: 900;
  line-height: 1.2;
}

.metric-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  min-height: 1.55rem;
}

.source-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.45rem;
  padding: .18rem .45rem;
  border-radius: 999px;
  background: rgba(37, 92, 153, .1);
  color: var(--blue);
  font-size: .72rem;
  font-weight: 900;
}

.source-badge.manual {
  background: rgba(23, 125, 95, .12);
  color: var(--green);
}

.source-badge.override {
  background: rgba(248, 192, 79, .22);
  color: #7a4d00;
}

.metric-input-row {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: .55rem;
  align-items: center;
}

.metric-input-row span {
  display: grid;
  place-items: center;
  min-height: 2.6rem;
  border-radius: 10px;
  background: rgba(23, 32, 51, .06);
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
}

.metric-input-row input {
  min-height: 2.8rem;
  padding: .55rem .65rem;
  font-weight: 900;
}

.metric-rule {
  min-height: 2.6rem;
  margin: 0;
  color: var(--muted);
  font-size: .86rem;
  line-height: 1.45;
}

.metric-finance-note {
  width: fit-content;
  margin: 0;
  padding: .18rem .45rem;
  border-radius: 999px;
  background: rgba(23, 125, 95, .1);
  color: var(--green);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.metric-review-row {
  display: grid;
  gap: .55rem;
  align-self: end;
}

.metric-review-row .checkbox-row {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 800;
}

.metric-review-row textarea {
  min-height: 4.5rem;
  padding: .55rem .65rem;
  resize: vertical;
}

.sticky-save-row {
  position: sticky;
  bottom: 0;
  z-index: 10;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .75rem;
  margin-top: .5rem;
  padding: .9rem 0;
  background: linear-gradient(180deg, rgba(246, 239, 226, 0), rgba(246, 239, 226, .96) 30%);
}

.metrics-refresh-progress {
  display: grid;
  gap: .75rem;
  padding: 1rem;
  border: 1px solid rgba(37, 92, 153, .18);
  border-radius: 8px;
  background: rgba(255, 255, 255, .86);
}

.metrics-refresh-progress[hidden] {
  display: none;
}

.metrics-refresh-progress div {
  display: grid;
  gap: .2rem;
}

.metrics-refresh-progress strong {
  font-size: .98rem;
}

.metrics-refresh-progress span {
  color: var(--muted);
  font-size: .84rem;
}

.metrics-refresh-progress progress {
  width: 100%;
  height: .7rem;
  accent-color: var(--blue);
}

.metrics-trend-panel {
  display: grid;
  gap: 1rem;
  margin: 1.2rem 0;
  padding: 1rem;
  border: 1px solid rgba(37, 92, 153, .16);
  border-radius: 8px;
  background: rgba(255, 255, 255, .72);
}

.metrics-trend-panel .section-heading-row {
  align-items: end;
  margin: 0;
}

.metrics-trend-panel .section-heading-row div {
  display: grid;
  gap: .15rem;
}

.metrics-trend-controls {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.metrics-trend-controls label {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  min-height: 2rem;
  padding: .3rem .55rem;
  border: 1px solid rgba(37, 92, 153, .14);
  border-radius: 8px;
  background: rgba(246, 249, 252, .82);
  color: var(--ink);
  font-size: .82rem;
  font-weight: 800;
}

.metrics-trend-controls input {
  accent-color: var(--blue);
}

.metrics-trend-chart {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(92, 111, 130, .16);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(246, 249, 252, .92));
}

.metrics-trend-chart svg {
  display: block;
  width: 100%;
  height: 20rem;
}

.trend-grid-line {
  stroke: rgba(92, 111, 130, .18);
  stroke-width: 1;
}

.trend-axis-tick {
  stroke: rgba(92, 111, 130, .32);
  stroke-width: 1;
}

.trend-axis-label {
  fill: var(--muted);
  font-size: .72rem;
  font-weight: 700;
}

.trend-empty {
  fill: var(--muted);
  font-size: 1rem;
  font-weight: 800;
}

.trend-point {
  stroke: #fff;
  stroke-width: 2;
  cursor: pointer;
  outline: none;
}

.trend-point:focus-visible {
  stroke: var(--ink);
  stroke-width: 3;
}

.metrics-trend-tooltip {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  display: grid;
  gap: .12rem;
  min-width: 8.5rem;
  max-width: min(16rem, calc(100% - 1rem));
  padding: .55rem .65rem;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  background: rgba(8, 20, 38, .94);
  box-shadow: 0 12px 28px rgba(8, 20, 38, .22);
  color: #fff;
  pointer-events: none;
}

.metrics-trend-tooltip[hidden] {
  display: none;
}

.metrics-trend-tooltip strong {
  font-size: .78rem;
  line-height: 1.15;
}

.metrics-trend-tooltip span {
  color: rgba(255, 255, 255, .68);
  font-size: .72rem;
  font-weight: 800;
}

.metrics-trend-tooltip b {
  font-size: 1rem;
  line-height: 1.1;
}

.metrics-trend-legend {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1rem;
}

.metrics-trend-legend span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
}

.metrics-trend-legend span::before {
  width: .7rem;
  height: .7rem;
  border-radius: 50%;
  background: var(--trend-color);
  content: "";
}

.validation-summary-valid {
  display: none;
}

.bank-rec-hero {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(238, 244, 248, .9)),
    radial-gradient(circle at top right, rgba(23, 125, 95, .16), transparent 20rem);
}

.bank-rec-layout {
  display: grid;
  gap: 1rem;
}

.bank-rec-form {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: .75rem;
  align-items: end;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .86);
}

.bank-rec-form label {
  display: grid;
  gap: .35rem;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.bank-rec-fixed-filter {
  display: grid;
  gap: .35rem;
  min-height: 2.7rem;
}

.bank-rec-fixed-filter span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 900;
  text-transform: uppercase;
}

.bank-rec-fixed-filter strong {
  display: inline-flex;
  align-items: center;
  min-height: 2.7rem;
  border: 1px solid rgba(23, 125, 95, .18);
  border-radius: 8px;
  padding: .55rem .65rem;
  background: rgba(23, 125, 95, .08);
  color: var(--green);
  font-weight: 900;
}

.bank-rec-form input {
  width: 100%;
  min-height: 2.7rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .55rem .65rem;
  background: rgba(255, 255, 255, .96);
  color: var(--ink);
  font: inherit;
  font-weight: 820;
  text-transform: none;
}

.bank-rec-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: .75rem;
}

.bank-rec-summary div {
  min-height: 5.75rem;
  padding: .95rem 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .84);
}

.bank-rec-summary span,
.bank-rec-panel .section-heading-row span {
  display: block;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
}

.bank-rec-summary strong {
  display: block;
  margin-top: .35rem;
  font-size: 1.2rem;
  line-height: 1.2;
}

.bank-rec-summary small {
  color: var(--muted);
  font-weight: 750;
}

.bank-rec-summary small a {
  color: var(--blue);
  font-weight: 900;
  text-decoration: none;
}

.bank-rec-summary .matched {
  border-color: rgba(23, 125, 95, .24);
  background: rgba(23, 125, 95, .08);
}

.bank-rec-summary .needs-fee {
  border-color: rgba(248, 192, 79, .46);
  background: rgba(255, 250, 240, .94);
}

.bank-rec-warnings ul {
  margin: .55rem 0 0;
  padding-left: 1.15rem;
}

.bank-rec-warnings li {
  margin: .25rem 0;
}

.bank-rec-panel {
  display: grid;
  gap: .85rem;
  padding: 1rem;
  border: 1px solid rgba(234, 223, 205, .9);
  border-radius: 14px;
  background: rgba(255, 255, 255, .86);
}

.bank-rec-panel .section-heading-row {
  align-items: end;
}

.bank-rec-panel .section-heading-row strong {
  color: var(--muted);
  font-size: .88rem;
}

.bank-rec-table-shell {
  overflow-x: auto;
}

.bank-rec-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 1160px;
}

.bank-rec-table.compact {
  min-width: 1280px;
}

.bank-rec-table.queue {
  min-width: 980px;
}

.bank-rec-table th,
.bank-rec-table td {
  padding: .62rem .7rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.bank-rec-table th {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.bank-rec-table td {
  font-size: .88rem;
  font-weight: 720;
}

.bank-rec-table td:nth-last-child(-n+2),
.bank-rec-table th:nth-last-child(-n+2) {
  text-align: right;
}

.bank-rec-table.compact td:nth-last-child(-n+2),
.bank-rec-table.compact th:nth-last-child(-n+2) {
  text-align: left;
}

.bank-rec-table.queue td:nth-last-child(-n+2),
.bank-rec-table.queue th:nth-last-child(-n+2) {
  text-align: left;
}

.bank-rec-table .fee-line {
  background: rgba(179, 74, 63, .05);
}

.bank-rec-row-source summary {
  cursor: pointer;
  color: var(--blue);
  font-weight: 900;
}

.bank-rec-row-source dl {
  display: grid;
  grid-template-columns: max-content minmax(12rem, 1fr);
  gap: .25rem .55rem;
  margin: .55rem 0 0;
  min-width: 24rem;
  color: var(--ink);
  font-size: .8rem;
  font-weight: 650;
}

.bank-rec-row-source dt {
  color: var(--muted);
  font-weight: 900;
}

.bank-rec-row-source dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.bank-rec-columns summary {
  cursor: pointer;
  color: var(--blue);
  font-weight: 900;
}

.bank-rec-columns p {
  margin: .55rem 0 0;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.5;
}

@media (max-width: 980px) {
  .bank-rec-form,
  .bank-rec-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .compact-metrics-header {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .compact-metrics-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 721px) {
  .coach-score-grid {
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  }

  .coach-procedure-step {
    grid-template-columns: minmax(130px, .32fr) 1fr;
  }
}

@media (max-width: 720px) {
  .home-hero,
  .home-priority-strip {
    grid-template-columns: 1fr;
  }

  .home-action-card {
    min-height: 9.5rem;
  }

  .home-hero {
    padding: 1.25rem;
  }

  .home-hero h1 {
    font-size: 2.25rem;
  }

  .hero-panel {
    grid-template-columns: 1fr;
  }

  .metrics-entry-panel {
    flex-direction: column;
    align-items: stretch;
  }

  .hero-status {
    width: 8.5rem;
  }

  .exercise-demo-strip {
    grid-template-columns: 1fr;
  }

  .report-detail-header {
    flex-direction: column;
  }

  .library-panel.large {
    grid-column: auto;
  }

  .library-panel.science-panel {
    grid-column: auto;
  }

  .coach-procedure-step {
    grid-template-columns: 1fr;
  }

  .exercise-media-card.compact {
    grid-template-columns: 1fr;
  }

  .science-muscle-item {
    grid-template-columns: 1fr;
  }

  .library-search {
    grid-template-columns: 1fr;
  }

  .library-data-status {
    grid-template-columns: 1fr;
  }

  .library-data-status dl {
    grid-template-columns: 1fr;
  }

  .calibration-editor-notes {
    grid-template-columns: 1fr;
  }

  .inline-edit-grid {
    grid-template-columns: 1fr;
  }

  .library-edit-form {
    grid-template-columns: 1fr;
  }

  .marketing-editor-grid,
  .marketing-form-options,
  .marketing-preview-shell,
  .marketing-win-summary,
  .marketing-win-grid,
  .marketing-win-form,
  .marketing-win-filters,
  .marketing-idea-form,
  .marketing-tagged-student-row {
    grid-template-columns: 1fr;
  }

  .marketing-idea-head {
    flex-direction: column;
  }

  .marketing-idea-statuses {
    justify-content: flex-start;
  }

  .marketing-copy-grid div {
    grid-template-columns: 1fr;
  }

  .marketing-schedule-toolbar,
  .marketing-schedule-summary,
  .marketing-report-process {
    grid-template-columns: 1fr;
  }

  .marketing-month-form div {
    flex-direction: column;
  }

  .marketing-preview-frame {
    min-height: 620px;
  }

  .metrics-hero,
  .metrics-summary-strip,
  .bank-rec-form,
  .bank-rec-summary {
    grid-template-columns: 1fr;
  }

  .compact-metrics-header,
  .compact-metrics-grid {
    grid-template-columns: 1fr 1fr;
  }

  .metrics-month-picker div,
  .sticky-save-row {
    flex-direction: column;
  }

  .monthly-metrics-grid {
    grid-template-columns: 1fr;
  }

  .metrics-trend-chart svg {
    height: 17rem;
  }
}

@media print {
  .metrics-view-actions,
  .navbar,
  header,
  footer {
    display: none !important;
  }

  body {
    background: #fff !important;
  }

  .mentor-metrics-capture {
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  .compact-metric-tile,
  .compact-metrics-header > div,
  .compact-review-notes p {
    break-inside: avoid;
  }
}
