html, body {
    margin: 0;
    padding: 0;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background-color: #f7f7f7;
    color: #333;
    overflow-x: hidden;
}

h1:focus {
    outline: none;
}

a {
    color: #333;
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Base styles for Blazor forms */
.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+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI5MC4xOCA3NS44MzkyQzI5MS45NzIgNzcuNjMxMSAyOTEuOTcyIDgwLjQ5MzggMjkwLjE4IDgyLjI4NTdMMjY2LjYwNiAxMDUuODU5QzI2NS44MTMgMTA2LjY0MSAyNjQuNzE3IDEwNy4xMjUgMjYzLjUwNiAxMDcuMTI1TDI1Ny4yNTYgMTA3LjEyNUMyNTYuMDQ1IDEwNy4xMjUgMjU0LjEyNSAxMDUuODU5IDI1NC4xMjUgMTA1Ljg1OUwyNTQuMTI1IDUyLjI2NThDMjU0LjEyNSA1Mi4yNjU4IDI1Ni4wNDUgNTEgMjU3LjI1NiA1MUwyNjMuNTA2IDUxWiIgZmlsbD0iI0ZGRTIwMCIgZmlsbC1ydWxlPSJldmVub2RkIi8+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI5MC4xOCA3NS44MzkyQzI5MS45NzIgNzcuNjMxMSAyOTEuOTcyIDgwLjQ5MzggMjkwLjE4IDgyLjI4NTdMMjY2LjYwNiAxMDUuODU5QzI2NS44MTMgMTA2LjY0MSAyNjQuNzE3IDEwNy4xMjUgMjYzLjUwNiAxMDcuMTI1TDI1Ny4yNTYgMTA3LjEyNUMyNTYuMDQ1IDEwNy4xMjUgMjU0Ljk0OSAxMDYuNjQxIDI1NC4xNTYgMTA1Ljg1OUwyMzAuNTgyIDgyLjI4NTdDMjI4Ljc5IDgwLjQ5MzggMjI4Ljc5IDc3LjYzMTEgMjMwLjU4MiA3NS44MzkyTDI1NC4xNTYgNTIuMjY1OEMyNTQuOTQ5IDUxLjQ4MzcgMjU2LjA0NSA1MSAyNTcuMjU2IDUxTDI2My41MDYgNTFaIiBzdHJva2U9IiNGRkUyMDAiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0iI0ZGRTIwMCIgZmlsbC1ydWxlPSJldmVub2RkIi8+PHBhdGggZD0iTTI2MS41MDYgNjZMMjYxLjUwNiA5MS4yMDA1IiBzdHJva2U9IiMxQTFBMUEiIHN0cm9rZS13aWR0aD0iMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PHBhdGggZD0iTTI2MS41MDYgOTguMjAxM0wyNjEuNTA2IDk4LjIwMTMiIHN0cm9rZT0iIzFBMUExQSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L2c+PC9zdmc+) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "Wystąpił błąd aplikacji.";
    }

/* Structured Data - do not display visually */
script[type="application/ld+json"] {
    display: none;
}

/* ===== Page loader spinner (replacement for Rive animation) ===== */
.page-loader {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f7f7f7;
    z-index: 9999;
    transition: opacity .3s ease;
}

.page-loader.hidden {
    opacity: 0;
    pointer-events: none;
}

.page-loader-spinner {
    width: 48px;
    height: 48px;
    border: 3px solid #ddd;
    border-top-color: #333;
    border-radius: 50%;
    animation: spin .8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .page-loader-spinner {
        animation: none;
        border-top-color: #333;
    }
}
/* Cookie consent scroll lock */
body.cookie-noscroll {
    overflow: hidden;
}
