     :root {
       --primary: #3498db;
       --secondary: #2ecc71;
       --danger: #e74c3c;
       --dark: #2c3e50;
       --bg: #f4f7f6;
       --slate: #f8fafc;
       --border: #e2e8f0;
     }

     body {
       font-family: 'Segoe UI', system-ui, sans-serif;
       background: var(--bg);
       margin: 0;
       padding: 20px;
       color: #333;
     }

     .container {
       max-width: 1200px;
       margin: auto;
     }


     .nav-active {
       background: var(--primary) !important;
       color: white !important;
     }

     /* Dashboard Header */
     .dashboard-header {
       background: var(--dark);
       color: white;
       padding: 30px;
       border-radius: 12px;
       margin-bottom: 25px;
       display: grid;
       grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
       gap: 20px;
       text-align: center;
     }

     .header-item small {
       color: #bdc3c7;
       text-transform: uppercase;
       letter-spacing: 1px;
       font-size: 0.75em;
       display: block;
       margin-bottom: 5px;
     }

     .header-item h1,
     .header-item h2 {
       margin: 0;
     }

     /* Secciones */
     .section-header {
       margin: 30px 0 15px 0;
       font-weight: bold;
       color: var(--dark);
       border-bottom: 2px solid #ddd;
       padding-bottom: 8px;
       text-transform: uppercase;
       font-size: 0.9em;
       letter-spacing: 0.5px;
     }

     /* Grid de Cuentas */
     .balance-grid {
       display: grid;
       grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
       gap: 20px;
       margin-bottom: 30px;
     }

     .card {
       background: white;
       padding: 20px;
       border-radius: 8px;
       box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
       border-left: 5px solid transparent;
     }

     .card-asset {
       border-left-color: var(--primary);
     }

     .card-liab {
       border-left-color: var(--danger);
       border-left-style: dashed;
     }

     .card h4 {
       margin: 0 0 10px 0;
       font-size: 0.95em;
       display: flex;
       justify-content: space-between;
       align-items: center;
     }

     .card .balance {
       font-size: 1.5em;
       font-weight: bold;
       margin: 10px 0;
     }

     .card .sub {
       color: #95a5a6;
       font-size: 0.85em;
     }

     /* Tablas */
     .table-container {
       background: white;
       padding: 20px;
       border-radius: 8px;
       box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
       overflow-x: auto;
     }

     table {
       width: 100%;
       border-collapse: collapse;
     }

     th,
     td {
       padding: 14px;
       text-align: left;
       border-bottom: 1px solid #eee;
     }

     th {
       color: #7f8c8d;
       text-transform: uppercase;
       font-size: 0.75em;
       letter-spacing: 1px;
       background: #fafafa;
     }

     /* Formulario Desplegable de Cierre */
     .close-row {
       display: none;
       background-color: #f8fafc;
     }

     .close-form-container {
       padding: 20px;
       border: 1px solid var(--border);
       border-top: none;
       border-radius: 0 0 8px 8px;
     }

     .close-form-inner {
       display: grid;
       grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
       gap: 20px;
       align-items: end;
     }

     .form-group {
       display: flex;
       flex-direction: column;
       gap: 6px;
     }

     .form-group label {
       font-size: 0.75em;
       color: #64748b;
       font-weight: bold;
       text-transform: uppercase;
     }

     .form-group input {
       padding: 10px;
       border: 1px solid #cbd5e1;
       border-radius: 6px;
       font-size: 0.95em;
     }

     /* Botones y Badges */
     .btn-action {
       background: var(--dark);
       color: white;
       border: none;
       padding: 8px 16px;
       border-radius: 4px;
       cursor: pointer;
       font-size: 0.85em;
       font-weight: 600;
     }

     .btn-confirm {
       background: var(--secondary);
       color: white;
       border: none;
       padding: 12px;
       border-radius: 6px;
       cursor: pointer;
       font-weight: bold;
       font-size: 1em;
       transition: 0.2s;
     }

     .btn-confirm:hover {
       background: #27ae60;
       transform: translateY(-1px);
     }

     .positive {
       color: var(--secondary) !important;
     }

     .negative {
       color: var(--danger) !important;
     }

     .badge {
       padding: 3px 8px;
       border-radius: 4px;
       font-size: 0.7em;
       background: #f1f5f9;
       color: #475569;
       font-weight: bold;
     }

     footer {
       text-align: center;
       padding: 40px;
       color: #94a3b8;
       font-size: 0.85em;
     }

     .section-header {
       display: flex;
       justify-content: space-between;
       align-items: center;
     }

     .btn-toggle-view {
       background: #e2e8f0;
       border: none;
       padding: 4px 10px;
       border-radius: 4px;
       cursor: pointer;
       font-size: 0.75em;
       color: #475569;
       text-transform: none;
       /* Para que no salga en mayúsculas como el título */
     }

     .btn-toggle-view:hover {
       background: #cbd5e1;
     }

     /* --- ESTILOS PARA GASTOS Y GRÁFICO --- */
     .analysis-container {
       display: grid;
       grid-template-columns: 1fr 1fr;
       gap: 25px;
       margin-top: 25px;
     }

     .expense-card {
       background: white;
       padding: 20px;
       border-radius: 12px;
       box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
     }

     .expense-item {
       display: flex;
       justify-content: space-between;
       margin-bottom: 12px;
       padding-bottom: 8px;
       border-bottom: 1px solid #f1f5f9;
     }

     .expense-item span:first-child {
       color: #64748b;
       font-size: 0.9em;
     }

     .expense-item span:last-child {
       font-weight: bold;
     }

     /* Para el contenedor del canvas */
     .expense-card canvas {
       max-width: 100%;
       height: auto;
       /* Asegura que el canvas sea responsive */
     }

     /* Mejora de legibilidad en la tabla de activos */
     #open-body td {
       font-size: 0.95em;
       /* Un poco más grande que el estándar */
       padding: 12px 8px;
       /* Más espacio vertical */
     }

     .market-price-input {
       font-size: 1em !important;
       /* Que el número que escribes se vea bien */
       text-align: center;
     }

     /* Forzamos un tamaño de letra más cómodo en la tabla */
     #open-body tr td {
       font-size: 1.05rem !important;
       /* Letra un 5% más grande que el estándar */
       padding: 15px 10px !important;
       /* Más espacio para que respire la fila */
     }

     /* El input donde escribes el precio también más grande */
     .market-price-input {
       font-size: 1.1rem !important;
       padding: 8px !important;
       width: 100px !important;
       font-weight: bold;
       color: var(--dark);
       border: 2px solid #cbd5e1 !important;
       /* Borde más visible */
     }

     /* Los encabezados de la tabla también un poco más grandes */
     table thead th {
       font-size: 0.85rem !important;
       padding: 15px 10px !important;
     }

     @media print {
       .btn-toggle-view, .btn-action, .nav-header, footer, .dashboard-header {
         display: none !important;
       }
       body { background: white; padding: 0; }
       .container { max-width: 100%; }
       .table-container { box-shadow: none; border: 1px solid #eee; }
       .section-header { border-bottom: 2px solid #333; }
     }