.calc-layout { display: grid; grid-template-columns: 1fr 340px; gap: var(--space-6); padding: var(--space-6) 0; align-items: start; }
@media (max-width: 1024px) { .calc-layout { grid-template-columns: 1fr; } }

.calc-hero { background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light)); color: var(--color-white); padding: var(--space-10) 0 var(--space-8); }
.calc-hero h1 { font-family: var(--font-serif); font-size: clamp(1.75rem, 3.5vw, 2.5rem); margin-bottom: var(--space-2); }
.calc-hero p { color: rgba(255,255,255,0.85); max-width: 640px; }

/* === Seletor de níveis === */
.niveis-selector { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-3); margin-bottom: var(--space-6); }
.nivel-card { background: var(--color-white); padding: var(--space-4); border-radius: var(--radius-md); border: 2px solid var(--color-mist); cursor: pointer; transition: all var(--transition-fast); text-align: center; }
.nivel-card:hover { border-color: var(--color-accent); transform: translateY(-2px); }
.nivel-card.active { border-color: var(--color-primary); background: linear-gradient(180deg, var(--color-white), var(--color-snow)); box-shadow: var(--shadow-md); }
.nivel-card.active::after { content: '✓'; position: absolute; }
.nivel-nome { font-family: var(--font-serif); font-size: var(--text-lg); font-weight: 700; color: var(--color-primary); }
.nivel-pts { font-size: var(--text-xs); color: var(--color-slate); margin-top: var(--space-1); }

/* === Acordeão === */
.requisito { background: var(--color-white); border-radius: var(--radius-md); margin-bottom: var(--space-3); overflow: hidden; border: 1px solid var(--color-mist); }
.requisito-header { padding: var(--space-4) var(--space-5); display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: background var(--transition-fast); }
.requisito-header:hover { background: var(--color-snow); }
.requisito-header h3 { font-family: var(--font-serif); font-size: var(--text-lg); color: var(--color-primary); }
.requisito-header .meta { font-size: var(--text-xs); color: var(--color-slate); margin-top: 2px; }
.requisito-toggle { font-size: var(--text-xl); color: var(--color-accent); transition: transform var(--transition-fast); }
.requisito.open .requisito-toggle { transform: rotate(45deg); }
.requisito-body { display: none; padding: 0 var(--space-5) var(--space-5); border-top: 1px solid var(--color-mist); }
.requisito.open .requisito-body { display: block; }

.criterio { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-cloud); display: flex; justify-content: space-between; gap: var(--space-4); align-items: flex-start; }
.criterio:last-child { border-bottom: none; }
.criterio-info { flex: 1; }
.criterio-id { font-family: var(--font-serif); font-weight: 700; color: var(--color-primary); margin-right: var(--space-2); }
.criterio-desc { font-size: var(--text-sm); color: var(--color-graphite); margin-top: var(--space-1); }
.criterio-pts { font-size: var(--text-xs); color: var(--color-accent-dark); font-weight: 600; margin-top: var(--space-2); }

.atividades-list { background: var(--color-snow); border-radius: var(--radius-sm); padding: var(--space-2); margin-top: var(--space-3); }
.atividade-item { padding: var(--space-2) var(--space-3); display: flex; justify-content: space-between; align-items: center; font-size: var(--text-sm); border-bottom: 1px dashed var(--color-mist); }
.atividade-item:last-child { border-bottom: none; }
.atividade-pts { font-weight: 700; color: var(--color-accent-dark); }
.btn-remover { color: var(--color-danger); font-size: var(--text-xs); margin-left: var(--space-2); }

/* === Dashboard === */
.dashboard { background: var(--color-white); border-radius: var(--radius-md); padding: var(--space-5); position: sticky; top: calc(var(--header-height) + var(--space-4)); border: 1px solid var(--color-mist); }
.dashboard h3 { font-family: var(--font-serif); font-size: var(--text-lg); color: var(--color-primary); margin-bottom: var(--space-4); }
.dash-total { text-align: center; padding: var(--space-5); background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light)); color: var(--color-white); border-radius: var(--radius-md); margin-bottom: var(--space-4); }
.dash-total-valor { font-family: var(--font-serif); font-size: var(--text-4xl); font-weight: 700; color: var(--color-accent); }
.dash-total-label { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.85; }

.progress { margin-bottom: var(--space-4); }
.progress-label { display: flex; justify-content: space-between; font-size: var(--text-xs); margin-bottom: var(--space-1); color: var(--color-slate); }
.progress-bar { height: 8px; background: var(--color-cloud); border-radius: var(--radius-full); overflow: hidden; }
.progress-fill { height: 100%; background: linear-gradient(90deg, var(--color-accent), var(--color-accent-dark)); border-radius: var(--radius-full); transition: width var(--transition-slow); }
.progress-fill.full { background: linear-gradient(90deg, var(--color-success), #3A9B6F); }

.check-list { margin-top: var(--space-4); }
.check-item { display: flex; gap: var(--space-2); align-items: flex-start; padding: var(--space-2) 0; font-size: var(--text-xs); color: var(--color-graphite); }

.dash-actions { display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-4); }
