.layout-container { --layout-gutter: 16px; width: 100%; height: 100vh; min-height: 100vh; display: flex; flex-direction: column; background-color: var(--app-bg); color: var(--app-text); } .layout-navbar { flex: 0 0 auto; background: linear-gradient( 135deg, rgba(23, 58, 110, 0.46) 0%, rgba(10, 32, 72, 0.62) 50%, rgba(30, 74, 140, 0.42) 100% ); border-bottom: 1px solid rgba(167, 203, 255, 0.35); box-shadow: 0 8px 24px rgba(2, 10, 26, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.2); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); .navbar-brand, .nav-link, .navbar-toggler { color: var(--app-text); } .navbar-brand:hover, .nav-link:hover, .nav-link:focus { color: #ffffff; } .navbar-toggler { border-color: rgba(255, 255, 255, 0.35); } .navbar-toggler-icon { filter: brightness(0) invert(1); } .nav-link-custom { color: var(--app-text-muted); transition: color 160ms ease, text-shadow 160ms ease; } .nav-link-custom:hover, .nav-link-custom:focus { color: #f3f7ff; text-shadow: 0 0 12px rgba(168, 203, 255, 0.45); } .nav-link-custom.active { color: #ffffff; font-weight: 600; text-shadow: 0 0 14px rgba(153, 193, 255, 0.5); } .keyboard-nav-group { .btn { border-color: rgba(173, 205, 255, 0.45); color: var(--app-text); } .btn:hover, .btn:focus { color: #ffffff; border-color: rgba(225, 237, 255, 0.8); } .btn.active { background: rgba(90, 146, 255, 0.5); border-color: rgba(173, 205, 255, 0.75); color: #ffffff; font-weight: 600; text-shadow: 0 0 14px rgba(153, 193, 255, 0.5); } } } .main-content { flex: 1 1 auto; min-height: 0; min-width: 0; width: 100%; height: 100%; box-sizing: border-box; background-color: var(--app-bg); color: var(--app-text); padding-left: var(--layout-gutter); padding-right: var(--layout-gutter); padding-bottom: var(--layout-gutter); } .layout-footer { flex: 0 0 auto; padding: 12px var(--layout-gutter); background-color: var(--app-bg); border-top: 1px solid rgba(167, 203, 255, 0.35); text-align: center; font-size: 12px; color: var(--app-text); p { margin: 0; } }