html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
    outline: none;
}

a, .btn-link {
    color: #0071c1;
}

.btn-link:focus {
    outline: none;
}

.btn:focus, .btn:active:focus, .btn-link:focus, .btn-link:active:focus, .btn-link:focus-visible {
    outline: 0 0 0 0.1rem;
}

/* Availability Grid Styles */
.availability-grid {
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
    overflow: hidden;
    background: #f8f9fa;
}

.availability-header {
    display: grid;
    grid-template-columns: 120px 1fr 1fr 1fr;
    background: #e9ecef;
    border-bottom: 1px solid #dee2e6;
}

.availability-row {
    display: grid;
    grid-template-columns: 120px 1fr 1fr 1fr;
    border-bottom: 1px solid #dee2e6;
    background: white;
}

.availability-row:last-child {
    border-bottom: none;
}

.availability-row:hover {
    background: #f8f9fa;
}

.day-label {
    padding: 0.75rem;
    font-weight: 500;
    color: #495057;
    display: flex;
    align-items: center;
    border-right: 1px solid #dee2e6;
}

.time-label {
    padding: 0.75rem;
    font-weight: 600;
    color: #495057;
    text-align: center;
    border-right: 1px solid #dee2e6;
}

.time-label:last-child {
    border-right: none;
}

.checkbox-cell {
    padding: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #dee2e6;
}

.checkbox-cell:last-child {
    border-right: none;
}

.checkbox-cell input[type="checkbox"] {
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.content {
    padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid red;
}

.validation-message {
    color: red;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTBlbSIgaGVpZ2h0PSI1MGVtIiB2aWV3Qm94PSIwIDAgNTAwIDUwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB4PSIxMzUiIHk9IjE1MCIgd2lkdGg9IjIzMCIgaGVpZ2h0PSIzMDAiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8cGF0aCBjbGlwLXBhdGg9InVybCgjY2xpcDApIiBkPSJNMTg2LjE2OSAxNTUuMzM4QzE4NS4wODggMTU1LjMzOCAxODQuMDM4IDE1NS42MTMgMTgzLjEyNSAxNTYuMTI3TDE2MC4xNzIgMTc1LjI4M0MxNTkuMjcgMTc1Ljc5NyAxNTguNDY5IDE3Ni41MDYgMTU3Ljc5NyAxNzcuMzI4TDE0MC42NzMgMjAwLjY2N0MxMzkuOTAyIDIwMS40ODkgMTM5LjI4MiAyMDIuNDAyIDEzOC44NDIgMjAzLjM1N0wxMjIuMjI5IDIzNS42NjRDMTIxLjc4OSAyMzYuNjE5IDEyMS41MjIgMjM3LjY3NyAxMjEuNDQ4IDIzOC43NjFMMTE5LjYwNiAyNjUuNTc1QzExOS41MzIgMjY2LjY1OSAxMTkuNjQ5IDI2Ny43NDMgMTE5Ljk0NyAyNjguNzgyTDEyNi4wMDIgMjk5LjY2M0MxMjYuMjk5IDMwMC43MDcgMTI2Ljc3NCAzMDEuNzA3IDEyNy40MDggMzAyLjU5N0wxNDYuNjc5IDMyNC45NzNDMTQ3LjMxMyAzMjUuODYzIDE0OC4wODggMzI2LjY0NyAxNDguOTY3IDMyNy4yODRMMTc3LjI5NyAzNDguMTg0QzE3OC4xNzYgMzQ4LjgyMSAxNzkuMTM2IDM0OS4zMDIgMTgwLjE0NyAzNDkuNTk4TDIxMi4xMzEgMzU2LjQ5M0MyMTMuMTQyIDM1Ni43ODkgMjE0LjE4NiAzNTYuODg5IDIxNS4yMjEgMzU2Ljc4M0wyNDcuNTI5IDM0OS4xNzNDMjQ4LjU2NCAzNDkuMDY3IDI0OS41NzUgMzQ4Ljc2NiAyNTAuNTE2IDM0OC4yODFMMjc4LjkyNyAzMjcuMjgxQzI3OS44NjggMzI2Ljc5NiAyODAuNzE5IDMyNi4xMzIgMjgxLjQ0OCAzMjUuMzE2TDMwMC42NDEgMzAyLjkyN0MzMDEuMzcgMzAyLjEwMSAzMDEuOTU4IDMwMS4xMjEgMzAyLjM3OCAzMDAuMDM4TDMxOC4zMzEgMjY3LjY0N0MzMTguNzUxIDI2Ni41NjQgMzE4Ljk3OSAyNjUuNDE5IDMxOS4wMDIgMjY0LjI2MkwzMjAuMTcyIDIzNy41MjNDMzIwLjE5NSAyMzYuMzY2IDMyMC4wMTggMjM1LjIxMSAzMTkuNjQ5IDIzNC4xMjFMMzA2LjEwNCAyMDQuNjM2QzMwNS43MzUgMjAzLjU0NiAzMDUuMjgxIDIwMi41MjIgMzA0Ljc2NyAyMDEuNTk2TDI4MS4xMTYgMTc2LjY1N0MyODAuNjAyIDE3NS43MzEgMjgwLjAyNyAxNzQuODk3IDI3OS4zOTMgMTc0LjE2OUwyNTYuNDQ5IDE1Ni4xMjhDMjU1LjgxNSAxNTUuNDEgMjU1LjEyNiAxNTQuNzkyIDI1NC4zOTUgMTU0LjI5MUwyMjUuNDMxIDEzNi41NzhDMjI0LjcgMTM2LjA3NyAyMjMuOTI2IDEzNS42OTkgMjIzLjEzMiAxMzUuNDU5TDE5MC4xNjEgMTI3LjQ0M0MyODkuMzY3IDEyNy4yMDMgMTg4LjU1NyAxMjcuMDk4IDE4Ny43NDEgMTI3LjEzNEwxNTUuNDIwIDEyOS42ODRDMTU0LjYwNCAxMjkuNzIgMTUzLjgwMSAxMjkuODk4IDE1My4wMzYgMTMwLjIwOEwxMjIuNzA0IDE0My4yNzFjLTAuNzY1IDAuMzEgLTEuNDg4IDAuNzMgLTIuMTU3IDEuMjU5TDk1LjE0MSAxNjUuNzE2Qzk0LjQ3MiAxNjYuMjQ1IDkzLjg2OSAxNjYuODU5IDkzLjM0NyAxNjcuNTQ4TDc2LjQ1OSAxOTQuNzU4Qzc1LjkzNyAxOTUuNDQ3IDc1LjUwNyAxOTYuMjA2IDc1LjE3OSAxOTcuMDE5TDYwLjA1OSAyMjcuNzE1QzU5LjczMSAyMjguNTI4IDU5LjUwNyAyMjkuMzg2IDU5LjM5MSAyMzAuMjY4TDUwLjE4NyAyNjIuNzM4QzUwLjA3MSAyNjMuNjIgNTAuMDYyIDI2NC41MTUgNTAuMTU5IDI2NS40MDJMNjQuMzkxIDI5Ni43ODFDNjQuNDg4IDI5Ny42NjggNjQuNjg5IDI5OC41MzMgNjQuOTg5IDI5OS4zNjFMMTExLjI4OSAzMjUuNjc1QzExMS41ODkgMzI2LjUwMyAxMTEuOTg4IDMyNy4yOTIgMTEyLjQ3NyAzMjguMDIxTDE2MC4xNzIgMzQ5LjI4M0MxNjAuNjYxIDM1MC4wMTIgMTYxLjIzIDM1MC42NzEgMTYxLjg2NyAzNTEuMjQ5TDIxMC4xNzYgMzcwLjE4NEMyMTAuODEzIDM3MC43NjIgMjExLjUwNyAzNzEuMjQ5IDIxMi4yNDEgMzcxLjUyNUwyNjIuNzM4IDM4Ni4xODlDMjYzLjQ3MiAzODYuNDY1IDI2NC4yMzUgMzg2LjYyNyAyNjUuMDA5IDM4Ni42NjdMMzE1LjU5OSAzODguNTk3QzMxNi4zNzMgMzg4LjYzNyAzMTcuMTQ3IDM4OC41NTUgMzE3Ljg5NyAzODguMzUxTDM2Ni4yNzEgMzY5LjE5M0MzNjcuMDIxIDM2OC45ODkgMzY3LjczNyAzNjguNjYzIDM2OC4zOTkgMzY4LjIyTDM5NC4xNzEgMzQ0LjI4QzM5NC44MzMgMzQzLjgzNyAzOTUuNDI5IDM0My4yODUgMzk1Ljk0NCAzNDIuNjM5TDQxNS4xNzYgMzE2LjE5N0M0MTUuNjkxIDMxNS41NTEgNDE2LjEyNyAzMTQuODQ5IDQxNi40NzMgMzE0LjA5N0w0MjguNzA5IDI4NC4xOThDNDI5LjA1NSAyODMuNDQ2IDQyOS4zMDcgMjgyLjY0NyA0MjkuNDU5IDI4MS44MjFMNDM0LjY5NyAyNDkuNDI5QzQzNC44NDkgMjQ4LjYwMyA0MzQuODk5IDI0Ny43NTYgNDM0Ljg0NyAyNDYuOTEyTDQyNy4yMTIgMjE0LjU5N0M0MjcuMTYgMjEzLjc1MyA0MjcuMDA4IDIxMi45MjUgNDI2Ljc1OSAyMTIuMTM5TDQwNi4yNDEgMTg2LjY5N0M0MDUuOTkyIDE4NS45MTEgNDA1LjY0NyAxODUuMTY4IDQwNS4yMDcgMTg0LjQ3N0wzNzcuNzE3IDE2MS4yMjVDMzc3LjI3NyAxNjAuNTM0IDM3Ni43NDcgMTU5Ljg5NyAzNzYuMTM5IDE1OS4zMjVMMzQwLjM5NyAxMzIuNzU3QzMzOS43ODkgMTMyLjE4NSAzMzkuMTE0IDEzMS42ODUgMzM4LjM4NyAxMzEuMjY5TDI5NC4xNDEgMTEwLjI3M0MyOTMuNDE0IDEwOS44NTcgMjkyLjY0NyAxMDkuNTI5IDI5MS44NTYgMTA5LjI5N0wyNDAuNzM4IDEwMC4wOTdDMjM5Ljk0NyA5OS44NjUgMjM5LjEzOSA5OS43MjEgMjM4LjMyNSA5OS42NjdMMTg1LjE2OSA5OC4zMzhDMTg0LjM1NSA5OC4yODQgMTgzLjU0NyA5OC4zMjggMTgyLjc1NiA5OC40N0wxMzEuNjM4IDEwNy42NjdDMTMwLjg0NyAxMDcuODA5IDEzMC4wOCAxMDguMDM3IDEyOS4zNDEgMTA4LjM0OUw4NS4xNDEgMTM0LjkxN0M4NC40MDIgMTM1LjIyOSA4My42OTkgMTM1LjYyNCA4My4wNDcgMTM2LjA5M0w1Ni4xNzEgMTYyLjI4QzU1LjUxOSAxNjIuNzQ5IDU0LjkxOSAxNjMuMjk0IDU0LjM3OSAxNjMuOTA0TDM0LjE3NiAxOTAuMTk3QzMzLjYzNiAxOTAuODA3IDMzLjE1OSAxOTEuNDc5IDMyLjc2MSAxOTIuMjA0TDE2LjA1OSAyMjIuNzE1QzE1LjY2MSAyMjMuNDQgMTUuMzQ3IDIyNC4yMTIgMTUuMTIzIDIyNS4wMTlMNC4zOTkgMjU3LjczOEM0LjE3NSAyNTguNTQ1IDQuMDU1IDI1OS4zNzUgNC4wNDEgMjYwLjIxN0wyLjE3OSAyOTIuOTU4QzIuMTY1IDI5My44IDIuMjU3IDI5NC42NDIgMi40NTIgMjk1LjQ2N0wxNC4xNzkgMzI3LjE5N0MxNC4zNzQgMzI4LjAyMiAxNC42NjkgMzI4LjgyNyAxNS4wNTkgMzI5LjU5N0wzNC4xNzYgMzU1Ljg5QzM0LjU2NiAzNTYuNjYgMzUuMDQ5IDM1Ny4zODMgMzUuNjE5IDM1OC4wNDVMNjIuNDk1IDM4NC4yMzJDNjMuMDY1IDM4NC44OTQgNjMuNzE5IDM4NS40ODcgNjQuNDQ5IDM4Ni4wMDdMOTguNjg5IDQxMi41NzVDOTkuNDE5IDQxMy4wOTUgMTAwLjIyMSA0MTMuNTI5IDEwMS4wNzcgNDEzLjg2N0wxNDAuMzk3IDQyOS4xODlDMTQxLjI1MyA0MjkuNTI3IDE0Mi4xNDcgNDI5Ljc1OSAxNDMuMDU5IDQyOS44NzVMMTg1LjE2OSA0MzUuMzM4QzE4Ni4wODMgNDM1LjQ1NCAxODcuMDA5IDQzNS40NTQgMTg3LjkyMyA0MzUuMzM4TDIzMC4wMzMgNDI5Ljg3NUMyMzAuOTQ1IDQyOS43NTkgMjMxLjgzOSA0MjkuNTI3IDIzMi42OTUgNDI5LjE4OUwyNzIuMDE1IDQxMy44NjdDMjcyLjg3MSA0MTMuNTI5IDI3My42NzMgNDEzLjA5NSAyNzQuNDAzIDQxMi41NzVMMzA4LjY0MyAzODYuMDA3QzMwOS4zNzMgMzg1LjQ4NyAzMTAuMDI3IDM4NC44OTQgMzEwLjU5NyAzODQuMjMyTDMzNy40NzMgMzU4LjA0NUMzMzguMDQzIDM1Ny4zODMgMzM4LjUyNiAzNTYuNjYgMzM4LjkxNiAzNTUuODlMMzU4LjAzMyAzMjkuNTk3QzM1OC40MjMgMzI4LjgyNyAzNTguNzE4IDMyOC4wMjIgMzU4LjkxMyAzMjcuMTk3TDM3MC42NCAyOTUuNDY3QzM3MC44MzUgMjk0LjY0MiAzNzAuOTI3IDI5My44IDM3MC45MTMgMjkyLjk1OEwzNjkuMDUxIDI2MC4yMTdDMzY5LjAzNyAyNTkuMzc1IDM2OC45MTcgMjU4LjU0NSAzNjguNjkzIDI1Ny43MzhMMzU3Ljk2OSAyMjUuMDE5QzM1Ny43NDUgMjI0LjIxMiAzNTcuNDMxIDIyMy40NCAzNTcuMDMzIDIyMi43MTVMMzQwLjMyMSAxOTIuMjA0QzMzOS45MjMgMTkxLjQ3OSAzMzkuNDQ2IDE5MC44MDcgMzM4LjkwNiAxOTAuMTk3TDMxOC43MDMgMTYzLjkwNEMzMTguMTYzIDE2My4yOTQgMzE3LjU2MyAxNjIuNzQ5IDMxNi45MTEgMTYyLjI4TDI5MC4wMzUgMTM2LjA5M0MyODkuMzgzIDEzNS42MjQgMjg4LjY4IDEzNS4yMjkgMjg3Ljk0MSAxMzQuOTE3TDI0My43NDEgMTA4LjM0OUMyNDMuMDAyIDEwOC4wMzcgMjQyLjIzNSAxMDcuODA5IDI0MS40NDQgMTA3LjY2N0wxOTAuMzI2IDk4LjQ3QzE4OS41MzIgOTguMzI4IDE4OC43MjQgOTguMjg0IDE4Ny45MSA5OC4zMzhMMTM0Ljc1NCA5OS42NjdDMTMzLjk0IDk5LjcyMSAxMzMuMTMyIDk5Ljg2NSAxMzIuMzQxIDEwMC4wOTdMODEuMjIzIDEwOS4yOTdDNzkuNDM2IDEwOS41MjkgNzguNjY5IDEwOS44NTcgNzcuOTQyIDExMC4yNzNMMzMuNjk2IDEzMS4yNjlDMzIuOTY5IDEzMS42ODUgMzIuMjk0IDEzMi4xODUgMzEuNjg2IDEzMi43NTdMLTQuMDU0IDE1OS4zMjVDLTQuNjYyIDE1OS44OTcgLTUuMTkyIDE2MC41MzQgLTUuNjMyIDE2MS4yMjVMLTMzLjEyMiAxODQuNDc3Qy0zMy41NjIgMTg1LjE2OCAtMzMuOTE3IDE4NS45MTEgLTM0LjE2NiAxODYuNjk3TC01NC42ODQgMjEyLjEzOUMtNTQuOTMzIDIxMi45MjUgLTU1LjA4NSAyMTMuNzUzIC01NS4xMzcgMjE0LjU5N0wtNjIuNzcyIDI0Ni45MTJDLTYyLjgyNCAyNDcuNzU2IC02Mi43NzQgMjQ4LjYwMyAtNjIuNjIyIDI0OS40MjlMLTU3LjM4NCAyODEuODIxQy01Ny4yMzIgMjgyLjY0NyAtNTYuOTggMjgzLjQ0NiAtNTYuNjI4IDI4NC4xOThMLTQ0LjM5MiAzMTQuMDk3Qy00NC4wNDYgMzE0Ljg0OSAtNDMuNjEgMzE1LjU1MSAtNDMuMDk1IDMxNi4xOTdMLTIzLjg2MyAzNDIuNjM5Qy0yMy4zNDggMzQzLjI4NSAtMjIuNzUyIDM0My44MzcgLTIyLjA5IDM0NC4yOEwzLjY4MiAzNjguMjJDNC4zNDQgMzY4LjY2MyA1LjA2IDM2OC45ODkgNS44MSAzNjkuMTkzTDU0LjE4NCAzODguMzUxQzU0LjkzNCAzODguNTU1IDU1LjcwOCAzODguNjM3IDU2LjQ4MiAzODguNTk3TDEwNy4wNzIgMzg2LjY2N0MxMDcuODQ2IDM4Ni42MjcgMTA4LjYwOSAzODYuNDY1IDEwOS4zNDMgMzg2LjE4OUwxNTkuODQyIDM3MS41MjVDMTYwLjU3NiAzNzEuMjQ5IDE2MS4yNyAzNzAuNzYyIDE2MS45MDcgMzcwLjE4NEwyMTAuMjE2IDM0OS4yODNDMjEwLjg1MyAzNDguNzA1IDIxMS40NDIgMzQ4LjA0NiAyMTEuOTMxIDM0Ny4zMTVMMjM5LjQyMSAzMjQuMDYzQzIzOS45MSAzMjMuMzM0IDI0MC4zMDIgMzIyLjU0NSAyNDAuNTkyIDMyMS43MTdMMjU2LjU0NSAyODkuMzI2QzI1Ni44MzUgMjg4LjQ5OCAyNTcuMDIzIDI4Ny42MzMgMjU3LjEwNyAyODYuNzUxTDI2NC43NDIgMjU0LjQzNkMyNjQuODI2IDI1My41NTQgMjY0LjgwNyAyNTIuNjU5IDI2NC42ODUgMjUxLjc3N0wyNDQuMTY3IDIyNi4zMzVDMjQ0LjA0NSAyMjUuNDUzIDI0My44MjMgMjI0LjU5OCAyNDMuNTA5IDIyMy43ODJMMjE2LjAxOSAyMDAuNTNDMjE1LjcwNSAxOTkuNzE0IDIxNS4yOTUgMTk4Ljk1MSAyMTQuNzk5IDE5OC4yNTFMMTc4LjA1NyAxNzEuNjgzQzE3Ny41NjEgMTcwLjk4MyAxNzYuOTc5IDE3MC4zNTYgMTc2LjMyNyAxNjkuODA0TDE0OS40NTEgMTQzLjYxN0MxNDguNzk5IDE0My4wNjUgMTQ4LjA4NCAxNDIuNTk5IDE0Ny4zMTcgMTQyLjIxN0wxMDUuNzA5IDEyMS4yMjFDMTA0Ljk0MiAxMjAuODM5IDEwNC4xMzQgMTIwLjU0NyAxMDMuMzA0IDEyMC4zNTFMNTIuMTg2IDExMS4xNTFDNTEuMzU2IDExMC45NTUgNTAuNTA4IDExMC44NTUgNDkuNjU0IDExMC44NTFMLTMuNTAyIDEwOS42MjJDLTQuMzU2IDEwOS42MTggLTUuMjA0IDEwOS43MTggLTYuMDM0IDEwOS45MjRMLTQ3LjE1MiAxMTkuMTI4Qy00Ny45ODIgMTE5LjMzNCAtNDguNzkxIDExOS42MjYgLTQ5LjU1OCAxMjAuMDA4TC05MS4xNjYgMTQzLjI0Qy05MS45MzMgMTQzLjYyMiAtOTIuNjQ4IDE0NC4wODggLTkzLjMwIDE0NC42NEwtMTIwLjE3NiAxNzAuODI3Qy0xMjAuODI4IDE3MS4zNzkgLTEyMS40MzEgMTcxLjk5NCAtMTIxLjk3MSAxNzIuNjY0TDEzOC4xMzkgMTk5LjM1NEMxMzguNTc5IDIwMC4xMjQgMTM4LjkyNCAyMDAuOTM3IDEzOS4xNzIgMjAxLjc4M0wxNTUuMTE4IDIzNC4xOTRDMTU1LjM2NiAyMzUuMDQgMTU1LjUxOCAyMzUuOTEyIDE1NS41NyAyMzYuNzk0TDE2My4yMDUgMjY5LjEwOUMxNjMuMjU3IDI2OS45OTEgMTYzLjIwOCAyNzAuODg2IDE2My4wNTggMjcxLjc2OEwxNDIuNTQgMjk3LjIxQzE0Mi4zOSAyOTguMDkyIDE0Mi4xNDggMjk4Ljk0NyAxNDEuODE2IDI5OS43NjNMMTE0LjMyNiAzMjMuMDE1QzExMy45OTQgMzIzLjgzMSAxMTMuNTc0IDMyNC41OTUgMTEzLjA3OCAzMjUuMjk1TDc2LjMzNiAzNTEuOTI3Qzc1Ljg0IDM1Mi42MjcgNzUuMjU4IDM1My4yNTQgNzQuNjA2IDM1My44MDZMNzQuNjA2IDM1My44MDZaIiBmaWxsPSIjRkY1NzU3IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz4KPGNpcmNsZSBjbGlwLXBhdGg9InVybCgjY2xpcDApIiBjeD0iMjYxIiBjeT0iMTc5IiByPSIyMCIgZmlsbD0iI0ZGQjcwNyIvPgo8cGF0aCBjbGlwLXBhdGg9InVybCgjY2xpcDApIiBkPSJNMjYxIDEzNWMwIDI0LjI1Ni0xOS43NDQgNDQtNDQgNDRzLTQ0LTE5Ljc0NC00NC00NCAxOS43NDQtNDQgNDQtNDQgNDQgMTkuNzQ0IDQ0IDQ0WiIgc3Ryb2tlPSIjRkY1NzU3IiBzdHJva2Utd2lkdGg9IjEwIiBmaWxsPSJub25lIi8+Cjwvc3ZnPg==) no-repeat 1rem/1.8rem, #b32121;
    color: white;
    display: block;
    outline: 0.6rem solid #b32121;
    text-decoration: none;
    padding: 1rem;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

/* Redirect page styles */
.redirect-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.redirect-content {
    text-align: center;
    color: white;
    padding: 2rem;
}

.redirect-content .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(255, 255, 255, 0.3);
    border-top: 4px solid white;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.redirect-content p {
    font-size: 1.2rem;
    margin: 0;
    opacity: 0.9;
}

.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;
}

.loading-progress {
    position: relative;
    display: block;
    width: 8rem;
    height: 8rem;
    margin: 20vh auto 1rem auto;
}

    .loading-progress circle {
        fill: none;
        stroke: #e0e0e0;
        stroke-width: 0.6rem;
        transform-origin: 50% 50%;
        transform: rotate(-90deg);
    }

        .loading-progress circle:last-child {
            stroke: #1b6ec2;
            stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
            transition: stroke-dasharray 0.05s ease-in-out;
        }

.loading-progress-text {
    position: absolute;
    text-align: center;
    font-weight: bold;
    inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
}

    .loading-progress-text:after {
        content: var(--blazor-load-percentage-text, "Loading");
    }

code {
    color: #c02d76;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* Login Page Styles */
.login-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 20px;
}

.login-card {
    background: white;
    border-radius: 15px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
    padding: 40px;
    width: 100%;
    max-width: 400px;
    text-align: center;
}

.logo-section {
    margin-bottom: 30px;
}

.logo {
    width: 120px;
    height: auto;
    margin-bottom: 20px;
}

.login-title {
    color: #333;
    margin-bottom: 30px;
    font-weight: 600;
    font-size: 24px;
}

.form-group {
    margin-bottom: 20px;
    text-align: left;
}

.form-group label {
    display: block;
    margin-bottom: 8px;
    color: #555;
    font-weight: 500;
}

.form-control {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #e1e5e9;
    border-radius: 8px;
    font-size: 16px;
    transition: border-color 0.3s ease;
}

.form-control:focus {
    outline: none;
    border-color: #667eea;
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.form-control.is-invalid {
    border-color: #dc3545;
}

.invalid-feedback {
    display: block;
    width: 100%;
    margin-top: 5px;
    font-size: 14px;
    color: #dc3545;
}

.btn-primary {
    width: 100%;
    padding: 12px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: none;
    border-radius: 8px;
    color: white;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
}

.form-check {
    text-align: left;
    margin-top: 20px;
}

.form-check-input {
    margin-right: 8px;
}

.forgot-password {
    margin-top: 20px;
}

.forgot-password a {
    color: #667eea;
    text-decoration: none;
    font-size: 14px;
}

.forgot-password a:hover {
    text-decoration: underline;
}

.error-message {
    background-color: #f8d7da;
    color: #721c24;
    padding: 12px;
    border-radius: 8px;
    margin-bottom: 20px;
    border: 1px solid #f5c6cb;
}

.site-list {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #e1e5e9;
    border-radius: 8px;
    margin-bottom: 20px;
}

.site-item {
    padding: 10px 15px;
    border-bottom: 1px solid #e1e5e9;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.site-item:hover {
    background-color: #f8f9fa;
}

.site-item.selected {
    background-color: #667eea;
    color: white;
}

.site-item:last-child {
    border-bottom: none;
}
