:root{
  --ground:#EDEFF3;--panel:#FFF;--panel-2:#F5F7FA;--line:#D3D8E0;--line-soft:#E3E7ED;
  --ink:#131725;--ink-2:#4A5265;--ink-3:#77809A;
  --fire:#FF6B35;--fire-soft:#FFE5D9;--water:#0099FF;--water-soft:#D9F0FF;--copper:#3366CC;--copper-soft:#D9E8FF;
  --grass:#2E8B57;--grass-soft:#D9F0CC;--violet:#9B30B8;--violet-soft:#F0D9FF;--danger:#C0392B;
  --pic-bg:#E6E9EF;--shadow:0 4px 12px rgba(51,102,204,.15);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ground:#0D1017;--panel:#151A23;--panel-2:#1B212B;--line:#2A323F;--line-soft:#212934;
  --ink:#E8EBF1;--ink-2:#A7B0C0;--ink-3:#79839A;--copper-soft:#1E3A8A;--water-soft:#12302E;--fire-soft:#3A2218;
  --grass:#6CCB93;--grass-soft:#173323;--violet:#D58AF0;--violet-soft:#241A38;--danger:#FF7A6B;--pic-bg:#10141B;--shadow:0 4px 12px rgba(0,0,0,.4);
}}
*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font:15px/1.45 "IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-text-size-adjust:100%}
h1,h2,h3{font-family:"Bricolage Grotesque","IBM Plex Sans",sans-serif;margin:0;letter-spacing:-.01em}
button,input,select,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px 96px}
.topo{position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
.topo .wrap{display:flex;align-items:center;gap:12px;padding:10px 16px}
.marca{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:18px;flex:1}
.marca small{display:block;font:500 11px "IBM Plex Sans";color:var(--ink-3)}
.btn{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:9px 14px;cursor:pointer;min-height:40px}
.btn:hover{background:var(--panel-2)}
.btn.pri{background:var(--copper);border-color:var(--copper);color:#fff;font-weight:600}
.btn.pri:hover{filter:brightness(1.08)}
.btn.perigo{color:var(--danger);border-color:var(--danger)}
.btn:disabled{opacity:.55;cursor:default}
.cartao{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:14px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.stat b{display:block;font:700 20px "Bricolage Grotesque",sans-serif}
.stat span{font-size:12px;color:var(--ink-3)}
.nota{font-size:12px;color:var(--ink-3);margin-top:6px}
label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:10px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],select,textarea{width:100%;border:1px solid var(--line);background:var(--panel-2);border-radius:10px;padding:10px 12px;min-height:42px}
textarea{min-height:64px;resize:vertical}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--copper);outline-offset:1px}
.linha{display:flex;gap:10px;flex-wrap:wrap}
.linha>*{flex:1 1 140px}
.chk{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:400;color:var(--ink);margin:8px 0}
.chk input{width:20px;height:20px}
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.carta{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;text-align:left;padding:0;display:block;width:100%;position:relative}
.carta:hover{box-shadow:var(--shadow)}
.carta .arte{aspect-ratio:5/7;background:var(--pic-bg);display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:12px}
.carta .arte img{width:100%;height:100%;object-fit:contain;display:block}
.carta .info{padding:8px 10px}
.carta .nome{font-weight:600;font-size:14px;line-height:1.2}
.carta .sub{font-size:12px;color:var(--ink-3)}
.selos{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.selo{font-size:11px;font-weight:600;border-radius:999px;padding:2px 8px;background:var(--panel-2);border:1px solid var(--line-soft);color:var(--ink-2)}
.selo.holo{background:var(--water-soft);color:var(--copper)}
.selo.reverse{background:var(--violet-soft);color:var(--violet)}
.selo.troca{background:var(--grass-soft);color:var(--grass)}
.selo.fav{background:var(--fire-soft);color:var(--fire)}
.valor{font-weight:600;font-size:13px;margin-top:6px}
.valor.nd{color:var(--ink-3);font-weight:400}
.valor small{display:block;font-weight:400;font-size:11px;color:var(--ink-3)}
.tenho{position:absolute;top:6px;right:6px;background:var(--copper);color:#fff;border-radius:999px;font-size:12px;font-weight:700;padding:2px 8px}
.filtros{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.filtros>*{flex:1 1 130px}
.vazio{padding:28px 12px;text-align:center;color:var(--ink-3)}
.folha-fundo{position:fixed;inset:0;background:rgba(10,14,22,.55);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.folha{background:var(--panel);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px 24px}
@media (min-width:700px){.folha-fundo{align-items:center}.folha{border-radius:18px}}
.folha-topo{display:flex;gap:12px;align-items:center}
.folha-topo img{width:64px;border-radius:6px;background:var(--pic-bg)}
.folha .acoes{display:flex;gap:10px;margin-top:18px}
.folha .acoes .btn{flex:1}
.qtd{display:flex;align-items:center;gap:8px}
.qtd button{width:42px;padding:0}
.qtd input{text-align:center;width:70px}
.abas{display:flex;gap:6px;margin-bottom:6px}
.abas button{flex:1}
.abas .btn.on{background:var(--copper);color:#fff;border-color:var(--copper)}
.auth{max-width:420px;margin:8vh auto 0}
.auth h1{font-size:28px}
.erro{color:var(--danger);font-size:13px;margin-top:8px;min-height:18px}
#aviso{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:10px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50;max-width:90vw}
#aviso.on{opacity:1}
@media (max-width:560px){.stats{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.stats{gap:6px}.stat b{font-size:17px}.grade{grid-template-columns:repeat(2,1fr);gap:8px}}
a{color:var(--water)}
.grade-exp{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:12px}
.exp{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:left;cursor:pointer;display:block;width:100%}
.exp:hover{box-shadow:var(--shadow)}
.exp-topo{display:flex;gap:10px;align-items:center}
.exp-topo img{height:34px;max-width:96px;object-fit:contain}
.exp-sem{font-size:11px;color:var(--ink-3);width:60px}
.exp .nome{font-weight:600;line-height:1.2}
.exp .sub{font-size:12px;color:var(--ink-3)}
.barra-linha{margin-top:10px}
.barra-rot{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink-2)}
.barra{height:8px;border-radius:999px;background:var(--line);overflow:hidden;margin-top:4px}
.barra i{display:block;height:100%;border-radius:999px}
.carta.falta .arte{filter:grayscale(1);opacity:.4}
.carta.falta .nome{color:var(--ink-3)}
.linhas{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:520px;overflow:auto}
.linha-carta{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:6px 10px;cursor:pointer;min-height:56px}
.linha-carta:hover{box-shadow:var(--shadow)}
.linha-carta img,.sem-img{width:36px;height:50px;object-fit:contain;border-radius:3px;background:var(--pic-bg);flex:none}
.lc-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.lc-txt b{font-size:14px;line-height:1.2}
.lc-txt .sub{font-size:12px;color:var(--ink-3)}
.tenho-linha{background:var(--copper);color:#fff;border-radius:999px;font-size:12px;font-weight:700;padding:2px 8px;flex:none}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;max-height:150px;overflow:auto}
.ficha{display:flex;flex-direction:column;align-items:flex-start;gap:0;border:1px solid var(--line);background:var(--panel-2);border-radius:10px;padding:5px 10px;cursor:pointer;min-height:44px;text-align:left}
.ficha b{font-size:14px}
.ficha span{font-size:11px;color:var(--ink-3);max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ficha.on{background:var(--copper);border-color:var(--copper)}
.ficha.on b,.ficha.on span{color:#fff}
.lc-topo{display:flex;gap:8px;align-items:baseline}
.lc-topo .ref{font-variant-numeric:tabular-nums;color:var(--copper)}
.condicoes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}
.chip-status{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:6px 4px;min-height:58px;cursor:pointer;line-height:1.15;display:flex;flex-direction:column;align-items:center;justify-content:center}
.chip-status b{font-size:15px;margin:0}
.chip-status small{font-size:10px;color:var(--ink-3)}
.chip-status.on{background:var(--copper);border-color:var(--copper);color:#fff}
.chip-status.on small{color:#e8eeff}
.condicoes .nao-sei{grid-column:1/-1;min-height:40px;flex-direction:row;font-size:14px}
.ref-preco{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--panel-2)}
.ref-preco .rot{font-size:11px;font-weight:600;color:var(--ink-3)}
.ref-preco .v{font:700 22px "Bricolage Grotesque",sans-serif;margin-top:2px}
.ref-preco .fonte{font-size:12px;color:var(--ink-2)}
.ref-preco .limite{font-size:12px;color:var(--ink-3);margin-top:4px}
.ref-preco .nd{font-size:13px;color:var(--ink-3);margin-top:2px}
.valor.ref{font-weight:500;color:var(--ink-2)}
/* Cartas da grade alinhadas pelo topo: <button> centraliza o conteúdo na vertical quando é esticado pela carta vizinha mais alta. */
.carta{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch}
.carta .arte{width:100%;flex:none}
.carta .info{flex:1;display:flex;flex-direction:column;align-items:flex-start;width:100%}
.carta .valor{margin-top:auto;padding-top:6px}

/* Cartas agrupadas, remoção rápida e troca */
.carta-wrap{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}
.carta-wrap:hover{box-shadow:var(--shadow)}
.carta-wrap .carta{flex:1;border:0;border-radius:0;background:transparent}
.carta-wrap .carta:hover{box-shadow:none}
.carta .arte{position:relative}
.qtd-selo{position:absolute;top:6px;right:6px;background:var(--copper);color:#fff;border-radius:999px;font-size:12px;font-weight:700;padding:2px 8px}
.rodape-carta{display:flex;align-items:center;gap:8px;padding:8px 10px 10px;border-top:1px solid var(--line-soft)}
.rodape-carta button{height:36px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink-2);border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;cursor:pointer;font:600 13px/1 "IBM Plex Sans",system-ui,sans-serif}
.rodape-carta button:hover,.rodape-carta button:focus-visible{border-color:var(--copper);color:var(--ink)}
.rodape-carta .troca-btn{flex:1;min-width:0}
.rodape-carta .remover{width:36px;padding:0;flex:none}
.rodape-carta .remover:hover,.rodape-carta .remover:focus-visible{background:var(--danger);border-color:var(--danger);color:#fff}
.troca-btn.on{background:var(--grass-soft)!important;border-color:var(--grass)!important;color:var(--grass)!important}
.troca-passo{flex:1;display:flex;align-items:stretch;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel-2);min-width:0}
.rodape-carta .troca-passo button{width:38px;height:34px;border:0;border-radius:0;background:transparent;padding:0;flex:none}
.rodape-carta .troca-passo button:hover,.rodape-carta .troca-passo button:focus-visible{background:var(--line-soft);border:0}
.troca-n{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--ink-3);border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft);min-width:0}
.troca-n b{font:600 14px/1 "IBM Plex Sans",system-ui,sans-serif}
.troca-n.on{color:var(--grass);background:var(--grass-soft)}
.grupo-linha{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line-soft);flex-wrap:wrap}
.gl-txt{display:flex;flex-direction:column;min-width:0;flex:1 1 140px}
.gl-txt small{font-size:12px;color:var(--ink-3)}
.gl-acoes{display:flex;gap:6px;flex-wrap:wrap}
.btn-troca,.btn-peq{min-height:36px;border:1px solid var(--line);background:var(--panel-2);border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:600;font-size:13px}
.btn-troca.on{background:var(--grass-soft);border-color:var(--grass);color:var(--grass)}
.btn-peq.perigo{color:var(--danger);border-color:var(--danger)}
#desfazer{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;gap:6px;z-index:60;width:min(92vw,420px)}
.desfazer-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--ink);color:var(--ground);padding:10px 12px 10px 14px;border-radius:10px;font-size:14px}
.btn-desfazer{background:transparent;border:1px solid currentColor;color:inherit;border-radius:8px;padding:6px 12px;min-height:36px;font-weight:600;cursor:pointer;white-space:nowrap}
.rodape{max-width:1040px;margin:0 auto;padding:4px 16px 48px;color:var(--ink-3);font-size:12px;line-height:1.55;text-align:center}
