html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

/* --- Navbar --- */
.navbar {
    background-color: var(--card-bg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    padding: 1rem 0;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    transition: background-color 0.3s ease;
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
   
    padding: 0 1rem;
    width: 100%;
    /* Ensure .container class handles padding for nav-container's content */
}

.nav-logo {
    display: flex;
    align-items: center;
    font-family: var(--font-primary);
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--dark-color);
    text-decoration: none;
    z-index: 1001; /* Ensure logo is clickable if menu overlaps */
}

    .nav-logo .logo-icon {
        color: var(--primary-color);
        margin-right: 0.3rem;
    }

    .nav-logo span {
        color: var(--primary-color);
        font-weight: 500;
    }


/* Hide the checkbox itself */
.nav-toggle-checkbox {
    display: none;
}

/* Hamburger/Close Icon Label Styling */
.nav-toggle { /* This is now the <label> */
    display: none; /* Hidden by default, shown on mobile */
    font-size: 1.5rem; /* Or your desired size */
    cursor: pointer;
    color: var(--dark-color);
    padding: 0.5rem; /* Make it easier to tap */
    z-index: 1001; /* Above the menu when it slides out */
    user-select: none; /* Prevent text selection on an icon */
}

    .nav-toggle .icon-open {
        display: inline-block;
    }

    .nav-toggle .icon-close {
        display: none;
    }

/* Navigation Menu Styling */
.nav-menu {
    display: flex; /* For desktop: horizontal menu */
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
}

    .nav-menu li {
        margin-left: 1.8rem; /* Spacing between items on desktop */
    }

        .nav-menu li:first-child {
            /* margin-left: 0; */ /* If no user session status on desktop before it */
        }

.nav-link {
    display: block; /* Ensure full clickable area */
    padding: 0.75rem 1rem; /* Desktop padding */
    color: var(--secondary-color);
    text-decoration: none;
    font-family: var(--font-primary);
    font-weight: 500;
    font-size: 0.95rem;
    position: relative; /* For ::after underline */
    transition: color 0.2s ease;
}
    .nav-link::after {
        content: '';
        position: absolute;
        bottom: 0.5rem; /* Adjust vertical position of underline */
        left: 1rem;
        right: 1rem;
        width: 0;
        height: 2px;
        background-color: var(--primary-color);
        transform: scaleX(0);
        transition: transform 0.3s ease;
    }

    .nav-link:hover::after,
    .nav-link.active::after {
        transform: scaleX(1);
        width: 100%;
    }
    .nav-link:hover,
    .nav-link.active { /* .active class is added by NavLink */
        color: var(--primary-color);
    }

/* User Session Status in Navbar (Desktop - if you use ms-auto me-3) */
/* Navbar Specific Styling */
.navbar-session-status {
    color: var(--secondary-color); /* Muted color for navbar */
    background-color: rgba(0,0,0,0.03); /* Very subtle background */
    border-radius: var(--border-radius);
    padding: 0.4rem 0.8rem;
}

    .navbar-session-status .user-greeting,
    .navbar-session-status .device-info {
        color: var(--secondary-color); /* Inherit or override for navbar */
    }

        .navbar-session-status .user-greeting i {
            color: var(--accent-color); /* Green check for logged-in feel */
        }

        .navbar-session-status .device-info i {
            color: var(--secondary-color);
        }

    .navbar-session-status .btn-link {
        color: var(--secondary-hover);
    }



/* --- MOBILE NAVIGATION STYLES --- */
@media (max-width: 991px) { /* Use a common breakpoint, e.g., Bootstrap's lg breakpoint is 992px */
    .nav-container {
        /* Container padding is global, ensure it works here */
    }

    .navbar-session-status { /* The one directly in nav-container for desktop */
        display: none !important; /* Hide desktop session status on mobile */
    }

    .nav-toggle { /* Show the hamburger icon label */
        display: block;
    }

    .nav-menu {
        display: none; /* Hidden by default on mobile */
        flex-direction: column;
        align-items: stretch; /* Make items full width */
        position: absolute;
        top: 100%; /* Position below the navbar */
        left: 0;
        width: 100%;
        background-color: var(--card-bg); /* Or a slightly different menu background */
        box-shadow: 0 5px 10px rgba(0,0,0,0.1);
        padding: 1rem 0; /* Vertical padding for the menu */
        z-index: 1000; /* Below toggle icon if it needs to overlap slightly */
        max-height: calc(100vh - 65px); /* Example: full height minus navbar height */
        overflow-y: auto; /* Scroll if menu items exceed screen height */
    }

        .nav-menu li {
            margin-left: 0;
            width: 100%;
            text-align: center; /* Center mobile menu items */
        }

        .nav-menu .nav-link {
            padding: 0.8rem 1.5rem; /* Padding for mobile menu items */
            border-bottom: 1px solid var(--border-color); /* Separator lines */
            font-size: 1rem; /* Slightly larger for easier tapping */
        }

        .nav-menu li:last-child .nav-link {
            border-bottom: none;
        }

    .nav-link::after { /* Disable desktop underline effect on mobile */
        display: none;
    }

    /* When checkbox is checked, show the menu */
    .nav-toggle-checkbox:checked ~ .nav-menu {
        display: flex;
    }

    /* Change hamburger to close icon when checked */
    .nav-toggle-checkbox:checked + .nav-toggle .icon-open {
        display: none;
    }

    .nav-toggle-checkbox:checked + .nav-toggle .icon-close {
        display: inline-block;
    }

    /* Optional: Prevent body scroll when mobile menu is open */
    /* This is harder with pure CSS reliably across all browsers.
       If critical, a tiny bit of JS might be needed just for this,
       or accept that the body might scroll. */
    /*
    .nav-toggle-checkbox:checked ~ body { // This selector won't work as body is not a sibling
        overflow: hidden;
    }
    */
    /* If your <main> element is a sibling AFTER the <nav>, you could do: */
    /*
    .nav-toggle-checkbox:checked ~ main {
         filter: blur(3px); // Example effect on main content
         pointer-events: none; // Prevent interaction with main content
    }
    */

    /* Mobile User Session Status (inside the .nav-menu) */
    .mobile-nav-session-status {
        padding: 0.8rem 1.5rem;
        border-bottom: 1px solid var(--border-color);
        background-color: #f8f9fa; /* Slightly different background */
    }

        .mobile-nav-session-status .user-greeting,
        .mobile-nav-session-status .device-info {
            justify-content: center; /* Center text */
            font-size: 0.9rem;
        }

        .mobile-nav-session-status .btn-link {
            display: block;
            margin: 0.5rem auto 0 auto;
        }
}