/* Kendo Tournament Tool — Custom Styles */

:root {
    --kendo-red: #c0392b;
    --kendo-accent: #e74c3c;
    --kendo-gold: #f39c12;
}

/* Dark theme colors */
[data-bs-theme="dark"] {
    --kendo-bg: #0f0f1a;
    --kendo-card-bg: #1a1a2e;
    --kendo-card-header-bg: #16162a;
    --kendo-border: #2a2a4a;
    --kendo-input-bg: #16162a;
    --kendo-input-focus-bg: #1a1a2e;
    --kendo-muted: #8a8aa0;
    --kendo-placeholder: #5a5a7a;
    --kendo-table-row-border: #1f1f38;
    --kendo-navbar-bg: #16162a;
}

/* Light theme colors */
[data-bs-theme="light"] {
    --kendo-bg: #f5f5f7;
    --kendo-card-bg: #ffffff;
    --kendo-card-header-bg: #f0f0f3;
    --kendo-border: #d0d0d8;
    --kendo-input-bg: #ffffff;
    --kendo-input-focus-bg: #ffffff;
    --kendo-muted: #6c6c80;
    --kendo-placeholder: #9a9ab0;
    --kendo-table-row-border: #e8e8ee;
    --kendo-navbar-bg: #ffffff;
}

body {
    background-color: var(--kendo-bg);
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
}

/* Navbar */
.navbar {
    background-color: var(--kendo-navbar-bg);
}

.brand-icon {
    font-size: 1.5rem;
}

/* Cards */
.card {
    background-color: var(--kendo-card-bg);
    border-color: var(--kendo-border);
}

.card-header {
    background-color: var(--kendo-card-header-bg);
    border-color: var(--kendo-border);
}

/* Match rows */
.match-row {
    transition: all 0.3s ease;
    border-left: 3px solid transparent;
}

.match-active {
    border-left-color: var(--kendo-accent) !important;
    background-color: rgba(231, 76, 60, 0.08) !important;
}

.match-finished {
    opacity: 0.85;
}

.score {
    font-family: 'Courier New', monospace;
    font-weight: bold;
    letter-spacing: 2px;
}

.fighter-name {
    font-size: 1.05rem;
}

/* Fighter panels (Shiaijo view) */
.fighter-panel {
    border: 2px solid var(--kendo-border);
    min-height: 200px;
}

.fighter-panel-red {
    border-color: var(--kendo-red);
    background: linear-gradient(135deg, rgba(192, 57, 43, 0.15), transparent);
}

.fighter-panel-white {
    border-color: #bdc3c7;
    background: linear-gradient(135deg, rgba(189, 195, 199, 0.1), transparent);
}

/* Ippon buttons */
.btn-ippon {
    width: calc(50% - 4px);
    font-weight: bold;
    font-size: 0.9rem;
    padding: 0.6rem 0.3rem;
}

/* White fighter buttons: dark border+text in light mode */
[data-bs-theme="light"] .btn-ippon-white.btn-outline-light {
    color: #212529;
    border-color: #212529;
}
[data-bs-theme="light"] .btn-ippon-white.btn-outline-light:hover {
    background-color: #212529;
    color: #fff;
}

/* Blinking animation */
.blink {
    animation: blink-animation 1.2s ease-in-out infinite;
}

@keyframes blink-animation {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* K.O. Bracket */
.bracket-container {
    display: flex;
    gap: 1.5rem;
    overflow-x: auto;
    padding: 1rem 0;
    justify-content: center;
    align-items: stretch;
}

.bracket-round {
    flex: 0 0 220px;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
}

.bracket-round-center {
    flex: 0 0 240px;
    justify-content: center;
}

.bracket-match {
    border-color: var(--kendo-border);
}

.bracket-match hr {
    border-color: var(--kendo-border);
    margin: 0;
}

/* Standings table */
.table {
    --bs-table-bg: transparent;
}

.table thead th {
    border-color: var(--kendo-border);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--kendo-muted);
}

.table td {
    border-color: var(--kendo-table-row-border);
    vertical-align: middle;
}

.table-warning {
    --bs-table-bg: rgba(243, 156, 18, 0.08);
    --bs-table-color: inherit;
}

/* Footer */
footer {
    border-color: var(--kendo-border) !important;
}

/* Responsive */
@media (max-width: 768px) {
    .fighter-panel {
        min-height: 150px;
    }

    .btn-ippon {
        width: 100%;
        padding: 0.8rem;
        font-size: 1rem;
    }

    .bracket-container {
        flex-direction: column;
    }

    .bracket-round {
        flex: none;
    }

    .display-3 {
        font-size: 2rem;
    }
}

/* Match card glow for active matches */
.match-card {
    transition: box-shadow 0.3s ease;
}

.match-card:has(.badge.bg-danger) {
    box-shadow: 0 0 20px rgba(231, 76, 60, 0.2);
}

.match-card:has(.badge.bg-warning) {
    box-shadow: 0 0 20px rgba(243, 156, 18, 0.2);
}

/* Time expired: yellow blinking border */
.time-expired {
    animation: time-expired-blink 1s ease-in-out infinite;
    border-color: var(--kendo-gold) !important;
}

@keyframes time-expired-blink {
    0%, 100% {
        box-shadow: 0 0 15px rgba(243, 156, 18, 0.3);
        border-color: var(--kendo-gold);
    }
    50% {
        box-shadow: 0 0 30px rgba(243, 156, 18, 0.7);
        border-color: #f1c40f;
    }
}

/* List group styling */
.list-group-item {
    background-color: var(--kendo-card-bg);
    border-color: var(--kendo-border);
}

/* Alert styling */
.alert {
    border: none;
}

/* Form controls */
.form-control, .form-select {
    background-color: var(--kendo-input-bg);
    border-color: var(--kendo-border);
}

.form-control:focus, .form-select:focus {
    background-color: var(--kendo-input-focus-bg);
    border-color: var(--kendo-accent);
    box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.15);
}

.form-control::placeholder {
    color: var(--kendo-placeholder);
}

/* Input group */
.input-group-text {
    background-color: var(--kendo-card-header-bg);
    border-color: var(--kendo-border);
    color: var(--kendo-muted);
}
