/* Student-only direction approved on 21/10: RAFit graphite/gold, quiet glass,
   compact identity, circular cycle progress and a factual civil-week strip.
   Opaque surfaces remain the fallback. No personal-panel or data changes. */
body[data-role="aluno"] {
  --student-surface: #1b1d21;
  --student-line: #383b41;
  --student-muted: #b9bdc6;
  background: #101113;
  color: #f6f7f9;
  color-scheme: dark;
}
body[data-role="aluno"] > header {
  height: 100px;
  min-height: 100px;
  padding: 0;
  position: sticky;
  top: 0;
  background: #131416;
  border-bottom: 1px solid #303237;
  box-shadow: none;
}
body[data-role="aluno"]:has(#student-top-actions:not([hidden])) > header > .brand {
  display: none;
}
body[data-role="aluno"] > header .environment {
  bottom: 7px;
  right: 18px;
  font-size: 9px;
  letter-spacing: 0.05em;
  color: #bdc0c6;
}
body[data-role="aluno"] #student-top-actions {
  position: fixed;
  top: 12px;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: min(780px, calc(100% - 36px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
body[data-role="aluno"] #student-top-actions[hidden] {
  display: none;
}
.student-profile {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}
.student-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border: 1px solid #746936;
  border-radius: 50%;
  background: #302e21;
  color: #ffe071;
  font-size: 17px;
  font-weight: 750;
  letter-spacing: 0.02em;
}
.student-profile-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}
.student-profile-greeting {
  font-size: 12px;
  line-height: 1.4;
  color: #b9bdc6;
}
.student-profile-copy > strong {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.student-brand-line {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 10px;
  line-height: 1.5;
  color: #e6c854;
}
.student-brand-line .student-top-sync {
  font-size: 10px;
  color: #b9bdc6;
  gap: 4px;
}
.student-brand-line .student-top-sync::before {
  width: 5px;
  height: 5px;
}
body[data-role="aluno"] #student-top-actions .student-icon-button {
  flex: none;
  width: 48px;
  height: 48px;
  margin: 0;
  border-radius: 16px;
  background: #212328;
  border-color: #3f4249;
}
body[data-role="aluno"] main {
  padding: 0 18px 28px;
  max-width: 816px;
  margin: 14px auto 0;
}
body[data-role="aluno"] [data-training-body] {
  scroll-margin-block: 128px 110px;
}
body[data-role="aluno"] .training-app[data-training-page="home"],
body[data-role="aluno"] .training-app[data-training-page="account"] {
  max-width: 640px;
  margin: 0 auto;
}
body[data-role="aluno"] .training-sync {
  min-height: 44px;
  padding: 0;
  margin: 0 0 12px;
  gap: 14px;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: #bdc1c9;
  font-size: 11px;
  align-items: center;
  flex-direction: row;
}
body[data-role="aluno"] .training-sync > span {
  min-width: 0;
  line-height: 1.5;
}
body[data-role="aluno"] .training-sync button {
  min-height: 44px;
  border-radius: 13px;
  padding: 8px 12px;
  background: #1c1e22;
  border: 1px solid #40434b;
  font-size: 11px;
}
body[data-role="aluno"] .student-page-heading {
  margin: 0 0 14px;
}
body[data-role="aluno"] .student-page-heading h1 {
  font-size: clamp(25px, 6.5vw, 32px);
  line-height: 1.18;
  font-weight: 720;
  letter-spacing: -0.035em;
  margin: 7px 0 12px;
}
body[data-role="aluno"] .student-eyebrow {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 0.09em;
  color: #b9bdc6;
}
body[data-role="aluno"] :is(.card, .evo-card) {
  background: var(--student-surface);
  border: 1px solid var(--student-line);
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 8px 24px #00000012;
}
body[data-role="aluno"] .muted {
  color: var(--student-muted);
}
body[data-role="aluno"] .student-cycle-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 20px;
  margin: 0 0 20px;
  border: 1px solid #655c35;
  border-radius: 24px;
  background: linear-gradient(115deg, #29291f, #1a1d20);
  box-shadow: 0 10px 30px #0002;
}
.student-cycle-copy {
  min-width: 0;
  flex: 1;
}
body[data-role="aluno"] .student-cycle-copy .student-eyebrow {
  text-transform: uppercase;
  color: #e8d594;
  font-size: 10px;
}
.student-cycle-copy h2 {
  font-size: 22px;
  line-height: 1.2;
  margin: 10px 0 9px;
  color: #f8f6eb;
}
.student-cycle-copy p {
  margin: 0;
  color: #bfc1ba;
  font-size: 12px;
  line-height: 1.6;
}
.student-cycle-copy p strong {
  color: #fff1b1;
  font-weight: 700;
  white-space: nowrap;
}
.student-cycle-copy small {
  font-size: 11px;
  color: #d4d5cf;
}
.student-progress-ring {
  position: relative;
  flex: 0 0 104px;
  width: 104px;
  height: 104px;
  display: grid;
  place-items: center;
}
.student-progress-ring svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform: rotate(-90deg);
  fill: none;
  stroke-width: 9;
}
.student-ring-track {
  stroke: #444639;
}
.student-ring-value {
  stroke: #ffd700;
  stroke-linecap: round;
}
.student-ring-value[stroke-dasharray="0 100"] {
  stroke-opacity: 0;
}
.student-progress-ring .student-progress-percent {
  font-size: 27px;
  color: #fff7cf;
  font-weight: 750;
  line-height: 1;
  letter-spacing: -0.04em;
}
.student-week {
  margin: 18px 0;
}
.student-week-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.student-week-heading h2 {
  font-size: 16px;
  font-weight: 650;
  margin: 0;
}
.student-week-heading > span {
  font-size: 11px;
  color: #b9bdc6;
  text-transform: capitalize;
}
.student-week ol {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}
.student-week li {
  min-width: 0;
  border: 1px solid #3a3d43;
  border-radius: 22px;
  background: #1c1e22;
  color: #c2c5cb;
}
.student-week time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 68px;
  padding: 7px 1px;
}
.student-week time > span:first-child {
  font-size: 10px;
}
.student-week time > strong {
  font-size: 17px;
  font-weight: 650;
  line-height: 1.2;
}
.student-week-mark {
  height: 13px;
  line-height: 13px;
  font-size: 13px;
  font-weight: 850;
  color: #ffe681;
}
.student-week li.is-today {
  border-color: #ffd700;
  background: #ffd700;
  color: #181a1c;
}
.student-week li.is-today .student-week-mark {
  color: #181a1c;
}
.student-week li.is-trained:not(.is-today) {
  border-color: #9f8a3b;
}
.student-week > p {
  font-size: 10px;
  color: #b9bdc6;
  margin: 9px 0 0;
}
body[data-role="aluno"] .student-feature {
  background: linear-gradient(130deg, #23252a, #191c20) !important;
  border: 1px solid #494b4e !important;
  padding: 22px !important;
  border-radius: 24px;
  box-shadow: 0 10px 26px #0002;
}
body[data-role="aluno"] .student-feature h2 {
  font-size: 24px;
  line-height: 1.2;
  margin: 13px 0 8px;
}
body[data-role="aluno"] .student-feature > .muted {
  font-size: 12px;
  line-height: 1.6;
}
body[data-role="aluno"] .student-pill {
  background: #3a341c;
  color: #ffe078;
  font-size: 10px;
  padding: 6px 10px;
  letter-spacing: 0.05em;
}
body[data-role="aluno"] .student-facts {
  gap: 8px;
  margin: 18px 0;
}
body[data-role="aluno"] .student-facts > div {
  padding: 12px 8px;
  border: 1px solid #3a3e44;
  background: #ffffff05;
  border-radius: 14px;
  text-align: center;
  min-width: 0;
}
body[data-role="aluno"] .student-facts strong {
  font-size: 21px;
  line-height: 1.2;
}
body[data-role="aluno"] .student-facts small {
  font-size: 10px;
  line-height: 1.4;
  color: #c1c4cc;
  margin-top: 6px;
}
body[data-role="aluno"] .student-workout-actions {
  gap: 10px;
  margin-top: 16px;
}
body[data-role="aluno"] .student-workout-actions button {
  min-height: 50px;
  border-radius: 15px;
  font-size: 13px;
  padding: 12px 8px;
}
body[data-role="aluno"] .student-workout-actions button.secondary {
  background: #ffffff05;
  border-color: #656971;
  color: #f4f5f8;
}
body[data-role="aluno"] .student-feature-note {
  font-size: 11px;
  color: #b9bdc6;
}
body[data-role="aluno"] .student-fold {
  margin: 22px 0 16px;
}
body[data-role="aluno"] .student-fold-toggle.secondary {
  min-height: 52px;
  background: #1b1d21;
  border-color: #454951;
  border-radius: 17px;
  font-size: 17px;
}
body[data-role="aluno"] .student-list-button {
  min-height: 76px;
  border: 1px solid #40444b !important;
  border-radius: 18px !important;
  background: #1b1d21 !important;
  padding: 15px !important;
}
body[data-role="aluno"] .student-list-icon {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  background: #ffd7000e;
  border-radius: 12px;
  color: #f3d05b;
}
body[data-role="aluno"] .student-list-icon .student-icon {
  width: 20px;
  height: 20px;
}
body[data-role="aluno"] .student-list-button strong {
  font-size: 14px;
}
body[data-role="aluno"] .student-list-button small {
  font-size: 12px;
  line-height: 1.5;
}
body[data-role="aluno"] .student-list-arrow {
  font-size: 0;
  flex: none;
}
body[data-role="aluno"] .training-plan {
  margin-top: 20px;
}
body[data-role="aluno"] .student-plan-heading h2 {
  font-size: 17px;
  font-weight: 650;
}
body[data-role="aluno"] .student-workout-card {
  background: #1b1d21;
  border: 1px solid #41454c;
  border-radius: 22px;
  padding: 18px;
}
body[data-role="aluno"] .student-workout-card.available {
  border: 1px solid #97813a;
  background: linear-gradient(120deg, #26251d, #1b1d21);
}
body[data-role="aluno"] .student-workout-card.done {
  border-color: #375c4b;
}
body[data-role="aluno"] .student-workout-top h3 {
  font-size: 19px;
  line-height: 1.3;
}
body[data-role="aluno"] .student-workout-code {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  line-height: 1;
  background: #2c2b23;
  border-color: #706539;
}
body[data-role="aluno"] .student-state {
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 0.025em;
  padding: 6px 9px;
}
body[data-role="aluno"] .student-state.info {
  background: #3b3420;
  color: #ffe18b;
}
body[data-role="aluno"] .student-next-cycle {
  margin-top: 20px;
  padding: 18px;
}
body[data-role="aluno"] .student-next-cycle h3 {
  font-size: 19px;
}
body[data-role="aluno"] .student-back.secondary {
  background: #25282e !important;
  color: #f7f8fa !important;
  border: 1px solid #686d77;
  border-radius: 14px;
  min-height: 48px;
}
body[data-role="aluno"] .student-exercise-block {
  padding: 18px !important;
}
body[data-role="aluno"] .student-block-heading h2 {
  font-size: 18px;
  margin-top: 8px;
}
body[data-role="aluno"] .student-exercise-row {
  border: 1px solid #43474f !important;
  background: #202328 !important;
  border-radius: 17px !important;
  padding: 16px 12px !important;
}
body[data-role="aluno"] .student-exercise-row.done {
  background: #162c22 !important;
  border-color: #44765d !important;
}
body[data-role="aluno"] .student-exercise-row strong {
  font-size: 15px;
}
body[data-role="aluno"] .student-exercise-row small {
  font-size: 12px;
}
body[data-role="aluno"] .student-exercise-number {
  background: #333127;
  border: 1px solid #635c3d;
  color: #ffe078;
}
body[data-role="aluno"] .student-exercise-dialog {
  background: #1b1d21;
  border: 1px solid #5d626d;
  border-radius: 25px;
  padding: 20px;
}
body[data-role="aluno"] .student-exercise-dialog {
  scroll-padding-block-start: calc(var(--student-sticky-height, 80px) + 12px);
}
body[data-role="aluno"] .student-exercise-dialog :is(button, input, select, textarea, summary) {
  scroll-margin-block: 12px 28px;
}
body[data-role="aluno"] .student-exercise-sticky {
  background: #1b1d21;
  border-bottom-color: #454952;
  box-shadow: 0 8px 12px #0004;
}
body[data-role="aluno"] .student-dialog-heading h2 {
  font-size: 23px;
}
body[data-role="aluno"] .student-exercise-sticky {
  padding: 8px 0;
}
/* O cabeçalho fixo encosta no topo da janela: sem a faixa de cima por onde
   o conteúdo rolado aparecia. A margem superior passa para dentro dele. */
body[data-role="aluno"] .student-exercise-dialog {
  padding-top: 0;
}
body[data-role="aluno"] .student-exercise-sticky {
  top: 0;
  margin-inline: -20px;
  padding: 20px 20px 8px;
}
body[data-role="aluno"] .student-exercise-sticky .student-dialog-heading {
  padding-bottom: 8px;
}
body[data-role="aluno"] .student-exercise-sticky h2 {
  font-size: 21px;
  margin: 4px 0 8px;
}
body[data-role="aluno"] .student-rest-dock {
  padding: 10px;
}
body[data-role="aluno"] .student-rest-dock > [data-rest] {
  font-size: 22px;
}
body[data-role="aluno"] .student-rest-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
body[data-role="aluno"] .student-rest-controls button.secondary {
  margin: 0 !important;
  min-width: 0;
  min-height: 44px;
  padding: 8px 6px;
  font-size: 12px;
  line-height: 1.3;
}
body[data-role="aluno"] .student-rest-controls button:last-child:nth-child(3) {
  grid-column: 1/-1;
}
body[data-role="aluno"] .student-popup {
  background: #1b1d21;
  border-color: #555b65;
  border-radius: 24px;
  box-shadow: 0 24px 90px #0009;
}
body[data-role="aluno"] .student-popup .student-popup-heading {
  background: #1b1d21;
  border-bottom-color: #42464e;
}
body[data-role="aluno"] .student-membership-preview {
  background: linear-gradient(120deg, #2a281d, #1b1d21) !important;
  border-color: #6a6037 !important;
}
body[data-role="aluno"] .evo-page-heading {
  margin: 0 0 20px;
}
body[data-role="aluno"] .evo-page-heading h1 {
  font-size: 29px !important;
}
body[data-role="aluno"] .evo-calendar-card {
  padding: 18px 12px;
  border-radius: 24px;
  margin-bottom: 18px;
}
body[data-role="aluno"] .evolution-calendar .evolution-day {
  border-radius: 13px !important;
  font-size: 12px;
  min-height: 44px;
}
body[data-role="aluno"] .evo-section-heading h2 {
  font-size: 18px !important;
}
body[data-role="aluno"] .evo-metric-tabs button {
  min-height: 62px;
  border-radius: 15px;
  font-size: 11px !important;
  padding: 10px 4px !important;
  gap: 6px;
}
body[data-role="aluno"] .evo-stat {
  border-radius: 16px !important;
}
body[data-role="aluno"] .evo-exercise-history,
body[data-role="aluno"] .evo-program-progress {
  margin-top: 16px;
}
body[data-role="aluno"] .training-nav {
  bottom: 0;
  width: min(100%, 816px);
  padding: 7px 10px max(8px, env(safe-area-inset-bottom));
  gap: 5px;
  border: 1px solid #43464e;
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background: #17191d;
  box-shadow: 0 -6px 24px #0002;
  z-index: 40;
}
body[data-role="aluno"] .training-nav button.secondary {
  min-height: 54px !important;
  padding: 7px 4px;
  border: 0;
  border-radius: 16px;
  gap: 3px;
  color: #bdc2cc;
  background: transparent;
}
body[data-role="aluno"] .training-nav button[aria-current="page"] {
  background: #37311c;
  color: #ffdf58;
}
body[data-role="aluno"] .training-nav .student-icon {
  width: 22px;
  height: 22px;
}
body[data-role="aluno"] .training-nav button span {
  font-size: 11px;
  font-weight: 650;
  line-height: 1.3;
}
body[data-role="aluno"] :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid #99ceff;
  outline-offset: 3px;
}
body[data-role="aluno"] :is(button, input, select, textarea, summary) {
  scroll-margin-block: 125px 110px;
}
@supports (backdrop-filter: blur(12px)) {
  body[data-role="aluno"] > header {
    background: #131416ee;
    backdrop-filter: blur(16px);
  }
  body[data-role="aluno"] .training-nav {
    background: #17191ded;
    backdrop-filter: blur(16px);
  }
  body[data-role="aluno"] .student-popup::backdrop,
  body[data-role="aluno"] .student-exercise-dialog::backdrop {
    background: #050607ad;
    backdrop-filter: blur(4px);
  }
}
@media (min-width: 761px) {
  body[data-role="aluno"] > header .environment {
    right: max(18px, calc((100vw - 780px) / 2));
  }
  .student-progress-ring {
    flex-basis: 116px;
    width: 116px;
    height: 116px;
  }
  body[data-role="aluno"] .student-cycle-card {
    padding: 24px;
  }
  body[data-role="aluno"] .student-profile-copy > strong {
    font-size: 18px;
  }
}
@media (max-width: 380px) {
  body[data-role="aluno"] main {
    padding-inline: 16px;
  }
  body[data-role="aluno"] #student-top-actions {
    width: calc(100% - 32px);
  }
  .student-progress-ring {
    flex-basis: 92px;
    width: 92px;
    height: 92px;
  }
  body[data-role="aluno"] .student-cycle-card {
    padding: 16px;
    gap: 10px;
  }
  .student-cycle-copy h2 {
    font-size: 20px;
  }
  .student-week ol {
    gap: 4px;
  }
  body[data-role="aluno"] .student-workout-actions button {
    font-size: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body[data-role="aluno"] * {
    scroll-behavior: auto;
    transition: none !important;
    animation: none !important;
  }
}
@media (prefers-reduced-transparency: reduce) {
  body[data-role="aluno"] > header,
  body[data-role="aluno"] .training-nav {
    background: #17191d;
    backdrop-filter: none;
  }
  body[data-role="aluno"] dialog::backdrop {
    backdrop-filter: none;
  }
}
@media (forced-colors: active) {
  .student-ring-value {
    stroke: Highlight;
  }
  .student-ring-track {
    stroke: GrayText;
  }
  .student-week li.is-today {
    outline: 2px solid Highlight;
  }
}
