/* DTIC Bitácoras - Estilos personalizados para React */ :root { --primary-color: #667eea; --secondary-color: #764ba2; --success-color: #28a745; --warning-color: #ffc107; --danger-color: #dc3545; --info-color: #17a2b8; --dark-color: #343a40; --light-color: #f8f9fa; --shadow: 0 2px 10px rgba(0, 0, 0, 0.1); --border-radius: 8px; --transition: all 0.3s ease; /* Light theme colors */ --bg-primary: #ffffff; --bg-secondary: #f8f9fa; --bg-tertiary: #e9ecef; --bg-hover: #dee2e6; --bg-active: #667eea; --text-primary: #212529; --text-secondary: #6c757d; --text-muted: #adb5bd; --border-primary: #dee2e6; --border-secondary: #ced4da; --shadow-primary: rgba(0, 0, 0, 0.1); --shadow-secondary: rgba(0, 0, 0, 0.05); --shadow-accent: rgba(102, 126, 234, 0.3); } /* Dark theme overrides */ .dark-theme { --bg-primary: #1a1a1a; --bg-secondary: #2d2d2d; --bg-tertiary: #404040; --bg-hover: #4a4a4a; --bg-active: #4f46e5; --text-primary: #ffffff; --text-secondary: #cccccc; --text-muted: #888888; --border-primary: #555555; --border-secondary: #666666; --shadow-primary: rgba(0, 0, 0, 0.3); --shadow-secondary: rgba(0, 0, 0, 0.2); --shadow-accent: rgba(79, 70, 229, 0.5); } * { box-sizing: border-box; } body { margin: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #f0f4f8 0%, #e1e8ed 100%); min-height: 100vh; color: #333; } .App { min-height: 100vh; } .main-content { padding-top: 76px; /* Altura del navbar */ min-height: calc(100vh - 76px); } /* Cards */ .card { border: none; border-radius: var(--border-radius); box-shadow: var(--shadow); transition: var(--transition); background: white; overflow: hidden; } .card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); } .card-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-bottom: none; padding: 1rem 1.25rem; } /* Botones */ .btn { border-radius: var(--border-radius); font-weight: 500; transition: var(--transition); border: none; } .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } .btn-primary { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); } .btn-success { background: linear-gradient(135deg, #56ab2f 0%, #a8e6cf 100%); color: white; } .btn-warning { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); color: white; } .btn-danger { background: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%); color: white; } /* Formularios */ .form-control { border-radius: var(--border-radius); border: 2px solid #e9ecef; transition: var(--transition); } .form-control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25); } .form-label { font-weight: 600; color: var(--dark-color); margin-bottom: 0.5rem; } /* Estados de carga */ .loading { display: inline-block; width: 20px; height: 20px; border: 3px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: #fff; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } /* Responsive */ @media (max-width: 768px) { .main-content { padding-top: 60px; } } /* Utilidades */ .text-gradient { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .shadow-custom { box-shadow: var(--shadow) !important; } .border-radius-custom { border-radius: var(--border-radius) !important; } /* Animaciones */ .fade-in { animation: fadeIn 0.5s ease-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } /* Dark theme overrides for components */ .dark-theme body { background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); color: var(--text-primary); } .dark-theme .card { background: var(--bg-secondary); color: var(--text-primary); border-color: var(--border-primary); } .dark-theme .card-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-bottom-color: var(--border-primary); } .dark-theme .table { color: var(--text-primary); background-color: var(--bg-secondary); } .dark-theme .table th, .dark-theme .table td { color: var(--text-primary); background-color: var(--bg-secondary); border-color: var(--border-primary); } .dark-theme .table-hover tbody tr:hover { background-color: var(--bg-hover); color: var(--text-primary); } .dark-theme .table-hover tbody tr:hover td { background-color: var(--bg-hover); color: var(--text-primary); } .dark-theme .text-muted { color: var(--text-muted) !important; } .dark-theme .badge.bg-light { background-color: var(--bg-tertiary) !important; color: var(--text-primary) !important; } .dark-theme .bg-light { background-color: var(--bg-tertiary) !important; color: var(--text-primary) !important; } .dark-theme .bg-warning { background-color: #f59e0b !important; color: #000000 !important; } .dark-theme .bg-warning.text-dark { color: #000000 !important; } .dark-theme .modal-content { background-color: var(--bg-secondary); color: var(--text-primary); border-color: var(--border-primary); } .dark-theme .modal-header { background-color: var(--bg-tertiary); color: var(--text-primary); border-bottom-color: var(--border-primary); } .dark-theme .modal-body { background-color: var(--bg-secondary); color: var(--text-primary); } .dark-theme .modal-footer { background-color: var(--bg-tertiary); color: var(--text-primary); border-top-color: var(--border-primary); } .dark-theme .form-control { background-color: var(--bg-primary); color: var(--text-primary); border-color: var(--border-primary); } .dark-theme .form-control:focus { background-color: var(--bg-primary); color: var(--text-primary); border-color: var(--primary-color); } .dark-theme .form-label { color: var(--text-primary); } .dark-theme .btn-secondary { background-color: var(--bg-tertiary); color: var(--text-primary); border-color: var(--border-primary); } .dark-theme .btn-secondary:hover { background-color: var(--bg-hover); color: var(--text-primary); } .dark-theme .list-group-item { background-color: var(--bg-secondary); color: var(--text-primary); border-color: var(--border-primary); } .dark-theme .list-group-item:hover { background-color: var(--bg-hover); color: var(--text-primary); }