* {
    font-family: 'Rye', 'Sancreek', 'Smokum', cursive, serif !important;
}
html {
    overflow-y: scroll; /* Always reserve scrollbar space — no shift when it appears/disappears */
}
/* Core resets */
html, body {
    height: 100%;
    margin: 0;
    padding: 0 10px !important;
    background: white;
    color: #3e2723;
    font-family: 'Rye', 'Sancreek', 'Smokum', cursive, serif;
    filter: grayscale(100%) contrast(120%);
    overflow-x: hidden;
    box-sizing: border-box;
}
.page-header {
    padding: 3rem 1rem 2rem;
    text-align: center;
    border-bottom: 2px dashed #3e2723;
    margin-bottom: 2rem;
}
/* Hide scrollbar but keep scrolling */
html, body {
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */

}
/*html {
    padding: 2rem 2rem 0 2rem !important;
    scroll-behavior: smooth !important;
}*/
.western-dashed-card {
    border: 4px dashed black !important;
    border-radius: 0 !important;
    background: white !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.5) !important;
}
    html::-webkit-scrollbar,
    body::-webkit-scrollbar {
        display: none; /* Chrome, Safari */
    }
 
    input, textarea, select {
        font-size: 16px !important; /* or 1rem if your html/root is 16px */
    }

.form-control,
.form-check-input,
.input-group input,
.mud-input-slot input {
    font-size: 16px !important;
}

/*.no-filter {
    filter: none !important;
}
*/
/* Typography */
h1, h2, h3 {
    text-transform: uppercase;
}
h5 {
    word-break: break-word;
}
p, .description {
    font-size: 1.2em;
    line-height: 1.5;
}

a {
    color: black;
    text-decoration: underline dashed;
}

body, h1, p, .subtitle, footer {
    text-shadow: 2px 2px 4px rgba(0,0,0,0.4), -1px -1px 2px rgba(255,255,255,0.3);
    letter-spacing: 1px;
}
/* MudCard theme overrides for Old West look */
.mud-card-header {
    flex: 0 0 auto !important; /* Header takes its space */
}
.mud-card {
    border: 4px dashed black !important;
    border-radius: 0 !important;
    background: white !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.5) !important;
    display: flex !important;
    flex-direction: column !important;
}
    .mud-card:hover{
        cursor: pointer;
    }
    .mud-card-content {
        flex: 1 1 auto !important; /* Content expands to fill */
        overflow: hidden !important; /* Hide overflow */
        display: flex;
        flex-direction: column;
    }
    .mud-card-content .mud-typography-body1 { /* Description */
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 4; /* Limit to 4 lines */
        -webkit-box-orient: vertical;
        flex-grow: 1;
    }
    .mud-card-content .mud-typography-body2 { /* Location */
        flex: 0 0 auto !important;
        margin-top: auto !important; /* Push location to bottom */
    }
.mud-input-control-input-slot {
    font-family: 'Rye', 'Sancreek', 'Smokum', cursive, serif !important;
    color: #3e2723 !important;
    border: 1px dashed black !important;
}
/* Consistent hover for all Mud buttons */
.mud-button-root:hover {
    opacity: 0.8 !important;
    transition: opacity 0.3s ease !important;
}
/* Darken filled buttons on hover */
.mud-button-filled:hover {
    filter: brightness(0.8) !important;
    transition: filter 0.3s ease !important;
}
.pa-4 {
    margin-bottom: -110px !important;
}
/* Fill outlined/text buttons on hover */
.mud-button {
    width: fit-content !important;
}
.mud-button-outlined:hover,
.mud-button-text:hover {
    background-color: rgba(62, 39, 35, 0.2) !important; /* Light brown fill */
    transition: background-color 0.3s ease !important;
}
.mud-input-label {
    color: #3e2723 !important;
    font-weight: bold !important;
}

.mud-button-filled-primary {
    background-color: #3e2723 !important;
}
    /* Filled primary button hover (darken brown) */
    .mud-button-filled-primary:hover {
        background-color: #2c1c17 !important; /* Darker brown */
        transition: background-color 0.3s ease !important;
    }
/* Outlined button hover (fill with brown) */
.mud-button-outlined-primary:hover {
    background-color: #3e2723 !important;
    color: white !important;
    transition: all 0.3s ease !important;
}

/* Error button hover (darken red) */
.mud-button-filled-error:hover {
    background-color: #8b3626 !important; /* Darker red */
}
/* Add ripple effect if disabled somehow */
.mud-button-root {
    overflow: hidden !important; /* Ensures ripple stays inside */
}
mud-button:hover {
    background: gray;
}

.mud-button-filled-error {
    background-color: #a94442 !important;
}

    .mud-icon-button {
        border-radius: 0;
    }

.mud-picker-inline-paper {
    border: 2px dashed black;
}

 /* MudDatePicker */
.form-check .mud-popover,
.form-check .mud-popover-origin,
.form-check .mud-picker-popover {
    z-index: 1600 !important; /* Higher than MudDialog (~1300–1400) – fixes burial/clipping */
    pointer-events: auto !important;
}

/* Force full calendar size – prevents 3-column collapse or cutoff */
.mud-picker-container,
.mud-picker-calendar-container,
.mud-picker-calendar {
    min-width: 320px !important;
    width: auto !important;
    min-height: 280px !important; /* Enough for full 6-row month view */
}

/* Allow overflow so calendar can pop outside dialog bounds if needed */
.mud-dialog-content,
.mud-dialog {
    overflow: visible !important;
}

/* Optional: remove grayscale filter from pickers (they look bad in grayscale) */
.mud-picker,
.mud-popover,
.mud-day,
.mud-picker-header {
    filter: none !important;
}

/* If calendar still clips at bottom of screen – ensure viewport awareness */
@media (max-height: 600px) {
    .mud-picker-calendar {
        transform: scale(0.9) !important; /* Rare mobile fallback */
    }
}



    padding-bottom: .5rem;
}

    .form-check:hover, .form-check-input:hover {
        background-color: #f0f0f0;
        cursor: pointer !important;
    }

#iconTrash:hover {
    background: none;
}

.bounty-title {
    font-weight: bold;
    cursor: pointer;
}

    .bounty-title:hover {
        text-decoration: none;
    }

.list-group {
    list-style: none;
    padding-left: 0;
    margin-bottom: .25rem;
}


/*.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;
}*/

/* Splash page (home) */
.splash-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}

.main-content {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.form-group {
    padding: 10px;
}

.form-control {
    padding-right: 15px;
}

form-control-message {
    float: left;
}

.card {
    text-align: center;
    padding: 2rem;
    background: white;
    box-sizing: border-box;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.5);
    pointer-events: auto;
    border-radius: 0;
    border: 4px dashed black;
}

.form-control {
    padding: .25rem;
}

.subtitle2 {
    font-size: .75rem;
}
/* Footer */
.site-footer {
    font-size: .5rem;
    text-align: center;
    padding-bottom: 10px;
}

.footer-content {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
}
/* Tagline */
.site-tagline {
    padding: 2rem 1rem 6rem;
    text-align: center;
    font-size: 1.3rem;
    background: rgba(255,255,255,0.8);
    width: 100%;
}


/* Loading overlay */
.loading-overlay {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,0.95);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.spinner {
    width: 150px;
    height: 150px;
    animation: spin 3s linear infinite;
}

.loading-text {
    margin-top: 1.5rem;
    font-size: 1.8rem;
    animation: pulse 2s ease-in-out infinite;
}

/* Animations */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 0.6;
    }

    50% {
        opacity: 1;
    }
}

/* Error boundary */
.blazor-error-boundary {
    background: #b32121 url(data:image/svg+xml;base64,...) no-repeat 1rem/1.8rem;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

/* Hide Blazor default progress */
#app .loading-progress,
#app .loading-progress-text {
    display: none !important;
}

/* Responsive */


@media (max-width: 768px) {
        body, h1, p, .subtitle, footer {
        text-shadow: none !important;
    }
        .subtitle{
            text-shadow: none !important;
        }
    h1 {
        font-size: 2rem;
    }
    html {
        padding: 0 !important;
    }
    .tagline {
        font-size: 2rem;
    }

    .loading-text {
        margin-right: 1rem;
        margin-left: 1rem;
        font-size: 1rem;
    }

    .subtitle {
        font-size: 1.4rem;
    }

    .card {
        text-align: center;
        padding: 3rem 2rem;
        background: white;
        border: 5px dashed black;
        box-shadow: 10px 10px 0 #000;
        box-sizing: border-box;
    }

    .splash-container {
        /*        padding-bottom: 140px;
        */
        padding-top: 40px;
        min-height: unset;
    }

    .site-footer {
        padding-bottom: 6rem;
    }
}

