diff --git a/frontend/public/css/theme.css b/frontend/public/css/theme.css index 231de4d..d947ce8 100644 --- a/frontend/public/css/theme.css +++ b/frontend/public/css/theme.css @@ -173,18 +173,14 @@ body { height: 32px; width: auto; object-fit: contain; - transition: filter 0.25s ease; + filter: none !important; } -/* En Modo Claro el navbar es magenta (#B43E8E), aplicamos color blanco al isotipo */ +/* El isotipo de UniCABA se adapta a ambos modos sin alteraciones de color */ [data-bs-theme="light"] .navbar-logo, -:root:not([data-bs-theme="dark"]) .navbar-logo { - filter: brightness(0) invert(1); -} - -/* En Modo Oscuro se mantiene el isotipo con su tono natural */ +:root:not([data-bs-theme="dark"]) .navbar-logo, [data-bs-theme="dark"] .navbar-logo { - filter: none; + filter: none !important; } /* User Avatar Component */ @@ -680,3 +676,12 @@ body { color: #E2E8F0; } +/* Chart Container Utility — previene expansión infinita en Chart.js */ +.chart-container { + position: relative; + width: 100%; + height: 260px; + max-height: 320px; +} + + diff --git a/frontend/views/base.html b/frontend/views/base.html index ddbd3ea..d92cf64 100644 --- a/frontend/views/base.html +++ b/frontend/views/base.html @@ -42,9 +42,10 @@ background: #F8FAFC !important; color: #1E293B !important; } - [data-bs-theme="light"] .navbar-logo { - /* Filtro para convertir blanco a rosa (#B43E8E) */ - filter: brightness(0) saturate(100%) invert(35%) sepia(55%) saturate(2250%) hue-rotate(289deg) brightness(90%) contrast(90%); + .navbar-logo, + [data-bs-theme="light"] .navbar-logo, + [data-bs-theme="dark"] .navbar-logo { + filter: none !important; } [data-bs-theme="light"] .glass-navbar { background: rgba(255, 255, 255, 0.88) !important; @@ -266,6 +267,7 @@ /* Sidebar Colapsado (Compacto, ultra limpio para pantallas chicas) */ .sidebar.collapsed { width: 68px; + overflow: visible !important; } .sidebar.collapsed .brand-link { display: none !important; @@ -281,9 +283,16 @@ .sidebar.collapsed .dropdown-header { display: none !important; } + .sidebar.collapsed .sidebar-body { + overflow: visible !important; + } + .sidebar.collapsed .nav-item { + position: relative; + } .sidebar.collapsed .nav-link { justify-content: center !important; padding: 0.55rem 0 !important; + position: relative; } .sidebar.collapsed .nav-link i { margin-right: 0 !important; @@ -299,8 +308,80 @@ .sidebar.collapsed .sidebar-footer .theme-toggle-btn { margin-bottom: 0.5rem !important; } + + /* Submenús flotantes (Flyout) cuando el sidebar está contraído */ .sidebar.collapsed .collapse { - display: none !important; + display: none; + } + .sidebar.collapsed .nav-item:hover > .collapse, + .sidebar.collapsed .nav-item > .collapse.show, + .sidebar.collapsed .nav-item.show-flyout > .collapse { + display: block !important; + position: absolute; + left: 100%; + top: 0; + margin-left: 6px; + min-width: 220px; + background: var(--bs-body-bg); + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 12px; + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18); + z-index: 1070; + padding: 0.5rem 0; + animation: flyoutSlideIn 0.15s cubic-bezier(0.16, 1, 0.3, 1); + } + [data-bs-theme="dark"] .sidebar.collapsed .nav-item:hover > .collapse, + [data-bs-theme="dark"] .sidebar.collapsed .nav-item > .collapse.show, + [data-bs-theme="dark"] .sidebar.collapsed .nav-item.show-flyout > .collapse { + background: #1e293b; + border-color: #334155; + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5); + } + @keyframes flyoutSlideIn { + from { opacity: 0; transform: translateX(-6px); } + to { opacity: 1; transform: translateX(0); } + } + .sidebar.collapsed .flyout-header { + display: block !important; + font-size: 0.75rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.05em; + padding: 0.35rem 1rem 0.45rem; + border-bottom: 1px solid rgba(0, 0, 0, 0.08); + margin-bottom: 0.35rem; + } + [data-bs-theme="dark"] .sidebar.collapsed .flyout-header { + border-bottom-color: rgba(255, 255, 255, 0.08); + } + .sidebar.collapsed .nav-item:hover .sidebar-submenu, + .sidebar.collapsed .nav-item > .collapse.show .sidebar-submenu, + .sidebar.collapsed .nav-item.show-flyout .sidebar-submenu { + padding-left: 0 !important; + margin: 0 !important; + list-style: none; + } + .sidebar.collapsed .nav-item:hover .sidebar-submenu .nav-link, + .sidebar.collapsed .nav-item > .collapse.show .sidebar-submenu .nav-link, + .sidebar.collapsed .nav-item.show-flyout .sidebar-submenu .nav-link { + padding: 0.5rem 1rem !important; + font-size: 0.85rem; + white-space: nowrap; + display: flex; + align-items: center; + justify-content: flex-start !important; + } + .sidebar.collapsed .nav-item:hover .sidebar-submenu .nav-link:hover, + .sidebar.collapsed .nav-item > .collapse.show .sidebar-submenu .nav-link:hover, + .sidebar.collapsed .nav-item.show-flyout .sidebar-submenu .nav-link:hover { + background-color: rgba(180, 62, 142, 0.08); + color: #B43E8E !important; + } + [data-bs-theme="dark"] .sidebar.collapsed .nav-item:hover .sidebar-submenu .nav-link:hover, + [data-bs-theme="dark"] .sidebar.collapsed .nav-item > .collapse.show .sidebar-submenu .nav-link:hover, + [data-bs-theme="dark"] .sidebar.collapsed .nav-item.show-flyout .sidebar-submenu .nav-link:hover { + background-color: rgba(255, 138, 182, 0.1); + color: #FF8AB6 !important; } /* Navegación del Sidebar */ @@ -521,6 +602,7 @@ Espacios & Sedes