:root {
    --dem-primary:   #1565c0;
    --dem-accent:    #42a5f5;
    --dem-bg:        #0d1b2a;
    --rep-primary:   #b71c1c;
    --rep-accent:    #ef5350;
    --rep-bg:        #1a0a0a;
    --gm-primary:    #4a148c;
    --gm-accent:     #ce93d8;
    --panel-bg:      #1e1e2e;
    --panel-border:  #2e2e4e;
    --text-muted:    #888;
}

body {
    background-color: #0a0a0f;
    color: #e0e0e0;
    font-family: 'Segoe UI', sans-serif;
}

.navbar-brand { font-weight: 700; letter-spacing: 2px; font-size: 1.1rem; }

.panel {
    background: var(--panel-bg);
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    padding: 1rem;
}

.panel-title {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 0.75rem;
}

/* Team-specific overrides applied via data-team attribute */
[data-team="DEM"] .team-accent  { color: var(--dem-accent); }
[data-team="DEM"] .team-bg      { background-color: var(--dem-bg); }
[data-team="DEM"] .navbar       { background-color: var(--dem-primary) !important; }
[data-team="DEM"] .btn-team     { background-color: var(--dem-primary); border-color: var(--dem-primary); color: #fff; }
[data-team="DEM"] .btn-team:hover { background-color: var(--dem-accent); border-color: var(--dem-accent); }

[data-team="REP"] .team-accent  { color: var(--rep-accent); }
[data-team="REP"] .team-bg      { background-color: var(--rep-bg); }
[data-team="REP"] .navbar       { background-color: var(--rep-primary) !important; }
[data-team="REP"] .btn-team     { background-color: var(--rep-primary); border-color: var(--rep-primary); color: #fff; }
[data-team="REP"] .btn-team:hover { background-color: var(--rep-accent); border-color: var(--rep-accent); }

[data-team="GM"] .team-accent   { color: var(--gm-accent); }
[data-team="GM"] .navbar        { background-color: var(--gm-primary) !important; }
[data-team="GM"] .btn-team      { background-color: var(--gm-primary); border-color: var(--gm-primary); color: #fff; }

/* Budget bar */
.budget-display {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 1px;
}

/* News feed */
.news-feed { max-height: 420px; overflow-y: auto; }
.news-item {
    font-size: 0.82rem;
    padding: 0.4rem 0;
    border-bottom: 1px solid var(--panel-border);
    color: #ccc;
}
.news-item:last-child { border-bottom: none; }

/* Map container */
#us-map { width: 100%; height: 420px; }

/* Login tiles */
.team-tile {
    cursor: pointer;
    border: 2px solid var(--panel-border);
    border-radius: 12px;
    padding: 2rem;
    text-align: center;
    transition: all 0.2s;
    background: var(--panel-bg);
}
.team-tile:hover { transform: translateY(-4px); }
.team-tile.dem { border-color: var(--dem-primary); }
.team-tile.dem:hover { background: var(--dem-bg); border-color: var(--dem-accent); }
.team-tile.rep { border-color: var(--rep-primary); }
.team-tile.rep:hover { background: var(--rep-bg); border-color: var(--rep-accent); }
.team-tile.gm  { border-color: var(--gm-primary); }
.team-tile.gm:hover  { background: #1a0a2a; border-color: var(--gm-accent); }
.team-tile .tile-icon { font-size: 3rem; margin-bottom: 0.5rem; }
.team-tile .tile-name { font-size: 1.4rem; font-weight: 700; letter-spacing: 3px; }

/* GM status cards */
.status-card { border-radius: 8px; padding: 1.25rem; }
.status-dem  { background: #0d1b2a; border: 1px solid var(--dem-primary); }
.status-rep  { background: #1a0a0a; border: 1px solid var(--rep-primary); }
.submitted-badge { font-size: 0.75rem; padding: 0.2rem 0.6rem; border-radius: 20px; }

/* Turn indicator */
.turn-badge {
    background: var(--panel-bg);
    border: 1px solid var(--panel-border);
    border-radius: 20px;
    padding: 0.25rem 1rem;
    font-size: 0.8rem;
    letter-spacing: 1px;
}
