/* ---------------------------------------------------------------------------
   Qual o encaixe? - visual

   A ideia e a prancheta: papel milimetrado claro, desenho a tinta, madeira em
   dois tons para as duas pecas se distinguirem. Identidade Projeto Marcenaria,
   isolada dentro de #pm-encaixe.
   --------------------------------------------------------------------------- */

#pm-encaixe{
  --ground:#FDF4E3; --panel:#FFFFFF; --panel-2:#FAF2E2;
  --ink:#3C3431; --ink-2:#5B4438; --muted:#7A6455;
  --rule:#E6D8C0; --rule-2:#F0E6D4;
  --brown:#705446; --brown-fg:#FFF9EE; --brown-soft:#F3E7D2;
  --tan:#E1C391;
  --mad-1:#EBD7B0; --mad-2:#D8BC8A; --cava:#8A6A4E; --grafite:#4A4340;
  --ok:#4F6E3A; --ok-soft:#EAF0E2; --bad:#A8452A; --bad-soft:#FBEADF;
  --sombra:0 1px 2px rgba(60,52,49,.06),0 12px 30px -18px rgba(60,52,49,.3);

  color-scheme:light; position:relative;
  background:var(--ground); color:var(--ink); text-align:left;
  font:400 15px/1.5 "Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  border-radius:14px; max-width:820px; margin:0 auto;
}
#pm-encaixe *{box-sizing:border-box}
#pm-encaixe h1,#pm-encaixe h2,#pm-encaixe h3,#pm-encaixe h4,#pm-encaixe p,
#pm-encaixe ol,#pm-encaixe ul{margin:0;padding:0;list-style:none;text-transform:none}
#pm-encaixe h1,#pm-encaixe h2,#pm-encaixe h3,#pm-encaixe h4{
  font-family:"Montserrat","Roboto",sans-serif;letter-spacing:-.015em;color:var(--ink)}
#pm-encaixe button{font:inherit;margin:0;min-height:0;line-height:1;cursor:pointer;
  text-transform:none;letter-spacing:normal;box-shadow:none;-webkit-appearance:none;appearance:none}
#pm-encaixe img{max-width:100%;height:auto;display:block}
#pm-encaixe a{color:var(--brown)}
#pm-encaixe :focus-visible{outline:2px solid var(--brown);outline-offset:2px}
#pm-encaixe [hidden]{display:none!important}

/* ---------- topo ---------- */
#pm-encaixe .topo{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;
  border-bottom:1px solid var(--rule)}
#pm-encaixe .topo img{width:42px;height:42px;border-radius:50%;flex:none}
#pm-encaixe .topo h1{font-size:20px;font-weight:900;line-height:1.1}
#pm-encaixe .topo .linha{font-size:12.5px;line-height:1.45;color:var(--muted);
  margin-top:4px;max-width:58ch}
#pm-encaixe .topo .conta{margin-left:auto;flex:none;text-align:right}
#pm-encaixe .topo .conta b{display:block;font:900 20px/1 "Montserrat",sans-serif;
  color:var(--brown);font-variant-numeric:tabular-nums}
#pm-encaixe .topo .conta span{font:500 9.5px/1.4 "Montserrat",sans-serif;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted)}

/* ---------- os dez pontos ---------- */
#pm-encaixe .trilha{display:flex;gap:5px;padding:10px 16px;background:var(--panel-2);
  border-bottom:1px solid var(--rule)}
#pm-encaixe .pt{flex:1 1 0;height:7px;border-radius:4px;background:var(--rule)}
#pm-encaixe .pt.certa{background:var(--ok)}
#pm-encaixe .pt.errada{background:var(--bad)}
#pm-encaixe .pt.aqui{background:var(--tan);box-shadow:0 0 0 2px var(--brown)}

/* ---------- a prancheta: onde o desenho aparece ---------- */
#pm-encaixe .mesa{padding:16px}
#pm-encaixe .prancheta{position:relative;border:1px solid var(--rule);border-radius:12px;
  background:
    repeating-linear-gradient(0deg,rgba(112,84,70,.07) 0 1px,transparent 1px 20px),
    repeating-linear-gradient(90deg,rgba(112,84,70,.07) 0 1px,transparent 1px 20px),
    var(--panel);
  padding:8px;margin-bottom:14px}
#pm-encaixe .prancheta svg{display:block;width:100%;height:auto;max-height:250px}

/* as pecas do desenho */
#pm-encaixe .prancheta .p1{fill:var(--mad-1);stroke:var(--grafite);stroke-width:2.4}
#pm-encaixe .prancheta .p2{fill:var(--mad-2);stroke:var(--grafite);stroke-width:2.4}
#pm-encaixe .prancheta .cv{fill:var(--cava);stroke:var(--grafite);stroke-width:2}
#pm-encaixe .prancheta .pn{fill:var(--tan);stroke:var(--grafite);stroke-width:2}
#pm-encaixe .prancheta .vg{stroke:var(--cava);stroke-width:1.1;opacity:.5}
#pm-encaixe .prancheta .gd{stroke:var(--grafite);stroke-width:1.4;stroke-dasharray:6 5;
  opacity:.6}
#pm-encaixe .prancheta .gdf{fill:none;stroke:var(--grafite);stroke-width:1.4;
  stroke-dasharray:6 5;opacity:.7}
#pm-encaixe .prancheta.mini{padding:4px;margin:0;border-radius:8px}
#pm-encaixe .prancheta.mini svg{max-height:74px}

/* ---------- pergunta ---------- */
#pm-encaixe .cab{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-bottom:11px}
#pm-encaixe .chip{font:600 10px/1 "Montserrat",sans-serif;letter-spacing:.09em;
  text-transform:uppercase;background:var(--brown-soft);color:var(--ink-2);
  padding:6px 10px;border-radius:999px}
#pm-encaixe .chip.n{background:var(--panel);border:1px solid var(--rule);color:var(--muted)}
#pm-encaixe .q{font:700 19px/1.35 "Montserrat",sans-serif;margin-bottom:14px;text-wrap:balance;
  overflow-wrap:break-word}
/* o minmax(0,1fr) e o que impede a coluna de crescer com o conteudo:
   sem ele o grid usa o min-content do botao e a tela estoura no celular */
#pm-encaixe .alts{display:grid;grid-template-columns:minmax(0,1fr);gap:9px}
#pm-encaixe .alt{display:flex;gap:11px;align-items:flex-start;text-align:left;width:100%;
  min-width:0;padding:13px 15px;border-radius:11px;border:1px solid var(--rule);
  background:var(--panel);color:var(--ink);font:500 15px/1.4 "Roboto",sans-serif;
  white-space:normal}
/* item de flex nasce com min-width:auto e nao encolhe abaixo da palavra mais
   longa -- e por isso que alternativa comprida empurrava a largura para fora */
#pm-encaixe .alt .t{flex:1 1 auto;min-width:0;overflow-wrap:break-word;word-break:break-word}
#pm-encaixe .alt:hover:not(:disabled){border-color:var(--brown);background:var(--brown-soft)}
#pm-encaixe .alt b{flex:none;width:24px;height:24px;border-radius:50%;background:var(--brown-soft);
  color:var(--ink-2);font:700 12px/24px "Montserrat",sans-serif;text-align:center}
#pm-encaixe .alt.certa{background:var(--ok-soft);border-color:var(--ok)}
#pm-encaixe .alt.certa b{background:var(--ok);color:#fff}
#pm-encaixe .alt.errada{background:var(--bad-soft);border-color:var(--bad)}
#pm-encaixe .alt.errada b{background:var(--bad);color:#fff}
#pm-encaixe .alt:disabled{cursor:default}

/* ---------- resultado da pergunta ---------- */
#pm-encaixe .resu{background:var(--panel-2);border-left:3px solid var(--ok);
  border-radius:0 11px 11px 0;padding:13px 15px;margin-top:14px;font-size:14px;line-height:1.5}
#pm-encaixe .resu.nao{border-left-color:var(--bad)}
#pm-encaixe .resu strong{display:block;font:700 15.5px/1.3 "Montserrat",sans-serif;
  margin-bottom:4px}
#pm-encaixe .resu .nm{color:var(--brown)}
#pm-encaixe .resu a{display:inline-block;margin-top:10px;padding:9px 14px;border-radius:9px;
  background:var(--brown);color:var(--brown-fg);text-decoration:none;
  font:600 12.5px/1 "Roboto",sans-serif}
#pm-encaixe .resu .revela{margin-top:11px}
#pm-encaixe .segue{display:flex;justify-content:flex-end;margin-top:14px}

/* ---------- botoes ---------- */
#pm-encaixe .b{font:600 14px/1 "Roboto",sans-serif;padding:13px 20px;border-radius:10px;
  border:1px solid var(--rule);background:var(--panel);color:var(--ink)}
#pm-encaixe .b-p{background:var(--brown);border-color:var(--brown);color:var(--brown-fg)}
#pm-encaixe .b-p:hover{filter:brightness(1.1)}

/* ---------- fim de rodada ---------- */
#pm-encaixe .fim{position:absolute;inset:0;z-index:50;display:flex;align-items:center;
  justify-content:center;padding:16px;background:rgba(60,52,49,.58)}
#pm-encaixe .cart{background:var(--panel);border-radius:14px;box-shadow:var(--sombra);
  padding:22px;max-width:500px;width:100%;max-height:100%;overflow:auto}
#pm-encaixe .cart h3{font-size:21px;font-weight:900;line-height:1.2;margin-bottom:4px}
#pm-encaixe .cart .obs{font-size:13.5px;color:var(--muted);line-height:1.5;margin-bottom:15px}
#pm-encaixe .nota{background:var(--brown-soft);border-radius:12px;padding:16px;
  text-align:center;margin-bottom:15px}
#pm-encaixe .nota b{font:900 40px/1 "Montserrat",sans-serif;color:var(--brown)}
#pm-encaixe .nota span{display:block;font:600 12px/1.3 "Montserrat",sans-serif;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-top:5px}

/* os que ficaram devendo, com o desenho ao lado: e a parte que ensina */
#pm-encaixe .faltou h4{font:900 11px/1.3 "Montserrat",sans-serif;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin-bottom:9px}
#pm-encaixe .faltou li{display:flex;gap:11px;align-items:center;padding:8px 0;
  border-top:1px solid var(--rule-2)}
#pm-encaixe .faltou li:first-child{border-top:0}
#pm-encaixe .faltou .dsn{flex:none;width:104px}
#pm-encaixe .faltou .nm{font:700 13.5px/1.3 "Montserrat",sans-serif}
#pm-encaixe .faltou .uso{font-size:12px;line-height:1.45;color:var(--muted);margin-top:2px}

#pm-encaixe .placar{display:flex;gap:1px;background:var(--rule);border:1px solid var(--rule);
  border-radius:10px;overflow:hidden;margin:15px 0 0}
#pm-encaixe .placar div{flex:1;background:var(--panel-2);padding:10px 6px;text-align:center}
#pm-encaixe .placar span{display:block;font:500 8.5px/1.3 "Montserrat",sans-serif;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
#pm-encaixe .placar b{font:900 15px/1.2 "Montserrat",sans-serif}
#pm-encaixe .cta{border:1px solid var(--rule);border-left:3px solid var(--brown);
  border-radius:0 10px 10px 0;background:var(--brown-soft);padding:12px 14px;margin-top:15px;
  font-size:13px;color:var(--ink-2);line-height:1.45}
#pm-encaixe .acoes{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
#pm-encaixe .toast{position:absolute;left:50%;transform:translateX(-50%);top:12px;z-index:60;
  background:var(--ink);color:var(--ground);padding:10px 15px;border-radius:9px;
  font:500 13px/1.35 "Roboto",sans-serif;max-width:88%;text-align:center;
  box-shadow:0 8px 24px -10px rgba(0,0,0,.5)}
#pm-encaixe .carregando{padding:48px 20px;text-align:center;color:var(--muted);font-size:14px}

@media (max-width:560px){
  #pm-encaixe{border-radius:0}
  #pm-encaixe .topo{padding:12px}
  #pm-encaixe .topo h1{font-size:18px}
  #pm-encaixe .mesa{padding:13px 12px}
  #pm-encaixe .q{font-size:16.5px}
  #pm-encaixe .alt{padding:12px 13px;font-size:14.5px}
  #pm-encaixe .prancheta svg{max-height:200px}
  #pm-encaixe .cart{padding:16px}
  #pm-encaixe .faltou .dsn{width:82px}
}
@media (prefers-reduced-motion:reduce){#pm-encaixe *{animation:none!important;transition:none!important}}

/* ---------- o botao do ranking, no topo ---------- */
#pm-encaixe .topo{flex-wrap:wrap}
#pm-encaixe .b-rk{display:inline-flex;align-items:center;gap:6px;flex:none;align-self:center;
  font:600 11.5px/1 "Montserrat",sans-serif;letter-spacing:.04em;
  color:var(--ink-2);background:var(--panel);border:1px solid var(--rule);
  border-radius:999px;padding:9px 13px}
#pm-encaixe .b-rk .ico{font:700 14px/1 "Roboto Mono",monospace;color:var(--brown)}
#pm-encaixe .b-rk:hover{border-color:var(--brown);background:var(--brown-soft)}

/* ---------- a portaria: tela inicial e regras ---------- */
#pm-encaixe .portaria h2{font:900 21px/1.2 "Montserrat",sans-serif;margin-bottom:8px;
  text-wrap:balance}
#pm-encaixe .portaria .lede{font-size:14px;line-height:1.55;color:var(--muted);
  margin-bottom:18px;max-width:52ch}
#pm-encaixe .portaria .lede b{color:var(--ink-2)}
#pm-encaixe .portaria .placar{margin-bottom:18px}
#pm-encaixe .portaria .acoes{margin-top:4px}
#pm-encaixe .b-gr{padding:14px 24px;font-size:15px}

#pm-encaixe .portaria.regras h2{margin-bottom:6px}
#pm-encaixe .portaria.regras h3{font:900 14px/1.3 "Montserrat",sans-serif;
  margin:20px 0 7px;color:var(--ink)}
#pm-encaixe .portaria.regras p{font-size:13.5px;line-height:1.6;color:var(--ink-2);
  max-width:56ch}

#pm-encaixe .lista-tp{display:grid;gap:10px;margin:2px 0 0}
#pm-encaixe .lista-tp li{background:var(--panel-2);border:1px solid var(--rule);
  border-left:3px solid var(--brown);border-radius:0 10px 10px 0;padding:11px 13px}
#pm-encaixe .lista-tp b{font:700 13.5px/1.3 "Montserrat",sans-serif;color:var(--ink)}
#pm-encaixe .lista-tp span{display:block;font-size:12.5px;line-height:1.55;
  color:var(--muted);margin-top:5px}
#pm-encaixe .lista-tp span b{font:inherit;font-weight:700;color:var(--ink-2)}

/* ---------- o ranking do mes, dentro do cartao final ---------- */
#pm-encaixe .rk{border:1px solid var(--rule);border-radius:11px;background:var(--panel-2);
  padding:13px 14px;margin-bottom:13px}
#pm-encaixe .rk:empty{display:none}
#pm-encaixe .rk-cab{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:8px}
#pm-encaixe .rk-cab b{font:900 14px/1.2 "Montserrat",sans-serif;color:var(--ink)}
#pm-encaixe .rk-cab span{font:500 9.5px/1.3 "Montserrat",sans-serif;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);margin-left:auto}
#pm-encaixe .rk-txt{font-size:12.5px;line-height:1.5;color:var(--muted);margin-bottom:10px}
#pm-encaixe .rk-indo{padding:22px 10px;text-align:center;color:var(--muted);font-size:13.5px}

#pm-encaixe .rk-campo{margin-bottom:10px}
#pm-encaixe .rk-campo label{display:block;font:600 11px/1.3 "Montserrat",sans-serif;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);margin-bottom:5px}
#pm-encaixe .rk-campo label i{font-style:normal;font-weight:500;color:var(--muted);
  text-transform:none;letter-spacing:0}
#pm-encaixe .rk-campo input{width:100%;font:400 15px/1.3 "Roboto",sans-serif;color:var(--ink);
  background:var(--panel);border:1px solid var(--rule);border-radius:9px;padding:11px 12px;
  -webkit-appearance:none;appearance:none;box-shadow:none;margin:0;min-height:0}
#pm-encaixe .rk-campo input:focus{border-color:var(--brown);outline:none;
  box-shadow:0 0 0 3px var(--brown-soft)}

#pm-encaixe .rk-aceite{display:flex;gap:8px;align-items:flex-start;margin-bottom:11px;
  font-size:12px;line-height:1.45;color:var(--muted);cursor:pointer}
#pm-encaixe .rk-aceite input{flex:none;margin:2px 0 0;width:16px;height:16px;
  accent-color:var(--brown)}

#pm-encaixe .rk-erro{background:var(--bad-soft);color:var(--bad);border-radius:8px;
  padding:9px 11px;font-size:12.5px;line-height:1.45;margin-bottom:10px}

#pm-encaixe .rk-sua{display:flex;align-items:center;gap:11px;background:var(--brown-soft);
  border-radius:10px;padding:11px 13px;margin-bottom:11px}
#pm-encaixe .rk-sua b{font:900 22px/1 "Montserrat",sans-serif;color:var(--brown);
  font-variant-numeric:tabular-nums;flex:none}
#pm-encaixe .rk-sua span{font-size:12.5px;line-height:1.4;color:var(--ink-2)}

#pm-encaixe .rk-tab{width:100%;table-layout:fixed;border-collapse:collapse;margin-bottom:10px;
  font-variant-numeric:tabular-nums}
#pm-encaixe .rk-tab col.c-pos{width:26px}
#pm-encaixe .rk-tab col.c-ac{width:74px}
#pm-encaixe .rk-tab col.c-tmp{width:56px}
#pm-encaixe .rk-tab th{font:500 9.5px/1.3 "Montserrat",sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);text-align:left;padding:0 6px 6px;
  border:0;background:none}
#pm-encaixe .rk-tab td{font-size:13px;color:var(--ink-2);padding:7px 6px;
  border:0;border-top:1px solid var(--rule-2);background:none;
  overflow-wrap:break-word;word-break:break-word}
#pm-encaixe .rk-tab td b{color:var(--ink);font-weight:700}
#pm-encaixe .rk-tab .pos{font:700 13px/1 "Montserrat",sans-serif;color:var(--muted)}
#pm-encaixe .rk-tab tr.eu td{background:var(--tan);color:var(--ink)}
#pm-encaixe .rk-tab tr:first-child .pos{color:var(--cava)}

/* ---------- o ranking solto, do atalho proprio ---------- */
.pme-rank-solto{--e-ink:#3C3431;--e-muted:#7A6455;--e-rule:#E6D8C0;--e-panel:#FFFFFF;
  --e-warn:#8A6A4E;
  background:var(--e-panel);border:1px solid var(--e-rule);border-radius:14px;
  padding:18px 20px;max-width:540px;margin:0 auto;color:var(--e-ink);
  font:400 15px/1.5 "Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.pme-rank-solto h3{font:900 18px/1.2 "Montserrat","Roboto",sans-serif;margin:0 0 12px;
  color:var(--e-ink)}
.pme-rank-solto .pme-rank{width:100%;table-layout:fixed;border-collapse:collapse;margin:0;
  font-variant-numeric:tabular-nums;background:none}
.pme-rank-solto .pme-rank col.c-pos{width:30px}
.pme-rank-solto .pme-rank col.c-ac{width:92px}
.pme-rank-solto .pme-rank col.c-tmp{width:64px}
.pme-rank-solto .pme-rank th{font:500 10px/1.3 "Montserrat",sans-serif;letter-spacing:.08em;
  text-transform:uppercase;color:var(--e-muted);text-align:left;padding:0 7px 7px;
  border:0;background:none}
.pme-rank-solto .pme-rank td{font-size:14px;color:var(--e-ink);padding:9px 7px;
  border:0;border-top:1px solid var(--e-rule);background:none;
  overflow-wrap:break-word;word-break:break-word}
.pme-rank-solto .pme-rank .pos{font:700 14px/1 "Montserrat",sans-serif;color:var(--e-muted)}
.pme-rank-solto .pme-rank tr:first-child .pos{color:var(--e-warn)}
.pme-rank-solto .pme-rank-pe,
.pme-rank-solto .pme-rank-vazio{font-size:12.5px;line-height:1.5;color:var(--e-muted);
  margin:12px 0 0}

@media (max-width:520px){
  #pm-encaixe .b-rk{padding:8px 11px;font-size:11px}
  #pm-encaixe .portaria h2{font-size:18.5px}
  #pm-encaixe .b-gr{padding:13px 18px;font-size:14.5px;flex:1 1 100%}
  #pm-encaixe .rk{padding:12px}
  #pm-encaixe .rk-tab td{font-size:12.5px;padding:7px 4px}
  #pm-encaixe .rk-tab th{padding:0 4px 6px}
  .pme-rank-solto{padding:15px 14px;border-radius:0}
}
