/* ══ STUDENT · GLOBAL CORTEX — Platform + GLOBAL CORTEX METHOD ══ */
body.student-view-active #clocks-row,
body.student-view-active #gov-bar,
body.student-view-active #left,
body.student-view-active #right,
body.student-view-active #left-resize-handle,
body.student-view-active #right-resize-handle {
  display: none !important;
}

body.student-view-active #app {
  top: var(--tabnav-h) !important;
  grid-template-columns: minmax(0, 1fr) !important;
  background: var(--inst-bg, #000000);
}

body.student-view-active #header {
  max-height: var(--tabnav-h);
  overflow: hidden;
}

#view-student {
  position: fixed;
  top: var(--tabnav-h);
  left: 0;
  right: 0;
  bottom: var(--bottom-h);
  display: none;
  flex-direction: column;
  background: var(--st-bg, #000000);
  color: var(--st-text, #d4dce4);
  font-family: var(--font-bloomberg, var(--inst-mono, 'Bloomberg Prop Unicode N', monospace));
  font-weight: var(--inst-fw-data, 500);
  z-index: 30;
  overflow: hidden;
  --st-bg: var(--inst-bg, #000000);
  --st-panel: var(--inst-panel, #05070a);
  --st-surface: var(--inst-surface, #080b0f);
  --st-cyan: var(--inst-cyan, #00a8cc);
  --st-cyan-muted: var(--inst-cyan-muted, rgba(0, 168, 204, 0.45));
  --st-cyan-soft: rgba(0, 168, 204, 0.08);
  --st-cyan-hover: rgba(0, 168, 204, 0.05);
  --st-green: var(--inst-green, #67E6C9);
  --st-text: var(--inst-text, #d4dce4);
  --st-border: var(--inst-border-dim, rgba(255, 255, 255, 0.06));
  --st-text-dim: var(--inst-text-dim, #6a7884);
  --st-text-faint: var(--inst-text-faint, #454f58);
}

#view-student.active {
  display: flex !important;
  overflow: hidden;
  z-index: 210;
}

/* Conteúdo — escala tipográfica (~+10%) */
#view-student {
  --st-body-zoom: 2.2;
}

#view-student .st-body {
  zoom: var(--st-body-zoom);
  flex: 1;
  min-height: 0;
  overflow: auto;
  position: relative;
  z-index: 1;
}

.st-nav {
  display: flex;
  align-items: stretch;
  gap: 1px;
  min-height: var(--tabnav-h, 48px);
  height: var(--tabnav-h, 48px);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  background: var(--inst-panel, var(--inst-bg, #05070a));
  border-bottom: 1px solid var(--st-border);
  padding: 0 12px;
  zoom: 1;
  pointer-events: auto;
}

.st-nav-btn {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--st-text-dim);
  font-family: var(--font-bloomberg, var(--inst-mono, 'Bloomberg Prop Unicode N', monospace));
  font-size: var(--inst-fs-tab, 19.5px);
  font-weight: 500;
  letter-spacing: var(--inst-ls-tab, 0.12em);
  text-transform: uppercase;
  padding: 0 16px;
  height: 100%;
  min-height: 0;
  min-width: 0;
  cursor: pointer;
  position: relative;
  z-index: 1;
  pointer-events: auto;
  transition: color 0.15s, border-color 0.15s;
  line-height: 1.2;
}

.st-nav-btn:hover { color: var(--st-cyan); }

.st-nav-btn.act-plat,
.st-nav-btn.act-wolf {
  color: var(--st-cyan);
  border-bottom-color: var(--st-cyan);
}

.st-nav-brand {
  margin-left: auto;
  align-self: center;
  padding-right: 4px;
  font-family: var(--font-bloomberg, var(--inst-mono, 'Bloomberg Prop Unicode N', monospace));
  font-size: var(--inst-fs-micro, 15.4px);
  font-weight: 500;
  color: var(--st-text-faint);
  letter-spacing: var(--inst-ls-label, 0.08em);
  text-transform: uppercase;
}

.st-body {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.st-sidebar {
  width: 228px;
  min-width: 228px;
  background: var(--st-panel, #05070a);
  border-right: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  flex-shrink: 0;
  min-height: 0;
}

.st-notes-head,
.st-notes-title,
.st-notes-area {
  display: none;
}

.st-shdr {
  padding: 10px 12px;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-shdr-lbl {
  font-size: 9px;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.st-shdr-lbl.plat,
.st-shdr-lbl.wolf {
  color: var(--st-cyan);
}

.st-pbar {
  height: 3px;
  background: var(--st-surface, #080b0f);
  border-radius: 1px;
  overflow: hidden;
}

.st-pbar-fill {
  height: 100%;
  border-radius: 1px;
  transition: width 0.35s ease;
}

.st-pbar-fill.plat,
.st-pbar-fill.wolf {
  background: var(--inst-green, var(--st-green, #67E6C9));
}

.st-ptxt {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  font-size: 9px;
  color: var(--st-text-faint);
}

.st-streak-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 6px 8px;
  background: var(--st-surface, #080b0f);
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-streak-row.wolf {
  border-color: var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-surface, #080b0f);
}

.st-streak-v {
  font-size: 13px;
  font-weight: 700;
  color: var(--st-cyan);
}

.st-streak-time strong,
.st-streak-time .st-streak-v--green {
  color: var(--st-green);
}

.st-streak-l {
  font-size: 9px;
  color: var(--st-text-faint);
}

.st-streak-time {
  margin-left: auto;
  text-align: right;
  font-size: 11px;
}

.st-stabs {
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  padding: 0 6px;
  gap: 0 2px;
}

.st-stabs--secondary {
  border-bottom: none;
  padding-top: 0;
}

.st-stabs--secondary .st-stab {
  padding: 7px 6px;
  font-size: 8.5px;
  letter-spacing: 0.35px;
}

.st-stab {
  appearance: none;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  font-family: var(--font-bloomberg, inherit);
  font-size: 9px;
  color: var(--st-text-faint);
  padding: 7px 8px;
  cursor: pointer;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  white-space: nowrap;
}

.st-stab:hover {
  color: var(--st-cyan-muted);
}

.st-stab.on.plat,
.st-stab.on.wolf {
  color: var(--st-cyan);
  border-bottom-color: var(--st-cyan);
}

.st-mod {
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-mhdr {
  padding: 8px 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  user-select: none;
}

.st-mhdr:hover { background: var(--st-cyan-hover); }

.st-mhdr.open { background: var(--st-cyan-soft); }

.st-mhdr.wolf-dim { opacity: 0.55; }

.st-mt {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--st-cyan-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.st-mhdr.open .st-mt {
  color: var(--st-cyan);
}

.st-mb {
  font-size: 9px;
  color: var(--st-cyan, #00a8cc);
  flex-shrink: 0;
}

.st-mb.done { color: var(--st-green, #67E6C9); }
.st-mb.wolf-lock { color: var(--inst-text-dim, var(--st-text-dim)); }

.st-lessons { display: none; }
.st-mod.open .st-lessons { display: block; }

.st-lrow {
  padding: 6px 12px 6px 22px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px;
  border-left: 2px solid transparent;
}

.st-lrow:hover { background: var(--st-cyan-hover); }

.st-lrow.playing {
  border-left-color: var(--st-cyan);
  background: var(--st-cyan-soft);
}

.st-lrow.done { opacity: 0.65; }

.st-lrow.locked {
  cursor: default;
  opacity: 0.45;
}

.st-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--st-border);
  flex-shrink: 0;
}

.st-dot.done { background: var(--st-green, #67E6C9); }
.st-dot.play { background: var(--st-cyan, #00a8cc); }

.st-ln {
  font-size: 9px;
  color: var(--st-text-dim);
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.st-ln.play { color: var(--st-text); }

.st-ld {
  font-size: 8px;
  color: var(--st-text-faint);
  flex-shrink: 0;
}

.st-lockrow {
  padding: 5px 12px 5px 22px;
  display: flex;
  align-items: center;
  gap: 6px;
  opacity: 0.45;
}

.st-lockrow .st-lock-ico {
  font-size: 9px;
  color: var(--inst-text-dim, var(--st-text-dim));
  flex-shrink: 0;
}

.st-lockname {
  font-size: 9px;
  color: var(--st-text-faint);
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
}

.st-lockname::after {
  content: '████';
  color: var(--st-border);
  margin-left: 3px;
}

.st-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  background: var(--st-bg, #000000);
}

.st-player-area {
  flex: 1;
  min-height: 0;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  background: var(--st-bg, #000000);
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  padding: 0;
  overflow: hidden;
}

.st-player {
  width: 100%;
  height: 100%;
  max-width: none;
  min-height: 0;
  aspect-ratio: auto;
  background: var(--st-surface, #080b0f);
  border: none;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.st-player iframe,
.st-player video,
.st-panda-iframe,
.st-yt-host,
.st-yt-host iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: contain;
  background: #000;
}

.st-player.st-player--video {
  align-items: stretch;
  justify-content: stretch;
  gap: 0;
}

.st-panda-wrap,
.st-yt-stage {
  position: absolute;
  inset: 0 0 44px 0;
  width: 100%;
  background: #000;
  overflow: hidden;
}

.st-player.st-player--yt {
  padding: 0;
}

.st-yt-host {
  z-index: 1;
}

/* Bloqueia clique no embed (logo / abrir externo) — controles são só na barra. */
.st-yt-shield {
  cursor: default;
  inset: 0;
  position: absolute;
  z-index: 3;
}

.st-yt-stamps {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 4;
}

.st-yt-stamp {
  color: rgba(232, 180, 74, 0.42);
  font-family: var(--st-mono, "Bloomberg", "IBM Plex Mono", Consolas, monospace);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  left: 0;
  line-height: 1.2;
  pointer-events: none;
  position: absolute;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65);
  top: 0;
  user-select: none;
  white-space: nowrap;
  will-change: transform;
}

.st-yt-bar {
  align-items: center;
  background: #0a0e12;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  bottom: 0;
  display: flex;
  gap: 12px;
  height: 44px;
  left: 0;
  padding: 0 12px;
  position: absolute;
  right: 0;
  z-index: 5;
}

.st-yt-btn {
  appearance: none;
  background: transparent;
  border: 1px solid rgba(86, 193, 214, 0.45);
  color: #67E6C9;
  cursor: pointer;
  flex-shrink: 0;
  font-size: 14px;
  height: 28px;
  letter-spacing: 0.04em;
  line-height: 1;
  min-width: 36px;
  padding: 0 8px;
}

.st-yt-btn:hover,
.st-yt-btn.is-playing {
  border-color: #67E6C9;
  color: #e8eef2;
}

.st-yt-seek {
  accent-color: #67E6C9;
  flex: 1 1 auto;
  min-width: 80px;
}

.st-yt-time {
  color: #8a97a3;
  flex-shrink: 0;
  font-family: var(--st-mono, "Bloomberg", "IBM Plex Mono", Consolas, monospace);
  font-size: 11px;
  letter-spacing: 0.06em;
  min-width: 88px;
  text-align: right;
}

.st-yt-vol-wrap {
  align-items: center;
  color: #6a7884;
  display: flex;
  flex-shrink: 0;
  font-size: 10px;
  gap: 8px;
  letter-spacing: 0.1em;
}

.st-yt-vol {
  accent-color: #56c1d6;
  width: 88px;
}

.st-yt-vol-lbl {
  color: #67E6C9;
  font-size: 11px;
  font-weight: 700;
  min-width: 36px;
}

.st-hist-list {
  padding-bottom: 8px;
}

.st-ptag {
  position: absolute;
  top: 10px;
  left: 10px;
  font-size: 8px;
  letter-spacing: 1px;
  text-transform: uppercase;
  border: 1px solid var(--st-cyan-muted);
  padding: 2px 7px;
  color: var(--st-cyan, #00a8cc);
}

.st-ptime {
  position: absolute;
  bottom: 10px;
  right: 12px;
  font-size: 9px;
  color: var(--st-text-faint);
}

.st-pbw {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--st-surface, #080b0f);
}

.st-pbw-fill {
  height: 100%;
  background: var(--st-cyan, #00a8cc);
  width: 0%;
  transition: width 0.2s;
}

.st-player-placeholder {
  font-size: 10px;
  color: var(--st-text-faint);
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.st-player-lock {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  padding: 20px;
  max-width: 340px;
}

.st-player-lock-icon { font-size: 28px; color: var(--inst-cyan, var(--st-cyan, #00a8cc)); opacity: 0.65; }

.st-player-lock-title {
  color: var(--inst-cyan, var(--st-cyan, #00a8cc));
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.st-player-lock-sub {
  color: var(--st-text-faint);
  font-size: 9px;
  line-height: 1.65;
}

.st-player-lock-btn {
  appearance: none;
  background: none;
  border: 1px solid var(--inst-cyan, var(--st-cyan, #00a8cc));
  color: var(--inst-cyan, var(--st-cyan, #00a8cc));
  font-family: inherit;
  font-size: 9px;
  padding: 6px 18px;
  cursor: pointer;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-top: 4px;
}

.st-player-lock-btn:hover { background: rgba(0, 168, 204, 0.1); }

.st-lesson-bar {
  padding: 9px 14px;
  background: var(--st-panel, #05070a);
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
}

.st-lesson-title {
  color: var(--st-text);
  font-size: 11px;
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.st-lesson-meta {
  display: flex;
  gap: 14px;
  font-size: 9px;
  color: var(--st-text-faint);
  flex-shrink: 0;
}

.st-lesson-meta .ok { color: var(--st-green); }

.st-stats-bar {
  padding: 7px 14px;
  background: var(--st-bg, #000000);
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  display: flex;
  align-items: center;
  gap: 22px;
  flex-shrink: 0;
}

.st-stat { display: flex; flex-direction: column; gap: 2px; }

.st-stat-lbl {
  font-size: 8px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--st-cyan);
}

.st-stat-val { font-size: 11px; color: var(--st-text); }

.st-stat-val.gold { color: var(--st-cyan); }
.st-stat-val.green { color: var(--st-green); }

.st-mdots {
  display: flex;
  gap: 4px;
  margin-top: 3px;
}

.st-mdot {
  width: 8px;
  height: 8px;
  border-radius: 1px;
  background: var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-mdot.on { background: var(--st-cyan, #00a8cc); }
.st-mdot.done { background: var(--st-green, #67E6C9); }

.st-foot {
  height: var(--bottom-h, 44px);
  padding: 0 18px;
  background: var(--inst-panel, var(--bg1));
  border-top: 1px solid var(--inst-border-dim, var(--border2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  gap: 28px;
  zoom: 1;
  font-family: var(--inst-mono, var(--mono, inherit));
}

.st-foot-note {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: var(--inst-ls-label, 0.5px);
  color: var(--inst-text-faint, var(--text-faint));
  text-transform: uppercase;
}

.st-btn {
  appearance: none;
  background: transparent;
  border: 1px solid var(--inst-border-dim, var(--border2));
  border-radius: 0;
  color: var(--inst-text-dim, var(--text-dim));
  font-family: var(--inst-mono, inherit);
  font-size: 10px;
  font-weight: 500;
  padding: 4px 12px;
  cursor: pointer;
  letter-spacing: var(--inst-ls-label, 0.5px);
  text-transform: uppercase;
  line-height: 1;
  transition: color 0.15s, border-color 0.15s;
}

.st-btn:hover {
  border-color: var(--inst-cyan-muted, var(--cyan));
  color: var(--inst-cyan, var(--cyan));
}

.st-btn-go {
  border-color: var(--inst-green, var(--green));
  color: var(--inst-green, var(--green));
}

.st-btn-go:hover {
  background: rgba(116, 222, 198, 0.08);
  border-color: var(--inst-green, var(--green));
  color: var(--inst-green, var(--green));
}

.st-btn:disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

#st-modal-ov {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.88);
  z-index: 9999;
  align-items: center;
  justify-content: center;
}

#st-modal-ov.on { display: flex !important; }

#st-modal {
  background: var(--inst-panel, #0D0D0D);
  border: 1px solid var(--inst-border-dim, var(--border));
  padding: 64px 80px;
  max-width: 880px;
  width: min(92vw, 880px);
  display: flex;
  flex-direction: column;
  gap: 28px;
  position: relative;
  font-family: var(--font-bloomberg, var(--mono, 'Courier New', monospace));
}

.st-mtitle {
  color: var(--inst-cyan, var(--st-cyan, #00a8cc));
  font-family: var(--font-bloomberg, var(--mono, 'Courier New', monospace));
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.25;
}

.st-msub {
  color: var(--st-text-dim);
  font-family: var(--font-bloomberg, var(--mono, 'Courier New', monospace));
  font-size: 20px;
  line-height: 1.65;
  letter-spacing: 0.02em;
}

.st-mprice {
  color: var(--st-text);
  font-family: var(--font-bloomberg, var(--mono, 'Courier New', monospace));
  font-size: 36px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.st-mprice span {
  color: var(--st-text-faint);
  font-size: 20px;
  font-weight: 400;
}

.st-mclose {
  position: absolute;
  top: 20px;
  right: 28px;
  background: none;
  border: none;
  color: var(--st-text-faint);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  font-family: var(--font-bloomberg, var(--mono, 'Courier New', monospace));
}

.st-mclose:hover { color: var(--st-text); }

.st-mbtn {
  appearance: none;
  background: none;
  border: 1px solid var(--inst-cyan, var(--st-cyan, #00a8cc));
  color: var(--inst-cyan, var(--st-cyan, #00a8cc));
  font-family: var(--font-bloomberg, var(--mono, 'Courier New', monospace));
  font-size: 20px;
  font-weight: 700;
  padding: 16px 40px;
  cursor: pointer;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  align-self: flex-start;
}

.st-mbtn:hover { background: rgba(0, 168, 204, 0.1); }

.st-panel {
  padding: 8px 0 12px;
}

.st-panel-hint {
  padding: 10px 12px 8px;
  font-size: 9px;
  line-height: 1.45;
  color: var(--st-text-dim);
}

.st-panel-mod {
  padding: 8px 12px 4px;
  font-size: 8px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--st-cyan, #00a8cc);
}

.st-panel-lesson,
.st-panel-faq {
  appearance: none;
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  color: var(--st-text-dim);
  font-family: inherit;
  font-size: 10px;
  padding: 8px 12px;
  cursor: pointer;
}

.st-panel-lesson:hover,
.st-panel-faq:hover,
.st-panel-faq.active {
  background: var(--st-cyan-hover);
  color: var(--st-text);
}

.st-panel-lesson.active {
  background: var(--st-cyan-soft);
  color: var(--st-cyan, #00a8cc);
}

.st-panel-chat-btn,
.st-duvidas-chat-btn {
  appearance: none;
  display: block;
  width: calc(100% - 24px);
  margin: 10px 12px 0;
  box-sizing: border-box;
  background: transparent;
  border: 1px solid var(--st-cyan, #00a8cc);
  color: var(--st-cyan, #00a8cc);
  font-family: inherit;
  font-size: 9px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 8px 10px;
  cursor: pointer;
}

.st-panel-chat-btn:hover,
.st-duvidas-chat-btn:hover {
  background: rgba(74, 143, 160, 0.12);
}

.st-lrow--note .st-ln::after {
  content: ' ✎';
  color: var(--st-cyan, #00a8cc);
  font-size: 9px;
}

.st-notes-new {
  appearance: none;
  display: block;
  width: calc(100% - 24px);
  margin: 4px 12px 8px;
  box-sizing: border-box;
  background: rgba(74, 143, 160, 0.08);
  border: 1px dashed rgba(74, 143, 160, 0.45);
  color: var(--st-cyan, #00a8cc);
  font-family: inherit;
  font-size: 9px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 8px 10px;
  cursor: pointer;
}

.st-notes-new:hover {
  background: rgba(74, 143, 160, 0.16);
}

.st-main.st-main--notes .st-player-area {
  flex: 1;
  min-height: 0;
  border-bottom: none;
}

.st-main.st-main--notes .st-lesson-bar {
  background: var(--st-panel, #05070a);
}

.st-player.st-player--notes-app {
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
  background: var(--st-bg, #000000);
  border: none;
}

.st-notes-app {
  display: flex;
  flex: 1;
  width: 100%;
  min-height: 0;
  height: 100%;
  background: var(--st-bg, #000000);
}

.st-notes-editor-pane {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-left: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-notes-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 14px;
  background: var(--st-panel, #05070a);
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  flex-shrink: 0;
}

.st-notes-toolbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.st-notes-app-icon {
  font-size: 14px;
  line-height: 1;
}

.st-notes-breadcrumb {
  font-size: 10px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--st-cyan, #00a8cc);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.st-notes-save {
  font-size: 9px;
  color: var(--st-green, #67E6C9);
  flex-shrink: 0;
}

.st-notes-title-input {
  width: 100%;
  box-sizing: border-box;
  border: none;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-panel, #05070a);
  color: var(--st-text);
  font-family: inherit;
  font-size: 16px;
  font-weight: 600;
  padding: 12px 16px;
}

.st-notes-title-input:focus {
  outline: none;
  background: var(--st-surface, #080b0f);
}

.st-notes-title-input::placeholder {
  color: var(--st-text-faint);
  font-weight: 500;
}

.st-notes-split {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}

.st-notes-edit-col,
.st-notes-preview-col {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
}

.st-notes-edit-col {
  border-right: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-notes-col-label {
  padding: 6px 12px;
  font-size: 8px;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--st-text-faint);
  background: var(--st-panel, #05070a);
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  flex-shrink: 0;
}

.st-notes-body {
  flex: 1;
  width: 100%;
  min-height: 0;
  box-sizing: border-box;
  resize: none;
  border: none;
  background: var(--st-bg, #000000);
  color: var(--st-text);
  font-family: inherit;
  font-size: 12px;
  line-height: 1.65;
  padding: 14px 16px;
}

.st-notes-body:focus {
  outline: none;
  background: var(--st-bg, #000000);
}

.st-notes-preview {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 14px 16px;
  background: var(--st-panel, #05070a);
  color: var(--st-text);
  font-size: 12px;
  line-height: 1.65;
}

.st-notes-preview h1,
.st-notes-preview h2,
.st-notes-preview h3 {
  color: var(--st-cyan, #00a8cc);
  margin: 0 0 10px;
  font-weight: 600;
}

.st-notes-preview h1 { font-size: 18px; }
.st-notes-preview h2 { font-size: 15px; }
.st-notes-preview h3 { font-size: 13px; }

.st-notes-preview p {
  margin: 0 0 10px;
}

.st-notes-preview ul {
  margin: 0 0 10px;
  padding-left: 18px;
}

.st-notes-preview-empty {
  color: var(--st-text-faint);
  font-style: italic;
}

.st-notes-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--st-text-faint);
  font-size: 11px;
}

.st-player--duvidas {
  align-items: stretch;
  justify-content: flex-start;
  padding: 0;
  overflow: hidden;
  min-height: 0;
}

.st-main.st-main--duvidas .st-player-area {
  flex: 1;
  min-height: 0;
  border-bottom: none;
}

.st-main.st-main--duvidas .st-lesson-bar {
  flex-shrink: 0;
  background: var(--st-panel, #05070a);
}

.st-main.st-main--duvidas .st-player.st-player--duvidas {
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px 18px;
  gap: 10px;
}

.st-duvidas-wrap {
  width: 100%;
  max-width: 720px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-bottom: 28px;
  box-sizing: border-box;
}

.st-duvidas-hd {
  font-size: 14px;
  color: var(--st-cyan, #00a8cc);
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.st-duvidas-sub {
  font-size: 11px;
  color: var(--st-text-dim);
  line-height: 1.45;
}

.st-duvida-answer {
  background: var(--st-panel, #05070a);
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  padding: 14px 16px;
  min-height: 120px;
}

.st-duvida-q {
  font-size: 12px;
  color: var(--st-cyan, #00a8cc);
  margin-bottom: 10px;
}

.st-duvida-a {
  font-size: 11px;
  color: var(--st-text);
  line-height: 1.55;
}

.st-duvidas-chat-btn {
  width: auto;
  align-self: flex-start;
  margin: 0;
}

.st-tt-sidebar-stats {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 8px 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-surface, #080b0f);
}

.st-tt-sidebar-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 10px;
  color: var(--st-text-dim);
}

.st-tt-sidebar-row strong {
  color: var(--st-text);
  font-weight: 700;
}

.st-panel-hint--dim {
  color: var(--st-text-faint);
  font-size: 9px;
}

.st-main.st-main--tempo-tela .st-player-area {
  flex: 1;
  min-height: 0;
  border-bottom: none;
}

.st-main.st-main--tempo-tela .st-lesson-bar {
  background: var(--st-panel, #05070a);
}

.st-player.st-player--tempo-tela {
  align-items: stretch;
  justify-content: stretch;
  padding: 0;
  background: var(--st-bg, #000000);
  border: none;
}

.st-tt-embed {
  flex: 1;
  width: 100%;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.tt-panel--embed .tt-today {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tt-panel--embed .imp-des-cal-cell,
.tt-panel--embed .imp-des-cal-cell--pad {
  min-height: 78px;
}

.tt-panel--embed .imp-des-cal-pl {
  font-size: 13px;
}

.tt-panel--embed .tt-today-val {
  font-size: 15px;
}

/* ── Boletim do Aluno ── */
.st-boletim-item {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.st-boletim-item.active {
  border-left: 2px solid var(--inst-cyan, #00a8cc);
  background: rgba(0, 168, 204, 0.08);
}

.st-boletim-side-lbl {
  flex: 1;
  min-width: 0;
}

.st-boletim-side-ide {
  font-weight: 700;
  color: var(--inst-cyan, #00a8cc);
  font-size: 11px;
}

.st-boletim-side-tag {
  font-size: 8px;
  color: var(--st-green, #67E6C9);
  letter-spacing: 0.06em;
}

.st-main.st-main--boletim .st-player-area {
  flex: 1;
  min-height: 0;
  border-bottom: none;
}

.st-main.st-main--boletim .st-lesson-bar {
  background: var(--st-panel, #05070a);
}

.st-player.st-player--boletim {
  align-items: stretch;
  justify-content: flex-start;
  padding: 0;
  background: var(--st-bg, #000000);
  border: none;
  overflow: hidden;
}

.st-boletim-wrap {
  flex: 1;
  width: 100%;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 18px 22px 32px;
  box-sizing: border-box;
}

.st-boletim-hdr {
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  padding-bottom: 14px;
  margin-bottom: 16px;
}

.st-boletim-kicker {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--inst-cyan, #00a8cc);
  margin-bottom: 8px;
}

.st-boletim-title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--st-text);
  font-family: var(--font-bloomberg, inherit);
}

.st-boletim-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 10px;
  color: var(--st-text-dim);
}

.st-boletim-tag {
  color: var(--st-green, #67E6C9);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.st-boletim-meta-note {
  color: var(--st-text-faint);
}

/* IDE hero + pilares */
.st-bl-top {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  margin-bottom: 16px;
  align-items: start;
}

@media (max-width: 900px) {
  .st-bl-top { grid-template-columns: 1fr; }
}

.st-bl-ide-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-surface, #080b0f);
  min-width: 240px;
}

.st-bl-ide-ring {
  --bl-pct: 50;
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: conic-gradient(
    var(--inst-cyan, #00a8cc) calc(var(--bl-pct) * 1%),
    var(--st-border, rgba(255, 255, 255, 0.06)) 0
  );
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.st-bl-ide-ring-inner {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: var(--st-bg, #000000);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.st-bl-ide-num {
  font-size: 26px;
  font-weight: 700;
  color: var(--st-text);
  font-family: var(--font-bloomberg, inherit);
}

.st-bl-ide-of {
  font-size: 9px;
  color: var(--st-text-faint);
  margin-top: 2px;
}

.st-bl-ide-lbl {
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--inst-cyan, #00a8cc);
  margin-bottom: 4px;
}

.st-bl-ide-class {
  font-size: 13px;
  font-weight: 700;
  color: var(--st-text);
  margin-bottom: 6px;
}

.st-bl-ide-delta {
  font-size: 10px;
  letter-spacing: 0.04em;
}

.st-bl-ide-delta.up { color: var(--st-green, #67E6C9); }
.st-bl-ide-delta.down { color: #c87070; }
.st-bl-ide-delta--na { color: var(--st-text-dim); }

.st-bl-ide-hero--excelente .st-bl-ide-class { color: var(--st-green, #67E6C9); }
.st-bl-ide-hero--bom .st-bl-ide-class { color: var(--inst-cyan, #00a8cc); }
.st-bl-ide-hero--dev .st-bl-ide-class { color: var(--st-cyan, #00a8cc); }
.st-bl-ide-hero--atencao .st-bl-ide-class { color: #c87070; }

.st-bl-pillars {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-surface, #080b0f);
}

.st-bl-pillar-top {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
  align-items: baseline;
  font-size: 10px;
  margin-bottom: 4px;
}

.st-bl-pillar-name {
  color: var(--st-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 9px;
}

.st-bl-pillar-w {
  color: var(--st-text-faint);
  font-size: 8px;
}

.st-bl-pillar-score {
  font-weight: 700;
  color: var(--inst-cyan, #00a8cc);
}

.st-bl-pillar-track {
  height: 4px;
  background: var(--st-border, rgba(255, 255, 255, 0.06));
  overflow: hidden;
}

.st-bl-pillar-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(0, 168, 204, 0.5), var(--inst-cyan, #00a8cc));
}

/* Cards grid */
.st-bl-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}

.st-bl-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px;
}

@media (max-width: 1000px) {
  .st-bl-grid-3 { grid-template-columns: 1fr; }
  .st-bl-grid-2 { grid-template-columns: 1fr; }
}

.st-bl-card {
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-surface, #080b0f);
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.st-bl-card--wide {
  margin-bottom: 12px;
}

.st-bl-card-h {
  padding: 8px 12px;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--inst-cyan, #00a8cc);
}

.st-bl-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-bl-metric {
  background: var(--st-surface, #080b0f);
  padding: 10px 12px;
}

.st-bl-metric-lbl {
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--st-text-faint);
  margin-bottom: 4px;
}

.st-bl-metric-val {
  font-size: 14px;
  font-weight: 700;
  color: var(--st-text);
  font-family: var(--font-bloomberg, inherit);
}

.st-bl-metric-val.ok { color: var(--st-green, #67E6C9); }
.st-bl-metric-val.warn { color: var(--st-cyan, #00a8cc); }
.st-bl-metric-val.bad { color: #c87070; }

.st-bl-metric-sub {
  font-size: 8px;
  color: var(--st-text-faint);
  margin-top: 3px;
}

.st-bl-disc-score {
  padding: 10px 12px 6px;
  font-size: 10px;
  color: var(--st-text-dim);
}

.st-bl-disc-score strong {
  color: var(--st-text);
}

.st-bl-disc-list {
  list-style: none;
  margin: 0;
  padding: 4px 12px 12px;
}

.st-bl-disc-list li {
  font-size: 10px;
  line-height: 1.5;
  padding: 5px 0;
  border-bottom: 1px solid rgba(26, 26, 30, 0.8);
  color: var(--st-text-dim);
}

.st-bl-disc-list li.ok { color: var(--st-green, #67E6C9); }
.st-bl-disc-list li.bad { color: #c87070; }

.st-bl-list-block {
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-surface, #080b0f);
  padding: 0;
}

.st-bl-list-h {
  padding: 8px 12px;
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--st-cyan, #00a8cc);
}

.st-bl-list {
  margin: 0;
  padding: 10px 12px 12px 28px;
  font-size: 10px;
  line-height: 1.55;
  color: var(--st-text);
}

.st-bl-list--ok .st-bl-list-h { color: var(--st-green, #67E6C9); }
.st-bl-list--warn .st-bl-list-h { color: var(--st-cyan, #00a8cc); }

.st-bl-tips {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px 14px;
}

.st-bl-tip {
  display: flex;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
  background: var(--st-bg, #000000);
}

.st-bl-tip-n {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--inst-cyan, #00a8cc);
  color: var(--inst-cyan, #00a8cc);
  font-size: 10px;
  font-weight: 700;
}

.st-bl-tip-t {
  font-size: 10px;
  font-weight: 700;
  color: var(--st-text);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.st-bl-tip-p {
  font-size: 10px;
  line-height: 1.55;
  color: var(--st-text-faint);
}

.st-bl-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 10px;
}

.st-bl-table th {
  text-align: left;
  padding: 8px 12px;
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--st-text-faint);
  border-bottom: 1px solid var(--st-border, rgba(255, 255, 255, 0.06));
}

.st-bl-table td {
  padding: 8px 12px;
  border-bottom: 1px solid rgba(26, 26, 30, 0.6);
  color: var(--st-text);
}

.st-bl-table td.ok { color: var(--st-green, #67E6C9); }
.st-bl-table td.bad { color: #c87070; }

.st-bl-foot-note {
  margin-top: 8px;
  padding: 10px 12px;
  border: 1px dashed rgba(0, 168, 204, 0.2);
  background: rgba(0, 168, 204, 0.04);
  font-size: 9px;
  line-height: 1.55;
  color: var(--st-text-dim);
}

.st-bl-foot-note strong {
  color: var(--inst-cyan, #00a8cc);
}
