/* Sistema 4×4D — XP, conquistas, kit de prova, acessibilidade, marca d'água
   (parte do antigo index.html único; a ordem dos arquivos importa) */
/* ═══════════════════════════════════════════════════════════
   CALCULADORA GENÉRICA — para TELC-A2, TELC-Pflege, Goethe-C2
   ═══════════════════════════════════════════════════════════ */
.calc-pflege-regra{background:rgba(89,2,2,0.05);border-left:3px solid var(--verm);padding:1rem 1.3rem;margin-bottom:1.5rem;display:flex;align-items:flex-start;gap:0.7rem;font-size:0.78rem;color:var(--cinza);line-height:1.55;}
.calc-pflege-regra strong{color:var(--verm);}
.calc-generico-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:2rem;}
@media(max-width:500px){
  .calc-generico-grid{grid-template-columns:1fr;}
  .calc-generico-modulo{padding:1rem 1.1rem;}
  .calc-generico-resultado{padding:1.3rem 1.4rem;}
  .cgr-pontos{font-size:1.8rem;}
}
.calc-generico-modulo{background:#fff;padding:1.3rem 1.4rem;border-top:3px solid var(--verm);transition:transform 0.15s,box-shadow 0.15s;}
.calc-generico-modulo:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(89,2,2,0.08);}
.cgm-header{display:flex;align-items:center;gap:0.8rem;margin-bottom:1rem;padding-bottom:0.8rem;border-bottom:1px solid var(--rule);}
.cgm-icon{font-size:1.5rem;line-height:1;}
.cgm-info{flex:1;}
.cgm-nome{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1rem;text-transform:uppercase;letter-spacing:0.02em;color:var(--cinza);line-height:1.1;}
.cgm-max{font-size:0.65rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-top:0.2rem;}
.cgm-input-wrap{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.8rem;}
.cgm-input-wrap input{flex:1;padding:0.6rem 0.9rem;border:1.5px solid var(--rule);background:#FFF4E9;font-family:'Work Sans',sans-serif;font-size:1.1rem;font-weight:700;color:var(--cinza);outline:none;text-align:center;transition:border-color 0.15s;}
.cgm-input-wrap input:focus{border-color:var(--laranja);background:#fff;}
.cgm-input-wrap input::placeholder{color:#9a8d85;font-weight:400;}
.cgm-input-unit{font-size:0.78rem;font-weight:700;color:var(--muted);min-width:50px;}
.cgm-bar{height:6px;background:rgba(89,2,2,0.08);overflow:hidden;margin-bottom:0.5rem;}
.cgm-bar-fill{height:100%;background:rgba(255,244,233,0.15);transition:width 0.3s,background 0.3s;}
.cgm-status{font-size:0.72rem;font-weight:600;color:var(--muted);min-height:1.2em;}
.cgm-status.ok{color:var(--verde);}
.cgm-status.fail{color:var(--danger);}
.calc-generico-resultado{background:var(--cinza);color:var(--branco);padding:1.8rem 2rem;margin-top:1rem;}
.cgr-row{display:flex;align-items:baseline;gap:1.5rem;justify-content:space-between;flex-wrap:wrap;margin-bottom:0.8rem;}
.cgr-label{font-size:0.6rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--light-3);}
.cgr-pontos{font-family:'Anton',sans-serif;font-size:2.2rem;color:var(--laranja);line-height:1;}
.cgr-max{font-size:0.9rem;color:var(--light-3);font-family:'Work Sans',sans-serif;font-weight:400;}
.cgr-pct{font-family:'Anton',sans-serif;font-size:1.6rem;color:var(--light-1);}
.cgr-bar{height:8px;background:rgba(255,244,233,0.1);overflow:hidden;margin-bottom:1rem;}
.cgr-bar-fill{height:100%;background:rgba(255,244,233,0.15);transition:width 0.3s,background 0.3s;}
.cgr-verdict{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.23rem;letter-spacing:0.02em;color:var(--light-2);}
.cgr-verdict.aprovado{color:var(--verde);}
.cgr-verdict.quase{color:var(--laranja);}
.cgr-verdict.reprovado{color:var(--danger);}
.cgr-detail{font-size:0.78rem;color:var(--light-2);margin-top:0.4rem;line-height:1.55;}
.calc-reset-btn{padding:0.6rem 1.4rem;background:transparent;border:1.5px solid var(--rule);color:var(--muted);font-family:'Work Sans',sans-serif;font-size:0.62rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;transition:all 0.15s;}
.calc-reset-btn:hover{border-color:var(--verm);color:var(--verm);}

/* ═══════════════════════════════════════════════════════════
   CORREÇÕES GLOBAIS DE CONTRASTE (auditoria WCAG AA)
   ═══════════════════════════════════════════════════════════ */
/* Placeholders mais visíveis em todos os inputs */
input::placeholder,textarea::placeholder{color:rgba(255,244,233,0.65)!important;}
input[style*="background:#fff"]::placeholder,
input[style*="background:white"]::placeholder{color:#bdb0a8!important;}
/* sec-label-title que era 0.3 e quase invisível */
.sec-label-title{color:var(--light-3)!important;}
/* Estado vazio com mais contraste */
.empty-state,[class*="vazio"]{color:var(--light-3)!important;}

/* ═══════════════════════════════════════════════════════════════
   SISTEMA DE XP / GAMIFICAÇÃO
   ═══════════════════════════════════════════════════════════════ */
#xp-toast{position:fixed;bottom:5rem;right:1.5rem;z-index:9800;pointer-events:none;display:flex;flex-direction:column;gap:0.5rem;align-items:flex-end;}
.xp-pop{background:var(--cinza);color:var(--laranja);font-family:'Anton',sans-serif;font-size:1rem;letter-spacing:0.05em;padding:0.5rem 1rem 0.5rem 0.8rem;border-left:3px solid var(--laranja);box-shadow:0 4px 20px rgba(0,0,0,0.3);animation:xpSlide 2.5s ease forwards;white-space:nowrap;}
.xp-pop .xp-reason{font-family:'Work Sans',sans-serif;font-size:0.6rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,244,233,0.6);display:block;margin-top:0.1rem;}
@keyframes xpSlide{0%{opacity:0;transform:translateX(20px);}10%{opacity:1;transform:translateX(0);}80%{opacity:1;}100%{opacity:0;transform:translateX(10px);}}

/* Barra de XP no header da nav */
.nav-prova-area{margin-left:auto;display:flex;align-items:center;gap:0.5rem;padding-right:9rem;}
#xp-bar-wrap{display:flex;align-items:center;gap:0.4rem;}
#xp-bar-track{height:4px;background:rgba(255,244,233,0.1);width:50px;}
#xp-bar-fill{height:100%;background:var(--laranja);transition:width 0.4s;}
#xp-level-badge{font-size:0.52rem;font-weight:700;letter-spacing:0.08em;color:var(--laranja);white-space:nowrap;}
@media(max-width:480px){#xp-bar-track{width:30px;}}
@media(max-width:440px){.nav-prova-badge{display:none;}#xp-bar-wrap{display:none;}}

/* Nível e total no dashboard */
.kpi-xp-wrap{display:flex;align-items:center;gap:0.6rem;margin-top:0.3rem;}
.kpi-xp-bar{flex:1;height:6px;background:rgba(255,166,0,0.1);}
.kpi-xp-bar-fill{height:100%;background:var(--laranja);transition:width 0.5s;}

/* Streak dots — 7 dias */
.kpi-streak-dots{display:flex;gap:4px;margin-top:0.6rem;}
.streak-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;}
.streak-dot span{font-size:0.48rem;font-weight:700;letter-spacing:0;text-transform:uppercase;line-height:1;}
.sd-ok{background:var(--verde);color:#fff;}
.sd-miss{background:rgba(255,244,233,0.08);color:rgba(255,244,233,0.3);}
.sd-hoje{background:rgba(255,166,0,0.2);color:var(--laranja);border:1.5px solid var(--laranja);}

/* XP Card no dashboard */
.xp-card{display:flex;align-items:center;gap:1.5rem;background:var(--cinza);padding:1rem 1.5rem;border-left:3px solid var(--laranja);margin-bottom:0;flex-wrap:wrap;}
.xp-card-left{flex-shrink:0;}
.xp-card-label{font-size:0.52rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--laranja);margin-bottom:0.1rem;}
.xp-card-nome{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.14rem;text-transform:uppercase;color:var(--branco);line-height:1;}
.xp-card-total{font-size:0.6rem;color:rgba(255,244,233,0.55);margin-top:0.2rem;}
.xp-card-right{flex:1;min-width:200px;}
.xp-card-bar-wrap{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.3rem;}
.xp-card-bar{flex:1;height:6px;background:rgba(255,244,233,0.1);}
.xp-card-bar-fill{height:100%;background:var(--laranja);transition:width 0.5s;}
.xp-card-pct{font-size:0.6rem;font-weight:700;color:var(--laranja);min-width:28px;text-align:right;}
.xp-card-sub{font-size:0.68rem;color:rgba(255,244,233,0.75);margin-bottom:0.2rem;}
.xp-card-sub strong{color:var(--laranja);}
.xp-card-acoes{font-size:0.58rem;color:var(--light-3);}

/* Desafio semanal */
.desafio-card{display:flex;align-items:center;gap:1rem;background:rgba(255,166,0,0.06);border-left:3px solid var(--laranja);padding:1rem 1.5rem;}
.desafio-card.cumprido{background:rgba(16,171,130,0.06);border-left-color:var(--verde);}
.desafio-icon{font-size:1.8rem;flex-shrink:0;}
.desafio-body{flex:1;}
.desafio-label{font-size:0.52rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--laranja);margin-bottom:0.2rem;}
.desafio-card.cumprido .desafio-label{color:var(--verde);}
.desafio-txt{font-size:0.78rem;color:var(--cinza);margin-bottom:0.5rem;line-height:1.4;}
.desafio-bar{height:5px;background:rgba(89,2,2,0.08);}
.desafio-bar-fill{height:100%;background:var(--laranja);transition:width 0.4s;}
.desafio-card.cumprido .desafio-bar-fill{background:var(--verde);}
.desafio-pct{font-family:'Anton',sans-serif;font-size:1.3rem;color:var(--laranja);flex-shrink:0;}
.desafio-card.cumprido .desafio-pct{color:var(--verde);}

/* Badges */
.badges-card{background:#fff;border-bottom:1px solid var(--rule);padding:1.3rem 1.5rem;}
.badges-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1rem;}
.badges-title{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1rem;text-transform:uppercase;color:var(--cinza);letter-spacing:0.02em;}
.badges-count{font-size:0.7rem;font-weight:700;color:var(--laranja);}
.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:0.8rem;}
.badge{text-align:center;padding:0.8rem 0.4rem;border:1px solid var(--rule);transition:all 0.15s;}
.badge.ganho{background:rgba(255,166,0,0.06);border-color:rgba(255,166,0,0.3);}
.badge.bloqueado{opacity:0.45;}
.badge-icon{font-size:1.6rem;line-height:1;margin-bottom:0.4rem;}
.badge-nome{font-size:0.55rem;font-weight:700;letter-spacing:0.04em;color:var(--cinza);line-height:1.2;}
.badge.bloqueado .badge-nome{color:var(--muted);}
@media(max-width:600px){.badges-grid{grid-template-columns:repeat(3,1fr);}}

/* ── KIT DE PROVA (estratégia, critérios, Pflegebericht) ─── */
.kit-box{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--verm);padding:1.5rem;margin-bottom:1.5rem;}
.kit-box-h{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.97rem;text-transform:uppercase;color:var(--cinza);letter-spacing:0.02em;display:flex;align-items:center;gap:0.6rem;margin-bottom:0.4rem;}
.kit-box-icon{font-size:1.3rem;}
.kit-box-sub{font-size:0.78rem;color:var(--muted);line-height:1.55;margin-bottom:1.2rem;}
.kit-tempo{border-top-color:var(--laranja);}
.kit-tempo-tabela{display:flex;flex-direction:column;gap:1px;background:var(--rule);}
.kit-tempo-row{display:grid;grid-template-columns:1.3fr 0.7fr 2.5fr;gap:1rem;padding:0.7rem 0.9rem;background:#fff;align-items:center;}
.kit-tempo-head{background:rgba(89,2,2,0.04);}
.kit-tempo-head .kit-tempo-mod,.kit-tempo-head .kit-tempo-min,.kit-tempo-head .kit-tempo-obs{font-size:0.55rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);}
.kit-tempo-mod{font-weight:700;font-size:0.78rem;color:var(--cinza);}
.kit-tempo-min{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.95rem;color:var(--laranja);}
.kit-tempo-obs{font-size:0.72rem;color:var(--muted);line-height:1.45;}
.kit-criterios{border-top-color:var(--verde);}
.kit-crit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0.8rem;}
.kit-crit-card{background:rgba(16,171,130,0.04);border:1px solid rgba(16,171,130,0.15);padding:1rem;}
.kit-crit-de{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.95rem;color:var(--verde);text-transform:uppercase;}
.kit-crit-pt{font-size:0.62rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin:0.2rem 0 0.5rem;}
.kit-crit-desc{font-size:0.74rem;color:var(--cinza);line-height:1.5;}
.kit-pflege{border-top-color:var(--verde);}
.kit-soap{display:flex;flex-direction:column;gap:0.8rem;}
.kit-soap-item{display:flex;gap:1rem;align-items:flex-start;background:rgba(16,171,130,0.04);padding:1rem;border-left:3px solid var(--verde);}
.kit-soap-letra{font-family:'Anton',sans-serif;font-size:2rem;color:var(--verde);line-height:1;flex-shrink:0;width:36px;text-align:center;}
.kit-soap-titulo{font-size:0.85rem;font-weight:700;color:var(--cinza);margin-bottom:0.2rem;}
.kit-soap-desc{font-size:0.72rem;color:var(--muted);line-height:1.5;margin-bottom:0.5rem;}
.kit-soap-frase{font-size:0.74rem;color:var(--cinza);background:#fff;padding:0.6rem 0.8rem;border:1px solid var(--rule);line-height:1.6;}
.kit-soap-frase strong{color:var(--verm);}
.kit-pflege-dica{margin-top:1.2rem;padding:0.9rem 1.1rem;background:rgba(255,166,0,0.08);border-left:3px solid var(--laranja);font-size:0.76rem;color:var(--cinza);line-height:1.55;}
.kit-pflege-dica strong{color:var(--verm);}
@media(max-width:600px){
  .kit-tempo-row{grid-template-columns:1fr;gap:0.3rem;}
  .kit-tempo-head{display:none;}
  .kit-tempo-mod{font-size:0.82rem;}
}

/* Histórico de notas na calculadora */
.nota-hist-wrap{background:var(--cinza);padding:1.2rem 1.5rem;margin-top:1.5rem;}
.nota-hist-title{font-size:0.55rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,244,233,0.55);margin-bottom:0.8rem;}
.nota-hist-list{display:flex;flex-direction:column;gap:2px;}
.nota-hist-item{display:flex;align-items:center;gap:0.8rem;padding:0.5rem 0;border-bottom:1px solid rgba(255,244,233,0.05);}
.nhi-score{font-family:'Anton',sans-serif;font-size:1.1rem;color:var(--laranja);min-width:50px;}
.nhi-status{font-size:0.6rem;font-weight:700;padding:0.15rem 0.5rem;}
.nhi-status.ok{background:rgba(16,171,130,0.15);color:var(--verde);}
.nhi-status.fail{background:rgba(255,90,31,0.12);color:var(--danger);}
.nhi-data{font-size:0.62rem;color:var(--light-3);margin-left:auto;}
.nota-hist-trend{display:flex;align-items:center;gap:0.5rem;margin-top:0.8rem;padding-top:0.8rem;border-top:1px solid rgba(255,244,233,0.06);font-size:0.68rem;color:rgba(255,244,233,0.6);}
.nht-up{color:var(--verde);}
.nht-down{color:var(--danger);}

/* ═══════════════════════════════════════════════════════════════
   ONBOARDING MODAL — "Comece aqui"
   ═══════════════════════════════════════════════════════════════ */
#onboarding-modal{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,0.7);display:flex;align-items:center;justify-content:center;padding:1.5rem;}
.ob-box{background:#fff;max-width:500px;width:100%;border-top:4px solid var(--laranja);padding:2.5rem 2.5rem 2rem;position:relative;animation:obIn 0.3s ease;}
@keyframes obIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.ob-step{display:none;flex-direction:column;gap:0;}
.ob-step.active{display:flex;}
.ob-num{font-size:0.55rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--laranja);margin-bottom:0.8rem;}
.ob-title{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.44rem;text-transform:uppercase;color:var(--cinza);line-height:1;margin-bottom:0.6rem;}
.ob-desc{font-size:0.85rem;color:#5a4f4a;line-height:1.65;margin-bottom:1.5rem;}
.ob-actions{display:flex;gap:0.8rem;align-items:center;flex-wrap:wrap;}
.ob-btn-primary{padding:0.75rem 1.5rem;background:var(--verm);color:#fff;border:none;font-family:'Work Sans',sans-serif;font-size:0.7rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;transition:background 0.15s;}
.ob-btn-primary:hover{background:var(--verm-dk);}
.ob-btn-secondary{padding:0.75rem 1.2rem;background:transparent;color:#5a4f4a;border:1.5px solid rgba(89,2,2,0.15);font-family:'Work Sans',sans-serif;font-size:0.65rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:all .15s ease;}
.ob-skip{font-size:0.62rem;color:#9a8d85;background:none;border:none;cursor:pointer;text-decoration:underline;margin-left:auto;transition:all .15s ease;}
.ob-dots{display:flex;gap:0.4rem;margin-top:1.5rem;}
.ob-dot{width:6px;height:6px;border-radius:50%;background:rgba(89,2,2,0.15);transition:background 0.2s;}
.ob-dot.active{background:var(--verm);}
.ob-icon{font-size:2.5rem;margin-bottom:1rem;}

/* ═══════════════════════════════════════════════════════════════
   CELEBRAÇÃO — confetti na calculadora
   ═══════════════════════════════════════════════════════════════ */
#celebration-canvas{position:fixed;inset:0;pointer-events:none;z-index:9600;display:none;}
.cgr-verdict.aprovado{animation:verdictPop 0.4s ease;}
@keyframes verdictPop{0%{transform:scale(0.8);opacity:0;}60%{transform:scale(1.05);}100%{transform:scale(1);opacity:1;}}

/* ═══════════════════════════════════════════════════════════════
   ACESSIBILIDADE — focus, ARIA, touch
   ═══════════════════════════════════════════════════════════════ */
/* Focus visível em todos os botões interativos */
:focus-visible{outline:2px solid var(--laranja)!important;outline-offset:2px!important;}
/* Touch target mínimo 44px */
button,a,[role="button"]{min-height:36px;touch-action:manipulation;}
/* Fontes mínimas — nenhum texto < 11px */
.pb-org,.kpi-label,.sec-label-title,.vf-btn,.vf-chip,.ob-num{font-size:max(0.62rem,11px)!important;}
/* Modal focus trap visual */
[aria-modal="true"]{outline:none;}
/* Skip link */
.skip-link{position:fixed;top:-100px;left:1rem;z-index:99999;padding:0.5rem 1rem;background:var(--laranja);color:#fff;font-weight:700;font-size:0.8rem;transition:top 0.15s;}
.skip-link:focus{top:0.5rem;}


/* ── MARCA D'ÁGUA DENKMAL (removida) ──────────────────────────── */
/* Removida: o manual da marca proíbe usar o logo com opacidade ou como marca d'água. */
#main-app > * { position: relative; z-index: 1; }



/* ── Etapa 7: estilos que se repetiam inline viraram classes (mesmo visual) ── */
.pg-titulo{font-family:'Work Sans',sans-serif;font-weight:800;font-size:clamp(1.44rem,4.32vw,2.88rem);color:var(--branco);text-transform:uppercase;} /* Título grande das páginas (fundo vinho) */
.quiz-dica{color:rgba(255,244,233,0.65);font-style:normal;} /* Complemento entre parênteses nas opções do diagnóstico */
.quiz-ajuda{font-size:0.7rem;color:rgba(255,244,233,0.65);margin:-0.5rem 0 1rem;line-height:1.6;} /* Texto de ajuda abaixo da pergunta do diagnóstico */
.pflege-paragrafo{font-size:0.72rem;color:rgba(255,244,233,0.75);line-height:1.9;margin:0 0 0.6rem;} /* Parágrafo de texto-modelo (Pflege) */
.pflege-lista{font-size:0.62rem;color:rgba(255,244,233,0.6);line-height:1.8;} /* Lista curta em cartão escuro (Pflege) */
.pflege-lista-alta{font-size:0.68rem;color:rgba(255,244,233,0.65);line-height:2;} /* Lista com entrelinha alta (Pflege) */
.chip-frase{background:rgba(255,244,233,0.06);padding:0.3rem 0.7rem;font-size:0.65rem;color:rgba(255,244,233,0.65);} /* Chip de frase pronta (Redemittel) */
.chip-frase-alt{background:rgba(255,244,233,0.06);padding:0.3rem 0.7rem;color:rgba(255,244,233,0.7);} /* Chip de frase pronta, variante sem tamanho próprio */
.plano-cartao{padding:1.1rem 1.3rem;background:rgba(255,255,255,0.03);} /* Cartão do plano de estudos */
.plano-item{font-size:0.74rem;color:rgba(255,244,233,0.6);line-height:1.55;} /* Item de lista do plano de estudos */
.plano-texto{font-size:0.7rem;color:rgba(255,244,233,0.55);line-height:1.6;} /* Texto de apoio do plano de estudos */
.plano-secao{font-size:0.55rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,244,233,0.5);margin-bottom:1rem;} /* Rótulo numerado de seção do plano (01 · …) */
.adm-stat{background:#FFF4E9;padding:1rem;text-align:center;} /* Caixa de número no progresso do aluno (admin) */
.adm-stat-rot{font-size:0.6rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);} /* Rótulo da caixa de número (admin) */
