/* CSS enxuto: somente seletores usados pelo núcleo reestruturado. */

.tree-group{border-bottom: 1px solid var(--border);}
.tree-header{padding: 15px 20px; font-weight: 700; background: var(--surface-hover); cursor: pointer; display: flex; align-items: center; gap: 10px;}
.tree-items{padding: 10px 20px 20px 45px; display: none;}
.tree-item{display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 0.9rem;}
.cbt-container{background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); display: none; margin-top: 20px;}
.cbt-header{background: var(--bg-sidebar); color: white; padding: 20px 30px; display: flex; justify-content: space-between; align-items: center;}
.cbt-timer{font-family: "Fira Code", monospace; font-size: 1.4rem; font-weight: 700; background: rgba(255,255,255,0.1); padding: 8px 15px; border-radius: 8px;}
.cbt-body{display: grid; grid-template-columns: 1fr 300px; min-height: 500px;}
.cbt-question-area{padding: 40px; border-right: 1px solid var(--border);}
.cbt-sidebar{padding: 30px; background: var(--surface-hover);}
.cbt-grid{display:flex; flex-direction:column; gap:12px; margin-bottom:24px;}
.cbt-grid-btn{aspect-ratio: 1; border-radius: 8px; border: 1px solid var(--border); font-weight: 700; cursor: pointer; transition: background-color 0.2s;}
.cbt-grid-btn.answered{background: var(--brand-primary); color: white; border-color: var(--brand-primary);}
.cbt-grid-btn.current{box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.4); border-color: var(--brand-primary);}
.folha-container{display: flex; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); position: relative;}
.folha-numeracao{width: 40px; background: var(--surface-hover); border-right: 1px solid var(--border); text-align: center; padding-top: 10px; color: var(--text-muted); font-family: "Fira Code", monospace; font-size: 0.85rem; line-height: 35px; user-select: none;}
.folha-textarea{flex: 1; border: none; padding: 8px 15px 10px 15px; font-size: 16px; font-family: "Inter", sans-serif; line-height: 35px; background-image: repeating-linear-gradient(transparent, transparent 34px, #cbd5e1 34px, #cbd5e1 35px); background-position: 0 8px; background-attachment: local; resize: none; overflow: hidden; height: 1068px; color: var(--text-title); word-break: break-word; hyphens: auto;}
.folha-textarea:focus{outline: none;}
.folha-fantasma{position: absolute; top: 0; left: 40px; right: 0; bottom: 0; padding: 8px 15px 10px 15px; font-size: 16px; font-family: "Inter", sans-serif; line-height: 35px; pointer-events: none; white-space: pre-wrap; color: transparent; overflow: hidden; z-index: 1; word-break: break-word; hyphens: auto;}
.folha-fantasma span.ghost-sugestao{color: #10b981; font-weight: 600; font-style: italic; pointer-events: none; animation: brilhoMagico 2s infinite ease-in-out;}
@keyframes brilhoMagico{0% { text-shadow: 0 0 8px rgba(16, 185, 129, 0.3); opacity: 0.6; } 50% { text-shadow: 0 0 18px rgba(16, 185, 129, 0.9); opacity: 1; } 100% { text-shadow: 0 0 8px rgba(16, 185, 129, 0.3); opacity: 0.6; }}
#texto-redacao{z-index: 2; position: relative; background-color: transparent;}
.erro-marcacao{background-color: rgba(239, 68, 68, 0.2); color: var(--brand-danger); border-bottom: 2px solid var(--brand-danger); cursor: help; padding: 0 3px; border-radius: 4px; font-weight: 600; transition: background-color 0.2s; position: relative;}
.erro-marcacao:hover{background-color: rgba(239, 68, 68, 0.4);}




@media (max-width: 768px){.cbt-body{grid-template-columns: 1fr;}
.cbt-question-area{border-right: none; border-bottom: 1px solid var(--border); padding: 20px;}}




@keyframes pulse{0%, 100% { transform: scale(1); }
    50% { transform: scale(1.3); color: #fbbf24; }}
#dashboard .card{transition: all 0.3s ease;}
#dashboard .card:hover{transform: translateY(-2px);
    box-shadow: var(--shadow-lg);}
#dash-cards-container .card{background: var(--surface);
    border-radius: var(--radius);
    border: 1px solid var(--border);
    transition: all 0.3s ease;}
#dash-cards-container .card:hover{transform: translateY(-3px);
    box-shadow: var(--shadow-lg);}
#dash-disciplinas-container .card{background: var(--surface);
    border-radius: var(--radius);
    border: 1px solid var(--border);}
#dash-criticos-container .card,
#dash-evolucao-container .card{background: var(--surface);
    border-radius: var(--radius);
    border: 1px solid var(--border);
    height: 100%;}
.cbt-top-navigation{display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    margin-bottom: 20px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface-hover);}
.cbt-top-navigation:last-child{margin-top: 24px; margin-bottom: 0;}
.cbt-top-navigation > span{color: var(--text-muted); font-size: .9rem;}
.cbt-top-navigation > span strong{color: var(--text-title);}
.cbt-top-navigation button:disabled{opacity: .38; cursor: not-allowed;}
.question-statement{margin: 24px 0;
    color: var(--text-title);
    font-size: 1.08rem;
    line-height: 1.75;
    font-weight: 560;}
.answer-buttons{display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 24px 0;}
.answer-btn{min-height: 58px;
    padding: 12px 16px;
    border: 2px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    color: var(--text-title);
    font-weight: 800;
    cursor: pointer;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;}
.answer-btn:hover{transform: translateY(-1px);}
.answer-btn span{display: inline-grid; place-items: center; width: 28px; height: 28px; margin-right: 7px; border-radius: 50%; background: var(--surface-hover);}
.answer-btn.certo.selected{border-color: var(--brand-success); background: rgba(16,185,129,.12); color: var(--brand-success);}
.answer-btn.errado.selected{border-color: var(--brand-danger); background: rgba(239,68,68,.12); color: var(--brand-danger);}
.answer-btn.branco.selected{border-color: var(--text-muted); background: rgba(100,116,139,.12); color: var(--text-main);}
.confidence-row{margin-top: 22px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface-hover);}
.confidence-row > label{display: block; margin-bottom: 12px; color: var(--text-title); font-weight: 750;}
.confidence-options{display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;}
.confidence-btn{display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 9px 10px;
    border: 2px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    color: var(--text-main);
    font-weight: 700;
    cursor: pointer;
    opacity: .78;
    transition: opacity .15s ease, transform .15s ease, box-shadow .15s ease, border-color .15s ease;}
.confidence-btn:hover{opacity: 1; transform: translateY(-1px);}
.confidence-btn.selected{opacity: 1; box-shadow: 0 0 0 3px rgba(255,255,255,.06);}
.cbt-grid-btn.answered{color: #fff;}
.cbt-grid-btn.correct{background: var(--brand-success) !important; color: #fff !important; border-color: var(--brand-success) !important;}
.cbt-grid-btn.wrong{background: var(--brand-danger) !important; color: #fff !important; border-color: var(--brand-danger) !important;}
.cbt-grid-btn.blank{background: #64748b !important; color: #fff !important; border-color: #64748b !important;}
.cbt-grid-btn.current{outline: 3px solid rgba(255,255,255,.88); outline-offset: 2px;}
.confidence-legend{display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 14px; font-size: .75rem;}
.confidence-legend span{display: flex; align-items: center; gap: 6px; padding: 6px 8px; border-radius: 8px; background: var(--surface); border: 1px solid var(--border);}
.blank-recovery-coach{display: flex;
    gap: 14px;
    margin: 16px 0 22px;
    padding: 16px;
    border: 1px solid rgba(245,158,11,.45);
    border-left: 5px solid #f59e0b;
    border-radius: 12px;
    background: rgba(245,158,11,.09);}
.blank-recovery-coach > i{color: #f59e0b; font-size: 1.35rem; margin-top: 3px;}
.blank-recovery-coach strong{color: var(--text-title);}
.blank-recovery-coach p{margin: 5px 0 8px; color: var(--text-main);}
.blank-recovery-coach details{color: var(--text-muted);}
.blank-recovery-coach summary{cursor: pointer; font-weight: 700; color: #d97706;}
.confidence-result-grid{display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin: 18px 0;}
.confidence-result{display: flex; align-items: center; justify-content: center; gap: 7px; padding: 10px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-hover); font-size: .85rem;}
.post-exam-lab{display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 22px 0;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid rgba(99,102,241,.35);
    background: linear-gradient(135deg, rgba(59,130,246,.09), rgba(139,92,246,.09));}
.post-exam-lab h3{margin: 4px 0 6px; color: var(--text-title);}
.post-exam-lab p{margin: 0; color: var(--text-muted); max-width: 680px;}
.post-exam-actions{display: flex; flex-direction: column; gap: 10px; min-width: 260px;}
.validation-warning, .bank-warning{color: #d97706;}
.validation-warning{padding: 12px; margin-bottom: 12px; border-radius: 10px; background: rgba(245,158,11,.1); border: 1px solid rgba(245,158,11,.35);}
.bank-lot-invalid{opacity: .75;}
@media (max-width: 900px){.confidence-options, .confidence-result-grid{grid-template-columns: 1fr 1fr;}
.post-exam-lab{flex-direction: column; align-items: stretch;}
.post-exam-actions{min-width: 0;}}
@media (max-width: 640px){.answer-buttons{grid-template-columns: 1fr;}
.confidence-options{grid-template-columns: 1fr;}
.cbt-top-navigation{position: sticky; top: 0; z-index: 5;}}

/* Popup de contagem regressiva do cronograma oficial */


/* Patch 008 — grelha agrupada pela ordem oficial do edital */
.cbt-sidebar{
    align-self:start;
    position:sticky;
    top:0;
    max-height:calc(100vh - 118px);
    overflow-y:auto;
}
.cbt-grid-heading{margin-bottom:14px;}
.cbt-grid-heading h4{margin:0;color:var(--text-title);font-size:.95rem;}
.cbt-grid-heading p{margin:3px 0 0;color:var(--text-muted);font-size:.72rem;line-height:1.35;}
.cbt-grid-group{
    --group-accent:#64748b;
    --group-tint:rgba(100,116,139,.08);
    --group-button:rgba(100,116,139,.13);
    --group-border:rgba(100,116,139,.32);
    padding:8px;
    border:1px solid var(--group-border);
    border-left:4px solid var(--group-accent);
    border-radius:11px;
    background:var(--group-tint);
}
.cbt-grid-group-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 1px 7px;}
.cbt-grid-group-title{min-width:0;color:var(--text-title);font-size:.69rem;font-weight:850;line-height:1.2;text-transform:uppercase;letter-spacing:.025em;}
.cbt-grid-group-range{flex:0 0 auto;padding:2px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--group-border);color:var(--group-accent);font-size:.64rem;font-weight:850;}
.cbt-grid-group-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;}
.cbt-grid-group .cbt-grid-btn:not(.answered):not(.correct):not(.wrong):not(.blank){background:var(--group-button);border-color:var(--group-border);color:var(--text-title);}
.cbt-grid-group .cbt-grid-btn:hover{border-color:var(--group-accent);}
.cbt-grid-group.group-tone-0{--group-accent:#2563eb;--group-tint:rgba(37,99,235,.075);--group-button:rgba(37,99,235,.13);--group-border:rgba(37,99,235,.30);}
.cbt-grid-group.group-tone-1{--group-accent:#7c3aed;--group-tint:rgba(124,58,237,.075);--group-button:rgba(124,58,237,.13);--group-border:rgba(124,58,237,.30);}
.cbt-grid-group.group-tone-2{--group-accent:#0f766e;--group-tint:rgba(15,118,110,.075);--group-button:rgba(15,118,110,.13);--group-border:rgba(15,118,110,.30);}
.cbt-grid-group.group-tone-3{--group-accent:#b45309;--group-tint:rgba(180,83,9,.075);--group-button:rgba(180,83,9,.13);--group-border:rgba(180,83,9,.30);}
.cbt-grid-group.group-tone-4{--group-accent:#be123c;--group-tint:rgba(190,18,60,.075);--group-button:rgba(190,18,60,.13);--group-border:rgba(190,18,60,.30);}
.cbt-grid-group.group-tone-5{--group-accent:#0369a1;--group-tint:rgba(3,105,161,.075);--group-button:rgba(3,105,161,.13);--group-border:rgba(3,105,161,.30);}
.cbt-grid-group.group-tone-6{--group-accent:#c2410c;--group-tint:rgba(194,65,12,.075);--group-button:rgba(194,65,12,.13);--group-border:rgba(194,65,12,.30);}
.cbt-grid-group.group-tone-7{--group-accent:#dc2626;--group-tint:rgba(220,38,38,.075);--group-button:rgba(220,38,38,.13);--group-border:rgba(220,38,38,.30);}
.cbt-grid-group.group-tone-8{--group-accent:#4f46e5;--group-tint:rgba(79,70,229,.075);--group-button:rgba(79,70,229,.13);--group-border:rgba(79,70,229,.30);}
.cbt-grid-group.group-tone-9{--group-accent:#059669;--group-tint:rgba(5,150,105,.075);--group-button:rgba(5,150,105,.13);--group-border:rgba(5,150,105,.30);}
.cbt-grid-group.group-tone-10{--group-accent:#0284c7;--group-tint:rgba(2,132,199,.075);--group-button:rgba(2,132,199,.13);--group-border:rgba(2,132,199,.30);}
.cbt-grid-group.group-tone-11{--group-accent:#a21caf;--group-tint:rgba(162,28,175,.075);--group-button:rgba(162,28,175,.13);--group-border:rgba(162,28,175,.30);}
.cbt-grid-group.group-tone-12{--group-accent:#64748b;--group-tint:rgba(100,116,139,.075);--group-button:rgba(100,116,139,.13);--group-border:rgba(100,116,139,.30);}
@media(max-width:768px){.cbt-sidebar{position:static;max-height:none;overflow:visible;}.cbt-grid-group-buttons{grid-template-columns:repeat(8,minmax(0,1fr));}}
@media(max-width:520px){.cbt-grid-group-buttons{grid-template-columns:repeat(6,minmax(0,1fr));}}

/* ================= PATCH 010 · PAUSA / CONTINUIDADE ================= */
.cbt-header-actions{display:flex;align-items:center;gap:10px}.cbt-header-pause,.cbt-header-map{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;border-radius:9px;padding:8px 11px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:7px}.cbt-header-map{display:none}
.cbt-footer-session-actions{display:flex;gap:9px;align-items:center}
.resume-session-banner{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:center;margin:0 0 18px;padding:14px 16px;border:1px solid rgba(16,185,129,.32);border-radius:14px;background:linear-gradient(135deg,rgba(16,185,129,.11),rgba(37,99,235,.055));box-shadow:var(--shadow-sm)}
.resume-session-banner[hidden]{display:none}.resume-session-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--brand-primary);color:#fff;font-size:1.05rem}.resume-session-copy{min-width:0}.resume-session-copy .eyebrow{display:block;color:var(--brand-primary);font-size:.65rem;font-weight:900;letter-spacing:.08em}.resume-session-copy strong,.resume-session-copy small{display:block}.resume-session-copy strong{color:var(--text-title);font-size:.92rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin:2px 0}.resume-session-copy small{color:var(--text-muted);font-size:.72rem}.cbt-pause-btn{border-color:rgba(16,185,129,.45)!important;color:var(--brand-primary)!important}

@media(max-width:768px){
  .cbt-container{margin:0;border-radius:14px;overflow:visible}.cbt-header{position:sticky;top:calc(60px + env(safe-area-inset-top));z-index:30;padding:12px 14px;border-radius:13px 13px 0 0}.cbt-header h3{font-size:.78rem;letter-spacing:.04em}.cbt-header-actions{gap:6px}.cbt-header-map{display:inline-flex}.cbt-header-pause span,.cbt-header-map span{display:none}.cbt-header-pause,.cbt-header-map{width:38px;height:38px;justify-content:center;padding:0}.cbt-timer{font-size:.95rem;padding:8px 9px}
  .cbt-question-area{padding:14px 10px 20px!important}.cbt-question-card{border-radius:12px}.question-meta{gap:5px;flex-direction:column;align-items:flex-start}.question-statement{font-size:1rem;line-height:1.62}.question-base{font-size:.92rem;line-height:1.55}
  .cbt-sidebar{display:none!important;position:fixed!important;z-index:2200!important;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));top:auto;max-height:72dvh!important;overflow:auto!important;border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 70px rgba(2,6,23,.38);background:var(--surface)!important;padding:18px!important}
  body.cbt-map-open .cbt-sidebar{display:block!important}.cbt-grid{gap:8px}.cbt-grid-group-buttons{grid-template-columns:repeat(8,minmax(0,1fr))!important}.cbt-grid-btn{min-height:34px}
  .cbt-footer{position:sticky;bottom:0;z-index:20;padding:10px!important;gap:8px;background:var(--surface);flex-wrap:wrap}.cbt-footer-session-actions{order:2;width:100%;display:grid;grid-template-columns:1fr 1fr}.cbt-footer>div:last-child{order:1;width:100%;display:grid!important;grid-template-columns:1fr 1fr}.cbt-footer .btn{font-size:.76rem;padding:9px 8px}
  .resume-session-banner{grid-template-columns:42px minmax(0,1fr);padding:12px}.resume-session-icon{width:40px;height:40px}.resume-session-banner .btn{grid-column:1/-1;width:100%}
  .answer-buttons{grid-template-columns:1fr!important}.confidence-options{grid-template-columns:1fr 1fr!important}
}
@media(max-width:430px){.cbt-grid-group-buttons{grid-template-columns:repeat(6,minmax(0,1fr))!important}.resume-session-copy strong{white-space:normal}}
