@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');

:root {
  --bg: #0c0f14;
  --bg-elevated: #141a24;
  --surface: #141a24;
  --border: #2a3548;
  --text: #e8edf4;
  --muted: #8b9cb3;
  --accent: #f15c2e;
  /* Yellow-tinted glow / soft fills (unchanged — complements Diode orange) */
  --accent-dim: rgba(245, 158, 11, 0.15);
  --accent-glow: rgba(245, 158, 11, 0.35);
  --blue: #60a5fa;
  --success: #34d399;
  --font: 'IBM Plex Sans', system-ui, sans-serif;
}

* { box-sizing: border-box; }
html {
  height: 100%;
}
body {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  min-height: 100dvh;
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.55;
}

a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1.5rem;
  border-bottom: 1px solid var(--border);
  background: rgba(12, 15, 20, 0.92);
  backdrop-filter: blur(8px);
  position: sticky;
  top: 0;
  z-index: 50;
}
.brand {
  display: flex;
  align-items: center;
  gap: 1.15rem;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  line-height: 1;
  min-width: 0;
}
.brand-mark {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  color: var(--text);
  text-decoration: none;
}
.brand-mark:hover { text-decoration: none; }
.brand-workspace {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
}
.brand-plan-tag,
.brand-stage-tag {
  flex-shrink: 0;
  font-size: 0.62rem;
}
.tag-onboarding {
  background: rgba(52, 211, 153, 0.14);
  color: #6ee7b7;
}
.tag-launching {
  background: rgba(96, 165, 250, 0.15);
  color: #93c5fd;
}
/* Logo is lowercase wordmark; title uses capitals — size to cap-height and lift optically. */
.brand-logo {
  display: block;
  height: 1.35em;
  width: auto;
  flex-shrink: 0;
  transform: translateY(-0.14em);
}
.brand-title {
  font-weight: 700;
  font-size: inherit;
  letter-spacing: inherit;
  line-height: 1;
  color: var(--text);
}

/* Workspace switcher — Vibe-style combobox */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ws-switch-wrap {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: min(18rem, 42vw);
  position: relative;
}
.ws-switch-btn {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35rem;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0.2rem 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  color: var(--text);
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
}
.ws-switch-btn-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
  color: var(--text);
}
.ws-switch-btn-chevron {
  flex-shrink: 0;
  width: 0;
  height: 0;
  margin-top: 0.12rem;
  border-left: 0.28rem solid transparent;
  border-right: 0.28rem solid transparent;
  border-top: 0.38rem solid var(--text);
}
.ws-switch-btn:hover .ws-switch-btn-label {
  color: #ffffff;
}
.ws-switch-btn:hover .ws-switch-btn-chevron {
  border-top-color: #ffffff;
}
.ws-switch-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.ws-switch-btn:disabled {
  opacity: 0.65;
  cursor: wait;
}
.ws-switch-pop {
  position: absolute;
  left: 0;
  top: calc(100% + 4px);
  z-index: 60;
  display: flex;
  flex-direction: column;
  min-width: max(100%, 12rem);
  max-width: min(24rem, 92vw);
  overflow: hidden;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}
.ws-switch-pop[hidden] {
  display: none !important;
}
.ws-switch-search-row {
  flex-shrink: 0;
  padding: 0.5rem;
  border-bottom: 1px solid var(--border);
}
.ws-switch-search {
  box-sizing: border-box;
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg);
  color: var(--text);
  font-family: inherit;
  font-size: 0.88rem;
}
.ws-switch-search:focus {
  outline: 2px solid rgba(241, 92, 46, 0.55);
  outline-offset: 0;
  border-color: rgba(241, 92, 46, 0.55);
}
.ws-switch-list {
  padding: 0.25rem 0;
  overflow-y: visible;
  max-height: none;
}
.ws-switch-wrap--scroll .ws-switch-list {
  max-height: 22rem;
  overflow-y: auto;
}
.ws-switch-option {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.62rem 0.9rem;
  border: none;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 0.88rem;
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.ws-switch-option:hover,
.ws-switch-option:focus-visible {
  background: rgba(241, 92, 46, 0.12);
  outline: none;
}
.ws-switch-option--current {
  font-weight: 600;
  color: #fcd34d;
}
.ws-switch-option[hidden] {
  display: none !important;
}
@media (max-width: 640px) {
  .brand-title { display: none; }
  .ws-switch-wrap { max-width: min(220px, 42vw); }
}

.nav-links { display: flex; gap: 1.25rem; align-items: center; font-size: 0.88rem; }
.nav-links a { color: var(--muted); text-decoration: none; }
.nav-links a:hover { color: var(--text); }

.btn {
  display: inline-block;
  padding: 0.6rem 1.15rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.88rem;
  font-family: inherit;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: filter 0.15s, background 0.15s;
}
.btn-primary {
  background: var(--accent);
  color: #fff;
}
.btn-primary:hover {
  filter: brightness(1.08);
  color: #fff;
  text-decoration: none;
}
.btn-ghost {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
}
.btn-ghost:hover { border-color: var(--muted); color: var(--text); text-decoration: none; }

.tag {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  background: var(--accent-dim);
  color: #fcd34d;
}
.tag-about { background: rgba(96, 165, 250, 0.15); color: #93c5fd; }
.tag-product { background: rgba(56, 189, 248, 0.12); color: #7dd3fc; }
.tag-learn { background: rgba(52, 211, 153, 0.12); color: #6ee7b7; }
.tag-strategy { background: rgba(167, 139, 250, 0.15); color: #c4b5fd; }
.tag-how-to { background: rgba(244, 114, 182, 0.12); color: #f9a8d4; }
.tag-engage { background: rgba(34, 197, 94, 0.12); color: #86efac; }
.tag-case-study { background: rgba(251, 146, 60, 0.12); color: #fdba74; }
.tag-policy { background: rgba(250, 204, 21, 0.12); color: #fde047; }
.tag-internal { background: rgba(148, 163, 184, 0.15); color: #cbd5e1; }
.tag-category-label { background: rgba(255, 255, 255, 0.06); color: var(--muted, #94a3b8); font-size: 0.72rem; }
.tag-recruit { background: rgba(96, 165, 250, 0.15); color: #93c5fd; }
.tag-applying { background: rgba(251, 191, 36, 0.18); color: #fde68a; }
.tag-enable { background: rgba(52, 211, 153, 0.12); color: #6ee7b7; }
.tag-ops { background: rgba(167, 139, 250, 0.15); color: #c4b5fd; }
.tag-admin { background: rgba(251, 191, 36, 0.2); color: #fde68a; }
.tag-tier { background: rgba(56, 189, 248, 0.12); color: #7dd3fc; font-size: 0.72rem; }
.tag-oasis { background: rgba(167, 139, 250, 0.18); color: #ddd6fe; font-size: 0.72rem; }
.tag-phase { font-size: 0.72rem; }
.tag-phase-1 { background: rgba(52, 211, 153, 0.12); color: #6ee7b7; }
.tag-phase-2 { background: rgba(251, 146, 60, 0.15); color: #fdba74; }
.tag-phase-3 { background: rgba(244, 114, 182, 0.12); color: #f9a8d4; }
.phase-pill {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-left: 0.35rem;
}
.row-phase-future { opacity: 0.92; }
.row-phase-future td:first-child { border-left: 3px solid rgba(251, 146, 60, 0.5); }

.site-footer-caveat {
  flex-shrink: 0;
  width: 100%;
  max-width: none;
  margin: auto 0 0;
  padding: 0.4rem 1.5rem 0.35rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--muted);
  text-align: center;
}
body:has(.site-footer-caveat) .site-footer {
  margin-top: 0;
}
.site-footer {
  flex-shrink: 0;
  margin-top: auto;
  border-top: 1px solid var(--border);
  padding: 1.25rem 1.5rem 2rem;
  text-align: center;
}
.oasis-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem 0.55rem;
  font-size: 0.88rem;
  color: var(--muted);
  margin: 0;
}
.oasis-footer-text {
  white-space: nowrap;
}
.footer-logo-link {
  display: inline-block;
  flex-shrink: 0;
  line-height: 0;
  text-decoration: none;
  vertical-align: middle;
}
.footer-logo-link:hover {
  opacity: 0.88;
  text-decoration: none;
}
.footer-logo-link .footer-logo {
  display: block;
  height: 1.1rem;
  width: auto;
  max-width: none;
  pointer-events: none;
}
.footer-logo-link .footer-logo--diode {
  aspect-ratio: 86 / 29;
}
.footer-logo-link .footer-logo--oasis {
  aspect-ratio: 484 / 61;
  height: 1.1rem;
}
/* Landing */
.landing {
  max-width: 1100px;
  margin: 0 auto;
  padding: 4rem 1.5rem 4rem;
}
.landing-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  column-gap: 3rem;
  row-gap: 2.75rem;
  align-items: start;
}
.hero-copy {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}
.hero-panel {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg-elevated);
  padding: 1.75rem;
  box-shadow: 0 0 40px color-mix(in srgb, var(--accent) 38%, transparent);
}
.hero-benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.hero-benefit {
  padding: 0.4rem 0.45rem;
  border-radius: 6px;
  transition: background 0.15s;
  animation: hero-benefit-vibrate 15s ease-in-out infinite;
}
.hero-benefit:nth-child(1) { animation-delay: 0s; }
.hero-benefit:nth-child(2) { animation-delay: 3s; }
.hero-benefit:nth-child(3) { animation-delay: 6s; }
.hero-benefit:nth-child(4) { animation-delay: 9s; }
.hero-benefit:nth-child(5) { animation-delay: 12s; }
@keyframes hero-benefit-vibrate {
  0%, 3.8%, 100% { transform: translate(0, 0); }
  0.45% { transform: translate(-0.6px, 0.2px); }
  0.9% { transform: translate(0.55px, -0.25px); }
  1.35% { transform: translate(-0.45px, -0.15px); }
  1.8% { transform: translate(0.5px, 0.2px); }
  2.25% { transform: translate(-0.35px, 0.1px); }
  2.7% { transform: translate(0.4px, -0.1px); }
  3.15% { transform: translate(-0.25px, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-benefit { animation: none; }
}
.hero-benefit:hover,
.hero-benefit:focus-within {
  background: color-mix(in srgb, var(--accent) 6%, transparent);
  animation-play-state: paused;
}
.hero-benefit:focus {
  outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 2px;
}
.hero-benefit-title {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
  cursor: default;
}
.hero-benefit-title::before {
  content: '›';
  font-family: var(--font);
  font-size: 1.05em;
  font-weight: 700;
  line-height: 1;
  color: var(--accent);
  flex-shrink: 0;
  width: 0.85rem;
  text-align: center;
  transform: translateY(-0.14em);
  transition: transform 0.2s ease;
}
.hero-benefit:hover .hero-benefit-title::before,
.hero-benefit:focus-within .hero-benefit-title::before {
  transform: translateY(-0.14em) rotate(90deg);
}
.hero-benefit-detail {
  margin: 0;
  padding-left: 1.45rem;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
  transition: max-height 0.25s ease, opacity 0.2s ease, margin-top 0.2s ease;
}
.hero-benefit:hover .hero-benefit-detail,
.hero-benefit:focus-within .hero-benefit-detail {
  max-height: 8rem;
  opacity: 1;
  margin-top: 0.4rem;
}
@media (hover: none) {
  .hero-benefit-detail {
    max-height: none;
    opacity: 1;
    margin-top: 0.25rem;
  }
}
.hero-copy h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0 0 1rem;
  font-weight: 700;
}
.hero-copy h1 span { color: var(--accent); }
.lede { color: var(--muted); font-size: 1.1rem; max-width: 36rem; margin-bottom: 1.5rem; }
.stat-row { display: flex; gap: 1.5rem; margin-top: 1.5rem; flex-wrap: wrap; }
.stat { flex: 1; min-width: 120px; }
.stat strong { display: block; font-size: 1.5rem; color: var(--accent); }
.stat span { font-size: 0.8rem; color: var(--muted); }

.features-section {
  grid-column: 1 / -1;
  grid-row: 3;
  margin: 0;
  padding: 0;
  text-align: left;
  min-width: 0;
}
.landing-profit-section {
  grid-column: 1 / -1;
  grid-row: 2;
  min-width: 0;
}
.landing-profit-section .dashboard-profit-calculator {
  margin-top: 0;
}
@media (max-width: 800px) {
  .landing-grid { grid-template-columns: 1fr; row-gap: 2rem; }
  .hero-copy { grid-column: 1; grid-row: 1; }
  .hero-panel { grid-column: 1; grid-row: 2; }
  .landing-profit-section { grid-column: 1; grid-row: 3; }
  .features-section { grid-column: 1; grid-row: 4; }
}
.features-subhead {
  margin: 0 0 1.75rem;
  max-width: none;
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  font-weight: 600;
  line-height: 1.4;
  color: var(--text);
}
.features {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}
@media (max-width: 1024px) {
  .features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .features { grid-template-columns: 1fr; }
}
.feature-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem;
  background: var(--bg-elevated);
}
.feature-card .tag {
  margin-bottom: 0.75rem;
}
.feature-shift {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
}
.feature-from {
  display: block;
  color: var(--muted);
  margin-bottom: 0.4rem;
}
.feature-to {
  display: block;
  color: var(--text);
  font-weight: 500;
}

/* Login split */
.login-page {
  flex: 1 0 auto;
  display: flex;
  min-height: 0;
}
.login-form-col {
  flex: 0 0 auto;
  width: min(100%, 22rem);
  min-width: 280px;
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--bg-elevated);
  border-right: 1px solid var(--border);
}
.login-form-col-title {
  margin: 0 0 0.35rem;
  font-size: 1.25rem;
  font-weight: 600;
}
.login-form-col-lede {
  margin: 0 0 1.25rem;
  font-size: 0.88rem;
  color: var(--muted);
}
.login-form-col-back {
  margin: 1rem 0 0;
  font-size: 0.88rem;
}
.login-form-col-back a { color: var(--muted); }
.login-promo {
  flex: 1;
  position: relative;
  min-width: 0;
  min-height: 100%;
  display: flex;
  align-items: stretch;
  background: #0c0f14;
  overflow: hidden;
}
.login-promo-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
  filter: brightness(1.42) saturate(1.12) contrast(1.06);
}
.login-promo-overlay {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem 2.5rem 3rem 3rem;
  background: linear-gradient(
    105deg,
    rgba(8, 10, 14, 0.78) 0%,
    rgba(8, 10, 14, 0.52) 40%,
    rgba(8, 10, 14, 0.22) 100%
  );
}
.login-promo h1 {
  font-size: clamp(1.85rem, 4vw, 2.25rem);
  margin: 0 0 0.75rem;
  line-height: 1.15;
  font-weight: 700;
  max-width: 33rem;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.login-promo h1 span { color: var(--accent); }
.login-promo .hook {
  font-size: 1.05rem;
  color: color-mix(in srgb, var(--text) 92%, white);
  margin: 0;
  line-height: 1.55;
  max-width: 39rem;
  text-shadow: 0 1px 12px rgba(0, 0, 0, 0.35);
}
@media (min-width: 901px) {
  .login-promo .hook { white-space: normal; }
}
.hint-box {
  font-size: 0.78rem;
  color: var(--muted);
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  line-height: 1.45;
}
.hint-box code { color: #c4d4e8; font-size: 0.75rem; }

.login-form-title {
  margin: 0 0 1.25rem;
  font-size: 1.15rem;
  font-weight: 600;
}
.login-form label { display: block; font-size: 0.8rem; color: var(--muted); margin-bottom: 0.35rem; }
.login-form input[type="text"] {
  width: 100%;
  padding: 0.75rem 0.9rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font-size: 1rem;
  margin-bottom: 1rem;
  box-sizing: border-box;
}
.login-form input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.login-form-promise {
  margin: 1rem 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--muted);
}
.error { color: #fca5a5; font-size: 0.85rem; margin-bottom: 0.75rem; }

/* Shared: apply modal sidebar steps */
.login-section-title {
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}
.login-step-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.login-step {
  display: flex;
  gap: 0.85rem;
  align-items: flex-start;
  padding: 0.85rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}
.login-step:last-child { border-bottom: none; padding-bottom: 0; }
.login-step-num {
  flex-shrink: 0;
  width: 1.65rem;
  height: 1.65rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 22%, var(--bg-elevated));
  border: 1px solid color-mix(in srgb, var(--accent) 45%, var(--border));
  overflow: hidden;
}
.login-step-num-digit,
.login-step-num-check {
  grid-area: 1 / 1;
  line-height: 1;
}
.login-step:not(.is-complete) .login-step-num .material-icons.login-step-num-check {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.login-step.is-complete .login-step-num-digit {
  display: none !important;
}
.login-step.is-complete .login-step-num .material-icons.login-step-num-check {
  display: flex !important;
  visibility: visible !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 1 !important;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  color: #16a34a;
  -webkit-text-stroke: 0.65px #16a34a;
  paint-order: stroke fill;
  filter: drop-shadow(0 0 0.35px #16a34a);
}
.login-step.is-complete .login-step-num {
  background: color-mix(in srgb, #22c55e 18%, var(--bg-elevated));
  border-color: color-mix(in srgb, #16a34a 65%, var(--border));
  color: #16a34a;
}
.login-step-title {
  display: block;
  font-size: 0.92rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text);
}
.login-step-desc {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.8rem;
  line-height: 1.4;
  color: var(--muted);
}
.login-next-steps {
  padding: 1.15rem 1.2rem;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: color-mix(in srgb, var(--bg-elevated) 40%, transparent);
}
.login-reassurance {
  padding-top: 0.25rem;
  border-top: 1px solid var(--border);
}
.login-reassurance-eyebrow {
  margin: 0 0 0.65rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.login-reassurance-list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--muted);
}
.login-reassurance-list li { margin-bottom: 0.45rem; }
.login-reassurance-list li:last-child { margin-bottom: 0; }

@media (max-width: 900px) {
  .login-page { flex-direction: column; }
  .login-form-col {
    width: 100%;
    max-width: none;
    border-right: none;
    border-bottom: 1px solid var(--border);
  }
  .login-promo {
    min-height: 14rem;
  }
  .login-promo-overlay {
    padding: 3rem 2rem;
  }
  .login-promo .hook { white-space: normal; }
}

/* Dashboard */
.dashboard { max-width: 960px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
.dashboard-tag-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 0.85rem;
  margin-bottom: 0.35rem;
}
.persona-select {
  appearance: none;
  -webkit-appearance: none;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.22rem 1.65rem 0.22rem 0.55rem;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%2394a3b8' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.45rem center;
}
.persona-select:hover:not(:disabled) { border-color: var(--muted); }
.persona-select:focus {
  outline: none;
  border-color: rgba(251, 191, 36, 0.55);
  box-shadow: 0 0 0 2px rgba(251, 191, 36, 0.15);
}
.persona-select:disabled { opacity: 0.65; cursor: wait; }

.material-icons {
  font-family: "Material Icons";
  font-weight: normal;
  font-style: normal;
  font-size: 1.125rem;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  vertical-align: middle;
}
[hidden] {
  display: none !important;
}
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.35rem;
  min-width: 2rem;
  min-height: 2rem;
}
.btn-danger, .btn-danger-ghost {
  color: #fca5a5;
  border-color: rgba(248, 113, 113, 0.35);
}
.btn-danger {
  background: rgba(239, 68, 68, 0.18);
}
.btn-danger-ghost {
  background: transparent;
}
.btn-danger:hover, .btn-danger-ghost:hover {
  color: #fecaca;
  border-color: rgba(248, 113, 113, 0.55);
}
.btn-danger:disabled, .btn-danger-ghost:disabled { opacity: 0.5; }
.admin-confirm-dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
.admin-confirm-dialog {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0;
  margin: auto;
  background: var(--bg-elevated);
  color: var(--text);
  max-width: 28rem;
  width: calc(100% - 2rem);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
}
.admin-confirm-dialog:not([open]) { display: none; }
.admin-confirm-form { padding: 1.25rem 1.25rem 1rem; margin: 0; }
.admin-confirm-form h2 { margin: 0 0 0.65rem; font-size: 1.1rem; }
.admin-confirm-message { color: var(--muted); margin: 0 0 1rem; }
.admin-confirm-label { display: block; margin-bottom: 0.35rem; font-size: 0.85rem; }
.admin-confirm-input {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 1rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg);
  color: var(--text);
}
.admin-confirm-actions { display: flex; justify-content: flex-end; gap: 0.5rem; }
.admin-confirm-actions .btn-danger { display: inline-flex; align-items: center; gap: 0.35rem; }
.dashboard h1 { font-size: 1.5rem; margin: 0 0 0.25rem; }
.dashboard-org-name { color: var(--muted); font-size: 0.85rem; margin: 0.15rem 0 0.5rem; }
.dashboard--onboarding { max-width: 1100px; }
.dashboard--thanks { max-width: 960px; padding-bottom: 1.5rem; }
.dashboard--thanks .stat-row { margin-top: 2rem; }
.dashboard--evaluation { max-width: 1100px; }
.dashboard-section-title {
  font-size: 1.25rem;
  margin: 2.5rem 0 0.75rem;
  font-weight: 600;
}
/* Label + info icon: icon immediately right of label text, vertically centered */
.label-with-info {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  max-width: 100%;
}
.label-with-info > :first-child {
  margin: 0;
  min-width: 0;
}
.inline-info-tip {
  position: relative;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  align-self: center;
}

.dashboard-library-header {
  margin: 0 0 0.75rem;
}

/* Partner library — search & filters */
.library-explorer {
  margin-top: 0.5rem;
}
.library-toolbar {
  margin: 0 0 1.75rem;
  padding: 1rem 1.1rem 1.05rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
}
.library-toolbar[hidden] {
  display: none !important;
}
.library-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
}
.library-search-icon {
  position: absolute;
  left: 0.85rem;
  font-size: 1.25rem;
  color: var(--muted);
  pointer-events: none;
}
.library-search-input {
  width: 100%;
  padding: 0.65rem 2.75rem 0.65rem 2.75rem;
  font-size: 0.95rem;
  font-family: inherit;
  color: var(--text);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 10px;
  outline: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.library-search-input::placeholder {
  color: var(--muted);
  opacity: 0.85;
}
.library-search-input:hover {
  border-color: rgba(255, 255, 255, 0.14);
}
.library-search-input:focus {
  border-color: rgba(241, 92, 46, 0.55);
  box-shadow: 0 0 0 3px rgba(241, 92, 46, 0.12);
}
.library-search-clear {
  position: absolute;
  right: 0.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.library-search-clear:hover,
.library-search-clear:focus-visible {
  color: var(--text);
  background: rgba(255, 255, 255, 0.06);
}
.library-filter-panel {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.library-filter-row {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  min-width: 0;
}
.library-filter-label {
  flex-shrink: 0;
  width: 4.5rem;
  padding-top: 0.35rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--muted);
}
.library-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  flex: 1;
  min-width: 0;
}
.library-filter-chips-scroll {
  flex-wrap: nowrap;
  overflow-x: auto;
  padding-bottom: 0.15rem;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.library-chip {
  flex-shrink: 0;
  padding: 0.28rem 0.65rem;
  font-size: 0.78rem;
  font-weight: 500;
  font-family: inherit;
  line-height: 1.3;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
  cursor: pointer;
  transition: color 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}
.library-chip:hover {
  color: var(--text);
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.07);
}
.library-chip:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.library-chip.is-active {
  color: #fff;
  border-color: rgba(241, 92, 46, 0.65);
  background: rgba(241, 92, 46, 0.22);
}
.library-chip-type.is-active {
  border-color: rgba(96, 165, 250, 0.55);
  background: rgba(96, 165, 250, 0.18);
  color: #e8edf4;
}
.library-chip-category.is-active {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  color: var(--text);
}
.library-chip-onboarding.is-active {
  border-color: rgba(251, 191, 36, 0.5);
  background: rgba(251, 191, 36, 0.15);
}
.library-chip-oasis.is-active {
  border-color: rgba(52, 211, 153, 0.45);
  background: rgba(52, 211, 153, 0.12);
}
.library-toolbar-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--border);
}
.library-results-meta {
  margin: 0;
  font-size: 0.82rem;
  color: var(--muted);
}
.library-clear-filters {
  padding: 0.2rem 0.55rem;
  font-size: 0.78rem;
  font-family: inherit;
  font-weight: 500;
  color: var(--accent);
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.library-clear-filters:hover,
.library-clear-filters:focus-visible {
  color: #ff8c66;
}
.library-no-results {
  margin: 1.5rem 0 0;
  padding: 1.25rem 1rem;
  text-align: center;
  font-size: 0.92rem;
  color: var(--muted);
  border: 1px dashed var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
}
.library-no-results-clear {
  display: inline;
  margin-left: 0.35rem;
  padding: 0;
  font-size: inherit;
  font-family: inherit;
  font-weight: 500;
  color: var(--accent);
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.library-content-type-tag {
  font-size: 0.65rem;
  vertical-align: middle;
}
@media (max-width: 640px) {
  .library-filter-row {
    flex-direction: column;
    gap: 0.4rem;
  }
  .library-filter-label {
    width: auto;
    padding-top: 0;
  }
}
.dashboard-onboarding-library .dashboard-library-header {
  margin-top: 2.5rem;
}
.dashboard-library-title-row {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  max-width: 100%;
}
.dashboard-library-title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.3;
}
h2.dashboard-library-title.dashboard-section-title {
  font-size: 1.25rem;
}
.dashboard-library-sep {
  color: var(--muted);
  font-weight: 400;
  margin: 0 0.35rem;
}
.dashboard-library-stage { font-weight: 600; }
.dashboard-library-tip-wrap {
  position: relative;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
}
.dashboard-library-tip-trigger {
  color: var(--muted);
  border-color: var(--border);
  background: rgba(255, 255, 255, 0.04);
  cursor: help;
}
.dashboard-library-tip-trigger .material-icons {
  font-size: 1.125rem;
}
.dashboard-library-tip-trigger:hover,
.dashboard-library-tip-trigger:focus-visible {
  color: var(--text);
  border-color: rgba(251, 146, 60, 0.45);
}
.dashboard-library-search-tip {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
}
.dashboard-library-search-toggle {
  color: var(--muted);
  border-color: var(--border);
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
}
.dashboard-library-search-toggle .material-icons {
  font-size: 1.125rem;
}
.dashboard-library-search-toggle:hover,
.dashboard-library-search-toggle:focus-visible {
  color: var(--text);
  border-color: rgba(251, 146, 60, 0.45);
}
.dashboard-library-search-toggle.is-active {
  color: var(--accent);
  border-color: rgba(241, 92, 46, 0.45);
  background: rgba(241, 92, 46, 0.1);
}
.dashboard-library-tip-bubble {
  position: absolute;
  left: calc(100% + 0.35rem);
  top: 50%;
  transform: translateY(-50%);
  z-index: 30;
  width: min(18rem, 70vw);
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-elevated);
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
  user-select: text;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, visibility 0.15s ease;
}
/* Invisible bridge so the pointer can reach the bubble without closing */
.dashboard-library-tip-bubble::before {
  content: "";
  position: absolute;
  right: 100%;
  top: 0;
  width: 0.5rem;
  height: 100%;
}
.dashboard-library-tip-wrap:hover .dashboard-library-tip-bubble,
.dashboard-library-tip-wrap:focus-within .dashboard-library-tip-bubble {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
@media (max-width: 640px) {
  .dashboard-library-tip-bubble {
    left: auto;
    right: 0;
    top: calc(100% + 0.35rem);
    transform: none;
  }
  .dashboard-library-tip-bubble::before {
    right: 0;
    left: 0;
    top: auto;
    bottom: 100%;
    width: 100%;
    height: 0.4rem;
  }
}
.dashboard-case-studies {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 1.25rem;
}
.dashboard-case-study {
  padding: 1.35rem 1.4rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-elevated);
}
.dashboard-case-study-highlight {
  text-align: center;
  margin: 0 0 1.25rem;
  padding-bottom: 1.15rem;
  border-bottom: 1px solid var(--border);
}
.dashboard-case-study-math {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text);
  letter-spacing: 0.02em;
}
.dashboard-case-study-arr {
  margin: 0.5rem 0 0;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1.2;
}
.dashboard-case-study-title {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
}
.dashboard-case-study-body {
  margin: 0;
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.55;
}
@media (max-width: 960px) {
  .dashboard-case-studies { grid-template-columns: 1fr; }
}
.dashboard-profit-calculator {
  margin-top: 2rem;
  padding: 1.5rem 1.35rem 1.35rem;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
}
.dashboard-profit-calculator-title-row {
  margin: 0 0 0.4rem;
}
.dashboard-profit-calculator-title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 600;
}
.dashboard-profit-calculator-lede {
  margin: 0 0 1.25rem;
  max-width: 42rem;
}
.profit-calculator-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 1.75rem;
  align-items: start;
}
.profit-calculator-fieldset {
  margin: 0 0 1.1rem;
}
.profit-calculator-caveat {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
}
.profit-calculator-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem 0.85rem;
  margin-top: 0.85rem;
}
.profit-calculator-learn-more {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--accent);
  cursor: pointer;
  text-decoration: none;
}
.profit-calculator-learn-more:hover {
  color: color-mix(in srgb, var(--accent) 82%, #fff);
}
@media (max-width: 900px) {
  .profit-calculator-grid {
    grid-template-columns: 1fr;
  }
}

.profit-calculator-outputs {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.profit-stream {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.45rem 0.55rem 0.45rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-elevated);
}
.profit-stream-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 0;
  flex: 1;
}
.profit-stream.is-excluded {
  opacity: 0.72;
}
.profit-stream.is-excluded .profit-stream-main {
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  text-decoration-color: rgba(148, 163, 184, 0.85);
}
.profit-stream.is-excluded .profit-stream-amount {
  color: var(--muted);
}
.profit-stream-toggle {
  flex-shrink: 0;
  width: 1.65rem;
  height: 1.65rem;
  padding: 0;
  color: var(--muted);
  border-color: transparent;
  background: transparent;
}
.profit-stream-toggle-spacer {
  flex-shrink: 0;
  width: 1.65rem;
  height: 1.65rem;
}
.profit-stream-toggle .material-icons {
  font-size: 1.05rem;
}
.profit-stream-toggle:hover,
.profit-stream-toggle:focus-visible {
  color: var(--text);
  border-color: var(--border);
  background: rgba(255, 255, 255, 0.04);
}
.profit-stream-toggle[aria-pressed="true"] {
  color: var(--accent);
}
.profit-stream-title-row {
  margin: 0;
  gap: 0.25rem;
  min-width: 0;
}
.profit-stream-title {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.profit-stream-title-row .dashboard-library-tip-trigger {
  width: 1.4rem;
  height: 1.4rem;
  padding: 0;
}
.profit-stream-title-row .dashboard-library-tip-trigger .material-icons {
  font-size: 0.95rem;
}
.profit-stream-title-row .dashboard-library-tip-bubble {
  left: auto;
  right: 0;
  top: calc(100% + 0.4rem);
  transform: none;
  width: min(22rem, calc(100vw - 3rem));
  z-index: 40;
}
.profit-stream-title-row .dashboard-library-tip-bubble::before {
  right: 0.55rem;
  left: auto;
  top: auto;
  bottom: 100%;
  width: 100%;
  height: 0.45rem;
}
.profit-stream-tip-lede {
  margin: 0 0 0.45rem;
  font-weight: 600;
  color: var(--text);
}
.profit-stream-tip-context {
  margin: 0 0 0.65rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--text);
}
.profit-stream-tip-list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.45;
}
.profit-stream-tip-list li + li {
  margin-top: 0.2rem;
}
.profit-stream-tip-list strong {
  color: var(--text);
  font-weight: 600;
}
.profit-stream-tip-note {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.4;
  font-style: italic;
}
.profit-stream-tip-math {
  margin: 0;
  padding-top: 0.45rem;
  border-top: 1px solid var(--border);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.75rem;
  color: var(--text);
  line-height: 1.4;
  word-break: break-word;
}
.profit-stream-amount {
  margin: 0;
  flex-shrink: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1.2;
  text-align: right;
}
.profit-calculator-total {
  margin-top: 0.15rem;
  padding: 0.55rem 0.55rem 0.55rem 0.75rem;
  border: 1px solid rgba(241, 92, 46, 0.35);
  border-radius: 8px;
  background: rgba(241, 92, 46, 0.08);
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.profit-calculator-total-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 0;
  flex: 1;
}
.profit-calculator-total-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  line-height: 1.3;
}
.profit-calculator-total-amount {
  flex-shrink: 0;
  font-size: 1.2rem;
  color: var(--accent);
  line-height: 1.2;
  text-align: right;
}
.dashboard-thanks-panel {
  margin-top: 1.25rem;
  padding: 1.5rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
}
.dashboard-thanks-lede { font-size: 1.05rem; margin: 0 0 0.75rem; }
.dashboard-applied-on { margin: 0 0 1rem; font-size: 0.9rem; }
.dashboard-thanks-actions { margin-top: 1.25rem; }
.dashboard-apply-embedded {
  margin-top: 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  padding: 1.25rem 1rem 1.5rem;
}
.partner-apply-grid--embedded { margin-top: 0.5rem; }
.partner-apply-embedded-header { margin-bottom: 0.75rem; }
.dashboard-lede { color: var(--muted); margin: 0 0 1rem; }
.status-banner {
  padding: 0.85rem 1rem;
  border-radius: 8px;
  margin: 1.25rem 0 2rem;
  font-size: 0.9rem;
}
.status-pre { background: rgba(96, 165, 250, 0.1); border: 1px solid rgba(96, 165, 250, 0.3); }
.status-post { background: rgba(52, 211, 153, 0.08); border: 1px solid rgba(52, 211, 153, 0.25); }
.status-admin { background: rgba(251, 191, 36, 0.1); border: 1px solid rgba(251, 191, 36, 0.35); }
.asset-section { margin-bottom: 2.5rem; }
.asset-section h2 { font-size: 1rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 1rem; }
.asset-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.65rem; }
.asset-item {
  display: block;
  padding: 1rem 1.15rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-elevated);
}
a.asset-item-link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
a.asset-item-link:hover {
  border-color: rgba(241, 92, 46, 0.4);
  background: rgba(255, 255, 255, 0.04);
  text-decoration: none;
}
a.asset-item-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.asset-item .tag { margin-right: 0.35rem; vertical-align: middle; }
.asset-item h3 { margin: 0.5rem 0 0; font-size: 1rem; color: var(--text); }
.asset-item p { margin: 0.2rem 0 0; font-size: 0.85rem; color: var(--muted); }
.asset-actions { display: flex; gap: 0.5rem; flex-shrink: 0; }

/* Doc viewer */
.doc-shell { display: flex; flex-direction: column; height: calc(100vh - 57px); }
.doc-toolbar {
  display: flex; align-items: center; gap: 1rem;
  padding: 0.65rem 1.25rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-elevated);
  flex-shrink: 0;
}
.toolbar-title-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
}
.toolbar-title-group h1 {
  font-size: 0.95rem;
  margin: 0;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.content-type-tag {
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  padding: 0.15rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  flex-shrink: 0;
}
.toolbar-title-group .btn-toolbar-open {
  flex-shrink: 0;
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
}
.doc-toolbar .toolbar-actions,
.slide-toolbar .toolbar-actions {
  margin-left: auto;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.doc-toolbar .btn-toolbar-edit,
.slide-toolbar .btn-toolbar-edit,
.doc-toolbar .btn-download-pdf,
.slide-toolbar .btn-download-pdf {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.1rem 0.45rem;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.15;
  min-height: 0;
  border-radius: 5px;
}
.doc-toolbar .btn-download-pdf .btn-icon,
.slide-toolbar .btn-download-pdf .btn-icon {
  font-size: 0.85rem;
  padding: 0;
  min-width: 0;
  min-height: 0;
  line-height: 1;
  vertical-align: baseline;
}
.doc-toolbar .btn-download-pdf .btn-label,
.slide-toolbar .btn-download-pdf .btn-label {
  line-height: 1.15;
}
.doc-toolbar h1 { font-size: 0.95rem; margin: 0; font-weight: 600; }
.doc-article-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: auto;
  min-height: 0;
  position: relative;
  --doc-body-pad-top: 2.75rem;
}
.doc-body {
  flex: 1;
  padding: var(--doc-body-pad-top) 2.5rem 1.5rem;
  max-width: 52rem;
  margin: 0 auto;
  width: 100%;
}
.doc-body > :first-child {
  margin-top: 0;
}
.doc-chrome {
  flex-shrink: 0;
  max-width: 52rem;
  margin: 0 auto;
  width: 100%;
  pointer-events: none;
}
.doc-chrome-header {
  position: absolute;
  top: 0.65rem;
  right: 2.5rem;
  z-index: 1;
  display: flex;
  justify-content: flex-end;
  padding: 0;
  max-width: none;
  margin: 0;
}
.doc-chrome-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1.5rem;
  padding: 0 2.5rem 1.5rem;
}
.doc-chrome-header-right,
.doc-chrome-footer-right {
  text-align: right;
}
.doc-chrome-footer-left {
  text-align: left;
  flex: 1;
  min-width: 0;
}
.doc-chrome-footer-right {
  flex-shrink: 0;
  text-align: right;
}
.doc-chrome-footer-left,
.doc-chrome-footer-right {
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--muted);
  opacity: 0.92;
}
.doc-chrome-img {
  display: block;
  height: 2.25rem;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  opacity: 0.95;
}
.doc-chrome-header-right .doc-chrome-img {
  height: 2.5rem;
}
.doc-body h1 { color: var(--accent); font-size: 1.75rem; }
.doc-body h2 { color: var(--blue); margin-top: 2rem; border-bottom: 1px solid var(--border); padding-bottom: 0.35rem; }
.doc-body table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.95rem; }
.doc-body th, .doc-body td { border: 1px solid var(--border); padding: 0.5rem 0.75rem; text-align: left; }
.doc-body img { max-width: 100%; height: auto; }

/* Slide shell */
.slide-shell { display: flex; flex-direction: column; height: calc(100vh - 57px); }
.slide-toolbar {
  display: flex; align-items: center; gap: 1rem;
  padding: 0.65rem 1.25rem;
  border-bottom: 1px solid var(--border);
  background: var(--bg-elevated);
  color: var(--text);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.slide-toolbar a { color: var(--blue); }
.slide-toolbar h1,
.slide-toolbar .toolbar-title-group h1 {
  font-size: 0.95rem;
  margin: 0;
  font-weight: 600;
  color: var(--text);
}
.slide-frame { flex: 1; border: 0; width: 100%; background: #000; }

.locked-note {
  padding: 1rem;
  border: 1px dashed var(--border);
  border-radius: 8px;
  color: var(--muted);
  font-size: 0.9rem;
}

/* Global admin */
.admin-page { max-width: 1100px; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
.admin-page h1 { font-size: 1.5rem; margin: 0.25rem 0; }
.admin-lede { color: var(--muted); margin: 0 0 1.5rem; max-width: 40rem; }
.admin-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}
.stat-card {
  flex: 1;
  min-width: 100px;
  padding: 1rem 1.15rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg-elevated);
}
.stat-card strong { display: block; font-size: 1.5rem; color: var(--accent); }
.stat-card span { font-size: 0.78rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.admin-section { margin-bottom: 2.5rem; }
.admin-section h2 {
  font-size: 1rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.75rem;
}
.admin-count {
  font-weight: 500;
  font-size: 0.92em;
}
.admin-table-wrap {
  overflow-x: auto;
}
.admin-table-applications .admin-app-why {
  max-width: 20rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--muted);
  font-size: 0.88rem;
}
.admin-application-row {
  cursor: pointer;
}
.admin-application-row:focus-visible {
  outline: 2px solid rgba(251, 146, 60, 0.55);
  outline-offset: -2px;
}
.admin-content-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.25rem;
}
.admin-content-page-header h1 {
  margin: 0;
}
.btn-admin-content-add {
  flex-shrink: 0;
  font-size: 0.82rem;
  padding: 0.45rem 0.85rem;
}
.admin-content-add-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
}
.admin-content-add-dialog {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0;
  max-width: min(520px, calc(100vw - 2rem));
  width: 100%;
  background: var(--bg);
  color: var(--text);
}
.admin-content-add-dialog:not([open]) {
  display: none;
}
.admin-content-add-form {
  padding: 1.15rem 1.25rem 1rem;
}
.admin-content-add-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}
.admin-content-add-header h2 {
  margin: 0 0 0.2rem;
  font-size: 1.1rem;
}
.admin-content-add-sub {
  margin: 0;
  font-size: 0.82rem;
}
.admin-content-add-modes {
  display: flex;
  gap: 0.35rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.admin-content-add-mode {
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  border-radius: 6px;
  padding: 0.35rem 0.65rem;
  font-size: 0.78rem;
  font-family: inherit;
  cursor: pointer;
}
.admin-content-add-mode.is-active {
  border-color: var(--accent);
  color: var(--text);
  background: var(--accent-dim);
}
.admin-content-add-fields {
  display: grid;
  gap: 0.85rem;
}
.admin-content-add-label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.admin-content-add-label-text {
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.admin-content-add-fields > .admin-content-add-label .persona-select {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  font-size: 0.72rem;
}
.admin-content-add-text-fields {
  display: grid;
  gap: 0.65rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-elevated, var(--surface));
}
.admin-content-add-text-fields .admin-content-add-label {
  gap: 0.4rem;
}
.admin-content-add-text-fields .admin-content-title-input,
.admin-content-add-text-fields .admin-content-subtitle-input {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
}
.admin-content-add-text-fields .admin-content-subtitle-input {
  margin-top: 0;
}
.admin-content-add-upload {
  margin-top: 0.85rem;
}
.admin-content-add-drop {
  border: 1px dashed var(--border);
  border-radius: 8px;
  padding: 1.1rem 1rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.admin-content-add-drop.is-dragover {
  border-color: var(--accent);
  background: var(--accent-dim);
}
.admin-content-add-drop-lead {
  margin: 0 0 0.35rem;
  font-size: 0.85rem;
}
.admin-content-add-drop-name {
  margin: 0;
}
.admin-content-add-browse {
  border: 0;
  background: none;
  color: var(--blue);
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}
.admin-content-add-upload-type {
  border: 0;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  gap: 1rem;
  align-items: center;
}
.admin-content-add-radio {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  color: var(--text);
}
.admin-content-add-error {
  margin: 0.75rem 0 0;
  color: #fca5a5;
  font-size: 0.82rem;
}
.admin-content-add-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--border);
}

.admin-application-dialog::backdrop {
  background: rgba(0, 0, 0, 0.55);
}
.admin-application-dialog {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0;
  max-width: min(640px, calc(100vw - 2rem));
  width: 100%;
  background: var(--bg);
  color: var(--text);
}
.admin-application-dialog:not([open]) {
  display: none;
}
.admin-application-dialog-panel {
  padding: 1.25rem 1.25rem 1.1rem;
}
.admin-application-dialog-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.admin-application-dialog-header h2 {
  margin: 0 0 0.2rem;
  font-size: 1.15rem;
}
.admin-application-dialog-sub {
  margin: 0;
  font-size: 0.85rem;
}
.admin-application-dialog-close {
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.15rem 0.35rem;
}
.admin-application-dialog-close:hover {
  color: var(--text);
}
.admin-application-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.15rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border);
}
.admin-application-details {
  display: grid;
  grid-template-columns: minmax(8rem, 11rem) 1fr;
  gap: 0.55rem 1rem;
  margin: 0;
}
.admin-application-details dt {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 600;
}
.admin-application-details dd {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.45;
  white-space: pre-wrap;
}
.admin-application-note-wrap {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.admin-application-note-wrap label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.85rem;
  color: var(--muted);
}
.admin-application-note-wrap textarea {
  width: 100%;
  box-sizing: border-box;
  min-height: 6rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg);
  color: var(--text);
  font: inherit;
  resize: vertical;
}
.admin-application-note-actions {
  margin-top: 0.65rem;
  display: flex;
  justify-content: flex-end;
}
.admin-note { font-size: 0.88rem; color: var(--muted); margin: 0 0 1rem; }
.admin-note code { font-size: 0.82rem; color: #c4d4e8; }
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}
.admin-table th,
.admin-table td {
  border: 1px solid var(--border);
  padding: 0.55rem 0.75rem;
  text-align: left;
  vertical-align: top;
}
.admin-table th { color: var(--muted); font-weight: 600; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }
.admin-table tbody tr:hover { background: rgba(255, 255, 255, 0.02); }
.path-cell { font-size: 0.75rem; word-break: break-all; }
.admin-actions { white-space: nowrap; }
.admin-actions a { font-size: 0.85rem; }
.admin-global-admin-col { vertical-align: top; }
.admin-global-admin-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
}
.admin-global-admin-stack .btn-sm { font-size: 0.72rem; padding: 0.2rem 0.55rem; }
.admin-list { margin: 0; padding-left: 1.25rem; color: var(--muted); font-size: 0.9rem; }
.admin-list li { margin-bottom: 0.35rem; }
.ok { color: var(--success); }
.warn { color: #fca5a5; }

.admin-content-title-cell { min-width: 14rem; }
.admin-content-title-input,
.admin-content-subtitle-input {
  display: block;
  width: 100%;
  max-width: 22rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 0.88rem;
}
.admin-content-subtitle-input {
  margin-top: 0.35rem;
  font-size: 0.78rem;
  color: var(--muted);
}
.admin-content-title-input:hover:not(:disabled),
.admin-content-subtitle-input:hover:not(:disabled) {
  border-color: var(--muted);
}
.admin-content-title-input:focus,
.admin-content-subtitle-input:focus {
  outline: none;
  border-color: var(--accent, #60a5fa);
  box-shadow: 0 0 0 2px rgba(96, 165, 250, 0.2);
}
.admin-content-title-input:disabled,
.admin-content-subtitle-input:disabled {
  opacity: 0.65;
  cursor: wait;
}
.admin-content-title-cell .tag-oasis { margin-top: 0.35rem; }

/* Program flow modal (landing) */
.program-flow-dialog {
  width: min(94vw, 40rem);
  max-height: min(92vh, 54rem);
  margin: auto;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--bg-elevated);
  color: var(--text);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
  overflow: hidden;
}
.program-flow-dialog::backdrop {
  background: rgba(8, 10, 14, 0.72);
  backdrop-filter: blur(4px);
}
.program-flow-dialog-panel {
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 54rem);
  min-height: 0;
}
.program-flow-dialog-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.program-flow-dialog-header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.35rem 1rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 8%, var(--bg-elevated)) 0%, var(--bg-elevated) 100%);
}
.program-flow-dialog-header h2 {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  min-width: 0;
}
.program-flow-dialog-close {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--muted);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  font-family: inherit;
}
.program-flow-dialog-close:hover {
  color: var(--text);
  border-color: var(--muted);
}
.program-flow {
  padding: 1.15rem 1.25rem 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.flow-step {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: stretch;
}
.flow-step-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100%;
}
.flow-step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 12px;
  border: 1px solid var(--border);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  flex-shrink: 0;
}
.flow-step-icon svg {
  width: 1.35rem;
  height: 1.35rem;
}
.flow-step-line {
  flex: 1;
  width: 2px;
  min-height: 0.75rem;
  margin-top: 0.35rem;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--step-accent, var(--accent)), color-mix(in srgb, var(--step-accent, var(--accent)) 20%, transparent));
}
.flow-step--grow .flow-step-line { display: none; }
.flow-step-content {
  padding: 0.85rem 1rem 0.95rem;
  border-radius: 11px;
  border: 1px solid var(--border);
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--step-accent, var(--accent)) 10%, var(--bg)) 0%,
    var(--bg) 55%
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.flow-step:hover .flow-step-content {
  border-color: color-mix(in srgb, var(--step-accent, var(--accent)) 45%, var(--border));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.05),
    0 0 20px color-mix(in srgb, var(--step-accent, var(--accent)) 18%, transparent);
}
.flow-step-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin-bottom: 0.45rem;
}
.flow-step-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--text);
  flex: 1 1 auto;
  min-width: 4rem;
}
.flow-step-tag {
  font-size: 0.62rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.18rem 0.45rem;
  border-radius: 4px;
  white-space: nowrap;
}
.flow-step-tag--time {
  color: #fcd34d;
  background: rgba(251, 191, 36, 0.15);
  border: 1px solid rgba(251, 191, 36, 0.28);
}
.flow-step-tag--effort {
  color: #93c5fd;
  background: rgba(96, 165, 250, 0.12);
  border: 1px solid rgba(96, 165, 250, 0.25);
}
.flow-step-body {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.48;
  color: var(--muted);
}
/* Step color themes */
.flow-step--apply {
  --step-accent: #93c5fd;
}
.flow-step-icon--apply {
  color: #93c5fd;
  background: linear-gradient(145deg, rgba(96, 165, 250, 0.28), rgba(96, 165, 250, 0.08));
  border-color: rgba(96, 165, 250, 0.35);
}
.flow-step--onboard {
  --step-accent: #6ee7b7;
}
.flow-step-icon--onboard {
  color: #6ee7b7;
  background: linear-gradient(145deg, rgba(52, 211, 153, 0.28), rgba(52, 211, 153, 0.08));
  border-color: rgba(52, 211, 153, 0.35);
}
.flow-step--outreach {
  --step-accent: #c4b5fd;
}
.flow-step-icon--outreach {
  color: #c4b5fd;
  background: linear-gradient(145deg, rgba(167, 139, 250, 0.28), rgba(167, 139, 250, 0.08));
  border-color: rgba(167, 139, 250, 0.35);
}
.flow-step--land {
  --step-accent: #fdba74;
}
.flow-step-icon--land {
  color: #fdba74;
  background: linear-gradient(145deg, rgba(251, 146, 60, 0.3), rgba(251, 146, 60, 0.08));
  border-color: rgba(251, 146, 60, 0.35);
}
.flow-step--book {
  --step-accent: #f15c2e;
}
.flow-step-icon--book {
  color: #f15c2e;
  background: linear-gradient(145deg, rgba(241, 92, 46, 0.32), rgba(241, 92, 46, 0.1));
  border-color: rgba(241, 92, 46, 0.4);
  box-shadow: 0 4px 16px rgba(241, 92, 46, 0.2);
}
.flow-step--grow {
  --step-accent: #34d399;
}
.flow-step-icon--grow {
  color: #34d399;
  background: linear-gradient(145deg, rgba(52, 211, 153, 0.32), rgba(52, 211, 153, 0.1));
  border-color: rgba(52, 211, 153, 0.4);
}
.flow-step--grow .flow-step-content {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, #34d399 12%, var(--bg)) 0%,
    color-mix(in srgb, var(--accent) 6%, var(--bg)) 100%
  );
}
@media (prefers-reduced-motion: reduce) {
  .flow-step-content { transition: none; }
}
.program-flow-outro {
  margin: 0.25rem 1.25rem 1.15rem;
  padding: 1rem 1.1rem 1.05rem;
  border-radius: 11px;
  border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--accent) 9%, var(--bg)) 0%,
    var(--bg) 70%
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.program-flow-quote {
  margin: 0 0 0.85rem;
  padding: 0 0 0 0.85rem;
  border-left: 3px solid var(--accent);
}
.program-flow-quote p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--text);
  font-style: italic;
}
.program-flow-quote footer {
  margin-top: 0.55rem;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--muted);
}
.program-flow-outro-pitch {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--muted);
}
.program-flow-dialog-footer {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 1rem 1.35rem 1.25rem;
  border-top: 1px solid var(--border);
  background: var(--bg);
}

/* Partner apply modal (landing) */
.partner-apply-dialog {
  width: min(96vw, 56rem);
  max-height: min(92vh, 40rem);
  margin: auto;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--bg-elevated);
  color: var(--text);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
  overflow: hidden;
}
.partner-apply-dialog::backdrop {
  background: rgba(8, 10, 14, 0.72);
  backdrop-filter: blur(4px);
}
.partner-apply-dialog-panel {
  display: flex;
  flex-direction: column;
  max-height: min(92vh, 40rem);
  min-height: 0;
}
.partner-apply-dialog-header {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.35rem 0.85rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 8%, var(--bg-elevated)) 0%, var(--bg-elevated) 100%);
}
.partner-apply-header-main {
  flex: 1;
  min-width: 0;
}
.partner-apply-dialog-header h2 {
  margin: 0 0 0.65rem;
  font-size: 1.15rem;
  font-weight: 700;
}
.partner-apply-progress-steps {
  display: flex;
  gap: 0.35rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.partner-apply-progress-steps li {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  color: var(--muted);
  min-width: 0;
  cursor: pointer;
  border-radius: 6px;
  padding: 0.15rem 0.2rem;
  margin: -0.15rem -0.2rem;
  transition: color 0.15s, background 0.15s;
}
.partner-apply-progress-steps li:hover {
  color: var(--text);
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
.partner-apply-progress-steps li:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.partner-apply-progress-dot {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.68rem;
  font-weight: 700;
  background: var(--bg);
}
.partner-apply-progress-steps li.is-active {
  color: var(--text);
  font-weight: 600;
}
.partner-apply-progress-steps li.is-active .partner-apply-progress-dot,
.partner-apply-progress-steps li.is-complete .partner-apply-progress-dot {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 18%, var(--bg));
  color: var(--accent);
}
.partner-apply-progress-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.partner-apply-progress-track {
  margin-top: 0.45rem;
  height: 3px;
  border-radius: 999px;
  background: var(--border);
  overflow: hidden;
}
.partner-apply-progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width 0.25s ease;
}
.partner-apply-form label:not(.chip) {
  display: block;
  font-size: 0.8rem;
  color: var(--muted);
  margin: 0.85rem 0 0.35rem;
}
.partner-apply-form label:not(.chip):first-child,
.partner-apply-form .partner-apply-step-lede + label:not(.chip) {
  margin-top: 0;
}
.partner-apply-form .label-optional {
  font-weight: 400;
  opacity: 0.75;
}
.partner-apply-form input[type="text"],
.partner-apply-form input[type="email"],
.partner-apply-form input[type="url"],
.partner-apply-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--text);
  font: inherit;
}
.partner-apply-select-wrap {
  position: relative;
}
.partner-apply-select-wrap select {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  padding: 0.6rem 2.25rem 0.6rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg);
  color: var(--text);
  font: inherit;
  font-size: 0.84rem;
  line-height: 1.35;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.partner-apply-select-wrap select:hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}
.partner-apply-select-wrap select:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
.partner-apply-select-wrap select:invalid {
  color: var(--muted);
}
.partner-apply-select-wrap select option {
  background: var(--bg-elevated);
  color: var(--text);
}
.partner-apply-select-wrap::after {
  content: "";
  position: absolute;
  right: 0.85rem;
  top: 50%;
  width: 0.45rem;
  height: 0.45rem;
  margin-top: -0.35rem;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg);
  pointer-events: none;
}
.partner-apply-form textarea {
  resize: vertical;
  min-height: 5.5rem;
}
.partner-apply-form input:focus,
.partner-apply-form textarea:focus {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
.partner-apply-step-lede {
  margin: 0 0 0.85rem;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.45;
}
.partner-apply-fieldset {
  border: none;
  margin: 0 0 1rem;
  padding: 0;
}
.partner-apply-fieldset legend {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 0.5rem;
  padding: 0;
}
.chip-group {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  align-items: stretch;
}
.chip {
  position: relative;
  cursor: pointer;
  display: flex;
  width: 100%;
  margin: 0;
  min-height: 0;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
}
.chip input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
  z-index: 1;
}
.chip > span {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex: 1;
  width: 100%;
  min-height: 2.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg);
  font-size: 0.82rem;
  line-height: 1.35;
  pointer-events: none;
  transition: border-color 0.15s, background 0.15s;
}
.chip-group--compact .chip > span {
  min-height: 2.45rem;
  font-size: 0.8rem;
}
.chip-group--stacked .chip > span {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  padding: 0.65rem 0.75rem;
  min-height: 3.35rem;
}
.chip-title {
  display: block;
  font-weight: 600;
  font-size: 0.84rem;
  line-height: 1.25;
  color: var(--text);
}
.chip-example {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--muted);
  font-weight: 400;
}
.partner-apply-field-hint {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  color: var(--muted);
}
.partner-apply-field-hint.is-error,
.partner-apply-field-error:not([hidden]) {
  color: #f87171;
}
.chip-group[data-invalid="true"] .chip > span {
  border-color: color-mix(in srgb, #f87171 55%, var(--border));
}
.chip input:checked + span,
.chip input:focus-visible + span {
  border-color: var(--accent);
  background: color-mix(in srgb, var(--accent) 12%, var(--bg));
}
.chip-wide {
  grid-column: 1 / -1;
}
.partner-apply-submit-note {
  margin: 1rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.45;
}
.partner-apply-step[data-step="3"] > label:first-child {
  margin-top: 0;
}
.partner-apply-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.15rem;
}
.partner-apply-success-title {
  margin: 0.65rem 0 0.5rem;
  font-size: 1.05rem;
  font-weight: 700;
}
.partner-apply-success-body {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.5;
}
.partner-apply-success-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}
.partner-apply-success-actions .partner-apply-dashboard-link,
.partner-apply-success-actions .partner-apply-sign-in-link {
  display: none;
}
.partner-apply-success-actions .partner-apply-dashboard-link.partner-apply-action--visible,
.partner-apply-success-actions .partner-apply-sign-in-link.partner-apply-action--visible {
  display: inline-flex;
}
.dashboard-apply-embedded--complete .partner-apply-grid {
  grid-template-columns: 1fr;
}
.dashboard-apply-embedded--complete .partner-apply-success {
  max-width: 36rem;
}
.partner-apply-step.is-hidden {
  display: none;
}
.partner-apply-form-col .login-form-title {
  margin: 0 0 1.15rem;
}
.partner-apply-form-col .login-form {
  margin: 0;
}
.partner-apply-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 1.75rem 2rem;
  padding: 1.35rem 1.35rem 1.25rem;
  overflow-y: auto;
  align-items: start;
}
.partner-apply-aside {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  min-width: 0;
}
.partner-apply-existing {
  margin: 1rem 0 0;
  font-size: 0.88rem;
}
.partner-apply-existing a {
  color: var(--blue);
  text-decoration: none;
}
.partner-apply-existing a:hover {
  text-decoration: underline;
}
@media (max-width: 720px) {
  .partner-apply-dialog {
    width: min(96vw, 34rem);
  }
  .partner-apply-progress-label {
    display: none;
  }
  .chip-group {
    grid-template-columns: 1fr;
  }
  .partner-apply-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

/* Admin shell (sub-pages) — full-width; sidebar spans nav → footer */
.admin-shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  flex: 1 1 auto;
  align-self: stretch;
  width: 100%;
  max-width: none;
  margin: 0;
  min-height: 0;
}
.admin-sidebar {
  border-right: 1px solid var(--border);
  padding: 1.5rem 1rem 2rem;
  background: var(--bg-elevated);
  align-self: stretch;
  min-height: 100%;
  overflow-y: auto;
}
.admin-sidebar-heading {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 0.75rem;
  font-weight: 600;
}
.admin-bootstrap-note {
  font-size: 0.85rem;
  color: var(--muted);
  margin: 0 0 1rem;
  line-height: 1.45;
}
.admin-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.admin-nav-item {
  display: block;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  color: var(--text);
  text-decoration: none;
  font-size: 0.92rem;
}
.admin-nav-item:hover { background: rgba(0, 0, 0, 0.04); }
.admin-nav-item.active {
  background: rgba(255, 106, 0, 0.12);
  color: var(--accent);
  font-weight: 600;
}
.admin-sidebar-sub {
  margin-top: 1.5rem;
  font-size: 0.78rem;
  word-break: break-all;
}
.admin-sub-code { font-size: 0.72rem; }
.admin-main {
  padding: 2rem 2rem 4rem;
  min-width: 0;
  width: 100%;
}
.admin-panel {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem 1.35rem;
  background: var(--bg-elevated);
}
.admin-settings-form label {
  display: block;
  margin-bottom: 1rem;
  font-size: 0.88rem;
}
.admin-settings-form input,
.admin-settings-form select {
  display: block;
  width: 100%;
  margin-top: 0.35rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
}
.admin-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.admin-admin-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}
.admin-admin-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--border);
}
.admin-admin-identity {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.admin-admin-identity code { word-break: break-all; font-size: 0.78rem; }
.admin-admin-you { font-size: 0.78rem; white-space: nowrap; }
.admin-subheading {
  margin: 1.5rem 0 0.75rem;
  font-size: 0.92rem;
  font-weight: 600;
}
.admin-user-sub code { font-size: 0.75rem; word-break: break-all; }
.admin-users-search-label {
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
}
.admin-filter-note {
  font-size: 0.85rem;
  color: var(--muted);
  margin: 0.35rem 0 0.75rem;
}
.admin-filter-note a { margin-left: 0.35rem; }
.admin-user-row--selected td {
  background: rgba(241, 92, 46, 0.08);
}
.admin-users-search {
  display: block;
  width: 100%;
  max-width: 28rem;
  margin-bottom: 1rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font: inherit;
}
.btn-sm { padding: 0.35rem 0.65rem; font-size: 0.82rem; }
button.btn.btn-pending-changes:disabled {
  opacity: 0.42;
  cursor: not-allowed;
}
button.btn.btn-pending-changes:disabled:hover {
  transform: none;
}
button.btn.btn-secondary.btn-pending-changes:disabled:hover {
  background: transparent;
  color: var(--muted);
}
.admin-bootstrap-slot,
.admin-bootstrap-lede { margin-bottom: 1.25rem; }
.admin-bootstrap-link a { word-break: break-all; }
.login-w3a-btn {
  margin-bottom: 0.75rem;
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.login-w3a-btn.is-loading {
  cursor: wait;
}
.login-w3a-btn-spinner {
  width: 1.15rem;
  height: 1.15rem;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: login-w3a-spin 0.7s linear infinite;
}
@keyframes login-w3a-spin {
  to { transform: rotate(360deg); }
}
.login-w3a-err { margin-bottom: 0.75rem; }

/* Web3Auth modal overrides — see web3auth-portal-modal.js (injected after SDK CSS). */
@media (max-width: 820px) {
  .admin-shell {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
  }
  .admin-sidebar {
    border-right: none;
    border-bottom: 1px solid var(--border);
    min-height: 0;
    align-self: auto;
  }
}

