/* Layout Styles */ .layout { height: 100%; /* Fill entire screen */ width: 100%; display: flex; flex-direction: column; background: #f6f6f6; /* NDE light background */ overflow: hidden; /* Prevent layout from overflowing */ } .layout-content { flex: 1; width: 100%; overflow-y: auto; /* Only vertical scroll */ overflow-x: hidden; /* No horizontal scroll */ display: flex; flex-direction: column; min-height: 0; /* Allow flex child to shrink */ position: relative; /* For absolute positioned minimal footer */ } /* Push footer to bottom when content is short */ .layout-content > *:first-child { flex: 1; } /* Footer Styles - now inside scrollable area */ .layout-footer { background: #172a59; /* NDE dark blue */ color: rgba(255, 255, 255, 0.9); padding: 0.75rem 1.5rem; font-size: 0.85rem; border-top: 3px solid #0a3dfa; /* NDE primary blue accent */ margin-top: auto; /* Push to bottom of flex container */ flex-shrink: 0; /* Don't shrink */ } /* Minimal footer for full-screen pages */ .layout-footer.footer-minimal { display: none; /* Hide completely on fullscreen pages */ } .layout-footer.footer-minimal .footer-content { justify-content: center; } .layout-footer.footer-minimal .footer-copyright { color: rgba(100, 100, 100, 0.7); font-size: 0.75rem; pointer-events: auto; } .layout-footer.footer-minimal .footer-copyright a { color: rgba(100, 100, 100, 0.8); } .layout-footer.footer-minimal .footer-copyright a:hover { color: #0a3dfa; } .footer-content { display: flex; justify-content: space-between; align-items: center; max-width: 1400px; margin: 0 auto; flex-wrap: wrap; gap: 0.75rem; } .footer-copyright { color: rgba(255, 255, 255, 0.8); } .footer-copyright a { color: #fff; text-decoration: none; font-weight: 500; transition: color 0.2s ease; } .footer-copyright a:hover { color: #fa5200; /* NDE orange on hover */ text-decoration: underline; } /* Responsive footer */ @media (max-width: 600px) { .footer-content { flex-direction: column; text-align: center; } } /* Auth Loading State */ .auth-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100vh; background: #f6f6f6; color: #172a59; } .auth-loading-spinner { width: 40px; height: 40px; border: 3px solid #ebefff; border-top-color: #0a3dfa; border-radius: 50%; animation: spin 0.8s linear infinite; margin-bottom: 1rem; } @keyframes spin { to { transform: rotate(360deg); } } .auth-loading-text { font-family: 'Poppins', sans-serif; font-size: 1rem; color: #172a59; }