@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

/* ====================================================
   SISTEMA DE CONTROL FINANCIERO - TEMA RBL
   Primary: #000000  |  Secondary: #731fb8  |  Accent: #ffed00
   ==================================================== */

/* Variables del tema */
:root {
    --rbl-primary:   #000000;
    --rbl-secondary: #731fb8;
    --rbl-accent:    #ffed00;
}

/* Sticky footer */
html, body {
    height: 100%;
}
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}
body > .container-fluid,
body > main {
    flex: 1 0 auto;
}

/* Bootstrap overrides */
.bg-primary { background-color: #000000 !important; }
.bg-warning  { background-color: #ffed00 !important; }
.bg-info     { background-color: #731fb8 !important; color: #fff !important; }
.text-primary { color: #000000 !important; }

.btn-primary {
    background-color: #000000;
    border-color: #000000;
    color: #ffed00;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: #731fb8;
    border-color: #731fb8;
    color: #ffed00;
}

/* Misc */
.badge { font-size: 0.85em; }
.gap-3 { gap: 1rem !important; }

.modal-header.bg-primary { border-bottom: none; }
.modal-header.bg-warning  { border-bottom: none; }

/* Cards de resumen */
.card-header h6 { color: #ffed00; font-weight: 600; }

/* Alertas de estado */
.alert-info {
    background-color: #f3e8fd;
    border-color: #c08ee8;
    color: #4a1275;
}

.alert-secondary {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #6c757d;
}

/* Lista de días sin cerrar */
.border-bottom { border-bottom: 1px solid #dee2e6 !important; }

body { font-family: 'Raleway', sans-serif; }

*:not(.fa):not(.fas):not(.far):not(.fal):not(.fab):not(.fa-solid):not(.fa-regular):not(.fa-brands),
button, input, select, textarea {
    font-family: 'Raleway', sans-serif !important;
}

/* Balance Card */
.balance-card {
    background: linear-gradient(135deg, #000000 0%, #731fb8 100%) !important;
    color: white;
    border-radius: 15px;
    box-shadow: 0 4px 20px rgba(115, 31, 184, 0.35);
}

.balance-item {
    padding: 15px;
    border-radius: 10px;
    margin: 5px;
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
}

.balance-item i { font-size: 1.5rem; margin-bottom: 5px; }

.balance-item.ingreso  { border-left: 4px solid #28a745; }
.balance-item.egreso   { border-left: 4px solid #dc3545; }

.balance-item.balance.positivo { border-left: 4px solid #ffed00; }
.balance-item.balance.negativo { border-left: 4px solid #dc3545; }

/* Saldo Actual destacado */
.saldo-actual {
    background: rgba(255,255,255,0.15);
    border-radius: 10px;
    padding: 15px;
    border: 2px solid #ffed00;
}

.saldo-anterior {
    background: rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 10px;
}

/* Botones de Acción */
.btn-accion {
    height: 100px;
    border-radius: 15px;
    font-weight: bold;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.btn-accion:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.2);
}

.btn-accion i { font-size: 2rem; margin-bottom: 8px; }

.btn-success {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    border: none;
}

.btn-danger {
    background: linear-gradient(135deg, #dc3545 0%, #fd7e14 100%);
    border: none;
}

/* Cards */
.card {
    border-radius: 15px;
    border: none;
    box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

.card:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.15); }

.card-header {
    background-color: #1a1a1a;
    color: #ffed00 !important;
    border-bottom: none;
    border-radius: 15px 15px 0 0 !important;
    font-weight: 600;
}

/* Modal */
.modal-content {
    border-radius: 15px;
    border: none;
    box-shadow: 0 10px 30px rgba(0,0,0,0.25);
}

.modal-header {
    background: linear-gradient(135deg, #000000 0%, #731fb8 100%);
    color: #fff !important;
    border-radius: 15px 15px 0 0;
    border-bottom: none;
}

.form-control, .form-select {
    border-radius: 10px;
    border: 2px solid #e9ecef;
    padding: 12px 15px;
    transition: all 0.3s ease;
}

.form-control:focus, .form-select:focus {
    border-color: #731fb8;
    box-shadow: 0 0 0 0.2rem rgba(115, 31, 184, 0.25);
}

.form-control-lg {
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
}

/* Botones de Navegación */
.btn-outline-primary {
    border-color: #000000;
    color: #000000;
    border-radius: 10px;
    padding: 10px 15px;
    font-weight: 500;
}

.btn-outline-primary:hover,
.btn-outline-primary:active {
    background-color: #000000;
    border-color: #000000;
    color: #ffed00;
}

.btn-outline-warning {
    border-color: #731fb8;
    color: #731fb8;
    border-radius: 10px;
    padding: 10px 15px;
    font-weight: 500;
}

.btn-outline-warning:hover,
.btn-outline-warning:active {
    background-color: #731fb8;
    border-color: #731fb8;
    color: #ffed00;
}

.btn-outline-secondary {
    border-radius: 10px;
    padding: 10px 15px;
    font-weight: 500;
}

.btn-outline-dark {
    border-color: #000000;
    color: #000000;
    border-radius: 10px;
    font-weight: 500;
}

.btn-outline-dark:hover,
.btn-outline-dark:active {
    background-color: #000000;
    border-color: #000000;
    color: #ffed00;
}

/* Badges */
.badge.bg-success { background-color: #28a745 !important; }
.badge.bg-danger  { background-color: #dc3545 !important; }
.badge.bg-info    { background-color: #731fb8 !important; }

/* Responsive */
@media (max-width: 768px) {
    .container-fluid { padding: 15px; }
    .balance-item h4 { font-size: 1.2rem; }
    .balance-item h6 { font-size: 0.9rem; }
    .btn-accion { height: 80px; }
    .btn-accion i { font-size: 1.5rem; }
    .list-group-item { padding: 12px 15px; }
}

@media (max-width: 576px) {
    .balance-item { padding: 10px; margin: 2px; }
    .balance-item h4 { font-size: 1rem; }
    .balance-item h6 { font-size: 0.8rem; }
    .btn-accion span { font-size: 0.9rem; }
}

/* Utilidades */
.text-success { color: #28a745 !important; }
.text-danger  { color: #dc3545 !important; }
.fw-bold { font-weight: 600 !important; }

/* Animaciones */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.card, .btn-accion { animation: fadeInUp 0.5s ease-out; }

/* Efectos hover para móvil */
@media (hover: none) {
    .btn-accion:hover { transform: none; }
    .card:hover { box-shadow: 0 2px 10px rgba(0,0,0,0.08); }
}
