/* DMB FinCore - formulários compartilhados. */
.panel-card, .form-card, .form-section, .finance-form-card,
.finance-lot-card, .account-card { padding: 1.25rem; }

.form-card-header, .form-section-header, .section-title,
.finance-section-header, .finance-lot-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1rem;
}
.form-card-header h2, .form-section-title, .section-title h2,
.finance-section-header h2, .finance-lot-header h2 {
    margin: 0; color: var(--fincore-navy); font-size: 1.3rem;
    font-weight: 900; letter-spacing: -.02em;
}
.form-card-header p, .form-section-description, .section-title p,
.finance-section-header p, .finance-lot-header p {
    max-width: 760px; margin: .32rem 0 0; color: var(--fincore-muted);
    font-size: .9rem; line-height: 1.45;
}

.form-grid, .form-grid-two, .finance-form-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1rem;
}
.form-grid-three {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem 1rem;
}
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-field-full, .form-field.full, .form-group.full, .full-width { grid-column: 1 / -1; }

label, .form-label { color: #253551; font-size: .82rem; font-weight: 750; }
.form-required, .required-mark, .required { color: var(--fincore-red); }

input, select, textarea, .form-control, .form-input, .form-select, .form-textarea {
    width: 100%; min-height: 46px; padding: .68rem .82rem;
    border: 1px solid #cbd5e1; border-radius: 10px; outline: none;
    color: var(--fincore-text); background: #fff; font-size: .9rem;
    transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
}
textarea, .form-textarea { min-height: 88px; resize: vertical; }
input::placeholder, textarea::placeholder { color: #94a3b8; }
input:focus, select:focus, textarea:focus, .form-control:focus,
.form-input:focus, .form-select:focus, .form-textarea:focus {
    border-color: var(--fincore-blue); box-shadow: 0 0 0 3px rgba(29, 78, 216, .11);
}
input:disabled, select:disabled, textarea:disabled { color: #64748b; background: #f1f5f9; }
.form-help { margin-top: .22rem; color: var(--fincore-muted); font-size: .76rem; }
.validation-message, .form-validation, .text-danger {
    display: block; margin-top: .25rem; color: var(--fincore-red);
    font-size: .76rem; font-weight: 700;
}
.validation-errors {
    margin: 0 0 1rem; padding: .8rem 1rem .8rem 2rem;
    border: 1px solid #fecaca; border-radius: 10px;
    color: #991b1b; background: #fef2f2;
}
.invalid { border-color: var(--fincore-red) !important; }

.form-actions, .finance-form-actions, .finance-lot-footer {
    display: flex; align-items: center; justify-content: flex-end;
    gap: .65rem; margin-top: 1rem;
}
.form-button-primary, .form-button-secondary, .form-button-danger,
.btn, .btn-primary, .btn-secondary {
    min-height: 42px; display: inline-flex; align-items: center; justify-content: center;
    gap: .45rem; padding: .62rem .95rem; border: 1px solid transparent;
    border-radius: 10px; color: #fff; background: var(--fincore-blue);
    font-size: .86rem; font-weight: 800; line-height: 1; text-decoration: none;
    white-space: nowrap; cursor: pointer; transition: 150ms ease;
}
.form-button-primary:hover, .btn-primary:hover { background: var(--fincore-blue-hover); }
.form-button-secondary, .btn-secondary {
    border-color: #bfdbfe; color: var(--fincore-blue); background: #eff6ff;
}
.form-button-secondary:hover, .btn-secondary:hover {
    border-color: #93c5fd; color: var(--fincore-blue-hover); background: #dbeafe;
}
.form-button-danger { border-color: #fecaca; color: #b91c1c; background: #fef2f2; }
.form-button-primary:disabled, .form-button-secondary:disabled,
.form-button-danger:disabled, .btn:disabled, .btn-primary:disabled, .btn-secondary:disabled {
    cursor: not-allowed; opacity: .58;
}

.accounts-total-preview {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: .8rem; margin: 1rem 0;
}
.accounts-total-preview div {
    padding: .9rem; border: 1px solid var(--fincore-border);
    border-radius: 12px; background: var(--fincore-surface-soft);
}
.accounts-total-preview span { display: block; color: var(--fincore-muted); font-size: .78rem; }
.accounts-total-preview strong {
    display: block; margin-top: .25rem; color: var(--fincore-navy); font-size: 1.12rem;
}

@media (max-width: 800px) {
    .form-grid, .form-grid-two, .form-grid-three, .form-grid.two-columns,
    .finance-form-grid, .accounts-total-preview { grid-template-columns: 1fr; }
    .form-card-header, .form-section-header, .section-title,
    .finance-section-header, .finance-lot-header { flex-direction: column; }
    .form-actions, .finance-form-actions, .finance-lot-footer {
        align-items: stretch; flex-direction: column-reverse;
    }
    .form-actions > *, .finance-form-actions > *, .finance-lot-footer > * { width: 100%; }
}
