/* ─── Scurry — Individual Racing Ladder ─────────────────────────────────── */
/* Clean, modern light theme */

:root {
    --scurry-primary: #0d9488;
    --scurry-primary-light: #14b8a6;
    --scurry-accent: #e11d48;
    --scurry-surface: #f8fafc;
    --scurry-card: #ffffff;
    --scurry-border: #e2e8f0;
    --scurry-text: #1e293b;
    --scurry-muted: #64748b;
}

body{
    background:
        url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22200%22%20height%3D%22200%22%3E%3Cfilter%20id%3D%22n%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.80%22%20numOctaves%3D%223%22%20stitchTiles%3D%22stitch%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23n)%22%20opacity%3D%220.35%22%2F%3E%3C%2Fsvg%3E"),
        linear-gradient(135deg, #f7e8d4, #f1f0ef);
}

    /* Pen Circle Color Variants */
    .pen-1, .pen-6, .pen-a { border-color: #ff4747; color: #ff4747; }
    .pen-1.filled, .pen-6.filled, .pen-a.filled { background-color: #ff4747; color: #fff; }

    .pen-2, .pen-7, .pen-b { border-color: #22c55e; color: #22c55e; }
    .pen-2.filled, .pen-7.filled, .pen-b.filled { background-color: #22c55e; color: #fff; }

    .pen-3, .pen-8, .pen-c { border-color: #06b6d4; color: #06b6d4; }
    .pen-3.filled, .pen-8.filled, .pen-c.filled { background-color: #06b6d4; color: #fff; }

    .pen-4, .pen-9, .pen-d { border-color: #eab308; color: #eab308; }
    .pen-4.filled, .pen-9.filled, .pen-d.filled { background-color: #eab308; color: #fff; }

    .pen-5, .pen-10, .pen-e { border-color: #8b5cf6; color: #8b5cf6; }
    .pen-5.filled, .pen-10.filled, .pen-e.filled { background-color: #8b5cf6; color: #fff; }

    .scurryTextOuter {
        white-space   : nowrap;
        overflow      : hidden;
        box-sizing    : border-box;
        position      : relative;
        display       : block;
        container-type: inline-size;
    }

    .scurryTextInner {
        display       : inline-block;
        padding-inline: 0.5rem;
        animation     : bringIntoView 14s ease-in-out infinite;
    }

    @keyframes bringIntoView {
        0%, 20% {
            transform: translateX(0px);
        }
        70%, 90% {
            /*
               - Short text: (100cqw - 100%) is POSITIVE -> min(0px, +val) becomes 0px (Doesn't move).
               - Long text:  (100cqw - 100%) is NEGATIVE -> min(0px, -val) picks the negative shift (Scrolls left).
            */
            transform: translateX(min(0px, calc(100cqw - 100%)));
        }
        100% {
            transform: translateX(0px);
        }
    }

body {
    background-color: var(--scurry-surface) !important;
    color: var(--scurry-text);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
}

/* ─── Navbar ──────────────────────────────────────────────────────────────── */
.navbar {
    background-color: #ffffff !important;
}
.navbar .nav-link {
    color: var(--scurry-muted);
    font-weight: 500;
}
.navbar .nav-link:hover {
    color: var(--scurry-primary);
}
.navbar-brand img {
    transition: transform 0.2s ease;
}
.navbar-brand:hover img {
    transform: scale(1.05);
}

/* ─── Cards ───────────────────────────────────────────────────────────────── */
.card {
    border-radius: 0.75rem;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
    background-color: var(--scurry-card) !important;
    border-color: var(--scurry-border) !important;
}
.card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
.card.bg-dark {
    background-color: var(--scurry-card) !important;
    color: var(--scurry-text) !important;
}
.card-header {
    border-radius: 0.75rem 0.75rem 0 0 !important;
    background-color: var(--scurry-surface) !important;
    border-color: var(--scurry-border) !important;
    color: var(--scurry-text) !important;
}
.card-footer {
    background-color: var(--scurry-surface) !important;
    border-color: var(--scurry-border) !important;
}

/* ─── Tables ──────────────────────────────────────────────────────────────── */
.table-dark {
    --bs-table-bg: transparent;
    --bs-table-color: var(--scurry-text);
    --bs-table-hover-bg: rgba(13, 148, 136, 0.04);
    --bs-table-border-color: var(--scurry-border);
    color: var(--scurry-text);
}
.table-dark th {
    color: var(--scurry-muted) !important;
    background: transparent !important;
}
.table-dark td {
    color: var(--scurry-text) !important;
    background: transparent !important;
}
.table > thead > tr > th {
    border-bottom-color: var(--scurry-border);
    font-weight: 600;
    letter-spacing: 0.03em;
}
.table > tbody > tr > td {
    border-bottom-color: var(--scurry-border);
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}
.table > tbody > tr:hover td {
    background-color: rgba(13, 148, 136, 0.04) !important;
}

/* ─── Override dark text utilities ─────────────────────────────────────────── */
.text-light {
    color: var(--scurry-text) !important;
}
.text-muted {
    color: var(--scurry-muted) !important;
}

/* ─── Score highlight ─────────────────────────────────────────────────────── */
.text-info {
    color: var(--scurry-primary) !important;
}

/* ─── Rating deltas ───────────────────────────────────────────────────────── */
.text-success {
    color: #059669 !important;
}
.text-danger {
    color: #dc2626 !important;
}

/* ─── Badges ──────────────────────────────────────────────────────────────── */
.badge.bg-success {
    background-color: #059669 !important;
}
.badge.bg-warning {
    background-color: #d97706 !important;
    color: #fff !important;
}
.badge.bg-secondary {
    background-color: #94a3b8 !important;
}

/* ─── Buttons ─────────────────────────────────────────────────────────────── */
.btn-primary {
    background-color: var(--scurry-primary);
    border-color: var(--scurry-primary);
    color: #fff;
    font-weight: 600;
}
.btn-primary:hover {
    background-color: #0f766e;
    border-color: #0f766e;
    color: #fff;
}
.btn-outline-light {
    border-color: var(--scurry-border);
    color: var(--scurry-text);
}
.btn-outline-light:hover {
    background-color: var(--scurry-surface);
    border-color: var(--scurry-primary);
    color: var(--scurry-primary);
}
.btn-outline-secondary {
    border-color: var(--scurry-border);
    color: var(--scurry-muted);
}
.btn-outline-secondary:hover {
    background-color: var(--scurry-surface);
    border-color: var(--scurry-primary);
    color: var(--scurry-primary);
}
.btn-outline-danger:hover {
    background-color: #fef2f2;
}
.btn-success {
    background-color: #059669;
    border-color: #059669;
    font-weight: 600;
}
.btn-success:hover {
    background-color: #047857;
    border-color: #047857;
}

/* ─── Forms ───────────────────────────────────────────────────────────────── */
.form-control,
.form-select {
    background-color: #fff !important;
    color: var(--scurry-text) !important;
    border-color: var(--scurry-border) !important;
}
.form-control.bg-dark,
.form-select.bg-dark {
    background-color: #fff !important;
    color: var(--scurry-text) !important;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--scurry-primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(13, 148, 136, 0.15);
}
.form-text {
    color: var(--scurry-muted) !important;
}
.form-label {
    color: var(--scurry-text) !important;
    font-weight: 500;
}

/* ─── Alerts ──────────────────────────────────────────────────────────────── */
.alert-success {
    background-color: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}

/* ─── List groups ─────────────────────────────────────────────────────────── */
.list-group-item.bg-dark {
    background-color: var(--scurry-card) !important;
    color: var(--scurry-text) !important;
    border-color: var(--scurry-border) !important;
}
.list-group-item.bg-dark:hover {
    background-color: var(--scurry-surface) !important;
}

/* ─── Sign-up page (mobile first) ─────────────────────────────────────────── */
@media (max-width: 575.98px) {
    .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .btn-lg {
        padding: 0.875rem 2rem;
        font-size: 1.1rem;
    }
}

/* ─── Input groups ────────────────────────────────────────────────────────── */
.input-group .form-control {
    border-color: var(--scurry-border) !important;
}

/* ─── Font monospace for numbers ──────────────────────────────────────────── */
.font-monospace {
    font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', monospace;
    font-size: 0.9em;
}

/* ─── Footer ──────────────────────────────────────────────────────────────── */
footer {
    background-color: var(--scurry-surface);
    border-top-color: var(--scurry-border) !important;
}
footer a:hover {
    color: var(--scurry-primary) !important;
}

/* ─── Stat cards (override bg-dark) ───────────────────────────────────────── */
.card.border-secondary {
    border-color: var(--scurry-border) !important;
}

/* ─── Subtle card background variant ──────────────────────────────────────── */
.bg-darker {
    background-color: var(--scurry-surface) !important;
}

/* ─── Display numbers ─────────────────────────────────────────────────────── */
.display-5 {
    color: var(--scurry-primary);
}

/* ─── Pulse animation for "decaying" badge ────────────────────────────────── */
.badge.bg-warning {
    animation: pulse-warning 2s ease-in-out infinite;
}
@keyframes pulse-warning {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.75; }
}

/* ─── Page links ──────────────────────────────────────────────────────────── */
a.text-decoration-none.text-light {
    color: var(--scurry-text) !important;
}
a.text-decoration-none.text-light:hover {
    color: var(--scurry-primary) !important;
}

/* ─── Pagination ──────────────────────────────────────────────────────────── */
.page-link {
    border-color: var(--scurry-border);
    color: var(--scurry-text);
}
.page-item.active .page-link {
    background-color: var(--scurry-primary);
    border-color: var(--scurry-primary);
}

/* ─── Create Race tile (admin) ────────────────────────────────────────────── */
#createRaceTile {
    background-color: #5bc0de;
    min-height: 260px;
    border-radius: 0.75rem;
    cursor: pointer;
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
}
#createRaceTile:hover {
    background-color: #46b8da;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
