@import url('open.iconic/font/css/open-iconic-bootstrap.min.css');

/* Color system from site-new.css */
:root {
    --white-hsl: 0,0%,100%;
    --black-hsl: 197.04,100%,31.76%;
    --safeLightAccent-hsl: #f5f5f5;
    --safeDarkAccent-hsl: 0,0%,0%;
    --safeInverseAccent-hsl: 0,0%,0%;
    --safeInverseLightAccent-hsl: 0,0%,0%;
    --safeInverseDarkAccent-hsl: 0,0%,100%;
    --accent-hsl: 60,1.82%,89.22%;
    --lightAccent-hsl: 24,11.63%,8.43%;
    --darkAccent-hsl: 0,.99%,80.2%;
    /* Set background to white */
    --color-bg: hsla(var(--white-hsl), 1);
    --color-text: hsla(var(--black-hsl), 1);
    --color-accent: #dc3545;
    --color-error-bg: hsla(var(--lightAccent-hsl), 1);
    --color-error-shadow: hsla(var(--darkAccent-hsl), 0.2);
    --footer-height: 60px;
    --container-padding-x: 15px;
    --container-padding-top: 60px;
    --input-bg: #fff;
    --input-border: #ced4da;
    --input-focus: #0d6efd;
    --placeholder-color: #6c757d;
    --link-color: #0d6efd;
    --link-hover: #66b3ff;
}
html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: var(--color-bg);
    color: var(--color-text);
    min-height: 100%;
}

body {
    /* margin-bottom: var(--footer-height); */
}

.footer {
    width: 100%;
    height: var(--footer-height);
    background-color: var(--color-bg);
    color: var(--color-text);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-bg {
    background-color: var(--color-bg) !important;
    color: var(--color-text) !important;
}

/* Utility: Ensure text-muted is readable on dark bg */
.text-muted {
    color: #b0b0b0 !important;
}

/* --- Form and input improvements for dark UI --- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
textarea,
select {
    background-color: var(--input-bg) !important;
    color: var(--color-text);
    border: 1px solid var(--input-border);
    border-radius: 0.25rem;
    transition: border-color 0.2s, box-shadow 0.2s;
}

    input::placeholder,
    textarea::placeholder {
        color: var(--placeholder-color) !important;
        opacity: 1 !important;
    }

/* Bootstrap 5 floating label support for dark UI */
.form-floating > .form-control::placeholder {
    color: transparent !important;
    opacity: 1 !important;
}

.form-floating > label {
    color: var(--placeholder-color) !important;
    opacity: 1 !important;
    background: transparent;
    transition: color 0.2s;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
    color: var(--color-text) !important;
    opacity: 1 !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
textarea:focus,
select:focus {
    border-color: var(--input-focus);
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(13,110,253,.25);
    background-color: var(--input-bg);
    color: var(--color-text);
}

label {
    color: var(--color-text);
    font-weight: 500;
}

a {
    color: var(--link-color);
    text-decoration: underline;
    transition: color 0.2s;
}

    a:hover, a:focus {
        color: var(--link-hover);
        text-decoration: underline;
    }

.btn-primary, .btn-primary:focus, .btn-primary:active {
    background-color: #0d6efd;
    border-color: #0d6efd;
    color: #fff;
}

    .btn-primary:hover {
        background-color: #0b5ed7;
        border-color: #0a58ca;
        color: #fff;
    }

/* Validation messages */
.field-validation-error, .validation-summary-errors, .validation-message {
    color: #dc3545 !important;
    font-weight: 600;
}

.invalid {
    outline: 1px solid var(--color-accent);
}

/* Checkbox/radio label spacing */
.form-check-label {
    margin-left: 0.3em;
}

/* Blazor error UI */
#blazor-error-ui {
    background: var(--color-error-bg);
    bottom: 0;
    box-shadow: 0 -1px 2px var(--color-error-shadow);
    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;
    }

code {
    font-size: 80%;
}

/* Force placeholder color for all browsers and Bootstrap floating labels */
input::placeholder,
textarea::placeholder {
    color: var(--placeholder-color) !important;
    opacity: 1 !important;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: var(--placeholder-color) !important;
    opacity: 1 !important;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
    color: var(--placeholder-color) !important;
    opacity: 1 !important;
}
.form-floating > .form-control::placeholder {
    color: transparent !important;
    opacity: 1 !important;
}

/* Responsive: make forms look good on mobile */
@media (max-width: 576px) {
    .footer > .container,
    .footer > .container-fluid {
        padding-right: 5px;
        padding-left: 5px;
    }
}

.cookie-modal-light .modal-content {
    background: #ededed;
    color: #111;
}
.cookie-modal-light .modal-title,
.cookie-modal-light .modal-body {
    color: #111;
}
.cookie-modal-light .btn-primary {
    background: #111;
    color: #ededed;
    border: none;
}
