:root {
    color-scheme: dark;
    --focus-ring: var(--accent, #33dcff);
    --ui-success: var(--green, #00e5a0);
    --ui-warning: var(--yellow, var(--amber, #ffc840));
    --ui-danger: var(--red, var(--danger, #ff4d6d));
}

html {
    background: var(--bg, #080c14);
    scrollbar-color: var(--border2, #344761) var(--bg, #080c14);
}

body {
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

button,
a[href],
input,
select,
textarea,
summary,
[role="button"] {
    touch-action: manipulation;
}

button:focus-visible:not(:disabled),
a[href]:focus-visible,
input:focus-visible:not(:disabled),
select:focus-visible:not(:disabled),
textarea:focus-visible:not(:disabled),
summary:focus-visible,
[tabindex]:focus-visible,
[role="button"]:focus-visible {
    outline: 2px solid var(--focus-ring);
    outline-offset: 3px;
}

button:disabled,
[aria-disabled="true"] {
    cursor: not-allowed;
}

::selection {
    color: var(--bg, #080c14);
    background: var(--accent, #33dcff);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    z-index: 10000;
    top: 10px;
    left: 10px;
    padding: 10px 14px;
    color: var(--bg, #080c14);
    background: var(--accent, #33dcff);
    border-radius: 4px;
    font-weight: 600;
    text-decoration: none;
    transform: translateY(-150%);
}

.skip-link:focus {
    transform: translateY(0);
}

[aria-busy="true"] {
    cursor: progress;
}

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

@media (pointer: fine) {
    html {
        overscroll-behavior-y: none;
    }
}
