/* Academia ProFuturo internal shell
   Build-only intervention: keeps the existing SPA logic and replaces the
   internal navigation presentation with a sidebar layout. */

:root {
  --apf-sidebar: 260px;
  --apf-topbar: 64px;
  --apf-midnight: #0A1626;
  --apf-navy: #13283F;
  --apf-gold: #CDA24A;
  --apf-gold-light: #E6C57E;
  --apf-gold-ink: #241901;
  --apf-cream: #F3EDE1;
  --apf-cream-2: #F8F4EC;
  --apf-taupe: #A89E8C;
  --apf-faint: #6E665A;
  --apf-ink: #0A1626;
  --apf-muted: #6E665A;
  --apf-line: rgba(10, 22, 38, .12);
  --apf-soft: #F8F4EC;
  --apf-panel: #FFFDF8;
}

body.apf-shell-on {
  --color-background: var(--apf-soft);
  --color-foreground: var(--apf-ink);
  --color-card: var(--apf-panel);
  --color-card-foreground: var(--apf-ink);
  --color-primary: var(--apf-gold);
  --color-primary-foreground: var(--apf-gold-ink);
  --color-secondary: rgba(205, 162, 74, .12);
  --color-muted-foreground: var(--apf-muted);
  --color-border: rgba(10, 22, 38, .12);
  --color-input: rgba(10, 22, 38, .16);
  background: var(--apf-soft);
  color: var(--apf-ink);
}

body.apf-shell-on #root > div > header:first-child {
  display: none !important;
}

body.apf-shell-on #root > div {
  min-height: 100dvh;
  background:
    radial-gradient(circle at 82% 7%, rgba(205, 162, 74, .16), transparent 32rem),
    radial-gradient(circle at 18% 92%, rgba(10, 22, 38, .05), transparent 28rem),
    linear-gradient(180deg, #fffdf8 0%, var(--apf-soft) 25rem);
}

body.apf-shell-on #root main {
  width: auto !important;
  max-width: none !important;
  margin: 0 0 0 var(--apf-sidebar) !important;
  padding: calc(var(--apf-topbar) + 44px) 36px 56px !important;
}

body.apf-shell-on #root main > header,
body.apf-shell-on #root main > section,
body.apf-shell-on #root main > div,
body.apf-shell-on #root main > article {
  max-width: 1180px;
}

body.apf-shell-on .bg-card,
body.apf-shell-on [class*="bg-card"] {
  border-color: var(--apf-line) !important;
  box-shadow: 0 18px 44px rgba(10, 22, 38, .08);
}

body.apf-shell-on .rounded-xl {
  border-radius: 14px;
}

body.apf-shell-on .kicker {
  color: var(--apf-taupe);
  letter-spacing: .16em;
}

body.apf-shell-on .stat,
body.apf-shell-on .text-primary,
body.apf-shell-on .s {
  color: var(--apf-gold) !important;
}

body.apf-shell-on button.bg-primary,
body.apf-shell-on a.bg-primary {
  background: var(--apf-gold) !important;
  color: var(--apf-gold-ink) !important;
  box-shadow: 0 14px 34px rgba(205, 162, 74, .24);
}

body.apf-shell-on .text-muted-foreground {
  color: #5F574D !important;
}

body.apf-shell-on .text-faint,
body.apf-shell-on .placeholder\:text-faint::placeholder {
  color: #7A6F60 !important;
}

body.apf-shell-on .bg-midnight-2\/30,
body.apf-shell-on .bg-midnight-2\/40,
body.apf-shell-on .bg-midnight-2\/60 {
  border-color: rgba(10, 22, 38, .16) !important;
  background: rgba(255, 253, 248, .94) !important;
  color: var(--apf-ink) !important;
}

body.apf-shell-on button.bg-midnight-2\/40,
body.apf-shell-on button.bg-midnight-2\/60 {
  background: rgba(255, 253, 248, .88) !important;
  color: #26384D !important;
}

body.apf-shell-on button.bg-midnight-2\/40:hover,
body.apf-shell-on button.bg-midnight-2\/60:hover {
  border-color: rgba(205, 162, 74, .62) !important;
  background: rgba(205, 162, 74, .14) !important;
  color: var(--apf-ink) !important;
}

body.apf-shell-on input.bg-midnight-2\/60,
body.apf-shell-on textarea.bg-midnight-2\/60,
body.apf-shell-on select.bg-midnight-2\/60 {
  border-color: rgba(10, 22, 38, .2) !important;
  background: #FFFDF8 !important;
  color: var(--apf-ink) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
}

body.apf-shell-on input.bg-midnight-2\/60:focus-visible,
body.apf-shell-on textarea.bg-midnight-2\/60:focus-visible,
body.apf-shell-on select.bg-midnight-2\/60:focus-visible {
  border-color: rgba(205, 162, 74, .78) !important;
  box-shadow: 0 0 0 3px rgba(205, 162, 74, .18);
}

body.apf-shell-on.apf-theme-dark {
  --color-background: var(--apf-midnight);
  --color-foreground: var(--apf-cream);
  --color-card: var(--apf-navy);
  --color-card-foreground: var(--apf-cream);
  --color-secondary: rgba(230, 197, 126, .1);
  --color-muted-foreground: var(--apf-taupe);
  --color-border: rgba(243, 237, 225, .12);
  --color-input: rgba(243, 237, 225, .18);
  --apf-line: rgba(243, 237, 225, .12);
  --apf-soft: var(--apf-midnight);
  --apf-panel: var(--apf-navy);
  --apf-ink: var(--apf-cream);
  --apf-muted: var(--apf-taupe);
  background: var(--apf-midnight);
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark #root > div {
  background:
    radial-gradient(circle at 82% 7%, rgba(205, 162, 74, .16), transparent 32rem),
    radial-gradient(circle at 18% 92%, rgba(230, 197, 126, .06), transparent 28rem),
    linear-gradient(180deg, #0A1626 0%, #0E1F34 32rem, #0A1626 100%);
}

body.apf-shell-on.apf-theme-dark .apf-sidebar,
body.apf-shell-on.apf-theme-dark .apf-topbar {
  border-color: rgba(243, 237, 225, .12);
  background: rgba(10, 22, 38, .92);
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-sidebar-user {
  border-color: rgba(243, 237, 225, .12);
  background: rgba(14, 31, 52, .88);
}

body.apf-shell-on.apf-theme-dark .apf-brand-mark {
  background: rgba(243, 237, 225, .92);
}

body.apf-shell-on.apf-theme-dark .apf-brand-title,
body.apf-shell-on.apf-theme-dark .apf-page-title,
body.apf-shell-on.apf-theme-dark .apf-user-chip,
body.apf-shell-on.apf-theme-dark .apf-user-name,
body.apf-shell-on.apf-theme-dark .text-foreground,
body.apf-shell-on.apf-theme-dark .text-foreground\/90 {
  color: var(--apf-cream) !important;
}

body.apf-shell-on.apf-theme-dark .text-muted-foreground,
body.apf-shell-on.apf-theme-dark .apf-brand-subtitle,
body.apf-shell-on.apf-theme-dark .apf-user-email {
  color: var(--apf-taupe) !important;
}

body.apf-shell-on.apf-theme-dark .text-faint,
body.apf-shell-on.apf-theme-dark .placeholder\:text-faint::placeholder {
  color: rgba(243, 237, 225, .56) !important;
}

body.apf-shell-on.apf-theme-dark .apf-nav-link {
  color: rgba(243, 237, 225, .72);
}

body.apf-shell-on.apf-theme-dark .apf-nav-link:hover,
body.apf-shell-on.apf-theme-dark .apf-nav-link.is-active {
  background: rgba(205, 162, 74, .16);
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-icon-button {
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-icon-button:hover,
body.apf-shell-on.apf-theme-dark .apf-icon-button.is-active {
  border-color: rgba(205, 162, 74, .58);
  background: rgba(205, 162, 74, .14);
  color: var(--apf-gold-light);
}

body.apf-shell-on.apf-theme-dark .bg-card,
body.apf-shell-on.apf-theme-dark [class*="bg-card"],
body.apf-shell-on.apf-theme-dark .apf-admin-card,
body.apf-shell-on.apf-theme-dark .apf-admin-state,
body.apf-shell-on.apf-theme-dark .apf-admin-notice {
  border-color: rgba(243, 237, 225, .12) !important;
  background: rgba(19, 40, 63, .9) !important;
  color: var(--apf-cream) !important;
  box-shadow: 0 22px 54px rgba(0, 0, 0, .26);
}

body.apf-shell-on.apf-theme-dark .bg-midnight-2\/30,
body.apf-shell-on.apf-theme-dark .bg-midnight-2\/40,
body.apf-shell-on.apf-theme-dark .bg-midnight-2\/60 {
  border-color: rgba(243, 237, 225, .14) !important;
  background: rgba(14, 31, 52, .86) !important;
  color: var(--apf-cream) !important;
}

body.apf-shell-on.apf-theme-dark button.bg-midnight-2\/40,
body.apf-shell-on.apf-theme-dark button.bg-midnight-2\/60 {
  background: rgba(243, 237, 225, .08) !important;
  color: rgba(243, 237, 225, .82) !important;
}

body.apf-shell-on.apf-theme-dark button.bg-midnight-2\/40:hover,
body.apf-shell-on.apf-theme-dark button.bg-midnight-2\/60:hover {
  background: rgba(205, 162, 74, .18) !important;
  color: var(--apf-cream) !important;
}

body.apf-shell-on.apf-theme-dark input.bg-midnight-2\/60,
body.apf-shell-on.apf-theme-dark textarea.bg-midnight-2\/60,
body.apf-shell-on.apf-theme-dark select.bg-midnight-2\/60,
body.apf-shell-on.apf-theme-dark .apf-admin-form input,
body.apf-shell-on.apf-theme-dark .apf-admin-form select,
body.apf-shell-on.apf-theme-dark .apf-admin-form textarea {
  border-color: rgba(243, 237, 225, .16) !important;
  background: rgba(10, 22, 38, .78) !important;
  color: var(--apf-cream) !important;
  box-shadow: inset 0 1px 0 rgba(243, 237, 225, .06);
}

.apf-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 60;
  width: var(--apf-sidebar);
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--apf-line);
  background:
    linear-gradient(180deg, rgba(255, 253, 248, .96), rgba(243, 237, 225, .92));
  color: var(--apf-ink);
  backdrop-filter: blur(16px);
}

.apf-brand {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 20px 22px 24px;
}

.apf-brand-mark {
  width: 34px;
  height: 34px;
  object-fit: contain;
  border-radius: 10px;
  background: var(--apf-cream);
}

.apf-brand-title {
  display: block;
  font-weight: 800;
  line-height: 1.05;
  max-width: 165px;
}

.apf-brand-subtitle {
  margin-top: 3px;
  color: var(--apf-faint);
  font-size: 11px;
}

.apf-nav-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 8px 16px 24px;
}

.apf-nav-section {
  margin-top: 18px;
}

.apf-nav-heading {
  margin: 0 12px 11px;
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.apf-nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 34px;
  padding: 8px 12px;
  border-radius: 10px;
  color: #536070;
  font-size: 14px;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.apf-nav-link:hover {
  background: rgba(10, 22, 38, .05);
  color: var(--apf-ink);
}

.apf-nav-link.is-active {
  color: var(--apf-ink);
  background: rgba(205, 162, 74, .14);
  font-weight: 700;
}

.apf-nav-link.is-active::before {
  content: "";
  position: absolute;
  left: -16px;
  width: 3px;
  height: 22px;
  border-radius: 999px;
  background: var(--apf-gold);
}

.apf-nav-icon {
  width: 16px;
  height: 16px;
  color: currentColor;
}

.apf-nav-dot {
  width: 6px;
  height: 6px;
  margin-left: auto;
  border-radius: 999px;
  background: #18bf73;
}

.apf-sidebar-user {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid var(--apf-line);
  padding: 16px 24px;
  background: rgba(255, 253, 248, .86);
}

.apf-avatar {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: rgba(10, 22, 38, .07);
  color: var(--apf-navy);
  font-size: 12px;
  font-weight: 700;
}

.apf-user-name {
  font-size: 14px;
  font-weight: 700;
}

.apf-user-email {
  max-width: 164px;
  overflow: hidden;
  color: var(--apf-faint);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.apf-topbar {
  position: fixed;
  top: 0;
  right: 0;
  left: var(--apf-sidebar);
  z-index: 55;
  height: var(--apf-topbar);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--apf-line);
  background: rgba(255, 253, 248, .88);
  padding: 0 24px;
  backdrop-filter: blur(18px);
}

.apf-page-eyebrow {
  color: var(--apf-taupe);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.apf-page-title {
  margin-top: 2px;
  color: var(--apf-ink);
  font-size: 15px;
  font-weight: 800;
}

.apf-top-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.apf-icon-button {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 50%;
  color: #252b36;
}

.apf-icon-button:hover {
  border-color: var(--apf-line);
  background: var(--apf-panel);
}

.apf-user-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--apf-ink);
  font-size: 14px;
  font-weight: 700;
}

.apf-profile-action {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--apf-line);
  border-radius: 999px;
  color: var(--apf-ink);
  padding: 0 12px;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.apf-profile-action:hover {
  border-color: rgba(205, 162, 74, .58);
  background: rgba(205, 162, 74, .12);
}

body.apf-admin-on #root main > :not(.apf-admin-custom) {
  display: none !important;
}

body.apf-knowledge-on #root main > :not(.apf-knowledge-custom) {
  display: none !important;
}

body.apf-reader-on #root main > :not(.apf-reader-custom) {
  display: none !important;
}

body.apf-community-on #root main > :not(.apf-community-custom) {
  display: none !important;
}

body.apf-onboarding-on #root main > :not(.apf-onboarding-custom) {
  display: none !important;
}

body.apf-onboarding-on .apf-sidebar,
body.apf-onboarding-on .apf-topbar {
  display: none !important;
}

body.apf-shell-on.apf-onboarding-on #root main {
  min-height: 100dvh;
  margin: 0 !important;
  padding: 0 !important;
}

body.apf-shell-on.apf-onboarding-on #root main > .apf-onboarding-custom {
  width: 100vw !important;
  max-width: none !important;
  margin: 0 !important;
}

.apf-admin-custom,
.apf-knowledge-custom,
.apf-community-custom,
.apf-onboarding-custom {
  width: min(1180px, 100%);
  max-width: 1180px;
}

.apf-admin-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.apf-admin-eyebrow {
  margin: 0 0 12px;
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.apf-admin-hero h1 {
  margin: 0;
  color: var(--apf-ink);
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1.02;
}

.apf-admin-hero em {
  color: var(--apf-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.apf-admin-hero p:not(.apf-admin-eyebrow) {
  max-width: 620px;
  margin: 14px 0 0;
  color: var(--apf-muted);
  font-size: 16px;
}

.apf-admin-actions,
.apf-admin-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.apf-admin-button,
.apf-admin-form button,
.apf-admin-mini {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  border: 0;
  border-radius: 10px;
  background: var(--apf-gold);
  color: var(--apf-gold-ink);
  padding: 0 16px;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 14px 32px rgba(205, 162, 74, .2);
}

.apf-admin-button.is-muted {
  background: rgba(10, 22, 38, .07);
  color: var(--apf-ink);
  box-shadow: none;
}

.apf-admin-button .apf-nav-icon,
.apf-admin-form button .apf-nav-icon {
  width: 15px;
  height: 15px;
}

.apf-admin-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}

.apf-admin-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 28px;
}

.apf-admin-card {
  border: 1px solid var(--apf-line);
  border-radius: 14px;
  background: rgba(255, 253, 248, .82);
  padding: 24px;
  box-shadow: 0 22px 54px rgba(10, 22, 38, .07);
}

.apf-admin-card h2 {
  margin: 0 0 12px;
  color: var(--apf-ink);
  font-size: 18px;
}

.apf-admin-card p {
  margin: 0 0 18px;
  color: var(--apf-muted);
  line-height: 1.6;
}

.apf-admin-metric {
  min-height: 118px;
}

.apf-admin-metric strong {
  display: block;
  color: var(--apf-gold);
  font-size: 34px;
  line-height: 1;
}

.apf-admin-metric span {
  display: block;
  margin-top: 12px;
  color: var(--apf-muted);
  font-size: 13px;
}

.apf-admin-metric small {
  display: block;
  margin-top: 8px;
  color: var(--apf-taupe);
  font-size: 11px;
}

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

.apf-admin-form.is-compact {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.apf-edit-form {
  max-width: 820px;
}

.apf-back-link {
  display: inline-flex;
  align-items: center;
  margin-bottom: 18px;
  color: var(--apf-gold);
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
}

.apf-back-link:hover {
  color: var(--apf-ink);
}

.apf-admin-form label {
  display: grid;
  gap: 7px;
  color: var(--apf-faint);
  font-size: 12px;
  font-weight: 700;
}

.apf-admin-form input,
.apf-admin-form select,
.apf-admin-form textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--apf-line);
  border-radius: 10px;
  background: #fffdf8;
  color: var(--apf-ink);
  padding: 10px 12px;
  font: inherit;
  font-size: 14px;
}

.apf-admin-form textarea {
  resize: vertical;
}

.apf-admin-form input:focus,
.apf-admin-form select:focus,
.apf-admin-form textarea:focus {
  border-color: rgba(205, 162, 74, .7);
  outline: 3px solid rgba(205, 162, 74, .18);
}

.apf-admin-form button {
  align-self: end;
  cursor: pointer;
}

.apf-admin-check {
  display: flex !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px !important;
  min-height: 42px;
}

.apf-admin-check input {
  width: 16px;
  min-height: 16px;
}

.apf-edit-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
}

.apf-admin-table-wrap {
  overflow-x: auto;
}

.apf-admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.apf-admin-table th {
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-align: left;
  text-transform: uppercase;
}

.apf-admin-table th,
.apf-admin-table td {
  border-bottom: 1px solid var(--apf-line);
  padding: 14px 8px;
  vertical-align: middle;
}

.apf-admin-table td strong,
.apf-admin-table td span {
  display: block;
}

.apf-admin-table td span {
  margin-top: 3px;
  color: var(--apf-muted);
  font-size: 12px;
}

.apf-admin-mini {
  min-height: 32px;
  padding-inline: 12px;
  box-shadow: none;
  cursor: pointer;
}

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

.apf-admin-mini.is-danger {
  background: rgba(197, 59, 47, .1);
  color: #8a231a;
}

.apf-admin-mini.is-danger:hover {
  background: rgba(197, 59, 47, .16);
}

.apf-admin-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.apf-admin-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: rgba(255, 253, 248, .72);
  padding: 12px;
}

.apf-admin-list span {
  flex: 1;
  min-width: 0;
}

.apf-admin-list strong,
.apf-admin-list small {
  display: block;
}

.apf-admin-list small,
.apf-admin-list em {
  color: var(--apf-muted);
  font-size: 12px;
}

.apf-knowledge-card {
  position: relative;
  min-height: 210px;
}

.apf-knowledge-card-icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 12px;
  background: rgba(205, 162, 74, .14);
  color: var(--apf-gold);
  margin-bottom: 18px;
}

.apf-knowledge-card-icon .apf-nav-icon {
  width: 20px;
  height: 20px;
}

.apf-knowledge-card small {
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.apf-empty-card {
  margin-bottom: 24px;
}

.apf-section-title {
  margin: 0 0 16px;
  color: var(--apf-ink);
  font-size: 20px;
}

.apf-calendar-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 20px;
  margin-bottom: 14px;
}

.apf-calendar-row time {
  color: var(--apf-gold);
  font-weight: 800;
  white-space: nowrap;
}

.apf-community-list {
  display: grid;
  gap: 14px;
}

.apf-community-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}

.apf-community-card h2,
.apf-ranking-row h2 {
  margin: 0 0 8px;
  color: var(--apf-ink);
  font-size: 18px;
}

.apf-community-card small {
  color: var(--apf-taupe);
  font-size: 12px;
  font-weight: 700;
}

.apf-community-vote {
  display: grid;
  width: 58px;
  min-height: 58px;
  place-items: center;
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: rgba(205, 162, 74, .1);
  color: var(--apf-gold);
}

.apf-community-vote strong {
  font-size: 20px;
  line-height: 1;
}

.apf-community-vote span {
  color: var(--apf-muted);
  font-size: 10px;
  text-transform: uppercase;
}

.apf-ranking-row {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
}

.apf-ranking-row > strong {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 50%;
  background: var(--apf-gold);
  color: var(--apf-gold-ink);
}

.apf-ranking-row > span {
  color: var(--apf-gold);
  font-weight: 800;
}

.apf-plan-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  margin-bottom: 24px;
  border-color: rgba(205, 162, 74, .34);
  background:
    linear-gradient(135deg, rgba(205, 162, 74, .12), rgba(255, 253, 248, .84) 48%),
    rgba(255, 253, 248, .9);
}

.apf-plan-hero h2,
.apf-trail-item h2,
.apf-whatsapp-plan h2 {
  margin: 0 0 10px;
  color: var(--apf-ink);
  font-size: 24px;
}

.apf-plan-progress {
  display: grid;
  min-width: 170px;
  justify-items: end;
  gap: 8px;
}

.apf-plan-progress strong {
  color: var(--apf-gold);
  font-size: 42px;
  line-height: 1;
}

.apf-plan-progress span {
  color: var(--apf-muted);
  font-size: 12px;
  font-weight: 800;
}

.apf-plan-progress i {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--apf-gold) var(--apf-progress), rgba(10, 22, 38, .12) 0);
}

.apf-trail-list {
  display: grid;
  gap: 14px;
}

.apf-trail-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 18px;
}

.apf-trail-item.is-muted {
  opacity: .68;
}

.apf-trail-order {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 12px;
  background: rgba(205, 162, 74, .14);
  color: var(--apf-gold);
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 800;
}

.apf-trail-why {
  display: grid;
  gap: 5px;
  margin-top: 14px;
  border-left: 3px solid var(--apf-gold);
  padding-left: 12px;
}

.apf-trail-why strong {
  color: var(--apf-ink);
  font-size: 13px;
}

.apf-trail-why span {
  color: var(--apf-muted);
  font-size: 13px;
  line-height: 1.55;
}

.apf-trail-actions {
  display: grid;
  gap: 8px;
}

.apf-trail-actions button {
  min-height: 30px;
  border: 1px solid var(--apf-line);
  border-radius: 999px;
  background: rgba(255, 253, 248, .72);
  color: var(--apf-ink);
  padding: 0 12px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.apf-trail-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.apf-whatsapp-plan {
  margin-top: 24px;
}

.apf-reader-custom {
  width: min(1320px, 100%);
  max-width: 1320px;
}

.apf-reader-top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--apf-line);
  padding-bottom: 16px;
}

.apf-reader-top h1 {
  margin: 4px 0 0;
  color: var(--apf-ink);
  font-size: 20px;
}

.apf-reader-top > a {
  color: var(--apf-gold);
  font-weight: 800;
  text-decoration: none;
}

.apf-reader-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.apf-reader-controls button {
  min-width: 34px;
  min-height: 34px;
  border: 1px solid var(--apf-line);
  border-radius: 8px;
  background: rgba(255, 253, 248, .78);
  color: var(--apf-ink);
  font-weight: 800;
}

.apf-reader-controls button.is-claro {
  background: #fffdf8;
}

.apf-reader-controls button.is-sepia {
  background: #eadfc9;
}

.apf-reader-controls button.is-escuro {
  background: #0a1626;
}

.apf-reader-controls button.is-active {
  border-color: var(--apf-gold);
  box-shadow: 0 0 0 3px rgba(205, 162, 74, .16);
}

.apf-reader-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 24px;
}

.apf-reader-stage {
  font-size: var(--apf-reader-font);
}

.apf-reader-video {
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: 12px;
  background: #0a1626;
}

.apf-reader-video.is-placeholder {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  color: var(--apf-cream);
  text-align: center;
}

.apf-reader-video.is-placeholder .apf-nav-icon {
  width: 54px;
  height: 54px;
  color: var(--apf-gold);
}

.apf-reader-actions,
.apf-reader-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.apf-reader-tabs {
  border-bottom: 1px solid var(--apf-line);
}

.apf-reader-tabs button {
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--apf-muted);
  padding: 12px 4px;
  font-size: 13px;
  font-weight: 800;
}

.apf-reader-tabs button.is-active {
  border-color: var(--apf-gold);
  color: var(--apf-ink);
}

.apf-reader-panel {
  margin-top: 18px;
}

.apf-reader-transcript {
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: rgba(255, 253, 248, .82);
  padding: 18px;
}

.apf-reader-transcript div {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.apf-reader-transcript a {
  color: var(--apf-gold);
  font-weight: 800;
}

.apf-reader-sidebar {
  border-left: 1px solid var(--apf-line);
  padding-left: 20px;
}

.apf-reader-list {
  display: grid;
  gap: 8px;
}

.apf-reader-list a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  border: 1px solid var(--apf-line);
  border-radius: 10px;
  color: var(--apf-ink);
  padding: 10px;
  text-decoration: none;
}

.apf-reader-list a.is-active {
  border-color: var(--apf-gold);
  background: rgba(205, 162, 74, .12);
}

.apf-reader-list small,
.apf-reader-list em {
  color: var(--apf-taupe);
  font-size: 11px;
}

.apf-reader-theme-sepia {
  --apf-panel: #fbf3e2;
  --apf-soft: #f1e5cf;
}

.apf-reader-theme-escuro {
  --apf-panel: #13283f;
  --apf-soft: #0a1626;
  --apf-ink: #f3ede1;
  --apf-muted: #a89e8c;
}

.apf-mentor-fab {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 70;
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  border-radius: 50%;
  background: var(--apf-gold);
  color: var(--apf-gold-ink);
  box-shadow: 0 20px 48px rgba(10, 22, 38, .22);
}

.apf-mentor-fab .apf-nav-icon {
  width: 22px;
  height: 22px;
}

.apf-mentor-context pre {
  max-height: 220px;
  overflow: auto;
  margin: 0;
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: rgba(10, 22, 38, .04);
  color: var(--apf-muted);
  padding: 14px;
  white-space: pre-wrap;
}

.apf-mentor-chat {
  display: grid;
  gap: 18px;
  margin-top: 18px;
}

.apf-mentor-messages {
  display: grid;
  gap: 12px;
}

.apf-mentor-message {
  max-width: 760px;
  border: 1px solid var(--apf-line);
  border-radius: 14px;
  background: rgba(255, 253, 248, .7);
  padding: 14px;
}

.apf-mentor-message.is-user {
  justify-self: end;
  background: rgba(205, 162, 74, .12);
}

.apf-mentor-message strong,
.apf-mentor-message small {
  color: var(--apf-taupe);
  font-size: 12px;
  font-weight: 800;
}

.apf-mentor-message p {
  margin: 8px 0;
  white-space: pre-wrap;
}

.apf-mentor-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.apf-mentor-form textarea {
  width: 100%;
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: #fffdf8;
  color: var(--apf-ink);
  padding: 12px 14px;
  font: inherit;
}

.apf-conselho-form {
  grid-template-columns: 1fr;
}

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

.apf-conselho-lenses label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: rgba(255, 253, 248, .72);
  padding: 14px;
}

.apf-conselho-lenses small {
  display: block;
  margin-top: 5px;
  color: var(--apf-muted);
  line-height: 1.45;
}

.apf-admin-state,
.apf-admin-notice {
  border: 1px solid var(--apf-line);
  border-radius: 14px;
  background: rgba(255, 253, 248, .88);
  color: var(--apf-muted);
  padding: 18px;
}

.apf-admin-notice {
  margin-bottom: 16px;
  border-color: rgba(205, 162, 74, .4);
  color: var(--apf-ink);
}

.apf-admin-state.is-error,
.apf-admin-notice.is-error {
  border-color: rgba(197, 59, 47, .35);
  background: rgba(197, 59, 47, .07);
  color: #8a231a;
}

.apf-onboarding-custom {
  position: relative;
  width: 100vw;
  max-width: none;
  min-height: 100dvh;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 18px;
  overflow: hidden;
  padding: clamp(90px, 12vh, 140px) 24px 72px;
  background:
    radial-gradient(circle at 16% 10%, rgba(205, 162, 74, .13), transparent 24rem),
    linear-gradient(180deg, #fffdf8 0%, var(--apf-soft) 100%);
}

.apf-onboarding-brand {
  position: fixed;
  top: 26px;
  left: 32px;
  z-index: 2;
  color: var(--apf-ink);
  font-size: 15px;
  text-decoration: none;
}

.apf-onboarding-progress {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 1;
  display: grid;
  gap: 0;
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .16em;
  text-align: right;
  text-transform: uppercase;
}

.apf-onboarding-progress i {
  height: 4px;
  background: linear-gradient(90deg, var(--apf-gold) var(--apf-progress), rgba(10, 22, 38, .08) 0);
}

.apf-onboarding-progress span {
  padding: 26px 32px 0 0;
}

.apf-onboarding-card {
  width: min(820px, 100%);
  justify-self: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  box-shadow: none;
  text-align: left;
}

.apf-onboarding-card.is-welcome {
  text-align: center;
}

.apf-onboarding-card h1 {
  max-width: 760px;
  margin: 0;
  color: var(--apf-ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 6vw, 78px);
  font-weight: 400;
  line-height: .98;
}

.apf-onboarding-card h1 em {
  color: var(--apf-gold);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.apf-onboarding-card p {
  max-width: 620px;
  margin: 18px 0 0;
  color: var(--apf-muted);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-style: italic;
  line-height: 1.65;
}

.apf-onboarding-card.is-welcome p,
.apf-onboarding-card.is-welcome small {
  margin-inline: auto;
}

.apf-onboarding-card small {
  display: block;
  margin-top: 16px;
  color: var(--apf-taupe);
  font-size: 12px;
}

.apf-onboarding-fields,
.apf-onboarding-options,
.apf-onboarding-hub {
  display: grid;
  gap: 12px;
  margin-top: 26px;
}

.apf-onboarding-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.apf-onboarding-fields {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.apf-onboarding-fields label,
.apf-onboarding-pain,
.apf-onboarding-draft {
  display: grid;
  gap: 8px;
  color: var(--apf-faint);
  font-size: 12px;
  font-weight: 800;
}

.apf-onboarding-fields input,
.apf-onboarding-profile-form input,
.apf-onboarding-pain textarea,
.apf-onboarding-draft textarea {
  width: 100%;
  border: 1px solid var(--apf-line);
  border-radius: 12px;
  background: #fffdf8;
  color: var(--apf-ink);
  padding: 12px 14px;
  font: inherit;
  font-size: 15px;
}

.apf-onboarding-card.is-welcome .apf-admin-button {
  min-width: 190px;
  margin-top: 28px;
}

.apf-onboarding-option {
  position: relative;
  display: grid;
  gap: 6px;
  border: 1px solid var(--apf-line);
  border-radius: 8px;
  background: rgba(255, 253, 248, .58);
  color: var(--apf-ink);
  padding: 20px 20px 20px 42px;
  text-align: left;
  cursor: pointer;
}

.apf-onboarding-option::before {
  content: "";
  position: absolute;
  top: 23px;
  left: 20px;
  width: 8px;
  height: 8px;
  border: 1px solid var(--apf-taupe);
  border-radius: 50%;
}

.apf-onboarding-option.is-selected::before {
  border-color: var(--apf-gold);
  background: var(--apf-gold);
}

.apf-onboarding-option:hover,
.apf-onboarding-option.is-selected {
  border-color: rgba(205, 162, 74, .72);
  background: rgba(205, 162, 74, .12);
}

.apf-onboarding-option strong {
  font-size: 16px;
}

.apf-onboarding-option span {
  color: var(--apf-muted);
  font-size: 13px;
}

.apf-onboarding-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 30px;
  border-top: 0;
  padding-top: 0;
}

.apf-onboarding-footer > span {
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.apf-onboarding-footer > div,
.apf-onboarding-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.apf-onboarding-mirror {
  color: var(--apf-ink) !important;
  font-size: clamp(25px, 3vw, 34px) !important;
  line-height: 1.28 !important;
  font-style: normal !important;
}

.apf-onboarding-mirror button {
  display: inline;
  border: 0;
  background: transparent;
  color: var(--apf-gold);
  padding: 0;
  font: inherit;
  font-family: Georgia, "Times New Roman", serif;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  cursor: pointer;
}

.apf-onboarding-pain,
.apf-onboarding-draft {
  margin-top: 24px;
}

.apf-onboarding-stepbar {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.apf-onboarding-stepbar button {
  border: 0;
  background: transparent;
  color: var(--apf-taupe);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  cursor: pointer;
}

.apf-onboarding-profile-form {
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  align-items: end;
  gap: 16px;
  margin-top: 28px;
  border: 1px solid var(--apf-line);
  border-radius: 8px;
  background: rgba(255, 253, 248, .56);
  padding: 18px;
}

.apf-onboarding-profile-form label {
  display: grid;
  gap: 8px;
  color: var(--apf-faint);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.apf-onboarding-actions {
  margin-top: 18px;
}

.apf-onboarding-profile {
  display: grid;
  gap: 8px;
  margin-top: 24px;
  border: 1px solid rgba(205, 162, 74, .38);
  border-radius: 14px;
  background: rgba(205, 162, 74, .1);
  padding: 18px;
}

.apf-onboarding-profile strong {
  color: var(--apf-ink);
  font-size: 18px;
}

.apf-onboarding-profile span {
  color: var(--apf-muted);
}

.apf-onboarding-profile small {
  margin-top: 4px;
}

.apf-onboarding-hub {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.apf-onboarding-hub a {
  display: grid;
  gap: 8px;
  min-height: 126px;
  border: 1px solid var(--apf-line);
  border-radius: 14px;
  background: rgba(255, 253, 248, .78);
  color: var(--apf-ink);
  padding: 18px;
  text-decoration: none;
}

.apf-onboarding-hub a:hover {
  border-color: rgba(205, 162, 74, .62);
  transform: translateY(-1px);
}

.apf-onboarding-hub strong {
  font-size: 20px;
}

.apf-onboarding-hub span {
  color: var(--apf-muted);
  line-height: 1.5;
}

.apf-onboarding-reset {
  position: fixed;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%);
  justify-self: center;
  border: 0;
  background: transparent;
  color: var(--apf-taupe);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.apf-admin-button:disabled {
  opacity: .52;
  cursor: not-allowed;
}

body.apf-shell-on.apf-theme-dark .apf-profile-action {
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-onboarding-custom {
  background:
    radial-gradient(circle at 16% 10%, rgba(205, 162, 74, .12), transparent 24rem),
    linear-gradient(180deg, #0A1626 0%, #0E1F34 100%);
}

body.apf-shell-on.apf-theme-dark .apf-onboarding-brand,
body.apf-shell-on.apf-theme-dark .apf-onboarding-card h1 {
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-onboarding-card,
body.apf-shell-on.apf-theme-dark .apf-onboarding-option,
body.apf-shell-on.apf-theme-dark .apf-onboarding-hub a,
body.apf-shell-on.apf-theme-dark .apf-onboarding-profile,
body.apf-shell-on.apf-theme-dark .apf-onboarding-profile-form {
  border-color: rgba(243, 237, 225, .12);
  background: rgba(19, 40, 63, .58);
  color: var(--apf-cream);
  box-shadow: none;
}

body.apf-shell-on.apf-theme-dark .apf-onboarding-fields input,
body.apf-shell-on.apf-theme-dark .apf-onboarding-profile-form input,
body.apf-shell-on.apf-theme-dark .apf-onboarding-pain textarea,
body.apf-shell-on.apf-theme-dark .apf-onboarding-draft textarea {
  border-color: rgba(243, 237, 225, .16);
  background: rgba(10, 22, 38, .78);
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-onboarding-option:hover,
body.apf-shell-on.apf-theme-dark .apf-onboarding-option.is-selected {
  border-color: rgba(205, 162, 74, .7);
  background: rgba(205, 162, 74, .16);
}

body.apf-shell-on.apf-theme-dark .apf-plan-hero,
body.apf-shell-on.apf-theme-dark .apf-trail-actions button,
body.apf-shell-on.apf-theme-dark .apf-mentor-message,
body.apf-shell-on.apf-theme-dark .apf-conselho-lenses label {
  background: rgba(19, 40, 63, .9);
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-plan-hero h2,
body.apf-shell-on.apf-theme-dark .apf-trail-item h2,
body.apf-shell-on.apf-theme-dark .apf-trail-why strong,
body.apf-shell-on.apf-theme-dark .apf-whatsapp-plan h2 {
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-mentor-form textarea,
body.apf-shell-on.apf-theme-dark .apf-mentor-context pre {
  border-color: rgba(243, 237, 225, .14);
  background: rgba(10, 22, 38, .78);
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-reader-top h1,
body.apf-shell-on.apf-theme-dark .apf-reader-tabs button.is-active,
body.apf-shell-on.apf-theme-dark .apf-reader-list a {
  color: var(--apf-cream);
}

body.apf-shell-on.apf-theme-dark .apf-reader-controls button,
body.apf-shell-on.apf-theme-dark .apf-reader-transcript,
body.apf-shell-on.apf-theme-dark .apf-reader-list a {
  border-color: rgba(243, 237, 225, .14);
  background: rgba(19, 40, 63, .84);
}

@media (max-width: 860px) {
  :root {
    --apf-sidebar: 78px;
  }

  .apf-sidebar {
    width: var(--apf-sidebar);
  }

  .apf-brand {
    justify-content: center;
    padding-inline: 12px;
  }

  .apf-brand-copy,
  .apf-nav-heading,
  .apf-nav-label,
  .apf-sidebar-user .apf-user-copy,
  .apf-topbar .apf-page-copy {
    display: none;
  }

  .apf-nav-scroll {
    padding-inline: 10px;
  }

  .apf-nav-link {
    justify-content: center;
    padding-inline: 10px;
  }

  .apf-nav-link.is-active::before {
    left: -10px;
  }

  .apf-sidebar-user {
    justify-content: center;
    padding-inline: 12px;
  }

  body.apf-shell-on #root main {
    padding-inline: 18px !important;
  }

  .apf-admin-hero,
  .apf-admin-panels {
    grid-template-columns: 1fr;
  }

  .apf-admin-hero {
    align-items: flex-start;
    flex-direction: column;
  }

  .apf-admin-grid,
  .apf-admin-form,
  .apf-admin-form.is-compact,
  .apf-plan-hero,
  .apf-trail-item,
  .apf-reader-top,
  .apf-reader-main,
  .apf-mentor-form,
  .apf-conselho-lenses,
  .apf-onboarding-fields,
  .apf-onboarding-options,
  .apf-onboarding-hub,
  .apf-onboarding-profile-form,
  .apf-calendar-row,
  .apf-community-card,
  .apf-ranking-row {
    grid-template-columns: 1fr;
  }

  .apf-profile-action {
    display: none;
  }

  .apf-onboarding-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .apf-onboarding-footer > div,
  .apf-onboarding-actions {
    flex-direction: column;
  }

  .apf-onboarding-brand {
    left: 18px;
    top: 20px;
  }

  .apf-onboarding-progress span {
    padding: 20px 18px 0 0;
  }

  .apf-onboarding-card h1 {
    font-size: clamp(34px, 12vw, 54px);
  }

  .apf-plan-progress,
  .apf-trail-actions {
    justify-items: stretch;
  }

  .apf-reader-sidebar {
    border-left: 0;
    padding-left: 0;
  }
}
