/* Sistema 4×4D — Desafio da Semana e Guia de Gramática (trazidos da versão do Luan, 30/09) */
/* Desafio da Semana — quiz cronometrado */
.dsf-wrap{max-width:640px;margin:0 auto;padding:2.5rem 1.5rem 4rem;}
.dsf-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.6rem;flex-wrap:wrap;gap:0.6rem;}
.dsf-cat{font-size:0.6rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--laranja);}
.dsf-cat .dsf-pratica-tag{color:var(--muted);margin-left:0.5rem;}
.dsf-clock{font-family:'Anton',sans-serif;font-size:1.5rem;color:var(--cinza);}
.dsf-progress{font-size:0.68rem;font-weight:700;color:var(--muted);letter-spacing:0.08em;margin-bottom:0.5rem;}
.dsf-bar{height:4px;background:var(--rule);margin-bottom:2rem;}
.dsf-bar-fill{height:100%;background:var(--laranja);transition:width .3s;}
.dsf-intro,.dsf-result{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--laranja);padding:2.2rem 1.8rem;text-align:center;}
.dsf-result.tier-bronze{border-top-color:#8A5A00;}
.dsf-result.tier-prata{border-top-color:#9aa0a6;}
.dsf-result.tier-ouro{border-top-color:var(--laranja);}
.dsf-intro-icon,.dsf-result-icon{font-size:2.4rem;margin-bottom:0.8rem;}
.dsf-intro-title{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.1rem;text-transform:uppercase;color:var(--cinza);margin-bottom:0.5rem;}
.dsf-intro-sub{font-size:0.8rem;color:var(--muted);line-height:1.6;margin-bottom:1.5rem;}
.dsf-btn{padding:0.9rem 2rem;background:var(--laranja);color:#fff;border:none;font-family:'Work Sans',sans-serif;font-weight:700;font-size:0.75rem;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;transition:filter .15s;}
.dsf-btn:hover{filter:brightness(1.08);}
.dsf-btn.ghost{background:transparent;border:1.5px solid var(--rule);color:var(--cinza);}
.dsf-next-btn{display:block;margin-top:1rem;padding:0.7rem 1.6rem;background:var(--cinza);color:#fff;border:none;font-family:'Work Sans',sans-serif;font-weight:700;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;}
.dsf-result-score{font-family:'Anton',sans-serif;font-size:2.4rem;color:var(--cinza);margin-bottom:0.4rem;}
.dsf-result-stats{display:flex;justify-content:center;gap:1.5rem;margin:1.2rem 0;flex-wrap:wrap;}
.dsf-stat{text-align:center;}
.dsf-stat-num{font-family:'Anton',sans-serif;font-size:1.3rem;color:var(--laranja);}
.dsf-stat-label{font-size:0.55rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}

/* ── GUIA DE GRAMÁTICA — importado, classes com prefixo gram- ─────────
   (.wrap já existe no sistema com outro layout — por isso o prefixo em
   tudo aqui, evitando colidir com qualquer classe existente ou futura) */
.gram-hero{background:var(--verm-dk);color:var(--branco);padding:3rem 2rem 2.2rem;}
.gram-hero-sup{font-size:0.62rem;font-weight:700;letter-spacing:0.24em;text-transform:uppercase;color:var(--verde);margin-bottom:1rem;display:flex;align-items:center;gap:0.8rem;}
.gram-hero-sup::before{content:'';width:28px;height:1px;background:var(--verde);}
.gram-hero h1{font-family:'Work Sans',sans-serif;font-weight:800;font-size:clamp(1.44rem,4.32vw,2.45rem);text-transform:uppercase;line-height:1;letter-spacing:0;}
.gram-hero h1 em{font-style:normal;color:var(--laranja);}
.gram-hero p{margin-top:1rem;max-width:660px;font-size:0.85rem;font-weight:300;color:rgba(255,244,233,0.7);line-height:1.75;}
.gram-hero-levels{display:flex;gap:0.5rem;margin-top:1.2rem;flex-wrap:wrap;}
.gram-lvl-chip{font-size:0.6rem;font-weight:700;letter-spacing:0.1em;padding:0.25rem 0.7rem;border:1px solid;}
.gram-lvl-chip.A1{color:var(--verde);border-color:var(--verde);}
.gram-lvl-chip.A2{color:#0B7A5C;border-color:#0B7A5C;}
.gram-lvl-chip.B1{color:var(--laranja);border-color:var(--laranja);}
.gram-lvl-chip.B2{color:#FF5A1F;border-color:#FF5A1F;}

.gram-tabs{display:flex;gap:0.4rem;flex-wrap:wrap;padding:1rem 2rem;background:#242424;position:sticky;top:var(--topo);z-index:50;}
.gram-tab-btn{padding:0.5rem 1rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,244,233,0.12);color:rgba(255,244,233,0.6);font-family:'Work Sans',sans-serif;font-size:0.65rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;transition:all .15s;white-space:nowrap;}
.gram-tab-btn:hover{color:#fff;border-color:rgba(255,244,233,0.3);}
.gram-tab-btn.active{background:var(--laranja);color:var(--verm-dk);border-color:var(--laranja);}
.gram-tab-btn.gram-tab-ref{background:rgba(16,171,130,0.12);border-color:var(--verde);color:var(--verde);}
.gram-tab-btn.gram-tab-ref.active{background:var(--verde);color:#fff;}

.gram-score-bar{position:sticky;top:104px;z-index:40;background:var(--cinza);color:var(--branco);padding:0.6rem 2rem;font-size:0.62rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.4rem;}
.gram-score-bar span:last-child{color:var(--laranja);}

.gram-wrap{max-width:920px;margin:0 auto;padding:2.5rem 1.5rem 4rem;}
.gram-cat-block{display:none;}
.gram-cat-block.active{display:block;animation:fadeIn .2s;}
.gram-cat-header{display:flex;align-items:center;gap:0.9rem;margin-bottom:0.4rem;}
.gram-cat-icon{font-size:1.8rem;}
.gram-cat-title{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.44rem;text-transform:uppercase;color:var(--verm);letter-spacing:0.02em;}
.gram-cat-sub{font-size:0.78rem;color:var(--muted);margin-bottom:1.8rem;max-width:640px;line-height:1.6;}

.gram-topic{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--laranja);padding:1.6rem 1.8rem;margin-bottom:1.2rem;}
.gram-topic-head{display:flex;align-items:baseline;gap:0.8rem;flex-wrap:wrap;margin-bottom:0.8rem;}
.gram-topic-title{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.01rem;text-transform:uppercase;color:var(--cinza);letter-spacing:0.02em;}
.gram-topic-nivel{font-size:0.58rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;padding:0.2rem 0.55rem;}
.gram-topic-nivel.A1{color:var(--verde);background:rgba(16,171,130,0.08);}
.gram-topic-nivel.A2{color:#0B7A5C;background:rgba(11,122,92,0.08);}
.gram-topic-nivel.B1{color:var(--laranja);background:rgba(255,166,0,0.08);}
.gram-topic-nivel.B2{color:var(--verm);background:rgba(89,2,2,0.06);}
.gram-topic-theory{font-size:0.82rem;color:var(--muted);line-height:1.75;margin-bottom:0.9rem;}
.gram-topic-theory strong{color:var(--cinza);}
.gram-topic-theory code{background:#FFF4E9;padding:0.1rem 0.35rem;font-family:'Work Sans',monospace;font-size:0.78rem;color:var(--verm);}

.gram-examples{background:rgba(16,171,130,0.06);border-left:3px solid var(--verde);padding:0.8rem 1.1rem;margin-bottom:1rem;font-size:0.78rem;color:var(--cinza);}
.gram-examples .gram-ex-label{font-size:0.55rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:var(--verde);margin-bottom:0.4rem;}
.gram-examples div.gram-ex-item{padding:0.15rem 0;line-height:1.6;}

.gram-exercise{background:#FFF4E9;border:1px solid var(--rule);padding:1.1rem 1.3rem;margin-top:0.9rem;}
.gram-ex-q{font-size:0.82rem;font-weight:600;color:var(--cinza);margin-bottom:0.8rem;line-height:1.5;}
.gram-ex-opts{display:flex;flex-direction:column;gap:0.4rem;}
.gram-ex-opt{padding:0.6rem 0.9rem;border:1.5px solid var(--rule);background:#fff;font-family:'Work Sans',sans-serif;font-size:0.78rem;color:var(--cinza);text-align:left;cursor:pointer;transition:all .15s;}
.gram-ex-opt:hover:not(:disabled){border-color:var(--verde);background:rgba(16,171,130,0.04);}
.gram-ex-opt:disabled{cursor:default;}
.gram-ex-opt.correct{border-color:var(--verde);background:rgba(16,171,130,0.1);color:var(--verde);font-weight:600;}
.gram-ex-opt.wrong{border-color:var(--laranja);background:rgba(255,90,31,0.08);color:var(--laranja);font-weight:600;}
.gram-ex-fb{display:none;margin-top:0.7rem;padding:0.7rem 0.9rem;font-size:0.76rem;line-height:1.6;border-left:3px solid;}
.gram-ex-fb.show{display:block;}
.gram-ex-fb.ok{background:rgba(16,171,130,0.08);border-color:var(--verde);color:var(--cinza);}
.gram-ex-fb.ko{background:rgba(255,90,31,0.07);border-color:var(--laranja);color:var(--cinza);}

.gram-ref-block{background:#fff;border:1px solid var(--rule);border-top:3px solid var(--verde);padding:1.6rem 1.8rem;margin-bottom:1.4rem;}
.gram-ref-title{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.97rem;text-transform:uppercase;color:var(--verm);letter-spacing:0.02em;margin-bottom:0.9rem;}
.gram-mini-table{width:100%;border-collapse:collapse;margin:0 0 0.9rem;font-size:0.74rem;}
.gram-mini-table th{background:#242424;color:#FFF4E9;padding:0.45rem 0.6rem;text-align:left;font-size:0.56rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:700;}
.gram-mini-table td{padding:0.45rem 0.6rem;border-bottom:1px solid var(--rule);}
.gram-mini-table tr:nth-child(even) td{background:#FFF4E9;}
.gram-mini-table td.hl{font-weight:700;color:var(--verm);}
.gram-ref-note{font-size:0.72rem;color:var(--muted);margin-top:0.6rem;line-height:1.6;font-style:italic;}
.gram-dup-card{background:#fff;border:1px solid var(--rule);border-left:4px solid var(--verm);padding:0.9rem 1.2rem;margin-bottom:0.7rem;}
.gram-dup-card-h{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.95rem;color:var(--verm);text-transform:uppercase;margin-bottom:0.5rem;}
.gram-dup-card-h em{font-style:normal;font-size:0.6rem;color:var(--muted);font-family:'Work Sans',sans-serif;font-weight:400;text-transform:none;margin-left:0.4rem;}
.gram-dup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0.6rem;}
.gram-dup-item{background:#FFF4E9;padding:0.6rem 0.8rem;border-left:3px solid #888;}
.gram-dup-item .gram-dp-tag{font-size:0.7rem;font-weight:700;text-transform:uppercase;}
.gram-dup-item .gram-dp-mean{font-size:0.74rem;color:var(--cinza);margin:0.2rem 0;}
.gram-dup-item .gram-dp-ex{font-size:0.68rem;color:var(--muted);font-style:italic;}
.gram-subhead{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1rem;text-transform:uppercase;color:var(--cinza);margin:1.4rem 0 0.6rem;letter-spacing:0.02em;}
@media(max-width:600px){.gram-hero{padding:2.2rem 1.2rem 1.8rem;}.gram-tabs{padding:0.8rem 1rem;}.gram-score-bar{padding:0.5rem 1rem;}.gram-mini-table{font-size:0.65rem;}}
/* Guia de Gramática: explicação em alemão ou português */
.gram-lingua{display:inline-flex;margin:0.2rem 0 0.8rem;border:1px solid rgba(89,2,2,0.25);}
.gram-lingua-btn{padding:0.35rem 0.9rem;border:0;background:transparent;font-family:'Work Sans',sans-serif;font-size:0.62rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--verm);cursor:pointer;}
.gram-lingua-de,.gram-pt .gram-lingua-pt{background:var(--verm);color:var(--branco);}
.gram-pt .gram-lingua-de{background:transparent;color:var(--verm);}
.gram-theory-pt,.gram-pt .gram-theory-de{display:none;}
.gram-pt .gram-theory-pt{display:block;}

/* Biblioteca do aluno (Praticar → Biblioteca) */
.bib-al-wrap{max-width:1080px;margin:0 auto;padding:2rem 2rem 4rem;}
.bib-al-filtros{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-bottom:1.6rem;}
.bib-al-grupo{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem;}
.bib-al-grupo>span{font-size:0.6rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-right:0.3rem;}
.bib-al-filtro{padding:0.4rem 0.8rem;border:1px solid rgba(89,2,2,0.25);background:#fff;color:var(--verm);font-family:'Work Sans',sans-serif;font-size:0.68rem;font-weight:700;cursor:pointer;}
.bib-al-filtro.ativo{background:var(--verm);color:var(--branco);border-color:var(--verm);}
.bib-al-hab{margin-bottom:2rem;}
.bib-al-hab h3{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1rem;text-transform:uppercase;color:var(--verm);margin:0 0 0.8rem;border-bottom:2px solid var(--laranja);padding-bottom:0.4rem;}
.bib-al-hab h3 span{font-size:0.7rem;color:var(--muted);font-weight:600;}
.bib-al-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0.8rem;}
.bib-al-card{display:flex;flex-direction:column;gap:0.35rem;padding:1rem;background:#fff;border:1px solid rgba(89,2,2,0.12);border-left:3px solid var(--verde);text-decoration:none;color:var(--cinza);transition:border-color 0.15s,transform 0.15s;}
.bib-al-card:hover{border-color:var(--verm);transform:translateY(-1px);}
.bib-al-card strong{font-size:0.9rem;line-height:1.35;}
.bib-al-tipo{font-size:0.58rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:#0B7A5C;}
.bib-al-meta{font-size:0.7rem;color:var(--muted);}
.bib-al-abrir{margin-top:auto;font-size:0.65rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--verm);}
@media(max-width:600px){.bib-al-wrap{padding:1.4rem 1rem 3rem;}}

/* Guia de Sprechen B1 (Praticar → Guia de Sprechen) */
.spk-wrap{max-width:1000px;margin:0 auto;padding:1.6rem 2rem 4rem;}
.spk-abas{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:1.6rem;}
.spk-aba{padding:0.55rem 0.9rem;border:1px solid rgba(89,2,2,0.25);background:#fff;color:var(--verm);font-family:'Work Sans',sans-serif;font-size:0.68rem;font-weight:700;letter-spacing:0.04em;cursor:pointer;}
.spk-aba.ativa{background:var(--verm);color:var(--branco);border-color:var(--verm);}
.spk-h{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.95rem;text-transform:uppercase;color:var(--verm);margin:2rem 0 0.8rem;border-bottom:2px solid var(--laranja);padding-bottom:0.4rem;}
.spk-cab{background:#fff;border-left:4px solid var(--verde);padding:1.2rem 1.4rem;}
.spk-cab h2{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1.3rem;text-transform:uppercase;color:var(--cinza);margin:0.3rem 0 0;}
.spk-cab p{font-size:0.88rem;line-height:1.6;color:var(--cinza);margin:0.4rem 0 0;}
.spk-pt{color:var(--danger) !important;font-weight:500;}
.spk-prova-tag{display:inline-block;font-size:0.6rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;background:rgba(16,171,130,0.12);color:#0B7A5C;padding:0.25rem 0.5rem;}
.spk-provas{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.spk-prova{background:#fff;border:1px solid rgba(89,2,2,0.12);border-top:3px solid var(--laranja);padding:1.2rem;}
.spk-prova h3{font-family:'Work Sans',sans-serif;font-weight:800;font-size:1rem;text-transform:uppercase;color:var(--verm);margin:0;}
.spk-prep{font-size:0.75rem;color:var(--muted);margin:0.3rem 0 0.8rem;}
.spk-parte-link{display:flex;flex-direction:column;align-items:flex-start;gap:0.1rem;width:100%;text-align:left;background:#FFF4E9;border:0;border-left:3px solid var(--verde);padding:0.6rem 0.8rem;margin-bottom:0.5rem;cursor:pointer;font-family:'Work Sans',sans-serif;}
.spk-parte-link strong{font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:#0B7A5C;}
.spk-parte-link span{font-size:0.88rem;font-weight:700;color:var(--cinza);}
.spk-parte-link em{font-style:normal;font-size:0.72rem;color:var(--muted);}
.spk-parte-link:hover span{color:var(--verm);}
.spk-nota{font-size:0.85rem;line-height:1.6;color:var(--muted);margin:1rem 0;}
.spk-dicas{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0.7rem;}
.spk-dica{background:#fff;border:1px solid rgba(89,2,2,0.1);padding:0.9rem 1rem;}
.spk-dica strong{display:block;font-size:0.88rem;color:var(--verm);margin-bottom:0.3rem;}
.spk-dica p{font-size:0.8rem;line-height:1.55;color:var(--cinza);margin:0;}
.spk-inicial{font-family:'Anton',sans-serif;font-weight:400;font-size:1.3rem;color:var(--laranja);margin-right:0.05rem;}
.spk-destaque{margin-top:1.6rem;background:var(--verm-dk);color:var(--branco);padding:1.2rem 1.4rem;}
.spk-destaque strong{color:var(--laranja);}
.spk-destaque p{font-size:0.85rem;line-height:1.65;margin:0.5rem 0 0;color:rgba(255,244,233,0.85);}
.spk-rm{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0.8rem;}
.spk-rm-grupo{background:#fff;border-top:3px solid var(--verm);padding:0.9rem 1rem;}
.spk-rm-grupo h4{font-family:'Work Sans',sans-serif;font-weight:800;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--verm);margin:0 0 0.5rem;}
.spk-rm-grupo ul{margin:0;padding-left:1rem;}
.spk-rm-grupo li{font-size:0.84rem;line-height:1.5;color:var(--cinza);margin-bottom:0.3rem;}
.spk-tarefa,.spk-ex{background:#fff;border:1px solid rgba(89,2,2,0.12);padding:1rem 1.2rem;margin-bottom:0.8rem;}
.spk-tarefa ul{margin:0.4rem 0 0.8rem;padding-left:1.1rem;font-size:0.85rem;line-height:1.6;}
.spk-ex-tit{display:flex;gap:0.8rem;align-items:flex-start;}
.spk-ex-tit>span{font-family:'Anton',sans-serif;font-size:1.2rem;color:var(--laranja);min-width:1.4rem;}
.spk-ex-tit strong{display:block;font-size:0.92rem;color:var(--cinza);line-height:1.4;}
.spk-ex-tit em{display:block;font-style:normal;font-size:0.75rem;color:var(--muted);margin-top:0.15rem;}
.spk-perguntas{margin:0.6rem 0 0 2.2rem;padding-left:1rem;font-size:0.84rem;line-height:1.55;color:var(--cinza);}
.spk-fontes{margin:0.5rem 0 0 2.2rem;font-size:0.75rem;color:var(--muted);}
.spk-fontes a{color:var(--verm);font-weight:700;}
.spk-treino{margin:0.7rem 0 0 2.2rem;padding:0.45rem 0.9rem;border:1px solid var(--verde);background:transparent;color:#0B7A5C;font-family:'Work Sans',sans-serif;font-size:0.68rem;font-weight:700;letter-spacing:0.06em;cursor:pointer;}
.spk-tarefa .spk-treino{margin-left:0;}
.spk-treino.rodando{background:var(--verde);color:#fff;}
.spk-det{margin:0.7rem 0 0 2.2rem;}
.spk-tarefa+.spk-det{margin-left:0;}
.spk-det summary{cursor:pointer;font-size:0.75rem;font-weight:700;color:var(--verm);letter-spacing:0.04em;}
.spk-enunciado{font-size:0.8rem;color:var(--muted);font-style:italic;margin:0.6rem 0;}
.spk-dialogo{margin-top:0.6rem;display:flex;flex-direction:column;gap:0.45rem;}
.spk-fala{margin:0;padding:0.55rem 0.8rem;font-size:0.86rem;line-height:1.55;max-width:88%;}
.spk-fala b{font-family:'Anton',sans-serif;font-weight:400;margin-right:0.5rem;}
.spk-fala-a{background:#FFF4E9;border-left:3px solid var(--laranja);align-self:flex-start;}
.spk-fala-b{background:rgba(16,171,130,0.08);border-left:3px solid var(--verde);align-self:flex-end;}
.spk-rot{display:inline-block;align-self:flex-start;font-size:0.6rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#0B7A5C;margin-top:0.3rem;}
.spk-apres{margin-top:0.6rem;}
.spk-apres p{font-size:0.86rem;line-height:1.65;color:var(--cinza);margin:0 0 0.7rem;}
.spk-apres .spk-rot{display:block;margin:0.6rem 0 0.2rem;}
@media(max-width:680px){
  .spk-wrap{padding:1.2rem 1rem 3rem;}
  .spk-provas{grid-template-columns:1fr;}
  .spk-perguntas,.spk-fontes,.spk-treino,.spk-det{margin-left:0;}
  .spk-fala{max-width:100%;}
}
/* Guia de Sprechen: bloco "No B2" */
.spk-b2{margin-top:1rem;background:rgba(255,90,31,0.07);border-left:4px solid var(--danger);padding:1rem 1.2rem;}
.spk-b2-tag{display:inline-block;font-size:0.6rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;background:var(--danger);color:#fff;padding:0.2rem 0.5rem;}
.spk-b2 p{font-size:0.85rem;line-height:1.6;color:var(--cinza);margin:0.5rem 0;}
.spk-b2 ul{margin:0;padding-left:1.1rem;font-size:0.84rem;line-height:1.55;color:var(--cinza);}
