diff --git a/admin-panel/admin/assets/css/admin-panel.css b/admin-panel/admin/assets/css/admin-panel.css index 6b335ff2..2bf1f6e5 100644 --- a/admin-panel/admin/assets/css/admin-panel.css +++ b/admin-panel/admin/assets/css/admin-panel.css @@ -167,3 +167,345 @@ max-width: 100%; } } + +/* ============================================ + MEJORAS ESPECÍFICAS PARA ADMIN PANEL + ============================================ */ + +/* Variables CSS */ +:root { + --color-navy-primary: #1E3A5F; + --color-navy-light: #2C5282; + --color-navy-dark: #0E2337; + --color-orange-primary: #FF8600; + --color-orange-hover: #FF6B35; + --color-neutral-50: #F9FAFB; + --color-neutral-100: #F3F4F6; + --color-neutral-600: #6B7280; + --color-neutral-700: #4B5563; +} + +/* Colores de marca como clases de utilidad */ +.text-navy-primary { color: var(--color-navy-primary) !important; } +.text-navy-dark { color: var(--color-navy-dark) !important; } +.text-orange-primary { color: var(--color-orange-primary) !important; } +.text-neutral-600 { color: var(--color-neutral-600) !important; } +.text-neutral-700 { color: var(--color-neutral-700) !important; } + +.bg-neutral-50 { background-color: var(--color-neutral-50) !important; } +.bg-neutral-100 { background-color: var(--color-neutral-100) !important; } + +/* Tab Header mejorado */ +.tab-header { + padding: 1.5rem; + background: linear-gradient(135deg, rgba(30, 58, 95, 0.03) 0%, rgba(255, 134, 0, 0.02) 100%); + border-radius: 8px; + margin-bottom: 2rem; + border-left: 4px solid var(--color-orange-primary); +} + +/* Section Title con icono */ +.section-title { + color: var(--color-navy-primary); + font-size: 1.25rem; + font-weight: 700; + margin-bottom: 1.5rem; + padding-bottom: 0.75rem; + border-bottom: 2px solid var(--color-neutral-100); + display: flex; + align-items: center; + gap: 0.75rem; +} + +.section-title .title-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + background: linear-gradient(135deg, var(--color-orange-primary), var(--color-orange-hover)); + border-radius: 8px; + color: white; + font-size: 1rem; +} + +/* Form Section Cards mejorados */ +.form-section.card { + border: 1px solid var(--color-neutral-100); + transition: all 0.3s ease; +} + +.form-section.card:hover { + box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08); + border-color: var(--color-neutral-100); +} + +/* Toggle Container mejorado */ +.toggle-container { + background: var(--color-neutral-50); + padding: 1rem; + border-radius: 8px; + border: 1px solid var(--color-neutral-100); +} + +/* Switch más grande */ +.form-switch-lg .form-check-input { + width: 3rem; + height: 1.5rem; + cursor: pointer; +} + +.form-switch-lg .form-check-input:checked { + background-color: var(--color-orange-primary); + border-color: var(--color-orange-primary); +} + +.form-switch-lg .form-check-input:focus { + box-shadow: 0 0 0 0.25rem rgba(255, 134, 0, 0.25); + border-color: var(--color-orange-primary); +} + +.form-switch-lg .form-check-label { + margin-left: 0.5rem; + font-weight: 500; +} + +/* Input Group merge (sin borde en el medio) */ +.input-group-merge .input-group-text { + border-right: 0; + background-color: var(--color-neutral-50); +} + +.input-group-merge .form-control { + border-left: 0; +} + +.input-group-merge .form-control:focus { + border-color: var(--color-orange-primary); + box-shadow: none; +} + +/* Color Picker mejorado */ +.color-picker-wrapper .form-control-color { + width: 100%; + height: 60px; + border-radius: 8px; + border: 2px solid var(--color-neutral-100); + cursor: pointer; + transition: all 0.3s ease; +} + +.color-picker-wrapper .form-control-color:hover { + border-color: var(--color-orange-primary); + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(255, 134, 0, 0.15); +} + +.color-picker-wrapper .form-control-color::-webkit-color-swatch { + border-radius: 4px; + border: none; +} + +.color-picker-wrapper .color-preview-text { + text-align: center; +} + +.color-picker-wrapper .color-preview-text code { + display: block; + font-size: 0.875rem; + font-weight: 600; + margin-bottom: 0.25rem; +} + +/* Alert personalizado */ +.alert-info-custom { + background: linear-gradient(135deg, rgba(255, 134, 0, 0.08), rgba(255, 134, 0, 0.03)); + border: 1px solid rgba(255, 134, 0, 0.2); + border-radius: 8px; + padding: 1rem; +} + +.alert-info-custom .alert-heading { + color: var(--color-navy-primary); + font-weight: 700; +} + +.alert-info-custom p { + color: var(--color-neutral-600); +} + +/* Preview Container */ +.preview-container { + position: relative; + min-height: 150px; +} + +.top-bar-preview { + animation: fadeInUp 0.5s ease; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +/* Botones de marca */ +.btn-navy-primary { + background-color: var(--color-navy-primary); + border-color: var(--color-navy-primary); + color: white; + font-weight: 600; + transition: all 0.3s ease; +} + +.btn-navy-primary:hover { + background-color: var(--color-navy-light); + border-color: var(--color-navy-light); + color: white; + transform: translateY(-2px); + box-shadow: 0 6px 12px rgba(30, 58, 95, 0.2); +} + +.btn-orange-primary { + background-color: var(--color-orange-primary); + border-color: var(--color-orange-primary); + color: white; + font-weight: 600; + transition: all 0.3s ease; +} + +.btn-orange-primary:hover { + background-color: var(--color-orange-hover); + border-color: var(--color-orange-hover); + color: white; + transform: translateY(-2px); + box-shadow: 0 6px 12px rgba(255, 134, 0, 0.3); +} + +/* Sticky Footer Actions */ +.sticky-bottom { + position: sticky; + bottom: 0; + z-index: 10; + box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05); +} + +/* Progress bar para textarea */ +.progress { + background-color: var(--color-neutral-100); + height: 4px; + border-radius: 2px; + overflow: hidden; +} + +.progress .progress-bar { + transition: width 0.3s ease; +} + +.progress .progress-bar.bg-orange-primary { + background-color: var(--color-orange-primary); +} + +/* Badges personalizados */ +.badge.bg-neutral-100 { + background-color: var(--color-neutral-100) !important; +} + +.badge.text-neutral-600 { + color: var(--color-neutral-600) !important; +} + +/* Form control improvements */ +.form-control-lg { + font-size: 1rem; + padding: 0.75rem 1rem; +} + +.form-select-lg { + font-size: 1rem; + padding: 0.75rem 1rem; +} + +/* Gap utilities */ +.g-4 { + gap: 1.5rem; +} + +/* Border utilities */ +.border-0 { + border: 0 !important; +} + +.border-neutral-100 { + border-color: var(--color-neutral-100) !important; +} + +/* Shadow utilities */ +.shadow-sm { + box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !important; +} + +/* Rounded utilities */ +.rounded-3 { + border-radius: 0.5rem !important; +} + +.rounded-bottom { + border-bottom-left-radius: 0.5rem !important; + border-bottom-right-radius: 0.5rem !important; +} + +/* Card utilities */ +.card { + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.5rem; +} + +.card-body { + padding: 1.5rem; +} + +/* Typography utilities */ +.fw-bold { + font-weight: 700 !important; +} + +.fw-medium { + font-weight: 500 !important; +} + +.small { + font-size: 0.875rem; +} + +/* Responsive mejoras */ +@media (max-width: 768px) { + .tab-header { + padding: 1rem; + } + + .tab-header .d-flex { + flex-direction: column; + gap: 1rem; + } + + .section-title { + font-size: 1.1rem; + } + + .color-picker-wrapper .form-control-color { + height: 50px; + } + + .form-switch-lg .form-check-input { + width: 2.5rem; + height: 1.25rem; + } +}