:root {
    --cs-color-accent: #df8e1d;
    --cs-color-accent-bright: #e49a24;
    --cs-color-accent-highlight: #eda83a;
    --cs-color-accent-pressed: #bd6f0d;
    --cs-color-accent-rgb: 223 142 29;
    --cs-color-accent-soft: rgb(var(--cs-color-accent-rgb) / 14%);
    --cs-color-background: #080909;
    --cs-color-background-raised: #101111;
    --cs-color-surface: #171818;
    --cs-color-surface-hover: #1d1f1f;
    --cs-color-border: rgb(255 255 255 / 14%);
    --cs-color-border-accent: rgb(var(--cs-color-accent-rgb) / 52%);
    --cs-color-text: #f7f7f6;
    --cs-color-text-secondary: #aaaead;
    --cs-color-success: #75b63b;
    --cs-color-error: #ef6557;
    --cs-radius-sm: .65rem;
    --cs-radius-md: 1rem;
    --cs-radius-lg: 1.35rem;
    --cs-shadow-card: 0 .9rem 2.6rem rgb(0 0 0 / 32%);
    --cs-shadow-accent: 0 .5rem 1.8rem rgb(var(--cs-color-accent-rgb) / 20%);
    --cs-space-1: .25rem;
    --cs-space-2: .5rem;
    --cs-space-3: .75rem;
    --cs-space-4: 1rem;
    --cs-space-5: 1.5rem;
    --cs-space-6: 2rem;
    --cs-space-7: 3rem;
    --cs-header-height: 4.75rem;
    --cs-bottom-nav-height: 5rem;
    --cs-content-width: 72rem;
}

html,
body {
    background: var(--cs-color-background);
    color: var(--cs-color-text);
}

body { overflow-x: hidden; }

button,
a,
input,
select,
textarea { font: inherit; }

:focus-visible {
    outline: .16rem solid var(--cs-color-accent-bright);
    outline-offset: .2rem;
}

.cs-card {
    border: 1px solid var(--cs-color-border);
    border-radius: var(--cs-radius-lg);
    background: linear-gradient(145deg, rgb(255 255 255 / 3%), transparent 55%), var(--cs-color-surface);
    box-shadow: var(--cs-shadow-card);
}

.cs-eyebrow {
    margin: 0 0 var(--cs-space-2);
    color: var(--cs-color-accent-bright);
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.cs-section-heading {
    display: flex;
    align-items: center;
    gap: var(--cs-space-3);
    margin: 0;
    color: var(--cs-color-text);
    font-size: 1.05rem;
    font-weight: 700;
}

.cs-section-heading i { color: var(--cs-color-accent-bright); }

.cs-button-primary,
.cs-button-secondary,
.custom-button,
.register-button {
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
    background-clip: padding-box;
    cursor: pointer;
    min-height: 2.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--cs-space-2);
    padding: .7rem 1.1rem;
    border-radius: var(--cs-radius-sm);
    font-weight: 700;
    text-decoration: none;
    touch-action: manipulation;
    transition: transform 150ms ease, background-color 150ms ease, background-image 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.cs-button-primary,
.custom-button {
    border: 1px solid var(--cs-color-accent);
    background-color: var(--cs-color-accent);
    background-image: linear-gradient(135deg, var(--cs-color-accent-highlight), var(--cs-color-accent-bright) 45%, var(--cs-color-accent));
    color: #111;
    box-shadow: var(--cs-shadow-accent);
}

.cs-button-secondary,
.register-button {
    border: 1px solid var(--cs-color-border-accent);
    background: var(--cs-color-accent-soft);
    color: var(--cs-color-accent-bright);
}

.cs-button-primary:focus-visible,
.cs-button-secondary:focus-visible,
.custom-button:focus-visible,
.register-button:focus-visible {
    outline-color: var(--cs-color-accent-highlight);
}

.cs-button-primary:active:not(:disabled),
.custom-button:active:not(:disabled) {
    background-color: var(--cs-color-accent-pressed);
    background-image: linear-gradient(135deg, var(--cs-color-accent-bright), var(--cs-color-accent-pressed));
    box-shadow: 0 .25rem .9rem rgb(var(--cs-color-accent-rgb) / 18%);
    transform: translateY(1px);
}

.cs-button-secondary:active:not(:disabled),
.register-button:active:not(:disabled) {
    background: rgb(var(--cs-color-accent-rgb) / 24%);
    transform: translateY(1px);
}

.cs-button-primary:disabled,
.cs-button-secondary:disabled,
.custom-button:disabled,
.register-button:disabled {
    cursor: not-allowed;
    opacity: .55;
    transform: none;
}

@media (hover: hover) and (pointer: fine) {
    .cs-button-primary:hover,
    .cs-button-secondary:hover,
    .custom-button:hover,
    .register-button:hover {
        transform: translateY(-1px);
        color: inherit;
        text-decoration: none;
    }

    .cs-button-primary:hover,
    .custom-button:hover {
        background-image: linear-gradient(135deg, var(--cs-color-accent-highlight), var(--cs-color-accent-bright) 48%, var(--cs-color-accent));
        box-shadow: 0 .65rem 2rem rgb(var(--cs-color-accent-rgb) / 25%);
    }

    .cs-button-secondary:hover,
    .register-button:hover {
        background: rgb(var(--cs-color-accent-rgb) / 20%);
    }
}

.cs-page {
    display: grid;
    gap: var(--cs-space-4);
}

.cs-page-hero {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    justify-content: space-between;
    gap: var(--cs-space-4);
    padding: var(--cs-space-5);
    border: 1px solid var(--cs-color-border-accent);
    border-radius: var(--cs-radius-lg);
    background: linear-gradient(135deg, rgb(var(--cs-color-accent-rgb) / 16%), transparent 58%), var(--cs-color-surface);
    box-shadow: var(--cs-shadow-card);
}

.cs-page-hero h1 {
    margin: 0;
    color: var(--cs-color-text);
    font-size: clamp(2rem, 8vw, 3.2rem);
    font-weight: 850;
    line-height: 1.05;
}

.cs-page-hero p:last-child {
    margin: var(--cs-space-2) 0 0;
    color: var(--cs-color-text-secondary);
}

.cs-field {
    display: grid;
    gap: var(--cs-space-2);
}

.cs-field-label {
    margin: 0;
    color: var(--cs-color-text);
    font-size: .88rem;
    font-weight: 700;
}

.cs-input {
    width: 100%;
    min-height: 3rem;
    padding: .7rem .85rem;
    border: 1px solid var(--cs-color-border);
    border-radius: var(--cs-radius-sm);
    background: var(--cs-color-background-raised);
    color: var(--cs-color-text);
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.cs-input:focus {
    border-color: var(--cs-color-accent-bright);
    outline: none;
    box-shadow: 0 0 0 .2rem var(--cs-color-accent-soft);
}

.cs-input:disabled {
    color: var(--cs-color-text-secondary);
    cursor: not-allowed;
    opacity: .72;
}

.cs-validation {
    color: var(--cs-color-error);
    font-size: .8rem;
}

.cs-chip {
    appearance: none;
    cursor: pointer;
    min-height: 2.55rem;
    padding: .55rem .85rem;
    border: 1px solid var(--cs-color-border);
    border-radius: 999px;
    background: var(--cs-color-background-raised);
    color: var(--cs-color-text-secondary);
    font-weight: 650;
    transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease;
}

.cs-chip:hover,
.cs-chip:focus-visible,
.cs-chip.active {
    border-color: var(--cs-color-border-accent);
    background: var(--cs-color-accent-soft);
    color: var(--cs-color-accent-bright);
}

.cs-chip.active {
    border-color: var(--cs-color-accent-bright);
    background: var(--cs-color-accent-bright);
    color: #111;
    box-shadow: 0 .35rem 1rem rgb(var(--cs-color-accent-rgb) / 18%);
}

.cs-empty-state {
    padding: var(--cs-space-6);
    color: var(--cs-color-text-secondary);
    text-align: center;
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media (min-width: 768px) {
    .cs-page { gap: var(--cs-space-5); }
    .cs-page-hero { padding: var(--cs-space-6); }
}
