@font-face { font-family: 'Inter'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('../fonts/inter-latin.woff2') format('woff2'); }

@font-face {
    font-family: 'Squada One';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/squada-one.woff2') format('woff2');
}

[hidden] { display: none !important; }
.gems-icon { width: 22px; height: 22px; flex: 0 0 auto; }
.skip-link { position: fixed; top: -100px; left: 1rem; z-index: 2000; padding: .75rem 1rem; background: white; color: #0e2f66; }
.skip-link:focus { top: .5rem; }
:focus-visible { outline: 3px solid #118df1; outline-offset: 3px; }
.gems-name { overflow-wrap: anywhere; }

/* Login banner, three-column content and imagery from the legacy login. */
.login-page { position: relative; min-height: 100vh; isolation: isolate; }
.login-page::before {
    content: ''; position: fixed; inset: 0; z-index: -1;
    background: linear-gradient(rgba(255, 255, 255, .88), rgba(255, 255, 255, .88)), url('../images/cityhall.jpg') center / cover no-repeat;
}
.gems-title { margin: 0; padding: 12px 15px; background: #118df1; color: white; font-family: 'Squada One', Arial, sans-serif; font-size: clamp(36px, 6vw, 70px); line-height: 1.1; text-align: center; }
.gems-subtitle { padding: 10px 15px; background: #0f3066; color: white; font-size: 18px; text-align: center; }
.login-content { padding-block: 45px; }
.login-card { height: 100%; border: 1px solid #d8dee7; box-shadow: 0 8px 25px rgb(0 0 0 / 8%); }
.login-card .card-body { padding: 2rem; }
.login-card h2 { font-size: 1.65rem; font-weight: 700; }
.login-card .form-control { min-height: 46px; }
.login-card .btn-primary { background: #0d6efd; border-color: #0d6efd; }
.login-card .btn-primary:hover { background: #0d70c2; border-color: #0d70c2; }
.company-card { height: 100%; background: #0d6efd; border: 0; color: white; }
.company-card h2 { color: white; font-size: 1.3rem; font-weight: 700; }
.company-card p { line-height: 1.75; }
.company-logo { width: 90px; height: 90px; object-fit: contain; }
.primary-logo { width: 100%; max-width: 500px; height: auto; }
.password-toggle { min-width: 62px; }
.login-card .password-toggle { color: #334155; background: #f8fafc; border-color: #cbd5e1; box-shadow: none; }
.login-card .password-toggle:hover { color: #0e2f66; background: #e2e8f0; }

/* Keep the legacy shell classes while using accessible native controls. */
.sidebar .nav form { width: 100%; }
.sidebar .nav button.nav-link { width: 100%; border: 0; background: transparent; text-align: left; font: inherit; }
.sidebar .menu-icon { display: inline-flex; align-items: center; justify-content: center; }
.sidebar-icon-only .sidebar .nav .nav-item .nav-link .menu-title { display: none; }
.navigation-backdrop { position: fixed; inset: 70px 0 0; z-index: 99; border: 0; background: rgb(15 23 42 / 45%); }
.topbar-signout { display: inline-flex; align-items: center; gap: .4rem; min-height: 40px; padding: .45rem .7rem; white-space: nowrap; }
.account-chip { display: flex; flex-direction: column; max-width: 220px; font-size: .8rem; line-height: 1.35; }
.account-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-chip span { color: #64748b; font-size: .72rem; }
.dashboard-mark { width: 76px; height: 76px; object-fit: contain; }
.welcome-card { border-top: 4px solid #0e2f66; }
.welcome-card h1 { font-size: clamp(1.35rem, 3vw, 1.85rem); font-weight: 750; }
.account-summary { margin: 0; }
.account-summary dt { color: #64748b; font-size: .8rem; font-weight: 500; margin-top: 1rem; }
.account-summary dd { color: #0e2f66; font-weight: 600; margin: .25rem 0 0; overflow-wrap: anywhere; }

@media (max-width: 991px) {
    .sidebar-offcanvas { left: -260px; right: auto; visibility: hidden; transition: left .2s ease; }
    .sidebar-offcanvas.active { left: 0; visibility: visible; }
    body.navigation-open { overflow: hidden; }
    .account-chip { display: none; }
}
@media (max-width: 767px) {
    .login-content { padding-block: 25px; }
    .gems-subtitle { font-size: 15px; }
    .login-card .card-body { padding: 1.5rem; }
}
@media (max-width: 400px) {
    .topbar-signout span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* The employee menu uses the same group control and avatar menu as the original shell. */
.sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link { width: 100%; text-align: left; border: 0; background: transparent; font: inherit; }
.sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link:hover { background: rgba(255,255,255,.06); }
.sidebar .nav:not(.sub-menu) > .nav-item.active > button.nav-link { color: white; }
.sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link .menu-title { flex: 1; }
.sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link .menu-icon { margin-right: 12px; }
.sidebar-icon-only .sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link .menu-title,
.sidebar-icon-only .sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link .menu-arrow { display: none; }
.sidebar-icon-only .sidebar .sidebar-search { display: none; }
.sidebar-icon-only .sidebar .collapse { display: none; }
.sidebar-icon-only .sidebar .nav:not(.sub-menu) > .nav-item > button.nav-link { justify-content: center; padding-inline: 0; }
.sidebar .nav-empty[hidden] { display: none; }
@media(max-width: 575px) { .topbar-identity { min-width: 0; } .topbar-greeting__hello { max-width: 32vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }

.sidebar-search__clear:not([hidden]) { display: flex; }
