
/* ============ Área logada (aluno e admin) ============ */
.fc-app { min-height: 100vh; display: grid; grid-template-columns: var(--fc-sidebar) minmax(0, 1fr); }
.fc-app__side { position: sticky; top: 0; height: 100vh; }
.fc-app__main { display: flex; flex-direction: column; min-width: 0; }
.fc-app__top { position: sticky; top: 0; z-index: 40; }
.fc-app__content { flex: 1; width: 100%; max-width: var(--fc-container); margin: 0 auto; padding: var(--fc-s7) var(--fc-s6) var(--fc-s9); }
.fc-app__bottom { display: none; }
.fc-sidebar__scroll { flex: 1; overflow-y: auto; margin: 0 calc(var(--fc-s4) * -1); padding: 0 var(--fc-s4); scrollbar-width: thin; }
.fc-topbar__title { display: none; }

@media (max-width: 1023px) {
  .fc-app { grid-template-columns: minmax(0, 1fr); }
  .fc-app__side { display: none; }
  .fc-app__content { padding: var(--fc-s5) var(--fc-s4) calc(var(--fc-bottombar) + var(--fc-s7)); }
  .fc-app__bottom { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; }
  .fc-topbar { padding: 0 var(--fc-s4); }
  .fc-topbar .fc-search-trigger { display: none; }
  .fc-topbar__logo { display: flex !important; }
  .fc-topbar__title { display: block; }
}
@media (max-width: 1023px) { [data-mobile-only] { display: inline-flex !important; } }
.fc-topbar__logo { display: none; align-items: center; }
.fc-topbar__logo img { height: 24px; width: auto; }

/* Painel admin: conteúdo em largura total, brilho sutil no topo */
.fc-app--admin .fc-app__main { background: radial-gradient(1100px 420px at 78% -140px, var(--fc-green-soft), transparent 70%), var(--fc-bg); }
.fc-app--admin .fc-app__content { max-width: 1600px; padding: var(--fc-s6) var(--fc-s7) var(--fc-s9); }
.fc-app--admin .fc-topbar { background: rgba(18, 25, 35, 0.72); }
.fc-admin-title { display: flex; flex-direction: column; min-width: 0; }
.fc-admin-title__crumb { font-size: 12px; color: var(--fc-text-3); }
.fc-admin-title__name { font: 600 16px/1.3 var(--fc-font-title); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1023px) { .fc-app--admin .fc-app__content { padding: var(--fc-s5) var(--fc-s4) var(--fc-s9); } .fc-hide-mobile { display: none !important; } }

/* Painel inicial: boas-vindas */

.fc-ring-svg__txt { fill: var(--fc-text); font: 600 18px var(--fc-font-title); }
/* Indicadores */

.fc-spark { flex: none; }

/* Gráfico de barras */
.fc-chart { position: relative; }
.fc-bars { width: 100%; height: 220px; overflow: visible; }
.fc-bars__grid { stroke: rgba(255, 255, 255, 0.06); stroke-width: 1; }
.fc-bars__axis { fill: var(--fc-text-3); font: 500 11px var(--fc-font-text); }
.fc-bars__bar { fill: var(--fc-green); opacity: 0.85; transition: opacity var(--fc-fast); }
.fc-bars__item:hover .fc-bars__bar { opacity: 1; }
.fc-bars__item:hover rect { fill: rgba(255, 255, 255, 0.04); }
.fc-chart__empty { position: absolute; inset: 0 0 26px 32px; display: flex; align-items: center; justify-content: center; gap: 8px; text-align: center; padding: var(--fc-s5); font-size: 13px; color: var(--fc-text-3); }
.fc-chart-tip { position: fixed; z-index: 90; pointer-events: none; padding: 6px 10px; border-radius: var(--fc-r-sm); background: var(--fc-surface-3); color: var(--fc-text); border: 1px solid var(--fc-border-2); font: 500 12px/1.3 var(--fc-font-text); box-shadow: var(--fc-shadow-pop); transform: translate(-50%, calc(-100% - 10px)); white-space: nowrap; }

/* Lista de preparação */
.fc-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.fc-checklist a { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: var(--fc-s3); align-items: center; padding: 10px var(--fc-s2); border-radius: var(--fc-r-md); transition: background var(--fc-fast); }
.fc-checklist a:hover { background: rgba(255, 255, 255, 0.04); }
.fc-checklist__mark { width: 22px; height: 22px; border-radius: 50%; border: 1.5px dashed var(--fc-border-strong); display: grid; place-items: center; }
.fc-checklist__mark .fc-icon { width: 13px; height: 13px; stroke-width: 3; }
.fc-checklist li.is-done .fc-checklist__mark { border: 0; background: var(--fc-green); color: var(--fc-on-green); }
.fc-checklist__text { display: flex; flex-direction: column; min-width: 0; }
.fc-checklist__title { font-size: 14px; font-weight: 600; }
.fc-checklist li.is-done .fc-checklist__title { color: var(--fc-text-3); text-decoration: line-through; text-decoration-color: var(--fc-text-disabled); }
.fc-checklist__desc { font-size: 12px; color: var(--fc-text-3); }

/* Atividade recente */
.fc-feed { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.fc-feed li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: var(--fc-s3); padding: 10px 0; border-bottom: 1px solid var(--fc-border); }
.fc-feed li:last-child { border-bottom: 0; }
.fc-feed__icon { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.06); color: var(--fc-text-2); }
.fc-feed__text { font-size: 13px; color: var(--fc-text-2); line-height: 1.45; }
.fc-feed__text strong { color: var(--fc-text); font-weight: 600; }
.fc-feed__detail { color: var(--fc-text); }
.fc-feed__time { display: block; font-size: 12px; color: var(--fc-text-3); margin-top: 2px; }

.fc-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--fc-s2); }
.fc-shortcuts a { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: var(--fc-r-md); background: rgba(255, 255, 255, 0.04); border: 1px solid var(--fc-border); font-size: 14px; font-weight: 500; transition: border-color var(--fc-fast), background var(--fc-fast); }
.fc-shortcuts a:hover { border-color: var(--fc-border-strong); background: var(--fc-green-soft); }

/* Catálogo de cursos no admin (grade de capas) */
.fc-catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: var(--fc-s5) var(--fc-s4); }
.fc-catalog__new { aspect-ratio: 2 / 3; border-radius: var(--fc-r-lg); border: 1.5px dashed var(--fc-border-strong); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--fc-s3); color: var(--fc-text-2); font-weight: 600; background: rgba(255, 255, 255, 0.015); cursor: pointer; transition: all var(--fc-mid) var(--fc-ease); }
.fc-catalog__new:hover { border-color: var(--fc-border-strong); color: var(--fc-green); background: var(--fc-green-soft); }
.fc-catalog__new .fc-icon { width: 28px; height: 28px; }
.fc-course__overlay { position: absolute; inset: 0; z-index: 3; display: flex; align-items: center; justify-content: center; background: rgba(18, 25, 35, 0.55); opacity: 0; transition: opacity var(--fc-mid); }
.fc-course:hover .fc-course__overlay, .fc-course:focus-visible .fc-course__overlay { opacity: 1; }

/* Painel admin: menu lateral mais denso e com grupos */
.fc-app--admin .fc-nav__item { height: 40px; font-size: 14px; }
.fc-app--admin .fc-nav__label { padding-top: var(--fc-s4); }
.fc-admin-badge { display: inline-flex; align-items: center; gap: 6px; margin: 0 var(--fc-s2); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fc-text-3); }
@media (max-width: 1023px) {
  /* No celular o admin usa gaveta (o menu inferior é só do aluno) */
  .fc-app--admin .fc-app__side { display: block; position: fixed; inset: 0 auto 0 0; z-index: 60; width: min(300px, 85vw); transform: translateX(-100%); transition: transform var(--fc-mid) var(--fc-ease); }
  .fc-app--admin.is-drawer .fc-app__side { transform: none; box-shadow: var(--fc-shadow-modal); }
  .fc-app--admin.is-drawer::after { content: ""; position: fixed; inset: 0; z-index: 55; background: var(--fc-overlay); }
  .fc-app--admin .fc-app__content { padding-bottom: var(--fc-s9); }
}
.fc-drawer-btn { display: none; }
@media (max-width: 1023px) { .fc-app--admin .fc-drawer-btn { display: inline-flex; } }

/* Menu da conta (bolinha no canto superior direito) */
.fc-conta__btn { padding: 0; border: 0; background: none; border-radius: 50%; cursor: pointer; display: grid; transition: box-shadow var(--fc-fast); }
.fc-conta__btn:hover, .fc-conta.is-open .fc-conta__btn { box-shadow: 0 0 0 2px var(--fc-foco); }
.fc-conta__menu { min-width: 280px; }
.fc-conta__head { display: flex; align-items: flex-start; gap: var(--fc-s3); padding: var(--fc-s3); }
.fc-conta__nome { font-weight: 600; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-conta__email { font-size: 13px; color: var(--fc-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Folha "Mais" da barra inferior */
.fc-sheet { position: fixed; inset: auto 0 0 0; z-index: 70; padding: var(--fc-s4) var(--fc-s4) calc(var(--fc-s5) + env(safe-area-inset-bottom)); border-radius: var(--fc-r-xl) var(--fc-r-xl) 0 0; background: var(--fc-surface); box-shadow: var(--fc-shadow-modal); transform: translateY(100%); transition: transform var(--fc-mid) var(--fc-ease); }
.fc-sheet.is-open { transform: none; }
.fc-sheet__handle { width: 40px; height: 4px; border-radius: 4px; background: var(--fc-border-strong); margin: 0 auto var(--fc-s4); }
.fc-sheet-backdrop { position: fixed; inset: 0; z-index: 65; background: var(--fc-overlay); opacity: 0; pointer-events: none; transition: opacity var(--fc-mid); }
.fc-sheet-backdrop.is-open { opacity: 1; pointer-events: auto; }

/* ============ Cabeçalho de página ============ */
.fc-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--fc-s4); flex-wrap: wrap; margin-bottom: var(--fc-s6); }
.fc-page-head__text { display: flex; flex-direction: column; gap: 6px; max-width: 720px; }
.fc-page-head__desc { color: var(--fc-text-2); }
.fc-page-head__desc .fc-icon, .fc-help .fc-icon, .fc-small .fc-icon { display: inline-block; vertical-align: -3px; }
.fc-page-head__actions { display: flex; gap: var(--fc-s3); flex-wrap: wrap; }

/* ============ Formulários de configuração ============ */
.fc-form-section { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: var(--fc-s6); padding: var(--fc-s6) 0; border-top: 1px solid var(--fc-border); }
.fc-form-section:first-of-type { border-top: 0; padding-top: 0; }
.fc-form-section__intro h2 { font-size: 18px; margin-bottom: 6px; }
.fc-form-section__intro p { font-size: 14px; color: var(--fc-text-3); }
.fc-form-section__fields { display: flex; flex-direction: column; gap: var(--fc-s5); }
.fc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fc-s4); }
.fc-form-actions { position: sticky; bottom: 0; z-index: 30; display: flex; justify-content: flex-end; gap: var(--fc-s3); padding: var(--fc-s4) 0; margin-top: var(--fc-s4); background: linear-gradient(0deg, var(--fc-bg) 65%, transparent); }
@media (max-width: 1023px) {
  .fc-form-section { grid-template-columns: minmax(0, 1fr); gap: var(--fc-s4); }
  .fc-form-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Seletor de cor */
.fc-color { display: flex; align-items: center; gap: var(--fc-s3); height: var(--fc-control); padding: 0 var(--fc-s2); border: 1px solid var(--fc-border-2); border-radius: var(--fc-r-md); background: var(--fc-sunken); }
.fc-color:focus-within { border-color: var(--fc-border-strong); }
.fc-color input[type="color"] { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px; background: none; cursor: pointer; }
.fc-color input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
.fc-color input[type="color"]::-webkit-color-swatch { border: 1px solid var(--fc-border-2); border-radius: 8px; }
.fc-color input[type="text"] { flex: 1; min-width: 0; height: 100%; border: 0; background: none; outline: none; font-family: ui-monospace, Consolas, monospace; font-size: 14px; text-transform: uppercase; }

/* Campo de imagem */
.fc-image-field { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: var(--fc-s4); align-items: center; }
.fc-image-field__preview { height: 88px; border-radius: var(--fc-r-md); border: 1px solid var(--fc-border-2); display: grid; place-items: center; padding: var(--fc-s3); overflow: hidden; background: repeating-conic-gradient(rgba(255,255,255,.04) 0 25%, transparent 0 50%) 0 0 / 16px 16px, var(--fc-sunken); }
.fc-image-field__preview.is-light { background: var(--fc-light); }
.fc-image-field__preview img { max-height: 100%; max-width: 100%; object-fit: contain; }
.fc-image-field__preview .fc-icon { color: var(--fc-text-3); }
.fc-image-field__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fc-s2); margin-top: var(--fc-s2); }
.fc-file-btn { position: relative; overflow: hidden; }
.fc-file-btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
@media (max-width: 600px) { .fc-image-field { grid-template-columns: minmax(0, 1fr); } }

/* ============ Listas ordenáveis (menu, módulos, aulas, fileiras) ============ */
.fc-sortable { display: flex; flex-direction: column; gap: var(--fc-s2); }
.fc-sort-item {
  display: grid; grid-template-columns: 32px 40px minmax(0, 1fr) auto; align-items: center; gap: var(--fc-s3);
  padding: var(--fc-s3) var(--fc-s4) var(--fc-s3) var(--fc-s2); border-radius: var(--fc-r-md);
  background: var(--fc-surface); border: 1px solid var(--fc-border); transition: border-color var(--fc-fast), box-shadow var(--fc-fast), opacity var(--fc-fast);
}
.fc-sort-item:hover { border-color: var(--fc-border-2); }
.fc-sort-item.is-dragging { opacity: 0.92; border-color: var(--fc-green-line); box-shadow: var(--fc-shadow-pop); position: relative; z-index: 5; }
.fc-sort-item.is-off { opacity: 0.55; }
.fc-handle { width: 32px; height: 40px; display: grid; place-items: center; border: 0; background: none; color: var(--fc-text-3); cursor: grab; touch-action: none; border-radius: var(--fc-r-sm); }
.fc-handle:hover { color: var(--fc-text); background: rgba(255, 255, 255, 0.05); }
.fc-handle:active { cursor: grabbing; }
.fc-sort-item__icon { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.06); color: var(--fc-text); }
.fc-sort-item__title { font-weight: 600; font-size: 15px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fc-sort-item__meta { font-size: 13px; color: var(--fc-text-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-sort-item__actions { display: flex; align-items: center; gap: 2px; }
@media (max-width: 600px) { .fc-sort-item { grid-template-columns: 28px minmax(0, 1fr) auto; } .fc-sort-item__icon { display: none; } }

/* Lista de cursos no admin (com capa) */
.fc-course-row { grid-template-columns: 32px 52px minmax(0, 1fr) auto; }
.fc-course-row__thumb { position: relative; display: block; width: 52px; aspect-ratio: 2 / 3; border-radius: 8px; overflow: hidden; background: var(--fc-sunken); outline: 1px solid var(--fc-border); outline-offset: -1px; }
.fc-course-row__thumb img { width: 100%; height: 100%; object-fit: cover; }
.fc-sort-item__title a:hover { color: var(--fc-green); }
@media (max-width: 600px) { .fc-course-row { grid-template-columns: 28px 44px minmax(0, 1fr); } .fc-course-row .fc-sort-item__actions { display: none; } }

/* Editor de curso: módulos com aulas */
.fc-editor-head { display: flex; align-items: center; gap: var(--fc-s5); flex-wrap: wrap; margin-bottom: var(--fc-s5); }
.fc-editor-head__thumb { width: 72px; aspect-ratio: 2 / 3; border-radius: 10px; overflow: hidden; position: relative; flex: none; background: var(--fc-sunken); outline: 1px solid var(--fc-border); outline-offset: -1px; }
.fc-editor-head__thumb img { width: 100%; height: 100%; object-fit: cover; }
.fc-editor-head__text { flex: 1; min-width: 240px; display: flex; flex-direction: column; gap: 6px; }
.fc-mod { border: 1px solid var(--fc-border); border-radius: var(--fc-r-lg); background: var(--fc-surface); }
.fc-mod + .fc-mod { margin-top: var(--fc-s3); }
.fc-mod__head { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: var(--fc-s3); padding: var(--fc-s3) var(--fc-s4) var(--fc-s3) var(--fc-s2); }
.fc-mod__title { font: 600 16px/1.35 var(--fc-font-title); }
.fc-mod__meta { font-size: 13px; color: var(--fc-text-3); }
.fc-mod__body { border-top: 1px solid var(--fc-border); padding: var(--fc-s2); display: flex; flex-direction: column; gap: 2px; }
.fc-mod__lessons { display: flex; flex-direction: column; gap: 2px; min-height: 8px; }
.fc-lrow { display: grid; grid-template-columns: 32px 28px minmax(0, 1fr) auto auto; align-items: center; gap: var(--fc-s3); min-height: 52px; padding: 4px var(--fc-s3) 4px 0; border-radius: var(--fc-r-md); transition: background var(--fc-fast); }
.fc-lrow:hover { background: rgba(255, 255, 255, 0.03); }
.fc-lrow.is-dragging { background: var(--fc-surface-2); box-shadow: var(--fc-shadow-pop); position: relative; z-index: 5; }
.fc-lrow__state { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.06); color: var(--fc-text-3); }
.fc-lrow__state.has-video { background: var(--fc-green-soft); color: var(--fc-green); }
.fc-lrow__title { font-size: 15px; font-weight: 500; color: var(--fc-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-lrow__title:hover { color: var(--fc-green); }
.fc-lrow__time { font-size: 13px; color: var(--fc-text-3); font-variant-numeric: tabular-nums; }
.fc-add-lesson { display: flex; gap: var(--fc-s2); padding: var(--fc-s2) var(--fc-s2) var(--fc-s1) 40px; }
.fc-add-lesson .fc-input { height: 40px; }
@media (max-width: 600px) { .fc-lrow { grid-template-columns: 28px minmax(0, 1fr) auto; } .fc-lrow__state, .fc-lrow__time { display: none; } .fc-add-lesson { padding-left: var(--fc-s2); } }

/* Editor de aula */
.fc-two-col { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--fc-s6); align-items: start; }
.fc-two-col__side { position: sticky; top: 96px; display: flex; flex-direction: column; gap: var(--fc-s4); }
@media (max-width: 1100px) { .fc-two-col { grid-template-columns: minmax(0, 1fr); } .fc-two-col__side { position: static; } }
.fc-video-slot { border-radius: var(--fc-r-lg); overflow: hidden; background: var(--fc-marinho, #121923); aspect-ratio: 16 / 9; position: relative; }
.fc-video-slot video { width: 100%; height: 100%; display: block; background: var(--fc-marinho, #121923); }
.fc-lib-list { display: flex; flex-direction: column; gap: 4px; max-height: 360px; overflow-y: auto; }
.fc-lib-item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: var(--fc-s3); align-items: center; padding: var(--fc-s2) var(--fc-s3); border-radius: var(--fc-r-md); border: 1px solid transparent; background: none; color: var(--fc-text); text-align: left; cursor: pointer; width: 100%; }
.fc-lib-item:hover { background: rgba(255, 255, 255, 0.04); border-color: var(--fc-border); }

/* Seletor de ícones */
.fc-icon-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(44px, 1fr)); gap: 6px; max-height: 196px; overflow-y: auto; overflow-x: hidden; padding: 4px; border: 1px solid var(--fc-border-2); border-radius: var(--fc-r-md); background: var(--fc-sunken); }
.fc-icon-picker button { height: 44px; border-radius: 10px; border: 1px solid transparent; background: none; color: var(--fc-text-2); display: grid; place-items: center; cursor: pointer; }
.fc-icon-picker button:hover { background: rgba(255, 255, 255, 0.06); color: var(--fc-text); }
.fc-icon-picker button.is-active { border-color: var(--fc-green-line); background: var(--fc-green-soft); color: var(--fc-green); }

/* ============ Entrada (login, senha, primeiro acesso) ============ */
.fc-auth { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.fc-auth__brand { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: var(--fc-s8); background: var(--fc-sunken); isolation: isolate; }
.fc-auth__brand-bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(120% 90% at 85% 15%, var(--fc-green-soft), transparent 55%), radial-gradient(90% 80% at 0% 100%, rgba(255,255,255,.04), transparent 60%), var(--fc-sunken); }
.fc-auth__brand-bg img { width: 100%; height: 100%; object-fit: cover; }
.fc-auth__brand-bg.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(18, 25, 35, 0.92), rgba(18, 25, 35, 0.35) 60%, rgba(18, 25, 35, 0.55)); }
.fc-auth__symbol { position: absolute; right: -6%; top: 50%; width: 52%; max-width: 420px; transform: translateY(-50%); opacity: 0.9; z-index: -1; }
.fc-auth__logo img { height: 32px; width: auto; }
.fc-auth__quote { max-width: 460px; }
.fc-auth__quote h2 { font-size: 36px; line-height: 1.12; letter-spacing: -0.03em; }
.fc-auth__quote p { margin-top: var(--fc-s3); color: var(--fc-text-2); font-size: 17px; }
.fc-auth__panel { display: flex; flex-direction: column; justify-content: center; padding: var(--fc-s8) var(--fc-s6); }
.fc-auth__form { width: 100%; max-width: 400px; margin: 0 auto; display: flex; flex-direction: column; gap: var(--fc-s5); }
.fc-auth__form h1 { font-size: 30px; }
.fc-auth__form .fc-lead { color: var(--fc-text-2); margin-top: -12px; }
.fc-auth__links { display: flex; justify-content: space-between; align-items: center; gap: var(--fc-s3); font-size: 14px; }
.fc-auth__links a { color: var(--fc-text-2); }
.fc-auth__links a:hover { color: var(--fc-green); }
.fc-auth__foot { text-align: center; font-size: 12px; color: var(--fc-text-3); margin-top: var(--fc-s7); }
.fc-auth__foot a:hover { color: var(--fc-text); }
.fc-auth__mobile-logo { display: none; }
@media (max-width: 1023px) {
  .fc-auth { grid-template-columns: minmax(0, 1fr); }
  .fc-auth__brand { display: none; }
  .fc-auth__panel { justify-content: flex-start; padding: var(--fc-s7) var(--fc-s4); }
  .fc-auth__mobile-logo { display: block; margin-bottom: var(--fc-s4); }
  .fc-auth__mobile-logo img { height: 28px; width: auto; }
}

/* Senha com botão de mostrar */
.fc-password { position: relative; }
.fc-password .fc-input { padding-right: 52px; }
.fc-password button { position: absolute; right: 4px; top: 0; bottom: 0; margin: auto 0; } /* centrado sem transform: ao clicar, o efeito de apertar dos botões não faz o olho pular */
.fc-password button:active:not(:disabled) { transform: none; }
.fc-password button:focus-visible { outline: none; background: rgba(255, 255, 255, 0.06); }
.fc-meter { display: flex; gap: 4px; margin-top: 2px; }
.fc-meter span { flex: 1; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.1); transition: background var(--fc-mid); }
.fc-meter[data-n="1"] span:nth-child(-n+1) { background: var(--fc-danger); }
.fc-meter[data-n="2"] span:nth-child(-n+2) { background: var(--fc-warning); }
.fc-meter[data-n="3"] span:nth-child(-n+3) { background: var(--fc-green); }

/* Etapas do primeiro acesso */
.fc-steps { display: flex; gap: 6px; }
.fc-steps span { flex: 1; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, 0.1); }
.fc-steps span.is-done { background: var(--fc-green); }
.fc-steps span.is-current { background: linear-gradient(90deg, var(--fc-green) 50%, rgba(255,255,255,.1) 50%); }
.fc-step-count { font-size: 13px; color: var(--fc-text-3); }
.fc-terms { max-height: 220px; overflow: auto; padding: var(--fc-s4); border-radius: var(--fc-r-md); border: 1px solid var(--fc-border); background: var(--fc-sunken); font-size: 14px; color: var(--fc-text-2); }
.fc-photo { display: flex; align-items: center; gap: var(--fc-s4); }

/* ============ Página simples (estados, documentos) ============ */
.fc-simple { min-height: 100vh; display: flex; flex-direction: column; }
.fc-simple__top { padding: var(--fc-s5) var(--fc-s6); }
.fc-simple__top img { height: 28px; width: auto; }
.fc-simple__main { flex: 1; display: grid; place-items: center; padding: var(--fc-s5); }
.fc-doc { max-width: 760px; margin: 0 auto; padding: var(--fc-s5) var(--fc-s4) var(--fc-s9); }
.fc-doc h1 { margin-bottom: var(--fc-s2); }
.fc-doc .fc-prose { margin-top: var(--fc-s6); color: var(--fc-text-2); }
.fc-prose p, .fc-prose ul, .fc-prose ol { margin: 0 0 var(--fc-s4); }
.fc-prose h2, .fc-prose h3 { margin: var(--fc-s6) 0 var(--fc-s3); }
.fc-prose a { color: var(--fc-green); text-decoration: underline; text-underline-offset: 3px; }

/* Vitrine: banners */
.fc-banner-item { grid-template-columns: 32px 168px minmax(0, 1fr) auto; }
.fc-banner-item__img { display: block; aspect-ratio: 3 / 1; border-radius: var(--fc-r-sm); overflow: hidden; background: var(--fc-sunken); outline: 1px solid var(--fc-border); }
.fc-banner-item__img img { width: 100%; height: 100%; object-fit: cover; }
.fc-banner-item .fc-sort-item__actions form { display: contents; }
.fc-banner-previa { width: 100%; border-radius: var(--fc-r-md); border: 1px dashed var(--fc-border-2); display: grid; place-items: center; overflow: hidden; color: var(--fc-text-3); background: var(--fc-sunken); }
.fc-banner-previa img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 600px) { .fc-banner-item { grid-template-columns: 28px 96px minmax(0, 1fr); } .fc-banner-item .fc-sort-item__actions { grid-column: 2 / -1; } }
.fc-banner-previa { max-width: 720px; }
.fc-vitrine-opcoes { display: grid; grid-template-columns: minmax(200px, 1fr) repeat(2, minmax(0, 1.2fr)); gap: var(--fc-s5); align-items: start; margin-bottom: var(--fc-s6); }
@media (max-width: 900px) { .fc-vitrine-opcoes { grid-template-columns: minmax(0, 1fr); } }
.fc-vitrine-opcoes .fc-switch { align-items: flex-start; }

/* Vitrine: fileiras */
.fc-tipos-fileira { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fc-s3); }
.fc-tipo-fileira { display: flex; gap: var(--fc-s3); align-items: flex-start; padding: var(--fc-s4); border-radius: var(--fc-r-md); border: 1px solid var(--fc-border-2); background: var(--fc-sunken); cursor: pointer; transition: border-color var(--fc-fast), background var(--fc-fast); }
.fc-tipo-fileira:hover { border-color: var(--fc-border-strong); }
.fc-tipo-fileira:has(input:checked) { border-color: var(--fc-green-line); background: var(--fc-green-soft); }
.fc-tipo-fileira input { position: absolute; opacity: 0; pointer-events: none; }
.fc-tipo-fileira__icone { flex: none; width: 36px; height: 36px; border-radius: var(--fc-r-sm); display: grid; place-items: center; background: rgba(255, 255, 255, 0.05); color: var(--fc-text-2); }
.fc-tipo-fileira:has(input:checked) .fc-tipo-fileira__icone { color: var(--fc-green); }
.fc-tipo-fileira strong { font-weight: 600; }
.fc-fileira-curso { grid-template-columns: 32px 40px minmax(0, 1fr) auto; }
.fc-fileira-curso__capa { width: 40px; aspect-ratio: 2 / 3; border-radius: 6px; overflow: hidden; display: grid; place-items: center; background: var(--fc-sunken); color: var(--fc-text-3); }
.fc-fileira-curso__capa img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 700px) { .fc-tipos-fileira { grid-template-columns: minmax(0, 1fr); } }

/* Arrastar para ordenar: item flutuando + vaga de destino */
.fc-sort-item.is-dragging, .fc-lrow.is-dragging, .fc-mod.is-dragging {
  transform: rotate(1.2deg) scale(1.02); box-shadow: 0 24px 48px -16px rgba(0, 0, 0, 0.7), 0 0 0 1px var(--fc-green-line); opacity: 0.97; cursor: grabbing;
}
.is-dragging.is-assentando { transform: none; }
.fc-sort-vaga { border: 1.5px dashed var(--fc-green-line) !important; background: var(--fc-green-soft) !important; box-shadow: none !important; }
.fc-sort-vaga > * { visibility: hidden; }
body.is-arrastando, body.is-arrastando * { cursor: grabbing !important; user-select: none; }

/* Alunos */
.fc-linha-link { cursor: pointer; }
.fc-check-lista { display: flex; flex-direction: column; gap: 8px; max-height: 200px; overflow-y: auto; padding: 12px; border: 1px solid var(--fc-border-2); border-radius: var(--fc-r-md); background: var(--fc-sunken); }
.fc-btn.is-disabled { opacity: 0.4; pointer-events: none; }
a.fc-stat { color: inherit; transition: border-color var(--fc-fast); }
a.fc-stat:hover { border-color: var(--fc-border-strong); }
.fc-aluno-topo { display: flex; align-items: center; gap: var(--fc-s5); flex-wrap: wrap; margin-bottom: var(--fc-s5); }
.fc-aluno-topo__dados { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: 14px; color: var(--fc-text-2); }
.fc-aluno-topo__dados span { display: inline-flex; align-items: center; gap: 6px; }
.fc-aluno-topo__dados .fc-icon { width: 15px; height: 15px; color: var(--fc-text-3); }
.fc-aluno-grade { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--fc-s6); align-items: start; }
@media (max-width: 1100px) { .fc-aluno-grade { grid-template-columns: minmax(0, 1fr); } }
.fc-matricula { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: var(--fc-s4); align-items: center; padding: var(--fc-s4); }
.fc-matricula.is-off { opacity: 0.6; }
.fc-matricula__capa { width: 52px; aspect-ratio: 2 / 3; border-radius: 8px; overflow: hidden; display: grid; place-items: center; background: var(--fc-sunken); color: var(--fc-text-3); }
.fc-matricula__capa img { width: 100%; height: 100%; object-fit: cover; }
.fc-matricula a.fc-strong { color: var(--fc-text); font-weight: 600; }
.fc-matricula a.fc-strong:hover { color: var(--fc-green); }
@media (min-width: 1100px) { .fc-table-wrap { overflow: hidden; } } /* evita barra de rolagem por 1px de arredondamento */

/* Hotmart */
.fc-hm-passos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fc-s4); }
@media (max-width: 1100px) { .fc-hm-passos { grid-template-columns: minmax(0, 1fr); } }
.fc-hm-passo { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: var(--fc-s4); align-items: start; }
.fc-hm-passo__n { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font: 700 15px/1 var(--fc-font-title); background: var(--fc-green-soft); color: var(--fc-green); border: 1px solid var(--fc-green-line); }
.fc-hm-lista { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: var(--fc-text-2); }
.fc-hm-lista b { color: var(--fc-text); }
.fc-hm-regras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fc-s4); }
@media (max-width: 1100px) { .fc-hm-regras { grid-template-columns: minmax(0, 1fr); } }
.fc-hm-regra { border: 1px solid var(--fc-border-2); border-radius: var(--fc-r-md); padding: var(--fc-s4); margin: 0; display: flex; flex-direction: column; gap: 10px; background: var(--fc-sunken); }
.fc-hm-regra legend { padding: 0 6px; }
.fc-hm-json { margin: 0; max-height: 52vh; overflow: auto; padding: var(--fc-s4); border-radius: var(--fc-r-md); background: var(--fc-sunken); border: 1px solid var(--fc-border); font: 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace; color: var(--fc-text-2); white-space: pre; }
.fc-link { color: var(--fc-green); text-decoration: underline; text-underline-offset: 3px; }
.fc-strong { color: var(--fc-text); font-weight: 600; }

/* Materiais no editor de aula */
.fc-material-add { border-top: 1px solid var(--fc-border); padding-top: var(--fc-s3); }
.fc-tabs--mini { gap: var(--fc-s4); margin-bottom: var(--fc-s3); }
.fc-tabs--mini .fc-tab { font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.fc-material-add__painel { display: flex; flex-wrap: wrap; gap: var(--fc-s2); align-items: center; }
.fc-material-add__painel .fc-input { flex: 1 1 220px; }
.fc-file-btn.is-loading { opacity: 0.6; pointer-events: none; }

/* Comentários (admin) */
.fc-com-card__topo { display: flex; gap: var(--fc-s3); align-items: flex-start; }
.fc-com-card__resposta { display: flex; flex-direction: column; gap: 8px; margin-top: var(--fc-s4); padding-top: var(--fc-s4); border-top: 1px solid var(--fc-border); }
.fc-com-card .fc-comment__body { font-size: 15px; line-height: 1.6; color: var(--fc-text); }

/* ============ Editor de páginas ============ */
.fc-pgb-lista { display: flex; flex-direction: column; gap: var(--fc-s3); }
.fc-pgb { border: 1px solid var(--fc-border); border-radius: var(--fc-r-lg); background: var(--fc-surface); }
.fc-pgb.is-dragging { box-shadow: var(--fc-shadow-pop); }
.fc-pgb__head { display: flex; align-items: center; gap: var(--fc-s1); padding: var(--fc-s2); }
.fc-pgb__abrir { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--fc-s3); padding: var(--fc-s2); border: 0; background: none; color: var(--fc-text); text-align: left; cursor: pointer; font: inherit; border-radius: var(--fc-r-md); }
.fc-pgb__abrir:hover { background: rgba(255, 255, 255, 0.03); }
.fc-pgb__icone { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--fc-r-sm); background: var(--fc-green-soft); color: var(--fc-green); }
.fc-pgb__icone .fc-icon { width: 16px; height: 16px; }
.fc-pgb__nome { flex: none; font-weight: 600; }
.fc-pgb__resumo { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--fc-text-3); font-size: 14px; }
.fc-pgb__seta { flex: none; color: var(--fc-text-3); transition: transform var(--fc-fast); }
.fc-pgb.is-aberto .fc-pgb__seta { transform: rotate(180deg); }
.fc-pgb__body { display: none; flex-direction: column; gap: var(--fc-s4); padding: var(--fc-s2) var(--fc-s5) var(--fc-s5) 56px; }
.fc-pgb.is-aberto .fc-pgb__body { display: flex; }
.fc-pgb-img { display: flex; gap: var(--fc-s4); align-items: center; }
.fc-pgb-img__prev { flex: none; display: grid; place-items: center; width: 160px; aspect-ratio: 16 / 9; border-radius: var(--fc-r-md); background: var(--fc-sunken); border: 1px dashed var(--fc-border-2); color: var(--fc-text-3); overflow: hidden; }
.fc-pgb-img__prev img { width: 100%; height: 100%; object-fit: cover; }
.fc-pgb-cursos-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--fc-s2) var(--fc-s4); }
.fc-pgb-faq { display: flex; flex-direction: column; gap: var(--fc-s2); padding: var(--fc-s3); border: 1px solid var(--fc-border); border-radius: var(--fc-r-md); background: var(--fc-sunken); }
.fc-pgb-add__grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--fc-s2); }
.fc-pgb-add__item { display: flex; gap: var(--fc-s3); align-items: flex-start; padding: var(--fc-s3); border: 1px solid var(--fc-border); border-radius: var(--fc-r-md); background: none; color: var(--fc-text); text-align: left; cursor: pointer; font: inherit; transition: border-color var(--fc-fast), background var(--fc-fast); }
.fc-pgb-add__item:hover { border-color: var(--fc-border-strong); background: var(--fc-green-soft); }
.fc-pgb-add__item > .fc-icon { flex: none; color: var(--fc-green); margin-top: 2px; }
.fc-pgb-add__item small { display: block; color: var(--fc-text-3); font-size: 12px; line-height: 1.4; margin-top: 2px; }
.fc-pgb-slug { display: flex; align-items: center; gap: 6px; color: var(--fc-text-3); }
.fc-pgb-cursos { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; padding: var(--fc-s3); border-radius: var(--fc-r-md); background: var(--fc-sunken); max-height: 220px; overflow-y: auto; }
.fc-pgb-dicas { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.fc-pgb-dicas code { font-size: 12px; color: var(--fc-text-2); }
[data-estado].is-sujo { color: var(--fc-warning); }
@media (max-width: 767px) { .fc-pgb__body { padding-left: var(--fc-s4); } .fc-pgb__resumo { display: none; } .fc-pgb-img { flex-direction: column; align-items: stretch; } }

/* ============ Registros ============ */
.fc-log-cat { display: inline-flex; align-items: center; gap: 6px; }
.fc-log-icone { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: rgba(255, 255, 255, 0.05); color: var(--fc-text-2); }
.fc-log-icone .fc-icon { width: 15px; height: 15px; }
.fc-log-icone.is-acesso { color: var(--fc-info); } .fc-log-icone.is-vendas { color: var(--fc-green); } .fc-log-icone.is-estudo { color: var(--fc-green); }
.fc-log-icone.is-alerta { color: var(--fc-danger); background: var(--fc-danger-soft); }
.fc-log-o { display: flex; align-items: center; gap: var(--fc-s3); min-width: 0; }
.fc-log-o strong { color: var(--fc-text); font-weight: 500; }
.fc-log-det { color: var(--fc-text-3); font-size: 13px; }
.fc-table td.fc-log-ip { font-family: ui-monospace, monospace; font-size: 12px; color: var(--fc-text-3); white-space: nowrap; }
@media (max-width: 767px) { .fc-log-ip, .fc-log-ip-h { display: none; } }
.fc-chips { display: flex; flex-wrap: wrap; gap: var(--fc-s2); }
@media (max-width: 767px) { .fc-admin-title__crumb { display: none; } .fc-admin-title__name { font-size: 15px; } }
.fc-aluno-topo__dados span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 767px) { .fc-pgb__nome { flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .fc-pgb__abrir { gap: var(--fc-s2); } }
.fc-tabs { max-width: 100%; }

/* Campo de escolha de ícone */
.fc-icone-campo { display: flex; align-items: center; gap: var(--fc-s3); }
.fc-icone-campo__atual { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--fc-r-md); border: 1px solid var(--fc-border-2); background: var(--fc-surface-2); color: var(--fc-green); cursor: pointer; }
.fc-icone-campo__atual:hover { border-color: var(--fc-border-strong); }
.fc-estilos-card { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fc-s3); max-width: 420px; }
.fc-estilo-card { display: flex; flex-direction: column; align-items: center; gap: var(--fc-s2); padding: var(--fc-s4); border: 1px solid var(--fc-border-2); border-radius: var(--fc-r-md); cursor: pointer; font-size: 14px; color: var(--fc-text-2); }
.fc-estilo-card input { position: absolute; opacity: 0; pointer-events: none; }
.fc-estilo-card:has(input:checked) { border-color: var(--fc-green); color: var(--fc-text); background: var(--fc-green-soft); }
.fc-estilo-card__forma { display: flex; gap: 4px; height: 44px; align-items: center; }
.fc-estilo-card__forma i { display: block; border-radius: 3px; background: var(--fc-text-3); }
.fc-estilo-card:has(input:checked) .fc-estilo-card__forma i { background: var(--fc-green); }
.fc-estilo-card__forma--v i { width: 24px; height: 40px; }
.fc-estilo-card__forma--h i { width: 44px; height: 26px; }
.fc-modal .fc-icon-picker { max-height: 320px; }

/* Tela de entrada: formulário à esquerda, imagem à direita (pedido do dono, 05/10) */
@media (min-width: 1024px) { .fc-auth { grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); /* login 45%, imagem 55% */ } }
.fc-auth__panel { order: -1; }
.fc-auth__brand-bg img { object-position: center 30%; }
.fc-auth__brand-bg.has-image::after { background: linear-gradient(0deg, rgba(18, 25, 35, 0.88), rgba(18, 25, 35, 0.15) 55%, rgba(18, 25, 35, 0.35)), linear-gradient(90deg, rgba(18, 25, 35, 0.55), transparent 30%); }

/* Prazo de acesso (botões rápidos + data) */
.fc-prazo__opcoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--fc-s2); }
.fc-prazo__op { display: flex; align-items: center; justify-content: center; gap: 6px; height: 44px; padding: 0 var(--fc-s2); border: 1px solid var(--fc-border-2); border-radius: var(--fc-r-md); background: var(--fc-sunken); color: var(--fc-text-2); font: 500 14px var(--fc-font-text); cursor: pointer; white-space: nowrap; transition: border-color 160ms, background 160ms, color 160ms, transform 160ms; }
.fc-prazo__op:hover { border-color: var(--fc-border-strong); color: var(--fc-text); }
.fc-prazo__op:active { transform: scale(0.97); }
.fc-prazo__op.is-active { border-color: var(--fc-green); background: var(--fc-green-soft); color: var(--fc-green); }
.fc-prazo__data { display: flex; align-items: center; gap: var(--fc-s3); flex-wrap: wrap; }
@media (max-width: 560px) { .fc-prazo__opcoes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Liberação programada (aula e módulo) */
.fc-lib { display: flex; flex-direction: column; gap: 10px; }
.fc-lib__campo { display: none; align-items: center; gap: 10px; flex-wrap: wrap; padding-left: 30px; }
.fc-lib:has(input[name="lib_tipo"][value="days"]:checked) [data-lib-dias],
.fc-lib:has(input[name="lib_tipo"][value="date"]:checked) [data-lib-data] { display: flex; }
.fc-lib__avisar { display: none; }
.fc-lib:has(input[name="lib_tipo"]:is([value="days"], [value="date"]):checked) .fc-lib__avisar { display: inline-flex; }

/* Valor em reais e escolha Pago / Cortesia */
.fc-venda__reais { display: flex; align-items: center; gap: 8px; max-width: 240px; }
.fc-venda__reais > span { font-weight: 600; color: var(--fc-text-2); }
.fc-venda { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.fc-venda__valor { display: flex; flex-direction: column; gap: 6px; }
.fc-chip--radio { cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.fc-chip--radio input { position: absolute; opacity: 0; pointer-events: none; }
.fc-chip--radio:has(input:checked) { background: var(--fc-green-soft); border-color: var(--fc-green-line); color: var(--fc-green); }
.fc-chip--radio:has(input:focus-visible) { outline: 2px solid var(--fc-foco); outline-offset: 2px; }

.fc-pagamentos { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.fc-pagamento { display: inline-flex; align-items: center; gap: 6px; padding: 2px 4px 2px 10px; border-radius: 999px; background: var(--fc-green-soft); color: var(--fc-text-2); font-size: 13px; }
.fc-pagamento strong { color: var(--fc-green); }
.fc-pagamento .fc-btn { height: 26px; width: 26px; }
.fc-prazo__data { flex-direction: column; align-items: flex-start; gap: 6px; }
.fc-prazo__data .fc-data { width: 220px; max-width: 100%; }
.fc-prazo__data .fc-data > .fc-input { max-width: none !important; }

/* Textos dos e-mails */
.fc-email-lista { display: flex; flex-direction: column; gap: var(--fc-s3); }
.fc-email-item { display: flex; align-items: center; justify-content: space-between; gap: var(--fc-s4); padding: var(--fc-s4) var(--fc-s5); }
.fc-email-item.is-off { opacity: 0.6; }
.fc-email-item__info { display: flex; align-items: flex-start; gap: var(--fc-s4); min-width: 0; color: var(--fc-text); }
.fc-email-item__ic { flex: none; width: 40px; height: 40px; border-radius: var(--fc-r-md); display: grid; place-items: center; background: var(--fc-surface-3); color: var(--fc-green); }
.fc-email-item__nome { font-weight: 600; font-size: 15px; }
.fc-email-editor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--fc-s5); align-items: start; }
.fc-email-previa { position: sticky; top: calc(var(--fc-topbar) + 16px); }
.fc-email-previa__assunto { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; margin-bottom: 8px; border-radius: var(--fc-r-md); background: var(--fc-surface); border: 1px solid var(--fc-border); }
.fc-email-previa__quadro { width: 100%; height: 640px; border: 1px solid var(--fc-border); border-radius: var(--fc-r-md); background: var(--fc-nevoa, #EAEFEE); }
@media (max-width: 1100px) { .fc-email-editor { grid-template-columns: minmax(0, 1fr); } .fc-email-previa { position: static; } }

/* Painel: menu lateral que recolhe (só ícones) com animação suave; o nome "fourclass" sempre visível */
.fc-app--admin { grid-template-columns: auto minmax(0, 1fr); }
.fc-app--admin .fc-sidebar { overflow: hidden; transition: width 300ms cubic-bezier(.4, 0, .2, 1); }
.fc-sidebar__topo { display: flex; align-items: center; gap: 6px; min-height: 40px; }
.fc-sidebar__topo .fc-sidebar__logo { padding: 0; transition: opacity 180ms var(--fc-ease); }
.fc-sidebar__topo .fc-admin-badge { margin-left: auto; transition: opacity 180ms var(--fc-ease); }
.fc-recolher { flex: none; width: 36px; height: 36px; color: var(--fc-text-2); }
.fc-recolher:hover { color: var(--fc-green); }
.fc-recolher__abrir { display: none; }
.fc-app--admin .fc-nav__item { white-space: nowrap; overflow: hidden; }
.fc-app--admin .fc-nav__item .fc-icon { flex: none; }
.fc-nav__txt { transition: opacity 180ms var(--fc-ease); }
.fc-app--admin .fc-nav__label { white-space: nowrap; overflow: hidden; transition: opacity 180ms var(--fc-ease), border-color 180ms; border-top: 1px solid transparent; }
.fc-topo-marca { display: none; align-items: center; margin-right: auto; opacity: 0; transition: opacity 220ms var(--fc-ease) 80ms; }
.fc-topo-marca img { height: 26px; width: auto; }
@media (max-width: 1023px) { .fc-app--admin .fc-topo-marca { display: flex; opacity: 1; } }
/* Recolhido */
.fc-app--admin.is-recolhido .fc-sidebar { width: 76px; }
.fc-app--admin.is-recolhido .fc-recolher__fechar { display: none; }
.fc-app--admin.is-recolhido .fc-recolher__abrir { display: inline-flex; }
.fc-app--admin.is-recolhido .fc-sidebar__topo .fc-sidebar__logo, .fc-app--admin.is-recolhido .fc-sidebar__topo .fc-admin-badge { opacity: 0; pointer-events: none; }
.fc-app--admin.is-recolhido .fc-nav__txt { opacity: 0; }
.fc-app--admin.is-recolhido .fc-nav__label { opacity: 1; color: transparent; border-top-color: var(--fc-border); }
.fc-app--admin.is-recolhido .fc-nav__label:first-child { border-top-color: transparent; }
@media (min-width: 1024px) { .fc-app--admin.is-recolhido .fc-topo-marca { display: flex; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .fc-app--admin .fc-sidebar, .fc-nav__txt, .fc-topo-marca { transition: none; } }
.fc-sidebar__topo .fc-admin-badge { display: none; }
/* Menu: logo à esquerda e botão à direita; nome do item ao lado do ícone quando recolhido */
.fc-sidebar__topo .fc-recolher { margin-left: auto; }
.fc-app--admin.is-recolhido .fc-sidebar__topo { justify-content: center; }
.fc-app--admin.is-recolhido .fc-sidebar__topo .fc-sidebar__logo { position: absolute; }
.fc-app--admin.is-recolhido .fc-sidebar__topo .fc-recolher { margin: 0 auto; }
.fc-nav-balao { position: fixed; z-index: 200; padding: 7px 12px; border-radius: var(--fc-r-sm); background: var(--fc-surface-3); border: 1px solid var(--fc-border-2); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45); color: var(--fc-text); font-size: 13px; font-weight: 600; white-space: nowrap; pointer-events: none; opacity: 0; transform: translate(-6px, -50%); transition: opacity 180ms var(--fc-ease), transform 220ms cubic-bezier(.2, .8, .2, 1); }
.fc-nav-balao.is-on { opacity: 1; transform: translate(0, -50%); }
@media (prefers-reduced-motion: reduce) { .fc-nav-balao { transition: none; } }
/* Logo + botão ficam sempre no mesmo lugar; só a lista do menu recolhe */
@media (min-width: 1024px) {
  .fc-app--admin.is-recolhido .fc-sidebar__topo { position: fixed; z-index: 60; top: var(--fc-s5); left: var(--fc-s4); width: calc(var(--fc-sidebar) - var(--fc-s4) * 2 - 1px); justify-content: flex-start; }
  .fc-app--admin.is-recolhido .fc-sidebar__topo .fc-sidebar__logo { position: static; opacity: 1; pointer-events: auto; }
  .fc-app--admin.is-recolhido .fc-sidebar__topo .fc-recolher { margin: 0 0 0 auto; }
  .fc-app--admin.is-recolhido .fc-sidebar { padding-top: calc(var(--fc-s5) + 40px + var(--fc-s6)); }
  .fc-app--admin.is-recolhido .fc-topo-marca { display: none !important; }
}
.fc-app--admin .fc-app__side { z-index: 45; } /* acima da barra do topo (40): o logo fixo do menu recolhido fica visível */
.fc-sidebar__topo .fc-recolher { transform: translateY(-2px); } /* centro do ícone (44px) alinhado ao centro do desenho do logo (~43px) */

/* Gráfico de linha (Relatórios) */
.fc-linha { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: 220px auto; column-gap: 12px; row-gap: 8px; color: var(--fc-green); }
.fc-linha__y { position: relative; min-width: 44px; }
.fc-linha__y span { position: absolute; right: 0; transform: translateY(-50%); font-size: 12px; color: var(--fc-text-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.fc-linha__plot { position: relative; }
.fc-linha__plot svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.fc-linha__grade { stroke: var(--fc-border); stroke-width: 1; }
.fc-linha__traco { fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.fc-linha__x { grid-column: 2; position: relative; height: 18px; }
.fc-linha__x span { position: absolute; transform: translateX(-50%); font-size: 12px; color: var(--fc-text-3); white-space: nowrap; }
.fc-linha__x span:first-child { transform: none; }
.fc-linha__x span:last-child { transform: translateX(-100%); }
.fc-linha__mira { position: absolute; top: 0; bottom: 0; width: 1px; background: var(--fc-border-strong); pointer-events: none; }
.fc-linha__ponto { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--fc-green); border: 2px solid var(--fc-surface); transform: translate(-50%, -50%); pointer-events: none; box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.18); }
.fc-linha__dica { position: absolute; top: -6px; transform: translate(-50%, -100%); padding: 6px 10px; border-radius: var(--fc-r-sm); background: var(--fc-surface-3); border: 1px solid var(--fc-border-2); color: var(--fc-text); font-size: 12px; font-weight: 600; white-space: nowrap; pointer-events: none; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4); }
.fc-linha__dica.is-esq { transform: translate(-100%, -100%); }
.fc-linha__dica.is-dir { transform: translate(0, -100%); }

/* Relatórios: os dois gráficos lado a lado, com a mesma altura */

.fc-rel-graf .fc-chart { margin-top: auto; }
.fc-rel-graf .fc-linha { grid-template-rows: 200px auto; }

/* Arrastar aula para outro módulo: o módulo de destino acende */
.fc-mod__lessons { min-height: 24px; border-radius: var(--fc-r-sm); transition: background 150ms var(--fc-ease), box-shadow 150ms; }
.fc-mod__lessons.is-alvo { background: var(--fc-green-soft); box-shadow: 0 0 0 1px rgba(46, 255, 160, 0.35); }

/* Ficha do aluno: aulas assistidas */
.fc-assistidas__curso td { background: var(--fc-surface-2); font-weight: 700; color: var(--fc-text); font-size: 13px; }
.fc-assistidas__barra { display: flex; align-items: center; gap: 10px; }
.fc-assistidas__barra .fc-progress { flex: 1; min-width: 60px; }

/* Presença na mentoria */
.fc-presenca__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.fc-presenca__item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: var(--fc-r-md); background: var(--fc-surface-2); border: 1px solid var(--fc-border); cursor: pointer; transition: border-color 150ms, background 150ms; }
.fc-presenca__item:has(input:checked) { border-color: rgba(46, 255, 160, 0.45); background: var(--fc-green-soft); }
.fc-presenca__item input { width: 18px; height: 18px; accent-color: var(--fc-green); flex: none; }
.fc-presenca__nome { flex: 1; min-width: 0; font-weight: 600; color: var(--fc-text); display: flex; flex-direction: column; }
.fc-presenca__nome small { font-weight: 400; color: var(--fc-text-3); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ============ Páginas públicas (links compartilhados) ============ */
.fc-pub-body { min-height: 100vh; display: flex; flex-direction: column; }
.fc-pub-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px clamp(16px, 4vw, 48px); border-bottom: 1px solid var(--fc-border); }
.fc-pub-top img { height: 28px; width: auto; display: block; }
.fc-pub { flex: 1; width: 100%; max-width: 1180px; margin: 0 auto; padding: clamp(16px, 3vw, 32px) clamp(16px, 4vw, 32px) 64px; }
.fc-pub-pe { text-align: center; padding: 24px 16px; font-size: 13px; color: var(--fc-text-3); border-top: 1px solid var(--fc-border); }
.fc-pub-pe a { color: var(--fc-text-2); }
.fc-pub-hero { position: relative; border-radius: 20px; overflow: hidden; border: 1px solid var(--fc-border); background: radial-gradient(120% 140% at 15% 0%, var(--fc-marinho, #121923) 0%, var(--fc-marinho, #121923) 65%); display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
.fc-pub-hero.tem-capa { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.fc-pub-hero__img { grid-column: 2; grid-row: 1; padding: clamp(12px, 2vw, 20px); padding-left: 0; }
.fc-pub-hero__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; display: block; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.45); }
.fc-pub-hero.tem-capa .fc-pub-hero__in { grid-column: 1; grid-row: 1; }
@media (max-width: 900px) { .fc-pub-hero.tem-capa { grid-template-columns: minmax(0, 1fr); } .fc-pub-hero__img { grid-column: 1; grid-row: 1; padding: 12px 12px 0; } .fc-pub-hero.tem-capa .fc-pub-hero__in { grid-row: 2; } }
.fc-pub-hero__in { position: relative; z-index: 1; padding: clamp(24px, 5vw, 56px); display: flex; flex-direction: column; gap: 16px; max-width: 680px; }
.fc-pub-tag { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: var(--fc-r-full); background: var(--fc-green-soft); color: var(--fc-green); font-size: 13px; font-weight: 700; }
.fc-pub-hero__titulo { font: 800 clamp(30px, 5vw, 52px)/1.05 var(--fc-font-title); margin: 0; color: var(--fc-text); letter-spacing: -0.02em; }
.fc-pub-hero__sub { margin: 0; font-size: clamp(16px, 1.6vw, 19px); color: var(--fc-text-2); line-height: 1.5; }
.fc-pub-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; color: var(--fc-text-2); }
.fc-pub-hero__meta span { display: inline-flex; align-items: center; gap: 6px; }
.fc-pub-corpo { display: flex; flex-direction: column; gap: var(--fc-s5); margin-top: var(--fc-s6); }
.fc-pub-corpo--2 { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: var(--fc-s6); align-items: start; }
@media (max-width: 960px) { .fc-pub-corpo--2 { grid-template-columns: minmax(0, 1fr); } }
.fc-pub-bloco { padding: clamp(20px, 3vw, 32px); border-radius: var(--fc-r-lg); background: var(--fc-surface); border: 1px solid var(--fc-border); }
.fc-pub-bloco + .fc-pub-bloco { margin-top: var(--fc-s4); }
.fc-pub-corpo:not(.fc-pub-corpo--2) .fc-pub-bloco + .fc-pub-bloco { margin-top: 0; }
.fc-pub-bloco__t { font: 700 22px/1.2 var(--fc-font-title); margin: 0 0 16px; }
.fc-pub-bloco .fc-prose { color: var(--fc-text-2); }
.fc-pub-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.fc-pub-lista--grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.fc-pub-lista li { display: flex; align-items: flex-start; gap: 12px; color: var(--fc-text-2); line-height: 1.5; }
.fc-pub-lista li > .fc-icon { flex: none; width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: var(--fc-green-soft); color: var(--fc-green); margin-top: 1px; }
.fc-pub-lista strong { color: var(--fc-text); }
.fc-pub-final { text-align: center; padding: clamp(28px, 5vw, 48px) 20px; border-radius: var(--fc-r-lg); background: radial-gradient(100% 140% at 50% 0%, var(--fc-marinho, #121923) 0%, var(--fc-surface) 70%); border: 1px solid rgba(255, 255, 255, 0.25); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.fc-pub-final h2 { margin: 0; font: 800 clamp(24px, 3vw, 32px)/1.15 var(--fc-font-title); }
.fc-pub-final p { margin: 0 0 8px; color: var(--fc-text-2); }
.fc-pub-cad { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 14px; padding: 24px; border-color: rgba(46, 255, 160, 0.3); }
.fc-pub-cad a:not(.fc-btn) { color: var(--fc-green); }

/* Fale com o suporte */
.fc-sup { max-width: 680px; min-height: calc(100vh - 220px); margin: 0 auto; padding: var(--fc-s6) 0 var(--fc-s8); display: flex; flex-direction: column; justify-content: center; }
.fc-sup__cab h1 { margin: 0 0 var(--fc-s2); font-size: 34px; line-height: 1.15; }
.fc-sup__cab p { margin: 0 0 var(--fc-s6); color: var(--fc-text-2, inherit); }
.fc-sup__form { display: flex; flex-direction: column; gap: var(--fc-s4); }
.fc-sup__wa { margin-top: var(--fc-s6); color: var(--fc-text-2, inherit); }
.fc-sup__wa a { color: var(--fc-primary, #2EFFA0); text-decoration: underline; }
