* { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: Arial, sans-serif; background-color: #f5f5f5; color: #333; height: 100vh; } .app-layout { display: flex; height: 100vh; } .sidebar { width: 260px; background-color: #2c3e50; color: white; display: flex; flex-direction: column; padding: 1.5rem 1rem; box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); } .logo h2 { font-size: 1.25rem; margin-bottom: 2rem; text-align: center; color: #ecf0f1; } .menu { display: flex; flex-direction: column; gap: 0.5rem; } .sidebar-footer { margin-top: auto; padding-top: 1rem; border-top: 1px solid #34495e; } .menu-btn { display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 0.85rem 1rem; font-size: 1rem; color: #bdc3c7; background: transparent; border: none; border-radius: 6px; cursor: pointer; text-align: left; transition: background-color 0.2s, color 0.2s; } .menu-btn:hover { background-color: #34495e; color: #ffffff; } .menu-btn.active { background-color: #1abc9c; color: #ffffff; font-weight: bold; } .menu-btn .icon { font-size: 1.25rem; } .main-content { flex: 1; display: flex; flex-direction: column; overflow: hidden; } .top-bar { background-color: #ffffff; padding: 1.5rem 2rem; border-bottom: 1px solid #e0e0e0; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05); } .top-bar h1 { color: #2c3e50; font-size: 1.5rem; } .section { display: none; flex: 1; padding: 2rem; overflow-y: auto; } .section.active { display: block; } .section p { color: #666; font-size: 1.1rem; } .section-actions { display: flex; justify-content: flex-end; margin-bottom: 1.5rem; } .btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.65rem 1.25rem; font-size: 0.95rem; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.2s; } .btn-primary { background-color: #1abc9c; color: white; } .btn-primary:hover { background-color: #16a085; } .btn-secondary { background-color: #95a5a6; color: white; } .btn-secondary:hover { background-color: #7f8c8d; } .btn-icon { background: transparent; border: none; cursor: pointer; font-size: 1.1rem; padding: 0.25rem 0.5rem; border-radius: 4px; transition: background-color 0.2s; } .btn-icon:hover { background-color: #ecf0f1; } .table-container { background: white; border-radius: 8px; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08); overflow-x: auto; } .data-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; } .data-table th, .data-table td { padding: 1rem; text-align: left; border-bottom: 1px solid #ecf0f1; } .data-table th { background-color: #f8f9fa; color: #2c3e50; font-weight: 600; } .data-table tbody tr:hover { background-color: #f8f9fa; } .data-table .empty { text-align: center; color: #7f8c8d; } .badge { display: inline-block; padding: 0.35rem 0.7rem; border-radius: 12px; font-size: 0.85rem; font-weight: 600; } .badge-active { background-color: #d5f5e3; color: #1e8449; } .badge-inactive { background-color: #fadbd8; color: #c0392b; } .modal { position: fixed; inset: 0; display: flex; justify-content: center; align-items: center; z-index: 1000; } .modal.hidden { display: none; } .modal-backdrop { position: absolute; inset: 0; background-color: rgba(0, 0, 0, 0.45); } .modal-content { position: relative; background: white; border-radius: 8px; width: 90%; max-width: 700px; max-height: 90vh; overflow-y: auto; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); z-index: 1001; } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 1.25rem 1.5rem; border-bottom: 1px solid #ecf0f1; } .modal-header h2 { color: #2c3e50; font-size: 1.25rem; } .btn-close { background: transparent; border: none; font-size: 1.5rem; color: #7f8c8d; cursor: pointer; } .btn-close:hover { color: #2c3e50; } .modal form { padding: 1.5rem; } .form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem 1.5rem; } .form-group { display: flex; flex-direction: column; gap: 0.4rem; } .form-group label { font-size: 0.9rem; color: #555; font-weight: 600; } .form-group label.readonly-label { color: #95a5a6; cursor: not-allowed; } .form-group input, .form-group select { padding: 0.65rem 0.75rem; border: 1px solid #d5d8dc; border-radius: 6px; font-size: 0.95rem; } .form-group input:focus, .form-group select:focus { outline: none; border-color: #1abc9c; box-shadow: 0 0 0 2px rgba(26, 188, 156, 0.15); } .modal-footer { display: flex; justify-content: flex-end; gap: 0.75rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #ecf0f1; } .checkbox-inline { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; font-size: 0.9rem; color: #555; font-weight: normal; cursor: pointer; } .checkbox-inline input[type="checkbox"] { width: auto; cursor: pointer; } input:disabled, input[readonly] { background-color: #ecf0f1; cursor: not-allowed; color: #7f8c8d; } .form-group input[readonly] + label, .form-group label.readonly-label { color: #95a5a6; cursor: not-allowed; } .config-card { background: #ffffff; border-radius: 10px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); padding: 2rem; width: 100%; max-width: 1200px; } .config-header { margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid #ecf0f1; } .config-header h3 { color: #2c3e50; font-size: 1.25rem; margin-bottom: 0.35rem; } .config-header p { color: #7f8c8d; font-size: 0.95rem; } .config-card .form-grid { grid-template-columns: repeat(3, 1fr); } .config-footer { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #ecf0f1; } .mensaje { font-size: 0.9rem; color: #1e8449; font-weight: 600; } .pesos-input { text-align: right; }