/* /Components/Public/PublicField.razor.rz.scp.css */
/* Campo na voz de "Linha de Fundo": borda de 2px na linha forte, a mesma aresta pintada das outras
   superfícies da área pública. O foco troca a borda por um anel de 3px na cor de ação, igual a
   `.pub-row` e `.pub-action`. Sem sombra — a hierarquia é peso de linha. */
[b-vz2v0xduic] input,
[b-vz2v0xduic] select {
    border: 2px solid var(--color-line-strong);
    border-radius: var(--radius-md);
    padding: 0.5rem 0.75rem;
    min-height: var(--spacing-touch);
}

[b-vz2v0xduic] input:focus,
[b-vz2v0xduic] select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px var(--color-primary);
}
/* /Layout/PublicLayout.razor.rz.scp.css */
/* Moldura pública — estilo isolado porque é de UMA tela só (a moldura), ao contrário das
   primitivas `pub-*` de wwwroot/css/public.css, que seis telas compartilham. */

.frame[b-paska243m9] {
    background-color: var(--color-background);
    color: var(--color-ink);
}

.frame-bar[b-paska243m9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 1rem;
    background-color: var(--color-surface);
    border-bottom: 2px solid var(--color-ink);
}

/* A marca leva a barra de coral sob a palavra — fixa, não reage a hover: é assinatura, não estado.
   Mesma tinta que marca o jogo ao vivo e o primeiro colocado. */
.wordmark[b-paska243m9] {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: -0.02em;
    text-decoration: none;
    color: var(--color-ink);
    box-shadow: inset 0 -3px 0 var(--color-secondary);
}

.wordmark:focus-visible[b-paska243m9],
.menu-toggle:focus-visible[b-paska243m9],
.menu-link:focus-visible[b-paska243m9] {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-primary);
}

.menu-toggle[b-paska243m9] {
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: var(--radius-md);
    background-color: transparent;
    color: var(--color-ink);
    cursor: pointer;
}

.menu-toggle:hover[b-paska243m9] {
    background-color: var(--color-background);
}

.frame-menu[b-paska243m9] {
    display: flex;
    flex-direction: column;
    background-color: var(--color-surface);
    border-bottom: 2px solid var(--color-ink);
}

/* Item de menu ocupa a largura inteira e é separado por fio, como toda lista da área pública — o
   menu é a primeira lista que o visitante vê, e não faria sentido ele ser a única com outra forma. */
.menu-link[b-paska243m9] {
    display: flex;
    align-items: center;
    padding: 0 1rem;
    text-decoration: none;
    color: var(--color-ink);
}

.menu-link + .menu-link[b-paska243m9] {
    border-top: 2px solid var(--color-line);
}

.menu-link:hover[b-paska243m9] {
    background-color: var(--color-background);
}

/* "Sair" é o único item que não leva a uma tela do produto: o fio mais forte marca essa diferença
   sem precisar de cor de alerta, que aqui prometeria um perigo que não existe. */
.menu-link-last[b-paska243m9] {
    border-top: 2px solid var(--color-line-strong);
}

.frame-foot[b-paska243m9] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0.35rem 0.75rem;
    padding: 1.25rem 1rem;
    border-top: 1px solid var(--color-line);
    font-size: 0.8125rem;
    text-align: center;
    color: var(--color-ink-muted);
}

.frame-foot-mark[b-paska243m9] {
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--color-ink);
}
/* /Pages/Admin/Categories/AdministrativeTiebreakDialog.razor.rz.scp.css */
.tiebreak-list[b-i0j6o8yz25] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: 0.5rem;
}

.tiebreak-item[b-i0j6o8yz25] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.25rem 0;
    border-bottom: 1px solid var(--mud-palette-lines-default);
}

.tiebreak-item-actions[b-i0j6o8yz25] {
    display: flex;
    gap: 0.25rem;
}

/* S14 done-when: alvos de toque com no mínimo 44 px em 360 px. */
.tiebreak-touch-target[b-i0j6o8yz25] {
    min-height: 44px;
    min-width: 44px;
}
/* /Pages/Admin/Categories/CategoryStandingsPanel.razor.rz.scp.css */
.standings-panel-header[b-5drcz0qbpv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

.standings-group-header[b-5drcz0qbpv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

.standings-group-header-actions[b-5drcz0qbpv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

/* S14 done-when: alvos de toque com no mínimo 44 px em 360 px. */
.standings-touch-target[b-5drcz0qbpv] {
    min-height: 44px;
}

/* G-11 do design: a rolagem horizontal em 360 px acontece dentro deste contêiner, nunca no corpo
   da página. */
.standings-table-wrapper[b-5drcz0qbpv] {
    overflow-x: auto;
}

.standings-table[b-5drcz0qbpv] {
    border-collapse: collapse;
    width: 100%;
}

.standings-table th[b-5drcz0qbpv],
.standings-table td[b-5drcz0qbpv] {
    padding: 4px 8px;
    text-align: center;
    white-space: nowrap;
    border-bottom: 1px solid var(--mud-palette-lines-default);
    font-size: 0.875rem;
}

.standings-table thead th[b-5drcz0qbpv] {
    font-weight: 600;
}

/* Nome da dupla fica fixo enquanto a tabela rola na horizontal (design.md §6). */
.standings-team-column[b-5drcz0qbpv] {
    position: sticky;
    left: 0;
    background: var(--mud-palette-surface);
    text-align: left;
    white-space: nowrap;
}

.standings-tied-row[b-5drcz0qbpv] {
    background: var(--mud-palette-warning-lighten);
}
/* /Pages/Admin/Matches/MatchDetail.razor.rz.scp.css */
/* T11 done-when: a rolagem horizontal em 360 px acontece dentro deste contêiner, nunca no corpo
   da página (mesmo padrão de CategoryStandingsPanel.razor.css .standings-table-wrapper). */
.match-sets-table-wrapper[b-934x24h2i5] {
    overflow-x: auto;
}
/* /Pages/Admin/Operations/HealthPanel.razor.rz.scp.css */
.health-indicator[b-nrdu0id9e7] {
    height: 100%;
}

.health-indicator__routine[b-nrdu0id9e7] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

.health-panel__footer[b-nrdu0id9e7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}
/* /Pages/Admin/Operations/OperationsConsole.razor.rz.scp.css */
/* start.md 26.2 — o console precisa funcionar a partir de 360 px, com alvo de toque adequado e sem
   rolagem horizontal. Nada aqui usa largura fixa: o cartão sempre acompanha o contêiner. */

.operations-console[b-x0n7eetbyz] {
    max-width: 100%;
    overflow-x: hidden;
}

.operations-section__header[b-x0n7eetbyz] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    justify-content: flex-start;
    /* 44 px é o mínimo de toque adotado no projeto desde AD-029. */
    min-height: 44px;
    text-transform: none;
}

.operations-section__title[b-x0n7eetbyz] {
    flex: 1 1 auto;
    text-align: left;
    font-weight: 600;
}

.operations-section__count[b-x0n7eetbyz] {
    flex: 0 0 auto;
}

.operations-section__body[b-x0n7eetbyz] {
    padding: 0 0.25rem;
}

.operations-card__header[b-x0n7eetbyz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.operations-card__time[b-x0n7eetbyz] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.operations-card__teams[b-x0n7eetbyz] {
    margin-top: 0.25rem;
    /* Nome de atleta longo quebra em vez de empurrar o cartão além da viewport. */
    overflow-wrap: anywhere;
}

.operations-card__meta[b-x0n7eetbyz] {
    display: block;
    margin-top: 0.25rem;
    opacity: 0.75;
    overflow-wrap: anywhere;
}

.operations-card__actions[b-x0n7eetbyz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.operations-card__actions[b-x0n7eetbyz]  .mud-button {
    min-height: 44px;
}

.operations-console__footer[b-x0n7eetbyz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}
/* /Pages/Athletes/AthleteProfile.razor.rz.scp.css */
/* Perfil do atleta — só o que não é `.pub-sheet`/`.pub-form`/`.pub-link` de public.css. */

/* "Exibir CPF completo" fica embaixo do CPF mascarado, não ao lado: o valor já ocupa a coluna da
   direita da ficha, e um link inline empurraria a máscara para quebrar linha de um jeito estranho. */
.cpf-reveal[b-b84knbm6wt] {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8125rem;
}
/* /Pages/Matches/MyMatches.razor.rz.scp.css */
/* Jogo do atleta — mesma súmula de PublicMatchCard, mas em 1a pessoa: "Contra:" e "Você venceu" no
   lugar de duas duplas lado a lado, porque aqui uma delas é sempre quem está lendo. */

.match-head[b-pja0abaz9b] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.6rem;
    margin-bottom: 0.35rem;
}

.match-time[b-pja0abaz9b] {
    font-size: 1.125rem;
    line-height: 1.2;
    color: var(--color-ink);
}

.opponent-line[b-pja0abaz9b] {
    margin: 0.15rem 0;
    color: var(--color-ink);
}

.match-outcome[b-pja0abaz9b] {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 2px solid var(--color-line);
}

.match-outcome-text[b-pja0abaz9b] {
    margin: 0 0 0.15rem;
    font-weight: 600;
}
/* /Pages/Public/PublicCategoriesPanel.razor.rz.scp.css */
/* Categorias — laje de linhas de `.pub-list`; aqui só o que é desta seção: a contagem de vagas e a
   barra que a desenha. */

.head[b-2bmpzhftq8] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

/* A contagem é o segundo dado mais procurado da seção (o primeiro é o nome), então ela é número em
   fonte display, não texto miúdo ao lado. O total fica menor e apagado: quem olha rápido está
   perguntando "quantas já entraram", e 9 é a resposta. */
.count[b-2bmpzhftq8] {
    font-size: 1.25rem;
    line-height: 1.1;
    white-space: nowrap;
    color: var(--color-ink);
}

.count-total[b-2bmpzhftq8] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-ink-muted);
}

.gauge[b-2bmpzhftq8] {
    display: block;
    height: 3px;
    margin: 0.6rem 0 0.75rem;
    background-color: var(--color-line);
}

/* Fio de areia outra vez, agora medindo: é a mesma tinta que marca a aba corrente e o nome sob o
   cursor, e continua querendo dizer a mesma coisa — "é aqui que a coisa está acontecendo". */
.gauge-fill[b-2bmpzhftq8] {
    display: block;
    height: 100%;
    background-color: var(--color-secondary);
}
/* /Pages/Public/PublicMatchCard.razor.rz.scp.css */
/* Linha de jogo. O cartão, o fio e o selo vêm de public.css; aqui fica a súmula. */

.head[b-qzy1oim0qg] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.6rem;
}

/* Horário na fonte display, em tinta teal e sem caixa — o dígito à esquerda que alinha com o das
   outras linhas da agenda. "--:--" no lugar do vazio mantém a coluna quando o jogo não tem hora. */
.time[b-qzy1oim0qg] {
    align-self: flex-start;
    font-size: 1.05rem;
    line-height: 1.25;
    color: var(--color-primary);
}

.where[b-qzy1oim0qg] {
    flex: 1 1 8rem;
}

.score[b-qzy1oim0qg] {
    margin-top: 0.65rem;
}

.side[b-qzy1oim0qg] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0;
    padding: 0.3rem 0;
}

.side + .side[b-qzy1oim0qg] {
    border-top: 2px solid var(--color-line);
}

.side-names[b-qzy1oim0qg] {
    min-width: 0;
    line-height: 1.3;
}

.sets[b-qzy1oim0qg] {
    display: flex;
    flex-shrink: 0;
    gap: 0.35rem;
}

/* Quadro de set de largura fixa: contorno de teal para o set perdido, preenchido de teal para o
   vencido — o 9 e o 21 caem na mesma coluna nas duas linhas da dupla porque os quadros têm a mesma
   largura. Sem isso o placar deixa de ser tabela e vira texto. */
.set[b-qzy1oim0qg] {
    display: inline-block;
    min-width: 1.9rem;
    padding: 0.1rem 0.3rem;
    font-family: var(--font-display);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.35;
    text-align: center;
    border: 2px solid var(--color-primary);
    border-radius: 8px;
    color: var(--color-primary);
}

.set-won[b-qzy1oim0qg] {
    background-color: var(--color-primary);
    color: var(--color-surface);
}

/* Set interrompido por abandono: publicado, riscado, nunca escondido (11.3). */
.set-void[b-qzy1oim0qg] {
    border-color: var(--color-line-strong);
    color: var(--color-ink-muted);
    text-decoration: line-through;
}

.reason[b-qzy1oim0qg] {
    margin: 0.55rem 0 0;
    color: var(--color-warning);
}

/* Jogo em andamento: a linha ganha uma lavagem leve de coral e uma barra de 4px na margem — o
   "isto está acontecendo agora" do placar, sem tomar a linha inteira, para o coral continuar
   escasso quando há mais de um jogo ao vivo. O selo de estado (verde "Em andamento") continua
   carregando o texto: cor sozinha nunca é o único sinal. */
.match-live[b-qzy1oim0qg] {
    background-color: color-mix(in srgb, var(--color-secondary) 10%, var(--color-surface));
    box-shadow: inset 4px 0 0 var(--color-secondary);
}

.match-live .side + .side[b-qzy1oim0qg] {
    border-top-color: color-mix(in srgb, var(--color-secondary) 40%, var(--color-line));
}
/* /Pages/Public/PublicTeamsPanel.razor.rz.scp.css */
/* Duplas — a única lista da área pública onde o conteúdo da linha são dois nomes de pessoa. */

.team[b-cay2fz0mtn] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem;
    margin: 0;
}

/* Os dois atletas na fonte display e o "e" miúdo entre eles: numa lista de dezenas de duplas, é o
   nome que o visitante varre, e a conjunção só precisa não atrapalhar. */
.team-athlete[b-cay2fz0mtn] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.0625rem;
    line-height: 1.25;
    letter-spacing: -0.01em;
}

.team-and[b-cay2fz0mtn] {
    font-size: 0.8125rem;
    color: var(--color-ink-muted);
}

.state[b-cay2fz0mtn] {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
}
/* /Pages/Public/PublicTournament.razor.rz.scp.css */
/* Tela do campeonato. As primitivas compartilhadas (faixa, laje, selo, rótulo miúdo) vêm de
   wwwroot/css/public.css; aqui fica só o que é desta tela: o trilho de seções, a ficha e o
   regulamento. */

/* ---------- trilho de seções ---------- */

/* Grudado no topo porque a consulta real na quadra é "rolar a classificação até o fim e pular para
   os jogos". O fundo opaco é obrigatório: sem ele o conteúdo rolaria por baixo das abas. */
.tabs[b-vqe9r5x0jq] {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    gap: 0.4rem;
    margin-bottom: 1.25rem;
    padding: 0.5rem 0;
    overflow-x: auto;
    background-color: var(--color-background);
    /* A barra de rolagem do trilho é ruído: quem está no celular arrasta, quem está no teclado usa
       Tab, e o corte na borda direita já denuncia que há mais seção. */
    scrollbar-width: none;
}

.tabs[b-vqe9r5x0jq]::-webkit-scrollbar {
    display: none;
}

/* A linha da quadra: sem preenchimento, sem canto redondo. Cada aba é um rótulo com uma aresta de
   fundo transparente; a aba corrente planta a bandeira do juiz de linha — a aresta acende em âmbar
   e o texto vira tinta cheia. Sem sombra: a hierarquia é peso de linha. */
.tab[b-vqe9r5x0jq] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    padding: 0 0.65rem;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    text-decoration: none;
    color: var(--color-ink-muted);
    font-weight: 600;
    font-size: 0.85rem;
    transition: color 160ms ease-out, border-color 160ms ease-out;
}

.tab:hover[b-vqe9r5x0jq] {
    color: var(--color-ink);
}

.tab[aria-current="page"][b-vqe9r5x0jq] {
    color: var(--color-ink);
    border-bottom-color: var(--color-secondary);
}

.tab:focus-visible[b-vqe9r5x0jq] {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-primary);
}

/* ---------- ficha ---------- */

.lede[b-vqe9r5x0jq] {
    max-width: 62ch;
    margin: 0 0 1.5rem;
    font-size: 1.0625rem;
    line-height: 1.6;
    text-wrap: pretty;
}

/* Ficha (rótulo + valor, fio entre linhas) mora em public.css como `.pub-sheet*` — a tela de perfil
   do atleta é a segunda consumidora, mesmo motivo de `.pub-row`/`.pub-list` terem saído daqui. */

.link[b-vqe9r5x0jq] {
    color: var(--color-primary);
    text-underline-offset: 0.2em;
}

/* ---------- texto corrido ---------- */

.prose[b-vqe9r5x0jq] {
    max-width: 62ch;
    margin: 0;
    line-height: 1.65;
    white-space: pre-line;
    text-wrap: pretty;
}

.prose-muted[b-vqe9r5x0jq] {
    color: var(--color-ink-muted);
    font-size: 0.9375rem;
}

/* ---------- regulamento ---------- */

/* Número à margem, na fonte display: a posição da cláusula é o que o atleta cita quando reclama de
   uma decisão em quadra, então ela é conteúdo com endereço próprio, não marcador de lista. */
.rules[b-vqe9r5x0jq] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rule[b-vqe9r5x0jq] {
    display: grid;
    grid-template-columns: 2.25rem 1fr;
    gap: 0 0.5rem;
    padding: 0.9rem 0;
}

.rule + .rule[b-vqe9r5x0jq] {
    border-top: 1px solid var(--color-line);
}

.rule-position[b-vqe9r5x0jq] {
    font-size: 1.125rem;
    line-height: 1.35;
    color: var(--color-primary);
}

.rule-title[b-vqe9r5x0jq] {
    margin: 0 0 0.25rem;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
}

/* /Pages/Registrations/MyRegistrations.razor.rz.scp.css */
/* Minhas inscrições — laje e selo vêm de public.css; aqui só o que é desta lista. */

.reg-head[b-6ei5yykn20] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
}

.rejection-reason[b-6ei5yykn20] {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-error);
}

.reg-payment-link[b-6ei5yykn20] {
    display: inline-flex;
    align-items: center;
    margin-top: 0.5rem;
}
/* /Pages/Registrations/NewRegistration.razor.rz.scp.css */
/* Nova inscrição — assistente de quatro passos. `.pub-list`/`button.pub-row` (public.css) dão a
   laje e o reset de botão para cada passo; aqui só o que é específico do assistente. */

.option-list[b-874wdi7wnq] {
    max-width: 30rem;
}

.option-sub[b-874wdi7wnq] {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8125rem;
    color: var(--color-ink-muted);
}

.option-error[b-874wdi7wnq] {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8125rem;
    color: var(--color-error);
}

/* Selecionado: o mesmo fio de areia de "esta é a escolhida" — três listas neste assistente reusam a
   mesma decisão (campeonato, categoria, dupla). */
.option-selected[b-874wdi7wnq] {
    box-shadow: inset 3px 0 0 var(--color-secondary);
    background-color: var(--color-background);
}

.fee-line[b-874wdi7wnq] {
    max-width: 30rem;
    margin: 0 0 1.5rem;
}

.consent-row[b-874wdi7wnq] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.outcome[b-874wdi7wnq] {
    max-width: 30rem;
}
/* /Pages/Registrations/RegistrationPayment.razor.rz.scp.css */
/* Pagamento da inscrição — a tela do PIX. `.pub-outcome`/`.pub-num`/`.pub-submit` vêm de public.css;
   aqui só o painel do QR code e do código copia-e-cola. */

.back-link-row[b-pqt328i18b] {
    padding-top: 0.75rem;
}

.amount-line[b-pqt328i18b] {
    margin: 0 0 0.35rem;
}

.amount-value[b-pqt328i18b] {
    font-size: 1.125rem;
}

.deadline-line[b-pqt328i18b] {
    margin: 0 0 1.25rem;
    color: var(--color-ink-muted);
}

/* Painel do PIX: a única superfície da conta do atleta com uma imagem de conteúdo (o QR code) — por
   isso é a única que ganha um painel próprio em vez de viver solta na página, para o olho parar
   nela antes de decidir entre escanear ou copiar. Mesma forma de quadra das primitivas: fio de giz
   em volta, aresta pintada no topo, sem sombra. */
.pix-panel[b-pqt328i18b] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    max-width: 22rem;
    margin: 0 0 1.5rem;
    padding: 1.25rem 1rem;
    border: 1px solid var(--color-line);
    border-top: 2px solid var(--color-line-strong);
    border-radius: var(--radius-md);
    background-color: var(--color-surface);
}

.pix-qr[b-pqt328i18b] {
    width: 12rem;
    height: 12rem;
    max-width: 100%;
}

/* O código copia-e-cola é uma cadeia longa que o atleta confere caractere a caractere: monoespaçado
   para o "0" não virar "O". Fora do sistema de fontes de propósito — não é voz de marca, é dado. */
.pix-code[b-pqt328i18b] {
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: 2px solid var(--color-line-strong);
    border-radius: var(--radius-md);
    font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, monospace;
    font-size: 0.75rem;
    resize: none;
}

.pix-copy[b-pqt328i18b] {
    width: 100%;
}

.pix-copy-status[b-pqt328i18b] {
    min-height: 1.25rem;
    margin: 0;
    font-size: 0.875rem;
    color: var(--color-ink-muted);
}

/* Atalho de ambiente de teste (DEV/HML). Fio tracejado de propósito — nunca pode ser confundido com
   uma ação de produção. Só renderizado quando a API devolve CanSimulatePayment. */
.sim-panel[b-pqt328i18b] {
    max-width: 22rem;
    margin: 0 0 1.5rem;
    padding: 0.9rem 1rem;
    border: 2px dashed var(--color-warning);
    border-radius: var(--radius-md);
    background-color: var(--color-surface);
}

.sim-label[b-pqt328i18b] {
    margin: 0 0 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--color-warning);
}

.sim-pay[b-pqt328i18b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding-inline: 1rem;
    border: 2px solid var(--color-warning);
    border-radius: var(--radius-md);
    background-color: transparent;
    color: var(--color-warning);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: transform 90ms ease-out, background-color 120ms ease-out;
}

.sim-pay:hover:not(:disabled)[b-pqt328i18b] {
    background-color: color-mix(in srgb, var(--color-warning) 12%, transparent);
}

.sim-pay:active:not(:disabled)[b-pqt328i18b] {
    transform: translateY(1px);
}

.sim-pay:disabled[b-pqt328i18b] {
    opacity: 0.6;
    cursor: progress;
}

.sim-note[b-pqt328i18b] {
    margin: 0.5rem 0 0;
    color: var(--color-ink-muted);
}

.sim-error[b-pqt328i18b] {
    margin: 0.4rem 0 0;
    color: var(--color-error);
}
/* /Pages/Teams/CreateTeam.razor.rz.scp.css */
/* Nova dupla — busca de parceiro. `.pub-list`/`button.pub-row` (public.css) dão a laje e o reset do
   botão; aqui só o estado de seleção. */

.search-results[b-kumasc7shf] {
    max-width: 26rem;
}

/* Selecionado: o mesmo fio de areia de "esta é a escolhida" (aba corrente, líder da classificação),
   agora na margem esquerda — a linha inteira já é o alvo do clique, então o fio embaixo do nome
   (que `.pub-row-name` usa para hover) entraria em conflito visual com um estado permanente. */
.search-result-selected[b-kumasc7shf] {
    box-shadow: inset 3px 0 0 var(--color-secondary);
    background-color: var(--color-background);
}
/* /Pages/Teams/MyTeams.razor.rz.scp.css */
/* Minhas duplas — só o que `.pub-row`/`.pub-list`/`.pub-submit` de public.css não cobrem: o convite
   recebido, que é linha com duas ações, não link. */

.invitation-row[b-brf5nwju5j] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.invitation-actions[b-brf5nwju5j] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.2rem;
}

.invitation-actions .pub-submit[b-brf5nwju5j],
.invitation-actions .pub-action[b-brf5nwju5j] {
    padding-inline: 1rem;
}
/* /Pages/Teams/TeamDetail.razor.rz.scp.css */
/* Detalhe da dupla — laje de integrantes vem de `.pub-list`; aqui só o que é desta tela. */

.responsible-tag[b-zsk9xugo9m] {
    color: var(--color-ink-muted);
}

.cancel-reason[b-zsk9xugo9m] {
    max-width: 26rem;
    margin: 0 0 1.5rem;
    color: var(--color-ink-muted);
}

.actions[b-zsk9xugo9m] {
    display: flex;
    flex-direction: column;
    max-width: 26rem;
}

.button-row[b-zsk9xugo9m] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}
