:root {
    --ink: #05050b;
    --surface: #0d0d18;
    --surface-2: #12121f;
    --violet: #8b5cf6;
    --magenta: #ec4899;
    --amber: #f59e0b;
    --pitch: #22c55e;
    --rose: #f43f5e;
    --text: #f5f5fa;
    --text-dim: rgba(245,245,250,0.55);
    --text-faint: rgba(245,245,250,0.34);
    --border: rgba(245,245,250,0.08);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: 'Inter', sans-serif;
    background: var(--ink);
    min-height: 100vh;
    color: var(--text);
    overflow-x: hidden;
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -2;
    background:
        radial-gradient(circle at 12% 18%, rgba(139,92,246,0.16) 0%, transparent 42%),
        radial-gradient(circle at 88% 12%, rgba(236,72,153,0.14) 0%, transparent 45%),
        radial-gradient(circle at 75% 88%, rgba(34,197,94,0.08) 0%, transparent 40%),
        radial-gradient(circle at 50% 50%, #0a0a16 0%, var(--ink) 100%);
}

.particles { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.particle { position: absolute; border-radius: 50%; animation: floatParticle linear infinite; }
@keyframes floatParticle {
    0% { transform: translateY(100vh) scale(0.2) rotate(0deg); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translateY(-10vh) scale(1) rotate(720deg); opacity: 0; }
}

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar {
    background: rgba(5,5,11,0.85) !important;
    backdrop-filter: blur(22px);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 4px 40px rgba(0,0,0,0.55);
}
.navbar-brand {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 1.25rem;
    background: linear-gradient(120deg, var(--violet), var(--magenta) 55%, var(--amber));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 200% 200%;
    animation: auroraMove 6s ease infinite;
}
@keyframes auroraMove {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
.navbar-nav .nav-link {
    color: var(--text-dim) !important;
    transition: all 0.25s;
    border-radius: 8px;
    padding: 6px 14px;
    font-weight: 500;
    font-size: 0.9rem;
}
.navbar-nav .nav-link:hover { color: #fff !important; background: rgba(245,245,250,0.04); }
.navbar-nav .nav-link i { margin-right: 6px; }

/* ============================================================
   STATUS PILL / PULSE
   ============================================================ */
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    background: rgba(245,245,250,0.04);
    border: 1px solid var(--border);
    padding: 0.45rem 1.1rem;
    border-radius: 50px;
    font-size: 0.85rem;
    color: var(--text-dim);
}
.pulse-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--pitch);
    animation: pulseDot 2s ease-out infinite;
}
@keyframes pulseDot {
    0% { box-shadow: 0 0 0 0 rgba(34,197,94,0.55); }
    70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
    100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

/* ============================================================
   CARD / BUTTON / STATS / FEATURE
   ============================================================ */
.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.4);
    transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
    color: var(--text);
    position: relative;
    overflow: hidden;
}
.card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: linear-gradient(90deg, var(--violet), var(--magenta), var(--amber));
    opacity: 0.7;
}
.card:hover {
    transform: translateY(-6px);
    border-color: rgba(139,92,246,0.25);
    box-shadow: 0 18px 50px rgba(139,92,246,0.10);
}

.btn { border-radius: 50px; font-weight: 600; transition: all 0.25s; border: none; padding: 0.7rem 2rem; letter-spacing: 0.2px; }
.btn-primary { background: linear-gradient(120deg, var(--violet), var(--magenta)); color: #fff; box-shadow: 0 4px 20px rgba(139,92,246,0.3); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 32px rgba(139,92,246,0.4); }
.btn-danger { background: linear-gradient(120deg, var(--rose), #fb7185); color: #fff; }
.btn-danger:hover { transform: translateY(-2px); }
.btn-success { background: linear-gradient(120deg, var(--pitch), #4ade80); color: #04120a; }
.btn-success:hover { transform: translateY(-2px); }
.btn-secondary { background: rgba(245,245,250,0.06); color: var(--text); border: 1px solid var(--border); }
.btn-secondary:hover { background: rgba(245,245,250,0.12); transform: translateY(-2px); }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.5rem; }
.stat-item {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 1.5rem 1.2rem;
    transition: all 0.3s;
}
.stat-item:hover { background: rgba(245,245,250,0.04); border-color: rgba(139,92,246,0.18); transform: translateY(-4px); }
.stat-number {
    font-family: 'JetBrains Mono', monospace;
    font-size: 2.1rem; font-weight: 700; line-height: 1.15;
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
.stat-label { font-size: 0.78rem; color: var(--text-dim); margin-top: 0.3rem; font-weight: 600; }

.feature-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 2rem 1.6rem;
    transition: all 0.35s;
    height: 100%;
    position: relative;
    color: var(--text);
}
.feature-card:hover { transform: translateY(-8px); border-color: rgba(139,92,246,0.2); background: rgba(245,245,250,0.03); }
.feature-icon-chip {
    width: 54px; height: 54px; border-radius: 15px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; margin-bottom: 1.1rem;
}
.feature-card h5 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; margin-bottom: 0.5rem; }
.feature-card p { color: var(--text-dim); font-size: 0.95rem; }

/* ============================================================
   TABLE
   ============================================================ */
.table {
    --bs-table-bg: var(--surface) !important;
    --bs-table-color: var(--text) !important;
    --bs-table-border-color: var(--border) !important;
    background-color: var(--surface) !important;
    color: var(--text) !important;
}
.table thead th {
    background-color: var(--surface-2) !important;
    color: var(--text) !important;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.table tbody td {
    background-color: var(--surface) !important;
    color: var(--text) !important;
    border-color: var(--border) !important;
}
.table tbody tr:hover { background-color: rgba(139,92,246,0.05) !important; }
.table-dark-custom {
    background-color: var(--surface) !important;
    color: var(--text) !important;
}

.badge.bg-success { background: var(--pitch) !important; color: #04120a !important; }
.badge.bg-danger { background: var(--rose) !important; }
.badge.bg-warning { background: var(--amber) !important; color: #241400 !important; }
.badge.bg-secondary { background: rgba(245,245,250,0.12) !important; color: var(--text) !important; }
.badge.bg-info { background: var(--violet) !important; color: #fff !important; }
.badge.bg-primary { background: var(--violet) !important; }

.alert { background: rgba(245,245,250,0.03); border: 1px solid var(--border); border-radius: 16px; color: var(--text); }
.alert-success { border-color: rgba(34,197,94,0.25); }
.alert-danger { border-color: rgba(244,63,94,0.25); }
.alert-warning { border-color: rgba(245,158,11,0.25); }
.alert-info { border-color: rgba(139,92,246,0.25); }

/* ============================================================
   FORM
   ============================================================ */
.form-control, .form-select {
    background: rgba(245,245,250,0.04);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
}
.form-control:focus, .form-select:focus {
    background: rgba(245,245,250,0.06);
    border-color: var(--violet);
    color: var(--text);
    box-shadow: 0 0 0 3px rgba(139,92,246,0.15);
}
.form-control::placeholder {
    color: rgba(245, 245, 250, 0.45);
    opacity: 1;
}
.form-control:focus::placeholder {
    color: rgba(245, 245, 250, 0.6);
}
.form-select { color: var(--text); }
.form-select option { background: var(--surface); color: var(--text); }
.form-label { color: var(--text-dim); font-weight: 500; }
.form-check-label { color: var(--text); }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5 { font-family: 'Space Grotesk', sans-serif; font-weight: 600; }
.gradient-text {
    background: linear-gradient(120deg, var(--violet), var(--magenta) 55%, var(--amber));
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-size: 200% 200%;
    animation: auroraMove 6s ease infinite;
}
.display-1 { font-family: 'Space Grotesk', sans-serif; font-size: 4.4rem; font-weight: 700; line-height: 1.08; letter-spacing: -0.02em; }

/* ============================================================
   TABS / PILLS / DROPDOWN
   ============================================================ */
.nav-tabs .nav-link {
    color: var(--text-dim);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
}
.nav-tabs .nav-link.active {
    color: var(--text);
    background: transparent;
    border-bottom-color: var(--violet);
}
.nav-pills .nav-link {
    color: var(--text-dim);
    background: rgba(245,245,250,0.04);
    margin-right: 6px;
    border-radius: 50px;
}
.nav-pills .nav-link.active {
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    color: #fff;
}

.dropdown-menu {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
}
.dropdown-item { color: var(--text); }
.dropdown-item:hover { background: rgba(139,92,246,0.1); color: var(--text); }
.dropdown-divider { border-color: var(--border); }

code { color: var(--violet); background: rgba(139,92,246,0.08); padding: 2px 6px; border-radius: 6px; }

footer a:hover { color: var(--text) !important; }

/* ============================================================
   LIVE MATCHES CARD (Trang chủ — #1: đối xứng + ngày giờ)
   ============================================================ */
.live-matches-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 1.2rem 1.3rem;
    height: 400px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.4);
    position: relative;
    overflow: hidden;
}
.live-matches-card::before {
    content: '';
    position: absolute; top: 0; left: 0; right: 0; height: 2px;
    background: linear-gradient(90deg, var(--violet), var(--magenta), var(--amber));
    opacity: 0.7;
}
.live-matches-header {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--border);
    margin-bottom: 0.6rem;
    font-size: 0.95rem;
}
.live-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--rose);
    animation: pulseDot 1.5s infinite;
}
.live-matches-list {
    overflow-y: auto;
    flex: 1;
    padding-right: 4px;
}
.live-matches-list::-webkit-scrollbar { width: 4px; }
.live-matches-list::-webkit-scrollbar-thumb {
    background: rgba(139, 92, 246, 0.4);
    border-radius: 4px;
}
.live-match-item {
    display: block;
    padding: 0.7rem 0;
    border-bottom: 1px solid rgba(245,245,250,0.06);
}
.live-match-item:last-child { border-bottom: none; }

.live-match-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.4rem;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-faint);
    font-family: 'JetBrains Mono', monospace;
}
.live-match-header .live-match-datetime {
    color: var(--text-dim);
    font-size: 0.72rem;
    text-transform: none;
    letter-spacing: 0;
}

.live-match-teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.6rem;
    align-items: center;
    margin: 0;
}
.live-match-teams > span:first-child {
    text-align: left;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
}
.live-match-teams > span:last-child {
    text-align: right;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
}
.live-match-score {
    text-align: center;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--violet);
    white-space: nowrap;
    padding: 0 0.3rem;
}
.live-match-minute {
    display: inline-block;
    margin-left: 6px;
    color: var(--rose);
    font-weight: 700;
}

/* ============================================================
   HOT MATCHES CARD (Trang chủ — #2: nút full-width thẳng đáy)
   ============================================================ */
.hot-match-extra.d-none { display: none !important; }

.hot-match-card {
    display: flex;
    flex-direction: column;
}
.hot-match-card .card-body {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.hot-match-card .hot-match-info {
    flex-grow: 1;
}
.hot-match-card .hot-match-title {
    min-height: 3.2em;
}
.hot-match-card .btn-soi-ngay {
    margin-top: 1rem;
    padding: 0.55rem 1rem;
    font-size: 0.85rem;
    width: 100%;
}

/* ============================================================
   LOTTERY GRADE GRID
   ============================================================ */
.lottery-grade-grid {
    display: grid;
    grid-template-columns: 50px 1fr;
    gap: 4px 8px;
    font-size: 0.82rem;
}
.lottery-grade-label {
    color: var(--violet);
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    align-self: center;
    text-align: center;
}
.lottery-grade-values {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 6px;
    justify-content: center;
    align-items: center;
    min-height: 1.6em;
}
.lottery-grade-values code {
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(139,92,246,0.1);
    color: var(--text);
    font-size: 0.82rem;
    font-family: 'JetBrains Mono', monospace;
}

#history-panel .table-sm td,
#history-panel .table-sm th {
    padding: 0.35rem 0.5rem;
    font-size: 0.82rem;
}

/* ============================================================
   LIVE BÓNG PAGE
   ============================================================ */
.lb-match-item {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 0.9rem 1.1rem;
    margin-bottom: 0.7rem;
    transition: all 0.2s;
}
.lb-match-item:hover {
    border-color: rgba(139,92,246,0.3);
    transform: translateY(-2px);
}
.lb-match-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}
.lb-comp {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-faint);
    font-family: 'JetBrains Mono', monospace;
}
.lb-info {
    font-size: 0.75rem;
    color: var(--text-dim);
    font-family: 'JetBrains Mono', monospace;
}
.badge-live {
    display: inline-block;
    background: var(--rose);
    color: #fff;
    padding: 1px 8px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    margin-right: 6px;
    animation: pulseLive 2s infinite;
}
@keyframes pulseLive {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}
.lb-match-body {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.6rem;
    align-items: center;
    margin-bottom: 0.5rem;
}
.lb-team {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
}
.lb-home { text-align: left; }
.lb-away { text-align: right; }
.lb-score {
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--violet);
    text-align: center;
    padding: 0 0.5rem;
}
.lb-actions {
    display: flex;
    gap: 0.4rem;
    justify-content: flex-end;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 992px) {
    .stats-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .live-matches-card { height: 360px; margin-top: 1rem; }
    .lottery-grade-grid { grid-template-columns: 44px 1fr; }
    .lb-match-body { grid-template-columns: 1fr auto 1fr; gap: 0.3rem; }
    .lb-team { font-size: 0.85rem; }
    .lb-score { font-size: 1rem; }
}
@media (max-width: 576px) {
    .stats-grid { grid-template-columns: 1fr; }
    .stat-number { font-size: 1.7rem; }
    .display-1 { font-size: 2.2rem !important; }
    .btn { padding: 0.55rem 1.3rem; font-size: 0.9rem; }
}
/* ============================================================
   FIX #4: INPUT DISABLED — SỬA MÀU CHỮ (Hồ sơ)
   ============================================================ */
.form-control:disabled,
.form-control[disabled],
.form-select:disabled,
.form-select[disabled] {
    background: rgba(245, 245, 250, 0.03) !important;
    color: rgba(245, 245, 250, 0.75) !important;
    border-color: rgba(245, 245, 250, 0.06) !important;
    opacity: 1 !important;
    cursor: not-allowed;
}
.form-control:disabled::placeholder,
.form-control[disabled]::placeholder {
    color: rgba(245, 245, 250, 0.35) !important;
}

/* ============================================================
   FIX #6: LINK TELEGRAM TRONG HỒ SƠ
   ============================================================ */
.link-telegram {
    color: var(--violet);
    text-decoration: none;
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(139, 92, 246, 0.12);
    transition: all 0.2s;
}
.link-telegram:hover {
    background: rgba(139, 92, 246, 0.25);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   FIX #3: BANNER TOP 10 + CỘT GIẢI THƯỞNG (BXH)
   ============================================================ */
.top10-banner {
    background: linear-gradient(135deg, rgba(139,92,246,0.12), rgba(236,72,153,0.08));
    border: 1px solid rgba(139, 92, 246, 0.25);
    border-radius: 16px;
    padding: 1rem 1.2rem;
    position: relative;
    overflow: hidden;
}
.top10-banner::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--amber), var(--magenta), var(--violet));
}

.top10-banner-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    color: var(--amber);
    margin-bottom: 0.7rem;
    font-family: 'Space Grotesk', sans-serif;
}
.top10-banner-header i {
    font-size: 1.3rem;
    color: var(--amber);
}

.top10-prizes {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}
.prize-item {
    background: rgba(245, 245, 250, 0.04);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.5rem 0.4rem;
    text-align: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text);
    transition: all 0.2s;
}
.prize-item:hover {
    background: rgba(139, 92, 246, 0.1);
    border-color: rgba(139, 92, 246, 0.3);
    transform: translateY(-2px);
}
.prize-item span {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 2px;
}
.prize-item.prize-1 {
    background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(245,158,11,0.05));
    border-color: rgba(245, 158, 11, 0.35);
    color: var(--amber);
}
.prize-item.prize-2 {
    background: linear-gradient(135deg, rgba(245,245,250,0.12), rgba(245,245,250,0.04));
    border-color: rgba(245,245,250,0.2);
}
.prize-item.prize-3 {
    background: linear-gradient(135deg, rgba(180,83,9,0.15), rgba(180,83,9,0.05));
    border-color: rgba(180,83,9,0.3);
    color: #d97706;
}

.top10-note {
    font-size: 0.75rem;
    color: var(--text-faint);
    text-align: center;
    font-style: italic;
}
.top10-note i {
    margin-right: 4px;
}

/* Cột giải thưởng trong bảng BXH */
.prize-tag {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 50px;
    background: linear-gradient(120deg, rgba(245,158,11,0.18), rgba(236,72,153,0.12));
    border: 1px solid rgba(245, 158, 11, 0.35);
    color: var(--amber);
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
    .top10-prizes {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 576px) {
    .top10-prizes {
        grid-template-columns: repeat(2, 1fr);
    }
    .prize-tag {
        font-size: 0.68rem;
        padding: 2px 6px;
    }
}
/* ============================================================
   FIX: INPUT DISABLED — SỬA MÀU CHỮ (Hồ sơ)
   ============================================================ */
.form-control:disabled,
.form-control[disabled],
.form-select:disabled,
.form-select[disabled] {
    background: rgba(245, 245, 250, 0.03) !important;
    color: rgba(245, 245, 250, 0.75) !important;
    border-color: rgba(245, 245, 250, 0.06) !important;
    opacity: 1 !important;
    cursor: not-allowed;
}
.form-control:disabled::placeholder {
    color: rgba(245, 245, 250, 0.35) !important;
}

/* ============================================================
   LINK TELEGRAM TRONG HỒ SƠ
   ============================================================ */
.link-telegram {
    color: var(--violet);
    text-decoration: none;
    padding: 1px 6px;
    border-radius: 4px;
    background: rgba(139, 92, 246, 0.12);
    transition: all 0.2s;
}
.link-telegram:hover {
    background: rgba(139, 92, 246, 0.25);
    color: #fff;
    text-decoration: none;
}

/* ============================================================
   CARD ĐIỂM + HẠNG CỦA TÔI
   ============================================================ */
.my-rank-card {
    background: linear-gradient(135deg, rgba(139,92,246,0.15), rgba(236,72,153,0.08));
    border: 1px solid rgba(139, 92, 246, 0.3);
    border-radius: 16px;
    padding: 1.1rem 1.3rem;
    position: relative;
    overflow: hidden;
}
.my-rank-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--violet), var(--magenta), var(--amber));
}
.my-rank-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    color: var(--violet);
    font-family: 'Space Grotesk', sans-serif;
    margin-bottom: 0.8rem;
}
.my-rank-header i { font-size: 1.2rem; }

.my-rank-body {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0.5rem;
}
.my-rank-stat {
    background: rgba(245,245,250,0.04);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.6rem 0.4rem;
    text-align: center;
}
.my-rank-value {
    font-family: 'JetBrains Mono', monospace;
    font-size: 1.4rem;
    font-weight: 700;
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1.1;
}
.my-rank-label {
    font-size: 0.7rem;
    color: var(--text-dim);
    margin-top: 3px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.my-rank-prize {
    margin-top: 0.8rem;
    padding: 0.5rem 0.8rem;
    background: linear-gradient(120deg, rgba(245,158,11,0.15), rgba(236,72,153,0.08));
    border: 1px solid rgba(245, 158, 11, 0.3);
    border-radius: 10px;
    font-size: 0.85rem;
    color: var(--amber);
    text-align: center;
}
.my-rank-prize-empty {
    background: rgba(245,245,250,0.03);
    border-color: var(--border);
    color: var(--text-dim);
    font-style: italic;
}

/* ============================================================
   BANNER TOP 20 + CỘT GIẢI THƯỞNG
   ============================================================ */
.top10-banner {
    background: linear-gradient(135deg, rgba(139,92,246,0.12), rgba(236,72,153,0.08));
    border: 1px solid rgba(139, 92, 246, 0.25);
    border-radius: 16px;
    padding: 1rem 1.2rem;
    position: relative;
    overflow: hidden;
}
.top10-banner::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--amber), var(--magenta), var(--violet));
}
.top10-banner-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    color: var(--amber);
    margin-bottom: 0.7rem;
    font-family: 'Space Grotesk', sans-serif;
}
.top10-banner-header i {
    font-size: 1.3rem;
    color: var(--amber);
}
.top10-prizes {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}
.prize-item {
    background: rgba(245, 245, 250, 0.04);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 0.5rem 0.4rem;
    text-align: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text);
    transition: all 0.2s;
}
.prize-item:hover {
    background: rgba(139, 92, 246, 0.1);
    border-color: rgba(139, 92, 246, 0.3);
    transform: translateY(-2px);
}
.prize-item span {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 2px;
}
.prize-item.prize-1 {
    background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(245,158,11,0.05));
    border-color: rgba(245, 158, 11, 0.35);
    color: var(--amber);
}
.prize-item.prize-2 {
    background: linear-gradient(135deg, rgba(245,245,250,0.12), rgba(245,245,250,0.04));
    border-color: rgba(245,245,250,0.2);
}
.prize-item.prize-3 {
    background: linear-gradient(135deg, rgba(180,83,9,0.15), rgba(180,83,9,0.05));
    border-color: rgba(180,83,9,0.3);
    color: #d97706;
}
.top10-note {
    font-size: 0.75rem;
    color: var(--text-faint);
    text-align: center;
    font-style: italic;
}
.top10-note i { margin-right: 4px; }

.prize-tag {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 50px;
    background: linear-gradient(120deg, rgba(245,158,11,0.18), rgba(236,72,153,0.12));
    border: 1px solid rgba(245, 158, 11, 0.35);
    color: var(--amber);
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 992px) {
    .my-rank-body { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .top10-prizes { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 576px) {
    .my-rank-body { grid-template-columns: repeat(2, 1fr); }
    .top10-prizes { grid-template-columns: repeat(2, 1fr); }
    .prize-tag { font-size: 0.68rem; padding: 2px 6px; }
    .my-rank-value { font-size: 1.1rem; }
}
/* ============================================================
   PR2: FILTER TOGGLE "Tất cả / Chỉ user thật"
   ============================================================ */
.filter-toggle {
    display: flex;
    gap: 4px;
    background: rgba(245, 245, 250, 0.04);
    border: 1px solid var(--border);
    border-radius: 50px;
    padding: 4px;
}
.filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 50px;
    color: var(--text-dim);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    transition: all 0.2s;
    white-space: nowrap;
}
.filter-btn:hover {
    color: var(--text);
    background: rgba(245, 245, 250, 0.04);
}
.filter-btn.active {
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    color: #fff;
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.3);
}
.filter-btn i {
    font-size: 0.95rem;
}

/* ============================================================
   PR2: BADGE "USER" / "KHÁCH"
   ============================================================ */
.user-badge {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 50px;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-left: 6px;
    vertical-align: middle;
    white-space: nowrap;
}
.user-badge i {
    font-size: 0.7rem;
    margin-right: 2px;
}
.user-badge-real {
    background: rgba(34, 197, 94, 0.15);
    border: 1px solid rgba(34, 197, 94, 0.4);
    color: #22c55e;
}
.user-badge-guest {
    background: rgba(245, 245, 250, 0.06);
    border: 1px solid rgba(245, 245, 250, 0.12);
    color: var(--text-faint);
}

/* ============================================================
   PR2: NÚT CHIA SẺ
   ============================================================ */
.btn-share {
    background: linear-gradient(120deg, rgba(139,92,246,0.15), rgba(236,72,153,0.1));
    border: 1px solid rgba(139, 92, 246, 0.35);
    color: var(--violet);
    font-weight: 600;
    padding: 5px 14px;
    border-radius: 50px;
    transition: all 0.2s;
    font-size: 0.82rem;
}
.btn-share:hover {
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(139, 92, 246, 0.3);
}
.btn-share i {
    margin-right: 4px;
}

/* ============================================================
   PR2: TOAST NOTIFICATION
   ============================================================ */
.custom-toast {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    color: #fff;
    padding: 12px 24px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.9rem;
    box-shadow: 0 10px 40px rgba(139, 92, 246, 0.4);
    z-index: 9999;
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    pointer-events: none;
}
.custom-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
    .filter-toggle {
        width: 100%;
        justify-content: center;
    }
    .filter-btn {
        padding: 5px 12px;
        font-size: 0.8rem;
    }
    .user-badge {
        font-size: 0.62rem;
        padding: 1px 5px;
        margin-left: 4px;
    }
    .btn-share {
        font-size: 0.75rem;
        padding: 4px 10px;
    }
}
/* ============================================================
   PR3: TOP 3 KỲ TRƯỚC
   ============================================================ */
.top3-prev-card {
    background: linear-gradient(135deg, rgba(245,158,11,0.08), rgba(139,92,246,0.06));
    border: 1px solid rgba(245, 158, 11, 0.25);
    border-radius: 16px;
    padding: 1rem 1.2rem;
    position: relative;
    overflow: hidden;
}
.top3-prev-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--amber), var(--magenta), var(--violet));
}
.top3-prev-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: var(--amber);
    font-family: 'Space Grotesk', sans-serif;
    margin-bottom: 0.8rem;
}
.top3-prev-header i { font-size: 1.2rem; }

.top3-prev-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.7rem;
}
.top3-prev-item {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    background: rgba(245,245,250,0.04);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 0.7rem 0.9rem;
    transition: all 0.2s;
}
.top3-prev-item:hover {
    background: rgba(139,92,246,0.08);
    transform: translateY(-2px);
}
.top3-rank-1 {
    border-color: rgba(245, 158, 11, 0.4);
    background: linear-gradient(135deg, rgba(245,158,11,0.1), rgba(245,158,11,0.02));
}
.top3-rank-2 {
    border-color: rgba(245, 245, 250, 0.2);
}
.top3-rank-3 {
    border-color: rgba(180, 83, 9, 0.3);
}

.top3-medal {
    font-size: 2rem;
    line-height: 1;
    flex-shrink: 0;
}
.top3-info {
    flex-grow: 1;
    min-width: 0;
}
.top3-name {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 0.92rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.top3-stats {
    font-size: 0.75rem;
    color: var(--text-dim);
    margin-top: 2px;
}

/* ============================================================
   PR3: CỘT BIẾN ĐỘNG (↑↓)
   ============================================================ */
.rank-delta {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px 7px;
    border-radius: 50px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}
.rank-delta i {
    font-size: 0.7rem;
}
.rank-delta-up {
    background: rgba(34, 197, 94, 0.15);
    border: 1px solid rgba(34, 197, 94, 0.35);
    color: #22c55e;
}
.rank-delta-down {
    background: rgba(244, 63, 94, 0.12);
    border: 1px solid rgba(244, 63, 94, 0.3);
    color: #f43f5e;
}
.rank-delta-same {
    color: var(--text-faint);
    font-size: 0.85rem;
}
.rank-delta-new {
    background: rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.35);
    color: var(--violet);
}

/* ============================================================
   PR3: CHART 7 NGÀY
   ============================================================ */
.chart-7d-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 1rem 1.2rem;
    position: relative;
    overflow: hidden;
}
.chart-7d-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, var(--violet), var(--magenta));
}
.chart-7d-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: var(--violet);
    font-family: 'Space Grotesk', sans-serif;
    margin-bottom: 0.6rem;
}
.chart-7d-header i { font-size: 1.2rem; }
.chart-7d-body {
    position: relative;
    height: 180px;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
    .top3-prev-grid {
        grid-template-columns: 1fr;
    }
    .top3-medal { font-size: 1.5rem; }
    .rank-delta {
        font-size: 0.65rem;
        padding: 1px 5px;
    }
    .chart-7d-body { height: 150px; }
}
/* ============================================================
   PR4: AVATAR
   ============================================================ */
/* Navbar */
.nav-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(139, 92, 246, 0.4);
    flex-shrink: 0;
}
.nav-avatar-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.5px;
    border: 2px solid rgba(245, 245, 250, 0.15);
}

/* Profile - avatar lớn */
.avatar-section {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
}
.avatar-preview {
    position: relative;
}
.avatar-large {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(139, 92, 246, 0.35);
    box-shadow: 0 8px 30px rgba(139, 92, 246, 0.25);
}
.avatar-large-default {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 2.5rem;
    letter-spacing: 2px;
}
.avatar-upload-form {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* BXH - card thành tích */
.my-rank-avatar {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(139, 92, 246, 0.4);
    flex-shrink: 0;
}
.my-rank-avatar-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.5px;
}

/* BXH - row avatar */
.row-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(139, 92, 246, 0.3);
    flex-shrink: 0;
}
.row-avatar-default {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.4px;
}

/* Responsive */
@media (max-width: 576px) {
    .avatar-large { width: 90px; height: 90px; }
    .avatar-large-default { font-size: 2rem; }
    .row-avatar { width: 28px; height: 28px; }
    .my-rank-avatar { width: 32px; height: 32px; }
    .nav-avatar { width: 28px; height: 28px; }
}
/* ============================================================ */
/* #3: MONTH TABS (BXH — tab tháng động)                        */
/* ============================================================ */
.month-tabs-wrap {
    overflow-x: auto;
    padding-bottom: 6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.month-tabs-wrap::-webkit-scrollbar {
    height: 4px;
}
.month-tabs-wrap::-webkit-scrollbar-thumb {
    background: rgba(139, 92, 246, 0.4);
    border-radius: 4px;
}
.month-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: nowrap;
    min-width: max-content;
}
.month-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 50px;
    background: rgba(245, 245, 250, 0.04);
    border: 1px solid var(--border);
    color: var(--text-dim);
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 500;
    transition: all 0.25s;
    white-space: nowrap;
    font-family: 'JetBrains Mono', monospace;
}
.month-tab:hover {
    color: var(--text);
    background: rgba(139, 92, 246, 0.1);
    border-color: rgba(139, 92, 246, 0.3);
    transform: translateY(-1px);
    text-decoration: none;
}
.month-tab.active {
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    color: #fff;
    border-color: transparent;
    box-shadow: 0 4px 16px rgba(139, 92, 246, 0.35);
}
.month-tab-now {
    display: inline-block;
    padding: 1px 6px;
    border-radius: 50px;
    background: rgba(34, 197, 94, 0.2);
    color: #4ade80;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.month-tab.active .month-tab-now {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

/* ============================================================ */
/* #12: TOP USER CARD (TRANG CHỦ)                                */
/* ============================================================ */
.top-user-card {
    position: relative;
    overflow: hidden;
}
.top-user-card .card-body {
    padding: 1.6rem 1rem 1.4rem;
}
.top-user-rank-1 {
    border-color: rgba(245, 158, 11, 0.35) !important;
    box-shadow: 0 8px 40px rgba(245, 158, 11, 0.15);
}
.top-user-rank-1::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 50% 0%, rgba(245, 158, 11, 0.15), transparent 60%);
    pointer-events: none;
}
.top-user-medal {
    font-size: 2.6rem;
    line-height: 1;
    margin-bottom: 0.9rem;
    filter: drop-shadow(0 4px 14px rgba(245, 158, 11, 0.4));
}
.top-user-avatar-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: 0.9rem;
}
.top-user-avatar {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(139, 92, 246, 0.4);
    box-shadow: 0 6px 24px rgba(139, 92, 246, 0.28);
}
.top-user-avatar-default {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 700;
    font-size: 1.7rem;
    letter-spacing: 1px;
}
.top-user-rank-1 .top-user-avatar {
    border-color: rgba(245, 158, 11, 0.6);
    box-shadow: 0 6px 24px rgba(245, 158, 11, 0.35);
}
.top-user-name {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
    font-size: 1rem;
    margin-bottom: 0.5rem;
    line-height: 1.4;
    word-break: break-word;
}
.top-user-diem {
    font-family: 'JetBrains Mono', monospace;
    font-size: 1.5rem;
    font-weight: 700;
    background: linear-gradient(120deg, var(--violet), var(--magenta));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 0.35rem;
    line-height: 1.1;
}

/* ============================================================ */
/* #2: CARD STATS EMPTY STATE (BXH)                             */
/* ============================================================ */
.my-rank-card .my-rank-prize-empty a {
    color: var(--violet);
    text-decoration: none;
    font-weight: 600;
}
.my-rank-card .my-rank-prize-empty a:hover {
    color: var(--magenta);
    text-decoration: underline;
}

/* ============================================================ */
/* RESPONSIVE BỔ SUNG                                            */
/* ============================================================ */
@media (max-width: 576px) {
    .top-user-medal { font-size: 2rem; }
    .top-user-avatar { width: 60px; height: 60px; }
    .top-user-avatar-default { font-size: 1.4rem; }
    .top-user-diem { font-size: 1.25rem; }
    .top-user-card .card-body { padding: 1.2rem 0.9rem 1rem; }
    .month-tab { padding: 6px 12px; font-size: 0.78rem; }
}
/* ============================================================ */
/* PHASE 2: Predictions admin                                    */
/* ============================================================ */
.form-label.small {
    font-size: 0.75rem;
    color: var(--text-dim);
    font-weight: 500;
    margin-bottom: 2px;
}

#bulk-form .row-check,
#bulk-form #select-all {
    cursor: pointer;
    border-color: rgba(245, 245, 250, 0.25);
    background-color: rgba(245, 245, 250, 0.04);
}

#bulk-form .row-check:checked,
#bulk-form #select-all:checked {
    background-color: var(--violet);
    border-color: var(--violet);
}

#bulk-form .row-check:focus,
#bulk-form #select-all:focus {
    box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);
    border-color: var(--violet);
}
/* ============================================================ */
/* PHASE 3: Admin users bot                                      */
/* ============================================================ */
.user-panel .top-user-avatar {
    width: 60px;
    height: 60px;
    font-size: 1.4rem;
}

.admin-bulk-bar {
    background: rgba(139, 92, 246, 0.06);
    border: 1px solid rgba(139, 92, 246, 0.2);
    border-radius: 12px;
    padding: 10px 14px;
}

.table-dark-custom tr.opacity-50 {
    opacity: 0.5;
}

.table-dark-custom tr.opacity-50:hover {
    opacity: 0.75;
}

/* Offcanvas fix dark */
.offcanvas {
    color: var(--text);
}

.offcanvas .btn-close-white {
    filter: invert(1) grayscale(100%) brightness(200%);
}

@media (max-width: 576px) {
    .offcanvas.user-panel {
        width: 100% !important;
    }
}
/* ============================================================ */
/* PHASE A: Audit Log                                            */
/* ============================================================ */
.admin-log-action-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 50px;
    background: rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.35);
    color: var(--violet);
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.admin-log-row:hover {
    background: rgba(139, 92, 246, 0.06) !important;
}
/* ============================================================ */
/* PHASE C: Admin Dashboard widgets                              */
/* ============================================================ */
.widget-card {
    overflow: hidden;
    height: 100%;
}
.widget-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    background: rgba(245, 245, 250, 0.02);
    font-size: 0.92rem;
}
.widget-header i {
    font-size: 1.1rem;
}
.widget-header strong {
    font-family: 'Space Grotesk', sans-serif;
    font-weight: 600;
}
.widget-body {
    padding: 12px 16px;
    position: relative;
}

.chart-7d-body {
    position: relative;
    height: 240px;
}

/* Recent preds */
.recent-preds-list {
    max-height: 290px;
    overflow-y: auto;
}
.recent-preds-list::-webkit-scrollbar { width: 4px; }
.recent-preds-list::-webkit-scrollbar-thumb {
    background: rgba(139, 92, 246, 0.4);
    border-radius: 4px;
}
.recent-pred-item {
    display: grid;
    grid-template-columns: 45px 1fr auto 25px;
    gap: 8px;
    align-items: center;
    padding: 8px 14px;
    border-bottom: 1px solid rgba(245, 245, 250, 0.04);
    color: var(--text);
    text-decoration: none;
    font-size: 0.82rem;
    transition: background 0.2s;
}
.recent-pred-item:hover {
    background: rgba(139, 92, 246, 0.08);
    color: var(--text);
    text-decoration: none;
}
.recent-pred-item:last-child {
    border-bottom: none;
}
.recent-pred-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    color: var(--text-faint);
}
.recent-pred-user {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.recent-pred-tiso {
    font-family: 'JetBrains Mono', monospace;
    color: var(--violet);
    font-weight: 700;
}

/* Active users */
.active-users-list {
    max-height: 290px;
    overflow-y: auto;
}
.active-users-list::-webkit-scrollbar { width: 4px; }
.active-users-list::-webkit-scrollbar-thumb {
    background: rgba(139, 92, 246, 0.4);
    border-radius: 4px;
}
.active-user-item {
    display: grid;
    grid-template-columns: 55px 1fr auto;
    gap: 8px;
    align-items: center;
    padding: 8px 14px;
    border-bottom: 1px solid rgba(245, 245, 250, 0.04);
    font-size: 0.82rem;
    cursor: pointer;
    transition: background 0.2s;
}
.active-user-item:hover {
    background: rgba(34, 197, 94, 0.08);
}
.active-user-item:last-child {
    border-bottom: none;
}
.active-user-time {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    color: var(--pitch);
}
.active-user-name {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.active-user-id {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    color: var(--text-faint);
}

/* Alerts */
.alerts-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.alert-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(245, 158, 11, 0.08);
    border: 1px solid rgba(245, 158, 11, 0.25);
    font-size: 0.85rem;
    color: var(--text);
}
.alert-item > i {
    font-size: 1.1rem;
    color: var(--amber);
    flex-shrink: 0;
}
.alert-item > span {
    flex-grow: 1;
}
.alert-item-ok {
    background: rgba(34, 197, 94, 0.05);
    border-color: rgba(34, 197, 94, 0.15);
    color: var(--text-dim);
}
.alert-item-ok > i {
    color: var(--pitch);
    opacity: 0.6;
}

#live-status {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.72rem;
    padding: 5px 10px;
}

@media (max-width: 768px) {
    .chart-7d-body { height: 200px; }
    .recent-pred-item,
    .active-user-item { font-size: 0.78rem; padding: 6px 10px; }
    .recent-pred-item { grid-template-columns: 40px 1fr auto 20px; }
    .active-user-item { grid-template-columns: 50px 1fr auto; }
}

/* ============================================================
   TOOL SOI KÈO V2 — LIVE / NAV REDESIGN
   ============================================================ */
.ts-nav {
    background: rgba(5, 5, 16, .92) !important;
    border-bottom: 1px solid rgba(139,92,246,.16);
    box-shadow: 0 8px 40px rgba(0,0,0,.45);
}
.ts-brand { min-width: 210px; text-decoration:none; }
.ts-brand-mark {
    width: 38px; height: 38px; border-radius: 12px;
    display:inline-flex; align-items:center; justify-content:center;
    color:#fff; background:linear-gradient(135deg,#6d28d9,#ec4899);
    box-shadow:0 0 24px rgba(139,92,246,.35);
}
.ts-brand span:last-child { display:flex; flex-direction:column; line-height:1.05; }
.ts-brand strong { font-family:'Space Grotesk',sans-serif; letter-spacing:.2px; }
.ts-brand small { color:var(--text-faint); font-size:.58rem; margin-top:4px; letter-spacing:.35px; }
.ts-global-search {
    height:42px; flex:1; max-width:680px; min-width:260px;
    align-items:center; gap:10px; padding:0 12px;
    border:1px solid rgba(139,92,246,.34); border-radius:13px;
    background:rgba(13,13,28,.8); box-shadow:inset 0 0 20px rgba(139,92,246,.04);
}
.ts-global-search i,.ts-mobile-search i { color:#a78bfa; }
.ts-global-search input,.ts-mobile-search input {
    flex:1; border:0; outline:0; background:transparent; color:#fff; min-width:0;
}
.ts-global-search input::placeholder,.ts-mobile-search input::placeholder { color:rgba(245,245,250,.38); }
.ts-global-search kbd {
    background:rgba(255,255,255,.06); color:var(--text-dim);
    border:1px solid rgba(255,255,255,.1); border-radius:6px; padding:2px 7px; font-size:.68rem;
}
.ts-main-nav .nav-link { white-space:nowrap; font-size:.82rem; padding:8px 9px; }
.ts-main-nav .nav-link i { margin-right:4px; }
.nav-live-dot { display:inline-block; width:6px;height:6px;border-radius:50%;background:#f43f5e;margin-left:3px;vertical-align:middle;box-shadow:0 0 8px #f43f5e; }
.ts-mobile-search { display:flex; align-items:center; gap:9px; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.03); }
.ts-notif-menu { min-width:320px; max-height:420px; overflow-y:auto; }

/* Live page */
.live-page { padding-bottom:25px; }
.live-hero {
    display:flex; justify-content:space-between; align-items:flex-end; gap:20px;
    padding:4px 0 18px;
}
.live-eyebrow { color:#a78bfa; font-size:.72rem; font-weight:800; letter-spacing:1.2px; margin-bottom:5px; }
.live-pulse,.tab-live-dot {
    display:inline-block; width:8px;height:8px;border-radius:50%;background:#f43f5e;
    box-shadow:0 0 12px rgba(244,63,94,.85); animation:pulseDot 1.7s infinite; margin-right:6px;
}
.live-hero h1 { font-family:'Space Grotesk',sans-serif; font-size:2rem; font-weight:700; }
.live-sync { font-size:.72rem; color:var(--text-faint); }
.icon-btn {
    width:42px;height:42px;border-radius:12px;border:1px solid var(--border);
    background:rgba(255,255,255,.035); color:#fff;
}
.icon-btn:hover { border-color:rgba(139,92,246,.5); color:#c4b5fd; }
.live-hero-actions { display:flex; align-items:center; gap:12px; }
.live-toolbar {
    display:flex; align-items:center; justify-content:space-between; gap:15px;
    padding:10px; border:1px solid var(--border); border-radius:16px;
    background:rgba(13,13,24,.82); margin-bottom:10px; position:sticky; top:70px; z-index:10;
    backdrop-filter:blur(18px);
}
.live-tabs { display:flex; gap:5px; flex-wrap:wrap; }
.live-tab {
    border:1px solid transparent; background:transparent; color:var(--text-dim);
    padding:9px 13px; border-radius:11px; font-weight:700; font-size:.8rem; transition:.2s;
}
.live-tab:hover { color:#fff; background:rgba(255,255,255,.04); }
.live-tab.active { color:#fff; background:linear-gradient(120deg,rgba(109,40,217,.95),rgba(168,48,177,.9)); box-shadow:0 5px 20px rgba(139,92,246,.2); }
.live-tab b { margin-left:4px; color:#ddd; font-size:.68rem; }
.hot-tab:not(.active) i { color:#fb7185; }
.live-search-wrap {
    width:min(390px,42vw); display:flex; align-items:center; gap:9px; padding:0 11px;
    height:40px; border:1px solid rgba(255,255,255,.1); border-radius:11px; background:rgba(0,0,0,.18);
}
.live-search-wrap:focus-within { border-color:rgba(139,92,246,.6); box-shadow:0 0 0 3px rgba(139,92,246,.08); }
.live-search-wrap > i { color:#a78bfa; }
.live-search-wrap input { flex:1; min-width:0; background:transparent;border:0;outline:0;color:#fff;font-size:.78rem; }
.live-search-wrap input::placeholder { color:var(--text-faint); }
.live-search-wrap kbd { font-size:.62rem;color:var(--text-faint);background:rgba(255,255,255,.05);padding:2px 5px;border-radius:5px; }
.search-clear { border:0;background:transparent;color:#aaa;font-size:1.2rem; }
.hot-leagues {
    display:flex; align-items:center; gap:6px; overflow-x:auto; padding:2px 1px 12px; scrollbar-width:none;
}
.hot-leagues::-webkit-scrollbar { display:none; }
.hot-label { font-size:.7rem;color:#fb7185;font-weight:800;white-space:nowrap;margin-right:3px; }
.league-chip {
    white-space:nowrap; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.025);
    color:var(--text-dim); padding:6px 10px; border-radius:9px; font-size:.68rem; font-weight:700;
}
.league-chip:hover,.league-chip.active { color:#fff;border-color:rgba(139,92,246,.45);background:rgba(139,92,246,.12); }
.live-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:15px; }
.live-section-head { display:flex;align-items:flex-end;justify-content:space-between;margin:5px 0 10px; }
.live-section-head h2 { font-size:1rem;font-weight:800;margin:0; }
.live-section-head span { color:var(--text-faint);font-size:.7rem; }
.live-sort { display:flex;gap:3px; }
.sort-btn,.date-btn {
    border:1px solid transparent;background:transparent;color:var(--text-faint);padding:5px 8px;border-radius:7px;font-size:.66rem;
}
.sort-btn.active,.sort-btn:hover,.date-btn.active { background:rgba(139,92,246,.12);color:#c4b5fd;border-color:rgba(139,92,246,.2); }
.date-filter { display:flex; gap:5px; margin-bottom:10px; }
.league-group {
    border:1px solid rgba(255,255,255,.07); border-radius:13px; overflow:hidden; margin-bottom:10px;
    background:rgba(10,10,20,.7);
}
.league-group-head {
    display:flex;justify-content:space-between;align-items:center;padding:8px 12px;
    background:linear-gradient(90deg,rgba(139,92,246,.08),transparent);border-bottom:1px solid rgba(255,255,255,.06);
}
.league-group-head > div { display:flex;align-items:center;gap:8px; }
.league-group-head i { color:#a78bfa;font-size:.7rem; }
.league-group-head strong { font-size:.72rem; }
.league-group-head span:not(.league-live-dot) { color:var(--text-faint);font-size:.63rem; }
.league-live-dot { width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 9px #22c55e; }
.live-match-card {
    display:grid; grid-template-columns:82px minmax(0,1fr) 62px; align-items:center; gap:8px;
    min-height:72px; padding:9px 11px; border-bottom:1px solid rgba(255,255,255,.055); position:relative;
}
.live-match-card:last-child { border-bottom:0; }
.live-match-card:hover { background:rgba(139,92,246,.045); }
.live-match-card.is-hot::before { content:'';position:absolute;left:0;top:12px;bottom:12px;width:2px;background:#fb7185;box-shadow:0 0 8px #fb7185; }
.match-meta { display:flex;flex-direction:column;gap:4px;min-width:0; }
.match-status { width:max-content; font-size:.57rem;font-weight:900;color:var(--text-faint);padding:3px 6px;border-radius:5px;background:rgba(255,255,255,.05); }
.match-status.live { color:#fff;background:rgba(244,63,94,.16); }
.match-clock { color:#22c55e;font-size:.63rem;font-weight:800;white-space:nowrap; }
.match-teams { display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;gap:8px; }
.team { font-size:.77rem;font-weight:700;min-width:0; }
.team span { display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.team-away { text-align:right; }
.score-box { text-align:center;font-family:'JetBrains Mono',monospace;font-size:1.02rem;font-weight:800;color:#b69cff;white-space:nowrap; }
.score-box span { color:rgba(255,255,255,.28);padding:0 2px; }
.match-actions { display:flex;justify-content:flex-end;gap:5px; }
.mini-action {
    width:29px;height:29px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.025);
    color:var(--text-faint);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:.75rem;
}
.mini-action:hover,.mini-action.active { color:#fbbf24;border-color:rgba(251,191,36,.3);background:rgba(251,191,36,.08); }
.detail-action:hover { color:#c4b5fd;border-color:rgba(139,92,246,.35); }
.live-sidebar { display:flex;flex-direction:column;gap:10px; }
.live-side-card {
    border:1px solid rgba(255,255,255,.07);background:rgba(10,10,20,.78);border-radius:13px;overflow:hidden;
}
.side-head { display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.06); }
.side-head h3 { font-size:.78rem;margin:0;font-weight:800; }
.side-head h3 i { color:#fb7185;margin-right:5px; }
.side-head > span { font-size:.62rem;color:var(--text-faint); }
.side-match { display:flex;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid rgba(255,255,255,.045); }
.side-match:last-child { border-bottom:0; }
.side-match > div { min-width:0; }
.side-match small { display:block;color:var(--text-faint);font-size:.56rem;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.side-match b { display:block;font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.side-match em { font-style:normal;color:#b69cff;padding:0 3px; }
.side-match > span { flex:none;color:#22c55e;font-size:.56rem;font-weight:800;align-self:center; }
.side-empty { padding:18px 12px;color:var(--text-faint);font-size:.68rem;text-align:center; }
.quick-links a { display:flex;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.045);color:var(--text-dim);text-decoration:none;font-size:.7rem; }
.quick-links a:last-child { border-bottom:0; }
.quick-links a:hover { color:#fff;background:rgba(139,92,246,.05); }
.quick-links a i:first-child { color:#a78bfa; }
.quick-links a i:last-child { margin-left:auto;color:var(--text-faint); }
.live-loading { min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-faint); }
.live-loading .spinner-border { width:2rem;height:2rem;color:#a78bfa;margin-bottom:12px; }
.live-loading p { font-size:.72rem; }
.live-empty { text-align:center;padding:70px 20px;border:1px dashed rgba(255,255,255,.09);border-radius:13px; }
.empty-icon { width:55px;height:55px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(139,92,246,.08);color:#a78bfa;font-size:1.2rem; }
.live-empty h3 { font-size:.95rem;margin:12px 0 4px; }
.live-empty p { color:var(--text-faint);font-size:.7rem; }

@media (max-width: 1199px) {
    .ts-main-nav .nav-link { padding-left:6px;padding-right:6px;font-size:.76rem; }
    .live-layout { grid-template-columns:minmax(0,1fr) 270px; }
}
@media (max-width: 991px) {
    .ts-nav .container-fluid { padding-top:5px;padding-bottom:5px; }
    .live-layout { grid-template-columns:1fr; }
    .live-sidebar { display:grid;grid-template-columns:1fr 1fr; }
    .quick-links { grid-column:1/-1; }
    .live-toolbar { top:63px; }
}
@media (max-width: 767px) {
    .live-hero { align-items:flex-start;flex-direction:column; }
    .live-hero h1 { font-size:1.55rem; }
    .live-toolbar { flex-direction:column;align-items:stretch; }
    .live-search-wrap { width:100%; }
    .live-tabs { overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none; }
    .live-tab { white-space:nowrap; }
    .live-sort { display:none; }
    .live-match-card { grid-template-columns:58px minmax(0,1fr) 32px; padding:8px 8px; }
    .match-teams { grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);gap:5px; }
    .team { font-size:.68rem; }
    .score-box { font-size:.88rem; }
    .match-clock { font-size:.55rem; }
    .mini-action { width:28px;height:28px; }
    .match-actions .detail-action { display:none; }
    .live-sidebar { grid-template-columns:1fr; }
    .quick-links { grid-column:auto; }
}

/* ============================================================
   TOOL SOI KÈO — CONCEPT UI V2.1
   Visual target: dark neon football dashboard concept.
   Kept as an override layer so legacy/admin pages remain compatible.
   ============================================================ */
:root{
  --ts-bg:#020817;--ts-bg2:#061127;--ts-panel:#07152d;--ts-panel2:#091b39;
  --ts-line:#123263;--ts-line2:rgba(57,132,255,.22);--ts-blue:#2563eb;--ts-purple:#7c3aed;
  --ts-violet:#8b5cf6;--ts-cyan:#22d3ee;--ts-green:#22c55e;--ts-red:#f43f5e;--ts-gold:#fbbf24;
  --ts-muted:#7f91b7;--ts-text:#eaf1ff;
}
body.ts-app-body{background:radial-gradient(1000px 650px at 55% -5%,rgba(37,99,235,.14),transparent 65%),radial-gradient(700px 500px at 88% 35%,rgba(124,58,237,.09),transparent 70%),#020817;color:var(--ts-text)}
body.ts-app-body::before{background:linear-gradient(180deg,rgba(2,8,23,.88),#020817 55%,#020817)}
.ts-topbar{position:fixed;z-index:1040;top:0;left:0;right:0;height:72px;display:grid;grid-template-columns:275px minmax(320px,1fr) 275px;align-items:center;gap:22px;padding:0 18px;background:rgba(2,8,23,.94);border-bottom:1px solid #0d2a54;box-shadow:0 12px 40px rgba(0,0,0,.35);backdrop-filter:blur(18px)}
.ts-topbar-left{display:flex;align-items:center;gap:14px;min-width:0}.ts-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}.ts-brand-ball{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:25px;color:#fff;background:radial-gradient(circle at 30% 25%,#b98cff,#5b21b6 55%,#101f61);border:1px solid #9b6cff;box-shadow:0 0 24px rgba(124,58,237,.55),inset 0 0 15px rgba(255,255,255,.15)}.ts-brand-copy{display:flex;flex-direction:column;line-height:1}.ts-brand-copy strong{font:800 20px/1 'Space Grotesk',sans-serif;font-style:italic;letter-spacing:-.6px;background:linear-gradient(90deg,#fff,#d9c7ff 50%,#a98cff);-webkit-background-clip:text;color:transparent}.ts-brand-copy small{font-size:8px;color:#9eacd0;margin-top:6px;letter-spacing:.15px;white-space:nowrap}.ts-mobile-menu{display:none;background:none;border:0;color:#dbe8ff;font-size:28px}.ts-global-search{height:42px;border:1px solid #6d3bdb;border-radius:12px;background:linear-gradient(180deg,rgba(15,28,65,.92),rgba(5,17,40,.95));display:flex;align-items:center;gap:11px;padding:0 13px;box-shadow:0 0 22px rgba(124,58,237,.08)}.ts-global-search:focus-within{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(124,58,237,.12),0 0 30px rgba(124,58,237,.12)}.ts-global-search i{color:#b99aff;font-size:18px}.ts-global-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:12px}.ts-global-search input::placeholder{color:#7184ab}.ts-global-search kbd{font:600 10px/1 'JetBrains Mono';color:#c8d5ef;background:#071733;border:1px solid #173768;border-radius:7px;padding:6px 8px}.ts-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:13px}.ts-top-icon{position:relative;width:40px;height:40px;border:0;background:transparent;color:#a9b9da;font-size:22px;border-radius:50%}.ts-top-icon:hover{background:rgba(255,255,255,.05);color:#fff}.ts-notif-badge{position:absolute;top:0;right:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:grid;place-items:center;background:#f43f5e;color:#fff;font-size:10px;font-weight:800}.ts-user{border:0;background:none;color:#dce7ff;display:flex;align-items:center;gap:9px;padding:4px;border-radius:12px}.ts-user:hover{background:rgba(255,255,255,.04)}.ts-user img,.ts-user-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid #3756a0;display:grid;place-items:center;color:#fff;font-weight:800}.ts-user-copy{display:flex;flex-direction:column;text-align:left;line-height:1.05}.ts-user-copy small{font-size:9px;color:#9babc9}.ts-user-copy strong{font-size:12px;margin-top:3px}.ts-user>i{font-size:10px;color:#8ea1c5}.ts-login-btn{font-size:12px;color:#fff;text-decoration:none;border:1px solid #5930b8;border-radius:10px;padding:9px 14px;background:rgba(124,58,237,.14)}
.ts-sidebar{position:fixed;z-index:1030;left:0;top:72px;bottom:0;width:215px;padding:20px 10px 14px;background:linear-gradient(180deg,rgba(3,13,31,.98),rgba(2,8,23,.98));border-right:1px solid #0d2a54;overflow:auto}.ts-sidebar-nav{display:flex;flex-direction:column;gap:4px}.ts-side-link{height:45px;display:flex;align-items:center;gap:13px;padding:0 13px;border:1px solid transparent;border-radius:10px;color:#aebddd;text-decoration:none;font-size:12px;font-weight:600;transition:.18s}.ts-side-link i{width:22px;text-align:center;font-size:18px;color:#9ab1ea}.ts-side-link:hover{color:#fff;background:rgba(70,102,181,.10);border-color:#173768}.ts-side-link.active{color:#fff;background:linear-gradient(100deg,rgba(124,58,237,.95),rgba(37,99,235,.78));border-color:#7042dc;box-shadow:0 7px 25px rgba(73,40,173,.35)}.ts-side-link.active i{color:#fff}.ts-live-label{margin-left:auto;padding:4px 7px;border-radius:6px;background:#f43f5e;color:#fff;font-size:8px;line-height:1}.ts-vip-card{margin:24px 8px 0;padding:18px 12px;text-align:center;border:1px solid #6e36d6;border-radius:12px;background:radial-gradient(circle at 50% 0,rgba(124,58,237,.2),transparent 60%),linear-gradient(180deg,rgba(38,10,69,.5),rgba(6,17,42,.85));box-shadow:0 0 28px rgba(124,58,237,.12)}.ts-vip-icon{color:#fbbf24;font-size:23px}.ts-vip-card strong{display:block;color:#f7cf61;font-size:15px;margin-top:6px}.ts-vip-card p{color:#c0cae1;font-size:10px;line-height:1.55;margin:9px 0 13px}.ts-vip-card a{display:block;color:#fff;text-decoration:none;font-size:10px;font-weight:800;border-radius:20px;padding:8px;background:linear-gradient(90deg,#7c3aed,#8b5cf6,#2563eb);box-shadow:0 6px 20px rgba(124,58,237,.3)}.ts-sidebar-bottom{display:flex;flex-direction:column;gap:4px;padding:28px 10px 4px;color:#7b8eaf;font-size:9px}.ts-sidebar-bottom span{color:#55d8b2;margin-top:7px}.ts-sidebar-bottom span i{font-size:6px;margin-right:5px}.ts-main{margin-left:215px;padding:88px 18px 20px;min-height:calc(100vh - 72px)}.ts-content-shell{max-width:1440px;margin:0 auto}.ts-footer{margin-left:215px;padding:12px 20px 22px;color:#5f7192;font-size:9px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid #0b2347}.ts-footer a{color:#7185a8;text-decoration:none;margin-right:16px}.ts-footer a:hover{color:#fff}.ts-flash{border-radius:10px}.ts-error-state{text-align:center;padding:90px 20px}.ts-error-state h1{font-size:76px;color:#8b5cf6}
.ts-notif-menu,.ts-user-menu{background:#07152d;border:1px solid #173768;box-shadow:0 20px 50px rgba(0,0,0,.55);border-radius:12px;overflow:hidden}.ts-notif-menu{width:340px;padding:0}.ts-menu-title{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #15325c;font-size:12px}.ts-menu-title form{margin:0}.ts-notif-item{display:flex;gap:10px;white-space:normal;color:#b9c8e4!important;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.035)}.ts-notif-item>i{color:#9b7cff;margin-top:2px}.ts-notif-item span{display:flex;flex-direction:column}.ts-notif-item b{font-size:11px}.ts-notif-item small,.ts-notif-item em{font-size:9px;color:#7184a7;margin-top:3px}.ts-notif-item.is-unread{background:rgba(124,58,237,.08)}.ts-empty-menu{text-align:center;padding:20px;color:#7184a7;font-size:11px}.ts-menu-more{display:block;text-align:center;color:#a78bfa;text-decoration:none;padding:10px;font-size:10px}.ts-user-menu{min-width:190px}.ts-user-menu .dropdown-item{color:#c8d5ed;padding:9px 12px;font-size:11px}.ts-user-menu .dropdown-item:hover{background:#0c2348;color:#fff}.ts-user-menu .dropdown-item i{width:20px}.ts-sidebar-backdrop{display:none}

/* Homepage concept */
.concept-page{max-width:100%;}.concept-hero{position:relative;min-height:174px;border:1px solid #153b78;border-radius:13px;overflow:hidden;background:radial-gradient(circle at 72% 55%,rgba(36,139,255,.35),transparent 28%),radial-gradient(circle at 86% 40%,rgba(151,46,255,.38),transparent 30%),linear-gradient(110deg,#071d4b,#061d3b 48%,#10082d);box-shadow:0 12px 45px rgba(0,0,0,.3)}.concept-hero:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(120deg,transparent 0 42px,rgba(61,154,255,.06) 43px 44px),radial-gradient(circle at 50% 120%,rgba(34,197,94,.16),transparent 35%);mix-blend-mode:screen}.concept-hero-copy{position:relative;z-index:2;padding:23px 28px}.hero-kicker{color:#8eb2ff;font-size:8px;letter-spacing:1.2px;font-weight:800}.concept-hero h1{margin:7px 0 1px;font:800 italic 36px/1 'Space Grotesk';letter-spacing:-1.5px;color:#fff;text-shadow:0 0 20px rgba(139,92,246,.55)}.concept-hero h2{font:700 18px/1.15 'Space Grotesk';margin:0;color:#e5a8ff}.concept-hero p{font-size:10px;color:#c0d0ec;margin:7px 0 12px}.hero-actions{display:flex;gap:8px}.hero-primary,.hero-secondary{display:inline-flex;align-items:center;gap:7px;border-radius:8px;text-decoration:none;font-size:10px;font-weight:800;padding:8px 12px}.hero-primary{color:#fff;background:linear-gradient(90deg,#7c3aed,#2563eb);border:1px solid #8e5bff;box-shadow:0 5px 20px rgba(124,58,237,.28)}.hero-secondary{color:#d7e5ff;background:rgba(5,18,42,.72);border:1px solid #1e4d8e}.hero-stadium-art{position:absolute;right:2%;top:0;bottom:0;width:46%;overflow:hidden}.hero-stadium-art:before{content:'';position:absolute;width:460px;height:150px;right:0;top:14px;border-radius:50%;background:repeating-radial-gradient(ellipse at center,rgba(107,179,255,.26) 0 2px,transparent 3px 13px);transform:rotate(-5deg);filter:blur(.4px)}.hero-stadium-art:after{content:'';position:absolute;right:5%;bottom:-38px;width:520px;height:115px;border-radius:50%;background:radial-gradient(ellipse,rgba(40,220,145,.42),transparent 65%);transform:rotate(-8deg)}.hero-ball{position:absolute;z-index:2;right:25%;top:35px;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;font-size:55px;color:#dfeaff;background:radial-gradient(circle at 35% 25%,#fff,#8aa5d9 30%,#162b5c 68%,#07152e);box-shadow:0 0 35px rgba(104,158,255,.45);transform:rotate(-15deg)}.hero-glow{position:absolute;right:4%;top:45px;width:300px;height:65px;background:linear-gradient(90deg,transparent,#b83fff,#35d8ff,transparent);filter:blur(13px);transform:rotate(-12deg);opacity:.65}.hero-script{position:absolute;z-index:2;right:5%;top:33px;color:#fff;font:italic 20px/1.1 cursive;text-align:center;transform:rotate(-5deg);text-shadow:0 0 12px rgba(255,255,255,.35)}.hero-script b{color:#ffb9fb}.hero-feature-row{position:absolute;z-index:3;bottom:0;left:0;right:0;height:42px;display:flex;align-items:center;gap:8px;padding:0 20px;background:linear-gradient(90deg,rgba(5,14,34,.94),rgba(8,28,55,.65),rgba(5,10,31,.7));border-top:1px solid rgba(67,143,255,.2)}.hero-feature-row span{display:flex;align-items:center;gap:7px;border:1px solid #1b4d87;background:rgba(5,20,45,.78);border-radius:8px;padding:7px 12px;color:#c8d7f0;font-size:9px}.hero-feature-row i{color:#a78bfa}
.concept-filterbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:15px 0 9px}.concept-filter{border:1px solid #143a6d;background:#061631;color:#a9bad9;border-radius:9px;text-decoration:none;padding:8px 11px;font-size:9px;font-weight:700;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.concept-filter:hover{border-color:#345f9e;color:#fff}.concept-filter.active{background:linear-gradient(90deg,#7c3aed,#4930e8);border-color:#8756ff;color:#fff;box-shadow:0 5px 18px rgba(124,58,237,.22)}.concept-filter.hot i{color:#fb7185}.concept-filter b{font-size:8px;color:#fff;background:rgba(255,255,255,.12);border-radius:8px;padding:2px 5px}.league-strip{display:flex;gap:6px;padding:8px;border:1px solid #10315e;background:rgba(4,17,38,.72);border-radius:10px;overflow:auto;scrollbar-width:none}.league-strip::-webkit-scrollbar{display:none}.league-chip{white-space:nowrap;border:1px solid #173e72;background:#061631;color:#aebfdd;border-radius:8px;padding:8px 11px;font-size:9px;font-weight:700}.league-chip.active{background:#542cf1;color:#fff;border-color:#7c5bff}.concept-grid{display:grid;grid-template-columns:minmax(0,1fr) 327px;gap:14px;margin-top:9px}.concept-main-col{min-width:0}.concept-right-col{display:flex;flex-direction:column;gap:9px}.concept-section-head{display:flex;justify-content:space-between;align-items:flex-end;padding:8px 3px}.concept-section-head.compact{margin-top:11px}.concept-section-head h2{font:800 14px/1 'Space Grotesk';margin:0;color:#f2f6ff}.concept-section-head p{font-size:9px;color:#7185a7;margin:6px 0 0}.concept-section-head a{font-size:9px;color:#a78bfa;text-decoration:none}.mini-live{display:inline-block;background:#f43f5e;color:#fff;font-size:7px;border-radius:5px;padding:4px 6px;vertical-align:2px;margin-left:5px}.home-live-card,.home-upcoming,.concept-side-card{border:1px solid #123b72;background:linear-gradient(180deg,rgba(6,22,49,.94),rgba(3,13,30,.96));border-radius:11px;overflow:hidden;box-shadow:0 9px 28px rgba(0,0,0,.18)}.home-card-head{height:38px;display:flex;justify-content:space-between;align-items:center;padding:0 12px;border-bottom:1px solid #113360;color:#d8e6ff;font-size:9px}.home-card-head>span:first-child i{color:#f43f5e;margin-right:6px}.home-card-head>span:last-child{color:#7185a8}.home-live-list{min-height:100px}.home-loading{display:flex;align-items:center;justify-content:center;gap:9px;color:#7185a7;font-size:10px;padding:32px}.home-live-row{display:grid;grid-template-columns:62px 1fr 90px 1fr 34px;align-items:center;gap:9px;padding:9px 11px;border-bottom:1px solid #0d2b52;font-size:10px}.home-live-row:last-child{border-bottom:0}.home-live-time{color:#9eb0d0;line-height:1.35}.home-live-time b{display:block;color:#19e49c;font-size:9px}.home-live-team{display:flex;align-items:center;gap:6px;min-width:0}.home-live-team.right{justify-content:flex-end;text-align:right}.home-live-team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-score{justify-self:center;min-width:54px;text-align:center;color:#fff;font:800 12px/1 'JetBrains Mono';background:linear-gradient(180deg,#183e92,#14245e);border-radius:7px;padding:8px 7px;border:1px solid #234d9e}.home-live-star{color:#a8b7d4;font-size:15px;text-align:center}.upcoming-list{padding:0 10px 6px}.upcoming-row{display:grid;grid-template-columns:70px 110px minmax(0,1fr) 60px;align-items:center;gap:10px;padding:10px 3px;border-bottom:1px solid #0d2b52;font-size:9px}.upcoming-row:last-child{border-bottom:0}.upcoming-time{color:#a6b7d4}.upcoming-league{color:#9aaff0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-teams{display:flex;gap:8px;align-items:center;justify-content:center}.upcoming-teams b{font-size:10px}.upcoming-teams span{color:#667b9e}.upcoming-action{justify-self:end;color:#a78bfa;text-decoration:none;border:1px solid #4d2aaa;border-radius:7px;padding:5px 7px}.concept-side-card{padding:0}.side-title{height:39px;display:flex;justify-content:space-between;align-items:center;padding:0 11px;border-bottom:1px solid #113360}.side-title h3{font:800 11px/1 'Space Grotesk';margin:0;color:#edf3ff}.side-title h3 i{color:#fb7185;margin-right:6px}.side-title h3 .live-green{color:#22c55e}.side-title a{font-size:8px;color:#879bc0;text-decoration:none}.hot-side-row{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:8px 11px;border-bottom:1px solid #0d2b52;text-decoration:none}.hot-side-row:last-child{border-bottom:0}.hot-side-row .side-league{grid-column:1;color:#879dc5;font-size:8px}.hot-side-row strong{grid-column:1;font-size:9px;color:#e1eaff;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hot-side-row strong em{font-style:normal;color:#64799b}.hot-side-row .side-time{grid-column:2;grid-row:1/3;align-self:center;color:#b7c9e9;font-size:8px;white-space:nowrap}.hot-side-row .side-time i{color:#fb7185;margin-left:3px}.side-empty{padding:20px 11px;color:#687d9f;font-size:9px;text-align:center}.side-live-list{padding:0 0}.side-live-row{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr) 36px;gap:5px;align-items:center;padding:8px 9px;border-bottom:1px solid #0d2b52;font-size:8px}.side-live-row:last-child{border-bottom:0}.side-live-row .team{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-live-row .team.right{text-align:right}.side-live-score{background:#173886;border-radius:5px;text-align:center;padding:5px 2px;font-weight:800;color:#fff}.side-live-clock{color:#18dc98;text-align:right;font-size:7px}.mini-tabs{display:flex;padding:7px 8px 0;gap:3px}.mini-tabs span{font-size:8px;color:#94a8cb;padding:6px 7px;border-radius:7px}.mini-tabs .active{background:#6236e9;color:#fff}.mini-ranking{padding:0 9px 8px}.mini-ranking>div{display:grid;grid-template-columns:18px 1fr 35px 35px;gap:5px;align-items:center;padding:7px 3px;border-bottom:1px solid #0d2b52;font-size:8px;color:#8498bb}.mini-ranking>div b,.mini-ranking>div strong{color:#dbe7ff}.demo-note{display:block;color:#566d91;font-size:7px;padding:0 11px 9px}.follow-card{padding-bottom:10px}.follow-empty{display:flex;align-items:center;gap:9px;padding:12px;color:#7890b5;font-size:8px}.follow-empty>i{color:#fbbf24;font-size:17px}.follow-empty span{flex:1}.follow-empty a{color:#a78bfa;text-decoration:none}.shortcut-row{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:12px}.shortcut-row a{min-height:48px;display:grid;grid-template-columns:30px 1fr 14px;align-items:center;gap:7px;border:1px solid #173e72;border-radius:9px;background:linear-gradient(120deg,#081b3b,#07132a);padding:7px 9px;color:#dce8ff;text-decoration:none}.shortcut-row a>i:first-child{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:linear-gradient(135deg,#2563eb,#7c3aed);font-size:13px}.shortcut-row a:nth-child(2)>i:first-child{background:linear-gradient(135deg,#16a58b,#0eaaa0)}.shortcut-row a:nth-child(4)>i:first-child{background:linear-gradient(135deg,#f97316,#f59e0b)}.shortcut-row span{font-size:8px;font-weight:700}.shortcut-row small{display:block;color:#7085a8;font-size:7px;font-weight:400;margin-top:2px;white-space:nowrap}.shortcut-row a>i:last-child{color:#9aabcb;font-size:11px}

/* Live page adapts to the concept shell */
.live-page{padding:0!important}.live-hero{border:1px solid #123b72!important;background:linear-gradient(100deg,#071a3b,#081a35)!important;border-radius:12px!important;padding:17px 19px!important}.live-toolbar,.hot-leagues{background:rgba(4,17,39,.78)!important;border-color:#123b72!important}.live-layout{grid-template-columns:minmax(0,1fr) 327px!important}.live-match-card{background:rgba(5,19,43,.9)!important;border-color:#123b72!important}.live-side-card{background:linear-gradient(180deg,rgba(6,22,49,.94),rgba(3,13,30,.96))!important;border-color:#123b72!important}

@media(max-width:1200px){.ts-topbar{grid-template-columns:240px minmax(280px,1fr) 190px}.ts-user-copy{display:none}.ts-sidebar{width:190px}.ts-main,.ts-footer{margin-left:190px}.concept-grid{grid-template-columns:minmax(0,1fr) 285px}.shortcut-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.ts-topbar{grid-template-columns:auto 1fr auto;gap:10px}.ts-mobile-menu{display:block}.ts-sidebar{transform:translateX(-102%);transition:transform .25s ease;width:235px;box-shadow:20px 0 50px rgba(0,0,0,.45)}.ts-sidebar.open{transform:translateX(0)}.ts-sidebar-backdrop{position:fixed;inset:72px 0 0;z-index:1025;background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}.ts-sidebar-backdrop.show{display:block}.ts-main,.ts-footer{margin-left:0}.ts-main{padding:86px 12px 18px}.ts-footer{padding-left:14px;padding-right:14px}.ts-user-copy{display:flex}.concept-grid{grid-template-columns:1fr}.concept-right-col{display:grid;grid-template-columns:1fr 1fr}.follow-card{grid-column:1/-1}.hero-stadium-art{opacity:.55}.hero-feature-row{overflow:auto}.hero-feature-row span{flex:none}.live-layout{grid-template-columns:1fr!important}.live-sidebar{display:grid!important;grid-template-columns:1fr 1fr!important}.ts-global-search{height:40px}.ts-global-search kbd{display:none}}
@media(max-width:650px){.ts-topbar{height:64px;padding:0 9px}.ts-sidebar{top:64px}.ts-sidebar-backdrop{inset:64px 0 0}.ts-main{padding-top:76px}.ts-brand-copy small{display:none}.ts-brand-copy strong{font-size:16px}.ts-brand-ball{width:35px;height:35px;font-size:20px}.ts-global-search{display:none}.ts-top-actions{gap:4px}.ts-top-icon{width:34px;height:34px}.ts-user-avatar,.ts-user img{width:34px;height:34px}.ts-user-copy{display:none}.concept-hero{min-height:230px}.concept-hero-copy{padding:18px 17px}.concept-hero h1{font-size:31px}.concept-hero h2{font-size:15px;max-width:240px}.hero-stadium-art{width:70%;right:-22%;top:25px;opacity:.38}.hero-script{display:none}.hero-feature-row{height:38px;padding:0 8px;gap:5px}.hero-feature-row span{font-size:8px;padding:6px 8px}.concept-filterbar{overflow:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:none}.concept-filterbar::-webkit-scrollbar{display:none}.concept-filter{flex:none}.league-strip{margin-bottom:4px}.concept-section-head h2{font-size:12px}.concept-section-head p{font-size:8px}.home-live-row{grid-template-columns:54px 1fr 58px 1fr 25px;gap:4px;padding:8px 7px;font-size:8px}.home-score{min-width:45px;font-size:10px;padding:7px 3px}.upcoming-row{grid-template-columns:55px 1fr 45px;gap:7px}.upcoming-league{display:none}.upcoming-teams{justify-content:flex-start;flex-direction:column;align-items:flex-start;gap:1px}.upcoming-teams span{display:none}.shortcut-row{grid-template-columns:1fr 1fr}.shortcut-row a{min-height:44px}.concept-right-col{display:flex}.live-sidebar{grid-template-columns:1fr!important}.live-match-card{grid-template-columns:55px minmax(0,1fr) 30px!important}.live-toolbar{position:static!important}.live-hero h1{font-size:1.5rem!important}}

/* ============================================================
   CONCEPT PIXEL-PASS 01 — HERO / MATCH ROW / MICRO UI
   Built to mirror the approved TOOL SOI KÈO concept.
   ============================================================ */
.concept-hero{
  min-height:174px!important;
  border-color:#153b78!important;
  background:#06152f!important;
  box-shadow:0 12px 45px rgba(0,0,0,.34),0 0 32px rgba(63,92,255,.08)!important;
}
.concept-hero .hero-visual{
  position:absolute;inset:0;
  background-image:url('../img_concept_hero.png');
  background-size:cover;background-position:center;
  background-repeat:no-repeat;
}
.concept-hero .hero-visual:after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(3,10,29,.02),transparent 55%,rgba(3,8,24,.05));
  pointer-events:none;
}
.hero-hotspots{position:absolute;left:0;right:0;bottom:0;height:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:8px 20px;z-index:5}
.hero-hotspots a{display:block;border-radius:9px;background:rgba(255,255,255,.01);transition:.18s;min-width:0}
.hero-hotspots a:hover{background:rgba(139,92,246,.09);box-shadow:inset 0 0 0 1px rgba(139,92,246,.22)}
.hero-hotspots span{display:block;width:100%;height:100%}
.concept-filterbar{gap:7px!important;margin-top:15px!important}
.concept-filter{height:38px!important;padding:0 12px!important;border-radius:9px!important;background:linear-gradient(180deg,#071b3c,#06152d)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important}
.concept-filter.active{background:linear-gradient(100deg,#6d2cff,#4534e8)!important}
.concept-filter.hot{border-color:#4d1f45!important;background:linear-gradient(100deg,#3a142e,#291427)!important}
.concept-filter.hot i{color:#ff496d!important}
.league-strip{height:58px!important;align-items:center!important;padding:8px!important;background:linear-gradient(180deg,#061832,#041229)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.league-strip .league-chip{height:40px!important;display:inline-flex!important;align-items:center!important;gap:7px!important;padding:0 12px!important;border-radius:9px!important;background:#061a37!important;border-color:#143d70!important}
.league-strip .league-chip i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#152d5b;color:#d9e5ff;font-size:10px}
.league-strip .league-chip:nth-child(2) i{background:#40266f}.league-strip .league-chip:nth-child(3) i{background:#8b2637}.league-strip .league-chip:nth-child(4) i{background:#1c8b6b}.league-strip .league-chip:nth-child(5) i{background:#9b3b24}.league-strip .league-chip:nth-child(6) i{background:#273f8f}.league-strip .league-chip:nth-child(7) i{background:#193d9a}.league-strip .league-chip:nth-child(8) i{background:#432e9b}
.league-strip .league-chip.active{background:linear-gradient(100deg,#5632ef,#4432d8)!important;border-color:#775aff!important}
.concept-section-head{padding:10px 3px 9px!important}.concept-section-head h2{font-size:14px!important}.concept-section-head p{margin-top:5px!important}
.home-live-card{border-radius:12px!important}
.home-card-head{height:39px!important;font-size:9px!important;background:linear-gradient(90deg,rgba(15,38,78,.45),transparent)}
.home-live-row{grid-template-columns:67px minmax(115px,1fr) 58px minmax(115px,1fr) 150px 116px!important;min-height:56px!important;padding:7px 10px!important;gap:8px!important;background:linear-gradient(90deg,rgba(4,16,38,.92),rgba(5,18,43,.78))}
.home-live-row:hover{background:linear-gradient(90deg,rgba(39,36,112,.28),rgba(6,20,48,.9))}
.home-live-time{font-size:9px!important}.home-live-time b{font-size:9px!important;color:#16e0a0!important;margin-top:3px}
.home-live-pill{display:inline-flex;align-items:center;width:max-content;padding:3px 6px;border-radius:5px;background:#263652;color:#9fb0ce;font-size:7px;font-weight:900}.home-live-pill.is-live{background:#f5224d;color:#fff;box-shadow:0 0 10px rgba(245,34,77,.18)}
.home-live-team{gap:7px!important;font-size:10px!important;font-weight:700}.home-live-team.right{justify-content:flex-end;text-align:right}.home-live-team span{max-width:120px}
.team-badge{width:29px;height:29px;flex:0 0 29px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#6d82d0,#162f67 65%,#0b1730);border:1px solid #355da8;box-shadow:0 0 10px rgba(62,102,203,.15);font-size:8px;font-weight:900;color:#dce8ff;overflow:hidden}.team-badge img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:50%;padding:2px}
.home-score{min-width:58px!important;padding:8px 6px!important;border-radius:8px!important;background:linear-gradient(180deg,#1a3d95,#13245d)!important;border-color:#2854a9!important;font-size:12px!important}
.home-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.home-row-actions button,.home-row-actions a{width:29px;height:29px;border:1px solid rgba(255,255,255,.08);border-radius:7px;background:rgba(255,255,255,.025);display:grid;place-items:center;color:#9db0d3;text-decoration:none;font-size:11px}.home-row-actions button{cursor:pointer}.home-row-actions button:hover,.home-row-actions a:hover{color:#fff;border-color:#4d5fc1;background:rgba(93,70,220,.18)}.home-row-actions a{width:auto;padding:0 9px;color:#fff;background:linear-gradient(100deg,#6330ee,#3b32ca);border-color:#684bff;font-size:8px;font-weight:800}
.match-odds{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:3px 5px;border-left:1px solid rgba(255,255,255,.06);padding-left:8px}.match-odds small{font-size:7px;color:#7388aa}.match-odds div{display:flex;gap:3px}.match-odds b{font:700 7px 'JetBrains Mono';background:#081a38;border:1px solid #15345f;border-radius:4px;padding:4px 3px;color:#d6e2fa;min-width:22px;text-align:center}.match-odds.muted{grid-template-columns:1fr 1fr}.match-odds.muted span{font-size:9px;color:#53698d}
.home-empty-live{min-height:120px;display:flex;align-items:center;justify-content:center;gap:10px;color:#6f84a8;font-size:10px}.home-empty-live i{color:#8b5cf6;font-size:18px}.home-empty-live a{color:#a78bfa;text-decoration:none;margin-left:4px}
.concept-side-card{border-radius:12px!important}.side-title{height:40px!important}.side-title h3{font-size:11px!important}.hot-side-row{min-height:51px!important}.hot-side-row .side-time{font-size:8px!important}.side-live-row{min-height:43px!important}.mini-ranking>div{min-height:35px}.shortcut-row{gap:9px!important}.shortcut-row a{min-height:50px!important;border-radius:10px!important}

@media(max-width:1200px){.home-live-row{grid-template-columns:62px minmax(100px,1fr) 55px minmax(100px,1fr) 118px!important}.match-odds{display:none}}
@media(max-width:900px){.hero-hotspots{padding:7px 12px}.home-live-row{grid-template-columns:58px minmax(100px,1fr) 55px minmax(100px,1fr) 90px!important}.home-row-actions a{display:none}}
@media(max-width:650px){.concept-hero{min-height:174px!important}.hero-hotspots{height:48px;padding:5px 8px;gap:4px}.hero-hotspots a{border-radius:6px}.concept-filterbar{margin-top:10px!important}.concept-filter{height:36px!important;padding:0 10px!important}.league-strip{height:52px!important}.league-strip .league-chip{height:36px!important}.home-live-row{grid-template-columns:54px minmax(0,1fr) 48px minmax(0,1fr) 30px!important;padding:7px 6px!important;gap:4px!important}.home-live-team span{max-width:72px;font-size:8px}.team-badge{width:24px;height:24px;flex-basis:24px}.home-row-actions{display:none}.home-score{min-width:46px!important;font-size:10px!important}.concept-right-col{gap:8px}}

/* Live match rows: concept density */
.live-match-card{grid-template-columns:72px minmax(0,1fr) 150px!important;min-height:68px!important;background:linear-gradient(90deg,#061a38,#05152f)!important}
.match-teams{grid-template-columns:minmax(0,1fr) 68px minmax(0,1fr)!important}
.team>span{display:flex!important;align-items:center;gap:7px}.team-away>span{justify-content:flex-end}.live-team-badge{width:27px;height:27px;flex:0 0 27px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#7185c9,#162d63 68%,#0b1730);border:1px solid #355da8;color:#e5edff;font-size:8px;font-weight:900;overflow:hidden}.live-team-badge img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:50%;padding:2px}.score-box{min-width:55px;padding:8px 5px;border-radius:8px;background:linear-gradient(180deg,#183e92,#13245d);border:1px solid #2a52a4;color:#fff!important;font-size:.95rem!important}.match-actions{justify-content:flex-end;align-items:center}.detail-pill{height:29px;display:inline-flex;align-items:center;padding:0 10px;border-radius:7px;background:linear-gradient(100deg,#6230ee,#3e34ce);border:1px solid #684bff;color:#fff;text-decoration:none;font-size:8px;font-weight:800}.detail-pill:hover{color:#fff;filter:brightness(1.12)}.live-odds{display:flex;align-items:center;gap:3px;margin-top:3px}.live-odds small{width:38px;color:#6f84a8;font-size:7px}.live-odds span{min-width:22px;padding:3px 3px;text-align:center;border:1px solid #15345f;border-radius:4px;background:#081a38;color:#cad8f0;font:700 7px 'JetBrains Mono'}
@media(max-width:1200px){.live-match-card{grid-template-columns:65px minmax(0,1fr) 125px!important}.live-odds{display:none}}
@media(max-width:650px){.live-match-card{grid-template-columns:52px minmax(0,1fr) 31px!important;padding:7px!important}.match-teams{grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr)!important}.live-team-badge{width:23px;height:23px;flex-basis:23px}.detail-pill{display:none}.match-actions{gap:2px}.match-actions .mini-action:nth-child(2){display:none}.score-box{min-width:44px;font-size:.78rem!important}}

/* ============================================================
   TOOL SOI KÈO UI POLISH — contrast, hierarchy, responsive
   ============================================================ */
:root {
    --ink: #070b14;
    --surface: #101827;
    --surface-2: #162033;
    --text: #f5f7ff;
    --text-dim: #b8c1d9;
    --text-faint: #7f8aa3;
    --border: rgba(255,255,255,.10);
    --primary: #4f8cff;
    --violet: #8b5cf6;
    --success: #22c55e;
    --danger: #ef4444;
    --warning: #f59e0b;
}
body { background: var(--ink); color: var(--text); }
.text-secondary, .small.text-secondary { color: var(--text-dim) !important; }
.form-label { color: var(--text); font-weight: 600; }
.form-control, .form-select { background: #0c1422; color: var(--text); border-color: var(--border); }
.form-control::placeholder { color: #8994aa; opacity: 1; }
.form-control:focus, .form-select:focus { color: var(--text); background: #0d1728; border-color: rgba(79,140,255,.7); box-shadow: 0 0 0 .2rem rgba(79,140,255,.12); }
.btn-primary { background: var(--primary); border-color: var(--primary); }
.btn-success { background: var(--success); border-color: var(--success); color: #06110a; }
.ts-top-icon, .ts-user { color: var(--text); }
.ts-register-btn { display:inline-flex; align-items:center; padding:.55rem .9rem; border:1px solid rgba(79,140,255,.45); border-radius:10px; color:#dbe7ff; text-decoration:none; background:rgba(79,140,255,.10); font-weight:700; }
.ts-register-btn:hover { background:rgba(79,140,255,.18); color:#fff; }
.ts-support-btn { text-decoration:none; }
.ts-side-link { color: var(--text-dim) !important; }
.ts-side-link:hover, .ts-side-link.active { color: #fff !important; }
.ts-sidebar { background:#0a111d !important; border-right:1px solid var(--border); }
.ts-topbar { background:rgba(7,11,20,.92) !important; }
.ts-menu-title, .ts-menu-more { color:var(--text) !important; }
.ts-notif-item { color:var(--text) !important; }
.ts-notif-item small, .ts-notif-item em { color:var(--text-dim) !important; }
.ts-live-label { color:#fff; background:rgba(239,68,68,.18); border-color:rgba(239,68,68,.35); }
.card { background:var(--surface); border-color:var(--border); }
@media (max-width: 700px) {
  .ts-brand-copy small { display:none; }
  .ts-global-search { display:none; }
  .ts-register-btn { padding:.45rem .65rem; font-size:.85rem; }
  .ts-top-actions { gap:.35rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
}

/* ============================================================
   V2.2 VISUAL PASS — stronger logo, live motion, depth, contrast
   ============================================================ */
.ts-brand-ball{position:relative;isolation:isolate;overflow:hidden}
.ts-brand-ball:before{content:'';position:absolute;inset:-20%;background:conic-gradient(from 20deg,#7c3aed,#35d8ff,#8b5cf6,#ec4899,#7c3aed);animation:brandSpin 8s linear infinite;z-index:-2}
.ts-brand-ball:after{content:'';position:absolute;inset:2px;border-radius:50%;background:radial-gradient(circle at 32% 25%,#ffffff,#a9b9ff 20%,#4a2a9a 58%,#09142d 100%);z-index:-1}
.brand-ball-core{position:relative;z-index:2;filter:drop-shadow(0 2px 8px rgba(0,0,0,.55));font-size:22px}
@keyframes brandSpin{to{transform:rotate(360deg)}}
.concept-hero{box-shadow:0 14px 55px rgba(0,0,0,.42),0 0 45px rgba(91,55,220,.12)!important}
.concept-hero .hero-visual{transform:scale(1.002);transition:transform .8s ease,filter .4s ease}
.concept-hero:hover .hero-visual{transform:scale(1.018);filter:saturate(1.08) brightness(1.03)}
.home-live-card,.concept-side-card,.home-upcoming{position:relative}
.home-live-card:before,.concept-side-card:before,.home-upcoming:before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,.035),transparent 28%,transparent 72%,rgba(139,92,246,.035));opacity:.7}
.home-live-row{position:relative;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
.home-live-row:hover{transform:translateY(-1px);box-shadow:inset 3px 0 0 #8b5cf6}
.home-live-pill.is-live{animation:livePulse 1.7s ease-in-out infinite}
.mini-live{animation:livePulse 1.7s ease-in-out infinite}
@keyframes livePulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.35)}50%{box-shadow:0 0 0 5px rgba(239,68,68,0)}}
.score-box,.home-score{font-variant-numeric:tabular-nums}
.score-changed{animation:scoreFlash .75s ease}
@keyframes scoreFlash{0%{transform:scale(1);box-shadow:0 0 0 rgba(34,197,94,0)}35%{transform:scale(1.08);box-shadow:0 0 24px rgba(34,197,94,.45)}100%{transform:scale(1)}}
.team-badge,.live-team-badge{box-shadow:0 0 14px rgba(79,140,255,.14)}
.ts-side-link i{transition:transform .18s ease,filter .18s ease}.ts-side-link:hover i{transform:scale(1.08);filter:drop-shadow(0 0 7px rgba(139,92,246,.5))}
.ts-top-icon,.ts-login-btn,.ts-register-btn{transition:transform .18s ease,box-shadow .18s ease}.ts-top-icon:hover,.ts-login-btn:hover,.ts-register-btn:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(79,140,255,.12)}
.live-team-badge img,.team-badge img{background:#fff}
.live-team-badge:not(:has(img)),.team-badge:not(:has(img)){font-family:'Space Grotesk',sans-serif}
@media(max-width:700px){.ts-brand-ball{width:36px;height:36px}.brand-ball-core{font-size:19px}.ts-topbar{grid-template-columns:auto 1fr auto}.concept-hero:hover .hero-visual{transform:none}}
@media(prefers-reduced-motion:reduce){.ts-brand-ball:before,.home-live-pill.is-live,.mini-live{animation:none}.concept-hero:hover .hero-visual{transform:none}}

/* ============================================================
   LIVE MATCH DETAIL — premium but readable
   ============================================================ */
.match-detail-page{max-width:1120px;margin:0 auto;padding:10px 0 34px}.match-detail-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.back-link{color:#b9c8e7;text-decoration:none;font-weight:700}.back-link:hover{color:#fff}.source-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;border:1px solid rgba(34,197,94,.3);background:rgba(34,197,94,.08);color:#a7f3c4;font-size:11px;font-weight:800}.match-detail-card{position:relative;overflow:hidden;border:1px solid rgba(111,142,210,.22);border-radius:22px;background:radial-gradient(circle at 50% 0,rgba(124,58,237,.16),transparent 38%),linear-gradient(145deg,#0d1728,#08101e);box-shadow:0 25px 70px rgba(0,0,0,.36),0 0 50px rgba(79,140,255,.08);padding:24px}.match-detail-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,rgba(255,255,255,.04),transparent 32%,transparent 68%,rgba(139,92,246,.04))}.match-detail-league{position:relative;text-align:center;color:#aab9d6;font-size:12px}.match-detail-grid{position:relative;display:grid;grid-template-columns:1fr 260px 1fr;align-items:center;gap:20px;padding:42px 0}.detail-team{text-align:center}.detail-team img,.detail-crest{width:88px;height:88px;margin:0 auto 14px;border-radius:50%;object-fit:contain;display:grid;place-items:center;background:#fff;border:1px solid rgba(255,255,255,.2);box-shadow:0 0 35px rgba(79,140,255,.16)}.detail-crest{font:800 24px/1 'Space Grotesk',sans-serif;color:#fff;background:radial-gradient(circle at 30% 20%,#7357ff,#1d2f74 68%,#08101f)}.detail-team h2{font:800 20px/1.2 'Space Grotesk',sans-serif;color:#fff;margin:0}.detail-team small{display:block;color:#7f91b3;margin-top:7px}.detail-score{text-align:center}.detail-live-pill{display:inline-flex;align-items:center;gap:7px;color:#fff;background:rgba(239,68,68,.13);border:1px solid rgba(239,68,68,.35);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:900;letter-spacing:.7px;animation:livePulse 1.7s ease-in-out infinite}.detail-live-pill i{width:7px;height:7px;border-radius:50%;background:#ef4444;box-shadow:0 0 10px #ef4444}.detail-score>strong{display:block;margin:14px 0 8px;font:900 44px/1 'JetBrains Mono',monospace;color:#fff}.detail-score>strong em{font-style:normal;color:#7f8fb0}.detail-clock{color:#b8c6e1;font:700 13px 'JetBrains Mono',monospace}.detail-events{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.detail-events>div{display:flex;flex-direction:column;align-items:center;gap:5px;padding:13px;border-radius:13px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}.detail-events i{color:#9c7cff}.detail-events span{color:#7183a7;font-size:10px}.detail-events b{color:#eef4ff;font:700 12px 'JetBrains Mono',monospace;text-align:center;word-break:break-word}@media(max-width:700px){.match-detail-top{align-items:flex-start;flex-direction:column}.match-detail-card{padding:16px}.match-detail-grid{grid-template-columns:1fr 110px 1fr;gap:8px;padding:30px 0}.detail-team img,.detail-crest{width:58px;height:58px}.detail-team h2{font-size:14px}.detail-score>strong{font-size:28px}.detail-events{grid-template-columns:1fr}.source-chip{font-size:10px}}

/* ==========================================================
   2.3 CLEAN LIGHT SPORTS UI — concept implementation
   ========================================================== */
:root{--ui-bg:#f7faf9;--ui-card:#fff;--ui-text:#111827;--ui-muted:#6b7280;--ui-line:#e5eee9;--ui-green:#10a878;--ui-teal:#16a6a0;--ui-soft:#eaf8f3;--ui-shadow:0 8px 28px rgba(20,65,55,.07)}
html,body{background:var(--ui-bg)!important;color:var(--ui-text)!important}
body.ts-app-body{background:linear-gradient(180deg,#fff 0,#f7faf9 100%)!important}
.particles{display:none!important}
.ts-topbar{background:rgba(255,255,255,.96)!important;border-bottom:1px solid var(--ui-line)!important;box-shadow:0 2px 14px rgba(16,90,70,.05)!important;color:var(--ui-text)!important}
.ts-brand-copy strong,.ts-user-copy strong,.ts-side-link,.ts-global-search input,.ts-top-icon{color:var(--ui-text)!important}
.ts-brand-ball{background:var(--ui-soft)!important;border-color:#c8eee0!important;color:var(--ui-green)!important}
.ts-global-search{background:#f8fbfa!important;border:1px solid #dcebe6!important;box-shadow:none!important}
.ts-global-search input{background:transparent!important}
.ts-sidebar{background:#fff!important;border-right:1px solid var(--ui-line)!important;box-shadow:2px 0 16px rgba(20,65,55,.04)!important}
.ts-side-link{border-radius:11px!important;color:#374151!important}
.ts-side-link:hover,.ts-side-link.active{background:var(--ui-soft)!important;color:#087f66!important}
.ts-live-label{background:#dff8ef!important;color:#078361!important}
.ts-main{background:transparent!important}
.ts-content-shell{max-width:1500px!important}
.card,.concept-side-card,.home-live-card,.home-upcoming,.shortcut-row>a,.live-side-card,.match-detail-card,.detail-panel,.standings-card,.simple-card{background:#fff!important;border:1px solid var(--ui-line)!important;box-shadow:var(--ui-shadow)!important;color:var(--ui-text)!important}
.text-secondary,.concept-section-head p,.page-heading p{color:var(--ui-muted)!important}
.gradient-text{background:linear-gradient(90deg,#087f66,#12a79a)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
.btn-primary,.btn-success,.btn-teal,.upcoming-action,.detail-pill{background:linear-gradient(135deg,var(--ui-green),var(--ui-teal))!important;border:0!important;color:#fff!important;border-radius:10px!important}
.btn-outline-primary{border-color:#9edfd0!important;color:#087f66!important}
.concept-page,.live-page,.standings-page,.simple-page{color:var(--ui-text)!important}
.concept-hero{border-radius:18px!important;overflow:hidden!important;box-shadow:0 12px 32px rgba(8,80,65,.10)!important}
.concept-filterbar,.league-strip,.live-toolbar,.hot-leagues{background:#fff!important;border:1px solid var(--ui-line)!important;box-shadow:none!important;border-radius:14px!important}
.concept-filter,.league-chip,.live-tab,.date-btn,.sort-btn{color:#374151!important;background:#fff!important;border-color:#dcebe6!important}
.concept-filter.active,.concept-filter:hover,.league-chip.active,.live-tab.active,.date-btn.active,.sort-btn.active{background:var(--ui-soft)!important;color:#087f66!important;border-color:#bce8db!important}
.concept-side-card .side-title h3,.concept-section-head h2,.live-side-card h3{color:#17221f!important}
.home-live-row,.upcoming-row,.side-match,.live-match-card{background:#fff!important;border-color:var(--ui-line)!important}
.home-live-row:hover,.upcoming-row:hover,.live-match-card:hover{background:#fbfefd!important;box-shadow:0 5px 18px rgba(16,120,95,.07)!important}
.home-live-pill.is-live,.match-status.live,.live-eyebrow,.mini-live{color:#087f66!important}
.home-score,.score-box,.detail-score-big{color:#111827!important}
.match-detail-modern{max-width:1200px;margin:0 auto}.detail-breadcrumb{display:flex;gap:10px;align-items:center;color:var(--ui-muted);margin-bottom:16px}.detail-breadcrumb a{color:#087f66;text-decoration:none}.detail-hero-card{background:#fff;border:1px solid var(--ui-line);border-radius:20px;padding:24px;box-shadow:var(--ui-shadow)}.detail-league-row{display:flex;justify-content:space-between;align-items:center}.detail-league{display:flex;gap:8px;align-items:center;font-weight:700}.detail-league img{width:30px;height:30px}.detail-status{padding:6px 10px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.75rem;font-weight:800}.detail-status.is-live{background:#e5fbf3;color:#078361}.detail-scoreboard{display:grid;grid-template-columns:1fr 220px 1fr;align-items:center;gap:30px;padding:34px 0 18px}.detail-side{text-align:center}.detail-side img,.detail-team-fallback{width:82px;height:82px;object-fit:contain;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#effaf6;border:1px solid #d6eee7;color:#087f66;font-weight:800}.detail-side h2{font-size:1.15rem;margin:12px 0 4px}.detail-side small,.detail-date,.detail-clock{color:var(--ui-muted)}.detail-center{text-align:center}.detail-score-big{font-size:3.8rem;font-weight:800;letter-spacing:-.08em}.detail-score-big span{color:#a7b1ae;margin:0 10px}.detail-clock{margin-top:4px;font-weight:700}.detail-tabs-static{display:flex;gap:6px;margin:18px 0}.detail-tabs-static span{padding:9px 14px;border-radius:10px;color:var(--ui-muted)}.detail-tabs-static .active{background:var(--ui-soft);color:#087f66;font-weight:700}.detail-grid-modern{display:grid;grid-template-columns:1fr 1fr;gap:18px}.detail-full{grid-column:1/-1}.detail-panel{border-radius:16px;padding:20px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-title h3{font-size:1rem;margin:0}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-columns h4{font-size:.95rem}.form-badges{display:flex;gap:5px;margin-bottom:10px}.form-badges b,.form-mini span{width:22px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;background:#eef2f1;color:#6b7280}.form-w{background:#dff8ef!important;color:#087f66!important}.form-d{background:#fff4d8!important;color:#9a6a00!important}.form-l{background:#fee8e7!important;color:#b42318!important}.mini-history,.h2h-row{display:grid;grid-template-columns:75px 1fr 28px;gap:8px;padding:9px 0;border-top:1px solid #edf2f0;align-items:center;font-size:.82rem}.mini-history span,.h2h-row>span,.h2h-row small{color:var(--ui-muted)}.mini-history b{color:#087f66}.h2h-row{grid-template-columns:75px 1fr 130px}.h2h-row em{font-style:normal;font-weight:800;margin:0 8px}.detail-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-info-grid>div{background:#f8fbfa;border:1px solid #e8f0ed;border-radius:11px;padding:12px}.detail-info-grid span{display:block;color:var(--ui-muted);font-size:.75rem;margin-bottom:4px}.detail-info-grid b{font-size:.9rem}.standings-page,.simple-page{max-width:1250px;margin:0 auto}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.eyebrow,.section-kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;color:#0a9274}.page-heading h1{margin:4px 0;font-weight:800}.league-selector{display:flex;gap:8px;overflow:auto;padding-bottom:4px;margin-bottom:14px}.league-select{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--ui-line);background:#fff;border-radius:11px;color:#374151;text-decoration:none;white-space:nowrap}.league-select img{width:25px;height:25px}.league-select.active{border-color:#a7e1d2;background:var(--ui-soft);color:#087f66;font-weight:700}.standings-switch{display:flex;gap:6px;margin:14px 0}.standings-switch a{padding:10px 15px;border-radius:10px;text-decoration:none;color:var(--ui-muted);background:#fff;border:1px solid var(--ui-line)}.standings-switch a.active{background:linear-gradient(135deg,#0ea878,#16a6a0);color:#fff;border-color:transparent}.standings-card{border-radius:18px;padding:20px}.standings-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.standings-card-head h2{margin:4px 0 0;font-size:1.2rem}.data-status{font-size:.78rem;color:#9ca3af}.data-status.ok{color:#087f66}.data-status i{font-size:.45rem;margin-right:5px}.table-scroll{overflow:auto}.standings-table{width:100%;border-collapse:collapse;min-width:780px}.standings-table th{font-size:.72rem;text-transform:uppercase;color:#7b8682;padding:11px 9px;border-bottom:1px solid var(--ui-line);font-weight:700}.standings-table td{padding:11px 9px;border-bottom:1px solid #eef3f1;font-size:.85rem}.standings-table tbody tr:hover{background:#fbfefd}.club-cell{display:flex;align-items:center;gap:9px;min-width:190px}.club-cell img,.club-cell>span{width:28px;height:28px;object-fit:contain;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#eef8f4;color:#087f66;font-size:.65rem;font-weight:800}.prediction-avatar{border-radius:9px!important}.form-mini{display:flex;gap:3px}.empty-state.large{padding:55px 20px;text-align:center;color:var(--ui-muted)}.empty-state.large i{font-size:2rem;color:#10a878}.simple-card{border-radius:18px;padding:10px}.favorite-row{display:flex;align-items:center;gap:14px;padding:15px;border-bottom:1px solid #edf2f0}.favorite-row:last-child{border-bottom:0}.fav-icon{width:40px;height:40px;border-radius:12px;background:#fff5d9;color:#d59a00;display:flex;align-items:center;justify-content:center}.favorite-row>div{flex:1}.favorite-row strong{display:block}.favorite-row strong span{color:#9ca3af;margin:0 5px}.favorite-row small{color:var(--ui-muted)}.ts-footer{background:#fff!important;border-top:1px solid var(--ui-line)!important;color:var(--ui-muted)!important}
@media(max-width:900px){.detail-scoreboard{grid-template-columns:1fr 160px 1fr;gap:12px}.detail-score-big{font-size:2.8rem}.detail-grid-modern,.form-columns{grid-template-columns:1fr}.detail-full{grid-column:auto}.detail-info-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.detail-hero-card{padding:16px}.detail-scoreboard{grid-template-columns:1fr;gap:18px}.detail-center{order:-1}.detail-side img,.detail-team-fallback{width:64px;height:64px}.detail-info-grid{grid-template-columns:1fr}.h2h-row{grid-template-columns:60px 1fr}.h2h-row small{display:none}.favorite-row{align-items:flex-start}}

/* ============================================================
   V2.4 FINAL CONCEPT — clean white / green / teal sports UI
   ============================================================ */
:root{
  --ui-bg:#f6faf8;--ui-card:#fff;--ui-text:#13201d;--ui-muted:#72817d;
  --ui-line:#e1ece8;--ui-green:#0ca77a;--ui-teal:#12a99e;--ui-soft:#e8f8f3;
  --ui-shadow:0 8px 24px rgba(19,70,57,.055);--ui-shadow-lg:0 14px 38px rgba(19,70,57,.08)
}
html,body{background:var(--ui-bg)!important;color:var(--ui-text)!important}
body.ts-app-body{font-family:'Inter',sans-serif;background:linear-gradient(180deg,#fff 0,#f6faf8 100%)!important}
.ts-topbar{height:72px!important;grid-template-columns:255px minmax(280px,1fr) 285px!important;background:#fff!important;border-bottom:1px solid var(--ui-line)!important;box-shadow:0 2px 14px rgba(20,65,55,.045)!important;backdrop-filter:none!important}
.ts-brand-copy strong{font:800 20px/1 'Space Grotesk',sans-serif!important;font-style:italic!important;background:none!important;color:#13201d!important;-webkit-text-fill-color:initial!important}
.ts-brand-copy strong b{display:inline-block;background:linear-gradient(135deg,#0ca77a,#18a99f);color:#fff;border-radius:7px;padding:2px 5px;font-size:13px;margin-left:2px;vertical-align:2px;font-style:normal}
.ts-brand-copy small{color:#8a9894!important;font-size:8px!important}
.ts-brand-ball{width:42px!important;height:42px!important;background:linear-gradient(145deg,#dff8f0,#fff)!important;border:1px solid #bce6da!important;box-shadow:0 6px 18px rgba(12,167,122,.14)!important;color:#087f66!important}
.ts-brand-ball:before,.ts-brand-ball:after{display:none!important}
.brand-ball-core{filter:none!important;font-size:23px!important}
.ts-global-search{height:42px!important;max-width:610px!important;border:1px solid #d9e8e3!important;border-radius:12px!important;background:#f8fbfa!important;box-shadow:none!important}
.ts-global-search:focus-within{border-color:#9bdaca!important;box-shadow:0 0 0 3px rgba(12,167,122,.08)!important}
.ts-global-search i{color:#8e75ef!important}.ts-global-search input{color:#26332f!important}.ts-global-search input::placeholder{color:#93a19e!important}
.ts-global-search kbd{color:#fff!important;background:#102b4e!important;border:0!important;border-radius:6px!important}
.ts-top-actions{gap:10px!important}.ts-top-icon{color:#1f302b!important}.ts-top-icon:hover{background:#eef8f5!important;color:#087f66!important;box-shadow:none!important;transform:none!important}
.ts-support-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.ts-user{color:#20312d!important}.ts-user:hover{background:#f2f8f6!important}.ts-user img,.ts-user-avatar{border:2px solid #c9e9df!important}.ts-user-copy small{color:#8b9895!important}.ts-user-copy strong{color:#1c2a26!important}
.ts-login-btn{background:#0e9f7a!important;border-color:#0e9f7a!important;color:#fff!important}.ts-register-btn{color:#087f66!important;background:#e8f8f3!important;border:1px solid #c6eadf!important}
.ts-sidebar{top:72px!important;width:215px!important;background:#fff!important;border-right:1px solid var(--ui-line)!important;box-shadow:2px 0 18px rgba(20,65,55,.035)!important}
.ts-side-link{height:44px!important;color:#34433f!important;border-radius:11px!important;font-size:12px!important}.ts-side-link i{color:#76908a!important}.ts-side-link:hover{background:#f1f9f6!important;border-color:#d8eee7!important;color:#087f66!important}.ts-side-link.active{background:#e5f7f1!important;border-color:#b9e5d8!important;color:#087f66!important;box-shadow:none!important}.ts-side-link.active i{color:#087f66!important}.ts-live-label{background:#dff8ef!important;color:#087f66!important}.ts-side-count{margin-left:auto;min-width:20px;padding:3px 6px;border-radius:10px;background:#e9f8f3;color:#078361;font-size:9px;text-align:center}
.ts-sidebar-bottom{color:#95a29f!important}.ts-sidebar-bottom span{color:#0ca77a!important}
.ts-main{margin-left:215px!important;padding:88px 20px 24px!important}.ts-content-shell{max-width:1440px!important}.ts-footer{margin-left:215px!important;background:#fff!important;border-top:1px solid var(--ui-line)!important;color:#7d8b87!important}.ts-footer a{color:#64736e!important}.ts-footer a:hover{color:#087f66!important}
.ts-notif-menu,.ts-user-menu{background:#fff!important;border:1px solid var(--ui-line)!important;box-shadow:0 16px 38px rgba(18,55,45,.12)!important;color:#23312d!important}.ts-notif-item{color:#394742!important;border-color:#eef3f1!important}.ts-notif-item>i{color:#0ca77a!important}.ts-notif-item small,.ts-notif-item em{color:#8a9894!important}.ts-notif-item.is-unread{background:#eef9f5!important}.ts-menu-more{color:#087f66!important}.ts-user-menu .dropdown-item{color:#374640!important}.ts-user-menu .dropdown-item:hover{background:#eef8f5!important;color:#087f66!important}

.sports-home{max-width:1260px;margin:0 auto}.sports-hero{position:relative;min-height:190px;overflow:hidden;border-radius:18px;background:linear-gradient(105deg,#073d37 0%,#0b7768 47%,#14ad98 100%);box-shadow:var(--ui-shadow-lg);padding:28px 34px;color:#fff}.sports-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 45%,rgba(255,255,255,.18),transparent 17%),linear-gradient(115deg,transparent 0 54%,rgba(255,255,255,.05) 54% 56%,transparent 56%);pointer-events:none}.sports-hero:after{content:"";position:absolute;right:-90px;top:-150px;width:520px;height:520px;border:1px solid rgba(255,255,255,.14);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.035),0 0 0 90px rgba(255,255,255,.025)}.hero-copy{position:relative;z-index:2;max-width:650px}.hero-kicker{font-size:13px;font-weight:800;letter-spacing:.04em}.hero-copy h1{font:800 30px/1.1 'Space Grotesk',sans-serif;margin:8px 0 7px}.hero-copy p{font-size:14px;margin:0 0 16px;color:rgba(255,255,255,.88)}.hero-btn{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;background:#fff;color:#087f66;border-radius:9px;text-decoration:none;font-weight:800;font-size:12px}.hero-ball{position:absolute;z-index:1;right:10%;top:16px;font-size:118px;filter:drop-shadow(0 18px 25px rgba(0,0,0,.2));transform:rotate(-10deg);opacity:.95}.hero-points{position:absolute;z-index:3;right:24px;bottom:14px;display:flex;gap:8px}.hero-points span{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:9px;background:rgba(2,43,37,.34);border:1px solid rgba(255,255,255,.14);font-size:10px;font-weight:700;backdrop-filter:blur(5px)}
.quick-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:14px 0}.quick-card{display:flex;align-items:center;gap:9px;min-width:0;padding:12px;background:#fff;border:1px solid var(--ui-line);border-radius:12px;text-decoration:none;color:var(--ui-text);box-shadow:var(--ui-shadow);transition:.18s}.quick-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(19,70,57,.08);border-color:#c9e9df}.quick-card>div{min-width:0;flex:1}.quick-card b,.quick-card small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-card b{font-size:11px}.quick-card small{color:var(--ui-muted);font-size:9px;margin-top:3px}.quick-card>strong{font-size:9px;color:#087f66;white-space:nowrap}.quick-icon{width:35px;height:35px;flex:none;display:grid;place-items:center;border-radius:10px;color:#fff}.quick-icon.green{background:#0ca77a}.quick-icon.teal{background:#12a99e}.quick-icon.blue{background:#2f78d4}.quick-icon.cyan{background:#199fba}.quick-icon.orange{background:#f28b35}.quick-icon.mint{background:#3fbd87}
.home-command-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(300px,.78fr);gap:14px}.home-main,.home-right{display:flex;flex-direction:column;gap:14px}.home-panel{background:#fff;border:1px solid var(--ui-line);border-radius:15px;box-shadow:var(--ui-shadow);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px 12px}.panel-head h2{font:800 16px/1.15 'Space Grotesk',sans-serif;margin:4px 0 0;color:#162520}.panel-head>a{font-size:10px;font-weight:700;color:#0b9274;text-decoration:none;white-space:nowrap}.section-label{font-size:9px;letter-spacing:.07em;font-weight:900;color:#087f66}.section-label.hot{color:#e67624}.home-live-list-modern{border-top:1px solid #edf3f1}.home-live-row-modern{display:grid;grid-template-columns:minmax(0,1fr) 135px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:12px 17px;border-bottom:1px solid #edf3f1;text-decoration:none;color:#17251f;transition:.16s}.home-live-row-modern:hover{background:#f9fcfb}.home-live-row-modern:last-child{border-bottom:0}.live-team-modern{display:flex;align-items:center;gap:8px;min-width:0}.live-team-modern.away{justify-content:flex-end}.live-team-modern b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-badge-modern{width:32px;height:32px;flex:none;border-radius:50%;display:grid;place-items:center;background:#eff8f5;border:1px solid #d9ece6;overflow:hidden;color:#087f66;font-size:8px;font-weight:800}.team-badge-modern img{width:24px;height:24px;object-fit:contain}.team-badge-modern>span{display:grid;place-items:center;width:100%;height:100%}.live-score-modern{text-align:center}.live-score-modern strong{display:block;font:800 15px 'JetBrains Mono',monospace;color:#14211d}.live-score-modern strong em{font-style:normal;color:#9aa6a2}.live-score-modern small{display:block;color:#7a8985;font-size:8px;margin-top:3px}.live-badge-modern{display:inline-block;padding:3px 6px;border-radius:5px;background:#e9f8f3;color:#087f66;font-size:7px;font-weight:900}.row-arrow{color:#b1bfba;font-size:11px}
.hot-grid-modern{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 15px}.hot-card-modern{position:relative;padding:13px;border:1px solid #e2ece9;border-radius:12px;text-decoration:none;color:#17251f;min-height:120px;background:linear-gradient(180deg,#fff,#fbfefd)}.hot-card-modern:hover{border-color:#bfe4da;box-shadow:0 7px 18px rgba(16,120,95,.07)}.hot-meta{display:flex;justify-content:space-between;gap:6px;color:#0b9274;font-size:8px}.hot-meta small{color:#87938f}.hot-teams{display:grid;gap:5px;text-align:center;margin:17px 0 12px;font-size:10px}.hot-teams span{font-size:8px;color:#9aa5a1}.hot-cta{display:block;text-align:center;border-radius:7px;padding:6px;background:#0ca77a;color:#fff;font-size:9px;font-weight:800}.empty-inline{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:26px;color:#7d8b87;text-align:center;font-size:10px}.empty-inline i{font-size:21px;color:#9db0aa}.empty-inline b{color:#44534e;font-size:11px}.empty-inline.compact{padding:20px}.loading-state{padding:24px;text-align:center;color:#7c8a86;font-size:10px}.loading-state span{display:inline-block;width:10px;height:10px;border:2px solid #bfe6dc;border-top-color:#0ca77a;border-radius:50%;animation:spin 1s linear infinite;vertical-align:-1px;margin-right:5px}@keyframes spin{to{transform:rotate(360deg)}}.error-inline{padding:20px;text-align:center;color:#b42318;font-size:10px}
.prediction-mini-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:0 14px 14px}.prediction-user{display:grid;grid-template-columns:22px 1fr auto;gap:4px;align-items:center;padding:9px;border:1px solid #e5eeeb;border-radius:10px}.prediction-user>span{font-weight:800;color:#0ca77a}.prediction-user strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prediction-user b{font-size:11px}.prediction-user small{grid-column:2/4;color:#98a49f;font-size:7px}
.standings-mini-panel .panel-head{padding-bottom:9px}.league-tabs-mini{display:flex;gap:5px;padding:0 14px 10px;overflow:auto}.league-tabs-mini button{border:1px solid #dfeae6;background:#fff;color:#667570;border-radius:8px;padding:6px 8px;font-size:8px;white-space:nowrap}.league-tabs-mini button.active{background:#0ca77a;color:#fff;border-color:#0ca77a}.mini-standing-table{padding:0 14px 14px}.mini-standing-row{display:grid;grid-template-columns:20px 1fr 28px 35px;align-items:center;gap:7px;padding:8px 0;border-bottom:1px solid #eef3f1;font-size:9px}.mini-standing-row:last-child{border-bottom:0}.mini-standing-row>span:first-child{color:#8b9894}.mini-club{display:flex;align-items:center;gap:7px;min-width:0}.mini-club b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-club img,.mini-club>span{width:24px;height:24px;object-fit:contain;display:grid;place-items:center;border-radius:50%;background:#eff8f5;color:#087f66;font-size:7px;font-weight:800}.mini-standing-row strong{text-align:right;color:#087f66}
.schedule-list-modern,.notice-panel{border-top:1px solid #edf3f1}.schedule-row-modern{display:grid;grid-template-columns:45px 1fr 12px;gap:8px;align-items:center;padding:10px 15px;border-bottom:1px solid #edf3f1;text-decoration:none;color:#1c2a26}.schedule-row-modern:last-child{border-bottom:0}.schedule-time{font:700 10px 'JetBrains Mono',monospace;color:#087f66}.schedule-teams{display:grid;gap:2px}.schedule-teams b{font-size:9px}.schedule-teams em{font-size:7px;color:#9aa6a2;font-style:normal}.schedule-teams small{font-size:7px;color:#84918d}.schedule-row-modern>i{color:#b0bdb8}.notice-row{display:flex;gap:9px;align-items:flex-start;padding:10px 15px;border-bottom:1px solid #edf3f1;text-decoration:none;color:#25342f}.notice-row:last-child{border-bottom:0}.notice-row>i{color:#0ca77a;font-size:12px;margin-top:2px}.notice-row span{display:grid;gap:3px}.notice-row b{font-size:9px}.notice-row small{font-size:7px;color:#909d99}.home-footer-strip{display:flex;justify-content:center;gap:28px;padding:14px 8px;color:#7f8d89;font-size:8px}.home-footer-strip span{display:inline-flex;align-items:center;gap:6px}.home-footer-strip i{color:#0ca77a}

/* Shared clean pages */
.section-page-modern,.standings-page-modern{max-width:1260px;margin:0 auto}.section-page-modern.narrow{max-width:980px}.page-heading-modern{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:16px}.page-heading-modern h1{font:800 26px/1.1 'Space Grotesk',sans-serif;margin:5px 0}.page-heading-modern p{margin:0;color:var(--ui-muted);font-size:11px}.eyebrow{font-size:9px;font-weight:900;letter-spacing:.09em;color:#0a9274}.green-btn,.green-outline-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:9px;text-decoration:none;font-size:10px;font-weight:800}.green-btn{border:0;background:linear-gradient(135deg,#0ca77a,#16a99f);color:#fff}.green-outline-btn{background:#fff;border:1px solid #bfe4da;color:#087f66}.league-card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.league-feature-card{display:flex;align-items:center;gap:10px;padding:15px;background:#fff;border:1px solid var(--ui-line);border-radius:13px;text-decoration:none;color:#1b2a25;box-shadow:var(--ui-shadow);transition:.18s}.league-feature-card:hover{border-color:#bce4da;transform:translateY(-2px)}.league-feature-card img{width:42px;height:42px}.league-feature-card div{flex:1;min-width:0}.league-feature-card b,.league-feature-card small{display:block}.league-feature-card b{font-size:11px}.league-feature-card small{font-size:8px;color:#84918d;margin-top:3px}.league-feature-card>i{color:#0ca77a}.info-banner-modern{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;background:#eef9f5;border:1px solid #d5eee6;border-radius:12px;color:#34524a}.info-banner-modern>i{color:#0ca77a}.info-banner-modern div{display:grid;gap:3px;font-size:9px}.info-banner-modern span{color:#72817d}.info-banner-modern code{font-size:8px}

/* Standings */
.standings-page-modern{max-width:1320px}.sync-badge{display:inline-flex;gap:6px;align-items:center;padding:7px 10px;border-radius:999px;background:#eef9f5;color:#087f66;font-size:9px;font-weight:800}.league-tabs-modern{display:flex;gap:7px;overflow:auto;padding:3px 0 12px}.league-tab-modern{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--ui-line);border-radius:10px;background:#fff;color:#52615c;text-decoration:none;font-size:9px;white-space:nowrap}.league-tab-modern img{width:25px;height:25px}.league-tab-modern.active{background:#e9f8f3;border-color:#bde6da;color:#087f66;font-weight:800}.standings-title-row{display:flex;justify-content:space-between;align-items:flex-end;margin:8px 0 12px}.standings-title-row h2{font:800 17px/1.2 'Space Grotesk',sans-serif;margin:4px 0}.soft-link{color:#087f66;text-decoration:none;font-size:9px;font-weight:700}.standings-dual-grid{display:grid;grid-template-columns:1fr;gap:14px}.standings-full-card{width:100%}.standings-refresh-area{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;color:var(--ui-muted);font-size:8px}.standings-refresh-area .green-outline-btn{cursor:pointer}.standings-refresh-area .green-outline-btn:disabled{opacity:.55;cursor:wait}.standings-modern-card{background:#fff;border:1px solid var(--ui-line);border-radius:15px;box-shadow:var(--ui-shadow);overflow:hidden}.standings-card-head-modern{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 16px 11px}.standings-card-head-modern h3{font:800 14px/1.2 'Space Grotesk',sans-serif;margin:4px 0}.card-kicker{font-size:8px;font-weight:900;color:#0a9274;letter-spacing:.08em}.card-kicker.prediction{color:#6d54c8}.live-data-dot,.prediction-note{font-size:8px;color:#7c8985}.live-data-dot i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#0ca77a;margin-right:4px}.table-scroll{overflow:auto}.standings-modern-table{width:100%;border-collapse:collapse;min-width:620px}.standings-modern-table th{font-size:7px;text-transform:uppercase;color:#84918d;padding:9px 8px;background:#f8fbfa;border-top:1px solid #edf3f1;border-bottom:1px solid #edf3f1}.standings-modern-table td{padding:9px 8px;border-bottom:1px solid #edf3f1;font-size:8px}.standings-modern-table tbody tr:hover{background:#fbfefd}.club-modern{display:flex;align-items:center;gap:7px;min-width:130px}.club-modern img,.club-modern>span,.user-mini-avatar{width:25px;height:25px;object-fit:contain;display:grid;place-items:center;border-radius:50%;background:#eff8f5;color:#087f66;font-size:7px;font-weight:800}.user-mini-avatar{background:#e8f0ff;color:#4469b8}.form-dots{display:flex;gap:2px}.form-dot{width:16px;height:16px;border-radius:5px;display:grid;place-items:center;font-size:6px;font-style:normal;font-weight:800}.form-dot.w{background:#dff8ef;color:#087f66}.form-dot.d{background:#fff2d6;color:#a26b00}.form-dot.l{background:#fee8e7;color:#b42318}.prediction-score{color:#6d54c8}.standings-empty{padding:50px 20px;text-align:center;color:#7d8b87}.standings-empty i{font-size:26px;color:#9db4ad}.standings-empty h4{font-size:13px;color:#40514b;margin:10px 0 4px}.standings-empty p{font-size:9px}.standings-empty.small{padding:30px 10px}

.notice-page-card{background:#fff;border:1px solid var(--ui-line);border-radius:15px;box-shadow:var(--ui-shadow);overflow:hidden}.notice-page-row{display:flex;align-items:center;gap:11px;padding:14px 16px;border-bottom:1px solid #edf3f1;text-decoration:none;color:#24332e}.notice-page-row:last-child{border-bottom:0}.notice-page-row.unread{background:#f3faf7}.notice-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#eef8f5;color:#0ca77a}.notice-icon.warning{background:#fff3dd;color:#c07b00}.notice-icon.success{background:#e7f8ef;color:#078361}.notice-icon.reward{background:#f0eaff;color:#7350c9}.notice-body{display:grid;gap:3px;flex:1}.notice-body b{font-size:10px}.notice-body small{font-size:9px;color:#6f7d78}.notice-body em{font-size:7px;color:#9aa5a1;font-style:normal}.unread-dot{width:7px;height:7px;border-radius:50%;background:#0ca77a}.notice-page-row>i:last-child{color:#b2bfba;font-size:11px}

/* Favorites / detail */
.simple-page{max-width:1100px}.simple-card{background:#fff!important;border:1px solid var(--ui-line)!important;box-shadow:var(--ui-shadow)!important;border-radius:15px!important}.favorite-row:hover{background:#fbfefd}.btn-teal{display:inline-flex;align-items:center;padding:7px 10px;text-decoration:none;font-size:9px;font-weight:800}
.match-detail-modern{max-width:1200px!important}.detail-hero-card,.detail-panel{box-shadow:var(--ui-shadow)!important}.detail-tabs-static span{cursor:default}

/* Live page clean override */
.live-page{max-width:1260px;margin:0 auto}.live-hero{background:#fff;border:1px solid var(--ui-line);border-radius:15px;padding:18px 20px!important;box-shadow:var(--ui-shadow);align-items:center}.live-eyebrow{color:#0a9274!important}.gradient-text{background:linear-gradient(90deg,#087f66,#16a6a0)!important;-webkit-background-clip:text!important;color:transparent!important}.live-toolbar{background:#fff!important;border:1px solid var(--ui-line)!important;box-shadow:none!important}.live-tab{background:#fff!important;color:#52615c!important;border-color:#dcebe6!important}.live-tab.active{background:#e9f8f3!important;color:#087f66!important;border-color:#bce7db!important;box-shadow:none!important}.live-search-wrap{background:#f8fbfa!important;border-color:#dcebe6!important}.live-search-wrap input{color:#26332f!important}.live-search-wrap input::placeholder{color:#96a39f!important}.hot-leagues{background:#fff!important;border-color:var(--ui-line)!important}.league-chip{background:#fff!important;color:#596863!important;border-color:#dcebe6!important}.league-chip.active{background:#0ca77a!important;color:#fff!important;border-color:#0ca77a!important}.live-section-head h2{color:#17251f!important}.live-match-card,.live-side-card{background:#fff!important;border-color:var(--ui-line)!important;box-shadow:var(--ui-shadow)!important}.live-match-card:hover{background:#fbfefd!important}.match-status.live{background:#e8f8f3!important;color:#087f66!important}.score-box{background:#eff8f5!important;color:#13201d!important;border:1px solid #d7ece5!important}.detail-pill{background:#0ca77a!important}.mini-action{color:#8a9894!important}.mini-action.active{color:#e2a700!important}.live-sidebar .side-head h3{color:#1b2a25!important}.side-match{border-color:#edf3f1!important}.quick-links a{color:#44534e!important}.quick-links a:hover{background:#f0f8f5!important;color:#087f66!important}

@media(max-width:1100px){.quick-grid{grid-template-columns:repeat(3,1fr)}.home-command-grid{grid-template-columns:1fr}.home-right{display:grid;grid-template-columns:1fr 1fr}.home-right .notice-panel{grid-column:1/-1}.hero-points{right:15px}.hero-ball{right:5%}.league-card-grid{grid-template-columns:repeat(3,1fr)}.standings-dual-grid{grid-template-columns:1fr}}
@media(max-width:900px){.ts-topbar{grid-template-columns:auto 1fr auto!important}.ts-sidebar{width:235px!important}.ts-main{margin-left:0!important}.ts-footer{margin-left:0!important}.home-right{grid-template-columns:1fr}.home-right .notice-panel{grid-column:auto}.hot-grid-modern{grid-template-columns:1fr 1fr}.prediction-mini-grid{grid-template-columns:1fr 1fr 1fr}.hero-points{position:static;margin-top:18px;flex-wrap:wrap}.sports-hero{min-height:230px}.hero-ball{right:0;opacity:.32}.league-card-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.ts-topbar{height:64px!important}.ts-sidebar{top:64px!important}.ts-main{padding:78px 10px 18px!important}.ts-footer{display:none}.sports-hero{padding:22px 18px;min-height:255px}.hero-copy h1{font-size:24px}.hero-points{gap:5px}.hero-points span{font-size:8px}.quick-grid{grid-template-columns:1fr 1fr}.quick-card{padding:10px}.quick-card>strong{display:none}.home-live-row-modern{grid-template-columns:1fr 100px 1fr 10px;padding:10px}.home-live-row-modern .live-team-modern b{font-size:9px}.hot-grid-modern{grid-template-columns:1fr}.prediction-mini-grid{grid-template-columns:1fr 1fr}.home-footer-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px}.page-heading-modern{align-items:flex-start;flex-direction:column}.league-card-grid{grid-template-columns:1fr}.standings-title-row{align-items:flex-start;flex-direction:column;gap:8px}.standings-modern-table{min-width:560px}.live-layout{grid-template-columns:1fr!important}.live-sidebar{display:flex!important;flex-direction:column}.hero-kicker{font-size:11px}}
@media(prefers-reduced-motion:reduce){.quick-card,.league-feature-card{transition:none}.loading-state span{animation:none}}

/* Admin clean control center */
.admin-page-modern{max-width:1320px;margin:0 auto}.admin-head-modern{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}.admin-head-modern h1{font:800 26px/1.1 'Space Grotesk',sans-serif;margin:5px 0}.admin-head-modern p{font-size:10px;color:var(--ui-muted);margin:0}.admin-live{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#e9f8f3;color:#087f66;font-size:8px;font-weight:800}.admin-live i{width:6px;height:6px;border-radius:50%;background:#0ca77a}.admin-stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.admin-stat{display:flex;align-items:center;gap:9px;padding:13px;background:#fff;border:1px solid var(--ui-line);border-radius:13px;box-shadow:var(--ui-shadow);text-decoration:none;color:#1b2a25}.admin-stat:hover{border-color:#c1e6dc;transform:translateY(-1px)}.admin-stat-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;color:#fff}.admin-stat-icon.green{background:#0ca77a}.admin-stat-icon.teal{background:#16a6a0}.admin-stat-icon.blue{background:#4c7fd1}.admin-stat-icon.cyan{background:#159fb8}.admin-stat-icon.red{background:#e25b65}.admin-stat-icon.orange{background:#ef9b3f}.admin-stat div{min-width:0}.admin-stat small,.admin-stat b{display:block}.admin-stat small{font-size:8px;color:#87948f}.admin-stat b{font-size:17px;margin-top:2px}.admin-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.admin-card-modern{background:#fff;border:1px solid var(--ui-line);border-radius:15px;box-shadow:var(--ui-shadow);overflow:hidden}.admin-card-head{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 17px 11px}.admin-card-head h2{font:800 14px/1.2 'Space Grotesk',sans-serif;margin:4px 0}.admin-card-head a{font-size:9px;color:#087f66;text-decoration:none}.card-kicker{font-size:8px;font-weight:900;letter-spacing:.08em;color:#0a9274}.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 16px 16px}.health-grid>div{padding:10px;border:1px solid #e7efec;border-radius:10px;background:#fbfdfc}.health-grid span,.health-grid b{display:block}.health-grid span{font-size:7px;color:#8b9894}.health-grid b{font-size:9px;margin-top:4px}.ok-text{color:#087f66}.admin-actions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px 16px}.admin-actions-grid a{display:flex;align-items:center;gap:7px;padding:10px;border:1px solid #e4eeeb;border-radius:9px;text-decoration:none;color:#42524c;font-size:8px;font-weight:700}.admin-actions-grid a:hover{background:#eef9f5;color:#087f66}.admin-actions-grid i{color:#0ca77a;font-size:14px}.admin-chart{height:220px;padding:0 14px 14px}.admin-list{border-top:1px solid #edf3f1}.admin-list>a{display:flex;align-items:center;gap:9px;padding:10px 15px;border-bottom:1px solid #edf3f1;text-decoration:none;color:#26352f}.admin-list>a:last-child{border-bottom:0}.admin-list>a>span:nth-child(2){flex:1;display:grid;gap:3px}.admin-list b{font-size:9px}.admin-list small{font-size:7px;color:#8b9894}.admin-list>a>i{color:#b1bfba;font-size:10px}.admin-avatar,.admin-pred-status{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#e8f8f3;color:#087f66;font-size:9px;font-weight:800}.admin-pred-status{background:#eef3ff;color:#5372bd}.security-list{padding:0 15px 12px}.security-list>div{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #edf3f1}.security-list>div:last-child{border-bottom:0}.security-list i{width:20px;color:#0ca77a}.security-list span{flex:1;font-size:9px;color:#52615c}.security-list b{font-size:10px}
@media(max-width:1100px){.admin-stat-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:800px){.admin-grid-2{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr 1fr}.admin-actions-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.admin-head-modern{align-items:flex-start;flex-direction:column}.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-actions-grid{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr 1fr}}
.detail-team-follow-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:2px 0 12px}.team-follow-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfe8e0;background:#fff;color:#5b6a65;border-radius:9px;padding:7px 10px;font-size:8px;font-weight:800}.team-follow-btn:hover,.team-follow-btn.active{background:#e9f8f3;border-color:#a9ddcf;color:#087f66}.team-follow-btn.active i{color:#0ca77a}
.favorite-team-list{margin-top:14px}.favorite-team-list .fav-icon img{width:24px;height:24px;object-fit:contain}


/* ============================================================
   V2.5 FINAL CONCEPT SYSTEM — clean white / teal / green
   This block intentionally comes last to neutralize legacy neon rules.
   ============================================================ */
:root{
  --concept-green:#0ca77a;
  --concept-green-dark:#087f66;
  --concept-teal:#16a6a0;
  --concept-mint:#e9f8f3;
  --concept-mint-2:#f3fbf8;
  --concept-line:#dcebe6;
  --concept-text:#17251f;
  --concept-muted:#7a8a84;
  --concept-shadow:0 8px 28px rgba(21,73,60,.07);
}
html,body{background:#fff!important;color:var(--concept-text)!important}
.ts-app-body{background:#fff!important}
.particles{display:none!important}
.ts-topbar{height:70px!important;background:#fff!important;border-bottom:1px solid #e4efeb!important;box-shadow:0 2px 12px rgba(31,72,62,.05)!important;backdrop-filter:none!important;grid-template-columns:260px minmax(320px,1fr) 330px!important;gap:18px!important;padding:0 14px!important}
.ts-brand{color:var(--concept-text)!important;gap:9px!important}.ts-brand-ball{width:42px!important;height:42px!important;background:linear-gradient(145deg,#e9fbf6,#fff)!important;border:1px solid #bfe9dc!important;box-shadow:none!important;color:var(--concept-green)!important}.brand-ball-core{font-size:21px}.ts-brand-copy strong{font:800 19px/1 'Space Grotesk',sans-serif!important;font-style:italic!important;background:none!important;-webkit-text-fill-color:initial!important;color:#17372f!important;letter-spacing:-.5px!important}.ts-brand-copy strong b{background:var(--concept-green)!important;color:#fff!important;border-radius:6px;padding:3px 5px;font-size:12px}.ts-brand-copy small{color:#91a29d!important;font-size:8px!important}
.ts-global-search{height:42px!important;background:#fbfdfc!important;border:1px solid #d9e9e4!important;box-shadow:none!important;border-radius:11px!important}.ts-global-search:focus-within{border-color:#9bd8c8!important;box-shadow:0 0 0 3px rgba(12,167,122,.08)!important}.ts-global-search i{color:#8d68ff!important}.ts-global-search input{color:#30413b!important}.ts-global-search input::placeholder{color:#9aa9a5!important}.ts-global-search kbd{background:#15334a!important;color:#fff!important;border:0!important;font-size:9px!important}
.ts-top-actions{gap:9px!important}.ts-top-icon{width:36px!important;height:36px!important;color:#263a34!important;font-size:19px!important}.ts-top-icon:hover{background:var(--concept-mint)!important;color:var(--concept-green-dark)!important}.ts-notif-badge{background:#ef5350!important}.ts-register-btn,.ts-login-btn{height:38px!important;min-width:88px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;line-height:1!important;border-radius:9px!important;padding:0 13px!important;font-size:13px!important;font-weight:800!important;box-sizing:border-box!important;text-decoration:none!important}.ts-register-btn{color:var(--concept-green-dark)!important;background:var(--concept-mint)!important;border:1px solid #bce7db!important}.ts-login-btn{color:#fff!important;background:var(--concept-green)!important;border:1px solid var(--concept-green)!important}.ts-register-btn:hover{background:#dcf5ed!important}.ts-login-btn:hover{background:var(--concept-green-dark)!important}
.ts-sidebar{top:70px!important;width:206px!important;background:#fff!important;border-right:1px solid #e4efeb!important;box-shadow:none!important}.ts-sidebar-nav{padding:17px 9px!important}.ts-side-link{color:#40534d!important;border-radius:10px!important;font-size:12px!important;padding:10px 12px!important;gap:11px!important}.ts-side-link i{color:#78908a!important;font-size:16px!important}.ts-side-link:hover{background:#f2faf7!important;color:var(--concept-green-dark)!important}.ts-side-link.active{background:var(--concept-mint)!important;color:var(--concept-green-dark)!important;font-weight:800!important;border:1px solid #c1e9dd!important}.ts-side-link.active i{color:var(--concept-green)!important}.ts-live-label{background:#dff8ef!important;color:#087f66!important;font-size:8px!important}.ts-side-count{background:#ef5350!important;color:#fff!important}.ts-sidebar-bottom{border-top:1px solid #edf3f1!important;color:#94a39f!important;padding:13px!important;font-size:8px!important}.ts-sidebar-bottom span{color:var(--concept-green)!important}.ts-main{margin-left:206px!important;background:#fff!important;padding-top:86px!important}.ts-footer{margin-left:206px!important;background:#fff!important;border-top:1px solid #edf3f1!important;color:#94a39f!important}.ts-footer a{color:#58716a!important}
.ts-content-shell{max-width:1320px!important}.sports-home{max-width:1320px!important}.concept-hero-final{position:relative!important;padding:0!important;min-height:174px!important;height:174px!important;overflow:hidden!important;background:#fff!important;border:1px solid #cfe8e0!important;border-radius:12px!important;box-shadow:var(--concept-shadow)!important}.concept-hero-image-final{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;object-position:center!important}.concept-hero-overlay-final{position:absolute!important;inset:auto auto 14px 24px!important}.concept-hero-overlay-final .hero-btn{background:#fff!important;color:#0b8d6d!important;border:1px solid rgba(255,255,255,.8)!important;box-shadow:0 5px 15px rgba(0,0,0,.12)!important;border-radius:8px!important;font-weight:800!important;font-size:11px!important;padding:9px 14px!important;text-decoration:none!important}
.quick-card,.home-panel,.standings-modern-card,.live-side-card,.live-match-card,.simple-card,.detail-hero-card,.detail-panel,.admin-card-modern{background:#fff!important;border:1px solid var(--concept-line)!important;box-shadow:var(--concept-shadow)!important}.quick-card:hover,.home-panel:hover{border-color:#b9e2d6!important}.quick-icon.green,.quick-icon.teal,.quick-icon.blue,.quick-icon.cyan,.quick-icon.orange,.quick-icon.mint{background:var(--concept-mint)!important;color:var(--concept-green-dark)!important}.panel-head h2,.page-heading-modern h1,.standings-title-row h2{color:var(--concept-text)!important}.panel-head a,.soft-link,.admin-card-head a{color:var(--concept-green-dark)!important}.section-label,.card-kicker,.live-eyebrow{color:var(--concept-green-dark)!important}.hot-grid-modern .hot-card-modern,.home-live-row-modern,.schedule-row-modern{border-color:var(--concept-line)!important;background:#fff!important}.hot-cta,.detail-pill,.hero-btn{background:var(--concept-green)!important;color:#fff!important;border-color:var(--concept-green)!important}.hot-cta:hover,.detail-pill:hover{background:var(--concept-green-dark)!important}
.league-tabs-modern,.league-tab-modern{background:#fff!important;border-color:var(--concept-line)!important}.league-tab-modern{color:#50615b!important}.league-tab-modern.active{background:var(--concept-mint)!important;color:var(--concept-green-dark)!important;border-color:#bce7db!important}.sync-badge{background:var(--concept-mint)!important;color:var(--concept-green-dark)!important}.live-data-dot i,.league-live-dot{background:var(--concept-green)!important}.prediction-score{color:#6b55c7!important}
.standings-modern-table th{background:#f7fbf9!important;color:#71827c!important}.standings-modern-table td{font-size:11px!important;color:#33443e!important;padding:11px 9px!important}.standings-modern-table th{font-size:9px!important;padding:10px 9px!important}.club-modern{gap:8px!important;min-width:170px!important}.club-modern img,.club-modern>span,.user-mini-avatar{width:30px!important;height:30px!important}.club-modern strong{font-size:12px!important}.form-dot{width:19px!important;height:19px!important;font-size:7px!important}
/* Match identity: crest + team name must hug the score block. */
.live-match-card{grid-template-columns:74px minmax(0,1fr) auto!important;align-items:center!important;padding:12px 14px!important}.match-meta{min-width:68px!important}.match-teams{display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;min-width:0!important}.match-teams .team{flex:0 1 auto!important;min-width:0!important}.match-teams .team>span{display:flex!important;align-items:center!important;gap:7px!important;font-size:14px!important;font-weight:800!important;color:#1d2c27!important;white-space:nowrap!important}.match-teams .team-home>span{justify-content:flex-end!important}.match-teams .team-away>span{justify-content:flex-start!important}.live-team-badge{width:32px!important;height:32px!important;flex:0 0 32px!important;border-radius:50%!important;background:#f1f8f6!important;border:1px solid #d9ece6!important;display:grid!important;place-items:center!important;overflow:hidden!important;color:#087f66!important;font-size:9px!important;font-weight:800!important}.live-team-badge img{width:26px!important;height:26px!important;object-fit:contain!important}.score-box{flex:0 0 auto!important;min-width:70px!important;padding:9px 11px!important;border-radius:9px!important;background:var(--concept-mint)!important;border:1px solid #cfe9df!important;color:#15231f!important;font:800 18px/1 'JetBrains Mono',monospace!important;text-align:center!important}.match-actions{min-width:110px!important;gap:5px!important}.mini-action{font-size:15px!important;color:#8b9a95!important}.detail-pill{font-size:10px!important;padding:8px 11px!important;border-radius:8px!important}.match-status{font-size:9px!important}.match-clock{font-size:10px!important;color:#0a9274!important}
/* Home live rows use the same team/score proximity rule. */
.home-live-row-modern{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) 20px!important;gap:8px!important;padding:11px 12px!important}.home-live-row-modern .live-team-modern{gap:7px!important}.home-live-row-modern .live-team-modern b{font-size:12px!important;color:#21312b!important}.home-live-row-modern .team-badge-modern{width:30px!important;height:30px!important}.home-live-row-modern .live-score-modern{min-width:76px!important}.home-live-row-modern .live-score-modern strong{font-size:15px!important}.home-live-row-modern .live-badge-modern{font-size:8px!important;background:var(--concept-mint)!important;color:var(--concept-green-dark)!important}
/* Source/status labels are user-friendly, never operational instructions. */
.standings-empty p,.empty-inline span,.loading-state{color:#84938e!important}.source-badge{display:inline-flex;align-items:center;gap:5px;background:#f0f8f5;color:#087f66;border:1px solid #d4ece4;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:800}
.ts-notif-menu,.ts-user-menu{border:1px solid var(--concept-line)!important;box-shadow:0 12px 30px rgba(20,70,58,.12)!important}.ts-menu-title{color:var(--concept-text)!important}.ts-menu-more{color:var(--concept-green-dark)!important}
@media(max-width:1200px){.ts-topbar{grid-template-columns:230px minmax(260px,1fr) 245px!important}.ts-sidebar{width:190px!important}.ts-main,.ts-footer{margin-left:190px!important}}
@media(max-width:900px){.ts-topbar{grid-template-columns:auto 1fr auto!important}.ts-sidebar{width:235px!important}.ts-main,.ts-footer{margin-left:0!important}.live-match-card{grid-template-columns:58px minmax(0,1fr) 94px!important}.match-teams{gap:7px!important}.match-teams .team>span{font-size:12px!important}.score-box{min-width:62px!important;font-size:16px!important}.match-actions{min-width:94px!important}.concept-hero-final{height:150px!important;min-height:150px!important}}
@media(max-width:640px){.ts-topbar{height:64px!important}.ts-sidebar{top:64px!important}.ts-main{padding:76px 10px 18px!important}.ts-brand-copy strong{font-size:16px!important}.ts-brand-ball{width:35px!important;height:35px!important}.ts-top-actions{gap:4px!important}.ts-register-btn,.ts-login-btn{min-width:70px!important;width:auto!important;height:34px!important;padding:0 9px!important;font-size:11px!important}.concept-hero-final{height:125px!important;min-height:125px!important}.concept-hero-overlay-final{left:13px!important;bottom:10px!important}.concept-hero-overlay-final .hero-btn{font-size:9px!important;padding:7px 10px!important}.live-match-card{grid-template-columns:50px minmax(0,1fr) 28px!important;padding:9px 7px!important}.match-actions .mini-action{display:none!important}.match-actions{min-width:28px!important}.match-teams{gap:5px!important}.match-teams .team>span{font-size:10px!important;gap:4px!important}.live-team-badge{width:26px!important;height:26px!important;flex-basis:26px!important}.live-team-badge img{width:21px!important;height:21px!important}.score-box{min-width:52px!important;padding:7px 5px!important;font-size:13px!important}.match-clock{font-size:8px!important}.match-status{font-size:8px!important}.detail-pill{display:none!important}.home-live-row-modern{grid-template-columns:1fr auto 1fr 10px!important}.home-live-row-modern .live-team-modern b{font-size:10px!important}.home-live-row-modern .live-score-modern strong{font-size:12px!important}.home-live-row-modern .team-badge-modern{width:26px!important;height:26px!important}.club-modern{min-width:150px!important}.club-modern strong{font-size:11px!important}}
\n\n/* ============================================================\n   V2.5 FINAL CLEAN UI OVERRIDES — WHITE / GREEN / MINT\n   These overrides intentionally supersede the legacy neon theme.\n   ============================================================ */\n:root {\n  --ink:#f5f8f7; --surface:#ffffff; --surface-2:#f1f8f5;\n  --pitch:#18a66a; --teal:#38c9ad; --violet:#18a66a; --magenta:#39c7ae;\n  --amber:#e8a62b; --rose:#df4d5f; --text:#17221e;\n  --text-dim:#66746e; --text-faint:#93a19b; --border:#dce9e3;\n  --mint:#e6f7f1; --shadow:0 10px 30px rgba(26,73,55,.08);\n}\nhtml, body { background:#f5f8f7 !important; color:var(--text) !important; }\nbody::before { background:linear-gradient(180deg,#ffffff 0%,#f5f8f7 55%,#f0f8f5 100%) !important; opacity:1; }\n.particles { display:none !important; }\n.ts-topbar { background:rgba(255,255,255,.96) !important; border-bottom:1px solid var(--border) !important; box-shadow:0 3px 18px rgba(26,73,55,.06) !important; backdrop-filter:blur(14px) !important; }\n.ts-brand-copy strong, .navbar-brand { color:#13211b !important; background:none !important; -webkit-text-fill-color:initial !important; animation:none !important; }\n.ts-brand-copy small, .ts-sidebar-bottom small { color:var(--text-dim) !important; }\n.ts-brand-ball { background:var(--mint) !important; border-color:#ccecdf !important; }\n.ts-global-search { background:#f7faf8 !important; border:1px solid var(--border) !important; color:var(--text) !important; }\n.ts-global-search input { color:var(--text) !important; }\n.ts-top-icon, .ts-user { color:#25332d !important; background:#fff !important; border-color:var(--border) !important; }\n.ts-register-btn, .ts-login-btn { font-size:.82rem !important; padding:.55rem .85rem !important; white-space:nowrap !important; }\n.ts-register-btn { background:var(--mint) !important; color:#167151 !important; border:1px solid #c7eadc !important; }\n.ts-login-btn { background:var(--pitch) !important; color:#fff !important; }\n.ts-sidebar { background:#fff !important; border-right:1px solid var(--border) !important; box-shadow:4px 0 20px rgba(26,73,55,.04) !important; }\n.ts-side-link { color:#4d5b55 !important; border-radius:12px !important; }\n.ts-side-link:hover { background:#f1f8f5 !important; color:#167151 !important; }\n.ts-side-link.active { background:#e5f7f0 !important; color:#08724f !important; box-shadow:none !important; }\n.ts-live-label { color:#16885f !important; background:#e6f7f1 !important; }\n.ts-main { background:transparent !important; }\n.ts-content-shell { max-width:1440px !important; }\n.ts-footer { background:#fff !important; border-top:1px solid var(--border) !important; color:var(--text-dim) !important; }\n.card, .feature-card, .stat-item, .league-feature-card, .match-card, .info-banner-modern, .section-card { background:#fff !important; color:var(--text) !important; border:1px solid var(--border) !important; box-shadow:var(--shadow) !important; }\n.card::before { background:linear-gradient(90deg,#19a86c,#5bd5bd) !important; }\n.card:hover, .feature-card:hover { border-color:#bfe5d7 !important; box-shadow:0 14px 34px rgba(26,73,55,.10) !important; transform:translateY(-2px) !important; }\n.btn-primary, .green-btn, .btn-success { background:var(--pitch) !important; color:#fff !important; box-shadow:none !important; }\n.btn-primary:hover, .green-btn:hover, .btn-success:hover { background:#128e5a !important; transform:translateY(-1px) !important; }\n.btn-secondary { background:#f3f7f5 !important; color:#33443c !important; border:1px solid var(--border) !important; }\n.btn-danger { background:#df4d5f !important; }\n.table { --bs-table-bg:#fff !important; --bs-table-color:var(--text) !important; --bs-table-border-color:var(--border) !important; }\n.table thead th { background:#eef7f3 !important; color:#29453a !important; }\n.table tbody td { background:#fff !important; color:var(--text) !important; }\n.badge.bg-info, .badge.bg-primary { background:#dff6ef !important; color:#08724f !important; }\n.alert { background:#fff !important; color:var(--text) !important; border-color:var(--border) !important; }\n.page-heading-modern h1, .section-page-modern h1 { color:#16231e !important; }\n.page-heading-modern p, .section-page-modern p { color:var(--text-dim) !important; }\n.eyebrow { color:#16885f !important; }\n.green-outline-btn { color:#08724f !important; background:#e8f7f2 !important; border:1px solid #c6eadc !important; }\n.green-outline-btn:hover { background:#d8f2e9 !important; }\n.lottery-region-grid { grid-template-columns:repeat(3,minmax(0,1fr)) !important; }\n.lottery-region-card .region-icon { width:42px;height:42px;border-radius:12px;background:#e5f7f0;color:#16885f;display:flex;align-items:center;justify-content:center;font-size:1.1rem; }\n@media(max-width:900px){ .lottery-region-grid{grid-template-columns:1fr !important;} .ts-global-search{display:none !important;} }\n@media(prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important;} }\n
/* ============================================================
   V2.5 FINAL LIGHT DESIGN SYSTEM
   ============================================================ */
:root{
  --ts-green:#16a34a;--ts-green-dark:#15803d;--ts-mint:#dff7ec;--ts-teal:#0f9f8f;
  --ts-ink:#17211b;--ts-muted:#64736a;--ts-bg:#f6faf8;--ts-card:#fff;--ts-border:#e4eee8;
}
body.ts-app-body{background:var(--ts-bg)!important;color:var(--ts-ink)!important}
body.ts-app-body::before{display:none!important}.particles{display:none!important}
.ts-topbar{background:#fff!important;color:var(--ts-ink)!important;border-bottom:1px solid var(--ts-border)!important;box-shadow:0 2px 14px rgba(23,33,27,.05)!important}
.ts-brand,.ts-brand-copy strong{color:var(--ts-ink)!important;background:none!important;-webkit-text-fill-color:initial!important}.ts-brand-copy small{color:var(--ts-muted)!important}.ts-brand-ball{background:var(--ts-mint)!important;color:var(--ts-green)!important}
.ts-global-search{background:#f7faf8!important;border:1px solid var(--ts-border)!important}.ts-global-search input{color:var(--ts-ink)!important}.ts-global-search i{color:var(--ts-green)!important}
.ts-top-icon,.ts-user{color:var(--ts-ink)!important}.ts-top-icon:hover{background:var(--ts-mint)!important}.ts-register-btn{background:var(--ts-mint)!important;color:var(--ts-green-dark)!important;border:1px solid #c9ecdb!important}.ts-login-btn{background:var(--ts-green)!important;color:#fff!important}
.ts-sidebar{background:#fff!important;border-right:1px solid var(--ts-border)!important}.ts-side-link{color:#5e6c64!important}.ts-side-link:hover,.ts-side-link.active{background:var(--ts-mint)!important;color:var(--ts-green-dark)!important}.ts-side-link i{color:inherit!important}.ts-sidebar-bottom{color:#87958d!important}
.ts-main{background:var(--ts-bg)!important}.ts-footer{background:#fff!important;border-top:1px solid var(--ts-border)!important;color:#7a8981!important}
.card,.feature-card,.stat-item,.admin-card-modern,.admin-stat,.detail-panel,.live-side-card,.live-match-card,.league-feature-card,.info-banner-modern{background:#fff!important;color:var(--ts-ink)!important;border-color:var(--ts-border)!important;box-shadow:0 8px 24px rgba(28,54,39,.06)!important}.card::before{display:none!important}
.text-secondary,.text-muted,.feature-card p{color:var(--ts-muted)!important}.table,.table tbody td{--bs-table-bg:#fff!important;background:#fff!important;color:var(--ts-ink)!important}.table thead th{background:#f0f8f4!important;color:#405047!important}.table tbody tr:hover{background:#f4fbf7!important}
.btn-primary,.green-btn,.detail-pill{background:var(--ts-green)!important;color:#fff!important}.btn-primary:hover,.green-btn:hover{background:var(--ts-green-dark)!important}.btn-secondary{background:#fff!important;color:var(--ts-ink)!important;border:1px solid var(--ts-border)!important}.btn-success{background:var(--ts-green)!important}.badge.bg-info,.badge.bg-primary{background:var(--ts-teal)!important}.badge.bg-success{background:#dff7ec!important;color:var(--ts-green-dark)!important}
.gradient-text{background:linear-gradient(120deg,var(--ts-green-dark),var(--ts-teal))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important}.eyebrow,.card-kicker{color:var(--ts-green-dark)!important}.live-tab.active,.league-chip.active,.sort-btn.active{background:var(--ts-mint)!important;color:var(--ts-green-dark)!important;border-color:#c9ecdb!important}.hot-leagues,.live-toolbar{background:#fff!important;border-color:var(--ts-border)!important}
.live-match-card .match-status.live,.match-status.live{color:var(--ts-green-dark)!important;background:var(--ts-mint)!important}.league-group-head{background:#f0f8f4!important;color:var(--ts-ink)!important;border-color:var(--ts-border)!important}.league-live-dot,.pulse-dot{background:var(--ts-green)!important}
.live-team-badge{background:var(--ts-mint)!important;color:var(--ts-green-dark)!important}.mini-action.active{color:var(--ts-green)!important;background:var(--ts-mint)!important}.detail-team-follow-row .active{background:var(--ts-mint)!important;color:var(--ts-green-dark)!important}
.form-w{background:#dcfce7!important;color:#166534!important}.form-d{background:#f3f4f6!important;color:#4b5563!important}.form-l{background:#fee2e2!important;color:#991b1b!important}
/* Home + away must sit close to the central score. */
.match-teams{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:center!important;gap:14px!important}.team-home{text-align:right!important}.team-away{text-align:left!important}.team-home>span,.team-away>span{display:inline-flex!important;align-items:center!important;gap:8px!important}.team-home>span{flex-direction:row!important}.team-away>span{flex-direction:row!important}.team-home .live-team-badge{order:2}.team-away .live-team-badge{order:0}.score-box{font-size:1.15rem!important;color:var(--ts-ink)!important;white-space:nowrap}.live-match-card{border-radius:16px!important}
.admin-stat:hover,.admin-actions-grid a:hover,.quick-links a:hover{border-color:#bfe7d0!important;background:#f4fbf7!important}
@media(max-width:900px){.ts-global-search{display:none}.match-teams{gap:8px!important}.team-home>span,.team-away>span{font-size:.88rem!important}.live-team-badge{width:30px!important;height:30px!important}}

/* ============================================================
   V2.5 UI LOCK — APPROVED WHITE / GREEN / MINT DESIGN
   Final override: remove legacy dark/neon surfaces from public/admin.
   ============================================================ */
:root{
  --lock-bg:#f6faf8;
  --lock-card:#ffffff;
  --lock-text:#17211d;
  --lock-muted:#6d7c75;
  --lock-line:#dfece6;
  --lock-green:#16a36d;
  --lock-green-dark:#087a58;
  --lock-mint:#e5f7f0;
  --lock-teal:#36bfa9;
}
html,body,body.ts-app-body,.ts-main{background:var(--lock-bg)!important;color:var(--lock-text)!important}
body.ts-app-body::before{display:none!important}
.ts-topbar,.ts-sidebar,.ts-footer{background:#fff!important;color:var(--lock-text)!important;border-color:var(--lock-line)!important}
.ts-topbar{box-shadow:0 2px 14px rgba(28,72,56,.05)!important}
.ts-sidebar{box-shadow:2px 0 14px rgba(28,72,56,.035)!important}
.ts-brand-copy strong,.ts-brand-copy small,.ts-side-link,.ts-user,.ts-top-icon{color:var(--lock-text)!important}
.ts-brand-copy small{color:var(--lock-muted)!important}
.ts-global-search{background:#f8fbfa!important;border-color:var(--lock-line)!important}
.ts-global-search input{background:transparent!important;color:var(--lock-text)!important}
.ts-global-search i{color:var(--lock-green)!important}
.ts-register-btn{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important;border-color:#c5eadc!important}
.ts-login-btn{background:var(--lock-green)!important;color:#fff!important}
.ts-side-link:hover,.ts-side-link.active{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important;border-color:#c5eadc!important}
.ts-side-link i{color:inherit!important}
.ts-main .card,.ts-main .feature-card,.ts-main .stat-item,.ts-main .section-card,.ts-main .info-banner-modern,.ts-main .admin-card-modern,.ts-main .admin-stat,.ts-main .detail-panel,.ts-main .detail-hero-card,.ts-main .simple-card,.ts-main .live-side-card,.ts-main .live-match-card,.ts-main .league-feature-card{background:#fff!important;color:var(--lock-text)!important;border:1px solid var(--lock-line)!important;box-shadow:0 7px 24px rgba(28,72,56,.055)!important}
.ts-main .card::before{display:none!important}
.ts-main .table,.ts-main .table tbody td{background:#fff!important;color:var(--lock-text)!important}
.ts-main .table thead th{background:#eff8f4!important;color:#40534a!important;border-color:var(--lock-line)!important}
.btn-primary,.btn-success,.green-btn,.detail-pill{background:var(--lock-green)!important;border-color:var(--lock-green)!important;color:#fff!important;box-shadow:none!important}
.btn-primary:hover,.btn-success:hover,.green-btn:hover,.detail-pill:hover{background:var(--lock-green-dark)!important;border-color:var(--lock-green-dark)!important}
.btn-secondary{background:#fff!important;color:var(--lock-text)!important;border:1px solid var(--lock-line)!important}

/* Approved live match geometry: HOME + LOGO -> SCORE -> LOGO + AWAY */
.live-layout{background:transparent!important}
.live-match-card{display:grid!important;grid-template-columns:82px minmax(0,1fr) 116px!important;align-items:center!important;gap:12px!important;background:#fff!important;border:1px solid var(--lock-line)!important;border-radius:16px!important;padding:13px 15px!important;box-shadow:0 7px 24px rgba(28,72,56,.055)!important}
.live-match-card:hover{background:#fbfefd!important;border-color:#bfe4d5!important}
.match-meta{min-width:0!important}
.match-status{background:#f1f6f4!important;color:#687870!important;border-radius:999px!important;padding:4px 8px!important;font-weight:800!important}
.match-status.live{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important}
.match-clock{display:block!important;margin-top:5px!important;color:var(--lock-muted)!important;font-size:10px!important}
.match-teams{display:flex!important;align-items:center!important;justify-content:center!important;gap:13px!important;min-width:0!important}
.match-teams .team{flex:0 1 auto!important;min-width:0!important;max-width:42%!important}
.match-teams .team>span{display:flex!important;align-items:center!important;gap:8px!important;color:var(--lock-text)!important;font-size:14px!important;font-weight:800!important;white-space:nowrap!important}
.match-teams .team-home{text-align:right!important}
.match-teams .team-away{text-align:left!important}
.match-teams .team-home>span{justify-content:flex-end!important;flex-direction:row!important}
.match-teams .team-away>span{justify-content:flex-start!important;flex-direction:row!important}
.team-home .live-team-badge{order:2!important}
.team-away .live-team-badge{order:0!important}
.live-team-badge{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:50%!important;background:#f0f8f5!important;border:1px solid #d8ebe4!important;color:var(--lock-green-dark)!important;display:grid!important;place-items:center!important;overflow:hidden!important}
.live-team-badge img{width:27px!important;height:27px!important;object-fit:contain!important;background:#fff!important;border-radius:50%!important;padding:2px!important}
.score-box{flex:0 0 auto!important;min-width:78px!important;padding:10px 12px!important;border-radius:10px!important;background:var(--lock-mint)!important;border:1px solid #cbeade!important;color:var(--lock-text)!important;font:800 18px/1 'JetBrains Mono',monospace!important;text-align:center!important;white-space:nowrap!important}
.score-box span{color:#8b9b94!important;padding:0 2px!important}
.match-actions{min-width:0!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important}
.mini-action{background:#fff!important;color:#82918a!important;border:1px solid var(--lock-line)!important}
.mini-action:hover,.mini-action.active{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important;border-color:#c5eadc!important}
.detail-pill{font-size:10px!important;padding:8px 11px!important;border-radius:8px!important;text-decoration:none!important}
.live-odds{color:var(--lock-muted)!important}
.live-odds span{background:#f7faf8!important;color:var(--lock-text)!important;border-color:var(--lock-line)!important}
.league-group-head{background:#eff8f4!important;color:var(--lock-text)!important;border-color:var(--lock-line)!important}
.live-side-card{background:#fff!important}
.side-head h3{color:var(--lock-text)!important}
.side-match{background:#fff!important;border-color:#edf3f0!important;color:var(--lock-text)!important}
.quick-links a{color:#43534c!important}
.quick-links a:hover{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important}

/* Approved page sections */
.live-hero,.live-toolbar,.hot-leagues,.sports-hero,.home-panel,.quick-card,.hot-card-modern,.standings-modern-card,.schedule-row-modern{background:#fff!important;color:var(--lock-text)!important;border-color:var(--lock-line)!important;box-shadow:0 7px 24px rgba(28,72,56,.055)!important}
.sports-hero{background:linear-gradient(105deg,#08765f 0%,#16a77f 55%,#45c7b0 100%)!important;color:#fff!important}
.concept-filter,.live-tab,.date-btn,.sort-btn,.league-chip{background:#fff!important;color:#53635c!important;border-color:var(--lock-line)!important}
.concept-filter.active,.live-tab.active,.date-btn.active,.sort-btn.active,.league-chip.active{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important;border-color:#bfe6d8!important}
.form-control,.form-select{background:#fff!important;color:var(--lock-text)!important;border-color:var(--lock-line)!important}
.form-control::placeholder{color:#9aa7a1!important}
.form-control:focus,.form-select:focus{border-color:#8fd5c0!important;box-shadow:0 0 0 3px rgba(22,163,109,.10)!important}
.dropdown-menu{background:#fff!important;color:var(--lock-text)!important;border-color:var(--lock-line)!important;box-shadow:0 14px 32px rgba(28,72,56,.12)!important}
.dropdown-item{color:#3d4c45!important}.dropdown-item:hover{background:var(--lock-mint)!important;color:var(--lock-green-dark)!important}

@media(max-width:900px){
  .live-match-card{grid-template-columns:62px minmax(0,1fr) 88px!important;padding:10px 9px!important;gap:7px!important}
  .match-teams{gap:8px!important}
  .match-teams .team{max-width:40%!important}
  .match-teams .team>span{font-size:12px!important;gap:5px!important}
  .live-team-badge{width:29px!important;height:29px!important;flex-basis:29px!important}
  .live-team-badge img{width:23px!important;height:23px!important}
  .score-box{min-width:62px!important;font-size:15px!important;padding:8px 7px!important}
  .detail-pill{padding:7px 8px!important;font-size:9px!important}
}
@media(max-width:640px){
  .live-match-card{grid-template-columns:1fr!important;gap:7px!important;padding:11px!important}
  .match-meta{display:flex!important;justify-content:space-between!important;align-items:center!important}
  .match-teams{gap:6px!important;justify-content:center!important}
  .match-teams .team{max-width:43%!important}
  .match-teams .team>span{font-size:11px!important}
  .live-team-badge{width:27px!important;height:27px!important;flex-basis:27px!important}
  .live-team-badge img{width:21px!important;height:21px!important}
  .score-box{min-width:56px!important;font-size:14px!important}
  .match-actions{justify-content:center!important}
  .detail-pill{display:inline-flex!important}
}
/* ===== V27 FINAL LIGHT MINT SYSTEM ===== */
:root{--v27-ink:#16201e;--v27-muted:#6f817c;--v27-mint:#e9faf6;--v27-mint-2:#d9f4ef;--v27-teal:#079f91;--v27-teal-dark:#08766d;--v27-border:#dcebe7;--v27-white:#fff;}
body.ts-app-body{background:#f7fbfa!important;color:var(--v27-ink)!important}body.ts-app-body::before{display:none!important}.particles{display:none!important}.ts-topbar{background:#fff!important;border-bottom:1px solid var(--v27-border)!important;box-shadow:0 5px 20px rgba(18,83,75,.06)!important}.ts-brand-copy strong,.ts-brand-copy small,.ts-user-copy small,.ts-user-copy strong{color:var(--v27-ink)!important}.ts-brand-copy b{color:var(--v27-teal)!important}.ts-brand-ball{background:var(--v27-mint)!important;color:var(--v27-teal)!important}.ts-global-search{background:#f8fcfb!important;border:1px solid var(--v27-border)!important}.ts-global-search input{color:var(--v27-ink)!important}.ts-sidebar{background:#fff!important;border-right:1px solid var(--v27-border)!important;box-shadow:4px 0 20px rgba(18,83,75,.035)!important}.ts-side-link{color:#4b5e59!important}.ts-side-link:hover,.ts-side-link.active{background:var(--v27-mint)!important;color:var(--v27-teal-dark)!important}.ts-live-label,.ts-side-count{background:var(--v27-teal)!important;color:#fff!important}.ts-main{background:#f7fbfa!important}.card,.home-panel,.simple-card,.league-feature-card,.admin-card-modern,.quick-card,.stats-card{background:#fff!important;color:var(--v27-ink)!important;border:1px solid var(--v27-border)!important;box-shadow:0 6px 24px rgba(18,83,75,.055)!important}.btn-primary,.green-btn,.hero-btn{background:var(--v27-teal)!important;color:#fff!important;box-shadow:none!important}.btn-success{background:#10a58f!important}.btn-secondary{background:#fff!important;color:var(--v27-ink)!important;border:1px solid var(--v27-border)!important}.gradient-text{background:none!important;-webkit-text-fill-color:initial!important;color:var(--v27-ink)!important}.section-label,.eyebrow{color:var(--v27-teal-dark)!important}.panel-head,.live-section-head,.league-group-head,.side-head,.admin-card-head{background:var(--v27-mint)!important;color:var(--v27-ink)!important;border-color:var(--v27-border)!important}.quick-grid,.home-tools-strip{display:none!important}.home-live-row-modern{background:#fff!important;color:var(--v27-ink)!important}.home-live-detail{background:var(--v27-mint)!important;border-color:var(--v27-mint-2)!important;color:var(--v27-teal-dark)!important}.hot-card-modern,.schedule-row-modern,.notice-row{background:#fff!important;color:var(--v27-ink)!important;border-color:var(--v27-border)!important}
/* consistent football rows */
.live-match-card{min-height:66px!important;height:66px!important;grid-template-columns:70px minmax(0,1fr) 96px!important;padding:7px 10px!important;background:#fff!important;border:1px solid var(--v27-border)!important}.live-match-card .match-teams{min-width:0!important}.live-match-card .team{min-width:0!important}.live-match-card .team span{min-width:0!important}.live-match-card .team span,.live-match-card .team span>span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.live-team-badge{width:26px!important;height:26px!important;flex:0 0 26px!important;background:var(--v27-mint)!important}.live-team-badge img{max-width:22px!important;max-height:22px!important}.score-box{background:var(--v27-mint)!important;color:var(--v27-ink)!important;border-color:var(--v27-mint-2)!important}.match-clock{color:var(--v27-teal-dark)!important}.match-status.live{background:#ef4c5b!important}.mini-action{background:#fff!important;border-color:#e5c84d!important;color:#c79c00!important}.mini-action.active{background:#fff7c7!important;color:#d7a900!important}.live-page .live-section-head,.live-page .side-head{border-radius:10px!important}.live-standing-row{background:#fff!important}.live-standing-row .club-logo,.mini-standing-row .team-badge-modern{width:24px!important;height:24px!important;display:grid!important;place-items:center!important;flex:0 0 24px!important}.live-standing-row{grid-template-columns:22px 24px minmax(0,1fr) 30px 34px!important}.live-standing-row img{max-width:22px!important;max-height:22px!important}.live-standings-tabs button.active{background:var(--v27-teal)!important;border-color:var(--v27-teal)!important}.favorite-row{min-height:68px!important;display:grid!important;grid-template-columns:38px 28px minmax(0,1fr) 110px 84px!important;align-items:center!important;gap:8px!important;border-bottom:1px solid #edf4f2!important;padding:8px 0!important}.favorite-row .favorite-score{font-weight:900;text-align:center}.favorite-row .favorite-status{font-size:.68rem;color:var(--v27-teal-dark);font-weight:800;text-align:center}.favorite-row .fav-toggle{width:32px;height:32px;border:1px solid #e5c84d;border-radius:9px;background:#fff;color:#c79c00}.favorite-row .fav-toggle.active{background:#fff7c7;color:#d7a900}.favorite-team-logo{width:26px;height:26px;object-fit:contain}
/* Admin */
.v27-admin-body{margin:0;background:#f5faf8;color:var(--v27-ink);min-height:100vh}.v27-admin-top{height:64px;position:fixed;left:0;right:0;top:0;z-index:1030;background:#fff;border-bottom:1px solid var(--v27-border);display:flex;align-items:center;padding:0 20px;box-shadow:0 4px 18px rgba(18,83,75,.05)}.v27-admin-brand{display:flex;flex-direction:column;text-decoration:none;color:var(--v27-ink);min-width:235px}.v27-admin-brand strong{font-size:1rem}.v27-admin-brand span{font-size:.58rem;color:var(--v27-teal);letter-spacing:.12em;font-weight:800}.v27-admin-actions{margin-left:auto;display:flex;gap:14px;align-items:center}.v27-admin-actions a,.v27-admin-profile{color:var(--v27-ink);text-decoration:none;font-size:.8rem}.v27-admin-sidebar{position:fixed;top:64px;bottom:0;left:0;width:235px;background:#fff;border-right:1px solid var(--v27-border);padding:18px 12px;overflow:auto}.v27-admin-sidebar a{display:flex;gap:10px;align-items:center;padding:9px 11px;border-radius:9px;color:#4b5e59;text-decoration:none;font-size:.78rem;font-weight:700;margin:2px 0}.v27-admin-sidebar a:hover{background:var(--v27-mint);color:var(--v27-teal-dark)}.v27-admin-nav-title{font-weight:900;font-size:.75rem;margin:0 8px 10px}.v27-admin-group{font-size:.57rem;color:#8a9b96;font-weight:900;letter-spacing:.1em;margin:16px 8px 5px}.v27-admin-main{margin-left:235px;padding-top:64px;min-height:100vh}.v27-admin-shell{padding:24px;max-width:1500px;margin:auto}.v27-admin-mobile{display:none;border:0;background:transparent;font-size:1.4rem}.admin-page-modern h1,.admin-card-modern h2{color:var(--v27-ink)!important}.admin-stat b,.health-grid b{color:var(--v27-teal-dark)!important}.admin-stat-icon{background:var(--v27-mint)!important;color:var(--v27-teal)!important}.table{--bs-table-bg:#fff!important;--bs-table-color:var(--v27-ink)!important;--bs-table-border-color:var(--v27-border)!important}.table thead th{background:var(--v27-mint)!important;color:var(--v27-ink)!important}.table tbody td{background:#fff!important;color:var(--v27-ink)!important}
@media(max-width:900px){.v27-admin-mobile{display:block}.v27-admin-brand{min-width:0}.v27-admin-sidebar{transform:translateX(-100%);transition:.2s}.admin-nav-open .v27-admin-sidebar{transform:none}.v27-admin-main{margin-left:0}.v27-admin-userlink{display:none}}
.ts-nav-group-title{font-size:.58rem;color:#8a9b96;font-weight:900;letter-spacing:.1em;margin:2px 12px 7px}.ts-nav-divider{height:1px;background:#e9f1ef;margin:10px 8px}.support-ticket-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--v27-border);text-decoration:none;color:var(--v27-ink)}.support-ticket-row small{display:block;color:var(--v27-muted);margin-top:3px}.support-ticket-row span{background:var(--v27-mint);color:var(--v27-teal-dark);padding:5px 8px;border-radius:8px;font-size:.7rem;font-weight:800}.support-message{padding:12px 14px;border:1px solid var(--v27-border);border-radius:12px;margin-bottom:10px;background:#fff}.support-message.admin{background:var(--v27-mint)}.support-message p{margin:5px 0;color:var(--v27-ink);white-space:pre-wrap}.support-message small{color:var(--v27-muted)}
.time-filter-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0}.time-filter-bar span{font-size:.72rem;color:var(--v27-muted);font-weight:700}.time-filter-bar a{padding:6px 11px;border:1px solid var(--v27-border);border-radius:9px;background:#fff;color:var(--v27-teal-dark);text-decoration:none;font-size:.7rem;font-weight:800}.time-filter-bar a:hover,.time-filter-bar a.active{background:var(--v27-teal);color:#fff;border-color:var(--v27-teal)}.soikeo-team-cell{display:flex;align-items:center;gap:8px}.soikeo-team-cell img{width:26px;height:26px;object-fit:contain;flex:0 0 26px}
.lottery-compact-chart .card-header{background:var(--v27-mint)!important;color:var(--v27-ink)!important;border-bottom:1px solid var(--v27-border)!important}.lottery-chart-wrap{height:230px}.lottery_stats .card-header{background:var(--v27-mint)!important;color:var(--v27-ink)!important}.nav-pills .nav-link{color:var(--v27-teal-dark)!important;background:#fff;border:1px solid var(--v27-border);margin-right:6px}.nav-pills .nav-link.active{background:var(--v27-teal)!important;color:#fff!important}.lottery-grade-values code{color:var(--v27-teal-dark)!important;background:var(--v27-mint)!important}.badge.bg-warning{background:var(--v27-mint)!important;color:var(--v27-teal-dark)!important}.badge.bg-info{background:var(--v27-mint)!important;color:var(--v27-teal-dark)!important}.badge.bg-primary{background:var(--v27-teal)!important}.card-header{background:var(--v27-mint)!important;color:var(--v27-ink)!important;border-color:var(--v27-border)!important}
.lottery-disclaimer{background:#fff;border:1px solid var(--v27-border);border-left:4px solid var(--v27-teal);border-radius:10px;padding:11px 13px;color:#314640;font-size:.76rem;line-height:1.5;margin:10px 0 18px}.lottery-disclaimer strong{color:var(--v27-teal-dark)}

/* V27-UI-13: stable compact results cards. Scoped to prevent legacy live-card overrides from stretching logos. */
.v27-results-page .results-groups{display:flex;flex-direction:column;gap:12px}
.v27-results-page .result-league-group{overflow:hidden;border:1px solid var(--v27-border,#d7ebe4);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(18,83,75,.045)}
.v27-results-page .result-league-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:var(--v27-mint,#e8f7f1);border-bottom:1px solid var(--v27-border,#d7ebe4);color:var(--v27-ink,#18332d)}
.v27-results-page .result-league-head>div{display:flex;align-items:center;gap:8px;min-width:0}.v27-results-page .result-league-head i{color:var(--v27-teal,#119f91);font-size:12px}.v27-results-page .result-league-head strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v27-results-page .result-league-head>span{font-size:11px;color:#6b7e78;white-space:nowrap}
.v27-results-page .result-match-list{display:flex;flex-direction:column}.v27-results-page .result-match-card{min-height:76px;display:grid;grid-template-columns:86px minmax(0,1fr) 68px minmax(0,1fr) 92px;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #edf4f1;background:#fff}.v27-results-page .result-match-card:last-child{border-bottom:0}.v27-results-page .result-match-card:hover{background:#fbfefd}
.v27-results-page .result-meta{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.v27-results-page .result-status{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:20px;padding:0 7px;border-radius:999px;background:#edf4f1;color:#49635b;font-size:9px;font-weight:900}.v27-results-page .result-meta time{font-size:10px;color:#0b8f82;font-weight:800;white-space:nowrap}
.v27-results-page .result-team{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:800;color:#18332d}.v27-results-page .result-home{justify-content:flex-end;text-align:right}.v27-results-page .result-away{justify-content:flex-start;text-align:left}.v27-results-page .result-team-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v27-results-page .result-logo{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#f4faf7;border:1px solid #e2eee9}.v27-results-page .result-logo img{display:block!important;width:30px!important;height:30px!important;max-width:30px!important;max-height:30px!important;object-fit:contain!important}.v27-results-page .result-logo-fallback{font-size:10px;color:#0d8d81;font-weight:900}.v27-results-page .result-score{display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.v27-results-page .result-score strong{min-width:25px;text-align:center;font-size:18px;line-height:1;font-weight:950;color:#18332d}.v27-results-page .result-score span{font-size:12px;color:#8ba09a;font-weight:800}.v27-results-page .result-detail-btn{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #b9e3d7;border-radius:9px;background:#f4fbf8;color:#087d72;font-size:10px;font-weight:850;text-decoration:none;white-space:nowrap}.v27-results-page .result-detail-btn:hover{background:#e7f7f1;border-color:#8ed3c3}
@media(max-width:760px){.v27-results-page .result-match-card{grid-template-columns:56px minmax(0,1fr) 52px minmax(0,1fr) 34px;gap:6px;padding:8px}.v27-results-page .result-team{font-size:11px;gap:5px}.v27-results-page .result-logo{width:30px;height:30px;flex-basis:30px}.v27-results-page .result-logo img{width:25px!important;height:25px!important;max-width:25px!important;max-height:25px!important}.v27-results-page .result-score strong{font-size:15px}.v27-results-page .result-detail-btn{width:32px;padding:0;font-size:0}.v27-results-page .result-detail-btn i{font-size:12px}.v27-results-page .result-meta time{font-size:8px}}
@media(max-width:480px){.v27-results-page .result-match-card{grid-template-columns:48px minmax(0,1fr) 46px minmax(0,1fr) 30px}.v27-results-page .result-team-name{font-size:10px}.v27-results-page .result-logo{width:27px;height:27px;flex-basis:27px}.v27-results-page .result-logo img{width:23px!important;height:23px!important;max-width:23px!important;max-height:23px!important}.v27-results-page .result-league-head{padding:0 10px}.v27-results-page .result-league-head strong{font-size:11px}}

/* V27-UI-12P: dynamic odds detail */
.match-odds-panel .odds-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.match-odds-panel .odds-fresh{font-size:10px;color:#6c817b}.odds-market{border:1px solid #dcece7;border-radius:12px;overflow:hidden;background:#fff;margin-top:10px}.odds-market-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;background:#eff9f5;border-bottom:1px solid #dcece7}.odds-market-head strong{font-size:12px;color:#18332d}.odds-market-head span{font-size:9px;color:#6a7e77}.odds-quote{padding:9px 11px;border-bottom:1px solid #edf4f1}.odds-quote:last-child{border-bottom:0}.odds-quote-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.odds-book{font-size:10px;font-weight:900;color:#0a8176}.odds-line{font-size:10px;font-weight:850;color:#425952}.odds-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px}.odds-price{display:flex;justify-content:space-between;gap:7px;padding:7px 8px;border-radius:8px;background:#f7fbfa;border:1px solid #e8f2ef}.odds-price span{font-size:9px;color:#6c7e78;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.odds-price b{font-size:11px;color:#18332d}.odds-movement{margin-top:6px;font-size:9px;color:#7a8c87}.odds-empty{padding:15px;text-align:center;color:#71847e;font-size:11px;background:#fbfefd;border:1px dashed #cfe4dc;border-radius:10px}.odds-stale{padding:7px 9px;margin-top:8px;border-radius:8px;background:#fff8e7;border:1px solid #f0dfad;color:#8b6a13;font-size:9px}

/* V27-UI-09: notification source/detail polish */
.notice-source{align-self:flex-start;display:inline-flex;padding:3px 6px;border-radius:999px;background:#e8f7f1;color:#0b8176;font-size:8px;font-weight:900;letter-spacing:.08em}.notice-detail-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:16px;padding:20px;border:1px solid #d7ebe4;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(18,83,75,.05)}.notice-detail-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#e8f7f1;color:#0b8f82;font-size:20px}.notice-detail-source{font-size:10px;font-weight:900;color:#0b8f82;text-transform:uppercase;letter-spacing:.08em}.notice-detail-content h2{margin:0}.notice-detail-text{margin-top:10px;white-space:pre-wrap;line-height:1.7;color:#263e38}.notice-page-row{position:relative}.notice-page-row .notice-body{min-width:0}.notice-page-row .notice-body small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:560px){.notice-detail-card{grid-template-columns:1fr}.notice-detail-icon{width:40px;height:40px}}

/* V27-UI-10: compact favorites */
.v27-favorites-page .favorite-match-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.favorite-match-card{border:1px solid #dcece7;border-radius:13px;background:#fff;overflow:hidden}.favorite-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#f1faf6;border-bottom:1px solid #e5f0ed;color:#647973;font-size:9px;font-weight:800}.favorite-status{padding:3px 7px;border-radius:999px;font-size:8px;font-weight:950}.favorite-status.live{background:#ffe8e8;color:#b52222}.favorite-status.ft{background:#edf4f1;color:#526760}.favorite-status.scheduled{background:#e8f7f1;color:#0b8176}.favorite-card-main{display:grid;grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);align-items:center;gap:8px;padding:14px 10px}.favorite-side{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;text-align:center}.favorite-side img,.favorite-side>span{width:38px;height:38px;object-fit:contain;border-radius:50%;display:grid;place-items:center;background:#f5faf8;border:1px solid #e4efeb;font-size:10px;font-weight:900;color:#0b8176}.favorite-side strong{width:100%;font-size:11px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-card-score{text-align:center}.favorite-card-score b{display:block;font-size:18px;color:#18332d}.favorite-card-score small{display:block;margin-top:5px;font-size:8px;color:#6b7e78;line-height:1.25}.favorite-card-actions{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-top:1px solid #edf4f1}.favorite-card-actions a{font-size:10px;color:#087d72;text-decoration:none;font-weight:900}.favorite-card-actions button{width:28px;height:28px;border:0;border-radius:8px;background:#e8f7f1;color:#0b8f82}.favorite-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.favorite-team-card{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid #e1eeea;border-radius:11px;background:#fbfefd}.favorite-team-card img,.favorite-team-card>span{width:34px;height:34px;object-fit:contain;display:grid;place-items:center;border-radius:50%;background:#f3faf7;font-size:9px;font-weight:900;color:#0b8176}.favorite-team-card div{min-width:0}.favorite-team-card strong,.favorite-team-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-team-card strong{font-size:10px}.favorite-team-card small{font-size:8px;color:#71837d;margin-top:2px}.favorite-team-empty{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:14px;border:1px dashed #cfe4dc;border-radius:11px;background:#fbfefd}.favorite-team-empty i{font-size:20px;color:#0b8f82}.favorite-team-empty strong,.favorite-team-empty small{display:block}.favorite-team-empty strong{font-size:11px}.favorite-team-empty small{font-size:9px;color:#71837d;margin-top:2px}@media(max-width:800px){.v27-favorites-page .favorite-match-grid{grid-template-columns:1fr}.favorite-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.favorite-team-grid{grid-template-columns:1fr}}

/* V27-UI-11: profile information architecture */
.v27-profile-page .profile-grid-v27{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-panel-v27{padding:16px;border:1px solid #d9ebe6;border-radius:15px;background:#fff;box-shadow:0 6px 20px rgba(18,83,75,.04)}.profile-panel-wide{grid-column:1/-1}.profile-panel-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.profile-panel-head h2{font-size:15px;margin:0;color:#18332d}.profile-panel-head p{font-size:10px;color:#748680;margin:2px 0 0}.profile-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#e8f7f1;color:#0b8f82}.profile-avatar-row{display:flex;align-items:center;gap:12px;margin-bottom:13px;padding-bottom:13px;border-bottom:1px solid #edf4f1}.profile-avatar-row strong,.profile-avatar-row small{display:block}.profile-avatar-row strong{font-size:13px}.profile-avatar-row small{font-size:9px;color:#778983;margin-top:3px}.avatar-change-btn{display:inline-flex!important;margin-top:8px;padding:5px 9px!important;font-size:9px!important}.profile-field{margin-bottom:12px}.profile-field:last-child{margin-bottom:0}.profile-field label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:850;color:#425952;margin-bottom:5px}.profile-field small,.bank-card-v27 small{display:block;margin-top:5px;font-size:9px;color:#788983;line-height:1.45}.field-state{padding:3px 6px;border-radius:999px;font-size:7px;font-weight:900}.field-state.readonly{background:#f0f3f2;color:#687a74}.field-state.locked{background:#edf4f1;color:#56706a}.field-state.editable{background:#e8f7f1;color:#0b8176}.bank-card-grid-v27{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bank-card-v27{padding:12px;border:1px solid #e1eee9;border-radius:12px;background:#fbfefd}.bank-card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px;font-size:11px}.membership-card-v27{padding:13px;border-radius:12px;background:#e8f7f1;border:1px solid #cfe7de}.membership-card-v27 span,.membership-card-v27 strong,.membership-card-v27 small{display:block}.membership-card-v27 span{font-size:8px;font-weight:900;color:#0b8176}.membership-card-v27 strong{font-size:19px;color:#18332d;margin:3px 0}.membership-card-v27 small{font-size:9px;color:#6f817b}.membership-status-v27{display:flex;align-items:center;gap:9px;margin-top:10px;padding:10px;border:1px solid #e3efeb;border-radius:10px}.membership-status-v27>i{font-size:18px;color:#0b8f82}.membership-status-v27 div{min-width:0;flex:1}.membership-status-v27 strong,.membership-status-v27 small{display:block}.membership-status-v27 strong{font-size:10px}.membership-status-v27 small{font-size:8px;color:#748680;margin-top:2px}.membership-status-v27>b{font-size:9px;color:#0b8176}.profile-save-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:11px 13px;border:1px solid #cfe5dd;border-radius:12px;background:#eff9f5}.profile-save-bar span{font-size:9px;color:#62756f}.profile-save-bar i{color:#0b8f82}.profile-save-bar .green-btn{white-space:nowrap}@media(max-width:760px){.v27-profile-page .profile-grid-v27{grid-template-columns:1fr}.profile-panel-wide{grid-column:auto}.bank-card-grid-v27{grid-template-columns:1fr}.profile-save-bar{align-items:flex-start;flex-direction:column}}

/* V27-UI-08: unified lottery statistic chips */
.lottery-stat-chip{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:4px 9px;margin:0 4px 5px 0;border-radius:8px;background:#e8f7f1!important;color:#126e65!important;border:1px solid #cfe9df;font-size:10px;font-weight:850;line-height:1.1;text-decoration:none}.lottery-compact-chart .card-header,.lottery_stats .card-header{background:#eff9f5}.lottery-grade-values code{display:inline-flex;align-items:center;padding:3px 6px;margin:2px;border-radius:6px;background:#f0f8f5;color:#1a5e57;border:1px solid #d8ebe5;font-size:10px}

/* V27-UI-06: user-facing header final mint/teal system. Admin has its own layout. */
.ts-topbar{background:linear-gradient(180deg,#f2fbf8,#e6f7f1)!important;border-bottom:1px solid #bfe3d7!important;box-shadow:0 3px 16px rgba(20,106,89,.10)!important;color:#18332d!important}.ts-brand-copy strong,.ts-brand-copy small,.ts-top-icon,.ts-user,.ts-user-copy strong,.ts-user-copy small{color:#18332d!important}.ts-global-search{background:rgba(255,255,255,.86)!important;border-color:#c8e5dc!important}.ts-global-search input{color:#243a34!important}.ts-global-search kbd{background:#eef8f4!important;color:#6a7d76!important;border-color:#d2e8e0!important}.ts-top-icon:hover,.ts-user:hover{background:#dff3ec!important}.ts-mobile-menu{color:#18332d!important}.ts-brand-ball{background:#d8f1e9!important;color:#0b8176!important;box-shadow:inset 0 0 0 1px #b8ded3!important}.ts-register-btn,.ts-login-btn{border-color:#8ed0bf!important}.ts-register-btn{background:#fff!important;color:#087d72!important}.ts-login-btn{background:#0ca77a!important;color:#fff!important;border-color:#0ca77a!important}.ts-notif-menu,.ts-support-menu,.ts-user-menu{border-color:#cfe5dd!important;box-shadow:0 12px 30px rgba(18,83,75,.12)!important}

/* ===== V27.7 ACCOUNT / ADMIN / DATA ALIGNMENT ===== */
:root{--v27-ink-strong:#14201d;--v27-muted-strong:#60716b;--v27-mint-soft:#e8f8f3;--v27-mint-border:#cce9e1;--v27-gold:#d7a900;--v27-gold-soft:#fff7c7}
body.ts-app-body .text-secondary, body.v27-admin-body .text-secondary{color:#60716b!important}
body.ts-app-body small, body.v27-admin-body small{color:inherit}
.form-label,.profile-field label,.profile-field small,.bank-card-v27 small,.v27-user-form label,.v27-password-form label,.v27-password-user-form label{color:#34453f!important}
.form-control::placeholder{color:#7d8e88!important;opacity:1!important}

/* Live/schedule/results: centered match contract */
.live-match-card{cursor:pointer!important;align-items:center!important}
.live-match-card .match-meta{align-items:center!important;justify-content:center!important;text-align:center!important}
.live-match-card .match-teams{align-items:center!important;justify-content:center!important}
.live-match-card .team{display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important}
.live-match-card .team>span{display:flex!important;align-items:center!important;gap:7px!important;justify-content:center!important;min-width:0!important}
.live-match-card .score-wrap{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-width:86px!important}
.live-match-card .match-actions{align-items:center!important;justify-content:center!important}
.schedule-logo{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--v27-mint-soft);border:1px solid var(--v27-mint-border);color:var(--v27-teal-dark);font-size:9px;font-weight:900;flex:0 0 30px;overflow:hidden}.schedule-logo img{max-width:24px;max-height:24px;object-fit:contain}
.schedule-match-card .match-status{background:#eef6f3!important;color:#147764!important}
.schedule-match-card .match-clock{font-weight:800!important;color:#0a8f7d!important}

/* Hot/favorites sidebar links */
.live-sidebar .side-match{display:flex!important;text-decoration:none!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;color:var(--v27-ink)!important;min-height:58px!important}.live-sidebar .side-match>div{min-width:0!important}.live-sidebar .side-match b{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#20302b!important}.live-sidebar .side-match small{color:#6b7d76!important}.live-sidebar .side-match span{color:#087d70!important;font-weight:800!important;white-space:nowrap!important}.mini-action,.fav-toggle{color:var(--v27-gold)!important;border-color:#e8cf63!important;background:#fff!important}.mini-action.active,.fav-toggle.active{color:#c99d00!important;background:var(--v27-gold-soft)!important}

/* Standings strict columns */
.live-standings-table{width:100%!important}.live-standing-row{display:grid!important;grid-template-columns:24px 28px minmax(0,1fr) 34px 40px!important;align-items:center!important;column-gap:7px!important;min-height:43px!important;padding:7px 9px!important}.live-standing-row>b{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#20302b!important;font-size:11px!important}.live-standing-row>span:first-child{text-align:center!important;font-weight:800!important;color:#688078!important}.live-standing-row>em,.live-standing-row>strong{text-align:right!important;font-style:normal!important;color:#536660!important}.live-standing-row>strong{color:#087d70!important}

/* Dedicated schedule filter */
.v27-schedule-filter-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 220px;gap:12px;padding:12px;background:#fff;border:1px solid var(--v27-border);border-radius:12px;margin:10px 0;box-shadow:0 6px 20px rgba(18,83,75,.045)}.filter-block>span{display:block;font-size:10px;font-weight:900;color:#62736d;text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px}.filter-block .date-filter{margin:0;display:flex;flex-wrap:wrap;gap:6px}.filter-block .date-btn{white-space:nowrap}.league-filter-block .form-select{height:36px;font-size:12px}.v27-result-meta{display:flex;justify-content:space-between;align-items:center;padding:4px 3px 8px;color:#65766f;font-size:11px}.v27-result-meta strong{color:#20302b}

/* Results */
.result-match-card{display:grid!important;grid-template-columns:72px minmax(180px,1fr) 92px minmax(180px,1fr) 90px!important;align-items:center!important;gap:12px!important;min-height:74px!important}.result-meta{text-align:center!important}.result-team{display:flex!important;align-items:center!important;gap:9px!important;min-width:0!important}.result-team-name{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-weight:800!important;color:#20302b!important}.result-home{justify-content:flex-end!important;text-align:right!important}.result-away{justify-content:flex-start!important;text-align:left!important}.result-logo{width:34px!important;height:34px!important;flex:0 0 34px!important}.result-logo img{max-width:28px!important;max-height:28px!important}.result-score{display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;font-size:17px!important}.result-detail-btn{justify-self:center!important}.result-league-head{align-items:center!important}

/* Account */
.v27-account-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}.v27-account-shortcuts>a{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--v27-border);border-radius:12px;background:#fff;color:var(--v27-ink);text-decoration:none;box-shadow:0 5px 18px rgba(18,83,75,.045)}.v27-account-shortcuts>a>i:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--v27-mint-soft);color:var(--v27-teal);font-size:18px}.v27-account-shortcuts span{display:flex;flex-direction:column;flex:1}.v27-account-shortcuts small{color:#71817b!important;margin-top:2px}.v27-bank-inputs{display:grid;grid-template-columns:1fr;gap:8px}.bank-summary{display:flex;flex-direction:column;gap:4px;padding:11px;border-radius:10px;background:#f6fbf9;border:1px solid var(--v27-mint-border)}.bank-summary b{color:#20302b}.bank-summary span{color:#41534c}.bank-summary small{color:#61736c!important}.v27-security-panel{margin-top:14px}.v27-password-user-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.v27-password-user-form label,.v27-password-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800}.v27-password-user-form input,.v27-password-form input{min-height:40px;border:1px solid var(--v27-border);border-radius:9px;padding:0 11px;background:#fff;color:var(--v27-ink)}

/* Admin user list/detail */
.v27-users-head,.v27-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}.v27-users-head h1,.v27-detail-head h1{color:var(--v27-ink)!important}.admin-head-badge{padding:8px 12px;border-radius:9px;background:var(--v27-mint-soft);color:var(--v27-teal-dark);font-size:11px;font-weight:800}.v27-user-search{padding:12px!important}.v27-search-form{display:grid;grid-template-columns:1fr 180px;gap:8px}.v27-search-input{display:flex;align-items:center;gap:9px;border:1px solid var(--v27-border);border-radius:9px;padding:0 12px;background:#fff}.v27-search-input i{color:var(--v27-teal)}.v27-search-input input{width:100%;border:0;outline:0;height:40px;color:var(--v27-ink)}.v27-user-table th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#52645d!important;white-space:nowrap}.v27-user-table td{color:#263731!important}.v27-id-chip,.v27-role-chip,.v27-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900}.v27-id-chip{background:#f1f7f5;color:#5d7068}.v27-role-chip{margin-left:7px;background:#ffe5ea;color:#c93455}.v27-money{color:#087d70!important}.v27-pagination{display:flex;justify-content:center;gap:5px;padding:13px}.v27-pagination a,.v27-pagination span{min-width:30px;height:30px;display:grid;place-items:center;border-radius:8px;text-decoration:none;color:#51635c}.v27-pagination a.active{background:var(--v27-teal);color:#fff}.v27-back-link{display:inline-flex;gap:6px;align-items:center;color:#087d70;text-decoration:none;font-size:11px;font-weight:800;margin-bottom:8px}.v27-detail-actions{display:flex;align-items:center;gap:8px}.v27-status-pill.on{background:#e6f8f1;color:#087d70}.v27-status-pill.off{background:#ffe9ec;color:#c63b55}.v27-user-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.v27-summary-card{padding:14px!important;display:flex;flex-direction:column;gap:4px}.v27-summary-card span{font-size:10px;color:#70817b}.v27-summary-card strong{font-size:20px;color:#087d70}.v27-summary-card small{color:#73837d!important}.v27-user-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0 12px;padding:5px;background:#eaf6f2;border:1px solid var(--v27-border);border-radius:11px}.v27-user-tabs a{padding:9px 13px;border-radius:8px;text-decoration:none;color:#51635c;font-size:11px;font-weight:800}.v27-user-tabs a.active{background:#fff;color:#087d70;box-shadow:0 2px 8px rgba(18,83,75,.08)}.v27-card-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:12px}.v27-card-title h2{margin:0;color:var(--v27-ink)!important}.v27-card-title p{margin:3px 0 0;color:#74837e!important;font-size:11px}.v27-card-title a{color:#087d70;text-decoration:none;font-size:11px;font-weight:800}.v27-lock-note{font-size:10px;color:#087d70}.v27-form-group{padding:13px 0;border-top:1px solid #edf4f2}.v27-form-group:first-child{border-top:0;padding-top:0}.v27-form-group h3{font-size:12px;margin:0 0 9px;color:#24352f}.v27-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v27-form-grid label{font-size:10px;font-weight:800}.v27-span-2{grid-column:span 2}.v27-password-status{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--v27-mint-border);background:var(--v27-mint-soft);border-radius:10px}.v27-password-status>i{font-size:22px;color:var(--v27-teal)}.v27-password-status div{display:flex;flex-direction:column}.v27-password-status small{color:#6b7c75!important}.v27-password-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;margin-top:12px}.v27-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v27-detail-list div{display:flex;flex-direction:column}.v27-detail-list span{font-size:10px;color:#71817b}.v27-detail-list b{font-size:11px;color:#2a3a34;overflow:hidden;text-overflow:ellipsis}.v27-empty-history{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;text-align:center;color:#6b7c75}.v27-empty-history i{font-size:30px;color:#0a9c8c}.v27-empty-history b{color:#30413b;margin-top:5px}.v27-finance-mini{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v27-finance-mini div{padding:12px;background:#f7fbfa;border:1px solid #e5f0ed;border-radius:9px}.v27-finance-mini span{display:block;font-size:10px;color:#74837e}.v27-finance-mini b{display:block;margin-top:3px;color:#087d70}.v27-history-filter{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-bottom:12px}.v27-history-filter label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:800;color:#41534c}.v27-history-filter input{height:36px;border:1px solid var(--v27-border);border-radius:8px;padding:0 9px;color:var(--v27-ink);background:#fff}.v27-history-table{font-size:11px}.v27-history-table th{font-size:9px;text-transform:uppercase;color:#566860!important;background:var(--v27-mint)!important;white-space:nowrap}.v27-history-table td{color:#2c3d36!important;vertical-align:middle}.v27-history-table td small{display:block;color:#72827c!important;margin-top:2px}.empty-table{text-align:center!important;padding:34px!important;color:#71817b!important}.money-in{color:#078a70!important;font-weight:900}.money-out{color:#c24b59!important;font-weight:900}

@media(max-width:1000px){.v27-schedule-filter-bar{grid-template-columns:1fr 1fr}.league-filter-block{grid-column:span 2}.v27-user-summary-grid{grid-template-columns:repeat(2,1fr)}.v27-password-user-form{grid-template-columns:1fr 1fr}.v27-password-user-form button{grid-column:span 2}.result-match-card{grid-template-columns:60px minmax(130px,1fr) 75px minmax(130px,1fr) 80px!important}}
@media(max-width:700px){.v27-account-shortcuts,.v27-schedule-filter-bar,.v27-user-summary-grid{grid-template-columns:1fr}.league-filter-block{grid-column:auto}.v27-search-form{grid-template-columns:1fr}.v27-users-head,.v27-detail-head{align-items:flex-start;flex-direction:column}.v27-detail-actions{width:100%}.v27-form-grid{grid-template-columns:1fr}.v27-span-2{grid-column:auto}.v27-password-form,.v27-password-user-form{grid-template-columns:1fr}.v27-password-user-form button{grid-column:auto}.result-match-card{grid-template-columns:1fr!important;text-align:center!important;padding:12px!important}.result-home,.result-away{justify-content:center!important}.result-meta,.result-score,.result-detail-btn{justify-self:center!important}.live-match-card{height:auto!important;min-height:72px!important;grid-template-columns:1fr!important}.live-match-card .match-actions{justify-content:center!important}.live-match-card .team>span{white-space:normal!important;text-align:center!important}}
.v27-account-balance{min-width:180px;padding:12px 15px;border:1px solid var(--v27-mint-border);background:var(--v27-mint-soft);border-radius:12px;text-align:right;display:flex;flex-direction:column}.v27-account-balance span{font-size:10px;color:#62736d}.v27-account-balance strong{font-size:19px;color:#087d70;margin-top:2px}@media(max-width:700px){.v27-account-balance{width:100%;text-align:left}}
.notice-icon{background:#e8f8f3!important;color:#079f91!important;border:1px solid #cce9e1!important}.notice-icon.reward,.notice-icon.success,.notice-icon.info,.notice-icon.warning{background:#e8f8f3!important;color:#079f91!important}.notice-source{color:#087d70!important;background:#e8f8f3!important;border:1px solid #cce9e1!important}.notice-detail-icon{background:#e8f8f3!important;color:#079f91!important;border-color:#cce9e1!important}.support-message{color:#263731!important}.support-message p{color:#30413b!important}.admin-card-modern .form-label,.admin-card-modern label{color:#33453e!important}.admin-card-modern .text-secondary{color:#60716b!important}

/* V27-PROFILE-CONTRAST + V27-HEADER-BALANCE + V27-MONEY-INPUT */
.field-state.readonly{background:#e6eeeb!important;color:#29423a!important;border:1px solid #bfd4cd!important}
.field-state.locked{background:#d8eee7!important;color:#075f55!important;border:1px solid #9fcfc1!important}
.field-state.editable{background:#e4f8f1!important;color:#08786d!important;border:1px solid #b6dfd3!important}
.v27-profile-page .profile-field input:disabled,.v27-profile-page .profile-field input[readonly],.v27-profile-page .bank-summary{background:#eef5f2!important;color:#263b34!important;border-color:#b9d5cc!important;opacity:1!important}
.v27-profile-page .profile-field input:disabled::placeholder,.v27-profile-page .profile-field input[readonly]::placeholder{color:#5f746c!important}
.v27-profile-page .profile-field small,.v27-profile-page .bank-card-v27>small{color:#526860!important}
.v27-profile-page .bank-summary b{color:#173c33!important}
.v27-profile-page .bank-summary span{color:#2e5148!important}
.ts-balance-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 11px;border:1px solid #9ed5c7;border-radius:10px;background:#dff3ec;color:#075f55!important;text-decoration:none;font-weight:800;white-space:nowrap;box-shadow:0 2px 8px rgba(20,106,89,.08)}
.ts-balance-chip i{font-size:14px;color:#087d70}.ts-balance-chip:hover{background:#d1eee5;color:#064f47!important}
.v27-money-input{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-weight:700}
@media(max-width:760px){.ts-balance-chip{min-height:34px;padding:0 8px}.ts-balance-chip .ts-balance-label{max-width:110px;overflow:hidden;text-overflow:ellipsis}.ts-top-actions{gap:5px}}


/* V27.7 notification contrast fix: readable for user and admin flash messages. */
.alert,.ts-flash{--bs-alert-color:#334155;--bs-alert-bg:#f1f5f9;--bs-alert-border-color:#cbd5e1;background-color:#f1f5f9!important;border:1px solid #cbd5e1!important;color:#334155!important;opacity:1!important}
.alert-success,.ts-flash.alert-success{--bs-alert-color:#14532d;--bs-alert-bg:#e8f5ec;--bs-alert-border-color:#8fc8a1;background-color:#e8f5ec!important;border-color:#8fc8a1!important;color:#14532d!important}
.alert-danger,.ts-flash.alert-danger{--bs-alert-color:#842029;--bs-alert-bg:#fff0f0;--bs-alert-border-color:#e7a5aa;background-color:#fff0f0!important;border-color:#e7a5aa!important;color:#842029!important}
.alert-warning,.ts-flash.alert-warning{--bs-alert-color:#664d03;--bs-alert-bg:#fff7df;--bs-alert-border-color:#e6c86e;background-color:#fff7df!important;border-color:#e6c86e!important;color:#664d03!important}
.alert-info,.ts-flash.alert-info{--bs-alert-color:#084c75;--bs-alert-bg:#eaf4fc;--bs-alert-border-color:#9bc7e4;background-color:#eaf4fc!important;border-color:#9bc7e4!important;color:#084c75!important}
.alert-secondary,.ts-flash.alert-secondary{--bs-alert-color:#334155;--bs-alert-bg:#eef1f4;--bs-alert-border-color:#cbd5df;background-color:#eef1f4!important;border-color:#cbd5df!important;color:#334155!important}
.ts-flash .btn-close{opacity:.72!important;filter:none!important}
.ts-notif-item small,.ts-notif-item em{color:#52635d!important}
.ts-empty-menu{color:#52635d!important}
.custom-toast{background:#14532d!important;color:#fff!important;box-shadow:0 10px 32px rgba(20,83,45,.24)!important}


/* V27 UI package 1-9: admin shell, balances, wallets and promotions. */
.ts-admin-session-bar{position:fixed;z-index:1200;inset:0 0 auto 0;min-height:60px;display:flex;align-items:center;gap:18px;padding:10px 22px;background:#133d32;color:#fff;box-shadow:0 3px 16px rgba(15,55,42,.18)}.ts-admin-session-bar strong{margin-right:auto;color:#fff}.ts-admin-session-bar a{color:#fff!important;text-decoration:none;font-weight:750;padding:8px 12px;border:1px solid rgba(255,255,255,.28);border-radius:9px}.ts-admin-session-bar a:hover{background:rgba(255,255,255,.14)}body.admin-session .ts-main{margin-left:0!important;padding-top:82px!important}body.admin-session .ts-content-shell{max-width:1200px!important}
.ts-balance-menu{min-width:220px;padding:6px;border:1px solid #cfe5dd!important;background:#fff!important}.ts-balance-menu .dropdown-item{color:#203b32!important;border-radius:7px}.ts-balance-menu .dropdown-item.active,.ts-balance-menu .dropdown-item:hover{background:#e5f5ee!important;color:#075f48!important}
.v27-balance-selector{margin-top:8px;text-align:left}.v27-balance-selector summary{cursor:pointer;color:#087d70;font-size:11px;font-weight:800}.v27-balance-selector>div{display:flex;gap:6px;margin-top:7px}.v27-balance-selector button{border:1px solid #b9d9ce;border-radius:8px;background:#fff;color:#28453b;padding:6px 8px;font-size:10px;font-weight:800}.v27-balance-selector button.selected{background:#dff3ea;color:#075f48;border-color:#8bcbb4}
.v27-wallet-panel{padding:16px}.v27-linked-wallet-list{display:grid;gap:8px;margin-bottom:12px}.v27-linked-wallet-list>div{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid #dcece6;border-radius:10px;background:#f8fcfa}.v27-linked-wallet-list span,.v27-linked-wallet-list b{font-size:11px;color:#29483d}.v27-linked-wallet-list code{overflow-wrap:anywhere;color:#34483f}.v27-linked-wallet-list b{background:#e2f4eb;padding:4px 7px;border-radius:7px}.v27-wallet-add-form{display:grid;grid-template-columns:1fr 2fr auto;align-items:end;gap:10px}.v27-wallet-add-form label,.v27-crypto-adjust-form label,.v27-admin-wallet-form label{font-size:11px;font-weight:800;color:#34453f}.v27-admin-wallet-form{display:grid;grid-template-columns:1fr 2fr auto;align-items:end;gap:8px;padding:10px 0;border-bottom:1px solid #e9f1ed}.v27-crypto-adjust-form{display:grid;gap:10px}.crypto-qr-panel{display:flex;align-items:center;gap:14px;margin:12px 0 4px;padding:12px;border:1px solid #d6e9e1;border-radius:12px;background:#f5fbf8}.crypto-qr-panel #deposit-qr{min-width:184px;min-height:184px;display:grid;place-items:center;padding:7px;background:#fff;border:1px solid #dce9e3;border-radius:8px}.crypto-qr-panel small{color:#40574e;max-width:260px;line-height:1.5}
.v27-promo-page{max-width:1180px}.promo-filter{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 15px}.promo-filter a{padding:7px 11px;border:1px solid #cfe5dd;border-radius:999px;background:#fff;color:#38564b;text-decoration:none;font-size:11px;font-weight:800}.promo-filter a.active,.promo-filter a:hover{background:#dff3ea;color:#075f48}.v27-promo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.v27-promo-card,.v27-promo-detail{overflow:hidden;border:1px solid #dcece6;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(20,70,58,.06)}.v27-promo-card>img,.v27-promo-card>a>img{display:block;width:100%;max-height:250px;object-fit:cover}.v27-promo-card>div,.v27-promo-detail{padding:18px}.v27-promo-card h2{font-size:17px;margin:8px 0}.v27-promo-card h2 a{color:#183b31;text-decoration:none}.v27-promo-card p,.promo-content,.promo-terms{color:#354b42;line-height:1.7;white-space:pre-wrap}.promo-type-pill{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e1f4eb;color:#075f48;font-size:9px;font-weight:900}.promo-reward{display:inline-block;color:#087d70;margin:6px 0}.promo-code-compact{display:inline-block;margin-left:6px;padding:5px 8px;border:1px dashed #72b99f;border-radius:7px;color:#164b3a}.promo-hero-image{display:block;width:100%;max-height:440px;object-fit:cover;border-radius:12px;margin:12px 0}.promo-meta{display:flex;gap:14px;flex-wrap:wrap;color:#51645c;font-size:11px;margin:10px 0}.promo-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;background:#eff9f4;border-radius:10px}.promo-code span{color:#52665d}.promo-code strong{font-size:18px;color:#075f48;letter-spacing:.04em}.promo-content{margin:15px 0}.promo-terms{padding:12px;background:#f7faf8;border-radius:10px}.promo-terms h2{font-size:14px;color:#203b32}.v27-promo-admin-list{display:grid;gap:8px;max-height:700px;overflow:auto}.v27-promo-admin-list article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #e9f1ed}.v27-promo-admin-list article>div:first-child{display:grid;gap:3px}.v27-promo-admin-list span{font-size:9px;color:#087d70;font-weight:900}.v27-promo-admin-list strong{font-size:12px;color:#263c33}.v27-promo-admin-list small{font-size:9px;color:#60716b}.v27-promo-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.v27-promo-form label{font-size:11px;font-weight:800;color:#34453f}.v27-promo-form textarea{resize:vertical}
@media(max-width:760px){.v27-promo-grid{grid-template-columns:1fr}.v27-wallet-add-form,.v27-admin-wallet-form{grid-template-columns:1fr}.v27-linked-wallet-list>div{grid-template-columns:1fr}.v27-promo-form{grid-template-columns:1fr}.v27-promo-form .v27-span-2{grid-column:auto}.crypto-qr-panel{align-items:flex-start;flex-direction:column}.ts-admin-session-bar{padding:8px 12px;gap:8px}.ts-admin-session-bar strong{font-size:11px}.ts-admin-session-bar a{font-size:10px;padding:6px 8px}}

.v27-balance-selector summary{display:flex;flex-direction:column;gap:3px;list-style:none}.v27-balance-selector summary::-webkit-details-marker{display:none}.v27-balance-selector summary strong{font-size:19px;color:#087d70}.v27-balance-selector summary small{font-size:9px;color:#526860}

/* V27.8 compact history and betting UI */
.copy-chip{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;border:1px solid #c9efe3;border-radius:999px;background:#eafaf4;color:#087c64;padding:.28rem .65rem;font:inherit;cursor:pointer;text-align:left}.copy-chip:hover{background:#d8f5ea;color:#075f50}.copy-chip-inline,.copy-chip-long{max-width:200px;font-size:.78rem}.history-period-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}.history-period-tabs a{padding:.5rem .85rem;border-radius:999px;background:#f1f5f7;color:#415361;text-decoration:none;font-weight:650}.history-period-tabs a.active{background:#daf5ed;color:#087c64}.history-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.history-summary-grid article{display:grid;gap:.35rem;background:#fff;border:1px solid #e1e9ed;border-radius:16px;padding:1rem}.history-summary-grid small,.history-summary-grid span{color:#667883}.history-summary-grid strong,.history-summary-grid b{font-size:1.05rem}.bet-history-cards{display:grid;gap:.8rem}.bet-history-card{background:#fff;border:1px solid #e3eaed;border-radius:16px;padding:1rem;box-shadow:0 5px 18px #1634490a}.bet-history-card>header,.bet-leg-top,.bet-leg-detail,.bet-history-footer,.bet-history-result{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.bet-history-card>header{padding-bottom:.7rem;border-bottom:1px solid #edf1f3}.bet-history-card>header>div{display:flex;gap:.55rem;align-items:center;min-width:0}.bet-history-card strong,.bet-history-card b{color:#172a38}.bet-status{border-radius:999px;padding:.27rem .65rem;background:#fff4db;color:#885900;white-space:nowrap;font-size:.82rem}.status-won{background:#e6f8ed;color:#13824b}.status-lost{background:#ffebec;color:#b42330}.status-void{background:#eef1f3;color:#596b75}.bet-leg{padding:.7rem 0;border-bottom:1px solid #f0f3f5}.bet-leg-top b{font-size:.98rem}.bet-leg-top span,.bet-leg small{color:#73818a;font-size:.8rem}.bet-leg-detail{margin-top:.45rem;align-items:flex-start}.bet-leg-detail span{color:#72818a}.bet-leg-detail b{color:#087c64}.bet-history-footer{justify-content:flex-start;flex-wrap:wrap;padding:.65rem 0;color:#6d7b83;font-size:.83rem}.bet-history-footer>span{padding-right:.7rem;border-right:1px solid #e2e8eb}.bet-history-result{border-radius:12px;background:#f4f8f7;padding:.65rem .8rem}.bet-history-result b{color:#087c64}.admin-settle-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.8rem}.admin-settle-form>button,.admin-settle-form>small{align-self:end}.wagering-user-grid,.wagering-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.wagering-user-grid article{background:#f7faf9;border:1px solid #e1eae7;border-radius:12px;padding:.8rem}.wagering-user-grid article>div{display:flex;justify-content:space-between;margin:.3rem 0}.wagering-user-grid small{color:#667}.wagering-user-grid .progress{height:6px;margin-top:.5rem}.wagering-admin-grid form{border:1px solid #e2e9ec;border-radius:12px;padding:.8rem}.match-betting-page{max-width:920px;margin:1rem auto 5rem}.match-betting-hero{display:grid;grid-template-columns:1fr .8fr 1fr;gap:.5rem;align-items:center;padding:1rem;border-radius:18px;color:#fff;background:linear-gradient(120deg,#243d4b,#536b78);box-shadow:0 8px 28px #132b3b22}.match-team{display:grid;justify-items:center;gap:.35rem;text-align:center}.match-team img{width:48px;height:48px;object-fit:contain}.match-team b{font-size:1rem}.match-team small,.match-score small,.match-score span{opacity:.8}.match-score{display:grid;justify-items:center;gap:.3rem;text-align:center}.match-score b{font-size:1.65rem}.match-score .is-live{color:#ffb5b5}.match-result-summary{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:.7rem 0;padding:.75rem 1rem;border-radius:12px;background:#eaf8f2;color:#17654f}.new-odds-panel{padding:1rem;border-radius:18px;background:#fff;border:1px solid #e3eaed}.odds-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.odds-toolbar h2{font-size:1.15rem;margin:0}.bet-mode-switch,.market-filter-tabs{display:flex;gap:.45rem;overflow:auto;padding:.7rem 0}.bet-mode-switch button,.market-filter-tabs button{border:0;border-radius:999px;background:#f0f4f6;padding:.55rem .85rem;white-space:nowrap;color:#4c606c}.bet-mode-switch button.active,.market-filter-tabs button.active{background:#dff5ee;color:#087c64;font-weight:700}.odds-market-block{margin:.65rem 0;border:1px solid #e4eaed;border-radius:13px;overflow:hidden}.odds-market-block summary{cursor:pointer;padding:.75rem;background:#eff8f5;color:#176c59;font-weight:700}.odds-market-block summary span{float:right;color:#6c7c84;font-size:.78rem;font-weight:500}.odds-quote-card{padding:.65rem;border-top:1px solid #edf1f2}.odds-quote-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:.45rem;color:#62747e;font-size:.82rem}.odds-selection-grid{display:grid;gap:.45rem}.odds-selection-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.odds-selection-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.odds-pick{display:flex;justify-content:space-between;align-items:center;gap:.45rem;min-width:0;border:1px solid #e7edef;border-radius:10px;background:#f3f5f7;padding:.65rem .7rem;text-align:left}.odds-pick span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#697780}.odds-pick b{color:#132a39}.odds-pick:hover:not(:disabled){border-color:#4fa3e4;background:#eef7ff}.odds-pick:disabled{opacity:.55}.odds-stale{padding:.7rem;background:#fff5df;color:#875b00;border-radius:10px}.match-events-panel{margin-top:1rem;background:#fff;border:1px solid #e2e9ed;border-radius:14px;padding:1rem}.match-events-panel>div{display:flex;gap:.8rem;padding:.5rem 0;border-bottom:1px solid #eef2f4}.match-events-panel small{margin-left:auto;color:#73818a}.back-to-matches{display:inline-block;margin-top:1rem}.bet-cart-fab{position:fixed;z-index:1040;right:18px;bottom:22px;border:0;border-radius:999px;background:#218bd8;color:white;padding:.8rem 1rem;box-shadow:0 8px 25px #0b355244}.bet-cart-fab b{display:inline-grid;place-items:center;background:white;color:#087c64;border-radius:50%;width:22px;height:22px;margin-left:.4rem}.bet-slip-overlay{position:fixed;z-index:1050;inset:0;background:#09131dcc;display:flex;align-items:flex-end;justify-content:center}.bet-slip-overlay.d-none{display:none}.bet-slip-sheet{position:relative;width:min(700px,100%);max-height:92vh;overflow:auto;border-radius:20px 20px 0 0;background:#fff;padding:1.2rem 1rem 1.5rem;box-shadow:0 -10px 40px #08152244}.bet-slip-close{position:absolute;right:12px;top:8px;border:0;background:#f1f4f5;border-radius:50%;width:34px;height:34px;font-size:1.3rem}.slip-head{display:flex;justify-content:space-between;align-items:center;padding-right:2.2rem}.slip-type-label{font-size:1.1rem;font-weight:750}.slip-head select{max-width:125px}.slip-pick{position:relative;display:grid;gap:.25rem;margin:.65rem 0;padding:.8rem 2.3rem .8rem .8rem;border-radius:12px;background:#f5f7f8}.slip-pick span,.slip-pick small{color:#6d7b83}.slip-remove{position:absolute;right:.5rem;top:.5rem;border:0;background:#e8edef;border-radius:50%;width:28px;height:28px}.slip-stake-label{display:block;margin-top:.8rem;color:#687983}.slip-stake-label>div{display:flex;align-items:center;border:1px solid #62a8e2;border-radius:12px;padding:.65rem}.slip-stake-label input{min-width:0;flex:1;border:0;outline:0;font-size:1.25rem;font-weight:700}.slip-quick-amounts,.slip-keypad{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;margin:.6rem 0}.slip-quick-amounts button,.slip-keypad button{border:0;border-radius:9px;background:#eef2f4;padding:.65rem}.slip-keypad{grid-template-columns:repeat(3,1fr)}.slip-payout{display:grid;gap:.35rem;padding:.7rem;border-radius:12px;background:#eaf8f2}.slip-payout span{display:flex;justify-content:space-between}.bet-submit-btn{width:100%;margin-top:.7rem;padding:.85rem;border:0;border-radius:12px;background:#238cda;color:#fff;font-size:1rem;font-weight:750}.bet-submit-btn:disabled{opacity:.6}
@media(max-width:640px){.history-summary-grid,.wagering-user-grid,.wagering-admin-grid{grid-template-columns:1fr}.bet-history-footer{gap:.35rem}.bet-history-footer>span{font-size:.76rem}.admin-settle-form{grid-template-columns:1fr}.match-betting-hero{padding:.8rem .4rem}.match-team img{width:38px;height:38px}.match-team b{font-size:.86rem}.match-score b{font-size:1.3rem}.odds-selection-grid.three{grid-template-columns:1fr}.bet-cart-fab{right:12px;bottom:14px}}

.copy-chip.copied{background:#c8f2e1;box-shadow:0 0 0 2px #8bd9ba}

.odds-price.is-locked{background:#eef8f4;border-color:#b6e4d6}.odds-price.is-locked b{color:#148573}.odds-quote.is-locked{background:#f8fcfa}

/* V27.8.8: mobile text fields use the iOS no-auto-zoom minimum. */
@media(max-width:900px){
 .v27-admin-body input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]),
 .v27-admin-body select,
 .v27-admin-body textarea,
 .v27-admin-body .form-control,
 .v27-admin-body .form-select{font-size:16px!important;line-height:1.2!important}
}
