@layer reset, tokens, base, layout, components, utilities, pages, overrides;

@layer tokens {
    :root {
        --bg: #ffffff;
        --fg: #1a1a1a;
        --accent: #b01827;
        --accent-fg: #ffffff;
        --muted: #5a5a5a;
        --border: #cccccc;
        --focus: #0050d2;
        --error-bg: #fde7e9;
        --error-fg: #7a0a16;
        --success-bg: #e3f5e1;
        --success-fg: #0d4f12;
        --warning-bg: #fff4d6;
        --warning-fg: #6a4400;
        --info-bg: #e7eefc;
        --info-fg: #08387a;
        --radius: 6px;
        --max-width: 920px;
        --z-base: 1;
        --z-header: 10;
        --z-overlay: 100;
        --z-skip-link: 1000;
    }

    @media (prefers-color-scheme: dark) {
        :root {
            --bg: #121417;
            --fg: #f0f1f3;
            --accent: #e85666;
            --accent-fg: #1a1a1a;
            --muted: #aab0b8;
            --border: #4a4f55;
            --focus: #79a8ff;
            --error-bg: #4a1a1d;
            --error-fg: #ffd5d9;
            --success-bg: #143d18;
            --success-fg: #c8efc6;
            --warning-bg: #463500;
            --warning-fg: #ffe8a0;
            --info-bg: #102b54;
            --info-fg: #cfdcf6;
        }
    }

    @media (forced-colors: active) {
        :root {
            --bg: Canvas;
            --fg: CanvasText;
            --accent: LinkText;
            --accent-fg: Canvas;
            --muted: GrayText;
            --border: CanvasText;
            --focus: Highlight;
        }
    }
}

@layer reset {
    * {
        box-sizing: border-box;
        margin: 0px;
        padding: 0px;
    }

    html {
        background: #ffffff;
    }
}

@layer base {
    html,
    body {
        background: var(--bg);
        color: var(--fg);
        font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
        line-height: 1.5;
    }

    :focus-visible {
        outline: 3px solid var(--focus);
        outline-offset: 2px;
        border-radius: 3px;
    }
}

@layer layout {
    .site-header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding-block: 16px;
        padding-inline: 32px;
        border-block-end: 1px solid var(--border);
        background: var(--bg);
        z-index: var(--z-header);
    }

    .site-main {
        max-width: var(--max-width);
        margin-block: 32px;
        margin-inline: auto;
        padding-inline: 16px;
    }

    .site-footer {
        border-block-start: 1px solid var(--border);
        margin-block-start: 64px;
        padding-block: 16px;
        padding-inline: 32px;
        text-align: center;
        color: var(--muted);
        background: var(--bg);
    }

    .site-nav a {
        color: var(--fg);
        text-decoration: none;
        margin-inline-start: 24px;
        padding-block: 6px;
        padding-inline: 4px;
        border-block-end: 2px solid transparent;
    }

    .site-nav a[aria-current="page"] {
        border-block-end-color: var(--accent);
        font-weight: 600;
    }

    .brand {
        font-weight: 700;
        color: var(--fg);
        text-decoration: none;
    }

    .brand[aria-current="page"] {
        text-decoration: underline;
        text-underline-offset: 4px;
    }
}

@layer utilities {
    .visually-hidden {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0px;
        padding: 0px;
        margin: -1px;
    }

    .skip-link {
        position: absolute;
        inset-inline-start: -9999px;
        inset-block-start: 0px;
        background: var(--focus);
        color: #ffffff;
        padding-block: 12px;
        padding-inline: 16px;
        z-index: var(--z-skip-link);
        text-decoration: none;
        border-radius: var(--radius);
    }

    .skip-link:focus,
    .skip-link:focus-visible {
        inset-inline-start: 8px;
        inset-block-start: 8px;
        outline: 3px solid var(--focus);
        outline-offset: 2px;
    }
}

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