/* ═══════════════════════════════════════════════════════════
   Lunna Campos Extras — Frontend CSS v2.0
   APENAS CSS estrutural/layout. Cores, fontes e tamanhos
   vêm do build_dynamic_css() (customizador visual).
═══════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800&family=Poppins:wght@300;400;500;600&display=swap');

/* ── Wrapper ─────────────────────────────────────────────── */
.lunna-ce-wrapper { margin: 18px 0; }
.lunna-ce-section  { margin-bottom: 16px; box-sizing: border-box; }

/* ── Campos ──────────────────────────────────────────────── */
.lunna-ce-field { box-sizing: border-box; }
.lunna-ce-field:last-child { margin-bottom: 0 !important; }

/* ── Labels (estrutura) ──────────────────────────────────── */
.lunna-ce-wrapper .lunna-ce-field > label:not(.lunna-ce-radio-label):not(.lunna-ce-check-label),
.lunna-ce-wrapper .lunna-ce-field label.lunna-ce-field-label {
    display: block !important;
    cursor: pointer !important;
    background: none !important;
    border: none !important;
    box-sizing: border-box !important;
}

/* ── Inputs (estrutura) ──────────────────────────────────── */
.lunna-ce-wrapper .lunna-ce-field input[type=text],
.lunna-ce-wrapper .lunna-ce-field input[type=number],
.lunna-ce-wrapper .lunna-ce-field input[type=email],
.lunna-ce-wrapper .lunna-ce-field input[type=date],
.lunna-ce-wrapper .lunna-ce-field input[type=url],
.lunna-ce-wrapper .lunna-ce-field input[type=color],
.lunna-ce-wrapper .lunna-ce-field select,
.lunna-ce-wrapper .lunna-ce-field textarea {
    width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.lunna-ce-wrapper .lunna-ce-field textarea { resize: vertical !important; }

/* Select: seta customizada (neutra — cor sobrescrita pelo dynamic CSS via inline background-image) */
.lunna-ce-wrapper .lunna-ce-field select {
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    background-size: 12px !important;
    padding-right: 36px !important;
    cursor: pointer !important;
}

/* ── Radio / Checkbox — APENAS estrutura; design vem do CSS dinâmico ─── */
.lunna-ce-wrapper .lunna-ce-radio-label,
.lunna-ce-wrapper .lunna-ce-check-label {
    display:     flex !important;
    align-items: center !important;
    width:       100% !important;
    box-sizing:  border-box !important;
    /* padding, margin, font, border, background → definidos pelo build_dynamic_css() */
}
.lunna-ce-wrapper .lunna-ce-radio-label:last-child,
.lunna-ce-wrapper .lunna-ce-check-label:last-child { margin-bottom: 0 !important; }

/* Input: reset total de estilos do tema */
.lunna-ce-wrapper .lunna-ce-radio-label input[type=radio],
.lunna-ce-wrapper .lunna-ce-check-label input[type=checkbox] {
    flex-shrink:    0 !important;
    display:        inline-block !important;
    float:          none !important;
    position:       static !important;
    -webkit-appearance: auto !important;
    appearance:     auto !important;
    box-shadow:     none !important;
    outline:        none !important;
}

/* ── Total bar / Calculadora — estrutura (cores vêm do CSS dinâmico) ───── */
.lunna-ce-total-bar {
    display:      block !important;
    width:        100% !important;
    box-sizing:   border-box !important;
    margin-top:   14px !important;
    clear:        both !important;
    float:        none !important;
}
.lunna-ce-total-bar * { box-sizing: border-box !important; }

.lunna-ce-total-bar-title {
    display:        block !important;
    width:          100% !important;
    margin-bottom:  8px !important;
    text-transform: uppercase !important;
    letter-spacing: .5px !important;
    text-align:     left !important;
    float:          none !important;
}

#lunna-ce-total-rows {
    display:    block !important;
    width:      100% !important;
    float:      none !important;
}

.lunna-ce-total-row {
    display:         flex !important;
    flex-direction:  row !important;
    justify-content: space-between !important;
    align-items:     center !important;
    width:           100% !important;
    margin:          0 0 4px 0 !important;
    padding:         0 !important;
    float:           none !important;
}
.lunna-ce-total-row > span {
    display:    inline-block !important;
    flex:       0 1 auto !important;
    text-align: left !important;
}
.lunna-ce-total-row > span:last-child {
    text-align: right !important;
    white-space: nowrap !important;
}

.lunna-ce-total-final {
    display:         flex !important;
    flex-direction:  row !important;
    justify-content: space-between !important;
    align-items:     center !important;
    width:           100% !important;
    margin:          6px 0 0 0 !important;
    padding-top:     10px !important;
    font-weight:     800 !important;
    float:           none !important;
}
.lunna-ce-total-final > span,
.lunna-ce-total-final > strong {
    display:    inline-block !important;
    flex:       0 1 auto !important;
}
.lunna-ce-total-final > span     { text-align: left !important; }
.lunna-ce-total-final > strong   { text-align: right !important; white-space: nowrap !important; }
