@font-face {
  font-family: "Space Grotesk";
  src: url("/fontes/space-grotesk.woff2") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}

@font-face {
  font-family: "Instrument Sans";
  src: url("/fontes/instrument-sans.woff2") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}

/* Galeria: fundo neutro que nao disputa com a arte, tinta quase preta e um so destaque
   (ultramarino). Escala de espaco em multiplos de 4px. */
:root {
  --fundo: #f4f4f2;
  --superficie: #ffffff;
  --palco: #e9e9e6;
  --texto: #111113;
  --suave: #5b5b63;
  --linha: #dcdcd8;
  --marca: #1f3dff;
  --marca-texto: #ffffff;
  --marca-suave: #e5e9ff;
  --ok: #0b7a47;
  --ok-suave: #e2f5eb;
  --aviso: #8a5300;
  --aviso-suave: #fff1d6;
  --erro: #b42318;
  --erro-suave: #fdebe9;
  --raio: 6px;
  --raio-g: 10px;
  --display: "Space Grotesk", "Instrument Sans", system-ui, sans-serif;
  --corpo: "Instrument Sans", system-ui, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --sombra: 0 2px 4px rgb(17 17 19 / 6%), 0 12px 32px -8px rgb(17 17 19 / 18%);
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #0d0d0f;
    --superficie: #17171a;
    --palco: #1c1c20;
    --texto: #e8e8ec;
    --suave: #a1a1ab;
    --linha: #2b2b31;
    --marca: #8391ff;
    --marca-texto: #0d0d0f;
    --marca-suave: #1e2247;
    --ok: #4cd497;
    --ok-suave: #10301f;
    --aviso: #ffc36b;
    --aviso-suave: #35270e;
    --erro: #ff8f86;
    --erro-suave: #3a1614;
    --sombra: 0 2px 4px rgb(0 0 0 / 30%), 0 12px 32px -8px rgb(0 0 0 / 60%);
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }

[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font: 16px/1.55 var(--corpo);
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--marca); color: var(--marca-texto); }

a { color: var(--marca); text-underline-offset: 3px; }
a:not([class]):visited { color: color-mix(in srgb, var(--marca) 65%, var(--texto)); }

h1, h2, h3 { font-family: var(--display); font-weight: 600; letter-spacing: -0.02em; text-wrap: balance; }
h1 { margin: 0 0 8px; font-size: clamp(2rem, 1.3rem + 2.4vw, 3.25rem); line-height: 1.05; }
h2 { margin: 48px 0 16px; font-size: 1.375rem; line-height: 1.2; }
p { margin: 8px 0; text-wrap: pretty; }

.visivel-leitor {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* ------------------------------------------------------------ topo */

.topo {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 32px;
  min-height: 68px;
  padding: 0 max(24px, calc((100vw - 1200px) / 2));
  padding-top: env(safe-area-inset-top);
  background: var(--fundo);
  border-bottom: 1px solid var(--linha);
}

.marca, .marca:visited {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  color: var(--texto);
  font-family: var(--display);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.02em;
  text-decoration: none;
}

#nav { display: flex; gap: 24px; flex: 1; align-self: stretch; }

#nav a {
  display: flex;
  align-items: center;
  min-height: 44px;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  color: var(--suave);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: color .15s ease-out, border-color .15s ease-out;
}
#nav a:hover { color: var(--texto); }
#nav a[aria-current="page"] { border-bottom-color: var(--texto); color: var(--texto); }

#carteira button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--linha);
  border-radius: 999px;
  background: var(--superficie);
  color: var(--texto);
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .15s ease-out;
}
#carteira button:hover { border-color: var(--texto); }
#carteira button.conectar { background: var(--texto); border-color: var(--texto); color: var(--fundo); font-weight: 600; }
#carteira .chip-carteira { padding: 0 16px 0 6px; }
.chip-textos { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.15; }
.chip-textos .saldo { color: var(--suave); font-size: 12px; font-variant-numeric: tabular-nums; }

.faixa {
  padding: 10px 16px;
  background: var(--aviso-suave);
  color: var(--aviso);
  font-size: 14px;
  text-align: center;
}

/* ------------------------------------------------------------ conteudo */

main {
  max-width: 1248px;
  margin: 0 auto;
  padding: 40px 24px calc(96px + env(safe-area-inset-bottom));
}
.estreito { max-width: 560px; margin: 0 auto; }
.introducao { margin: 0 0 40px; font-size: 18px; }

.suave { color: var(--suave); }
.pequeno { font-size: 14px; }
.mono { font-family: var(--mono); font-size: 13px; overflow-wrap: anywhere; }
.vazio { color: var(--suave); text-align: center; padding: 40px 0; }

.selo {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--marca-suave);
  color: var(--marca);
  font-size: 12px;
  font-weight: 600;
  vertical-align: middle;
}
.selo.ok { background: var(--ok-suave); color: var(--ok); }
.selo.aviso { background: var(--aviso-suave); color: var(--aviso); }

.mensagem { padding: 12px 14px; border-radius: var(--raio); font-size: 15px; margin: 12px 0; overflow-wrap: anywhere; }
.mensagem.erro { background: var(--erro-suave); color: var(--erro); }
.mensagem.ok { background: var(--ok-suave); color: var(--ok); }
.mensagem.aviso { background: var(--aviso-suave); color: var(--aviso); }

/* carregando: formas da grade, pulsando devagar */
.osso { border-radius: var(--raio); background: var(--palco); animation: pulsar 1.4s ease-in-out infinite alternate; }
.osso-arte { aspect-ratio: 1; }
.osso-linha { height: 16px; width: 70%; margin-top: 14px; }
.osso-curta { height: 14px; width: 45%; margin-top: 8px; }
@keyframes pulsar { from { opacity: 1; } to { opacity: .45; } }

/* ------------------------------------------------------------ obras */

/* Sem caixa em volta: a arte e o objeto, o texto fica embaixo como etiqueta de galeria. */
.grade {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
  gap: 40px 24px;
}
.grade.compacta { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 28px 16px; }

.obra, .obra:visited { display: block; min-width: 0; color: inherit; text-decoration: none; }

.obra-arte {
  overflow: hidden;
  border-radius: var(--raio);
  background: var(--palco);
  transition: transform .25s cubic-bezier(.2, .7, .3, 1), box-shadow .25s cubic-bezier(.2, .7, .3, 1);
}
.obra:hover .obra-arte, .obra:focus-visible .obra-arte { transform: translateY(-4px); box-shadow: var(--sombra); }
.obra:focus-visible { outline: none; }
.obra:focus-visible .obra-arte { outline: 3px solid var(--marca); outline-offset: 3px; }

.obra-linha { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 12px 0 4px; }
.obra-nome {
  min-width: 0;
  overflow: hidden;
  font-family: var(--display);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.obra-preco { flex: none; font-weight: 600; font-variant-numeric: tabular-nums; }
.compacta .obra-nome { font-size: 15px; }

.pessoa, a.pessoa:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  color: var(--suave);
  font-size: 14px;
  text-decoration: none;
}
.pessoa > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
a.pessoa:hover > span { color: var(--texto); text-decoration: underline; }
.avatar { flex: none; border-radius: 50%; image-rendering: pixelated; }

.midia {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  background: var(--palco);
}
.midia.vazia { display: grid; place-items: center; color: var(--suave); font-size: 14px; }

.secao {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 72px 0 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--linha);
}
.secao h2 { margin: 0; }

.obra-colecao { display: block; overflow: hidden; color: var(--suave); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }

/* ------------------------------------------------------------ colecoes */

.grade-colecoes { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.colecao-card, .colecao-card:visited { display: block; min-width: 0; color: inherit; text-decoration: none; }
.colecao-card .obra-arte .midia { aspect-ratio: 4 / 3; }
.colecao-card:hover .obra-arte, .colecao-card:focus-visible .obra-arte { transform: translateY(-4px); box-shadow: var(--sombra); }
.colecao-card:focus-visible { outline: none; }
.colecao-card:focus-visible .obra-arte { outline: 3px solid var(--marca); outline-offset: 3px; }
.colecao-card .obra-nome { font-size: 19px; }
.colecao-card-dados { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; font-size: 14px; }

.titulo-pagina { margin-bottom: 32px; }
.titulo-pagina h1 { margin: 0; }
.ver-todas, .ver-todas:visited { color: var(--suave); font-size: 15px; }
.ver-todas:hover { color: var(--texto); }

.destaque-colecao, .destaque-colecao:visited {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--suave);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
}
.destaque-colecao:hover { color: var(--texto); text-decoration: underline; }

.colecao-topo { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 40px; align-items: end; }
.colecao-capa { overflow: hidden; border-radius: var(--raio-g); background: var(--palco); }
.colecao-info .descricao { margin-bottom: 24px; max-width: 64ch; }
.colecao-info .botao { min-width: 220px; }

.numeros {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 40px 0 0;
  border-top: 1px solid var(--linha);
  border-bottom: 1px solid var(--linha);
}
.numeros > div { padding: 18px 20px 18px 0; }
.numeros > div + div { padding-left: 20px; border-left: 1px solid var(--linha); }
.numeros dt { color: var(--suave); font-size: 13px; }
.numeros dd { margin: 2px 0 0; font-family: var(--display); font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.numeros small { color: var(--suave); font-size: 14px; font-weight: 400; }

.abas { display: flex; gap: 24px; margin-bottom: -13px; }
.abas button {
  min-height: 44px;
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: none;
  color: var(--suave);
  font: inherit;
  font-family: var(--display);
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
}
.abas button[aria-selected="true"] { border-bottom-color: var(--texto); color: var(--texto); }
.abas button span { margin-left: 4px; color: var(--suave); font-size: 14px; font-weight: 500; }

/* ------------------------------------------------------------ destaque */

.destaque {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 56px;
  align-items: center;
  padding: 16px 0 8px;
}
.destaque-arte { display: block; border-radius: var(--raio-g); overflow: hidden; background: var(--palco); }
.destaque-arte .midia { aspect-ratio: 1; }
.destaque-nome { margin: 0 0 16px; font-size: clamp(2.25rem, 1.4rem + 3vw, 4rem); line-height: 1; }
.destaque-desc {
  display: -webkit-box;
  margin: 24px 0 0;
  overflow: hidden;
  color: var(--suave);
  font-size: 18px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.destaque-preco { display: flex; flex-direction: column; gap: 2px; margin: 32px 0 24px; padding-top: 20px; border-top: 1px solid var(--linha); }
.destaque-preco strong { font-family: var(--display); font-size: 2rem; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.destaque .botao { min-width: 220px; }

.vazio-grande { padding: 96px 0; text-align: center; }
.vazio-grande h2 { margin: 0 0 8px; font-size: 2rem; }
.vazio-grande .botao { margin-top: 16px; }

/* ------------------------------------------------------------ detalhe */

.migalha { display: flex; gap: 8px; margin: 0 0 24px; color: var(--suave); font-size: 14px; }
.migalha a, .migalha a:visited { color: var(--suave); }

.detalhe {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 56px;
  align-items: start;
}
/* A obra fica parada enquanto a coluna da direita rola. */
.palco {
  position: sticky;
  top: 96px;
  padding: clamp(16px, 4vw, 48px);
  border-radius: var(--raio-g);
  background: var(--palco);
}
.palco .midia { object-fit: contain; background: transparent; box-shadow: var(--sombra); }

.lateral h1 { margin-bottom: 20px; }
.autoria { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-bottom: 24px; }
.autoria > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.rotulo { display: block; color: var(--suave); font-size: 13px; font-weight: 500; }
.descricao { margin: 0 0 32px; font-size: 18px; line-height: 1.6; white-space: pre-wrap; }

.painel {
  display: block;
  margin: 0 0 16px;
  padding: 24px;
  background: var(--superficie);
  border: 1px solid var(--linha);
  border-radius: var(--raio-g);
}
.painel > p:first-child { margin-top: 0; }
.preco-grande {
  margin: 2px 0 20px;
  font-family: var(--display);
  font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.1;
}
.painel .botao.largo { margin-top: 4px; }

details > summary { cursor: pointer; list-style: none; }
details > summary::-webkit-details-marker { display: none; }
details > summary::after { content: "+"; float: right; color: var(--suave); font-weight: 400; }
details[open] > summary::after { content: "−"; }

.divisao-detalhes { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--linha); font-size: 14px; }
.divisao-detalhes summary { color: var(--suave); font-weight: 500; }
.painel-recolhido { padding: 18px 24px; }
.painel-recolhido summary { font-weight: 600; }
.painel-recolhido form { margin-top: 8px; }

.dados { display: grid; grid-template-columns: auto 1fr; gap: 10px 24px; margin: 32px 0 0; font-size: 15px; }
.dados dt { color: var(--suave); }
.dados dd { margin: 0; overflow-wrap: anywhere; }

.historico { list-style: none; margin: 0; padding: 0; }
.historico li {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid var(--linha);
  font-size: 15px;
}
.evento { font-weight: 600; }
.evento-vendido .evento { color: var(--marca); }
.evento-texto { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-width: 0; }
.evento-quando { color: var(--suave); font-size: 14px; white-space: nowrap; }

/* ------------------------------------------------------------ formularios */

label { display: block; margin: 20px 0 8px; font-weight: 600; font-size: 14px; }
.painel > label:first-child, .painel > p + label { margin-top: 0; }

input, textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  background: var(--superficie);
  color: var(--texto);
  font: inherit;
  transition: border-color .15s ease-out;
}
input:hover, textarea:hover { border-color: color-mix(in srgb, var(--linha) 50%, var(--texto)); }
input::placeholder, textarea::placeholder { color: color-mix(in srgb, var(--suave) 75%, transparent); }
textarea { min-height: 112px; resize: vertical; }
:focus-visible { outline: 2px solid var(--marca); outline-offset: 2px; }
input:focus-visible, textarea:focus-visible { outline-offset: 0; border-color: var(--marca); }
.ajuda { margin: 8px 0 0; color: var(--suave); font-size: 13px; }

/* valor + unidade no mesmo campo */
.campo-moeda { position: relative; }
.campo-moeda input { padding-right: 64px; font-family: var(--display); font-size: 20px; font-variant-numeric: tabular-nums; }
.campo-moeda span { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); color: var(--suave); font-weight: 600; pointer-events: none; }

.botao, a.botao:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 14px 24px;
  border: 0;
  border-radius: var(--raio);
  background: var(--marca);
  color: var(--marca-texto);
  font: inherit;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s ease-out, transform .1s ease-out;
}
.botao:hover { background: color-mix(in srgb, var(--marca) 86%, var(--texto)); }
.botao:active { transform: translateY(1px); }
.botao.largo { width: 100%; margin-top: 16px; }
.botao.secundario, a.botao.secundario:visited { background: transparent; box-shadow: inset 0 0 0 1px var(--linha); color: var(--texto); }
.botao.secundario:hover { box-shadow: inset 0 0 0 1px var(--texto); }
.botao.perigo { background: transparent; box-shadow: inset 0 0 0 1px var(--erro); color: var(--erro); }
.botao.perigo:hover { background: var(--erro-suave); }
.botao:disabled { opacity: .5; cursor: not-allowed; }
.botoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.botoes .botao { flex: 1; }
.botoes.centro { justify-content: center; }
.botoes.centro .botao { flex: none; }

.divisao { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 12px; }
.divisao td { padding: 5px 0; }
.divisao td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.divisao tr:last-child td { border-top: 1px solid var(--linha); font-weight: 700; padding-top: 10px; }

/* ------------------------------------------------------------ criar */

.criar { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 64px; align-items: start; }
.criar-form > label:first-child { margin-top: 0; }
.soltar {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 180px;
  padding: 24px;
  border: 1.5px dashed color-mix(in srgb, var(--linha) 40%, var(--suave));
  border-radius: var(--raio-g);
  background: var(--superficie);
  text-align: center;
  cursor: pointer;
  transition: border-color .15s ease-out, background-color .15s ease-out;
}
.soltar:hover, .soltar:focus-within { border-color: var(--marca); background: var(--marca-suave); }
.soltar-titulo { font-family: var(--display); font-size: 18px; overflow-wrap: anywhere; }
.soltar input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.criar-previa { position: sticky; top: 96px; }
.criar-previa .rotulo { margin-bottom: 12px; }
.criar-previa .obra:hover .obra-arte { transform: none; box-shadow: none; }

.dois-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.soltar-grande { min-height: 220px; }

/* lista do lote: miniatura, nome editavel, remover */
.lote { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; margin: 24px 0 8px; }
.lote-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--linha);
  border-radius: var(--raio-g);
  background: var(--superficie);
}
.lote-item img { width: 72px; height: 72px; object-fit: cover; border-radius: var(--raio); background: var(--palco); }
.lote-campos { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.lote-campos input { min-height: 40px; padding: 8px 10px; }
.lote-campos span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.remover {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--raio);
  background: none;
  color: var(--suave);
  font-size: 22px;
  cursor: pointer;
}
.remover:hover { background: var(--erro-suave); color: var(--erro); }

/* ------------------------------------------------------------ meus NFTs */

.perfil { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; align-items: center; margin-bottom: 16px; }
.perfil h1 { margin: 0 0 4px; }
.perfil .avatar { border-radius: var(--raio-g); }
.perfil-numeros { display: flex; gap: 40px; margin: 0; }
.perfil-numeros dt { color: var(--suave); font-size: 13px; }
.perfil-numeros dd { margin: 0; font-family: var(--display); font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.saque { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; }
.saque .preco-grande { margin-bottom: 4px; }

/* ------------------------------------------------------------ movimento */

/* Um momento so: as obras entram subindo de leve na primeira pintura da grade. */
@media (prefers-reduced-motion: no-preference) {
  .grade > .obra { animation: entrar .5s cubic-bezier(.2, .7, .3, 1) both; }
  .grade > .obra:nth-child(2) { animation-delay: .04s; }
  .grade > .obra:nth-child(3) { animation-delay: .08s; }
  .grade > .obra:nth-child(4) { animation-delay: .12s; }
  .grade > .obra:nth-child(n+5) { animation-delay: .16s; }
}
@keyframes entrar { from { opacity: 0; transform: translateY(8px); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

@media (max-width: 860px) {
  .destaque { grid-template-columns: 1fr; gap: 24px; }
  .destaque .botao { width: 100%; }
}

@media (max-width: 860px) {
  .detalhe { grid-template-columns: 1fr; gap: 24px; }
  .palco { position: static; }
}

@media (max-width: 720px) {
  .historico li { grid-template-columns: 1fr; gap: 4px; }
}

@media (max-width: 960px) {
  .numeros { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .numeros > div:nth-child(4) { padding-left: 0; border-left: 0; }
  .numeros > div:nth-child(n+4) { border-top: 1px solid var(--linha); }
  .colecao-topo { grid-template-columns: 200px minmax(0, 1fr); gap: 24px; }
  .criar { grid-template-columns: 1fr; gap: 40px; }
  .criar-previa { position: static; max-width: 320px; }
  .perfil { grid-template-columns: auto minmax(0, 1fr); }
  .perfil-numeros { grid-column: 1 / -1; }
}

/* celular: o menu vai para uma segunda linha, a marca fica so com o icone */
@media (max-width: 560px) {
  .topo { flex-wrap: wrap; gap: 0 16px; padding: 0 16px; padding-top: env(safe-area-inset-top); }
  .marca span { display: none; }
  #nav { order: 3; width: 100%; flex: none; gap: 20px; overflow-x: auto; }
  #carteira { margin-left: auto; }
  #carteira .chip-textos .saldo { display: none; }
  main { padding: 24px 16px calc(64px + env(safe-area-inset-bottom)); }
  .saque { flex-direction: column; align-items: stretch; }
  .colecao-topo { grid-template-columns: 1fr; }
  .colecao-capa { max-width: 240px; }
  .colecao-info .botao { width: 100%; }
  .numeros { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .numeros > div, .numeros > div + div { padding: 14px 12px 14px 0; border-left: 0; }
  .numeros > div:nth-child(even) { padding-left: 12px; border-left: 1px solid var(--linha); }
  .numeros > div:nth-child(n+3) { border-top: 1px solid var(--linha); }
  .numeros dd { font-size: 18px; }
  .dois-campos { grid-template-columns: 1fr; gap: 0; }
  .lote { grid-template-columns: 1fr; }
  .grade-colecoes { grid-template-columns: 1fr; }
  .perfil-numeros { gap: 24px; }
  .grade, .grade.compacta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
  .obra-linha { flex-direction: column; gap: 2px; }
  .obra-nome { max-width: 100%; font-size: 15px; }
  .secao { margin-top: 48px; }
}

/* ------------------------------------------------------------ ponte */

.ponte { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 40px; align-items: start; }
.ponte-painel { padding: 28px; }
.ponte-painel .abas { margin: -4px 0 24px; padding-bottom: 12px; border-bottom: 1px solid var(--linha); }
.rota {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: center;
  padding: 16px 20px;
  border-radius: var(--raio-g);
  background: var(--palco);
}
.rota strong { font-family: var(--display); font-size: 18px; font-weight: 600; }
.rota > div:last-child { text-align: right; }
.seta { color: var(--suave); font-size: 22px; }
.saldo-linha { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0 0; font-size: 14px; font-variant-numeric: tabular-nums; }
.campo-com-max input { padding-right: 132px; }
.maximo {
  position: absolute;
  top: 50%;
  right: 72px;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  background: var(--superficie);
  color: var(--texto);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  transform: translateY(-50%);
  cursor: pointer;
}
.maximo:hover { border-color: var(--texto); }
.ponte-limites { position: sticky; top: 96px; }
.ponte-limites .dados { margin-top: 0; }
.travessias li { grid-template-columns: minmax(0, 1.4fr) auto auto minmax(0, 1.2fr); }
.travessia-rota { font-weight: 600; }
.travessia-valor { font-variant-numeric: tabular-nums; }
.travessias .selo { justify-self: start; }
.travessias .evento-quando { text-align: right; }

@media (max-width: 860px) {
  .ponte { grid-template-columns: 1fr; gap: 24px; }
  .ponte-limites { position: static; }
  .travessias li { grid-template-columns: 1fr auto; }
  .travessias .evento-quando { grid-column: 1 / -1; text-align: left; }
}
