:root {
    color-scheme: dark;
    --bg: #080b12;
    --surface: #0f141f;
    --surface-raised: #151b28;
    --line: rgba(255, 255, 255, 0.1);
    --text: #f5f7fb;
    --muted: #9ba5b8;
    --accent: #6c63ff;
    --accent-bright: #8e88ff;
    --cyan: #55d9e8;
    --success: #55d9a3;
    --warning: #f6bd63;
    --danger: #ff7185;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-synthesis: none;
}

* { box-sizing: border-box; }

html { min-width: 320px; background: var(--bg); }

body {
    margin: 0;
    min-height: 100vh;
    background:
        radial-gradient(circle at 72% -10%, rgba(108, 99, 255, 0.17), transparent 34rem),
        radial-gradient(circle at 10% 25%, rgba(85, 217, 232, 0.06), transparent 27rem),
        var(--bg);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
}

button, input { font: inherit; }
button { color: inherit; }
a { color: inherit; }

button:focus-visible, input:focus-visible, a:focus-visible {
    outline: 2px solid var(--cyan);
    outline-offset: 3px;
}

h1:focus { outline: none; }

#blazor-error-ui {
    display: none;
    position: fixed;
    z-index: 1000;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    max-width: 42rem;
    margin: auto;
    padding: 1rem 3rem 1rem 1.2rem;
    border: 1px solid rgba(255, 113, 133, 0.5);
    border-radius: 12px;
    background: #29131a;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
}

#blazor-error-ui .reload { margin-left: .75rem; color: #ffacb8; }
#blazor-error-ui .dismiss {
    position: absolute;
    top: .55rem;
    right: .75rem;
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    cursor: pointer;
}

.blazor-error-boundary {
    padding: 1rem;
    border-radius: 12px;
    background: #29131a;
    color: #ffdce1;
}

.blazor-error-boundary::after { content: "Something went wrong."; }

.state-page {
    width: min(100% - 40px, 620px);
    margin: 12vh auto 0;
    padding: 3rem;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(15, 20, 31, .85);
    text-align: center;
}

.state-code { color: var(--accent-bright); font: 700 .75rem Consolas, monospace; letter-spacing: .15em; }
.state-page h1 { margin: .8rem 0; font-size: 2rem; }
.state-page p { color: var(--muted); line-height: 1.6; }
.state-page .request-id { font-size: .72rem; }
.state-page a { display: inline-block; margin-top: 1rem; color: #bcb8ff; font-weight: 650; text-decoration: none; }
.state-page a:hover { text-decoration: underline; }

.legal-page {
    width: min(100% - 40px, 820px);
    margin: 0 auto;
    padding: 70px 0 30px;
}

.legal-heading { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.legal-kicker { color: var(--accent-bright); font-size: .68rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.legal-heading h1 { margin: .7rem 0 .6rem; font-size: clamp(2.2rem, 6vw, 3.7rem); letter-spacing: -.045em; }
.legal-heading p { margin: 0; color: var(--muted); font-size: .78rem; }
.legal-summary { margin: 2rem 0; padding: 1.25rem 1.4rem; border: 1px solid rgba(142, 136, 255, .2); border-radius: 13px; background: rgba(108, 99, 255, .055); }
.legal-summary strong { font-size: .82rem; }
.legal-summary p { margin-bottom: 0; }
.legal-page section { padding: 1.35rem 0; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.legal-page section:last-child { border-bottom: 0; }
.legal-page h2 { margin: 0 0 .7rem; font-size: 1rem; letter-spacing: -.01em; }
.legal-page p, .legal-page li { color: #9ba5b8; font-size: .84rem; line-height: 1.72; }
.legal-page p { margin: .45rem 0; }
.legal-page ul { margin: .6rem 0; padding-left: 1.35rem; }
.legal-page li { margin: .4rem 0; }
.legal-page a { color: #aaa5ff; text-underline-offset: 3px; }
.legal-page code { padding: .12rem .3rem; border-radius: 4px; background: rgba(255, 255, 255, .06); color: #cbd0dc; }

@media (max-width: 600px) {
    .legal-page { width: min(100% - 28px, 820px); padding-top: 48px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
