/* Folha de estilo principal do Planner 360.
   Separada do index.html em 25/08/2026: eram 517 KB dentro de um arquivo de
   2,9 MB, e toda mudança de estilo sumia no meio de 48 mil linhas.
   Continua sendo CSS puro, carregado por <link> na mesma posição em que o
   bloco estava — sem empacotador, sem build. */

*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#080E1C;--bg2:#0D1526;--bg3:#121D32;--bg4:#1A2640;
  --blue:#3B8BFF;--blue2:#5BA3FF;--blue-dim:#1A3565;--blue-glow:rgba(59,139,255,0.12);
  --green:#1DB97A;--green-dim:#0B3322;--amber:#F0A500;--amber-dim:#3A2600;
  /* Cor de MARCA (Resumos 360 = navy + DOURADO). Vira o acento PRIMÁRIO de ação/identidade;
     o azul recua p/ dados/links. Anti-"cara de IA": dourado+navy é raro, azul é o default. */
  --brand:#F0A500;--brand-2:#FFC23D;--brand-dim:#3A2600;--brand-ink:#101418;
  --red:#FF4D6A;--red-dim:#3A1020;--purple:#8B6FFF;--purple-dim:#1E1840;
  --text:#EDF2FF;--text2:#8B9EC7;--text3:#4A5E80;
  --border:#1E2E4A;--border2:#253550;--r:8px;--r2:11px;
  /* Bloco 12: Cores das camadas de estudo */
  --camada-1:#5BA3FF;--camada-1-dim:rgba(91,163,255,.16);--camada-1-border:rgba(91,163,255,.32);
  --camada-2:#2DD4BF;--camada-2-dim:rgba(45,212,191,.16);--camada-2-border:rgba(45,212,191,.32);
  --camada-3:#A78BFA;--camada-3-dim:rgba(167,139,250,.16);--camada-3-border:rgba(167,139,250,.36);
  --camada-4:#F0A500;--camada-4-dim:rgba(240,165,0,.16);--camada-4-border:rgba(240,165,0,.36);
}
/* ===== TEMA CLARO · tela de Questões ===== */
/* Duas camadas: (1) body.qst-light-page pinta a COLUNA DE CONTEÚDO inteira (o .main) de
   cinza-claro e clareia o chip de login — só a sidebar fica escura; (2) as variáveis no
   escopo da view viram claras (página cinza suave + CARDS BRANCOS, padrão QConcursos/TEC).
   Abaixo, polimento: borda + sombra sutil nos cards e correções de cor hardcoded. */
body.qst-light-page .main{background:#F4F6FA}
body.qst-light-page .auth-box{
  --bg:#F4F6FA; --bg2:#FFFFFF; --bg3:#F3F6FB; --bg4:#E9EEF6;
  --text:#1A2236; --text2:#55627A; --text3:#8A96AC;
  --border:#E4E9F2; --border2:#D6DEEA;
  background:#FFFFFF; border-color:#E4E9F2; box-shadow:0 6px 24px rgba(16,24,40,.10);
}
#view-questoes.qst-light{
  --bg:#F4F6FA; --bg2:#FFFFFF; --bg3:#F3F6FB; --bg4:#E9EEF6;
  --text:#1A2236; --text2:#55627A; --text3:#8A96AC;
  --border:#E4E9F2; --border2:#D6DEEA;
  --blue:#2563EB; --blue2:#1D4ED8; --blue-dim:#DCE7FF; --blue-glow:rgba(37,99,235,.10);
  --green:#059669; --green-dim:#DCFCE7;
  --amber:#B45309; --amber-dim:#FEF3C7; --brand:#B45309; --brand-2:#D97706; --brand-dim:#FEF3C7;
  --red:#DC2626; --red-dim:#FEE2E2; --purple:#7C3AED; --purple-dim:#EDE7FF;
  background:transparent; color:#1A2236;
}
/* Cards do hub: brancos, borda fina, sombra sutil (token SaaS) */
#view-questoes.qst-light .qst-counter-card,
#view-questoes.qst-light .qst-hub-stats,
#view-questoes.qst-light .qst-search-input,
#view-questoes.qst-light .qst-runner-enunciado,
#view-questoes.qst-light .qst-runner-textobase,
#view-questoes.qst-light .qst-alt{
  background:#FFFFFF; border-color:#E4E9F2; box-shadow:0 1px 2px rgba(16,24,40,.05);
}
#view-questoes.qst-light .qst-revisar-card{background:#FEF1F2;border-color:#F5CFD4;box-shadow:0 1px 2px rgba(16,24,40,.05)}
#view-questoes.qst-light .qst-search-input:focus{border-color:#2563EB;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
#view-questoes.qst-light .qst-btn.ghost{background:#FFFFFF;border-color:#D6DEEA;color:#3B4C68}
#view-questoes.qst-light .qst-btn.ghost:hover{border-color:#B9C6DB;background:#F8FAFD}
#view-questoes.qst-light .qst-alt:hover:not(:disabled){background:#F5F8FF}
#view-questoes.qst-light .page-title{color:#151C2E}
#view-questoes.qst-light .page-sub{color:#55627A}
#view-questoes.qst-light .qst-runner-enunciado{color:#1A2236}
#view-questoes.qst-light .qst-runner-textobase{color:#33405A;background:linear-gradient(180deg,rgba(37,99,235,.05),rgba(37,99,235,.02))}
#view-questoes.qst-light .qst-tb-titulo{color:#1A2236}
#view-questoes.qst-light .qst-alt{color:#1A2236}
#view-questoes.qst-light .qst-search-input{color:#1A2236}
#view-questoes.qst-light .qst-search-input::placeholder{color:#8A96AC}
#view-questoes.qst-light .qst-report-title,#view-questoes.qst-light .qst-report-textarea{color:#1A2236}
#view-questoes.qst-light .qst-chip{color:#1D4ED8;background:rgba(37,99,235,.10);border-color:rgba(37,99,235,.30)}
.qst-theme-toggle{flex-shrink:0;background:var(--bg3);color:var(--text2);border:0.5px solid var(--border2);border-radius:9px;padding:8px 13px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap}
.qst-theme-toggle:hover{background:var(--bg4);color:var(--text)}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;min-height:100vh;overflow-x:hidden}
.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}

/* SIDEBAR */
.sidebar{background:var(--bg2);border-right:0.5px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar-logo.saas-header{padding:16px;border-bottom:0.5px solid var(--border);display:flex;flex-direction:column;gap:12px;background:var(--bg2);
  position:sticky;top:0;z-index:6}   /* preso no topo: rolar o menu nao leva embora o botao de recolher */
.brand-row{display:flex;align-items:center;gap:10px}
.logo-box{background:var(--blue);color:#fff;font-family:'Syne',sans-serif;font-size:14px;font-weight:800;padding:6px 10px;border-radius:7px;letter-spacing:.02em}

.logo-box.logo-image-box,.ob-logo-box.logo-image-box{background:transparent;padding:0;width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:0.5px solid rgba(59,139,255,.22);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.ob-logo-box.logo-image-box{width:40px;height:40px}
.logo-image-box img{width:100%;height:100%;object-fit:contain;display:block}
.brand-copy{display:flex;flex-direction:column;gap:2px}
.brand-eyebrow{font-size:11px;color:var(--text3);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.brand-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text);line-height:1.15}
.brand-status{font-size:11px;color:var(--green);display:flex;align-items:center;gap:5px}
.brand-status span{width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 8px rgba(29,185,122,.6)}
.is-hidden{display:none!important}
.brand-cta{width:100%;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.brand-cta:hover{background:var(--blue2);transform:translateY(-1px)}
.sidebar-section{padding:18px 12px 8px;font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;margin:2px 8px;cursor:pointer;transition:.15s;color:var(--text2);font-size:14px;font-weight:500}
.nav-item:hover{background:var(--bg3);color:var(--text)}
.nav-item.active{background:rgba(240,165,0,.12);color:var(--brand-2);border:0.5px solid var(--brand-dim)}
.nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}
.nav-item.active .nav-icon{opacity:1}
.sidebar-footer{margin-top:auto;padding:16px;border-top:0.5px solid var(--border)}
/* ─── BLOCO DA CONTA na sidebar (substitui o cartão flutuante) ─────────────── */
.side-acct{margin-bottom:12px}
.side-acct-in{display:none}
body.auth-ok .side-acct-in{display:block}
body.auth-ok .side-acct-entrar{display:none}
/* ===== VISITANTE (23/08/2026) · tem o app, não tem conta =====================
   O corpo fica em `auth-ok` porque é o caminho já provado pra revelar `.app`.
   Só que `auth-ok` foi escrito pra quem ESTÁ logado: ele mostra o bloco da conta
   (com "Sair" e "Editar meu perfil"), esconde o botão de entrar e esconde a
   caixa de login. Estas regras devolvem cada uma dessas três.
   Vale por vir DEPOIS: mesma especificidade, a última ganha. */
body.modo-visitante .side-acct-in{display:none}
body.modo-visitante .side-acct-entrar{display:block}
body.modo-visitante .p360-msg-bell{display:none!important}
/* a caixa de login fica fechada até o visitante pedir (`quer-entrar`) */
body.modo-visitante .auth-box{display:none!important}
body.modo-visitante.quer-entrar .auth-box{display:block!important;position:fixed;
  top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);
  width:380px;max-width:calc(100vw - 32px);padding:18px;z-index:9820;cursor:default}
#p360-vis-veu{position:fixed;inset:0;background:rgba(4,7,14,.72);z-index:9810;display:none}
body.modo-visitante.quer-entrar #p360-vis-veu{display:block}
.side-acct-entrar{display:block;width:100%;background:var(--blue);color:#fff;border:none;border-radius:9px;padding:10px 12px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}
.side-acct-entrar:hover{filter:brightness(1.08)}
.side-acct-head{display:flex;align-items:center;gap:9px;width:100%;background:var(--bg3);border:0.5px solid var(--border);border-radius:9px;padding:8px 10px;cursor:pointer;font-family:inherit;text-align:left;color:var(--text)}
.side-acct-head:hover{border-color:var(--blue-dim)}
.side-acct-av{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#6b7ee0);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;text-transform:uppercase}
.side-acct-txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.side-acct-txt small{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.side-acct-txt span{font-size:11px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-acct-caret{flex-shrink:0;color:var(--text3);font-size:12px;transition:transform .18s}
.side-acct.open .side-acct-caret{transform:rotate(180deg)}
.side-acct-menu{display:none;margin-top:6px;border:0.5px solid var(--border);border-radius:9px;overflow:hidden;background:var(--bg3)}
.side-acct.open .side-acct-menu{display:block}
.side-acct-item{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;border-bottom:0.5px solid var(--border);color:var(--text2);font-family:inherit;font-size:12px;text-align:left;padding:9px 11px;cursor:pointer}
.side-acct-item:last-child{border-bottom:none}
.side-acct-item:hover{background:var(--bg4);color:var(--text)}
.side-acct-item.danger:hover{color:#ff6b6b}
.side-acct-item.is-mentor-only{display:none}
body.is-mentor .side-acct-item.is-mentor-only{display:flex}
.side-acct-badge{margin-left:auto;background:var(--blue);color:#fff;border-radius:9px;font-size:10px;font-weight:700;padding:1px 6px;min-width:16px;text-align:center}
.side-acct-badge[data-zero="1"]{display:none}
/* Logado: o cartão flutuante some de vez · era ele que tapava o conteúdo. */
body.auth-ok .auth-box{display:none!important}
/* Deslogado: o login vira caixa CENTRALIZADA (some do canto, aparece no celular). */
body:not(.auth-ok) .auth-box{top:50%;right:auto;left:50%;transform:translate(-50%,-50%);width:min(330px,92vw);max-height:88vh;overflow-y:auto}
body:not(.auth-ok) .auth-box.is-collapsed{transform:translate(-50%,-50%)}
/* Botão fixo de Suporte (WhatsApp) no rodapé da sidebar · sempre acessível.
   Classe própria (NÃO .nav-item) pra não afetar o índice do destaque em showView(). */
.sidebar-support-btn{display:flex;align-items:center;gap:9px;width:100%;background:linear-gradient(135deg,rgba(37,211,102,.15),rgba(30,190,90,.07));border:0.5px solid rgba(37,211,102,.38);border-radius:9px;padding:10px 12px;margin-bottom:12px;cursor:pointer;text-decoration:none;color:var(--text);font-family:inherit;font-size:13px;font-weight:600;transition:.15s}
.sidebar-support-btn:hover{background:linear-gradient(135deg,rgba(37,211,102,.24),rgba(30,190,90,.13));border-color:rgba(37,211,102,.58)}
.sidebar-support-btn .ss-ic{width:18px;height:18px;flex-shrink:0;color:#25D366}
.sidebar-support-btn .ss-txt{display:flex;flex-direction:column;line-height:1.15}
.sidebar-support-btn .ss-txt small{font-size:10px;font-weight:500;color:var(--text3)}
.concurso-badge{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px}
/* DEV: botão de reset (remover quando os testes terminarem) */
.dev-reset-btn{margin-top:10px;width:100%;background:transparent;color:var(--text3);border:0.5px dashed var(--border2);border-radius:8px;padding:8px 10px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:center;gap:6px}
.dev-reset-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-dim)}
.dev-reset-btn-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-weight:600}
.concurso-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}
.concurso-name{font-size:12px;font-weight:500;color:var(--text);line-height:1.3}
.concurso-status{font-size:10px;color:var(--amber);margin-top:3px}

/* ═══════════════════════════════════════
   SISTEMA XP & NÍVEIS · Gamificação
═══════════════════════════════════════ */
.xp-student-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px;margin:0 8px 0;cursor:default;transition:.15s}
.xp-student-card:hover{border-color:rgba(59,139,255,.25)}
.xp-student-card-top{display:flex;align-items:center;gap:10px}
.xp-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#1A3565,#253A60);border:1.5px solid var(--blue-dim);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--blue2);flex-shrink:0;overflow:hidden;transition:.2s;position:relative}
/* Quando tem imagem dentro: remove fundo/borda pra a peça respirar e ganha glow sutil */
.xp-avatar:has(img){background:transparent;border-color:transparent}
.xp-avatar img{width:100%;height:100%;object-fit:contain;display:block}
.xp-student-info{flex:1;min-width:0}
.xp-student-name{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:'Syne',sans-serif;line-height:1.2}
.xp-level-badge{display:inline-flex;gap:5px;background:#0D1828;border:0.5px solid #1A3060;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:600;color:var(--blue2);letter-spacing:.02em;width:100%;
  /* 🔴 23/08/2026 · tinha `nowrap` SEM `overflow:hidden`, então o texto não
     cortava: VAZAVA da pílula (185px de conteúdo em 169px). E o nome de nível
     mais longo do jogo é "Especialista em Padrões" — encolher fonte só adiaria.
     Agora quebra, e o pontinho fica na PRIMEIRA linha (com `align-items:center`
     ele boiava no meio das duas). */
  white-space:normal;overflow-wrap:break-word;align-items:flex-start;line-height:1.35}
.xp-level-badge .xp-level-dot{margin-top:4px}
.xp-level-dot{width:5px;height:5px;border-radius:50%;background:var(--blue2);opacity:.7;flex-shrink:0}

.xp-bar-section{padding:10px 12px 8px}
.xp-bar-meta{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.xp-bar-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;display:inline-flex;align-items:center;gap:5px}
/* Ícone "como funciona" do XP */
.xp-info-btn{width:13px;height:13px;border-radius:50%;background:transparent;border:0.5px solid var(--text3);color:var(--text3);font-size:8px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:.15s;flex-shrink:0;font-style:italic}
.xp-info-btn:hover{border-color:var(--blue2);color:var(--blue2);background:var(--blue-glow)}
.xp-info-btn.open{border-color:var(--blue2);color:var(--blue2);background:var(--blue-glow)}
/* Popover explicativo de XP */
.xp-info-popover{position:fixed;width:268px;background:var(--bg2);border:0.5px solid var(--border2);border-radius:12px;padding:14px 16px;box-shadow:0 16px 50px rgba(0,0,0,.55);z-index:9996;opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.xp-info-popover.open{opacity:1;transform:translateY(0);pointer-events:auto}
.xp-info-popover-title{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--text);margin-bottom:10px;letter-spacing:.01em}
.xp-info-row{display:flex;align-items:flex-start;gap:9px;padding:7px 0;border-bottom:0.5px solid rgba(30,46,74,.5)}
.xp-info-row:last-of-type{border-bottom:none}
.xp-info-icon{font-size:14px;line-height:1.3;flex-shrink:0;width:18px;text-align:center}
.xp-info-content{flex:1;min-width:0}
.xp-info-rule{font-size:11.5px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:1px}
.xp-info-detail{font-size:10.5px;color:var(--text2);line-height:1.4}
.xp-info-foot{margin-top:10px;padding-top:10px;border-top:0.5px solid var(--border2);font-size:10px;color:var(--text3);font-style:italic;line-height:1.4}
.xp-bar-value{font-size:12px;color:var(--blue2);font-weight:600}
.xp-bar-track{height:5px;background:#0A1525;border-radius:5px;overflow:hidden;border:0.5px solid rgba(59,139,255,.07)}
.xp-bar-fill{height:100%;background:var(--brand);border-radius:5px;transition:width 1.3s cubic-bezier(.16,1,.3,1);position:relative;min-width:2px}
.xp-bar-fill::after{content:'';position:absolute;right:0;top:0;bottom:0;width:5px;background:rgba(255,255,255,.22);border-radius:5px}
.xp-bar-next{font-size:12px;color:var(--text3);margin-top:5px;text-align:right}

.xp-streak-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:rgba(240,165,0,.07);border:0.5px solid rgba(240,165,0,.18);border-radius:20px;font-size:12px;font-weight:600;color:var(--amber);margin:6px 12px 8px;cursor:default}
.xp-streak-mult{font-size:11px;color:rgba(240,165,0,.6);font-weight:400;margin-left:2px}
/* "Hoje: N questões" · 24/08/2026. No site havia placar do dia; no Planner a aluna
   ficou sem saber quanto fez hoje. Fica colado na pílula do streak, que é onde ela
   já olha. */
.xp-hoje{display:none;margin:-2px 12px 8px;font-size:11.5px;color:var(--text2);line-height:1.35}
.xp-hoje.on{display:block}
.xp-hoje b{color:var(--text);font-variant-numeric:tabular-nums}
.xp-hoje i{font-style:normal;color:var(--text3)}

/* Milestone badges na sidebar */
.xp-milestones{display:flex;gap:5px;padding:4px 12px 10px;flex-wrap:wrap}
.xp-milestone{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:6px;font-size:11px;color:var(--text3);transition:.15s;position:relative;cursor:default}
.xp-milestone.unlocked{border-color:rgba(59,139,255,.2);color:var(--text2)}
.xp-milestone.unlocked .xp-ms-icon{opacity:1}
.xp-ms-icon{opacity:.3;font-size:11px}
.xp-milestone-tip{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);background:#1A2640;border:0.5px solid var(--border2);border-radius:6px;padding:4px 8px;font-size:9px;color:var(--text2);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:20}
.xp-milestone:hover .xp-milestone-tip{opacity:1}

/* Toast de level up · sobrepõe o toast padrão */
.xp-levelup-toast{position:fixed;bottom:24px;right:24px;background:linear-gradient(135deg,#0D1F3A,#112244);border:0.5px solid rgba(59,139,255,.35);border-radius:12px;padding:14px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 8px 32px rgba(0,0,0,.4);z-index:9999;transform:translateY(80px);opacity:0;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s ease;pointer-events:none;max-width:300px}
.xp-levelup-toast.show{transform:translateY(0);opacity:1}
.xp-levelup-icon{font-size:24px;flex-shrink:0}
.xp-levelup-body{}
.xp-levelup-kicker{font-size:9px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.xp-levelup-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);line-height:1.2}
.xp-levelup-sub{font-size:11px;color:var(--text2);margin-top:2px}

/* ============================== STUDY DOCK BAR ==============================
Barra fixa no rodapé com o cronômetro ativo. Aparece quando state.timer.running.
Esconde automaticamente quando o usuário está na view Modo Estudo (redundante lá).
Mobile-friendly: encolhe pra mostrar só matéria + tempo + pause. */
.study-dock{position:fixed;left:220px;right:0;bottom:0;background:var(--bg2);border-top:0.5px solid var(--border2);box-shadow:0 -8px 28px rgba(0,0,0,.42);z-index:8500;transform:translateY(110%);opacity:0;transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .24s ease;pointer-events:none}
.study-dock.show{transform:translateY(0);opacity:1;pointer-events:auto}
body.study-dock-visible .main{padding-bottom:84px}
.study-dock-inner{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px;padding:11px 22px;cursor:pointer;transition:background .15s}
.study-dock-inner:hover{background:rgba(59,139,255,.04)}
/* Pulso vermelho discreto = "gravando" */
.study-dock-pulse{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;position:relative}
.study-dock-pulse span{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 10px rgba(255,77,106,.55);animation:study-dock-pulse 1.8s ease-in-out infinite}
@keyframes study-dock-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.78)}}
.study-dock-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.study-dock-materia{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);line-height:1.2;letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.study-dock-conteudo{font-size:11px;color:var(--text2);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}
.study-dock-time{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--brand-2);font-variant-numeric:tabular-nums;letter-spacing:.02em;padding:0 6px}
.study-dock-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.study-dock-btn{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;border-radius:8px;padding:8px 14px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;line-height:1}
.study-dock-btn-pause{background:transparent;color:var(--text2);border:0.5px solid var(--border2);min-width:38px;padding:8px 10px;font-size:11px}
.study-dock-btn-pause:hover{border-color:var(--amber);color:var(--amber);background:rgba(240,165,0,.06)}
.study-dock.is-paused .study-dock-btn-pause{border-color:rgba(29,185,122,.45);color:var(--green);background:rgba(29,185,122,.06)}
.study-dock.is-paused .study-dock-btn-pause:hover{background:rgba(29,185,122,.12)}
.study-dock.is-paused .study-dock-pulse span{background:var(--amber);box-shadow:0 0 10px rgba(240,165,0,.45);animation:none;opacity:.75}
.study-dock.is-paused .study-dock-time{color:var(--text2);text-shadow:none}
.study-dock-btn-open{background:var(--blue);color:#fff;border:none;box-shadow:0 2px 10px rgba(0,0,0,.28)}
.study-dock-btn-open:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.4)}
/* Botão "Concluir": mesmo fluxo do "Concluir sessão" da view de estudo (openClosureModal).
   Visível em desktop E mobile (≠ "Abrir Estudo", que some no mobile), pois é a ação que faltava. */
.study-dock-btn-finish{background:rgba(29,185,122,.10);color:var(--green);border:0.5px solid rgba(29,185,122,.5);padding:8px 13px}
.study-dock-btn-finish:hover{background:rgba(29,185,122,.18);border-color:var(--green);transform:translateY(-1px)}
/* Quando sidebar é drawer (mobile), a dock ocupa a largura toda */
@media(max-width:900px){
  .study-dock{left:0}
  .study-dock-inner{grid-template-columns:auto 1fr auto auto;padding:10px 14px;gap:10px}
  .study-dock-conteudo{display:none}
  .study-dock-time{font-size:18px}
  .study-dock-btn-open{display:none}
  body.study-dock-visible .main{padding-bottom:72px}
}
@media(max-width:480px){
  .study-dock-materia{font-size:13px;max-width:120px}
  .study-dock-time{font-size:16px;padding:0}
  .study-dock-btn-pause{padding:7px 9px}
  .study-dock-btn-finish{padding:7px 10px;font-size:11px}
}
/* ============================== FIM STUDY DOCK BAR ============================== */

/* XP flutuante ganho */
.xp-float{position:fixed;font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--blue2);pointer-events:none;z-index:9998;animation:xp-float-up .9s cubic-bezier(.16,1,.3,1) forwards}
@keyframes xp-float-up{0%{opacity:1;transform:translateY(0) scale(1)}60%{opacity:1;transform:translateY(-28px) scale(1.05)}100%{opacity:0;transform:translateY(-48px) scale(.9)}}
@keyframes xp-bar-animate{from{width:0}}

/* MAIN */
.main{overflow-y:auto;padding:28px 32px}
.view{display:none}.view.active{display:block}
.page-header{margin-bottom:24px}
/* Titulo de secao: MESMA cara do 'Ola, Emanuel.' do inicio (Syne 28/700).
   Antes cada tela tinha um tamanho (24 no ciclo, 18 no estudar agora, 14 na
   estante) e o app parecia tres apps. 18/08: um so tamanho em todas. */
.page-title{font-family:'Syne',sans-serif;font-size:28px;font-weight:700;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;line-height:1.15}
.page-sub{font-size:14px;color:var(--text2);line-height:1.55}

/* TODAY CARD */
.today-card{background:linear-gradient(135deg,#0d1f3a 0%,#0f2448 100%);border:0.5px solid var(--blue-dim);border-radius:var(--r2);padding:18px 20px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.today-kicker{font-size:9px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
.today-title{font-family:'Playfair Display',Georgia,serif;font-size:19px;font-weight:600;color:var(--text);margin-bottom:4px}
.today-topic{font-size:12px;color:var(--text2);margin-bottom:8px;line-height:1.4}
.today-meta{display:flex;gap:6px;flex-wrap:wrap}
.today-pill{font-size:10px;padding:3px 8px;border-radius:6px;background:rgba(59,139,255,.12);color:var(--blue2);border:0.5px solid var(--blue-dim)}
.today-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.today-btn{background:var(--brand);color:var(--brand-ink);border:none;border-radius:9px;padding:12px 24px;font-size:14px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:.15s;box-shadow:0 2px 8px rgba(0,0,0,.35);letter-spacing:.01em}
.today-btn:hover{background:var(--brand-2);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.42)}
.today-secondary{background:transparent;color:var(--text2);border:0.5px solid var(--border2);border-radius:8px;padding:7px 14px;font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.today-secondary:hover{background:var(--bg3);color:var(--text)}


/* CYCLE STACK: previous / today / next */
.cycle-stack{position:relative;margin-bottom:18px;padding:2px 0 2px 44px}
.cycle-stack::before{content:'';position:absolute;left:16px;top:28px;bottom:28px;width:2px;border-radius:2px;background:rgba(59,139,255,.45);opacity:.8;box-shadow:0 0 16px rgba(0,0,0,.16)}
.cycle-item{position:relative;margin:0 0 10px 0;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-radius:var(--r2);transition:.18s}
.cycle-dot{position:absolute;left:-28px;top:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;display:block;background:rgba(139,158,199,.22);border:1px solid rgba(139,158,199,.28);z-index:2;color:transparent;font-size:0;box-shadow:0 0 0 4px var(--bg)}
.cycle-copy{min-width:0}
.cycle-kicker{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
.cycle-title{font-family:'Syne',sans-serif;font-weight:700;color:var(--text);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cycle-topic{color:var(--text2);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cycle-meta{color:var(--text3);margin-top:5px}
.cycle-action{background:transparent;color:var(--blue2);border:0.5px solid var(--blue-dim);border-radius:7px;padding:6px 10px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap}
.cycle-action:hover{background:var(--blue-glow);color:var(--text)}
.cycle-item.context{background:rgba(13,21,38,.46);border:0.5px solid rgba(37,53,80,.58);padding:9px 14px;opacity:.68;min-height:58px}
.cycle-item.context:hover{opacity:.95;border-color:rgba(59,139,255,.28);background:rgba(18,29,50,.58)}
.cycle-item.context .cycle-title{font-size:13px}
.cycle-item.context .cycle-topic{font-size:10.5px;max-width:760px}
.cycle-item.context .cycle-meta{font-size:9.5px}
.cycle-item.today-card{margin:0 0 10px 0;grid-template-columns:1fr auto;background:linear-gradient(135deg,#0d1f3a 0%,#0f2448 100%);border:0.5px solid var(--blue-dim);border-radius:var(--r2);padding:18px 20px;box-shadow:0 10px 34px rgba(0,0,0,.18)}
.cycle-item.today-card .cycle-dot{width:16px;height:16px;background:var(--blue);border-color:var(--blue2);box-shadow:0 0 0 5px var(--bg),0 0 20px rgba(0,0,0,.62)}
.cycle-item.today-card .cycle-kicker,.cycle-item.today-card .today-kicker{color:var(--blue2)}
.cycle-item.today-card .cycle-title{font-size:18px}
.cycle-item.today-card .cycle-topic{font-size:12px;margin-bottom:8px;max-width:760px}
.cycle-item.today-card .cycle-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:0}
.cycle-item.today-card .today-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
/* Ajuste: trilha lateral estática, com bolinhas centralizadas aos cards */
.cycle-stack{padding-left:46px}
.cycle-stack::before{left:17px}
.cycle-dot{left:-29px;top:50%;transform:translate(-50%,-50%)}
.cycle-item.context{transform:none}
.cycle-item.previous .cycle-dot,.cycle-item.next .cycle-dot{width:10px;height:10px}

@media(max-width:900px){.cycle-stack{padding-left:34px}.cycle-stack::before{left:13px}.cycle-dot{left:-22px}.cycle-item,.cycle-item.today-card{grid-template-columns:1fr}.cycle-action,.cycle-item.today-card .today-actions{grid-column:1}.cycle-topic{white-space:normal}}

/* DASHBOARD CYCLE STACK ANIMATION */

/* DAILY SUMMARY + CONSISTENCY CARDS */
.daily-focus-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin:16px 0 18px}
.daily-focus-card{background:linear-gradient(135deg,rgba(13,21,38,.92),rgba(18,29,50,.78));border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:96px}
.daily-focus-card.primary{border-color:rgba(59,139,255,.28);background:linear-gradient(135deg,rgba(13,31,58,.75),rgba(13,21,38,.9))}
.daily-focus-card.streak{border-color:rgba(29,185,122,.22);background:linear-gradient(135deg,rgba(11,51,34,.38),rgba(13,21,38,.88))}
.daily-focus-kicker{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.daily-focus-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:4px}
.daily-focus-sub{font-size:11px;color:var(--text3);line-height:1.45}
.daily-focus-metrics{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.daily-focus-pill{font-size:10px;padding:4px 8px;border-radius:7px;background:rgba(59,139,255,.10);color:var(--blue2);border:0.5px solid rgba(59,139,255,.22)}
.daily-focus-pill.green{background:rgba(29,185,122,.10);color:var(--green);border-color:rgba(29,185,122,.22)}
.daily-focus-pill.amber{background:rgba(240,165,0,.10);color:var(--amber);border-color:rgba(240,165,0,.22)}
.daily-focus-number{font-family:'Syne',sans-serif;font-size:32px;font-weight:800;color:var(--green);line-height:1;text-align:right}
.daily-focus-number span{font-size:13px;color:var(--text2);font-family:'DM Sans',sans-serif;font-weight:400;margin-left:2px}
@media(max-width:900px){.daily-focus-grid{grid-template-columns:1fr}.daily-focus-card{align-items:flex-start}.daily-focus-number{text-align:left}}

/* GLOBAL PROGRESS */
.global-progress-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;margin-bottom:16px}
.global-progress-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.global-progress-title{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.global-progress-value{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--blue)}
.global-progress-track{height:6px;background:var(--bg4);border-radius:6px;overflow:hidden;margin-bottom:5px}
.global-progress-fill{height:100%;border-radius:6px;background:var(--brand);transition:width .8s ease}
.global-progress-sub{font-size:11px;color:var(--text3)}

/* DAILY PERFORMANCE LINE */
.daily-performance-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:18px 20px;margin-bottom:16px}
/* Quando dentro do grid de gráficos, anula o margin-bottom (o grid cuida do gap) */
.dash-charts-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:20px}
.dash-charts-grid .daily-performance-card,
.dash-charts-grid .subject-hours-card{margin-bottom:0;height:100%}
@media(min-width:1100px){.dash-charts-grid{grid-template-columns:1fr 1fr}}
.daily-performance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.daily-performance-title{font-size:13px;font-weight:700;color:var(--text);font-family:'Syne',sans-serif;letter-spacing:0;text-transform:none;margin-bottom:3px}
.daily-performance-sub{font-size:12px;color:var(--text3);margin-top:3px;line-height:1.4}
.daily-performance-value{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:var(--green);white-space:nowrap}
.daily-performance-insight{margin-top:12px;padding:10px 14px;border-radius:8px;background:rgba(59,139,255,.06);border:0.5px solid rgba(59,139,255,.14);font-size:12px;color:var(--text2);line-height:1.5}
.daily-performance-insight.good{color:var(--green);background:rgba(29,185,122,.08);border-color:rgba(29,185,122,.18)}
.daily-performance-insight.warn{color:var(--amber);background:rgba(240,165,0,.08);border-color:rgba(240,165,0,.18)}
.daily-performance-insight.bad{color:var(--red);background:rgba(255,77,106,.08);border-color:rgba(255,77,106,.18)}
.line-chart-wrap{height:150px;position:relative;background:transparent;border-radius:10px;overflow:hidden}
.line-chart-wrap svg{width:100%;height:100%;display:block}
.line-empty{height:112px;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;border:0.5px dashed var(--border2);border-radius:10px;background:rgba(18,29,50,.28)}
.line-chart-labels{display:flex;justify-content:space-between;gap:6px;margin-top:6px;font-size:10px;color:var(--text3)}
.line-chart-labels span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72px}


/* SUBJECT HOURS CHART */
.subject-hours-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:18px 20px;margin-bottom:18px}
.subject-hours-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.subject-hours-title{font-size:13px;font-weight:700;color:var(--text);font-family:'Syne',sans-serif;margin-bottom:3px}
.subject-hours-sub{font-size:12px;color:var(--text3);line-height:1.45}
.subject-hours-total{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:var(--amber);white-space:nowrap}
.subject-hours-chart{display:flex;flex-direction:column;gap:8px}
.subject-hours-row{display:grid;grid-template-columns:150px 1fr 56px;align-items:center;gap:10px}
.subject-hours-name{font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subject-hours-track{height:8px;background:var(--bg4);border-radius:8px;overflow:hidden}
.subject-hours-fill{height:100%;border-radius:8px;background:var(--brand);transition:width .6s ease}
.subject-hours-val{font-size:11px;color:var(--text);font-weight:600;text-align:right}
.subject-hours-empty{font-size:12px;color:var(--text3);padding:18px;text-align:center;background:var(--bg3);border-radius:10px}
.subject-hours-insight{margin-top:12px;font-size:11px;color:var(--text2);background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 11px;line-height:1.45}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}
@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.stats-grid{grid-template-columns:1fr}}
.stat-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;position:relative;overflow:hidden}
.stat-card.stat-card-cycles{background:linear-gradient(135deg,rgba(34,197,94,.06),rgba(34,197,94,.02) 60%,var(--bg2));border-color:rgba(34,197,94,.18)}
.stat-card.stat-card-time{background:var(--bg2);border-color:rgba(59,139,255,.18)}
.stat-card.stat-card-streak{background:linear-gradient(135deg,rgba(255,138,38,.07),rgba(255,138,38,.02) 60%,var(--bg2));border-color:rgba(255,138,38,.2)}
.stat-card.stat-card-acerto{background:linear-gradient(135deg,rgba(240,165,0,.06),rgba(240,165,0,.02) 60%,var(--bg2));border-color:rgba(240,165,0,.18)}
.stat-card.stat-card-acerto.is-good{background:linear-gradient(135deg,rgba(34,197,94,.06),rgba(34,197,94,.02) 60%,var(--bg2));border-color:rgba(34,197,94,.18)}
.stat-card.stat-card-acerto.is-warn{background:linear-gradient(135deg,rgba(245,158,11,.06),rgba(245,158,11,.02) 60%,var(--bg2));border-color:rgba(245,158,11,.2)}
.stat-card.stat-card-acerto.is-bad{background:linear-gradient(135deg,rgba(239,68,68,.06),rgba(239,68,68,.02) 60%,var(--bg2));border-color:rgba(239,68,68,.2)}
.stat-card-icon{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;opacity:.85}
.stat-card-cycles .stat-card-icon{background:rgba(34,197,94,.12);border:0.5px solid rgba(34,197,94,.25);color:#22c55e}
.stat-card-time .stat-card-icon{background:rgba(59,139,255,.12);border:0.5px solid rgba(59,139,255,.25);color:var(--blue)}
.stat-card-streak .stat-card-icon{background:rgba(255,138,38,.14);border:0.5px solid rgba(255,138,38,.3);color:#ff8a26}
.stat-card-acerto .stat-card-icon{background:rgba(139,92,246,.12);border:0.5px solid rgba(139,92,246,.25);color:#8b5cf6}
.stat-card-acerto.is-good .stat-card-icon{background:rgba(34,197,94,.12);border-color:rgba(34,197,94,.25);color:#22c55e}
.stat-card-acerto.is-warn .stat-card-icon{background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.3);color:#f59e0b}
.stat-card-acerto.is-bad .stat-card-icon{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.25);color:#ef4444}
.stat-card-cycles .stat-value{color:#22c55e}
.stat-card-streak .stat-value{color:#ff8a26}
.stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.stat-value{font-size:24px;font-weight:500;font-family:'Syne',sans-serif;line-height:1}
.stat-value.blue{color:var(--blue)}.stat-value.green{color:var(--green)}.stat-value.amber{color:var(--amber)}
.stat-sub{font-size:11px;color:var(--text3);margin-top:4px}
.stat-bar{height:3px;background:var(--bg4);border-radius:3px;margin-top:8px;overflow:hidden}
.stat-bar-fill{height:100%;border-radius:3px;transition:width .8s ease}

/* SECTION */
.section{margin-bottom:28px}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.section-title{font-size:12px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em}
.section-action{font-size:12px;color:var(--blue);cursor:pointer;padding:4px 10px;border:0.5px solid var(--blue-dim);border-radius:6px;background:var(--blue-glow);transition:.15s}
.section-action:hover{background:rgba(59,139,255,.2)}

/* STREAK */
.streak-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:18px 20px}
.streak-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.streak-count{font-family:'Syne',sans-serif;font-size:32px;font-weight:700;color:var(--blue);line-height:1}
.streak-count span{font-size:14px;color:var(--text2);font-family:'DM Sans',sans-serif;font-weight:400;margin-left:4px}
.streak-label{font-size:12px;color:var(--text3);margin-top:4px}
.streak-grid{display:flex;flex-wrap:wrap;gap:4px}
.streak-day{width:20px;height:20px;border-radius:4px;background:var(--bg4);border:0.5px solid var(--border);cursor:default;transition:.15s}
.streak-day.studied{background:var(--blue);border-color:var(--blue)}
.streak-day.today{background:transparent;border:2px solid var(--blue)}
.streak-day.today.studied{background:var(--blue)}
.streak-month-label{font-size:11px;color:var(--text3);margin-bottom:8px;font-weight:500}

/* SEMANAS */
.semanas-grid{display:flex;flex-direction:column;gap:8px}
.semana-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:12px 16px;display:grid;grid-template-columns:110px 60px 1fr 60px 30px;align-items:center;gap:12px}
.semana-bar{height:4px;background:var(--bg4);border-radius:4px;overflow:hidden}
.semana-fill{height:100%;border-radius:4px;transition:width .6s}

/* MATÉRIAS */
.materias-grid{display:flex;flex-direction:column;gap:8px}
.materia-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;cursor:pointer;transition:.2s}
.materia-card:hover{border-color:var(--border2);background:var(--bg3)}
.materia-card.expanded{border-color:var(--blue-dim);background:var(--bg3)}
/* Cards de matéria com mais presença (23/06): o fundo do card era quase igual ao da página
   (--bg2 vs --bg), então "sumia". Elevamos a superfície (--bg3), borda 1px mais clara, sombra
   e faixa de camada mais grossa. Hover ganha lift. Mantém o tema dark premium (sem branco). */
#materias-full .materia-card{background:var(--bg3);border:1px solid var(--border2);box-shadow:0 2px 12px rgba(0,0,0,.30)}
#materias-full .materia-card:hover{background:var(--bg4);border-color:var(--blue-dim);box-shadow:0 8px 22px rgba(0,0,0,.40);transform:translateY(-2px)}
#materias-full .materia-card.expanded{background:var(--bg3);border-color:var(--blue-dim);box-shadow:0 6px 20px rgba(0,0,0,.38)}
#materias-full .materia-card-v2::before{width:5px}
.materia-header{display:flex;align-items:center;gap:10px}
.materia-info{flex:1}
.materia-top{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.materia-nome{font-size:14px;font-weight:500;color:var(--text)}
.m-badge{font-size:9px;padding:2px 7px;border-radius:6px;font-weight:500}
.m-badge.esp{background:rgba(59,139,255,.15);color:var(--blue2)}
.m-badge.bas{background:rgba(240,165,0,.12);color:var(--amber)}
.m-badge.comp{background:rgba(139,89,255,.12);color:#a78bfa}
.m-q{font-size:10px;color:var(--text3)}
.prog-row{display:flex;align-items:center;gap:8px}
.prog-track{flex:1;height:5px;background:var(--bg4);border-radius:5px;overflow:hidden}
.prog-fill{height:100%;border-radius:5px;transition:width .6s ease}
.prog-pct{font-size:11px;font-weight:500;min-width:30px;text-align:right}
.fases-row{display:flex;gap:5px;margin-top:6px}
.fase-pill{font-size:9px;padding:2px 8px;border-radius:6px;font-weight:500}
.fase-pill.done{background:var(--green-dim);color:var(--green)}
.fase-pill.cur{background:rgba(59,139,255,.15);color:var(--blue2)}
.fase-pill.pend{background:var(--bg4);color:var(--text3)}
.materia-arrow{color:var(--text3);font-size:12px;transition:.2s}
.materia-card.expanded .materia-arrow{transform:rotate(90deg)}
.conteudos-wrap{margin-top:10px;border-top:0.5px solid var(--border);padding-top:10px;display:none}
.materia-card.expanded .conteudos-wrap{display:block}
.conteudo-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:0.5px solid var(--border)}
.conteudo-item:last-child{border-bottom:none}
.conteudo-num{font-size:10px;color:var(--text3);min-width:16px;padding-top:2px}
.conteudo-body{flex:1}
.conteudo-nome{font-size:12px;color:var(--text);margin-bottom:5px;line-height:1.4}
.fases-check{display:flex;gap:6px;flex-wrap:wrap}
.fase-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;border:0.5px solid var(--border2);background:var(--bg4);cursor:pointer;transition:.15s;font-size:10px;color:var(--text3);font-family:'DM Sans',sans-serif}
.fase-btn:hover{border-color:var(--blue-dim);color:var(--blue)}
.fase-btn.done{background:var(--green-dim);border-color:rgba(29,185,122,.3);color:var(--green)}
.fase-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}

/* ============================== BLOCO 13 · TELA MATÉRIAS RENOVADA ============================== */
/* Card de matéria reorganizado em 3 zonas verticais com respiração entre elas. */
.materia-card-v2{padding:0;overflow:visible;position:relative}
/* Barra lateral colorida: indica a camada atual em que a matéria está
   (Aprendizado=azul, Aprofundamento=verde-água, Revisão Ativa=roxo, Manutenção=âmbar).
   Quando concluída (100%), fica verde de sucesso. Dá leitura visual instantânea.
   border-radius para acompanhar o border-radius do card (overflow:visible permite o tooltip vazar) */
.materia-card-v2::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--text3);border-top-left-radius:var(--r2);border-bottom-left-radius:var(--r2);transition:.2s}
.materia-card-v2.side-camada-1::before{background:var(--camada-1)}
.materia-card-v2.side-camada-2::before{background:var(--camada-2)}
.materia-card-v2.side-camada-3::before{background:var(--camada-3)}
.materia-card-v2.side-camada-4::before{background:var(--camada-4)}
.materia-card-v2.side-done::before{background:var(--green)}
.materia-card-v2 .materia-header{padding:10px 16px 8px 20px;display:block}
/* Anel de % de conclusão à direita do card (pedido da dona). É item flex no
   cluster .materia-header-right (o header da lista é flex/space-between), então
   nunca sobrepõe o nome/pills, em qualquer largura. */
.materia-card-v2 .materia-header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.materia-card-v2 .materia-prog-ring{position:relative;width:42px;height:42px;flex-shrink:0}
.materia-card-v2 .materia-prog-ring svg{width:42px;height:42px;display:block;transform:rotate(-90deg)}
.materia-card-v2 .mpr-bg{fill:none;stroke:rgba(255,255,255,.09);stroke-width:3.4}
.materia-card-v2 .mpr-fg{fill:none;stroke-width:3.4;stroke-linecap:round;transition:stroke-dasharray .8s cubic-bezier(.16,1,.3,1)}
.materia-card-v2 .mpr-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:12px;font-weight:700;letter-spacing:-.02em}
.materia-card-v2 .mpr-num small{font-size:8px;font-weight:600;margin-left:.5px;opacity:.85}
.materia-card-v2.suspensa .materia-prog-ring{opacity:.5}
.materia-card-v2 .materia-top{margin-bottom:6px;flex-wrap:wrap;display:flex;align-items:center;gap:8px}
.materia-card-v2 .materia-nome{font-size:15px;font-weight:600;color:var(--text);font-family:'Syne',sans-serif}
.materia-card-v2 .m-badge{font-size:9px;padding:2px 7px;border-radius:5px;letter-spacing:.02em}
.materia-card-v2 .m-q{font-size:10px;color:var(--text3)}
/* Botão de editar (lápis) ao lado do nome · discreto, ganha destaque no hover do card */
.materia-card-v2 .materia-edit-btn{width:22px;height:22px;border-radius:5px;background:transparent;border:0.5px solid transparent;color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:.15s;opacity:.7;flex-shrink:0}
.materia-card-v2:hover .materia-edit-btn{opacity:1}
.materia-card-v2 .materia-edit-btn:hover{background:rgba(59,139,255,.1);border-color:var(--blue-dim);color:var(--blue2)}
.materia-card-v2 .materia-delete-btn:hover{background:var(--red-dim);border-color:rgba(255,77,106,.3);color:var(--red)}
.materia-card-v2 .conteudo-delete-btn:hover{background:var(--red-dim);border-color:rgba(255,77,106,.3);color:var(--red)}

/* Linha de info do Resumo 360 · substitui o pill discreto, fica embaixo do nome
   do conteúdo (full width via flex-basis:100%) e mostra o texto sempre visível.
   Pra textos longos, mostra preview + botão "ver mais" que expande inline. */
.cap-resumo-line{flex-basis:100%;width:100%;display:flex;align-items:flex-start;gap:7px;margin-top:4px;padding:7px 10px;background:rgba(91,163,255,.06);border-left:2px solid rgba(91,163,255,.45);border-radius:5px;font-size:11.5px;color:var(--text2);line-height:1.5;font-weight:400;letter-spacing:0;white-space:normal}
.cap-resumo-line .cap-resumo-icon{flex-shrink:0;color:var(--blue2);font-size:12px;line-height:1.4}
.cap-resumo-line .cap-resumo-text{flex:1;min-width:0}
.cap-resumo-line .cap-resumo-preview{display:inline}
.cap-resumo-line .cap-resumo-full{display:none}
.cap-resumo-line.expanded .cap-resumo-preview{display:none}
.cap-resumo-line.expanded .cap-resumo-full{display:inline}
.cap-resumo-line .cap-resumo-toggle{background:transparent;border:none;color:var(--blue2);font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;cursor:pointer;padding:0 0 0 4px;white-space:nowrap;flex-shrink:0;text-decoration:underline;text-underline-offset:2px}
.cap-resumo-line .cap-resumo-toggle:hover{color:var(--blue)}

/* Pill discreta com o capítulo do Resumo 360 ao lado do conteúdo */
.cap-resumo-pill{display:inline-flex;align-items:center;padding:2px 7px;border-radius:5px;background:rgba(91,163,255,.1);border:0.5px solid rgba(91,163,255,.28);color:var(--blue2);font-family:'DM Sans',sans-serif;font-size:10px;font-weight:600;line-height:1.4;letter-spacing:.02em;flex-shrink:0;margin-left:6px;white-space:nowrap}
.cap-resumo-pill.has-tooltip{position:relative;cursor:help}
.cap-resumo-tooltip{position:absolute;bottom:calc(100% + 8px);left:0;width:340px;max-width:90vw;background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:12px 14px;font-size:11.5px;color:var(--text2);line-height:1.6;box-shadow:0 10px 32px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:1000;text-align:left;font-weight:normal;white-space:normal;letter-spacing:0}
.cap-resumo-tooltip::after{content:'';position:absolute;top:100%;left:24px;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--bg2)}
.cap-resumo-pill.has-tooltip:hover .cap-resumo-tooltip{opacity:1}
@media(max-width:540px){.cap-resumo-tooltip{width:260px;font-size:11px;padding:10px 12px}}

/* 4 mini-botões de camada por conteúdo (substitui o botão único "Finalizar Camada X") */
.conteudo-camadas-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:2px}
.camada-btn-mini{position:relative;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:7px;background:var(--bg3);border:0.5px solid var(--border2);font-family:'DM Sans',sans-serif;font-size:11.5px;font-weight:600;color:var(--text2);cursor:pointer;transition:.15s;flex-shrink:0;line-height:1}
.camada-btn-mini:hover{background:var(--bg2);transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.25)}
.camada-btn-check{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:4px;background:transparent;border:1px solid currentColor;font-size:10px;line-height:1;flex-shrink:0;font-weight:700}
.camada-btn-mini.done .camada-btn-check{color:#0D1526;font-size:12px;font-weight:800;border-color:transparent}
.camada-btn-mini.done.camada-1 .camada-btn-check{background:#3B8BFF}
.camada-btn-mini.done.camada-2 .camada-btn-check{background:#1DB97A}
.camada-btn-mini.done.camada-3 .camada-btn-check{background:#A78BFA}
.camada-btn-mini.done.camada-4 .camada-btn-check{background:#F59E0B}
.camada-btn-mini.camada-1{color:#3B8BFF;border-color:rgba(59,139,255,.35)}
.camada-btn-mini.camada-2{color:#1DB97A;border-color:rgba(29,185,122,.35)}
.camada-btn-mini.camada-3{color:#A78BFA;border-color:rgba(167,139,250,.4)}
.camada-btn-mini.camada-4{color:#F59E0B;border-color:rgba(245,158,11,.4)}
.camada-btn-mini.done.camada-1{background:rgba(59,139,255,.1)}
.camada-btn-mini.done.camada-2{background:rgba(29,185,122,.1)}
.camada-btn-mini.done.camada-3{background:rgba(167,139,250,.1)}
.camada-btn-mini.done.camada-4{background:rgba(245,158,11,.1)}
.camada-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:300px;max-width:90vw;background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:11px 13px;font-size:11.5px;color:var(--text2);line-height:1.55;box-shadow:0 10px 32px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:1000;text-align:left;font-weight:normal;white-space:normal}
.camada-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid var(--bg2)}
.camada-btn-mini:hover .camada-tooltip{opacity:1}
.camada-tooltip strong{color:var(--text);display:block;margin-bottom:4px;font-weight:700;font-size:12px}
@media(max-width:540px){
  .camada-btn-mini{padding:5px 9px;font-size:11px;gap:5px}
  .camada-btn-check{width:12px;height:12px;font-size:9px}
  .camada-tooltip{width:240px;font-size:11px;padding:9px 11px}
}

/* Chips de sugestão do banco no modal de adicionar conteúdo */
.conteudo-sugestao-chip{display:inline-flex;align-items:center;gap:4px;background:rgba(59,139,255,.08);border:0.5px solid rgba(59,139,255,.3);color:var(--blue2);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;padding:6px 11px;border-radius:8px;cursor:pointer;transition:.15s;line-height:1.3;text-align:left;max-width:100%;white-space:normal}
.conteudo-sugestao-chip:hover{background:rgba(59,139,255,.16);border-color:rgba(59,139,255,.5);transform:translateY(-1px)}
.conteudo-sugestao-chip.added{background:rgba(29,185,122,.12);border-color:rgba(29,185,122,.4);color:var(--green);cursor:default;opacity:.85}
.conteudo-sugestao-chip.added:hover{transform:none}

/* Modal de confirmação de exclusão de matéria */
.delete-materia-modal{display:none;position:fixed;inset:0;background:rgba(8,14,28,.88);z-index:9500;align-items:center;justify-content:center;padding:20px}
.delete-materia-modal.show{display:flex}
.delete-materia-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;max-width:440px;width:100%;padding:28px 24px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.delete-materia-icon{width:56px;height:56px;border-radius:50%;background:var(--red-dim);color:var(--red);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border:0.5px solid rgba(255,77,106,.3)}
.delete-materia-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}
.delete-materia-msg{font-size:14px;color:var(--text2);line-height:1.5;margin-bottom:16px}
.delete-materia-msg strong{color:var(--text);font-weight:600}
.delete-materia-info{background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:20px;text-align:left}
.delete-materia-info-item{font-size:12px;color:var(--text2);line-height:1.7}
.delete-materia-actions{display:flex;gap:10px;flex-direction:row-reverse}
.delete-materia-btn{flex:1;padding:11px 16px;border-radius:10px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;border:none;min-height:42px}
.delete-materia-btn.cancel{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.delete-materia-btn.cancel:hover{color:var(--text);border-color:var(--text3)}
.delete-materia-btn.confirm{background:var(--red);color:#fff}
.delete-materia-btn.confirm:hover{background:#e63956;transform:translateY(-1px);box-shadow:0 4px 14px rgba(255,77,106,.3)}
@media(max-width:480px){
  .delete-materia-card{padding:22px 18px}
  .delete-materia-actions{flex-direction:column-reverse}
}

/* Zona 2: progresso */
.materia-card-v2 .materia-progress-zone{padding:0 16px 10px 20px}
.materia-card-v2 .prog-row{margin-bottom:8px;display:flex;align-items:center;gap:10px}
.materia-card-v2 .prog-track{height:5px;background:rgba(10,20,38,.7);border:0.5px solid rgba(59,139,255,.1)}
.materia-card-v2 .prog-fill{box-shadow:0 0 12px rgba(0,0,0,.25);transition:width .8s cubic-bezier(.16,1,.3,1)}
.materia-card-v2 .prog-pct{font-family:'Syne',sans-serif;font-size:12px;font-weight:700;min-width:34px}
/* Botão "Estudar agora" inline na linha da barra de progresso */
.materia-card-v2 .materia-action-btn-inline{padding:6px 14px;border-radius:7px;background:var(--blue);color:#fff;border:none;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap;flex-shrink:0}
.materia-card-v2 .materia-action-btn-inline:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.materia-card-v2 .materia-action-btn-inline.secondary{background:transparent;border:0.5px solid var(--border2);color:var(--text2)}
.materia-card-v2 .materia-action-btn-inline.secondary:hover{color:var(--text);border-color:var(--blue-dim);box-shadow:none;transform:none;background:rgba(59,139,255,.06)}

/* Pílulas de camada mais visíveis no card v2 */
.materia-card-v2 .fases-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:0}
.materia-card-v2 .fase-pill{font-size:10px;padding:3px 8px;border-radius:5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;letter-spacing:.01em}
.materia-card-v2 .fase-pill.cur{box-shadow:0 0 0 1px currentColor inset}
/* Header "Camadas de estudo" com ícone de informação e tooltip explicativo */
/* Componente reutilizável: usado tanto na legenda global (.materias-legend)
   quanto potencialmente em outros lugares. Os antigos .camadas-header dentro
   do card foram removidos · o título agora aparece uma vez só, no topo da lista. */
.camadas-info-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;color:var(--text3);cursor:help;transition:.15s;outline:none}
.camadas-info-wrap:hover,.camadas-info-wrap:focus{color:var(--blue2)}
.camadas-info-icon{display:block}
.camadas-info-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:12px 14px;width:min(360px,calc(100vw - 24px));display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--text2);line-height:1.5;box-shadow:0 12px 32px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease;z-index:30;white-space:normal;text-transform:none;letter-spacing:0;font-weight:400}
.camadas-info-tooltip strong{color:var(--text);font-weight:600}
.camadas-info-tooltip > strong{font-size:12px;display:block;margin-bottom:2px}
.camadas-info-wrap:hover .camadas-info-tooltip,.camadas-info-wrap:focus .camadas-info-tooltip{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
.cam-tip-row{display:flex;gap:8px;align-items:flex-start}
.cam-tip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px}
.cam-tip-dot.c1{background:var(--camada-1)}
.cam-tip-dot.c2{background:var(--camada-2)}
.cam-tip-dot.c3{background:var(--camada-3)}
.cam-tip-dot.c4{background:var(--camada-4)}
/* Legenda global no topo da lista de matérias (substitui o header por-card) */
.materias-legend{display:flex;align-items:center;gap:6px;padding:0 4px 8px;margin-top:4px}
.materias-legend-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}
/* Na legenda, o ícone fica na borda esquerda da página · o tooltip alinha à esquerda
   pra não vazar pra fora da viewport (sobrescreve o transform centralizado padrão). */
.materias-legend .camadas-info-tooltip{left:-8px;transform:translateX(0) translateY(4px)}
.materias-legend .camadas-info-wrap:hover .camadas-info-tooltip,
.materias-legend .camadas-info-wrap:focus .camadas-info-tooltip{transform:translateX(0) translateY(0)}

/* Zona 3: ação (Próxima ação + botão) */
/* Zona 3 (materia-action-zone) removida · botão "Estudar agora" agora é
   inline na linha da barra de progresso (regras .materia-action-btn-inline acima). */

/* Mini-stats redesenhada (some quando expandido) */
.materia-card-v2 .materia-mini-stats{display:none}

/* Card expandido · modo "lista limpa" */
.materia-card-v2.expanded .materia-header{padding-bottom:14px}
.materia-card-v2 .conteudos-wrap{margin-top:0;border-top:0.5px solid var(--border);padding:8px 0 14px;background:rgba(10,20,38,.3);border-bottom-left-radius:var(--r2);border-bottom-right-radius:var(--r2)}
.materia-card-v2 .conteudo-item-clean{display:grid;grid-template-columns:32px 1fr auto auto;gap:14px;align-items:center;padding:10px 18px 10px 22px;transition:.15s;border-bottom:0.5px solid rgba(30,46,74,.3)}
.materia-card-v2 .conteudo-item-clean:last-child{border-bottom:none}
.materia-card-v2 .conteudo-item-clean:hover{background:rgba(59,139,255,.04)}
.materia-card-v2 .conteudo-item-clean .conteudo-num-v2{font-family:'Syne',sans-serif;font-size:13px;font-weight:600;color:var(--text3);text-align:center}
.materia-card-v2 .conteudo-item-clean.done .conteudo-num-v2{color:var(--green)}
/* Wrap do nome do conteúdo + botão de editar · botão fica discreto, aparece no hover do item */
.materia-card-v2 .conteudo-nome-wrap{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0}
.materia-card-v2 .conteudo-nome-row{display:flex;align-items:center;gap:6px;min-width:0}
.materia-card-v2 .conteudo-edit-btn{width:20px;height:20px;border-radius:4px;background:transparent;border:0.5px solid transparent;color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:.15s;opacity:.55;flex-shrink:0}
.materia-card-v2 .conteudo-item-clean:hover .conteudo-edit-btn{opacity:.85}
.materia-card-v2 .conteudo-edit-btn:hover{background:rgba(59,139,255,.1);border-color:var(--blue-dim);color:var(--blue2);opacity:1}
.materia-card-v2 .conteudo-item-clean .conteudo-nome-v2{font-size:14px;color:var(--text);line-height:1.4;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.materia-card-v2 .conteudo-item-clean.done .conteudo-nome-v2{color:var(--text2)}
.materia-card-v2 .conteudo-checks{display:flex;gap:6px;align-items:center}
.materia-card-v2 .check-camada{width:24px;height:24px;border-radius:6px;border:1px solid var(--border2);background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:10px;font-weight:700;font-family:'DM Sans',sans-serif;color:var(--text3);transition:.12s;padding:0}
.materia-card-v2 .check-camada:hover{transform:translateY(-1px)}
.materia-card-v2 .check-camada.camada-1{border-color:var(--camada-1-border);color:var(--camada-1)}
.materia-card-v2 .check-camada.camada-2{border-color:var(--camada-2-border);color:var(--camada-2)}
.materia-card-v2 .check-camada.camada-3{border-color:var(--camada-3-border);color:var(--camada-3)}
.materia-card-v2 .check-camada.camada-4{border-color:var(--camada-4-border);color:var(--camada-4)}
.materia-card-v2 .check-camada.camada-1.done{background:var(--camada-1);color:#fff;border-color:var(--camada-1)}
.materia-card-v2 .check-camada.camada-2.done{background:var(--camada-2);color:#fff;border-color:var(--camada-2)}
.materia-card-v2 .check-camada.camada-3.done{background:var(--camada-3);color:#fff;border-color:var(--camada-3)}
.materia-card-v2 .check-camada.camada-4.done{background:var(--camada-4);color:#fff;border-color:var(--camada-4)}
.materia-card-v2 .check-camada:hover:not(.done){background:rgba(255,255,255,.04)}
/* Botão "Estudar/Revisar" em cada conteúdo · colorido (azul Planner) com hover preenchido.
   Padding generoso ao redor da palavra (8px vertical, 18px horizontal) para o botão
   "envolver" a palavra com folga, sem ficar achatado em relação ao texto da linha. */
.materia-card-v2 .conteudo-study-btn-v2{padding:7px 18px;border-radius:7px;border:0.5px solid var(--blue-dim);background:rgba(59,139,255,.1);color:var(--blue2);font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.4;cursor:pointer;transition:.15s;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:80px;width:max-content}
.materia-card-v2 .conteudo-item-clean:hover .conteudo-study-btn-v2{background:var(--blue);color:#fff;border-color:var(--blue)}
.materia-card-v2 .conteudo-study-btn-v2:hover{background:var(--blue2);color:#fff;border-color:var(--blue2);box-shadow:0 3px 10px rgba(0,0,0,.35)}
/* Quando o conteúdo já está concluído, o botão "Revisar" usa a paleta verde (sucesso) */
.materia-card-v2 .conteudo-item-clean.done .conteudo-study-btn-v2{border-color:rgba(29,185,122,.3);background:rgba(29,185,122,.08);color:var(--green)}
.materia-card-v2 .conteudo-item-clean.done:hover .conteudo-study-btn-v2{background:var(--green);color:#fff;border-color:var(--green)}
.materia-card-v2 .conteudo-item-clean.done .conteudo-study-btn-v2:hover{background:#22D086;color:#fff;border-color:#22D086;box-shadow:0 3px 10px rgba(29,185,122,.35)}
.materia-card-v2 .conteudo-add-row{padding:10px 20px 4px;display:flex;justify-content:flex-start}
/* Botão "Adicionar conteúdo" · colorido azul, mantém estilo dashed mas com tom Planner */
.materia-card-v2 .conteudo-add-btn-v2{padding:7px 18px;border-radius:7px;border:0.5px dashed var(--blue-dim);background:rgba(59,139,255,.06);color:var(--blue2);font-family:'DM Sans',sans-serif;font-size:12px;line-height:1.4;font-weight:600;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center}
.materia-card-v2 .conteudo-add-btn-v2:hover{color:#fff;border-color:var(--blue);border-style:solid;background:var(--blue);box-shadow:0 3px 10px rgba(0,0,0,.3)}

/* Mobile */
@media(max-width:720px){
  .materia-card-v2 .conteudo-item-clean{grid-template-columns:24px 1fr;padding:10px 14px}
  .materia-card-v2 .conteudo-checks{grid-column:1 / -1;justify-content:flex-start;flex-wrap:wrap}
  .materia-card-v2 .conteudo-study-btn-v2{grid-column:1 / -1;opacity:1;width:100%;margin-top:4px}
  .materia-card-v2 .materia-action-btn-inline{padding:8px 14px;font-size:13px}
}

/* ============================== MODELO NOVO · BANNER DE ETAPA + GRUPOS ============================== */
/* Banner que destaca a etapa atual da matéria (Aprendizado/Aprofundamento/etc.) */
.materia-card-v2 .etapa-banner{margin:6px 16px 8px 20px;padding:10px 14px;border-radius:10px;display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.02);border:0.5px solid var(--border2);transition:.2s}
.materia-card-v2 .etapa-banner.camada-1{background:var(--camada-1-dim);border-color:var(--camada-1-border)}
.materia-card-v2 .etapa-banner.camada-2{background:var(--camada-2-dim);border-color:var(--camada-2-border)}
.materia-card-v2 .etapa-banner.camada-3{background:var(--camada-3-dim);border-color:var(--camada-3-border)}
.materia-card-v2 .etapa-banner.camada-4{background:var(--camada-4-dim);border-color:var(--camada-4-border)}
.materia-card-v2 .etapa-banner-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.materia-card-v2 .etapa-banner-icon{font-size:20px;line-height:1;flex-shrink:0}
.materia-card-v2 .etapa-banner-icon.camada-num-badge{font-family:'Syne',sans-serif;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.07);border:0.5px solid rgba(255,255,255,.18);color:var(--text)}
.materia-card-v2 .etapa-banner-text{min-width:0;flex:1}
.materia-card-v2 .etapa-banner-title{font-size:12px;font-weight:700;color:var(--text);line-height:1.3;font-family:'Syne',sans-serif;letter-spacing:.01em}
.materia-card-v2 .etapa-banner-sub{font-size:11px;color:var(--text2);line-height:1.4;margin-top:1px}
.materia-card-v2 .etapa-banner-mini-progress{width:80px;height:4px;background:rgba(0,0,0,.25);border-radius:99px;overflow:hidden;flex-shrink:0;position:relative}
.materia-card-v2 .etapa-banner-mini-fill{height:100%;background:rgba(255,255,255,.85);border-radius:99px;transition:width .6s cubic-bezier(.16,1,.3,1)}
.materia-card-v2 .etapa-banner.camada-1 .etapa-banner-mini-fill{background:var(--camada-1)}
.materia-card-v2 .etapa-banner.camada-2 .etapa-banner-mini-fill{background:var(--camada-2)}
.materia-card-v2 .etapa-banner.camada-3 .etapa-banner-mini-fill{background:var(--camada-3)}
.materia-card-v2 .etapa-banner.camada-4 .etapa-banner-mini-fill{background:var(--camada-4)}
/* Menu de "3 pontinhos" no banner · voltar etapa, etc. */
.materia-card-v2 .etapa-banner-menu-wrap{position:relative;flex-shrink:0}
.materia-card-v2 .etapa-banner-menu-btn{background:transparent;border:none;color:var(--text2);font-size:16px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:6px;transition:.15s;font-weight:700;letter-spacing:.5px}
.materia-card-v2 .etapa-banner-menu-btn:hover{background:rgba(255,255,255,.08);color:var(--text)}
.materia-card-v2 .etapa-banner-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:50;background:var(--bg2);border:0.5px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.4);min-width:200px;padding:4px;display:none}
.materia-card-v2 .etapa-banner-menu-dropdown.open{display:block;animation:fadeSlide .15s ease}
.materia-card-v2 .etapa-banner-menu-item{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:none;padding:8px 10px;color:var(--text2);font-size:12px;cursor:pointer;border-radius:6px;text-align:left;font-family:'DM Sans',sans-serif;transition:.12s}
.materia-card-v2 .etapa-banner-menu-item:hover{background:var(--bg3);color:var(--text)}
.materia-card-v2 .etapa-banner-menu-item.disabled{opacity:.4;cursor:not-allowed}
.materia-card-v2 .etapa-banner-menu-item.disabled:hover{background:transparent;color:var(--text2)}
.materia-card-v2 .etapa-banner-menu-item .menu-item-icon{font-size:14px;line-height:1;flex-shrink:0}

/* Grupos de conteúdos (pendentes/concluídos) */
.materia-card-v2 .conteudos-group-header{display:flex;align-items:center;gap:8px;padding:10px 20px 6px;font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em}
.materia-card-v2 .conteudos-group-header.secondary{color:var(--text3);margin-top:4px}
.materia-card-v2 .conteudos-group-header.etapa-pronta{color:var(--green);font-size:11px;font-weight:700}
.materia-card-v2 .conteudos-group-icon{font-size:13px;line-height:1}
.materia-card-v2 .conteudos-group-count{margin-left:auto;font-size:10px;padding:1px 7px;border-radius:99px;background:rgba(59,139,255,.12);color:var(--blue2);font-weight:700;letter-spacing:0;text-transform:none}
.materia-card-v2 .conteudos-group-header.secondary .conteudos-group-count{background:rgba(29,185,122,.12);color:var(--green)}
.materia-card-v2 .conteudos-empty-state{padding:14px 20px;font-size:12px;color:var(--text3);font-style:italic;text-align:center}

/* Botão "✓ Marcar feito" / "✓ Concluído" · substitui os 4 mini-checkboxes coloridos */
.materia-card-v2 .conteudo-check-etapa{padding:6px 12px;border-radius:6px;border:0.5px solid var(--border2);background:rgba(255,255,255,.02);color:var(--text2);font-family:'DM Sans',sans-serif;font-size:11px;line-height:1.3;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:96px}
.materia-card-v2 .conteudo-check-etapa:hover{transform:translateY(-1px)}
.materia-card-v2 .conteudo-check-etapa.camada-1{border-color:var(--camada-1-border);color:var(--camada-1)}
.materia-card-v2 .conteudo-check-etapa.camada-2{border-color:var(--camada-2-border);color:var(--camada-2)}
.materia-card-v2 .conteudo-check-etapa.camada-3{border-color:var(--camada-3-border);color:var(--camada-3)}
.materia-card-v2 .conteudo-check-etapa.camada-4{border-color:var(--camada-4-border);color:var(--camada-4)}
.materia-card-v2 .conteudo-check-etapa.camada-1.done{background:var(--camada-1);color:#fff;border-color:var(--camada-1)}
.materia-card-v2 .conteudo-check-etapa.camada-2.done{background:var(--camada-2);color:#fff;border-color:var(--camada-2)}
.materia-card-v2 .conteudo-check-etapa.camada-3.done{background:var(--camada-3);color:#fff;border-color:var(--camada-3)}
.materia-card-v2 .conteudo-check-etapa.camada-4.done{background:var(--camada-4);color:#fff;border-color:var(--camada-4)}

/* Ajusta layout do item para acomodar o novo botão de check */
.materia-card-v2 .conteudo-item-clean{display:grid;grid-template-columns:24px 1fr auto auto;align-items:center;gap:10px;padding:8px 20px}

/* Botão "Revisar" secundário em conteúdo já concluído na etapa */
.materia-card-v2 .conteudo-study-btn-v2.secondary{background:rgba(255,255,255,.02);color:var(--text3);border-color:var(--border2)}
.materia-card-v2 .conteudo-item-clean.done:hover .conteudo-study-btn-v2.secondary{background:rgba(29,185,122,.1);color:var(--green);border-color:rgba(29,185,122,.3)}

@media(max-width:720px){
  .materia-card-v2 .etapa-banner{flex-wrap:wrap;gap:8px}
  .materia-card-v2 .etapa-banner-mini-progress{width:100%}
  .materia-card-v2 .conteudo-item-clean{grid-template-columns:24px 1fr;padding:10px 14px}
  .materia-card-v2 .conteudo-check-etapa{grid-column:1 / -1;justify-self:flex-start;width:100%;margin-top:2px}
  .materia-card-v2 .conteudo-study-btn-v2{grid-column:1 / -1;width:100%;margin-top:4px}
}
/* ============================ FIM MODELO NOVO ============================ */

/* ============================== FIM BLOCO 13 ============================== */

/* ============================== CRONOGRAMA (Calendário do Plano) ============================== */
.cron-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.cron-controls-left{display:flex;align-items:center;gap:8px}
.cron-nav-btn{background:var(--bg2);border:0.5px solid var(--border2);color:var(--text2);border-radius:7px;padding:7px 12px;font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;font-weight:500}
.cron-nav-btn:hover{color:var(--text);border-color:rgba(59,139,255,.3);background:rgba(59,139,255,.05)}
.cron-today-btn{background:rgba(59,139,255,.08);color:var(--blue2);border-color:rgba(59,139,255,.25)}
.cron-month-label{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text);min-width:130px;text-align:center;letter-spacing:.01em}
.cron-legend{display:flex;gap:14px;flex-wrap:wrap}
.cron-legend-item{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--text3);font-weight:500}
.cron-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.cron-legend-dot.done{background:var(--green)}
.cron-legend-dot.today{background:var(--blue)}
.cron-legend-dot.future{background:var(--text3);opacity:.6}
.cron-legend-dot.importance-principal{background:var(--amber)}
.cron-legend-dot.importance-importante{background:var(--blue)}
.cron-legend-dot.importance-complementar{background:#a78bfa}
.cron-legend-dot.prova{background:var(--red)}
.cron-legend-dot.simulado{background:#14b8a6}

/* Faixa de destaque da prova · sempre visível no topo do cronograma */
.cron-prova-banner{margin-bottom:14px;padding:14px 18px;border-radius:12px;background:linear-gradient(135deg, rgba(231,76,60,.14), rgba(231,76,60,.06));border:0.5px solid rgba(231,76,60,.35);display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cron-prova-banner.urgente{background:linear-gradient(135deg, rgba(231,76,60,.22), rgba(231,76,60,.08));border-color:rgba(231,76,60,.55);animation:provaPulse 2.4s ease-in-out infinite}
.cron-prova-banner.passada{background:linear-gradient(135deg, rgba(120,120,120,.12), rgba(120,120,120,.05));border-color:rgba(120,120,120,.3)}
@keyframes provaPulse{0%,100%{box-shadow:0 0 0 0 rgba(231,76,60,.18)}50%{box-shadow:0 0 0 6px rgba(231,76,60,0)}}
.cron-prova-icon{font-size:30px;line-height:1;flex-shrink:0}
.cron-prova-text{flex:1;min-width:200px}
.cron-prova-kicker{font-size:10px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.09em;margin-bottom:4px}
.cron-prova-banner.passada .cron-prova-kicker{color:var(--text3)}
.cron-prova-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:3px}
.cron-prova-sub{font-size:12px;color:var(--text2);line-height:1.45}
.cron-prova-count{font-family:'Syne',sans-serif;font-size:30px;font-weight:700;color:var(--red);line-height:1;flex-shrink:0;text-align:center;padding:0 8px}
.cron-prova-banner.passada .cron-prova-count{color:var(--text3)}
.cron-prova-count-label{font-size:9px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-top:4px}

/* Banner de simulados recomendados */
.cron-simulados-banner{margin-bottom:14px;padding:12px 16px;border-radius:12px;background:linear-gradient(135deg, rgba(20,184,166,.1), rgba(20,184,166,.04));border:0.5px solid rgba(20,184,166,.3);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cron-simulados-icon{font-size:24px;line-height:1;flex-shrink:0}
.cron-simulados-text{flex:1;min-width:200px}
.cron-simulados-kicker{font-size:10px;font-weight:700;color:#14b8a6;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.cron-simulados-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:3px}
.cron-simulados-desc{font-size:11px;color:var(--text2);line-height:1.45}

/* Dia do cronograma com a prova: borda vermelha forte + ícone */
.cron-day-cell.cron-day-prova{background:rgba(231,76,60,.07);box-shadow:inset 0 0 0 2px var(--red), 0 0 12px rgba(231,76,60,.18)}
.cron-day-cell.cron-day-prova .cron-day-num{color:var(--red);font-weight:800}
.cron-day-prova-mark{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--red);padding:3px 6px;background:rgba(231,76,60,.14);border-left:2px solid var(--red);border-radius:4px;margin-top:2px;letter-spacing:.04em;text-transform:uppercase}
.cron-day-simulado-mark{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:600;color:#14b8a6;padding:3px 6px;background:rgba(20,184,166,.12);border-left:2px solid #14b8a6;border-radius:4px;letter-spacing:.04em}


.cron-month-wrap{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:16px}
.cron-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--bg3);border-bottom:0.5px solid var(--border)}
.cron-weekdays>div{padding:9px 8px;font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;text-align:center}
.cron-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:rgba(30,46,74,.4);padding:1px}
.cron-day-cell{background:var(--bg2);min-height:96px;padding:7px 8px 6px;display:flex;flex-direction:column;gap:4px;cursor:default;transition:.12s;position:relative;min-width:0;overflow:hidden}
.cron-day-cell:hover{background:rgba(59,139,255,.03)}
.cron-day-cell.cron-other-month{opacity:.32}
.cron-day-cell.cron-today{background:rgba(59,139,255,.06);box-shadow:inset 0 0 0 1px rgba(0,0,0,.35)}
.cron-day-cell.cron-weekend{background:rgba(255,255,255,.012)}
.cron-day-cell.cron-weekend.cron-today{background:rgba(59,139,255,.07)}
.cron-day-num{font-size:11px;font-weight:600;color:var(--text2);line-height:1}
.cron-day-cell.cron-today .cron-day-num{color:var(--blue);font-weight:700}
.cron-day-sessions{display:flex;flex-direction:column;gap:3px;flex:1}
.cron-day-session{font-size:10px;line-height:1.25;padding:2px 5px;border-radius:4px;color:var(--text);background:rgba(255,255,255,.04);border-left:2px solid var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cron-day-session.done{background:rgba(29,185,122,.1);border-left-color:var(--green);color:var(--green)}
.cron-day-session.future{background:rgba(59,139,255,.04);border-left-color:var(--blue);color:var(--text2);opacity:.85}
.cron-day-session.future.principal{border-left-color:var(--amber)}
.cron-day-session.future.importante{border-left-color:var(--blue)}
.cron-day-session.future.complementar{border-left-color:#a78bfa}
.cron-day-rest{font-size:9px;color:var(--text3);font-style:italic;padding:2px 4px}
.cron-day-count-badge{position:absolute;top:6px;right:6px;font-size:9px;color:var(--text3);font-weight:600;background:rgba(255,255,255,.04);padding:1px 5px;border-radius:99px}

.cron-info-box{background:rgba(59,139,255,.05);border:0.5px solid rgba(59,139,255,.18);border-radius:10px;padding:12px 16px}
.cron-info-title{font-size:11px;font-weight:600;color:var(--blue2);margin-bottom:6px}
.cron-info-text{font-size:11px;color:var(--text2);line-height:1.55}
.cron-info-text strong{color:var(--text)}

/* Widget compacto no Dashboard (Início) */
.cron-widget{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;padding:14px 16px;margin-top:14px}
.cron-widget-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px}
.cron-widget-title{font-family:'Syne',sans-serif;font-size:13px;font-weight:600;color:var(--text);letter-spacing:.01em}
.cron-widget-link{font-size:11px;color:var(--blue2);text-decoration:none;cursor:pointer;font-weight:500;transition:.12s}
.cron-widget-link:hover{color:var(--blue)}
.cron-widget-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cron-widget-day{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:7px 6px;min-height:74px;display:flex;flex-direction:column;gap:3px;transition:.12s}
.cron-widget-day.is-today{background:rgba(59,139,255,.06);border-color:rgba(59,139,255,.3)}
.cron-widget-day.is-past{opacity:.5}
.cron-widget-day-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;font-weight:600;line-height:1}
.cron-widget-day-num{font-size:14px;color:var(--text);font-weight:600;font-family:'Syne',sans-serif;line-height:1}
.cron-widget-day.is-today .cron-widget-day-num{color:var(--blue)}
.cron-widget-day-sessions{display:flex;flex-direction:column;gap:2px;margin-top:3px;flex:1}
.cron-widget-day-pill{font-size:9px;line-height:1.2;padding:1px 4px;border-radius:3px;color:var(--text2);background:rgba(255,255,255,.04);border-left:2px solid var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cron-widget-day-pill.done{background:rgba(29,185,122,.08);border-left-color:var(--green);color:var(--green)}
.cron-widget-day-pill.rest{font-style:italic;color:var(--text3);border-left-color:transparent;background:transparent;padding:0}

@media(max-width:720px){
  .cron-day-cell{min-height:70px;padding:5px 6px}
  .cron-day-session{font-size:9px;padding:1px 4px}
  .cron-widget-days{grid-template-columns:repeat(4,1fr)}
  .cron-widget-day:nth-child(n+5){display:none}
}

/* ─── Cronograma no MOBILE: agenda vertical (lista de dias legível) ───
   No celular o grid de 7 colunas vira ilegível, então escondemos ele e
   mostramos uma lista de dias (de hoje pra frente), com botão Estudar no topo. */
.cron-mobile-study-cta{display:none;width:100%;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;border:0;border-radius:12px;padding:13px;font-family:'DM Sans',sans-serif;font-size:14.5px;font-weight:700;cursor:pointer;margin-bottom:14px;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.cron-mobile-study-cta:active{transform:scale(.99)}
.cron-agenda-mobile{display:none}
.cron-agenda-empty{padding:24px;text-align:center;color:var(--text3);font-size:13px}
.cron-agenda-day{display:flex;align-items:stretch;gap:12px;width:100%;text-align:left;background:var(--bg2);border:0.5px solid var(--border);border-radius:11px;padding:11px 12px;cursor:pointer;font-family:inherit;transition:.12s}
.cron-agenda-day:active{transform:scale(.99)}
.cron-agenda-day.is-today{border-color:rgba(59,139,255,.45);background:rgba(59,139,255,.06)}
.cron-agenda-day.is-past{opacity:.6}
.cron-agenda-day.is-prova{border-color:rgba(231,76,60,.5);background:rgba(231,76,60,.06)}
.cad-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:46px;flex-shrink:0;border-right:0.5px solid var(--border);padding-right:12px}
.cad-dow{font-size:9.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.cad-num{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--text);line-height:1.15}
.cron-agenda-day.is-today .cad-num{color:var(--blue)}
.cad-count{font-size:9px;font-weight:700;color:var(--green);margin-top:2px;white-space:nowrap}
.cad-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;justify-content:center}
.cad-sess{font-size:12px;line-height:1.3;padding:4px 9px;border-radius:6px;color:var(--text);background:rgba(255,255,255,.04);border-left:3px solid var(--text3);overflow:hidden;text-overflow:ellipsis}
.cad-sess.done{background:rgba(29,185,122,.1);border-left-color:var(--green);color:var(--green)}
.cad-sess.future{background:rgba(59,139,255,.05);border-left-color:var(--blue);color:var(--text2)}
.cad-sess.future.principal{border-left-color:var(--amber)}
.cad-sess.future.importante{border-left-color:var(--blue)}
.cad-sess.future.complementar{border-left-color:#a78bfa}
.cad-rest{font-size:11px;color:var(--text3);font-style:italic}
.cad-mark{font-size:11px;font-weight:700;padding:3px 8px;border-radius:5px;letter-spacing:.03em;align-self:flex-start}
.cad-mark.prova{color:var(--red);background:rgba(231,76,60,.14);border-left:3px solid var(--red)}
.cad-mark.simulado{color:#14b8a6;background:rgba(20,184,166,.12);border-left:3px solid #14b8a6}
.cad-chev{align-self:center;color:var(--text3);font-size:20px;flex-shrink:0}
@media(max-width:720px){
  .cron-month-wrap{display:none}
  .cron-controls-right{display:none}
  .cron-mobile-study-cta{display:flex}
  .cron-agenda-mobile{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
}
/* ============================== FIM CRONOGRAMA ============================== */

/* ============================== BLOCO 12 · CLASSES DE CAMADA ============================== */
/* Pílulas e botões com variantes coloridas por camada. Usadas em fase-pill, fase-btn, closure-fase-btn, finish-fase-btn, prog-fill, etc. */
.camada-1{color:var(--camada-1)}
.camada-2{color:var(--camada-2)}
.camada-3{color:var(--camada-3)}
.camada-4{color:var(--camada-4)}
.bg-camada-1{background:var(--camada-1-dim);border-color:var(--camada-1-border)}
.bg-camada-2{background:var(--camada-2-dim);border-color:var(--camada-2-border)}
.bg-camada-3{background:var(--camada-3-dim);border-color:var(--camada-3-border)}
.bg-camada-4{background:var(--camada-4-dim);border-color:var(--camada-4-border)}
.fill-camada-1{background:var(--camada-1)}
.fill-camada-2{background:var(--camada-2)}
.fill-camada-3{background:var(--camada-3)}
.fill-camada-4{background:var(--camada-4)}

/* Pílulas de fase coloridas por camada quando pendentes/atuais (mantém done verde) */
.fase-pill.camada-1{background:var(--camada-1-dim);color:var(--camada-1);border:0.5px solid var(--camada-1-border)}
.fase-pill.camada-2{background:var(--camada-2-dim);color:var(--camada-2);border:0.5px solid var(--camada-2-border)}
.fase-pill.camada-3{background:var(--camada-3-dim);color:var(--camada-3);border:0.5px solid var(--camada-3-border)}
.fase-pill.camada-4{background:var(--camada-4-dim);color:var(--camada-4);border:0.5px solid var(--camada-4-border)}
.fase-pill.done.camada-1,.fase-pill.done.camada-2,.fase-pill.done.camada-3,.fase-pill.done.camada-4{background:var(--green-dim);color:var(--green);border-color:rgba(29,185,122,.3)}

/* Fase-btn (na tela Matérias) */
.fase-btn.camada-1:not(.done){border-color:var(--camada-1-border);color:var(--camada-1)}
.fase-btn.camada-2:not(.done){border-color:var(--camada-2-border);color:var(--camada-2)}
.fase-btn.camada-3:not(.done){border-color:var(--camada-3-border);color:var(--camada-3)}
.fase-btn.camada-4:not(.done){border-color:var(--camada-4-border);color:var(--camada-4)}
.fase-btn.camada-1:not(.done):hover{background:var(--camada-1-dim)}
.fase-btn.camada-2:not(.done):hover{background:var(--camada-2-dim)}
.fase-btn.camada-3:not(.done):hover{background:var(--camada-3-dim)}
.fase-btn.camada-4:not(.done):hover{background:var(--camada-4-dim)}

/* Closure-fase-btn (no closure modal) */
.closure-fase-btn.camada-1:not(.done):not(.selected){background:var(--camada-1-dim);border-color:var(--camada-1-border);color:var(--camada-1)}
.closure-fase-btn.camada-2:not(.done):not(.selected){background:var(--camada-2-dim);border-color:var(--camada-2-border);color:var(--camada-2)}
.closure-fase-btn.camada-3:not(.done):not(.selected){background:var(--camada-3-dim);border-color:var(--camada-3-border);color:var(--camada-3)}
.closure-fase-btn.camada-4:not(.done):not(.selected){background:var(--camada-4-dim);border-color:var(--camada-4-border);color:var(--camada-4)}
.closure-fase-btn.camada-1:not(.done):not(.selected):hover{background:rgba(91,163,255,.24)}
.closure-fase-btn.camada-2:not(.done):not(.selected):hover{background:rgba(45,212,191,.24)}
.closure-fase-btn.camada-3:not(.done):not(.selected):hover{background:rgba(167,139,250,.24)}
.closure-fase-btn.camada-4:not(.done):not(.selected):hover{background:rgba(240,165,0,.24)}

/* Finish-fase-btn (no finish modal) */
.finish-fase-btn.camada-1:not(.done){border-color:var(--camada-1-border);color:var(--camada-1)}
.finish-fase-btn.camada-2:not(.done){border-color:var(--camada-2-border);color:var(--camada-2)}
.finish-fase-btn.camada-3:not(.done){border-color:var(--camada-3-border);color:var(--camada-3)}
.finish-fase-btn.camada-4:not(.done){border-color:var(--camada-4-border);color:var(--camada-4)}

/* Conteudo-status na tela Matérias (a pílula "Material atual" / "Resumo atual") */
.conteudo-status.progress.camada-1{background:var(--camada-1-dim);border-color:var(--camada-1-border);color:var(--camada-1)}
.conteudo-status.progress.camada-2{background:var(--camada-2-dim);border-color:var(--camada-2-border);color:var(--camada-2)}
.conteudo-status.progress.camada-3{background:var(--camada-3-dim);border-color:var(--camada-3-border);color:var(--camada-3)}
.conteudo-status.progress.camada-4{background:var(--camada-4-dim);border-color:var(--camada-4-border);color:var(--camada-4)}

/* Indicador de camada no Hero do Dashboard e Modo Estudo */
.camada-indicator{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:3px 10px;border-radius:6px;letter-spacing:.02em;border:0.5px solid;text-transform:none}
.camada-indicator.camada-1{background:var(--camada-1-dim);color:var(--camada-1);border-color:var(--camada-1-border)}
.camada-indicator.camada-2{background:var(--camada-2-dim);color:var(--camada-2);border-color:var(--camada-2-border)}
.camada-indicator.camada-3{background:var(--camada-3-dim);color:var(--camada-3);border-color:var(--camada-3-border)}
.camada-indicator.camada-4{background:var(--camada-4-dim);color:var(--camada-4);border-color:var(--camada-4-border)}
.camada-indicator-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
/* ============================== FIM BLOCO 12 ============================== */

/* MATÉRIAS V14 · centro de progresso */
.materias-command-center{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.mat-command-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:13px 15px;min-height:76px}
.mat-command-card-v2{display:flex;align-items:center;gap:14px;padding:18px 22px;min-height:90px;transition:.18s}
.mat-command-card-v2:hover{border-color:var(--border2);background:var(--bg3)}
.mat-command-card-icon{width:46px;height:46px;border-radius:11px;background:rgba(59,139,255,.1);border:0.5px solid rgba(59,139,255,.2);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.mat-command-card-body{flex:1;min-width:0}
.mat-command-label{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.mat-command-card-v2 .mat-command-label{font-size:10px;margin-bottom:4px}
.mat-command-card-v2 .mat-command-value{font-size:24px;margin-bottom:3px}
.mat-command-card-v2 .mat-command-sub{font-size:11px}
.mat-command-value{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--text);line-height:1}
.mat-command-value.blue{color:var(--blue)}.mat-command-value.green{color:var(--green)}.mat-command-value.amber{color:var(--amber)}.mat-command-value.red{color:var(--red)}
.mat-command-sub{font-size:10px;color:var(--text3);margin-top:5px;line-height:1.35}
.materias-toolbar{display:grid;grid-template-columns:1fr 180px 190px;gap:8px;margin-bottom:12px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:10px}
.materias-search,.materias-filter{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 11px;color:var(--text);font-size:12px;font-family:'DM Sans',sans-serif;outline:none}
.materias-search:focus,.materias-filter:focus{border-color:var(--blue-dim)}
.materias-search::placeholder{color:var(--text3)}
.materia-action-row{margin-top:10px;background:rgba(13,21,38,.55);border:0.5px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.materia-action-copy{min-width:0;flex:1}
.materia-action-kicker{font-size:9px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.materia-action-title{font-size:12px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.materia-action-sub{font-size:10px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.materia-action-btn{background:var(--blue);border:none;color:#fff;border-radius:8px;padding:8px 12px;font-size:11px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap}
.materia-action-btn:hover{background:var(--blue2);transform:translateY(-1px)}
.materia-action-btn.secondary{background:var(--bg3);color:var(--blue2);border:0.5px solid var(--blue-dim)}
.materia-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}
.materia-mini-stat{background:rgba(26,38,64,.52);border:0.5px solid var(--border);border-radius:7px;padding:6px 7px}
.materia-mini-label{font-size:8.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.materia-mini-value{font-size:11px;color:var(--text2);font-weight:600}
.materia-mini-value.done{color:var(--green)}
.conteudo-item.v14{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px}
.conteudo-status{font-size:9px;padding:3px 7px;border-radius:6px;border:0.5px solid var(--border2);color:var(--text3);white-space:nowrap}
.conteudo-status.done{background:var(--green-dim);border-color:rgba(29,185,122,.3);color:var(--green)}
.conteudo-status.progress{background:rgba(59,139,255,.10);border-color:var(--blue-dim);color:var(--blue2)}
.conteudo-next-line{font-size:10px;color:var(--text3);margin-top:4px}
.conteudo-study-btn{background:transparent;border:0.5px solid var(--blue-dim);color:var(--blue2);border-radius:7px;padding:6px 10px;font-size:10px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap}
.conteudo-study-btn:hover{background:var(--blue-glow);color:var(--text)}
.fase-btn.suggested{border-color:var(--blue);color:var(--blue2);background:rgba(59,139,255,.08)}
.materia-card.complete{border-color:rgba(29,185,122,.22)}
@media(max-width:900px){.materias-command-center{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.materias-toolbar{grid-template-columns:1fr}.materia-action-row{align-items:flex-start;flex-direction:column}.materia-action-btn{width:100%}.materia-mini-stats{grid-template-columns:1fr 1fr}.conteudo-item.v14{grid-template-columns:22px 1fr}.conteudo-study-btn{grid-column:2;width:100%}}
/* MATÉRIAS V15 · gestão de matérias/conteúdos */
.materias-toolbar.v15{grid-template-columns:1fr 180px 190px auto auto;align-items:center}
.materias-add-btn{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:9px 13px;font-size:12px;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:.15s}
.materias-add-btn:hover{background:var(--blue2);transform:translateY(-1px)}
.materia-add-content-row{margin-top:10px;padding:10px 0 2px;display:flex;justify-content:flex-end;border-top:0.5px solid rgba(30,46,74,.45)}
.materia-add-content-btn{background:var(--bg3);color:var(--blue2);border:0.5px solid var(--blue-dim);border-radius:8px;padding:7px 12px;font-size:11px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.materia-add-content-btn:hover{background:var(--blue-glow);color:var(--text)}
.materia-manager-modal{position:fixed;inset:0;background:rgba(8,14,28,.88);display:flex;align-items:center;justify-content:center;z-index:350}
.materia-manager-modal.is-hidden{display:none!important;pointer-events:none!important}
.materia-manager-box{background:linear-gradient(135deg,#0D1A2E 0%,#0F2240 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:16px;padding:24px 28px;width:560px;max-width:95vw;box-shadow:0 24px 70px rgba(0,0,0,.55);position:relative}
.materia-manager-eyebrow{font-size:10px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.materia-manager-title{font-family:'Syne',sans-serif;font-size:21px;font-weight:700;color:var(--text);margin-bottom:5px}
.materia-manager-sub{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:18px}
.materia-importance-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.materia-importance-btn{background:var(--bg3);border:0.5px solid var(--border2);border-radius:12px;padding:14px 10px;cursor:pointer;transition:.16s;text-align:center;color:var(--text3);font-family:'DM Sans',sans-serif}
.materia-importance-btn:hover{border-color:var(--blue-dim);transform:translateY(-1px)}
.materia-importance-btn.active.principal{background:rgba(59,139,255,.12);border-color:var(--blue);color:var(--blue2)}
.materia-importance-btn.active.importante{background:rgba(29,185,122,.10);border-color:var(--green);color:var(--green)}
.materia-importance-btn.active.complementar{background:rgba(240,165,0,.10);border-color:var(--amber);color:var(--amber)}
.materia-importance-icon{font-size:24px;margin-bottom:6px}
.materia-importance-label{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;margin-bottom:2px}
.materia-importance-desc{font-size:10px;opacity:.75}
.materia-manager-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}
.materia-manager-cancel{background:transparent;color:var(--text2);border:0.5px solid var(--border2);border-radius:8px;padding:10px 14px;font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer}
.materia-manager-save{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:10px 18px;font-size:13px;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer}
.materia-manager-save:hover{background:var(--blue2)}
@media(max-width:900px){.materias-toolbar.v15{grid-template-columns:1fr}.materia-importance-row{grid-template-columns:1fr}.materias-add-btn{width:100%}}


/* ============================== BLOCO 17 · TELA CICLO RENOVADA ============================== */
/* Hero de progresso */
/* ╔══════════════════════════════════════════════════════════════════╗
   ║  SRS DE MATÉRIAS · Painéis da view-ciclo (fila viva)            ║
   ╚══════════════════════════════════════════════════════════════════╝ */
.srs-mat-panel{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:18px 20px;margin-bottom:14px}
.srs-mat-panel-head{margin-bottom:14px}
.srs-mat-panel-title{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;line-height:1.2}
.srs-mat-panel-sub{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.4}
.srs-mat-info-wrap{position:relative;display:inline-flex;align-items:center;cursor:help;outline:none}
.srs-mat-info-icon{color:var(--text3);opacity:.7}
.srs-mat-info-wrap:hover .srs-mat-info-icon,.srs-mat-info-wrap:focus .srs-mat-info-icon{opacity:1;color:var(--blue2)}
.srs-mat-info-tooltip{position:absolute;top:calc(100% + 6px);left:0;z-index:60;width:330px;background:rgba(10,18,32,.97);border:0.5px solid var(--border2);border-radius:10px;padding:12px 14px;font-size:11px;line-height:1.55;color:var(--text2);box-shadow:0 8px 28px rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:.18s;pointer-events:none}
.srs-mat-info-tooltip strong{color:var(--text);display:block;margin-bottom:6px;font-size:12px}
.srs-mat-info-tooltip .srs-info-line{display:block;margin-top:4px}
.srs-mat-info-wrap:hover .srs-mat-info-tooltip,.srs-mat-info-wrap:focus .srs-mat-info-tooltip{opacity:1;visibility:visible}

/* Painel A: Fila viva */
.srs-mat-fila-list{display:flex;flex-direction:column;gap:8px}
/* Gráfico de rosca · progresso da rodada do ciclo (matérias estudadas / matérias ativas) */
.ciclo-rosca-wrap{display:flex;align-items:center;gap:16px;padding:12px 14px;margin-bottom:14px;background:var(--bg3);border:0.5px solid var(--border);border-radius:10px}
.ciclo-rosca-wrap.is-empty{display:none}
/* Aviso de sobrecarga do ciclo · aparece acima da rosca */
.ciclo-sobrecarga-aviso{padding:12px 14px;margin-bottom:12px;background:linear-gradient(135deg,rgba(240,165,0,.12),rgba(240,165,0,.04));border:0.5px solid rgba(240,165,0,.35);border-left:3px solid var(--amber);border-radius:10px;display:flex;flex-direction:column;gap:10px}
.ciclo-sobrecarga-head{display:flex;align-items:center;gap:9px}
.ciclo-sobrecarga-icon{font-size:18px;line-height:1;flex-shrink:0}
.ciclo-sobrecarga-title{flex:1;font-size:13px;font-weight:600;color:var(--text);line-height:1.35}
.ciclo-sobrecarga-desc{font-size:11px;color:var(--text2);line-height:1.5}
.ciclo-sobrecarga-desc strong{color:var(--text)}
.ciclo-sobrecarga-acoes{display:flex;gap:8px;flex-wrap:wrap}
.ciclo-sobrecarga-btn-primary{background:var(--amber);color:#000;border:none;padding:7px 14px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.ciclo-sobrecarga-btn-primary:hover{filter:brightness(1.1);box-shadow:0 3px 10px rgba(240,165,0,.25)}
.ciclo-sobrecarga-btn-skip{background:transparent;color:var(--text3);border:0.5px solid var(--border2);padding:7px 14px;border-radius:7px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.ciclo-sobrecarga-btn-skip:hover{color:var(--text2);border-color:var(--border)}
.ciclo-rosca-svg{flex-shrink:0;display:block}
.ciclo-rosca-track{stroke:rgba(255,255,255,.07)}
/* Cores da rosca mudam por progresso, controladas via classes no SVG */
.ciclo-rosca-fill{transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1), stroke .4s}
.ciclo-rosca-fill.p-low{stroke:var(--blue)}
.ciclo-rosca-fill.p-mid{stroke:var(--green)}
.ciclo-rosca-fill.p-high{stroke:var(--amber)}
.ciclo-rosca-fill.p-done{stroke:var(--green)}
.ciclo-rosca-center{font-family:'Syne',sans-serif;font-weight:700;fill:var(--text)}
.ciclo-rosca-pct{font-size:14px}
.ciclo-rosca-frac{font-size:10px;fill:var(--text3);font-weight:600}
.ciclo-rosca-info{flex:1;min-width:0;line-height:1.4}
.ciclo-rosca-rod-num{font-size:10px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.ciclo-rosca-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.ciclo-rosca-desc{font-size:11px;color:var(--text3);line-height:1.45}
@media(max-width:600px){
  .ciclo-rosca-wrap{gap:12px;padding:10px 12px}
  .ciclo-rosca-svg{width:64px;height:64px}
}
.srs-mat-fila-item{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:12px 14px;background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;transition:.18s;cursor:pointer}
.srs-mat-fila-item:hover{transform:translateX(2px);border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.srs-mat-fila-rank{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--blue2);text-align:center;line-height:1}
.srs-mat-fila-rank.urgente{color:var(--red)}
.srs-mat-fila-body{min-width:0}
.srs-mat-fila-nome{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;line-height:1.2;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.srs-mat-fila-meta{font-size:10px;color:var(--text3);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.srs-mat-fila-meta .srs-tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:5px;font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.srs-tag.cam-1{background:rgba(59,139,255,.15);color:var(--blue2)}
.srs-tag.cam-2{background:rgba(29,185,122,.13);color:var(--green)}
.srs-tag.cam-3{background:rgba(240,165,0,.15);color:var(--amber)}
.srs-tag.cam-4{background:rgba(139,89,255,.15);color:#a78bfa}
.srs-tag.imp-principal{background:rgba(59,139,255,.13);color:var(--blue2)}
.srs-tag.imp-importante{background:rgba(29,185,122,.13);color:var(--green)}
.srs-tag.imp-complementar{background:rgba(240,165,0,.13);color:var(--amber)}
.srs-mat-fila-when{font-size:11px;color:var(--text2);font-weight:500;text-align:right;line-height:1.3;min-width:120px}
.srs-mat-fila-when.urgente{color:var(--red);font-weight:600}
.srs-mat-fila-when.novo{color:var(--blue2);font-weight:600}
.srs-mat-fila-actions{display:flex;gap:6px}
.srs-mat-action-btn{background:transparent;border:0.5px solid var(--border2);color:var(--text3);font-size:11px;padding:5px 9px;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.srs-mat-action-btn:hover{background:var(--bg4);color:var(--text);border-color:var(--border)}
.srs-mat-action-btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.srs-mat-action-btn.primary:hover{background:var(--blue2);color:#fff}
.srs-mat-fila-empty{padding:24px 12px;text-align:center;font-size:12px;color:var(--text3);font-style:italic}

/* Painel B: 4 camadas */
.srs-mat-camadas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.srs-mat-camada-box{background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:12px;min-height:140px;display:flex;flex-direction:column;gap:8px}
.srs-mat-camada-box.cam-1{border-left:3px solid var(--blue2)}
.srs-mat-camada-box.cam-2{border-left:3px solid var(--green)}
.srs-mat-camada-box.cam-3{border-left:3px solid var(--amber)}
.srs-mat-camada-box.cam-4{border-left:3px solid #a78bfa}
.srs-mat-camada-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:2px}
.srs-mat-camada-num{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text)}
.srs-mat-camada-count{font-size:11px;color:var(--text3);font-weight:600}
.srs-mat-camada-nome{font-size:10px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.srs-mat-camada-list{display:flex;flex-direction:column;gap:4px;flex:1}
.srs-mat-camada-pill{font-size:11px;color:var(--text2);background:var(--bg4);padding:5px 8px;border-radius:6px;line-height:1.3;border:0.5px solid transparent}
.srs-mat-camada-pill.standby{opacity:.55;font-style:italic}
.srs-mat-camada-pill.pausada{opacity:.55;text-decoration:line-through}
.srs-mat-camada-empty{font-size:10px;color:var(--text3);font-style:italic;padding:8px 4px;text-align:center}

/* Painel C: Standby */
.srs-mat-sugestao{background:rgba(59,139,255,.08);border:0.5px solid var(--blue-dim);border-radius:10px;padding:12px 14px;margin-bottom:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.srs-mat-sugestao-text{flex:1;min-width:200px;font-size:12px;color:var(--text2);line-height:1.4}
.srs-mat-sugestao-text strong{color:var(--blue2)}
.srs-mat-standby-list{display:flex;flex-direction:column;gap:6px}
.srs-mat-standby-item{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 12px;background:var(--bg3);border:0.5px solid var(--border);border-radius:8px}
.srs-mat-standby-item.pausada{border-style:dashed;opacity:.75}
.srs-mat-standby-nome{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.srs-mat-standby-actions{display:flex;gap:6px}
.srs-mat-standby-empty{padding:14px 8px;text-align:center;font-size:11px;color:var(--text3);font-style:italic}

/* Botão "rebaixar ao ciclo" · ao lado do "▶ Estudar" na fila viva */
.srs-mat-action-btn.demote{background:transparent;border:0.5px solid var(--border2);color:var(--text3);padding:5px 9px;border-radius:6px;font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;display:inline-flex;align-items:center;gap:4px}
.srs-mat-action-btn.demote:hover{color:var(--amber);border-color:rgba(240,165,0,.4);background:rgba(240,165,0,.06)}

/* ==== EDITAL PILLS (informativos) ====
   Mostram a qual(is) edital(is) uma matéria ou conteúdo pertence. Pequenos,
   discretos, sem funcionalidade · só dão contexto. */
.edital-pill-mini{display:inline-flex;align-items:center;gap:4px;font-size:9px;padding:2px 7px;border-radius:5px;font-weight:600;letter-spacing:.02em;background:rgba(255,255,255,.04);border:0.5px solid var(--border2);color:var(--text3);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;line-height:1.3;cursor:default}
.edital-pill-mini .edital-pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;display:inline-block}
.edital-pill-mini.is-foco{border-color:rgba(59,139,255,.35);color:var(--blue2);background:rgba(59,139,255,.08)}
.edital-pill-mini.is-foco .edital-pill-dot{background:var(--blue2)}
.edital-pill-mini.multi{background:rgba(167,139,250,.08);border-color:rgba(167,139,250,.3);color:#a78bfa}
.edital-pill-mini.multi .edital-pill-dot{background:#a78bfa}
.edital-pills-wrap{display:inline-flex;gap:4px;flex-wrap:wrap;align-items:center;vertical-align:middle}
.conteudo-edital-pill{font-size:8px;padding:1px 5px;border-radius:4px;font-weight:600;letter-spacing:.02em;background:rgba(255,255,255,.04);border:0.5px solid var(--border2);color:var(--text3);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;line-height:1.3;display:inline-flex;align-items:center;gap:3px}
.conteudo-edital-pill .conteudo-edital-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;display:inline-block}

/* ==== ABAS de Matérias: Ativas vs Suspensas ==== */
.materias-tabs{display:flex;gap:4px;margin:14px 0 10px;border-bottom:0.5px solid var(--border);padding:0 0 0 2px}
.materias-tab{background:transparent;border:none;color:var(--text3);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;padding:9px 14px 11px;cursor:pointer;border-bottom:2px solid transparent;transition:.15s;letter-spacing:.01em;display:inline-flex;align-items:center;gap:6px}
.materias-tab:hover{color:var(--text2)}
.materias-tab.active{color:var(--text);border-bottom-color:var(--blue)}
.materias-tab .materias-tab-count{font-size:10px;padding:1px 7px;border-radius:99px;background:rgba(255,255,255,.06);color:var(--text3);font-weight:600;min-width:18px;text-align:center;letter-spacing:0}
.materias-tab.active .materias-tab-count{background:rgba(59,139,255,.15);color:var(--blue2)}

/* Estilo da matéria em suspensão na aba "Suspensas" · apagada, com banner próprio */
.materia-card.suspensa{opacity:.62;border-style:dashed}
.materia-card.suspensa:hover{opacity:.78}
.materia-card.suspensa::before{background:var(--text3) !important}
.materia-card.suspensa .materia-nome{color:var(--text2)}
.suspensa-banner{display:flex;align-items:center;gap:10px;padding:8px 16px;background:rgba(255,255,255,.03);border-top:0.5px solid var(--border);border-bottom:0.5px solid var(--border);font-size:11px;color:var(--text3);font-style:italic}
.suspensa-banner-icon{font-size:14px;flex-shrink:0;font-style:normal}
.suspensa-banner-text{flex:1;line-height:1.4}
.suspensa-banner-btn{background:var(--blue);color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;flex-shrink:0;font-style:normal}
.suspensa-banner-btn:hover{background:var(--blue2);box-shadow:0 2px 8px rgba(0,0,0,.3)}
/* ==== Import Deck Banner · questões inéditas Resumos 360 prontas para a matéria ==== */
.import-deck-banner{display:flex;align-items:center;gap:12px;padding:12px 14px;background:transparent;border:0.5px solid rgba(59,139,255,.25);border-radius:10px;margin:10px 14px 6px}
.import-deck-banner-icon{font-size:20px;flex-shrink:0;line-height:1}
.import-deck-banner-text{flex:1;line-height:1.4;min-width:0}
.import-deck-banner-title{font-size:12px;color:var(--text)}
.import-deck-banner-title strong{color:var(--blue2);font-weight:600}
.import-deck-banner-sub{font-size:10px;color:var(--text3);margin-top:2px}
.import-deck-banner-actions{display:flex;gap:6px;flex-shrink:0}
.import-deck-banner-btn{font-size:11px;padding:6px 10px;border-radius:6px;border:0.5px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;font-weight:500}
.import-deck-banner-btn:hover{background:var(--bg4)}
.import-deck-banner-btn.primary{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600}
.import-deck-banner-btn.primary:hover{background:var(--blue2);box-shadow:0 2px 8px rgba(0,0,0,.3)}
/* ==== Disponíveis pra você · decks Resumos 360 prontos pra ativar (Caderno V2) ==== */
.cad2-available-decks{margin:14px 0;padding:14px 14px 10px;background:transparent;border:0.5px solid rgba(59,139,255,.2);border-radius:var(--r2)}
.cad2-available-header{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.cad2-available-header-text{font-size:12px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.05em}
.cad2-available-header-sub{font-size:10px;color:var(--text3);font-weight:500}
.cad2-available-card{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);margin-bottom:6px;transition:.15s}
.cad2-available-card:last-child{margin-bottom:0}
.cad2-available-card:hover{border-color:var(--blue-dim)}
.cad2-available-icon{font-size:22px;flex-shrink:0;line-height:1}
.cad2-available-info{flex:1;min-width:0;line-height:1.4}
.cad2-available-title{font-size:13px;color:var(--text);font-weight:600}
.cad2-available-desc{font-size:11px;color:var(--text3);margin-top:2px}
.cad2-available-meta{font-size:10px;color:var(--text2);margin-top:4px;font-weight:500}
.cad2-available-btn{flex-shrink:0;padding:8px 14px;background:var(--blue);color:#fff;border:none;border-radius:6px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
.cad2-available-btn:hover{background:var(--blue2);box-shadow:0 2px 8px rgba(0,0,0,.3)}
@media(max-width:600px){
  .cad2-available-card{flex-direction:column;align-items:stretch}
  .cad2-available-btn{align-self:flex-end}
}
@media(max-width:600px){
  .import-deck-banner{flex-direction:column;align-items:stretch;gap:8px}
  .import-deck-banner-actions{justify-content:flex-end}
}
.suspensa-tab-empty{padding:30px 20px;text-align:center;color:var(--text3);font-size:13px;background:var(--bg2);border:0.5px dashed var(--border2);border-radius:12px;margin-top:8px}
.suspensa-tab-empty-icon{font-size:32px;margin-bottom:8px;opacity:.5}
.suspensa-tab-empty-title{color:var(--text2);font-size:13px;font-weight:500;margin-bottom:4px}
.suspensa-tab-empty-sub{color:var(--text3);font-size:11px;line-height:1.5}

/* Botão "suspender matéria" · entre lápis e lixeira no card */
.materia-card-v2 .materia-suspend-btn{color:var(--text3)}
.materia-card-v2 .materia-suspend-btn:hover{background:rgba(167,139,250,.12);border-color:rgba(167,139,250,.35);color:#a78bfa}

/* ==== Modal de rebaixamento · barra de rolagem para listas longas ====
   Apenas no modal de rebaixar. Os outros .commit-modal (commit-start, etc)
   mantêm o layout original. */
#rebaixar-modal #rebaixar-list{max-height:42vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
#rebaixar-modal #rebaixar-list::-webkit-scrollbar{width:6px}
#rebaixar-modal #rebaixar-list::-webkit-scrollbar-track{background:transparent}
#rebaixar-modal #rebaixar-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
#rebaixar-modal #rebaixar-list::-webkit-scrollbar-thumb:hover{background:var(--text3)}
/* O box do modal de rebaixar (commit-box) limita altura e força barra de rolagem
   externa se necessário. A faixa de ações fica fixa no final. */
#rebaixar-modal .commit-box{max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
#rebaixar-modal .commit-section{flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column;min-height:0}
#rebaixar-modal .commit-section #rebaixar-list{flex:1 1 auto;min-height:0}
#rebaixar-modal .commit-actions{flex-shrink:0;padding-top:10px;background:linear-gradient(180deg,transparent 0%,#0F2240 30%);position:sticky;bottom:0;margin-top:auto;z-index:2}

/* ==== Flashcard · barra de rolagem para perguntas/respostas extensas ====
   .fc-review-pergunta usa display:flex + align-items:center (centraliza vertical).
   Pra texto longo + scroll funcionar, mudamos pra block + flex inline com align-self
   no conteúdo. Aqui forçamos overflow-y:auto e max-height. Quando o conteúdo
   é curto, ele se ajusta naturalmente; quando excede, a barra aparece. */
.fc-review-pergunta{overflow-y:auto;max-height:240px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent;align-items:flex-start;padding-top:14px}
.fc-review-pergunta::-webkit-scrollbar{width:6px}
.fc-review-pergunta::-webkit-scrollbar-track{background:transparent}
.fc-review-pergunta::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:3px}
.fc-review-pergunta::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.35)}
.cad2-fs-card-pergunta{overflow-y:auto;max-height:260px;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.18) transparent;align-items:flex-start;padding-top:14px}
.cad2-fs-card-pergunta::-webkit-scrollbar{width:6px}
.cad2-fs-card-pergunta::-webkit-scrollbar-track{background:transparent}
.cad2-fs-card-pergunta::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18);border-radius:3px}
.cad2-fs-card-pergunta::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.3)}
.cad2-fs-card-typing .cad2-fs-card-pergunta{max-height:160px}
@media(max-width:720px){
  .fc-review-pergunta{max-height:180px}
  .cad2-fs-card-pergunta{max-height:200px}
}

/* ==== Flashcard · botão "Digitar" ao lado do "Ver resposta" ==== */
.fc-review-action-wrap{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:4px;flex-wrap:wrap}
.fc-mode-toggle-btn{background:transparent;color:#374151;border:1.5px solid #D1D5DB;border-radius:10px;padding:13px 22px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px;letter-spacing:.01em}
.fc-mode-toggle-btn:hover{background:#F3F4F6;border-color:#9CA3AF;color:#1F2937;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.fc-mode-toggle-btn:active{transform:translateY(0)}
.fc-mode-toggle-btn .fc-mode-toggle-icon{font-size:16px}

/* ==== Admin: botão "Entrar como aluno" ==== */
.adm-btn.impersonate{background:transparent;color:#a78bfa;border:0.5px solid rgba(167,139,250,.35);margin-right:6px}
.adm-btn.impersonate:hover{background:rgba(167,139,250,.12);border-color:rgba(167,139,250,.5)}

/* ==== Banner "Modo Mentoria" · fica fixo no topo durante o impersonate ==== */
.mentor-banner{position:fixed;top:0;left:0;right:0;z-index:9999;background:linear-gradient(90deg,#A78BFA 0%,#7C3AED 100%);color:#fff;padding:10px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 4px 16px rgba(0,0,0,.3);font-family:'DM Sans',sans-serif;flex-wrap:wrap}
/* No Modo Mentoria, esconde a caixa de login do canto direito (z-index 9998) que
   cobria o botão "Salvar". Você sai do modo pelo "↩ Sair" do próprio banner. */
body.mentor-mode .auth-box{display:none!important}
/* No runner de Questões (modo foco), a caixa de login (top-right, z-index 9998) ficava
   POR CIMA do contador de questões (✓/✗/pulou) e não dava pra tirar. Esconde durante o
   runner; volta ao finalizar/sair/trocar de tela (classe gerida no JS do runner). */
body.qst-focus .auth-box{display:none!important}
/* 🔴 FOCO DE VERDADE DURANTE O RUNNER · 24/08/2026.
   Medido: em volta da MESMA questão, o site tinha 11 itens de navegação e o
   Planner tem 30 (11 da barra do módulo + 19 da lateral do app). Aluna que veio
   do site: "preferia a mais simples, muita informação buga a minha mente".
   Enquanto ela responde, a lateral sai. Fechou o runner, volta.

   ⚠️ De propósito no `qst-focus` e NÃO no `nav-collapsed`: o incidente da Andressa
   (04/08) foi justamente esconder navegação com estado GLOBAL e PERSISTIDO, cuja
   única saída vivia numa tela temporária — ela ficou sem menu. `qst-focus` não é
   gravado, sai sozinho ao fechar o runner, e a saída é o próprio botão de sair,
   que fica sempre à vista. Recarregar também devolve tudo. Não dá pra prender
   ninguém aqui.

   No celular a lateral já é gaveta, então só vale de 769px pra cima. */
@media(min-width:769px){
  body.qst-focus .sidebar{display:none}
  body.qst-focus .app{grid-template-columns:1fr}
}
.mentor-banner-icon{font-size:20px;flex-shrink:0}
.mentor-banner-text{flex:1;font-size:13px;line-height:1.4;min-width:0}
.mentor-banner-text strong{font-weight:700}
.mentor-banner-email{opacity:.85;font-size:11px;display:block;margin-top:1px}
.mentor-banner-exit{background:rgba(0,0,0,.25);color:#fff;border:0.5px solid rgba(255,255,255,.35);border-radius:8px;padding:7px 14px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;flex-shrink:0}
.mentor-banner-exit:hover{background:rgba(0,0,0,.4);border-color:rgba(255,255,255,.55)}
body.mentor-mode{padding-top:48px}

/* ==== Banner de aviso "sync falhou" · protege contra zerar dados ==== */
/* Aparece no topo quando fetchUserState falhou e o app NÃO conseguiu confirmar
   o state da nuvem. Enquanto visível, pushUserState está BLOQUEADO pra não
   sobrescrever o backup remoto com state vazio (causa do incidente 28/05/2026).
   z-index alto pra ficar por cima de tudo, inclusive modal mentor. */
.sync-warn-banner{position:fixed;top:0;left:0;right:0;z-index:1600;background:linear-gradient(90deg,#7C2D12 0%,#B91C1C 100%);color:#FFF;padding:10px 18px;display:flex;align-items:center;gap:12px;box-shadow:0 4px 16px rgba(0,0,0,.35);font-family:'DM Sans',sans-serif;font-size:13px;line-height:1.4}
.sync-warn-banner-icon{font-size:18px;flex-shrink:0}
.sync-warn-banner-text{flex:1;min-width:0}
.sync-warn-banner-text strong{font-weight:700}
.sync-warn-banner-sub{opacity:.85;font-size:11px;display:block;margin-top:1px}
.sync-warn-banner-btn{background:rgba(0,0,0,.25);color:#FFF;border:0.5px solid rgba(255,255,255,.4);border-radius:7px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;flex-shrink:0;white-space:nowrap}
.sync-warn-banner-btn:hover{background:rgba(0,0,0,.4);border-color:rgba(255,255,255,.6)}
body.sync-warn-visible{padding-top:48px}
body.sync-warn-visible.mentor-mode{padding-top:96px}
body.sync-warn-visible.mentor-mode .mentor-banner{top:48px}

/* "Recalcular ou manter ciclo" · modal após adicionar edital com novas matérias */
.post-add-edital-banner{padding:14px 16px;background:var(--bg2);border:0.5px solid var(--blue-dim);border-radius:11px;display:flex;flex-direction:column;gap:10px;margin:12px 0}
.post-add-edital-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.4}
.post-add-edital-desc{font-size:11.5px;color:var(--text2);line-height:1.5}
.post-add-edital-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.post-add-edital-btn{padding:8px 14px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;border:none;flex:1;min-width:180px}
.post-add-edital-btn.primary{background:var(--blue);color:#fff}
.post-add-edital-btn.primary:hover{background:var(--blue2);box-shadow:0 3px 10px rgba(0,0,0,.3)}
.post-add-edital-btn.ghost{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.post-add-edital-btn.ghost:hover{color:var(--text);border-color:var(--blue-dim);background:rgba(59,139,255,.06)}

/* Toggle do ciclo legado · removido (Opção B) */

/* ==== Ajuste fino de camadas por conteúdo ====
   Pequeno botão "📐" em cada conteúdo (no card expandido). Abre um modal com
   4 checkboxes · uma por camada · permitindo o usuário marcar/desmarcar
   livremente. Útil quando avança por engano e quer voltar a uma camada
   anterior sem ter que mexer linha-por-linha. */
.materia-card-v2 .conteudo-camadas-btn{height:22px;border-radius:5px;background:transparent;border:0.5px solid rgba(167,139,250,.22);color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:0 7px;transition:.15s;opacity:.7;flex-shrink:0;font-size:11px}
.materia-card-v2 .conteudo-camadas-btn .ccb-lbl{font-size:10px;font-weight:600;letter-spacing:.01em}
.materia-card-v2 .conteudo-item-clean:hover .conteudo-camadas-btn{opacity:.85}
.materia-card-v2 .conteudo-camadas-btn:hover{background:rgba(167,139,250,.12);border-color:rgba(167,139,250,.35);color:#a78bfa;opacity:1}

/* Modal */
.cam-edit-modal{position:fixed;inset:0;background:rgba(8,14,28,.88);display:none;align-items:center;justify-content:center;z-index:300;padding:14px}
.cam-edit-modal.show{display:flex}
.cam-edit-box{background:linear-gradient(135deg,#0D1A2E 0%,#0F2240 100%);border:0.5px solid rgba(167,139,250,.3);border-radius:14px;padding:22px 24px;width:440px;max-width:100%;max-height:92vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.cam-edit-eyebrow{font-size:10px;font-weight:700;color:#a78bfa;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.cam-edit-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#a78bfa}
.cam-edit-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:4px;line-height:1.3}
.cam-edit-sub{font-size:12px;color:var(--text3);line-height:1.5;margin-bottom:14px}
.cam-edit-sub strong{color:var(--text2)}
.cam-edit-context{background:rgba(13,21,38,.5);border:0.5px solid var(--border);border-radius:9px;padding:10px 12px;margin-bottom:14px;font-size:11px;color:var(--text2);line-height:1.5}
.cam-edit-context-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cam-edit-context-row .l{color:var(--text3);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;flex-shrink:0}
.cam-edit-context-row .v{color:var(--text);font-size:12px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cam-edit-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.cam-edit-row{display:flex;align-items:center;gap:11px;padding:11px 13px;background:var(--bg2);border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:.15s;user-select:none}
.cam-edit-row:hover{background:var(--bg3);border-color:var(--border2)}
.cam-edit-row.checked{background:rgba(59,139,255,.06);border-color:var(--blue-dim)}
.cam-edit-row.checked.cam-c1{background:rgba(91,163,255,.07);border-color:var(--camada-1-border)}
.cam-edit-row.checked.cam-c2{background:rgba(29,185,122,.07);border-color:var(--camada-2-border)}
.cam-edit-row.checked.cam-c3{background:rgba(240,165,0,.07);border-color:var(--camada-3-border)}
.cam-edit-row.checked.cam-c4{background:rgba(139,89,255,.07);border-color:var(--camada-4-border)}
.cam-edit-check{width:20px;height:20px;border-radius:5px;border:1.5px solid var(--border2);background:transparent;flex-shrink:0;position:relative;transition:.15s;display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:transparent;font-weight:800}
.cam-edit-row.checked .cam-edit-check{background:var(--blue);border-color:var(--blue);color:#fff}
.cam-edit-row.checked.cam-c1 .cam-edit-check{background:var(--camada-1);border-color:var(--camada-1)}
.cam-edit-row.checked.cam-c2 .cam-edit-check{background:var(--camada-2);border-color:var(--camada-2)}
.cam-edit-row.checked.cam-c3 .cam-edit-check{background:var(--camada-3);border-color:var(--camada-3)}
.cam-edit-row.checked.cam-c4 .cam-edit-check{background:var(--camada-4);border-color:var(--camada-4)}
.cam-edit-info{flex:1;min-width:0}
.cam-edit-info-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.3}
.cam-edit-info-sub{font-size:10.5px;color:var(--text3);margin-top:2px;line-height:1.4}
.cam-edit-info-current{font-size:9px;color:var(--blue2);font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin-left:auto;flex-shrink:0;background:rgba(59,139,255,.1);padding:2px 7px;border-radius:5px;border:0.5px solid var(--blue-dim)}
.cam-edit-hint{background:rgba(167,139,250,.06);border:0.5px solid rgba(167,139,250,.2);border-radius:8px;padding:9px 12px;font-size:11px;color:var(--text2);line-height:1.5;margin-bottom:14px;display:flex;gap:8px;align-items:flex-start}
.cam-edit-hint-icon{font-size:13px;flex-shrink:0;line-height:1.2}
.cam-edit-hint strong{color:var(--text)}
.cam-edit-actions{display:flex;gap:8px;justify-content:flex-end;position:sticky;bottom:0;margin:14px -24px -22px;padding:12px 24px 22px;background:linear-gradient(180deg,rgba(15,34,64,0),#0F2240 32%);z-index:2}
.cam-edit-btn{padding:9px 16px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;border:none}
.cam-edit-btn.ghost{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.cam-edit-btn.ghost:hover{color:var(--text);border-color:var(--text3)}
.cam-edit-btn.primary{background:#a78bfa;color:#fff}
.cam-edit-btn.primary:hover{background:#9269f7;box-shadow:0 3px 10px rgba(167,139,250,.35)}

/* ═══════════════════════════════════════════════════════════════════
   ESTUDO LIVRE · tipo de edital sem data de prova, com matérias
   escolhidas livremente pelo aluno via checklist do catálogo.
   Os cards usam paleta verde (em vez de azul/foco) pra diferenciar
   visualmente do edital "real" com prova marcada.
   ═══════════════════════════════════════════════════════════════════ */

/* Modal "Como quer adicionar?" · bifurcação edital vs estudo livre */
.add-chooser-wrap{display:flex;flex-direction:column;gap:10px}
.add-chooser-head{margin-bottom:6px}
.add-chooser-title{font-family:'Syne',sans-serif;font-size:19px;font-weight:700;color:var(--text);line-height:1.25;margin-bottom:6px}
.add-chooser-sub{font-size:12.5px;color:var(--text2);line-height:1.55}
.add-chooser-card{display:flex;gap:14px;padding:16px 16px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:.18s;text-align:left;width:100%;font-family:'DM Sans',sans-serif;align-items:flex-start;color:inherit}
.add-chooser-card:hover{border-color:var(--blue-dim);background:rgba(59,139,255,.05);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.2)}
.add-chooser-card.livre:hover{border-color:rgba(29,185,122,.4);background:rgba(29,185,122,.05);box-shadow:0 4px 14px rgba(29,185,122,.15)}
.add-chooser-icon{width:42px;height:42px;border-radius:10px;background:rgba(59,139,255,.12);display:inline-flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;border:0.5px solid var(--blue-dim)}
.add-chooser-card.livre .add-chooser-icon{background:rgba(29,185,122,.1);border-color:rgba(29,185,122,.3)}
.add-chooser-body{flex:1;min-width:0}
.add-chooser-card-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:4px}
.add-chooser-card-sub{font-size:11.5px;color:var(--text3);line-height:1.5}
.add-chooser-card-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.add-chooser-tag{font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:4px;background:rgba(255,255,255,.04);color:var(--text3);border:0.5px solid var(--border2);letter-spacing:.02em}
.add-chooser-tag.green{background:rgba(29,185,122,.08);color:var(--green);border-color:rgba(29,185,122,.3)}
.add-chooser-tag.blue{background:rgba(59,139,255,.08);color:var(--blue2);border-color:var(--blue-dim)}

/* Modal de criação do Estudo Livre · header + name input + checklist + footer */
.livre-create-wrap{display:flex;flex-direction:column;gap:14px;max-height:84vh}
.livre-create-head{flex-shrink:0}
.livre-create-eyebrow{font-size:10px;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;display:inline-flex;align-items:center;gap:6px}
.livre-create-eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block}
.livre-create-title{font-family:'Syne',sans-serif;font-size:21px;font-weight:700;color:var(--text);line-height:1.25;margin-bottom:6px}
.livre-create-sub{font-size:12px;color:var(--text3);line-height:1.55}
.livre-name-row{display:flex;flex-direction:column;gap:6px}
.livre-name-label{font-size:10.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.livre-name-input{padding:11px 13px;background:var(--bg);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:14px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s}
.livre-name-input:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(29,185,122,.1)}

.livre-search-row{display:flex;gap:8px;align-items:center}
.livre-search-input{flex:1;padding:9px 12px 9px 32px;background:var(--bg);border:1px solid var(--border);border-radius:9px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='6' cy='6' r='4' stroke='%237B8AAA' stroke-width='1.4'/%3E%3Cpath d='M9 9l3 3' stroke='%237B8AAA' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:10px center}
.livre-search-input:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(29,185,122,.1)}
.livre-filter-btn{padding:9px 10px;background:transparent;color:var(--text3);border:1px solid var(--border);border-radius:9px;font-size:11px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;white-space:nowrap}
.livre-filter-btn:hover{color:var(--text2);border-color:var(--border2)}
.livre-filter-btn.active{background:rgba(29,185,122,.1);color:var(--green);border-color:rgba(29,185,122,.35)}

.livre-checklist{flex:1 1 auto;min-height:0;overflow-y:auto;background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:6px;scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
.livre-checklist::-webkit-scrollbar{width:6px}
.livre-checklist::-webkit-scrollbar-track{background:transparent}
.livre-checklist::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}
.livre-checklist-empty{padding:30px 12px;text-align:center;color:var(--text3);font-size:12px;font-style:italic}
.livre-check-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:7px;cursor:pointer;transition:.12s;border:1px solid transparent}
.livre-check-item:hover{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.04)}
.livre-check-item.checked{background:rgba(29,185,122,.07);border-color:rgba(29,185,122,.25)}
.livre-check-box{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--border2);background:transparent;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:transparent;font-weight:800;transition:.15s}
.livre-check-item.checked .livre-check-box{background:var(--green);border-color:var(--green);color:#fff}
.livre-check-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.livre-check-name{font-size:13px;color:var(--text);line-height:1.35;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.livre-check-meta{font-size:10px;color:var(--text3);line-height:1.4;display:flex;gap:6px;align-items:center}
.livre-check-tag{display:inline-flex;align-items:center;font-size:9px;padding:1px 6px;border-radius:4px;background:rgba(255,255,255,.04);color:var(--text3);border:0.5px solid var(--border2);font-weight:600;letter-spacing:.02em}
.livre-check-tag.imp-essencial{background:rgba(255,77,106,.07);color:#ff7d7d;border-color:rgba(255,77,106,.3)}
.livre-check-tag.imp-importante{background:rgba(240,165,0,.07);color:var(--amber);border-color:rgba(240,165,0,.3)}
.livre-check-tag.imp-complementar{background:rgba(123,138,170,.07);color:var(--text3);border-color:var(--border2)}
.livre-check-conteudos{font-size:9.5px;color:var(--text3);opacity:.8}

.livre-create-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-shrink:0;padding-top:6px;border-top:0.5px solid var(--border)}
.livre-create-counter{font-size:12px;color:var(--text2);font-weight:500}
.livre-create-counter strong{color:var(--green);font-weight:700}
.livre-create-actions{display:flex;gap:8px}
.livre-create-btn{padding:9px 16px;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;border:none}
.livre-create-btn.ghost{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.livre-create-btn.ghost:hover{color:var(--text);border-color:var(--text3)}
.livre-create-btn.primary{background:var(--green);color:#fff;font-weight:700}
.livre-create-btn.primary:hover{background:#22D086;box-shadow:0 3px 12px rgba(29,185,122,.35)}
.livre-create-btn.primary:disabled{opacity:.4;cursor:not-allowed;background:var(--text3)}

/* Badge "Estudo Livre" no card de edital · substitui o "🎯 Foco" no estilo verde */
.edital-card.livre{border-color:rgba(29,185,122,.28)}
.edital-card.livre.foco{border-color:rgba(29,185,122,.55)}
.edital-card-livre-badge{position:absolute;top:14px;right:14px;background:rgba(29,185,122,.12);color:var(--green);font-size:10px;font-weight:700;padding:4px 9px;border-radius:5px;border:0.5px solid rgba(29,185,122,.4);letter-spacing:.04em;text-transform:uppercase;display:inline-flex;align-items:center;gap:4px}

@media(max-width:900px){
  .srs-mat-fila-item{grid-template-columns:28px 1fr;grid-template-rows:auto auto;gap:6px 10px}
  .srs-mat-fila-when{grid-column:2;text-align:left;min-width:0}
  .srs-mat-fila-actions{grid-column:1/-1;justify-content:flex-end}
  .srs-mat-camadas-grid{grid-template-columns:repeat(2,1fr)}
  .srs-mat-info-tooltip{width:280px;left:auto;right:0}
}
/* ============================== FIM BLOCO 17 ============================== */

/* ============================== BLOCO 18 · MODAL RECALCULAR HORAS ============================== */
.rcm-overlay{position:fixed;inset:0;background:rgba(8,14,28,.88);display:flex;align-items:center;justify-content:center;z-index:400}
.rcm-overlay.is-hidden{display:none!important;pointer-events:none}
.rcm-box{background:linear-gradient(135deg,#0D1A2E 0%,#0F2240 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:16px;padding:28px 32px;width:520px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 24px 70px rgba(0,0,0,.55);position:relative}
.rcm-eyebrow{font-size:10px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.rcm-title{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.2}
.rcm-sub{font-size:13px;color:var(--text2);margin-bottom:22px;line-height:1.5}
.rcm-close{position:absolute;top:20px;right:20px;background:transparent;border:none;color:var(--text3);cursor:pointer;padding:4px;line-height:1;font-size:18px;transition:.15s}
.rcm-close:hover{color:var(--text)}
.rcm-actions{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:0;margin:24px -32px -28px;padding:14px 32px 28px;background:linear-gradient(180deg,rgba(15,34,64,0),#0F2240 32%);z-index:2}
.rcm-btn-cancel{background:transparent;border:0.5px solid var(--border2);color:var(--text2);border-radius:9px;padding:10px 20px;font-size:13px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.rcm-btn-cancel:hover{color:var(--text);border-color:var(--border)}
.rcm-btn-confirm{background:var(--blue);color:#fff;border:none;border-radius:9px;padding:10px 22px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.rcm-btn-confirm:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.3)}
/* ============================== FIM BLOCO 18 ============================== */

/* ============================== BLOCO 19 · MODAL CONFIGURAÇÕES DO PLANO ============================== */
/* Botão de configurações no footer da sidebar */
.cfg-btn{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:none;cursor:pointer;padding:8px 4px 0;transition:.15s;color:var(--text3)}
.cfg-btn:hover{color:var(--text2)}
.cfg-btn-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.cfg-btn-icon{display:flex;align-items:center;gap:4px;font-size:11px;opacity:.6;transition:.15s}
.cfg-btn:hover .cfg-btn-icon{opacity:1}

/* Modal overlay reutiliza .rcm-overlay, box novo */
.cfg-box{background:linear-gradient(135deg,#0D1A2E 0%,#0F2240 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:16px;width:540px;max-width:95vw;max-height:88vh;overflow-y:auto;box-shadow:0 24px 70px rgba(0,0,0,.55);position:relative}
.cfg-header{padding:24px 28px 0;position:sticky;top:0;background:linear-gradient(135deg,#0D1A2E,#0F2240);z-index:1;padding-bottom:16px;border-bottom:0.5px solid rgba(59,139,255,.12)}
.cfg-eyebrow{font-size:10px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
.cfg-title{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--text);line-height:1.2}
.cfg-close{position:absolute;top:20px;right:20px;background:transparent;border:none;color:var(--text3);cursor:pointer;padding:4px;line-height:1;font-size:18px;transition:.15s}
.cfg-close:hover{color:var(--text)}

.cfg-body{padding:20px 28px 28px}
.cfg-section{margin-bottom:24px}
.cfg-section:last-child{margin-bottom:0}
.cfg-section-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;display:flex;align-items:center;gap:7px}
.cfg-section-title::after{content:'';flex:1;height:0.5px;background:var(--border)}

/* Campo de texto simples dentro do modal */
.cfg-input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:10px 14px;color:var(--text);font-size:14px;font-family:'DM Sans',sans-serif;outline:none;transition:.2s}
.cfg-input:focus{border-color:var(--blue-dim);box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.cfg-input::placeholder{color:var(--text3)}
.cfg-field{margin-bottom:14px}
.cfg-field:last-child{margin-bottom:0}
.cfg-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px;display:block}

/* Lista de concursos no modal (compacta, max-height) */
.cfg-concurso-list{display:flex;flex-direction:column;gap:5px;max-height:200px;overflow-y:auto;margin-bottom:10px}

/* Ações do modal */
.cfg-actions{display:flex;gap:10px;justify-content:flex-end;position:sticky;bottom:0;margin:0 -28px -28px;padding:16px 28px;background:linear-gradient(135deg,#0D1A2E,#0F2240);border-top:0.5px solid rgba(59,139,255,.12);z-index:2}
.cfg-btn-cancel{background:transparent;border:0.5px solid var(--border2);color:var(--text2);border-radius:9px;padding:10px 20px;font-size:13px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.cfg-btn-cancel:hover{color:var(--text);border-color:var(--border)}
.cfg-btn-save{background:var(--blue);color:#fff;border:none;border-radius:9px;padding:10px 22px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.cfg-btn-save:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.3)}
/* ============================== FIM BLOCO 19 ============================== */

/* MODO ESTUDO */
.study-shell{display:grid;grid-template-columns:1fr 320px;gap:12px}
/* Despoluído (23/06): a coluna direita do "Estudar agora" (Hoje sugerido / Sessão de hoje /
   Frequência de checkpoint) saiu da tela. O cronômetro ocupa tudo. Os elementos ficam no DOM
   (display:none) p/ o JS de preencher não quebrar; o checkpoint mantém o padrão (90min). */
#study-side-col{display:none!important}
.study-shell{grid-template-columns:minmax(0,1fr)!important}
/* === Cards extras do Modo Estudo (Frente 3): questões + Resumo 360 === */
#study-extra-cards{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.study-extra-card{display:flex;align-items:center;gap:12px;background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.study-extra-ic{font-size:20px;flex-shrink:0;line-height:1}
.study-extra-body{flex:1;min-width:0}
.study-extra-title{font-family:'Syne',sans-serif;font-size:13px;font-weight:600;color:var(--text)}
.study-extra-sub{font-size:11px;color:var(--text3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.study-extra-btn{flex-shrink:0;background:var(--blue);color:#fff;border:none;border-radius:9px;padding:9px 14px;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;display:inline-block}
.study-extra-btn:hover{filter:brightness(1.08)}
/* ============================ LEITOR DE RESUMO ============================
   O leitor NÃO cobre a tela toda: ele começa depois da sidebar (220px), pra o
   aluno continuar vendo o menu do Planner enquanto lê. O ☰ recolhe a sidebar
   (body.nav-collapsed) e o leitor se estica até a borda. No celular a sidebar
   já é gaveta, então lá ele ocupa tudo e o ☰ abre a gaveta de sempre. */
.resumo-viewer{position:fixed;top:0;right:0;bottom:0;left:220px;z-index:400;background:#0b1220;display:flex;flex-direction:column;transition:left .22s cubic-bezier(.4,0,.2,1)}
.resumo-viewer.is-hidden{display:none!important}
body.nav-collapsed .resumo-viewer{left:0}
/* Saída de emergência da sidebar recolhida (incidente 04/ago · ver rvToggleNav).
   z-index 390 fica ABAIXO do leitor (400): dentro do leitor quem manda é o ☰ dele. */
.p360-mostrar-menu{display:none;position:fixed;left:12px;top:12px;z-index:390;
  align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border2);
  color:var(--text);border-radius:10px;padding:9px 13px;font:inherit;font-size:12.5px;
  font-weight:600;cursor:pointer;box-shadow:0 8px 26px rgba(0,0,0,.45)}
.p360-mostrar-menu{border-color:var(--brand);color:var(--brand-2)}   /* o par do botão de recolher */
.p360-mostrar-menu:hover{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.p360-mostrar-menu span{display:flex;flex-direction:column;gap:3px}
.p360-mostrar-menu span i{display:block;width:14px;height:1.5px;background:currentColor;border-radius:2px}
body.nav-collapsed .p360-mostrar-menu{display:flex}
/* O par do ☰ flutuante: o botão que RECOLHE, no topo da própria lateral. */
/* Cor da MARCA, nao azul: o azul e do "Iniciar sessao" logo abaixo, e dois azuis
   na mesma caixa disputam o clique. O dourado destaca sem competir. */
.dvtab.is-pago{opacity:.72}
.dvtab-cadeado{margin-left:6px;font-size:10px;opacity:.85}
.p360-recolher{flex:none;margin-left:auto;width:34px;height:34px;border-radius:10px;display:grid;
  place-items:center;background:var(--brand-dim);border:1px solid var(--brand);color:var(--brand-2);
  cursor:pointer;transition:background .14s,border-color .14s,color .14s}
.p360-recolher:hover{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.p360-recolher svg{width:17px;height:17px;stroke:currentColor;stroke-width:2.4;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
/* no celular a lateral já é gaveta · "recolher" ali não quer dizer nada */
@media(max-width:768px){ .p360-recolher{display:none} }
/* Recolher a sidebar · vale pro app inteiro, não só pro leitor */
body.nav-collapsed .app{grid-template-columns:0 1fr}
body.nav-collapsed .sidebar{transform:translateX(-100%);opacity:0;pointer-events:none;transition:transform .22s cubic-bezier(.4,0,.2,1),opacity .18s}

.resumo-viewer .rv-bar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg2);border-bottom:1px solid var(--border)}
.resumo-viewer .rv-title{flex:1;min-width:0;font-family:'Syne',sans-serif;font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.resumo-viewer .rv-btn{flex-shrink:0;background:var(--bg4);color:var(--text2);border:1px solid var(--border2);border-radius:8px;height:34px;min-width:34px;padding:0 10px;font-size:13px;font-family:inherit;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.resumo-viewer .rv-btn:hover{color:var(--text);border-color:var(--blue-dim)}
.resumo-viewer .rv-btn.on{color:var(--brand-2);border-color:var(--brand-dim);background:rgba(240,165,0,.12)}
.resumo-viewer .rv-btn[disabled]{opacity:.4;cursor:default}
.rv-hamb{display:flex;flex-direction:column;gap:3px}
.rv-hamb i{display:block;width:15px;height:1.5px;background:currentColor;border-radius:2px}
.resumo-viewer .rv-pgnav{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3);white-space:nowrap}
.resumo-viewer .rv-pgnav input{width:44px;background:var(--bg4);border:1px solid var(--border2);border-radius:6px;color:var(--text);font:inherit;font-size:12px;text-align:center;padding:5px 2px}

.resumo-viewer .rv-body{flex:1;min-height:0;display:flex}
.resumo-viewer .rv-scroll{flex:1;min-width:0;overflow:auto;background:#525659;padding:16px 0 60px;-webkit-overflow-scrolling:touch}
.rv-page{position:relative;margin:0 auto 14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.35);overflow:hidden}
.rv-page canvas{display:block;width:100%;height:100%}
.rv-page .rv-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#8a94a6;font-size:12px}

/* Camada de texto do PDF.js · texto invisível por cima do desenho, é o que
   torna o resumo selecionável (e portanto grifável). */
.rv-page .textLayer{position:absolute;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}
.rv-page .textLayer span,.rv-page .textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0 0}
.rv-page .textLayer ::selection{background:rgba(0,120,255,.32)}
.rv-page .textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;user-select:none}

/* Grifos · ficam ENTRE o desenho e o texto, então dá pra selecionar por cima.
   SEM z-index aqui de propósito: z-index cria contexto de empilhamento e o
   mix-blend-mode passa a misturar com o vazio em vez de misturar com a página
   · era isso que deixava o grifo amarelo SÓLIDO, tapando o texto. */
.rv-marks{position:absolute;inset:0;pointer-events:none}
.rv-mark{position:absolute;border-radius:2px;pointer-events:auto;cursor:pointer;mix-blend-mode:multiply}
.rv-mark.has-nota{box-shadow:inset 0 -2px 0 rgba(0,0,0,.28)}
.rv-mark:hover{filter:brightness(.94)}

/* Balãozinho que aparece ao soltar a seleção */
.rv-pop{position:fixed;z-index:420;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:7px;display:flex;align-items:center;gap:6px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.rv-pop.is-hidden{display:none}
.rv-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
.rv-swatch:hover,.rv-swatch.on{border-color:var(--text)}
.rv-pop .rv-sep{width:1px;height:20px;background:var(--border2)}

/* Painel lateral de anotações */
.resumo-viewer .rv-side{flex-shrink:0;width:290px;border-left:1px solid var(--border);background:var(--bg2);overflow-y:auto;padding:12px}
.resumo-viewer .rv-side.is-hidden{display:none}
.rv-side-empty{color:var(--text3);font-size:12px;line-height:1.5;padding:10px 4px}
.rv-anot{border:1px solid var(--border);border-radius:9px;padding:9px 10px;margin-bottom:8px;background:var(--bg3);cursor:pointer;transition:.15s}
.rv-anot:hover{border-color:var(--blue-dim)}
.rv-anot-top{display:flex;align-items:center;gap:6px;margin-bottom:5px}
.rv-anot-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.rv-anot-pg{font-size:10px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.rv-anot-del{margin-left:auto;background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;line-height:1;padding:2px 4px;border-radius:4px}
.rv-anot-del:hover{color:#ff6b6b;background:rgba(255,107,107,.12)}
.rv-anot-txt{font-size:12px;color:var(--text2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rv-anot-nota{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border2);font-size:12px;color:var(--text);line-height:1.4;white-space:pre-wrap}
.rv-nota-edit{width:100%;box-sizing:border-box;background:var(--bg4);border:1px solid var(--border2);border-radius:7px;color:var(--text);font:inherit;font-size:12px;padding:7px 8px;resize:vertical;min-height:60px;margin-top:6px}

/* ─── Ferramentas (marca-texto, balão, caneta, borracha) ─────────────────── */
.resumo-viewer .rv-tools{display:flex;gap:4px;flex-shrink:0}
.resumo-viewer .rv-cores{display:none;gap:4px;align-items:center;flex-shrink:0;padding-left:6px;border-left:1px solid var(--border2)}
.resumo-viewer .rv-cores.on{display:flex}
/* flex/width/height fixos + min-height zerado: a regra global de alvo de toque
   do mobile (min-height 40px em botão) esticava a bolinha em OVAL 21x45 e
   inflava a barra · medido no preview 375px (bug do Emanuel, 03/ago) */
.resumo-viewer .rv-swatch{flex:0 0 19px;width:19px;height:19px;min-height:19px;min-width:19px;box-sizing:border-box;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}
.resumo-viewer .rv-swatch.on{border-color:var(--text);transform:scale(1.12)}

/* Balão de comentário preso na página · z-index 4: acima dos links do PDF,
   senão um link do sumário embaixo roubava o clique do balão */
.rv-balao{position:absolute;transform:translate(-50%,-100%);width:24px;height:24px;border-radius:50% 50% 50% 3px;
  border:1px solid rgba(0,0,0,.28);font-size:12px;line-height:1;cursor:pointer;padding:0;z-index:4;
  display:flex;align-items:center;justify-content:center;pointer-events:auto;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.rv-balao:hover{filter:brightness(1.08);transform:translate(-50%,-100%) scale(1.1)}
.rv-nota-pop{position:fixed;z-index:430;display:none;width:min(280px,86vw);background:var(--bg2);
  border:1px solid var(--border2);border-radius:11px;padding:11px;box-shadow:0 14px 40px rgba(0,0,0,.5)}
.rv-nota-pop.on{display:block}
.rv-nota-txt{font-size:12.5px;color:var(--text);line-height:1.45;white-space:pre-wrap;max-height:220px;overflow-y:auto}
.rv-nota-acoes{display:flex;gap:6px;margin-top:9px}
.rv-nota-acoes .rv-btn{height:27px;font-size:11px;flex:1}

/* Links do PDF (sumário) · acima do texto pra receber o clique, invisíveis */
.rv-links{position:absolute;inset:0;z-index:3;pointer-events:none}
.rv-link{position:absolute;display:block;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;border-radius:2px}
.rv-link:hover{background:rgba(59,139,255,.16);box-shadow:0 0 0 1px rgba(59,139,255,.45) inset}
/* Com ferramenta ligada, o link sai da frente · o aluno quer grifar, não navegar */
.resumo-viewer.rv-t-grifo .rv-links,
.resumo-viewer.rv-t-nota .rv-links,
.resumo-viewer.rv-t-caneta .rv-links,
.resumo-viewer.rv-t-borracha .rv-links{display:none}

/* Tinta da caneta */
.rv-ink{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.rv-ink .rv-stroke{pointer-events:auto;cursor:pointer}

/* Cursores e travas por ferramenta.
   O cursor vira o DESENHO da ferramenta (SVG embutido, sem arquivo externo).
   O par de números no fim é a ponta que "escreve" · sem ele o navegador
   mira no canto do desenho e o aluno grifa deslocado.
   O último valor é reserva pra navegador que não aceita cursor em SVG. */
.resumo-viewer.rv-t-grifo .rv-scroll,
.resumo-viewer.rv-t-grifo .textLayer{
  cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><path d="M4 24l1-4.5L16.5 8l3.5 3.5L8.5 23 4 24z" fill="%23ffe066" stroke="%23222" stroke-width="1.4" stroke-linejoin="round"/><path d="M17.5 7l3.5 3.5 2.5-2.5a1.8 1.8 0 0 0 0-2.5l-1-1a1.8 1.8 0 0 0-2.5 0L17.5 7z" fill="%23b0b7c3" stroke="%23222" stroke-width="1.3"/><path d="M4 25.4h9" stroke="%23ffc078" stroke-width="2.4" stroke-linecap="round"/></svg>') 4 24, text;
}
.resumo-viewer.rv-t-caneta .rv-scroll{
  cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><path d="M3 25l1.4-5L18 6.4l3.6 3.6L8 23.6 3 25z" fill="%23fff" stroke="%23222" stroke-width="1.4" stroke-linejoin="round"/><path d="M18.8 5.6l3.6 3.6 1.8-1.8a2 2 0 0 0 0-2.8l-.8-.8a2 2 0 0 0-2.8 0l-1.8 1.8z" fill="%231e3a8a" stroke="%23222" stroke-width="1.3"/><path d="M3 25l1.4-5 2 .6 1 2.6L3 25z" fill="%23222"/></svg>') 3 25, crosshair;
}
.resumo-viewer.rv-t-caneta .textLayer{pointer-events:none;user-select:none}
.resumo-viewer.rv-t-nota .rv-scroll{
  cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><path d="M4 4h20v14H12l-6 5v-5H4V4z" fill="%23ffe066" stroke="%23222" stroke-width="1.5" stroke-linejoin="round"/><path d="M8.5 9h11M8.5 13h7" stroke="%23222" stroke-width="1.5" stroke-linecap="round"/></svg>') 4 4, copy;
}
.resumo-viewer.rv-t-nota .textLayer{pointer-events:none;user-select:none}
.resumo-viewer.rv-t-borracha .rv-scroll{
  cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28"><path d="M10.5 23l-6-6a2 2 0 0 1 0-2.8l9-9a2 2 0 0 1 2.8 0l6 6a2 2 0 0 1 0 2.8l-9 9H10.5z" fill="%23ffc9de" stroke="%23222" stroke-width="1.5" stroke-linejoin="round"/><path d="M9 10.5l8.5 8.5" stroke="%23222" stroke-width="1.4"/><path d="M4 25.4h18" stroke="%23222" stroke-width="1.8" stroke-linecap="round" opacity=".55"/></svg>') 13 21, not-allowed;
}
.resumo-viewer.rv-t-borracha .textLayer{pointer-events:none}

/* Desfazer / refazer */
.resumo-viewer .rv-undo{display:flex;gap:4px;flex-shrink:0}
.resumo-viewer .rv-undo .rv-btn{font-size:16px;line-height:1}

/* ══════════════ RANKING (F2, 04/ago/2026) ════════════════════════════════ */
.rk-tabs{display:flex;gap:6px;margin-bottom:16px}
.rk-tab{background:var(--bg3);border:0.5px solid var(--border);color:var(--text3);border-radius:20px;
  padding:7px 15px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:.15s}
.rk-tab:hover{color:var(--text2)}
.rk-tab.on{background:rgba(240,165,0,.14);border-color:var(--brand-dim);color:var(--brand-2)}

/* faixa "você está em Nº" · o número é o que o aluno vem ver */
.rk-eu{margin-bottom:14px}
.rk-eu-cx{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--bg2);
  border:1px solid var(--border2);border-left:3px solid var(--brand-2);border-radius:13px;padding:15px 18px}
.rk-eu-pos{font-family:'Syne',sans-serif;font-size:30px;font-weight:800;color:var(--brand-2);
  line-height:1;font-variant-numeric:tabular-nums}
.rk-eu-pos small{font-size:13px;font-weight:700;color:var(--text3);margin-left:3px}
.rk-eu-txt{flex:1;min-width:190px;font-size:13px;color:var(--text2);line-height:1.5}
.rk-eu-txt b{color:var(--text)}
.rk-eu-fora{font-size:13px;color:var(--text2);line-height:1.55}

.rk-lista{display:flex;flex-direction:column;gap:4px}
.rk-linha{display:grid;grid-template-columns:38px 1fr auto auto;align-items:center;gap:12px;
  background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:11px 14px}
.rk-linha.eu{border-color:var(--brand-dim);background:rgba(240,165,0,.07)}
.rk-pos{font-family:'Syne',sans-serif;font-size:15px;font-weight:800;color:var(--text3);
  text-align:center;font-variant-numeric:tabular-nums}
/* As cores de medalha saíram daqui: com o pódio na frente, o :nth-child passou a
   pintar 4º/5º/6º de ouro, prata e bronze. Medalha agora só existe no pódio. */
.rk-nome{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-nome .rk-vc{font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:#0b1220;background:var(--brand-2);border-radius:3px;padding:2px 6px;margin-left:7px}
.rk-feitas{font-size:11.5px;color:var(--text3);font-variant-numeric:tabular-nums;white-space:nowrap}
.rk-pct{font-size:13px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;min-width:42px;text-align:right}
.rk-vazio{color:var(--text3);font-size:13px;padding:22px 4px;line-height:1.6}


/* ── PÓDIO + AVATARES + MEDALHAS (18/08) ────────────────────────────────────
   A RPC `ranking_questoes` já devolvia `cor` e `emoji` de cada aluno desde o
   começo · a tela só imprimia o apelido. O /questoes/ do site já mostrava o
   avatar; aqui era uma lista de texto. Agora as duas telas contam a mesma
   história, e o Planner ganha o pódio que o comentário do código prometia. */
.rk-podio{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:10px;align-items:end;margin:2px 0 16px}
.rk-pod{background:var(--bg2);border:1px solid var(--border);border-radius:14px;
  padding:16px 12px 14px;text-align:center;position:relative;overflow:hidden}
.rk-pod::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--md)}
.rk-pod.p1{padding-top:22px;padding-bottom:18px;border-color:rgba(255,194,61,.42);
  background:linear-gradient(180deg,rgba(240,165,0,.14),var(--bg2) 62%)}
.rk-pod.eu{border-color:var(--brand-dim);box-shadow:0 0 0 1px var(--brand-dim) inset}
.rk-pod-md{font-size:24px;line-height:1;margin-bottom:7px}
.rk-pod.p1 .rk-pod-md{font-size:31px}
.rk-pod-nome{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--text);
  margin-top:9px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rk-pod.p1 .rk-pod-nome{font-size:14.5px}
.rk-pod-ac{font-family:'Syne',sans-serif;font-size:19px;font-weight:800;color:var(--brand-2);margin-top:6px;
  font-variant-numeric:tabular-nums;line-height:1}
.rk-pod.p1 .rk-pod-ac{font-size:24px}
.rk-pod-lbl{font-size:10px;color:var(--text3);margin-top:3px}

/* o avatar: emoji escolhido pelo aluno, ou a inicial do apelido */
.rk-av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:'Syne',sans-serif;font-weight:800;font-size:15px;color:#0b1020;flex:0 0 auto;line-height:1}
.rk-av.g{width:56px;height:56px;font-size:25px;margin:0 auto}
.rk-pod.p1 .rk-av.g{width:66px;height:66px;font-size:30px}
.rk-linha .rk-av{margin-right:2px}
.rk-linha{grid-template-columns:34px 34px 1fr auto auto}
.rk-md{font-size:17px;line-height:1;text-align:center}

@media(max-width:600px){
  .rk-podio{gap:6px}
  .rk-pod{padding:12px 6px 11px;border-radius:11px}
  .rk-pod.p1{padding-top:16px}
  .rk-pod-nome{font-size:11.5px}
  .rk-pod.p1 .rk-pod-nome{font-size:12.5px}
  .rk-av.g{width:44px;height:44px;font-size:20px}
  .rk-pod.p1 .rk-av.g{width:52px;height:52px;font-size:24px}
  .rk-pod-ac{font-size:16px}
  .rk-pod.p1 .rk-pod-ac{font-size:20px}
  .rk-linha{grid-template-columns:28px 30px 1fr auto;gap:9px;padding:10px 11px}
  .rk-feitas{display:none}
}

/* escolher cor e ícone · sem isto o aluno do Planner nunca teria avatar
   (o picker só existia no /questoes/ do site) */
.rk-av-edit{display:flex;align-items:center;gap:14px;margin:0 0 14px;flex-wrap:wrap}
.rk-av-grid{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:200px}
.rk-op{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;
  font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;
  background:var(--bg3);color:var(--text2);transition:.12s}
.rk-op:hover{transform:scale(1.1)}
.rk-op.on{border-color:var(--brand-2);transform:scale(1.1)}
.rk-op.vazio{font-size:11px;color:var(--text3)}
.rk-av-lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);
  width:100%;margin-bottom:-4px}

/* apelido · o aluno escolhe como aparece, ou sai do ranking */
.rk-perfil{margin-top:22px;background:var(--bg2);border:1px solid var(--border);border-radius:13px;padding:16px 18px}
.rk-perfil h4{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin:0 0 5px}
.rk-perfil p{font-size:12.5px;color:var(--text2);line-height:1.5;margin:0 0 12px}
.rk-perfil-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rk-input{flex:1;min-width:170px;background:var(--bg3);border:1px solid var(--border2);color:var(--text);
  border-radius:9px;padding:10px 12px;font:inherit;font-size:13px}
.rk-input:focus{outline:none;border-color:var(--brand-dim)}
.rk-salvar{background:var(--brand-2);color:#0b1220;border:0;border-radius:9px;padding:10px 17px;
  font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.rk-salvar:hover{filter:brightness(1.08)}
.rk-salvar:disabled{opacity:.5;cursor:default}
.rk-sair{background:none;border:0;color:var(--text3);font:inherit;font-size:12.5px;cursor:pointer;padding:10px 4px;text-decoration:underline}
.rk-sair:hover{color:var(--text2)}
.rk-msg{font-size:12.5px;margin-top:10px}
.rk-msg.ok{color:#12b76a}
.rk-msg.erro{color:#FF4D6A}
@media(max-width:768px){
  .rk-linha{grid-template-columns:30px 1fr auto;gap:9px;padding:10px 12px}
  .rk-feitas{display:none}
  .rk-eu-pos{font-size:26px}
}

/* ══════════════ ESTANTE v4 · GRADE (pedido 04/ago: "tipo a do Kindle") ═════
   Sai a fileira 3D que rolava de lado, entra grade de capas. Com 148 materiais
   a fileira obrigava rolagem horizontal infinita; grade mostra tudo de uma vez
   e é o padrão que todo mundo já conhece de biblioteca digital.
   SEM ANIMAÇÃO nos objetos (pedido dele): a capa não gira, não levanta, não
   escala · só a borda e a sombra reagem, pra ficar claro que é clicável. */
body.est-claro{
  --e-bg:#F5F6FA; --e-painel:#FFFFFF; --e-painel2:#EDF0F6; --e-borda:#DDE3ED;
  --e-tinta:#151C2C; --e-tinta2:#5A6780; --e-tinta3:#8D99AE;
  --e-ouro:#B07D00; --e-ouro-bg:rgba(176,125,0,.10);
  --e-ok:#0E7A4C; --e-sombra:0 1px 2px rgba(20,28,45,.06),0 4px 14px rgba(20,28,45,.07);
}
body{
  --e-bg:#080E1C; --e-painel:#0D1526; --e-painel2:#121D32; --e-borda:#1E2E4A;
  --e-tinta:#EDF2FF; --e-tinta2:#93A3C4; --e-tinta3:#5C6D8F;
  --e-ouro:#FFC23D; --e-ouro-bg:rgba(240,165,0,.13);
  --e-ok:#2FBF7F; --e-sombra:0 1px 2px rgba(0,0,0,.4),0 6px 20px rgba(0,0,0,.35);
}
*{box-sizing:border-box}

/* ── casca: coluna de navegação + conteúdo, como a biblioteca do Kindle ──── */
.est4{display:grid;grid-template-columns:196px 1fr;gap:0;min-height:auto;background:var(--e-bg);color:var(--e-tinta);border:1px solid var(--e-borda);border-radius:14px;overflow:hidden}
.est4-lado{background:var(--e-painel);border-right:1px solid var(--e-borda);padding:18px 12px}
.est4-lado h2{font-family:'Syne',sans-serif;font-size:19px;font-weight:700;letter-spacing:-.02em;margin:0 0 14px;padding:0 8px;
  display:flex;align-items:center;gap:8px;line-height:1.15}
.est4-nav{display:flex;flex-direction:column;gap:2px}
.est4-nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  background:none;border:0;border-radius:8px;padding:9px 11px;font:inherit;font-size:13.5px;
  color:var(--e-tinta2);cursor:pointer;text-align:left}
.est4-nav button:hover{background:var(--e-painel2);color:var(--e-tinta)}
.est4-nav button.on{background:var(--e-ouro-bg);color:var(--e-ouro);font-weight:600}
.est4-nav .cnt{font-size:11.5px;color:var(--e-tinta3);font-variant-numeric:tabular-nums}
.est4-nav button.on .cnt{color:var(--e-ouro)}
.est4-sec{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--e-tinta3);padding:18px 11px 7px}

.est4-main{padding:20px 24px 44px;min-width:0}
.est4-topo{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.est4-busca{flex:1;min-width:200px;position:relative}
.est4-busca input{width:100%;background:var(--e-painel);border:1px solid var(--e-borda);color:var(--e-tinta);
  border-radius:9px;padding:10px 12px 10px 34px;font:inherit;font-size:13.5px}
.est4-busca input:focus{outline:none;border-color:var(--e-ouro)}
.est4-busca svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;
  stroke:var(--e-tinta3);fill:none;stroke-width:2}
.est4-ord{background:var(--e-painel);border:1px solid var(--e-borda);color:var(--e-tinta2);border-radius:9px;
  padding:10px 11px;font:inherit;font-size:13px;cursor:pointer}
.est4-tema{background:var(--e-painel);border:1px solid var(--e-borda);color:var(--e-tinta2);border-radius:9px;
  width:38px;height:38px;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.est4-tema:hover{border-color:var(--e-ouro);color:var(--e-ouro)}

/* ── a grade ─────────────────────────────────────────────────────────────── */
.est4-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:22px 18px}
/* 🔴 25/08/2026 · o `position:relative` NAO e enfeite: sem ele a estrela de
   favorito (`.est4-fav`, absoluta) se ancorava no bloco da pagina inteira · as
   148 estrelas empilhavam no canto de cima a direita da TELA, longe do
   material, e o clique caia sempre na ULTIMA da pilha. Era por isso que
   favoritar nao funcionava. Medido no navegador: 6 estrelas, todas em
   (1240,6), `offsetParent` = BODY. */
.est4-item{background:none;border:0;padding:0;font:inherit;text-align:left;cursor:pointer;color:inherit;
  position:relative;display:flex;flex-direction:column;gap:9px}
.est4-capa{position:relative;aspect-ratio:1/1.42;border-radius:6px;overflow:hidden;box-shadow:var(--e-sombra);
  border:1px solid rgba(0,0,0,.10);
  background:linear-gradient(152deg,rgba(var(--acr),.22),rgba(var(--acr),.04) 45%,rgba(var(--acr),0) 72%),
             linear-gradient(152deg,#242a37,#151a23 46%,#0b0e14);
  transition:border-color .14s, box-shadow .14s}
.est4-item:hover .est4-capa,.est4-item:focus-visible .est4-capa{border-color:var(--e-ouro);
  box-shadow:0 0 0 2px var(--e-ouro-bg),var(--e-sombra)}
.est4-item:focus-visible{outline:none}
/* arte da capa: faixa da matéria + logo + título (a capa-padrão da marca) */
.est4-faixa{position:absolute;left:8px;top:0;bottom:0;width:7px;background:var(--ac)}
.est4-capa-corpo{position:absolute;inset:0;display:flex;flex-direction:column;padding:11px 10px 11px 22px}
.est4-logo{width:29px;height:auto;opacity:.9;filter:brightness(1.5) saturate(1.1)}
.est4-capa-nome{margin-top:auto;font-size:12.5px;font-weight:700;color:#fff;line-height:1.22;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.est4-capa-sub{font-size:7.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ac);filter:brightness(1.5);margin-top:4px}
.est4-aneis{position:absolute;right:-30px;bottom:-30px;width:104px;height:104px;border-radius:50%;
  border:1.5px solid var(--ac);opacity:.2}
/* ícone temático da matéria · marca d'água atrás do título */
.est4-icone{position:absolute;right:-14px;top:34%;width:96px;height:96px;stroke:var(--ac);fill:none;
  stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.30;pointer-events:none}
.est4-item.locked .est4-icone{stroke:#6b7280;opacity:.16}
/* logo + sigla do concurso na face da caixa (05/ago) */
.est4-box-logo{display:block;width:30px;height:30px;object-fit:contain;margin:0 auto 3px;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
.est4-box-sigla{display:block;font-size:8.5px;font-weight:800;letter-spacing:.06em;color:#fff;
  text-align:center;line-height:1.1;text-shadow:0 1px 4px rgba(0,0,0,.9);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.est4-item.box.locked .est4-box-logo{filter:grayscale(1) brightness(.8)}
.est4-item.box.locked .est4-box-sigla{color:rgba(255,255,255,.62)}
/* selos por cima da capa */
.est4-selo{position:absolute;top:7px;right:7px;width:20px;height:20px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff}
.est4-selo.ok{background:var(--e-ok)}
.est4-cadeado{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(9,12,20,.55)}
.est4-cadeado svg{width:38px;height:38px}
.est4-item.locked .est4-capa{background:linear-gradient(152deg,#3d434e,#282d36 46%,#191c22)}
.est4-item.locked .est4-faixa{background:#565d6a}
.est4-item.locked .est4-capa-nome{color:rgba(255,255,255,.6)}
.est4-item.locked .est4-capa-sub{color:#7b8492;filter:none}
.est4-item.locked .est4-logo{filter:grayscale(1) brightness(1.7);opacity:.45}
.est4-item.locked .est4-aneis{border-color:#6b7280;opacity:.13}
/* Técnica se distingue pelo rodapé da capa ("Técnica 360"), pelo ícone de alvo
   e pela aba "Métodos e técnicas". Tentei uma tarja "MÉTODO" na capa: em cima
   ela cobria o logo, embaixo cobria o próprio rodapé. Menos é mais. */
/* barra de progresso na base da capa, estilo Kindle */
.est4-prog{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.18)}
.est4-prog i{display:block;height:100%;background:var(--e-ouro)}
.est4-prog.done i{background:var(--e-ok)}
/* legenda embaixo da capa */
.est4-nome{font-size:13px;font-weight:600;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.est4-meta{font-size:11.5px;color:var(--e-tinta3);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.est4-meta .pct{color:var(--e-ouro);font-weight:700;font-variant-numeric:tabular-nums}
.est4-meta .pct.done{color:var(--e-ok)}
/* botão de treinar · só existe quando o banco TEM questão daquela matéria */
.est4-treinar{margin-top:2px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;background:var(--e-painel);
  border:1px solid var(--e-borda);color:var(--e-tinta2);border-radius:7px;padding:5px 9px;
  font:inherit;font-size:11.5px;font-weight:600;cursor:pointer;width:fit-content}
.est4-treinar:hover{border-color:var(--e-ouro);color:var(--e-ouro);background:var(--e-ouro-bg)}

/* ── ESCOLHER O RECORTE DO TREINO (05/ago) ────────────────────────────────
   O botão parava na matéria inteira ("Direito Administrativo, 21 mil"). Aqui
   ele abre os recortes que o banco REALMENTE tem daquela matéria, cada um com
   o número na frente. Sem número, o recorte não entra na lista. */
.est-tre-fundo{position:fixed;inset:0;z-index:420;background:rgba(4,8,18,.62);
  display:flex;align-items:center;justify-content:center;padding:18px}
.est-tre{background:var(--e-bg);color:var(--e-tinta);border:1px solid var(--e-borda);
  border-radius:16px;box-shadow:var(--e-sombra);width:min(560px,100%);max-height:86vh;
  display:flex;flex-direction:column;overflow:hidden}
.est-tre-topo{display:flex;align-items:flex-start;gap:10px;padding:16px 18px 12px;
  border-bottom:1px solid var(--e-borda)}
.est-tre-topo h3{font-family:'Syne',sans-serif;font-size:16px;font-weight:800;margin:0 0 3px}
.est-tre-topo p{margin:0;font-size:12px;color:var(--e-tinta3)}
.est-tre-x{margin-left:auto;background:none;border:0;color:var(--e-tinta3);font-size:20px;
  line-height:1;cursor:pointer;padding:2px 4px}
.est-tre-x:hover{color:var(--e-tinta)}
.est-tre-corpo{padding:14px 18px 18px;overflow:auto}
.est-tre-tit{font-size:10.5px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;
  color:var(--e-tinta3);margin:14px 0 8px}
.est-tre-tit:first-child{margin-top:0}
.est-tre-chips{display:flex;flex-wrap:wrap;gap:8px}
.est-tre-op{display:flex;align-items:center;gap:8px;background:var(--e-painel);
  border:1px solid var(--e-borda);border-radius:9px;padding:8px 11px;font:inherit;font-size:12.5px;
  color:var(--e-tinta);cursor:pointer;text-align:left}
.est-tre-op:hover{border-color:var(--e-ouro);background:var(--e-ouro-bg)}
.est-tre-op b{font-weight:600}
.est-tre-op .n{font-size:11.5px;font-weight:700;color:var(--e-tinta3);font-variant-numeric:tabular-nums}
.est-tre-op:hover .n{color:var(--e-ouro)}
.est-tre-op.forte{border-color:var(--e-ouro);background:var(--e-ouro-bg);font-weight:700}
.est-tre-lista{display:flex;flex-direction:column;gap:6px;max-height:34vh;overflow:auto;
  padding-right:4px}
.est-tre-lista .est-tre-op{width:100%}
.est-tre-lista .est-tre-op span.t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.est-tre-busca{width:100%;margin-bottom:8px;background:var(--e-painel);color:var(--e-tinta);
  border:1px solid var(--e-borda);border-radius:8px;padding:7px 10px;font:inherit;font-size:12.5px}
.est-tre-vazio{font-size:12.5px;color:var(--e-tinta3);padding:6px 0}
@media(max-width:600px){
  .est-tre-fundo{align-items:flex-end;padding:0}
  .est-tre{width:100%;max-height:92vh;border-radius:16px 16px 0 0}
  .est-tre-lista{max-height:42vh}
}

/* ── o BOX do combo, agora na grade e com cor própria ────────────────────── */
.est4-item.box .est4-capa{background:var(--e-painel2);border:0;box-shadow:none;overflow:visible;
  display:flex;align-items:center;justify-content:center}
.est4-item.box .est4-capa img{width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(0 8px 16px rgba(20,28,45,.28))}
body:not(.est-claro) .est4-item.box .est4-capa img{filter:drop-shadow(0 10px 20px rgba(0,0,0,.6))}
.est4-item.box.locked .est4-capa img{filter:grayscale(1) brightness(.78) drop-shadow(0 8px 16px rgba(0,0,0,.4))}
.est4-box-rot{position:absolute;left:12%;width:38%;bottom:24%;transform:skewY(11.5deg);transform-origin:left center;
  pointer-events:none}
.est4-box-badge{display:inline-block;font-size:8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:#0b1220;background:var(--e-ouro);border-radius:2px;padding:1px 4px;margin-bottom:4px}
.est4-box-nome{font-size:10px;font-weight:700;color:#fff;line-height:1.15;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.est4-vazio{grid-column:1/-1;color:var(--e-tinta3);font-size:13.5px;padding:40px 0;text-align:center;line-height:1.6}
/* ── FAVORITOS + CABEÇALHO DE SEÇÃO NA BUSCA (17/08/2026) ─────────────────── */
.est4-titsec{grid-column:1/-1;display:flex;align-items:baseline;gap:8px;margin:2px 0 -6px;
  font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--e-tinta3)}
.est4-titsec:not(:first-child){margin-top:16px}
.est4-titsec span{font-size:11px;letter-spacing:0;text-transform:none;color:var(--e-tinta3);opacity:.75}
/* a estrela mora no PAI (.est4-item div), nunca dentro do botão da capa:
   botão dentro de botão é HTML inválido e o clique vazava pro leitor.
   Ela é ABSOLUTA · quem lhe dá o canto certo é o `position:relative` do
   `.est4-item` lá em cima. Sem aquilo, este `top/right` vale pra TELA. */
.est4-fav{position:absolute;top:6px;right:6px;z-index:3;width:30px;height:30px;padding:0;
  display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;cursor:pointer;
  background:rgba(8,12,22,.55);backdrop-filter:blur(2px);color:#fff;line-height:1;
  opacity:.62;transition:opacity .12s, transform .12s}
.est4-capa-wrap{position:relative;display:block}
/* 🔴 25/08/2026 · era `opacity:0`, e a estrela só existia enquanto o mouse
   estava em cima · quem não passa o mouse nunca soube que dava pra favoritar.
   Agora ela fica SEMPRE no material, apagadinha, e acende ao chegar perto:
   é o mesmo comportamento da estrela da largada de edital (`.gui-star`), que
   foi a referência que ele pediu. */
.est4-item:hover .est4-fav,.est4-item:focus-within .est4-fav,
.est4-fav:hover,.est4-fav:focus-visible,.est4-fav.on{opacity:1}
.est4-fav:hover{transform:scale(1.12)}
.est4-fav svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linejoin:round}
/* dourado FIXO nas duas peles: a pastilha é escura nas duas (ela mora sobre a
   arte da capa) e o ouro do tema claro (#B07D00) sumiria dentro dela. */
.est4-fav.on svg{fill:#FFC23D;stroke:#FFC23D}
/* no celular não existe hover pra acender: já nasce um pouco mais forte */
@media(hover:none){ .est4-fav{opacity:.85} }
@media(max-width:820px){
  .est4{grid-template-columns:1fr}
  .est4-lado{border-right:0;border-bottom:1px solid var(--e-borda);padding:12px}
  /* 🔴 17/08: era `overflow-x:auto`. Numa tela de 375px só cabiam os dois
     primeiros filtros e o resto ficava numa rolagem lateral SEM nenhuma pista
     de que existia · o aluno abria a estante e nem sabia que havia "Combos"
     (foi exatamente o que aconteceu com o Emanuel procurando o TCDF).
     Com `wrap` os cinco aparecem, em duas linhas, sem esconder nada. */
  .est4-nav{flex-direction:row;flex-wrap:wrap;overflow:visible;gap:6px}
  .est4-nav button{width:auto;white-space:nowrap}
  /* o rótulo "Ordenar" volta: sem ele as duas faixas de chips viravam uma
     tripa só de 8 botões, e ninguém entendia por que "Nome" ficava ao lado
     de "Combos". */
  .est4-sec{margin:12px 0 6px}
  .est4-main{padding:16px 14px 40px}
  .est4-grade{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:16px 12px}
}

/* Lembrete do cronômetro parado (abre questões/resumo sem dar start) */
.p360-nudge{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9500;display:flex;align-items:center;gap:10px;max-width:min(560px,94vw);background:var(--bg2);border:1px solid var(--brand-dim);border-radius:13px;padding:11px 13px;box-shadow:0 14px 44px rgba(0,0,0,.5);animation:nudge-in .25s ease}
@keyframes nudge-in{from{opacity:0;transform:translateX(-50%) translateY(14px)}to{opacity:1;transform:translateX(-50%)}}
.p360-nudge.saindo{opacity:0;transition:.5s}
.p360-nudge-ic{font-size:19px;flex-shrink:0}
.p360-nudge-txt{font-size:12.5px;color:var(--text);line-height:1.35;min-width:0}
.p360-nudge-go{flex-shrink:0;background:var(--brand-2);color:#0b1220;border:none;border-radius:8px;padding:8px 13px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}
.p360-nudge-go:hover{filter:brightness(1.08)}
.p360-nudge-x{flex-shrink:0;background:none;border:none;color:var(--text3);font-size:14px;cursor:pointer;padding:4px}
.p360-nudge-x:hover{color:var(--text)}

/* Janela separada (?resumo=slug): só o leitor, pra segunda tela */
body.resumo-standalone .sidebar,
body.resumo-standalone .mobile-header,
body.resumo-standalone .sidebar-overlay{display:none!important}
body.resumo-standalone .app{grid-template-columns:1fr}
body.resumo-standalone .resumo-viewer{left:0!important}
body.resumo-standalone .rv-hamb,
body.resumo-standalone .rv-ext{display:none!important}   /* ☰ sem menu e ⧉ já é a janela */
.resumo-viewer.rv-t-borracha .rv-mark:hover,
.resumo-viewer.rv-t-borracha .rv-balao:hover,
.resumo-viewer.rv-t-borracha .rv-stroke:hover{filter:brightness(.6) saturate(.4)}

/* Aviso enquanto o PDF é carimbado pra abrir na aba de impressão */
.rv-print-aviso{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:9999;background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:10px 16px;font-size:13px;color:var(--text);box-shadow:0 12px 34px rgba(0,0,0,.45)}

@media(max-width:768px){
  .resumo-viewer{left:0}
  .resumo-viewer .rv-side{position:absolute;top:0;right:0;bottom:0;width:min(300px,86vw);z-index:5;box-shadow:-8px 0 30px rgba(0,0,0,.5)}
  .resumo-viewer .rv-zoomgrp,.resumo-viewer .rv-pgnav{display:none}
  /* A barra quebra em 2 linhas: título em cima, ferramentas embaixo · antes
     tudo espremido numa linha só escondia o desfazer e amassava as cores. */
  .resumo-viewer .rv-bar{flex-wrap:wrap;row-gap:7px;padding:8px 10px}
  .resumo-viewer .rv-hamb{order:0}
  .resumo-viewer .rv-title{order:1;flex:1 1 0;min-width:0}
  .resumo-viewer .rv-close{order:2}
  .resumo-viewer .rv-tools{order:3}
  .resumo-viewer .rv-cores{order:4;flex-wrap:wrap;row-gap:4px;min-width:0}
  /* A borracha não tem cores, mas RESERVA a linha da paleta · sem isso a barra
     encolhia ao trocar de ferramenta e a página inteira PULAVA ~47px (medido).
     O aluno perdia o ponto onde ia apagar. */
  .resumo-viewer.rv-t-borracha .rv-cores{display:flex;visibility:hidden}
  .resumo-viewer .rv-undo{order:5;margin-left:auto}
  .resumo-viewer .rv-print{order:6}
  .resumo-viewer .rv-ext{display:none}          /* 2 telas é coisa de desktop */
  .resumo-viewer #rv-side-btn{order:7}
}
/* Compactação específica do Modo Estudo para caber tudo na viewport sem rolagem */
#view-study .page-header{margin-bottom:14px}
#view-study .page-title{margin-bottom:4px}
.timer-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:20px}
.timer-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}
.timer-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text);margin-bottom:4px}
.timer-context{font-size:12px;color:var(--text2);line-height:1.4;max-width:280px}
.timer-display{font-family:'Syne',sans-serif;font-size:36px;font-weight:700;color:var(--text3);letter-spacing:0;font-variant-numeric:tabular-nums;transition:.3s;flex-shrink:0}
.timer-display.running{color:var(--blue);text-shadow:0 0 20px rgba(0,0,0,.3)}
.timer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;width:100%}
.timer-actions{display:flex;gap:8px;align-items:center;width:100%}
.timer-btn{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;border:none;transition:.15s}
.timer-btn.primary{background:var(--blue);color:#fff}
.timer-btn.primary:hover{background:var(--blue2)}
.timer-btn.secondary{background:var(--bg3);color:var(--text2);border:0.5px solid var(--border2)}
.timer-btn.secondary:hover{color:var(--text);border-color:var(--border2)}
.timer-btn.danger{background:var(--red-dim);color:var(--red);border:0.5px solid rgba(255,77,106,.2)}
.timer-btn.danger:hover{background:rgba(255,77,106,.15)}
/* Botão principal grande (Iniciar/Pausar/Retomar) */
.timer-btn-main{flex:1;padding:9px 16px;font-size:13px;font-weight:600;letter-spacing:.01em;display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px}
.timer-btn-main.running{background:var(--amber);color:#0A1525}
.timer-btn-main.running:hover{background:#FFB820}
.timer-btn-main.paused{background:var(--green);color:#fff}
.timer-btn-main.paused:hover{background:#22D086}
.timer-btn-main-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px}
.timer-btn-finish{padding:9px 14px;font-size:12px;font-weight:500;min-height:36px;opacity:.55;transition:.18s}
.timer-btn-finish.is-active{opacity:1}
/* Menu de mais opções (⋯) */
.timer-more-wrap{position:relative}
.timer-more-btn{width:36px;height:36px;border-radius:7px;background:transparent;color:var(--text3);border:0.5px solid var(--border2);cursor:pointer;font-size:16px;font-family:'DM Sans',sans-serif;line-height:1;display:flex;align-items:center;justify-content:center;transition:.15s;padding:0}
.timer-more-btn:hover{background:var(--bg3);color:var(--text2);border-color:var(--border2)}
.timer-more-btn.open{background:var(--bg3);color:var(--text);border-color:rgba(59,139,255,.25)}
.timer-more-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:6px;min-width:180px;box-shadow:0 12px 32px rgba(0,0,0,.4);z-index:50;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}
.timer-more-menu.open{opacity:1;transform:translateY(0);pointer-events:auto}
.timer-more-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;font-size:13px;color:var(--text2);cursor:pointer;transition:.12s;width:100%;background:transparent;border:none;font-family:'DM Sans',sans-serif;text-align:left}
.timer-more-item:hover{background:var(--bg3);color:var(--text)}
.timer-more-item.danger{color:var(--amber)}
.timer-more-item.danger:hover{background:rgba(240,165,0,.08);color:#FFB820}
.timer-more-item-icon{flex-shrink:0;opacity:.7}

/* ============================== BLOCO 11 · MODO ESTUDO REDESENHADO ============================== */

/* Hero do Modo Estudo (no topo, antes do timer card) */
.study-hero{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#0A1E3D 0%,#0D2450 60%,#0F2560 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:14px;padding:14px 20px;margin-bottom:12px;position:relative;overflow:hidden;transition:.2s}
.study-hero::before{content:'';position:absolute;top:-40px;right:-40px;width:200px;height:200px;border-radius:50%;background:transparent;pointer-events:none}
.study-hero-icon{width:48px;height:48px;border-radius:11px;background:rgba(59,139,255,.15);border:0.5px solid rgba(59,139,255,.3);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;position:relative;z-index:1;transition:.2s}
.study-hero-icon.imp-principal{background:rgba(240,165,0,.16);border-color:rgba(240,165,0,.4)}
.study-hero-icon.imp-importante{background:rgba(59,139,255,.15);border-color:rgba(59,139,255,.3)}
.study-hero-icon.imp-complementar{background:rgba(139,89,255,.14);border-color:rgba(139,89,255,.3)}
.study-hero-info{flex:1;min-width:0;position:relative;z-index:1}
.study-hero-eyebrow{font-size:10px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.study-hero-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.study-hero-sub{font-size:12px;color:var(--text2);line-height:1.4}
.study-hero-pill{display:inline-block;font-size:10px;padding:2px 8px;border-radius:5px;background:rgba(59,139,255,.15);color:var(--blue2);border:0.5px solid rgba(59,139,255,.25);margin-top:5px;font-weight:500}
.study-hero-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0;position:relative;z-index:1}
.study-immersion-btn{background:transparent;border:0.5px solid rgba(59,139,255,.3);color:var(--blue2);padding:8px 14px;border-radius:8px;font-size:12px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.study-immersion-btn:hover{background:rgba(59,139,255,.1);color:var(--text);border-color:var(--blue);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.study-immersion-btn.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 16px rgba(0,0,0,.35)}
.study-immersion-btn span:first-child{font-size:15px}
@media(max-width:720px){
  .study-hero{flex-direction:column;align-items:flex-start;padding:16px 18px}
  .study-hero-icon{width:48px;height:48px;font-size:24px}
  .study-hero-title{font-size:18px;white-space:normal}
  .study-hero-actions{flex-direction:row;align-self:stretch;justify-content:flex-end}
}

/* Display do timer com anel circular */
.timer-ring-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:200px;height:200px;flex-shrink:0;margin:0 auto}
.timer-ring-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.timer-ring-bg{fill:none;stroke:var(--bg4);stroke-width:8}
.timer-ring-fg{fill:none;stroke:var(--blue);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.16,1,.3,1),stroke .3s}
.timer-ring-fg.over{stroke:var(--green)}
.timer-ring-fg.way-over{stroke:var(--amber)}
.timer-ring-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:16px;max-width:82%}
.timer-display-big{font-family:'Syne',sans-serif;font-size:30px;font-weight:700;color:var(--text3);letter-spacing:.02em;line-height:1;transition:.3s;font-variant-numeric:tabular-nums;white-space:nowrap}
.timer-display-big.running{color:var(--blue);text-shadow:0 0 24px rgba(0,0,0,.35)}
.timer-display-big.over{color:var(--green);text-shadow:0 0 24px rgba(29,185,122,.3)}
.timer-display-big.way-over{color:var(--amber)}
.timer-plan-label{font-size:8px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-top:4px;opacity:.8}
.timer-plan-value{font-size:10px;color:var(--text2);font-weight:500;margin-top:1px}
.timer-xp-estimate{font-size:9px;color:var(--blue2);font-weight:600;margin-top:4px;display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .3s}
.timer-xp-estimate.show{opacity:1}
.timer-xp-estimate-icon{font-size:9px}

/* Layout do timer card centralizado em volta do anel */
.timer-card-new{background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:16px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;transition:.3s;width:100%;max-width:100%}
/* Celular: empilha os selects (não cabem 3 colunas em telas estreitas) e aperta o padding */
@media(max-width:540px){
  .timer-grid{grid-template-columns:1fr;gap:10px}
  .timer-card,.timer-card-new{padding:16px 14px}
}
.timer-card-new.is-running{border-color:rgba(59,139,255,.25);background:linear-gradient(180deg,#0A1525 0%,#0D1828 100%)}
.timer-context-row{font-size:12px;color:var(--text3);text-align:center;min-height:18px}
.timer-context-row.is-running{color:var(--text2);font-weight:500}

/* Linha estática (substitui dropdowns durante sessão) */
.timer-static-config{display:none;align-items:center;justify-content:center;gap:10px;padding:10px 14px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:9px;font-size:12px;color:var(--text2);width:100%;flex-wrap:wrap;animation:fade-in .3s}
.timer-card-new.is-running .timer-static-config{display:flex}
.timer-card-new.is-running .timer-grid{display:none}
.timer-static-pill{padding:3px 9px;border-radius:5px;background:var(--bg4);font-size:11px;color:var(--text)}
.timer-static-sep{color:var(--text3);opacity:.5}
@keyframes fade-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* Botão "Concluir sessão" verde (ex-Finalizar vermelho) */
.timer-btn.finish-success{background:rgba(29,185,122,.12);color:var(--green);border:0.5px solid rgba(29,185,122,.3);font-weight:600}
.timer-btn.finish-success:hover{background:rgba(29,185,122,.2);border-color:var(--green)}
.timer-btn.finish-success.is-active{background:var(--green);color:#fff;border-color:var(--green)}
.timer-btn.finish-success.is-active:hover{background:#22D086}

/* Toast de marco do plano cumprido */
.plan-celebration-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.85);background:linear-gradient(135deg,#1DB97A 0%,#0F9B5E 100%);color:#fff;padding:20px 32px;border-radius:14px;box-shadow:0 20px 60px rgba(29,185,122,.4),0 0 0 1px rgba(255,255,255,.15) inset;z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .4s cubic-bezier(.16,1.5,.3,1);text-align:center;min-width:280px}
.plan-celebration-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto}
.plan-celebration-icon{font-size:36px;margin-bottom:6px;display:block}
.plan-celebration-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;margin-bottom:4px}
.plan-celebration-sub{font-size:13px;opacity:.92;line-height:1.4}
.plan-celebration-confetti{position:absolute;width:8px;height:8px;border-radius:2px;animation:confetti-fall 1.6s ease-out forwards;pointer-events:none}
@keyframes confetti-fall{
  0%{transform:translateY(0) rotate(0deg);opacity:1}
  100%{transform:translateY(120px) rotate(360deg);opacity:0}
}

/* Theater mode reformulado: esconde de fato sidebar/header durante imersão */
body.theater-mode .sidebar{opacity:0;pointer-events:none;transform:translateX(-12px);transition:.3s}
body.theater-mode .main{margin-left:0;padding-left:0}
body.theater-mode .page-header{opacity:0;height:0;margin:0;padding:0;overflow:hidden;transition:.3s}
body.theater-mode .study-shell .study-sidebar-card,
body.theater-mode .study-shell .checkpoint-config-card{opacity:0;pointer-events:none;transition:.3s}
body.theater-mode .session-commitment-bar{opacity:.7}

/* ============================== FIM BLOCO 11 ============================== */
.timer-more-item:hover .timer-more-item-icon{opacity:1}
.study-note{font-size:10px;color:var(--text3);margin-top:6px;text-align:center}
.study-sidebar-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:10px 12px}
.study-sidebar-title{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px}

/* FORM */
.form-group{display:flex;flex-direction:column;gap:5px}
.form-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.form-input{background:var(--bg3);border:0.5px solid var(--border2);border-radius:7px;padding:8px 10px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;width:100%}
.form-input:focus{border-color:var(--blue-dim)}
.form-input option{background:var(--bg3)}
.form-textarea{background:var(--bg3);border:0.5px solid var(--border2);border-radius:7px;padding:8px 10px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;width:100%;resize:none;height:60px}
.form-textarea:focus{border-color:var(--blue-dim)}
.btn-add{background:var(--blue);color:#fff;border:none;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;width:100%}
.btn-add:hover{background:var(--blue2)}

/* SESSÕES */
.sessoes-form{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:16px;margin-bottom:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr 80px;gap:10px;align-items:end}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr 90px;gap:10px;align-items:end}
.sessoes-list{display:flex;flex-direction:column;gap:6px}
.sessao-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:12px 14px;display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:12px}
.sessao-tipo{font-size:9px;padding:3px 8px;border-radius:5px;font-weight:500}
.sessao-tipo.video{background:rgba(59,139,255,.12);color:var(--blue2)}
.sessao-tipo.leitura{background:rgba(29,185,122,.1);color:var(--green)}
.sessao-tipo.questoes{background:rgba(240,165,0,.1);color:var(--amber)}
.sessao-tipo.revisao{background:rgba(139,89,255,.1);color:#a78bfa}
.sessao-tipo.resumo{background:rgba(255,77,106,.1);color:var(--red)}
.sessao-del{font-size:12px;color:var(--text3);cursor:pointer;padding:4px;border-radius:4px;transition:.15s}
.sessao-del:hover{color:var(--red);background:rgba(255,77,106,.1)}

/* ============================================================================
   SESSÕES V2 · Tela com filtros, busca, agrupamento por dia, edição.
   Mantém .sessao-card / .sessao-tipo legados, mas adiciona estrutura nova
   (.ses2-*) por cima para a UI atual.
   ============================================================================ */

/* Stats rápidos no topo */
.ses2-stats{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);margin-bottom:14px;flex-wrap:wrap}
.ses2-stat{display:flex;flex-direction:column;gap:2px;min-width:64px}
.ses2-stat-label{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.ses2-stat-value{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);line-height:1}
.ses2-stat-period{margin-left:auto;font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}

/* Botão expansível "Registrar manualmente" */
.ses2-add-wrap{margin-bottom:14px}
.ses2-add-toggle{width:100%;background:var(--bg2);border:0.5px dashed var(--border2);border-radius:var(--r2);padding:11px 16px;display:flex;align-items:center;gap:10px;color:var(--text2);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;transition:.15s}
.ses2-add-toggle:hover{color:var(--blue2);border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.ses2-add-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:rgba(59,139,255,.12);color:var(--blue2);font-size:14px;font-weight:600;line-height:1}
.ses2-add-label{flex:1;text-align:left}
.ses2-add-chevron{font-size:11px;color:var(--text3);transition:.2s}
.ses2-add-form{margin-top:10px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px}

/* Filtros e busca */
.ses2-filters{display:grid;grid-template-columns:1fr 200px 200px auto;gap:10px;margin-bottom:14px;align-items:center}
@media(max-width:900px){.ses2-filters{grid-template-columns:1fr 1fr;gap:8px}.ses2-period-pills{grid-column:1 / -1}}
.ses2-search{background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;padding:9px 14px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s}
.ses2-search:focus{border-color:var(--blue-dim);background:var(--bg3)}
.ses2-filter-select{background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;padding:9px 12px;color:var(--text2);font-size:12px;font-family:'DM Sans',sans-serif;outline:none;cursor:pointer;transition:.15s}
.ses2-filter-select:hover{color:var(--text);border-color:var(--border2)}
.ses2-filter-select:focus{border-color:var(--blue-dim)}
.ses2-period-pills{display:flex;gap:4px;background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;padding:3px}
.ses2-period-pill{padding:7px 12px;font-size:11px;font-weight:500;background:transparent;border:none;color:var(--text3);cursor:pointer;border-radius:6px;transition:.12s;font-family:'DM Sans',sans-serif}
.ses2-period-pill:hover{color:var(--text)}
.ses2-period-pill.active{background:var(--blue);color:#fff;font-weight:600}

/* Agrupamento por dia */
.ses2-day-group{margin-bottom:14px}
.ses2-day-header{display:flex;align-items:baseline;justify-content:space-between;padding:0 4px 7px;border-bottom:0.5px solid var(--border);margin-bottom:6px}
.ses2-day-label{font-family:'Syne',sans-serif;font-size:14px;font-weight:600;color:var(--text)}
.ses2-day-meta{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}

/* Card da sessão refinado (mantém .sessao-card existente, adiciona variantes) */
.sessao-card{grid-template-columns:auto 1fr auto auto !important}
.ses2-card-info{min-width:0}
.ses2-card-mat{font-size:13px;color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ses2-card-conteudo{font-size:10px;color:var(--text3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ses2-card-stats{font-size:10px;color:var(--text2);margin-top:3px}
.ses2-card-dur{font-size:13px;font-weight:500;font-family:'Syne',sans-serif;color:var(--text);white-space:nowrap}
.ses2-card-actions{display:flex;gap:4px;align-items:center}
.ses2-action-btn{width:28px;height:28px;border-radius:6px;border:0.5px solid transparent;background:transparent;color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.15s;padding:0}
.ses2-action-btn:hover{color:var(--blue2);background:rgba(59,139,255,.08);border-color:var(--blue-dim)}
.ses2-action-btn.danger:hover{color:var(--red);background:rgba(255,77,106,.08);border-color:rgba(255,77,106,.25)}

/* Modal de edição */
.ses2-edit-modal{position:fixed;inset:0;background:rgba(5,11,22,.75);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.ses2-edit-modal.open{display:flex}
.ses2-edit-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;width:100%;max-width:480px;box-shadow:0 24px 64px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}
.ses2-edit-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:0.5px solid var(--border)}
.ses2-edit-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text)}
.ses2-edit-close{width:28px;height:28px;border-radius:7px;background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:20px;line-height:1;transition:.15s;font-family:'DM Sans',sans-serif}
.ses2-edit-close:hover{color:var(--text);background:var(--bg3)}
.ses2-edit-body{padding:16px 18px;display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow-y:auto}
.ses2-edit-body .form-group:first-child{grid-column:1 / -1}
/* Mobile: campos do "Editar sessão" empilham em coluna única (não espremer selects/data). */
@media(max-width:768px){.ses2-edit-body{grid-template-columns:minmax(0,1fr)}}
.ses2-edit-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:0.5px solid var(--border);background:rgba(10,20,38,.4)}
.ses2-edit-btn{padding:9px 18px;border-radius:8px;border:none;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.ses2-edit-btn.ghost{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.ses2-edit-btn.ghost:hover{color:var(--text);border-color:var(--blue-dim);background:rgba(59,139,255,.06)}
.ses2-edit-btn.primary{background:var(--blue);color:#fff}
.ses2-edit-btn.primary:hover{background:var(--blue2);box-shadow:0 4px 12px rgba(0,0,0,.3)}

/* Mobile */
@media(max-width:720px){
  .sessao-card{grid-template-columns:auto 1fr auto !important;gap:10px}
  .ses2-card-dur{display:none}
  .ses2-stats{gap:10px}
  .ses2-stat{min-width:50px}
  .ses2-stat-value{font-size:15px}
  .ses2-stat-period{display:none}
}

/* ============================== QUESTÕES (banco curado pelo admin) ============================== */
/* Hub: contador + revisar + filtros + iniciar */
/* faixa "sessão em aberto" no hub de questões (14/08): o aluno saiu no meio e volta pra ela */
/* "Continue seu simulado" · 24/08/2026. Cartão fixo, não toast: toast some antes
   de a pessoa ler, e ela pode voltar ao Planner em qualquer tela. */
#simx-voltar{position:fixed;right:16px;bottom:16px;z-index:9600;max-width:330px;
  background:var(--bg2);border:1px solid var(--blue-dim);border-radius:14px;
  padding:14px 16px;box-shadow:0 18px 40px -16px rgba(0,0,0,.6);display:none}
#simx-voltar.on{display:block}
#simx-voltar .t{font-family:'Syne',sans-serif;font-size:14.5px;font-weight:700;color:var(--blue);margin:0 0 3px}
#simx-voltar .s{font-size:12.5px;color:var(--text2);margin:0 0 11px;line-height:1.45}
#simx-voltar .r{display:flex;gap:8px}
#simx-voltar button{font-family:inherit;font-size:13px;font-weight:600;border-radius:9px;
  padding:9px 14px;cursor:pointer;min-height:0}
#simx-voltar .go{background:var(--blue);color:#fff;border:0;flex:1}
#simx-voltar .no{background:transparent;color:var(--text3);border:1px solid var(--border)}
@media(max-width:768px){ #simx-voltar{left:12px;right:12px;bottom:76px;max-width:none} }
.qst-retomar-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--bg2);border:1px solid var(--blue-dim);border-radius:14px;padding:14px 18px;margin-bottom:14px}
.qst-retomar-txt{display:flex;flex-direction:column;gap:3px;flex:1;min-width:220px}
.qst-retomar-txt b{font-size:14px;color:var(--blue)}
.qst-retomar-txt span{font-size:12px;color:var(--text2)}
/* ── CADERNO DE ERROS · estante de cadernos (18/08) ─────────────────────────
   Mockup simples de caderno: capa escura com o tom da matéria, espiral à
   esquerda, etiqueta clara com o título do aluno e o nº de questões. */
.qcad-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:22px 18px;margin-top:6px}
.qcad-item{position:relative}
.qcad-note{position:relative;width:100%;aspect-ratio:3/4;border:0;padding:0;cursor:pointer;text-align:left;
  border-radius:6px 12px 12px 6px;overflow:hidden;display:flex;flex-direction:column;
  background:#141a28;
  background:linear-gradient(160deg,color-mix(in srgb,var(--ac) 30%,#171e2e),#141a28 55%,#0d1220);
  box-shadow:0 10px 24px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform .12s, box-shadow .12s}
.qcad-note::before{content:'';position:absolute;left:0;top:0;bottom:0;width:22px;
  background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.12));border-right:1px solid rgba(255,255,255,.08)}
.qcad-note::after{content:'';position:absolute;left:7px;top:16px;bottom:16px;width:8px;
  background-image:radial-gradient(circle at 4px 4px, rgba(255,255,255,.55) 2px, rgba(255,255,255,.12) 2.6px, transparent 3px);
  background-size:8px 16px;background-repeat:repeat-y}
.qcad-faixa{position:absolute;right:0;top:0;bottom:0;width:7px;background:var(--ac);opacity:.9}
/* Etiqueta (18/08, 2a versao): saiu a placa branca. Texto escuro e bold 800
   sobre branco translucido em cima de capa escura ficava com aspecto borrado,
   e o titulo era cortado no meio da palavra. Agora: tinta clara direto na
   capa, filete na cor da materia, Syne 700 (nao 800) maior, e corte limpo em
   3 linhas com reticencias. Comeca abaixo do botao ⋯ pra nao encostar nele. */
.qcad-etq{margin:42px 14px 0 34px;background:none;color:#fff;border-left:3px solid var(--ac);border-radius:0;padding:1px 0 1px 11px;min-height:56px}
.qcad-etq b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  font-family:'Syne',sans-serif;font-weight:700;font-size:16px;line-height:1.24;letter-spacing:-.015em;
  color:#F4F7FF;text-shadow:0 1px 3px rgba(0,0,0,.55);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.qcad-etq span{display:block;margin-top:7px;font-size:9.5px;color:rgba(212,225,250,.62);font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.qcad-rodape{margin:auto 16px 13px 34px;display:flex;align-items:baseline;gap:7px}
.qcad-rodape .n{font-family:'Syne',sans-serif;font-weight:800;font-size:22px;color:#fff}
.qcad-rodape .lbl{font-size:10.5px;color:rgba(255,255,255,.55)}
/* Quantas vencem hoje · o número que decide se vale a pena abrir o caderno */
.qcad-hoje{margin-left:auto;flex:none;font-size:9.5px;font-weight:800;letter-spacing:.04em;
  background:var(--ac);color:#0b1020;border-radius:999px;padding:3px 8px;white-space:nowrap}
.qcad-emdia{margin-left:auto;flex:none;font-size:9.5px;color:rgba(255,255,255,.42);white-space:nowrap}
.qcad-note:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06)}
.qcad-menu{position:absolute;top:8px;right:11px;z-index:2;background:rgba(10,14,24,.55);border:0;color:#dfe7f8;
  border-radius:8px;width:30px;height:30px;cursor:pointer;font-size:16px;line-height:1}
.qcad-menu:hover{background:rgba(10,14,24,.85)}
.qcad-pop{position:absolute;top:42px;right:8px;z-index:6;background:var(--bg2);border:1px solid var(--border);
  border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;min-width:184px;box-shadow:0 14px 30px rgba(0,0,0,.4)}
.qcad-pop button{background:none;border:0;color:var(--text);font:inherit;font-size:12.5px;text-align:left;padding:8px 10px;border-radius:7px;cursor:pointer}
.qcad-pop button:hover{background:var(--bg3)}
.qcad-novo{aspect-ratio:3/4;border:1.5px dashed var(--border2);border-radius:10px;background:none;color:var(--text3);
  font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;text-align:center}
.qcad-novo:hover{border-color:var(--blue);color:var(--text)}
.qcad-novo .mais{font-size:30px;line-height:1}
.qcad-novo input{width:100%;background:var(--bg2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit;font-size:12.5px}
.qcad-vazio{color:var(--text3);font-size:13.5px;line-height:1.7;padding:20px 4px 26px;max-width:56ch}
/* ── SRS do caderno · classificação de dificuldade (18/08, 2ª leva) ─────────
   Mesmo motor dos flashcards. Errou = 'again' automático (não pergunta nada);
   acertou = o aluno diz quanto custou, e isso decide quando ela volta. */
.qsrs-row{background:var(--bg2);border:0.5px solid var(--border);border-left:3px solid var(--blue);
  border-radius:12px;padding:13px 16px;margin-bottom:14px}
.qsrs-row.auto{border-left-color:var(--red)}
.qsrs-tit{font-size:12.5px;color:var(--text2);margin-bottom:10px}
.qsrs-auto{font-size:12.5px;color:var(--text2)}
.qsrs-auto b{color:var(--text)}
.qsrs-btns{display:flex;gap:9px;flex-wrap:wrap}
.qsrs-btn{flex:1 1 120px;min-width:110px;background:var(--bg3);border:1px solid var(--border);border-radius:10px;
  padding:9px 10px;cursor:pointer;font:inherit;color:var(--text);display:flex;flex-direction:column;gap:2px;
  align-items:center;transition:.14s}
.qsrs-btn b{font-family:'Syne',sans-serif;font-size:13.5px;font-weight:700}
.qsrs-btn span{font-size:10.5px;color:var(--text3);font-variant-numeric:tabular-nums}
.qsrs-btn.hard:hover{border-color:#f87171;background:rgba(248,113,113,.10)}
.qsrs-btn.good:hover{border-color:#facc15;background:rgba(250,204,21,.10)}
.qsrs-btn.easy:hover{border-color:#2dd4bf;background:rgba(45,212,191,.10)}
.qsrs-btn:disabled{cursor:default;opacity:.45}
.qsrs-btn.escolhido{opacity:1;border-color:var(--blue);background:rgba(59,139,255,.12)}
.qsrs-feito{font-size:12.5px;color:var(--text2)}
.qsrs-feito b{color:var(--blue2)}

/* ── Tirar do caderno · discreto e com segunda confirmação ────────────────── */
.qcadrm-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:12px;color:var(--text3);margin:-4px 0 14px;padding:0 2px}
.qcadrm-row.confirmando{color:var(--text2)}
.qcadrm-link{background:none;border:0;padding:0;font:inherit;font-size:12px;color:var(--text3);
  text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.qcadrm-link:hover{color:var(--text2)}
.qcadrm-sim{background:rgba(255,77,106,.12);border:1px solid rgba(255,77,106,.4);color:#ff8fa3;
  border-radius:8px;padding:5px 12px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.qcadrm-sim:hover{background:rgba(255,77,106,.2)}
.qcadrm-nao{background:none;border:1px solid var(--border2);color:var(--text2);
  border-radius:8px;padding:5px 12px;font:inherit;font-size:12px;cursor:pointer}
.qcadrm-nao:hover{border-color:var(--blue);color:var(--text)}
.qcadrm-ok{color:var(--text2)}

/* ── Suas observações + comentários dos alunos (18/08, 2ª leva) ─────────────
   O balão nasce SÓ depois de responder e pulsa 3 vezes (e para) quando tem
   algo guardado ali. Pulsar pra sempre vira ruído e o olho aprende a ignorar. */
.qst-enun-wrap{position:relative}
.qst-runner-enunciado.tem-bolha{padding-right:74px}
.qobs-bolha{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;
  background:var(--bg3);border:1px solid var(--border2);color:var(--text2);font-size:18px;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;z-index:2}
.qobs-bolha:hover{border-color:var(--blue);color:var(--text);transform:translateY(-1px)}
.qobs-bolha.tem{border-color:rgba(240,165,0,.55);color:var(--brand-2);background:rgba(240,165,0,.10)}
.qobs-bolha.pulsa{animation:qobsPulsa 1.1s ease-in-out 3}
@keyframes qobsPulsa{
  0%,100%{box-shadow:0 0 0 0 rgba(240,165,0,.45)}
  50%{box-shadow:0 0 0 9px rgba(240,165,0,0)}
}
.qobs-bolha-n{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;
  background:var(--brand);color:#101418;font-size:10px;font-weight:800;line-height:17px;text-align:center}
.qobs-wrap{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;margin-bottom:14px;overflow:hidden}
/* 🔴 27/08/2026 · A FILEIRA VIROU BARRA DE AÇÕES, no espírito do QC.
   Ele mandou os prints: "veja como é limpo". Duas mudanças bastaram.
   1) As abas deixaram de ser `flex:1`: esticadas, três abas viravam três blocos
      grandes disputando com o enunciado. Agora ocupam o que o texto pede e
      encostam à esquerda, como uma legenda.
   2) O ativo deixou de ser pílula com fundo e virou SUBLINHADO. Fundo é peso;
      sublinhado é indicação. No QC a cor é privilégio do que se clica, e é isso
      que faz a tela parecer calma mesmo com mais informação que a nossa. */
.qobs-tabs{display:flex;gap:4px;padding:4px 6px 0;border-bottom:0.5px solid var(--border);
  overflow-x:auto;scrollbar-width:none}
.qobs-tabs::-webkit-scrollbar{display:none}
/* ⚠️ Aba inativa em `--text3` dava contraste 2,9 nos dois temas, abaixo do
   mínimo legível. Passava quando era enfeite; agora é a porta da estatística e
   dos comentários, então tem de ler. `--text2` põe em 5,7. */
.qobs-tab{flex:none;background:none;border:0;border-bottom:2px solid transparent;border-radius:8px 8px 0 0;
  padding:9px 12px;font:inherit;font-size:12.5px;white-space:nowrap;
  color:var(--text2);cursor:pointer;display:flex;align-items:center;gap:7px;transition:.14s}
.qobs-tab:hover{color:var(--text);background:var(--bg3)}
.qobs-tab.on{color:var(--text);font-weight:600;border-bottom-color:var(--brand);background:none}

/* ── Painel de estatística da questão ─────────────────────────────────────── */
.qest-topo{display:flex;align-items:center;gap:14px;padding:2px 0 12px}
.qest-num{font-family:'Syne',sans-serif;font-size:34px;font-weight:700;line-height:1;
  font-variant-numeric:tabular-nums}
.qest-topo.bom     .qest-num{color:#2dd4bf}
.qest-topo.medio   .qest-num{color:#f0a500}
.qest-topo.dificil .qest-num{color:var(--red)}
.qest-lbl{font-size:12.5px;color:var(--text2);line-height:1.5}
.qest-lbl span{color:var(--text3);font-size:11.5px}
.qest-barras{display:flex;flex-direction:column;gap:6px;padding:2px 0 4px}
.qest-linha{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text2)}
.qest-letra{flex:none;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;
  background:var(--bg3);border:0.5px solid var(--border);font-weight:700;font-size:11px;color:var(--text2)}
.qest-trilho{flex:1;height:9px;border-radius:999px;background:var(--bg3);overflow:hidden}
.qest-fita{display:block;height:100%;border-radius:999px;background:var(--text3);min-width:2px}
.qest-qtd{flex:none;min-width:26px;text-align:right;font-variant-numeric:tabular-nums}
/* a alternativa CERTA se identifica sozinha · sem legenda, sem texto extra */
.qest-linha.certa .qest-letra{background:rgba(45,212,191,.14);border-color:rgba(45,212,191,.5);color:#2dd4bf}
.qest-linha.certa .qest-fita{background:#2dd4bf}
.qest-eu{margin-top:10px;padding-top:10px;border-top:0.5px solid var(--border);
  font-size:12.5px;color:var(--text2)}
.qest-eu b{color:var(--text)}
#view-questoes.qst-light .qest-linha.certa .qest-letra{background:#D8F5EF;border-color:#7CD8C7;color:#0F766E}
#view-questoes.qst-light .qest-linha.certa .qest-fita{background:#0F766E}
#view-questoes.qst-light .qest-topo.bom .qest-num{color:#0F766E}
@media (pointer: coarse), (max-width:960px){ .qobs-tab{font-size:13px;padding:10px 12px} }
.qobs-tab .n{font-size:10.5px;font-weight:700;background:var(--bg4);color:var(--text2);border-radius:9px;padding:1px 7px}
.qobs-tab.on .n{background:rgba(59,139,255,.2);color:var(--blue2)}
.qobs-corpo{padding:13px 15px 15px}
.qobs-corpo.fechado{display:none}
.qobs-ta{width:100%;min-height:88px;background:var(--bg3);border:1px solid var(--border);color:var(--text);
  border-radius:10px;padding:11px 12px;font:inherit;font-size:13.5px;line-height:1.6;resize:vertical}
.qobs-ta:focus{outline:none;border-color:var(--blue)}
.qobs-rodape{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.qobs-dica{font-size:11px;color:var(--text3);flex:1;min-width:150px}
.qobs-salvo{font-size:11.5px;color:#2dd4bf;opacity:0;transition:opacity .2s}
.qobs-salvo.on{opacity:1}
.qobs-btn{background:var(--blue);border:0;color:#fff;border-radius:9px;padding:8px 15px;font:inherit;
  font-size:12.5px;font-weight:700;cursor:pointer}
.qobs-btn:hover{filter:brightness(1.08)}
.qobs-btn.ghost{background:none;border:1px solid var(--border2);color:var(--text2)}
.qobs-rel{margin-top:12px;border-top:0.5px dashed var(--border2);padding-top:10px}
.qobs-rel-cab{background:none;border:0;padding:0;font:inherit;font-size:12px;color:var(--blue2);cursor:pointer;
  display:flex;align-items:center;gap:6px}
.qobs-rel-cab:hover{text-decoration:underline}
.qobs-rel-lista{margin-top:9px;display:flex;flex-direction:column;gap:8px}
.qobs-rel-item{background:var(--bg3);border-radius:9px;padding:9px 11px;font-size:12.5px;color:var(--text2);
  line-height:1.55;white-space:pre-wrap;word-break:break-word;border-left:2px solid var(--border2)}
.qobs-rel-item .qd{display:block;font-size:10px;color:var(--text3);margin-top:5px}
.qobs-com{display:flex;gap:10px;padding:9px 0}
.qobs-com + .qobs-com{border-top:0.5px solid var(--border)}
.qobs-com .av{flex:none;width:30px;height:30px;border-radius:50%;background:var(--bg4);color:var(--text2);
  font-family:'Syne',sans-serif;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.qobs-com .bd{min-width:0}
.qobs-com .nm{font-size:12px;font-weight:700;color:var(--text)}
.qobs-com .dt{font-size:10px;color:var(--text3);margin-left:6px;font-weight:400}
.qobs-com .tx{font-size:13px;color:var(--text2);line-height:1.6;margin-top:3px;white-space:pre-wrap;word-break:break-word}
.qobs-vazio{font-size:12.5px;color:var(--text3);line-height:1.6;padding:6px 0 10px}
@media(max-width:600px){
  .qst-runner-enunciado.tem-bolha{padding-right:24px;padding-top:52px}
  .qobs-bolha{top:9px;right:10px;width:38px;height:38px;font-size:16px}
  .qsrs-btn{flex:1 1 100%}
}

/* modal "enviar pro caderno" (runner) */
.qcadp-fundo{position:fixed;inset:0;z-index:100050;background:rgba(4,8,18,.66);display:flex;align-items:center;justify-content:center;padding:16px}
.qcadp{background:var(--bg2);border:1px solid var(--border);border-radius:16px;width:min(440px,100%);max-height:82vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.qcadp-topo{display:flex;align-items:flex-start;gap:10px;padding:15px 17px 11px;border-bottom:1px solid var(--border)}
.qcadp-topo h3{font-family:'Syne',sans-serif;font-size:15px;font-weight:800;margin:0;color:var(--text)}
.qcadp-topo p{margin:3px 0 0;font-size:11.5px;color:var(--text3)}
.qcadp-x{margin-left:auto;background:none;border:0;color:var(--text3);font-size:20px;cursor:pointer;line-height:1;padding:0 2px}
.qcadp-corpo{padding:12px 16px 16px;overflow:auto}
.qcadp-tit{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin:10px 0 6px}
.qcadp-op{display:flex;align-items:center;gap:9px;width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:6px;color:var(--text);font:inherit;font-size:13px;cursor:pointer;text-align:left}
.qcadp-op:hover{border-color:var(--blue)}
.qcadp-op .n{margin-left:auto;font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums;flex:none}
.qcadp-op .sug{flex:none;font-size:9px;font-weight:800;letter-spacing:.08em;background:rgba(59,139,255,.15);color:var(--blue);border-radius:999px;padding:2px 7px}
.qcadp-linha{display:flex;gap:8px;margin-top:4px}
.qcadp-linha input{flex:1;min-width:0;background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:9px 11px;font:inherit;font-size:13px}
.qcadp-linha button{background:var(--blue);border:0;color:#fff;border-radius:9px;padding:9px 14px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}
/* Aviso de limite do plano · substitui o campo 'Criar' quando a RLS não deixaria */
.qcadp-limite{background:rgba(240,165,0,.08);border:1px solid rgba(240,165,0,.28);border-radius:10px;
  padding:10px 12px;font-size:12.5px;color:var(--text2);line-height:1.55}
.qcadp-limite b{color:var(--brand-2)}
@media(max-width:600px){ .qcad-grade{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  /* no celular a capa tem ~105px uteis pro titulo: fonte um pouco menor e 4
     linhas em vez de 3, senao nome de materia grande vira reticencia sozinha */
  .qcad-etq{margin:38px 10px 0 30px;padding-left:9px}
  .qcad-etq b{font-size:14.5px;-webkit-line-clamp:4}
  .qcad-etq span{font-size:9px;margin-top:6px} }
.qst-ctx-chip{display:inline-flex;align-items:center;gap:6px;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  background:rgba(230,179,90,.12);border:1px solid rgba(230,179,90,.4);color:#e6b35a;border-radius:999px;
  padding:4px 12px;font-size:11.5px;font-weight:700}

/* 🔴 24/08/2026 · HIERARQUIA. O contador estava em 34px e o enunciado da
   questão em 16,5px: a coisa MAIOR da tela era um número que não ajuda a
   estudar. No site o mesmo número era texto pequeno numa barra fina, o cartão
   de "erradas pra revisar" não existia e o placar vivia na tela de Estatísticas.
   Não removi nada (seria migrar tirando função, o erro de 19/08) — encolhi, pra
   a questão voltar a ser a estrela. */
/* "Atualizar" · 24/08/2026. O app do site tinha (`#rkrefresh`) e o Planner
   perdeu na migração. Sem ele, ver um número mudar exigia recarregar 2,9 MB
   num tablet. */
.p360-atualizar{display:inline-flex;align-items:center;gap:7px;background:transparent;
  border:1px solid var(--border);color:var(--text2);border-radius:9px;padding:7px 13px;
  font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;min-height:0;
  transition:.15s}
.p360-atualizar:hover{border-color:var(--blue);color:var(--blue)}
.p360-atualizar[disabled]{opacity:.55;cursor:default}
.p360-atualizar .gira{display:inline-block;transition:transform .5s}
.p360-atualizar.rodando .gira{transform:rotate(360deg)}
.qst-hub-toprow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;align-items:stretch}
@media(max-width:720px){.qst-hub-toprow{grid-template-columns:1fr}}
.qst-counter-card{background:var(--bg2);border:0.5px solid var(--blue-dim);border-radius:14px;padding:11px 15px;display:flex;align-items:baseline;gap:14px}
.qst-counter-num{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--blue2);line-height:1}
.qst-counter-lbl{font-size:12px;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;font-weight:500}

.qst-revisar-card{background:linear-gradient(135deg,rgba(255,77,106,.12),rgba(255,77,106,.04));border:0.5px solid rgba(255,77,106,.35);border-radius:14px;padding:10px 14px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif;color:var(--text);text-align:left}
.qst-revisar-card:hover:not(:disabled){border-color:var(--red);background:linear-gradient(135deg,rgba(255,77,106,.20),rgba(255,77,106,.06));transform:translateY(-1px);box-shadow:0 4px 14px rgba(255,77,106,.18)}
.qst-revisar-card:disabled{cursor:not-allowed;opacity:.5;border-color:var(--border2);background:var(--bg2)}
.qst-revisar-icon{font-size:18px;line-height:1;flex-shrink:0}
.qst-revisar-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.qst-revisar-num{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:#ff6680;line-height:1.05}
.qst-revisar-card:disabled .qst-revisar-num{color:var(--text3)}
.qst-revisar-lbl{font-size:11px;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;font-weight:600}

.qst-hub-stats{display:flex;flex-wrap:wrap;gap:14px;padding:10px 16px;background:var(--bg2);border:0.5px solid var(--border);border-radius:11px;margin-bottom:16px;font-size:11.5px;color:var(--text2);align-items:center;font-size:12px;opacity:.72}
.qst-hub-stats:empty{display:none}
.qst-hub-stats-item{display:inline-flex;align-items:center;gap:6px}
.qst-hub-stats-item strong{font-family:'Syne',sans-serif;font-size:13px;color:var(--text);font-weight:600}
.qst-hub-stats-item.ok strong{color:#2dd4bf}
.qst-hub-stats-item.err strong{color:var(--red)}

/* Chip de histórico no runner */
.qst-meta-chip.hist{background:rgba(255,170,40,.10);color:#ffaa28;border-color:rgba(255,170,40,.4)}
.qst-meta-chip.hist-ok{background:rgba(45,212,191,.10);color:#2dd4bf;border-color:rgba(45,212,191,.4)}

/* O filtro antigo (.qst-filters em grade + dropdowns .qst-multi) foi
   substituído pelo Painel Lapidar (caixa de 3 zonas). CSS dele: .qlap-* */

.qst-hub-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:14px}
/* ══ OS DOIS CAMINHOS · 22/08/2026 ═══════════════════════════════════
   Mesma largura pros dois: a escolha é do aluno, e um card maior decidiria por
   ele. Quem diferencia é a cor do primário, não o tamanho. */
.qst-caminhos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 20px}
.qst-caminho{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:16px 18px;
  border-radius:14px;border:1px solid var(--border2);background:var(--bg2);color:var(--text);
  font-family:'DM Sans',sans-serif;cursor:pointer;transition:border-color .14s,background .14s,transform .12s}
.qst-caminho:hover:not(:disabled){border-color:var(--blue);transform:translateY(-1px)}
.qst-caminho:disabled{opacity:.5;cursor:not-allowed;transform:none}
.qst-caminho.principal{background:var(--blue);border-color:var(--blue);color:#fff}
.qst-caminho.principal:hover:not(:disabled){filter:brightness(1.07);border-color:var(--blue)}
.qst-caminho .qc-ico{flex:none;font-size:17px;line-height:1.3}
.qst-caminho .qc-tx{min-width:0}
.qst-caminho b{display:block;font-family:'Syne',sans-serif;font-size:15px;font-weight:700;margin-bottom:3px}
.qst-caminho small{display:block;font-size:12px;line-height:1.45;color:var(--text2)}
.qst-caminho.principal small{color:rgba(255,255,255,.82)}
@media(max-width:768px){ .qst-caminhos{grid-template-columns:1fr} }
.qst-meta-select{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px}
.qst-meta-select-lbl{font-size:13px;color:var(--text2);font-weight:600}
.qst-meta-opts{display:inline-flex;gap:6px}
.qst-meta-opt{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;color:var(--text2);background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:6px 14px;cursor:pointer;transition:.14s;-webkit-tap-highlight-color:transparent}
.qst-meta-opt:hover{border-color:var(--blue);color:var(--text)}
.qst-meta-opt.sel{background:var(--blue);color:#fff;border-color:var(--blue)}

.qst-btn{padding:10px 18px;border-radius:9px;border:none;font-size:13.5px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.qst-btn.primary{background:var(--blue);color:#fff}
.qst-btn.primary:hover{background:var(--blue2);box-shadow:0 4px 14px rgba(0,0,0,.3);transform:translateY(-1px)}
.qst-btn.primary:disabled{background:var(--bg3);color:var(--text3);cursor:not-allowed;transform:none;box-shadow:none}
.qst-btn.ghost{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.qst-btn.ghost:hover{color:var(--text);border-color:var(--blue-dim);background:rgba(59,139,255,.06)}
.qst-btn.caderno{background:rgba(255,170,40,.10);color:#ffaa28;border:0.5px solid rgba(255,170,40,.35)}
.qst-btn.caderno:hover{background:rgba(255,170,40,.18);border-color:#ffaa28}
.qst-btn.caderno.pulse{animation:qstCadernoPulse 1.4s ease-in-out infinite}
.qst-btn.caderno.added{background:rgba(45,212,191,.14);color:#2dd4bf;border-color:rgba(45,212,191,.45);animation:none;pointer-events:none}
@keyframes qstCadernoPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,170,40,.45);transform:translateY(0)}
  50%{box-shadow:0 0 0 8px rgba(255,170,40,0);transform:translateY(-2px)}
}

.qst-empty{background:var(--bg2);border:0.5px dashed var(--border2);border-radius:14px;padding:36px 22px;text-align:center}
.qst-empty-icon{font-size:36px;margin-bottom:10px}
.qst-empty-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text);margin-bottom:6px}
.qst-empty-sub{font-size:12px;color:var(--text3);max-width:420px;margin:0 auto;line-height:1.5}

/* Runner (modo sessão) */
.qst-runner-top{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:0.5px solid var(--border)}
.qst-runner-exit{width:32px;height:32px;border-radius:8px;border:0.5px solid var(--border2);background:transparent;color:var(--text2);font-size:18px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center}
.qst-runner-exit:hover{color:var(--red);border-color:rgba(255,77,106,.45);background:rgba(255,77,106,.06)}
.qst-runner-progress{display:flex;align-items:center;gap:10px;min-width:0}
.qst-runner-progress-bar{flex:1;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden;min-width:80px}
.qst-runner-progress-fill{height:100%;background:var(--blue);border-radius:3px;width:0;transition:.3s}
.qst-runner-progress-lbl{font-size:11px;color:var(--text3);font-family:'DM Sans',sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap}
.qst-runner-stats{display:flex;gap:10px;font-family:'Syne',sans-serif;font-size:12px;font-weight:600}
.qst-runner-stat{padding:4px 10px;border-radius:8px;display:inline-flex;align-items:center;gap:4px}
.qst-runner-stat.ok{background:rgba(45,212,191,.12);color:#2dd4bf}
.qst-runner-stat.err{background:rgba(255,77,106,.12);color:var(--red)}
.qst-runner-stat.skip{background:var(--bg3);color:var(--text3)}

.qst-runner-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.qst-meta-chip{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border-radius:6px;background:var(--bg3);color:var(--text2);border:0.5px solid var(--border)}
.qst-meta-chip.tipo{background:rgba(59,139,255,.10);color:var(--blue2);border-color:var(--blue-dim)}
.qst-meta-chip.origem-real{background:rgba(167,139,250,.12);color:#a78bfa;border-color:rgba(167,139,250,.4)}
.qst-meta-chip.origem-inedita{background:rgba(240,165,0,.10);color:#f0a500;border-color:rgba(240,165,0,.4)}
.qst-meta-chip.dif-facil{background:rgba(45,212,191,.10);color:#2dd4bf;border-color:rgba(45,212,191,.4)}
.qst-meta-chip.dif-media{background:rgba(240,165,0,.10);color:#f0a500;border-color:rgba(240,165,0,.4)}
.qst-meta-chip.dif-dificil{background:rgba(248,113,113,.10);color:#f87171;border-color:rgba(248,113,113,.4)}

.qst-runner-enunciado{position:relative;background:var(--bg2);border:0.5px solid var(--border);border-left:3px solid var(--blue);border-radius:14px;padding:20px 24px 20px 26px;margin-bottom:16px;font-size:15.5px;line-height:1.72;color:#fff;font-weight:500;white-space:pre-wrap;word-break:break-word}
.qst-runner-enunciado::before{content:'ENUNCIADO';position:absolute;top:-9px;left:18px;background:var(--bg);padding:0 8px;font-family:'Syne',sans-serif;font-size:9.5px;font-weight:700;letter-spacing:.12em;color:var(--blue2)}
.qst-report-row{display:flex;justify-content:center;margin-top:14px;padding-top:12px}
.qst-report-trigger{background:transparent;border:0;color:var(--text3,#888);font-size:12px;cursor:pointer;padding:6px 10px;border-radius:6px;font-family:inherit;transition:.15s}
.qst-report-trigger:hover{background:rgba(255,255,255,.04);color:var(--text2,#bbb)}
.qst-report-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:9999;align-items:center;justify-content:center;padding:20px}
.qst-report-modal.open{display:flex}
.qst-report-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}
.qst-report-header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border)}
.qst-report-title{font-weight:600;font-size:16px;color:#fff}
.qst-report-close{background:transparent;border:0;color:var(--text2);font-size:22px;cursor:pointer;width:28px;height:28px;border-radius:6px;line-height:1}
.qst-report-close:hover{background:rgba(255,255,255,.06);color:#fff}
.qst-report-body{padding:18px 22px;display:flex;flex-direction:column;gap:14px}
.qst-report-field{display:flex;flex-direction:column;gap:6px}
.qst-report-label{font-size:12px;color:var(--text2);font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.qst-report-tipos{display:flex;flex-direction:column;gap:6px}
.qst-report-tipos label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px;cursor:pointer;padding:6px 8px;border-radius:6px}
.qst-report-tipos label:hover{background:rgba(255,255,255,.03)}
.qst-report-tipos input{accent-color:var(--blue)}
.qst-report-textarea{width:100%;box-sizing:border-box;background:var(--bg);border:0.5px solid var(--border);border-radius:8px;padding:10px 12px;color:#fff;font-size:13.5px;font-family:inherit;line-height:1.5;resize:vertical;min-height:90px}
.qst-report-textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(99,102,241,.18)}
.qst-report-context{font-size:11.5px;color:var(--text3,#777);background:rgba(255,255,255,.02);border-radius:6px;padding:8px 10px;font-family:monospace}
.qst-report-footer{display:flex;gap:10px;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--border)}
.qst-runner-textobase{position:relative;background:linear-gradient(180deg,rgba(99,102,241,.06),rgba(99,102,241,.02));border:0.5px solid var(--border);border-left:3px solid var(--blue2,#a78bfa);border-radius:14px;padding:22px 24px 18px;margin-bottom:14px;color:#e5e7eb;font-size:14.5px;line-height:1.68}
.qst-runner-textobase::before{content:'TEXTO-BASE';position:absolute;top:-9px;left:18px;background:var(--bg);padding:0 8px;font-family:'Syne',sans-serif;font-size:9.5px;font-weight:700;letter-spacing:.12em;color:var(--blue2,#a78bfa)}
.qst-tb-titulo{font-weight:700;font-size:15.5px;color:#fff;margin:0 0 8px;letter-spacing:.01em}
.qst-tb-conteudo{white-space:pre-wrap;word-break:break-word;font-weight:400}
.qst-tb-imagens{margin:10px 0 4px;display:flex;flex-direction:column;gap:8px}
.qst-tb-imagens img{max-width:100%;max-height:380px;border-radius:8px;border:1px solid var(--border);object-fit:contain;align-self:center}
.qst-tb-fonte{margin-top:10px;font-size:11.5px;color:var(--text3,#888);font-style:italic;border-top:0.5px dashed var(--border);padding-top:8px}
.qst-search-wrap{margin:14px 0 6px}
.qst-search-input{width:100%;box-sizing:border-box;background:var(--bg2);border:0.5px solid var(--border);border-radius:10px;padding:11px 16px;color:#fff;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}
.qst-search-input:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(99,102,241,.18)}
.qst-search-input::placeholder{color:var(--text3,#555)}
.qst-counter-loading{font-size:13px;color:var(--text3,#666);margin-left:6px;vertical-align:middle}
#qst-runner-imagens{margin:12px 0 4px}
.qst-img-figura{text-align:center;margin:0}
.qst-img-figura img{max-width:100%;max-height:420px;border-radius:8px;border:1px solid var(--border);object-fit:contain}
.qst-img-figura figcaption{font-size:11px;color:var(--text2,#888);margin-top:5px;font-style:italic}

.qst-runner-alts{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.qst-alt{background:var(--bg2);border:0.5px solid var(--border);border-radius:11px;padding:14px 16px;color:var(--text);font-size:14px;line-height:1.55;cursor:pointer;display:flex;align-items:flex-start;gap:12px;transition:.15s;text-align:left;font-family:'DM Sans',sans-serif;width:100%}
.qst-alt:hover:not(:disabled){border-color:var(--blue-dim);background:var(--bg3);transform:translateY(-1px)}
.qst-alt:disabled{cursor:default;opacity:.8}
.qst-alt-letter{flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--bg3);border:0.5px solid var(--border2);color:var(--text2);font-weight:700;font-family:'Syne',sans-serif;display:inline-flex;align-items:center;justify-content:center;font-size:13px;transition:.15s}
.qst-alt:hover:not(:disabled) .qst-alt-letter{background:var(--blue);color:#fff;border-color:var(--blue)}
.qst-alt-text{flex:1;min-width:0;word-break:break-word;padding-top:5px}

.qst-alt.qst-alt-ce{padding:18px 20px;justify-content:center;font-size:16px;font-weight:600;font-family:'Syne',sans-serif}
.qst-alt.qst-alt-ce .qst-alt-letter{width:auto;height:auto;background:transparent;border:none}

.qst-alt.correct{border-color:rgba(45,212,191,.6);background:rgba(45,212,191,.10);color:#2dd4bf}
.qst-alt.correct .qst-alt-letter{background:#2dd4bf;color:#0a1426;border-color:#2dd4bf}
.qst-alt.wrong{border-color:rgba(255,77,106,.55);background:rgba(255,77,106,.08);color:#ff6680}
.qst-alt.wrong .qst-alt-letter{background:var(--red);color:#fff;border-color:var(--red)}

/* Selected (antes de confirmar) */
.qst-alt.selected{border-color:var(--blue);background:rgba(59,139,255,.10);box-shadow:0 0 0 1px var(--blue) inset}
.qst-alt.selected .qst-alt-letter{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Eliminada (riscada pela tesoura) */
.qst-alt.eliminada{opacity:.45;background:transparent}
.qst-alt.eliminada .qst-alt-text{text-decoration:line-through;color:var(--text3)}
.qst-alt.eliminada .qst-alt-letter{text-decoration:line-through;color:var(--text3)}
.qst-alt.eliminada:hover:not(:disabled){transform:none;border-color:var(--border);background:transparent}

/* Botão de eliminar/tesoura */
.qst-alt-wrap{position:relative;display:flex;align-items:stretch;gap:6px}
.qst-alt-wrap .qst-alt{flex:1;min-width:0}
.qst-alt-cut{flex-shrink:0;width:36px;border-radius:11px;background:transparent;border:0.5px solid var(--border2);color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:.15s;padding:0}
.qst-alt-cut:hover{color:var(--red);border-color:rgba(255,77,106,.45);background:rgba(255,77,106,.06)}
.qst-alt-wrap.is-eliminada .qst-alt-cut{color:#ffaa28;border-color:rgba(255,170,40,.4);background:rgba(255,170,40,.08)}
.qst-alt-wrap.is-eliminada .qst-alt-cut:hover{color:#fff;background:rgba(255,170,40,.18)}
.qst-alt-cut-icon{display:inline-block;line-height:1}
.qst-alts-hint{font-size:11.5px;color:var(--text2);background:rgba(255,170,40,.07);border:0.5px solid rgba(255,170,40,.2);border-radius:8px;padding:7px 11px;margin-bottom:10px;line-height:1.4}

/* Botão Confirmar resposta */
.qst-btn.confirm{background:var(--blue);color:#fff}
.qst-btn.confirm:hover:not(:disabled){background:var(--blue2);box-shadow:0 4px 14px rgba(0,0,0,.3);transform:translateY(-1px)}
.qst-btn.confirm:disabled{background:var(--bg3);color:var(--text3);cursor:not-allowed}

.qst-runner-feedback{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:14px}
.qst-feedback-result{font-family:'Syne',sans-serif;font-size:14px;font-weight:600;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.qst-feedback-result.ok{color:#2dd4bf}
.qst-feedback-result.err{color:var(--red)}
.qst-feedback-comentario{font-size:13px;color:var(--text2);line-height:1.65;white-space:pre-wrap;word-break:break-word}
.qst-feedback-comentario:empty{display:none}

.qst-runner-footer{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;padding-top:14px;border-top:0.5px solid var(--border)}
.qst-runner-footer .qst-btn{flex:1 1 auto;justify-content:center;min-width:130px}
@media(max-width:720px){.qst-runner-footer{flex-direction:column}.qst-runner-footer .qst-btn{width:100%}}

/* Summary */
.qst-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
@media(max-width:720px){.qst-summary-grid{grid-template-columns:1fr 1fr}}
.qst-summary-stat{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;padding:18px 14px;text-align:center}
.qst-summary-stat.ok{border-color:rgba(45,212,191,.35)}
.qst-summary-stat.err{border-color:rgba(255,77,106,.35)}
.qst-summary-stat.skip{border-color:var(--border2)}
.qst-summary-stat.pct{border-color:var(--blue-dim);background:var(--bg2)}
.qst-summary-stat-num{font-family:'Syne',sans-serif;font-size:28px;font-weight:700;color:var(--text);margin-bottom:4px;line-height:1}
.qst-summary-stat.ok .qst-summary-stat-num{color:#2dd4bf}
.qst-summary-stat.err .qst-summary-stat-num{color:var(--red)}
.qst-summary-stat.pct .qst-summary-stat-num{color:var(--blue2)}
.qst-summary-stat-lbl{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
/* 🔴 27/08/2026 · POR QUE DEU ZERO.
   Âmbar, não vermelho: recorte vazio não é erro do aluno nem defeito do app, é
   uma escolha que não casou. Vermelho aqui acusaria quem só quis estudar.
   Nasce escondido (`[hidden]` depois da regra, senão o display ganha do atributo
   e a caixa vazia aparece em todo filtro). */
.qst-zero{display:block;margin:12px auto 0;max-width:520px;padding:11px 14px;
  background:rgba(240,165,0,.10);border:1px solid rgba(240,165,0,.38);border-radius:12px;
  font-size:13.5px;line-height:1.55;color:var(--text2);text-align:left}
.qst-zero[hidden]{display:none}
.qst-zero b{color:var(--text)}
.qst-zero-bt{display:inline-block;margin-left:8px;padding:5px 11px;border-radius:8px;
  border:1px solid rgba(240,165,0,.5);background:rgba(240,165,0,.14);color:#f0a500;
  font-family:'DM Sans',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer}
.qst-zero-bt:hover{background:rgba(240,165,0,.22)}
/* a tela de questões nasce CLARA · âmbar claro precisa de tinta escura pra ler */
#view-questoes.qst-light .qst-zero{background:#FEF6E7;border-color:#F0D9A8;color:#5A4A2A}
#view-questoes.qst-light .qst-zero b{color:#3A2E14}
#view-questoes.qst-light .qst-zero-bt{border-color:#D9A441;background:#FBEBC8;color:#8A5A00}
@media (pointer: coarse), (max-width:960px){ .qst-zero{font-size:14px} }
/* 🔴 25/08/2026 · RECUPERAÇÃO DE MATÉRIA FRACA, no resumo da sessão.
   Verde-água #2dd4bf, o mesmo da caixa "Acertos" logo abaixo: o aluno já
   aprendeu nesta tela que essa cor quer dizer acerto. Cor nova aqui seria uma
   segunda linguagem pra dizer a mesma coisa.
   O `[hidden]` precisa vir DEPOIS e com display:none, senão o display:flex
   ganha do atributo e a caixa vazia aparece em toda sessão. */
.qst-rec{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:13px 16px;
  background:linear-gradient(120deg,rgba(45,212,191,.13),rgba(45,212,191,.04));
  border:1px solid rgba(45,212,191,.4);border-radius:14px}
.qst-rec[hidden]{display:none}
.qst-rec .rec-ic{font-size:22px;line-height:1;flex:none}
.qst-rec .rec-tx{font-size:13.5px;color:var(--text2);line-height:1.5}
.qst-rec .rec-tx b{font-family:'Syne',sans-serif;font-weight:700;color:#2dd4bf}
/* ⚠️ A tela de questões nasce CLARA, e #2dd4bf sobre #F4F6FA dá contraste 1,7 —
   ilegível a 13,5px. O número "Acertos" escapa disso por ser 28px; texto
   corrido, não. No claro o verde-água escurece pra #0F766E (contraste 4,9). */
#view-questoes.qst-light .qst-rec{background:#ECFDF6;border-color:#A7E4D6}
#view-questoes.qst-light .qst-rec .rec-tx{color:#33405A}
#view-questoes.qst-light .qst-rec .rec-tx b{color:#0F766E}
@media (pointer: coarse), (max-width:960px){ .qst-rec .rec-tx{font-size:14px} }
.qst-summary-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
@media(max-width:720px){.qst-summary-actions{flex-direction:column}.qst-summary-actions .qst-btn{width:100%;justify-content:center}}

/* Admin: lista + modal */
.qst-adm-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:11px;padding:12px 14px;margin-bottom:8px;display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.qst-adm-card-body{flex:1;min-width:240px}
.qst-adm-card-enunciado{font-size:13px;color:var(--text);line-height:1.5;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.qst-adm-card-meta{display:flex;flex-wrap:wrap;gap:5px}
.qst-adm-card-meta .qst-meta-chip{font-size:9.5px;padding:3px 7px}
.qst-adm-card-actions{display:flex;gap:6px;flex-shrink:0}

.qst-adm-modal{position:fixed;inset:0;background:rgba(5,11,22,.78);z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:24px;overflow-y:auto}
.qst-adm-modal.open{display:flex}
.qst-adm-modal-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;width:100%;max-width:720px;box-shadow:0 24px 64px rgba(0,0,0,.55);display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden;margin:auto}
.qst-adm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:0.5px solid var(--border)}
.qst-adm-modal-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:600;color:var(--text)}
.qst-adm-modal-close{width:30px;height:30px;border-radius:7px;background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:22px;line-height:1;transition:.15s;font-family:'DM Sans',sans-serif}
.qst-adm-modal-close:hover{color:var(--text);background:var(--bg3)}
.qst-adm-modal-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.qst-adm-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:0.5px solid var(--border);background:rgba(10,20,38,.5)}

.qst-adm-form-row{display:flex;flex-direction:column;gap:6px}
.qst-adm-form-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}
.qst-adm-input{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;width:100%;box-sizing:border-box}
.qst-adm-input:focus{border-color:var(--blue-dim);background:var(--bg2)}
.qst-adm-textarea{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;resize:vertical;min-height:80px;line-height:1.5;width:100%;box-sizing:border-box}
.qst-adm-textarea:focus{border-color:var(--blue-dim);background:var(--bg2)}

.qst-adm-radio-row{display:flex;gap:8px;flex-wrap:wrap}
.qst-adm-radio{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:0.5px solid var(--border2);border-radius:8px;cursor:pointer;font-size:12.5px;color:var(--text2);transition:.15s;background:var(--bg3)}
.qst-adm-radio:hover{color:var(--text);border-color:var(--blue-dim)}
.qst-adm-radio input[type=radio]{accent-color:var(--blue)}
.qst-adm-radio input[type=radio]:checked + span{color:var(--text);font-weight:500}

.qst-adm-alts-grid{display:flex;flex-direction:column;gap:8px}
.qst-adm-alt-row{display:flex;align-items:center;gap:8px}
.qst-adm-alt-letter{width:28px;height:28px;border-radius:7px;background:var(--bg3);border:0.5px solid var(--border2);color:var(--text2);font-weight:700;font-family:'Syne',sans-serif;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}

.qst-adm-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:720px){.qst-adm-form-grid{grid-template-columns:1fr}}

/* ERROS */
.erros-form{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:16px;margin-bottom:16px}

/* ============================== BLOCO 14 · CADERNO DE ERROS RENOVADO ============================== */
/* Form V2 · 2 zonas com respiração */
.erros-form-v2{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:18px;display:flex;flex-direction:column;gap:14px}
.erros-form-v2 .erros-form-section{background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:18px 20px;transition:.18s}
.erros-form-v2 .erros-form-section:hover{border-color:var(--border2)}
.erros-form-v2 .erros-form-section-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:14px;display:flex;align-items:center;gap:7px}
.erros-form-v2 .erros-form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.erros-form-v2 .form-group{margin-bottom:0}
.erros-form-v2 .form-label{font-size:11px;font-weight:500;color:var(--text3);margin-bottom:6px}
.erros-form-v2 .form-input,.erros-form-v2 .form-textarea{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px;color:var(--text);font-size:13px}
.erros-form-v2 .form-input:focus,.erros-form-v2 .form-textarea:focus{border-color:var(--blue-dim);outline:none;background:var(--bg2)}
.erros-form-v2 .erros-form-actions{display:flex;justify-content:flex-end;margin-top:14px}
.erros-form-v2 .btn-add{background:var(--blue);color:#fff;border:none;border-radius:9px;padding:10px 20px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.erros-form-v2 .btn-add:hover{background:var(--blue2);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.28)}

/* Pílulas de camada no form (selector) */
.erros-camada-pills{display:flex;gap:6px;flex-wrap:wrap}
.erros-camada-pill{padding:7px 12px;border-radius:8px;border:1px solid;background:transparent;font-size:11px;font-weight:600;cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif;white-space:nowrap}
.erros-camada-pill.camada-1{border-color:var(--camada-1-border);color:var(--camada-1)}
.erros-camada-pill.camada-2{border-color:var(--camada-2-border);color:var(--camada-2)}
.erros-camada-pill.camada-3{border-color:var(--camada-3-border);color:var(--camada-3)}
.erros-camada-pill.camada-4{border-color:var(--camada-4-border);color:var(--camada-4)}
.erros-camada-pill:hover{background:rgba(255,255,255,.04)}
.erros-camada-pill.selected.camada-1{background:var(--camada-1);color:#fff;border-color:var(--camada-1);box-shadow:0 0 0 1px var(--camada-1) inset, 0 4px 14px rgba(0,0,0,.25)}
.erros-camada-pill.selected.camada-2{background:var(--camada-2);color:#fff;border-color:var(--camada-2);box-shadow:0 0 0 1px var(--camada-2) inset, 0 4px 14px rgba(45,212,191,.25)}
.erros-camada-pill.selected.camada-3{background:var(--camada-3);color:#fff;border-color:var(--camada-3);box-shadow:0 0 0 1px var(--camada-3) inset, 0 4px 14px rgba(167,139,250,.25)}
.erros-camada-pill.selected.camada-4{background:var(--camada-4);color:#fff;border-color:var(--camada-4);box-shadow:0 0 0 1px var(--camada-4) inset, 0 4px 14px rgba(240,165,0,.25)}

/* Filtros por camada na lista (acima dos cards) */
.erros-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.erros-filter-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-right:4px}
.erros-camada-filter{padding:5px 11px;border-radius:7px;border:0.5px solid var(--border2);background:var(--bg3);font-size:11px;font-weight:500;color:var(--text2);cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif}
.erros-camada-filter:hover{color:var(--text);border-color:var(--blue-dim)}
.erros-camada-filter.active.todas{background:var(--blue);border-color:var(--blue);color:#fff}
.erros-camada-filter.active.camada-1{background:var(--camada-1);border-color:var(--camada-1);color:#fff}
.erros-camada-filter.active.camada-2{background:var(--camada-2);border-color:var(--camada-2);color:#fff}
.erros-camada-filter.active.camada-3{background:var(--camada-3);border-color:var(--camada-3);color:#fff}
.erros-camada-filter.active.camada-4{background:var(--camada-4);border-color:var(--camada-4);color:#fff}

/* Cards de flashcard renovados · borda lateral colorida pela camada */
.flashcard.has-camada-1{border-left:3px solid var(--camada-1)}
.flashcard.has-camada-2{border-left:3px solid var(--camada-2)}
.flashcard.has-camada-3{border-left:3px solid var(--camada-3)}
.flashcard.has-camada-4{border-left:3px solid var(--camada-4)}
.flashcard.has-camada-none{border-left:3px solid var(--border2)}

/* Pílula de camada dentro do card (substitui pílula de tipo) */
.flashcard-camada-pill{font-size:9px;padding:2px 8px;border-radius:5px;font-weight:600;flex-shrink:0;margin-top:2px;text-transform:none;letter-spacing:.01em}
.flashcard-camada-pill.camada-1{background:var(--camada-1-dim);color:var(--camada-1);border:0.5px solid var(--camada-1-border)}
.flashcard-camada-pill.camada-2{background:var(--camada-2-dim);color:var(--camada-2);border:0.5px solid var(--camada-2-border)}
.flashcard-camada-pill.camada-3{background:var(--camada-3-dim);color:var(--camada-3);border:0.5px solid var(--camada-3-border)}
.flashcard-camada-pill.camada-4{background:var(--camada-4-dim);color:var(--camada-4);border:0.5px solid var(--camada-4-border)}
.flashcard-camada-pill.camada-none{background:var(--bg4);color:var(--text3);border:0.5px solid var(--border2)}

/* Sub-abas refinadas */
.erros-subtabs{border-bottom:0.5px solid var(--border);display:flex;gap:0;margin-bottom:18px;padding:0 4px}
.erros-subtab{padding:12px 20px;font-size:13px;font-weight:500}
.erros-subtab svg{margin-right:2px}
.erros-subtab.active{font-weight:600}
.erros-subtab-count{font-size:10px;padding:2px 7px;border-radius:9px;background:var(--amber-dim);color:var(--amber);font-weight:700;margin-left:2px}

/* Bloco 15: sub-abas v2 destacadas (botões grandes) */
.erros-subtabs-v2{border-bottom:none!important;display:flex;gap:8px;margin-bottom:20px;padding:0;flex-wrap:wrap}
.erros-subtab-v2{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:11px;border:1px solid var(--border2);background:var(--bg2);color:var(--text2);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:.18s}
.erros-subtab-v2:hover{color:var(--text);border-color:var(--blue-dim);background:var(--bg3);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.erros-subtab-v2.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 4px 14px rgba(0,0,0,.3)}
.erros-subtab-v2.active:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.4)}
.erros-subtab-v2 .erros-subtab-icon{font-size:16px}
.erros-subtab-v2 .erros-subtab-label{font-weight:600}
.erros-subtab-v2 .erros-subtab-count{background:rgba(255,77,106,.15);color:var(--red);padding:3px 9px;border-radius:10px;font-size:10px;font-weight:700;letter-spacing:.02em}
.erros-subtab-v2.active .erros-subtab-count{background:rgba(255,255,255,.25);color:#fff}
.erros-subtab-v2 .erros-subtab-count:empty{display:none}
.erros-subtab-v2 .erros-subtab-count-soft{background:var(--bg3);color:var(--text3);padding:3px 9px;border-radius:10px;font-size:10px;font-weight:600}
.erros-subtab-v2.active .erros-subtab-count-soft{background:rgba(255,255,255,.25);color:#fff}
.erros-subtab-v2 .erros-subtab-count-soft:empty{display:none}

/* Dashboard de revisão V2 · ícones nos cards */
.revisao-dashboard{background:linear-gradient(135deg,#0A1525 0%,#0D1828 100%);border:0.5px solid var(--border);border-radius:14px;padding:18px 22px;margin-bottom:18px}
.revisao-dash-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap}
.revisao-dash-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text)}
.revisao-dash-sub{font-size:11px;color:var(--text2)}
.revisao-dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.revisao-dash-stat{padding:12px 14px;border-radius:10px;border:0.5px solid;background:rgba(255,255,255,.02);display:flex;align-items:center;gap:10px;transition:.15s}
.revisao-dash-stat:hover{background:rgba(255,255,255,.04);transform:translateY(-1px)}
.revisao-dash-stat-icon{font-size:18px;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:rgba(255,255,255,.05)}
.revisao-dash-stat-body{flex:1;min-width:0}
.revisao-dash-num{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;line-height:1}
.revisao-dash-label{font-size:10px;color:var(--text3);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-top:3px}
.revisao-dash-stat.devidos{border-color:rgba(255,77,106,.25)}
.revisao-dash-stat.devidos .revisao-dash-num{color:var(--red)}
.revisao-dash-stat.devidos .revisao-dash-stat-icon{background:rgba(255,77,106,.1)}
.revisao-dash-stat.novos{border-color:rgba(59,139,255,.25)}
.revisao-dash-stat.novos .revisao-dash-num{color:var(--blue)}
.revisao-dash-stat.novos .revisao-dash-stat-icon{background:rgba(59,139,255,.1)}
.revisao-dash-stat.atrasados{border-color:rgba(240,165,0,.25)}
.revisao-dash-stat.atrasados .revisao-dash-num{color:var(--amber)}
.revisao-dash-stat.atrasados .revisao-dash-stat-icon{background:rgba(240,165,0,.1)}
.revisao-dash-stat.aprendendo{border-color:rgba(139,89,255,.25)}
.revisao-dash-stat.aprendendo .revisao-dash-num{color:#a78bfa}
.revisao-dash-stat.aprendendo .revisao-dash-stat-icon{background:rgba(139,89,255,.1)}

/* Sugestão de cards no Modo Estudo */
.study-erros-suggestion{background:linear-gradient(135deg,rgba(167,139,250,.08) 0%,rgba(139,89,255,.06) 100%);border:0.5px solid rgba(167,139,250,.25);border-radius:11px;padding:13px 16px;margin-top:12px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:.15s}
.study-erros-suggestion:hover{background:linear-gradient(135deg,rgba(167,139,250,.14) 0%,rgba(139,89,255,.1) 100%);border-color:rgba(167,139,250,.4);transform:translateY(-1px)}
.study-erros-suggestion-icon{width:36px;height:36px;border-radius:9px;background:rgba(167,139,250,.15);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.study-erros-suggestion-text{flex:1;font-size:12px;color:var(--text);line-height:1.4}
.study-erros-suggestion-text strong{color:#a78bfa;font-weight:600}
.study-erros-suggestion-arrow{color:#a78bfa;font-size:14px}

@media(max-width:720px){
  .erros-form-v2 .erros-form-grid-2{grid-template-columns:1fr}
  .revisao-dash-grid{grid-template-columns:1fr 1fr}
}
/* ============================== FIM BLOCO 14 ============================== */

/* ============================== BLOCO 15 · REFINAMENTO DO CADERNO ============================== */
/* Tag de camada na review card */
.fc-review-tag.camada-tag.camada-1{background:rgba(91,163,255,.16);color:var(--camada-1);border:0.5px solid rgba(91,163,255,.3)}
.fc-review-tag.camada-tag.camada-2{background:rgba(45,212,191,.16);color:var(--camada-2);border:0.5px solid rgba(45,212,191,.3)}
.fc-review-tag.camada-tag.camada-3{background:rgba(167,139,250,.16);color:var(--camada-3);border:0.5px solid rgba(167,139,250,.3)}
.fc-review-tag.camada-tag.camada-4{background:rgba(240,165,0,.16);color:var(--camada-4);border:0.5px solid rgba(240,165,0,.3)}

/* Filtros revisão organizados em barra clara */
.revisao-filters-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--bg2);border:0.5px solid var(--border);border-radius:10px;padding:11px 14px;margin-bottom:10px}
.revisao-filter-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.revisao-filter-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-right:2px}
.revisao-filter-select{font-size:12px;padding:6px 10px;border-radius:7px;background:var(--bg3);border:0.5px solid var(--border2);color:var(--text);font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.revisao-filter-select:hover{border-color:var(--blue-dim);color:var(--text)}
.revisao-filter-select:focus{outline:none;border-color:var(--blue)}
.revisao-filter-action{background:var(--bg3);color:var(--text2);border:0.5px solid var(--border2);border-radius:7px;padding:6px 12px;font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;font-weight:500}
.revisao-filter-action:hover{color:var(--text);border-color:var(--blue-dim);background:rgba(59,139,255,.08)}
.revisao-camada-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px;padding:8px 14px;background:rgba(13,21,38,.4);border-radius:8px}
.revisao-progress-meta{margin-bottom:14px}

/* Botões fácil/médio/difícil com sub-info do tempo */
.fc-dif-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 18px}
.fc-dif-btn .fc-dif-emoji{font-size:22px;line-height:1}
.fc-dif-btn .fc-dif-label{font-size:13px;font-weight:600;line-height:1}
.fc-dif-btn .fc-dif-subinfo{font-size:10px;font-weight:400;opacity:.78;line-height:1.2;letter-spacing:.01em}

/* Biblioteca */
.biblioteca-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px;padding:16px 20px;background:linear-gradient(135deg,#0A1525 0%,#0D1828 100%);border:0.5px solid var(--border);border-radius:14px}
.biblioteca-header-info{flex:1;min-width:240px}
.biblioteca-header-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text);margin-bottom:4px}
.biblioteca-header-sub{font-size:12px;color:var(--text2)}
.biblioteca-header-sub strong{color:var(--text)}
.biblioteca-reset-all-btn{background:transparent;border:0.5px solid rgba(255,77,106,.3);color:var(--red);padding:9px 14px;border-radius:8px;font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;font-weight:500;display:inline-flex;align-items:center;gap:6px}
.biblioteca-reset-all-btn:hover{background:rgba(255,77,106,.08);border-color:var(--red)}

.biblioteca-empty{text-align:center;padding:40px 20px;color:var(--text3)}
.biblioteca-empty .empty-icon{font-size:36px;margin-bottom:10px}

.biblioteca-materia{background:var(--bg2);border:0.5px solid var(--border);border-radius:11px;margin-bottom:8px;overflow:hidden;transition:.18s}
.biblioteca-materia:hover{border-color:var(--border2)}
.biblioteca-materia-header{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;transition:.15s}
.biblioteca-materia-header:hover{background:rgba(59,139,255,.04)}
.biblioteca-materia-arrow{font-size:10px;color:var(--text3);transition:.18s;width:16px;text-align:center}
.biblioteca-materia.open .biblioteca-materia-arrow{transform:rotate(90deg);color:var(--blue2)}
.biblioteca-materia-name{flex:1;font-family:'Syne',sans-serif;font-size:14px;font-weight:600;color:var(--text)}
.biblioteca-counter{font-size:11px;color:var(--text2);padding:3px 9px;border-radius:6px;background:var(--bg3);border:0.5px solid var(--border2);font-weight:500}
.biblioteca-counter.has-pending{background:rgba(240,165,0,.1);color:var(--amber);border-color:rgba(240,165,0,.2)}
.biblioteca-reset-btn{background:transparent;border:none;color:var(--text3);font-size:14px;cursor:pointer;padding:5px 8px;border-radius:5px;transition:.15s;line-height:1}
.biblioteca-reset-btn:hover{color:var(--red);background:rgba(255,77,106,.08)}

.biblioteca-conteudos{padding:0 8px 8px 26px;display:none}
.biblioteca-materia.open .biblioteca-conteudos{display:block}
.biblioteca-conteudo{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;margin-bottom:3px;transition:.15s;cursor:pointer}
.biblioteca-conteudo:hover{background:rgba(59,139,255,.04)}
.biblioteca-conteudo-arrow{font-size:9px;color:var(--text3);transition:.18s;width:14px;text-align:center}
.biblioteca-conteudo.open .biblioteca-conteudo-arrow{transform:rotate(90deg);color:var(--blue2)}
.biblioteca-conteudo-name{flex:1;font-size:13px;color:var(--text2)}

.biblioteca-camadas{padding:6px 10px 6px 22px;display:none}
.biblioteca-conteudo.open + .biblioteca-camadas{display:block}
.biblioteca-camada{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:6px;margin-bottom:2px;transition:.15s}
.biblioteca-camada:hover{background:rgba(255,255,255,.02)}
.biblioteca-camada-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
.biblioteca-camada-dot.camada-1{background:var(--camada-1)}
.biblioteca-camada-dot.camada-2{background:var(--camada-2)}
.biblioteca-camada-dot.camada-3{background:var(--camada-3)}
.biblioteca-camada-dot.camada-4{background:var(--camada-4)}
.biblioteca-camada-dot.camada-none{background:var(--text3)}
.biblioteca-camada-name{flex:1;font-size:12px;color:var(--text2)}
.biblioteca-camada-name.camada-1{color:var(--camada-1)}
.biblioteca-camada-name.camada-2{color:var(--camada-2)}
.biblioteca-camada-name.camada-3{color:var(--camada-3)}
.biblioteca-camada-name.camada-4{color:var(--camada-4)}
.biblioteca-camada-counter{font-size:10px;color:var(--text3);background:var(--bg4);padding:2px 7px;border-radius:5px}

/* Modal de confirmação de reset */
.bib-confirm-modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:9999}
.bib-confirm-modal.show{display:flex}
.bib-confirm-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:26px 28px;max-width:420px;width:90%;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.bib-confirm-icon{font-size:36px;margin-bottom:10px;display:block;text-align:center}
.bib-confirm-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px;text-align:center}
.bib-confirm-msg{font-size:13px;color:var(--text2);line-height:1.5;margin-bottom:18px;text-align:center}
.bib-confirm-msg strong{color:var(--text);font-weight:600}
.bib-confirm-actions{display:flex;gap:8px;justify-content:flex-end}
.bib-confirm-cancel{background:var(--bg3);border:0.5px solid var(--border2);color:var(--text);padding:9px 18px;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;cursor:pointer;font-weight:500;transition:.15s}
.bib-confirm-cancel:hover{border-color:var(--blue-dim);color:var(--text)}
.bib-confirm-delete{background:var(--red);border:none;color:#fff;padding:9px 18px;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:13px;cursor:pointer;font-weight:600;transition:.15s}
.bib-confirm-delete:hover{background:#FF6580;box-shadow:0 4px 14px rgba(255,77,106,.3)}
/* ============================== FIM BLOCO 15 ============================== */

.erros-list{display:flex;flex-direction:column;gap:6px}
.erro-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:12px 14px}
.erro-top{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.erro-tipo{font-size:9px;padding:2px 7px;border-radius:5px;font-weight:500}
.erro-tipo.falta{background:rgba(255,77,106,.1);color:var(--red)}
.erro-tipo.confusao{background:rgba(240,165,0,.1);color:var(--amber)}
.erro-tipo.leitura{background:rgba(139,89,255,.1);color:#a78bfa}
.erro-tipo.pegadinha{background:rgba(59,139,255,.12);color:var(--blue2)}
.erro-revisado{padding:3px 8px;border-radius:5px;border:0.5px solid var(--border2);background:var(--bg4);font-size:10px;color:var(--text3);cursor:pointer;transition:.15s}
.erro-revisado.ok{background:var(--green-dim);border-color:rgba(29,185,122,.3);color:var(--green)}
.erro-del{font-size:12px;color:var(--text3);cursor:pointer;padding:4px;border-radius:4px;transition:.15s;margin-left:auto}
.erro-del:hover{color:var(--red)}
.erro-nome{font-size:13px;color:var(--text);margin-bottom:4px;line-height:1.4}
.erro-anotacao{font-size:11px;color:var(--text2);line-height:1.5}

/* ===== ANÁLISE DE DESEMPENHO ===== */
.perf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
.perf-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px}
.perf-card.danger{border-color:rgba(255,77,106,.25);background:rgba(58,16,32,.4)}
.perf-card.warning{border-color:rgba(240,165,0,.2);background:rgba(58,38,0,.3)}
.perf-card.success{border-color:rgba(29,185,122,.2);background:rgba(11,51,34,.4)}
.perf-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}
.perf-value{font-family:'Syne',sans-serif;font-size:22px;font-weight:700}
.perf-sub{font-size:11px;color:var(--text3);margin-top:3px}

.materias-desempenho{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}
.mat-desemp-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:12px 14px;display:grid;grid-template-columns:1fr 80px 100px 60px;align-items:center;gap:12px}
.mat-desemp-card.fraca{border-color:rgba(255,77,106,.25)}
.mat-desemp-nome{font-size:13px;color:var(--text)}
.mat-desemp-q{font-size:11px;color:var(--text3);text-align:center}
.mat-desemp-bar-wrap{display:flex;flex-direction:column;gap:3px}
.mat-desemp-bar{height:5px;background:var(--bg4);border-radius:4px;overflow:hidden}
.mat-desemp-pct{font-size:12px;font-weight:500;text-align:right}
.mat-fraca-tag{font-size:9px;padding:2px 6px;border-radius:4px;background:rgba(255,77,106,.1);color:var(--red);font-weight:500;margin-left:4px}

/* RECOMENDAÇÕES */
.rec-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.rec-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:12px 16px;display:flex;gap:12px;align-items:flex-start}
.rec-card.high{border-color:rgba(255,77,106,.25)}
.rec-card.medium{border-color:rgba(240,165,0,.2)}
.rec-card.low{border-color:rgba(29,185,122,.2)}
.rec-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.rec-icon.high{background:rgba(255,77,106,.12)}
.rec-icon.medium{background:rgba(240,165,0,.1)}
.rec-icon.low{background:rgba(29,185,122,.1)}
.rec-body{flex:1}
.rec-title{font-size:13px;font-weight:500;color:var(--text);margin-bottom:3px}
.rec-desc{font-size:11px;color:var(--text2);line-height:1.5}
.rec-tag{font-size:9px;padding:2px 7px;border-radius:4px;font-weight:500;margin-top:5px;display:inline-block}
.rec-tag.high{background:rgba(255,77,106,.1);color:var(--red)}
.rec-tag.medium{background:rgba(240,165,0,.1);color:var(--amber)}
.rec-tag.low{background:rgba(29,185,122,.1);color:var(--green)}

/* CONSISTÊNCIA */
.consist-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.consist-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;text-align:center}
.consist-value{font-family:'Syne',sans-serif;font-size:26px;font-weight:700;color:var(--blue)}
.consist-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-top:4px}
.horas-semana-chart{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:16px;margin-bottom:16px}
.bar-chart{display:flex;align-items:flex-end;gap:6px;height:80px;margin-top:10px}
.bar-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}
.bar-fill{width:100%;border-radius:4px 4px 0 0;background:var(--blue);min-height:3px;transition:height .6s ease}
.bar-label{font-size:9px;color:var(--text3);text-align:center}
.bar-val{font-size:9px;color:var(--text2);font-weight:500}



/* FILTRO MULTISELECT DE CONTEÚDOS */
.revisao-filter-wrap{position:relative;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.content-filter{position:relative;min-width:210px}
.content-filter-btn{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:7px;padding:6px 10px;color:var(--text2);font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;transition:.15s}
.content-filter-btn:hover{border-color:var(--blue-dim);color:var(--text)}
.content-filter-btn.disabled{opacity:.45;cursor:not-allowed}
.content-filter-panel{position:absolute;top:34px;right:0;width:320px;max-height:260px;overflow-y:auto;background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:8px;z-index:30;box-shadow:0 12px 36px rgba(0,0,0,.35)}
.content-filter-option{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:8px;cursor:pointer;transition:.15s;color:var(--text2);font-size:12px;line-height:1.35}
.content-filter-option:hover{background:var(--bg3);color:var(--text)}
.content-filter-check{width:15px;height:15px;border-radius:4px;border:1px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px}
.content-filter-option.selected .content-filter-check{background:var(--blue);border-color:var(--blue)}
.content-filter-empty{font-size:12px;color:var(--text3);padding:10px;text-align:center}
.smart-review-badge{font-size:10px;padding:4px 9px;border-radius:7px;background:rgba(59,139,255,.08);border:0.5px solid var(--blue-dim);color:var(--blue2);display:flex;align-items:center;gap:5px}

/* MODAL */
/* ═══════════════════════════════════════
   SESSION FLOW · Commit, Checkpoint, Closure
═══════════════════════════════════════ */

/* COMMIT MODAL · micro-contrato de início */
.commit-modal{position:fixed;inset:0;background:rgba(8,14,28,.88);display:flex;align-items:center;justify-content:center;z-index:200}
.commit-box{background:linear-gradient(135deg,#0D1A2E 0%,#0F2240 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:16px;padding:26px 28px;width:480px;max-width:95vw;box-shadow:0 20px 60px rgba(0,0,0,.5);position:relative;max-height:92vh;overflow-y:auto;overflow-x:hidden}
.commit-eyebrow{font-size:9px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.commit-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--blue2);animation:dash-pulse 2s ease-in-out infinite}
.commit-title{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.2}
.commit-sub{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:18px}
.commit-context{background:rgba(13,21,38,.5);border:0.5px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.commit-context-row{display:flex;justify-content:space-between;font-size:12px}
.commit-context-row .l{color:var(--text3)}
.commit-context-row .v{color:var(--text);font-weight:500}
.commit-section{margin-bottom:14px}
.commit-section-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.commit-time-pills{display:flex;gap:6px;flex-wrap:wrap}
.commit-time-pill{flex:1;min-width:70px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 6px;color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;transition:.15s;text-align:center;font-family:'DM Sans',sans-serif}
.commit-time-pill:hover{border-color:var(--blue-dim);color:var(--text)}
.commit-time-pill.selected{background:var(--blue-glow);border-color:var(--blue);color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.commit-objetivo-input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;resize:none}
.commit-objetivo-input:focus{outline:none;border-color:var(--blue-dim)}
.commit-objetivo-input::placeholder{color:var(--text3);font-style:italic}
.commit-actions{display:flex;gap:8px;position:sticky;bottom:0;margin:18px -28px -26px;padding:14px 28px 26px;background:linear-gradient(180deg,rgba(15,34,64,0),#0F2240 32%);z-index:2}
.commit-skip{background:transparent;border:0.5px solid var(--border2);color:var(--text3);font-size:12px;padding:10px 14px;border-radius:8px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.commit-skip:hover{color:var(--text2);border-color:var(--border2)}
.commit-confirm{flex:1;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.commit-confirm:hover{background:var(--blue2);transform:translateY(-1px)}

/* TIMER CARD · durante sessão (compromisso visível) */
.session-commitment-bar{background:rgba(13,21,38,.5);border:0.5px solid rgba(59,139,255,.18);border-radius:8px;padding:7px 14px;margin-bottom:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.session-commitment-bar.is-hidden{display:none}
.session-commit-icon{font-size:14px;flex-shrink:0;opacity:.85}
.session-commit-objective{flex:1;min-width:180px;font-size:11px;color:var(--text2);line-height:1.4}
.session-commit-objective strong{color:var(--text);font-weight:500}
.session-commit-objective em{color:var(--text3);font-style:normal}
.session-checkpoint-info{font-size:11px;color:var(--text2);font-weight:500;flex:1}

/* POPUP de INÍCIO de sessão · camada + recomendação + OK grande (17/06) */
.camada-start-ov{position:fixed;inset:0;z-index:99997;background:rgba(8,12,22,.78);display:none;align-items:center;justify-content:center;padding:20px}
.camada-start-ov.show{display:flex}
.camada-start-card{background:var(--bg2,#141d2f);border:1px solid var(--border2,#2a3656);border-radius:18px;padding:24px 22px;width:min(420px,94vw);text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.camada-start-materia{font-size:12px;color:var(--text3,#8a96a0);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.camada-start-cam{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;margin-bottom:14px;display:inline-block;padding:6px 16px;border-radius:10px}
.camada-start-rec{font-size:14px;color:var(--text2,#aab4be);line-height:1.6;margin-bottom:22px}
.camada-start-ok{width:100%;background:var(--blue,#3b8bff);color:#fff;border:none;border-radius:12px;padding:15px;font-size:16px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.camada-start-ok:hover{background:var(--blue2,#5ba3ff);transform:translateY(-1px)}
/* GRADE de conteúdos × camadas (Parte 4, v2 18/06: header tingido por etapa, sem
   bordas verticais, só linhas horizontais, coluna de conteúdo com largura fixa) */
.mgrid-wrap{overflow-x:auto;border:0.5px solid var(--border,#2a3656);border-radius:10px;margin-top:8px;-webkit-overflow-scrolling:touch}
.mgrid{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}
.mgrid thead th{position:sticky;top:0;z-index:1;padding:9px 4px;text-align:center;vertical-align:bottom}
.mgrid-cont-h{text-align:left!important;padding-left:12px!important;color:var(--text3,#8a96a0);font-weight:600;font-size:11px;background:var(--bg2,#141d2f)}
.mgrid-cam-h .mgrid-cam-etapa{display:block;font-size:10px;font-weight:700;letter-spacing:.02em}
.mgrid-cam-h .mgrid-cam-nome{display:block;font-size:10.5px;font-weight:600;line-height:1.15;margin-top:1px;word-break:break-word}
.mgrid-cam-h.atual::after{content:'';display:block;height:3px;background:var(--cor);margin:6px -4px -9px;border-radius:3px}
.mgrid tbody td{border-bottom:0.5px solid var(--border,#2a3656)}
.mgrid tbody tr:last-child td{border-bottom:none}
.mgrid tbody tr:hover{background:rgba(255,255,255,.025)}
.mgrid-cont{padding:7px 10px;overflow:hidden}
.mgrid-cont-inner{display:flex;align-items:center;min-width:0}
.mgrid-cont-num{color:var(--text3,#8a96a0);font-size:10px;margin-right:7px;flex-shrink:0}
.mgrid-cont-nome{color:var(--text,#e9eef7);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mgrid-cont-acts{margin-left:8px;flex-shrink:0;opacity:0;transition:.12s;white-space:nowrap}
.mgrid-cont:hover .mgrid-cont-acts{opacity:1}
.mgrid-act{background:transparent;border:none;color:var(--text3,#8a96a0);cursor:pointer;font-size:13px;padding:0 4px;line-height:1}
.mgrid-act:hover{color:var(--text,#e9eef7)}
.mgrid-act.del:hover{color:var(--red,#ff4d6a)}
.mgrid-cell{text-align:center;padding:6px 4px}
.mgrid-chk{width:24px;height:24px;border-radius:6px;border:1px solid var(--border2,#2a3656);background:transparent;color:var(--cor);cursor:pointer;font-size:13px;display:inline-flex;align-items:center;justify-content:center;transition:.12s;font-weight:700}
.mgrid-chk:hover{border-color:var(--cor)}
.mgrid-chk.done{background:var(--cor);color:#fff;border-color:var(--cor)}
@media(max-width:480px){
  .mgrid-cont-acts{opacity:1}
  .mgrid-chk{width:26px;height:26px}
  .mgrid-cell{padding:7px 2px}
  .mgrid-cam-h .mgrid-cam-nome{font-size:10px}
}
/* CHECKPOINT · pop-up discreto canto inferior direito */
.checkpoint-popup{position:fixed;bottom:24px;right:24px;background:linear-gradient(135deg,#0F1E35,#152844);border:0.5px solid rgba(240,165,0,.3);border-radius:12px;padding:14px 16px;z-index:9995;box-shadow:0 12px 40px rgba(0,0,0,.45);max-width:320px;transform:translateY(80px);opacity:0;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s ease;pointer-events:none}
.checkpoint-popup.show{transform:translateY(0);opacity:1;pointer-events:auto}
.checkpoint-popup-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px;display:flex;align-items:center;gap:8px}
.checkpoint-popup-title .pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:dash-pulse 1.5s infinite}
.checkpoint-popup-sub{font-size:11px;color:var(--text2);margin-bottom:10px;line-height:1.4}
.checkpoint-popup-actions{display:flex;gap:6px}
.checkpoint-btn-primary{flex:1;background:var(--blue);color:#fff;border:none;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.checkpoint-btn-primary:hover{background:var(--blue2)}
.checkpoint-btn-secondary{background:var(--bg3);border:0.5px solid var(--border2);color:var(--text2);border-radius:7px;padding:7px 12px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.checkpoint-btn-secondary:hover{color:var(--text)}

/* CHECKPOINT VISUAL ALERT · pulso vermelho sutil no timer quando não responde */
.timer-display.checkpoint-pending{animation:checkpoint-warn 1.5s ease-in-out infinite}
@keyframes checkpoint-warn{0%,100%{text-shadow:0 0 20px rgba(0,0,0,.3)}50%{text-shadow:0 0 30px rgba(240,165,0,.6)}}

/* CHECKPOINT FREQUENCY SETTING in sidebar */
.checkpoint-config-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:10px 12px}
.checkpoint-config-title{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px}
.checkpoint-freq-pills{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:6px}
.checkpoint-freq-pill{background:var(--bg3);border:0.5px solid var(--border2);border-radius:6px;padding:5px 10px;color:var(--text2);font-size:11px;cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif}
.checkpoint-freq-pill:hover{border-color:var(--blue-dim);color:var(--text)}
.checkpoint-freq-pill.selected{background:var(--blue-glow);border-color:var(--blue);color:var(--blue)}
.checkpoint-freq-hint{font-size:10px;color:var(--text3);margin-top:4px}

/* CLOSURE · modal de fechamento em 3 etapas */
.closure-modal{position:fixed;inset:0;background:rgba(8,14,28,.88);display:flex;align-items:center;justify-content:center;z-index:300}
.closure-box{background:linear-gradient(135deg,#0D1A2E 0%,#0F2240 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:16px;padding:24px 28px;width:520px;max-width:95vw;box-shadow:0 24px 70px rgba(0,0,0,.55);position:relative;max-height:92vh;overflow-y:auto;overflow-x:hidden}
.closure-box::before{content:'';position:absolute;top:-50px;right:-50px;width:200px;height:200px;border-radius:50%;background:transparent;pointer-events:none}
.closure-progress{display:flex;gap:6px;margin-bottom:18px}
.closure-progress-step{flex:1;height:3px;background:var(--bg4);border-radius:3px;transition:.3s}
.closure-progress-step.done{background:var(--blue)}
.closure-progress-step.active{background:var(--blue)}
.closure-step{display:none}
.closure-step.active{display:block}
/* Checklist da camada no fechamento (17/06) */
.closure-chk-title{font-size:13px;font-weight:600;color:var(--text);margin:8px 0 10px}
.closure-chk-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.closure-chk-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text2);cursor:pointer;padding:8px 11px;background:var(--bg3);border:0.5px solid var(--border);border-radius:8px}
.closure-chk-row input{width:18px;height:18px;flex-shrink:0;accent-color:var(--blue);cursor:pointer}
.closure-etapa-q{font-size:13px;color:var(--text2);margin-bottom:8px}
.closure-etapa-opts{display:flex;flex-direction:column;gap:8px}
.closure-etapa-req{font-size:12px;color:var(--text2);line-height:1.5;background:rgba(255,255,255,.04);border-radius:8px;padding:9px 11px}
.closure-etapa-opt{text-align:left;background:var(--bg3);border:0.5px solid var(--border2);color:var(--text2);border-radius:9px;padding:11px 14px;font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.closure-etapa-opt:hover{border-color:var(--border);color:var(--text)}
.closure-etapa-opt.sel{border-color:var(--blue);background:rgba(59,139,255,.1);color:var(--text)}
/* 31/08/2026 · a pergunta da etapa virou obrigatória pra salvar a sessão.
   Os botões de fechar ficam apagados enquanto falta responder, mas seguem
   CLICÁVEIS: o clique é o que leva o aluno até a pergunta e explica. */
.closure-next-primary.trava,.closure-next-secondary.trava{opacity:.5;filter:grayscale(.9)}
.closure-etapa-box.pede{animation:closurePede .45s ease}
@keyframes closurePede{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
@media (prefers-reduced-motion:reduce){
  .closure-etapa-box.pede{animation:none;outline:2px solid var(--amber);outline-offset:3px}
}
.closure-etapa-nota{font-size:12px;color:var(--text3);background:var(--bg3);border-radius:8px;padding:10px 12px;line-height:1.5}
.closure-step-eyebrow{font-size:10px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.closure-step-title{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--text);margin-bottom:6px}
.closure-step-sub{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:18px}

/* Etapa 1 · auto-avaliação */
.closure-mood-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}
.closure-mood-btn{background:var(--bg3);border:0.5px solid var(--border2);border-radius:12px;padding:18px 12px;cursor:pointer;transition:.18s;text-align:center}
.closure-mood-btn:hover{border-color:var(--border2);transform:translateY(-2px)}
.closure-mood-btn.selected{border-color:var(--blue);background:var(--blue-glow);box-shadow:inset 0 0 0 1px var(--blue)}
.closure-mood-emoji{font-size:30px;margin-bottom:6px;line-height:1}
.closure-mood-label{font-family:'Syne',sans-serif;font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px}
.closure-mood-desc{font-size:10px;color:var(--text3)}

/* Etapa 2 · resultado objetivo */
.closure-objective-recall{background:rgba(13,21,38,.5);border:0.5px solid var(--border);border-radius:10px;padding:11px 14px;margin-bottom:14px;font-size:12px;color:var(--text2);line-height:1.4}
.closure-objective-recall strong{color:var(--blue2);display:block;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.closure-objective-recall .obj-text{color:var(--text);font-style:italic}
.closure-objective-recall .obj-empty{color:var(--text3);font-style:italic}
.closure-result-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:14px}
.closure-result-btn{background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px;padding:14px 8px;cursor:pointer;transition:.18s;text-align:center}
.closure-result-btn:hover{transform:translateY(-1px)}
.closure-result-btn.selected.yes{border-color:var(--green);background:rgba(29,185,122,.08)}
.closure-result-btn.selected.partial{border-color:var(--amber);background:rgba(240,165,0,.08)}
.closure-result-btn.selected.no{border-color:var(--red);background:rgba(255,77,106,.08)}
.closure-result-icon{font-size:18px;margin-bottom:5px;display:block}
.closure-result-label{font-family:'Syne',sans-serif;font-size:12px;font-weight:600;color:var(--text)}
.closure-questoes-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
/* Toggle "Registrar detalhes (opcional)" no fechamento · colapsa questões/acertos */
.closure-optional-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:var(--bg3);border:0.5px solid var(--border);border-radius:9px;padding:11px 13px;color:var(--text2);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;margin-bottom:12px;transition:.15s;-webkit-tap-highlight-color:transparent}
.closure-optional-toggle:hover{border-color:var(--border2);color:var(--text)}
.closure-optional-toggle .cqt-arrow{color:var(--text3);font-size:11px;transition:transform .15s;flex-shrink:0}

/* CLOSURE · progresso do conteúdo na etapa 2 */
.closure-content-progress{background:rgba(13,21,38,.45);border:0.5px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:14px;max-height:38vh;overflow-y:auto}
.closure-content-kicker{font-size:9px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.09em;margin-bottom:6px}
.closure-content-title{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:10px}
.closure-fase-row{display:flex;gap:6px;flex-wrap:wrap}
.closure-fase-btn{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:8px;border:0.5px solid var(--border2);background:var(--bg4);font-size:11px;color:var(--text3);font-family:'DM Sans',sans-serif;cursor:default;transition:.15s}
.closure-fase-btn.done{background:var(--green-dim);border-color:rgba(29,185,122,.3);color:var(--green)}
.closure-fase-btn.available{background:rgba(59,139,255,.09);border-color:var(--blue-dim);color:var(--blue2);cursor:pointer}
.closure-fase-btn.available:hover{background:rgba(59,139,255,.16);color:var(--text)}
/* Bloco 10 #5: quando o usuário marca uma fase, ela fica VERDE FORTE pra deixar claro
   que está selecionada pra ser concluída (antes era azul claro, muito sutil). */
.closure-fase-btn.selected{background:rgba(29,185,122,.22)!important;border-color:var(--green)!important;color:#fff!important;font-weight:600;box-shadow:0 0 0 1px var(--green) inset, 0 4px 12px rgba(29,185,122,.18)}
.closure-fase-btn.selected .closure-fase-dot{background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.closure-fase-btn.pending{opacity:.85;cursor:pointer}
.closure-fase-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.closure-general-review-note{font-size:11px;color:var(--text2);line-height:1.5;background:rgba(59,139,255,.06);border:0.5px solid rgba(59,139,255,.14);border-radius:8px;padding:9px 11px}
/* Closure modal "Geral" · checklist de conteúdos cobertos + sub-pergunta de finalização */
.closure-content-helper{font-size:11px;color:var(--text3);line-height:1.45;margin-bottom:10px}
.closure-conteudos-list{display:flex;flex-direction:column;gap:5px;max-height:240px;overflow-y:auto;margin-bottom:12px;padding-right:2px}
.closure-conteudo-row{position:relative;display:flex;align-items:center;gap:9px;padding:8px 10px;background:rgba(13,21,38,.5);border:0.5px solid var(--border);border-radius:7px;cursor:pointer;transition:.14s}
.closure-conteudo-row:hover{border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.closure-conteudo-row.checked{background:rgba(29,185,122,.08);border-color:rgba(29,185,122,.32)}
.closure-conteudo-row.ja-feito{opacity:.5;cursor:not-allowed}
.closure-conteudo-row input[type=checkbox]{accent-color:var(--green);cursor:pointer;flex-shrink:0;width:14px;height:14px}
.closure-conteudo-row.ja-feito input[type=checkbox]{cursor:not-allowed}
.closure-conteudo-nome{flex:1;font-size:12px;color:var(--text);line-height:1.3}
.closure-conteudo-status{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0}
.closure-conteudo-status.done{color:var(--green)}
.closure-sub-pergunta{background:rgba(240,165,0,.06);border:0.5px solid rgba(240,165,0,.2);border-radius:8px;padding:11px 12px;animation:fadeSlide .2s ease}
.closure-sub-pergunta-title{font-size:11px;font-weight:700;color:var(--amber);margin-bottom:8px;line-height:1.35}
.closure-sub-pergunta-options{display:flex;flex-direction:column;gap:6px}
.closure-sub-opt{display:flex;align-items:flex-start;gap:9px;padding:8px 10px;background:rgba(13,21,38,.4);border:0.5px solid var(--border2);border-radius:7px;cursor:pointer;transition:.14s}
.closure-sub-opt:hover{background:rgba(13,21,38,.6);border-color:var(--border)}
.closure-sub-opt.selected{background:rgba(29,185,122,.1);border-color:rgba(29,185,122,.35)}
.closure-sub-opt input[type=radio]{margin-top:2px;accent-color:var(--green);cursor:pointer;flex-shrink:0}
.closure-sub-opt-icon{font-size:13px;line-height:1;flex-shrink:0;margin-top:1px;color:var(--green)}
.closure-sub-opt-text{flex:1;font-size:11px;color:var(--text);line-height:1.4}
.closure-sub-opt-text strong{color:var(--text);font-weight:600}
.closure-sub-opt-sub{color:var(--text3);font-size:10px;line-height:1.35}


/* Etapa 3 · resumo de conquista */
.closure-summary-icon{font-size:36px;text-align:center;margin-bottom:10px}
.closure-summary-headline{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:var(--text);text-align:center;margin-bottom:14px}
.closure-summary-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.closure-summary-stat{background:rgba(13,21,38,.55);border:0.5px solid var(--border);border-radius:10px;padding:12px;text-align:center}
.closure-summary-stat-label{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.closure-summary-stat-value{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--text);line-height:1}
.closure-summary-stat-value.blue{color:var(--blue2)}
.closure-summary-stat-value.green{color:var(--green)}
.closure-summary-stat-value.amber{color:var(--amber)}
.closure-summary-context{background:rgba(13,21,38,.4);border-left:2px solid var(--blue);border-radius:6px;padding:9px 12px;margin-bottom:16px;font-size:12px;color:var(--text2);line-height:1.5}
.closure-next-actions{display:flex;gap:8px}
.closure-next-secondary{flex:1;background:transparent;color:var(--text2);border:0.5px solid var(--border2);border-radius:8px;padding:11px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.closure-next-secondary:hover{color:var(--text);border-color:var(--blue-dim)}
.closure-next-primary{flex:1;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:11px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;box-shadow:0 6px 20px rgba(0,0,0,.22)}
.closure-next-primary:hover{background:var(--blue2)}
.closure-step-actions{display:flex;justify-content:space-between;gap:8px;margin-top:8px}
.closure-step-back{background:transparent;color:var(--text3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 16px;font-size:12px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.closure-step-back:hover{color:var(--text2)}
.closure-step-next{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.closure-step-next:hover:not(:disabled){background:var(--blue2)}
.closure-step-next:disabled{opacity:.4;cursor:not-allowed}

.finish-modal{position:fixed;inset:0;background:rgba(8,14,28,.85);display:flex;align-items:center;justify-content:center;z-index:100}
.finish-modal-box{background:var(--bg2);border:0.5px solid var(--border2);border-radius:16px;padding:24px;width:420px;max-width:95vw;position:relative}
.finish-modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}
.finish-modal-kicker{font-size:10px;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.finish-modal-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text)}
.finish-modal-close{background:var(--bg3);border:none;color:var(--text3);font-size:18px;cursor:pointer;border-radius:6px;padding:4px 8px;transition:.15s}
.finish-modal-close:hover{color:var(--text)}
.finish-summary{background:var(--bg3);border-radius:10px;padding:12px;margin-bottom:14px}
.finish-summary-row{display:flex;justify-content:space-between;padding:4px 0;font-size:12px}
.finish-summary-label{color:var(--text3)}
.finish-summary-value{color:var(--text);font-weight:500}

.finish-modal-box{width:520px}
.finish-content-preview{background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px;padding:12px;margin-bottom:14px}
.finish-conteudos-section{background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.finish-conteudos-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}
.finish-conteudo-check-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:.12s;border:0.5px solid transparent}
.finish-conteudo-check-row:hover{background:rgba(59,139,255,.05);border-color:rgba(59,139,255,.15)}
.finish-conteudo-check-row.checked{background:rgba(59,139,255,.08);border-color:rgba(59,139,255,.25)}
.finish-conteudo-check-row input[type="checkbox"]{width:14px;height:14px;cursor:pointer;accent-color:var(--blue)}
.finish-conteudo-check-row .conteudo-label{font-size:12px;color:var(--text);flex:1;line-height:1.3}
.finish-conteudo-check-row .conteudo-status-pill{font-size:9px;padding:1px 6px;border-radius:4px;color:var(--text3);background:rgba(255,255,255,.04);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.finish-conteudo-check-row .conteudo-status-pill.done{color:var(--green);background:rgba(29,185,122,.1)}
.finish-radio-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);cursor:pointer;padding:6px 10px;border-radius:6px;border:0.5px solid var(--border2);background:rgba(255,255,255,.02);transition:.12s;flex:1;justify-content:center}
.finish-radio-label:hover{background:rgba(59,139,255,.04);color:var(--text)}
.finish-radio-label input[type="radio"]{accent-color:var(--blue);cursor:pointer}
.finish-radio-label:has(input:checked){background:rgba(59,139,255,.08);border-color:rgba(59,139,255,.35);color:var(--text)}
.finish-content-kicker{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
.finish-conteudo-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:10px 12px}
.finish-conteudo-nome{font-size:12px;color:var(--text);line-height:1.4;margin-bottom:8px}
.finish-conteudo-meta{font-size:11px;color:var(--text2);line-height:1.4;margin-bottom:8px;padding:6px 8px;background:rgba(255,255,255,.02);border-radius:6px;border:0.5px solid var(--border2)}
.finish-conteudo-meta strong{color:var(--text)}
.finish-fases-row{display:flex;gap:6px;flex-wrap:wrap}
.finish-fase-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;border:0.5px solid var(--border2);background:var(--bg4);font-size:10px;color:var(--text3);font-family:'DM Sans',sans-serif;cursor:default}
.finish-fase-btn.done{background:var(--green-dim);border-color:rgba(29,185,122,.3);color:var(--green)}
.finish-fase-btn.current{background:rgba(59,139,255,.12);border-color:var(--blue-dim);color:var(--blue2)}
.finish-fase-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.finish-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.finish-field-card{background:var(--bg3);border-radius:8px;padding:10px}
.finish-modal-actions{display:flex;gap:8px;justify-content:flex-end}

/* TWO COL */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}

/* EMPTY */
.empty-state{text-align:center;padding:32px;color:var(--text3);font-size:13px}
.empty-icon{font-size:28px;margin-bottom:8px}
.empty-state,.editais-empty-state,.qst-empty{background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='220'%20height='220'%3E%3Ccircle%20cx='110'%20cy='110'%20r='92'%20fill='none'%20stroke='%232E96C0'%20stroke-width='15'%20opacity='0.07'/%3E%3Ccircle%20cx='110'%20cy='110'%20r='66'%20fill='none'%20stroke='%232E96C0'%20stroke-width='2'%20opacity='0.12'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center 42%}

/* TABS */
.tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--bg2);border:0.5px solid var(--border);border-radius:10px;padding:4px}
.tab{padding:6px 14px;border-radius:7px;font-size:12px;cursor:pointer;color:var(--text2);transition:.15s}
.tab:hover{color:var(--text)}
.tab.active{background:var(--blue-glow);color:var(--blue);border:0.5px solid var(--blue-dim)}

/* TOAST */
.toast{position:fixed;bottom:24px;right:24px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px;padding:12px 18px;font-size:13px;color:var(--text);z-index:10100;opacity:0;transform:translateY(10px);transition:.3s;pointer-events:none;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.toast.show{opacity:1;transform:translateY(0)}
/* Toast com ação Desfazer */
.toast-undo{position:fixed;bottom:24px;right:24px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px;padding:10px 12px 10px 16px;font-size:13px;color:var(--text);z-index:10100;opacity:0;transform:translateY(10px);transition:.3s;pointer-events:none;display:flex;align-items:center;gap:14px;box-shadow:0 8px 24px rgba(0,0,0,.3);min-width:280px}
.toast-undo.show{opacity:1;transform:translateY(0);pointer-events:auto}
.toast-undo-msg{flex:1}
.toast-undo-btn{background:transparent;color:var(--blue2);border:0.5px solid var(--blue-dim);border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap}
.toast-undo-btn:hover{background:var(--blue-glow);color:var(--text)}
.toast-undo-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(59,139,255,.5);border-radius:0 0 10px 10px;transform-origin:left center;animation:toast-undo-countdown 5s linear forwards}
@keyframes toast-undo-countdown{from{transform:scaleX(1)}to{transform:scaleX(0)}}

/* Mini-diálogo de descarte (aparece sobre o modal pai) */
.discard-dialog{position:absolute;inset:0;background:rgba(8,14,28,.78);display:flex;align-items:center;justify-content:center;z-index:10;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .18s ease}
.discard-dialog.show{opacity:1;pointer-events:auto}
.discard-dialog-box{background:var(--bg2);border:0.5px solid rgba(255,77,106,.28);border-radius:12px;padding:20px 22px;width:300px;max-width:90%;box-shadow:0 16px 50px rgba(0,0,0,.5);transform:scale(.96);transition:transform .2s cubic-bezier(.16,1,.3,1)}
.discard-dialog.show .discard-dialog-box{transform:scale(1)}
.discard-dialog-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px}
.discard-dialog-msg{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:14px}
.discard-dialog-actions{display:flex;justify-content:flex-end;gap:8px}
.discard-dialog-btn{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;padding:7px 14px;border-radius:7px;cursor:pointer;transition:.15s;border:0.5px solid var(--border2)}
.discard-dialog-btn.cancel{background:transparent;color:var(--text2)}
.discard-dialog-btn.cancel:hover{background:var(--bg3);color:var(--text)}
.discard-dialog-btn.confirm{background:var(--red);color:#fff;border-color:var(--red)}
.discard-dialog-btn.confirm:hover{background:#FF6680;border-color:#FF6680}

::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}

/* DASH PREV INLINE · sessão anterior compacta */
.dash-prev-inline{display:flex;align-items:center;gap:10px;padding:9px 14px;background:rgba(13,21,38,.5);border:0.5px solid rgba(37,53,80,.5);border-radius:9px;margin-bottom:14px;font-size:12px;transition:.15s}
.dash-prev-inline:hover{border-color:rgba(59,139,255,.25)}
.dash-prev-arrow{color:var(--text3);font-size:13px}
.dash-prev-label{color:var(--text3);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;flex-shrink:0}
.dash-prev-content{color:var(--text2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-prev-content strong{color:var(--text);font-weight:600}
.dash-prev-btn{background:transparent;border:0.5px solid var(--border2);color:var(--blue2);font-size:11px;padding:4px 12px;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;flex-shrink:0}
.dash-prev-btn:hover{background:var(--blue-glow);border-color:var(--blue-dim)}

/* META CIRCLE + WEEK BLOCK */
.dash-week-block{display:grid;grid-template-columns:1.1fr 0.9fr 1fr;gap:16px}
@media(max-width:980px){.dash-week-block{grid-template-columns:1fr 1fr}.meta-list-wrap{grid-column:1/-1}}
@media(max-width:640px){.dash-week-block{grid-template-columns:1fr}.meta-list-wrap{grid-column:auto}}
.meta-circle-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:20px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.meta-circle-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
.meta-circle-wrap{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center}
.meta-circle-svg{width:140px;height:140px;transform:rotate(-90deg)}
.meta-circle-bg{fill:none;stroke:var(--bg4);stroke-width:9}
.meta-circle-fg{fill:none;stroke:var(--blue);stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset 1.2s cubic-bezier(.16,1,.3,1)}
.meta-circle-fg.green{stroke:var(--green)}
.meta-circle-fg.amber{stroke:var(--amber)}
.meta-circle-center{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center}
.meta-circle-pct{font-family:'Syne',sans-serif;font-size:30px;font-weight:700;color:var(--text);line-height:1}
.meta-circle-sub{font-size:12px;color:var(--text2);margin-top:4px}
.meta-circle-foot{font-size:11px;color:var(--text3);margin-top:14px}
.meta-list-wrap .semanas-grid{margin-top:0}

/* MAT TABLE COMPACTA */
.mat-table-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);overflow:hidden}
.mat-table-head{display:grid;grid-template-columns:1.4fr 1.6fr 110px;gap:14px;padding:11px 16px;font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;border-bottom:0.5px solid var(--border);background:rgba(13,21,38,.4)}
.mat-table-row{display:grid;grid-template-columns:1.4fr 1.6fr 110px;gap:14px;padding:12px 16px;border-bottom:0.5px solid rgba(30,46,74,.45);align-items:center;cursor:pointer;transition:.13s}
.mat-table-row:hover{background:rgba(13,21,38,.5)}
.mat-table-row:last-child{border-bottom:none}
.mat-row-name{display:flex;align-items:center;gap:8px;min-width:0}
.mat-row-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mat-row-nome{font-size:12.5px;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mat-row-last{font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mat-row-last.empty{color:var(--text3);font-style:italic}
.mat-row-prog-wrap{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.mat-row-bar{flex:1;height:5px;background:var(--bg4);border-radius:5px;overflow:hidden;max-width:60px}
.mat-row-bar-fill{height:100%;border-radius:5px;transition:width .6s ease}
.mat-row-pct{font-size:11px;font-weight:600;min-width:34px;text-align:right;font-family:'Syne',sans-serif}

/* COLLAPSED EMPTY CHARTS */
.daily-performance-card.empty,.subject-hours-card.empty{padding:12px 16px}
.daily-performance-card.empty #daily-performance-chart,.subject-hours-card.empty #subject-hours-chart{display:none}
.daily-performance-card.empty .daily-performance-insight,.subject-hours-card.empty .subject-hours-insight{margin-top:8px}

/* TUTORIAIS GRID */
.tut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:24px}
.tut-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:18px;position:relative;transition:.18s;cursor:default}
.tut-card:hover{border-color:rgba(59,139,255,.3);transform:translateY(-2px)}
.tut-step{font-family:'Syne',sans-serif;font-size:11px;font-weight:700;color:var(--blue2);letter-spacing:.1em;margin-bottom:10px}
.tut-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text);margin-bottom:6px}
.tut-desc{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:14px;min-height:54px}
.tut-btn{background:var(--blue-glow);border:0.5px solid var(--blue-dim);color:var(--blue);font-size:12px;padding:7px 14px;border-radius:7px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500;transition:.15s}
.tut-btn:hover{background:rgba(59,139,255,.15)}

/* TOUR OVERLAY */
.tour-overlay{position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:0;transition:opacity .3s}
.tour-overlay.active{opacity:1;pointer-events:auto}
.tour-spotlight{position:absolute;border-radius:12px;box-shadow:0 0 0 9999px rgba(8,14,28,.85);pointer-events:none;transition:all .4s cubic-bezier(.16,1,.3,1);border:2px solid rgba(91,163,255,.4)}
.tour-tooltip{position:absolute;background:#0F1E35;border:0.5px solid rgba(59,139,255,.3);border-radius:12px;padding:16px 18px;width:320px;max-width:calc(100vw - 32px);box-shadow:0 12px 40px rgba(0,0,0,.5);transition:all .4s cubic-bezier(.16,1,.3,1);pointer-events:auto}
.tour-tip-step{font-size:9px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.tour-tip-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}
.tour-tip-desc{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:14px}
.tour-tip-actions{display:flex;justify-content:space-between;align-items:center}
.tour-skip{background:transparent;border:none;color:var(--text3);font-size:11px;cursor:pointer;font-family:'DM Sans',sans-serif;padding:4px}
.tour-skip:hover{color:var(--text2)}
.tour-prev,.tour-next{background:var(--blue);border:none;color:#fff;font-size:11px;padding:6px 12px;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500}
.tour-prev{background:var(--bg3);color:var(--text2);border:0.5px solid var(--border2)}
.tour-prev:disabled{opacity:.4;cursor:not-allowed}
.tour-next:hover{background:var(--blue2)}

/* Highlight do item da sidebar durante o tour */
@keyframes tour-pulse-border {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,0,0,.6); }
  50% { box-shadow: 0 0 0 6px rgba(0,0,0,0); }
}
.nav-item.tour-highlight{position:relative;animation:tour-pulse-border 1.6s ease-in-out infinite}

/* TUTORIAIS · Card de boas-vindas em destaque */
.tut-card-welcome{background:var(--bg2);border-color:rgba(91,163,255,.35)}
.tut-card-welcome:hover{border-color:rgba(91,163,255,.6)}
.tut-card-welcome .tut-step{color:#a78bfa;font-size:14px}
.tut-card-welcome .tut-btn{background:var(--blue);color:#fff;border:none}
.tut-card-welcome .tut-btn:hover{background:var(--blue2);box-shadow:0 4px 14px rgba(0,0,0,.3)}

/* TUTORIAIS · Card concluído */
.tut-card.tut-done{background:var(--bg2);border-color:rgba(29,185,122,.25);opacity:.88}
.tut-card.tut-done:hover{border-color:rgba(29,185,122,.45);opacity:1}
.tut-card.tut-done .tut-step{color:var(--green)}
.tut-card.tut-done .tut-title{color:var(--text2)}
.tut-card.tut-done .tut-btn{background:transparent;border:0.5px solid var(--border2);color:var(--text2)}
.tut-card.tut-done .tut-btn:hover{background:var(--bg3);color:var(--text)}
.tut-done-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:4px;background:rgba(29,185,122,.12);border:0.5px solid rgba(29,185,122,.3);color:var(--green);font-size:10px;font-weight:600;padding:3px 8px;border-radius:20px;letter-spacing:.02em;font-family:'DM Sans',sans-serif}
.tut-done-badge::before{content:'✓';font-size:11px;font-weight:700}
.tut-card.tut-card-welcome.tut-done{background:linear-gradient(135deg,rgba(29,185,122,.08) 0%,rgba(29,185,122,.04) 100%);border-color:rgba(29,185,122,.3)}
.tut-card.tut-card-welcome.tut-done .tut-btn{background:transparent;border:0.5px solid rgba(29,185,122,.3);color:var(--green)}
.tut-card.tut-card-welcome.tut-done .tut-btn:hover{background:rgba(29,185,122,.08)}

/* TUTORIAIS · Próximo card recomendado (destaque pulsante) */
@keyframes tut-next-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,0,0,.5), 0 8px 24px rgba(0,0,0,.08); }
  50% { box-shadow: 0 0 0 4px rgba(0,0,0,0), 0 8px 24px rgba(0,0,0,.18); }
}
.tut-card.tut-next{border-color:rgba(91,163,255,.55);animation:tut-next-pulse 2s ease-in-out infinite;transform:translateY(-1px)}
.tut-card.tut-next:hover{border-color:rgba(91,163,255,.75);animation:none}
.tut-card.tut-next .tut-btn{background:var(--blue);color:#fff;border:none}
.tut-card.tut-next .tut-btn:hover{background:var(--blue2)}
.tut-next-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:4px;background:var(--blue);color:#fff;font-size:9px;font-weight:700;padding:3px 9px;border-radius:20px;letter-spacing:.06em;text-transform:uppercase;font-family:'DM Sans',sans-serif;box-shadow:0 4px 12px rgba(0,0,0,.35)}

/* Banner de progresso dos tutoriais */
.tut-progress-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 18px;margin-bottom:16px}
.tut-progress-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.tut-progress-icon{font-size:20px;flex-shrink:0}
.tut-progress-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.tut-progress-title{font-size:13px;font-weight:600;color:var(--text)}
.tut-progress-sub{font-size:11px;color:var(--text3)}
.tut-progress-bar-wrap{flex:0 0 140px;height:6px;background:#0A1525;border-radius:5px;overflow:hidden;border:0.5px solid rgba(59,139,255,.07)}
.tut-progress-bar-fill{height:100%;background:var(--blue);border-radius:5px;transition:width .6s cubic-bezier(.16,1,.3,1);min-width:2px}
.tut-progress-bar-fill.complete{background:linear-gradient(90deg,#1DB97A,#2EE095)}
.tut-progress-count{font-size:12px;font-weight:600;color:var(--text2);font-family:'DM Sans',sans-serif;white-space:nowrap}
.tut-progress-reset{background:transparent;border:0.5px solid var(--border2);color:var(--text3);font-size:10px;padding:5px 10px;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s;white-space:nowrap}
.tut-progress-reset:hover{border-color:var(--red);color:var(--red);background:var(--red-dim)}
@media (max-width:640px){
  .tut-progress-banner{flex-wrap:wrap}
  .tut-progress-bar-wrap{flex:1 1 100%;order:3}
}

/* Conceitos transversais (XP, SRS, Camadas) */
.tut-concepts{margin-top:8px;padding-top:18px;border-top:0.5px solid var(--border)}
.tut-concepts-title{font-family:'Syne',sans-serif;font-size:13px;font-weight:600;color:var(--text2);margin-bottom:10px;letter-spacing:.02em}
.tut-concepts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.tut-concept-link{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:11px 14px;display:flex;align-items:center;gap:11px;cursor:pointer;transition:.15s;text-align:left;font-family:'DM Sans',sans-serif;color:var(--text)}
.tut-concept-link:hover{border-color:var(--blue-dim);background:rgba(59,139,255,.04);transform:translateX(2px)}
.tut-concept-icon{font-size:18px;line-height:1;flex-shrink:0}
.tut-concept-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.tut-concept-name{font-size:12px;font-weight:600;color:var(--text)}
.tut-concept-sub{font-size:10px;color:var(--text3);line-height:1.4}
.tut-concept-arrow{font-size:14px;color:var(--text3);transition:.15s}
.tut-concept-link:hover .tut-concept-arrow{color:var(--blue2);transform:translateX(2px)}

/* Modal do conceito */
.tut-concept-modal{position:fixed;inset:0;background:rgba(5,11,22,.78);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.tut-concept-modal.open{display:flex}
.tut-concept-modal-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;width:100%;max-width:600px;box-shadow:0 24px 64px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:85vh;overflow:hidden}
.tut-concept-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:0.5px solid var(--border)}
.tut-concept-modal-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text)}
.tut-concept-modal-close{width:30px;height:30px;border-radius:7px;background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:22px;line-height:1;transition:.15s;font-family:'DM Sans',sans-serif}
.tut-concept-modal-close:hover{color:var(--text);background:var(--bg3)}
.tut-concept-modal-body{padding:18px 22px;overflow-y:auto;font-size:13px;color:var(--text2);line-height:1.65}
.tut-concept-modal-body p{margin:0 0 10px}
.tut-concept-modal-body p:last-child{margin-bottom:0}
.tut-concept-modal-body strong{color:var(--text);font-weight:600}
.tut-concept-modal-body ul,.tut-concept-modal-body ol{margin:6px 0 14px 0;padding-left:22px}
.tut-concept-modal-body li{margin-bottom:4px}
.tut-concept-modal-body code{font-family:monospace;background:var(--bg3);color:var(--text);padding:1px 6px;border-radius:4px;font-size:11px;border:0.5px solid var(--border2)}
.tut-concept-levels{counter-reset:level}
.tut-concept-levels li{font-size:12px;color:var(--text2)}
.tut-concept-camadas{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:8px}
.tut-concept-camadas li{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:var(--bg3);border-radius:8px;border:0.5px solid var(--border)}
.tut-cc-pill{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:5px;width:fit-content}
.tut-cc-pill.camada-1{background:var(--camada-1-dim);color:var(--camada-1);border:0.5px solid var(--camada-1-border)}
.tut-cc-pill.camada-2{background:var(--camada-2-dim);color:var(--camada-2);border:0.5px solid var(--camada-2-border)}
.tut-cc-pill.camada-3{background:var(--camada-3-dim);color:var(--camada-3);border:0.5px solid var(--camada-3-border)}
.tut-cc-pill.camada-4{background:var(--camada-4-dim);color:var(--camada-4);border:0.5px solid var(--camada-4-border)}


/* WELCOME BLOCK */
/* O auth-box é position:fixed no canto superior direito (top:14px, right:14px, ~50px de altura).
   O dash-welcome-meta (data + dias até a prova) é posicionado absoluto no view-dashboard,
   ancorado logo abaixo do auth-box pra parecer um bloco coeso de cabeçalho à direita. */
.dash-welcome{display:flex;align-items:flex-start;justify-content:flex-start;padding:0 320px 22px 0;margin-bottom:0;border-bottom:0.5px solid var(--border);position:relative}
@media(max-width:900px){.dash-welcome{padding-right:0;flex-direction:column;gap:14px}}
.dash-welcome-kicker{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;display:block}
.dash-welcome-name{font-family:'Syne',sans-serif;font-size:28px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.15}
.dash-welcome-name span{color:var(--blue)}
.dash-welcome-phrase{font-size:13px;color:var(--text2);line-height:1.55}
/* Item (e): badge do concurso atual */
.dash-welcome-concurso{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:5px 12px;background:rgba(59,139,255,.07);border:0.5px solid rgba(59,139,255,.18);border-radius:7px;font-size:12px;color:var(--text2)}
.dash-welcome-concurso-icon{font-size:13px}
.dash-welcome-concurso-label{color:var(--text3);font-weight:500}
.dash-welcome-concurso-nome{color:var(--blue2);font-weight:600}
/* Bloco de meta (data + dias até a prova) ancorado no topo direito do welcome.
   position:absolute (não fixed) · fica visualmente abaixo do auth-box mas rola
   junto com a página, fazendo parte do cabeçalho como qualquer outro elemento.
   top:56px = 84px desejado da viewport menos 28px do padding-top do .main —
   mantém a mesma posição visual do estado fixed anterior. */
.dash-welcome-meta{position:absolute;top:56px;right:24px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:5;pointer-events:none}
.dash-welcome-meta > *{pointer-events:auto}
@media(max-width:900px){.dash-welcome-meta{position:static;margin-top:14px;align-self:stretch;align-items:flex-start}}
.dash-welcome-date{font-size:12px;color:var(--text3)}
.dash-prova-block{text-align:right}
@media(max-width:900px){.dash-prova-block{text-align:left}}
.dash-prova-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.dash-prova-dias{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:var(--amber);line-height:1}
.dash-prova-sub{font-size:10px;color:var(--text3);margin-top:2px}

/* ============================== CYCLE SEQUENCE ==============================
Visual horizontal estilo "track" com matérias da fila SRS: o que está pendente,
qual é a atual, e o que foi concluído hoje. Inspirado em quadros sequenciais
de fluxo, adaptado pro modelo de fila dinâmica. */
.cyc-seq-card{background:linear-gradient(180deg,rgba(13,21,38,.92),rgba(8,16,32,.96));border:0.5px solid rgba(59,139,255,.22);border-radius:14px;padding:18px 20px 16px;margin:0 0 18px;position:relative;overflow:hidden}
.cyc-seq-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:transparent}
.cyc-seq-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px;flex-wrap:wrap}
.cyc-seq-title{font-size:11px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:8px}
.cyc-seq-title::before{content:'';width:4px;height:14px;border-radius:2px;background:var(--blue)}
.cyc-seq-meta{font-size:11px;color:var(--text3);font-weight:500}
.cyc-seq-meta strong{color:var(--text2);font-weight:600}
/* Trilha horizontal com scroll suave no overflow */
.cyc-seq-track{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:6px 2px 10px;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(59,139,255,.25) transparent}
.cyc-seq-track::-webkit-scrollbar{height:6px}
.cyc-seq-track::-webkit-scrollbar-thumb{background:rgba(59,139,255,.25);border-radius:3px}
.cyc-seq-track::-webkit-scrollbar-track{background:transparent}
/* Card individual de matéria */
.cyc-seq-item{flex:0 0 auto;min-width:128px;max-width:160px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:11px;padding:12px 12px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;transition:.18s cubic-bezier(.16,1,.3,1);cursor:default}
.cyc-seq-item-name{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--text);text-align:center;line-height:1.2;letter-spacing:.005em;width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:32px}
.cyc-seq-item-circle{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:2px 0 4px;position:relative}
.cyc-seq-item-status{font-size:10px;color:var(--text3);text-transform:none;font-weight:500;line-height:1;margin-top:2px;text-align:center}
/* Conector entre os cards (chevron sutil) */
.cyc-seq-connector{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:14px;color:rgba(59,139,255,.35)}
.cyc-seq-connector svg{display:block}
/* Variante: PENDENTE · sutil, mais opaca, círculo só com borda tracejada */
.cyc-seq-item.is-pending{opacity:.72}
.cyc-seq-item.is-pending .cyc-seq-item-circle{border:1.5px dashed var(--border2);background:transparent}
.cyc-seq-item.is-pending .cyc-seq-item-status{color:var(--text3)}
/* Variante: ATUAL · destaque forte com borda azul, ring pulsante */
.cyc-seq-item.is-current{border-color:var(--blue);background:var(--bg2);box-shadow:0 0 0 1px var(--blue) inset,0 8px 22px rgba(0,0,0,.18);transform:translateY(-2px)}
.cyc-seq-item.is-current .cyc-seq-item-circle{border:2px solid var(--blue);background:transparent;animation:cyc-seq-pulse 2.4s ease-in-out infinite}
.cyc-seq-item.is-current .cyc-seq-item-name{color:var(--text)}
.cyc-seq-item.is-current .cyc-seq-item-status{color:var(--amber);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
@keyframes cyc-seq-pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,.4)}50%{box-shadow:0 0 0 8px rgba(0,0,0,0)}}
/* Variante: CONCLUÍDA · check verde sólido */
.cyc-seq-item.is-done{opacity:.82}
.cyc-seq-item.is-done .cyc-seq-item-circle{background:rgba(29,185,122,.12);border:1.5px solid var(--green)}
.cyc-seq-item.is-done .cyc-seq-item-check{color:var(--green);font-size:22px;line-height:1;font-weight:700}
.cyc-seq-item.is-done .cyc-seq-item-status{color:var(--green);font-weight:600}
/* Variante por importância no círculo (pendente e atual) */
.cyc-seq-item-circle .cyc-seq-pri{font-size:14px;line-height:1;opacity:.85}
.cyc-seq-item.is-current .cyc-seq-pri{opacity:1}
.cyc-seq-item.is-pending .cyc-seq-pri{opacity:.55}
/* Estado vazio */
.cyc-seq-empty{padding:18px 8px;text-align:center;color:var(--text3);font-size:12px}
.cyc-seq-empty a{color:var(--blue2);text-decoration:none;cursor:pointer;font-weight:600}
.cyc-seq-empty a:hover{text-decoration:underline}
/* Footer com call-to-action sutil · "complete o ciclo" */
.cyc-seq-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;padding-top:10px;border-top:0.5px solid rgba(59,139,255,.12)}
.cyc-seq-footer-msg{font-size:11px;color:var(--text2);line-height:1.4}
.cyc-seq-footer-msg strong{color:var(--blue2);font-weight:600}
.cyc-seq-footer-cta{font-size:11px;color:var(--text3);background:transparent;border:none;cursor:pointer;font-family:inherit;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:.15s;flex-shrink:0;white-space:nowrap}
.cyc-seq-footer-cta:hover{color:var(--blue2);text-decoration-color:currentColor}
/* Mobile */
@media(max-width:720px){
  .cyc-seq-card{padding:14px 14px 12px;border-radius:12px}
  .cyc-seq-item{min-width:112px;max-width:140px;padding:10px 10px 8px}
  .cyc-seq-item-circle{width:38px;height:38px}
  .cyc-seq-item-name{font-size:12px;min-height:28px}
  .cyc-seq-item-status{font-size:9px}
  .cyc-seq-footer{flex-direction:column;align-items:flex-start;gap:6px}
}
/* ============================== FIM CYCLE SEQUENCE ============================== */


.dash-hero{background:linear-gradient(135deg,#0A1E3D 0%,#0D2450 60%,#0F2560 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:14px;padding:26px 28px;margin:20px 0 18px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;position:relative;overflow:visible}
.dash-hero::before{display:none}
.dash-hero-eyebrow{font-size:11px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.dash-hero-pulse{display:none}
.dash-hero-title{font-family:'DM Sans',system-ui,sans-serif;font-size:25px;font-weight:700;color:var(--text);margin-bottom:6px;line-height:1.2;letter-spacing:-.015em}
.dash-hero-sub{font-size:13px;color:var(--text2);line-height:1.55;margin-bottom:14px;max-width:480px}
.dash-hero-pills{display:flex;gap:8px;flex-wrap:wrap}
.dash-hero-etapa{margin:2px 0 14px}
.dash-hero-etapa:empty{display:none}
.dhe-label{font-size:12.5px;color:var(--text2);margin-bottom:7px}
.dhe-label b{font-weight:700}
.dhe-bar{display:flex;gap:5px;max-width:340px}
.dhe-seg{flex:1;height:6px;border-radius:3px;transition:background .2s}
.dhe-info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--text3);color:var(--text3);font-size:10px;font-weight:700;line-height:1;cursor:pointer;margin-left:7px;vertical-align:middle;user-select:none}
.dhe-info:hover{border-color:var(--text2);color:var(--text2)}
.dhe-pop{display:none;position:absolute;top:23px;left:0;z-index:60;width:290px;max-width:78vw;background:#0F1E35;border:0.5px solid rgba(59,139,255,.3);border-radius:11px;padding:13px 15px;box-shadow:0 12px 40px rgba(0,0,0,.5);text-align:left;cursor:default}
.dhe-info:hover .dhe-pop,.dhe-info.show .dhe-pop{display:block}
.dhe-pop-t{display:block;font-size:13px;font-weight:700;margin-bottom:4px}
.dhe-pop-s{display:block;font-size:12px;color:var(--text2);line-height:1.5;margin-top:7px;font-weight:400}
.dhe-pop-s b{color:var(--text);font-weight:600}
/* HIERARQUIA DA TELA INICIAL (23/06): o card "Agora" (hero) é o ÚNICO foco alto. O resto
   fica presente, porém discreto (menos chamativo), pra não competir. Modo simples foi
   cancelado · esta é a limpeza aplicada por padrão pra todos. */
.dash-welcome-phrase{color:var(--text3)!important;font-size:12px;font-style:italic;opacity:.85}
#dash-hero{margin-bottom:24px}
.cyc-anel-wrap{padding:6px 0 4px;animation:anelIn .45s cubic-bezier(.16,1,.3,1)}
@keyframes anelIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.dash-anel-row{display:grid;grid-template-columns:0.78fr 1.8fr 0.82fr;gap:16px;align-items:stretch;margin-bottom:18px}
.dash-anel-row .cyc-seq-card{margin:0;display:flex;flex-direction:column;justify-content:center}
.dash-anel-row .stats-grid{display:grid;grid-template-columns:1fr;gap:12px;margin:0;align-content:center}
.cyc-list{align-self:center;max-height:440px;overflow:auto}
.cyc-list-h{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin:0 0 9px 2px}
.cyc-list-ol{list-style:none;margin:0;padding:0;counter-reset:cl}
.cyc-list-ol li{counter-increment:cl;font-size:12px;color:var(--text2);padding:5px 0 5px 21px;position:relative;line-height:1.35;border-bottom:0.5px solid rgba(37,53,80,.4)}
.cyc-list-ol li:last-child{border-bottom:0}
.cyc-list-ol li::before{content:counter(cl);position:absolute;left:0;top:5px;font-size:9.5px;color:var(--text3);font-weight:600}
.cyc-list-ol li.cl-done{color:var(--text3);text-decoration:line-through;text-decoration-color:rgba(139,158,199,.45)}
.cyc-list-ol li.cl-cur{color:var(--text);font-weight:600}
.cyc-list-ol li.cl-cur::before{color:#F0A500}
.cl-chk{color:#2E96C0;font-weight:700;margin-left:4px;text-decoration:none;display:inline-block}
@media(max-width:920px){.dash-anel-row{grid-template-columns:1fr;gap:14px}.dash-anel-row .stats-grid{grid-template-columns:repeat(2,1fr)}.cyc-list{display:none}}
@media(max-width:520px){.dash-anel-row .stats-grid{grid-template-columns:1fr}}
.dash-progress-bar-card,.dash-charts-grid,.dash-week-block{opacity:.82;transition:opacity .2s}
.dash-progress-bar-card:hover,.dash-charts-grid:hover,.dash-week-block:hover{opacity:1}
.dash-hero-pill{font-size:12px;padding:5px 11px;border-radius:7px;background:rgba(59,139,255,.12);color:var(--blue2);border:0.5px solid rgba(59,139,255,.2)}
.dash-hero-actions{display:flex;flex-direction:column;gap:10px;flex-shrink:0;align-items:flex-end}
.dash-hero-btn{background:var(--brand);color:var(--brand-ink);border:none;border-radius:9px;padding:14px 28px;font-size:14px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:.15s;letter-spacing:.01em;box-shadow:0 2px 8px rgba(0,0,0,.35)}
.dash-hero-btn:hover{background:var(--brand-2);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.42)}
.dash-hero-sec{background:transparent;color:var(--text3);border:none;padding:4px 8px;font-size:12px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;text-align:center;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.dash-hero-sec:hover{color:var(--text2);text-decoration-color:currentColor}
.dash-hero-hint{font-size:11px;color:var(--text3);margin-top:2px;text-align:right}
/* No mobile, hero empilha em coluna pra evitar vazamento do botão à direita.
   Sem essa regra, grid-template-columns:1fr auto força o botão "Iniciar sessão"
   pra fora da tela em telas estreitas. */
@media(max-width:720px){
  .dash-hero{grid-template-columns:1fr;padding:18px 16px;gap:14px;margin:14px 0}
  .dash-hero-title{font-size:20px}
  .dash-hero-sub{font-size:12px;margin-bottom:10px}
  .dash-hero-actions{align-items:stretch}
  .dash-hero-btn{width:100%;padding:12px 18px;font-size:13px;white-space:normal}
  .dash-hero-hint{text-align:center}
}
/* "Pular esta matéria" agora mora num menu ⋯ discreto, pra não competir com o
   "Iniciar sessão" (iniciante batia em Pular sem querer). */
.dash-hero-more{position:relative;align-self:flex-end}
.dash-hero-more>summary{list-style:none;cursor:pointer;color:var(--text3);font-size:18px;line-height:1;padding:2px 10px;border-radius:7px;user-select:none;transition:.15s}
.dash-hero-more>summary::-webkit-details-marker{display:none}
.dash-hero-more>summary::marker{content:''}
.dash-hero-more>summary:hover{background:rgba(255,255,255,.06);color:var(--text2)}
.dash-hero-more-pop{display:none;position:absolute;right:0;top:100%;margin-top:4px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:9px;padding:5px;box-shadow:0 12px 30px rgba(0,0,0,.45);z-index:30;min-width:172px}
.dash-hero-more[open] .dash-hero-more-pop{display:block}
.dash-hero-more-item{width:100%;text-align:left;background:transparent;border:0;color:var(--text2);font-family:'DM Sans',sans-serif;font-size:13px;padding:10px 11px;border-radius:6px;cursor:pointer;white-space:nowrap}
.dash-hero-more-item:hover{background:rgba(59,139,255,.1);color:var(--text)}
/* B · alvos de toque ≥44px nos controles pequenos do fluxo principal (só mobile) */
@media(max-width:768px){
  .cron-nav-btn{min-height:44px}
  .materias-filter,.materias-filter-toggle,.materias-add-btn{min-height:44px}
  .nav-item{min-height:44px}
  .dash-hero-more>summary{padding:8px 14px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
}
@keyframes dash-pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,0,0,.4)}50%{opacity:.8;box-shadow:0 0 0 5px rgba(0,0,0,0)}}

/* MÉTRICAS DO DIA · card único integrado */
.dash-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:18px;background:var(--bg2);border-radius:12px;overflow:hidden;border:0.5px solid var(--border)}
.dash-metric{background:transparent;border:none;border-radius:0;padding:18px 20px;position:relative;overflow:hidden;transition:.15s;text-align:center}
.dash-metric + .dash-metric{border-left:0.5px solid var(--border)}
.dash-metric:hover{background:rgba(255,255,255,.015)}
.dash-metric-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.dash-metric-value{font-family:'Syne',sans-serif;font-size:26px;font-weight:700;color:var(--text);line-height:1;margin-bottom:4px}
.dash-metric-sub{font-size:11px;color:var(--text3);line-height:1.4}
.dash-metric-bar{display:none}
.dash-metric.blue .dash-metric-value{color:var(--blue)}
.dash-metric.green .dash-metric-value{color:var(--green)}
.dash-metric.amber .dash-metric-value{color:var(--amber)}
@keyframes count-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.dash-metric-value.animate{animation:count-in .35s cubic-bezier(.16,1,.3,1)}
@media(max-width:720px){.dash-metrics{grid-template-columns:1fr}.dash-metric + .dash-metric{border-left:none;border-top:0.5px solid var(--border)}}

/* CONTEXTO · anterior / próxima */
.dash-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.dash-context-card{background:rgba(13,21,38,.55);border:0.5px solid rgba(37,53,80,.6);border-radius:12px;padding:12px 14px;transition:.18s;cursor:pointer}
.dash-context-card:hover{border-color:rgba(59,139,255,.25);background:rgba(18,29,50,.65)}
.dash-context-eyebrow{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.dash-context-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-context-sub{font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
.dash-context-meta{font-size:10px;color:var(--text3);margin-top:5px}

/* PROGRESSO GLOBAL */
.dash-progress-bar-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;padding:18px 20px;margin-bottom:18px}
.dash-progress-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.dash-progress-label{font-size:13px;font-weight:600;color:var(--text2)}
.dash-progress-pct{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--blue)}
.dash-progress-track{height:8px;background:var(--bg4);border-radius:8px;overflow:hidden;margin-bottom:7px}
.dash-progress-fill{height:100%;background:var(--blue);border-radius:8px;transition:width 1s ease}
.dash-progress-sub{font-size:12px;color:var(--text3)}

/* FLASHCARDS */
.erros-materia-group{margin-bottom:20px}
.erros-materia-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);cursor:pointer;margin-bottom:6px;transition:.15s}
.erros-materia-header:hover{border-color:var(--border2)}
.erros-materia-header.open{border-color:var(--blue-dim);background:var(--bg3)}
.erros-materia-title{font-size:13px;font-weight:500;color:var(--text);flex:1}
.erros-materia-count{font-size:11px;color:var(--text3);padding:2px 8px;background:var(--bg4);border-radius:6px}
.erros-materia-arrow{font-size:11px;color:var(--text3);transition:.2s}
.erros-materia-header.open .erros-materia-arrow{transform:rotate(90deg)}
.erros-conteudo-group{margin-bottom:8px;padding-left:12px}
.erros-conteudo-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;padding:6px 0;border-bottom:0.5px solid var(--border);margin-bottom:6px}
.flashcards-row{display:flex;flex-direction:column;gap:6px}
.flashcard{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);overflow:hidden;transition:.2s;cursor:pointer}
.flashcard:hover{border-color:var(--border2)}
.flashcard.revealed{border-color:rgba(29,185,122,.2)}
.flashcard-front{padding:12px 14px;display:flex;align-items:flex-start;gap:10px}
.flashcard-tipo{font-size:9px;padding:2px 7px;border-radius:5px;font-weight:500;flex-shrink:0;margin-top:2px}
.flashcard-tipo.falta{background:rgba(255,77,106,.1);color:var(--red)}
.flashcard-tipo.confusao{background:rgba(240,165,0,.1);color:var(--amber)}
.flashcard-tipo.leitura{background:rgba(139,89,255,.1);color:#a78bfa}
.flashcard-tipo.pegadinha{background:rgba(59,139,255,.12);color:var(--blue2)}
.flashcard-pergunta{font-size:13px;color:var(--text);flex:1;line-height:1.5}
.flashcard-hint{font-size:10px;color:var(--text3);margin-top:4px}
.flashcard-actions{display:flex;gap:6px;margin-left:auto;flex-shrink:0}
.flashcard-reveal-btn{font-size:10px;padding:3px 10px;border-radius:5px;border:0.5px solid var(--border2);background:var(--bg3);color:var(--blue2);cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif}
.flashcard-reveal-btn:hover{background:var(--blue-glow);border-color:var(--blue-dim)}
.flashcard-reveal-btn.hide-btn{color:var(--text3)}
.flashcard-revisado-btn{font-size:10px;padding:3px 10px;border-radius:5px;border:0.5px solid var(--border2);background:var(--bg4);color:var(--text3);cursor:pointer;transition:.15s;font-family:'DM Sans',sans-serif}
.flashcard-revisado-btn.ok{background:var(--green-dim);border-color:rgba(29,185,122,.3);color:var(--green)}
.flashcard-del{font-size:11px;color:var(--text3);cursor:pointer;padding:3px 6px;border-radius:4px;transition:.15s}
.flashcard-del:hover{color:var(--red);background:rgba(255,77,106,.1)}
.flashcard-back{padding:0 14px;max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}
.flashcard.revealed .flashcard-back{max-height:200px;padding:0 14px 12px}
.flashcard-back-inner{background:var(--green-dim);border:0.5px solid rgba(29,185,122,.2);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--text2);line-height:1.6}
.flashcard-back-label{font-size:9px;font-weight:600;color:var(--green);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}

/* ACOMPANHAMENTO */
.acomp-table{display:flex;flex-direction:column;gap:6px}
.acomp-row{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r);padding:12px 16px;display:grid;grid-template-columns:1fr 80px 90px 90px 80px 100px;align-items:center;gap:10px}
.acomp-row.header{background:transparent;border-color:transparent;padding:4px 16px}
.acomp-header-label{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em}
.acomp-nome{font-size:13px;color:var(--text);font-weight:500}
.acomp-fase{font-size:11px;padding:2px 8px;border-radius:5px;text-align:center}
.acomp-fase.material{background:rgba(59,139,255,.12);color:var(--blue2)}
.acomp-fase.resumo{background:rgba(240,165,0,.1);color:var(--amber)}
.acomp-fase.questoes{background:rgba(139,89,255,.1);color:#a78bfa}
.acomp-fase.revisao{background:rgba(29,185,122,.1);color:var(--green)}
.acomp-fase.completo{background:var(--green-dim);color:var(--green)}
/* Bloco 12: variantes pra Estudo em Camadas */
.acomp-fase.camada-1{background:var(--camada-1-dim);color:var(--camada-1);border:0.5px solid var(--camada-1-border)}
.acomp-fase.camada-2{background:var(--camada-2-dim);color:var(--camada-2);border:0.5px solid var(--camada-2-border)}
.acomp-fase.camada-3{background:var(--camada-3-dim);color:var(--camada-3);border:0.5px solid var(--camada-3-border)}
.acomp-fase.camada-4{background:var(--camada-4-dim);color:var(--camada-4);border:0.5px solid var(--camada-4-border)}
.acomp-prog-wrap{display:flex;flex-direction:column;gap:3px}
.acomp-prog-bar{height:4px;background:var(--bg4);border-radius:4px;overflow:hidden}
.acomp-prog-fill{height:100%;border-radius:4px;transition:width .6s}
.acomp-pct{font-size:11px;font-weight:500;text-align:right}
.acomp-tempo{font-size:12px;color:var(--text2)}
.acomp-conteudos{font-size:11px;color:var(--text3)}
.acomp-proxima{font-size:10px;padding:2px 7px;border-radius:4px;background:var(--bg3);color:var(--text2);border:0.5px solid var(--border2)}

/* ============================================================================
   DESEMPENHO V2 · Dashboard único scrolável
   Substitui o sistema antigo de 5 abas. Todas as classes começam com .dv2- pra
   evitar conflito com regras antigas (.perf-card, .consist-card, etc).
   ============================================================================ */

/* Section base */
.dv2-section{margin-bottom:24px}
.dv2-section-eyebrow{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.dv2-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;gap:12px}
.dv2-section-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:600;color:var(--text)}
.dv2-section-hint{font-size:11px;color:var(--text3)}
.dv2-card-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.dv2-card-sub{font-size:10px;color:var(--text3);margin-bottom:10px}

.dv2-empty{font-size:12px;color:var(--text3);text-align:center;padding:32px 16px;line-height:1.5}
.dv2-empty-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:24px;text-align:center;font-size:12px;color:var(--text3)}

/* ── HERO (Seção 1: KPIs + sparklines + diagnóstico) ─────────────────────── */
.dv2-hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
@media(max-width:900px){.dv2-hero-grid{grid-template-columns:1fr}}
.dv2-kpi{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:16px 18px;display:flex;flex-direction:column;gap:8px;position:relative}
.dv2-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dv2-kpi-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.dv2-kpi-value{font-family:'Syne',sans-serif;font-size:34px;font-weight:700;line-height:1;color:var(--text)}
.dv2-kpi-unit{font-size:16px;color:var(--text3);font-weight:600;margin-left:2px}
.dv2-kpi-spark{height:28px;display:flex;align-items:center}
.dv2-kpi-sub{font-size:11px;color:var(--text3)}

.dv2-trend{font-size:10px;font-weight:600;padding:3px 8px;border-radius:5px;letter-spacing:.02em;white-space:nowrap}
.dv2-trend.up{background:rgba(29,185,122,.12);color:var(--green);border:0.5px solid rgba(29,185,122,.25)}
.dv2-trend.down{background:rgba(255,77,106,.12);color:var(--red);border:0.5px solid rgba(255,77,106,.25)}
.dv2-trend.flat{background:var(--bg3);color:var(--text3);border:0.5px solid var(--border)}

.dv2-diagnostico{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:12px 16px;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);line-height:1.5}
.dv2-diagnostico.tone-good{border-color:rgba(29,185,122,.25);background:linear-gradient(135deg,rgba(29,185,122,.05),rgba(29,185,122,.01))}
.dv2-diagnostico.tone-warn{border-color:rgba(240,165,0,.22);background:linear-gradient(135deg,rgba(240,165,0,.05),rgba(240,165,0,.01))}
.dv2-diagnostico.tone-bad{border-color:rgba(255,77,106,.22);background:linear-gradient(135deg,rgba(255,77,106,.05),rgba(255,77,106,.01))}
.dv2-diag-icon{font-size:18px;flex-shrink:0}
.dv2-diag-text{flex:1}

/* ── RECOMENDAÇÕES (Seção 2) ─────────────────────────────────────────────── */
.dv2-rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:900px){.dv2-rec-grid{grid-template-columns:1fr}}
.dv2-rec-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;display:flex;gap:12px;align-items:flex-start;position:relative;overflow:hidden}
.dv2-rec-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--text3)}
.dv2-rec-card.prio-high::before{background:var(--red)}
.dv2-rec-card.prio-medium::before{background:var(--amber)}
.dv2-rec-card.prio-low::before{background:var(--green)}
.dv2-rec-icon{width:32px;height:32px;border-radius:8px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.dv2-rec-card.prio-high .dv2-rec-icon{background:rgba(255,77,106,.12)}
.dv2-rec-card.prio-medium .dv2-rec-icon{background:rgba(240,165,0,.1)}
.dv2-rec-card.prio-low .dv2-rec-icon{background:rgba(29,185,122,.1)}
.dv2-rec-body{flex:1;min-width:0}
.dv2-rec-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px;line-height:1.3}
.dv2-rec-desc{font-size:11px;color:var(--text2);line-height:1.5;margin-bottom:6px}
.dv2-rec-tag{display:inline-block;font-size:9px;padding:2px 8px;border-radius:4px;background:var(--bg3);color:var(--text3);text-transform:uppercase;letter-spacing:.04em;font-weight:600}

/* ── MATÉRIAS (Seção 3: radar + lista) ───────────────────────────────────── */
.dv2-materias-grid{display:grid;grid-template-columns:1fr 280px;gap:14px;margin-bottom:14px}
@media(max-width:900px){.dv2-materias-grid{grid-template-columns:1fr}}
/* Em telas bem estreitas o radar fica ilegível · esconde e deixa só as listas ↗/↘.
   Seletor com 2 classes (especificidade > regra base) pra vencer sem depender da ordem. */
@media(max-width:600px){.dv2-materias-grid .dv2-radar-wrap{display:none}}
.dv2-radar-wrap{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px;display:flex;align-items:center;justify-content:center;min-height:300px}
.dv2-deltas{display:flex;flex-direction:column;gap:10px}
.dv2-delta-block{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:12px 14px}
.dv2-delta-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.dv2-delta-title.up{color:var(--green)}
.dv2-delta-title.down{color:var(--red)}
.dv2-delta-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:12px}
.dv2-delta-nome{color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px}
.dv2-delta-val{font-weight:600;font-size:11px;flex-shrink:0}
.dv2-delta-val.up{color:var(--green)}
.dv2-delta-val.down{color:var(--red)}
.dv2-delta-empty{font-size:11px;color:var(--text3);font-style:italic}

.dv2-mat-list{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:6px 0;display:flex;flex-direction:column}
.dv2-mat-row{display:grid;grid-template-columns:1fr 100px 50px 50px 70px;gap:10px;align-items:center;padding:8px 16px;border-bottom:0.5px solid rgba(30,46,74,.3);font-size:12px}
.dv2-mat-row:last-child{border-bottom:none}
.dv2-mat-row:hover{background:rgba(59,139,255,.03)}
/* Header da tabela: título de coluna em uppercase, sem hover, com borda mais forte */
.dv2-mat-row.dv2-mat-header{padding:8px 16px 6px;border-bottom:0.5px solid var(--border);background:transparent}
.dv2-mat-row.dv2-mat-header:hover{background:transparent}
.dv2-mat-col-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em}
.dv2-mat-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv2-mat-bar{height:5px;background:rgba(10,20,38,.7);border-radius:5px;overflow:hidden;border:0.5px solid rgba(59,139,255,.08)}
.dv2-mat-bar-fill{height:100%;border-radius:5px;transition:width .6s}
.dv2-mat-pct{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;text-align:right}
.dv2-mat-q{font-size:11px;color:var(--text3);text-align:right}
.dv2-mat-trend{display:flex;justify-content:flex-end}
.dv2-mat-badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;letter-spacing:.02em}
.dv2-mat-badge.up{background:rgba(29,185,122,.12);color:var(--green)}
.dv2-mat-badge.down{background:rgba(255,77,106,.12);color:var(--red)}
.dv2-mat-badge.weak{background:rgba(240,165,0,.12);color:var(--amber)}
@media(max-width:720px){.dv2-mat-row{grid-template-columns:1fr 60px 50px;font-size:11px}.dv2-mat-q,.dv2-mat-trend{display:none}}

/* ── ROTINA (Seção 4: heatmap + linha + donut) ───────────────────────────── */
.dv2-rotina-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dv2-rotina-grid > .dv2-donut-card{grid-column:1 / -1}
@media(max-width:900px){.dv2-rotina-grid{grid-template-columns:1fr}.dv2-rotina-grid > .dv2-donut-card{grid-column:auto}}
.dv2-rotina-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px}
.dv2-donut-row{display:flex;align-items:center;gap:18px;justify-content:center;flex-wrap:wrap}
.dv2-donut-legend{display:flex;flex-direction:column;gap:6px;min-width:180px}
.dv2-donut-item{display:grid;grid-template-columns:10px 1fr 40px;gap:8px;align-items:center;font-size:11px}
.dv2-donut-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.dv2-donut-label{color:var(--text2)}
.dv2-donut-pct{color:var(--text3);font-weight:600;text-align:right}

/* ── CADERNO DE ERROS (Seção 5) ──────────────────────────────────────────── */
.dv2-erros-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;margin-bottom:12px}
@media(max-width:900px){.dv2-erros-grid{grid-template-columns:1fr}}
.dv2-erros-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px}
.dv2-erros-status{display:flex;justify-content:space-around;align-items:center;padding:6px 0 10px;gap:14px}
.dv2-erros-stat{text-align:center}
.dv2-erros-num{font-family:'Syne',sans-serif;font-size:28px;font-weight:700;line-height:1}
.dv2-erros-lbl{font-size:10px;color:var(--text3);margin-top:3px;text-transform:uppercase;letter-spacing:.04em}
.dv2-erros-progress{height:5px;background:rgba(255,77,106,.1);border-radius:5px;overflow:hidden}
.dv2-erros-progress-fill{height:100%;border-radius:5px;background:var(--green);transition:width .8s}

.dv2-erros-camadas{display:flex;flex-direction:column;gap:7px}
.dv2-cam-row{display:grid;grid-template-columns:140px 1fr 28px;gap:10px;align-items:center}
.dv2-cam-label{font-size:11px;color:var(--text2)}
.dv2-cam-bar{height:6px;background:var(--bg4);border-radius:4px;overflow:hidden}
.dv2-cam-fill{height:100%;border-radius:4px;transition:width .6s}
.dv2-cam-count{font-size:11px;font-weight:600;text-align:right}

.dv2-erros-top{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px}
.dv2-top-row{display:grid;grid-template-columns:1fr 80px 100px;gap:10px;align-items:center;padding:7px 0;border-bottom:0.5px solid rgba(30,46,74,.3);font-size:12px}
.dv2-top-row:last-child{border-bottom:none}
.dv2-top-name{color:var(--text)}
.dv2-top-total{font-size:11px;color:var(--text3);text-align:right}
.dv2-top-pend{font-size:11px;font-weight:600;color:var(--red);text-align:right}

/* FILTROS FLASHCARD */
.fc-filtro{font-size:11px;padding:4px 12px;border-radius:6px;border:0.5px solid var(--border2);background:var(--bg2);color:var(--text2);cursor:pointer;transition:.15s}
.fc-filtro:hover{border-color:var(--blue-dim);color:var(--blue)}
.fc-filtro.active{background:var(--blue-glow);border-color:var(--blue-dim);color:var(--blue)}

/* ERROS SUBTABS */
.erros-subtabs{display:flex;gap:0;margin-bottom:20px;border-bottom:0.5px solid var(--border)}
.erros-subtab{display:flex;align-items:center;gap:7px;padding:10px 18px;font-size:13px;color:var(--text2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-0.5px;transition:.15s}
.erros-subtab:hover{color:var(--text)}
.erros-subtab.active{color:var(--blue);border-bottom-color:var(--blue)}
.erros-subtab-count{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--amber-dim);color:var(--amber);font-weight:600}

/* REVIEW FLASHCARD */
/* ===== DASHBOARD DE REVISÃO ===== */
.revisao-dashboard{
  background:var(--bg2);
  border:0.5px solid var(--border);
  border-radius:14px;
  padding:18px 20px;
  margin-bottom:20px
}
.revisao-dash-header{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  margin-bottom:14px;
  flex-wrap:wrap;
  gap:6px
}
.revisao-dash-title{
  font-family:'Syne',sans-serif;
  font-size:14px;
  font-weight:700;
  color:var(--text);
  letter-spacing:.01em
}
.revisao-dash-sub{
  font-size:11px;
  color:var(--text3)
}
.revisao-dash-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px
}
.revisao-dash-stat{
  background:var(--bg3);
  border:0.5px solid var(--border2);
  border-radius:10px;
  padding:14px 12px;
  text-align:center;
  transition:.2s
}
.revisao-dash-stat:hover{transform:translateY(-2px)}
.revisao-dash-num{
  font-family:'Syne',sans-serif;
  font-size:26px;
  font-weight:800;
  line-height:1;
  margin-bottom:6px
}
.revisao-dash-label{
  font-size:10px;
  font-weight:600;
  color:var(--text3);
  text-transform:uppercase;
  letter-spacing:.07em
}
.revisao-dash-stat.devidos .revisao-dash-num{color:var(--blue2)}
.revisao-dash-stat.novos .revisao-dash-num{color:var(--text2)}
.revisao-dash-stat.atrasados .revisao-dash-num{color:var(--red)}
.revisao-dash-stat.aprendendo .revisao-dash-num{color:var(--amber)}
.revisao-dash-stat.devidos.has-cards{border-color:rgba(59,139,255,.4);background:rgba(59,139,255,.06)}
.revisao-dash-stat.atrasados.has-cards{border-color:rgba(255,77,106,.35);background:rgba(255,77,106,.06)}
@media(max-width:600px){
  .revisao-dash-grid{grid-template-columns:repeat(2,1fr)}
}

/* ===== FLASHCARD FÍSICO ===== */
.fc-review-card{
  width:100%;
  max-width:620px;
  min-height:calc(440px * var(--fc-font-scale, 1));
  position:relative;
  /* perspective precisa estar no container externo, não no flipper */
  perspective:1200px;
}
.fc-card-flipper{
  position:relative;
  width:100%;
  min-height:calc(440px * var(--fc-font-scale, 1)); /* escala junto com o controle A-/A+ */
  transition:transform .55s cubic-bezier(.4,0,.2,1);
  transform-style:preserve-3d;
}
.fc-card-flipper.flipped{
  transform:rotateY(180deg)
}
.fc-card-side{
  position:absolute;
  inset:0; /* top/right/bottom/left: 0 · ocupa todo o espaço do pai */
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  display:flex;
  flex-direction:column;
  gap:14px;
  border-radius:16px;
  padding:30px 34px;
}
/* FRENTE · papel branco, cartão físico */
.fc-card-front{
  background:#FAFAF8;
  border:1px solid #E2E2DC;
  box-shadow:
    0 1px 0 #fff inset,
    0 4px 6px rgba(0,0,0,.06),
    0 12px 28px rgba(0,0,0,.12),
    0 2px 0 #D5D5CE; /* "borda inferior" que dá espessura ao cartão */
}
/* VERSO · creme esverdeado suave */
.fc-card-back{
  background:#F2F9F4;
  border:1px solid #C8E6D0;
  box-shadow:
    0 1px 0 #fff inset,
    0 4px 6px rgba(0,0,0,.06),
    0 12px 28px rgba(0,0,0,.12),
    0 2px 0 #B8D8C0;
  transform:rotateY(180deg)
}
/* Linha decorativa no topo da frente · como um cartão de índice */
.fc-card-front::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--blue);
  border-radius:16px 16px 0 0;
}
.fc-card-back::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:linear-gradient(90deg,var(--green),#2CD48A);
  border-radius:16px 16px 0 0;
}
/* Textos do cartão · escuros porque fundo é claro */
.fc-review-header{display:flex;align-items:center;justify-content:space-between}
.fc-review-num{font-size:11px;color:#888;font-weight:500;letter-spacing:.04em}
/* Controle de tamanho da letra do flashcard (A-/A+) */
.fc-fs-ctrl{display:inline-flex;gap:5px;align-items:center}
.fc-fs-btn{font-family:'DM Sans',sans-serif;font-weight:700;font-size:12px;line-height:1;color:#4B5563;background:#EEEEEA;border:1px solid #D5D5CE;border-radius:6px;padding:5px 9px;cursor:pointer;transition:.12s;-webkit-tap-highlight-color:transparent}
.fc-fs-btn:hover{background:#E2E2DC;color:#1A1A2E}
.fc-fs-btn:active{transform:scale(.94)}
.fc-review-dif-badge{font-size:10px;padding:3px 10px;border-radius:6px;font-weight:600;letter-spacing:.02em}
.fc-review-dif-badge.facil,.fc-review-dif-badge.easy{background:#DCFCE7;color:#16A34A}
.fc-review-dif-badge.medio,.fc-review-dif-badge.good{background:#FEF9C3;color:#A16207}
.fc-review-dif-badge.dificil,.fc-review-dif-badge.hard{background:#FEE2E2;color:#DC2626}
.fc-review-dif-badge.again{background:#FEE2E2;color:#B91C1C}
.fc-review-dif-badge.novo{background:#F3F4F6;color:#6B7280}
.fc-review-pergunta{
  font-family:'DM Sans',sans-serif;
  font-size:calc(16px * var(--fc-font-scale, 1));
  font-weight:500;
  color:#1A1A2E;
  line-height:1.6;
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:8px 4px;
  letter-spacing:-.005em
}
.fc-review-meta{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.fc-review-tag{font-size:9px;padding:2px 8px;border-radius:4px;font-weight:600;letter-spacing:.03em}
.fc-review-action{display:flex;justify-content:center;margin-top:4px}
/* Botão "Ver resposta" · escuro sobre fundo claro */
.fc-ver-btn{
  background:#1A1A2E;
  color:#fff;
  border:none;
  border-radius:10px;
  padding:13px 36px;
  font-size:14px;
  font-weight:600;
  font-family:'DM Sans',sans-serif;
  cursor:pointer;
  transition:.15s;
  box-shadow:0 2px 8px rgba(26,26,46,.25)
}
.fc-ver-btn:hover{background:#2D2D4E;transform:translateY(-1px);box-shadow:0 4px 12px rgba(26,26,46,.3)}
.fc-ver-btn:active{transform:translateY(0)}
/* Verso: resposta */
.fc-review-resposta{background:rgba(255,255,255,.7);border:1px solid #C8E6D0;border-radius:10px;padding:14px 16px}
.fc-resposta-label{font-size:9px;font-weight:700;color:#16A34A;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.fc-resposta-texto{font-size:calc(14px * var(--fc-font-scale, 1));color:#1E3A2A;line-height:1.65;font-weight:400}
/* Resposta GRANDE e centralizada (verso do card de revisão) */
.fc-review-resposta-grande{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-family:'DM Sans',sans-serif;
  font-size:calc(15px * var(--fc-font-scale, 1));
  font-weight:500;
  color:#0F2A1A;
  line-height:1.6;
  padding:12px 8px;
  letter-spacing:-.005em
}
/* Botão "← Ver pergunta" no verso */
.fc-card-back .fc-ver-btn{
  background:rgba(0,0,0,.06);
  color:#444;
  box-shadow:none;
  font-size:13px;
  padding:10px 24px
}
.fc-card-back .fc-ver-btn:hover{background:rgba(0,0,0,.1);transform:translateY(0)}
/* Botões de dificuldade */
.fc-dif-btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.fc-dif-btn{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:12px 14px;border-radius:12px;min-width:78px;
  border:1.5px solid #E5E7EB;
  background:#fff;
  cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;
  font-weight:600;transition:.2s;color:#374151;
  box-shadow:0 1px 3px rgba(0,0,0,.08)
}
.fc-dif-btn .fc-dif-emoji{font-size:22px;line-height:1}
.fc-dif-btn .fc-dif-label{font-size:13px;font-weight:600;line-height:1}
.fc-dif-btn .fc-dif-subinfo{font-size:10px;font-weight:400;opacity:.78;line-height:1.2;letter-spacing:.01em}
.fc-dif-btn:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.12)}
.fc-dif-btn.again:hover{background:#FEE2E2;border-color:#F87171;color:#B91C1C}
.fc-dif-btn.dificil:hover{background:#FEF2F2;border-color:#FCA5A5;color:#DC2626}
.fc-dif-btn.medio:hover{background:#FFFBEB;border-color:#FCD34D;color:#D97706}
.fc-dif-btn.facil:hover{background:#F0FDF4;border-color:#86EFAC;color:#16A34A}

/* BARRA DE PROGRESSO PROEMINENTE */
.revisao-progress-section{margin-bottom:24px}
.revisao-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.revisao-progress-label{font-size:12px;font-weight:600;color:var(--text);text-transform:uppercase;letter-spacing:.06em}
.revisao-progress-counter{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--blue2)}
.revisao-progress-bar-wrap{height:10px;background:var(--bg4);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.revisao-progress-bar-fill{height:100%;background:var(--blue);border-radius:8px;transition:width .5s cubic-bezier(.25,.46,.45,.94);position:relative}
.revisao-progress-bar-fill::after{content:'';position:absolute;right:0;top:50%;transform:translateY(-50%);width:6px;height:14px;background:rgba(255,255,255,.4);border-radius:3px}

/* STATS DE REVISÃO */
.revisao-stat-badge{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px}

/* ===================== ONBOARDING STYLES ===================== */
/* Hide onboarding shell when the main app is active and vice-versa.
   Both are present in the DOM but only one is shown at a time. */
body.is-onboarding .app{display:none}
body:not(.is-onboarding) .ob-shell{display:none}


/* ===== LAYOUT ===== */
.ob-shell{width:100%;min-height:100vh;display:flex;flex-direction:column}

/* TOP BAR */
.ob-topbar{display:flex;align-items:center;justify-content:flex-start;padding:16px 32px;border-bottom:0.5px solid var(--border);position:relative;min-height:78px}
.ob-logo{display:flex;align-items:center;gap:10px}
.ob-logo-box{background:var(--blue);color:#fff;font-family:'Syne',sans-serif;font-size:14px;font-weight:800;padding:6px 10px;border-radius:7px;letter-spacing:.02em}
.ob-logo-text{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text)}
.ob-logo-sub{font-size:10px;color:var(--text3)}

/* STEP INDICATOR */
.ob-steps{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;gap:0;max-width:calc(100vw - 560px);z-index:1}
.ob-step{display:flex;align-items:center;gap:6px;position:relative}
.ob-step-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;border:1px solid var(--border2);background:var(--bg3);color:var(--text3);transition:.3s;flex-shrink:0}
.ob-step.active .ob-step-num{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 16px rgba(0,0,0,.3)}
.ob-step.done .ob-step-num{background:var(--green-dim);border-color:var(--green);color:var(--green)}
.ob-step-label{font-size:11px;color:var(--text3);white-space:nowrap;transition:.3s}
.ob-step.active .ob-step-label{color:var(--text)}
.ob-step.done .ob-step-label{color:var(--green)}
.ob-step-connector{width:32px;height:1px;background:var(--border);margin:0 4px;transition:.3s}
.ob-step-connector.done{background:var(--green)}


@media(max-width:1100px){
  .ob-topbar{flex-direction:column;align-items:flex-start;gap:14px;padding:16px 20px 18px}
  .ob-steps{position:static;transform:none;max-width:100%;width:100%;justify-content:center;overflow-x:auto;padding-bottom:2px}
}
@media(max-width:640px){
  .ob-step-label{display:none}
  .ob-step-connector{width:22px}
}

/* MAIN CONTENT */
.ob-main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:48px 24px 24px;background:transparent}
.ob-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:20px;width:100%;max-width:560px;padding:36px 40px;position:relative;overflow:hidden;transition:max-width .3s cubic-bezier(.16,1,.3,1)}
.ob-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--blue)}
/* 8C item 1: passo 4 (matérias) ganha mais largura pra acomodar grid em 2 colunas */
.ob-card:has(#sc-4.active){max-width:960px}
@media(max-width:1100px){.ob-card:has(#sc-4.active){max-width:92vw}}

/* STEP CONTENT */
.ob-step-content{display:none}
.ob-step-content.active{display:block;animation:slideInRight .28s cubic-bezier(.16,1,.3,1)}
.ob-step-content.active.slide-back{animation:slideInLeft .28s cubic-bezier(.16,1,.3,1)}
@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeSlide{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

.ob-kicker{font-size:10px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}
.ob-title{font-family:'Syne',sans-serif;font-size:26px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:6px}
.ob-title span{color:var(--blue)}
.ob-sub{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:28px}
.ob-motivation{margin-top:auto;padding-top:20px;display:flex;align-items:flex-start;gap:10px;opacity:.55;transition:.2s}
.ob-motivation:hover{opacity:.8}
.ob-motivation-icon{font-size:18px;flex-shrink:0;margin-top:2px}
.ob-motivation-text{font-size:11.5px;color:var(--text2);line-height:1.6;font-style:italic}

/* FORM */
.ob-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px;display:block}
.ob-input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:12px 14px;color:var(--text);font-size:15px;font-family:'Syne',sans-serif;font-weight:500;outline:none;transition:.2s}
.ob-input:focus{border-color:var(--blue-dim);box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.ob-input.error{border-color:var(--red);box-shadow:0 0 0 2px rgba(255,77,106,.1)}
.ob-field-error{font-size:11px;color:var(--red);margin-top:5px;display:none;animation:fadeSlide .2s ease}
.ob-field-error.show{display:block}
.auth-input.error{border-color:var(--red)}
.ob-input::placeholder{color:var(--text3);font-family:'DM Sans',sans-serif;font-weight:400;font-size:14px}
.ob-input-group{margin-bottom:20px}

/* CONCURSO LIST */
.ob-concurso-list{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;max-height:340px;overflow-y:auto}
.ob-concurso-item{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:13px 16px;cursor:pointer;transition:.2s;display:flex;align-items:center;gap:12px}
.ob-concurso-item:hover{border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.ob-concurso-item.selected{border-color:var(--blue);background:var(--blue-glow)}
.ob-concurso-icon{width:36px;height:36px;border-radius:8px;background:var(--bg4);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.ob-concurso-item.selected .ob-concurso-icon{background:rgba(59,139,255,.15)}
.ob-concurso-info{flex:1}
.ob-concurso-nome{font-size:13px;font-weight:500;color:var(--text)}
.ob-concurso-meta{font-size:11px;color:var(--text3);margin-top:2px}
.ob-concurso-check{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.2s}
.ob-concurso-item.selected .ob-concurso-check{background:var(--blue);border-color:var(--blue)}

.ob-search{position:relative;margin-bottom:12px}
.ob-search input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:9px 14px 9px 36px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.2s}
.ob-search input:focus{border-color:var(--blue-dim)}
.ob-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text3)}
.ob-search input::placeholder{color:var(--text3)}

/* HORAS SLIDER */
.ob-horas-display{font-family:'Syne',sans-serif;font-size:48px;font-weight:700;color:var(--blue);text-align:center;margin-bottom:4px}
.ob-horas-display span{font-size:20px;color:var(--text2);font-family:'DM Sans',sans-serif;font-weight:400}
.ob-horas-sub{text-align:center;font-size:12px;color:var(--text3);margin-bottom:24px}
/* === Meta de questões/dia (Frente 2) === */
.mq-wrap{margin-top:18px}
.mq-q{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text);text-align:center;margin-bottom:3px}
.mq-hint{text-align:center;font-size:11px;color:var(--text3);margin-bottom:14px}
.mq-chips{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.mq-chip{flex:1;min-width:96px;max-width:160px;cursor:pointer;border-radius:12px;padding:14px 10px;text-align:center;background:var(--bg3);border:1.5px solid var(--border2);transition:.18s}
.mq-chip:hover{border-color:var(--c);transform:translateY(-2px)}
.mq-chip.sel{border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);box-shadow:inset 0 0 0 1px var(--c)}
.mq-chip-num{font-family:'Syne',sans-serif;font-size:26px;font-weight:700;color:var(--c);line-height:1}
.mq-chip-q{font-size:10px;color:var(--text3);margin-top:1px}
.mq-chip-lbl{font-size:12px;font-weight:600;color:var(--text2);margin-top:7px}
.mq-chip.sel .mq-chip-lbl{color:var(--text)}
.mq-skip{display:block;margin:12px auto 0;background:none;border:none;color:var(--text3);font-size:12px;cursor:pointer;text-decoration:underline;font-family:inherit}
.mq-skip.sel{color:var(--text);font-weight:600;text-decoration:none}
/* card no dashboard */
.mq-dash{margin-bottom:24px;background:var(--bg3);border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.mq-dash-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.mq-dash-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:600;color:var(--text)}
.mq-dash-count{font-family:'Syne',sans-serif;font-size:15px;font-weight:700}
.mq-bar{height:10px;border-radius:6px;background:var(--bg4);overflow:hidden}
.mq-bar-fill{height:100%;border-radius:6px;transition:width .4s ease}
.mq-dash-sub{font-size:11px;color:var(--text3);margin-top:8px}
.mq-dash-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:12px}
/* Meta recolhível: minimiza pra só o título + contador (preferência salva) */
.mq-dash.is-collapsed{margin-bottom:14px;padding:11px 14px}
.mq-dash.is-collapsed .mq-bar,.mq-dash.is-collapsed .mq-dash-sub,.mq-dash.is-collapsed .mq-dash-chips{display:none}
.mq-dash.is-collapsed .mq-dash-head{margin-bottom:0}
.mq-dash-min{background:transparent;border:0.5px solid var(--border2);color:var(--text3);border-radius:6px;width:24px;height:24px;cursor:pointer;font-size:15px;line-height:1;font-family:'DM Sans',sans-serif;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}
.mq-dash-min:hover{color:var(--text);border-color:var(--border)}
.mq-dash-cta{background:var(--blue);color:#fff;border:none;border-radius:9px;padding:9px 16px;font-size:12.5px;font-weight:600;font-family:inherit;cursor:pointer}
.mq-dash-dismiss{background:none;border:none;color:var(--text3);font-size:12px;cursor:pointer;font-family:inherit;text-decoration:underline}
.mq-dash-chips{margin-top:14px}
.ob-slider{-webkit-appearance:none;width:100%;height:6px;border-radius:6px;outline:none;margin-bottom:10px;cursor:pointer}
.ob-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--blue);cursor:pointer;box-shadow:0 0 12px rgba(0,0,0,.4);border:2px solid #fff}
.ob-slider-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text3);margin-bottom:20px}
.ob-horas-presets{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:20px}
.ob-weekend-box{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r2);padding:14px;margin-bottom:16px}
.ob-weekend-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.ob-weekend-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em}
.ob-weekend-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2);cursor:pointer;user-select:none}
.ob-toggle{width:34px;height:18px;border-radius:18px;background:var(--bg4);border:0.5px solid var(--border2);position:relative;transition:.2s;flex-shrink:0}
.ob-toggle::after{content:'';position:absolute;width:14px;height:14px;border-radius:50%;background:var(--text3);left:2px;top:1.5px;transition:.2s}
.ob-weekend-toggle.active .ob-toggle{background:var(--blue-glow);border-color:var(--blue)}
.ob-weekend-toggle.active .ob-toggle::after{left:17px;background:var(--blue)}
.ob-weekend-fields{display:none;grid-template-columns:1fr 1fr;gap:10px}
.ob-weekend-fields.active{display:grid}
.ob-weekend-note{font-size:11px;color:var(--text3);line-height:1.5;margin-top:8px}
.ob-preset{padding:6px 14px;border-radius:8px;border:0.5px solid var(--border2);background:var(--bg3);color:var(--text2);font-size:12px;cursor:pointer;transition:.15s}
.ob-preset:hover{border-color:var(--blue-dim);color:var(--blue)}
.ob-preset.active{background:var(--blue-glow);border-color:var(--blue);color:var(--blue)}
.ob-meta-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:16px}
.ob-meta-card{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:10px 12px;text-align:center}
.ob-meta-val{font-family:'Syne',sans-serif;font-size:16px;font-weight:600;color:var(--text);margin-bottom:2px}
.ob-meta-lbl{font-size:10px;color:var(--text3)}

/* DISCIPLINAS */
.ob-disc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ob-disc-auto{font-size:11px;color:var(--blue);cursor:pointer;padding:4px 10px;border:0.5px solid var(--blue-dim);border-radius:6px;background:var(--blue-glow)}
/* Grid de seleção de matérias · coluna única, estilo lista compacta */
.ob-disc-grid{display:flex;flex-direction:column;gap:3px;margin-bottom:16px;max-height:400px;overflow-y:auto;padding:2px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:10px}
/* Lista compacta · sem ícone, sem card grande */
.ob-disc-item{display:flex;align-items:center;gap:10px;background:transparent;border:none;border-bottom:0.5px solid rgba(30,46,74,.5);border-radius:0;padding:8px 12px;cursor:pointer;transition:.12s;position:relative}
.ob-disc-item:last-child{border-bottom:none}
.ob-disc-item:first-child{border-radius:9px 9px 0 0}
.ob-disc-item:last-child{border-radius:0 0 9px 9px}
.ob-disc-item:only-child{border-radius:9px}
.ob-disc-item:hover{background:rgba(59,139,255,.05)}
.ob-disc-item.selected{background:rgba(59,139,255,.08)}
.ob-disc-item.selected:hover{background:rgba(59,139,255,.12)}
/* Ícone menor, apenas como acento de cor por categoria */
.ob-disc-icon{width:6px;height:6px;border-radius:50%;flex-shrink:0;border:none;background:var(--text3)}
.ob-disc-item[data-cat="bas"] .ob-disc-icon{background:var(--amber)}
.ob-disc-item[data-cat="esp"] .ob-disc-icon{background:var(--blue2)}
.ob-disc-item[data-cat="leg"] .ob-disc-icon{background:#a78bfa}
.ob-disc-item[data-cat="cust"] .ob-disc-icon{background:var(--green)}
.ob-disc-item.selected .ob-disc-icon{background:var(--blue)}
.ob-disc-check{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.15s;margin-left:auto}
.ob-disc-item.selected .ob-disc-check{background:var(--blue);border-color:var(--blue)}
.ob-disc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ob-disc-nome{font-size:12px;font-weight:500;color:var(--text);line-height:1.3;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-disc-item.selected .ob-disc-nome{color:var(--text);font-weight:600}
.ob-disc-tipo{font-size:10px;color:var(--text3);line-height:1;white-space:nowrap;flex-shrink:0}
.ob-disc-peso{font-size:11px;font-weight:500;color:var(--text3)}
.ob-disc-badge{font-size:9px;padding:1px 6px;border-radius:4px;font-weight:500}
.ob-disc-badge.esp{background:rgba(59,139,255,.12);color:var(--blue2)}
.ob-disc-badge.bas{background:rgba(240,165,0,.1);color:var(--amber)}
.ob-disc-badge.comp{background:rgba(139,89,255,.1);color:#a78bfa}
.ob-disc-sel-count{font-size:11px;color:var(--text2)}
/* 8C: cabeçalhos de categoria dentro da grid */
.ob-cat-header{display:flex;align-items:center;gap:8px;padding:6px 12px 4px;font-size:9px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.09em;background:rgba(0,0,0,.12);border-bottom:0.5px solid rgba(30,46,74,.5);margin:0}
.ob-cat-header:first-child{border-radius:9px 9px 0 0}
.ob-cat-header-line{flex:1;height:0.5px;background:rgba(30,46,74,.5)}
.ob-cat-header-icon{font-size:11px}
.ob-cat-header-count{font-size:9px;color:var(--text3);font-weight:500;text-transform:none;letter-spacing:0;background:var(--bg4);padding:1px 5px;border-radius:4px}
.ob-disc-manual{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r2);padding:16px;margin-bottom:14px}
.ob-disc-manual-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px}
.ob-disc-manual-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-bottom:10px}
.ob-disc-add{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:9px 14px;font-size:12px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;white-space:nowrap;height:38px}
.ob-disc-add:hover{background:var(--blue2);transform:translateY(-1px)}
.ob-disc-help{font-size:10px;color:var(--text3);line-height:1.5;margin-top:8px}

/* QUALITATIVE IMPORTANCE SELECTOR */
.ob-importance-row{display:flex;gap:6px;margin-bottom:4px}
.ob-importance-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;border-radius:10px;border:0.5px solid var(--border2);background:var(--bg4);cursor:pointer;transition:.2s;font-size:11px;color:var(--text3);font-family:'DM Sans',sans-serif;text-align:center;line-height:1.3}
.ob-importance-btn:hover{transform:translateY(-1px)}
.ob-importance-btn .ob-imp-emoji{font-size:20px}
.ob-importance-btn .ob-imp-label{font-weight:600;font-size:11px}
.ob-importance-btn .ob-imp-desc{font-size:9px;opacity:.7}
.ob-importance-btn[data-val="principal"]:hover,.ob-importance-btn[data-val="principal"].active{background:rgba(59,139,255,.12);border-color:var(--blue-dim);color:var(--blue2)}
.ob-importance-btn[data-val="importante"]:hover,.ob-importance-btn[data-val="importante"].active{background:rgba(29,185,122,.1);border-color:rgba(29,185,122,.3);color:var(--green)}
.ob-importance-btn[data-val="complementar"]:hover,.ob-importance-btn[data-val="complementar"].active{background:rgba(240,165,0,.1);border-color:rgba(240,165,0,.3);color:var(--amber)}

/* DISC ITEM with importance badge */
.ob-disc-imp{font-size:10px;padding:3px 9px;border-radius:6px;font-weight:600;flex-shrink:0;letter-spacing:.01em}
.ob-disc-imp.principal{background:rgba(59,139,255,.12);color:var(--blue2)}
.ob-disc-imp.importante{background:rgba(29,185,122,.1);color:var(--green)}
.ob-disc-imp.complementar{background:rgba(240,165,0,.1);color:var(--amber)}
.ob-disc-imp-toggle{display:flex;gap:3px;flex-shrink:0}
.ob-disc-imp-dot{width:20px;height:20px;border-radius:5px;border:0.5px solid var(--border2);background:var(--bg4);display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;transition:.15s}
.ob-disc-imp-dot:hover{border-color:var(--border2);transform:scale(1.1)}
.ob-disc-imp-dot.p{background:rgba(59,139,255,.15);border-color:var(--blue-dim)}
.ob-disc-imp-dot.i{background:rgba(29,185,122,.12);border-color:rgba(29,185,122,.3)}
.ob-disc-imp-dot.c{background:rgba(240,165,0,.1);border-color:rgba(240,165,0,.3)}

@media(max-width:720px){.ob-disc-manual-row{grid-template-columns:1fr}.ob-disc-add{width:100%}}


/* ONBOARDING MANUAL DISCIPLINE FLOW · V17 */
.ob-manual-flow-box{background:rgba(13,21,38,.55);border:0.5px solid var(--border2);border-radius:12px;padding:14px;margin-top:12px}
.ob-manual-question{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}
.ob-manual-sub{font-size:11px;color:var(--text2);line-height:1.5;margin-bottom:12px}
.ob-manual-actions{display:flex;gap:8px;flex-wrap:wrap}
.ob-manual-btn{border:0.5px solid var(--border2);border-radius:8px;background:var(--bg4);color:var(--text2);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;padding:9px 14px;cursor:pointer;transition:.15s}
.ob-manual-btn:hover{border-color:var(--blue-dim);color:var(--text)}
.ob-manual-btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.ob-manual-btn.primary:hover{background:var(--blue2)}
.ob-manual-content-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-bottom:10px}
.ob-manual-content-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.ob-manual-content-item{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--bg4);border:0.5px solid var(--border2);border-radius:8px;padding:8px 10px;font-size:12px;color:var(--text2)}
.ob-manual-content-del{border:none;background:transparent;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 5px;border-radius:5px}
.ob-manual-content-del:hover{color:var(--red);background:rgba(255,77,106,.08)}
.ob-importance-wrap.is-hidden{display:none!important}
@media(max-width:720px){.ob-manual-content-row{grid-template-columns:1fr}.ob-manual-btn{width:100%}}
@keyframes skeletonShimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.ob-skeleton-item{height:56px;border-radius:8px;background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:800px 100%;animation:skeletonShimmer 1.4s infinite linear;margin-bottom:6px}
@media(max-width:480px){.ob-disc-grid{max-height:280px}.ob-card{padding:24px 18px}.ob-title{font-size:22px}.ob-card:has(#sc-4.active){padding:20px 12px}}

/* ONBOARDING V18 · fluidez e redução de fricção */
.ob-step-soft-hint{background:rgba(59,139,255,.06);border:0.5px solid rgba(59,139,255,.16);border-radius:10px;padding:9px 11px;font-size:11px;color:var(--text2);line-height:1.45;margin:-12px 0 16px}
.ob-step-soft-hint strong{color:var(--blue2);font-weight:600}
.ob-disc-search{position:relative;margin-bottom:10px}
.ob-disc-search input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:9px 12px 9px 34px;color:var(--text);font-size:12px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s}
.ob-disc-search input:focus{border-color:var(--blue-dim)}
.ob-disc-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text3)}
.ob-pending-warning{background:rgba(240,165,0,.08);border:0.5px solid rgba(240,165,0,.22);border-radius:9px;padding:8px 10px;font-size:11px;color:var(--amber);line-height:1.4;margin-top:10px}
.ob-mini-selected{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 12px}
.ob-mini-chip{font-size:10px;padding:3px 7px;border-radius:6px;background:rgba(59,139,255,.08);border:0.5px solid rgba(59,139,255,.18);color:var(--blue2);max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-mini-chip.more{background:var(--bg3);border-color:var(--border2);color:var(--text3)}

/* CICLO PREVIEW */
.ob-ciclo-preview{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r2);padding:16px;margin-bottom:20px}
.ob-ciclo-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px}
.ob-ciclo-bars{display:flex;flex-direction:column;gap:5px}
.ob-ciclo-bar-row{display:flex;align-items:center;gap:8px}
.ob-ciclo-bar-nome{font-size:11px;color:var(--text2);min-width:130px}
.ob-ciclo-bar-track{flex:1;height:6px;background:var(--bg4);border-radius:4px;overflow:hidden}
.ob-ciclo-bar-fill{height:100%;border-radius:4px;transition:width .6s ease}
.ob-ciclo-bar-slots{font-size:10px;color:var(--text3);min-width:20px;text-align:right}
.ob-ciclo-semana{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:12px 14px;margin-bottom:8px}
.ob-ciclo-semana-title{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px}
.ob-ciclo-chips{display:flex;flex-wrap:wrap;gap:5px}
.ob-ciclo-chip{font-size:10px;padding:3px 8px;border-radius:6px;border:0.5px solid var(--border2);background:var(--bg4);color:var(--text2)}
.ob-ciclo-chip.esp{background:rgba(59,139,255,.08);color:var(--blue2);border-color:var(--blue-dim)}
.ob-ciclo-chip.bas{background:rgba(240,165,0,.06);color:var(--amber);border-color:rgba(240,165,0,.2)}

/* SUMMARY */
.ob-summary{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.ob-summary-row{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);transition:.15s}
.ob-summary-icon{font-size:16px;flex-shrink:0}
.ob-summary-key{font-size:11px;color:var(--text2);margin-bottom:2px}
.ob-summary-val{font-size:14px;font-weight:600;color:var(--text)}
.ob-summary-row:hover{border-color:rgba(59,139,255,.25);background:var(--bg4)}

/* NAVIGATION */
.ob-nav{display:flex;align-items:center;justify-content:space-between;margin-top:24px}
.ob-btn{padding:11px 24px;border-radius:10px;font-size:14px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;border:none}
.ob-btn-primary{background:var(--blue);color:#fff}
.ob-btn-primary:hover{background:var(--blue2);transform:translateY(-1px)}
.ob-btn-primary:disabled{background:var(--bg4);color:var(--text3);cursor:not-allowed;transform:none}
.ob-btn-secondary{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.ob-btn-secondary:hover{background:var(--bg3);color:var(--text)}
.ob-btn-launch{background:var(--blue);color:#fff;padding:14px 36px;font-size:15px;box-shadow:0 4px 24px rgba(0,0,0,.3)}
.ob-btn-launch:hover{transform:translateY(-2px);box-shadow:0 6px 32px rgba(0,0,0,.4)}

/* DATA PROVA */
.ob-date-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}

.ob-date-custom{display:flex;align-items:center;gap:6px}
.ob-date-part{flex:1;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:11px 10px;color:var(--text);font-size:15px;font-family:"Syne",sans-serif;font-weight:500;outline:none;transition:.2s;text-align:center;min-width:0}
.ob-date-part:focus{border-color:var(--blue-dim);box-shadow:0 0 0 2px rgba(0,0,0,.08)}
.ob-date-part.error{border-color:var(--red)}
.ob-date-year{flex:1.6}
.ob-date-sep{font-size:18px;color:var(--text3);flex-shrink:0;font-weight:300}
/* TOAST */
.ob-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--bg2);border:0.5px solid var(--border2);border-radius:12px;padding:11px 18px;font-size:13px;color:var(--text);z-index:9999;opacity:0;transition:opacity .25s,transform .25s cubic-bezier(.16,1,.3,1);pointer-events:none;display:flex;align-items:center;gap:10px;box-shadow:0 8px 32px rgba(0,0,0,.4);min-width:220px;max-width:90vw}
.ob-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.ob-toast-icon{font-size:16px;flex-shrink:0}
.ob-toast-msg{flex:1;line-height:1.4}
.ob-toast.toast-ok{border-color:rgba(29,185,122,.3);background:rgba(10,25,18,.98)}
.ob-toast.toast-err{border-color:rgba(255,77,106,.3);background:rgba(28,10,20,.98)}

/* CONFETTI/SUCCESS overlay */
.ob-success{display:none;text-align:center;padding:20px 0}
@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0deg);opacity:1}100%{transform:translateY(120px) rotate(720deg);opacity:0}}
.confetti-piece{position:fixed;width:8px;height:8px;border-radius:2px;pointer-events:none;z-index:9999;animation:confettiFall .9s ease-in forwards}
.ob-success.show{display:block;animation:fadeSlide .3s ease}
.ob-success-emoji{font-size:52px;margin-bottom:16px}
.ob-success-title{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:var(--text);margin-bottom:8px}
.ob-success-sub{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:24px}

/* PROGRESS LINE */
.ob-progress-line{height:3px;background:var(--border);position:relative;overflow:hidden}
.ob-progress-fill{height:100%;background:var(--blue);transition:width .55s cubic-bezier(.16,1,.3,1)}

::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}

/* Slider track gradient */
.ob-slider{background:linear-gradient(to right,var(--blue) 0%,var(--blue) 50%,var(--bg4) 50%,var(--bg4) 100%)}


/* PATCH: segurança contra overlays invisíveis bloqueando cliques */
.commit-modal.is-hidden,
.closure-modal.is-hidden,
.finish-modal.is-hidden{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
.checkpoint-popup:not(.show),
.toast:not(.show),
.ob-toast:not(.show),
.xp-levelup-toast:not(.show),
.tour-overlay:not(.active){
  pointer-events:none!important;
}
.tour-overlay:not(.active){
  display:none!important;
}
.tour-overlay.active{
  display:block!important;
}



/* MODO TEATRO · foco automático durante sessão ativa */
.theater-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.62);
  z-index:50;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease;
}
.theater-overlay.active{opacity:1}
.timer-card.theater-focus{
  position:relative;
  z-index:60;
}
body.theater-mode .sidebar,
body.theater-mode .page-header,
body.theater-mode .study-sidebar-card,
body.theater-mode .checkpoint-config-card,
body.theater-mode .session-commitment-bar{
  position:relative;
  z-index:1;
}

/* ===================== ONBOARDING 8A · LISTA SELECIONADAS + EDITOR INLINE ===================== */
.ob-selected-list{display:grid;grid-template-columns:1fr;gap:6px;margin:10px 0 16px;background:rgba(13,21,38,.45);border:0.5px solid var(--border2);border-radius:10px;padding:10px;max-height:220px;overflow-y:auto}
@media(min-width:720px){.ob-card:has(#sc-4.active) .ob-selected-list{grid-template-columns:1fr 1fr}}
.ob-selected-list:empty{display:none}
.ob-selected-empty{font-size:11px;color:var(--text3);padding:8px 10px;text-align:center}
.ob-selected-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:7px;background:var(--bg3);border:0.5px solid var(--border2);transition:.15s}
.ob-selected-row:hover{border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.ob-selected-row-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.ob-selected-row-nome{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-selected-row-meta{font-size:10px;color:var(--text3)}
.ob-selected-row-imp{font-size:10px;padding:2px 8px;border-radius:5px;font-weight:600;white-space:nowrap}
.ob-selected-row-imp.principal{background:rgba(59,139,255,.12);color:var(--blue2)}
.ob-selected-row-imp.importante{background:rgba(29,185,122,.12);color:var(--green)}
.ob-selected-row-imp.complementar{background:rgba(240,165,0,.12);color:var(--amber)}
.ob-selected-row-btn{background:transparent;border:0.5px solid var(--border2);color:var(--text2);width:28px;height:28px;border-radius:6px;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s;padding:0}
.ob-selected-row-btn:hover{border-color:var(--blue);background:rgba(59,139,255,.1);color:var(--text)}
.ob-selected-row-btn.danger:hover{border-color:var(--red);background:rgba(255,77,106,.1);color:var(--red)}
.ob-selected-header{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.ob-selected-count-badge{font-family:'Syne',sans-serif;font-size:14px;color:var(--blue);background:var(--blue-glow);padding:2px 8px;border-radius:5px;text-transform:none;letter-spacing:0}

/* Editor inline da matéria */
.ob-disc-editor{margin:12px 0 16px;background:linear-gradient(180deg,#0F1E35,#0D1526);border:0.5px solid rgba(59,139,255,.3);border-radius:12px;padding:20px 22px;animation:ob-editor-in .25s ease;scroll-margin-top:16px;box-shadow:0 8px 24px rgba(0,0,0,.06)}
@keyframes ob-editor-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.ob-disc-editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:0.5px solid var(--border2)}
.ob-disc-editor-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text)}
.ob-disc-editor-sub{font-size:11px;color:var(--text3);margin-top:2px}
.ob-disc-editor-close{background:transparent;border:none;color:var(--text3);font-size:18px;cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:.12s}
.ob-disc-editor-close:hover{background:var(--bg3);color:var(--text)}
.ob-disc-editor-section{margin-bottom:14px}
.ob-disc-editor-section:last-child{margin-bottom:0}
.ob-disc-editor-label{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:block}
.ob-disc-imp-pick{display:flex;gap:6px;flex-wrap:wrap}
.ob-disc-imp-pick-btn{flex:1;min-width:90px;background:var(--bg3);border:0.5px solid var(--border2);color:var(--text2);padding:8px 10px;border-radius:8px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;display:flex;align-items:center;gap:6px;justify-content:center}
.ob-disc-imp-pick-btn:hover{border-color:var(--blue-dim)}
.ob-disc-imp-pick-btn.active{border-color:var(--blue);background:var(--blue-glow);color:var(--text);font-weight:600}
.ob-content-list{display:flex;flex-direction:column;gap:5px;max-height:240px;overflow-y:auto;padding-right:2px}
.ob-content-list:empty + .ob-content-empty{display:block}
.ob-content-empty{font-size:11px;color:var(--text3);padding:10px;text-align:center;background:var(--bg3);border-radius:7px;border:0.5px dashed var(--border2);display:none}
.ob-content-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;background:var(--bg3);border:0.5px solid var(--border2);border-radius:6px;padding:6px 10px;transition:.12s}
.ob-content-row:hover{border-color:var(--blue-dim)}
.ob-content-num{font-size:10px;color:var(--text3);font-weight:600;min-width:18px}
.ob-content-text{font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ob-content-del{background:transparent;border:none;color:var(--text3);width:24px;height:24px;border-radius:5px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:.12s;padding:0}
.ob-content-del:hover{color:var(--red);background:rgba(255,77,106,.1)}
.ob-content-add{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px}
.ob-content-add input{background:var(--bg3);border:0.5px solid var(--border2);color:var(--text);padding:9px 12px;border-radius:7px;font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s}
.ob-content-add input:focus{border-color:var(--blue)}
.ob-content-add-btn{background:var(--blue);color:#fff;border:none;border-radius:7px;padding:0 14px;font-size:12px;font-family:'DM Sans',sans-serif;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap}
.ob-content-add-btn:hover{background:var(--blue2)}
.ob-content-add-btn:disabled{opacity:.4;cursor:not-allowed}
.ob-disc-edit-btn{background:transparent;border:0.5px solid var(--border2);color:var(--text3);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:.12s;flex-shrink:0;padding:0;margin-left:6px}
.ob-disc-edit-btn:hover{border-color:var(--blue);color:var(--blue);background:rgba(59,139,255,.08)}
.ob-disc-edit-btn.is-editing{border-color:var(--blue);background:var(--blue);color:#fff}

/* ===================== ONBOARDING 8B · COLAR LISTA + RESTAURAR + PERSONALIZADO ===================== */
/* Toolbar de ações dentro do editor (acima do campo de adicionar) */
.ob-content-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px;margin-bottom:6px}
.ob-content-action-btn{background:transparent;border:0.5px solid var(--border2);color:var(--text2);padding:6px 11px;border-radius:6px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.12s;display:inline-flex;align-items:center;gap:5px}
.ob-content-action-btn:hover{border-color:var(--blue);color:var(--text);background:rgba(59,139,255,.06)}
.ob-content-action-btn.danger{color:var(--text3)}
.ob-content-action-btn.danger:hover{border-color:var(--red);color:var(--red);background:rgba(255,77,106,.06)}

/* Painel de colar lista */
.ob-paste-panel{margin-top:10px;background:var(--bg3);border:0.5px solid var(--blue-dim);border-radius:8px;padding:12px;animation:ob-editor-in .2s ease}
.ob-paste-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.ob-paste-panel-title{font-size:11px;font-weight:600;color:var(--blue2);text-transform:uppercase;letter-spacing:.06em}
.ob-paste-panel-hint{font-size:11px;color:var(--text3);margin-bottom:8px;line-height:1.4}
.ob-paste-textarea{width:100%;min-height:90px;max-height:200px;background:var(--bg2);border:0.5px solid var(--border2);color:var(--text);padding:9px 11px;border-radius:7px;font-size:12px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;resize:vertical;line-height:1.5}
.ob-paste-textarea:focus{border-color:var(--blue)}
.ob-paste-feedback{font-size:11px;color:var(--text3);margin:8px 0;min-height:14px}
.ob-paste-feedback.has-items{color:var(--green);font-weight:600}
.ob-paste-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.ob-paste-actions button{background:var(--bg4);border:0.5px solid var(--border2);color:var(--text2);padding:7px 14px;border-radius:6px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.12s}
.ob-paste-actions button:hover{border-color:var(--blue-dim)}
.ob-paste-actions button.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.ob-paste-actions button.primary:hover{background:var(--blue2)}
.ob-paste-actions button.primary:disabled{opacity:.45;cursor:not-allowed;background:var(--bg4);color:var(--text3);border-color:var(--border2)}

/* Badge "personalizado" no card e na lista de selecionadas */
.ob-disc-personalizado{display:inline-block;font-size:9px;font-weight:600;padding:1px 6px;border-radius:4px;background:rgba(139,89,255,.14);color:#a78bfa;border:0.5px solid rgba(139,89,255,.3);margin-left:6px;text-transform:uppercase;letter-spacing:.04em;vertical-align:middle}
.ob-disc-tipo .ob-disc-personalizado{margin-left:4px}

/* ============================================================================
   CADERNO V2 · Hub único de flashcards
   Substitui as 3 abas antigas (Novo / Revisão / Biblioteca) por uma única tela.
   Todas as classes começam com .cad2- pra evitar conflito com .erros-* / .fc-*
   ============================================================================ */

/* HERO SRS no topo */
.cad2-hero{display:grid;grid-template-columns:1fr 280px;gap:14px;align-items:stretch;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:16px 18px;margin-bottom:14px}
@media(max-width:900px){.cad2-hero{grid-template-columns:1fr}}
.cad2-hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:540px){.cad2-hero-stats{grid-template-columns:repeat(2,1fr)}}
.cad2-hero-stat{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--r);padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:2px;position:relative;overflow:hidden}
.cad2-hero-stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--text3)}
.cad2-hero-stat.devidos::before{background:var(--amber)}
.cad2-hero-stat.novos::before{background:var(--blue)}
.cad2-hero-stat.atrasados::before{background:var(--red)}
.cad2-hero-stat.aprendendo::before{background:var(--green)}
.cad2-hero-stat-icon{font-size:13px;opacity:.85}
.cad2-hero-stat-num{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--text);line-height:1}
.cad2-hero-stat.devidos .cad2-hero-stat-num{color:var(--amber)}
.cad2-hero-stat.novos .cad2-hero-stat-num{color:var(--blue)}
.cad2-hero-stat.atrasados .cad2-hero-stat-num{color:var(--red)}
.cad2-hero-stat.aprendendo .cad2-hero-stat-num{color:var(--green)}
.cad2-hero-stat-lbl{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}

.cad2-hero-cta-wrap{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:8px}
.cad2-hero-cta{padding:14px 18px;background:linear-gradient(135deg,var(--green) 0%,#0E8B5A 100%);color:#fff;border:none;border-radius:var(--r);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:.18s;box-shadow:0 4px 14px rgba(29,185,122,.25);letter-spacing:.01em}
.cad2-hero-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(29,185,122,.35)}
.cad2-hero-cta.disabled{background:var(--bg4);color:var(--text3);cursor:not-allowed;box-shadow:none;transform:none}
.cad2-hero-cta.disabled:hover{transform:none;box-shadow:none}
.cad2-hero-cta-free{padding:9px 14px;background:transparent;color:var(--text2);border:0.5px solid var(--border2);border-radius:9px;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.15s;letter-spacing:.01em}
.cad2-hero-cta-free:hover{color:var(--text);border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.cad2-hero-cta-sub{font-size:11px;color:var(--text3);text-align:center;line-height:1.5}
.cad2-hero-cta-sub strong{color:var(--text2);font-weight:600}

/* Hero estado vazio */
.cad2-hero-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;grid-template-columns:none}
.cad2-hero-empty-icon{font-size:40px;margin-bottom:10px;opacity:.85}
.cad2-hero-empty-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:4px}
.cad2-hero-empty-sub{font-size:12px;color:var(--text3);margin-bottom:18px}

/* Toolbar (botão novo + busca + filtros) */
.cad2-toolbar{display:grid;grid-template-columns:auto 1fr 200px auto;gap:10px;align-items:center;margin-bottom:14px}
@media(max-width:900px){.cad2-toolbar{grid-template-columns:1fr 1fr}.cad2-add-btn{grid-column:1 / -1}.cad2-cam-pills{grid-column:1 / -1}}
.cad2-add-btn{background:transparent;color:var(--text2);border:0.5px dashed var(--border2);border-radius:9px;padding:9px 16px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.15s;white-space:nowrap}
.cad2-add-btn:hover{color:var(--blue2);border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.cad2-add-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;background:var(--bg3);color:var(--text2);font-size:14px;font-weight:600;line-height:1;transition:.15s}
.cad2-add-btn:hover .cad2-add-icon{background:rgba(59,139,255,.15);color:var(--blue2)}
.cad2-search{background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;padding:9px 14px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s;min-width:0}
.cad2-search:focus{border-color:var(--blue-dim);background:var(--bg3)}
.cad2-filter-select{background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;padding:9px 12px;color:var(--text2);font-size:12px;font-family:'DM Sans',sans-serif;outline:none;cursor:pointer;transition:.15s}
.cad2-filter-select:hover{color:var(--text);border-color:var(--border2)}
.cad2-cam-pills{display:flex;gap:4px;background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;padding:3px}
.cad2-cam-pill{padding:6px 11px;font-size:11px;font-weight:600;background:transparent;border:none;color:var(--text3);cursor:pointer;border-radius:6px;transition:.12s;font-family:'DM Sans',sans-serif;min-width:30px}
.cad2-cam-pill:hover{color:var(--text)}
.cad2-cam-pill.active{background:var(--text);color:var(--bg);font-weight:700}
.cad2-cam-pill.camada-1.active{background:var(--camada-1);color:#fff}
.cad2-cam-pill.camada-2.active{background:var(--camada-2);color:#fff}
.cad2-cam-pill.camada-3.active{background:var(--camada-3);color:#fff}
.cad2-cam-pill.camada-4.active{background:var(--camada-4);color:#0a1426}

/* Library (lista hierárquica) */
.cad2-library{margin-bottom:24px}
.cad2-library-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px;gap:10px;padding:0 4px}
.cad2-library-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text)}
.cad2-library-meta{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}

.cad2-mat-group{margin-bottom:8px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);overflow:hidden}
.cad2-mat-header{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;transition:.15s;user-select:none}
.cad2-mat-header:hover{background:rgba(59,139,255,.04)}
.cad2-mat-arrow{font-size:9px;color:var(--text3);transition:transform .2s;flex-shrink:0}
.cad2-mat-group.open .cad2-mat-arrow{transform:rotate(90deg)}
.cad2-mat-name{flex:1;font-size:13px;font-weight:600;color:var(--text)}
.cad2-mat-meta{font-size:11px;color:var(--text3)}
.cad2-mat-cards{padding:6px 12px 12px;display:flex;flex-direction:column;gap:8px}

/* Card individual */
.cad2-card{background:var(--bg3);border:0.5px solid var(--border);border-radius:var(--r);padding:10px 12px 10px 14px;display:flex;flex-direction:column;gap:7px;position:relative;overflow:hidden}
.cad2-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--text3)}
.cad2-card.has-camada-1::before{background:var(--camada-1)}
.cad2-card.has-camada-2::before{background:var(--camada-2)}
.cad2-card.has-camada-3::before{background:var(--camada-3)}
.cad2-card.has-camada-4::before{background:var(--camada-4)}
.cad2-card-header{display:flex;align-items:center;gap:8px;font-size:10px;flex-wrap:wrap}
.cad2-card-cam{padding:2px 7px;border-radius:4px;font-weight:600;letter-spacing:.02em;background:var(--bg4);color:var(--text2)}
.cad2-card-cam.camada-1{background:var(--camada-1-dim);color:var(--camada-1);border:0.5px solid var(--camada-1-border)}
.cad2-card-cam.camada-2{background:var(--camada-2-dim);color:var(--camada-2);border:0.5px solid var(--camada-2-border)}
.cad2-card-cam.camada-3{background:var(--camada-3-dim);color:var(--camada-3);border:0.5px solid var(--camada-3-border)}
.cad2-card-cam.camada-4{background:var(--camada-4-dim);color:var(--camada-4);border:0.5px solid var(--camada-4-border)}
.cad2-card-conteudo{color:var(--text3);font-size:10px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cad2-card-status{font-size:9px;font-weight:600;padding:2px 7px;border-radius:4px;letter-spacing:.02em;white-space:nowrap}
.cad2-card-status.novo{background:rgba(59,139,255,.12);color:var(--blue)}
.cad2-card-status.devido{background:rgba(240,165,0,.12);color:var(--amber)}
.cad2-card-status.atrasado{background:rgba(255,77,106,.14);color:var(--red)}
.cad2-card-status.aprendido{background:rgba(29,185,122,.1);color:var(--green)}
.cad2-card-pergunta{font-size:13px;color:var(--text);line-height:1.45;font-weight:500;white-space:pre-wrap;word-break:break-word}
.cad2-card-resposta{font-size:12px;color:var(--text2);line-height:1.5;background:var(--bg2);border-left:2px solid var(--green-dim);padding:8px 10px;border-radius:0 6px 6px 0;white-space:pre-wrap;word-break:break-word}
.cad2-card-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:2px}
.cad2-card-btn{background:transparent;border:0.5px solid var(--border2);color:var(--text2);border-radius:6px;padding:5px 10px;font-size:10px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.15s}
.cad2-card-btn:hover{color:var(--blue2);border-color:var(--blue-dim);background:rgba(59,139,255,.06)}
.cad2-card-btn.danger:hover{color:var(--red);border-color:rgba(255,77,106,.3);background:rgba(255,77,106,.06)}

/* Empty states */
.cad2-empty{padding:40px 20px;text-align:center;color:var(--text3);font-size:13px;background:var(--bg2);border:0.5px dashed var(--border2);border-radius:var(--r2)}
.cad2-empty-icon{font-size:32px;margin-bottom:8px;opacity:.7}

/* Modais (Novo + Editar) */
.cad2-modal{position:fixed;inset:0;background:rgba(5,11,22,.78);z-index:9999;display:none;align-items:center;justify-content:center;padding:20px}
.cad2-modal.open{display:flex}
.cad2-modal-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;width:100%;max-width:560px;box-shadow:0 24px 64px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:90vh;overflow:hidden}
.cad2-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:0.5px solid var(--border)}
.cad2-modal-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:600;color:var(--text)}
.cad2-modal-close{width:28px;height:28px;border-radius:7px;background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:20px;line-height:1;transition:.15s;font-family:'DM Sans',sans-serif}
.cad2-modal-close:hover{color:var(--text);background:var(--bg3)}
.cad2-modal-body{padding:16px 18px;overflow-y:auto}
.cad2-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:0.5px solid var(--border);background:rgba(10,20,38,.4)}
.cad2-modal-btn{padding:9px 18px;border-radius:8px;border:none;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.cad2-modal-btn.ghost{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.cad2-modal-btn.ghost:hover{color:var(--text);border-color:var(--blue-dim);background:rgba(59,139,255,.06)}
.cad2-modal-btn.primary{background:var(--blue);color:#fff}
.cad2-modal-btn.primary:hover{background:var(--blue2);box-shadow:0 4px 12px rgba(0,0,0,.3)}
.cad2-modal-btn.primary:disabled{background:var(--bg4);color:var(--text3);cursor:not-allowed;box-shadow:none}
.cad2-modal-btn.primary:disabled:hover{box-shadow:none}

/* Modal Picker (seleção de matérias antes da revisão) */
.cad2-pick-card{max-width:560px}
.cad2-pick-toolbar{display:flex;align-items:center;gap:8px;padding:10px 18px;border-bottom:0.5px solid var(--border);background:rgba(10,20,38,.3)}
.cad2-pick-toolbtn{background:transparent;border:0.5px solid var(--border2);color:var(--text2);border-radius:7px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:.15s}
.cad2-pick-toolbtn:hover{color:var(--blue2);border-color:var(--blue-dim);background:rgba(59,139,255,.05)}
.cad2-pick-count{margin-left:auto;font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.cad2-pick-count strong{color:var(--text);font-family:'Syne',sans-serif;font-size:13px;font-weight:700}
.cad2-pick-body{padding:8px 0;overflow-y:auto;max-height:50vh}

/* Item de matéria (nível 1) */
.cad2-pick-mat{padding:0}
.cad2-pick-mat-header{display:flex;align-items:center;gap:8px;padding:9px 18px;cursor:pointer;transition:.12s;user-select:none;border-bottom:0.5px solid rgba(30,46,74,.3)}
.cad2-pick-mat-header:hover{background:rgba(59,139,255,.04)}
.cad2-pick-arrow{font-size:9px;color:var(--text3);transition:transform .2s;flex-shrink:0;width:10px;text-align:center}
.cad2-pick-mat.open .cad2-pick-arrow{transform:rotate(90deg)}
.cad2-pick-mat-name{flex:1;font-size:13px;font-weight:600;color:var(--text)}
.cad2-pick-mat-count{font-size:11px;color:var(--text3);font-weight:500}
.cad2-pick-mat-count .due{color:var(--amber);font-weight:600}
.cad2-pick-cont-list{padding:4px 0 8px 38px;background:rgba(10,20,38,.25);display:none}
.cad2-pick-mat.open .cad2-pick-cont-list{display:block}

/* Item de conteúdo (nível 2) */
.cad2-pick-cont{display:flex;align-items:center;gap:8px;padding:6px 18px 6px 0;cursor:pointer;transition:.12s;user-select:none}
.cad2-pick-cont:hover{background:rgba(59,139,255,.03)}
.cad2-pick-cont-name{flex:1;font-size:12px;color:var(--text2)}
.cad2-pick-cont-count{font-size:10px;color:var(--text3)}

/* Checkbox custom */
.cad2-pick-check{flex-shrink:0;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border2);background:var(--bg3);display:inline-flex;align-items:center;justify-content:center;transition:.15s;position:relative}
.cad2-pick-check.checked{background:var(--blue);border-color:var(--blue)}
.cad2-pick-check.checked::after{content:'';width:9px;height:5px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg) translate(0,-1px);display:block}
.cad2-pick-check.indeterminate{background:var(--blue);border-color:var(--blue)}
.cad2-pick-check.indeterminate::after{content:'';width:8px;height:0;border-top:1.5px solid #fff;display:block}

/* Empty state */
.cad2-pick-empty{padding:32px 20px;text-align:center;color:var(--text3);font-size:13px}
.cad2-pick-empty-icon{font-size:32px;margin-bottom:8px;opacity:.7}


/* Fullscreen Revisão */
.cad2-fs{position:fixed;inset:0;background:linear-gradient(180deg,#070D1A 0%,#0A1426 100%);z-index:99999;display:none;flex-direction:column;outline:none}
.cad2-fs.open{display:flex}
body.cad2-fs-mode{overflow:hidden}
.cad2-fs-header{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:14px 24px;border-bottom:0.5px solid var(--border)}
@media(max-width:720px){.cad2-fs-header{grid-template-columns:auto 1fr;gap:10px;padding:12px 16px}.cad2-fs-shortcuts{display:none}}
.cad2-fs-close{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:transparent;border:0.5px solid var(--border2);border-radius:8px;color:var(--text2);font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:.15s}
.cad2-fs-close:hover{color:var(--red);border-color:rgba(255,77,106,.3);background:rgba(255,77,106,.06)}
.cad2-fs-progress{display:flex;align-items:center;gap:10px;min-width:0}
.cad2-fs-progress-text{font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}
.cad2-fs-progress-bar{flex:1;height:4px;background:var(--bg3);border-radius:4px;overflow:hidden;min-width:80px}
.cad2-fs-progress-fill{height:100%;background:linear-gradient(90deg,var(--blue) 0%,var(--green) 100%);border-radius:4px;transition:width .4s}
.cad2-fs-mode-badge{display:none;font-size:10px;font-weight:600;padding:3px 8px;border-radius:5px;background:rgba(167,139,250,.14);color:#c4b5fd;border:0.5px solid rgba(167,139,250,.3);white-space:nowrap;letter-spacing:.02em}
.cad2-fs.free-mode .cad2-fs-mode-badge{display:inline-block}
.cad2-fs.free-mode .cad2-fs-progress-fill{background:linear-gradient(90deg,#a78bfa 0%,#c4b5fd 100%)}
.cad2-fs-shortcuts{font-size:10px;color:var(--text3);text-align:right}
.cad2-fs-kbd{display:inline-block;padding:1px 6px;border-radius:4px;background:var(--bg3);border:0.5px solid var(--border2);color:var(--text2);font-family:monospace;font-size:10px;margin:0 1px}
.cad2-fs-kbd-inline{font-family:monospace;font-size:11px;background:rgba(255,255,255,.1);padding:1px 5px;border-radius:3px;margin-left:4px}

.cad2-fs-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:32px 24px;perspective:1200px;overflow-y:auto}
.cad2-fs-card{width:100%;max-width:680px;min-height:380px;position:relative;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.cad2-fs-card.is-flipped{transform:rotateY(180deg)}
.cad2-fs-card-side{position:absolute;inset:0;backface-visibility:hidden;border-radius:18px;padding:36px 40px;display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.55), 0 4px 14px rgba(0,0,0,.3)}
.cad2-fs-card-front{background:#FAFAF7;border:1px solid rgba(0,0,0,.08)}
.cad2-fs-card-back{transform:rotateY(180deg);background:#F6F1E7;border:1px solid rgba(0,0,0,.1)}
.cad2-fs-card-meta{font-size:10px;color:#6B6862;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:20px;text-align:center}
.cad2-fs-card-pergunta{flex:1;font-family:'Syne',sans-serif;font-size:calc(22px * var(--fc-font-scale, 1));line-height:1.5;color:#1F2937;font-weight:600;display:block;text-align:left;padding:20px 8px;word-break:break-word;white-space:pre-wrap}
.cad2-fs-card-resposta{flex:1;font-size:calc(16px * var(--fc-font-scale, 1));line-height:1.65;color:#2D2A26;padding:8px 0 18px;white-space:pre-wrap;word-break:break-word;overflow-y:auto;max-height:220px}
/* Controle A-/A+ DENTRO do card (parte branca), canto superior direito. Fica nos 2 lados
   (frente e verso) e no mobile. Botão .fc-fs-btn claro = bem visível sobre o card branco. */
.cad2-fs-fontctrl-card{position:absolute;top:12px;right:12px;display:flex;gap:6px;z-index:6}
.cad2-fs-fontctrl-card .fc-fs-btn{box-shadow:0 1px 3px rgba(0,0,0,.12);font-size:14px;padding:6px 11px}
.cad2-fs-card-front .cad2-fs-card-meta,.cad2-fs-card-back .cad2-fs-card-meta{padding-right:74px}
@media(max-width:720px){.cad2-fs-fontctrl-card{top:8px;right:8px}.cad2-fs-fontctrl-card .fc-fs-btn{padding:5px 9px;font-size:13px}}
.cad2-fs-flip-btn{align-self:center;padding:11px 22px;background:#1F2937;color:#FAFAF7;border:none;border-radius:9px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;margin-top:10px;letter-spacing:.01em}
.cad2-fs-flip-btn:hover{background:#0F172A;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.cad2-fs-flip-btn.ghost{background:transparent;color:#6B6862;border:0.5px solid rgba(0,0,0,.15);box-shadow:none}
.cad2-fs-flip-btn.ghost:hover{color:#1F2937;border-color:rgba(0,0,0,.3);background:rgba(0,0,0,.04);box-shadow:none}
.cad2-fs-flip-btn .cad2-fs-kbd-inline{font-family:monospace;font-size:11px;background:rgba(255,255,255,.18);color:#FAFAF7;padding:1px 5px;border-radius:3px;margin-left:4px}

.cad2-fs-classify-prompt{font-size:11px;color:#6B6862;text-align:center;margin:8px 0;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.cad2-fs-classify-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.cad2-fs-classify-btn{position:relative;padding:14px 8px 12px;background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.1);border-radius:11px;color:#1F2937;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:.15s;font-family:'DM Sans',sans-serif}
.cad2-fs-classify-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.15)}
.cad2-fs-classify-btn.again{background:rgba(185,28,28,.08);border-color:rgba(185,28,28,.3)}
.cad2-fs-classify-btn.again:hover{background:rgba(185,28,28,.14);border-color:#B91C1C}
.cad2-fs-classify-btn.dificil{background:rgba(255,77,106,.08);border-color:rgba(255,77,106,.3)}
.cad2-fs-classify-btn.dificil:hover{background:rgba(255,77,106,.14);border-color:var(--red)}
.cad2-fs-classify-btn.medio{background:rgba(217,119,6,.08);border-color:rgba(217,119,6,.3)}
.cad2-fs-classify-btn.medio:hover{background:rgba(217,119,6,.14);border-color:#D97706}
.cad2-fs-classify-btn.facil{background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.3)}
.cad2-fs-classify-btn.facil:hover{background:rgba(5,150,105,.14);border-color:#059669}
.cad2-fs-classify-key{position:absolute;top:6px;left:8px;font-family:monospace;font-size:10px;color:#6B6862;background:rgba(255,255,255,.85);padding:1px 6px;border-radius:4px;border:0.5px solid rgba(0,0,0,.12);font-weight:600}
.cad2-fs-classify-emoji{font-size:24px;line-height:1}
.cad2-fs-classify-label{font-size:13px;font-weight:700;color:#1F2937}
.cad2-fs-classify-btn.again .cad2-fs-classify-label{color:#7F1D1D}
.cad2-fs-classify-btn.dificil .cad2-fs-classify-label{color:#B91C1C}
.cad2-fs-classify-btn.medio .cad2-fs-classify-label{color:#B45309}
.cad2-fs-classify-btn.facil .cad2-fs-classify-label{color:#047857}
.cad2-fs-classify-when{font-size:10px;color:#6B6862;font-weight:500;text-align:center}

.cad2-fs-footer{display:flex;justify-content:center;align-items:center;gap:18px;padding:12px 24px;border-top:0.5px solid var(--border);background:rgba(10,20,38,.4);flex-wrap:wrap}
.cad2-fs-stat{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2);font-weight:600}
.cad2-fs-stat-dot{display:inline-block;width:8px;height:8px;border-radius:50%}
.cad2-fs-stat-dot.again{background:#7F1D1D}
.cad2-fs-stat-dot.dificil{background:var(--red)}
.cad2-fs-stat-dot.medio{background:var(--amber)}
.cad2-fs-stat-dot.facil{background:var(--green)}

.cad2-fs-done{position:absolute;inset:0;background:rgba(5,11,22,.96);z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;gap:12px}
.cad2-fs-done-icon{font-size:64px;margin-bottom:6px}
.cad2-fs-done-title{font-family:'Syne',sans-serif;font-size:28px;font-weight:700;color:var(--text)}
.cad2-fs-done-sub{font-size:14px;color:var(--text2);max-width:520px;line-height:1.6}
.cad2-fs-done-sub strong{color:var(--text);font-family:'Syne',sans-serif}
.cad2-fs-done-btn{margin-top:14px;padding:11px 28px;background:var(--blue);color:#fff;border:none;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:.15s}
.cad2-fs-done-btn:hover{background:var(--blue2);box-shadow:0 4px 14px rgba(0,0,0,.4)}

/* ═══ MODO DIGITAR (cad2-fs typing mode) ═══════════════════════════════════
   Toggle "Virar / Digitar" no header + card com input de resposta + diff
   palavra a palavra após conferir. Coexiste com o modo flip. */
.cad2-fs-mode-switch{display:inline-flex;background:rgba(255,255,255,.06);border:0.5px solid var(--border2);border-radius:999px;padding:3px;gap:0;flex-shrink:0}
.cad2-fs-mode-switch-btn{background:transparent;border:none;padding:5px 11px;font-size:11px;font-weight:600;font-family:'DM Sans',sans-serif;color:var(--text3);cursor:pointer;border-radius:999px;transition:.15s;letter-spacing:.01em;display:inline-flex;align-items:center;gap:5px}
.cad2-fs-mode-switch-btn.active{background:#FAFAF7;color:#1F2937;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.cad2-fs-mode-switch-btn:not(.active):hover{color:var(--text2)}
@media(max-width:720px){.cad2-fs-mode-switch-btn{padding:4px 9px;font-size:10px}.cad2-fs-mode-switch-btn span.lbl{display:none}}

.cad2-fs-card-typing{width:100%;max-width:720px;background:#FAFAF7;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:32px 36px;display:none;flex-direction:column;gap:14px;box-shadow:0 24px 60px rgba(0,0,0,.55),0 4px 14px rgba(0,0,0,.3);align-self:center}
.cad2-fs-card-typing.shown{display:flex}
.cad2-fs-card-typing .cad2-fs-card-meta{font-size:10px;color:#6B6862;text-transform:uppercase;letter-spacing:.08em;font-weight:600;text-align:center}
.cad2-fs-card-typing .cad2-fs-card-pergunta{font-family:'Syne',sans-serif;font-size:calc(18px * var(--fc-font-scale, 1));line-height:1.5;color:#1F2937;font-weight:600;text-align:left;padding:10px 8px;word-break:break-word;white-space:pre-wrap}
@media(max-width:720px){.cad2-fs-card-typing{padding:22px 18px;border-radius:14px}.cad2-fs-card-typing .cad2-fs-card-pergunta{font-size:18px;padding:6px 0}}

.cad2-typing-input-wrap{display:flex;flex-direction:column;gap:6px}
.cad2-typing-input-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:#6B6862}
.cad2-typing-input{width:100%;min-height:84px;padding:12px 14px;background:rgba(0,0,0,.025);border:1.5px solid rgba(0,0,0,.1);border-radius:10px;font-family:'DM Sans',sans-serif;font-size:14px;color:#1F2937;resize:vertical;line-height:1.55;outline:none;transition:.15s;box-sizing:border-box}
.cad2-typing-input:focus{border-color:#2563EB;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.cad2-typing-input::placeholder{color:#9CA3AF}
.cad2-typing-input:disabled{opacity:.6;cursor:not-allowed;background:rgba(0,0,0,.04)}

.cad2-typing-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.cad2-typing-skip{background:transparent;border:none;color:#6B6862;font-family:'DM Sans',sans-serif;font-size:12px;cursor:pointer;padding:6px 8px;display:inline-flex;align-items:center;gap:5px;border-radius:6px;transition:.15s}
.cad2-typing-skip:hover{color:#1F2937;background:rgba(0,0,0,.04)}
.cad2-typing-confer-btn{padding:10px 20px;background:#1F2937;color:#FAFAF7;border:none;border-radius:9px;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;letter-spacing:.01em;display:inline-flex;align-items:center;gap:8px;transition:.15s}
.cad2-typing-confer-btn:hover{background:#0F172A;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.cad2-typing-confer-btn:disabled{opacity:.4;cursor:not-allowed}

/* Resultado após conferir */
.cad2-typing-result{display:none;margin-top:4px;padding-top:14px;border-top:1px dashed rgba(0,0,0,.15);flex-direction:column;gap:12px;animation:cad2TypingFadeIn .3s ease}
.cad2-typing-result.shown{display:flex}
@keyframes cad2TypingFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

.cad2-typing-score-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cad2-typing-score-label{font-size:10px;color:#6B6862;text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:2px}
.cad2-typing-score{font-family:'Syne',sans-serif;font-size:30px;font-weight:800;line-height:1;letter-spacing:-.01em}
.cad2-typing-score.t-low{color:#A32D2D}
.cad2-typing-score.t-mid{color:#854F0B}
.cad2-typing-score.t-good{color:#3B6D11}
.cad2-typing-score.t-high{color:#0E8B5A}
.cad2-typing-score-emoji{font-size:24px;line-height:1}

.cad2-typing-compare{display:flex;flex-direction:column;gap:8px}
.cad2-typing-compare-block{background:rgba(0,0,0,.025);border:1px solid rgba(0,0,0,.08);border-radius:9px;padding:8px 12px}
.cad2-typing-compare-label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:600;color:#6B6862;margin-bottom:4px}
.cad2-typing-compare-text{font-size:13px;line-height:1.6;color:#2D2A26;word-break:break-word;max-height:160px;overflow-y:auto}
.cad2-typing-compare-text em.empty-note{opacity:.55;font-style:italic;color:#6B6862}

.cad2-diff-match{color:#3B6D11;font-weight:600;text-decoration:underline;text-decoration-color:rgba(59,109,17,.4);text-underline-offset:2px}
.cad2-diff-miss{color:#A32D2D;text-decoration:line-through;text-decoration-color:rgba(163,45,45,.55)}
.cad2-diff-extra{color:#6B6862;opacity:.75;font-style:italic}

.cad2-typing-classify-prompt{font-size:11px;color:#6B6862;text-transform:uppercase;letter-spacing:.06em;font-weight:600;text-align:center;margin-top:2px}
.cad2-typing-classify-prompt strong{color:#1F2937}
.cad2-typing-classify-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.cad2-fs-classify-btn.suggested{outline:2.5px solid currentColor;outline-offset:1px}
.cad2-fs-classify-btn.suggested.again{color:#A32D2D}
.cad2-fs-classify-btn.suggested.dificil{color:#993556}
.cad2-fs-classify-btn.suggested.medio{color:#854F0B}
.cad2-fs-classify-btn.suggested.facil{color:#3B6D11}

/* ═══ MULTI-EDITAL UI ════════════════════════════════════════════════════
   Pill clicável no sidebar mostrando o edital de foco, dropdown com lista,
   view "Meus editais", banner de sobrecarga, indicadores de overlap. */
.edital-pill{display:flex;align-items:center;gap:8px;padding:10px 12px;margin:8px 0;background:rgba(255,255,255,.04);border:1px solid var(--border2);border-radius:10px;cursor:pointer;transition:.15s;position:relative}
.edital-pill:hover{background:rgba(255,255,255,.07);border-color:var(--border)}
.edital-pill-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);flex-shrink:0;box-shadow:0 0 0 2px rgba(255,255,255,.06)}
.edital-pill-info{flex:1;min-width:0;overflow:hidden}
.edital-pill-label{font-size:9px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;line-height:1}
.edital-pill-name{font-size:13px;font-weight:600;color:var(--text);margin-top:2px;line-height:1.25;
  /* 🔴 23/08/2026 · QUEBRA em vez de cortar. Era `nowrap` + reticências e
     "SEDES/DF – TDAS Técnico" (162px) virava "SEDES/DF – TDAS Técn…" numa caixa
     de ~140px. Duas linhas, e só depois reticências: a terceira empurraria o
     cartão de XP pra baixo na barra inteira. */
  white-space:normal;overflow-wrap:break-word;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}
.edital-pill-count{display:none;background:rgba(59,139,255,.18);color:#9CC4FF;font-size:10px;font-weight:700;padding:2px 6px;border-radius:8px;flex-shrink:0;margin-left:4px}
.edital-pill.multi .edital-pill-count{display:inline-block}
.edital-pill-chev{color:var(--text3);font-size:10px;transition:.15s;flex-shrink:0}
.edital-pill[aria-expanded="true"] .edital-pill-chev{transform:rotate(180deg)}

.edital-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg2);border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.5);z-index:1000;padding:4px;display:none;max-height:380px;overflow-y:auto}
.edital-dropdown.open{display:block;animation:edDropFade .15s ease}
@keyframes edDropFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.edital-dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer;transition:.12s}
.edital-dropdown-item:hover{background:rgba(255,255,255,.06)}
.edital-dropdown-item.foco{background:rgba(59,139,255,.1);border:1px solid rgba(59,139,255,.25)}
.edital-dropdown-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.edital-dropdown-item-name{flex:1;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.edital-dropdown-item-foco-tag{font-size:9px;background:rgba(59,139,255,.25);color:#9CC4FF;padding:1px 5px;border-radius:6px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.edital-dropdown-sep{height:1px;background:var(--border);margin:4px 0}
.edital-dropdown-action{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:12px;color:var(--text2);transition:.12s}
.edital-dropdown-action:hover{background:rgba(255,255,255,.06);color:var(--text)}
.edital-dropdown-action.add{color:#9CC4FF;font-weight:600}
.edital-dropdown-action svg{flex-shrink:0;opacity:.7}

/* Banner de sobrecarga */
.edital-sobrecarga-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,rgba(240,165,0,.12),rgba(240,165,0,.06));border:1px solid rgba(240,165,0,.35);border-radius:12px;margin:12px 0;color:var(--text)}
.edital-sobrecarga-banner-icon{font-size:24px;flex-shrink:0}
.edital-sobrecarga-banner-content{flex:1;min-width:0}
.edital-sobrecarga-banner-title{font-size:13px;font-weight:700;color:#F0A500;margin-bottom:2px}
.edital-sobrecarga-banner-text{font-size:12px;color:var(--text2);line-height:1.5}
.edital-sobrecarga-banner-actions{display:flex;gap:6px;flex-shrink:0}
.edital-sobrecarga-banner-btn{padding:6px 10px;background:rgba(240,165,0,.18);border:1px solid rgba(240,165,0,.4);color:#FACE5C;border-radius:7px;font-size:11px;font-weight:600;cursor:pointer;transition:.12s;font-family:'DM Sans',sans-serif}
.edital-sobrecarga-banner-btn:hover{background:rgba(240,165,0,.3)}
.edital-sobrecarga-banner-btn.ghost{background:transparent;color:var(--text3);border-color:var(--border)}
.edital-sobrecarga-banner-btn.ghost:hover{color:var(--text2);background:rgba(255,255,255,.04)}

/* View "Meus Editais" */
.editais-view{padding:24px}
.editais-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.editais-view-title{font-family:'Syne',sans-serif;font-size:24px;font-weight:700;color:var(--text);margin:0}
.editais-view-subtitle{font-size:13px;color:var(--text2);margin-top:4px}
.editais-view-add-btn{padding:10px 18px;background:var(--blue);color:#fff;border:none;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:'DM Sans',sans-serif;transition:.15s}
.editais-view-add-btn:hover{background:var(--blue2);box-shadow:0 4px 14px rgba(0,0,0,.35)}

.editais-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-bottom:24px}
.edital-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:18px;position:relative;transition:.15s;display:flex;flex-direction:column;gap:10px}
.edital-card.foco{border-color:rgba(59,139,255,.55);box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.edital-card.arquivado{opacity:.6}
.edital-card-header{display:flex;align-items:flex-start;gap:10px}
.edital-card-color{width:14px;height:14px;border-radius:50%;flex-shrink:0;margin-top:3px}
.edital-card-info{flex:1;min-width:0}
.edital-card-name{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text);line-height:1.2;word-break:break-word;margin:0}
.edital-card-meta{font-size:11px;color:var(--text3);margin-top:3px;line-height:1.4}
.edital-card-foco-badge{position:absolute;top:14px;right:14px;background:rgba(59,139,255,.25);color:#9CC4FF;font-size:9px;font-weight:700;padding:3px 7px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em}
.edital-card-archived-badge{position:absolute;top:14px;right:14px;background:rgba(255,255,255,.08);color:var(--text3);font-size:9px;font-weight:600;padding:3px 7px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em}
.edital-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 0;border-top:1px solid var(--border2);border-bottom:1px solid var(--border2)}
.edital-card-stat{text-align:center}
.edital-card-stat-value{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text)}
.edital-card-stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.edital-card-actions{display:flex;gap:6px;flex-wrap:wrap}
.edital-card-action{padding:6px 10px;border-radius:7px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text2);transition:.12s;font-family:'DM Sans',sans-serif;display:inline-flex;align-items:center;gap:4px}
.edital-card-action:hover{background:rgba(255,255,255,.06);color:var(--text);border-color:var(--border)}
.edital-card-action.primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.edital-card-action.primary:hover{background:var(--blue2);color:#fff}
.edital-card-action.danger{color:#FF7D7D;border-color:rgba(255,125,125,.25)}
.edital-card-action.danger:hover{background:rgba(255,125,125,.1);color:#FF9090}

.editais-empty-state{padding:60px 24px;text-align:center;color:var(--text2)}
.editais-empty-state-icon{font-size:48px;margin-bottom:12px;opacity:.5}
.editais-empty-state-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:600;color:var(--text);margin-bottom:6px}
.editais-empty-state-text{font-size:13px;color:var(--text2);max-width:420px;margin:0 auto 16px;line-height:1.5}

/* Modal confirmação trocar foco */
.edital-confirm-modal-body{padding:24px}
.edital-confirm-modal-body h3{font-family:'Syne',sans-serif;font-size:18px;margin:0 0 8px;color:var(--text)}
.edital-confirm-modal-body p{font-size:13px;color:var(--text2);line-height:1.6;margin:0 0 14px}

/* === Fluxo "Adicionar outro edital" (modal dentro do planner) === */
.add-edt-wrap{padding:22px 24px;display:flex;flex-direction:column;gap:14px;max-height:90vh;overflow-y:auto}
.add-edt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.add-edt-eyebrow{font-size:10.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:4px}
.add-edt-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);line-height:1.2;margin:0}
.add-edt-sub{font-size:12.5px;color:var(--text2);line-height:1.5;margin-top:6px}
.add-edt-close{background:transparent;border:none;color:var(--text3);font-size:22px;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}
.add-edt-close:hover{color:var(--text)}

.add-edt-search{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 12px 9px 36px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234A5E80' stroke-width='2' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='M21 21l-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center}
.add-edt-search:focus{border-color:var(--blue-dim)}
.add-edt-search::placeholder{color:var(--text3)}

.add-edt-list{display:flex;flex-direction:column;gap:8px;max-height:380px;overflow-y:auto;padding-right:4px}
.add-edt-option{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;cursor:pointer;transition:.15s}
.add-edt-option:hover{border-color:var(--blue-dim);background:rgba(59,139,255,.04)}
.add-edt-option.disabled{cursor:not-allowed;opacity:.55}
.add-edt-option.disabled:hover{border-color:var(--border);background:var(--bg3)}
.add-edt-option-icon{font-size:22px;flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--bg2);border:0.5px solid var(--border);border-radius:8px}
.add-edt-option-body{flex:1;min-width:0}
.add-edt-option-name{font-size:13.5px;font-weight:500;color:var(--text);line-height:1.3}
.add-edt-option-sub{font-size:11px;color:var(--text3);margin-top:2px;line-height:1.4}
.add-edt-option-pill{font-size:10px;padding:3px 8px;border-radius:5px;font-weight:600;background:var(--green-dim);color:var(--green);border:0.5px solid rgba(29,185,122,.3);white-space:nowrap}
.add-edt-option-arrow{color:var(--text3);font-size:16px;line-height:1;flex-shrink:0}

.add-edt-summary{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--bg3);border:0.5px solid var(--border);border-radius:10px}
.add-edt-stat{display:flex;flex-direction:column;gap:1px;flex:1;min-width:90px}
.add-edt-stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.add-edt-stat-value{font-size:17px;font-family:'Syne',sans-serif;font-weight:700;line-height:1.1}
.add-edt-stat.shared .add-edt-stat-value{color:var(--green)}
.add-edt-stat.new .add-edt-stat-value{color:var(--blue2)}
.add-edt-stat.total .add-edt-stat-value{color:var(--text)}

.add-edt-materias{display:flex;flex-direction:column;gap:5px;max-height:340px;overflow-y:auto;padding:4px;background:rgba(8,14,28,.4);border:0.5px solid var(--border);border-radius:10px}
.add-edt-materia{display:flex;align-items:center;gap:10px;padding:9px 11px;background:var(--bg3);border:0.5px solid transparent;border-radius:8px;cursor:pointer;transition:.12s}
.add-edt-materia:hover{border-color:var(--border2)}
.add-edt-materia input[type="checkbox"]{accent-color:var(--blue);width:15px;height:15px;flex-shrink:0;cursor:pointer}
.add-edt-materia-info{flex:1;min-width:0}
.add-edt-materia-name{font-size:13px;color:var(--text);font-weight:500;line-height:1.3;word-break:break-word}
.add-edt-materia-status{font-size:10.5px;margin-top:2px;display:inline-flex;align-items:center;gap:4px;font-weight:500}
.add-edt-materia-status.shared{color:var(--green)}
.add-edt-materia-status.new{color:var(--blue2)}
.add-edt-materia-status::before{content:'';width:5px;height:5px;border-radius:50%;display:inline-block}
.add-edt-materia-status.shared::before{background:var(--green)}
.add-edt-materia-status.new::before{background:var(--blue2)}
.add-edt-materia-topics{font-size:10.5px;color:var(--text3);margin-top:2px;line-height:1.4}

.add-edt-foot{display:flex;justify-content:space-between;gap:10px;padding-top:6px;border-top:0.5px solid var(--border);flex-wrap:wrap}
.add-edt-foot-info{font-size:11.5px;color:var(--text3);align-self:center}
.add-edt-foot-actions{display:flex;gap:8px;margin-left:auto}
.add-edt-btn{padding:9px 16px;border-radius:8px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;border:0.5px solid var(--border2);background:transparent;color:var(--text2);white-space:nowrap}
.add-edt-btn:hover{border-color:var(--border);color:var(--text)}
.add-edt-btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.add-edt-btn.primary:hover{background:var(--blue2);transform:translateY(-1px)}
.add-edt-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

.add-edt-empty{text-align:center;padding:24px 12px;color:var(--text3);font-size:12.5px;font-style:italic}

/* Opções de escolha de foco no passo 3 */
.add-edt-foco-option{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg2);border:0.5px solid var(--border);border-radius:9px;cursor:pointer;margin-bottom:8px;transition:.15s}
.add-edt-foco-option:last-child{margin-bottom:0}
.add-edt-foco-option:hover{border-color:var(--border2)}
.add-edt-foco-option.selected,.add-edt-foco-option:has(input:checked){background:rgba(59,139,255,.08);border-color:var(--blue-dim)}
.add-edt-foco-option input[type="radio"]{accent-color:var(--blue);flex-shrink:0;cursor:pointer}
.add-edt-foco-body{flex:1;min-width:0}
.add-edt-foco-name{font-weight:600;color:var(--text);font-size:13px;line-height:1.3}
.add-edt-foco-sub{font-size:11px;color:var(--text3);margin-top:2px;line-height:1.4}
@media(max-width:600px){
  .add-edt-wrap{padding:18px 16px}
  .add-edt-summary{flex-direction:column}
  .add-edt-foot{flex-direction:column}
  .add-edt-foot-actions{width:100%;justify-content:space-between}
}

/* Indicador "também em N editais" nas matérias */
.materia-in-editais-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:rgba(59,139,255,.12);border:1px solid rgba(59,139,255,.25);border-radius:6px;font-size:10px;color:#9CC4FF;font-weight:600;margin-left:6px;cursor:default}
.materia-in-editais-chip-dot{width:5px;height:5px;border-radius:50%;background:#9CC4FF}

/* MATÉRIAS V23 · visão enxuta com detalhes sob demanda */
/* Layout slim quando colapsado: header (nome+badges) numa linha,
   barra de progresso + % + botão "Estudar agora" na linha de baixo,
   seta de expandir vai pro topo direito.
   Camadas (header com label+info e fileira de pills) só aparecem ao expandir. */
#materias-full .materia-card{padding:0}
#materias-full .materia-card-v2 .materia-header{padding:8px 14px 6px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px}
#materias-full .materia-card-v2 .materia-info{flex:1;min-width:0}
#materias-full .materia-card-v2 .materia-top{margin-bottom:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#materias-full .materia-card-v2 .materia-nome{font-size:14px;font-weight:600}
#materias-full .materia-card-v2 .materia-progress-zone{padding:0 14px 8px 16px}
#materias-full .materia-card-v2 .prog-row{gap:10px;margin-bottom:0}
#materias-full .materia-card-v2 .prog-track{height:5px;border-radius:5px;background:#14213A;box-shadow:inset 0 0 0 0.5px rgba(0,0,0,.08)}
#materias-full .materia-card-v2 .prog-fill{border-radius:5px;min-width:2px}
#materias-full .materia-card-v2 .prog-pct{font-family:'Syne',sans-serif;font-size:12px;font-weight:700;min-width:34px}
#materias-full .materia-card-v2 .materia-action-btn-inline{padding:5px 12px;font-size:11px}
/* Esconder elementos das camadas no colapsado · só aparecem ao expandir */
#materias-full .fases-row,
#materias-full .materia-mini-stats,
#materias-full .materia-action-row{display:none}
#materias-full .materia-card.expanded .fases-row{display:flex;margin-top:6px}
#materias-full .materia-card.expanded .materia-mini-stats{display:grid}
#materias-full .materia-card.expanded .materia-action-row{display:flex}
#materias-full .materia-card.expanded .materia-card-v2{padding-bottom:4px}
#materias-full .materia-card.expanded .materia-progress-zone{padding-bottom:12px}
/* Seta de expandir agora fica alinhada ao topo direito do header */
#materias-full .materia-arrow{margin-left:8px;opacity:.6;font-size:10px;flex-shrink:0;transition:.2s}
#materias-full .materia-card:hover .materia-arrow{opacity:1}
#materias-full .materia-card:not(.expanded) .materia-arrow{transform:none}
#materias-full .materia-card:not(.expanded):hover .prog-track{background:#182A49}
@media(max-width:900px){#materias-full .materia-card-v2 .prog-track{height:5px}#materias-full .materia-card-v2 .materia-header{padding:8px 12px 6px 14px}#materias-full .materia-card-v2 .materia-progress-zone{padding:0 12px 8px 14px}}


/* AUTH EMAIL: bloqueia app antes do login e mostra painel central */
.auth-box{position:fixed;top:14px;right:14px;z-index:9998;width:290px;background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;padding:12px;box-shadow:0 16px 48px rgba(0,0,0,.42);font-family:'DM Sans',sans-serif}
.auth-box.is-collapsed{width:auto;padding:8px 10px;cursor:pointer}
.auth-box.is-collapsed .auth-body{display:none}
/* Botão "Painel do Mentor" dentro do menu LOGADO COMO · aparece SÓ pra mentor (body.is-mentor,
   setado só ao logar como mentor). Recolhe junto com o menu pois fica dentro do .auth-body. */
#planner360-mentor-panel-btn{display:none;width:100%;margin:0 0 8px;padding:11px;border:0;border-radius:10px;background:#3B8BFF;color:#fff;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:filter .15s,transform .12s}
#planner360-mentor-panel-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
body.is-mentor #planner360-mentor-panel-btn{display:block}
.auth-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.auth-title{font-size:10px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em}
.auth-status{font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.auth-toggle{background:transparent;border:0.5px solid var(--border2);color:var(--text3);border-radius:7px;width:26px;height:24px;cursor:pointer;font-size:14px;line-height:1;transition:.15s}
.auth-toggle:hover{color:var(--text);border-color:var(--blue-dim);background:var(--bg3)}
.auth-row{display:grid;grid-template-columns:1fr;gap:7px}
.auth-input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:8px 10px;color:var(--text);font-size:12px;font-family:'DM Sans',sans-serif;outline:none}
.auth-input:focus{border-color:var(--blue-dim)}
.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.auth-recovery-btn{width:100%;margin-top:8px;background:transparent;border:none;color:var(--blue2);font-size:11px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;padding:5px 6px;border-radius:7px;transition:.15s;text-align:center}
.auth-recovery-btn:hover{background:var(--blue-glow);color:var(--text)}
.auth-reset-area{display:none;margin-top:8px;background:rgba(18,29,50,.58);border:0.5px solid var(--border2);border-radius:10px;padding:10px}
.auth-box.recovery .auth-reset-area{display:block}
.auth-reset-title{font-size:10px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.auth-reset-sub{font-size:10.5px;color:var(--text2);line-height:1.4;margin-bottom:8px}
.auth-reset-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.auth-btn{border:none;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s}
.auth-btn.primary{background:var(--blue);color:#fff}
.auth-btn.primary:hover{background:var(--blue2)}
.ob-btn.loading,.auth-btn.loading{opacity:.65;cursor:not-allowed;pointer-events:none;position:relative}
.ob-btn.loading::after,.auth-btn.loading::after{content:"";position:absolute;right:14px;top:50%;width:14px;height:14px;margin-top:-7px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:btnSpin .6s linear infinite}
@keyframes btnSpin{to{transform:rotate(360deg)}}
.auth-btn.secondary{background:var(--bg3);color:var(--text2);border:0.5px solid var(--border2)}
.auth-btn.secondary:hover{color:var(--text);border-color:var(--blue-dim)}
.auth-btn.logout{margin-top:7px;width:100%;background:var(--red-dim);color:var(--red);border:0.5px solid rgba(255,77,106,.25)}
.auth-btn.logout:hover{background:rgba(255,77,106,.15)}
.auth-message{font-size:11px;color:var(--text3);line-height:1.4;margin-top:8px;min-height:15px}
.auth-message.error{color:var(--red)}
.auth-message.ok{color:var(--green)}
.auth-user{display:none;background:var(--bg3);border:0.5px solid var(--border2);border-radius:9px;padding:9px 10px;margin-top:6px}
.auth-user.show{display:block}

/* ── MODOS DE AUTH (login / signup / emailsent) ───────────────────────── */
/* Cabeçalho dentro de cada modo */
.auth-mode-header{margin-bottom:14px;padding-bottom:10px;border-bottom:0.5px solid var(--border)}
.auth-mode-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:3px}
.auth-mode-sub{font-size:11px;color:var(--text3);line-height:1.5}

/* Botão full-width pro CTA principal de cada modo */
.auth-btn-full{width:100%;margin-top:10px;padding:11px 16px;font-size:13px}

/* Switch entre login e signup */
.auth-mode-switch{margin-top:12px;padding-top:12px;border-top:0.5px solid var(--border);font-size:12px;color:var(--text3);text-align:center}
.auth-mode-link{background:transparent;border:none;color:var(--blue2);font-size:12px;font-weight:600;cursor:pointer;padding:0;font-family:inherit}
.auth-mode-link:hover{color:var(--blue);text-decoration:underline}

/* Tela "verifique seu e-mail" */
.auth-emailsent-area{display:none;text-align:center;padding:8px 4px}
.auth-emailsent-icon{font-size:42px;margin-bottom:10px;line-height:1}
.auth-emailsent-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}
.auth-emailsent-sub{font-size:12px;color:var(--text2);line-height:1.55;margin-bottom:14px}
.auth-emailsent-sub strong{color:var(--blue2);font-weight:700;word-break:break-all}
.auth-emailsent-tip{font-size:11px;color:var(--text3);line-height:1.5;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 12px;margin-bottom:14px}
.auth-emailsent-tip strong{color:var(--text2)}

/* Visibilidade condicional baseada na classe .mode-* do .auth-box */
.auth-box .auth-login-area,
.auth-box .auth-signup-area,
.auth-box .auth-emailsent-area{display:none}
.auth-box.mode-login .auth-login-area{display:block}
.auth-box.mode-signup .auth-signup-area{display:block}
.auth-box.mode-emailsent .auth-emailsent-area{display:block}

/* Quando logado ou em recovery, esconde todos os modos */
.auth-box.logged .auth-login-area,
.auth-box.logged .auth-signup-area,
.auth-box.logged .auth-emailsent-area,
.auth-box.recovery .auth-login-area,
.auth-box.recovery .auth-signup-area,
.auth-box.recovery .auth-emailsent-area{display:none}
.auth-user-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}
.auth-user-email{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.auth-loading .app,
body.auth-loading .ob-shell,
body.auth-required .app,
body.auth-required .ob-shell{display:none!important}
body.ob-awaiting-templates .ob-shell{display:none!important}
body.auth-blocked .app,body.auth-blocked .ob-shell,body.auth-blocked .auth-box{display:none!important}
body.auth-blocked .access-blocked-screen{display:flex!important}
/* ══════════════ MODO GRÁTIS · F1 da Área do Aluno 360 (04/ago/2026) ═══════
   Conta grátis entra e vê o menu INTEIRO: o que é do Planner fica com cadeado
   e vende. Esconder venderia menos · o corte que vale é no showView(). */
body.modo-gratis .nav-item.is-pago{opacity:.62}
body.modo-gratis .nav-item.is-pago:hover{opacity:.85;background:var(--bg3)}
body.modo-gratis .nav-cadeado{margin-left:auto;font-size:11px;filter:saturate(.5)}
body.modo-gratis #concurso-badge,
body.modo-gratis .sidebar-footer .cfg-btn,
body.modo-gratis #edital-pill,
body.modo-gratis .study-dock,
body.modo-gratis .p360-nudge{display:none!important}
/* saldo do dia, na barra das questões */
.p360-cota-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;
  color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:5px 11px}
.p360-cota-chip b{color:var(--brand-2);font-weight:800;font-variant-numeric:tabular-nums}
.p360-cota-chip.pouca b{color:#f59e0b}
.p360-cota-chip.zerada{border-color:var(--brand-dim);color:var(--brand-2)}
/* parede de venda */
/* ===== Editor de perfil (22/08/2026) ===== */
.p360-perf{position:fixed;inset:0;z-index:9750;background:rgba(4,7,14,.72);display:none;
  align-items:center;justify-content:center;padding:22px}
.p360-perf.on{display:flex}
.p360-perf-cx{position:relative;max-width:400px;width:100%;background:var(--bg2);
  border:1px solid var(--border);border-radius:var(--r2);padding:24px 24px 20px;
  box-shadow:0 24px 60px -20px rgba(0,0,0,.6)}
.p360-perf-cx h3{margin:0 0 3px;font-size:18px;color:var(--text);font-weight:700}
.p360-perf-sub{margin:0 0 18px;font-size:12.5px;color:var(--text2);line-height:1.5}
.p360-perf-x{position:absolute;top:12px;right:12px;width:28px;height:28px;min-height:0;
  border:0;background:transparent;color:var(--text3);font-size:15px;cursor:pointer;border-radius:6px}
.p360-perf-x:hover{background:var(--bg4);color:var(--text)}
.p360-perf-lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text3);margin:0 0 7px}
.p360-perf-avs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.p360-perf-av{width:38px;height:38px;min-height:0;border-radius:9px;border:1px solid var(--border);
  background:var(--bg3);font-size:18px;line-height:1;cursor:pointer;display:flex;
  align-items:center;justify-content:center;padding:0;transition:border-color .12s,background .12s}
.p360-perf-av:hover{border-color:var(--border2)}
.p360-perf-av.on{border-color:var(--blue);background:var(--blue-glow)}
.p360-perf-in{width:100%;padding:10px 12px;border-radius:var(--r);border:1px solid var(--border);
  background:var(--bg3);color:var(--text);font-size:14.5px;font-family:inherit;margin-bottom:4px}
.p360-perf-in:focus{outline:0;border-color:var(--blue)}
.p360-perf-dica{font-size:11.5px;color:var(--text3);margin:0 0 16px}
.p360-perf-mail{font-size:12.5px;color:var(--text2);background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r);padding:9px 12px;margin-bottom:18px;word-break:break-all}
.p360-perf-acts{display:flex;gap:8px;justify-content:flex-end}
.p360-perf-btn{padding:9px 16px;border-radius:var(--r);border:1px solid var(--border);
  background:transparent;color:var(--text2);font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}
.p360-perf-btn.ok{background:var(--blue);border-color:var(--blue);color:#fff}
.p360-perf-btn.ok:disabled{opacity:.5;cursor:default}
.p360-perf-erro{font-size:12.5px;color:#ef8a80;margin:0 0 12px;display:none}
.p360-perf-erro.on{display:block}
.p360-venda{position:fixed;inset:0;z-index:9700;background:rgba(4,7,14,.72);display:none;
  align-items:center;justify-content:center;padding:22px}
.p360-venda.on{display:flex}
.p360-venda-cx{position:relative;max-width:420px;width:100%;background:var(--bg2);
  border:1px solid var(--border2);border-radius:16px;padding:26px 24px 22px;text-align:center;
  box-shadow:0 30px 80px rgba(0,0,0,.6)}
.p360-venda-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--text3);
  font-size:15px;cursor:pointer;padding:6px;line-height:1}
.p360-venda-selo{display:inline-block;font-family:'Syne',sans-serif;font-size:9.5px;font-weight:800;
  letter-spacing:.16em;text-transform:uppercase;color:#0b1220;background:var(--brand-2);
  border-radius:3px;padding:3px 9px;margin-bottom:14px}
.p360-venda-cx h3{font-family:'Syne',sans-serif;font-size:19px;font-weight:800;color:var(--text);
  margin:0 0 8px;line-height:1.25}
.p360-venda-cx p{font-size:13.5px;color:var(--text2);line-height:1.55;margin:0 0 20px}
/* 🔴 25/08/2026 · `text-align:center` do pai centraliza conteúdo EM LINHA, não a
   caixa de um elemento em bloco. Esta classe nasceu para um `<a>` (daí o
   `text-decoration:none`), e link em bloco ocupa a linha toda — parecia
   centralizado sem nunca ter sido. Reusada num `<button>` (convite de conta do
   visitante), o botão encolhe pro tamanho do texto e encosta na esquerda.
   As margens automáticas centralizam a caixa e não mudam nada no `<a>`.
   `font-family:inherit` porque botão não herda fonte do pai por padrão. */
.p360-venda-cta{display:block;margin-left:auto;margin-right:auto;
  background:var(--brand-2);color:#0b1220;border-radius:10px;padding:12px 18px;
  font-family:inherit;font-size:14px;font-weight:800;text-decoration:none;
  border:0;cursor:pointer}
.p360-venda-cta:hover{filter:brightness(1.08)}
.p360-venda-nao{display:block;width:100%;margin-top:10px;background:none;border:0;color:var(--text3);
  font:inherit;font-size:12.5px;cursor:pointer;padding:8px}

/* ══════════════ MODO MATERIAIS (04/ago/2026) ═════════════════════════════
   Quem COMPROU resumo mas não assina o Planner entra assim: só a estante
   "Meus materiais" e o leitor de PDF. Antes essa gente batia na tela de
   bloqueio, mesmo com o item anunciado sem cadeado no site (40 alunos).
   O corte de verdade é no showView(); o CSS abaixo é só pra não mostrar
   porta que não abre. */
/* Desde a F1 o comprador de resumo herda o modo grátis (menu inteiro com
   cadeado nos itens pagos), então aqui sobra só o que é do PLANO de estudos e
   não faz sentido pra quem não assina. */
body.modo-materiais #concurso-badge,
body.modo-materiais .sidebar-footer .cfg-btn,
body.modo-materiais .sidebar-footer .dev-only{display:none!important}
/* faixa de conversão no topo da estante */
.mm-faixa{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 4px;padding:11px 14px;
  background:linear-gradient(100deg,rgba(240,165,0,.12),rgba(240,165,0,.04));
  border:1px solid var(--brand-dim);border-radius:12px}
.mm-faixa-ic{font-size:19px;flex-shrink:0}
.mm-faixa-txt{flex:1;min-width:220px;font-size:12.5px;color:var(--text2);line-height:1.45}
.mm-faixa-txt b{color:var(--text)}
.mm-faixa-go{flex-shrink:0;background:var(--brand-2);color:#0b1220;border:0;border-radius:9px;padding:9px 15px;
  font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
.mm-faixa-go:hover{filter:brightness(1.08)}
.access-blocked-screen{display:none;position:fixed;inset:0;z-index:10000;background:radial-gradient(circle at top,rgba(255,77,106,.08),var(--bg) 42%);flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.access-blocked-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:16px;padding:32px 28px;max-width:420px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.access-blocked-icon{font-size:48px;margin-bottom:16px;display:block}
.access-blocked-title{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--text);margin-bottom:10px}
.access-blocked-msg{font-size:14px;color:var(--text2);line-height:1.6;margin-bottom:8px}
.access-blocked-email{font-size:13px;color:var(--text3);margin-bottom:24px;word-break:break-all}
.access-blocked-email strong{color:var(--text2)}
.access-blocked-actions{display:flex;flex-direction:column;gap:10px}
.access-blocked-btn{width:100%;padding:12px 16px;border-radius:10px;font-size:14px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;border:none;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px}
.access-blocked-btn.whatsapp{background:#25D366;color:#fff}
.access-blocked-btn.whatsapp:hover{background:#20bd5a;transform:translateY(-1px)}
.access-blocked-btn.logout{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.access-blocked-btn.logout:hover{color:var(--red);border-color:rgba(255,77,106,.4);background:var(--red-dim)}
/* ============================== ADMIN PANEL ============================== */
.admin-nav-item{display:none!important}
body.is-admin .admin-nav-item{display:flex!important}

/* ═══════════════════════════════════════
   RESUMOS 360 · View
═══════════════════════════════════════ */
.resumos-hero{background:linear-gradient(135deg,#071830 0%,#0a2040 40%,#0d2850 100%);border:0.5px solid rgba(59,139,255,.28);border-radius:16px;padding:28px 32px;margin-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;overflow:hidden}
.resumos-hero::before{content:'';position:absolute;top:-60px;right:-60px;width:220px;height:220px;border-radius:50%;background:transparent;pointer-events:none}
.resumos-hero::after{content:'';position:absolute;bottom:-40px;left:200px;width:140px;height:140px;border-radius:50%;background:transparent;pointer-events:none}
.resumos-hero-left{flex:1;min-width:0;position:relative;z-index:1}
.resumos-hero-eyebrow{font-size:10px;font-weight:700;color:var(--blue2);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;display:flex;align-items:center;gap:6px}
.resumos-hero-eyebrow::before{content:'';width:18px;height:1.5px;background:var(--blue2);display:inline-block;border-radius:2px}
.resumos-hero-title{font-family:'Syne',sans-serif;font-size:24px;font-weight:800;color:var(--text);line-height:1.2;margin-bottom:8px;letter-spacing:-.01em}
.resumos-hero-title span{color:var(--blue2)}
.resumos-hero-desc{font-size:13px;color:var(--text2);line-height:1.6;max-width:480px;margin-bottom:20px}
.resumos-hero-cta{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border:none;border-radius:10px;padding:12px 22px;font-size:14px;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer;text-decoration:none;transition:.18s;box-shadow:0 6px 20px rgba(0,0,0,.32);letter-spacing:.01em}
.resumos-hero-cta:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.44)}
.resumos-hero-cta svg{flex-shrink:0;transition:.18s}
.resumos-hero-cta:hover svg{transform:translateX(3px)}
.resumos-hero-right{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:10px;position:relative;z-index:1}
.resumos-hero-stat{text-align:right}
.resumos-hero-stat-val{font-family:'Syne',sans-serif;font-size:32px;font-weight:800;color:var(--blue2);line-height:1;letter-spacing:-.02em}
.resumos-hero-stat-label{font-size:11px;color:var(--text3);margin-top:3px}
.resumos-hero-divider{width:1px;height:40px;background:rgba(59,139,255,.18);align-self:center}

/* Seção de matérias do usuário */
.resumos-section{margin-bottom:32px}
.resumos-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}
.resumos-section-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px}
.resumos-section-badge{font-size:9px;font-weight:700;padding:2px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.06em}
.resumos-section-badge.contextual{background:rgba(29,185,122,.14);color:var(--green);border:0.5px solid rgba(29,185,122,.25)}
.resumos-section-badge.all{background:var(--blue-glow);color:var(--blue2);border:0.5px solid var(--blue-dim)}
.resumos-section-sub{font-size:12px;color:var(--text3)}

/* Grid de cards */
.resumos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}

/* Card individual */
.resumo-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:0;cursor:default;transition:.2s;display:flex;flex-direction:column;overflow:hidden;position:relative}
.resumo-card:hover{border-color:var(--border2);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.22)}
.resumo-card.contextual{border-color:rgba(59,139,255,.2);background:linear-gradient(180deg,rgba(13,21,38,.9),var(--bg2))}
.resumo-card.contextual:hover{border-color:rgba(59,139,255,.4);box-shadow:0 8px 28px rgba(0,0,0,.1)}
.resumo-card-top{padding:16px 18px 12px;flex:1}
.resumo-card-icon-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.resumo-card-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.resumo-card-badges{display:flex;gap:5px;flex-wrap:wrap}
.resumo-badge{font-size:9px;font-weight:600;padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.04em}
.resumo-badge.novo{background:rgba(29,185,122,.14);color:var(--green);border:0.5px solid rgba(29,185,122,.22)}
.resumo-badge.popular{background:rgba(240,165,0,.12);color:var(--amber);border:0.5px solid rgba(240,165,0,.22)}
.resumo-badge.estuda{background:var(--blue-glow);color:var(--blue2);border:0.5px solid var(--blue-dim)}
.resumo-card-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:5px;line-height:1.3}
.resumo-card-desc{font-size:12px;color:var(--text2);line-height:1.55}
.resumo-card-footer{padding:10px 18px 14px;border-top:0.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.resumo-card-meta{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:5px}
.resumo-card-btn{display:inline-flex;align-items:center;gap:5px;background:var(--blue-glow);color:var(--blue2);border:0.5px solid var(--blue-dim);border-radius:7px;padding:6px 12px;font-size:12px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;text-decoration:none;transition:.15s;white-space:nowrap}
.resumo-card-btn:hover{background:rgba(59,139,255,.2);color:var(--text);border-color:rgba(59,139,255,.5)}
.resumo-card.contextual .resumo-card-btn{background:var(--blue);color:#fff;border:none;box-shadow:0 3px 10px rgba(0,0,0,.25)}
.resumo-card.contextual .resumo-card-btn:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(0,0,0,.38)}

/* Card "em breve" */
.resumo-card.em-breve{opacity:.55}
.resumo-card.em-breve:hover{transform:none;box-shadow:none}
.resumo-card.em-breve .resumo-card-btn{background:var(--bg4);color:var(--text3);border-color:var(--border);cursor:not-allowed}

/* Empty state */
.resumos-empty{text-align:center;padding:40px 20px;color:var(--text3)}
.resumos-empty-icon{font-size:32px;margin-bottom:12px}
.resumos-empty-text{font-size:13px;line-height:1.5}

/* CTA bottom banner */
.resumos-bottom-banner{margin-top:32px;background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;padding:20px 24px;display:flex;align-items:center;gap:16px}
.resumos-bottom-banner-icon{font-size:28px;flex-shrink:0}
.resumos-bottom-banner-body{flex:1}
.resumos-bottom-banner-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}
.resumos-bottom-banner-desc{font-size:12px;color:var(--text2);line-height:1.5}
.resumos-bottom-banner-cta{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--blue2);border:0.5px solid var(--blue-dim);border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;text-decoration:none;transition:.15s;flex-shrink:0;white-space:nowrap}
.resumos-bottom-banner-cta:hover{background:var(--blue-glow);color:var(--text);border-color:rgba(59,139,255,.5)}
.adm-toolbar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.adm-toolbar input,.adm-toolbar select{flex:1;min-width:140px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;transition:.15s}
.adm-toolbar input:focus,.adm-toolbar select:focus{border-color:var(--blue-dim)}
.adm-toolbar input::placeholder{color:var(--text3)}
.adm-btn{padding:10px 18px;border-radius:8px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;border:none;white-space:nowrap;min-height:40px}
.adm-btn.primary{background:var(--blue);color:#fff}
.adm-btn.primary:hover{background:var(--blue2);transform:translateY(-1px)}
.adm-btn.danger{background:transparent;color:var(--red);border:0.5px solid rgba(255,77,106,.3)}
.adm-btn.danger:hover{background:var(--red-dim);border-color:var(--red)}
.adm-btn.success{background:transparent;color:var(--green);border:0.5px solid rgba(29,185,122,.3)}
.adm-btn.success:hover{background:var(--green-dim);border-color:var(--green)}
.adm-btn.small{padding:6px 12px;font-size:12px;min-height:32px}
.adm-msg{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:12px;display:none}
.adm-msg.show{display:block}
.adm-msg.ok{background:var(--green-dim);color:var(--green);border:0.5px solid rgba(29,185,122,.3)}
.adm-msg.err{background:var(--red-dim);color:var(--red);border:0.5px solid rgba(255,77,106,.3)}
.adm-table-wrap{overflow-x:auto;border:0.5px solid var(--border);border-radius:10px;background:var(--bg2)}
.adm-table{width:100%;border-collapse:collapse;font-size:13px}
.adm-table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;border-bottom:0.5px solid var(--border);background:var(--bg3)}
.adm-table td{padding:10px 14px;border-bottom:0.5px solid var(--border);color:var(--text2);vertical-align:middle}
.adm-table tr:last-child td{border-bottom:none}
.adm-table tr:hover td{background:rgba(59,139,255,.04)}
.adm-status-pill{display:inline-block;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600}
.adm-status-pill.active{background:var(--green-dim);color:var(--green);border:0.5px solid rgba(29,185,122,.3)}
.adm-status-pill.blocked{background:var(--red-dim);color:var(--red);border:0.5px solid rgba(255,77,106,.3)}
.adm-empty{text-align:center;padding:32px 16px;color:var(--text3);font-size:13px}
.adm-count{font-size:12px;color:var(--text3);margin-bottom:12px}
.adm-section{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:16px;margin-bottom:16px}
.adm-section-title{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.adm-tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}
.adm-tab{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;border:0.5px solid var(--border2);background:transparent;color:var(--text2)}
.adm-tab:hover{border-color:var(--blue-dim);color:var(--text)}
.adm-tab.active{background:var(--blue-glow);color:var(--blue);border-color:var(--blue-dim)}
.adm-topic-list{margin-top:10px;display:flex;flex-direction:column;gap:4px}
.adm-topic-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg3);border-radius:6px;font-size:12px;color:var(--text2)}
.adm-topic-item .adm-topic-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-topic-item.inactive{opacity:.5}
.adm-inline-edit{background:var(--bg3);border:0.5px solid var(--border2);border-radius:6px;padding:6px 10px;color:var(--text);font-size:13px;font-family:'DM Sans',sans-serif;outline:none;width:100%}
.adm-inline-edit:focus{border-color:var(--blue-dim)}
@media(max-width:768px){
  .adm-table th:nth-child(3),.adm-table td:nth-child(3),
  .adm-table th:nth-child(4),.adm-table td:nth-child(4){display:none}
  .adm-tabs{overflow-x:auto;flex-wrap:nowrap}
}

/* Modal de edital */
.edt-modal{display:none;position:fixed;inset:0;background:rgba(8,14,28,.85);z-index:9500;align-items:center;justify-content:center;padding:20px}
.edt-modal.show{display:flex}
.edt-modal-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;width:100%;max-width:680px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.edt-modal-header{padding:18px 22px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.edt-modal-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text)}
.edt-modal-close{background:transparent;border:none;color:var(--text3);font-size:22px;cursor:pointer;padding:0 4px;line-height:1}
.edt-modal-close:hover{color:var(--text)}
.edt-modal-body{padding:18px 22px;overflow-y:auto;flex:1}
.edt-modal-footer{padding:14px 22px;border-top:0.5px solid var(--border);display:flex;justify-content:flex-end;gap:10px}
.edt-form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.edt-form-label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.edt-form-grid{display:grid;grid-template-columns:1fr 1fr 100px;gap:12px;margin-bottom:8px}
.edt-form-section-title{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin:18px 0 8px;padding-top:14px;border-top:0.5px solid var(--border)}
.edt-add-subject-row{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.edt-stage-item{background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:10px 12px;margin-top:8px}
.edt-stage-item-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.edt-stage-item-name{flex:1;min-width:140px;font-weight:500;color:var(--text);font-size:13px}
.edt-stage-item-meta{font-size:11px;color:var(--text3)}
.edt-stage-topics{margin-top:8px;padding-top:8px;border-top:0.5px solid var(--border)}
.edt-stage-topic-row{display:flex;gap:6px;align-items:center;margin-bottom:4px}
.edt-stage-topic-row .adm-inline-edit{flex:1}
.edt-stage-topic-remove{background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}
.edt-stage-topic-remove:hover{color:var(--red);background:var(--red-dim)}

/* === Wizard de gerenciamento de editais (smart matching + revisão) === */
.edt-modal-card.wide{max-width:880px}
.edt-wizard-steps{display:flex;gap:6px;padding:14px 22px 0;flex-wrap:wrap;align-items:center}
.edt-wizard-step{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:18px;font-size:12px;font-weight:500;color:var(--text3);background:var(--bg3);border:0.5px solid var(--border2);cursor:default;transition:.15s}
.edt-wizard-step.active{background:var(--blue-glow);color:var(--blue);border-color:var(--blue-dim)}
.edt-wizard-step.done{color:var(--green);border-color:rgba(29,185,122,.3)}
.edt-wizard-step-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--bg);font-size:10px;font-weight:700}
.edt-wizard-step.active .edt-wizard-step-num{background:var(--blue);color:#fff}
.edt-wizard-step.done .edt-wizard-step-num{background:var(--green);color:#fff}
.edt-wizard-step-arrow{color:var(--text3);font-size:11px;opacity:.6}

.edt-paste-area{width:100%;background:var(--bg3);border:0.5px dashed var(--border2);border-radius:8px;padding:10px 12px;color:var(--text);font-size:12.5px;font-family:'DM Sans',sans-serif;line-height:1.5;outline:none;resize:vertical;min-height:60px;transition:.15s}
.edt-paste-area:focus{border-color:var(--blue-dim);border-style:solid}
.edt-paste-area::placeholder{color:var(--text3)}
.edt-paste-hint{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.4}

/* Match pills (status indicators) */
.edt-match-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;font-size:10.5px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.edt-match-pill::before{content:'';width:5px;height:5px;border-radius:50%;display:inline-block}
.edt-match-pill.direct{background:var(--green-dim);color:var(--green);border:0.5px solid rgba(29,185,122,.3)}
.edt-match-pill.direct::before{background:var(--green)}
.edt-match-pill.alias{background:var(--amber-dim);color:var(--amber);border:0.5px solid rgba(240,165,0,.3)}
.edt-match-pill.alias::before{background:var(--amber)}
.edt-match-pill.manual{background:var(--blue-glow);color:var(--blue2);border:0.5px solid var(--blue-dim)}
.edt-match-pill.manual::before{background:var(--blue2)}
.edt-match-pill.new{background:var(--purple-dim);color:var(--purple);border:0.5px solid rgba(139,111,255,.3)}
.edt-match-pill.new::before{background:var(--purple)}
.edt-match-pill.unresolved{background:var(--red-dim);color:var(--red);border:0.5px solid rgba(255,77,106,.3)}
.edt-match-pill.unresolved::before{background:var(--red)}

/* Item card no wizard de matérias */
.edt-smart-item{background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:0;margin-top:10px;overflow:hidden}
.edt-smart-item.expanded{border-color:var(--blue-dim)}
.edt-smart-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;transition:.15s}
.edt-smart-head:hover{background:rgba(59,139,255,.04)}
.edt-smart-toggle{width:22px;height:22px;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:11px;transition:.2s;flex-shrink:0}
.edt-smart-item.expanded .edt-smart-toggle{transform:rotate(90deg);color:var(--blue)}
.edt-smart-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.edt-smart-display{font-weight:500;color:var(--text);font-size:13.5px;line-height:1.3;word-break:break-word}
.edt-smart-resolved{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.edt-smart-resolved strong{color:var(--text2);font-weight:500}
.edt-smart-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}
.edt-smart-body{padding:12px 14px 14px;border-top:0.5px solid var(--border);background:rgba(8,14,28,.4);display:none}
.edt-smart-item.expanded .edt-smart-body{display:block}

.edt-smart-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.edt-smart-row label{font-size:11px;color:var(--text3);min-width:90px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.edt-smart-row .adm-inline-edit{flex:1;min-width:160px}

.edt-topic-line{display:grid;grid-template-columns:auto 1fr 1fr auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:0.5px dashed rgba(30,46,74,.4)}
.edt-topic-line:last-child{border-bottom:none}
.edt-topic-line input{background:var(--bg2);border:0.5px solid var(--border2);border-radius:6px;padding:5px 8px;color:var(--text);font-size:12px;font-family:'DM Sans',sans-serif;outline:none;min-width:0;width:100%}
.edt-topic-line input:focus{border-color:var(--blue-dim)}
.edt-topic-line .edt-match-pill{font-size:9.5px;padding:2px 6px}
.edt-topic-remove-btn{background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px;line-height:1}
.edt-topic-remove-btn:hover{color:var(--red);background:var(--red-dim)}

.edt-topic-helper{font-size:11px;color:var(--text3);margin:8px 0 4px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.edt-topic-helper strong{color:var(--text2);font-weight:500}

/* Picker dropdown de matéria/conteúdo alternativo */
.edt-picker-wrap{position:relative}
.edt-picker-input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:6px;padding:6px 10px;color:var(--text);font-size:12px;font-family:'DM Sans',sans-serif;outline:none}
.edt-picker-input:focus{border-color:var(--blue-dim)}
.edt-picker-list{position:absolute;top:100%;left:0;right:0;background:var(--bg2);border:0.5px solid var(--border2);border-radius:8px;margin-top:4px;max-height:220px;overflow-y:auto;z-index:30;box-shadow:0 8px 24px rgba(0,0,0,.4);display:none}
.edt-picker-list.show{display:block}
.edt-picker-item{padding:7px 10px;cursor:pointer;font-size:12px;color:var(--text);border-bottom:0.5px solid var(--border);transition:.12s}
.edt-picker-item:last-child{border-bottom:none}
.edt-picker-item:hover{background:var(--bg3);color:var(--blue2)}
.edt-picker-item.empty{color:var(--text3);font-style:italic;cursor:default}
.edt-picker-item.empty:hover{background:transparent;color:var(--text3)}
.edt-picker-item-sub{font-size:10.5px;color:var(--text3);margin-top:2px}

/* Toggle "criar alias ao salvar" */
.edt-alias-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--text3);cursor:pointer;user-select:none;padding:4px 8px;border-radius:6px;background:rgba(59,139,255,.04);border:0.5px solid var(--border2)}
.edt-alias-toggle:hover{color:var(--blue2);border-color:var(--blue-dim)}
.edt-alias-toggle input{accent-color:var(--blue);cursor:pointer}
.edt-alias-toggle.checked{color:var(--blue2);background:var(--blue-glow);border-color:var(--blue-dim)}

/* Review table (passo final) */
.edt-review-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.edt-review-stat{background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:12px}
.edt-review-stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.edt-review-stat-value{font-size:20px;color:var(--text);font-family:'Syne',sans-serif;font-weight:700;margin-top:4px;line-height:1.1}
.edt-review-stat-sub{font-size:11px;color:var(--text3);margin-top:2px}

.edt-review-table{width:100%;border-collapse:collapse;font-size:12.5px;background:var(--bg2);border:0.5px solid var(--border);border-radius:10px;overflow:hidden}
.edt-review-table th{text-align:left;padding:9px 12px;font-size:10.5px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;border-bottom:0.5px solid var(--border);background:var(--bg3)}
.edt-review-table td{padding:9px 12px;border-bottom:0.5px solid var(--border);color:var(--text2);vertical-align:middle}
.edt-review-table tr:last-child td{border-bottom:none}
.edt-review-table tr.row-direct td:first-child{border-left:3px solid var(--green)}
.edt-review-table tr.row-alias td:first-child{border-left:3px solid var(--amber)}
.edt-review-table tr.row-manual td:first-child{border-left:3px solid var(--blue2)}
.edt-review-table tr.row-new td:first-child{border-left:3px solid var(--purple)}
.edt-review-table tr.row-unresolved td:first-child{border-left:3px solid var(--red);background:rgba(255,77,106,.04)}

.edt-review-warn{background:var(--red-dim);border:0.5px solid rgba(255,77,106,.3);color:var(--red);padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:12px;line-height:1.5}
.edt-review-ok{background:var(--green-dim);border:0.5px solid rgba(29,185,122,.3);color:var(--green);padding:10px 14px;border-radius:8px;font-size:12.5px;margin-bottom:12px;line-height:1.5}

/* Preview "como aluno" · modal interno */
.edt-preview-modal{display:none;position:fixed;inset:0;background:rgba(8,14,28,.92);z-index:9700;align-items:center;justify-content:center;padding:20px}
.edt-preview-modal.show{display:flex}
.edt-preview-card{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;width:100%;max-width:600px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 64px rgba(0,0,0,.6)}
.edt-preview-head{padding:16px 20px;border-bottom:0.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}
.edt-preview-eyebrow{font-size:10.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.edt-preview-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text);margin-top:2px;line-height:1.2}
.edt-preview-body{padding:16px 20px;overflow-y:auto;flex:1}
.edt-preview-subject{background:var(--bg3);border:0.5px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.edt-preview-subject-name{font-family:'Syne',sans-serif;font-size:14px;font-weight:600;color:var(--text);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.edt-preview-subject-internal{font-size:10.5px;color:var(--text3);font-family:'DM Sans',sans-serif;font-weight:400;background:var(--bg);padding:2px 7px;border-radius:5px;border:0.5px solid var(--border)}
.edt-preview-topic{font-size:12.5px;color:var(--text2);padding:5px 0 5px 14px;border-left:0.5px dashed var(--border2);margin-bottom:2px;line-height:1.4}
.edt-preview-topic-internal{font-size:10.5px;color:var(--text3);margin-top:1px}
.edt-preview-empty{text-align:center;padding:24px 12px;color:var(--text3);font-size:12.5px;font-style:italic}
.edt-preview-foot{padding:12px 20px;border-top:0.5px solid var(--border);display:flex;justify-content:flex-end}

/* Lista de editais com botão preview */
.edt-list-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

@media(max-width:600px){
  .edt-form-grid{grid-template-columns:1fr}
  .edt-modal-card{max-height:96vh}
  .edt-modal-card.wide{max-width:100%}
  .edt-modal-body{padding:14px 16px}
  .edt-modal-header,.edt-modal-footer{padding:12px 16px}
  .edt-wizard-steps{padding:10px 16px 0}
  .edt-wizard-step{font-size:11px;padding:5px 9px}
  .edt-wizard-step-arrow{display:none}
  .edt-smart-head{grid-template-columns:auto 1fr;gap:8px}
  .edt-smart-actions{grid-column:1/-1;justify-content:flex-end;padding-top:4px;border-top:0.5px dashed var(--border)}
  .edt-topic-line{grid-template-columns:1fr 1fr auto;gap:6px}
  .edt-topic-line .edt-match-pill{grid-column:1/-1;justify-self:start}
  .edt-review-table{font-size:11.5px}
  .edt-review-table th,.edt-review-table td{padding:7px 8px}
}
body.auth-required{min-height:100vh;background:var(--bg2)}
body.auth-required .auth-box{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:380px;max-width:calc(100vw - 32px);padding:18px;cursor:default}
body.auth-required .auth-box.is-collapsed{width:380px;max-width:calc(100vw - 32px);padding:18px}
body.auth-required .auth-box.is-collapsed .auth-body{display:block}
body.auth-required .auth-toggle{display:none}
body.auth-required .auth-head{margin-bottom:14px}
body.auth-required .auth-title{font-size:12px}
body.auth-required .auth-status{max-width:none}
.auth-brand{display:none}
.auth-logo-img{width:52px;height:52px;object-fit:contain;border-radius:12px;border:0.5px solid rgba(59,139,255,.22);box-shadow:0 4px 16px rgba(0,0,0,.12)}
.auth-brand-name{font-family:'Syne',sans-serif;font-size:17px;font-weight:700;color:var(--text);letter-spacing:.01em}
.auth-brand-tagline{font-size:11px;color:var(--text3)}
body.auth-required .auth-brand{display:flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:18px;padding-bottom:16px;border-bottom:0.5px solid var(--border)}
body.auth-ok .auth-box{transform:none}
body.auth-ok .auth-box.is-collapsed{top:14px;right:14px;width:auto;max-width:320px;padding:10px 12px}
body.auth-ok .auth-box.is-collapsed .auth-head{margin-bottom:0;gap:12px}
body.auth-ok .auth-box.is-collapsed .auth-title{font-size:10px;color:var(--text3);letter-spacing:.06em}
body.auth-ok .auth-box.is-collapsed .auth-status{font-size:12px;color:var(--text);max-width:220px;font-weight:500}
body.auth-ok .auth-box.is-collapsed .auth-toggle{flex-shrink:0}
@media(max-width:720px){
  /* Auth-box no mobile: fica fixo no rodapé, ocupa toda largura.
     Pra evitar que sobreponha conteúdo, o .main ganha padding-bottom
     equivalente à altura do auth-box (~76px). */
  .auth-box{top:auto;bottom:8px;right:8px;left:8px;width:auto;padding:8px 10px}
  .auth-box.is-collapsed{left:auto;width:auto}
  body.auth-ok .auth-box.is-collapsed{top:auto;bottom:8px;right:8px;left:8px;max-width:none;padding:8px 10px}
  body.auth-ok .auth-box.is-collapsed .auth-title{font-size:9px}
  body.auth-ok .auth-box.is-collapsed .auth-status{font-size:11px;max-width:none}
  /* Quando a sidebar drawer está aberta, esconde o auth-box pra não vazar atrás dela. */
  body.sidebar-drawer-open .auth-box{display:none}
}

/* P4: esconde controles de dev em produção */
body.is-prod .dev-only{display:none!important}
/* ============================== BLOCO MOBILE/TABLET ============================== */
.mobile-header{display:none}.sidebar-overlay{display:none}
@media(max-width:768px){
.app{grid-template-columns:1fr}
.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:9000;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);height:100vh;height:100dvh;border-right:0.5px solid var(--border2);box-shadow:none}
.sidebar.drawer-open{transform:translateX(0);box-shadow:8px 0 40px rgba(0,0,0,.45)}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(8,14,28,.65);z-index:8999;opacity:0;transition:opacity .28s ease}
.sidebar-overlay.show{display:block;opacity:1}
.mobile-header{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:200;background:var(--bg2);border-bottom:0.5px solid var(--border);padding:10px 14px;min-height:52px}
.hamburger-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:.15s}
.hamburger-btn:hover,.hamburger-btn:active{background:var(--bg3)}
.mobile-header-brand{flex:1;display:flex;align-items:center;justify-content:center}
.mobile-header-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text)}
.mobile-header-spacer{width:34px}
.main{padding:16px 14px 90px 14px}.page-header{margin-bottom:16px}.page-title{font-size:22px}.page-sub{font-size:13px}
.study-shell{grid-template-columns:minmax(0,1fr)}.study-shell>*{min-width:0}
.dash-welcome{padding-right:0;flex-direction:column;gap:14px}.dash-welcome-meta{position:static;margin-top:0;align-self:stretch;align-items:flex-start}.dash-prova-block{text-align:left}
.dash-metrics{grid-template-columns:1fr}.dash-metric + .dash-metric{border-left:none;border-top:0.5px solid var(--border)}
.dash-week-block{grid-template-columns:1fr}.meta-list-wrap{grid-column:auto}
.dash-charts-grid,.dv2-hero-grid,.dv2-rec-grid,.dv2-materias-grid,.dv2-rotina-grid,.dv2-erros-grid{grid-template-columns:1fr}
.stats-grid{grid-template-columns:repeat(2,1fr)}
.dv2-rotina-grid>.dv2-donut-card{grid-column:auto}
.dv2-mat-row{grid-template-columns:1fr 60px 50px;font-size:11px}.dv2-mat-q,.dv2-mat-trend{display:none}
.materias-command-center,.materias-toolbar,.materias-toolbar.v15{grid-template-columns:1fr}
.materia-action-row{align-items:flex-start;flex-direction:column}.materia-action-btn{width:100%}
.materia-mini-stats{grid-template-columns:1fr 1fr}.conteudo-item.v14{grid-template-columns:22px 1fr}.conteudo-study-btn{grid-column:2;width:100%}
.materia-importance-row{grid-template-columns:1fr}.materias-add-btn{width:100%}
.materia-card-v2 .materia-edit-btn{opacity:1;width:30px;height:30px}
.materia-card-v2 .conteudo-item-clean{grid-template-columns:24px 1fr;padding:10px 14px}
.materia-card-v2 .conteudo-checks{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}
.materia-card-v2 .conteudo-study-btn-v2{grid-column:1/-1;opacity:1;width:100%;margin-top:4px}
.materia-card-v2 .materia-action-btn-inline{padding:8px 14px;font-size:13px}
#materias-full .materia-card-v2 .prog-track{height:5px}
#materias-full .materia-card-v2 .materia-header{padding:8px 12px 6px 14px}
#materias-full .materia-card-v2 .materia-progress-zone{padding:0 12px 8px 14px}
.ciclo-main-grid{grid-template-columns:1fr}.ciclo-dist-panel{order:-1}
.cycle-stack{padding-left:34px}.cycle-stack::before{left:13px}.cycle-dot{left:-22px}
.cycle-item,.cycle-item.today-card{grid-template-columns:1fr}.cycle-action,.cycle-item.today-card .today-actions{grid-column:1}.cycle-topic{white-space:normal}
.daily-focus-grid{grid-template-columns:1fr}.daily-focus-card{align-items:flex-start}.daily-focus-number{text-align:left}
.sessao-card{grid-template-columns:auto 1fr auto!important;gap:10px}.ses2-card-dur{display:none}.ses2-stats{gap:10px}.ses2-stat{min-width:50px}.ses2-stat-value{font-size:15px}.ses2-stat-period{display:none}
.ses2-filters{grid-template-columns:1fr;gap:8px}.ses2-period-pills{grid-column:auto}
.erros-form-v2 .erros-form-grid-2{grid-template-columns:1fr}.revisao-dash-grid{grid-template-columns:1fr 1fr}
.study-hero{flex-direction:column;align-items:flex-start;padding:16px 18px}.study-hero-icon{width:48px;height:48px;font-size:24px}.study-hero-title{font-size:18px;white-space:normal}.study-hero-actions{flex-direction:row;align-self:stretch;justify-content:flex-end}
.cad2-fs-header{grid-template-columns:auto 1fr;gap:10px;padding:12px 16px}.cad2-fs-shortcuts{display:none}
.cad2-hero{grid-template-columns:1fr}.cad2-hero-stats{grid-template-columns:repeat(2,1fr)}.cad2-toolbar{grid-template-columns:1fr 1fr}.cad2-add-btn{grid-column:1/-1}.cad2-cam-pills{grid-column:1/-1}
.ob-card{max-width:95vw!important;margin:0 auto;padding:20px 16px!important}
.ob-disc-manual-row{grid-template-columns:1fr}.ob-disc-add{width:100%}.ob-manual-content-row{grid-template-columns:1fr}.ob-manual-btn{width:100%}
.dash-first-steps{flex-direction:column;align-items:flex-start;gap:12px}.dash-first-steps-icon{width:40px;height:40px;font-size:26px}
.fc-review-card{max-width:100%}.fc-card-flipper{min-height:340px}.fc-card-side{padding:20px 18px}
.materia-manager-modal,.rcm-overlay,.commit-modal,.closure-modal,.finish-modal{padding:10px}
.ses2-edit-card,.tut-concept-modal-card{max-width:100%;border-radius:12px}
.auth-box{z-index:300}
.toast,.toast-undo{bottom:70px;right:12px;left:12px;max-width:none}
.xp-levelup-toast{bottom:70px;right:12px;max-width:calc(100vw - 24px)}.checkpoint-popup{bottom:70px;right:12px;max-width:calc(100vw - 24px)}
.nav-item{padding:12px 14px;min-height:44px}.brand-cta{padding:12px 10px;min-height:44px;font-size:13px}.cfg-btn{min-height:44px}
button,.materia-action-btn,.materia-action-btn-inline,.btn-add,.fase-pill{min-height:40px}
/* 🔴 22/08/2026 · BOTÃO-ÍCONE TEM TAMANHO PRÓPRIO.
   A regra logo acima dá 40px de alvo de toque — boa intenção — mas `min-height`
   VENCE `height`, então cada botão pequeno era esticado. O "i" do XP (13x13,
   redondo) virava uma ELIPSE de 13x40. Levantamento cruzando <button> com o CSS:
   18 botões-ícone deformados, 3 deles em elipse.
   Quem precisa de área de toque é o botão de TEXTO, e esses continuam com os 40px. */
  .xp-info-btn,.qst-chip-x,.rv-swatch,.ob-content-del,.mq-dash-min,.auth-toggle,
  .ob-selected-row-btn,.ses2-action-btn,.qst-report-close,.ses2-edit-close,
  .cad2-modal-close,.ob-disc-editor-close,.tut-concept-modal-close,.ob-disc-edit-btn,
  .qst-adm-modal-close,.qcad-menu,.qst-runner-exit,.p360-recolher,
  .p360-perf-x,.p360-perf-av{min-height:0}
  /* o menor de todos (13px) ganha área de toque invisível em volta · fica
     redondo aos olhos e ~37px pro dedo, sem deformar nada. É isolado na barra
     de XP, então a área não encosta em vizinho nenhum. */
  .xp-info-btn{position:relative}
  .xp-info-btn::after{content:'';position:absolute;inset:-12px}
}
/* ===================== BOTTOM NAV MOBILE (Fase 2 UX) =====================
   Barra fixa no rodapé do celular com o essencial em 1 toque: Início / Estudar /
   Matérias / Menu (abre o drawer completo). Só aparece logado e fora do
   onboarding/modo foco. z-index 8000 (abaixo do drawer 9000 e dos modais). */
.bottom-nav{display:none}
@media(max-width:768px){
  body.auth-ok .bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:8000;background:var(--bg2);border-top:0.5px solid var(--border2);box-shadow:0 -4px 18px rgba(0,0,0,.4)}
  body.is-onboarding .bottom-nav,body.theater-mode .bottom-nav,body.auth-blocked .bottom-nav{display:none!important}
  .bottom-nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:0;cursor:pointer;padding:7px 4px;color:var(--text3);font-family:inherit;font-size:10px;font-weight:600;min-height:56px;transition:.12s;-webkit-tap-highlight-color:transparent}
  .bottom-nav-btn svg{width:20px;height:20px;stroke-width:1.7}
  .bottom-nav-btn.active{color:var(--blue)}
  .bottom-nav-btn:active{background:var(--bg3)}
  /* abre espaço pro conteúdo não ficar escondido atrás da barra */
  .main{padding-bottom:80px!important}
  body.study-dock-visible .main{padding-bottom:150px!important}
  /* a barra do cronômetro sobe pra cima da bottom-nav */
  .study-dock{bottom:60px}
  /* toasts/popups acima da bottom-nav */
  .toast,.toast-undo,.xp-levelup-toast,.checkpoint-popup{bottom:78px}
}
/* ===== Fase 2 UX: modais respeitam a altura REAL da tela =====
   dvh (dynamic viewport height) desconta o teclado no celular, então o botão de
   ação não fica mais escondido atrás dele. Navegador sem suporte a dvh ignora
   esta linha e mantém o max-height em vh original (fallback automático). */
.commit-box,.closure-box,#rebaixar-modal .commit-box,.cam-edit-box,.rcm-box,.cfg-box,.ses2-edit-card,.qst-report-card,.cad2-modal-card,.edt-modal-card,.edt-preview-card{max-height:90dvh}
.qst-adm-modal-card{max-height:calc(100dvh - 48px)}
.materia-manager-box{max-height:90vh;max-height:90dvh;overflow-y:auto}
/* ===== Fase 2 UX: filtros colapsáveis "Filtrar ▾" (SÓ no celular) =====
   No desktop os botões ficam ocultos e os filtros aparecem normalmente. */
.materias-filter-toggle{display:none}
@media(max-width:768px){
  .materias-filter-toggle{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:12px 14px;color:var(--text);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .materias-filter-toggle .mft-arrow{color:var(--text3);font-size:11px}
  .materias-toolbar.v15 #materias-status-filter,.materias-toolbar.v15 #materias-sort-filter{display:none}
  .materias-toolbar.v15.filters-open #materias-status-filter,.materias-toolbar.v15.filters-open #materias-sort-filter{display:block}
}
@media(min-width:769px) and (max-width:1024px){.sidebar{width:200px}.app{grid-template-columns:200px 1fr}.main{padding:24px 20px}.study-shell{grid-template-columns:1fr 260px}.dash-charts-grid,.stats-grid{grid-template-columns:1fr}.dv2-hero-grid{grid-template-columns:1fr}}

/* ===================== P5: TIMER GAP MODAL ===================== */
.gap-modal{position:fixed;inset:0;background:rgba(8,14,28,.92);display:none;align-items:center;justify-content:center;z-index:400;padding:20px}
.gap-modal.show{display:flex}
.gap-modal-card{background:linear-gradient(180deg,#0F1E35,#0D1526);border:0.5px solid rgba(240,165,0,.35);border-radius:14px;padding:24px;max-width:460px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.gap-modal-icon{font-size:32px;margin-bottom:10px}
.gap-modal-title{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);margin-bottom:8px}
.gap-modal-sub{font-size:13px;color:var(--text2);line-height:1.5;margin-bottom:18px}
.gap-modal-detail{background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:10px 12px;font-size:12px;color:var(--text2);margin-bottom:18px;line-height:1.6}
.gap-modal-detail strong{color:var(--amber)}
.gap-modal-actions{display:flex;flex-direction:column;gap:8px}
.gap-btn{background:var(--bg3);border:0.5px solid var(--border2);color:var(--text);border-radius:8px;padding:11px 14px;font-size:13px;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;text-align:left}
.gap-btn:hover{background:var(--bg4);border-color:var(--blue-dim)}
.gap-btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}
.gap-btn.primary:hover{background:var(--blue2)}
.gap-btn-label{font-weight:600;margin-bottom:2px;display:block}
.gap-btn-hint{font-size:11px;color:var(--text3);display:block}
.gap-btn.primary .gap-btn-hint{color:rgba(255,255,255,.75)}

/* ===================== P6: SESSION SUMMARY OVERLAY ===================== */
.session-summary{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(120px);background:linear-gradient(135deg,#0F2450,#0A1A38);border:0.5px solid rgba(59,139,255,.35);border-radius:14px;padding:16px 20px;z-index:9994;box-shadow:0 20px 60px rgba(0,0,0,.5);min-width:340px;max-width:520px;opacity:0;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s ease;pointer-events:none}
.session-summary.show{transform:translateX(-50%) translateY(0);opacity:1;pointer-events:auto}
.session-summary-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.session-summary-icon{width:28px;height:28px;border-radius:8px;background:var(--blue);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.session-summary-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text)}
.session-summary-close{margin-left:auto;background:transparent;border:none;color:var(--text3);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}
.session-summary-close:hover{color:var(--text)}
.session-summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:10px;margin-bottom:8px}
.session-summary-stat{text-align:center}
.session-summary-stat-value{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text);line-height:1}
.session-summary-stat-value.xp{color:var(--blue2)}
.session-summary-stat-value.acerto{color:var(--green)}
.session-summary-stat-value.streak{color:var(--amber)}
.session-summary-stat-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-top:3px;font-weight:600}
.session-summary-levelup{background:rgba(240,165,0,.12);border:0.5px solid rgba(240,165,0,.4);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--text);text-align:center;margin-top:8px}
.session-summary-levelup strong{color:#a78bfa}

/* ===================== P7: FIRST STEPS CARD ===================== */
.dash-first-steps{background:linear-gradient(135deg,rgba(29,185,122,.08),rgba(59,139,255,.06));border:0.5px solid rgba(29,185,122,.25);border-radius:14px;padding:18px 22px;margin:14px 0;display:none;align-items:center;gap:18px}
.dash-first-steps.show{display:flex}
.dash-first-steps-icon{font-size:32px;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(29,185,122,.12);border-radius:12px;border:0.5px solid rgba(29,185,122,.25)}
.dash-first-steps-content{flex:1;min-width:0}
.dash-first-steps-eyebrow{font-size:9px;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}
.dash-first-steps-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px}
.dash-first-steps-sub{font-size:12px;color:var(--text2);line-height:1.5}
.dash-first-steps-progress{display:flex;gap:6px;margin-top:8px}
.dash-fs-step{flex:1;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;position:relative}
.dash-fs-step.done{background:var(--green)}
.dash-fs-step-label{font-size:10px;color:var(--text3);margin-top:4px;text-align:center}
.dash-fs-step-label.done{color:var(--green)}
@media(max-width:640px){.dash-first-steps{flex-direction:column;align-items:flex-start;gap:12px}.dash-first-steps-icon{width:40px;height:40px;font-size:26px}}


/* ═══════════════════════════════════════
   SIMULADOS & CALCULADORA 360
═══════════════════════════════════════ */
.sim-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.sim-btn{background:var(--blue);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.sim-btn:hover{background:var(--blue2);transform:translateY(-1px)}
.sim-btn.secondary{background:transparent;color:var(--text2);border:0.5px solid var(--border2)}
.sim-btn.secondary:hover{background:var(--bg3);color:var(--text);transform:none}
.sim-btn.danger{background:var(--red-dim);color:var(--red);border:0.5px solid rgba(255,77,106,.3)}
.sim-btn.danger:hover{background:rgba(255,77,106,.18);transform:none}
.sim-empty{text-align:center;padding:48px 24px;color:var(--text3);font-size:14px;background:var(--bg2);border:0.5px dashed var(--border2);border-radius:12px}
.sim-empty-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text2);margin-bottom:6px}
.sim-list{display:flex;flex-direction:column;gap:10px}
.sim-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:12px;overflow:hidden;transition:.15s}
.sim-card:hover{border-color:var(--border2)}
.sim-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;gap:12px}
.sim-card-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1}
.sim-card-num{width:32px;height:32px;border-radius:50%;background:var(--blue-glow);border:0.5px solid var(--blue-dim);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:13px;font-weight:700;color:var(--blue2);flex-shrink:0}
.sim-card-info{min-width:0}
.sim-card-name{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sim-card-date{font-size:11px;color:var(--text3);margin-top:1px}
.sim-card-pills{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap}
.sim-pill{font-size:11px;padding:3px 8px;border-radius:6px;background:var(--bg3);color:var(--text2);border:0.5px solid var(--border);white-space:nowrap}
.sim-pill.green{background:var(--green-dim);color:var(--green);border-color:rgba(29,185,122,.25)}
.sim-pill.amber{background:var(--amber-dim);color:var(--amber);border-color:rgba(240,165,0,.25)}
.sim-pill.blue{background:var(--blue-glow);color:var(--blue2);border-color:var(--blue-dim)}
.sim-card-body{padding:0 16px 14px;border-top:0.5px solid var(--border)}
.sim-card-body.hidden{display:none}
.sim-mat-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12px}
.sim-mat-table th{text-align:left;color:var(--text3);font-weight:600;padding:5px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-bottom:0.5px solid var(--border)}
.sim-mat-table td{padding:7px 8px;color:var(--text2);border-bottom:0.5px solid rgba(30,46,74,.4)}
.sim-mat-table tr:last-child td{border-bottom:none}
.sim-mat-pct{font-weight:600;font-size:12px}
.sim-mat-pct.ok{color:var(--green)}.sim-mat-pct.mid{color:var(--amber)}.sim-mat-pct.bad{color:var(--red)}
.sim-card-actions{display:flex;gap:6px;margin-top:12px;padding-top:10px;border-top:0.5px solid var(--border)}
/* Médias globais banner */
.sim-medias{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:20px}
.sim-media-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:10px;padding:12px 14px;text-align:center}
.sim-media-val{font-family:'Syne',sans-serif;font-size:22px;font-weight:700;color:var(--blue2);line-height:1.1}
.sim-media-lbl{font-size:11px;color:var(--text3);margin-top:2px}
/* Ranking matérias */
.sim-rank{margin-top:20px}
.sim-rank-title{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);margin-bottom:10px}
.sim-rank-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:0.5px solid rgba(30,46,74,.4)}
.sim-rank-row:last-child{border-bottom:none}
.sim-rank-mat{flex:1;font-size:13px;color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sim-rank-bar-wrap{width:120px;height:5px;background:var(--bg4);border-radius:5px;overflow:hidden;flex-shrink:0}
.sim-rank-bar{height:100%;border-radius:5px;transition:width .4s cubic-bezier(.16,1,.3,1)}
.sim-rank-pct{font-size:12px;font-weight:600;min-width:36px;text-align:right;flex-shrink:0}
/* Modal de novo simulado */
.sim-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9000;align-items:center;justify-content:center}
.sim-modal-overlay.open{display:flex}
.sim-modal{background:var(--bg2);border:0.5px solid var(--border2);border-radius:14px;padding:22px 24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;position:relative}
.sim-modal-title{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text);margin-bottom:4px}
.sim-modal-sub{font-size:12px;color:var(--text3);margin-bottom:18px}
.sim-field{margin-bottom:12px}
.sim-field label{display:block;font-size:11px;color:var(--text2);margin-bottom:4px;font-weight:500}
.sim-field input,.sim-field select{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:9px 11px;font-size:13px;color:var(--text);outline:none;transition:border-color .15s}
.sim-field input:focus,.sim-field select:focus{border-color:var(--blue-dim)}
.sim-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sim-field-row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.sim-modal-section{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin:14px 0 8px}
.sim-mat-entries{display:flex;flex-direction:column;gap:6px}
.sim-mat-entry{background:var(--bg3);border:0.5px solid var(--border);border-radius:8px;padding:10px 12px}
.sim-mat-entry-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.sim-mat-entry-name{flex:1;font-size:13px;font-weight:600;color:var(--text)}
.sim-mat-remove{background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:0;transition:.15s}
.sim-mat-remove:hover{color:var(--red)}
.sim-modal-foot{display:flex;gap:8px;margin-top:18px;padding-top:14px;border-top:0.5px solid var(--border)}
/* Calculadora view */
.calc-view-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
@media(max-width:700px){.calc-view-grid{grid-template-columns:1fr}}
.calc-section-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.calc-field{margin-bottom:10px}
.calc-field label{display:block;font-size:11px;color:var(--text2);margin-bottom:4px}
.calc-field input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:8px;padding:8px 11px;font-size:13px;color:var(--text);outline:none;transition:border-color .15s}
.calc-field input:focus{border-color:var(--blue-dim)}
.calc-field input[readonly]{color:var(--text2);cursor:default}
.calc-divider{border:none;border-top:0.5px solid var(--border);margin:12px 0}
.calc-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.calc-metric{background:var(--bg3);border:0.5px solid var(--border);border-radius:8px;padding:10px 12px;text-align:center}
.calc-metric-val{font-family:'Syne',sans-serif;font-size:20px;font-weight:700;color:var(--blue2);line-height:1.1}
.calc-metric-lbl{font-size:10px;color:var(--text3);margin-top:2px}
.calc-result{border-radius:10px;border:0.5px solid var(--border);padding:14px 16px;transition:border-color .2s,background .2s}
.calc-result.ok{background:var(--green-dim);border-color:rgba(29,185,122,.32)}
.calc-result.warn{background:var(--amber-dim);border-color:rgba(240,165,0,.3)}
.calc-result.danger{background:var(--red-dim);border-color:rgba(255,77,106,.3)}
.calc-result.idle{background:var(--bg3);border-color:var(--border)}
.calc-result-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.calc-result-kicker{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text3)}
.calc-result-kicker.ok{color:var(--green)}.calc-result-kicker.warn{color:var(--amber)}.calc-result-kicker.danger{color:var(--red)}
.calc-result-main{font-family:'Syne',sans-serif;font-size:14px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:8px}
.calc-result-pills{display:flex;gap:6px;flex-wrap:wrap}
.calc-result-pill{font-size:11px;padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.04);color:var(--text2);border:0.5px solid var(--border2)}
.calc-result-warn{font-size:11px;margin-top:8px;padding-top:8px;border-top:0.5px solid rgba(255,255,255,.06);color:var(--text2);line-height:1.5}
.calc-source-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;padding:3px 8px;border-radius:6px;background:var(--green-dim);color:var(--green);border:0.5px solid rgba(29,185,122,.25);margin-bottom:14px}
.calc-source-badge.manual{background:var(--bg3);color:var(--text3);border-color:var(--border)}
.sim-filter-panel{background:var(--bg2);border:0.5px solid var(--border2);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.sim-filter-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sim-filter-panel-title{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.sim-filter-actions{display:flex;gap:8px}
.sim-filter-link{background:none;border:none;color:var(--blue2);font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;padding:0}
.sim-filter-link:hover{text-decoration:underline}
.sim-filter-opt{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;cursor:pointer;transition:.12s;border:0.5px solid transparent}
.sim-filter-opt:hover{background:var(--bg3)}
.sim-filter-opt.checked{background:var(--blue-glow);border-color:var(--blue-dim)}
.sim-filter-check{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.12s}
.sim-filter-opt.checked .sim-filter-check{background:var(--blue);border-color:var(--blue)}
.sim-filter-opt-name{flex:1;font-size:13px;color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sim-filter-opt-meta{font-size:11px;color:var(--text3);flex-shrink:0}
.desemp-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:14px;padding:18px 20px}
.desemp-card-title{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text);margin-bottom:14px}

/* ── Evolução nos simulados (aba Simulados) e cadernos de simulado (aba Questões) ── */
.simx-evo{background:var(--bg2);border:0.5px solid var(--border);border-radius:13px;padding:16px 18px;margin-bottom:16px}
.simx-evo-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.simx-evo-title{font-family:'Syne',sans-serif;font-weight:600;font-size:15px;color:var(--text)}
.simx-evo-sub{font-size:11.5px;color:var(--text3)}
.simx-evo-chart{height:224px;position:relative;margin-top:10px}
.simx-evo-chart svg{width:100%;height:100%;display:block;overflow:visible}
.simx-evo-leg{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;color:var(--text2)}
.simx-evo-leg i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.simx-evo-leg .dash{height:0;border-top:2px dashed currentColor;opacity:.75}
.simx-evo-empty{font-size:12.5px;color:var(--text3);padding:6px 0 2px}
.qst-sim-wrap{margin-bottom:16px}
.qst-sim-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:9px}
.qst-sim-title{font-family:'Syne',sans-serif;font-weight:600;font-size:14px;color:var(--text)}
.qst-sim-sub{font-size:11.5px;color:var(--text3)}
.qst-sim-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.qst-sim-card{text-align:left;background:var(--bg2);border:0.5px solid var(--border);border-radius:11px;padding:12px 14px;cursor:pointer;transition:border-color .14s,transform .14s;font:inherit;color:inherit}
.qst-sim-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}
.qst-sim-card:disabled{cursor:not-allowed;opacity:.62}
.qst-sim-card .n{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text3)}
.qst-sim-card .t{font-size:13px;font-weight:600;color:var(--text);margin-top:3px;line-height:1.35}
.qst-sim-card .s{font-size:11.5px;color:var(--text3);margin-top:5px}
.qst-sim-card .s.ok{color:#2dd4bf}

/* ── HIERARQUIA DE LEITURA DA QUESTÃO ────────────────────────────────────────
   Antes o texto de apoio, o comando e o item saíam com o MESMO tamanho, a
   mesma cor e o mesmo peso, num bloco só. O aluno não enxergava onde acabava
   o que ele lê uma vez e começava o que ele precisa julgar.

   Cada parte tem uma função de leitura diferente, então cada uma ganha um
   peso diferente:
     apoio   · material de consulta: recuado, menor, entrelinha mais fechada
     comando · instrução: discreto, não compete com o item
     item    · o que se responde: maior e com mais contraste

   🔴 A entrelinha do apoio é MENOR de propósito. O que estava atrapalhando
   não era falta de espaço, era espaço demais e igual em tudo: parágrafo
   colado no seguinte e linha solta dentro do parágrafo pareciam a mesma coisa. */
.qst-runner-enunciado.qst-separado{white-space:normal;padding-top:22px}
.qst-apoio{position:relative;background:rgba(255,255,255,.028);border-left:2px solid var(--blue2,#a78bfa);
  border-radius:0 10px 10px 0;padding:14px 18px 13px;margin:2px 0 16px;
  font-size:14px;line-height:1.58;color:var(--text2,#c7cbd6);font-weight:400;white-space:pre-wrap}
.qst-apoio-rot{font-family:'Syne',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--blue2,#a78bfa);opacity:.85;margin-bottom:7px}
.qst-comando{font-size:13.5px;line-height:1.5;color:var(--text2,#9aa1b1);font-weight:500;
  margin:0 0 12px;padding-left:11px;border-left:2px solid rgba(255,255,255,.10);white-space:pre-wrap}
.qst-item{font-size:16px;line-height:1.62;color:#fff;font-weight:500;white-space:pre-wrap}
#view-questoes.qst-light .qst-apoio{background:rgba(26,34,54,.035);color:#3d4557}
#view-questoes.qst-light .qst-comando{color:#5b6478;border-left-color:rgba(26,34,54,.14)}
#view-questoes.qst-light .qst-item{color:#1A2236}
@media(max-width:640px){
  .qst-apoio{font-size:13.5px;padding:12px 14px 11px}
  .qst-item{font-size:15.5px}
}
/* o tamanho de fonte que o aluno escolhe continua mandando no ITEM */
body[data-qfonte="1"] .qst-item{font-size:17px}
body[data-qfonte="2"] .qst-item{font-size:18.5px}
body[data-qfonte="-1"] .qst-item{font-size:15px}

/* Com a questão separada, o rótulo da caixa externa deixa de ser "ENUNCIADO":
   ela passa a conter três coisas, e o nome antigo passaria a mentir. */
.qst-runner-enunciado.qst-separado::before{content:'QUESTÃO'}
/* o item é o que se responde: um fio à esquerda ancora o olho nele */
.qst-runner-enunciado.qst-separado .qst-item{padding-left:11px;
  border-left:2px solid var(--blue);}
