/* Dashboard 360 - Finanzas manual v1.5.0 */

.finance-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: -6px 0 20px;
    padding: 12px;
    border: 1px solid rgba(3,46,124,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 10px 24px rgba(3,46,124,.06);
}

.finance-subnav a {
    text-decoration: none;
    padding: 9px 13px;
    border-radius: 999px;
    color: #032E7C;
    border: 1px solid rgba(3,46,124,.13);
    background: #fff;
    font-family: var(--font-title, "IBM Plex Sans", sans-serif);
    font-size: 12px;
    font-weight: 800;
}

.finance-subnav a:hover,
.finance-subnav a.active {
    color: #fff;
    background: #032E7C;
    border-color: #032E7C;
}

.finance-company-filter {
    margin-bottom: 18px;
}

.finance-setup-panel,
.finance-hero-panel,
.finance-intro-panel,
.finance-range-panel,
.finance-form-panel,
.finance-pending-panel {
    margin-bottom: 18px;
}

.finance-hero-grid,
.finance-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 22px;
}

.finance-hero-grid h2,
.finance-panel-head h2 {
    margin-bottom: 7px;
}

.finance-hero-grid > div:first-child,
.finance-panel-head > div:first-child {
    min-width: 0;
}

.finance-hero-actions {
    min-width: 245px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 9px;
}

.finance-primary-action,
.finance-secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 999px;
    text-decoration: none;
    font-family: var(--font-title, "IBM Plex Sans", sans-serif);
    font-weight: 800;
    font-size: 13px;
}

.finance-primary-action {
    background: linear-gradient(135deg, #032E7C, #021B4A);
    color: #fff;
    box-shadow: 0 10px 18px rgba(3,46,124,.18);
}

.finance-secondary-action {
    background: #fff;
    color: #CD1433;
    border: 1px solid rgba(205,20,51,.2);
}

.finance-range-form,
.finance-filter-grid,
.finance-form-grid {
    display: grid;
    gap: 13px;
    align-items: end;
}

.finance-range-form {
    grid-template-columns: minmax(180px, 240px) minmax(180px, 240px) auto;
}

.finance-filter-grid {
    grid-template-columns: repeat(4, minmax(150px, 1fr)) minmax(220px, 1.4fr) auto;
    margin-bottom: 16px;
    padding: 15px;
    border-radius: 16px;
    background: rgba(234,241,251,.55);
    border: 1px solid rgba(3,46,124,.10);
}

.finance-filter-grid label,
.finance-range-form label,
.finance-date-inline label {
    margin-bottom: 0;
}

.finance-entry-form textarea,
.finance-entry-form input,
.finance-entry-form select,
.finance-filter-grid input,
.finance-filter-grid select,
.finance-range-form input,
.finance-confirm-form input,
.finance-confirm-form select,
.finance-inline-status input,
.finance-inline-status select,
.finance-date-inline input {
    width: 100%;
    margin-top: 7px;
    padding: 11px 12px;
    border-radius: 12px;
    border: 1px solid rgba(3,46,124,.18);
    background: #fff;
    color: #46494F;
    font: inherit;
    outline: none;
}

.finance-entry-form textarea:focus,
.finance-entry-form input:focus,
.finance-entry-form select:focus,
.finance-filter-grid input:focus,
.finance-filter-grid select:focus,
.finance-range-form input:focus,
.finance-confirm-form input:focus,
.finance-confirm-form select:focus,
.finance-inline-status input:focus,
.finance-inline-status select:focus {
    border-color: #032E7C;
    box-shadow: 0 0 0 4px rgba(3,46,124,.09);
}

.finance-entry-form label small {
    display: block;
    margin-top: 6px;
    color: #6F747C;
    font-size: 11px;
    font-weight: 500;
}

.finance-form-grid {
    margin-bottom: 2px;
}

.finance-form-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.finance-form-grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.finance-form-actions {
    display: flex;
    justify-content: flex-start;
    margin-top: 5px;
}

.finance-check-label {
    min-height: 44px;
    display: flex !important;
    align-items: center;
    gap: 9px;
    padding: 11px 12px;
    margin-top: 22px;
    border: 1px solid rgba(3,46,124,.12);
    border-radius: 12px;
    background: rgba(234,241,251,.55);
}

.finance-check-label input {
    width: auto;
    margin: 0;
}

.finance-date-inline {
    min-width: 210px;
}

.finance-kpi-grid {
    display: grid;
    gap: 14px;
    margin: 18px 0;
}

.finance-kpi-grid-main {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.finance-kpi-grid-compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-kpi-card {
    position: relative;
    min-height: 135px;
    padding: 18px 18px 16px 22px;
    border-radius: 18px;
    border: 1px solid rgba(3,46,124,.13);
    background: linear-gradient(180deg, #EDF4FF, #DDE9FC);
    box-shadow: 0 11px 24px rgba(3,46,124,.07);
    overflow: hidden;
}

.finance-kpi-card:nth-child(2) { background: linear-gradient(180deg, #EAF7F2, #D9F0E6); }
.finance-kpi-card:nth-child(3) { background: linear-gradient(180deg, #FBECEF, #F5D9DE); }
.finance-kpi-card:nth-child(4) { background: linear-gradient(180deg, #F8F0E4, #EFE2C7); }
.finance-kpi-card:nth-child(5) { background: linear-gradient(180deg, #EDF4FF, #DDE9FC); }

.finance-kpi-card:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 6px;
    background: #032E7C;
}

.finance-kpi-card.success:before { background: #14956F; }
.finance-kpi-card.danger:before { background: #CD1433; }

.finance-kpi-card span {
    display: block;
    margin-bottom: 10px;
    color: #032E7C;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.finance-kpi-card strong {
    display: block;
    max-width: 100%;
    color: #0B1F4D;
    font-family: var(--font-title, "IBM Plex Sans", sans-serif);
    font-size: clamp(20px, 1.65vw, 26px);
    line-height: 1.05;
    letter-spacing: -.05em;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
    font-variant-numeric: tabular-nums;
}

.finance-kpi-card.success strong { color: #0F785A; }
.finance-kpi-card.danger strong { color: #B4112D; }

.finance-kpi-card small {
    display: block;
    margin-top: 8px;
    color: rgba(70,73,79,.78);
    font-size: 12px;
    line-height: 1.3;
}

.finance-chart-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 18px;
}

.finance-chart-grid > .finance-chart-wide {
    grid-column: span 1;
}

.finance-chart-panel canvas {
    width: 100% !important;
    margin-top: 12px;
}

.finance-alert-panel {
    min-height: 100%;
}

.finance-alert-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
}

.finance-alert-item {
    border-radius: 14px;
    padding: 12px 14px;
    background: rgba(3,46,124,.055);
    border: 1px solid rgba(3,46,124,.12);
    color: #032E7C;
    font-size: 12.5px;
    line-height: 1.35;
    font-weight: 700;
}

.finance-alert-item:first-child {
    background: rgba(205,20,51,.065);
    border-color: rgba(205,20,51,.14);
    color: #8F1730;
}

.finance-empty,
.finance-table-empty {
    color: #6F747C;
    font-weight: 650;
    text-align: center;
}

.finance-empty {
    padding: 19px;
    margin-top: 12px;
    border-radius: 15px;
    background: rgba(3,46,124,.055);
    border: 1px dashed rgba(3,46,124,.15);
}

.finance-table td,
.finance-table th {
    vertical-align: top;
}

.finance-table td small {
    display: block;
    margin-top: 5px;
    color: #7A7F87;
    font-size: 11px;
    line-height: 1.25;
}

.finance-number {
    white-space: nowrap;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.finance-type,
.finance-status,
.finance-overdue-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 6px 9px;
    font-size: 10.5px;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
    white-space: nowrap;
}

.finance-type.ingreso,
.finance-status.success,
.finance-status.cobrado,
.finance-status.cobrada {
    color: #0F785A;
    background: rgba(20,149,111,.11);
    border: 1px solid rgba(20,149,111,.16);
}

.finance-type.egreso,
.finance-status.danger,
.finance-status.pagado {
    color: #B4112D;
    background: rgba(205,20,51,.09);
    border: 1px solid rgba(205,20,51,.14);
}

.finance-status.projected,
.finance-status.proyectado,
.finance-status.vigente {
    color: #032E7C;
    background: rgba(3,46,124,.08);
    border: 1px solid rgba(3,46,124,.14);
}

.finance-status.cancelado,
.finance-status.cancelada {
    color: #626871;
    background: #EEF2F7;
    border: 1px solid rgba(70,73,79,.13);
}

.finance-overdue-label {
    display: flex;
    width: max-content;
    margin-top: 5px;
    padding: 4px 7px;
    color: #B4112D;
    background: #FBE8EC;
}

.finance-row-overdue {
    background: rgba(205,20,51,.025);
}

.finance-confirm-form,
.finance-inline-status {
    display: grid;
    grid-template-columns: minmax(125px, 145px) minmax(130px, 170px) auto;
    gap: 6px;
    align-items: end;
    min-width: 390px;
}

.finance-confirm-form input,
.finance-confirm-form select,
.finance-inline-status input,
.finance-inline-status select {
    margin-top: 0;
    padding: 8px 9px;
    font-size: 11px;
}

.finance-mini-button,
.finance-link-button {
    min-height: 34px;
    padding: 8px 10px;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: none;
    font-size: 10.5px;
}

.finance-mini-button.success { background: #14956F; }
.finance-mini-button.danger { background: #CD1433; }
.finance-link-button { background: transparent; color: #CD1433; border: 1px solid rgba(205,20,51,.18); }

.finance-row-actions {
    display: flex;
    flex-direction: column;
    gap: 7px;
    align-items: flex-start;
}

.finance-account-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.finance-account-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    min-height: 168px;
    padding: 17px;
    border: 1px solid rgba(3,46,124,.13);
    border-radius: 18px;
    background: linear-gradient(180deg, #FFFFFF, #EAF1FB);
    box-shadow: 0 10px 22px rgba(3,46,124,.06);
}

.finance-account-card.inactive { opacity: .58; }
.finance-account-card > span { color:#032E7C; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.finance-account-card > strong { color:#0B1F4D; font-size:18px; }
.finance-account-card > small { color:#6F747C; font-size:11px; line-height:1.3; }
.finance-account-card .btn-soft { margin-top:auto; }

.finance-account-balance {
    color: #14956F;
    font-family: var(--font-title, "IBM Plex Sans", sans-serif);
    font-size: clamp(21px, 1.7vw, 29px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.04em;
}
.finance-account-balance.negative { color:#CD1433; }

.finance-column-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}

.finance-column-list span {
    padding: 7px 10px;
    border-radius: 999px;
    color: #032E7C;
    background: #EAF1FB;
    border: 1px solid rgba(3,46,124,.12);
    font-size: 11px;
    font-weight: 800;
}

.finance-column-list.optional span {
    color: #6C571A;
    background: #F7EBD4;
    border-color: rgba(176,138,46,.18);
}

.finance-import-panel {
    max-width: none;
}

.finance-setup-panel code {
    display: inline-block;
    padding: 4px 7px;
    border-radius: 6px;
    background: #EEF2F7;
    color: #032E7C;
}

@media (max-width: 1320px) {
    .finance-kpi-grid-main { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .finance-account-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .finance-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .finance-hero-grid,
    .finance-panel-head { flex-direction: column; }
    .finance-hero-actions,
    .finance-date-inline { width:100%; min-width:0; }
    .finance-chart-grid { grid-template-columns: 1fr; }
    .finance-form-grid.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finance-account-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .finance-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .finance-subnav { flex-direction:column; }
    .finance-subnav a { text-align:center; }
    .finance-kpi-grid-main,
    .finance-kpi-grid-compact,
    .finance-account-grid,
    .finance-form-grid.cols-2,
    .finance-form-grid.cols-4,
    .finance-filter-grid,
    .finance-range-form { grid-template-columns: 1fr; }
    .finance-confirm-form,
    .finance-inline-status { grid-template-columns: 1fr; min-width:220px; }
    .finance-kpi-card strong { font-size:25px; }
}

.finance-range-form { grid-template-columns: minmax(130px, 180px) minmax(180px, 240px) minmax(180px, 240px) auto; }
.finance-currency-form { grid-template-columns: minmax(150px, 220px); }

/* v1.7.0 · Clientes, cobranzas y riesgo BCRA */
.finance-client-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 18px;
}

.finance-client-kpis .kpi {
    min-width: 0;
}

.finance-client-kpis .kpi strong {
    font-size: clamp(22px, 2vw, 31px);
    overflow-wrap: anywhere;
}

.finance-client-table small,
.finance-table small {
    display: block;
    margin-top: 5px;
    color: #737983;
    font-size: 11px;
    line-height: 1.35;
}

.finance-client-actions {
    min-width: 145px;
}

.finance-client-actions form {
    margin: 0;
}

.finance-receivable-filters {
    grid-template-columns: minmax(220px, 1fr) minmax(170px, .6fr) auto;
    align-items: end;
}

.finance-status.danger {
    color: #fff;
    background: #D9153C;
    border-color: #D9153C;
}

.finance-status.proyectado {
    color: #032E7C;
    background: #EAF1FF;
    border-color: rgba(3,46,124,.18);
}

.finance-table .negative {
    color: #C8102E;
}

@media (max-width: 1050px) {
    .finance-client-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .finance-client-kpis,
    .finance-receivable-filters {
        grid-template-columns: 1fr;
    }
}


/* v1.7.1 - Ajuste de importes extensos en KPI */
@media (max-width: 1180px) {
    .finance-kpi-grid-main {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .finance-kpi-grid-main {
        grid-template-columns: 1fr;
    }

    .finance-kpi-card strong {
        font-size: clamp(22px, 7vw, 30px);
    }
}

/* v1.7.2 - Tipografía KPI más compacta para importes extensos */
.finance-kpi-grid-main .finance-kpi-card strong {
    font-size: clamp(17px, 1.35vw, 22px);
    line-height: 1.08;
    letter-spacing: -.055em;
}

@media (max-width: 1320px) {
    .finance-kpi-grid-main .finance-kpi-card strong {
        font-size: clamp(20px, 2vw, 26px);
    }
}

@media (max-width: 760px) {
    .finance-kpi-grid-main .finance-kpi-card strong {
        font-size: clamp(21px, 7vw, 28px);
    }
}
