:root {
            --bg: #f0f2f5;
            --card-bg: rgba(255,255,255,0.85);
            --card-border: rgba(255,255,255,0.6);
            --text: #1e293b;
            --text-secondary: #64748b;
            --green: #10b981;
            --red: #ef4444;
            --primary: #0f172a;
            --warning: #f59e0b;
            --pause: #3b82f6;
            --shadow: 0 4px 24px rgba(0,0,0,0.06);
            --shadow-lg: 0 8px 32px rgba(0,0,0,0.08);
            --radius: 20px;
            --radius-sm: 14px;
        }

        body.dark {
            --bg: #0a0a0a;
            --card-bg: #1a1a1a;
            --card-border: #2a2a2a;
            --text: #ffffff;
            --text-secondary: #a0a0a0;
            --primary: #3b82f6;
            --shadow: 0 1px 2px rgba(0,0,0,0.3);
            --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.4);
        }

        * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; margin: 0; padding: 0; }
        
        body { 
            font-family: 'Inter', -apple-system, sans-serif; 
            background: linear-gradient(135deg, #e2e8f0 0%, #f0f2f5 50%, #e8ecf1 100%);
            min-height: 100vh;
            margin: 0; 
            padding: 16px; 
            color: var(--text);
            transition: background 0.3s, color 0.3s;
        }
        
        body.dark {
            background: #0a0a0a;
        }
        
        .container { max-width: 640px; margin: 0 auto; }

        .app-header { 
            position: relative;
            text-align: center; 
            padding: 12px 0 20px; 
            width: 100%; 
            min-height: 70px;
        }
        .app-logo { 
            position: absolute;
            left: 50px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .app-logo .material-icons-outlined { 
            font-size: 32px; 
            color: var(--primary); 
        }
        .app-title { 
            font-size: 1.5rem; 
            font-weight: 800; 
            letter-spacing: -0.5px; 
            background: linear-gradient(135deg, #1e293b 0%, #334155 100%); 
            -webkit-background-clip: text; 
            -webkit-text-fill-color: transparent; 
            background-clip: text;
            text-align: center;
        }
        body.dark .app-title { 
            background: none;
            -webkit-text-fill-color: var(--text);
            color: var(--text);
        }
        .app-subtitle { 
            font-size: 0.75rem; 
            color: var(--text-secondary); 
            font-weight: 600; 
            letter-spacing: 0.5px; 
            text-align: center;
            margin-top: 4px;
        }

        .admin-badge { 
            position: fixed; 
            top: 16px; 
            right: 16px; 
            background: var(--red); 
            color: #fff; 
            padding: 6px 14px; 
            border-radius: 20px; 
            font-size: 0.7rem; 
            font-weight: 700; 
            z-index: 1000; 
            box-shadow: 0 1px 2px rgba(0,0,0,0.05);
        }

        .quadras-wrapper { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }

        .quadra-card { 
            background: var(--card-bg);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--card-border);
            border-radius: var(--radius);
            box-shadow: var(--shadow);
            transition: all 0.3s;
            position: relative;
            overflow: hidden;
        }
        
        body.dark .quadra-card {
            backdrop-filter: none;
        }

        .quadra-card::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 4px;
            background: var(--green);
            border-radius: 0 4px 4px 0;
            transition: background 0.3s;
        }

        .quadra-card.ocupada::before { background: var(--red); }
        .quadra-card.pausada::before { background: var(--pause); }

        .quadra-card.ocupada {
            padding: 18px 20px;
        }
        
        .quadra-top {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 12px;
        }
        
        .quadra-status-icon {
            width: 40px;
            height: 40px;
            border-radius: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            flex-shrink: 0;
        }
        
        .quadra-card.ocupada .quadra-status-icon {
            background: rgba(239,68,68,0.12);
            color: var(--red);
        }
        
        .quadra-info-top {
            flex: 1;
        }
        
        .quadra-numero {
            font-size: 0.7rem;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1px;
            color: var(--text-secondary);
        }
        
        .quadra-jogadores {
            font-weight: 600;
            font-size: 0.95rem;
        }
        
        .quadra-body {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 12px;
        }
        
        .quadra-tempo-info { 
            font-size: 0.75rem; 
            color: var(--text-secondary); 
        }
        
        .quadra-timer {
            font-family: 'JetBrains Mono', monospace;
            font-size: 2rem;
            font-weight: 700;
            color: var(--text);
            letter-spacing: 1px;
            flex-shrink: 0;
        }
        
        .quadra-timer.warning { 
            color: var(--red); 
            animation: pulse 1s infinite; 
        }
        
        .pausa-badge {
            display: inline-block;
            background: var(--pause);
            color: #fff;
            padding: 3px 10px;
            border-radius: 12px;
            font-size: 0.65rem;
            font-weight: 700;
            margin-bottom: 8px;
        }
        
        .btn-group {
            display: flex;
            gap: 8px;
        }
        
        .btn-group .btn {
            flex: 1;
            padding: 10px 6px;
            font-size: 0.75rem;
        }
        
        .btn-group-3 {
            display: flex;
            gap: 8px;
            margin-top: 12px;
        }
        
        .btn-group-3 .btn {
            flex: 1;
            padding: 10px 6px;
            font-size: 0.75rem;
        }

        .quadra-card.livre {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            gap: 12px;
            padding: 24px 16px;
        }
        
        .quadra-card.livre .quadra-status-icon {
            width: 56px;
            height: 56px;
            border-radius: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 32px;
            background: rgba(16,185,129,0.12);
            color: var(--green);
        }
        
        .quadra-card.livre .quadra-numero {
            font-size: 0.9rem;
        }
        
        .quadra-card.livre .quadra-jogadores {
            font-size: 1rem;
            color: var(--text-secondary);
        }
        
        .quadra-card.livre .quadra-timer {
            font-size: 2rem;
        }
        
        .quadra-card.livre .btn-chamar {
            margin-top: 4px;
            padding: 10px 24px;
            font-size: 0.85rem;
            background: var(--green);
            min-width: 180px;
        }

        @keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:0.5;} }

        .btn { 
            border: none; 
            border-radius: 30px;
            color: #fff; 
            cursor: pointer; 
            font-weight: 700; 
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
            box-shadow: var(--shadow);
            transition: all 0.2s;
            font-family: 'Inter', sans-serif;
        }
        .btn:active { transform: scale(0.96); }
        .btn-primary { background: var(--green); }
        .btn-warning { background: var(--warning); }
        .btn-danger { background: var(--red); }
        .btn-secondary { background: #64748b; }
        .btn-pause { background: var(--pause); }
        .btn-outline { background: transparent; border: 1px solid var(--card-border); color: var(--text); box-shadow: none; }

        .fila-section {
            background: var(--card-bg);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--card-border);
            border-radius: var(--radius);
            padding: 18px 20px;
            margin-bottom: 16px;
            box-shadow: var(--shadow);
        }
        
        body.dark .fila-section {
            backdrop-filter: none;
        }

        .fila-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 14px;
        }

        .fila-title {
            font-weight: 700;
            font-size: 0.9rem;
            color: var(--text);
            display: flex;
            align-items: center;
            gap: 8px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .fila-count {
            background: var(--primary);
            color: white;
            padding: 4px 12px;
            border-radius: 20px;
            font-size: 0.75rem;
            font-weight: 700;
        }

        .fila-item { 
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 14px;
            border-radius: var(--radius-sm);
            margin-bottom: 8px;
            background: rgba(0,0,0,0.02);
            border: 1px solid transparent;
            transition: all 0.2s;
        }

        body.dark .fila-item {
            background: rgba(255,255,255,0.03);
        }

        .fila-posicao {
            font-weight: 800;
            font-size: 1.1rem;
            color: var(--primary);
            min-width: 28px;
            width: 28px;
            display: inline-block;
            text-align: left;
            background: none !important;
            border: none !important;
            padding: 0 !important;
            border-radius: 0 !important;
        }

        .fila-info { flex: 1; min-width: 0; }
        .fila-nomes { font-weight: 600; font-size: 0.85rem; }
        .fila-detalhes { font-size: 0.7rem; color: var(--text-secondary); display: flex; gap: 10px; flex-wrap: wrap; }
        .fila-previsao { margin-left: auto; text-align: right; flex-shrink: 0; }
        .fila-previsao .quadra-tag { font-size: 0.7rem; font-weight: 700; color: var(--primary); }
        .fila-previsao .hora { font-size: 0.8rem; font-weight: 600; }

        .btn-edit, .btn-remover, .btn-call {
            padding: 6px 10px;
            border-radius: 20px;
            font-size: 0.65rem;
            font-weight: 700;
            cursor: pointer;
            border: none;
            margin-left: 4px;
        }
        .btn-edit { background: var(--warning); color: #fff; }
        .btn-remover { background: rgba(239,68,68,0.15); color: var(--red); }
        .btn-call { background: var(--green); color: #fff; }

        .form-card {
            background: var(--card-bg);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border: 1px solid var(--card-border);
            border-radius: var(--radius);
            padding: 20px;
            box-shadow: var(--shadow-lg);
            margin-bottom: 16px;
        }
        
        body.dark .form-card {
            backdrop-filter: none;
        }

        .form-title {
            font-weight: 700;
            font-size: 0.9rem;
            margin-bottom: 16px;
            color: var(--text);
            display: flex;
            align-items: center;
            gap: 8px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .input-group { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

        input, select { 
            width: 100%; 
            padding: 14px 16px; 
            border: 1.5px solid #e2e8f0; 
            border-radius: var(--radius-sm); 
            font-size: 14px;
            font-family: 'Inter', sans-serif;
            background: white;
            color: #1e293b;
            transition: border-color 0.2s;
            outline: none;
        }

        body.dark input, 
        body.dark select {
            background: #2a2a2a;
            border-color: #3a3a3a;
            color: #ffffff;
        }

        body.dark input::placeholder,
        body.dark select::placeholder {
            color: #888888;
        }

        input:focus, select:focus { border-color: var(--primary); }
        .full-width { grid-column: span 2; }

        .btn-historico { 
            width: 100%; 
            padding: 16px; 
            background: var(--card-bg);
            backdrop-filter: blur(16px);
            border: 1px solid var(--card-border);
            border-radius: var(--radius);
            color: var(--text); 
            font-weight: 700; 
            font-size: 0.9rem; 
            cursor: pointer; 
            display: flex; 
            align-items: center; 
            justify-content: center; 
            gap: 8px; 
            box-shadow: var(--shadow); 
            margin-bottom: 16px; 
        }
        
        body.dark .btn-historico {
            backdrop-filter: none;
        }

        #lista-historico { 
            display: none; 
            background: var(--card-bg);
            backdrop-filter: blur(16px);
            border: 1px solid var(--card-border);
            border-radius: var(--radius);
            padding: 20px; 
            box-shadow: var(--shadow); 
            max-height: 400px; 
            overflow-y: auto; 
            margin-top: 12px; 
        }
        
        body.dark #lista-historico {
            backdrop-filter: none;
        }
        
        .historico-header { 
            display: flex; 
            justify-content: space-between; 
            align-items: center; 
            margin-bottom: 18px; 
            padding-bottom: 12px; 
            border-bottom: 2px solid var(--green); 
        }
        
        .btn-exportar { 
            background: var(--green); 
            color: #fff; 
            border: none; 
            padding: 10px 18px; 
            border-radius: 20px; 
            font-size: 0.75rem; 
            font-weight: 700; 
            cursor: pointer; 
        }
        
        .historico-dia { 
            margin-bottom: 10px; 
            border-radius: var(--radius-sm); 
            overflow: hidden; 
            background: rgba(0,0,0,0.02); 
            border: 1px solid var(--card-border); 
        }
        
        .historico-dia-header { 
            padding: 12px 14px; 
            cursor: pointer; 
            display: flex; 
            justify-content: space-between; 
            align-items: center; 
            font-weight: 600; 
            font-size: 0.8rem; 
        }
        
        .badge-qtd { 
            background: var(--primary); 
            color: #fff; 
            padding: 2px 10px; 
            border-radius: 20px; 
            font-size: 0.7rem; 
        }
        
        .historico-jogos { 
            max-height: 0; 
            overflow: hidden; 
            transition: max-height 0.3s; 
        }
        
        .historico-jogos.expandido { 
            max-height: 500px; 
        }
        
        .historico-jogo-item { 
            padding: 12px 14px; 
            border-bottom: 1px solid var(--card-border); 
            display: flex; 
            justify-content: space-between; 
            align-items: center; 
            font-size: 0.8rem; 
        }
        
        .historico-jogo-nomes { 
            font-weight: 600; 
            margin-bottom: 2px; 
        }
        
        .historico-jogo-horario { 
            font-size: 0.7rem; 
            color: var(--text-secondary); 
        }
        
        .historico-jogo-quadra { 
            background: var(--primary); 
            color: #fff; 
            padding: 3px 10px; 
            border-radius: 20px; 
            font-size: 0.65rem; 
            font-weight: 700; 
        }
        
        .btn-delete-historico { 
            background: transparent; 
            border: none; 
            font-size: 1.2rem; 
            cursor: pointer; 
            opacity: 0.7; 
            color: var(--red); 
        }
        
        .seta { 
            transition: transform 0.2s; 
        }
        
        .seta.expandido { 
            transform: rotate(90deg); 
        }

        .exportar-container { 
            display: flex; 
            gap: 8px; 
            align-items: center; 
        }
        
        .exportar-container select { 
            padding: 8px 12px; 
            border-radius: 20px; 
            border: 1px solid var(--card-border); 
            background: var(--card-bg); 
            color: var(--text); 
            font-size: 0.75rem; 
        }

        .modal-overlay { 
            display: none; 
            position: fixed; 
            top: 0; 
            left: 0; 
            right: 0; 
            bottom: 0; 
            background: rgba(0,0,0,0.5); 
            z-index: 2000; 
            align-items: center; 
            justify-content: center; 
            padding: 20px; 
        }
        
        .modal { 
            background: var(--card-bg); 
            border-radius: var(--radius); 
            padding: 24px; 
            max-width: 500px; 
            width: 100%; 
            box-shadow: var(--shadow-lg); 
            border: 1px solid var(--card-border);
        }
        
        .modal-title { 
            font-weight: 700; 
            font-size: 1.2rem; 
            margin-bottom: 20px; 
            color: var(--text); 
        }
        
        .modal-input { 
            margin-bottom: 14px; 
        }
        
        .modal-input label { 
            display: block; 
            font-size: 0.75rem; 
            font-weight: 600; 
            margin-bottom: 4px; 
            color: var(--text-secondary); 
        }
        
        .modal-actions { 
            display: flex; 
            gap: 10px; 
            margin-top: 20px; 
        }
        
        .modal-actions .btn { 
            flex: 1; 
            padding: 12px; 
        }

        .theme-fab {
            position: fixed;
            bottom: 24px;
            left: 24px;
            width: 48px;
            height: 48px;
            border-radius: 16px;
            background: var(--card-bg);
            backdrop-filter: blur(16px);
            border: 1px solid var(--card-border);
            color: var(--text);
            box-shadow: var(--shadow-lg);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 22px;
            z-index: 1000;
            transition: all 0.2s;
        }
        
        body.dark .theme-fab {
            backdrop-filter: none;
            background: var(--card-bg);
        }
        
        .theme-fab:active { transform: scale(0.95); }

        .app-footer {
            margin-top: 28px;
            padding: 16px 0;
            text-align: center;
            font-size: 0.7rem;
            color: var(--text-secondary);
            font-weight: 500;
            letter-spacing: 0.5px;
            text-transform: uppercase;
            border-top: 1px solid var(--card-border);
        }

        .vazio-state { text-align: center; padding: 24px; color: var(--text-secondary); font-size: 0.85rem; }
        
        @keyframes toastFadeIn { from { opacity: 0; transform: translateX(-50%) translateY(20px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } }
    
/* ===== Redesign estrutural - base comum ===== */
.layout-loading-card {
    min-height: 118px;
    border-radius: 22px;
    background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,.85), rgba(255,255,255,.55));
    background-size: 200% 100%;
    animation: shimmerMove 1.2s infinite;
    border: 1px solid var(--card-border);
    box-shadow: var(--shadow);
}
body.dark .layout-loading-card {
    background: linear-gradient(90deg, rgba(30,41,59,.55), rgba(51,65,85,.8), rgba(30,41,59,.55));
    background-size: 200% 100%;
}
@keyframes shimmerMove {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
.container { max-width: 760px; }
.app-header { padding-bottom: 14px; }
.form-card, .fila-section, .btn-historico, #lista-historico { border-radius: 22px; }
.form-card { padding: 16px; }
input, select { padding: 12px 14px; border-radius: 14px; }
.btn { border-radius: 14px; box-shadow: none; }

body { background:radial-gradient(circle at top right,#1e3a8a,#071426 55%,#020617); color:#e5eefc; }
:root { --card-bg: rgba(15,23,42,.78); --card-border: rgba(96,165,250,.18); --text:#eef6ff; --text-secondary:#9db4d1; --primary:#60a5fa; --shadow:0 14px 38px rgba(2,6,23,.35); --green:#34d399; --red:#fb7185; }
.blue-summary { padding:16px; border-radius:24px; background:linear-gradient(135deg,rgba(37,99,235,.65),rgba(15,23,42,.86)); border:1px solid rgba(147,197,253,.18); margin-bottom:10px; }
.blue-title { font-size:1.25rem; font-weight:900; letter-spacing:-.4px; }
.blue-sub { font-size:.74rem; color:#bfdbfe; margin-top:2px; }
.blue-stack { display:flex; flex-direction:column; gap:9px; }
.blue-panel { background:rgba(15,23,42,.82); border:1px solid rgba(96,165,250,.16); border-radius:22px; padding:13px; box-shadow:0 10px 28px rgba(2,6,23,.22); }
.blue-main { display:flex; align-items:center; gap:11px; }
.blue-badge { width:42px; height:42px; border-radius:15px; display:flex; align-items:center; justify-content:center; background:rgba(251,113,133,.15); color:#fecdd3; font-weight:900; }
.blue-badge.free { background:rgba(52,211,153,.13); color:#bbf7d0; }
.blue-players { font-weight:900; font-size:.96rem; }
.blue-meta { color:var(--text-secondary); font-size:.72rem; margin-top:3px; }
.blue-time { font-size:2rem; font-weight:900; margin-top:10px; color:#e0f2fe; }
.blue-actions { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:10px; }
.blue-actions .btn { padding:8px 3px; font-size:.67rem; }
.blue-panel.free { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.blue-free-btn { padding:10px 14px; }

/* Ajuste visual: formulário e fila acompanham o dashboard azul compacto */
.form-card,
.fila-section,
#lista-historico,
.btn-historico {
    background: rgba(15,23,42,.82);
    border: 1px solid rgba(96,165,250,.16);
    border-radius: 22px;
    box-shadow: 0 10px 28px rgba(2,6,23,.22);
}

.form-card,
.fila-section {
    padding: 13px;
    margin-bottom: 10px;
}

.form-title,
.fila-title {
    color: #e0f2fe;
    font-size: .78rem;
    letter-spacing: .4px;
    font-weight: 900;
}

.input-group {
    gap: 8px;
}

input,
select {
    background: rgba(2,6,23,.26);
    border: 1px solid rgba(96,165,250,.16);
    color: var(--text);
    border-radius: 14px;
}

input::placeholder { color: rgba(157,180,209,.78); }

.form-card .btn-primary.full-width {
    background: linear-gradient(135deg, #2563eb, #38bdf8);
    color: #eff6ff;
    font-size: .8rem;
    font-weight: 900;
    padding: 12px 14px !important;
}

.fila-count {
    background: rgba(96,165,250,.18);
    color: #bfdbfe;
    border: 1px solid rgba(147,197,253,.22);
}

.fila-item {
    background: rgba(2,6,23,.28);
    border: 1px solid rgba(96,165,250,.12);
    border-radius: 16px;
}

.fila-posicao {
    background: rgba(96,165,250,.16);
    color: #bfdbfe;
}

.fila-previsao .quadra-tag { color: #93c5fd; }
.fila-previsao .hora { color: #e0f2fe; }

.btn-historico {
    color: #bfdbfe;
    border-color: rgba(96,165,250,.16);
}

/* Tema final: modo claro real + modo escuro azul compacto */
:root {
    --bg: #f3f6fb;
    --card-bg: #ffffff;
    --card-border: #dbe5f2;
    --text: #0f172a;
    --text-secondary: #64748b;
    --primary: #2563eb;
    --green: #059669;
    --red: #e11d48;
    --warning: #d97706;
    --pause: #2563eb;
    --shadow: 0 10px 28px rgba(15,23,42,.08);
    --shadow-lg: 0 18px 44px rgba(15,23,42,.12);
}

body {
    background:
        radial-gradient(circle at top right, rgba(37,99,235,.14), transparent 34%),
        linear-gradient(135deg, #f8fafc 0%, #eef4fb 52%, #e8eef7 100%) !important;
    color: var(--text) !important;
}

body.dark {
    --bg: #071426;
    --card-bg: rgba(15,23,42,.82);
    --card-border: rgba(96,165,250,.16);
    --text: #eef6ff;
    --text-secondary: #9db4d1;
    --primary: #60a5fa;
    --green: #34d399;
    --red: #fb7185;
    --warning: #fbbf24;
    --pause: #38bdf8;
    --shadow: 0 14px 38px rgba(2,6,23,.35);
    --shadow-lg: 0 20px 52px rgba(2,6,23,.48);
    background: radial-gradient(circle at top right,#1e3a8a,#071426 55%,#020617) !important;
    color: var(--text) !important;
}

.app-logo .material-icons-outlined { color: var(--primary); }
.app-title {
    background: linear-gradient(135deg, #0f172a 0%, #2563eb 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}
body.dark .app-title {
    background: none !important;
    -webkit-text-fill-color: var(--text) !important;
    color: var(--text) !important;
}

.blue-summary {
    background: linear-gradient(135deg, #ffffff, #eef5ff) !important;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--shadow) !important;
}
.blue-title { color: #0f172a !important; }
.blue-sub { color: #64748b !important; }
body.dark .blue-summary {
    background: linear-gradient(135deg,rgba(37,99,235,.65),rgba(15,23,42,.86)) !important;
    border-color: rgba(147,197,253,.18) !important;
}
body.dark .blue-title { color: #eef6ff !important; }
body.dark .blue-sub { color: #bfdbfe !important; }

.quadra-card,
.blue-panel,
.form-card,
.fila-section,
#lista-historico,
.btn-historico,
.modal,
.theme-fab,
.layout-loading-card {
    background: var(--card-bg) !important;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--shadow) !important;
}

.blue-panel {
    border-radius: 22px !important;
}

.blue-badge {
    background: #ffe4e6 !important;
    color: #be123c !important;
}
.blue-badge.free {
    background: #dcfce7 !important;
    color: #047857 !important;
}
body.dark .blue-badge {
    background: rgba(251,113,133,.15) !important;
    color: #fecdd3 !important;
}
body.dark .blue-badge.free {
    background: rgba(52,211,153,.13) !important;
    color: #bbf7d0 !important;
}

.blue-players,
.form-title,
.fila-title {
    color: var(--text) !important;
}
.blue-meta,
.app-subtitle { color: var(--text-secondary) !important; }
.blue-time,
.fila-previsao .hora {
    color: #0f172a !important;
}
body.dark .blue-time,
body.dark .fila-previsao .hora {
    color: #e0f2fe !important;
}

input,
select {
    background: #f8fafc !important;
    border: 1px solid #dbe5f2 !important;
    color: #0f172a !important;
}
input::placeholder { color: #94a3b8 !important; }
body.dark input,
body.dark select {
    background: rgba(2,6,23,.26) !important;
    border-color: rgba(96,165,250,.16) !important;
    color: var(--text) !important;
}
body.dark input::placeholder { color: rgba(157,180,209,.78) !important; }

.form-card .btn-primary.full-width,
.btn-primary {
    background: linear-gradient(135deg, #2563eb, #38bdf8) !important;
    color: #ffffff !important;
}
.btn-secondary { background: #64748b !important; color: #ffffff !important; }
.btn-warning { background: var(--warning) !important; color: #ffffff !important; }
.btn-danger { background: var(--red) !important; color: #ffffff !important; }
.btn-pause { background: var(--pause) !important; color: #ffffff !important; }

.fila-count {
    background: #e0f2fe !important;
    color: #0369a1 !important;
    border: 1px solid #bae6fd !important;
}

.fila-posicao {
    background: none !important;
    border: none !important;
    color: var(--primary) !important;
    font-weight: 800 !important;
    min-width: 28px !important;
    width: 28px !important;
    display: inline-block !important;
    text-align: left !important;
    padding: 0 !important;
    border-radius: 0 !important;
}
.fila-item {
    background: #f8fafc !important;
    border: 1px solid #e2e8f0 !important;
}
.fila-previsao .quadra-tag { color: #2563eb !important; }
.btn-historico { color: #2563eb !important; }
body.dark .fila-count {
    background: rgba(96,165,250,.18) !important;
    color: #bfdbfe !important;
    border-color: rgba(147,197,253,.22) !important;
}

body.dark .fila-posicao {
    background: none !important;
    border: none !important;
    color: var(--primary) !important;
}
body.dark .fila-item {
    background: rgba(2,6,23,.28) !important;
    border-color: rgba(96,165,250,.12) !important;
}
body.dark .fila-previsao .quadra-tag { color: #93c5fd !important; }
body.dark .btn-historico { color: #bfdbfe !important; }

.theme-fab {
    color: var(--primary) !important;
}

.layout-loading-card {
    background: linear-gradient(90deg, #eaf1fb, #ffffff, #eaf1fb) !important;
    background-size: 200% 100% !important;
}
body.dark .layout-loading-card {
    background: linear-gradient(90deg, rgba(30,41,59,.55), rgba(51,65,85,.8), rgba(30,41,59,.55)) !important;
    background-size: 200% 100% !important;
}
/* ===== organização nomes da fila ===== */
.fila-nomes {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.linha-dupla {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.nome-jogador,
.separador {
    white-space: nowrap;
}

.separador {
    margin: 0 4px;
    opacity: 0.7;
}


/* ===== melhorias operacionais admin ===== */
.fila-item.fila-top1 {
    border-color: rgba(37,99,235,.45) !important;
    box-shadow: 0 10px 24px rgba(37,99,235,.12) !important;
}
.fila-item.fila-top2 {
    border-color: rgba(96,165,250,.28) !important;
    background: #f1f7ff !important;
}
body.dark .fila-item.fila-top2 {
    background: rgba(37,99,235,.14) !important;
}
.fila-item.tipo-simples {
    border-left: 4px solid #2563eb !important;
}
.fila-item.tipo-dupla {
    border-left: 4px solid #7c3aed !important;
}
.tipo-jogo-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .3px;
    text-transform: uppercase;
}
.tipo-jogo-badge.simples {
    background: #dbeafe;
    color: #1d4ed8;
}
.tipo-jogo-badge.dupla {
    background: #ede9fe;
    color: #6d28d9;
}
body.dark .tipo-jogo-badge.simples {
    background: rgba(37,99,235,.22);
    color: #bfdbfe;
}
body.dark .tipo-jogo-badge.dupla {
    background: rgba(124,58,237,.24);
    color: #ddd6fe;
}
.blue-panel.tipo-simples {
    border-left: 5px solid #2563eb !important;
}
.blue-panel.tipo-dupla {
    border-left: 5px solid #7c3aed !important;
}
.blue-panel.is-ending {
    border-color: rgba(245,158,11,.55) !important;
    box-shadow: 0 12px 30px rgba(245,158,11,.16) !important;
}
.blue-panel.is-finished {
    border-color: rgba(225,29,72,.55) !important;
    box-shadow: 0 12px 30px rgba(225,29,72,.16) !important;
}
.blue-panel.is-finished .blue-time {
    color: #e11d48 !important;
}
body.dark .blue-panel.is-finished .blue-time {
    color: #fecdd3 !important;
}
.blue-meta.finalizado {
    color: #e11d48 !important;
    font-weight: 900;
}
body.dark .blue-meta.finalizado {
    color: #fecdd3 !important;
}
.blue-actions.finished-actions {
    grid-template-columns: repeat(2, 1fr) !important;
}
.historico-dia-resumo {
    display: block;
    margin-top: 4px;
    font-size: .68rem;
    font-weight: 600;
    color: var(--text-secondary);
}


    

/* ===== fila admin em card vertical com ações embaixo ===== */
.fila-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    padding: 14px !important;
    border-radius: 18px !important;
}

.fila-topo-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.fila-topo-card .fila-posicao {
    width: auto !important;
    min-width: 0 !important;
    font-size: 1.45rem !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center;
}

.fila-item.fila-top1 {
    border-left-width: 6px !important;
}

.fila-item.fila-top2 {
    border-left-width: 5px !important;
}

.fila-item .fila-nomes {
    font-size: 1rem !important;
    font-weight: 850 !important;
    line-height: 1.28 !important;
    color: var(--text) !important;
    gap: 3px !important;
}

.fila-item .linha-dupla {
    gap: 0;
    min-width: 0;
}

.fila-item .nome-jogador {
    white-space: normal !important;
    overflow-wrap: anywhere;
}

.fila-item .separador {
    white-space: nowrap !important;
    opacity: .65;
}

.fila-meta-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
}

.fila-meta-row .fila-previsao {
    margin-left: 0 !important;
    text-align: center !important;
    flex-shrink: 0;
    background: #eef6ff;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    padding: 7px 11px;
    min-width: 74px;
}

body.dark .fila-meta-row .fila-previsao {
    background: rgba(37,99,235,.16);
    border-color: rgba(147,197,253,.22);
}

.fila-meta-row .fila-previsao .quadra-tag {
    font-size: .72rem !important;
    font-weight: 900 !important;
    line-height: 1.05;
}

.fila-meta-row .fila-previsao .hora {
    font-size: 1rem !important;
    font-weight: 900 !important;
    line-height: 1.1;
}

.fila-meta-row .fila-detalhes {
    display: flex !important;
    flex-wrap: wrap;
    gap: 6px 10px !important;
    font-size: .78rem !important;
    color: var(--text-secondary) !important;
}

.fila-actions {
    display: grid !important;
    grid-template-columns: 1.2fr 1fr 1fr;
    gap: 8px !important;
    margin-top: 2px;
}

.fila-actions button {
    margin-left: 0 !important;
    width: 100%;
    min-height: 42px;
    border-radius: 14px !important;
    font-size: 1rem !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fila-actions .btn-call {
    font-size: 1.05rem !important;
}

@media (min-width: 520px) {
    .fila-actions {
        grid-template-columns: 1fr 1fr 1fr;
    }
}



/* ===== ajuste compacto dos cards da fila ===== */
.fila-section .fila-item {
    padding: 10px 12px !important;
    border-radius: 14px !important;
    gap: 6px !important;
}

.fila-section .fila-topo {
    margin-bottom: 0 !important;
}

.fila-section .fila-posicao {
    font-size: 1rem !important;
    line-height: 1.1 !important;
}

.fila-section .badge-tipo {
    font-size: 0.62rem !important;
    padding: 3px 7px !important;
    line-height: 1 !important;
}

.fila-section .fila-nomes {
    font-size: 0.84rem !important;
    line-height: 1.18 !important;
    gap: 1px !important;
}

.fila-section .linha-dupla {
    min-height: 0 !important;
    line-height: 1.18 !important;
}

.fila-section .fila-previsao {
    font-size: 0.78rem !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.fila-section .fila-detalhes {
    font-size: 0.68rem !important;
    gap: 8px !important;
    line-height: 1.2 !important;
}

.fila-section .fila-actions {
    gap: 6px !important;
    margin-top: 3px !important;
}

.fila-section .fila-actions button,
.fila-section .btn-call,
.fila-section .btn-edit,
.fila-section .btn-remover {
    padding: 6px 0 !important;
    min-height: 30px !important;
    border-radius: 10px !important;
    font-size: 0.7rem !important;
}

/* === NOVO CSS (cola aqui) === */

.fila-meta-row.linha-unica {
    display: flex !important;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.fila-meta-row.linha-unica .fila-previsao {
    padding: 4px 8px !important;
    border-radius: 10px !important;
    font-size: 0.75rem !important;
}

.fila-meta-row.linha-unica .fila-detalhes {
    font-size: 0.7rem !important;
    gap: 6px !important;
}


/* === ajuste final: meta da fila em linha única compacta === */
.fila-meta-row.linha-unica {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    flex-wrap: wrap !important;
}

.fila-meta-row.linha-unica .fila-previsao {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 4px 6px !important;
    width: 100% !important;
    margin-left: 0 !important;
    text-align: left !important;
    padding: 4px 8px !important;
    border-radius: 10px !important;
    font-size: 0.7rem !important;
    line-height: 1.2 !important;
}

.fila-meta-row.linha-unica .fila-previsao .quadra-tag,
.fila-meta-row.linha-unica .fila-previsao .hora {
    display: inline !important;
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
}

.fila-meta-row.linha-unica .fila-chegada,
.fila-meta-row.linha-unica .fila-ql,
.fila-meta-row.linha-unica .meta-separador {
    font-size: 0.68rem !important;
    color: var(--text-secondary) !important;
    line-height: 1.2 !important;
}

.fila-section .fila-actions {
    margin-top: 2px !important;
}

.fila-section .fila-actions button,
.fila-section .btn-call,
.fila-section .btn-edit,
.fila-section .btn-remover {
    padding: 4px 0 !important;
    min-height: 26px !important;
    font-size: 0.65rem !important;
}



/* ===== tempo relativo da previsão da fila ===== */
.tempo-relativo {
    font-size: 0.68rem !important;
    font-weight: 800 !important;
    color: var(--text-secondary) !important;
    line-height: 1.2 !important;
}



/* =========================================================
   ADMIN - PALETA DO USER
   Apenas cores: claro branco/verde e escuro all black.
   Estrutura, lógica e disposição permanecem iguais.
   ========================================================= */
:root {
    --bg: #f4f7f3;
    --card-bg: #ffffff;
    --card-border: #dbe7dc;
    --text: #17231c;
    --text-secondary: #637267;
    --green: #2f8f5b;
    --red: #c2414b;
    --primary: #2f8f5b;
    --warning: #b7791f;
    --pause: #4f7f62;
    --shadow: 0 8px 22px rgba(23, 35, 28, .07);
    --shadow-lg: 0 14px 34px rgba(23, 35, 28, .11);
}

body {
    background:
        radial-gradient(circle at top right, rgba(47,143,91,.10), transparent 34%),
        linear-gradient(135deg, #fbfdfb 0%, #f2f7f1 52%, #eaf2ea 100%) !important;
    color: var(--text) !important;
}

.app-logo {
    background: rgba(47,143,91,.08) !important;
    border-color: rgba(47,143,91,.20) !important;
    box-shadow: none !important;
}

.app-logo .material-icons-outlined { color: var(--primary) !important; }

.app-title {
    background: linear-gradient(135deg, var(--text), var(--primary)) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

.app-subtitle,
.blue-sub,
.blue-meta,
.fila-detalhes,
.historico-jogo-horario,
.historico-dia-resumo,
.tempo-relativo {
    color: var(--text-secondary) !important;
}

.quadra-card,
.blue-panel,
.blue-summary,
.form-card,
.fila-section,
#lista-historico,
.btn-historico,
.modal,
.theme-fab,
.layout-loading-card,
.historico-dia {
    background: var(--card-bg) !important;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--shadow) !important;
}

.quadra-card::before,
.blue-badge.free,
.quadra-card.livre .quadra-status-icon {
    box-shadow: none !important;
}

.quadra-card::before { background: var(--green) !important; }
.quadra-card.ocupada::before { background: var(--red) !important; }
.quadra-card.pausada::before { background: var(--pause) !important; }

.blue-title,
.blue-players,
.form-title,
.fila-title,
.fila-nomes,
.historico-dia-header,
.historico-jogo-nomes,
.modal-title,
.quadra-jogadores {
    color: var(--text) !important;
}

.blue-time,
.quadra-timer,
.fila-previsao .hora {
    color: var(--text) !important;
}

.blue-badge.free,
.quadra-card.livre .quadra-status-icon {
    background: rgba(47,143,91,.11) !important;
    color: var(--green) !important;
    border: 1px solid rgba(47,143,91,.20) !important;
}

.blue-badge,
.quadra-card.ocupada .quadra-status-icon {
    background: rgba(194,65,75,.11) !important;
    color: var(--red) !important;
    border: 1px solid rgba(194,65,75,.22) !important;
}

.fila-count,
.badge-qtd,
.historico-jogo-quadra,
.fila-previsao,
.tipo-jogo-badge.simples {
    background: rgba(47,143,91,.13) !important;
    color: var(--primary) !important;
    border: 1px solid rgba(47,143,91,.24) !important;
    box-shadow: none !important;
}

.tipo-jogo-badge.dupla {
    background: rgba(79,127,98,.13) !important;
    color: #3f7f55 !important;
    border: 1px solid rgba(79,127,98,.24) !important;
}

.fila-item {
    background: rgba(47,143,91,.045) !important;
    border-color: var(--card-border) !important;
    box-shadow: none !important;
}

.fila-item.fila-top1 { border-color: rgba(47,143,91,.32) !important; border-left-color: var(--green) !important; }
.fila-item.fila-top2 { border-color: rgba(183,121,31,.28) !important; border-left-color: var(--warning) !important; }
.fila-item.tipo-simples { border-left-color: var(--green) !important; }
.fila-item.tipo-dupla { border-left-color: #4f7f62 !important; }
.blue-panel.tipo-simples { border-left-color: var(--green) !important; }
.blue-panel.tipo-dupla { border-left-color: #4f7f62 !important; }

.blue-panel.is-ending {
    border-color: rgba(183,121,31,.36) !important;
    box-shadow: 0 10px 24px rgba(183,121,31,.10) !important;
}

.blue-panel.is-finished {
    border-color: rgba(194,65,75,.34) !important;
    box-shadow: 0 10px 24px rgba(194,65,75,.10) !important;
}

.blue-panel.is-finished .blue-time,
.blue-meta.finalizado {
    color: var(--red) !important;
}

input,
select,
.exportar-container select {
    background: #fbfdfb !important;
    border: 1px solid #dbe7dc !important;
    color: #17231c !important;
}

input::placeholder { color: #8a988e !important; }

input:focus,
select:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px rgba(47,143,91,.14) !important;
}

.btn-primary,
.form-card .btn-primary.full-width,
.btn-call,
.btn-exportar,
.quadra-card.livre .btn-chamar {
    background: linear-gradient(135deg, #2f8f5b, #3f7f55) !important;
    border: 1px solid rgba(47,143,91,.22) !important;
    box-shadow: 0 8px 18px rgba(47,143,91,.14) !important;
    color: #ffffff !important;
}

.btn-warning,
.btn-edit {
    background: linear-gradient(135deg, #b7791f, #d1942f) !important;
    color: #ffffff !important;
}

.btn-danger,
.btn-remover {
    background: rgba(194,65,75,.13) !important;
    color: var(--red) !important;
}

.btn-pause { background: #4f7f62 !important; color: #ffffff !important; }
.btn-secondary { background: #637267 !important; color: #ffffff !important; }
.btn-outline { border-color: var(--card-border) !important; color: var(--text) !important; }

.historico-header {
    border-bottom-color: var(--green) !important;
}

.fila-posicao,
.fila-previsao .quadra-tag,
.btn-historico,
.theme-fab,
.app-logo .material-icons-outlined {
    color: var(--primary) !important;
}

.admin-badge {
    background: var(--red) !important;
    color: #ffffff !important;
}

.layout-loading-card {
    background: linear-gradient(90deg, #edf5ef, #ffffff, #edf5ef) !important;
    background-size: 200% 100% !important;
}

/* Escuro: mesma paleta all black do USER */
body.dark {
    --bg: #000000;
    --card-bg: #101010;
    --card-border: #242424;
    --text: #f5f5f5;
    --text-secondary: #a3a3a3;
    --green: #22c55e;
    --red: #ef4444;
    --primary: #e5e5e5;
    --warning: #f59e0b;
    --pause: #737373;
    --shadow: 0 10px 26px rgba(0,0,0,.45);
    --shadow-lg: 0 16px 38px rgba(0,0,0,.55);
    background: #000000 !important;
    color: var(--text) !important;
}

body.dark .app-logo {
    background: #111111 !important;
    border-color: #2a2a2a !important;
    box-shadow: none !important;
}

body.dark .app-title {
    background: none !important;
    -webkit-text-fill-color: #f5f5f5 !important;
    color: #f5f5f5 !important;
}

body.dark .quadra-card,
body.dark .blue-panel,
body.dark .blue-summary,
body.dark .form-card,
body.dark .fila-section,
body.dark #lista-historico,
body.dark .btn-historico,
body.dark .modal,
body.dark .theme-fab,
body.dark .layout-loading-card,
body.dark .historico-dia {
    background: #101010 !important;
    border-color: #242424 !important;
    box-shadow: 0 10px 26px rgba(0,0,0,.45) !important;
}

body.dark .quadra-card::before,
body.dark .quadra-card.ocupada::before,
body.dark .quadra-card.pausada::before {
    box-shadow: none !important;
}

body.dark .blue-badge.free,
body.dark .quadra-card.livre .quadra-status-icon {
    background: #171717 !important;
    border-color: #2a2a2a !important;
    color: #22c55e !important;
}

body.dark .blue-badge,
body.dark .quadra-card.ocupada .quadra-status-icon {
    background: #171717 !important;
    border-color: #2a2a2a !important;
    color: #ef4444 !important;
}

body.dark .fila-item {
    background: #0b0b0b !important;
    border-color: #242424 !important;
    box-shadow: none !important;
}

body.dark .fila-item.fila-top1 { border-left-color: #22c55e !important; }
body.dark .fila-item.fila-top2 { border-left-color: #f59e0b !important; }
body.dark .fila-item.tipo-simples { border-left-color: #22c55e !important; }
body.dark .fila-item.tipo-dupla { border-left-color: #737373 !important; }
body.dark .blue-panel.tipo-simples { border-left-color: #22c55e !important; }
body.dark .blue-panel.tipo-dupla { border-left-color: #737373 !important; }

body.dark .fila-count,
body.dark .badge-qtd,
body.dark .historico-jogo-quadra,
body.dark .fila-previsao,
body.dark .tipo-jogo-badge.simples,
body.dark .tipo-jogo-badge.dupla {
    background: #181818 !important;
    color: #e5e5e5 !important;
    border-color: #2a2a2a !important;
}

body.dark input,
body.dark select,
body.dark .exportar-container select {
    background: #090909 !important;
    border-color: #2a2a2a !important;
    color: #f5f5f5 !important;
    box-shadow: none !important;
}

body.dark input::placeholder { color: #737373 !important; }

body.dark input:focus,
body.dark select:focus {
    border-color: #525252 !important;
    box-shadow: 0 0 0 3px rgba(255,255,255,.08) !important;
}

body.dark .btn-primary,
body.dark .form-card .btn-primary.full-width,
body.dark .btn-call,
body.dark .btn-exportar,
body.dark .quadra-card.livre .btn-chamar {
    background: #166534 !important;
    border-color: #166534 !important;
    box-shadow: none !important;
    color: #ffffff !important;
}

body.dark .btn-warning,
body.dark .btn-edit {
    background: #b45309 !important;
    color: #ffffff !important;
}

body.dark .btn-danger,
body.dark .btn-remover {
    background: #2a1515 !important;
    color: #ef4444 !important;
}

body.dark .btn-pause,
body.dark .btn-secondary {
    background: #1f1f1f !important;
    border-color: #333333 !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

body.dark .btn-outline {
    background: transparent !important;
    border-color: #333333 !important;
    color: #f5f5f5 !important;
}

body.dark .fila-posicao,
body.dark .fila-previsao .quadra-tag,
body.dark .theme-fab,
body.dark .btn-historico,
body.dark .app-logo .material-icons-outlined {
    color: #e5e5e5 !important;
}

body.dark .layout-loading-card {
    background: linear-gradient(90deg, #101010, #181818, #101010) !important;
    background-size: 200% 100% !important;
}



/* =========================================================
   AJUSTE ADMIN: jogo simples sempre em uma linha
   - Fila: os dois nomes ficam na mesma linha
   - Cards das quadras: nomes de simples não quebram linha
   - Duplas continuam em duas linhas quando formatadas
   ========================================================= */
.fila-item.tipo-simples .fila-nomes,
.blue-panel.tipo-simples .blue-players {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.18 !important;
}

.fila-item.tipo-simples .nome-jogador,
.fila-item.tipo-simples .separador {
    display: inline !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
}

.fila-item.tipo-dupla .fila-nomes {
    display: flex !important;
    flex-direction: column !important;
}

.fila-item.tipo-dupla .linha-dupla {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.16 !important;
}

.fila-item.tipo-dupla .nome-jogador,
.fila-item.tipo-dupla .separador {
    display: inline !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
}



/* =========================================================
   CONTROLE WHATSAPP - ADMIN
   Liga/desliga o aviso no USER e mostra botão só para #1/#2.
   ========================================================= */
.admin-config-card {
    background: var(--card-bg) !important;
    border: 1px solid var(--card-border) !important;
    border-radius: 18px !important;
    box-shadow: var(--shadow) !important;
    padding: 10px 12px !important;
    margin: 0 0 10px !important;
}
.admin-config-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.admin-config-label {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.admin-config-title {
    font-size: .78rem;
    font-weight: 900;
    color: var(--text);
    text-transform: uppercase;
    letter-spacing: .4px;
}
.admin-config-sub {
    font-size: .68rem;
    color: var(--text-secondary);
    line-height: 1.2;
}
.btn-config-toggle {
    border: none;
    border-radius: 12px;
    padding: 9px 10px;
    font-size: .72rem;
    font-weight: 900;
    cursor: pointer;
    white-space: nowrap;
    background: rgba(47,143,91,.13);
    color: var(--green);
    border: 1px solid rgba(47,143,91,.24);
}
.btn-config-toggle.off {
    background: rgba(194,65,75,.10) !important;
    color: var(--red) !important;
    border-color: rgba(194,65,75,.24) !important;
}
.btn-whatsapp {
    background: #16a34a !important;
    color: #fff !important;
}
body.dark .btn-whatsapp {
    background: #166534 !important;
    color: #fff !important;
}
.fila-actions {
    grid-template-columns: repeat(auto-fit, minmax(64px, 1fr)) !important;
}
@media (max-width: 430px) {
    .admin-config-row { align-items: stretch; flex-direction: column; }
    .btn-config-toggle { width: 100%; }
}



/* =========================================================
   CONTROLE DE QUADRAS ATIVAS - ADMIN
   Permite ativar/desativar Q4/Q5 sem mexer no HTML.
   ========================================================= */
.quadras-config-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    margin-top: 8px;
}
.btn-quadra-toggle {
    border: 1px solid rgba(47,143,91,.24);
    background: rgba(47,143,91,.13);
    color: var(--green);
    border-radius: 12px;
    padding: 8px 6px;
    font-size: .68rem;
    font-weight: 900;
    cursor: pointer;
    line-height: 1.15;
}
.btn-quadra-toggle.off {
    background: rgba(148,163,184,.10) !important;
    color: var(--text-secondary) !important;
    border-color: var(--card-border) !important;
}
body.dark .btn-quadra-toggle {
    background: #12351f !important;
    color: #86efac !important;
    border-color: #1f5a35 !important;
}
body.dark .btn-quadra-toggle.off {
    background: #171717 !important;
    color: #a3a3a3 !important;
    border-color: #2a2a2a !important;
}
@media (max-width: 430px) {
    .quadras-config-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* =========================================================
   MENU ADMIN (≡) - funções ocasionais escondidas
   ========================================================= */
.admin-menu-fab {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    color: var(--text);
    box-shadow: var(--shadow-lg);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    z-index: 1600;
    transition: transform .2s, opacity .2s;
}
.admin-menu-fab:active { transform: scale(.95); }
.admin-menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.42);
    backdrop-filter: blur(2px);
    z-index: 2100;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
}
.admin-menu-overlay.aberto {
    opacity: 1;
    pointer-events: auto;
}
.admin-menu-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: min(390px, 92vw);
    height: 100vh;
    background: var(--card-bg);
    border-left: 1px solid var(--card-border);
    box-shadow: -18px 0 46px rgba(0,0,0,.20);
    z-index: 2200;
    transform: translateX(105%);
    transition: transform .24s ease;
    padding: 18px 16px 24px;
    overflow-y: auto;
}
.admin-menu-drawer.aberto { transform: translateX(0); }
.admin-menu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--card-border);
}
.admin-menu-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .9rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .45px;
    color: var(--text);
}
.admin-menu-close {
    width: 38px;
    height: 38px;
    border: 1px solid var(--card-border);
    border-radius: 12px;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.admin-menu-section-title {
    margin: 14px 2px 8px;
    font-size: .72rem;
    font-weight: 900;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: .5px;
}
.admin-menu-drawer .admin-config-card,
.admin-menu-drawer .btn-historico,
.admin-menu-drawer #lista-historico {
    margin-bottom: 10px !important;
}
.admin-menu-drawer .btn-historico {
    width: 100% !important;
}
body.dark .admin-menu-fab,
body.dark .admin-menu-drawer {
    background: #101010 !important;
    border-color: #242424 !important;
    color: #f5f5f5 !important;
}
body.dark .admin-menu-overlay { background: rgba(0,0,0,.72); }
@media (max-width: 430px) {
    .admin-menu-fab {
        right: 18px;
        bottom: 24px;
    }
    .admin-menu-drawer {
        width: 94vw;
        padding: 16px 14px 22px;
    }
}



/* =========================================================
   MODAL BONITO - WHATSAPP ADMIN
   Substitui confirm/prompt nativo do navegador no cadastro.
   ========================================================= */
.whatsapp-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 3500;
    padding: 20px;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    align-items: center;
    justify-content: center;
}
.whatsapp-modal-card {
    width: min(420px, 100%);
    background: var(--card-bg);
    color: var(--text);
    border: 1px solid var(--card-border);
    border-radius: 24px;
    box-shadow: var(--shadow-lg);
    padding: 20px;
}
.whatsapp-modal-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(47,143,91,.12);
    color: var(--green);
    font-size: 1.45rem;
    margin-bottom: 12px;
}
.whatsapp-modal-title {
    font-size: 1.08rem;
    font-weight: 900;
    color: var(--text);
    margin-bottom: 6px;
    letter-spacing: -.2px;
}
.whatsapp-modal-text {
    font-size: .86rem;
    line-height: 1.4;
    color: var(--text-secondary);
    margin-bottom: 14px;
}
.whatsapp-modal-input-wrap {
    display: none;
    margin: 10px 0 14px;
}
.whatsapp-modal-input-wrap.visivel { display: block; }
.whatsapp-modal-input {
    width: 100%;
    padding: 13px 14px !important;
    border-radius: 14px !important;
    font-size: .95rem !important;
}
.whatsapp-modal-hint {
    display: block;
    margin-top: 7px;
    color: var(--text-secondary);
    font-size: .68rem;
    line-height: 1.35;
}
.whatsapp-modal-error {
    display: none;
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(194,65,75,.10);
    color: var(--red);
    border: 1px solid rgba(194,65,75,.22);
    font-size: .72rem;
    font-weight: 700;
}
.whatsapp-modal-error.visivel { display: block; }
.whatsapp-modal-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 8px;
}
.whatsapp-modal-actions button {
    min-height: 42px;
    border-radius: 14px;
    border: none;
    cursor: pointer;
    font-weight: 900;
    font-family: 'Inter', sans-serif;
}
.whatsapp-modal-cancel {
    background: transparent;
    color: var(--text);
    border: 1px solid var(--card-border) !important;
}
.whatsapp-modal-confirm {
    background: linear-gradient(135deg, #2f8f5b, #3f7f55);
    color: #fff;
}
body.dark .whatsapp-modal-overlay { background: rgba(0,0,0,.78); }
body.dark .whatsapp-modal-card {
    background: #101010;
    border-color: #242424;
    box-shadow: 0 18px 42px rgba(0,0,0,.62);
}
body.dark .whatsapp-modal-icon {
    background: #171717;
    border: 1px solid #2a2a2a;
    color: #22c55e;
}
body.dark .whatsapp-modal-confirm { background: #166534; }
body.dark .whatsapp-modal-cancel {
    border-color: #333333 !important;
    color: #f5f5f5;
}


/* =========================================================
   MODAIS GERAIS DO ADMIN - substitui alert/confirm/prompt
   ========================================================= */
.admin-modal-overlay {
    position: fixed;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0,0,0,.48);
    backdrop-filter: blur(4px);
    z-index: 10000;
}
.admin-modal-card {
    width: min(420px, 100%);
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 22px;
    box-shadow: var(--shadow-lg);
    padding: 20px;
    color: var(--text);
}
.admin-modal-icon {
    width: 44px;
    height: 44px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    background: rgba(47,143,91,.12);
    color: var(--primary);
    font-size: 1.25rem;
    font-weight: 900;
}
.admin-modal-title {
    font-size: 1.05rem;
    line-height: 1.2;
    font-weight: 900;
    margin-bottom: 8px;
    color: var(--text);
}
.admin-modal-text {
    font-size: .86rem;
    line-height: 1.45;
    color: var(--text-secondary);
    white-space: pre-line;
}
.admin-modal-input {
    width: 100%;
    margin-top: 14px;
    padding: 13px 14px !important;
    border-radius: 14px !important;
}
.admin-modal-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 18px;
}
.admin-modal-actions.single {
    grid-template-columns: 1fr;
}
.admin-modal-btn {
    border: none;
    border-radius: 14px;
    min-height: 42px;
    padding: 10px 12px;
    font-size: .82rem;
    font-weight: 900;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
}
.admin-modal-cancel {
    background: transparent;
    border: 1px solid var(--card-border);
    color: var(--text);
}
.admin-modal-confirm {
    background: linear-gradient(135deg, #2f8f5b, #3f7f55);
    color: #fff;
}
.admin-modal-danger {
    background: #991b1b;
    color: #fff;
}
body.dark .admin-modal-overlay { background: rgba(0,0,0,.72); }
body.dark .admin-modal-card { background: #101010; border-color: #242424; }
body.dark .admin-modal-icon { background: #171717; color: #e5e5e5; border: 1px solid #2a2a2a; }
body.dark .admin-modal-cancel { border-color: #333; color: #f5f5f5; }
body.dark .admin-modal-confirm { background: #166534; }



/* =========================================================
   AJUSTE FINAL: alinhamento dos botões dos modais ADMIN
   Centraliza textos como Cancelar/Confirmar/OK em todos os popups.
   ========================================================= */
.admin-modal-actions,
.whatsapp-modal-actions,
.modal-actions {
    align-items: stretch !important;
}

.admin-modal-btn,
.whatsapp-modal-actions button,
.modal-actions .btn,
.modal-actions button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.15 !important;
    min-height: 42px !important;
    padding: 10px 12px !important;
    width: 100% !important;
    white-space: normal !important;
}

.admin-modal-cancel,
.whatsapp-modal-cancel,
.btn-outline {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
}

.admin-modal-actions.single .admin-modal-btn {
    width: 100% !important;
}


/* =========================================================
   LOGIN ADMIN CUSTOMIZADO
   Substitui o prompt nativo do navegador.
   ========================================================= */
body.admin-locked {
    overflow: hidden !important;
}
body.admin-locked > .admin-badge,
body.admin-locked > .container,
body.admin-locked > .app-footer,
body.admin-locked > .theme-fab,
body.admin-locked > .side-menu-overlay,
body.admin-locked > .admin-side-menu,
body.admin-locked > .whatsapp-modal-overlay,
body.admin-locked > .admin-modal-overlay,
body.admin-locked > .modal-overlay {
    display: none !important;
}
.admin-login-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background:
        radial-gradient(circle at top right, rgba(47,143,91,.14), transparent 34%),
        linear-gradient(135deg, #fbfdfb 0%, #f2f7f1 52%, #eaf2ea 100%);
}
body.admin-locked .admin-login-overlay {
    display: flex;
}
body.dark .admin-login-overlay {
    background: #000000;
}
.admin-login-card {
    width: 100%;
    max-width: 390px;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 24px;
    box-shadow: var(--shadow-lg);
    padding: 22px;
    text-align: center;
}
.admin-login-icon {
    width: 58px;
    height: 58px;
    margin: 0 auto 14px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(47,143,91,.12);
    border: 1px solid rgba(47,143,91,.24);
    color: var(--primary);
}
.admin-login-icon .material-icons-outlined {
    font-size: 32px;
}
.admin-login-title {
    font-size: 1.18rem;
    font-weight: 900;
    color: var(--text);
    letter-spacing: -.2px;
    margin-bottom: 4px;
}
.admin-login-subtitle {
    font-size: .78rem;
    color: var(--text-secondary);
    line-height: 1.35;
    margin-bottom: 16px;
}
.admin-login-input {
    width: 100%;
    margin-bottom: 8px;
    text-align: center;
    font-weight: 800;
    letter-spacing: .2px;
}
.admin-login-error {
    display: none;
    margin: 0 0 12px;
    padding: 8px 10px;
    border-radius: 12px;
    background: rgba(194,65,75,.10);
    border: 1px solid rgba(194,65,75,.24);
    color: var(--red);
    font-size: .74rem;
    font-weight: 800;
}
.admin-login-error.show {
    display: block;
}
.admin-login-actions {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 8px;
    margin-top: 10px;
}
.admin-login-btn {
    min-height: 44px;
    border-radius: 14px;
    border: none;
    cursor: pointer;
    font-weight: 900;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-family: 'Inter', sans-serif;
}
.admin-login-cancel {
    background: transparent;
    border: 1px solid var(--card-border);
    color: var(--text);
}
.admin-login-confirm {
    background: linear-gradient(135deg, #2f8f5b, #3f7f55);
    color: #fff;
    box-shadow: 0 8px 18px rgba(47,143,91,.14);
}
body.dark .admin-login-card {
    background: #101010;
    border-color: #242424;
}
body.dark .admin-login-icon {
    background: #171717;
    border-color: #2a2a2a;
    color: #e5e5e5;
}
body.dark .admin-login-cancel {
    border-color: #333333;
    color: #f5f5f5;
}
body.dark .admin-login-confirm {
    background: #166534;
    box-shadow: none;
}
@media (max-width: 430px) {
    .admin-login-card { padding: 20px; border-radius: 22px; }
    .admin-login-actions { grid-template-columns: 1fr; }
}

/* ===== melhorias: inscrição online, origem e previsão ===== */
.fila-origem {
    font-size: .68rem !important;
    font-weight: 800 !important;
    color: var(--text-secondary) !important;
    line-height: 1.2 !important;
}
.previsao-incerta {
    font-size: .68rem !important;
    font-weight: 900 !important;
    color: var(--warning) !important;
    line-height: 1.2 !important;
}



/* =========================================================
   USUÁRIO LOGADO NO MENU ADMIN
   ========================================================= */
.admin-user-card {
    background: rgba(47,143,91,.08) !important;
    border: 1px solid rgba(47,143,91,.22) !important;
    border-radius: 18px !important;
    padding: 12px !important;
    margin: 2px 0 12px !important;
}
.admin-user-card-top {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.admin-user-avatar {
    width: 42px;
    height: 42px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(47,143,91,.13);
    color: var(--primary);
    border: 1px solid rgba(47,143,91,.22);
    flex-shrink: 0;
}
.admin-user-info {
    min-width: 0;
    flex: 1;
}
.admin-user-label {
    font-size: .64rem;
    font-weight: 900;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: .45px;
    margin-bottom: 2px;
}
.admin-user-name {
    font-size: .92rem;
    font-weight: 900;
    color: var(--text);
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.admin-user-login {
    font-size: .72rem;
    font-weight: 700;
    color: var(--text-secondary);
    margin-top: 2px;
}
.btn-logout-admin {
    width: 100%;
    min-height: 38px;
    border-radius: 13px;
    border: 1px solid rgba(194,65,75,.24);
    background: rgba(194,65,75,.10);
    color: var(--red);
    font-weight: 900;
    font-size: .74rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
body.dark .admin-user-card {
    background: #111111 !important;
    border-color: #2a2a2a !important;
}
body.dark .admin-user-avatar {
    background: #171717 !important;
    border-color: #2a2a2a !important;
    color: #e5e5e5 !important;
}
body.dark .btn-logout-admin {
    background: #2a1515 !important;
    border-color: #3a2020 !important;
    color: #ef4444 !important;
}



/* =========================================================
   AJUSTE SOLICITADO — FORMULÁRIO PRIMEIRO + ESCURO OPS
   Mantém lógica/IDs/funções; muda apenas ordem visual e dark mode.
   ========================================================= */
body.dark {
    --ops-bg: #050706;
    --ops-bg-2: #0a0d0b;
    --ops-surface: rgba(17, 20, 18, .92);
    --ops-surface-2: rgba(12, 15, 13, .96);
    --ops-border: rgba(114, 255, 165, .12);
    --ops-text: #f2fff5;
    --ops-muted: #91a897;
    --ops-green: #77e6a1;
    --ops-green-2: #22c55e;
    --ops-red: #ff6673;
    --ops-amber: #f5b84a;
    --ops-shadow: 0 22px 60px rgba(0,0,0,.42);
    --ops-shadow-soft: 0 12px 30px rgba(0,0,0,.30);
    --bg: var(--ops-bg);
    --card-bg: var(--ops-surface);
    --card-border: var(--ops-border);
    --text: var(--ops-text);
    --text-secondary: var(--ops-muted);
    --primary: var(--ops-green);
    --green: var(--ops-green-2);
    --red: var(--ops-red);
    --warning: var(--ops-amber);
    --pause: #61756a;
    --shadow: var(--ops-shadow-soft);
    --shadow-lg: var(--ops-shadow);
    background:
      radial-gradient(circle at 8% 0%, rgba(34,197,94,.15), transparent 30%),
      radial-gradient(circle at 100% 0%, rgba(60,255,145,.09), transparent 34%),
      linear-gradient(145deg, #050706, #0a0d0b 48%, #020302) !important;
    color: var(--ops-text) !important;
}

body.dark .container {
    max-width: 760px;
}

body.dark .app-logo {
    background: rgba(119,230,161,.08) !important;
    border: 1px solid rgba(114,255,165,.12) !important;
    box-shadow: none !important;
}

body.dark .app-logo .material-icons-outlined,
body.dark .theme-fab,
body.dark .admin-menu-fab,
body.dark .fila-posicao,
body.dark .fila-previsao .quadra-tag,
body.dark .btn-historico {
    color: var(--ops-green) !important;
}

body.dark .app-title {
    background: none !important;
    -webkit-text-fill-color: var(--ops-text) !important;
    color: var(--ops-text) !important;
    letter-spacing: -.04em;
}

body.dark .app-subtitle {
    color: var(--ops-muted) !important;
}

body.dark .form-card,
body.dark .quadra-card,
body.dark .blue-panel,
body.dark .blue-summary,
body.dark .fila-section,
body.dark #lista-historico,
body.dark .btn-historico,
body.dark .modal,
body.dark .whatsapp-modal-card,
body.dark .admin-config-card,
body.dark .admin-user-card,
body.dark .historico-dia,
body.dark .theme-fab,
body.dark .admin-menu-fab,
body.dark .admin-menu-drawer {
    background: linear-gradient(145deg, var(--ops-surface), var(--ops-surface-2)) !important;
    border: 1px solid var(--ops-border) !important;
    box-shadow: var(--ops-shadow-soft) !important;
}

body.dark .form-card {
    position: relative;
    overflow: hidden;
    border-radius: 26px !important;
    padding: 16px !important;
    margin-bottom: 14px !important;
}

body.dark .form-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg, var(--ops-green), var(--ops-green-2));
}

body.dark .form-title,
body.dark .fila-title,
body.dark .blue-title,
body.dark .blue-players,
body.dark .fila-nomes,
body.dark .modal-title,
body.dark .quadra-jogadores,
body.dark .admin-config-title,
body.dark .admin-menu-title,
body.dark .admin-user-name {
    color: var(--ops-text) !important;
}

body.dark .blue-meta,
body.dark .blue-sub,
body.dark .fila-detalhes,
body.dark .historico-jogo-horario,
body.dark .historico-dia-resumo,
body.dark .tempo-relativo,
body.dark .admin-config-sub,
body.dark .admin-menu-section-title,
body.dark .admin-user-label,
body.dark .admin-user-login {
    color: var(--ops-muted) !important;
}

body.dark input,
body.dark select,
body.dark .exportar-container select,
body.dark .admin-login-input {
    background: rgba(255,255,255,.045) !important;
    border: 1px solid var(--ops-border) !important;
    color: var(--ops-text) !important;
    box-shadow: none !important;
}

body.dark input::placeholder,
body.dark select::placeholder,
body.dark .admin-login-input::placeholder {
    color: rgba(145,168,151,.78) !important;
}

body.dark input:focus,
body.dark select:focus,
body.dark .admin-login-input:focus {
    border-color: rgba(119,230,161,.36) !important;
    box-shadow: 0 0 0 4px rgba(34,197,94,.10) !important;
}

body.dark .btn,
body.dark .btn-call,
body.dark .btn-edit,
body.dark .btn-remover,
body.dark .btn-config-toggle,
body.dark .btn-quadra-toggle,
body.dark .btn-logout-admin,
body.dark .admin-login-btn {
    border-radius: 16px !important;
    box-shadow: none !important;
}

body.dark .btn-primary,
body.dark .form-card .btn-primary.full-width,
body.dark .btn-call,
body.dark .btn-exportar,
body.dark .quadra-card.livre .btn-chamar,
body.dark .admin-login-confirm {
    background: linear-gradient(135deg, #216e45, #22c55e) !important;
    border: 0 !important;
    color: #fff !important;
}

body.dark .btn-warning,
body.dark .btn-edit {
    background: linear-gradient(135deg, #b7791f, #f59e0b) !important;
    color: #fff !important;
}

body.dark .btn-danger,
body.dark .btn-remover,
body.dark .btn-logout-admin {
    background: rgba(255,102,115,.11) !important;
    border: 1px solid rgba(255,102,115,.18) !important;
    color: var(--ops-red) !important;
}

body.dark .btn-secondary,
body.dark .btn-pause,
body.dark .btn-outline,
body.dark .admin-login-cancel {
    background: rgba(255,255,255,.055) !important;
    border: 1px solid var(--ops-border) !important;
    color: var(--ops-text) !important;
}

body.dark .btn-whatsapp {
    background: #128c4a !important;
    color: #fff !important;
    border: 0 !important;
}

body.dark .fila-item {
    background: rgba(255,255,255,.035) !important;
    border: 1px solid var(--ops-border) !important;
    box-shadow: none !important;
}

body.dark .fila-item.fila-top1 {
    border-left-color: var(--ops-green-2) !important;
    outline: 1px solid rgba(119,230,161,.16);
}

body.dark .fila-item.fila-top2 {
    border-left-color: var(--ops-amber) !important;
    background: rgba(189,123,29,.08) !important;
}

body.dark .tipo-jogo-badge.simples,
body.dark .fila-count,
body.dark .badge-qtd,
body.dark .historico-jogo-quadra,
body.dark .fila-previsao {
    background: rgba(119,230,161,.08) !important;
    color: var(--ops-green) !important;
    border: 1px solid rgba(119,230,161,.14) !important;
}

body.dark .tipo-jogo-badge.dupla {
    background: rgba(88,80,236,.12) !important;
    color: #a7a2ff !important;
    border: 1px solid rgba(88,80,236,.16) !important;
}

body.dark .blue-badge.free,
body.dark .quadra-card.livre .quadra-status-icon {
    background: rgba(34,197,94,.12) !important;
    color: var(--ops-green) !important;
    border-color: rgba(34,197,94,.18) !important;
}

body.dark .blue-badge,
body.dark .quadra-card.ocupada .quadra-status-icon {
    background: rgba(255,102,115,.10) !important;
    color: var(--ops-red) !important;
    border-color: rgba(255,102,115,.16) !important;
}

body.dark .blue-time,
body.dark .quadra-timer,
body.dark .fila-previsao .hora {
    color: var(--ops-text) !important;
}

body.dark .admin-menu-overlay {
    background: rgba(0,0,0,.72) !important;
}

body.dark .admin-login-overlay {
    background:
      radial-gradient(circle at 8% 0%, rgba(34,197,94,.15), transparent 30%),
      radial-gradient(circle at 100% 0%, rgba(60,255,145,.09), transparent 34%),
      linear-gradient(145deg, #050706, #0a0d0b 48%, #020302) !important;
}

body.dark .admin-login-card {
    background: linear-gradient(145deg, var(--ops-surface), var(--ops-surface-2)) !important;
    border: 1px solid var(--ops-border) !important;
    box-shadow: var(--ops-shadow) !important;
    border-radius: 30px !important;
}

body.dark .layout-loading-card {
    background: linear-gradient(90deg, rgba(255,255,255,.03), rgba(255,255,255,.08), rgba(255,255,255,.03)) !important;
    background-size: 200% 100% !important;
    border-color: var(--ops-border) !important;
}

/* Formulário no início: respira melhor antes dos cards de quadra */
.container > .form-card:first-of-type {
    margin-top: 2px !important;
}

.container > .quadras-wrapper {
    margin-top: 4px !important;
}



/* =========================================================
   AJUSTE FINAL - LOGO SEM FUNDO QUADRADO
   Remove qualquer card/fundo/padding atrás do ícone da raquete.
   ========================================================= */
.app-logo,
body.dark .app-logo {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    outline: none !important;
}

.app-logo .material-icons-outlined,
body.dark .app-logo .material-icons-outlined {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.app-logo img,
body.dark .app-logo img {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    object-fit: contain !important;
}


/* ============================================================
   RETROFIT VISUAL — MANTÉM LAYOUT ANTIGO
   - Não reorganiza a tela.
   - Não muda a estrutura dos blocos.
   - Aplica a fonte, botões, inputs, cards e acabamento do visual novo.
============================================================ */

:root {
    --rx-bg: #f4f1e8;
    --rx-bg-2: #ebe6d8;
    --rx-ink: #18251e;
    --rx-muted: #6f7a70;
    --rx-soft: #fffdf7;
    --rx-panel: rgba(255,253,247,.88);
    --rx-panel-2: rgba(245,241,230,.94);
    --rx-line: rgba(70,90,72,.16);
    --rx-green: #236b45;
    --rx-green-2: #3f8a5d;
    --rx-gold: #b7893b;
    --rx-red: #b94a48;
    --rx-shadow: 0 12px 32px rgba(24,37,30,.09);
    --rx-shadow-lg: 0 22px 70px rgba(24,37,30,.13);

    --bg: var(--rx-bg);
    --card-bg: var(--rx-panel);
    --card-border: var(--rx-line);
    --text: var(--rx-ink);
    --text-secondary: var(--rx-muted);
    --green: var(--rx-green);
    --red: var(--rx-red);
    --primary: var(--rx-green);
    --warning: var(--rx-gold);
    --pause: #4f7f62;
    --shadow: var(--rx-shadow);
    --shadow-lg: var(--rx-shadow-lg);
}

body.dark {
    --rx-bg: #000000;
    --rx-bg-2: #050505;
    --rx-ink: #f2f2f2;
    --rx-muted: #a4a4a4;
    --rx-soft: #0d0d0d;
    --rx-panel: rgba(16,16,16,.94);
    --rx-panel-2: rgba(9,9,9,.94);
    --rx-line: rgba(255,255,255,.10);
    --rx-green: #2aa866;
    --rx-green-2: #3bc278;
    --rx-gold: #d6a44f;
    --rx-red: #ef6262;
    --rx-shadow: 0 12px 34px rgba(0,0,0,.52);
    --rx-shadow-lg: 0 24px 80px rgba(0,0,0,.72);

    --bg: #000000;
    --card-bg: var(--rx-panel);
    --card-border: var(--rx-line);
    --text: var(--rx-ink);
    --text-secondary: var(--rx-muted);
    --green: var(--rx-green);
    --red: var(--rx-red);
    --primary: var(--rx-green);
    --warning: var(--rx-gold);
    --pause: #737373;
    --shadow: var(--rx-shadow);
    --shadow-lg: var(--rx-shadow-lg);
}

/* Fonte e base */
body,
button,
input,
select,
textarea {
    font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

body {
    background:
        radial-gradient(circle at 12% 8%, rgba(63,138,93,.16), transparent 31%),
        radial-gradient(circle at 88% 12%, rgba(183,137,59,.12), transparent 26%),
        linear-gradient(145deg, var(--rx-bg), var(--rx-bg-2)) !important;
    color: var(--rx-ink) !important;
}

body.dark {
    background:
        radial-gradient(circle at 16% 0%, rgba(42,168,102,.18), transparent 28%),
        radial-gradient(circle at 84% 8%, rgba(214,164,79,.10), transparent 25%),
        #000000 !important;
}

/* Mantém layout antigo, só melhora acabamento */
.container {
    max-width: 760px !important;
}

.app-header {
    padding: 14px 0 20px !important;
}

.app-logo {
    width: 46px !important;
    height: 46px !important;
    left: 42px !important;
    border-radius: 17px !important;
    background: rgba(35,107,69,.10) !important;
    border: 1px solid rgba(35,107,69,.18) !important;
}

.app-logo .material-icons-outlined {
    color: var(--rx-green) !important;
    font-size: 27px !important;
}

.app-title {
    font-family: 'Manrope', sans-serif !important;
    font-size: 1.52rem !important;
    font-weight: 950 !important;
    letter-spacing: -.055em !important;
    background: linear-gradient(135deg, var(--rx-ink), var(--rx-green)) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}

body.dark .app-title {
    background: none !important;
    -webkit-text-fill-color: var(--rx-ink) !important;
    color: var(--rx-ink) !important;
}

.app-subtitle {
    color: var(--rx-muted) !important;
    font-size: .72rem !important;
    font-weight: 850 !important;
    letter-spacing: .12em !important;
}

/* Cards e painéis no mesmo acabamento do arquivo novo, sem mudar posições */
.quadra-card,
.blue-panel,
.blue-summary,
.form-card,
.fila-section,
#lista-historico,
.btn-historico,
.modal,
.admin-config-card,
.admin-menu-drawer,
.theme-fab,
.admin-menu-fab,
.historico-dia,
.layout-loading-card,
.whatsapp-modal-card,
.admin-modal-card,
.admin-login-card {
    background: var(--rx-panel) !important;
    border: 1px solid var(--rx-line) !important;
    box-shadow: var(--rx-shadow) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
}

body.dark .quadra-card,
body.dark .blue-panel,
body.dark .blue-summary,
body.dark .form-card,
body.dark .fila-section,
body.dark #lista-historico,
body.dark .btn-historico,
body.dark .modal,
body.dark .admin-config-card,
body.dark .admin-menu-drawer,
body.dark .theme-fab,
body.dark .admin-menu-fab,
body.dark .historico-dia,
body.dark .layout-loading-card,
body.dark .whatsapp-modal-card,
body.dark .admin-modal-card,
body.dark .admin-login-card {
    background: var(--rx-panel) !important;
    border-color: var(--rx-line) !important;
}

.quadra-card,
.blue-panel,
.form-card,
.fila-section,
#lista-historico {
    border-radius: 26px !important;
}

.blue-summary {
    border-radius: 28px !important;
    background:
        linear-gradient(145deg, rgba(255,253,247,.90), rgba(245,241,230,.78)) !important;
}

body.dark .blue-summary {
    background:
        linear-gradient(145deg, rgba(18,18,18,.96), rgba(7,7,7,.90)) !important;
}

.blue-title,
.blue-players,
.form-title,
.fila-title,
.fila-nomes,
.historico-dia-header,
.historico-jogo-nomes,
.modal-title,
.admin-menu-title,
.admin-config-title,
.admin-login-title,
.whatsapp-modal-title,
.admin-modal-title,
.quadra-jogadores {
    color: var(--rx-ink) !important;
    font-family: 'Manrope', sans-serif !important;
}

.blue-sub,
.blue-meta,
.fila-detalhes,
.historico-jogo-horario,
.historico-dia-resumo,
.tempo-relativo,
.admin-config-sub,
.admin-menu-section-title,
.admin-login-subtitle,
.whatsapp-modal-text,
.whatsapp-modal-hint,
.admin-modal-text {
    color: var(--rx-muted) !important;
}

/* Timers com a fonte mono do novo */
.blue-time,
.quadra-timer {
    font-family: 'IBM Plex Mono', monospace !important;
    color: var(--rx-ink) !important;
    letter-spacing: -.04em !important;
}

.blue-time.warning,
.quadra-timer.warning,
.blue-panel.is-finished .blue-time,
.blue-meta.finalizado {
    color: var(--rx-red) !important;
}

/* Badges */
.blue-badge,
.quadra-card.ocupada .quadra-status-icon,
.admin-login-icon,
.whatsapp-modal-icon,
.admin-modal-icon {
    background: rgba(185,74,72,.11) !important;
    color: var(--rx-red) !important;
    border: 1px solid rgba(185,74,72,.18) !important;
}

.blue-badge.free,
.quadra-card.livre .quadra-status-icon {
    background: rgba(35,107,69,.11) !important;
    color: var(--rx-green) !important;
    border: 1px solid rgba(35,107,69,.18) !important;
}

.tipo-jogo-badge,
.tipo-jogo-badge.simples,
.fila-count,
.badge-qtd,
.historico-jogo-quadra,
.fila-previsao {
    background: rgba(35,107,69,.10) !important;
    color: var(--rx-green) !important;
    border: 1px solid rgba(35,107,69,.16) !important;
    box-shadow: none !important;
}

.tipo-jogo-badge.dupla {
    background: rgba(183,137,59,.14) !important;
    color: var(--rx-gold) !important;
    border-color: rgba(183,137,59,.22) !important;
}

/* Fila: mantém estrutura antiga, só dá acabamento novo */
.fila-item {
    background: var(--rx-soft) !important;
    border: 1px solid var(--rx-line) !important;
    border-radius: 18px !important;
    box-shadow: none !important;
}

body.dark .fila-item {
    background: #0b0b0b !important;
}

.fila-item.fila-top1 {
    background: linear-gradient(145deg, rgba(35,107,69,.12), var(--rx-soft)) !important;
    border-color: rgba(35,107,69,.26) !important;
    box-shadow: 0 12px 34px rgba(35,107,69,.11) !important;
}

.fila-item.fila-top2 {
    background: linear-gradient(145deg, rgba(183,137,59,.11), var(--rx-soft)) !important;
    border-color: rgba(183,137,59,.23) !important;
}

.fila-posicao,
.fila-previsao .quadra-tag,
.btn-historico,
.theme-fab,
.app-logo .material-icons-outlined {
    color: var(--rx-green) !important;
}

.fila-previsao .hora {
    color: var(--rx-ink) !important;
}

/* Inputs */
input,
select,
.exportar-container select,
.whatsapp-modal-input,
.admin-modal-input {
    background: var(--rx-soft) !important;
    border: 1px solid var(--rx-line) !important;
    color: var(--rx-ink) !important;
    border-radius: 16px !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 750 !important;
    box-shadow: none !important;
}

input::placeholder {
    color: color-mix(in srgb, var(--rx-muted), transparent 18%) !important;
}

input:focus,
select:focus,
.whatsapp-modal-input:focus,
.admin-modal-input:focus {
    border-color: rgba(35,107,69,.45) !important;
    box-shadow: 0 0 0 4px rgba(35,107,69,.10) !important;
    outline: none !important;
}

/* Botões no formato do arquivo novo */
.btn,
.btn-primary,
.btn-warning,
.btn-danger,
.btn-secondary,
.btn-pause,
.btn-outline,
.btn-call,
.btn-edit,
.btn-remover,
.btn-whatsapp,
.btn-exportar,
.btn-historico,
.btn-config-toggle,
.btn-quadra-toggle,
.admin-menu-fab,
.theme-fab,
.admin-menu-close,
.whatsapp-modal-cancel,
.whatsapp-modal-confirm,
.admin-modal-btn,
.admin-login-btn,
.quadra-card.livre .btn-chamar {
    border-radius: 15px !important;
    font-family: 'Manrope', sans-serif !important;
    font-weight: 900 !important;
    box-shadow: none !important;
    border: 1px solid transparent !important;
    transition: transform .16s ease, opacity .16s ease, background .16s ease !important;
}

.btn:active,
.btn-call:active,
.btn-edit:active,
.btn-remover:active,
.btn-config-toggle:active,
.btn-quadra-toggle:active,
.admin-menu-fab:active,
.theme-fab:active,
.admin-menu-close:active,
.whatsapp-modal-cancel:active,
.whatsapp-modal-confirm:active,
.admin-modal-btn:active,
.admin-login-btn:active {
    transform: translateY(1px) scale(.98) !important;
}

.btn-primary,
.btn-call,
.btn-exportar,
.quadra-card.livre .btn-chamar,
.whatsapp-modal-confirm,
.admin-modal-confirm,
.admin-login-btn,
.form-card .btn-primary.full-width {
    background: var(--rx-green) !important;
    color: #fff !important;
    border-color: rgba(35,107,69,.18) !important;
}

.btn-warning,
.btn-edit {
    background: rgba(183,137,59,.15) !important;
    color: #8a5a10 !important;
    border-color: rgba(183,137,59,.22) !important;
}

body.dark .btn-warning,
body.dark .btn-edit {
    color: #ffd58c !important;
}

.btn-danger,
.btn-remover {
    background: rgba(185,74,72,.12) !important;
    color: var(--rx-red) !important;
    border-color: rgba(185,74,72,.18) !important;
}

.btn-pause,
.btn-secondary,
.btn-outline,
.btn-historico,
.btn-config-toggle,
.btn-quadra-toggle,
.admin-menu-fab,
.theme-fab,
.admin-menu-close,
.whatsapp-modal-cancel,
.admin-modal-cancel {
    background: rgba(24,37,30,.07) !important;
    color: var(--rx-ink) !important;
    border-color: var(--rx-line) !important;
}

body.dark .btn-pause,
body.dark .btn-secondary,
body.dark .btn-outline,
body.dark .btn-historico,
body.dark .btn-config-toggle,
body.dark .btn-quadra-toggle,
body.dark .admin-menu-fab,
body.dark .theme-fab,
body.dark .admin-menu-close,
body.dark .whatsapp-modal-cancel,
body.dark .admin-modal-cancel {
    background: #1a1a1a !important;
    border-color: var(--rx-line) !important;
}

.btn-config-toggle:not(.off),
.btn-quadra-toggle:not(.off) {
    color: var(--rx-green) !important;
    background: rgba(35,107,69,.10) !important;
}

.btn-config-toggle.off,
.btn-quadra-toggle.off {
    color: var(--rx-red) !important;
    background: rgba(185,74,72,.08) !important;
}

.btn-whatsapp {
    background: #25d366 !important;
    color: #fff !important;
}

/* Menu e modais */
.admin-menu-overlay,
.modal-overlay,
.whatsapp-modal-overlay,
.admin-modal-overlay {
    background: rgba(18,22,18,.52) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
}

body.dark .admin-menu-overlay,
body.dark .modal-overlay,
body.dark .whatsapp-modal-overlay,
body.dark .admin-modal-overlay {
    background: rgba(0,0,0,.72) !important;
}

.admin-menu-drawer {
    border-left: 1px solid var(--rx-line) !important;
}

.admin-menu-header {
    border-bottom-color: var(--rx-line) !important;
}

.admin-config-card,
#lista-historico,
.historico-dia {
    background: var(--rx-soft) !important;
}

body.dark .admin-config-card,
body.dark #lista-historico,
body.dark .historico-dia {
    background: #0b0b0b !important;
}

/* Login visual */
.admin-login-overlay {
    background:
        radial-gradient(circle at 20% 10%, rgba(63,138,93,.18), transparent 30%),
        rgba(244,241,232,.88) !important;
    backdrop-filter: blur(14px) !important;
}

body.dark .admin-login-overlay {
    background: rgba(0,0,0,.86) !important;
}

.admin-login-card {
    border-radius: 30px !important;
}

/* Footer */
.app-footer {
    border-top-color: var(--rx-line) !important;
    color: var(--rx-muted) !important;
}

/* Mantém mobile antigo, apenas refina espaçamento */
@media (max-width: 430px) {
    body {
        padding: 12px !important;
    }

    .app-logo {
        left: 18px !important;
        width: 42px !important;
        height: 42px !important;
    }

    .app-title {
        font-size: 1.25rem !important;
    }

    .app-subtitle {
        font-size: .66rem !important;
    }
}


/* =========================================================
   MICROINTERAÇÕES PREMIUM - FILA / QUADRAS / FEEDBACK
   ========================================================= */
.fila-section {
    position: relative !important;
}

#corpoFila {
    position: relative !important;
}

.fila-item {
    position: relative !important;
    overflow: visible !important;
    will-change: transform, opacity !important;
    transition: transform .42s cubic-bezier(.2,.8,.2,1), opacity .28s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease !important;
    transform-origin: center center !important;
}

.fila-item.fila-top1 {
    isolation: isolate !important;
    border-color: rgba(35,107,69,.44) !important;
    box-shadow: 0 16px 42px rgba(35,107,69,.16) !important;
}

.fila-item.fila-top1::after {
    content: "" !important;
    position: absolute !important;
    inset: -3px !important;
    border-radius: 21px !important;
    border: 1px solid rgba(35,107,69,.30) !important;
    pointer-events: none !important;
    z-index: -1 !important;
    animation: filaTopPulse 1.85s ease-out infinite !important;
}

body.dark .fila-item.fila-top1::after {
    border-color: rgba(52,211,153,.34) !important;
}

@keyframes filaTopPulse {
    0% { opacity: .58; transform: scale(.992); box-shadow: 0 0 0 0 rgba(35,107,69,.18); }
    70% { opacity: 0; transform: scale(1.025); box-shadow: 0 0 0 13px rgba(35,107,69,0); }
    100% { opacity: 0; transform: scale(1.025); box-shadow: 0 0 0 0 rgba(35,107,69,0); }
}

.fila-item.fila-item-entering {
    animation: filaItemEnter .34s cubic-bezier(.2,.8,.2,1) both !important;
}

@keyframes filaItemEnter {
    from { opacity: 0; transform: translateY(10px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.fila-item.fila-item-dispatching {
    opacity: .48 !important;
    transform: scale(.985) !important;
}

.fila-dispatch-clone {
    box-shadow: 0 22px 60px rgba(0,0,0,.22) !important;
    opacity: .96 !important;
    filter: saturate(1.06) !important;
}

.fila-posicao {
    will-change: transform, opacity !important;
    transition: transform .24s ease, opacity .24s ease !important;
}

.fila-item.fila-top1 .fila-posicao {
    transform: translateY(-1px) !important;
}

.fila-item.fila-top1 .btn-whatsapp {
    min-height: 46px !important;
    background: linear-gradient(135deg, #16a34a, #22c55e) !important;
    color: #ffffff !important;
    border-color: rgba(34,197,94,.32) !important;
    box-shadow: 0 12px 26px rgba(34,197,94,.26) !important;
    font-size: .92rem !important;
    letter-spacing: .1px !important;
    animation: whatsappReadyPulse 2.2s ease-in-out infinite !important;
}

body.dark .fila-item.fila-top1 .btn-whatsapp {
    background: linear-gradient(135deg, #15803d, #22c55e) !important;
    box-shadow: 0 14px 30px rgba(34,197,94,.18) !important;
}

@keyframes whatsappReadyPulse {
    0%, 100% { transform: translateY(0); filter: brightness(1); }
    50% { transform: translateY(-1px); filter: brightness(1.06); }
}

.quadra-progress-wrap {
    height: 7px !important;
    width: 100% !important;
    overflow: hidden !important;
    border-radius: 999px !important;
    background: rgba(15,23,42,.08) !important;
    margin: 8px 0 2px !important;
    border: 1px solid rgba(15,23,42,.04) !important;
}

body.dark .quadra-progress-wrap {
    background: rgba(255,255,255,.07) !important;
    border-color: rgba(255,255,255,.06) !important;
}

.quadra-progress-bar {
    height: 100% !important;
    border-radius: inherit !important;
    background: linear-gradient(90deg, var(--rx-green), #46b071) !important;
    transition: width .6s linear, background .24s ease !important;
    min-width: 0 !important;
}

.quadra-progress-bar.is-ending {
    background: linear-gradient(90deg, #d97706, #fbbf24) !important;
}

.quadra-progress-bar.is-finished {
    width: 100% !important;
    background: linear-gradient(90deg, var(--rx-red), #fb7185) !important;
    animation: progressFinishedPulse 1s ease-in-out infinite !important;
}

@keyframes progressFinishedPulse {
    0%, 100% { opacity: .76; }
    50% { opacity: 1; }
}

.snackbar-root {
    position: fixed !important;
    top: calc(14px + env(safe-area-inset-top, 0px)) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: min(94vw, 520px) !important;
    z-index: 6000 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    pointer-events: none !important;
}

.app-snackbar {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 44px !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    background: rgba(255,255,255,.92) !important;
    color: var(--rx-ink) !important;
    border: 1px solid rgba(24,37,30,.10) !important;
    box-shadow: 0 18px 44px rgba(0,0,0,.14) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    font-family: 'Manrope', sans-serif !important;
    font-size: .82rem !important;
    font-weight: 850 !important;
    opacity: 0 !important;
    transform: translateY(-10px) scale(.985) !important;
    transition: opacity .22s ease, transform .22s ease !important;
    pointer-events: auto !important;
}

body.dark .app-snackbar {
    background: rgba(18,18,20,.88) !important;
    color: #f8fafc !important;
    border-color: rgba(255,255,255,.08) !important;
}

.app-snackbar.show {
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
}

.app-snackbar.hide {
    opacity: 0 !important;
    transform: translateY(-8px) scale(.985) !important;
}

.snackbar-dot {
    width: 9px !important;
    height: 9px !important;
    border-radius: 999px !important;
    flex: 0 0 auto !important;
    background: var(--rx-green) !important;
    box-shadow: 0 0 0 5px rgba(35,107,69,.10) !important;
}

.snackbar-warning .snackbar-dot { background: var(--rx-gold) !important; box-shadow: 0 0 0 5px rgba(183,137,59,.13) !important; }
.snackbar-error .snackbar-dot { background: var(--rx-red) !important; box-shadow: 0 0 0 5px rgba(185,74,72,.12) !important; }
.snackbar-info .snackbar-dot { background: #2563eb !important; box-shadow: 0 0 0 5px rgba(37,99,235,.11) !important; }

.vazio-state-premium {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    min-height: 150px !important;
    padding: 26px 16px !important;
    border-radius: 18px !important;
    background: linear-gradient(145deg, rgba(35,107,69,.08), rgba(255,255,255,.36)) !important;
    border: 1px dashed rgba(35,107,69,.24) !important;
    color: var(--rx-muted) !important;
}

body.dark .vazio-state-premium {
    background: linear-gradient(145deg, rgba(35,107,69,.14), rgba(255,255,255,.03)) !important;
    border-color: rgba(52,211,153,.20) !important;
}

.vazio-icone {
    width: 52px !important;
    height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 19px !important;
    background: rgba(35,107,69,.10) !important;
    font-size: 1.7rem !important;
    animation: vazioFloat 2.8s ease-in-out infinite !important;
}

.vazio-titulo {
    color: var(--rx-ink) !important;
    font-size: 1rem !important;
    font-weight: 950 !important;
}

.vazio-texto {
    max-width: 280px !important;
    text-align: center !important;
    color: var(--rx-muted) !important;
    font-size: .78rem !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
}

@keyframes vazioFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

.btn,
.btn-call,
.btn-edit,
.btn-remover,
.btn-whatsapp,
.btn-primary,
.btn-warning,
.btn-danger,
.btn-secondary,
.btn-outline,
.btn-pause {
    position: relative !important;
    overflow: hidden !important;
}

.btn::after,
.btn-call::after,
.btn-edit::after,
.btn-remover::after,
.btn-whatsapp::after,
.btn-primary::after,
.btn-warning::after,
.btn-danger::after,
.btn-secondary::after,
.btn-outline::after,
.btn-pause::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: radial-gradient(circle at center, rgba(255,255,255,.34), transparent 42%) !important;
    opacity: 0 !important;
    transform: scale(.72) !important;
    transition: opacity .24s ease, transform .24s ease !important;
    pointer-events: none !important;
}

.btn:active::after,
.btn-call:active::after,
.btn-edit:active::after,
.btn-remover:active::after,
.btn-whatsapp:active::after,
.btn-primary:active::after,
.btn-warning:active::after,
.btn-danger:active::after,
.btn-secondary:active::after,
.btn-outline:active::after,
.btn-pause:active::after {
    opacity: 1 !important;
    transform: scale(1.25) !important;
}

@media (prefers-reduced-motion: reduce) {
    .fila-item,
    .fila-item.fila-top1::after,
    .fila-item.fila-item-entering,
    .fila-item.fila-top1 .btn-whatsapp,
    .quadra-progress-bar,
    .quadra-progress-bar.is-finished,
    .vazio-icone,
    .app-snackbar {
        animation: none !important;
        transition: none !important;
    }
}


/* =========================================================
   MICROINTERAÇÕES PREMIUM V2 - LAPIDAÇÃO VISUAL / MOVIMENTO
   ========================================================= */
#corpoFila {
    position: relative !important;
    max-height: min(62vh, 620px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding-right: 2px !important;
    scrollbar-width: thin !important;
}

#corpoFila.tem-mais-fila::after {
    content: "" !important;
    position: sticky !important;
    bottom: -1px !important;
    display: block !important;
    height: 42px !important;
    margin-top: -42px !important;
    pointer-events: none !important;
    border-radius: 0 0 18px 18px !important;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(248,250,252,.94)) !important;
    z-index: 5 !important;
    opacity: .96 !important;
}

body.dark #corpoFila.tem-mais-fila::after {
    background: linear-gradient(to bottom, rgba(18,18,20,0), rgba(18,18,20,.96)) !important;
}

.fila-item {
    overflow: hidden !important;
    contain: layout paint !important;
}

.fila-item.fila-top1 {
    border-color: rgba(35,107,69,.38) !important;
    border-left-color: var(--rx-green) !important;
    box-shadow: 0 10px 24px rgba(35,107,69,.11) !important;
    background: linear-gradient(145deg, rgba(35,107,69,.075), rgba(255,255,255,.88)) !important;
}

body.dark .fila-item.fila-top1 {
    background: linear-gradient(145deg, rgba(34,197,94,.10), rgba(30,30,34,.96)) !important;
    border-color: rgba(34,197,94,.34) !important;
    border-left-color: #22c55e !important;
    box-shadow: inset 0 0 0 1px rgba(34,197,94,.08), 0 10px 26px rgba(0,0,0,.34) !important;
}

.fila-item.fila-top1::after {
    inset: 1px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(35,107,69,.20) !important;
    z-index: 0 !important;
    animation: filaBorderPulseV2 2.2s ease-in-out infinite !important;
    box-shadow: none !important;
}

body.dark .fila-item.fila-top1::after {
    border-color: rgba(34,197,94,.26) !important;
    animation-name: filaBorderPulseDarkV2 !important;
}

@keyframes filaBorderPulseV2 {
    0%, 100% { opacity: .55; transform: scale(1); }
    50% { opacity: .92; transform: scale(1.004); }
}

@keyframes filaBorderPulseDarkV2 {
    0%, 100% { opacity: .38; transform: scale(1); }
    50% { opacity: .76; transform: scale(1.003); }
}

.fila-topo-card {
    position: relative !important;
    z-index: 1 !important;
}

.proximo-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 20px !important;
    padding: 2px 8px !important;
    border-radius: 999px !important;
    background: rgba(35,107,69,.10) !important;
    border: 1px solid rgba(35,107,69,.18) !important;
    color: var(--rx-green) !important;
    font-size: .58rem !important;
    font-weight: 950 !important;
    letter-spacing: .7px !important;
    line-height: 1 !important;
}

body.dark .proximo-badge {
    background: rgba(34,197,94,.12) !important;
    border-color: rgba(34,197,94,.22) !important;
    color: #86efac !important;
}

.fila-posicao {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 26px !important;
    overflow: hidden !important;
    font-family: 'IBM Plex Mono', monospace !important;
    line-height: 1 !important;
}

.fila-posicao .posicao-num {
    display: inline-flex !important;
    align-items: center !important;
    height: 26px !important;
    will-change: transform, opacity !important;
}

.fila-posicao .posicao-antiga {
    display: none !important;
}

.fila-posicao.posicao-animada .posicao-antiga,
.fila-posicao.posicao-animada .posicao-nova {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    display: inline-flex !important;
}

.fila-posicao.posicao-animada .posicao-antiga {
    animation: posicaoSaiParaCima .34s cubic-bezier(.2,.8,.2,1) both !important;
}

.fila-posicao.posicao-animada .posicao-nova {
    animation: posicaoEntraDeBaixo .34s cubic-bezier(.2,.8,.2,1) both !important;
}

@keyframes posicaoSaiParaCima {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-16px); }
}

@keyframes posicaoEntraDeBaixo {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

.fila-actions {
    gap: 5px !important;
    align-items: center !important;
}

.fila-actions button,
.fila-actions .btn-whatsapp,
.fila-actions .btn-call,
.fila-actions .btn-edit,
.fila-actions .btn-remover {
    min-height: 30px !important;
    height: 30px !important;
    padding: 0 9px !important;
    border-radius: 10px !important;
    font-size: .68rem !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

.fila-actions .btn-call,
.fila-actions .btn-edit,
.fila-actions .btn-remover {
    width: 32px !important;
    min-width: 32px !important;
    padding: 0 !important;
}

.fila-item.fila-top1 .btn-whatsapp,
.btn-whatsapp {
    min-height: 30px !important;
    height: 30px !important;
    padding: 0 12px !important;
    border-radius: 11px !important;
    font-size: .72rem !important;
    font-weight: 950 !important;
    letter-spacing: .1px !important;
    background: linear-gradient(135deg, #168a47, #22c55e) !important;
    color: #ffffff !important;
    border: 1px solid rgba(34,197,94,.24) !important;
    box-shadow: 0 5px 14px rgba(34,197,94,.16) !important;
    animation: whatsappReadyPulseV2 2.4s ease-in-out infinite !important;
}

body.dark .fila-item.fila-top1 .btn-whatsapp,
body.dark .btn-whatsapp {
    background: linear-gradient(135deg, #166534, #16a34a) !important;
    border-color: rgba(134,239,172,.20) !important;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.035), 0 5px 16px rgba(0,0,0,.28) !important;
}

@keyframes whatsappReadyPulseV2 {
    0%, 100% { filter: brightness(1); transform: translateY(0); }
    50% { filter: brightness(1.045); transform: translateY(-1px); }
}

.blue-free-btn.chamar-pronto {
    position: relative !important;
    isolation: isolate !important;
    animation: chamarProntoPulse 2.15s ease-in-out infinite !important;
}

.blue-free-btn.chamar-pronto::before {
    content: "" !important;
    position: absolute !important;
    inset: -4px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(37,99,235,.18) !important;
    z-index: -1 !important;
    animation: chamarHalo 2.15s ease-out infinite !important;
}

@keyframes chamarProntoPulse {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-1px); }
}

@keyframes chamarHalo {
    0% { opacity: .58; transform: scale(.98); }
    70% { opacity: 0; transform: scale(1.08); }
    100% { opacity: 0; transform: scale(1.08); }
}

.fila-dispatch-clone {
    border-color: rgba(37,99,235,.32) !important;
    box-shadow: 0 28px 72px rgba(0,0,0,.30) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

.dispatch-label {
    position: absolute !important;
    right: 10px !important;
    top: -12px !important;
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: rgba(37,99,235,.94) !important;
    color: white !important;
    font-size: .62rem !important;
    font-weight: 950 !important;
    letter-spacing: .2px !important;
    box-shadow: 0 10px 24px rgba(37,99,235,.24) !important;
}

button.ripple-run::after,
.btn.ripple-run::after,
.btn-call.ripple-run::after,
.btn-edit.ripple-run::after,
.btn-remover.ripple-run::after,
.btn-whatsapp.ripple-run::after {
    background: radial-gradient(circle at var(--ripple-x, 50%) var(--ripple-y, 50%), rgba(255,255,255,.46), transparent 38%) !important;
    opacity: 1 !important;
    transform: scale(1.55) !important;
    transition: opacity .42s ease, transform .42s ease !important;
}

.modal-overlay,
.whatsapp-modal-overlay,
.admin-modal-overlay {
    background: rgba(15,23,42,.45) !important;
    backdrop-filter: blur(16px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(16px) saturate(1.12) !important;
}

body.dark .modal-overlay,
body.dark .whatsapp-modal-overlay,
body.dark .admin-modal-overlay {
    background: rgba(0,0,0,.58) !important;
}

.modal,
.whatsapp-modal-card,
.admin-modal-card {
    background: rgba(255,255,255,.78) !important;
    border: 1px solid rgba(255,255,255,.52) !important;
    box-shadow: 0 30px 80px rgba(15,23,42,.22) !important;
    backdrop-filter: blur(22px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(22px) saturate(1.12) !important;
}

body.dark .modal,
body.dark .whatsapp-modal-card,
body.dark .admin-modal-card {
    background: rgba(18,18,20,.78) !important;
    border-color: rgba(255,255,255,.10) !important;
    box-shadow: 0 32px 90px rgba(0,0,0,.55) !important;
}

@media (max-width: 540px) {
    .modal,
    .whatsapp-modal-card,
    .admin-modal-card {
        align-self: flex-end !important;
        border-radius: 26px 26px 0 0 !important;
        width: calc(100vw - 20px) !important;
        max-width: none !important;
        margin-bottom: 0 !important;
        animation: bottomSheetIn .26s cubic-bezier(.2,.8,.2,1) both !important;
    }

    .modal-overlay,
    .whatsapp-modal-overlay,
    .admin-modal-overlay {
        align-items: flex-end !important;
        padding: 10px 10px 0 !important;
    }

    #corpoFila {
        max-height: 58vh !important;
    }
}

@keyframes bottomSheetIn {
    from { opacity: 0; transform: translateY(34px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .fila-posicao.posicao-animada .posicao-antiga,
    .fila-posicao.posicao-animada .posicao-nova,
    .blue-free-btn.chamar-pronto,
    .blue-free-btn.chamar-pronto::before,
    .fila-item.fila-top1::after,
    .btn-whatsapp,
    .modal,
    .whatsapp-modal-card,
    .admin-modal-card {
        animation: none !important;
        transition: none !important;
    }
}


/* =========================================================
   AJUSTE ADMIN - ações compactas e sem sensação de arrastar
   Objetivo: botões próximos, card da fila mais limpo e sem
   layout espalhado. Mantém WhatsApp só no #1 e mantém FLIP
   vertical da fila, mas remove a sensação de ação por arraste.
   ========================================================= */

.fila-section .fila-item,
#corpoFila .fila-item {
    gap: 7px !important;
    padding: 11px 12px !important;
    border-radius: 16px !important;
}

.fila-section .fila-topo-card,
#corpoFila .fila-topo-card {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    min-width: 0 !important;
}

.fila-section .fila-topo-card .tipo-jogo-badge,
#corpoFila .fila-topo-card .tipo-jogo-badge {
    margin-right: auto !important;
}

.fila-section .proximo-badge,
#corpoFila .proximo-badge {
    margin-left: 0 !important;
    flex-shrink: 0 !important;
}

.fila-section .fila-meta-row.linha-unica,
#corpoFila .fila-meta-row.linha-unica {
    margin-top: 0 !important;
}

.fila-section .fila-meta-row.linha-unica .fila-previsao,
#corpoFila .fila-meta-row.linha-unica .fila-previsao {
    padding: 5px 8px !important;
    border-radius: 11px !important;
    gap: 3px 5px !important;
}

.fila-section .fila-actions,
#corpoFila .fila-actions {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 5px !important;
    width: 100% !important;
    margin-top: 2px !important;
    padding-top: 0 !important;
}

.fila-section .fila-actions button,
#corpoFila .fila-actions button,
.fila-section .fila-actions .btn-call,
.fila-section .fila-actions .btn-edit,
.fila-section .fila-actions .btn-remover,
.fila-section .fila-actions .btn-whatsapp,
#corpoFila .fila-actions .btn-call,
#corpoFila .fila-actions .btn-edit,
#corpoFila .fila-actions .btn-remover,
#corpoFila .fila-actions .btn-whatsapp {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    height: 28px !important;
    margin: 0 !important;
    border-radius: 9px !important;
    font-size: .66rem !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
}

.fila-section .fila-actions .btn-call,
.fila-section .fila-actions .btn-edit,
.fila-section .fila-actions .btn-remover,
#corpoFila .fila-actions .btn-call,
#corpoFila .fila-actions .btn-edit,
#corpoFila .fila-actions .btn-remover {
    width: 30px !important;
    min-width: 30px !important;
    padding: 0 !important;
}

.fila-section .fila-actions .btn-whatsapp,
#corpoFila .fila-actions .btn-whatsapp,
.fila-item.fila-top1 .btn-whatsapp,
.btn-whatsapp {
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 9px !important;
    border-radius: 9px !important;
    font-size: .66rem !important;
    font-weight: 900 !important;
    animation: none !important;
    transform: none !important;
    filter: none !important;
}

.fila-item.fila-top1 .btn-whatsapp {
    box-shadow: 0 3px 8px rgba(34,197,94,.14) !important;
}

body.dark .fila-item.fila-top1 .btn-whatsapp,
body.dark .btn-whatsapp {
    box-shadow: none !important;
}

.fila-dispatch-clone,
.dispatch-label {
    display: none !important;
}

.fila-item.fila-item-dispatching {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

@media (max-width: 540px) {
    .fila-section .fila-actions,
    #corpoFila .fila-actions {
        justify-content: flex-end !important;
        gap: 4px !important;
    }

    .fila-section .fila-actions .btn-call,
    .fila-section .fila-actions .btn-edit,
    .fila-section .fila-actions .btn-remover,
    #corpoFila .fila-actions .btn-call,
    #corpoFila .fila-actions .btn-edit,
    #corpoFila .fila-actions .btn-remover {
        width: 28px !important;
        min-width: 28px !important;
        height: 27px !important;
        min-height: 27px !important;
    }

    .fila-section .fila-actions .btn-whatsapp,
    #corpoFila .fila-actions .btn-whatsapp,
    .fila-item.fila-top1 .btn-whatsapp,
    .btn-whatsapp {
        height: 27px !important;
        min-height: 27px !important;
        padding: 0 8px !important;
        font-size: .64rem !important;
    }
}

/* =========================================================
   AJUSTE ADMIN - fila mais coerente no mobile
   - Ações ocupam toda a largura disponível e se adaptam a 3 ou 4 botões
   - Badge de tipo mostra só o ícone
   - Remove visual textual de "PRÓXIMO"
   - Elimina sensação de card puxado para a direita
   ========================================================= */
#corpoFila .proximo-badge,
.fila-section .proximo-badge {
    display: none !important;
}

#corpoFila .fila-topo-card,
.fila-section .fila-topo-card {
    justify-content: flex-start !important;
    gap: 8px !important;
}

#corpoFila .fila-topo-card .tipo-jogo-badge,
.fila-section .fila-topo-card .tipo-jogo-badge,
#corpoFila .tipo-jogo-badge,
.fila-section .tipo-jogo-badge {
    margin-right: 0 !important;
    width: 34px !important;
    min-width: 34px !important;
    height: 28px !important;
    padding: 0 !important;
    border-radius: 12px !important;
    font-size: 0.86rem !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

#corpoFila .fila-actions,
.fila-section .fila-actions {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 8px !important;
    width: 100% !important;
    margin-top: 4px !important;
    padding-top: 0 !important;
}

#corpoFila .fila-actions button,
.fila-section .fila-actions button,
#corpoFila .fila-actions .btn-call,
#corpoFila .fila-actions .btn-edit,
#corpoFila .fila-actions .btn-remover,
#corpoFila .fila-actions .btn-whatsapp,
.fila-section .fila-actions .btn-call,
.fila-section .fila-actions .btn-edit,
.fila-section .fila-actions .btn-remover,
.fila-section .fila-actions .btn-whatsapp,
.fila-item.fila-top1 .btn-whatsapp,
.btn-whatsapp {
    width: 100% !important;
    min-width: 0 !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.88rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    box-shadow: none !important;
}

#corpoFila .fila-actions .btn-whatsapp,
.fila-section .fila-actions .btn-whatsapp,
.fila-item.fila-top1 .btn-whatsapp,
.btn-whatsapp {
    background: var(--green) !important;
    color: #ffffff !important;
    border: 1px solid rgba(0,0,0,.04) !important;
}

body.dark #corpoFila .fila-actions .btn-whatsapp,
body.dark .fila-section .fila-actions .btn-whatsapp,
body.dark .fila-item.fila-top1 .btn-whatsapp,
body.dark .btn-whatsapp {
    background: #166534 !important;
    color: #ffffff !important;
    border-color: #166534 !important;
}

#corpoFila .fila-item,
.fila-section .fila-item {
    overflow: hidden !important;
}

#corpoFila .fila-meta-row.linha-unica .fila-previsao,
.fila-section .fila-meta-row.linha-unica .fila-previsao {
    width: 100% !important;
}

@media (max-width: 540px) {
    #corpoFila .fila-actions,
    .fila-section .fila-actions {
        gap: 7px !important;
    }

    #corpoFila .fila-actions button,
    .fila-section .fila-actions button,
    #corpoFila .fila-actions .btn-call,
    #corpoFila .fila-actions .btn-edit,
    #corpoFila .fila-actions .btn-remover,
    #corpoFila .fila-actions .btn-whatsapp,
    .fila-section .fila-actions .btn-call,
    .fila-section .fila-actions .btn-edit,
    .fila-section .fila-actions .btn-remover,
    .fila-section .fila-actions .btn-whatsapp,
    .fila-item.fila-top1 .btn-whatsapp,
    .btn-whatsapp {
        height: 32px !important;
        min-height: 32px !important;
        border-radius: 11px !important;
        font-size: 0.82rem !important;
    }

    #corpoFila .fila-topo-card .tipo-jogo-badge,
    .fila-section .fila-topo-card .tipo-jogo-badge,
    #corpoFila .tipo-jogo-badge,
    .fila-section .tipo-jogo-badge {
        width: 32px !important;
        min-width: 32px !important;
        height: 26px !important;
        font-size: 0.82rem !important;
    }
}


/* =========================================================
   AJUSTE ADMIN - centralização real dos ícones Simples/Duplas
   - Troca o emoji por Material Icons para evitar desalinhamento visual.
   - O badge da fila vira um quadrado estável e centralizado.
   - O badge das quadras mantém texto normal, sem ser achatado.
   ========================================================= */
#corpoFila .fila-topo-card .fila-tipo-badge,
.fila-section .fila-topo-card .fila-tipo-badge,
#corpoFila .fila-tipo-badge,
.fila-section .fila-tipo-badge {
    width: 34px !important;
    min-width: 34px !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    font-size: 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    vertical-align: middle !important;
    overflow: hidden !important;
}

#corpoFila .fila-tipo-badge .tipo-jogo-icon,
.fila-section .fila-tipo-badge .tipo-jogo-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Material Icons Outlined' !important;
    font-size: 18px !important;
    font-weight: normal !important;
    font-style: normal !important;
    line-height: 18px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    white-space: nowrap !important;
    word-wrap: normal !important;
    direction: ltr !important;
    -webkit-font-feature-settings: 'liga' !important;
    -webkit-font-smoothing: antialiased !important;
    font-feature-settings: 'liga' !important;
    transform: none !important;
}

.blue-meta .quadra-tipo-badge,
.blue-meta .tipo-jogo-badge.quadra-tipo-badge {
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: .62rem !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .3px !important;
    text-transform: uppercase !important;
    vertical-align: middle !important;
}

@media (max-width: 540px) {
    #corpoFila .fila-topo-card .fila-tipo-badge,
    .fila-section .fila-topo-card .fila-tipo-badge,
    #corpoFila .fila-tipo-badge,
    .fila-section .fila-tipo-badge {
        width: 32px !important;
        min-width: 32px !important;
        height: 26px !important;
        min-height: 26px !important;
        border-radius: 11px !important;
    }

    #corpoFila .fila-tipo-badge .tipo-jogo-icon,
    .fila-section .fila-tipo-badge .tipo-jogo-icon {
        width: 17px !important;
        height: 17px !important;
        min-width: 17px !important;
        min-height: 17px !important;
        font-size: 17px !important;
        line-height: 17px !important;
    }
}

/* =========================================================
   TEMA OFICIAL - PREMIUM CLUB v1
   Base neutra sofisticada + verde institucional discreto.
   Aplicado por último para eliminar conflitos de paleta.
   ========================================================= */
:root {
    --bg: #F5F4EF !important;
    --card-bg: #FFFFFF !important;
    --surface: #FFFFFF !important;
    --surface-soft: #F0EFE8 !important;
    --card-border: #DEDCD2 !important;
    --border: #DEDCD2 !important;
    --text: #1E211D !important;
    --text-secondary: #73776F !important;
    --primary: #1F6F43 !important;
    --green: #1F6F43 !important;
    --primary-soft: #E5F1E9 !important;
    --primary-border: #BFD8C8 !important;
    --red: #B94A48 !important;
    --danger: #B94A48 !important;
    --danger-soft: #F5E4E3 !important;
    --warning: #B9852B !important;
    --warning-soft: #F4EAD8 !important;
    --pause: #5F665D !important;
    --shadow: 0 8px 22px rgba(30,33,29,.075) !important;
    --shadow-lg: 0 16px 36px rgba(30,33,29,.115) !important;
}

body {
    background:
        radial-gradient(circle at top right, rgba(31,111,67,.075), transparent 34%),
        radial-gradient(circle at bottom left, rgba(185,133,43,.055), transparent 36%),
        linear-gradient(135deg, #FBFAF6 0%, #F5F4EF 52%, #ECEAE1 100%) !important;
    color: var(--text) !important;
}

body.dark {
    --bg: #080907 !important;
    --card-bg: #121411 !important;
    --surface: #121411 !important;
    --surface-soft: #1A1D18 !important;
    --card-border: #2A2E28 !important;
    --border: #2A2E28 !important;
    --text: #F3F4EF !important;
    --text-secondary: #A6AAA0 !important;
    --primary: #7CC896 !important;
    --green: #7CC896 !important;
    --primary-soft: #17251B !important;
    --primary-border: #2E5A3B !important;
    --red: #E16B67 !important;
    --danger: #E16B67 !important;
    --danger-soft: #301A19 !important;
    --warning: #D6A24A !important;
    --warning-soft: #2D2415 !important;
    --pause: #A6AAA0 !important;
    --shadow: 0 10px 28px rgba(0,0,0,.46) !important;
    --shadow-lg: 0 18px 42px rgba(0,0,0,.58) !important;
    background:
        radial-gradient(circle at top right, rgba(124,200,150,.08), transparent 30%),
        linear-gradient(135deg, #080907 0%, #0E100D 58%, #050605 100%) !important;
    color: var(--text) !important;
}

.app-title,
body.dark .app-title {
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    -webkit-text-fill-color: var(--text) !important;
    color: var(--text) !important;
}
.app-subtitle,
.quadra-numero,
.quadra-tempo,
.fila-detalhes,
.fila-chegada,
.fila-ql,
.tempo-relativo,
.blue-meta,
.admin-config-sub,
.app-footer {
    color: var(--text-secondary) !important;
}

.quadra-card,
.blue-panel,
.form-card,
.fila-section,
#lista-historico,
.btn-historico,
.modal,
.popup-card,
.admin-modal-card,
.whatsapp-modal-card,
.admin-menu-drawer,
.admin-config-card,
.admin-user-card,
.theme-fab,
.admin-menu-fab,
.layout-loading-card,
.meu-status-card {
    background: var(--card-bg) !important;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--shadow) !important;
    color: var(--text) !important;
}

body.dark .quadra-card,
body.dark .blue-panel,
body.dark .form-card,
body.dark .fila-section,
body.dark #lista-historico,
body.dark .btn-historico,
body.dark .modal,
body.dark .popup-card,
body.dark .admin-modal-card,
body.dark .whatsapp-modal-card,
body.dark .admin-menu-drawer,
body.dark .admin-config-card,
body.dark .admin-user-card,
body.dark .theme-fab,
body.dark .admin-menu-fab,
body.dark .layout-loading-card,
body.dark .meu-status-card {
    background: var(--card-bg) !important;
    border-color: var(--card-border) !important;
    box-shadow: var(--shadow) !important;
}

.quadra-card::before,
.blue-panel::before {
    background: var(--primary) !important;
    box-shadow: none !important;
}
.quadra-card.ocupada::before,
.blue-panel.ocupada::before,
.blue-panel.is-finished::before {
    background: var(--danger) !important;
    box-shadow: none !important;
}

.quadra-status,
.quadra-status-icon,
.blue-badge,
.blue-badge.free,
.fila-count,
.tipo-jogo-badge,
.fila-tipo-badge,
.admin-login-icon,
.app-logo {
    background: var(--primary-soft) !important;
    border: 1px solid var(--primary-border) !important;
    color: var(--primary) !important;
    box-shadow: none !important;
}
body.dark .quadra-status,
body.dark .quadra-status-icon,
body.dark .blue-badge,
body.dark .blue-badge.free,
body.dark .fila-count,
body.dark .tipo-jogo-badge,
body.dark .fila-tipo-badge,
body.dark .admin-login-icon,
body.dark .app-logo {
    background: var(--primary-soft) !important;
    border-color: var(--primary-border) !important;
    color: var(--primary) !important;
    box-shadow: none !important;
}

.quadra-card.ocupada .quadra-status,
.quadra-card.ocupada .quadra-status-icon,
.blue-panel.ocupada .blue-badge,
.blue-panel.is-finished .blue-badge {
    background: var(--danger-soft) !important;
    border-color: rgba(185,74,72,.28) !important;
    color: var(--danger) !important;
}
body.dark .quadra-card.ocupada .quadra-status,
body.dark .quadra-card.ocupada .quadra-status-icon,
body.dark .blue-panel.ocupada .blue-badge,
body.dark .blue-panel.is-finished .blue-badge {
    background: var(--danger-soft) !important;
    border-color: rgba(225,107,103,.36) !important;
    color: var(--danger) !important;
}

.fila-item,
body.dark .fila-item {
    background: color-mix(in srgb, var(--card-bg) 88%, var(--primary-soft) 12%) !important;
    border: 1px solid var(--card-border) !important;
    box-shadow: none !important;
    color: var(--text) !important;
}
.fila-item.fila-top1,
body.dark .fila-item.fila-top1 {
    background: color-mix(in srgb, var(--card-bg) 78%, var(--primary-soft) 22%) !important;
    border-color: var(--primary-border) !important;
    border-left: 5px solid var(--primary) !important;
    box-shadow: 0 10px 24px rgba(31,111,67,.085) !important;
}
body.dark .fila-item.fila-top1 {
    box-shadow: 0 10px 26px rgba(0,0,0,.42) !important;
}
.fila-item.fila-top2,
body.dark .fila-item.fila-top2,
.fila-item.minha-inscricao,
body.dark .fila-item.minha-inscricao {
    background: color-mix(in srgb, var(--card-bg) 84%, var(--warning-soft) 16%) !important;
    border-color: color-mix(in srgb, var(--card-border) 55%, var(--warning) 45%) !important;
    border-left: 5px solid var(--warning) !important;
}

.fila-posicao,
.fila-previsao .quadra-tag,
.theme-fab,
.admin-menu-fab,
.regulamento-texto h3,
.admin-config-title,
.form-title,
.fila-title,
.blue-title,
.blue-players,
.quadra-jogadores,
.fila-nomes {
    color: var(--text) !important;
}

.quadra-timer,
.blue-time,
.fila-previsao,
body.dark .quadra-timer,
body.dark .blue-time,
body.dark .fila-previsao {
    background: var(--surface-soft) !important;
    border: 1px solid var(--card-border) !important;
    color: var(--text) !important;
    box-shadow: none !important;
}
.quadra-timer.warning,
.blue-panel.is-ending .blue-time,
body.dark .quadra-timer.warning,
body.dark .blue-panel.is-ending .blue-time {
    background: var(--warning-soft) !important;
    border-color: color-mix(in srgb, var(--card-border) 40%, var(--warning) 60%) !important;
    color: var(--warning) !important;
}

.quadra-progress-track,
.progress-track,
.tempo-progress-track {
    background: color-mix(in srgb, var(--card-border) 76%, transparent) !important;
}
.quadra-progress-fill,
.progress-fill,
.tempo-progress-fill {
    background: linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 68%, #ffffff 32%)) !important;
}
.quadra-progress-fill.warning,
.progress-fill.warning,
.tempo-progress-fill.warning {
    background: var(--warning) !important;
}
.quadra-progress-fill.danger,
.progress-fill.danger,
.tempo-progress-fill.danger {
    background: var(--danger) !important;
}

input,
select,
textarea,
body.dark input,
body.dark select,
body.dark textarea {
    background: var(--surface-soft) !important;
    border: 1px solid var(--card-border) !important;
    color: var(--text) !important;
    box-shadow: none !important;
}
input::placeholder,
textarea::placeholder,
body.dark input::placeholder,
body.dark textarea::placeholder {
    color: var(--text-secondary) !important;
}
input:focus,
select:focus,
textarea:focus,
body.dark input:focus,
body.dark select:focus,
body.dark textarea:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent) !important;
}

.btn,
.btn-primary,
.btn-inscrever,
.btn-call,
.btn-chamar,
.blue-free-btn,
.btn-aceitar.active,
.admin-login-confirm,
.whatsapp-modal-confirm,
.admin-modal-confirm,
body.dark .btn,
body.dark .btn-primary,
body.dark .btn-inscrever,
body.dark .btn-call,
body.dark .btn-chamar,
body.dark .blue-free-btn,
body.dark .btn-aceitar.active,
body.dark .admin-login-confirm,
body.dark .whatsapp-modal-confirm,
body.dark .admin-modal-confirm {
    background: var(--primary) !important;
    border: 1px solid var(--primary) !important;
    color: #FFFFFF !important;
    box-shadow: 0 8px 18px rgba(31,111,67,.14) !important;
}
body.dark .btn,
body.dark .btn-primary,
body.dark .btn-inscrever,
body.dark .btn-call,
body.dark .btn-chamar,
body.dark .blue-free-btn,
body.dark .btn-aceitar.active,
body.dark .admin-login-confirm,
body.dark .whatsapp-modal-confirm,
body.dark .admin-modal-confirm {
    color: #071008 !important;
    box-shadow: none !important;
}

.btn-secondary,
.btn-pause,
.btn-outline,
.btn-config-toggle,
.whatsapp-modal-cancel,
.admin-modal-cancel,
body.dark .btn-secondary,
body.dark .btn-pause,
body.dark .btn-outline,
body.dark .btn-config-toggle,
body.dark .whatsapp-modal-cancel,
body.dark .admin-modal-cancel {
    background: var(--surface-soft) !important;
    border: 1px solid var(--card-border) !important;
    color: var(--text) !important;
    box-shadow: none !important;
}

.btn-warning,
.btn-edit,
.btn-editar,
.btn-editar-fila,
body.dark .btn-warning,
body.dark .btn-edit,
body.dark .btn-editar,
body.dark .btn-editar-fila {
    background: var(--warning-soft) !important;
    border: 1px solid color-mix(in srgb, var(--warning) 38%, var(--card-border) 62%) !important;
    color: var(--warning) !important;
    box-shadow: none !important;
}

.btn-danger,
.btn-remover,
.btn-remover-fila,
.btn-sair-fila,
.admin-modal-danger,
body.dark .btn-danger,
body.dark .btn-remover,
body.dark .btn-remover-fila,
body.dark .btn-sair-fila,
body.dark .admin-modal-danger {
    background: var(--danger-soft) !important;
    border: 1px solid color-mix(in srgb, var(--danger) 40%, var(--card-border) 60%) !important;
    color: var(--danger) !important;
    box-shadow: none !important;
}

.btn-whatsapp,
.fila-item.fila-top1 .btn-whatsapp,
body.dark .btn-whatsapp,
body.dark .fila-item.fila-top1 .btn-whatsapp {
    background: #1F8F53 !important;
    border: 1px solid #1F8F53 !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
}
body.dark .btn-whatsapp,
body.dark .fila-item.fila-top1 .btn-whatsapp {
    background: #2FBD6C !important;
    border-color: #2FBD6C !important;
    color: #071008 !important;
}

.tipo-jogo-badge.simples,
.tipo-jogo-badge.dupla,
.fila-tipo-badge.simples,
.fila-tipo-badge.dupla,
body.dark .tipo-jogo-badge.simples,
body.dark .tipo-jogo-badge.dupla,
body.dark .fila-tipo-badge.simples,
body.dark .fila-tipo-badge.dupla {
    background: var(--surface-soft) !important;
    border: 1px solid var(--card-border) !important;
    color: var(--primary) !important;
}

.snackbar,
#snackbar,
.app-snackbar,
body.dark .snackbar,
body.dark #snackbar,
body.dark .app-snackbar {
    background: color-mix(in srgb, var(--text) 92%, var(--primary) 8%) !important;
    color: var(--card-bg) !important;
    border: 1px solid color-mix(in srgb, var(--text) 20%, transparent) !important;
    box-shadow: var(--shadow-lg) !important;
}

.admin-badge {
    background: var(--danger) !important;
    color: #fff !important;
    box-shadow: none !important;
}

/* Elementos decorativos não podem bloquear toque/scroll. */
.fila-item::before,
.fila-item::after,
.quadra-card::after,
.blue-panel::after,
.scroll-shadow,
.fila-scroll-shadow,
.ripple-effect,
.btn-ripple,
.card-glow {
    pointer-events: none !important;
}
#corpoFila,
.fila-section,
.fila-item {
    touch-action: pan-y !important;
}
