/* GameDay Itinerary — elder-friendly base styles (Constitution §1, spec §9).
   Large base font: 18px root so every rem-based MudBlazor size scales up. */
html {
    font-size: 18px;
}

/* Phones: trim the base a touch so big controls/cards stop overflowing, and tighten the
   calendar + bottom nav so they fit a narrow screen. Still large and readable. */
@media (max-width: 640px) {
    html { font-size: 16px; }

    .gameday-calendar { font-size: 0.95rem; }
    .gameday-calendar .fc .fc-toolbar.fc-header-toolbar { flex-wrap: wrap; gap: 6px; margin-bottom: 0.6rem; }
    .gameday-calendar .fc .fc-toolbar-title { font-size: 1.15rem; }
    .gameday-calendar .fc .fc-button { padding: 0.35rem 0.55rem; font-size: 0.85rem; }
    .gameday-calendar .fc-daygrid-dot-event { font-size: 0.85rem; padding: 1px 2px; }
    .gameday-calendar .fc .fc-daygrid-day-number { font-size: 0.9rem; }

    .profile-nav-btn .mud-button-label { font-size: 0.68rem; }
    .profile-nav-btn { min-height: 46px; }
    .profile-nav-inner { padding: 4px 2px; gap: 2px; }
}

html, body {
    font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background-color: #ffffff;
    color: #1a1a1a;
}

/* Generous minimum tap target on interactive MudBlazor controls (spec §9: ≥ ~44px). */
.mud-button-root,
.mud-nav-link,
.mud-icon-button {
    min-height: 44px;
}

a {
    color: #0b4f8a;
}

/* FullCalendar — large, high-contrast, elder-friendly (spec §9). */
.gameday-calendar {
    font-size: 1.05rem;
}

.gameday-calendar .fc .fc-toolbar-title {
    font-size: 1.4rem;
}

.gameday-calendar .fc .fc-button {
    font-size: 1rem;
    padding: 0.5rem 0.9rem;
    text-transform: none;
}

.gameday-calendar .fc .fc-list-event-title,
.gameday-calendar .fc .fc-list-event-time {
    font-size: 1.05rem;
    padding-top: 10px;
    padding-bottom: 10px;
}

.gameday-calendar .fc .fc-daygrid-day-number {
    font-size: 1.05rem;
}

.gameday-calendar .fc .fc-event {
    cursor: pointer;
    padding: 2px 4px;
}

.gameday-calendar .fc-daygrid-day-frame {
    min-height: 44px;
}

/* Month grid "dot + time + opponent" rows — readable but compact so the grid fits the page. */
.gameday-calendar .fc-daygrid-dot-event {
    padding: 2px 4px;
    font-size: 0.95rem;
}

.gameday-calendar .fc-daygrid-more-link {
    font-size: 0.85rem;
}

/* Always-visible bottom navigation (spec §9). */
.profile-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    background: #ffffff;
    border-top: 1px solid #c9cdd3;
}

/* Keep page content (Save/Cancel, etc.) clear of the fixed bottom nav when scrolled. */
.mud-main-content {
    padding-bottom: 88px;
}

.profile-nav-inner {
    display: flex;
    justify-content: space-around;
    align-items: stretch;
    max-width: 900px;
    margin: 0 auto;
    padding: 6px 4px;
    gap: 4px;
}

.profile-nav-btn {
    flex: 1 1 0;
    min-height: 52px;
    flex-direction: column;
}

.profile-nav-btn .mud-button-label {
    font-size: 0.8rem;
}

h1:focus {
    outline: none;
}

/* Blazor framework error UI (kept from template, restyled for clarity). */
#blazor-error-ui {
    color-scheme: light only;
    background: #fff4ce;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.9rem 1.4rem 0.9rem 1.4rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-size: 1rem;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

.blazor-error-boundary {
    background: #b32121;
    padding: 1rem;
    color: white;
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}
