:root {
    --font-display: 'Manrope', sans-serif;
    --font-body: 'Inter', sans-serif;
    --font-mono: 'IBM Plex Mono', monospace;
}

html, body {
    height: 100%;
    overflow-x: hidden;
    overflow-y: hidden;
    max-width: 100vw;
}

.mud-main-content {
    height: 100vh;
    height: 100dvh;
    overflow-y: auto;
}

body, .mud-typography-body1, .mud-typography-body2 {
    font-family: var(--font-body);
}

h1, h2, h3, h4, h5, h6,
.mud-typography-h1, .mud-typography-h2, .mud-typography-h3,
.mud-typography-h4, .mud-typography-h5, .mud-typography-h6 {
    font-family: var(--font-display);
}

.mono {
    font-family: var(--font-mono);
}

.ticket-stub {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    flex-wrap: nowrap;
}

.ticket-stub__id {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
    flex-shrink: 0;
}

.ticket-stub__status {
    flex-shrink: 0;
}

.ticket-stub__divider {
    flex: 0 0 auto;
    width: 1px;
    align-self: stretch;
    border-left: 1px dashed var(--mud-palette-text-disabled);
}

.ticket-stub__body {
    flex: 1 1 200px;
    min-width: 0;
}

.ticket-stub__title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.status-dot {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
}

.status-dot--pulse {
    animation: status-pulse 1.6s ease-in-out infinite;
}

@keyframes status-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

@media (prefers-reduced-motion: reduce) {
    .status-dot--pulse {
        animation: none;
    }
}

.ticket-stub-link {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: var(--mud-default-borderradius);
}

.ticket-stub-link:focus-visible {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: 2px;
}

.login-card {
    border-top: 3px solid var(--mud-palette-primary);
}

@media (max-width: 600px) {
    .mud-snackbar-location-top-right,
    .mud-snackbar-location-top-left,
    .mud-snackbar-location-bottom-right,
    .mud-snackbar-location-bottom-left {
        left: 16px;
        right: 16px;
    }

    .mud-snackbar {
        max-width: none;
    }
}

.login-backdrop {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow-y: auto;
    background-color: var(--mud-palette-background);
    background-image:
        radial-gradient(ellipse 70% 60% at 50% 32%, rgba(var(--mud-palette-primary-rgb), 0.24), transparent 70%),
        radial-gradient(ellipse 50% 45% at 88% 92%, rgba(var(--mud-palette-primary-rgb), 0.10), transparent 70%),
        radial-gradient(rgba(var(--mud-palette-primary-rgb), 0.4) 1px, transparent 1.5px);
    background-size: 100% 100%, 100% 100%, 28px 28px;
}