/* Pavlov VR Matchmaking Styles */

html {
    overflow-x: hidden;
}

:root {
    --delft-blue: #2f3f64;
    --silver-lake-blue: #6290c3;
    --anti-flash-white: #eff1f3;
    --persian-red: #cc2936;
    --claret: #9c0d38;
    --admin-gold: #ffc107;
    --admin-green: #28a745;
    --admin-orange: #fd7e14;
}

body {
    background: 
        linear-gradient(135deg, rgba(26, 35, 50, 0.75) 0%, rgba(47, 63, 100, 0.70) 100%),
        url('../images/tactical_duo_redish.jpeg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    min-height: 100vh;
    padding-top: 70px;
    overflow-x: hidden;
}

.navbar-brand {
    font-weight: bold;
    color: white !important;
}

.btn-primary {
    background-color: var(--delft-blue);
    border-color: var(--delft-blue);
}

.btn-primary:hover {
    background-color: var(--silver-lake-blue);
    border-color: var(--silver-lake-blue);
}

.btn-danger {
    background-color: var(--persian-red);
    border-color: var(--persian-red);
}

.btn-danger:hover {
    background-color: var(--claret);
    border-color: var(--claret);
}

.alert-success {
    background-color: #d4edda;
    border-color: #c3e6cb;
    color: #155724;
}

.alert-danger {
    background-color: #f8d7da;
    border-color: #f5c6cb;
    color: #721c24;
}

.badge {
    font-size: 0.75em;
}

.list-group-item {
    border: 1px solid rgba(0, 0, 0, 0.125);
}

.text-muted {
    color: #6c757d !important;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    body {
        padding-top: 60px;
    }

    .container {
        padding-left: 15px;
        padding-right: 15px;
    }
    
    .card-body {
        padding: 1rem;
    }
    
    .btn {
        padding: 0.5rem 1rem;
    }
}

/* Custom form styling */
.form-control:focus {
    border-color: var(--silver-lake-blue);
    box-shadow: 0 0 0 0.2rem rgba(98, 144, 195, 0.25);
}

.form-select:focus {
    border-color: var(--silver-lake-blue);
    box-shadow: 0 0 0 0.2rem rgba(98, 144, 195, 0.25);
}

/* Compact Layout Styles */
.team-a-header {
    background-color: #0d6efd !important;
}

.team-b-header {
    background-color: #dc3545 !important;
}

.badge-sm {
    font-size: 0.65em;
    padding: 0.25em 0.4em;
}

.card-body.p-2 {
    padding: 0.5rem !important;
}

.list-group-item.py-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
}

.list-group-item.px-2 {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
}

/* Space optimization */
.g-3 {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
}

.card.h-100 {
    height: 100% !important;
}

/* Responsive adjustments */
@media (max-width: 991.98px) {
    .col-lg-4 {
        margin-bottom: 1rem;
    }
}

/* Match cards */
.match-card {
    transition: transform 0.2s ease-in-out;
}

.match-card:hover {
    transform: translateY(-2px);
}

/* Team sections */
.team-section {
    margin-bottom: 1.5rem;
}

.team-header {
    background-color: var(--delft-blue);
    color: white;
    padding: 0.75rem 1rem;
    border-radius: 0.375rem 0.375rem 0 0;
}

.team-body {
    background-color: white;
    border: 1px solid #dee2e6;
    border-top: none;
    border-radius: 0 0 0.375rem 0.375rem;
    padding: 1rem;
}

/* Status badges */
.status-open {
    background-color: #28a745 !important;
}

.status-locked {
    background-color: #ffc107 !important;
    color: #212529 !important;
}

/* Reserve players styling */
.reserve-section {
    background-color: #f8f9fa;
    border-left: 4px solid var(--silver-lake-blue);
    padding: 1rem;
    margin-top: 1rem;
    border-radius: 0.375rem;
}

/* Loading spinner */
.spinner-border-sm {
    width: 1rem;
    height: 1rem;
}

/* Custom scrollbar for long lists */
.scrollable-list {
    max-height: 300px;
    overflow-y: auto;
}

.scrollable-list::-webkit-scrollbar {
    width: 6px;
}

.scrollable-list::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
}

.scrollable-list::-webkit-scrollbar-thumb {
    background: var(--silver-lake-blue);
    border-radius: 3px;
}

.scrollable-list::-webkit-scrollbar-thumb:hover {
    background: var(--delft-blue);
}

/* Timeline Schedule Styles */
.timeline-container {
    overflow-x: auto;
    overflow-y: hidden;
    max-width: 100%;
}

.timeline-schedule {
    display: flex;
    flex-direction: column;
    min-width: max-content;
    padding: 10px 0;
}

.timeline-header-row {
    display: flex;
    margin-bottom: 5px;
}

.timeline-slots-row {
    display: flex;
    gap: 2px;
}

.timeline-date-header {
    text-align: left;
    font-weight: bold;
    font-size: 0.9rem;
    color: var(--delft-blue);
    padding: 5px 8px;
    border-bottom: 2px solid var(--silver-lake-blue);
    min-width: calc(80px * var(--date-span) + 2px * (var(--date-span) - 1));
    flex-shrink: 0;
}

.timeline-slot {
    height: 60px;
    min-width: 80px;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.8rem;
    font-weight: 500;
    text-align: center;
    position: relative;
    background: white;
    flex-shrink: 0;
}

.timeline-slot.available {
    background: #f8f9fa;
    border-color: var(--silver-lake-blue);
    color: var(--delft-blue);
}

.timeline-slot.available:hover {
    background: #e3f2fd;
    border-color: var(--delft-blue);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(47, 63, 100, 0.15);
}

.timeline-slot.occupied {
    background: var(--delft-blue);
    border-color: var(--delft-blue);
    color: white;
}

.timeline-slot.occupied:hover {
    background: var(--claret);
    border-color: var(--claret);
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(156, 13, 56, 0.2);
}

.timeline-slot.buffer {
    background: #f8f9fa;
    border-color: #dee2e6;
    color: #6c757d;
    cursor: not-allowed;
}

.timeline-slot.buffer:hover {
    background: #e9ecef;
    border-color: #adb5bd;
    /* No transform or shadow for buffer slots */
}

.timeline-slot.past {
    background: #f5f5f5;
    border-color: #d0d0d0;
    color: #999;
    cursor: not-allowed;
}

.timeline-slot-time {
    font-size: 0.7rem;
    font-weight: bold;
}

.timeline-slot-content {
    font-size: 0.6rem;
    margin-top: 2px;
}

/* UTC time elements styling */
.utc-time {
    cursor: help;
    border-bottom: 1px dotted var(--silver-lake-blue);
    transition: all 0.2s ease;
}

.utc-time:hover {
    background-color: rgba(98, 144, 195, 0.1);
    border-radius: 3px;
    padding: 1px 3px;
    border-bottom: 1px solid var(--silver-lake-blue);
}

/* Map Selection Modal Styles */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
}

.map-selection-modal {
    background: white;
    border-radius: 0.5rem;
    max-width: 900px;
    width: 100%;
    max-height: calc(100vh - 2rem);
    overflow: hidden;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    margin: auto;
    display: flex;
    flex-direction: column;
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    border-bottom: 1px solid #dee2e6;
    background-color: var(--silver-lake-blue);
    color: white;
    border-radius: 0.5rem 0.5rem 0 0;
    flex-shrink: 0;
}

.modal-header h5 {
    margin: 0;
    flex-grow: 1;
}

.btn-close {
    background: none;
    border: none;
    color: white;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
}

.btn-close:hover {
    opacity: 0.8;
}

.modal-body {
    padding: 1rem;
    overflow-y: auto;
    flex-grow: 1;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 1rem;
    border-top: 1px solid #dee2e6;
    background-color: #f8f9fa;
    border-radius: 0 0 0.5rem 0.5rem;
    flex-shrink: 0;
}

.map-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    max-height: 400px;
    overflow-y: auto;
    padding: 0.5rem;
}

.map-card {
    border: 2px solid #e9ecef;
    border-radius: 0.5rem;
    padding: 1rem;
    cursor: pointer;
    transition: all 0.2s ease;
    background: white;
    position: relative;
}

.map-card:hover {
    border-color: var(--silver-lake-blue);
    transform: translateY(-2px);
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}

.map-card.selected {
    border-color: var(--delft-blue);
    background-color: rgba(47, 63, 100, 0.1);
}

.map-card .map-name {
    font-weight: bold;
    font-size: 0.9rem;
    color: var(--delft-blue);
}

.map-card .map-mode {
    font-size: 0.8rem;
    color: #6c757d;
    margin-top: 0.25rem;
}

.map-card .selection-order {
    position: absolute;
    top: -8px;
    right: -8px;
    background-color: var(--delft-blue);
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: bold;
}

.map-order-preview {
    border: 1px solid #e9ecef;
    border-radius: 0.5rem;
    padding: 0.75rem;
    max-height: 400px;
    overflow-y: auto;
    background-color: #f8f9fa;
}

.map-order-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem;
    border-radius: 0.25rem;
    margin-bottom: 0.5rem;
    background: white;
    border: 1px solid #e9ecef;
}

.map-order-item:last-child {
    margin-bottom: 0;
}

.map-order-item .order-number, 
.map-order-item .game-number {
    background-color: var(--delft-blue);
    color: white;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: bold;
    flex-shrink: 0;
}

.map-order-item .team-indicator {
    font-size: 0.8rem;
    font-weight: bold;
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    flex-shrink: 0;
}

.map-order-item.team-a .team-indicator {
    background-color: #d1ecf1;
    color: #0c5460;
}

.map-order-item.team-b .team-indicator {
    background-color: #f8d7da;
    color: #721c24;
}

.map-order-item.random-map .team-indicator {
    background-color: #fff3cd;
    color: #856404;
}

.map-order-item.team-a .game-number {
    background-color: #0c5460;
    color: white;
}

.map-order-item.team-b .game-number {
    background-color: #721c24;
    color: white;
}

.map-order-item.random-map .game-number {
    background-color: #ffc107;
    color: #212529;
}

.map-order-item .map-name {
    font-weight: 500;
    flex-grow: 1;
}

/* Duplicate Map Warning Styles */
.map-order-item.duplicate-warning {
    background-color: #fff8e1;
    border-left: 4px solid #ff9800;
    position: relative;
}

.warning-indicator {
    font-size: 1rem;
    margin-left: 0.5rem;
    cursor: help;
    color: #ff9800;
    animation: pulse-warning 2s infinite;
}

@keyframes pulse-warning {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.map-order-item.duplicate-warning .map-name {
    color: #e65100;
    font-weight: 600;
}

/* Modal Responsive Adjustments */
@media (max-width: 768px) {
    .modal-overlay {
        padding: 0.5rem;
    }
    
    .map-selection-modal {
        max-height: calc(100vh - 1rem);
        width: 100%;
    }
    
    .modal-body {
        padding: 0.75rem;
    }
    
    .modal-header,
    .modal-footer {
        padding: 0.75rem;
    }
    
    .map-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 0.75rem;
    }
}

@media (max-width: 480px) {
    .modal-overlay {
        padding: 0.25rem;
    }
    
    .map-grid {
        grid-template-columns: 1fr;
    }
}

/* Player Grid Styles */
.team-player-slot {
    transition: all 0.2s ease;
    border: 1px solid #dee2e6;
    background-color: #f8f9fa;
}

/* Small pill style for stats (victims, guns) */
.stat-pill {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    margin: 0 0.25rem 0.25rem 0;
    border-radius: 999px;
    border: 1px solid rgba(47, 63, 100, 0.12);
    background: #fff;
    color: var(--delft-blue);
    font-size: 0.85rem;
}
.stat-pill small { color: #6c757d; margin-left: 0.25rem; }

/* Level circle badge */
.level-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--delft-blue);
    color: white;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(47,63,100,0.15);
    border: 2px solid rgba(255,255,255,0.08);
    font-size: 0.95rem;
}
.level-circle.small { width: 28px; height: 28px; font-size: 0.85rem; }

.team-player-slot:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
}

.team-player-slot.open-slot {
    border-style: dashed !important;
    border-color: #adb5bd;
    background-color: transparent;
    opacity: 0.6;
}

.team-player-slot.open-slot:hover {
    opacity: 0.8;
    background-color: rgba(248, 249, 250, 0.5);
}

/* Full team layout - ready for future stats */
.d-grid .team-player-slot {
    min-height: 40px;
    padding: 0.75rem;
}

.d-grid .team-player-slot .badge {
    font-size: 0.75rem;
}

/* Future stats placeholder */
.d-grid .team-player-slot .stats-placeholder {
    color: #6c757d;
    font-size: 0.7rem;
    font-style: italic;
}

.captain-badge {
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
}

/* Button group spacing */
.btn-group .btn {
    margin-left: 0.25rem;
}

.btn-group .btn:first-child {
    margin-left: 0;
}

/* Team header button styling */
.team-a-header .btn-outline-light:hover,
.team-b-header .btn-outline-light:hover {
    background-color: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.4);
}

/* ============================================================================
   ADMIN PANEL STYLES
   ============================================================================ */

/* Admin Panel Specific Styling */
.admin-panel {
    background: linear-gradient(135deg, var(--delft-blue) 0%, var(--silver-lake-blue) 100%);
    padding: 2rem 0;
    margin: -1rem -15px 2rem -15px;
    color: white;
}

/* Admin Tab Styling */
.nav-tabs .nav-link {
    border: 2px solid transparent;
    border-radius: 0.5rem 0.5rem 0 0;
    font-weight: 500;
    color: var(--delft-blue);
    background-color: rgba(255, 255, 255, 0.8);
    margin-right: 0.25rem;
    transition: all 0.3s ease;
}

.nav-tabs .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.9);
    border-color: var(--silver-lake-blue);
    color: var(--delft-blue);
}

.nav-tabs .nav-link.active {
    background-color: white;
    border-color: var(--delft-blue);
    color: var(--delft-blue);
    font-weight: 600;
}

/* Admin Card Styling */
.admin-panel .card {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.admin-panel .card:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.75rem 1.5rem rgba(0, 0, 0, 0.2);
}

.admin-panel .card-header {
    background: linear-gradient(135deg, var(--delft-blue) 0%, var(--silver-lake-blue) 100%);
    border: none;
    font-weight: 600;
}

/* Admin Button Styling */
.admin-panel .btn-success {
    background-color: var(--admin-green);
    border-color: var(--admin-green);
    font-weight: 500;
}

.admin-panel .btn-warning {
    background-color: var(--admin-gold);
    border-color: var(--admin-gold);
    color: #212529;
    font-weight: 500;
}

.admin-panel .btn-info {
    background-color: var(--admin-orange);
    border-color: var(--admin-orange);
    font-weight: 500;
}

/* Sidebar Admin Styling */
.offcanvas .list-group-item {
    border: none;
    border-left: 3px solid transparent;
    transition: all 0.3s ease;
}

.offcanvas .list-group-item:hover {
    background-color: rgba(47, 63, 100, 0.1);
    border-left-color: var(--delft-blue);
    padding-left: 1.25rem;
}

.offcanvas .list-group-item.bg-light {
    background-color: rgba(47, 63, 100, 0.05) !important;
    font-weight: 600;
    color: var(--delft-blue);
}

/* Status Modal Styling */
#statusModal .modal-header {
    background: linear-gradient(135deg, var(--delft-blue) 0%, var(--silver-lake-blue) 100%);
    color: white;
    border-bottom: none;
}

#statusModal .btn-close {
    filter: invert(1);
}

/* Input Group Styling in Admin Panel */
.admin-panel .input-group .form-control {
    border-color: #dee2e6;
    border-right: none;
}

.admin-panel .input-group .btn {
    border-left: none;
    font-weight: 500;
}

/* Info Display Area */
#info-display {
    max-height: 400px;
    overflow-y: auto;
    border: 1px solid #dee2e6;
}

#info-display pre {
    margin: 0;
    white-space: pre-wrap;
    word-wrap: break-word;
    font-size: 0.875rem;
}

/* ============================================================================
   PLAYER LIST STYLES
   ============================================================================ */

.player-team {
    max-height: 400px;
    overflow-y: auto;
}

.player-item {
    background-color: var(--anti-flash-white);
    border: 1px solid #dee2e6 !important;
    transition: all 0.2s ease;
}

.player-item:hover {
    background-color: #f8f9fa;
    border-color: var(--silver-lake-blue) !important;
}

.player-item .form-check-input:checked ~ .player-info {
    color: var(--delft-blue);
}

.player-item .form-check-input:checked {
    background-color: var(--silver-lake-blue);
    border-color: var(--silver-lake-blue);
}

.player-name {
    font-size: 0.95rem;
    color: var(--delft-blue);
}

.player-stats {
    font-size: 0.8rem;
}

.player-stats span {
    display: inline-block;
}

/* Player count badge */
#player-count {
    background-color: var(--persian-red) !important;
}

/* Map dropdown styles */
.map-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    max-height: 300px;
    overflow-y: auto;
}

.map-dropdown-content {
    padding: 0;
}

.map-dropdown-item {
    padding: 0.75rem;
    border-bottom: 1px solid #f8f9fa;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.map-dropdown-item:hover {
    background-color: var(--anti-flash-white);
}

.map-dropdown-item:last-child {
    border-bottom: none;
}

.map-dropdown-item.selected {
    background-color: var(--silver-lake-blue);
    color: white;
}

.map-dropdown-item .map-name {
    font-weight: bold;
    color: var(--delft-blue);
}

.map-dropdown-item.selected .map-name {
    color: white;
}

.map-dropdown-item .map-details {
    font-size: 0.875rem;
    color: #6c757d;
}

.map-dropdown-item.selected .map-details {
    color: rgba(255, 255, 255, 0.8);
}

/* Current map info styling */
#current-map-info {
    font-size: 0.85rem;
    opacity: 0.9;
}

/* Rotation table styling */
/* #rotation-table th {
    background-color: var(--anti-flash-white);
    border-bottom: 2px solid var(--silver-lake-blue);
    color: var(--delft-blue);
    font-weight: 600;
}

#rotation-table tbody tr:hover {
    background-color: var(--anti-flash-white);
} */

/* Floating toast notifications */
.floating-toast {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    border: none;
}

.floating-toast.alert-danger {
    background-color: var(--persian-red);
    color: white;
}

.floating-toast.alert-success {
    background-color: var(--admin-green);
    color: white;
}

.floating-toast .btn-close {
    filter: invert(1);
}

/* Responsive Player List */
@media (max-width: 768px) {
    .player-item {
        padding: 0.75rem !important;
    }
    
    .player-name {
        font-size: 0.9rem;
    }
    
    .player-stats {
        font-size: 0.75rem;
    }
    
    .player-stats span {
        margin-right: 0.5rem !important;
    }
    
    .floating-toast {
        min-width: 250px !important;
        max-width: 90vw !important;
        right: 10px !important;
    }
    
    /* Mobile map dropdown */
    .map-dropdown {
        max-height: 200px;
    }
    
    .map-dropdown-item {
        padding: 0.5rem;
    }
    
    .map-dropdown-item .map-name {
        font-size: 0.9rem;
    }
    
    .map-dropdown-item .map-details {
        font-size: 0.75rem;
    }
    
    /* Mobile current map info */
    #current-map-info {
        font-size: 0.75rem;
        line-height: 1.2;
    }
    
    /* Mobile rotation table */
    .table-responsive {
        font-size: 0.875rem;
    }
    
    #rotation-table th,
    #rotation-table td {
        padding: 0.5rem;
    }
}

/* Responsive Admin Panel */
@media (max-width: 768px) {
    .admin-panel {
        padding: 1rem 0;
    }
    
    .nav-tabs .nav-link {
        font-size: 0.875rem;
        padding: 0.5rem 0.75rem;
    }
    
    .admin-panel .card {
        margin-bottom: 1rem;
    }
    
    .btn-group-vertical .btn {
        margin-bottom: 0.25rem;
    }
}

div.individual-stats {
    display: block;
    padding: 15px;
    text-align: center;
}

/* Tactical Navigation Bar */
.tactical-navbar {
    background: linear-gradient(135deg, #1a2332 0%, #2f3f64 100%) !important;
    border-bottom: 2px solid rgba(98, 144, 195, 0.3);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1030;
}

.tactical-brand {
    color: #b8d4ff !important;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

.tactical-brand:hover {
    color: #8bb4ff !important;
    transform: translateY(-1px);
}

.tactical-nav-btn {
    background: rgba(98, 144, 195, 0.2);
    border: 1px solid rgba(98, 144, 195, 0.4);
    color: #d4e0f7;
    font-weight: 600;
    transition: all 0.3s ease;
}

.tactical-nav-btn:hover {
    background: rgba(98, 144, 195, 0.4);
    border-color: rgba(98, 144, 195, 0.6);
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(98, 144, 195, 0.3);
}

.tactical-username {
    color: #b8d4ff !important;
    font-weight: 600;
    padding: 0.5rem 1rem;
    background: rgba(47, 63, 100, 0.5);
    border-radius: 6px;
    border: 1px solid rgba(98, 144, 195, 0.3);
    cursor: pointer;
    transition: all 0.3s ease;
}

.tactical-username:hover {
    background: rgba(98, 144, 195, 0.4);
    border-color: rgba(98, 144, 195, 0.6);
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(98, 144, 195, 0.3);
}

.tactical-nav-link {
    color: #d4e0f7 !important;
    font-weight: 600;
    padding: 0.5rem 1rem !important;
    background: rgba(220, 53, 69, 0.2);
    border-radius: 6px;
    border: 1px solid rgba(220, 53, 69, 0.4);
    transition: all 0.3s ease;
}

.tactical-nav-link:hover {
    background: rgba(220, 53, 69, 0.4);
    border-color: rgba(220, 53, 69, 0.6);
    color: #ffffff !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(220, 53, 69, 0.3);
}

.tactical-dropdown {
    background: linear-gradient(135deg, #1a2332 0%, #2f3f64 100%);
    border: 1px solid rgba(98, 144, 195, 0.3);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.tactical-dropdown .dropdown-item {
    color: #d4e0f7;
    transition: all 0.2s ease;
}

.tactical-dropdown .dropdown-item:hover {
    background: rgba(98, 144, 195, 0.3);
    color: #ffffff;
}

/* Tactical Sidebar */
.tactical-sidebar {
    background: linear-gradient(180deg, #1a2332 0%, #2f3f64 100%);
    overflow-x: hidden;
}

.tactical-sidebar-header {
    background: linear-gradient(135deg, #2f3f64 0%, #3a4d7a 100%);
    color: #b8d4ff;
    border-bottom: 2px solid rgba(98, 144, 195, 0.4);
}

.tactical-sidebar-section {
    background: rgba(47, 63, 100, 0.6) !important;
    color: #b8d4ff !important;
    border-color: rgba(98, 144, 195, 0.2) !important;
    font-weight: 600;
}

.tactical-sidebar-item {
    background: rgba(26, 35, 50, 0.5) !important;
    color: #d4e0f7 !important;
    border-color: rgba(98, 144, 195, 0.15) !important;
    transition: all 0.2s ease;
}

.tactical-sidebar-item:hover {
    background: rgba(47, 63, 100, 0.6) !important;
    color: #ffffff !important;
    transform: translateX(4px);
    border-left: 3px solid #6290c3;
}

.tactical-sidebar-item.active {
    background: rgba(98, 144, 195, 0.4) !important;
    color: #ffffff !important;
    border-left: 3px solid #8bb4ff;
}

.sidebar-footer {
    margin-top: auto;
    border-top: 2px solid rgba(98, 144, 195, 0.3);
}

.sidebar-logout {
    background: rgba(220, 53, 69, 0.2) !important;
    color: #ff6b7a !important;
    font-weight: 600;
}

.sidebar-logout:hover {
    background: rgba(220, 53, 69, 0.4) !important;
    color: #ffffff !important;
    border-left: 3px solid #dc3545 !important;
}

.tactical-sidebar .offcanvas-body {
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
}

.container-fluid{
    justify-content: flex-start !important;
}

/* Page Titles */
h2.mb-1 {
    color: #ffffff !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.text-muted {
    color: #b8c5db !important;
}

/* ============================================
   TACTICAL THEME - CONSOLIDATED COMPONENTS
   ============================================
   
   This section consolidates all generic tactical styling that was previously
   duplicated across multiple CSS files (ranking.css, matches.css, admin_rcon.css).
   
   Components consolidated:
   - Tactical Cards (.card.mb-4, .match-card, .tactical-card)
   - Tactical Tables (.gun-stats, .match-card .table, .tactical-table)
   - Tactical Table Container (.tactical-table-container)
   - Tactical Tabs (.tactical-tabs)
   - Tactical Buttons (all variants within tactical contexts)
   - Tactical Forms (form-control, form-label within tactical contexts)
   - Level Circles (.level-circle)
   - Team Colors (.team-a, .team-b)
   
   File-specific styles remain in their respective CSS files:
   - ranking.css: Period buttons, filter buttons, map filter modal, player details
   - matches.css: Score displays, event timeline, event cards, match-specific layouts
   - profile.css: Profile header, stat cards, weapon mastery, achievements
   - admin_rcon.css: RCON-specific overrides (minimal, mostly empty now)
   - dashboard.css: Dashboard-specific styling
   ============================================ */

/* Tactical Cards */
.card.mb-4,
.match-card,
.tactical-card,
.tactical-table-container .card {
    transition: all 0.2s ease;
    background: linear-gradient(135deg, rgba(26, 35, 50, 0.8) 0%, rgba(47, 63, 100, 0.8) 100%) !important;
    border: 1px solid rgba(98, 144, 195, 0.3) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
}

.card.mb-4:hover,
.match-card:hover,
.tactical-card:hover,
.tactical-table-container .card:hover {
    box-shadow: 0 8px 24px rgba(98, 144, 195, 0.4), 0 4px 12px rgba(47, 63, 100, 0.2) !important;
    border-color: rgba(98, 144, 195, 0.6) !important;
    transform: translateY(-2px);
}

.card.mb-4 .card-header,
.match-card .card-header,
.tactical-card .card-header,
.tactical-table-container .card .card-header {
    background: linear-gradient(135deg, rgba(47, 63, 100, 0.6) 0%, rgba(58, 77, 122, 0.6) 100%) !important;
    border-bottom: 2px solid rgba(98, 144, 195, 0.3) !important;
    color: #ffffff !important;
    padding: 1rem 1.25rem !important;
}

.card.mb-4 .card-header h5,
.card.mb-4 .card-header h6,
.match-card .card-header h5,
.match-card .card-header h6,
.tactical-card .card-header h5,
.tactical-card .card-header h6,
.card .card-header h5,
.card .card-header h6,
.tactical-table-container .card .card-header h5,
.tactical-table-container .card .card-header h6 {
    color: #ffffff !important;
    margin: 0 !important;
    font-weight: 600 !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5) !important;
}

.card.mb-4 .card-header small,
.match-card .card-header small,
.tactical-card .card-header small,
.tactical-table-container .card .card-header small {
    color: #b8d4ff;
}

.card.mb-4 .card-body,
.match-card .card-body,
.tactical-card .card-body,
.tactical-table-container .card .card-body {
    background: rgba(26, 35, 50, 0.4) !important;
    color: #d4e0f7 !important;
    padding: 1.25rem !important;
}

/* Tactical Table Container */
.tactical-table-container {
    background: linear-gradient(135deg, #1a2332 0%, #2f3f64 100%);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
    border: 1px solid rgba(98, 144, 195, 0.2);
}

/* Tactical Tables */
.gun-stats,
.match-card .table,
.tactical-table {
    background: transparent;
    margin: 0;
    color: #d4e0f7;
}

.gun-stats thead,
.match-card .table thead,
.tactical-table thead {
    background: linear-gradient(135deg, rgba(47, 63, 100, 0.6) 0%, rgba(58, 77, 122, 0.6) 100%);
}

.gun-stats thead th,
.match-card .table thead th,
.tactical-table thead th {
    padding: 1rem 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.85rem;
    border-bottom: 2px solid rgba(98, 144, 195, 0.4);
    vertical-align: middle;
    color: #b8d4ff;
}

.gun-stats tbody tr,
.match-card .table tbody tr,
.tactical-table tbody tr {
    background: rgba(26, 35, 50, 0.3);
    transition: all 0.2s ease;
    border-bottom: 1px solid rgba(98, 144, 195, 0.15);
}

.gun-stats tbody tr:hover,
.match-card .table tbody tr:hover,
.tactical-table tbody tr:hover {
    background: rgba(47, 63, 100, 0.5);
    box-shadow: 0 2px 8px rgba(98, 144, 195, 0.2);
}

.gun-stats tbody tr:nth-child(4n+1),
.gun-stats tbody tr:nth-child(4n+2) {
    background: rgba(26, 35, 50, 0.5);
}

.gun-stats tbody tr:nth-child(4n+1):hover,
.gun-stats tbody tr:nth-child(4n+2):hover {
    background: rgba(47, 63, 100, 0.5);
}

.gun-stats tbody tr {
    cursor: pointer;
}

.gun-stats tbody td,
.match-card .table tbody td,
.tactical-table tbody td {
    padding: 0.875rem 0.75rem;
    color: #d4e0f7 !important;
    border-bottom: 1px solid rgba(98, 144, 195, 0.15);
    vertical-align: middle;
    font-weight: 500;
}

.gun-stats tbody td strong,
.match-card .table tbody td strong,
.tactical-table tbody td strong {
    color: #8bb4ff;
    font-weight: 700;
    font-size: 1.05em;
}

/* Tactical Tabs */
.tactical-tabs {
    border-bottom: 2px solid rgba(98, 144, 195, 0.3) !important;
    margin-bottom: 1.5rem !important;
}

.tactical-tabs .nav-link {
    color: #b8d4ff !important;
    border: none !important;
    border-radius: 8px 8px 0 0 !important;
    background: rgba(47, 63, 100, 0.3) !important;
    padding: 0.75rem 1.5rem !important;
    margin-right: 0.25rem !important;
    font-weight: 500 !important;
    transition: all 0.3s ease !important;
}

.tactical-tabs .nav-link:hover {
    background: rgba(98, 144, 195, 0.3) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
}

.tactical-tabs .nav-link.active {
    background: linear-gradient(135deg, rgba(98, 144, 195, 0.6) 0%, rgba(90, 127, 196, 0.6) 100%) !important;
    color: #ffffff !important;
    border-bottom: 2px solid #6290c3 !important;
    box-shadow: 0 4px 12px rgba(98, 144, 195, 0.3);
}

/* Tactical Buttons */
.tactical-table-container .btn,
.match-card .btn,
.tactical-card .btn {
    font-weight: 500 !important;
    border-radius: 6px !important;
    transition: all 0.3s ease !important;
}

.tactical-table-container .btn-primary,
.match-card .btn-primary,
.tactical-card .btn-primary {
    background: linear-gradient(135deg, #6290c3 0%, #5a7fc4 100%) !important;
    border: 1px solid rgba(98, 144, 195, 0.5) !important;
}

.tactical-table-container .btn-primary:hover,
.match-card .btn-primary:hover,
.tactical-card .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(98, 144, 195, 0.4) !important;
}

.tactical-table-container .btn-success,
.match-card .btn-success,
.tactical-card .btn-success {
    background: linear-gradient(135deg, #4a9d5f 0%, #3d8350 100%) !important;
    border: 1px solid rgba(74, 157, 95, 0.5) !important;
}

.tactical-table-container .btn-success:hover,
.match-card .btn-success:hover,
.tactical-card .btn-success:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(74, 157, 95, 0.4) !important;
}

.tactical-table-container .btn-danger,
.match-card .btn-danger,
.tactical-card .btn-danger {
    background: linear-gradient(135deg, #dc3545 0%, #c82333 100%) !important;
    border: 1px solid rgba(220, 53, 69, 0.5) !important;
}

.tactical-table-container .btn-danger:hover,
.match-card .btn-danger:hover,
.tactical-card .btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4) !important;
}

.tactical-table-container .btn-warning,
.match-card .btn-warning,
.tactical-card .btn-warning {
    background: linear-gradient(135deg, #ffc107 0%, #e0a800 100%) !important;
    border: 1px solid rgba(255, 193, 7, 0.5) !important;
    color: #1a2332 !important;
}

.tactical-table-container .btn-warning:hover,
.match-card .btn-warning:hover,
.tactical-card .btn-warning:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(255, 193, 7, 0.4) !important;
}

.tactical-table-container .btn-info,
.match-card .btn-info,
.tactical-card .btn-info {
    background: linear-gradient(135deg, #17a2b8 0%, #138496 100%) !important;
    border: 1px solid rgba(23, 162, 184, 0.5) !important;
}

.tactical-table-container .btn-info:hover,
.match-card .btn-info:hover,
.tactical-card .btn-info:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(23, 162, 184, 0.4) !important;
}

.tactical-table-container .btn-secondary,
.match-card .btn-secondary,
.tactical-card .btn-secondary {
    background: linear-gradient(135deg, rgba(108, 117, 125, 0.8) 0%, rgba(90, 98, 104, 0.8) 100%) !important;
    border: 1px solid rgba(108, 117, 125, 0.5) !important;
}

.tactical-table-container .btn-secondary:hover,
.match-card .btn-secondary:hover,
.tactical-card .btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(108, 117, 125, 0.4) !important;
}

.tactical-table-container .btn-outline-light,
.match-card .btn-outline-light,
.tactical-card .btn-outline-light {
    background: rgba(26, 35, 50, 0.4) !important;
    border: 1px solid rgba(184, 196, 219, 0.3) !important;
    color: #b8d4ff !important;
}

.tactical-table-container .btn-outline-light:hover,
.match-card .btn-outline-light:hover,
.tactical-card .btn-outline-light:hover {
    background: rgba(98, 144, 195, 0.3) !important;
    border-color: rgba(98, 144, 195, 0.6) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
}

/* Tactical Forms */
.tactical-table-container .form-label,
.match-card .form-label,
.tactical-card .form-label {
    color: #b8d4ff !important;
    font-weight: 500 !important;
    margin-bottom: 0.5rem !important;
}

.tactical-table-container .form-control,
.match-card .form-control,
.tactical-card .form-control {
    background: rgba(26, 35, 50, 0.6) !important;
    border: 1px solid rgba(98, 144, 195, 0.3) !important;
    color: #d4e0f7 !important;
}

.tactical-table-container .form-control:focus,
.match-card .form-control:focus,
.tactical-card .form-control:focus {
    background: rgba(26, 35, 50, 0.8) !important;
    border-color: rgba(98, 144, 195, 0.6) !important;
    box-shadow: 0 0 0 0.2rem rgba(98, 144, 195, 0.25) !important;
    color: #ffffff !important;
}

.tactical-table-container .form-control::placeholder,
.match-card .form-control::placeholder,
.tactical-card .form-control::placeholder {
    color: rgba(184, 196, 219, 0.5) !important;
}

.tactical-table-container select.form-control,
.match-card select.form-control,
.tactical-card select.form-control {
    background: rgba(26, 35, 50, 0.6) !important;
    color: #d4e0f7 !important;
}

.tactical-table-container select.form-control option,
.match-card select.form-control option,
.tactical-card select.form-control option {
    background: #1a2332 !important;
    color: #d4e0f7 !important;
}

.tactical-table-container .text-muted,
.tactical-table-container .text-light,
.match-card .text-muted,
.match-card .text-light,
.tactical-card .text-muted,
.tactical-card .text-light {
    color: #b8c5db !important;
}

.tactical-table-container .badge,
.match-card .badge,
.tactical-card .badge {
    background: linear-gradient(135deg, rgba(98, 144, 195, 0.8) 0%, rgba(90, 127, 196, 0.8) 100%) !important;
    padding: 0.35em 0.65em !important;
    font-weight: 600 !important;
}

/* Level Circles */
.level-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: linear-gradient(135deg, #5a7fc4 0%, #3d5a8f 100%);
    border-radius: 50%;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.95rem;
    box-shadow: 0 3px 8px rgba(90, 127, 196, 0.5);
    border: 2px solid rgba(184, 212, 255, 0.3);
}

/* Team Colors */
.match-card h6.text-primary,
.team-a {
    color: #6290c3 !important;
    font-weight: 600;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.match-card h6.text-danger,
.team-b {
    color: #ff6b7a !important;
    font-weight: 600;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

/* Player Details Expandable Section */
.player-details-container {
    padding: 1.5rem;
    animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.player-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.detail-card {
    background: linear-gradient(135deg, rgba(47, 63, 100, 0.6) 0%, rgba(98, 144, 195, 0.3) 100%);
    border: 1px solid rgba(98, 144, 195, 0.3);
    border-radius: 8px;
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: transform 0.2s, box-shadow 0.2s;
}

.detail-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(98, 144, 195, 0.4);
}

.detail-card.tk-warning {
    border-color: rgba(220, 53, 69, 0.5);
    background: linear-gradient(135deg, rgba(139, 0, 0, 0.3) 0%, rgba(220, 53, 69, 0.2) 100%);
}

.detail-card-header {
    background: rgba(47, 63, 100, 0.7);
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(98, 144, 195, 0.3);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.detail-card-header h4 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: #e0e7ff;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.detail-icon {
    font-size: 1.2rem;
}

.detail-card-body {
    padding: 1rem;
}

.stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(98, 144, 195, 0.15);
}

.stat-row:last-child {
    border-bottom: none;
}

.stat-label {
    color: #b8c5db;
    font-size: 0.9rem;
    font-weight: 500;
}

.stat-value {
    color: #e0e7ff;
    font-size: 1rem;
    font-weight: 700;
    font-family: 'Courier New', monospace;
}

.stat-value.highlight {
    color: #6290c3;
    font-size: 1.2rem;
}

.weapon-stat, .victim-stat {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.6rem 0.8rem;
    margin-bottom: 0.5rem;
    background: rgba(47, 63, 100, 0.4);
    border-radius: 6px;
    border-left: 3px solid #6290c3;
    transition: background 0.2s;
}

.weapon-stat:hover, .victim-stat:hover {
    background: rgba(98, 144, 195, 0.3);
}

.weapon-stat:last-child, .victim-stat:last-child {
    margin-bottom: 0;
}

.weapon-name, .victim-name {
    color: #e0e7ff;
    font-weight: 600;
    font-size: 0.9rem;
}

.weapon-details {
    display: flex;
    gap: 1rem;
}

.weapon-kills, .weapon-headshots {
    color: #b8c5db;
    font-size: 0.85rem;
    font-weight: 500;
}

.victim-count, .tk-count {
    background: rgba(98, 144, 195, 0.4);
    color: #e0e7ff;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-weight: 700;
    font-size: 0.85rem;
    min-width: 35px;
    text-align: center;
}

.tk-count {
    background: rgba(220, 53, 69, 0.5);
    color: #ffebee;
}

.no-data {
    color: #6c7a96;
    font-style: italic;
    font-size: 0.9rem;
    display: block;
    text-align: center;
    padding: 1rem;
}

.score-breakdown {
    background: rgba(47, 63, 100, 0.4);
    border: 1px solid rgba(220, 53, 69, 0.4);
    border-radius: 8px;
    overflow: hidden;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.score-breakdown-header {
    background: rgba(139, 0, 0, 0.3);
    padding: 0.75rem 1rem;
    border-bottom: 1px solid rgba(220, 53, 69, 0.4);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.score-breakdown-header h4 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: #ffcdd2;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.score-messages {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.score-message {
    background: rgba(220, 53, 69, 0.2);
    color: #ffcdd2;
    padding: 0.6rem 1rem;
    border-radius: 6px;
    border-left: 3px solid #dc3545;
    font-weight: 600;
    font-size: 0.9rem;
}