/* ===== Bloco style #1 ===== */
:root{
    --bg:#1A1526;
    --panel:#1A1526;
    --panel-2:#251E38;
    --line:#3B3057;
    --text:#F5F0E9;
    --muted:#B9AED2;
    --dim:#8779A8;
    --accent:#F2A65A;
    --accent-dim:#5A3D20;
    --gold:#F2C94C;
    --blood:#E5698A;
    --verde:#63C99A;
    --perigo:#F45781;
    --perigo2:#E03131;
    --panel-3:#2A2240;
    --mobname:#F0A0BE;
    --arena-1:#3A2F57;
    --arena-2:#2C2444;
    --arena-3:#221B36;
    --sel-bg:#342A50;
    --poco:#1F1930;
    --xp2:#F2C94C;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  body{background:var(--bg);color:var(--text);font-family:'Outfit',system-ui,sans-serif;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;padding:16px}
  .app{width:100%;max-width:400px;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden}
  .tasks{flex:1}
  .nav{margin-top:auto}

  .topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}
  .lvl{font-family:'Silkscreen',monospace;font-size:9px;color:var(--accent);background:var(--accent-dim);padding:5px 9px;border-radius:4px}
  .coins{display:flex;align-items:center;gap:6px;font-family:'Silkscreen',monospace;font-size:10px;color:var(--gold)}
  .coins svg{width:13px;height:13px}

  .arena{padding:22px 18px 18px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
  .fight{display:flex;align-items:flex-end;justify-content:center;gap:28px;margin-bottom:16px}
  .fighter{display:flex;flex-direction:column;align-items:center;gap:8px;flex:none}
  .fighter svg{image-rendering:pixelated}
  .hero-sprite svg{width:74px;height:74px;transition:transform .18s}
  .mob-sprite svg{width:78px;height:78px;transition:transform .18s,opacity .35s}
  .mob-sprite.dead svg{opacity:0;transform:translateY(14px) scale(.6) rotate(12deg)}
  .mob-sprite.fugiu svg{animation:fuga .55s ease-in forwards}
  .mob-sprite.espreita svg{opacity:.4;filter:grayscale(.5)}
  @keyframes fuga{
    0%{opacity:1;transform:none}
    25%{transform:translateX(6px) translateY(-4px)}
    100%{opacity:0;transform:translateX(46px) translateY(-10px) scale(.65)}
  }
  .coin-drop{position:absolute;width:14px;height:14px;pointer-events:none;animation:coinFall .85s ease-in forwards;left:0;top:0}
  .coin-drop svg{width:100%;height:100%;image-rendering:pixelated}
  @keyframes coinFall{
    0%{transform:translate(-50%,-50%) scale(1) rotate(0deg);opacity:1}
    100%{transform:translate(calc(-50% + var(--dx)),64px) scale(.65) rotate(180deg);opacity:0}
  }
  /* item 40 do roadmap: "damage number" positivo, mesma tecnica de
     origem/posicionamento de .coin-drop (left/top absolutos calculados
     em JS a partir do centro do #mobSprite) -- so troca queda por subida */
  .dmg-float{position:absolute;left:0;top:0;pointer-events:none;
    animation:dmgFloat 1.6s ease-out forwards;
    display:flex;align-items:center;gap:3px;white-space:nowrap;
    font-family:'Silkscreen',monospace;font-size:13px;font-weight:700;
    text-shadow:0 1px 2px rgba(0,0,0,.6)}
  /* variante pra fora da Arena (Inventario, e qualquer outra tela sem
     .arena como container relativo) -- mesma animacao, so troca pra
     position:fixed com coordenadas de viewport, empilhada acima de
     overlays/fichas (z-index 200) pois a ficha fecha logo em seguida */
  .dmg-float.fixo{position:fixed;z-index:200}
  /* pedido do usuario (27/08): mensagens tipo "Voce comprou X"/"Voce
     melhorou Fortuna" podem ser longas -- sem isso, nowrap fazia o texto
     estourar pra fora da tela quando o botao de origem ficava perto da
     borda (bug reportado: "ficou cortado, saiu pra fora") */
  .dmg-float.msg{display:block;white-space:normal;text-align:center;max-width:190px;
    line-height:1.4;font-size:10.5px;font-weight:600;letter-spacing:.02em}
  .dmg-float svg{width:13px;height:13px;image-rendering:pixelated;flex-shrink:0}
  /* moeda em --gold (mesma cor de .coins no topbar e .toast.gold), XP em
     cor neutra (mesma familia de .xpnum) -- app ja diferencia os dois
     assim em todo outro lugar, uma cor unica pra tudo quebrava esse padrao */
  .dmg-float .dmg-moeda{color:var(--gold)}
  .dmg-float .dmg-sep{color:var(--muted);font-weight:500}
  .dmg-float .dmg-xp{color:var(--text)}
  @keyframes dmgFloat{
    0%{transform:translate(-50%,-50%) scale(.8);opacity:0}
    10%{transform:translate(-50%,-60%) scale(1);opacity:1}
    70%{transform:translate(-50%,calc(-50% - 40px)) scale(1);opacity:1}
    100%{transform:translate(-50%,calc(-50% - 55px)) scale(1);opacity:0}
  }
  .vs{font-family:'Outfit',sans-serif;font-size:11px;font-weight:500;color:var(--dim);padding-bottom:30px;letter-spacing:1px}
  .mobinfo{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:opacity .3s}
  .mobinfo.off{opacity:0}
  /* estado de vitoria */
  .arena.venceu .fight{gap:0}
  .arena.venceu .vs{opacity:0;width:0;padding:0;overflow:hidden}
  .arena.venceu .fighter.mob{width:0;overflow:hidden}
  .vitoria{display:none;flex-direction:column;align-items:center;gap:5px;margin-top:2px}
  .vitoria.on{display:flex;animation:subir .4s ease-out}
  .vitoria.on .faixa{animation:faixaPunch .5s ease-out .35s both}
  @keyframes faixaPunch{
    0%{transform:scale(1);text-shadow:none}
    40%{transform:scale(1.28);text-shadow:0 0 14px var(--gold)}
    100%{transform:scale(1);text-shadow:0 0 6px var(--gold)}
  }
  .vitoria .faixa{font-family:'Silkscreen',monospace;font-size:11px;color:var(--accent);letter-spacing:1px;display:inline-block}
  .vitoria .ganho{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--gold)}
  .vitoria .ganho svg{width:12px;height:12px;image-rendering:pixelated}
  /* item pedido pelo usuario: burst de faiscas radiando da faixa DIA
     VENCIDO, mesma tecnica posicional de .coin-drop/.dmg-float */
  .vitoria-spark{position:absolute;left:0;top:0;width:8px;height:8px;pointer-events:none;
    animation:vitoriaSpark .65s ease-out forwards}
  .vitoria-spark svg{width:100%;height:100%;image-rendering:pixelated}
  @keyframes vitoriaSpark{
    0%{transform:translate(-50%,-50%) scale(.3);opacity:0}
    25%{transform:translate(-50%,-50%) scale(1);opacity:1}
    100%{transform:translate(calc(-50% + var(--sx)),calc(-50% + var(--sy))) scale(.25);opacity:0}
  }
  @keyframes subir{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .mobname{font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;color:var(--blood)}
  .mobhp{font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;color:var(--text);
         font-variant-numeric:tabular-nums}
  .mobhp.golpe{animation:hpGolpe .35s ease-out}
  @keyframes hpGolpe{0%{color:var(--perigo);transform:scale(1.35)}100%{color:var(--text);transform:scale(1)}}

  .xpwrap{padding:14px 18px;border-bottom:1px solid var(--line)}
  .xprow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
  .perfilhero .xprow{gap:8px}
  .perfilhero .xprow .xplabel{flex:none}
  .perfilhero .xprow .xpnum{flex:none;white-space:nowrap}
  .xplabel{font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;color:var(--muted)}
  .xpnum{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
  .bar{height:9px;background:var(--panel-2);border:1px solid var(--line);border-radius:3px;padding:2px}
  .fill{height:100%;width:0%;background:linear-gradient(180deg,#7FCBF3,#3F9BD6);border-radius:2px;transition:width .45s cubic-bezier(.4,1.3,.5,1)}

  .tasks{padding:16px 18px 8px;flex:1}
  .thead{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}
  .ttitle{font-size:15px;font-weight:500}
  .tcount{font-size:12px;color:var(--dim)}
  .add{background:transparent;color:var(--accent);border:1px solid var(--accent-dim);border-radius:8px;padding:6px 12px;font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}
  .add:hover{background:var(--accent-dim)}
  .list{display:flex;flex-direction:column;gap:7px}
  .task{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--accent-dim);border-radius:10px;padding:12px 13px;cursor:pointer;transition:border-color .15s,opacity .2s}
  .task:hover{border-color:var(--dim);border-left-color:var(--accent)}
  .box{width:19px;height:19px;flex:none;border:1.5px solid var(--dim);border-radius:5px;display:grid;place-items:center;transition:all .18s}
  .box svg{width:11px;height:11px;opacity:0;transition:opacity .15s}
  .task.done .box{background:var(--accent);border-color:var(--accent)}
  .task.done .box svg{opacity:1}
  .task.done .label{color:var(--dim);text-decoration:line-through}
  .task.done{opacity:.6}
  .task.vanish{opacity:0;transform:translateX(40px);transition:opacity .3s,transform .3s}
  .task.tap{transform:scale(.97);transition:transform .12s}
  .tinfo{display:flex;flex-direction:column;gap:2px;min-width:0}
  .label{font-size:14px;line-height:1.3}
  .repeat{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);letter-spacing:0}
  .vezesbadge{font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;color:var(--accent);
              letter-spacing:0}
  .del{margin-left:auto;background:none;border:none;color:var(--dim);font-size:16px;cursor:pointer;padding:0 2px;line-height:1;opacity:.35;transition:opacity .15s}
  .task:hover .del{opacity:1}
  .empty{text-align:center;color:var(--dim);font-size:13px;padding:26px 12px;border:1px dashed var(--line);border-radius:10px;line-height:1.5}

  .composer{display:none;flex-direction:column;gap:10px;margin-top:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:13px}
  .composer.on{display:flex}
  .composer input{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:11px 12px;font-family:'Outfit',sans-serif;font-size:14px;outline:none;width:100%}
  .composer input:focus{border-color:var(--accent-dim)}
  .modes{display:flex;gap:6px}
  .mode{flex:1;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:8px;font-family:'Outfit',sans-serif;font-size:12px;cursor:pointer;transition:.15s}
  .mode.on{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}
  .days{display:none;gap:4px}
  .days.on{display:flex}
  .day{flex:1;background:var(--panel);color:var(--dim);border:1px solid var(--line);border-radius:7px;padding:8px 0;font-family:'Silkscreen',monospace;font-size:8px;cursor:pointer;transition:.15s}
  .day.on{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}
  .cbtn{background:var(--accent);color:var(--bg);border:none;border-radius:9px;padding:11px;font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;cursor:pointer}

  .nav{display:flex;border-top:1px solid var(--line);background:var(--panel-2);margin-top:14px}
  .nav button{flex:1;background:none;border:none;cursor:pointer;padding:11px 6px 14px;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--dim);font-family:'Outfit',sans-serif;font-size:11px;font-weight:500;letter-spacing:0;transition:color .15s}
  .nav button svg{width:23px;height:23px}
  .nav button.on{color:var(--accent)}

  .toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:var(--accent);color:var(--bg);font-family:'Silkscreen',monospace;font-size:10px;padding:11px 18px;border-radius:8px;opacity:0;pointer-events:none;transition:all .3s;text-align:center;z-index:200}
  .toast.gold{background:var(--gold)}
  .toast.fuga{background:var(--blood);color:#fff}

  /* boas-vindas */
  .intro{position:fixed;inset:0;background:var(--bg);z-index:80;display:flex;justify-content:center;padding:20px;overflow-y:auto}
  .intro.off{display:none}
  .card{width:100%;max-width:400px;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:10px 4px 24px}
  .passo{display:none;flex-direction:column;gap:18px}
  .passo.on{display:flex}
  .marca{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
  .marca svg{width:80px;height:80px;image-rendering:pixelated}
  .titulo{font-family:'Silkscreen',monospace;font-size:20px;color:var(--accent);letter-spacing:1px}
  .lema{font-size:15px;color:var(--muted);line-height:1.5;max-width:280px}
  .regras{display:flex;flex-direction:column;gap:11px}
  .regra{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:13px 14px}
  .regra .ic{width:26px;height:26px;flex:none;display:grid;place-items:center;background:var(--accent-dim);border-radius:7px;color:var(--accent);font-family:'Silkscreen',monospace;font-size:10px}
  .regra p{font-size:13.5px;line-height:1.45;color:var(--text)}
  .regra p b{color:var(--accent);font-weight:600}
  .campo{display:flex;flex-direction:column;gap:8px}
  .campo label{font-size:13px;color:var(--muted)}
  .campo input{background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:13px 14px;font-family:'Outfit',sans-serif;font-size:15px;outline:none}
  .campo input:focus{border-color:var(--accent-dim)}
  .primario{background:var(--accent);color:var(--bg);border:none;border-radius:11px;padding:14px;font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;cursor:pointer;width:100%}
  .secundario{background:none;border:none;color:var(--dim);font-family:'Outfit',sans-serif;font-size:13px;cursor:pointer;padding:6px}
  .listaini{display:flex;flex-direction:column;gap:7px;min-height:10px}
  .itemini{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:14px}
  .itemini button{margin-left:auto;background:none;border:none;color:var(--dim);font-size:16px;cursor:pointer}
  .dica{font-size:12px;color:var(--dim);text-align:center;line-height:1.5}
  #nomeTopo{font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap}
  @media (max-width:520px){
    body{padding:0}
    .app{max-width:none;border:none;border-radius:0;min-height:100vh;min-height:100dvh}
    .topbar{padding-top:max(12px, env(safe-area-inset-top))}
    .nav{padding-bottom:max(0px, env(safe-area-inset-bottom))}
  }
    .debugbar{position:fixed;bottom:calc(72px + env(safe-area-inset-bottom));left:8px;display:flex;gap:5px;z-index:50}
  .debugbtn{background:rgba(29,34,43,.9);color:var(--dim);border:1px dashed var(--line);border-radius:6px;padding:4px 8px;font-family:'Outfit',sans-serif;font-size:10px;cursor:pointer}
  .debugbtn:hover{color:var(--text);border-color:var(--dim)}
  .toast.on{opacity:1;transform:translate(-50%,0)}

/* ===== Bloco style #2 ===== */
/* ---------- identidade: minimalista + dark fantasy ---------- */
  :root{
    --bg:#0F1216;
    --panel:#0F1216;
    --panel-2:#151A20;
    --line:#232A33;
    --text:#E6E9ED;
    --muted:#8A93A0;
    --dim:#5A6470;
    --accent:#C9A961;
    --accent-dim:#3A2F18;
    --gold:#C9A961;
    --blood:#9E3B3B;
  }

  /* superficies sem caixas: hairlines e respiro */
  .app{background:transparent;border:none;border-radius:0;box-shadow:none}
  .topbar{border-bottom:1px solid var(--line);padding:16px 20px}
  .arena{border-bottom:1px solid var(--line);background:
      radial-gradient(70% 90% at 50% 40%, rgba(201,169,97,.05) 0%, transparent 70%);
      box-shadow:none;padding:30px 20px 22px}
  .xpwrap{padding:16px 20px;border-bottom:1px solid var(--line)}
  .tasks{padding:20px}

  /* tipografia: serifa para o mundo do jogo, sans para a interface */
  .lvl{font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:600;letter-spacing:.1em;
       text-transform:uppercase;color:var(--accent);background:none;padding:0;border-radius:0}
  .coins{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;letter-spacing:.04em}
  .mobname{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;font-weight:500;
           color:#C4787A;letter-spacing:.02em}
  #nomeTopo{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;letter-spacing:.02em;color:var(--text)}
  .vs{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:13px;color:var(--dim);letter-spacing:.06em}
  .ttitle{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;letter-spacing:.01em}
  .tcount{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
  .xplabel{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .xpnum{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;color:var(--text)}
  .faixa{font-family:'Cormorant Garamond',serif !important;font-size:20px !important;font-weight:600;
         letter-spacing:.18em;text-transform:uppercase;color:var(--accent) !important}

  /* barras finas, sem moldura */
  .bar{height:3px;background:var(--line);border:none;border-radius:0;padding:0}
  .fill{background:var(--accent) !important;border-radius:0}

  /* tarefas: linhas, nao cartoes */
  .task{background:transparent;border:none;border-left:none;border-bottom:1px solid var(--line);
        border-radius:0;padding:16px 2px;box-shadow:none}
  .task:hover{background:rgba(201,169,97,.03);transform:none;box-shadow:none}
  .box{border-radius:50%;border:1px solid var(--dim);width:20px;height:20px}
  .task.done .box{background:var(--accent);border-color:var(--accent)}
  .task .txt{font-size:17px;font-weight:400}
  .task .sub{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}

  /* botao: contorno fino dourado */
  .add{background:transparent !important;color:var(--accent) !important;border:1px solid var(--accent-dim) !important;
       border-radius:2px !important;padding:9px 16px !important;font-size:13px !important;font-weight:500 !important;
       letter-spacing:.06em;text-transform:uppercase;box-shadow:none !important}
  .add:hover{background:var(--accent-dim) !important;filter:none}

  .empty{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18px;color:var(--muted);
         border:none;background:none}

  /* menu inferior: discreto */
  .nav{background:transparent;border-top:1px solid var(--line)}
  .nav button{font-size:12px;letter-spacing:.08em;text-transform:uppercase}

  /* onboarding */
  .titulo{font-family:'Cormorant Garamond',serif !important;font-size:34px !important;font-weight:600;
          letter-spacing:.22em;color:var(--accent) !important}
  .lema{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:17px;line-height:1.5}
  .primario{background:transparent !important;color:var(--accent) !important;border:1px solid var(--accent) !important;
            border-radius:2px !important;letter-spacing:.1em;text-transform:uppercase;font-size:13px !important}
  .primario:hover{background:var(--accent-dim) !important}
  .regra .ic{background:none;border:1px solid var(--accent-dim);color:var(--accent);border-radius:50%;
             font-family:'Cormorant Garamond',serif;font-size:13px}
  .card{background:transparent;border:none}

  .toast{border-radius:2px;letter-spacing:.1em;text-transform:uppercase;font-size:11px}

/* ===== Bloco style #3 ===== */
/* vinheta e textura fina sobre o app inteiro */
  body::after{
    content:'';position:fixed;inset:0;pointer-events:none;z-index:5;
    background:radial-gradient(120% 90% at 50% 45%, transparent 55%, rgba(0,0,0,.45) 100%);
  }
  .app{position:relative}

  /* losango ornamental depois do titulo da lista */
  .ttitle::after{
    content:'◆';margin-left:9px;font-size:9px;color:var(--accent);opacity:.5;vertical-align:middle
  }

  /* nivel com filetes dos dois lados */
  .lvl{display:inline-flex;align-items:center;gap:9px}
  .lvl::before,.lvl::after{content:'';width:16px;height:1px;background:var(--accent);opacity:.4}

  /* respiro entre o herói e o rodapé da arena */
  .mobinfo{margin-top:10px}

  .hero-sprite{position:relative}

/* ===== Bloco style #4 ===== */
/* ---------- layout: tela cheia, so a lista rola ---------- */
  html,body{height:100%;overflow:hidden}
  .app{height:100dvh;max-height:100dvh;overflow:hidden}
  .topbar,.arena,.xpwrap,.nav{flex:none}
  .tasks{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .thead{flex:none}
  .list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
        scrollbar-width:thin;scrollbar-color:var(--line) transparent}
  .list::-webkit-scrollbar{width:4px}
  .list::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}
  .composer{flex:none}

  /* arena mais compacta em telas baixas, pra caber sem apertar a lista */
  @media (max-height:700px){
    .arena{padding:18px 20px 14px}
    .xpwrap{padding:12px 20px}
    .tasks{padding:14px 20px}
  }

  /* no desktop o cartao nao encosta nas bordas */
  @media (min-width:521px){
    body{overflow:auto;padding:16px}
    .app{height:auto;max-height:calc(100dvh - 32px)}
  }

  /* o onboarding continua podendo rolar */
  .intro{overflow-y:auto}

/* ===== Bloco style #5 ===== */
/* ---------- dialogo de apresentacao por tela (1x por aba) ---------- */
  .dlgOverlay{position:fixed;inset:0;background:rgba(4,3,7,.62);z-index:97;
              opacity:0;pointer-events:none;transition:opacity .2s}
  .dlgOverlay.on{opacity:1;pointer-events:auto}

  /* replica o max-width:400px + centralizacao do .app -- ver comentario no JS
     que monta este overlay (busca por "dlgStage") pra entender o motivo */
  .dlgStage{position:absolute;inset:0;max-width:400px;margin:0 auto}

  .dlgHeroWrap{position:absolute;left:0;right:0;
               bottom:calc(150px + env(safe-area-inset-bottom));z-index:98;
               display:flex;justify-content:center;pointer-events:none;
               opacity:0;transition:opacity .22s}
  .dlgOverlay.on .dlgHeroWrap{opacity:1}
  .dlgHeroImg{width:126px;height:126px;image-rendering:pixelated;
              filter:drop-shadow(0 8px 14px rgba(0,0,0,.55))}

  .dlgNomeplate{position:absolute;left:24px;
                bottom:calc(158px + env(safe-area-inset-bottom));z-index:99;
                background:var(--accent);color:#3A2410;font-weight:700;font-size:14px;
                padding:6px 20px 6px 14px;clip-path:polygon(0 0,100% 0,86% 100%,0 100%);
                display:flex;align-items:center;gap:6px;
                transform:translateY(8px);opacity:0;transition:transform .22s,opacity .22s}
  .dlgOverlay.on .dlgNomeplate{transform:translateY(0);opacity:1}
  .dlgNomeplate span{font-size:11px}

  .dlgBox{position:absolute;left:14px;right:14px;
          bottom:calc(18px + env(safe-area-inset-bottom));z-index:98;height:148px;
          background:rgba(37,30,56,.97);border:1px solid var(--accent);border-radius:14px;
          padding:26px 18px 16px;box-sizing:border-box;
          box-shadow:0 0 0 1px rgba(242,166,90,.25),0 10px 30px rgba(0,0,0,.6);
          display:flex;flex-direction:column;justify-content:space-between;
          transform:translateY(12px);opacity:0;
          transition:transform .22s cubic-bezier(.2,.8,.3,1),opacity .22s;pointer-events:none}
  .dlgOverlay.on .dlgBox{transform:translateY(0);opacity:1;pointer-events:auto}

  .dlgTexto{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:500;
            line-height:1.55;color:var(--text)}
  .dlgCursor{display:inline-block;width:2px;height:16px;background:var(--accent);
             vertical-align:-2px;margin-left:1px;animation:dlgPisca .8s step-end infinite}
  @keyframes dlgPisca{50%{opacity:0}}
  .dlgDica{display:flex;justify-content:flex-end;flex:none;color:var(--accent);
           font-size:16px;line-height:1;opacity:0;transition:opacity .25s}
  .dlgDica.on{opacity:1}

/* ===== Bloco style #6 ===== */
/* ---------- legibilidade ---------- */
  :root{
    --bg:#13171C;
    --panel:#13171C;
    --panel-2:#1A1F26;
    --line:#2A323C;
    --text:#F1F3F6;
    --muted:#AEB7C2;
    --dim:#7C8794;
    --accent:#D4B872;
    --accent-dim:#3A3628;
  }

  /* serifa fica so no ornamental: nivel, nome do monstro, titulo, vitoria */
  .xpnum,.coins,#nomeTopo{font-family:'Outfit',sans-serif !important;font-style:normal !important}
  .coins{font-size:16px;font-weight:600;letter-spacing:0}
  .xpnum{font-size:15px;font-weight:500;letter-spacing:0}
  #nomeTopo{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted)}

  /* textos funcionais: sem caixa alta espalhada */
  .tcount{font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted)}
  .xplabel{font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted);font-weight:500}
  .task .sub{font-size:13px;letter-spacing:0;text-transform:none;color:var(--dim)}
  .task .txt{font-size:17px;font-weight:400;color:var(--text)}
  .nav button{font-size:12px;letter-spacing:.02em;text-transform:none}
  .add{letter-spacing:.02em !important;text-transform:none !important;font-size:14px !important;
       color:var(--accent) !important}

  /* serifa mantida, porem maior e com mais peso pra nao afinar no escuro */
  .lvl{font-size:18px;font-weight:600;letter-spacing:.08em;color:var(--accent)}
  .mobname{font-size:20px;font-weight:600;color:#D98A8A}
  .ttitle{font-size:24px;font-weight:600;color:var(--text)}
  .empty{font-size:18px;color:var(--muted)}

  /* linhas um pouco mais visiveis */
  .task{border-bottom-color:var(--line)}
  .bar{height:4px;background:#232A33}

/* ===== Bloco style #7 ===== */
/* ================= CREPUSCULO ================= */
  :root{
    --bg:#1B2430;
    --panel:#1B2430;
    --panel-2:#243040;
    --line:#33445A;
    --text:#F6F1E6;
    --muted:#B4C2D2;
    --dim:#8394A8;
    --accent:#F2A65A;
    --accent-dim:#5A3D20;
    --gold:#F2C94C;
    --blood:#E56B6B;
    --verde:#63C99A;
  }

  body{background:var(--bg) !important}
  body::after{background:none !important}

  /* --- topo: nivel e moedas com mais presenca --- */
  .topbar{padding:16px 20px 12px;border-bottom:none}
  .lvl{font-family:'Outfit',sans-serif !important;font-size:13px !important;font-weight:600 !important;
       letter-spacing:.02em !important;text-transform:none !important;color:var(--bg) !important;
       background:var(--accent) !important;padding:6px 14px !important;border-radius:20px !important}
  .lvl::before,.lvl::after{display:none}
  .coins{font-family:'Outfit',sans-serif !important;font-size:17px !important;font-weight:600 !important;
         color:var(--gold) !important}

  /* --- arena: ceu em degrade e chao, sprites maiores --- */
  .arena{border-bottom:none !important;margin:0 14px;border-radius:18px;padding:22px 16px 16px !important;
    background:linear-gradient(180deg,#2C3B4F 0%,#233144 55%,#1E2A39 100%) !important;
    box-shadow:0 8px 24px rgba(0,0,0,.28) !important;
    position:relative;overflow:hidden}
  .hero-sprite svg,.mob-sprite svg{width:74px;height:74px}
  .vs{font-family:'Outfit',sans-serif !important;font-style:normal !important;font-size:12px !important;
      color:var(--dim) !important;letter-spacing:.1em !important;text-transform:uppercase}
  #nomeTopo{font-size:15px !important;color:var(--muted) !important}
  .mobname{font-family:'Cormorant Garamond',serif !important;font-style:italic !important;
           font-size:21px !important;font-weight:600 !important;color:#FFB4A8 !important}

  /* --- experiencia: barra dentro de um bloco proprio --- */
  .xpwrap{margin:14px 14px 0;padding:14px 16px !important;background:var(--panel-2);
          border:none !important;border-radius:14px}
  .xplabel{font-size:13px !important;color:var(--muted) !important;font-weight:500}
  .xpnum{font-size:15px !important;color:var(--text) !important;font-weight:600}
  .bar{height:7px !important;background:rgba(0,0,0,.32) !important;border-radius:4px}
  .fill{background:linear-gradient(90deg,var(--accent),var(--xp2)) !important;border-radius:4px}

  /* --- tarefas: linhas generosas com fundo proprio --- */
  .tasks{padding:16px 14px 0 !important}
  .ttitle{font-family:'Outfit',sans-serif !important;font-size:19px !important;font-weight:600 !important;
          color:var(--text) !important}
  .ttitle::after{display:none}
  .tcount{font-size:13px !important;color:var(--dim) !important}
  .add{background:var(--accent) !important;color:var(--bg) !important;border:none !important;
       border-radius:22px !important;padding:10px 18px !important;font-size:14px !important;
       font-weight:600 !important;text-transform:none !important;letter-spacing:0 !important}
  .add:hover{filter:brightness(1.06)}

  .task{background:var(--panel-2) !important;border:none !important;border-radius:14px !important;
        padding:15px 16px !important;margin-bottom:9px;box-shadow:none !important}
  .task:hover{background:var(--panel-3) !important}
  .task.done{opacity:.5}
  .box{border-radius:50% !important;border:2px solid var(--dim) !important;width:22px !important;height:22px !important}
  .task.done .box{background:var(--verde) !important;border-color:var(--verde) !important}
  .task .txt{font-size:16px !important;font-weight:500}
  .task .sub{font-size:13px !important;color:var(--dim) !important}
  .empty{font-family:'Outfit',sans-serif !important;font-style:normal !important;font-size:15px !important;
         color:var(--dim) !important}

  /* --- menu: item ativo em pilula --- */
  .nav{background:var(--panel) !important;border-top:1px solid var(--line) !important;padding:6px 8px}
  .nav button{font-size:12px !important;color:var(--dim)}
  .nav button.on{color:var(--accent)}

  .vitoria .faixa{font-family:'Outfit',sans-serif !important;font-size:15px !important;font-weight:700 !important;
                  letter-spacing:.08em;color:var(--accent) !important}
  .toast{border-radius:22px;text-transform:none;font-size:13px;letter-spacing:0}

/* ===== Bloco style #8 ===== */
/* nome do heroi no topo, nao mais sobre o sprite */
  .topbar{gap:10px}
  #nomeTopo{font-family:'Outfit',sans-serif !important;font-size:15px !important;font-weight:500 !important;
            color:var(--muted) !important;margin:0 !important;flex:1;text-align:left}
  .fighter{gap:8px}

/* ===== Bloco style #9 ===== */
/* sombra no chao, pra assentar os sprites na arena */
  .hero-sprite,.mob-sprite{position:relative}
  .hero-sprite::after,.mob-sprite::after{
    content:'';position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);
    width:62px;height:13px;border-radius:50%;
    background:radial-gradient(ellipse at center, rgba(0,0,0,.62) 0%, rgba(0,0,0,.3) 45%, transparent 74%);
    transition:opacity .4s,width .4s;pointer-events:none
  }
  .hero-sprite svg,.mob-sprite svg{position:relative;z-index:1}
  /* a sombra acompanha o estado do monstro */
  .mob-sprite.espreita::after{opacity:.4}
  .mob-sprite.dead::after,.mob-sprite.fugiu::after{opacity:0;width:24px}

/* ===== Bloco style #10 ===== */
/* sombra como elemento real, desenhada abaixo do sprite */
  .hero-sprite,.mob-sprite{position:relative;display:flex;flex-direction:column;align-items:center}
  .sombra{
    width:56px;height:12px;border-radius:50%;margin-top:-8px;
    background:radial-gradient(ellipse at center, rgba(0,0,0,.6) 0%, rgba(0,0,0,.28) 48%, rgba(0,0,0,0) 75%);
    transition:opacity .4s,width .4s;pointer-events:none;flex:none
  }
  .mob-sprite .sombra{order:2}
  .mob-sprite.espreita .sombra{opacity:.4}
  .mob-sprite.dead .sombra,.mob-sprite.fugiu .sombra{opacity:0;width:22px}
  /* remove a tentativa anterior */
  .hero-sprite::after,.mob-sprite::after{display:none}

/* ===== Bloco style #11 ===== */
/* sprites do pacote: as regras de estado valem tambem para <img> */
  .mob-sprite .mobimg{width:78px;height:78px;image-rendering:pixelated;
                      transition:transform .18s,opacity .35s;display:block}
  .mob-sprite.dead .mobimg{opacity:0;transform:translateY(14px) scale(.6) rotate(12deg)}
  .mob-sprite.shake .mobimg{filter:brightness(0) invert(1)}
  .mob-sprite.fugiu .mobimg{animation:fuga .55s ease-in forwards}
  .mob-sprite.espreita .mobimg{opacity:.45;filter:grayscale(.55)}

/* ===== Bloco style #12 ===== */
/* heroi como imagem do pacote */
  .hero-sprite .heroimg{width:83px;height:83px;image-rendering:pixelated;
                        transition:transform .18s;display:block}
  .hero-sprite.ferido .heroimg{filter:brightness(0) invert(1)}

/* ===== Bloco style #13 ===== */
/* ---------- arrastar (segurando em qualquer parte do card) ---------- */
  .task{touch-action:none;-webkit-user-select:none;user-select:none;
        transition:transform .16s cubic-bezier(.2,.8,.3,1),box-shadow .16s,border-color .16s}
  .task.dragging{position:fixed;z-index:80;margin:0 !important;
                 outline:2px solid var(--accent);outline-offset:-1px;
                 box-shadow:0 16px 32px rgba(0,0,0,.45);
                 transform:scale(1.03);pointer-events:none;transition:none}
  .task.settling{transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s,outline-color .18s}
  .task-placeholder{background:transparent;border:none;margin-bottom:9px}

/* ===== Bloco style #14 ===== */
/* ---- escolha de personagem ---- */
  .palco{
    position:relative; display:flex; flex-direction:column; align-items:center;
    padding:18px 0 12px; margin:2px 0 16px; border-radius:16px;
    background:linear-gradient(180deg,#2C3B4F 0%,#22304180 60%,transparent 100%);
    overflow:hidden;
  }
  .palco::before{
    content:''; position:absolute; left:50%; top:14px; transform:translateX(-50%);
    width:120px; height:120px; border-radius:50%;
    background:radial-gradient(circle, rgba(242,166,90,.18) 0%, transparent 68%);
    animation:tocha 3.4s ease-in-out infinite;
  }
  .palco-sprite{position:relative; z-index:1; height:120px; display:flex; align-items:flex-end}
  .palco-sprite img{width:120px;height:120px;image-rendering:pixelated;display:block;
                    animation:respira 2.6s ease-in-out infinite}
  @keyframes respira{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
  .palco-sombra{
    width:60px;height:13px;border-radius:50%;margin-top:-4px;
    background:radial-gradient(ellipse at center, rgba(0,0,0,.6) 0%, rgba(0,0,0,.28) 45%, transparent 74%);
  }
  .palco-nome{
    margin-top:10px; font-family:'Cormorant Garamond',serif; font-style:italic;
    font-size:19px; color:var(--text); letter-spacing:.4px;
  }

  .grade{
    display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:16px;
  }
  /* v4.116 (item 42-d do roadmap): setas flanqueando o palco -- mesmo
     padrao visual da referencia (Habit Slayer, setas em volta do
     preview central), aplicado aqui em cima do heroi JA ESCOLHIDO
     (prev/next no array HEROIS), sem trocar o sistema de sprites
     prontos por composicao em camadas -- decisao do usuario, escopo
     menor. A grade continua embaixo como atalho, nada removido. */
  .palcoNav{display:flex;align-items:center;gap:10px;margin:2px 0 16px}
  .palcoNav .palco{flex:1;margin:0}
  .palcoSeta{width:38px;height:38px;border-radius:50%;flex:none;
             background:rgba(255,255,255,.06);border:none;color:var(--text);
             display:grid;place-items:center;cursor:pointer;transition:background .15s, transform .12s}
  .palcoSeta:hover{background:rgba(255,255,255,.12)}
  .palcoSeta:active{transform:scale(.92)}
  .palcoSeta svg{width:20px;height:20px}
  .opcao{
    position:relative; display:flex; align-items:center; justify-content:center;
    padding:8px 2px; border-radius:12px; cursor:pointer;
    background:#243040; border:2px solid transparent;
    transition:border-color .15s, background .15s, transform .12s;
  }
  .opcao img{width:47px;height:47px;image-rendering:pixelated;display:block}
  .opcao:active{transform:scale(.94)}
  .opcao.sel{border-color:var(--accent); background:#2B3849}
  .opcao.sel::after{
    content:''; position:absolute; right:4px; top:4px;
    width:7px; height:7px; border-radius:50%; background:var(--accent);
  }

/* ===== Bloco style #15 ===== */
/* ============ TEMA: base roxa, acoes em laranja ============ */
  :root{
    --bg:#1A1526;
    --panel:#1A1526;
    --panel-2:#251E38;
    --line:#3B3057;
    --text:#F5F0E9;
    --muted:#B9AED2;
    --dim:#8779A8;
    --accent:#F2A65A;
    --accent-dim:#5A3D20;
    --gold:#F2C94C;
    --blood:#E5698A;
    --verde:#63C99A;
    --perigo:#F45781;
    --perigo2:#E03131;
    --panel-3:#2A2240;
    --mobname:#F0A0BE;
    --sheet:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAEgCAMAAAD14jtjAAADAFBMVEUAAAAAAQNqSDFSNy4pGA+liW50UzjZxZyNZ01SVFVudHgrKC1GR0vStotaQytRW2iHiYy6mXFIKxmlX+KLVzBwW0x6fIaQlZmUpKq1vMGIWkKyxMszOUWxdzHFmUzO19h6bEjsy2+OMDBkZ2mnp6s1NDHTroTptzeneVa7gidvQxb5+vzLqnQ8RE5bZGyLmKjl1a6yiVOMWRb62GnQ3OY4IxrOmWOutLi1GjHJyM9yFRmd4fHOlTKUajjuthNUMRbfuFnXlhUVFxZKLCaYdDptPiyNdVRoOxRsCSVNdZZ4g44gRbkSWbXKISZvDBmvaRfQyq1+YTyFFibhvmb0ySLHiFkIWC7GgRqWu8Tm6fR6SkViJYEJljqWYxx/UBftvUtqLR3FiigazlWsyKiOhGbd9fe3pYZTh/qjKjMzGieLe2APGWb86UcmbR3pqQIVInnKNRP00y7tZV2Xtf/4200ClfiWExguP4vhpzVQBalYuRCJLScASBmkaJDpeTm1GR2PBiJWlyk9my5LbrN7kaJNHgzrz95nB+DsV1L/8LzHeDwZWhj0TUVCVp2CTC/cojM3DVUrDDmcLROjTxFEYpv/yEckOm0EEkklCg8vXU6yoDTUvf8UJi//5ZkjXpApIIZPXyhBbjYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWoE/XAAABAHRSTlMA//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn67USgAAcPZJREFUeNrtvYljG8eR/8uawTUAiMsAARDgCYCkSIL3YVKkSYYSJdGORUWSIyWxjrUi2YqT2ImdOHvYSezsJs7G2Wx+2ez5e+/9p6+qe66+BiAlH8mybZEgAeKY76erq7urqwYGztt5ew4NsJl+Om//C/R3sHmiA//plPhA1C9A0547wvrbz7GHPL93H36CL7av6V8NHPpMjsM/G//e6v99QXxqanAwfHkGsS2HPuN8sVikf26DVHF+HkxX+WwfrA2GH86gLqgPCN58nDWAfi+u7vWWlpb8x4Kl/7NOp/M56D/3Amj1D3q+Zwk0BBguD+o9Nahp/gNhfh4v2XxcaPMV9flzM9issxAAYyIAW6d6kpC81BJF6a/xA8iI1Ovq2x8s9veqMIgAPPKvDhKgXlmAECPPT//63AsqAeCArgfKBABMJKlNTEjmPgda/af85wWmfQX/WVaKblUqBgCs4WHrLADA2NYCBJ0Q8lunIgCS4YYAiEpCXWcT5uRBb/A0AMQfBSYALCtHLZHwrz60sD13AKDRQAAUAgzWHrLiJ5yYv7l7idoEIiABMKUigJ3GBwBFTxRRdMvv/xUNAACZHAMAehprRf+xKgMAHIYP5KunIkAGAP+BoL/+j8KPGRzMhQCIHgzg0aPBR8HHcE7cT1UqJYgBj4DPQ38GgExAXwDAxOjuLuM0t7srEQCXiICjUJsanJpPBLaEAEiQAYgnGAQWAlBUAVjMrFOrQbRSS8kkKAYgv5AHb/oC+Xzr1ABsb+P/29tlDkD4JSDZFwA06AVjPEQCMHiCl+vEfVDuJKA7QQhwq9wCo2+k6wW9vVQctuocAIUAx+wYBPondt2GDIxOSKOApbRE6P0TAPGEhwG3ADoAFuew1cwAAA0gSVEeDkC1283n0YQ00v8NqH8eTYD8Iek/xgi7qXL16vYMApAsuQAE778vAJ4+CgCA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');
  }
  body{background:var(--bg)}

  /* arena */
  .arena{background:radial-gradient(ellipse at 50% 45%, transparent 55%, rgba(0,0,0,.35) 100%),url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKCAYAAADVTVykAAABfElEQVR4nJ2TwU7CQBCGvxKMQeCEXojGlMvWIw/AnfIOwh0egYfwpIneQJ4Bn4L22r10SeCoJ0CDJVkvdNPWgsT/srM738x0Z6fWZDKpPwyHdLpdlFK0222yklIyHY3o9HoHmVMUBAFvr6+49/copXBdl6KUkkW0JgxDGo0GUspfgUIInnefKKWwbTuXOUWO4/ASbZjP56ZWAeD6rILrugcD/1vwUJ5kBwsAH6sVUkqEEMbheR6e5xm7tNXYtp3LJLnkmrUBSludqmXd1mp1nQCuKpVUgN5/YJ5q1SrW3l5EGwBuzsosok1qjfW+XgPwdW6Z82K33wdg9PREr9//c8iklIwfH+kOBoRhePTpYn46HnPXagH8yl2Mjcty+eggxhJCUKtWT2Jjfrq38wa4kNz8dZv4RstofRIb84toc7CrpgPL3WcuoLVO7X3fB20Zn2VZeWHpHEd8pgPZ6QSYzWamqO/7ADSbTUrfmiAIcBzHsNm/ITn9F5ncSd8PSsnXJX9WpAwAAAAASUVORK5CYII=) repeat,linear-gradient(180deg,var(--arena-1) 0%,var(--arena-2) 55%,var(--arena-3) 100%) !important;background-size:auto, 130px 41px, auto !important;image-rendering:pixelated}

  .fill{background:linear-gradient(90deg,var(--accent),var(--xp2)) !important}
  /* Barra de XP (Arena + Perfil) fixada em amarelo/dourado -- pedido
     explicito do usuario pra nao trocar de cor com o tema, diferente do
     resto da UI que usa var(--accent)/var(--xp2) de proposito. Sobrescreve
     so por ID (#fill = Arena, #perfilFill = Perfil), sem tocar na regra
     .fill acima nem em nenhuma das outras 3 que existem no arquivo --
     evita o risco documentado de reativar cascata morta ao mexer numa
     regra .fill existente.
     Historico do valor: v1 verde com gradiente (var(--verde) theme-
     invariant) -> v2 verde solido (#5FC77E, ajuste de tom) -> v3 (aqui)
     voltou pro amarelo/laranja que a barra tinha ORIGINALMENTE no tema
     padrao (Crepusculo, antes de qualquer override): #F2A65A -> #F2C94C,
     que la e var(--accent)/var(--xp2) do :root sem tema, agora hardcoded
     pra nao mudar com o tema. */
  #fill, #perfilFill{background:linear-gradient(90deg,#F2A65A,#F2C94C) !important}
  .mobname{color:var(--mobname) !important}

  /* cartoes e superficies que estavam com azul fixo */
  .task, .itemini, .opcao{background:var(--panel-3) !important}
  .opcao.sel{background:var(--sel-bg) !important; border-color:var(--accent) !important}
  .palco{background:linear-gradient(180deg,var(--arena-1) 0%,color-mix(in srgb, var(--arena-2) 50%, transparent) 60%,transparent 100%) !important}
  .palco::before{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 18%, transparent) 0%, transparent 68%) !important}

/* ===== Bloco style #16 ===== */
/* ============ NAV: abas Tarefas / Inventario / Loja ============ */
  .oculto{display:none !important}

  .view{display:none;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
        flex-direction:column;padding:16px 18px 8px}
  .view.on{display:flex}

  .vhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px}
  .vhead .vtitle{font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;color:var(--text)}
  .vhead .vsub{font-family:'Outfit',sans-serif;font-size:12px;color:var(--dim)}

  .vazio{margin:auto;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;padding:20px 8px}
  .vazio .vicon{width:46px;height:46px;color:var(--dim);opacity:.45}
  .vazio b{font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;color:var(--muted)}
  .vazio p{font-family:'Outfit',sans-serif;font-size:13px;line-height:1.55;color:var(--dim);max-width:250px}

  .saldo{display:inline-flex;align-items:center;gap:5px;font-family:'Outfit',sans-serif;
         font-size:13px;font-weight:600;color:var(--gold);background:rgba(245,190,74,.10);
         border:1px solid rgba(245,190,74,.22);border-radius:999px;padding:5px 11px;margin-top:4px}
  .saldo svg{width:14px;height:14px}

  .nav button{cursor:pointer}

/* ===== Bloco style #17 ===== */
/* ============ INVENTARIO ============ */
  .pxi{background-image:var(--sheet);background-repeat:no-repeat;image-rendering:pixelated;flex:none}

  #viewInventario{padding:14px 14px 8px}

  /* --- painel de equipamento --- */
  .equipbox{background:var(--panel-3);border:1px solid var(--line);border-radius:14px;padding:12px 12px 10px;margin-bottom:14px}
  .equiprow{display:flex;gap:8px;justify-content:space-between}
  .eslot{flex:1;aspect-ratio:1;border-radius:10px;background:var(--poco);border:1px dashed var(--line);
         display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer;overflow:hidden}
  .eslot.cheio{border-style:solid}
  .eslot .etag{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-family:'Outfit',sans-serif;
               font-size:8px;letter-spacing:.03em;color:var(--dim);text-transform:uppercase}
  .eslot.cheio .etag{display:none}
  .eslot svg{width:16px;height:16px;color:var(--dim);opacity:.35}
  .eslot .fantasma{filter:grayscale(1) brightness(.62);opacity:.30}
  .bonusline{display:flex;gap:14px;justify-content:center;margin-top:11px;padding-top:9px;border-top:1px solid var(--line)}
  .bonusline span{font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;color:var(--dim)}
  .bonusline b{font-weight:700}
  .bonusline .bm b{color:var(--gold)}
  .bonusline .bx b{color:var(--accent)}

  /* --- filtros --- */
  .invfiltros{display:flex;gap:7px;margin-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .invfiltros button{flex:none;font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;color:var(--dim);
        background:var(--panel-3);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
  .invfiltros button.on{color:var(--bg);background:var(--accent);border-color:var(--accent)}

  /* --- grade --- */
  .invgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
  @media (min-width:420px){ .invgrid{grid-template-columns:repeat(6,1fr)} }
  .cel{aspect-ratio:1;border-radius:10px;background:var(--panel-3);border:1px solid var(--line);
       display:flex;align-items:center;justify-content:center;position:relative;cursor:pointer}
  .cel:active{transform:scale(.94)}
  .cel .qtd{position:absolute;right:3px;bottom:2px;font-family:'Outfit',sans-serif;font-size:10px;
            font-weight:700;color:var(--text);text-shadow:0 1px 2px #000}
  .cel .eq{position:absolute;left:3px;top:3px;width:6px;height:6px;border-radius:50%;background:var(--verde)}
  .r0{border-color:#4A4066}.r1{border-color:var(--verde)}.r2{border-color:#5AA9F2}
  .r3{border-color:#B57BE8}.r4{border-color:#F2A65A;box-shadow:0 0 10px rgba(242,166,90,.30)}
  .r5{border-color:#5AE0D8;box-shadow:0 0 10px rgba(90,224,216,.30)}

  /* --- ficha do item --- */
  .sheetbg{position:fixed;inset:0;background:rgba(10,7,18,.72);z-index:80;display:none}
  .sheetbg.on{display:block}
  .isheet{position:fixed;left:0;right:0;bottom:0;z-index:81;background:#251E38;border-top:1px solid var(--line);
          border-radius:20px 20px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));
          transform:translateY(102%);transition:transform .22s ease;max-width:520px;margin:0 auto}
  .isheet.on{transform:translateY(0)}
  .ihead{display:flex;gap:13px;align-items:center}
  .ihead .ibox{width:60px;height:60px;border-radius:12px;background:var(--poco);border:1px solid var(--line);
               display:flex;align-items:center;justify-content:center;flex:none}
  .iname{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:22px;color:var(--text);line-height:1.15}
  .imeta{font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:3px}
  .ibonus{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}
  .ibonus span{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--muted);
               background:var(--poco);border:1px solid var(--line);border-radius:8px;padding:5px 10px}
  .iacts{display:flex;gap:8px;margin-top:15px}
  .iacts button{flex:1;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;padding:11px 6px;
                border-radius:11px;border:1px solid var(--line);background:var(--poco);color:var(--muted);cursor:pointer}
  .iacts button.prim{background:var(--accent);border-color:var(--accent);color:var(--bg)}
  .iacts button.danger{color:var(--blood)}

/* ===== Bloco style #18 ===== */
#viewLoja{padding:14px 14px 8px}

  .lojatopo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
  .lojatopo .saldo{margin-top:0}

  .lojatabs{display:flex;gap:6px}
  .lojatabs button{font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;color:var(--dim);
        background:var(--panel-3);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
  .lojatabs button.on{color:var(--bg);background:var(--accent);border-color:var(--accent)}

  .lojalista{display:flex;flex-direction:column;gap:8px}
  .lrow{display:flex;align-items:center;gap:11px;background:var(--panel-3);border:1px solid var(--line);
        border-radius:12px;padding:9px 11px;position:relative}
  .lrow.oferta{border-color:var(--gold);box-shadow:0 0 10px rgba(242,201,76,.14)}
  .lrow.trava{opacity:.5}
  .lrow.esgotado{opacity:.38}
  .lrow .lbox{width:46px;height:46px;border-radius:10px;background:var(--poco);border:1px solid var(--line);
        display:flex;align-items:center;justify-content:center;flex:none}
  .lrow .linfo{flex:1;min-width:0}
  .lname{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:600;color:var(--text);
         white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lmeta{font-family:'Outfit',sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;
         letter-spacing:.05em;margin-top:2px}
  .lbonus{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);margin-top:3px}
  .lbonus b{color:var(--muted);font-weight:600}
  .lacao{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
  .lpreco{font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:700;color:var(--gold);
          font-variant-numeric:tabular-nums;white-space:nowrap}
  .lpreco s{color:var(--dim);font-weight:500;font-size:10.5px;margin-right:4px}
  .lpreco .lmoeda{width:11px;height:11px;margin-left:3px;vertical-align:-1px}
  .lbtn{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;padding:6px 14px;border-radius:9px;
        border:1px solid var(--accent);background:var(--accent);color:var(--bg);cursor:pointer;white-space:nowrap}
  .lbtn.sec{background:var(--poco);border-color:var(--line);color:var(--muted)}
  .lbtn.off{background:var(--poco);border-color:var(--line);color:var(--dim);cursor:default}
  .lflag{position:absolute;top:-7px;left:11px;font-family:'Outfit',sans-serif;font-size:9px;font-weight:700;
         text-transform:uppercase;letter-spacing:.08em;background:var(--gold);color:var(--bg);
         border-radius:999px;padding:2px 7px}
  .lqtd{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);font-weight:600}
  .lbulk{margin-top:12px;width:100%;font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:600;
         padding:10px;border-radius:11px;border:1px dashed var(--line);background:var(--poco);
         color:var(--gold);cursor:pointer}
  .lnota{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim);text-align:center;
         margin:14px 0 4px;line-height:1.5}

/* ===== Bloco style #19 ===== */
/* ============ TAREFAS: botoes maiores + dificuldade ============ */

  /* botao "+ Adicionar": area de toque de 44px, minimo recomendado no celular */
  .thead .add{
    padding:11px 18px !important;
    font-size:14.5px !important;
    font-weight:600 !important;
    border-radius:11px !important;
    min-height:44px !important;
  }
  .thead .add:active{transform:scale(.96)}

  /* botao de apagar: era 16px e so aparecia no :hover — no celular nao existe hover */
  .task .del{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    margin-left:auto !important;
    padding:0 !important;
    font-size:21px !important;
    line-height:1 !important;
    border-radius:10px !important;
    color:var(--dim) !important;
    background:rgba(255,255,255,.045) !important;
    opacity:1 !important;              /* sempre visivel */
    display:grid; place-items:center;
    transition:background .15s, color .15s, transform .1s;
  }
  .task .del:active{
    background:rgba(242,87,129,.20) !important;
    color:var(--perigo) !important;
    transform:scale(.9);
  }
  .task:hover .del{opacity:1 !important}

  .task{padding:13px 12px 13px 14px !important}
  .task .box{width:24px !important;height:24px !important;border-width:2px !important}

  /* --- linha de meta abaixo do titulo --- */
  .tinfo{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
  .tmeta{display:flex;align-items:center;gap:8px}

  /* --- losangos de dificuldade --- */
  .difpip{display:inline-flex;gap:3px;align-items:center}
  .difpip i{
    width:6px;height:6px;
    background:currentColor;
    transform:rotate(45deg);
    border-radius:1px;
    display:block;
  }
  .task[data-dif="trivial"] .difpip{color:#7E8BA3}
  .task[data-dif="facil"]   .difpip{color:var(--verde)}
  .task[data-dif="media"]   .difpip{color:var(--accent)}
  .task[data-dif="dificil"] .difpip{color:var(--perigo)}

  /* --- seletor no composer --- */
  .difwrap{display:flex;flex-direction:column;gap:7px}
  .diflabel{
    font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
  }
  .difs{display:flex;gap:6px}
  .dif{
    flex:1;min-height:56px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    background:var(--panel);border:1px solid var(--line);border-radius:10px;
    padding:8px 4px;cursor:pointer;transition:.15s;
    color:var(--dim);
  }
  .dif .difnome{
    font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:500;
    color:var(--muted);line-height:1;
  }
  .dif.on{background:var(--accent-dim);border-color:var(--accent)}
  .dif.on .difnome{color:var(--accent);font-weight:600}
  .dif:active{transform:scale(.96)}

  .dif[data-dif="trivial"].on{color:#7E8BA3}
  .dif[data-dif="facil"].on  {color:var(--verde)}
  .dif[data-dif="media"].on  {color:var(--accent)}
  .dif[data-dif="dificil"].on{color:var(--perigo)}
  .dif[data-dif="trivial"].on .difnome{color:#7E8BA3}
  .dif[data-dif="facil"].on   .difnome{color:var(--verde)}
  .dif[data-dif="dificil"].on .difnome{color:var(--perigo)}

  /* --- "vezes por dia": mesmo rotulo do difwrap, stepper proprio --- */
  .vezeswrap{display:flex;flex-direction:column;gap:7px}
  .vezesrow{display:flex;align-items:center;gap:12px}
  .vezesbtn{
    width:40px;height:40px;flex:none;border-radius:10px;
    background:var(--panel);border:1px solid var(--line);color:var(--text);
    font-family:'Outfit',sans-serif;font-size:18px;font-weight:600;line-height:1;
    cursor:pointer;transition:.15s;
  }
  .vezesbtn:active{transform:scale(.94)}
  .vezesbtn:disabled{opacity:.35;cursor:default}
  .vezesnum{
    flex:1;text-align:center;font-family:'Outfit',sans-serif;
    font-size:15px;font-weight:600;color:var(--text);
  }
  .vezesnum b{font-family:'Outfit',sans-serif;font-size:20px;font-weight:700;margin-right:5px}

  /* --- opcoes avancadas: disclosure + color picker livre por tarefa --- */
  .advtoggle{
    width:100%;text-align:left;background:none;border:none;padding:6px 0;
    font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:600;
    color:var(--dim);letter-spacing:.02em;cursor:pointer;
    display:flex;align-items:center;justify-content:space-between;
  }
  .advchevron{transition:transform .18s;font-size:11px}
  .advtoggle.on .advchevron{transform:rotate(180deg)}
  .advpanel{
    max-height:0;overflow:hidden;opacity:0;
    transition:max-height .22s ease, opacity .18s;
  }
  .advpanel.on{max-height:190px;opacity:1}
  .advcolorrow{display:flex;flex-direction:column;gap:9px;padding:8px 0 4px}
  .advcolorpick{display:flex;align-items:center;gap:9px}
  .advswatch{
    width:40px;height:40px;flex:none;border-radius:9px;
    border:1px solid var(--line);background:var(--accent);
  }
  .advhex{
    flex:1;min-width:0;height:40px;padding:0 12px;border-radius:9px;
    border:1px solid var(--line);background:var(--panel);color:var(--text);
    font-family:'Outfit',sans-serif;font-size:14px;letter-spacing:.03em;
  }
  .advhex:focus{outline:none;border-color:var(--accent)}
  .advswatches{display:flex;flex-wrap:wrap;gap:8px}
  .advpreset{
    width:28px;height:28px;flex:none;border-radius:8px;cursor:pointer;
    border:2px solid transparent;transition:transform .1s,border-color .12s;
  }
  .advpreset:active{transform:scale(.9)}
  .advpreset.on{border-color:var(--text)}
  .advreset{
    background:var(--panel);border:1px solid var(--line);border-radius:9px;
    color:var(--muted);font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;
    padding:0 12px;height:40px;cursor:pointer;
  }
  .advreset:active{transform:scale(.97)}

/* ===== Bloco style #20 ===== */
/* --- caixa de concluir e botao de apagar, em area de toque real --- */
  .task .box{
    width:42px !important; height:42px !important;
    min-width:42px !important;
    border-radius:12px !important;
    border:2px solid var(--dim) !important;
    display:grid !important; place-items:center;
    transition:background .16s, border-color .16s, transform .1s;
  }
  .task .box svg{width:20px;height:20px}
  .task .box:active{transform:scale(.9)}
  .task.done .box{background:var(--verde,#63C99A) !important;border-color:var(--verde,#63C99A) !important;color:var(--bg) !important}

  .task .del{
    width:42px !important; height:42px !important;
    min-width:42px !important;
    font-size:23px !important;
    border-radius:12px !important;
  }

  .task{gap:13px !important;padding:12px !important}
  .task .tinfo{cursor:pointer}

  /* --- folha do editor --- */
  .edov{
    position:fixed; inset:0; z-index:80;
    background:rgba(10,7,18,.68);
    backdrop-filter:blur(3px);
    display:none; align-items:flex-end; justify-content:center;
  }
  .edov.on{display:flex}

  .edsheet{
    position:relative;
    width:100%; max-width:430px;
    background:var(--panel-2); border-top:1px solid var(--line);
    border-radius:20px 20px 0 0;
    padding:8px 16px calc(18px + env(safe-area-inset-bottom));
    max-height:88vh; overflow-y:auto;
    animation:edsobe .22s cubic-bezier(.2,.9,.3,1);
  }
  @keyframes edsobe{from{transform:translateY(100%)}to{transform:translateY(0)}}

  .edpuxador{width:38px;height:4px;border-radius:2px;background:var(--line);margin:6px auto 14px}

  .edfechar{
    position:absolute; top:10px; right:12px; width:32px; height:32px;
    background:transparent; border:none; border-radius:50%;
    color:var(--dim); font-size:22px; line-height:1; cursor:pointer;
    display:grid; place-items:center;
  }
  .edfechar:active{background:rgba(255,255,255,.08)}

  .edtitulo{
    font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;
    letter-spacing:.07em;text-transform:uppercase;color:var(--dim);
    margin-bottom:10px;
  }
  .edcampo{
    width:100%; background:var(--panel); color:var(--text);
    border:1px solid var(--line); border-radius:11px;
    padding:13px 13px; font-family:'Outfit',sans-serif; font-size:15px;
    outline:none; margin-bottom:16px;
  }
  .edcampo:focus{border-color:var(--accent)}

  .edsec{
    font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
    margin-bottom:7px;
  }
  .edbloco{margin-bottom:16px}
  .edbloco .days{margin-top:6px}

  .edacoes{display:flex;gap:9px;margin-top:4px}
  .edsalvar{
    flex:1; background:var(--accent); color:var(--bg); border:none;
    border-radius:12px; padding:14px;
    font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer;
  }
  .edexcluir{
    width:54px; background:transparent; border:1px solid rgba(244,87,129,.35);
    border-radius:12px; color:var(--perigo); font-size:21px; cursor:pointer;
    display:grid; place-items:center;
  }
  .edexcluir:active{background:rgba(244,87,129,.15)}
  .edsalvar:active,.edexcluir:active{transform:scale(.97)}

  /* botao destrutivo de largura cheia, pra folhas de confirmacao com texto
     (diferente de .edexcluir, que e so pra icone unico tipo "x", 54px fixo) */
  .edperigo{
    flex:1; background:var(--perigo); color:#2A0E16; border:none;
    border-radius:12px; padding:14px;
    font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer;
  }
  .edperigo:active{transform:scale(.97)}

/* ===== Bloco style #21 ===== */
/* dentro da folha o composer perde a caixa propria, senao fica caixa dentro de caixa */
  #addOverlay .composer{
    margin-top:0 !important;
    background:transparent !important;
    border:none !important;
    border-radius:0 !important;
    padding:0 !important;
  }
  #addOverlay .composer input{font-size:15px;padding:13px}
  #addOverlay .cbtn{padding:14px;font-size:15px;border-radius:12px;margin-top:4px}

/* ===== Bloco style #22 ===== */
.xpwrap .hprow{margin-bottom:5px}
  .xpwrap .hpbar{margin-bottom:12px}
  .xpwrap .hpfill{
    background:var(--perigo) !important;
    transition:width .45s cubic-bezier(.4,1.2,.5,1), background .3s;
  }
  .xpwrap .hpfill.baixa{background:var(--perigo2) !important}
  .xpnum.hpnum{color:var(--perigo) !important}
  .xpnum.hpnum.baixa{color:var(--perigo2) !important}
  .hpdano{animation:hptremor .4s ease}
  @keyframes hptremor{
    0%,100%{transform:translateX(0)}
    20%{transform:translateX(-4px)} 45%{transform:translateX(4px)}
    70%{transform:translateX(-2px)}
  }
  @media (prefers-reduced-motion:reduce){ .hpdano{animation:none} }

/* ===== Bloco style #23 ===== */
/* ============ AVISOS NO TOPO ============ */
  /* Nao existe faixa livre dentro da arena: a vida do monstro fica em y=77,
     os sprites de y=88 a 175 e o nome do monstro de y=191 a 216. O unico vao
     real da tela e o miolo da topbar — o selo de nivel acaba em x=88 e as
     moedas ficam a direita. Dai a largura maxima estreita: alargar volta a
     cobrir o nivel ou o contador de moedas. */
  .toast{
    bottom:auto !important;
    top:calc(9px + env(safe-area-inset-top)) !important;
    transform:translate(-50%, -12px) !important;
    z-index:90;                        /* as folhas modais ficam em 80 */
    max-width:min(62vw, 236px);
    padding:9px 14px !important;
    line-height:1.35;
    box-shadow:0 6px 20px rgba(0,0,0,.5);
  }
  .toast.on{transform:translate(-50%, 0) !important}

/* ===== Bloco style #24 ===== */
/* a aura usa ::after porque o ::before do .hero-sprite ja e o halo de tocha */
  .hero-sprite::after{
    content:'';position:absolute;inset:-14%;border-radius:50%;
    background:radial-gradient(circle, var(--aura,transparent) 0%, transparent 62%);
    opacity:0;transition:opacity .45s, background .45s;
    pointer-events:none;z-index:0;
  }
  .hero-sprite.temAura::after{opacity:.85;animation:auraPulso 3.2s ease-in-out infinite}
  @keyframes auraPulso{0%,100%{opacity:.55}50%{opacity:.95}}

  /* EQUIPAMENTOS: faixa horizontal no topo do .xpwrap, acima da barra de Vida.
     Saiu de cima do sprite (badges absolutos) porque as caixas tampavam o
     heroi e brigavam por espaco com a arena. Vive dentro de .xpwrap, que ja
     esta em blocosTarefas — some sozinho ao trocar de aba, sem gancho novo. */
  .eqrow{margin-bottom:12px}
  .eqrow[hidden]{display:none}
  .eqbadges{
    display:flex;flex-wrap:wrap;gap:6px;align-items:center;
    margin-top:5px;pointer-events:none;
  }
  .eqb{
    width:30px;height:30px;border-radius:7px;flex:none;
    display:grid;place-items:center;
    background:rgba(0,0,0,.4);
    border:1px solid var(--cor,var(--line));
    box-shadow:0 0 6px -1px var(--cor,transparent);
  }
  .eqb .pxi{opacity:.95}

  /* arma em destaque: 2-3x maior que os demais, moldura mais grossa e brilho
     mais forte reaproveitando a mesma var(--cor) por raridade do item —
     item 19 do roadmap ("badge maior + moldura por raridade") */
  .eqb.eqb-arma{
    width:52px;height:52px;border-radius:10px;
    border-width:2px;
    box-shadow:0 0 12px -1px var(--cor,transparent), 0 0 0 1px var(--cor,transparent) inset;
  }

  @media (max-width:345px){
    .eqbadges{gap:4px}
    .eqb{width:26px;height:26px}
    .eqb.eqb-arma{width:44px;height:44px}
  }
  @media (prefers-reduced-motion:reduce){
    .hero-sprite.temAura::after{animation:none}
  }

/* ===== Bloco style #25 ===== */
.perfilhero{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;
              padding:16px;margin-bottom:14px;text-align:center}
  .perfilheroLinha{display:flex;align-items:center;gap:16px;text-align:left}
  .perfilheroLinha .hero-sprite{flex:none}
  .perfilheroInfo{flex:1;min-width:0}
  .perfilnome{font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;margin-bottom:10px}
  .perfilhero .bar{margin-bottom:6px}
  .perfilhero .xpnum{display:block}
  /* .xpwrap/.hprow/.hpbar sao reaproveitados do cabecalho da Arena (mesmo
     par hpfill/hpnum, so troca de id) -- aqui dentro do card .perfilhero
     zera o padding/borda pensados pro contexto da Arena, ja que o card
     do Perfil ja tem sua propria borda/padding. */
  .perfilhero .xpwrap{padding:0;border-bottom:none;margin-top:2px}

  .statgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
  .statcard{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
            padding:12px;display:flex;flex-direction:column;gap:4px}
  .statlabel{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim)}
  .statval{font-family:'Silkscreen',monospace;font-size:14px;color:var(--accent)}

/* ===== Bloco style #26 ===== */
/* .perfiltabs/.pcfg/.perfilpane.oculto removidos daqui -- a fileira de
     pills (Atributos/Conquistas/Bestiário/engrenagem) deixou de existir
     (item 18 do roadmap: Perfil virou rolagem unica, sem sub-abas). A
     engrenagem agora mora no vhead (ver .vheadCfgBtn abaixo). */
  .vheadDireita{display:flex;align-items:center;gap:10px}
  .vheadCfgBtn{width:34px;height:34px;flex:none;display:grid;place-items:center;
    background:var(--panel-3);border:1px solid var(--line);border-radius:10px;
    color:var(--muted);cursor:pointer}
  .vheadCfgBtn svg{width:17px;height:17px}
  .vheadCfgBtn:active{background:var(--accent-dim);color:var(--accent)}

  /* previas (Historico/Conquistas/Bestiario) reaproveitam .cfgrow, que ja
     existia pra Config -- mesmo visual, zero CSS novo pra elas.
     .prevfaixa reaproveita classes visuais que ja existiam em outros
     modulos (.caldia/.calvitoria/.calfuga do Historico, .conqcaticone
     das Conquistas, .bestimg do Bestiario) -- so a faixa horizontal em
     si e nova. */
  .cfgrowtopo{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .prevfaixa{display:flex;gap:6px;margin-top:10px;min-height:32px;
             overflow-x:auto;-webkit-overflow-scrolling:touch}
  .prevfaixa .caldia{width:32px;height:32px;aspect-ratio:unset;flex:none}
  /* pedido do usuario: previa de conquistas so com texto, sem icone --
     chip com cor da conquista na borda/texto em vez de circulo preenchido */
  .prevconqchip{flex:none;display:flex;align-items:center;height:30px;padding:0 11px;
                border-radius:14px;background:var(--panel-3);border:1px solid var(--pv-cor);
                font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;
                color:var(--pv-cor);white-space:nowrap}
  .prevbestimg{width:32px;height:32px;flex:none;object-fit:contain;image-rendering:pixelated;
               border-radius:8px;background:var(--panel-3);padding:3px;box-sizing:border-box}
  .prevvazio{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim);
             display:flex;align-items:center}

  /* overlay de Config -- mesmo padrao de histOverlay/grimOverlay, z-index
     um degrau abaixo (69 vs 70) de proposito: se o usuario abrir o
     Historico de dentro do Config, o Historico precisa pintar por cima. */
  .cfgOverlay{position:fixed;inset:0;z-index:69;background:var(--bg);display:none;
    flex-direction:column;overflow:hidden}
  .cfgOverlay.on{display:flex}
  .cfgovhead{display:flex;align-items:center;gap:10px;flex:none;
    padding:calc(14px + env(safe-area-inset-top)) 16px 10px;
    border-bottom:1px solid var(--line)}
  .cfgovhead .vtitle{font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;color:var(--text)}
  .cfgvoltar{width:36px;height:36px;flex:none;display:grid;place-items:center;
    background:transparent;border:none;border-radius:50%;color:var(--text);cursor:pointer}
  .cfgvoltar:active{background:rgba(255,255,255,.08)}
  .cfgovcorpo{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
    padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
  .cfgovcorpo .edsec{margin:18px 0 8px}
  .cfgovcorpo .edsec:first-child{margin-top:0}

  .cfgrow{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
          padding:12px 13px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
  .cfgrow.cfgcol{flex-direction:column;align-items:stretch}
  /* item 39: linhas-resumo da tela principal de Config que abrem sub-tela */
  .cfgrow.cfglink{cursor:pointer}
  .cfgrow.cfglink:active{background:var(--panel-3)}
  .cfgseta{width:18px;height:18px;flex:none;color:var(--dim)}
  .cfgtxt{display:flex;flex-direction:column;gap:2px}
  .cfgtxt b{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text)}
  .cfgtxt span{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim)}
  .cfgbtn{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--accent);
          background:transparent;border:1px solid var(--accent-dim);border-radius:8px;padding:7px 12px;
          cursor:pointer;flex:none}
  .cfgbtn:hover{background:var(--accent-dim)}
  .cfgbtn.perigo{color:var(--blood);border-color:var(--blood)}
  .cfgbtn.perigo:hover{background:rgba(229,107,107,.12)}

  /* switch liga/desliga (item 39: substitui o botao Vibrar/Som do
     Feedback tatil por um toggle -- ver JS "CONFIG — PREFERENCIA DE
     FEEDBACK NO CLIQUE"). Estrutura: trilho (.swch) + bolinha
     (.swch-bolinha) que desliza via transform quando .on entra. */
  .swch{width:46px;height:26px;flex:none;border-radius:999px;border:none;cursor:pointer;
        background:var(--line);padding:3px;display:flex;align-items:center;
        transition:background .15s ease}
  .swch.on{background:var(--accent)}
  .swch-bolinha{width:20px;height:20px;border-radius:50%;background:#FFF;
        transition:transform .15s ease}
  .swch.on .swch-bolinha{transform:translateX(20px)}

  .cfgcol .grade{margin:10px 0 0;grid-template-columns:repeat(4,1fr)}

  .temagrid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
  .temaswatch{width:36px;height:36px;border-radius:50%;border:2px solid transparent;cursor:pointer;flex:none}
  .temaswatch.sel{border-color:var(--text)}

  /* paletas — so custom properties, sem redesenho de layout */
  :root[data-tema="meianoite"]{
    --bg:#161A20; --panel:#1E232B; --panel-2:#272D37; --line:#374050;
    --text:#EDF0F4; --muted:#96A1B0; --dim:#65707E;
    --accent:#5AB4EC; --accent-dim:#153A52; --gold:#F5BE4A; --blood:#EC6A62;
    --panel-3:#313A48; --poco:#12161B; --sel-bg:#2D3846; --mobname:#8FD0F0;
    --arena-1:#23303F; --arena-2:#1B2530; --arena-3:#131A22;
    --xp2:#7FE0E8;
  }
  :root[data-tema="pergaminho"]{
    --bg:#0F1216; --panel:#0F1216; --panel-2:#151A20; --line:#232A33;
    --text:#E6E9ED; --muted:#8A93A0; --dim:#5A6470;
    --accent:#C9A961; --accent-dim:#3A2F18; --gold:#C9A961; --blood:#9E3B3B;
    --panel-3:#1D2318; --poco:#0A0C0F; --sel-bg:#242A1B; --mobname:#D9A05B;
    --arena-1:#2A2415; --arena-2:#1E1A10; --arena-3:#14110A;
    --xp2:#C9A961;
  }
  /* item 25 do roadmap — spec fechada em sessao de brainstorm (21/08) */
  /* v4.133 (pedido do usuario, comparando com Habitica real): primeira
     tentativa (--bg #0A0A0A -> #141414) foi tao sutil que na tela real
     nao fez diferenca perceptivel -- usuario testou o arquivo certo,
     tema certo, e continuou "muito escuro". v4.134: recalibrado de
     forma bem mais agressiva, mirando a MESMA FAIXA de luminancia que
     o Habitica usa de verdade no screenshot de referencia (cinza-carvao,
     no bg #0A0A0A para #141414 estava mais que 3x mais escuro que o Habitica;
     agora --bg ~#282828, na faixa certa. Continua 100% grayscale (R=G=B
     em todo valor) -- decisao do item 25 preservada, nao reintroduz cor,
     so aumenta o quanto de cinza. --accent continua #FFFFFF e COR_RAR
     (raridade de item) nao e tocado, fora do sistema de tema. */
  :root[data-tema="grafite"]{
    --bg:#282828; --panel:#323232; --panel-2:#3D3D3D; --panel-3:#494949;
    --line:#5C5C5C; --text:#FAFAFA; --muted:#C2C2C2; --dim:#909090;
    --accent:#FFFFFF; --accent-dim:#4A4A4A;
    --gold:#E8E8E8; --blood:#B8B8B8; --mobname:#E0E0E0; --sel-bg:#4A4A4A; --poco:#1C1C1C;
    --arena-1:#454545; --arena-2:#383838; --arena-3:#2C2C2C; --xp2:#EDEDED;
  }
  /* DEPRECATED (v4.124): tema Floresta removido da lista visivel no
     Aparencia > Tema (item de identidade visual -- decisao do usuario
     de manter laranja como tema/cor de marca, sem verde na paleta de
     escolha). As variaveis continuam aqui, so nao aparecem mais em
     TEMAS[] (index.html) nem em CICLO_TEMAS -- ninguem aponta pra
     [data-tema="floresta"] no momento. */
  :root[data-tema="floresta"]{
    --bg:#0E1712; --panel:#0E1712; --panel-2:#16241C; --panel-3:#1E3226;
    --line:#2C4838; --text:#E9F2EC; --muted:#8FAA9A; --dim:#5C7A68;
    --accent:#4ADE80; --accent-dim:#164D2E;
    --gold:#A3D977; --blood:#6B9B7A; --mobname:#7FE8A0; --sel-bg:#1D3828; --poco:#0A120D;
    --arena-1:#1A2E20; --arena-2:#132419; --arena-3:#0D1A11; --xp2:#A3D977;
  }

/* ===== Bloco style #27 ===== */
.baubg{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:95;
         opacity:0;pointer-events:none;transition:opacity .22s}
  .baubg.on{opacity:1;pointer-events:auto}

  .baupop{position:fixed;left:50%;top:50%;z-index:96;
          transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;
          transition:transform .25s cubic-bezier(.2,.9,.3,1.2), opacity .22s;
          background:var(--panel-2);border:1px solid var(--line);border-radius:18px;
          padding:24px 20px 20px;width:min(300px, calc(100% - 56px));text-align:center}
  .baupop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}

  .bauicone{width:68px;height:68px;margin:0 auto 8px;
            display:flex;align-items:center;justify-content:center}
  .bauicone.abriu{animation:bauPulo .4s ease}
  @keyframes bauPulo{0%{transform:scale(1)}45%{transform:scale(1.2) rotate(-4deg)}100%{transform:scale(1)}}

  .baulabel{font-family:'Silkscreen',monospace;font-size:11px;color:var(--accent);
            letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px}

  .bauitens{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
  .baucard{display:flex;align-items:center;gap:10px;background:var(--panel-2);
           border:1px solid var(--line);border-radius:10px;padding:8px 10px;
           text-align:left;opacity:0;transform:translateY(6px);
           animation:baucardIn .32s ease forwards}
  @keyframes baucardIn{to{opacity:1;transform:translateY(0)}}
  .baubox{width:34px;height:34px;border-radius:8px;background:var(--poco);flex:none;
          display:flex;align-items:center;justify-content:center}
  .bautxt{flex:1;min-width:0}
  .baunome{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text);
           overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bauraridade{font-family:'Outfit',sans-serif;font-size:10.5px;font-weight:700;
               text-transform:uppercase;letter-spacing:.05em;margin-top:1px}

  .bauok{width:100%;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;
         padding:11px;border-radius:11px;border:none;background:var(--accent);
         color:var(--bg);cursor:pointer}

  .lvlpop{position:fixed;left:50%;top:50%;z-index:96;
          transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;
          transition:transform .25s cubic-bezier(.2,.9,.3,1.2), opacity .22s;
          background:var(--panel-2);border:1px solid var(--gold);border-radius:18px;
          padding:26px 22px 20px;width:min(280px, calc(100% - 56px));text-align:center;
          box-shadow:0 0 26px -8px var(--gold)}
  .lvlpop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
  .lvllabel{font-family:'Silkscreen',monospace;font-size:11px;color:var(--muted);
            letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px}
  .lvlnum{font-family:'Cormorant Garamond',serif;font-size:40px;font-weight:700;
          color:var(--gold);line-height:1;margin-bottom:4px}
  .lvlnum.pulou{animation:lvlPulo .45s ease}
  @keyframes lvlPulo{0%{transform:scale(1)}50%{transform:scale(1.25)}100%{transform:scale(1)}}
  .lvlvida{font-family:'Outfit',sans-serif;font-size:12.5px;color:var(--muted);margin-bottom:16px}
  .lvlvida b{color:var(--text);font-weight:700}
  .lvlok{width:100%;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;
         padding:11px;border-radius:11px;border:none;background:var(--accent);
         color:var(--bg);cursor:pointer}

  .quedapop{position:fixed;left:50%;top:50%;z-index:96;
            transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;
            transition:transform .25s cubic-bezier(.2,.9,.3,1.2), opacity .22s;
            background:var(--panel-2);border:1px solid var(--perigo);border-radius:18px;
            padding:26px 22px 20px;width:min(280px, calc(100% - 56px));text-align:center;
            box-shadow:0 0 26px -8px var(--perigo)}
  .quedapop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
  .quedaicone{width:56px;height:56px;margin:0 auto 10px;
              display:flex;align-items:center;justify-content:center}
  .quedaicone img{width:56px;height:56px;image-rendering:pixelated;
                   filter:grayscale(1) brightness(.8)}
  .quedalabel{font-family:'Silkscreen',monospace;font-size:11px;color:var(--perigo);
              letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}
  .quedatitulo{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:23px;
               font-weight:600;color:var(--text);line-height:1.2;margin-bottom:10px}
  .quedaperda{font-family:'Outfit',sans-serif;font-size:12.5px;color:var(--muted);
              margin-bottom:16px}
  .quedaperda b{color:var(--gold);font-weight:700}
  .quedaok{width:100%;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;
           padding:11px;border-radius:11px;border:none;background:var(--accent);
           color:var(--bg);cursor:pointer}

/* ===== Bloco style #28 ===== */
.atributospontos{margin-top:14px}
  .atrhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
  .atrhead b{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text)}
  .atrpill{font-family:'Silkscreen',monospace;font-size:11px;color:var(--bg);
           background:var(--accent);padding:4px 10px;border-radius:999px}

  /* cartao por atributo -- fechado (previa) por padrao: so icone/nome/valor,
     cor do atributo (--atr-cor) so como acento no icone, nao fundo inteiro
     (era chapado demais, pedido explicito do usuario pra ficar mais discreto).
     Corpo com descricao + botao de investir fica escondido ate tocar na
     barra, revelado via classe .aberto (ver JS logo abaixo). */
  .atrcard{border-radius:14px;overflow:hidden;background:var(--panel-2);
           border:1px solid var(--line);margin-bottom:10px}
  .atrcard.trava{opacity:.55}
  .atrbarra{display:flex;align-items:center;gap:10px;padding:12px 13px;
            cursor:pointer;-webkit-tap-highlight-color:transparent}
  .atricone{width:18px;height:18px;flex:none;color:var(--atr-cor)}
  .atrnome{font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;flex:1;color:var(--text)}
  .atrvalor{font-family:'Silkscreen',monospace;font-size:14px;color:var(--atr-cor)}
  .atrchevron{width:16px;height:16px;flex:none;color:var(--dim);transition:transform .2s ease}
  .atrcard.aberto .atrchevron{transform:rotate(180deg)}
  .atrcorpo{display:flex;align-items:center;justify-content:space-between;gap:10px;
            padding:0 13px;max-height:0;overflow:hidden;
            transition:max-height .22s ease,padding .22s ease}
  .atrcard.aberto .atrcorpo{max-height:80px;padding:0 13px 13px}
  .atrdesc{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim)}
  .atrmais{width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--accent-dim);
           background:transparent;color:var(--accent);font-size:18px;font-weight:600;cursor:pointer;
           font-family:'Outfit',sans-serif;line-height:1}
  .atrmais:hover{background:var(--accent-dim)}
  .atrmais:disabled{opacity:.35;cursor:not-allowed;background:transparent}

/* ===== Bloco style #29 ===== */
.lvlitem{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px 12px;
    background:#1F1930;border:1px solid #332A4D;border-radius:12px}
  .lvlitembox{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center}
  .lvlitemtxt{font-family:'Outfit',sans-serif;font-size:12.5px;color:#B3A8D4;line-height:1.35}
  .lvlitemtxt b{color:#5AE0D8}

  .grimOverlay{position:fixed;inset:0;z-index:70;background:#15111F;display:none;
    flex-direction:column;overflow:hidden}
  .grimOverlay.on{display:flex}
  .grimHead{display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 10px;border-bottom:1px solid #332A4D;flex:none}
  .grimHead h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;
    font-size:22px;color:#EFEAFB;margin:0}
  .grimFechar{width:40px;height:40px;border-radius:10px;background:#201A32;border:1px solid #332A4D;
    color:#EFEAFB;font-size:20px;line-height:1;cursor:pointer;flex:none}
  .grimSub{padding:8px 16px;font-family:'Outfit',sans-serif;font-size:12px;color:#7C7196;flex:none}
  .grimScroll{flex:1;overflow-y:auto;padding:6px 16px 24px}
  .grimGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  @media(min-width:420px){ .grimGrid{grid-template-columns:repeat(5,1fr)} }
  .grimcel{aspect-ratio:1;border-radius:10px;background:#201A32;border:1px solid #332A4D;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px;overflow:hidden}
  .grimcel.grimok{cursor:pointer}
  .grimcel .grimrar{font-family:'Outfit',sans-serif;font-size:9px;font-weight:700;
    text-transform:uppercase;letter-spacing:.03em}
  .grimsilhueta{filter:brightness(0);opacity:.32}

/* ===== Bloco style #30 ===== */
.conqcat{margin-bottom:32px}

  .conqcabecalho{display:flex;align-items:center;gap:11px;margin-bottom:16px}
  .conqcaticone{width:34px;height:34px;flex:none;border-radius:50%;display:flex;align-items:center;
                justify-content:center;background:var(--conqcat-cor);color:#1A1526}
  .conqcaticone svg{width:18px;height:18px}
  .conqcattxt{flex:1;min-width:0}
  .conqcatnome{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:var(--conqcat-cor)}
  .conqcatsub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}

  /* CONQUISTAS V2 -- lista plana (Minhas conquistas / Não desbloqueadas), sem
     arvore/tiers visiveis. Reaproveita .edsec (rotulo de secao, ja usado
     em Config) pros dois cabecalhos. */
  .conqv2item{display:flex;align-items:center;gap:12px;padding:11px 2px;
              border-bottom:1px solid var(--line)}
  .conqv2item:last-child{border-bottom:none}
  .conqv2txt{flex:1;min-width:0}
  .conqv2nome{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:700;color:var(--text)}
  .conqv2item.trancado .conqv2nome{color:var(--muted)}
  .conqv2desc{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim);margin-top:2px}
  .conqv2data{font-family:'Silkscreen',monospace;font-size:9.5px;color:var(--dim);flex:none;white-space:nowrap}
  .conqcatcontagem{font-family:'Silkscreen',monospace;font-size:13px;letter-spacing:.02em;color:var(--muted);flex:none}
  .conqcatcontagem b{color:var(--conqcat-cor)}

  .conqtrilha{position:relative;padding-left:38px}

  .conqmarco{position:relative;padding-bottom:20px}
  .conqmarco:last-child{padding-bottom:0}
  .conqmarco::before{content:'';position:absolute;left:-25px;top:26px;bottom:-2px;width:2px;background:var(--line)}
  .conqmarco:last-child::before{display:none}
  .conqmarco.feito::before,.conqmarco.pendente::before{background:var(--conqcat-cor)}

  .conqno{position:absolute;left:-38px;top:0;width:26px;height:26px;border-radius:50%;
          display:flex;align-items:center;justify-content:center;flex:none;
          background:var(--panel-2);border:2px solid var(--line)}
  .conqno svg{width:12px;height:12px;color:var(--dim);opacity:.5}
  .conqmarco.feito .conqno{border-color:var(--conqcat-cor);background:var(--conqcat-cor)}
  .conqmarco.feito .conqno svg{color:#1A1526;width:13px;height:13px;opacity:1}
  .conqmarco.atual .conqno{border-color:var(--conqcat-cor)}
  .conqmarco.pendente .conqno{border-color:var(--conqcat-cor);background:var(--conqcat-cor);
                               animation:conqPulsa 1.6s ease-in-out infinite}
  .conqmarco.pendente .conqno svg{color:#1A1526;width:14px;height:14px;opacity:1}
  @keyframes conqPulsa{
    0%,100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--conqcat-cor) 45%, transparent)}
    50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--conqcat-cor) 0%, transparent)}
  }

  .conqcorpo{padding-top:1px}
  .conqmnome{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--text);letter-spacing:.01em}
  .conqmarco.bloq .conqmnome{color:var(--muted)}
  .conqreq{font-family:'Outfit',sans-serif;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4}
  .conqmarco.bloq .conqreq{color:var(--dim)}
  .conqfracao{font-family:'Silkscreen',monospace;font-size:13px;letter-spacing:.02em;color:var(--conqcat-cor);margin-top:6px;display:inline-block}

  .conqxpprevia{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);margin-top:5px;display:inline-block}
  .conqxpfeito{font-family:'Outfit',sans-serif;font-size:11px;color:var(--conqcat-cor);margin-top:5px;display:inline-block}
  .conqreceber{margin-top:8px;font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:700;
               padding:8px 14px;border-radius:999px;border:none;cursor:pointer;
               background:var(--conqcat-cor);color:#1A1526}

  .conqtudo{display:block;width:100%;margin-bottom:18px;padding:13px;border:none;border-radius:14px;
            cursor:pointer;background:var(--accent);color:var(--bg);
            font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;text-align:center}

  /* balaozinho de notificacao -- injetado via JS em cima do botao da
     sub-aba Conquistas e do botao "Perfil" da nav inferior */
  .conqbadge{position:absolute;top:2px;right:8px;min-width:16px;height:16px;padding:0 4px;
             border-radius:999px;background:var(--perigo,#F45781);color:#fff;
             font-family:'Silkscreen',monospace;font-size:9px;
             display:none;align-items:center;justify-content:center;
             box-shadow:0 0 0 2px var(--panel-2)}

/* ===== Bloco style #31 ===== */
.bestsub{font-family:'Outfit',sans-serif;font-size:12px;color:var(--dim);margin-bottom:10px}
  .bestgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .bestcel{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
           padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:4px}
  .bestimg{width:36px;height:36px;image-rendering:pixelated;object-fit:contain}
  .bestimg.bestsilhueta{filter:brightness(0);opacity:.32}
  .bestnome{font-family:'Outfit',sans-serif;font-size:8.5px;font-weight:600;color:var(--muted);
            text-align:center;line-height:1.2;max-width:100%;overflow:hidden;
            text-overflow:ellipsis;white-space:nowrap}

/* ===== Bloco style #32 ===== */
.histOverlay{position:fixed;inset:0;z-index:70;background:var(--bg);display:none;
    flex-direction:column;overflow:hidden}
  .histOverlay.on{display:flex}
  .histHead{display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 10px;border-bottom:1px solid var(--line);flex:none}
  .histHead h2{font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;color:var(--text);margin:0}
  .histFechar{width:40px;height:40px;border-radius:10px;background:var(--panel-2);
    border:1px solid var(--line);color:var(--text);font-size:20px;line-height:1;cursor:pointer;flex:none}
  .histScroll{flex:1;overflow-y:auto;padding:16px}

  .calnav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .calnav button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);
                 background:var(--panel-2);color:var(--text);font-size:18px;cursor:pointer;
                 font-family:'Outfit',sans-serif;line-height:1}
  .calnav button:hover{background:var(--accent-dim)}
  .calnav span{font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;color:var(--text);
               text-transform:capitalize}

  .caldiassemana{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
  .caldiassemana span{font-family:'Outfit',sans-serif;font-size:10px;font-weight:600;
                       color:var(--dim);text-align:center}

  .calgrade{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px}
  .caldia{aspect-ratio:1;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);
          display:flex;align-items:center;justify-content:center;position:relative;
          font-family:'Outfit',sans-serif;font-size:11px;color:var(--muted)}
  .caldia.calvazio{background:transparent;border-color:transparent}
  .caldia.calhoje{border-color:var(--accent);border-width:2px}
  .caldia.calvitoria{background:rgba(99,201,154,.18);border-color:var(--verde);color:var(--text)}
  .caldia.calfuga{background:rgba(244,87,129,.16);border-color:var(--perigo);color:var(--text)}
  .caldia.calsemtarefa{background:var(--panel-3);border-color:var(--line);color:var(--dim)}

  .callegenda{display:flex;gap:14px;flex-wrap:wrap;font-family:'Outfit',sans-serif;
              font-size:11px;color:var(--dim)}
  .callegenda span{display:flex;align-items:center;gap:5px}
  .calponto{width:9px;height:9px;border-radius:50%;flex:none}
  .calponto.calvitoria{background:var(--verde)}
  .calponto.calfuga{background:var(--perigo)}
  .calponto.calsemtarefa{background:var(--dim)}

/* ===== Bloco style #33 ===== */
/* fundo = tijolo pixel (padrao de alvenaria, ver pintarParede() no
     script abaixo) + o sprite fixo do Grimorio Proibido flutuando ao lado
     do titulo, so de enfeite. */
  .intro.loginBg{background-color:#0B0710}
  .loginSprite{margin:0 auto 4px;animation:respira 2.4s ease-in-out infinite}

  /* cada elemento do formulario se destaca sozinho em cima do tijolo
     (campo com fundo solido + icone, botao Entrar preenchido, sombra
     de texto nos labels/links) */
  #passoLogin .titulo{text-shadow:0 2px 10px rgba(0,0,0,.85)}
  #passoLogin .campo label{text-shadow:0 1px 4px rgba(0,0,0,.85)}
  .campoIcone{position:relative}
  .campoIc{position:absolute;left:14px;bottom:13px;width:20px;height:20px;color:var(--dim);pointer-events:none}
  .campoIc svg{width:100%;height:100%}
  .campoIcone input{padding-left:44px !important}
  .campoStatus{position:absolute;right:14px;bottom:13px;width:20px;height:20px;pointer-events:none;display:none}
  .campoStatus svg{width:100%;height:100%}
  .campoStatus .icOk,.campoStatus .icErro{display:none}
  .campoStatus.ok{display:block;color:#4ADE80}
  .campoStatus.ok .icOk{display:block}
  .campoStatus.erro{display:block;color:var(--perigo)}
  .campoStatus.erro .icErro{display:block}
  #loginSenha, #loginSenhaConfirmar{padding-right:40px !important}

  /* botao Entrar: o onboarding padrao usa contorno vazado (ver regra
     global .primario mais acima no arquivo), mas em cima do tijolo
     isso some -- aqui, so dentro do login, ele fica preenchido/solido */
  #passoLogin .primario{background:var(--accent) !important;color:#14101c !important;
                         border:none !important;text-transform:none !important;letter-spacing:normal !important;
                         font-size:15px !important;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.45)}
  #passoLogin .primario:hover{background:var(--accent) !important;filter:brightness(1.08)}
  #passoLogin .secundario,#passoLogin .loginLink,#passoLogin .loginRodape,#passoLogin .loginDivisor{
    text-shadow:0 1px 4px rgba(0,0,0,.85)}

  .loginTopBtns{position:fixed;top:calc(14px + env(safe-area-inset-top));right:14px;
                display:flex;gap:8px;z-index:90}
  .miniBtn{width:34px;height:34px;border-radius:50%;background:rgba(21,17,32,.72);
           border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;
           cursor:pointer;backdrop-filter:blur(2px);transition:border-color .15s,color .15s}
  .miniBtn:hover{border-color:var(--accent-dim);color:var(--accent)}
  .miniBtn svg{width:17px;height:17px}

  #passoLogin .marca{margin-bottom:2px}
  .loginModo{font-size:14px;color:var(--dim);text-shadow:0 1px 4px rgba(0,0,0,.85);
             transition:opacity .15s}
  .loginDivisor{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:12px}
  .loginDivisor::before,.loginDivisor::after{content:'';flex:1;height:1px;background:var(--line)}
  .loginGoogleBtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
                  background:#fff;color:#1A1526;border:none;border-radius:11px;padding:13px;
                  font-family:'Outfit',sans-serif;font-size:14.5px;font-weight:600;cursor:pointer}
  .loginGoogleBtn svg{width:18px;height:18px}
  .loginLinha{display:flex;justify-content:space-between;align-items:center}
  .loginLink{background:none;border:none;color:var(--accent);font-family:'Outfit',sans-serif;
             font-size:12.5px;cursor:pointer;padding:4px 0}
  .loginRodape{text-align:center;font-size:13px;color:var(--dim)}
  .loginSenhaErro{font-size:12px;color:var(--perigo);margin-top:-8px}

  #passoBoasVindas{align-items:center;text-align:center;gap:28px}
  #passoBoasVindas .marca{gap:6px}
  .boasVindasRotulo{font-size:14px;color:var(--dim);text-shadow:0 1px 4px rgba(0,0,0,.85)}
  #boasVindasNome{font-size:30px;font-family:'Outfit',sans-serif;font-weight:700;
                  letter-spacing:normal;text-shadow:0 2px 10px rgba(0,0,0,.85)}
  #passoBoasVindas .primario{width:100%}

  /* v4.124 (item 34 do roadmap): trava de verificacao de email */
  /* v4.129 (tela estava poluida): .verificarBloco junta a mensagem
     principal + aviso de spam com gap apertado (sao relacionados,
     devem ler como uma unidade mais discreta que o CTA). O gap GRANDE
     (22px, no #passoVerificarEmail) fica ENTRE os grupos, nao dentro
     deles -- e isso que cria a hierarquia.
     v4.132 (poluida de novo, botao "Ja confirmei"/"Verificar agora"
     removido): a checagem virou 100% automatica (poll a cada 4s, ver
     confirmarSeVerificado/confirmarSeVerificadoOverlay no bloco
     Firebase) -- sobrou so "Reenviar email" (agora .primario, e o
     unico CTA que resta) e "Email errado? Corrigir" (link isolado). */
  #passoVerificarEmail{align-items:center;text-align:center;gap:22px}
  #passoVerificarEmail .marca{gap:6px}
  .verificarBloco{display:flex;flex-direction:column;gap:6px}
  .verificarTexto{font-size:14px;color:var(--dim);line-height:1.5;
                   text-shadow:0 1px 4px rgba(0,0,0,.85)}
  .verificarSpamAviso{font-size:12px;color:var(--dim);opacity:.6}
  #verificarEmailAlvo{font-weight:600;color:var(--fg,#fff)}
  #passoVerificarEmail .primario{width:100%}

  /* v4.124: overlay de bloqueio pro caminho "silencioso" (ja tem save
     local, #passoLogin nem existe no DOM) -- standalone, fixed, nao
     depende de #intro/.off. Reaproveita as mesmas classes .primario/
     .verificarBloco ja definidas acima. */
  #bloqueioVerificacaoEmail{position:fixed;inset:0;z-index:9999;
    background:var(--bg);display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;
    gap:22px;padding:32px}
  #bloqueioVerificacaoEmail .titulo{font-size:22px}
  #bloqueioVerificacaoEmail .primario,
  #bloqueioVerificacaoEmail .verificarBloco{width:100%;max-width:340px}

/* ===== Bloco style #34 ===== */
.carrosselTopo{display:flex;align-items:center;justify-content:space-between}
  .carrosselTopoLado{flex:1;display:flex}
  .carrosselTopoEsq{justify-content:flex-start}
  .carrosselTopoDir{justify-content:flex-end}
  .carrosselVoltar{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.06);
                    border:none;color:var(--text);display:grid;place-items:center;cursor:pointer;
                    visibility:hidden;flex:none}
  .carrosselVoltar.visivel{visibility:visible}
  .carrosselVoltar svg{width:18px;height:18px}
  .carrosselDots{display:flex;gap:7px;flex:none}
  .carrosselDot{width:7px;height:7px;border-radius:50%;background:var(--line)}
  .carrosselDot.on{background:var(--accent)}
  /* v4.117 (item 42-h do roadmap): .carrosselPular removido -- botao
     "Pular" tirado do topo do carrossel (pedido do usuario). O link
     "Ja tem conta?" (abaixo) continua sozinho no lado direito do topo. */
  /* v4.116 (item 42-e do roadmap): login deixou de ser um passo
     numerado do carrossel -- vira um "desvio" opcional, acessivel a
     qualquer momento por este link discreto no topo (persiste em
     TODOS os slides, ao contrario de Pular que some a partir do
     slide 4). Ver irParaLogin()/voltarDoLoginCarrossel() mais abaixo. */
  .carrosselEntrarLink{background:none;border:none;color:var(--accent);font-family:'Outfit',sans-serif;
                        font-size:12px;letter-spacing:.02em;cursor:pointer;padding:8px;flex:none;
                        text-decoration:underline;text-underline-offset:2px}
  .carrosselEntrarLink:hover{filter:brightness(1.2)}

  /* fixed;inset:0 tira o splash do fluxo do .card -- ele nao fica preso
     no max-width:400px/padding que .card usa pro resto do onboarding.
     z-index avaliado dentro do stacking context de #intro (que ja tem
     position:fixed + z-index proprio), entao basta ficar acima de tudo
     o que #intro contem -- nao precisa disputar com o resto da pagina. */
  #passoSplash{position:fixed;inset:0;z-index:1;
               background-image:radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--arena-1) 42%, transparent) 0%, color-mix(in srgb, var(--bg) 55%, transparent) 65%), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKCAYAAADVTVykAAABfElEQVR4nJ2TwU7CQBCGvxKMQeCEXojGlMvWIw/AnfIOwh0egYfwpIneQJ4Bn4L22r10SeCoJ0CDJVkvdNPWgsT/srM738x0Z6fWZDKpPwyHdLpdlFK0222yklIyHY3o9HoHmVMUBAFvr6+49/copXBdl6KUkkW0JgxDGo0GUspfgUIInnefKKWwbTuXOUWO4/ASbZjP56ZWAeD6rILrugcD/1vwUJ5kBwsAH6sVUkqEEMbheR6e5xm7tNXYtp3LJLnkmrUBSludqmXd1mp1nQCuKpVUgN5/YJ5q1SrW3l5EGwBuzsosok1qjfW+XgPwdW6Z82K33wdg9PREr9//c8iklIwfH+kOBoRhePTpYn46HnPXagH8yl2Mjcty+eggxhJCUKtWT2Jjfrq38wa4kNz8dZv4RstofRIb84toc7CrpgPL3WcuoLVO7X3fB20Zn2VZeWHpHEd8pgPZ6QSYzWamqO/7ADSbTUrfmiAIcBzHsNm/ITn9F5ncSd8PSsnXJX9WpAwAAAAASUVORK5CYII=");
               background-size:cover, 130px 41px;
               background-repeat:no-repeat, repeat;
               background-position:center, center;
               align-items:center;justify-content:center}
  .carrosselImgWrap{display:flex;justify-content:center;align-items:center;min-height:96px}
  .carrosselImgGrande{width:168px;height:168px;image-rendering:pixelated}
  .carrosselGrupo{gap:12px}
  .carrosselImgMini{width:72px;height:72px;image-rendering:pixelated}

  /* trio escalonado do slide 1 (marca) -- igual a foto de referencia:
     sprite do meio maior/na frente, laterais menores/atras, um pouco
     mais baixos, sobrepondo o do meio. align-items:flex-end + tamanhos
     diferentes ja produz o efeito "meio mais alto" sem precisar de
     posicionamento absoluto nem numeros de offset vertical manuais. */
  .carrosselTrioLogo{display:flex;justify-content:center;align-items:flex-end;margin:12px 0}
  .carrosselTrioLogo img{image-rendering:pixelated;position:relative}
  .carrosselTrioLogo .ctlCentro{width:160px;height:160px;z-index:2}
  .carrosselTrioLogo .ctlLado{width:100px;height:100px;z-index:1}
  .carrosselTrioLogo .ctlEsq{margin-right:-28px}
  .carrosselTrioLogo .ctlDir{margin-left:-28px}
  /* topo (voltar/dots/pular) agora é UM SÓ elemento fixo, fora dos
     slides que deslizam -- antes cada slide carregava seu próprio topo,
     e durante a transição (~300ms) os dois ficavam visíveis ao mesmo
     tempo, mostrando dots/Pular duplicados cruzando a tela (bug visto
     em screenshot real, capturado no meio de uma transição). Agora
     #passoCarrosselTudo (o .passo de fora) contém o topo fixo + o
     .carrosselPalco (position:relative, só ele é o "viewport" que os
     slides absolutos preenchem) -- só o palco anima, o topo fica
     parado, igual no vídeo de referência. */
  /* #passoCarrosselTudo precisa do proprio flex:1 -- antes, quando os
     slides eram filhos DIRETOS do .card, o flex:1 de cada slide bastava
     pra consumir o espaco livre (.card{justify-content:center} so
     entra em jogo com o que sobra DEPOIS do flex-grow ser resolvido).
     Agora existe 1 nivel a mais (.card > #passoCarrosselTudo >
     .carrosselPalco > .carrosselSlide) -- sem propagar flex:1 aqui
     tambem, o wrapper externo fica do tamanho do proprio conteudo (so
     a altura do topo), e .carrosselPalco{flex:1} nao tem sobra nenhuma
     pra crescer -- vira altura 0, e o conteudo do slide (position:
     absolute;inset:0 relativo a uma caixa de 0px) vaza visualmente pra
     cima do topo sem que ninguem perceba olhando só o print (survivor
     bug: cliques no topo eram capturados pelo slide por baixo -- só
     apareceu tentando clicar de verdade via automação, não em screenshot). */
  #passoCarrosselTudo.on{flex:1}
  .carrosselPalco{position:relative;flex:1}
  .carrosselSlide{position:absolute;inset:0;display:none;flex-direction:column;
                   justify-content:center;gap:18px}
  .carrosselSlide.on{display:flex;touch-action:pan-y}
  .carrosselMeio{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px}

  /* legibilidade da descricao reportada como ruim (itálico serifado
     pequeno e apagado) -- escopado só no carrossel via .carrosselMeio,
     não mexe no .lema global (login/passo1 usam a mesma classe e não
     foram tocados). Tira o itálico (principal vilão de legibilidade em
     corpo de texto pequeno), sobe tamanho/peso/contraste. */
  .carrosselMeio .lema{
    font-style:normal;font-size:17.5px;font-weight:400;
    color:var(--text);line-height:1.6;max-width:300px;margin:0 auto
  }
  .carrosselTarefasDemo{display:flex;flex-direction:column;gap:8px;margin-top:14px;width:100%}
  /* .task/.box/.tinfo/.label/.tmeta/.difpip/.repeat/.del/.done sao o
     componente REAL da lista de tarefas (ver linha ~1714, render()) --
     zero CSS novo pra eles, só herdam o que ja existe. Os botoes .del
     e .box aqui nao tem onclick nenhum (tabindex="-1" pra nao roubar
     foco de teclado tambem) -- é só mostra, decorativo. */

  /* v4.117 (item 42-f do roadmap): slide de transicao entre EVOLUA e
     Nome -- prosa centralizada, sem .marca/.titulo (a referencia nao
     tem cabecalho nessa tela, só a frase). Cursor piscando (::after)
     fica visivel enquanto o typewriter roda (iniciarTypewriter, no
     script abaixo) e junto com o texto quando ja terminou -- decisao
     de nao esconder o cursor no fim, pra nao precisar de mais uma
     classe/estado só pra isso. */
  .carrosselTransicao{display:flex;align-items:center;justify-content:center;min-height:120px}
  .carrosselTransicaoTexto{
    font-family:'Cormorant Garamond',serif;font-style:italic;font-size:25px;
    color:var(--text);line-height:1.6;text-align:center;max-width:300px;margin:0 auto
  }
  .carrosselTransicaoTexto::after{
    content:'';display:inline-block;width:2px;height:1em;margin-left:3px;
    background:var(--accent);vertical-align:text-bottom;animation:carrosselCursorPisca .9s step-end infinite
  }
  @keyframes carrosselCursorPisca{0%,100%{opacity:1}50%{opacity:0}}

/* ===== Bloco style #35 ===== */
.somBtn{background:none;border:none;padding:4px;margin:0;cursor:pointer;
          color:var(--dim);display:flex;align-items:center;justify-content:center;flex:none}
  .somBtn svg{width:18px;height:18px}
  .somBtn.mudo{color:var(--perigo)}

/* ===== Bloco style #36 ===== */
/* === Sprite Slash (pack "Pixel_Art_Animations_-_Slashes") ===
     Decisao de escopo (chat de animacoes de combate): so 'corte' e 'impacto'
     ganham sprite animado -- sao as unicas categorias com golpe fisico
     compativel com um arco de slash. perfuracao/distancia/arcano continuam
     com os efeitos CSS existentes (estocada, projetil e particulas magicas
     nao combinam com o movimento de slash). */
  .fx-sprite-slash{
    position:absolute;width:64px;height:64px;pointer-events:none;z-index:7;
    background-repeat:no-repeat;image-rendering:pixelated;
    transform:translate(-50%,-50%) scale(var(--escala-slash,1));
  }
  /* cor do sprite = raridade da arma (nao categoria). Estilo de movimento
     agora varia por raridade tambem, pra dar variedade visual: Slash 2
     (comum/incomum, 7 frames, rajada mais angulosa) / Slash 3 (raro/epico,
     9 frames, crescente fino) / Slash 1 (lendario, 9 frames, arco largo). */
  /* TESTE: todas as 5 raridades usando o MESMO estilo/tamanho do raro/epico
     (Slash 3, 9 frames), so a cor muda -- pra comparar lado a lado se
     "raridade maior = mais poderoso" fica mais claro so pela cor, sem
     diferenca de sprite/escala extra por classe. */
  .fx-sprite-slash.comum{
    background-image:var(--spr-slash-comum);
    background-size:576px 64px;
    filter:grayscale(1) brightness(2.4); /* Slash3/color5 ciano -> branco, bate com COR_RAR[0] */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.incomum{
    background-image:var(--spr-slash-incomum);
    background-size:576px 64px;
    /* Slash3/color1 verde nativo, ja bate com COR_RAR[1] #63C99A */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.raro{
    background-image:var(--spr-slash-raro);
    background-size:576px 64px;
    /* Slash3/color5 ciano sem filtro (nativo), aproxima COR_RAR[2] #5AA9F2 */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.epico{
    background-image:var(--spr-slash-epico);
    background-size:576px 64px;
    filter:hue-rotate(44deg) saturate(1.3) brightness(1.1); /* Slash3/color3 -> roxo, bate com COR_RAR[3] #B57BE8 */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.lendario{
    background-image:var(--spr-slash-lendario);
    background-size:576px 64px;
    /* Slash3/color4 laranja nativo, bate com COR_RAR[4] #F2A65A */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  @keyframes fxSpriteSlash9{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(-20px,-20px) rotate(-35deg)}
    8%{opacity:1}
    100%{background-position:-576px 0;opacity:1;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(20px,20px) rotate(35deg)}
  }
  @keyframes fxSpriteSlash7{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(-20px,-20px) rotate(-35deg)}
    8%{opacity:1}
    100%{background-position:-448px 0;opacity:1;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(20px,20px) rotate(35deg)}
  }
  /* comum/incomum: sem deslocamento -- fica parado no centro do mob. Arte do
     Slash 2 concentra o desenho ~7px abaixo do centro do quadro 64x64, entao
     desloca -7px em Y pra recentralizar. Escala extra (+30%) pra compensar
     a falta de movimento. */
  @keyframes fxSpriteSlash7Fixo{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translateY(-7px) rotate(25deg)}
    8%{opacity:1}
    100%{background-position:-448px 0;opacity:1;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translateY(-7px) rotate(25deg)}
  }
  /* lendario: Slash 1 ja fica quase centrado (desvio pequeno), so escala extra. */
  @keyframes fxSpriteSlash9FixoLendario{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translate(-6px,-2px) rotate(25deg)}
    8%{opacity:1}
    100%{background-position:-576px 0;opacity:1;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translate(-6px,-2px) rotate(25deg)}
  }
  /* raro/epico: sem deslocamento diagonal -- fica parado no centro do mob,
     so troca de frame (pedido explicito do usuario, testar como fica). */
  /* raro/epico: recentralizado (a arte do Slash 3 concentra o desenho na
     metade de cima do quadro 64x64, por isso parecia deslocado pra cima --
     compensa com translateY) e escala extra (+35%) so pra esses dois. */
  /* correcao de centro (translateY) precisa vir DEPOIS de scale() na lista --
     assim o deslocamento escala junto com o tamanho em vez de ficar fixo em
     px (bug: aumentar a escala sem isso faz o desenho "subir" de novo,
     porque o offset fixo passa a ser proporcionalmente menor). */
  @keyframes fxSpriteSlash9Fixo{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.5)) translateY(12.5px) rotate(25deg)}
    8%{opacity:1}
    100%{background-position:-576px 0;opacity:1;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.5)) translateY(12.5px) rotate(25deg)}
  }

/* ===== Bloco style #37 ===== */
:root{
    --spr-slash-comum: url("data:image/png;base64,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");
    --spr-slash-incomum: url("data:image/png;base64,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");
    --spr-slash-raro: url("data:image/png;base64,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");
    --spr-slash-epico: url("data:image/png;base64,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");
    --spr-slash-lendario: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkAAAABACAYAAADyBcgfAAAM2klEQVR42u2dvYvjSBqHXx17HFcsp/EF2x30gtdww6TGDi8w01yg7JjIbRqc3T9gJwuXX+L+IwxNj+FguUzB0oPjw8bpsYFouIad3mC9XmYFywW6QFVySS3JUlsqSa7fA6Y/LFmq8kc9ft+3SobneQQAAAAAoBO/QRcAAAAAAAIEAAAAAAABAgAAAACAAAEAAAAAQIAAAAAAACBAAAAAAAAQIAAAAACA+vAZugAAkBf3spV101UBh+vn3YHdb6tsc5SZ9Ps0x30vooy2AwABAgAUx6wt/xVakdS1d+FBzTKNXIO1vSt1IGSWeej4K2nb3lHiwR+LWWY/a9urard0DjMiGsT0wSRlnwERXRDRLd9nWreX7BESGJI9dr+d8sebFSl/EECQBwMrQQNQEY9vEwWIiIgWzrMBnc27h0Vo4ZQuQDRrEw074cFxvImXnsh20fbF3i/uCwvCms27ByXIHW9KiwBlEL8ZEQ1SpC/p+fPi2ktEy9wiNH0oVYCySCDvB2KWOYi5O+45XEn7LvMKYOg9UrIA5ZDAuyMOM4L0lQ8iQABUxcWH9G8fQ1+QGDny4O7xD7wUEWqrbIMYFFYh8RFSw++PH6gp/T4hiFyGmGX2hGSx+22KCLXKa2+CzLnjTbz4PN8+8zdORk6PiHo8MrRk8+5hIYgRR1V9IPqBWeYgkKRhp5dF9kLtHlKPFs46kKgM7WbDvfyqIE0CXXt3J213xf/3Xv49qzwxyxxlFT+VvEACR/z3Ue6+LlHuIEAA1FeQQiJEC4eYZZJr78i9bHnpEqTsg/C5+KRJz/Ht77n2bu1etlbpEqSwD8abVaaIV1ZhEfvzn4EIjTeZZKAyFs6KWWaS9Iht1hkEq8fFZ8L3Gbj2blnrtkviExEdQxKm0SF5EoIoSZLH5WnUoE8uWXTk8x4d+VgQIAC0FiEuQVw+KpMg196tyN7ki/gUJEJcCKgOEnSU/MRtv3CeS9FehCbueHPN5t3zOsqPLC+5pYf2qS+yN0tmmQN5P2aZA3e8mdVVgqLyQ0RGVHTkyJDUrrjB3ZAiJwb/0pMpIlQT+SmSUtsLAQKgSSIkUkMiGlShBJUS9ckngr0qJcgdbz4yyzx7kfgckiK/jmstCx+Pipy5483HWknQwlkdFJ+0qBDfVtQLufZuGciQJEBcilZ1iwa59u4ukuoaRYWHWeZVXORHpLDkfZhljpJER9xfU/EZlS0sECAAIEKhaFAVEqRcfh7f7o8Tbn8lElSq/PCfQaRLiJBl9mjh1EuCkuQni/QkbCvVAC2lgX8ZiNC8O6lLOjBOfmKiQXH7ReuAPL4PEdEVRYrlZempoQQlpalKTV9BgABoMuFZYOEoR/0lyKBhx8t8vnFt9QfQsEAkPV70/1L7K4j8zHLLT+Q8XXv3JA1uZ88ESIoEBXVP/j6PIvVYuQSlyU9KNCguuvNMhIadHiNnLz5cdtzxZiZSZFWnxJLkJ1r4HJUdHuGJysxIFqEDXz7k4xg1+CQbFRgNukt4TAgQACdFbAHs2+wyFJGAuhRGx0pPmqiE7msn1xOJKJD4ydvPyFEWBRKzvfI8vyKCQ0TBYC5mLUmP6WNvBkG0Z9gJJEj0AH+MgZAhd7xZZVkaoCQJzCQ90ZSV3PaE/g2kiM27E1o46+D/8+5U3qYOdUFR+YnO+EqL1kTvk2RJiJEXJzkRaapb9OfFM75UtwnrAAFQ1QfnZcuLfKjFCFGGFBOvCeJr/xg0a6tbByhuKn9k+npEAg7yrKhYbr+cCou0n6YPBu/XMleCPpz62ovPExHdvmSA5oP8NbPMs+A4+7qgpdRXk9D6SH4/lPmaJSKaMcscJEZ/EsTnCNEayNEjORrELHMQ+Z+qdYDu5IJnEbkRAlNkiiot5RXUECleB0j0QURYSkl5YRo8ACdINFoTFSIisQZQO12ELj4QUXufCsu5avSxX6JIDttH5CeoX8kYnXEvW6tozUuo/XIESI4EUVvFrLAZj8KcpclPsIDhEYM/33fKUz4DERFi5PT4oHdBRLeuvbvhNTHKIiGH5EcISVqkJ2c/EG/fhJFDclv5sSZU4ErSGftAjvB4aVGdAo41OjALrA61NrWv94EAAdAgIZKl6KAIhVMlqvEl6PFtbNQnj5TI24bWGFo4+/SgXAwtJEgqGi6R61C9TknykyQAQoR4TdATj/7cuOPNE2VNy5XJwlnTsNMvQnyShJD4itFy9Mcdb26ISGUq7E6O9pQV+ckhVVWJx6jJ8kOEq8EDUHspYvdbw7V3frh74SQXTw87YqHEKvLaxrHyEydD7H7bD9Jn4vFF++WfkRWpS+IxkE0F8hMVADbv9l17d8MHxDPX3t0wy5yQn2brhWqJymOWJj+lH33Y6cvT5RMutaHu/SnN9GrYYoVFymBj2w0BAqBhIpQoQRUjRKUI+YmKEJ8FtQ5JUJD+4n8XOR39ZW0vfX0aNu9OpRlkAyFEPApyraSx0fSXKvmRJEjq92UNXvfKV2rmKTEU8EKAANBLhBIliMsAL6b2Kji3vihELroWJxQNkiUo0ge8gLqsKFA/7cKtympw5t1zngLrcem55m0/U/AcT2MGY+USEppVJqcJ1TCSp7hXEfnhx6x6xmejoz9EqAECDSLDBfjEoP+e3W9PNhzN7reGe9nyGDmKSz9ziFCJj+1etlaMnF5ounyQBmtXEQEIzcxSxC2/SCoFx66iDmzhrKuahi6mxEtT5Cf8YqhTAiADiACB5gz8lrm/zbv+zTI9Nu/6t8MXGTwpCQqiIDIlToGuk2A9iwTF9UXxrGIEoJo+8KXjQooCkTvePLn27qNi+VtW+lrg8sVl6EZV5CNugcMKuavomI3/kgkBAo1GrIOhbdurm/lVDwlSS5/8tMP+NuwYbN7tVxQFuZVXlOZfEs60ey3wSFAVz0FNCp9HBCBAAGgZBaoZBm3JIEULsyVcOV2XgT8iPbdKTyDjVd5V9gUh/QUgQEArNI2CEPEoUI1mhMniI0RIvhUsgOEo0MUHHV8LoShQNCKk1XtBXRE0gAABUAvea98D0VoYRfz5y3/Wqx9quDRA2URmQ010fhsoTIEh5XQiYBYYOB2qXQ25mg99/9pfXszgryQ9ljeqE93eo9ax7e/TrO2pSn3xWUZ145aIrvmK0OW235+JaTSgT8rkjgAECIA64No7KmP5/UYhpoLXmO9ffRX6+/yL3xF9V+CYrXEqVEgQPg1oRiXXAfElNkasBtVGVZ3DqSwzAgEC4CQEUNlU8GJ5fUbGd/9J3SRTlChy8VVQ2sBX91NEETTIDGqAADgFxCUh/GtS1ea0vn/1VXCL8vGHX+njD78WIYC+9OzTYH3Nnn150D/HmwGAbCACBE4Hf/B/TzoWKYrIz/SBGLWNKiQoTnJUw+63vQwrhp8i16R6GjwADQcRIABOiVm7cafsvX5D3us3ifdnKrTmBfDuZUvXFBhqgACAAAHd0Gnxw0PovDI2UbnXIWuIBAEAMoIUWJNIKnBdOJ50YUhDs165kgd/Zpkj3SVAJUWkvYqoA+Lpz3WZs2K+/bSlv3xe6/QaCoABgABpxr7409C8/VrCLNMvgp61xbpAyo59/tNP+WTn1auShv4HIrt8Ofn2UzgdVyMhuoYAAZAPpMCazsLxxDdg3XDHmzs5AkC6rgo97BDN2krTX+++/pm++OxP9ekDX/76+EAAAGQFESDQZK5E/Y9r74jNu6NGieDr8IW7nxIWBUy7vLd72fJEH9T14qhZ8V6/ObgmUBzMMntlp7+IiH7595fP/vcv+ryUY/317ae8u2D6OwA5QQToFL79+z91T39pGf1h91ui6cNJFD+/pBbIvWytaPqge/QHFwEF4AUgAtRkRPHzwtG6DsYdb/zoj27t5tEf195VFv1599s/EhHRN//4Q6btz//+KvV+b9Z9ST+sVcwEHHn/retLAbU/AECANEPj6I873txJg56e0Z95l+jiA7Fp9cXv777+OfR3ViE6ug8ss0e6Fv8DACBAWoLozxUXoeZGf/72+9CfZzlmb7n2jtf+tHUe/D3IDwAAAqSv/OgX/bF3iP747a/suf/mfz/mf96KvUTFCvIDANBHgMILAXoaLvoXRtPCZ2aZVzTsaFv7Q4h8rEi/C54CALQWIAwA8qrPWrZfRH/c8YaYZRq6rX/EU1+IfAAAgIYCpPe3X8jPFb/khY59kFl+2P22didf4Dkh+gMA0E6AdA/9a93+k5Of6UPePRD5AQAALQVI95of3dvvSxAkAAAAwNEYnuehFwAAAACgFbgUBgAAAAAgQAAAAAAAECAAAAAAAAgQAAAAAAAECAAAAAAAAgQAAAAAAAECAAAAAIAAAQAAAABAgAAAAAAAIEAAAAAAABAgAAAAAAAIEAAAAADAy/g/EQGYeU5jodsAAAAASUVORK5CYII=");
  }


/* ===== Blocos de módulos autônomos (extraídos do corpo do HTML) ===== */

/* --- Módulo style #1 --- */
#viewLoja{padding:14px 14px 8px}

  .lojatopo{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
  .lojatopo .saldo{margin-top:0}

  .lojatabs{display:flex;gap:6px}
  .lojatabs button{font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;color:var(--dim);
        background:var(--panel-3);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
  .lojatabs button.on{color:var(--bg);background:var(--accent);border-color:var(--accent)}

  .lojalista{display:flex;flex-direction:column;gap:8px}
  .lrow{display:flex;align-items:center;gap:11px;background:var(--panel-3);border:1px solid var(--line);
        border-radius:12px;padding:9px 11px;position:relative}
  .lrow.oferta{border-color:var(--gold);box-shadow:0 0 10px rgba(242,201,76,.14)}
  .lrow.trava{opacity:.5}
  .lrow.esgotado{opacity:.38}
  .lrow .lbox{width:46px;height:46px;border-radius:10px;background:var(--poco);border:1px solid var(--line);
        display:flex;align-items:center;justify-content:center;flex:none}
  .lrow .linfo{flex:1;min-width:0}
  .lname{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:600;color:var(--text);
         white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lmeta{font-family:'Outfit',sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;
         letter-spacing:.05em;margin-top:2px}
  .lbonus{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);margin-top:3px}
  .lbonus b{color:var(--muted);font-weight:600}
  .lacao{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px}
  .lpreco{font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:700;color:var(--gold);
          font-variant-numeric:tabular-nums;white-space:nowrap}
  .lpreco s{color:var(--dim);font-weight:500;font-size:10.5px;margin-right:4px}
  .lpreco .lmoeda{width:11px;height:11px;margin-left:3px;vertical-align:-1px}
  .lbtn{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;padding:6px 14px;border-radius:9px;
        border:1px solid var(--accent);background:var(--accent);color:var(--bg);cursor:pointer;white-space:nowrap}
  .lbtn.sec{background:var(--poco);border-color:var(--line);color:var(--muted)}
  .lbtn.off{background:var(--poco);border-color:var(--line);color:var(--dim);cursor:default}
  .lflag{position:absolute;top:-7px;left:11px;font-family:'Outfit',sans-serif;font-size:9px;font-weight:700;
         text-transform:uppercase;letter-spacing:.08em;background:var(--gold);color:var(--bg);
         border-radius:999px;padding:2px 7px}
  .lqtd{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);font-weight:600}
  .lbulk{margin-top:12px;width:100%;font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:600;
         padding:10px;border-radius:11px;border:1px dashed var(--line);background:var(--poco);
         color:var(--gold);cursor:pointer}
  .lnota{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim);text-align:center;
         margin:14px 0 4px;line-height:1.5}

/* --- Módulo style #2 --- */
/* ============ TAREFAS: botoes maiores + dificuldade ============ */

  /* botao "+ Adicionar": area de toque de 44px, minimo recomendado no celular */
  .thead .add{
    padding:11px 18px !important;
    font-size:14.5px !important;
    font-weight:600 !important;
    border-radius:11px !important;
    min-height:44px !important;
  }
  .thead .add:active{transform:scale(.96)}

  /* botao de apagar: era 16px e so aparecia no :hover — no celular nao existe hover */
  .task .del{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    margin-left:auto !important;
    padding:0 !important;
    font-size:21px !important;
    line-height:1 !important;
    border-radius:10px !important;
    color:var(--dim) !important;
    background:rgba(255,255,255,.045) !important;
    opacity:1 !important;              /* sempre visivel */
    display:grid; place-items:center;
    transition:background .15s, color .15s, transform .1s;
  }
  .task .del:active{
    background:rgba(242,87,129,.20) !important;
    color:var(--perigo) !important;
    transform:scale(.9);
  }
  .task:hover .del{opacity:1 !important}

  .task{padding:13px 12px 13px 14px !important}
  .task .box{width:24px !important;height:24px !important;border-width:2px !important}

  /* --- linha de meta abaixo do titulo --- */
  .tinfo{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
  .tmeta{display:flex;align-items:center;gap:8px}

  /* --- losangos de dificuldade --- */
  .difpip{display:inline-flex;gap:3px;align-items:center}
  .difpip i{
    width:6px;height:6px;
    background:currentColor;
    transform:rotate(45deg);
    border-radius:1px;
    display:block;
  }
  .task[data-dif="trivial"] .difpip{color:#7E8BA3}
  .task[data-dif="facil"]   .difpip{color:var(--verde)}
  .task[data-dif="media"]   .difpip{color:var(--accent)}
  .task[data-dif="dificil"] .difpip{color:var(--perigo)}

  /* --- seletor no composer --- */
  .difwrap{display:flex;flex-direction:column;gap:7px}
  .diflabel{
    font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
  }
  .difs{display:flex;gap:6px}
  .dif{
    flex:1;min-height:56px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    background:var(--panel);border:1px solid var(--line);border-radius:10px;
    padding:8px 4px;cursor:pointer;transition:.15s;
    color:var(--dim);
  }
  .dif .difnome{
    font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:500;
    color:var(--muted);line-height:1;
  }
  .dif.on{background:var(--accent-dim);border-color:var(--accent)}
  .dif.on .difnome{color:var(--accent);font-weight:600}
  .dif:active{transform:scale(.96)}

  .dif[data-dif="trivial"].on{color:#7E8BA3}
  .dif[data-dif="facil"].on  {color:var(--verde)}
  .dif[data-dif="media"].on  {color:var(--accent)}
  .dif[data-dif="dificil"].on{color:var(--perigo)}
  .dif[data-dif="trivial"].on .difnome{color:#7E8BA3}
  .dif[data-dif="facil"].on   .difnome{color:var(--verde)}
  .dif[data-dif="dificil"].on .difnome{color:var(--perigo)}

  /* --- "vezes por dia": mesmo rotulo do difwrap, stepper proprio --- */
  .vezeswrap{display:flex;flex-direction:column;gap:7px}
  .vezesrow{display:flex;align-items:center;gap:12px}
  .vezesbtn{
    width:40px;height:40px;flex:none;border-radius:10px;
    background:var(--panel);border:1px solid var(--line);color:var(--text);
    font-family:'Outfit',sans-serif;font-size:18px;font-weight:600;line-height:1;
    cursor:pointer;transition:.15s;
  }
  .vezesbtn:active{transform:scale(.94)}
  .vezesbtn:disabled{opacity:.35;cursor:default}
  .vezesnum{
    flex:1;text-align:center;font-family:'Outfit',sans-serif;
    font-size:15px;font-weight:600;color:var(--text);
  }
  .vezesnum b{font-family:'Outfit',sans-serif;font-size:20px;font-weight:700;margin-right:5px}

  /* --- opcoes avancadas: disclosure + color picker livre por tarefa --- */
  .advtoggle{
    width:100%;text-align:left;background:none;border:none;padding:6px 0;
    font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:600;
    color:var(--dim);letter-spacing:.02em;cursor:pointer;
    display:flex;align-items:center;justify-content:space-between;
  }
  .advchevron{transition:transform .18s;font-size:11px}
  .advtoggle.on .advchevron{transform:rotate(180deg)}
  .advpanel{
    max-height:0;overflow:hidden;opacity:0;
    transition:max-height .22s ease, opacity .18s;
  }
  .advpanel.on{max-height:190px;opacity:1}
  .advcolorrow{display:flex;flex-direction:column;gap:9px;padding:8px 0 4px}
  .advcolorpick{display:flex;align-items:center;gap:9px}
  .advswatch{
    width:40px;height:40px;flex:none;border-radius:9px;
    border:1px solid var(--line);background:var(--accent);
  }
  .advhex{
    flex:1;min-width:0;height:40px;padding:0 12px;border-radius:9px;
    border:1px solid var(--line);background:var(--panel);color:var(--text);
    font-family:'Outfit',sans-serif;font-size:14px;letter-spacing:.03em;
  }
  .advhex:focus{outline:none;border-color:var(--accent)}
  .advswatches{display:flex;flex-wrap:wrap;gap:8px}
  .advpreset{
    width:28px;height:28px;flex:none;border-radius:8px;cursor:pointer;
    border:2px solid transparent;transition:transform .1s,border-color .12s;
  }
  .advpreset:active{transform:scale(.9)}
  .advpreset.on{border-color:var(--text)}
  .advreset{
    background:var(--panel);border:1px solid var(--line);border-radius:9px;
    color:var(--muted);font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;
    padding:0 12px;height:40px;cursor:pointer;
  }
  .advreset:active{transform:scale(.97)}

/* --- Módulo style #3 --- */
/* --- caixa de concluir e botao de apagar, em area de toque real --- */
  .task .box{
    width:42px !important; height:42px !important;
    min-width:42px !important;
    border-radius:12px !important;
    border:2px solid var(--dim) !important;
    display:grid !important; place-items:center;
    transition:background .16s, border-color .16s, transform .1s;
  }
  .task .box svg{width:20px;height:20px}
  .task .box:active{transform:scale(.9)}
  .task.done .box{background:var(--verde,#63C99A) !important;border-color:var(--verde,#63C99A) !important;color:var(--bg) !important}

  .task .del{
    width:42px !important; height:42px !important;
    min-width:42px !important;
    font-size:23px !important;
    border-radius:12px !important;
  }

  .task{gap:13px !important;padding:12px !important}
  .task .tinfo{cursor:pointer}

  /* --- folha do editor --- */
  .edov{
    position:fixed; inset:0; z-index:80;
    background:rgba(10,7,18,.68);
    backdrop-filter:blur(3px);
    display:none; align-items:flex-end; justify-content:center;
  }
  .edov.on{display:flex}

  .edsheet{
    position:relative;
    width:100%; max-width:430px;
    background:var(--panel-2); border-top:1px solid var(--line);
    border-radius:20px 20px 0 0;
    padding:8px 16px calc(18px + env(safe-area-inset-bottom));
    max-height:88vh; overflow-y:auto;
    animation:edsobe .22s cubic-bezier(.2,.9,.3,1);
  }
  @keyframes edsobe{from{transform:translateY(100%)}to{transform:translateY(0)}}

  .edpuxador{width:38px;height:4px;border-radius:2px;background:var(--line);margin:6px auto 14px}

  .edfechar{
    position:absolute; top:10px; right:12px; width:32px; height:32px;
    background:transparent; border:none; border-radius:50%;
    color:var(--dim); font-size:22px; line-height:1; cursor:pointer;
    display:grid; place-items:center;
  }
  .edfechar:active{background:rgba(255,255,255,.08)}

  .edtitulo{
    font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;
    letter-spacing:.07em;text-transform:uppercase;color:var(--dim);
    margin-bottom:10px;
  }
  .edcampo{
    width:100%; background:var(--panel); color:var(--text);
    border:1px solid var(--line); border-radius:11px;
    padding:13px 13px; font-family:'Outfit',sans-serif; font-size:15px;
    outline:none; margin-bottom:16px;
  }
  .edcampo:focus{border-color:var(--accent)}

  .edsec{
    font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;
    letter-spacing:.06em;text-transform:uppercase;color:var(--dim);
    margin-bottom:7px;
  }
  .edbloco{margin-bottom:16px}
  .edbloco .days{margin-top:6px}

  .edacoes{display:flex;gap:9px;margin-top:4px}
  .edsalvar{
    flex:1; background:var(--accent); color:var(--bg); border:none;
    border-radius:12px; padding:14px;
    font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer;
  }
  .edexcluir{
    width:54px; background:transparent; border:1px solid rgba(244,87,129,.35);
    border-radius:12px; color:var(--perigo); font-size:21px; cursor:pointer;
    display:grid; place-items:center;
  }
  .edexcluir:active{background:rgba(244,87,129,.15)}
  .edsalvar:active,.edexcluir:active{transform:scale(.97)}

  /* botao destrutivo de largura cheia, pra folhas de confirmacao com texto
     (diferente de .edexcluir, que e so pra icone unico tipo "x", 54px fixo) */
  .edperigo{
    flex:1; background:var(--perigo); color:#2A0E16; border:none;
    border-radius:12px; padding:14px;
    font-family:'Outfit',sans-serif; font-size:15px; font-weight:600; cursor:pointer;
  }
  .edperigo:active{transform:scale(.97)}

/* --- Módulo style #4 --- */
/* dentro da folha o composer perde a caixa propria, senao fica caixa dentro de caixa */
  #addOverlay .composer{
    margin-top:0 !important;
    background:transparent !important;
    border:none !important;
    border-radius:0 !important;
    padding:0 !important;
  }
  #addOverlay .composer input{font-size:15px;padding:13px}
  #addOverlay .cbtn{padding:14px;font-size:15px;border-radius:12px;margin-top:4px}

/* --- Módulo style #5 --- */
.xpwrap .hprow{margin-bottom:5px}
  .xpwrap .hpbar{margin-bottom:12px}
  .xpwrap .hpfill{
    background:var(--perigo) !important;
    transition:width .45s cubic-bezier(.4,1.2,.5,1), background .3s;
  }
  .xpwrap .hpfill.baixa{background:var(--perigo2) !important}
  .xpnum.hpnum{color:var(--perigo) !important}
  .xpnum.hpnum.baixa{color:var(--perigo2) !important}
  .hpdano{animation:hptremor .4s ease}
  @keyframes hptremor{
    0%,100%{transform:translateX(0)}
    20%{transform:translateX(-4px)} 45%{transform:translateX(4px)}
    70%{transform:translateX(-2px)}
  }
  @media (prefers-reduced-motion:reduce){ .hpdano{animation:none} }

/* --- Módulo style #6 --- */
/* ============ AVISOS NO TOPO ============ */
  /* Nao existe faixa livre dentro da arena: a vida do monstro fica em y=77,
     os sprites de y=88 a 175 e o nome do monstro de y=191 a 216. O unico vao
     real da tela e o miolo da topbar — o selo de nivel acaba em x=88 e as
     moedas ficam a direita. Dai a largura maxima estreita: alargar volta a
     cobrir o nivel ou o contador de moedas. */
  .toast{
    bottom:auto !important;
    top:calc(9px + env(safe-area-inset-top)) !important;
    transform:translate(-50%, -12px) !important;
    z-index:90;                        /* as folhas modais ficam em 80 */
    max-width:min(62vw, 236px);
    padding:9px 14px !important;
    line-height:1.35;
    box-shadow:0 6px 20px rgba(0,0,0,.5);
  }
  .toast.on{transform:translate(-50%, 0) !important}

/* --- Módulo style #7 --- */
/* a aura usa ::after porque o ::before do .hero-sprite ja e o halo de tocha */
  .hero-sprite::after{
    content:'';position:absolute;inset:-14%;border-radius:50%;
    background:radial-gradient(circle, var(--aura,transparent) 0%, transparent 62%);
    opacity:0;transition:opacity .45s, background .45s;
    pointer-events:none;z-index:0;
  }
  .hero-sprite.temAura::after{opacity:.85;animation:auraPulso 3.2s ease-in-out infinite}
  @keyframes auraPulso{0%,100%{opacity:.55}50%{opacity:.95}}

  /* EQUIPAMENTOS: faixa horizontal no topo do .xpwrap, acima da barra de Vida.
     Saiu de cima do sprite (badges absolutos) porque as caixas tampavam o
     heroi e brigavam por espaco com a arena. Vive dentro de .xpwrap, que ja
     esta em blocosTarefas — some sozinho ao trocar de aba, sem gancho novo. */
  .eqrow{margin-bottom:12px}
  .eqrow[hidden]{display:none}
  .eqbadges{
    display:flex;flex-wrap:wrap;gap:6px;align-items:center;
    margin-top:5px;pointer-events:none;
  }
  .eqb{
    width:30px;height:30px;border-radius:7px;flex:none;
    display:grid;place-items:center;
    background:rgba(0,0,0,.4);
    border:1px solid var(--cor,var(--line));
    box-shadow:0 0 6px -1px var(--cor,transparent);
  }
  .eqb .pxi{opacity:.95}

  /* arma em destaque: 2-3x maior que os demais, moldura mais grossa e brilho
     mais forte reaproveitando a mesma var(--cor) por raridade do item —
     item 19 do roadmap ("badge maior + moldura por raridade") */
  .eqb.eqb-arma{
    width:52px;height:52px;border-radius:10px;
    border-width:2px;
    box-shadow:0 0 12px -1px var(--cor,transparent), 0 0 0 1px var(--cor,transparent) inset;
  }

  @media (max-width:345px){
    .eqbadges{gap:4px}
    .eqb{width:26px;height:26px}
    .eqb.eqb-arma{width:44px;height:44px}
  }
  @media (prefers-reduced-motion:reduce){
    .hero-sprite.temAura::after{animation:none}
  }

/* --- Módulo style #8 --- */
.perfilhero{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;
              padding:16px;margin-bottom:14px;text-align:center}
  .perfilheroLinha{display:flex;align-items:center;gap:16px;text-align:left}
  .perfilheroLinha .hero-sprite{flex:none}
  .perfilheroInfo{flex:1;min-width:0}
  .perfilnome{font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;margin-bottom:10px}
  .perfilhero .bar{margin-bottom:6px}
  .perfilhero .xpnum{display:block}
  /* .xpwrap/.hprow/.hpbar sao reaproveitados do cabecalho da Arena (mesmo
     par hpfill/hpnum, so troca de id) -- aqui dentro do card .perfilhero
     zera o padding/borda pensados pro contexto da Arena, ja que o card
     do Perfil ja tem sua propria borda/padding. */
  .perfilhero .xpwrap{padding:0;border-bottom:none;margin-top:2px}

  .statgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
  .statcard{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
            padding:12px;display:flex;flex-direction:column;gap:4px}
  .statlabel{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim)}
  .statval{font-family:'Silkscreen',monospace;font-size:14px;color:var(--accent)}

/* --- Módulo style #9 --- */
/* .perfiltabs/.pcfg/.perfilpane.oculto removidos daqui -- a fileira de
     pills (Atributos/Conquistas/Bestiário/engrenagem) deixou de existir
     (item 18 do roadmap: Perfil virou rolagem unica, sem sub-abas). A
     engrenagem agora mora no vhead (ver .vheadCfgBtn abaixo). */
  .vheadDireita{display:flex;align-items:center;gap:10px}
  .vheadCfgBtn{width:34px;height:34px;flex:none;display:grid;place-items:center;
    background:var(--panel-3);border:1px solid var(--line);border-radius:10px;
    color:var(--muted);cursor:pointer}
  .vheadCfgBtn svg{width:17px;height:17px}
  .vheadCfgBtn:active{background:var(--accent-dim);color:var(--accent)}

  /* previas (Historico/Conquistas/Bestiario) reaproveitam .cfgrow, que ja
     existia pra Config -- mesmo visual, zero CSS novo pra elas.
     .prevfaixa reaproveita classes visuais que ja existiam em outros
     modulos (.caldia/.calvitoria/.calfuga do Historico, .conqcaticone
     das Conquistas, .bestimg do Bestiario) -- so a faixa horizontal em
     si e nova. */
  .cfgrowtopo{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .prevfaixa{display:flex;gap:6px;margin-top:10px;min-height:32px;
             overflow-x:auto;-webkit-overflow-scrolling:touch}
  .prevfaixa .caldia{width:32px;height:32px;aspect-ratio:unset;flex:none}
  /* pedido do usuario: previa de conquistas so com texto, sem icone --
     chip com cor da conquista na borda/texto em vez de circulo preenchido */
  .prevconqchip{flex:none;display:flex;align-items:center;height:30px;padding:0 11px;
                border-radius:14px;background:var(--panel-3);border:1px solid var(--pv-cor);
                font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;
                color:var(--pv-cor);white-space:nowrap}
  .prevbestimg{width:32px;height:32px;flex:none;object-fit:contain;image-rendering:pixelated;
               border-radius:8px;background:var(--panel-3);padding:3px;box-sizing:border-box}
  .prevvazio{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim);
             display:flex;align-items:center}

  /* overlay de Config -- mesmo padrao de histOverlay/grimOverlay, z-index
     um degrau abaixo (69 vs 70) de proposito: se o usuario abrir o
     Historico de dentro do Config, o Historico precisa pintar por cima. */
  .cfgOverlay{position:fixed;inset:0;z-index:69;background:var(--bg);display:none;
    flex-direction:column;overflow:hidden}
  .cfgOverlay.on{display:flex}
  .cfgovhead{display:flex;align-items:center;gap:10px;flex:none;
    padding:calc(14px + env(safe-area-inset-top)) 16px 10px;
    border-bottom:1px solid var(--line)}
  .cfgovhead .vtitle{font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;color:var(--text)}
  .cfgvoltar{width:36px;height:36px;flex:none;display:grid;place-items:center;
    background:transparent;border:none;border-radius:50%;color:var(--text);cursor:pointer}
  .cfgvoltar:active{background:rgba(255,255,255,.08)}
  .cfgovcorpo{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
    padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
  .cfgovcorpo .edsec{margin:18px 0 8px}
  .cfgovcorpo .edsec:first-child{margin-top:0}

  .cfgrow{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
          padding:12px 13px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
  .cfgrow.cfgcol{flex-direction:column;align-items:stretch}
  /* item 39: linhas-resumo da tela principal de Config que abrem sub-tela */
  .cfgrow.cfglink{cursor:pointer}
  .cfgrow.cfglink:active{background:var(--panel-3)}
  .cfgseta{width:18px;height:18px;flex:none;color:var(--dim)}
  .cfgtxt{display:flex;flex-direction:column;gap:2px}
  .cfgtxt b{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text)}
  .cfgtxt span{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim)}
  .cfgbtn{font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--accent);
          background:transparent;border:1px solid var(--accent-dim);border-radius:8px;padding:7px 12px;
          cursor:pointer;flex:none}
  .cfgbtn:hover{background:var(--accent-dim)}
  .cfgbtn.perigo{color:var(--blood);border-color:var(--blood)}
  .cfgbtn.perigo:hover{background:rgba(229,107,107,.12)}

  /* switch liga/desliga (item 39: substitui o botao Vibrar/Som do
     Feedback tatil por um toggle -- ver JS "CONFIG — PREFERENCIA DE
     FEEDBACK NO CLIQUE"). Estrutura: trilho (.swch) + bolinha
     (.swch-bolinha) que desliza via transform quando .on entra. */
  .swch{width:46px;height:26px;flex:none;border-radius:999px;border:none;cursor:pointer;
        background:var(--line);padding:3px;display:flex;align-items:center;
        transition:background .15s ease}
  .swch.on{background:var(--accent)}
  .swch-bolinha{width:20px;height:20px;border-radius:50%;background:#FFF;
        transition:transform .15s ease}
  .swch.on .swch-bolinha{transform:translateX(20px)}

  .cfgcol .grade{margin:10px 0 0;grid-template-columns:repeat(4,1fr)}

  .temagrid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
  .temaswatch{width:36px;height:36px;border-radius:50%;border:2px solid transparent;cursor:pointer;flex:none}
  .temaswatch.sel{border-color:var(--text)}

  /* paletas — so custom properties, sem redesenho de layout */
  :root[data-tema="meianoite"]{
    --bg:#161A20; --panel:#1E232B; --panel-2:#272D37; --line:#374050;
    --text:#EDF0F4; --muted:#96A1B0; --dim:#65707E;
    --accent:#5AB4EC; --accent-dim:#153A52; --gold:#F5BE4A; --blood:#EC6A62;
    --panel-3:#313A48; --poco:#12161B; --sel-bg:#2D3846; --mobname:#8FD0F0;
    --arena-1:#23303F; --arena-2:#1B2530; --arena-3:#131A22;
    --xp2:#7FE0E8;
  }
  :root[data-tema="pergaminho"]{
    --bg:#0F1216; --panel:#0F1216; --panel-2:#151A20; --line:#232A33;
    --text:#E6E9ED; --muted:#8A93A0; --dim:#5A6470;
    --accent:#C9A961; --accent-dim:#3A2F18; --gold:#C9A961; --blood:#9E3B3B;
    --panel-3:#1D2318; --poco:#0A0C0F; --sel-bg:#242A1B; --mobname:#D9A05B;
    --arena-1:#2A2415; --arena-2:#1E1A10; --arena-3:#14110A;
    --xp2:#C9A961;
  }
  /* item 25 do roadmap — spec fechada em sessao de brainstorm (21/08) */
  /* v4.133 (pedido do usuario, comparando com Habitica real): primeira
     tentativa (--bg #0A0A0A -> #141414) foi tao sutil que na tela real
     nao fez diferenca perceptivel -- usuario testou o arquivo certo,
     tema certo, e continuou "muito escuro". v4.134: recalibrado de
     forma bem mais agressiva, mirando a MESMA FAIXA de luminancia que
     o Habitica usa de verdade no screenshot de referencia (cinza-carvao,
     no bg #0A0A0A para #141414 estava mais que 3x mais escuro que o Habitica;
     agora --bg ~#282828, na faixa certa. Continua 100% grayscale (R=G=B
     em todo valor) -- decisao do item 25 preservada, nao reintroduz cor,
     so aumenta o quanto de cinza. --accent continua #FFFFFF e COR_RAR
     (raridade de item) nao e tocado, fora do sistema de tema. */
  :root[data-tema="grafite"]{
    --bg:#282828; --panel:#323232; --panel-2:#3D3D3D; --panel-3:#494949;
    --line:#5C5C5C; --text:#FAFAFA; --muted:#C2C2C2; --dim:#909090;
    --accent:#FFFFFF; --accent-dim:#4A4A4A;
    --gold:#E8E8E8; --blood:#B8B8B8; --mobname:#E0E0E0; --sel-bg:#4A4A4A; --poco:#1C1C1C;
    --arena-1:#454545; --arena-2:#383838; --arena-3:#2C2C2C; --xp2:#EDEDED;
  }
  /* DEPRECATED (v4.124): tema Floresta removido da lista visivel no
     Aparencia > Tema (item de identidade visual -- decisao do usuario
     de manter laranja como tema/cor de marca, sem verde na paleta de
     escolha). As variaveis continuam aqui, so nao aparecem mais em
     TEMAS[] (index.html) nem em CICLO_TEMAS -- ninguem aponta pra
     [data-tema="floresta"] no momento. */
  :root[data-tema="floresta"]{
    --bg:#0E1712; --panel:#0E1712; --panel-2:#16241C; --panel-3:#1E3226;
    --line:#2C4838; --text:#E9F2EC; --muted:#8FAA9A; --dim:#5C7A68;
    --accent:#4ADE80; --accent-dim:#164D2E;
    --gold:#A3D977; --blood:#6B9B7A; --mobname:#7FE8A0; --sel-bg:#1D3828; --poco:#0A120D;
    --arena-1:#1A2E20; --arena-2:#132419; --arena-3:#0D1A11; --xp2:#A3D977;
  }

/* --- Módulo style #10 --- */
.baubg{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:95;
         opacity:0;pointer-events:none;transition:opacity .22s}
  .baubg.on{opacity:1;pointer-events:auto}

  .baupop{position:fixed;left:50%;top:50%;z-index:96;
          transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;
          transition:transform .25s cubic-bezier(.2,.9,.3,1.2), opacity .22s;
          background:var(--panel-2);border:1px solid var(--line);border-radius:18px;
          padding:24px 20px 20px;width:min(300px, calc(100% - 56px));text-align:center}
  .baupop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}

  .bauicone{width:68px;height:68px;margin:0 auto 8px;
            display:flex;align-items:center;justify-content:center}
  .bauicone.abriu{animation:bauPulo .4s ease}
  @keyframes bauPulo{0%{transform:scale(1)}45%{transform:scale(1.2) rotate(-4deg)}100%{transform:scale(1)}}

  .baulabel{font-family:'Silkscreen',monospace;font-size:11px;color:var(--accent);
            letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px}

  .bauitens{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
  .baucard{display:flex;align-items:center;gap:10px;background:var(--panel-2);
           border:1px solid var(--line);border-radius:10px;padding:8px 10px;
           text-align:left;opacity:0;transform:translateY(6px);
           animation:baucardIn .32s ease forwards}
  @keyframes baucardIn{to{opacity:1;transform:translateY(0)}}
  .baubox{width:34px;height:34px;border-radius:8px;background:var(--poco);flex:none;
          display:flex;align-items:center;justify-content:center}
  .bautxt{flex:1;min-width:0}
  .baunome{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text);
           overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bauraridade{font-family:'Outfit',sans-serif;font-size:10.5px;font-weight:700;
               text-transform:uppercase;letter-spacing:.05em;margin-top:1px}

  .bauok{width:100%;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;
         padding:11px;border-radius:11px;border:none;background:var(--accent);
         color:var(--bg);cursor:pointer}

  .lvlpop{position:fixed;left:50%;top:50%;z-index:96;
          transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;
          transition:transform .25s cubic-bezier(.2,.9,.3,1.2), opacity .22s;
          background:var(--panel-2);border:1px solid var(--gold);border-radius:18px;
          padding:26px 22px 20px;width:min(280px, calc(100% - 56px));text-align:center;
          box-shadow:0 0 26px -8px var(--gold)}
  .lvlpop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
  .lvllabel{font-family:'Silkscreen',monospace;font-size:11px;color:var(--muted);
            letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px}
  .lvlnum{font-family:'Cormorant Garamond',serif;font-size:40px;font-weight:700;
          color:var(--gold);line-height:1;margin-bottom:4px}
  .lvlnum.pulou{animation:lvlPulo .45s ease}
  @keyframes lvlPulo{0%{transform:scale(1)}50%{transform:scale(1.25)}100%{transform:scale(1)}}
  .lvlvida{font-family:'Outfit',sans-serif;font-size:12.5px;color:var(--muted);margin-bottom:16px}
  .lvlvida b{color:var(--text);font-weight:700}
  .lvlok{width:100%;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;
         padding:11px;border-radius:11px;border:none;background:var(--accent);
         color:var(--bg);cursor:pointer}

  .quedapop{position:fixed;left:50%;top:50%;z-index:96;
            transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;
            transition:transform .25s cubic-bezier(.2,.9,.3,1.2), opacity .22s;
            background:var(--panel-2);border:1px solid var(--perigo);border-radius:18px;
            padding:26px 22px 20px;width:min(280px, calc(100% - 56px));text-align:center;
            box-shadow:0 0 26px -8px var(--perigo)}
  .quedapop.on{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}
  .quedaicone{width:56px;height:56px;margin:0 auto 10px;
              display:flex;align-items:center;justify-content:center}
  .quedaicone img{width:56px;height:56px;image-rendering:pixelated;
                   filter:grayscale(1) brightness(.8)}
  .quedalabel{font-family:'Silkscreen',monospace;font-size:11px;color:var(--perigo);
              letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px}
  .quedatitulo{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:23px;
               font-weight:600;color:var(--text);line-height:1.2;margin-bottom:10px}
  .quedaperda{font-family:'Outfit',sans-serif;font-size:12.5px;color:var(--muted);
              margin-bottom:16px}
  .quedaperda b{color:var(--gold);font-weight:700}
  .quedaok{width:100%;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;
           padding:11px;border-radius:11px;border:none;background:var(--accent);
           color:var(--bg);cursor:pointer}

/* --- Módulo style #11 --- */
.atributospontos{margin-top:14px}
  .atrhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
  .atrhead b{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text)}
  .atrpill{font-family:'Silkscreen',monospace;font-size:11px;color:var(--bg);
           background:var(--accent);padding:4px 10px;border-radius:999px}

  /* cartao por atributo -- fechado (previa) por padrao: so icone/nome/valor,
     cor do atributo (--atr-cor) so como acento no icone, nao fundo inteiro
     (era chapado demais, pedido explicito do usuario pra ficar mais discreto).
     Corpo com descricao + botao de investir fica escondido ate tocar na
     barra, revelado via classe .aberto (ver JS logo abaixo). */
  .atrcard{border-radius:14px;overflow:hidden;background:var(--panel-2);
           border:1px solid var(--line);margin-bottom:10px}
  .atrcard.trava{opacity:.55}
  .atrbarra{display:flex;align-items:center;gap:10px;padding:12px 13px;
            cursor:pointer;-webkit-tap-highlight-color:transparent}
  .atricone{width:18px;height:18px;flex:none;color:var(--atr-cor)}
  .atrnome{font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;flex:1;color:var(--text)}
  .atrvalor{font-family:'Silkscreen',monospace;font-size:14px;color:var(--atr-cor)}
  .atrchevron{width:16px;height:16px;flex:none;color:var(--dim);transition:transform .2s ease}
  .atrcard.aberto .atrchevron{transform:rotate(180deg)}
  .atrcorpo{display:flex;align-items:center;justify-content:space-between;gap:10px;
            padding:0 13px;max-height:0;overflow:hidden;
            transition:max-height .22s ease,padding .22s ease}
  .atrcard.aberto .atrcorpo{max-height:80px;padding:0 13px 13px}
  .atrdesc{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim)}
  .atrmais{width:34px;height:34px;flex:none;border-radius:10px;border:1px solid var(--accent-dim);
           background:transparent;color:var(--accent);font-size:18px;font-weight:600;cursor:pointer;
           font-family:'Outfit',sans-serif;line-height:1}
  .atrmais:hover{background:var(--accent-dim)}
  .atrmais:disabled{opacity:.35;cursor:not-allowed;background:transparent}

/* --- Módulo style #12 --- */
.lvlitem{display:flex;align-items:center;gap:10px;margin:12px 0;padding:10px 12px;
    background:#1F1930;border:1px solid #332A4D;border-radius:12px}
  .lvlitembox{width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center}
  .lvlitemtxt{font-family:'Outfit',sans-serif;font-size:12.5px;color:#B3A8D4;line-height:1.35}
  .lvlitemtxt b{color:#5AE0D8}

  .grimOverlay{position:fixed;inset:0;z-index:70;background:#15111F;display:none;
    flex-direction:column;overflow:hidden}
  .grimOverlay.on{display:flex}
  .grimHead{display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 10px;border-bottom:1px solid #332A4D;flex:none}
  .grimHead h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;
    font-size:22px;color:#EFEAFB;margin:0}
  .grimFechar{width:40px;height:40px;border-radius:10px;background:#201A32;border:1px solid #332A4D;
    color:#EFEAFB;font-size:20px;line-height:1;cursor:pointer;flex:none}
  .grimSub{padding:8px 16px;font-family:'Outfit',sans-serif;font-size:12px;color:#7C7196;flex:none}
  .grimScroll{flex:1;overflow-y:auto;padding:6px 16px 24px}
  .grimGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  @media(min-width:420px){ .grimGrid{grid-template-columns:repeat(5,1fr)} }
  .grimcel{aspect-ratio:1;border-radius:10px;background:#201A32;border:1px solid #332A4D;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px;overflow:hidden}
  .grimcel.grimok{cursor:pointer}
  .grimcel .grimrar{font-family:'Outfit',sans-serif;font-size:9px;font-weight:700;
    text-transform:uppercase;letter-spacing:.03em}
  .grimsilhueta{filter:brightness(0);opacity:.32}

/* --- Módulo style #13 --- */
.conqcat{margin-bottom:32px}

  .conqcabecalho{display:flex;align-items:center;gap:11px;margin-bottom:16px}
  .conqcaticone{width:34px;height:34px;flex:none;border-radius:50%;display:flex;align-items:center;
                justify-content:center;background:var(--conqcat-cor);color:#1A1526}
  .conqcaticone svg{width:18px;height:18px}
  .conqcattxt{flex:1;min-width:0}
  .conqcatnome{font-family:'Cormorant Garamond',serif;font-size:20px;font-weight:600;color:var(--conqcat-cor)}
  .conqcatsub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}

  /* CONQUISTAS V2 -- lista plana (Minhas conquistas / Não desbloqueadas), sem
     arvore/tiers visiveis. Reaproveita .edsec (rotulo de secao, ja usado
     em Config) pros dois cabecalhos. */
  .conqv2item{display:flex;align-items:center;gap:12px;padding:11px 2px;
              border-bottom:1px solid var(--line)}
  .conqv2item:last-child{border-bottom:none}
  .conqv2txt{flex:1;min-width:0}
  .conqv2nome{font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:700;color:var(--text)}
  .conqv2item.trancado .conqv2nome{color:var(--muted)}
  .conqv2desc{font-family:'Outfit',sans-serif;font-size:11.5px;color:var(--dim);margin-top:2px}
  .conqv2data{font-family:'Silkscreen',monospace;font-size:9.5px;color:var(--dim);flex:none;white-space:nowrap}
  .conqcatcontagem{font-family:'Silkscreen',monospace;font-size:13px;letter-spacing:.02em;color:var(--muted);flex:none}
  .conqcatcontagem b{color:var(--conqcat-cor)}

  .conqtrilha{position:relative;padding-left:38px}

  .conqmarco{position:relative;padding-bottom:20px}
  .conqmarco:last-child{padding-bottom:0}
  .conqmarco::before{content:'';position:absolute;left:-25px;top:26px;bottom:-2px;width:2px;background:var(--line)}
  .conqmarco:last-child::before{display:none}
  .conqmarco.feito::before,.conqmarco.pendente::before{background:var(--conqcat-cor)}

  .conqno{position:absolute;left:-38px;top:0;width:26px;height:26px;border-radius:50%;
          display:flex;align-items:center;justify-content:center;flex:none;
          background:var(--panel-2);border:2px solid var(--line)}
  .conqno svg{width:12px;height:12px;color:var(--dim);opacity:.5}
  .conqmarco.feito .conqno{border-color:var(--conqcat-cor);background:var(--conqcat-cor)}
  .conqmarco.feito .conqno svg{color:#1A1526;width:13px;height:13px;opacity:1}
  .conqmarco.atual .conqno{border-color:var(--conqcat-cor)}
  .conqmarco.pendente .conqno{border-color:var(--conqcat-cor);background:var(--conqcat-cor);
                               animation:conqPulsa 1.6s ease-in-out infinite}
  .conqmarco.pendente .conqno svg{color:#1A1526;width:14px;height:14px;opacity:1}
  @keyframes conqPulsa{
    0%,100%{box-shadow:0 0 0 0 color-mix(in srgb, var(--conqcat-cor) 45%, transparent)}
    50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--conqcat-cor) 0%, transparent)}
  }

  .conqcorpo{padding-top:1px}
  .conqmnome{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--text);letter-spacing:.01em}
  .conqmarco.bloq .conqmnome{color:var(--muted)}
  .conqreq{font-family:'Outfit',sans-serif;font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4}
  .conqmarco.bloq .conqreq{color:var(--dim)}
  .conqfracao{font-family:'Silkscreen',monospace;font-size:13px;letter-spacing:.02em;color:var(--conqcat-cor);margin-top:6px;display:inline-block}

  .conqxpprevia{font-family:'Outfit',sans-serif;font-size:11px;color:var(--dim);margin-top:5px;display:inline-block}
  .conqxpfeito{font-family:'Outfit',sans-serif;font-size:11px;color:var(--conqcat-cor);margin-top:5px;display:inline-block}
  .conqreceber{margin-top:8px;font-family:'Outfit',sans-serif;font-size:12.5px;font-weight:700;
               padding:8px 14px;border-radius:999px;border:none;cursor:pointer;
               background:var(--conqcat-cor);color:#1A1526}

  .conqtudo{display:block;width:100%;margin-bottom:18px;padding:13px;border:none;border-radius:14px;
            cursor:pointer;background:var(--accent);color:var(--bg);
            font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;text-align:center}

  /* balaozinho de notificacao -- injetado via JS em cima do botao da
     sub-aba Conquistas e do botao "Perfil" da nav inferior */
  .conqbadge{position:absolute;top:2px;right:8px;min-width:16px;height:16px;padding:0 4px;
             border-radius:999px;background:var(--perigo,#F45781);color:#fff;
             font-family:'Silkscreen',monospace;font-size:9px;
             display:none;align-items:center;justify-content:center;
             box-shadow:0 0 0 2px var(--panel-2)}

/* --- Módulo style #14 --- */
.bestsub{font-family:'Outfit',sans-serif;font-size:12px;color:var(--dim);margin-bottom:10px}
  .bestgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .bestcel{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;
           padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:4px}
  .bestimg{width:36px;height:36px;image-rendering:pixelated;object-fit:contain}
  .bestimg.bestsilhueta{filter:brightness(0);opacity:.32}
  .bestnome{font-family:'Outfit',sans-serif;font-size:8.5px;font-weight:600;color:var(--muted);
            text-align:center;line-height:1.2;max-width:100%;overflow:hidden;
            text-overflow:ellipsis;white-space:nowrap}

/* --- Módulo style #15 --- */
.histOverlay{position:fixed;inset:0;z-index:70;background:var(--bg);display:none;
    flex-direction:column;overflow:hidden}
  .histOverlay.on{display:flex}
  .histHead{display:flex;align-items:center;justify-content:space-between;
    padding:16px 16px 10px;border-bottom:1px solid var(--line);flex:none}
  .histHead h2{font-family:'Outfit',sans-serif;font-weight:700;font-size:18px;color:var(--text);margin:0}
  .histFechar{width:40px;height:40px;border-radius:10px;background:var(--panel-2);
    border:1px solid var(--line);color:var(--text);font-size:20px;line-height:1;cursor:pointer;flex:none}
  .histScroll{flex:1;overflow-y:auto;padding:16px}

  .calnav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
  .calnav button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);
                 background:var(--panel-2);color:var(--text);font-size:18px;cursor:pointer;
                 font-family:'Outfit',sans-serif;line-height:1}
  .calnav button:hover{background:var(--accent-dim)}
  .calnav span{font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;color:var(--text);
               text-transform:capitalize}

  .caldiassemana{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px}
  .caldiassemana span{font-family:'Outfit',sans-serif;font-size:10px;font-weight:600;
                       color:var(--dim);text-align:center}

  .calgrade{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:14px}
  .caldia{aspect-ratio:1;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);
          display:flex;align-items:center;justify-content:center;position:relative;
          font-family:'Outfit',sans-serif;font-size:11px;color:var(--muted)}
  .caldia.calvazio{background:transparent;border-color:transparent}
  .caldia.calhoje{border-color:var(--accent);border-width:2px}
  .caldia.calvitoria{background:rgba(99,201,154,.18);border-color:var(--verde);color:var(--text)}
  .caldia.calfuga{background:rgba(244,87,129,.16);border-color:var(--perigo);color:var(--text)}
  .caldia.calsemtarefa{background:var(--panel-3);border-color:var(--line);color:var(--dim)}

  .callegenda{display:flex;gap:14px;flex-wrap:wrap;font-family:'Outfit',sans-serif;
              font-size:11px;color:var(--dim)}
  .callegenda span{display:flex;align-items:center;gap:5px}
  .calponto{width:9px;height:9px;border-radius:50%;flex:none}
  .calponto.calvitoria{background:var(--verde)}
  .calponto.calfuga{background:var(--perigo)}
  .calponto.calsemtarefa{background:var(--dim)}

/* --- Módulo style #16 --- */
/* fundo = tijolo pixel (padrao de alvenaria, ver pintarParede() no
     script abaixo) + o sprite fixo do Grimorio Proibido flutuando ao lado
     do titulo, so de enfeite. */
  .intro.loginBg{background-color:#0B0710}
  .loginSprite{margin:0 auto 4px;animation:respira 2.4s ease-in-out infinite}

  /* cada elemento do formulario se destaca sozinho em cima do tijolo
     (campo com fundo solido + icone, botao Entrar preenchido, sombra
     de texto nos labels/links) */
  #passoLogin .titulo{text-shadow:0 2px 10px rgba(0,0,0,.85)}
  #passoLogin .campo label{text-shadow:0 1px 4px rgba(0,0,0,.85)}
  .campoIcone{position:relative}
  .campoIc{position:absolute;left:14px;bottom:13px;width:20px;height:20px;color:var(--dim);pointer-events:none}
  .campoIc svg{width:100%;height:100%}
  .campoIcone input{padding-left:44px !important}
  .campoStatus{position:absolute;right:14px;bottom:13px;width:20px;height:20px;pointer-events:none;display:none}
  .campoStatus svg{width:100%;height:100%}
  .campoStatus .icOk,.campoStatus .icErro{display:none}
  .campoStatus.ok{display:block;color:#4ADE80}
  .campoStatus.ok .icOk{display:block}
  .campoStatus.erro{display:block;color:var(--perigo)}
  .campoStatus.erro .icErro{display:block}
  #loginSenha, #loginSenhaConfirmar{padding-right:40px !important}

  /* botao Entrar: o onboarding padrao usa contorno vazado (ver regra
     global .primario mais acima no arquivo), mas em cima do tijolo
     isso some -- aqui, so dentro do login, ele fica preenchido/solido */
  #passoLogin .primario{background:var(--accent) !important;color:#14101c !important;
                         border:none !important;text-transform:none !important;letter-spacing:normal !important;
                         font-size:15px !important;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.45)}
  #passoLogin .primario:hover{background:var(--accent) !important;filter:brightness(1.08)}
  #passoLogin .secundario,#passoLogin .loginLink,#passoLogin .loginRodape,#passoLogin .loginDivisor{
    text-shadow:0 1px 4px rgba(0,0,0,.85)}

  .loginTopBtns{position:fixed;top:calc(14px + env(safe-area-inset-top));right:14px;
                display:flex;gap:8px;z-index:90}
  .miniBtn{width:34px;height:34px;border-radius:50%;background:rgba(21,17,32,.72);
           border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;
           cursor:pointer;backdrop-filter:blur(2px);transition:border-color .15s,color .15s}
  .miniBtn:hover{border-color:var(--accent-dim);color:var(--accent)}
  .miniBtn svg{width:17px;height:17px}

  #passoLogin .marca{margin-bottom:2px}
  .loginModo{font-size:14px;color:var(--dim);text-shadow:0 1px 4px rgba(0,0,0,.85);
             transition:opacity .15s}
  .loginDivisor{display:flex;align-items:center;gap:10px;color:var(--dim);font-size:12px}
  .loginDivisor::before,.loginDivisor::after{content:'';flex:1;height:1px;background:var(--line)}
  .loginGoogleBtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
                  background:#fff;color:#1A1526;border:none;border-radius:11px;padding:13px;
                  font-family:'Outfit',sans-serif;font-size:14.5px;font-weight:600;cursor:pointer}
  .loginGoogleBtn svg{width:18px;height:18px}
  .loginLinha{display:flex;justify-content:space-between;align-items:center}
  .loginLink{background:none;border:none;color:var(--accent);font-family:'Outfit',sans-serif;
             font-size:12.5px;cursor:pointer;padding:4px 0}
  .loginRodape{text-align:center;font-size:13px;color:var(--dim)}
  .loginSenhaErro{font-size:12px;color:var(--perigo);margin-top:-8px}

  #passoBoasVindas{align-items:center;text-align:center;gap:28px}
  #passoBoasVindas .marca{gap:6px}
  .boasVindasRotulo{font-size:14px;color:var(--dim);text-shadow:0 1px 4px rgba(0,0,0,.85)}
  #boasVindasNome{font-size:30px;font-family:'Outfit',sans-serif;font-weight:700;
                  letter-spacing:normal;text-shadow:0 2px 10px rgba(0,0,0,.85)}
  #passoBoasVindas .primario{width:100%}

  /* v4.124 (item 34 do roadmap): trava de verificacao de email */
  /* v4.129 (tela estava poluida): .verificarBloco junta a mensagem
     principal + aviso de spam com gap apertado (sao relacionados,
     devem ler como uma unidade mais discreta que o CTA). O gap GRANDE
     (22px, no #passoVerificarEmail) fica ENTRE os grupos, nao dentro
     deles -- e isso que cria a hierarquia.
     v4.132 (poluida de novo, botao "Ja confirmei"/"Verificar agora"
     removido): a checagem virou 100% automatica (poll a cada 4s, ver
     confirmarSeVerificado/confirmarSeVerificadoOverlay no bloco
     Firebase) -- sobrou so "Reenviar email" (agora .primario, e o
     unico CTA que resta) e "Email errado? Corrigir" (link isolado). */
  #passoVerificarEmail{align-items:center;text-align:center;gap:22px}
  #passoVerificarEmail .marca{gap:6px}
  .verificarBloco{display:flex;flex-direction:column;gap:6px}
  .verificarTexto{font-size:14px;color:var(--dim);line-height:1.5;
                   text-shadow:0 1px 4px rgba(0,0,0,.85)}
  .verificarSpamAviso{font-size:12px;color:var(--dim);opacity:.6}
  #verificarEmailAlvo{font-weight:600;color:var(--fg,#fff)}
  #passoVerificarEmail .primario{width:100%}

  /* v4.124: overlay de bloqueio pro caminho "silencioso" (ja tem save
     local, #passoLogin nem existe no DOM) -- standalone, fixed, nao
     depende de #intro/.off. Reaproveita as mesmas classes .primario/
     .verificarBloco ja definidas acima. */
  #bloqueioVerificacaoEmail{position:fixed;inset:0;z-index:9999;
    background:var(--bg);display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;
    gap:22px;padding:32px}
  #bloqueioVerificacaoEmail .titulo{font-size:22px}
  #bloqueioVerificacaoEmail .primario,
  #bloqueioVerificacaoEmail .verificarBloco{width:100%;max-width:340px}

/* --- Módulo style #17 --- */
.carrosselTopo{display:flex;align-items:center;justify-content:space-between}
  .carrosselTopoLado{flex:1;display:flex}
  .carrosselTopoEsq{justify-content:flex-start}
  .carrosselTopoDir{justify-content:flex-end}
  .carrosselVoltar{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.06);
                    border:none;color:var(--text);display:grid;place-items:center;cursor:pointer;
                    visibility:hidden;flex:none}
  .carrosselVoltar.visivel{visibility:visible}
  .carrosselVoltar svg{width:18px;height:18px}
  .carrosselDots{display:flex;gap:7px;flex:none}
  .carrosselDot{width:7px;height:7px;border-radius:50%;background:var(--line)}
  .carrosselDot.on{background:var(--accent)}
  /* v4.117 (item 42-h do roadmap): .carrosselPular removido -- botao
     "Pular" tirado do topo do carrossel (pedido do usuario). O link
     "Ja tem conta?" (abaixo) continua sozinho no lado direito do topo. */
  /* v4.116 (item 42-e do roadmap): login deixou de ser um passo
     numerado do carrossel -- vira um "desvio" opcional, acessivel a
     qualquer momento por este link discreto no topo (persiste em
     TODOS os slides, ao contrario de Pular que some a partir do
     slide 4). Ver irParaLogin()/voltarDoLoginCarrossel() mais abaixo. */
  .carrosselEntrarLink{background:none;border:none;color:var(--accent);font-family:'Outfit',sans-serif;
                        font-size:12px;letter-spacing:.02em;cursor:pointer;padding:8px;flex:none;
                        text-decoration:underline;text-underline-offset:2px}
  .carrosselEntrarLink:hover{filter:brightness(1.2)}

  /* fixed;inset:0 tira o splash do fluxo do .card -- ele nao fica preso
     no max-width:400px/padding que .card usa pro resto do onboarding.
     z-index avaliado dentro do stacking context de #intro (que ja tem
     position:fixed + z-index proprio), entao basta ficar acima de tudo
     o que #intro contem -- nao precisa disputar com o resto da pagina. */
  #passoSplash{position:fixed;inset:0;z-index:1;
               background-image:radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--arena-1) 42%, transparent) 0%, color-mix(in srgb, var(--bg) 55%, transparent) 65%), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAKCAYAAADVTVykAAABfElEQVR4nJ2TwU7CQBCGvxKMQeCEXojGlMvWIw/AnfIOwh0egYfwpIneQJ4Bn4L22r10SeCoJ0CDJVkvdNPWgsT/srM738x0Z6fWZDKpPwyHdLpdlFK0222yklIyHY3o9HoHmVMUBAFvr6+49/copXBdl6KUkkW0JgxDGo0GUspfgUIInnefKKWwbTuXOUWO4/ASbZjP56ZWAeD6rILrugcD/1vwUJ5kBwsAH6sVUkqEEMbheR6e5xm7tNXYtp3LJLnkmrUBSludqmXd1mp1nQCuKpVUgN5/YJ5q1SrW3l5EGwBuzsosok1qjfW+XgPwdW6Z82K33wdg9PREr9//c8iklIwfH+kOBoRhePTpYn46HnPXagH8yl2Mjcty+eggxhJCUKtWT2Jjfrq38wa4kNz8dZv4RstofRIb84toc7CrpgPL3WcuoLVO7X3fB20Zn2VZeWHpHEd8pgPZ6QSYzWamqO/7ADSbTUrfmiAIcBzHsNm/ITn9F5ncSd8PSsnXJX9WpAwAAAAASUVORK5CYII=");
               background-size:cover, 130px 41px;
               background-repeat:no-repeat, repeat;
               background-position:center, center;
               align-items:center;justify-content:center}
  .carrosselImgWrap{display:flex;justify-content:center;align-items:center;min-height:96px}
  .carrosselImgGrande{width:168px;height:168px;image-rendering:pixelated}
  .carrosselGrupo{gap:12px}
  .carrosselImgMini{width:72px;height:72px;image-rendering:pixelated}

  /* trio escalonado do slide 1 (marca) -- igual a foto de referencia:
     sprite do meio maior/na frente, laterais menores/atras, um pouco
     mais baixos, sobrepondo o do meio. align-items:flex-end + tamanhos
     diferentes ja produz o efeito "meio mais alto" sem precisar de
     posicionamento absoluto nem numeros de offset vertical manuais. */
  .carrosselTrioLogo{display:flex;justify-content:center;align-items:flex-end;margin:12px 0}
  .carrosselTrioLogo img{image-rendering:pixelated;position:relative}
  .carrosselTrioLogo .ctlCentro{width:160px;height:160px;z-index:2}
  .carrosselTrioLogo .ctlLado{width:100px;height:100px;z-index:1}
  .carrosselTrioLogo .ctlEsq{margin-right:-28px}
  .carrosselTrioLogo .ctlDir{margin-left:-28px}
  /* topo (voltar/dots/pular) agora é UM SÓ elemento fixo, fora dos
     slides que deslizam -- antes cada slide carregava seu próprio topo,
     e durante a transição (~300ms) os dois ficavam visíveis ao mesmo
     tempo, mostrando dots/Pular duplicados cruzando a tela (bug visto
     em screenshot real, capturado no meio de uma transição). Agora
     #passoCarrosselTudo (o .passo de fora) contém o topo fixo + o
     .carrosselPalco (position:relative, só ele é o "viewport" que os
     slides absolutos preenchem) -- só o palco anima, o topo fica
     parado, igual no vídeo de referência. */
  /* #passoCarrosselTudo precisa do proprio flex:1 -- antes, quando os
     slides eram filhos DIRETOS do .card, o flex:1 de cada slide bastava
     pra consumir o espaco livre (.card{justify-content:center} so
     entra em jogo com o que sobra DEPOIS do flex-grow ser resolvido).
     Agora existe 1 nivel a mais (.card > #passoCarrosselTudo >
     .carrosselPalco > .carrosselSlide) -- sem propagar flex:1 aqui
     tambem, o wrapper externo fica do tamanho do proprio conteudo (so
     a altura do topo), e .carrosselPalco{flex:1} nao tem sobra nenhuma
     pra crescer -- vira altura 0, e o conteudo do slide (position:
     absolute;inset:0 relativo a uma caixa de 0px) vaza visualmente pra
     cima do topo sem que ninguem perceba olhando só o print (survivor
     bug: cliques no topo eram capturados pelo slide por baixo -- só
     apareceu tentando clicar de verdade via automação, não em screenshot). */
  #passoCarrosselTudo.on{flex:1}
  .carrosselPalco{position:relative;flex:1}
  .carrosselSlide{position:absolute;inset:0;display:none;flex-direction:column;
                   justify-content:center;gap:18px}
  .carrosselSlide.on{display:flex;touch-action:pan-y}
  .carrosselMeio{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px}

  /* legibilidade da descricao reportada como ruim (itálico serifado
     pequeno e apagado) -- escopado só no carrossel via .carrosselMeio,
     não mexe no .lema global (login/passo1 usam a mesma classe e não
     foram tocados). Tira o itálico (principal vilão de legibilidade em
     corpo de texto pequeno), sobe tamanho/peso/contraste. */
  .carrosselMeio .lema{
    font-style:normal;font-size:17.5px;font-weight:400;
    color:var(--text);line-height:1.6;max-width:300px;margin:0 auto
  }
  .carrosselTarefasDemo{display:flex;flex-direction:column;gap:8px;margin-top:14px;width:100%}
  /* .task/.box/.tinfo/.label/.tmeta/.difpip/.repeat/.del/.done sao o
     componente REAL da lista de tarefas (ver linha ~1714, render()) --
     zero CSS novo pra eles, só herdam o que ja existe. Os botoes .del
     e .box aqui nao tem onclick nenhum (tabindex="-1" pra nao roubar
     foco de teclado tambem) -- é só mostra, decorativo. */

  /* v4.117 (item 42-f do roadmap): slide de transicao entre EVOLUA e
     Nome -- prosa centralizada, sem .marca/.titulo (a referencia nao
     tem cabecalho nessa tela, só a frase). Cursor piscando (::after)
     fica visivel enquanto o typewriter roda (iniciarTypewriter, no
     script abaixo) e junto com o texto quando ja terminou -- decisao
     de nao esconder o cursor no fim, pra nao precisar de mais uma
     classe/estado só pra isso. */
  .carrosselTransicao{display:flex;align-items:center;justify-content:center;min-height:120px}
  .carrosselTransicaoTexto{
    font-family:'Cormorant Garamond',serif;font-style:italic;font-size:25px;
    color:var(--text);line-height:1.6;text-align:center;max-width:300px;margin:0 auto
  }
  .carrosselTransicaoTexto::after{
    content:'';display:inline-block;width:2px;height:1em;margin-left:3px;
    background:var(--accent);vertical-align:text-bottom;animation:carrosselCursorPisca .9s step-end infinite
  }
  @keyframes carrosselCursorPisca{0%,100%{opacity:1}50%{opacity:0}}

/* --- Módulo style #18 --- */
.somBtn{background:none;border:none;padding:4px;margin:0;cursor:pointer;
          color:var(--dim);display:flex;align-items:center;justify-content:center;flex:none}
  .somBtn svg{width:18px;height:18px}
  .somBtn.mudo{color:var(--perigo)}

/* --- Módulo style #19 --- */
/* === Sprite Slash (pack "Pixel_Art_Animations_-_Slashes") ===
     Decisao de escopo (chat de animacoes de combate): so 'corte' e 'impacto'
     ganham sprite animado -- sao as unicas categorias com golpe fisico
     compativel com um arco de slash. perfuracao/distancia/arcano continuam
     com os efeitos CSS existentes (estocada, projetil e particulas magicas
     nao combinam com o movimento de slash). */
  .fx-sprite-slash{
    position:absolute;width:64px;height:64px;pointer-events:none;z-index:7;
    background-repeat:no-repeat;image-rendering:pixelated;
    transform:translate(-50%,-50%) scale(var(--escala-slash,1));
  }
  /* cor do sprite = raridade da arma (nao categoria). Estilo de movimento
     agora varia por raridade tambem, pra dar variedade visual: Slash 2
     (comum/incomum, 7 frames, rajada mais angulosa) / Slash 3 (raro/epico,
     9 frames, crescente fino) / Slash 1 (lendario, 9 frames, arco largo). */
  /* TESTE: todas as 5 raridades usando o MESMO estilo/tamanho do raro/epico
     (Slash 3, 9 frames), so a cor muda -- pra comparar lado a lado se
     "raridade maior = mais poderoso" fica mais claro so pela cor, sem
     diferenca de sprite/escala extra por classe. */
  .fx-sprite-slash.comum{
    background-image:var(--spr-slash-comum);
    background-size:576px 64px;
    filter:grayscale(1) brightness(2.4); /* Slash3/color5 ciano -> branco, bate com COR_RAR[0] */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.incomum{
    background-image:var(--spr-slash-incomum);
    background-size:576px 64px;
    /* Slash3/color1 verde nativo, ja bate com COR_RAR[1] #63C99A */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.raro{
    background-image:var(--spr-slash-raro);
    background-size:576px 64px;
    /* Slash3/color5 ciano sem filtro (nativo), aproxima COR_RAR[2] #5AA9F2 */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.epico{
    background-image:var(--spr-slash-epico);
    background-size:576px 64px;
    filter:hue-rotate(44deg) saturate(1.3) brightness(1.1); /* Slash3/color3 -> roxo, bate com COR_RAR[3] #B57BE8 */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  .fx-sprite-slash.lendario{
    background-image:var(--spr-slash-lendario);
    background-size:576px 64px;
    /* Slash3/color4 laranja nativo, bate com COR_RAR[4] #F2A65A */
    animation:fxSpriteSlash9Fixo .42s steps(9) forwards;
  }
  @keyframes fxSpriteSlash9{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(-20px,-20px) rotate(-35deg)}
    8%{opacity:1}
    100%{background-position:-576px 0;opacity:1;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(20px,20px) rotate(35deg)}
  }
  @keyframes fxSpriteSlash7{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(-20px,-20px) rotate(-35deg)}
    8%{opacity:1}
    100%{background-position:-448px 0;opacity:1;
       transform:translate(-50%,-50%) scale(var(--escala-slash,1)) translate(20px,20px) rotate(35deg)}
  }
  /* comum/incomum: sem deslocamento -- fica parado no centro do mob. Arte do
     Slash 2 concentra o desenho ~7px abaixo do centro do quadro 64x64, entao
     desloca -7px em Y pra recentralizar. Escala extra (+30%) pra compensar
     a falta de movimento. */
  @keyframes fxSpriteSlash7Fixo{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translateY(-7px) rotate(25deg)}
    8%{opacity:1}
    100%{background-position:-448px 0;opacity:1;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translateY(-7px) rotate(25deg)}
  }
  /* lendario: Slash 1 ja fica quase centrado (desvio pequeno), so escala extra. */
  @keyframes fxSpriteSlash9FixoLendario{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translate(-6px,-2px) rotate(25deg)}
    8%{opacity:1}
    100%{background-position:-576px 0;opacity:1;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.3)) translate(-6px,-2px) rotate(25deg)}
  }
  /* raro/epico: sem deslocamento diagonal -- fica parado no centro do mob,
     so troca de frame (pedido explicito do usuario, testar como fica). */
  /* raro/epico: recentralizado (a arte do Slash 3 concentra o desenho na
     metade de cima do quadro 64x64, por isso parecia deslocado pra cima --
     compensa com translateY) e escala extra (+35%) so pra esses dois. */
  /* correcao de centro (translateY) precisa vir DEPOIS de scale() na lista --
     assim o deslocamento escala junto com o tamanho em vez de ficar fixo em
     px (bug: aumentar a escala sem isso faz o desenho "subir" de novo,
     porque o offset fixo passa a ser proporcionalmente menor). */
  @keyframes fxSpriteSlash9Fixo{
    0%{background-position:0 0;opacity:0;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.5)) translateY(12.5px) rotate(25deg)}
    8%{opacity:1}
    100%{background-position:-576px 0;opacity:1;
       transform:translate(-50%,-50%) scale(calc(var(--escala-slash,1) * 1.5)) translateY(12.5px) rotate(25deg)}
  }

/* --- Módulo style #20 --- */
:root{
    --spr-slash-comum: url("data:image/png;base64,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");
    --spr-slash-incomum: url("data:image/png;base64,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");
    --spr-slash-raro: url("data:image/png;base64,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");
    --spr-slash-epico: url("data:image/png;base64,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");
    --spr-slash-lendario: url("data:image/png;base64,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");
  }


/* --- Módulo style #21 --- */
/* Redesign compacto do menu de Config: linhas com icone circular a
   esquerda (padrao inspirado no Habitica), subtitulo menor com
   ellipsis, e rotulo de secao (.edsec) mais discreto. Regras aditivas
   escopadas em .cfgOverlay -- nao mexe nas regras .cfgrow/.cfgtxt/
   .edsec ja existentes (Modulo/secao acima), so ganha na cascata por
   especificidade (2 classes vence 1) e por vir depois no arquivo. */
.cfgOverlay .cfgrow{
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 2px;
}
.cfgOverlay .cfgrow.cfgcol{
  align-items:flex-start;
  flex-direction:column;
}
.cfgOverlay .cfgicone{
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold, #d4af37);
}
.cfgOverlay .cfgicone svg{ width:18px; height:18px; }
.cfgOverlay .cfgtxt{ flex:1; min-width:0; }
.cfgOverlay .cfgtxt b{
  display:block;
  font-size:15px;
  font-weight:600;
  line-height:1.2;
}
.cfgOverlay .cfgtxt span{
  display:block;
  font-size:12px;
  opacity:.5;
  margin-top:1px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cfgOverlay .edsec{
  font-size:11px;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  opacity:.4;
  margin:20px 2px 4px;
}

/* --- Módulo style #22 --- */
/* Sub-telas Herói e Aparência (Config): cards maiores, usando mais da
   tela -- pedido do usuario comparando com o seletor de tema do
   Skyllion (cards grandes com preview + nome, nao bolinha pequena).
   Escopado por ID (#gradeHeroisConfig / #temaGrid) de proposito: tanto
   .grade/.opcao quanto .temaswatch sao reaproveitados em outro lugar
   do app (#gradeHerois no onboarding usa a mesma .grade/.opcao) -- so
   o container de Config muda de layout, o resto do app continua igual. */

#gradeHeroisConfig.grade{
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}
#gradeHeroisConfig .opcao{
  padding:16px 4px;
  border-radius:16px;
}
#gradeHeroisConfig .opcao img{
  width:64px;
  height:64px;
}

#cfgTemaCard{
  padding:12px 13px;
}
#temaGrid.temagrid{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.temalinha{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 4px;
  cursor:pointer;
  border-bottom:1px solid var(--line);
  transition:background .12s;
}
.temalinha:last-child{ border-bottom:none }
.temalinha:active{ background:var(--panel-3) }
.temaDot{
  width:30px;
  height:30px;
  border-radius:50%;
  flex:none;
  border:2px solid var(--line);
  box-sizing:border-box;
}
.temaNome{
  flex:1;
  font-family:'Outfit',sans-serif;
  font-size:14px;
  font-weight:600;
  color:var(--text);
}
.temaCheck{
  width:20px;
  height:20px;
  flex:none;
  color:var(--accent);
  opacity:0;
  transform:scale(.6);
  transition:opacity .12s, transform .12s;
}
.temalinha.sel .temaCheck{
  opacity:1;
  transform:scale(1);
}
.temalinha.sel .temaDot{
  border-color:var(--text);
}

/* --- Módulo style #23 --- */
/* Fix: no tema Escuro (--accent:#FFFFFF), o switch ligado (trilho
   branco) + a bolinha (#FFF fixo) ficavam brancos os dois, sem
   contraste nenhum ("muito branco", print do usuario). Sombra sutil
   na bolinha resolve pra qualquer tema, sem depender de --accent nao
   ser branco -- nao mexe no .swch/.swch.on original (Modulo acima),
   so adiciona definicao visual em cima do que ja existe. */
.swch-bolinha{
  box-shadow:0 1px 3px rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.12);
}
