/* ============================================================
   gerador-de-qr-code.css
   CSS EXCLUSIVO

   Contém: os campos de texto do Pix e Wi-Fi, a grade de 2
   colunas usada em alguns campos do Pix, o checkbox "rede
   oculta" do Wi-Fi e a pré-visualização do QR (canvas + botão
   de baixar).
   ============================================================ */

/* ----------------------------------------------------------
   CAMPOS DE TEXTO — primeiro uso de input de texto no site,
   usado nos modos Pix e Wi-Fi. .field é um rótulo + input
   empilhados, .field-grid coloca dois .field lado a lado
   ---------------------------------------------------------- */
   .field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 20px;
    margin-bottom: 14px;
}

.field-input {
    font-family: var(--font-body);
    font-size: 14px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--card-bg);
    color: var(--ink);
    width: 100%;
}

.field-input::placeholder {
    color: var(--muted);
    opacity: 0.7;
}

.field-input:focus {
    outline: none;
    border-color: var(--accent);
}

.field-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

@media (max-width: 520px) {
    .field-grid { grid-template-columns: 1fr; }
}

.format-tabs {
    margin-top: 5px;
    margin-bottom: 0;
}

/* ----------------------------------------------------------
   CHECKBOX "Rede oculta" — mesmo padrão visual do toggle do
   Lorem Ipsum, reimplementado aqui porque cada ferramenta tem
   seu próprio CSS exclusivo
   ---------------------------------------------------------- */
.toggle-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    margin-top: 4px;
}

.toggle-row input {
    accent-color: var(--accent);
    width: 15px;
    height: 15px;
}

/* empurra o botão "Gerar QR Code" pra ponta direita da linha de controles */
.btn-primary { margin-left: auto; }

/* com a correção de erro removida da tela, sobrou só o
   control-group de tamanho ao lado do botão — alinha pela base
   (não pelo centro, padrão do .controls compartilhado), senão
   o botão fica flutuando acima das abas por causa do rótulo */
.controls { align-items: flex-end; }

/* ----------------------------------------------------------
   PRÉ-VISUALIZAÇÃO — canvas onde o QR é desenhado. Fundo
   branco fixo independe do tema, já que o QR precisa de
   contraste alto pra ser lido por qualquer leitor
   ---------------------------------------------------------- */
.qr-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    margin-top: 20px;
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--paper-dim);
}

.qr-preview canvas {
    max-width: 100%;
    height: auto;
    display: block;
    background: #FFFFFF;
    border-radius: 6px;
    padding: 12px;
}

.qr-placeholder {
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--muted);
    text-align: center;
}

.qr-actions {
    display: flex;
    justify-content: center;
    margin-top: 14px;
}

/* ----------------------------------------------------------
   BOTÃO DE BAIXAR — aparece desabilitado até o QR ser gerado,
   aí vira um link de download de verdade
   ---------------------------------------------------------- */
.dl-btn {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 600;
    color: var(--accent-ink);
    background: var(--accent-soft);
    border: 1px solid var(--accent-soft-line);
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.dl-btn:hover { filter: brightness(0.97); }

/* estado inicial do botão de baixar, antes de gerar o primeiro QR  */
   .dl-btn.disabled {
    pointer-events: none;
    opacity: 0.4;
}

/* em telas estreitas, o botão Vetorizar desce pra uma linha
   própria, alinhado à esquerda — o ::after cria um quebra-linha
   invisível de largura total entre os sliders e o botão */
   @media (max-width: 520px) {
    .controls .btn-primary {
        margin-top: 20px;
        margin-left: 0;
        order: 2;
    }
}

.control-group:has(#contentTabs) { margin-bottom: 18px; }
#wifiPassword { margin-bottom: 10px;}