:root{
    --bg-outer:#2a0f0a; --bg-panel:#1c0d09; --border-flame:#ff7a29; --border-flame-dim:#7a2f12;
    --ember:#ff4d1c; --amber:#ffb238; --gold:#ffd166; --ash:#3a2018; --ash-light:#54291a;
    --text-cream:#ffe9d6; --text-dim:#c98a63; --good:#7fbf5c; --bad:#e05b4d;
  }
  *{box-sizing:border-box;}
  body{
    margin:0; min-height:100vh; display:flex; align-items:flex-start; justify-content:center;
    background:radial-gradient(ellipse at 50% 0%, #4a1608 0%, #1a0805 70%);
    font-family:'Trebuchet MS','Segoe UI',sans-serif; padding:20px;
  }
  .screen{ display:none; width:100%; justify-content:center; }
  .screen.active{ display:flex; }

  .reg-card{
    background:var(--bg-outer); border:3px solid var(--border-flame); border-radius:14px;
    padding:30px 34px; max-width:460px; width:100%;
    box-shadow:0 0 40px rgba(255,90,20,0.25), inset 0 0 30px rgba(0,0,0,0.4);
  }
  .reg-title{ color:var(--amber); font-size:24px; font-weight:900; text-align:center; margin:0 0 4px 0; text-shadow:0 0 10px rgba(255,120,30,0.5); }
  .reg-sub{ color:var(--text-dim); text-align:center; font-size:13px; margin-bottom:20px; }
  .field{ margin-bottom:14px; }
  .field label{ display:block; color:var(--text-cream); font-size:13px; font-weight:700; margin-bottom:5px; }
  .field input, .field select{
    width:100%; padding:9px 10px; border-radius:7px; border:2px solid var(--border-flame-dim);
    background:var(--ash); color:var(--text-cream); font-size:14px; outline:none;
  }
  .field input:focus, .field select:focus{ border-color:var(--amber); }
  .field input::placeholder{ color:#8a5a42; }
  .row2{ display:flex; gap:12px; }
  .row2 .field{ flex:1; }
  .reg-error{ color:#ff8a6a; font-size:12px; text-align:center; min-height:16px; margin-bottom:6px; }
  .btn-primary{
    width:100%; border:none; border-radius:8px; padding:13px 6px; font-weight:800; font-size:15px;
    color:#fff; cursor:pointer; background:linear-gradient(180deg, var(--ember), #b32c0c);
    box-shadow:0 3px 0 #7a1c07, 0 0 12px rgba(255,80,20,0.3); letter-spacing:0.5px; margin-top:6px;
  }
  .btn-primary:active{ transform:translateY(2px); box-shadow:0 1px 0 #7a1c07; }
  .link-btn{ display:block; text-align:center; margin-top:14px; color:var(--text-dim); font-size:12px; cursor:pointer; text-decoration:underline; }

  .rig{ display:flex; flex-direction:column; gap:12px; max-width:960px; width:100%; }
  .session-bar{
    background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px;
    padding:8px 16px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center;
    gap:8px; color:var(--text-cream); font-size:13px;
  }
  .session-bar b{ color:var(--amber); }
  .session-actions{ display:flex; gap:8px; }
  .mini-btn{
    background:var(--ash-light); border:1px solid var(--border-flame-dim); color:var(--text-cream);
    border-radius:6px; padding:5px 10px; font-size:11px; cursor:pointer;
  }
  .mini-btn:hover{ border-color:var(--amber); }

  .game-body{
    display:flex; gap:18px; background:var(--bg-outer); border:3px solid var(--border-flame);
    border-radius:14px; padding:18px; box-shadow:0 0 40px rgba(255,90,20,0.25), inset 0 0 30px rgba(0,0,0,0.4);
  }
  .left{
    background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px;
    padding:14px; width:230px; flex-shrink:0; display:flex; flex-direction:column; gap:10px;
  }
  .title-left{ color:var(--amber); font-size:20px; font-weight:800; text-align:center; letter-spacing:0.5px; text-shadow:0 0 10px rgba(255,120,30,0.5); margin:0 0 4px 0; }
  table.grid{ border-collapse:collapse; width:100%; font-size:11px; }
  table.grid th{ background:var(--ember); color:#fff; padding:3px 0; font-size:13px; letter-spacing:1px; }
  table.grid td{ width:20%; height:15px; text-align:center; background:var(--ash); color:var(--text-dim); border:1px solid #2a1610; font-weight:600; }
  table.grid td.row-idx{ background:transparent; color:var(--text-dim); font-size:9px; width:auto; border:none; }
  table.grid td.marked{ background:var(--gold); color:#3a1a00; box-shadow:inset 0 0 6px rgba(0,0,0,0.3); }
  .counter-box{ background:var(--ash-light); border:1px solid var(--border-flame-dim); border-radius:8px; text-align:center; padding:8px 4px; color:var(--text-cream); font-weight:700; font-size:15px; }
  .last3-label{ color:var(--text-dim); font-size:12px; text-align:center; margin-top:4px; }
  .last3{ display:flex; justify-content:center; gap:8px; }
  .mini-ball{ width:34px;height:34px;border-radius:50%; display:flex;align-items:center;justify-content:center; font-weight:800;font-size:14px;color:#fff; background:#241410; border:2px solid #3a2018; }
  .mini-ball.filled{ background:radial-gradient(circle at 32% 28%, #ffd166, var(--ember) 70%); border-color:var(--gold); color:#3a1a00; }
  .right{ flex:1; display:flex; flex-direction:column; gap:12px; }
  .top-row{ display:flex; gap:14px; }
  .ball-stage{
    background:radial-gradient(ellipse at center, #241410 0%, #140a08 100%);
    border:2px solid var(--border-flame-dim); border-radius:10px; flex:1;
    display:flex; flex-direction:column; align-items:center; padding:14px 10px; position:relative; overflow:hidden;
  }
  .letter-big{ font-size:56px; font-weight:900; color:var(--text-cream); text-shadow:0 0 14px rgba(255,110,30,0.6); margin-bottom:6px; }
  .ball-big{
    width:130px;height:130px; border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #ffe1a8, var(--gold) 30%, var(--ember) 75%, #a01f05 100%);
    border:5px solid var(--amber); display:flex;align-items:center;justify-content:center;
    font-size:52px;font-weight:900;color:#4a1500;
    box-shadow:0 0 25px rgba(255,120,30,0.55), inset 0 0 15px rgba(0,0,0,0.25); transition:transform .15s;
  }
  .ball-big.spin{ animation:spin .6s linear infinite; }
  @keyframes spin{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
  .side-panel{ width:190px; display:flex; flex-direction:column; gap:12px; }
  .opts-box{ background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px; padding:10px 12px; }
  .opts-title{ color:var(--text-dim); font-size:11px; text-align:center; margin-bottom:6px; }
  .opt-line{ display:flex; align-items:center; gap:6px; color:var(--text-cream); font-size:13px; margin:4px 0; cursor:pointer; }
  button.action{
    border:none; border-radius:8px; padding:14px 6px; font-weight:800; font-size:14px; color:#fff; cursor:pointer;
    background:linear-gradient(180deg, var(--ember), #b32c0c); box-shadow:0 3px 0 #7a1c07, 0 0 12px rgba(255,80,20,0.3); letter-spacing:0.5px;
  }
  button.action:active{transform:translateY(2px);box-shadow:0 1px 0 #7a1c07;}
  button.action:disabled{opacity:0.5;cursor:not-allowed;}
  .globo-btn{
    background:radial-gradient(circle at 35% 30%, #2a1a10, #140a06 80%); border:2px solid var(--amber); border-radius:10px;
    display:flex; flex-direction:column; align-items:center; justify-content:center; padding:10px; cursor:pointer;
    color:var(--gold); font-weight:800; font-size:12px; gap:6px;
  }
  .globo-icon{ width:46px;height:46px;border-radius:50%; background:repeating-conic-gradient(var(--ember) 0deg 20deg, #3a1a10 20deg 40deg); border:3px solid var(--gold); animation:spin 2s linear infinite; }
  .result-bar{ background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px; padding:12px 16px; color:var(--text-cream); font-weight:700; text-align:center; min-height:20px; font-size:14px; }
  .bottom-controls{ display:flex; justify-content:center; gap:12px; }
  .pill-btn{ border:none; border-radius:20px; padding:8px 22px; font-weight:700; font-size:13px; cursor:pointer; color:#fff; }
  .pill-btn.auto{ background:linear-gradient(180deg,#ff9a4d,#d9560f); }
  .pill-btn.stop{ background:linear-gradient(180deg,#ff4d1c,#a01f05); }
  .pill-btn:disabled{opacity:0.45;cursor:not-allowed;}
  .winners-box{ background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px; padding:12px 16px; }
  .winners-title{ color:var(--amber); font-weight:800; font-size:13px; margin-bottom:8px; }
  .winners-form{ display:flex; gap:8px; flex-wrap:wrap; }
  .winners-form input, .winners-form select{
    flex:1; min-width:120px; padding:8px 9px; border-radius:7px; border:2px solid var(--border-flame-dim);
    background:var(--ash); color:var(--text-cream); font-size:13px; outline:none;
  }
  .winners-form button{ border:none; border-radius:7px; padding:8px 16px; font-weight:800; font-size:12px; color:#fff; cursor:pointer; background:linear-gradient(180deg, var(--good), #4a8a2f); }
  .winners-list{ margin-top:10px; display:flex; flex-direction:column; gap:6px; }
  .winner-tag{ background:var(--ash-light); border:1px solid var(--good); border-radius:7px; padding:6px 10px; color:var(--text-cream); font-size:12px; display:flex; justify-content:space-between; }
  .winner-tag b{ color:var(--gold); }

  .hist-card{
    background:var(--bg-outer); border:3px solid var(--border-flame); border-radius:14px;
    padding:24px; max-width:720px; width:100%; box-shadow:0 0 40px rgba(255,90,20,0.25);
  }
  .hist-title{ color:var(--amber); font-size:22px; font-weight:900; text-align:center; margin-bottom:6px; }
  .hist-sub{ color:var(--text-dim); text-align:center; font-size:12px; margin-bottom:14px; }
  .hist-toolbar{ display:flex; justify-content:flex-end; margin-bottom:12px; }
  .btn-manual{
    border:none; border-radius:7px; padding:9px 16px; font-weight:800; font-size:12px; color:#fff; cursor:pointer;
    background:linear-gradient(180deg, var(--amber), #b3730f);
  }
  .hist-empty{ color:var(--text-dim); text-align:center; padding:20px; }
  .hist-entry{ background:var(--bg-panel); border:1px solid var(--border-flame-dim); border-radius:9px; padding:12px 14px; margin-bottom:10px; }
  .hist-entry-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
  .hist-entry-title{ color:var(--amber); font-weight:800; font-size:14px; margin-bottom:4px; }
  .hist-entry-sub{ color:var(--text-dim); font-size:12px; margin-bottom:6px; }
  .hist-winner-row{ color:var(--text-cream); font-size:12px; padding:2px 0; }
  .hist-winner-row b{ color:var(--gold); }
  .hist-entry-actions{ display:flex; gap:6px; flex-shrink:0; }
  .btn-edit, .btn-delete, .btn-save, .btn-cancel{
    border:none; border-radius:6px; padding:5px 11px; font-size:11px; font-weight:700; cursor:pointer; color:#fff;
  }
  .btn-edit{ background:var(--amber); color:#3a1a00; }
  .btn-delete{ background:var(--bad); }
  .btn-save{ background:var(--good); }
  .btn-cancel{ background:var(--ash-light); border:1px solid var(--border-flame-dim); color:var(--text-cream); }
  .hist-back{
    display:block; margin:16px auto 0 auto; background:var(--ash-light); border:1px solid var(--border-flame-dim);
    color:var(--text-cream); border-radius:7px; padding:8px 20px; cursor:pointer; font-size:13px;
  }
  .draft-form .field{ margin-bottom:10px; }
  .draft-winners{ margin-top:8px; display:flex; flex-direction:column; gap:6px; }
  .draft-winner-row{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    background:var(--ash-light); border:1px solid var(--good); border-radius:7px; padding:5px 10px; font-size:12px; color:var(--text-cream);
  }
  .draft-winner-row .rm{ cursor:pointer; color:var(--bad); font-weight:900; padding:0 4px; }
  .draft-add-winner{ display:flex; gap:6px; margin-top:8px; flex-wrap:wrap; }
  .draft-add-winner input, .draft-add-winner select{
    flex:1; min-width:110px; padding:7px 8px; border-radius:6px; border:2px solid var(--border-flame-dim);
    background:var(--ash); color:var(--text-cream); font-size:12px; outline:none;
  }
  .draft-add-winner button{ border:none; border-radius:6px; padding:7px 12px; font-size:11px; font-weight:800; color:#fff; cursor:pointer; background:linear-gradient(180deg, var(--good), #4a8a2f); }
  .draft-actions{ display:flex; gap:8px; margin-top:10px; justify-content:flex-end; }
  .save-indicator{ color:var(--text-dim); font-size:11px; text-align:center; margin-top:10px; min-height:14px; }

  @media (max-width:700px){
    .game-body{flex-direction:column;}
    .left{width:100%;}
    .top-row{flex-direction:column;}
    .side-panel{width:100%;flex-direction:row;flex-wrap:wrap;}
    .winners-form{flex-direction:column;}
    .draft-add-winner{flex-direction:column;}
    .cartelas-panel{width:100%; max-height:400px;}
  }

  .brand-row{ display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:10px; }
  .brand-logo{ width:44px; height:44px; object-fit:contain; filter:drop-shadow(0 0 6px rgba(255,120,30,0.5)); }
  .brand-logo-sm{ width:26px; height:26px; object-fit:contain; vertical-align:middle; margin-right:6px; }
  .brand-tag{ color:var(--text-dim); font-size:11px; letter-spacing:1.5px; text-transform:uppercase; text-align:center; margin-bottom:2px; }
  .brand-logo-text{
    font-size:15px; font-weight:900; letter-spacing:2px; text-transform:uppercase;
    color:var(--amber); text-shadow:0 0 12px rgba(255,178,56,0.5);
    text-align:center; display:block;
  }
  .brand-logo-text-sm{
    font-size:10px; font-weight:900; letter-spacing:1.5px; text-transform:uppercase;
    color:var(--amber); vertical-align:middle; margin-right:6px;
    text-shadow:0 0 8px rgba(255,178,56,0.4);
  }

  /* ── Contagem regressiva ────────────────────────────────────────────────── */
  #countdownOverlay{
    position:fixed; inset:0; background:rgba(0,0,0,0.88); z-index:2000;
    display:flex; align-items:center; justify-content:center;
  }
  .countdown-box{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:20px; }
  .countdown-msg{ color:var(--amber); font-size:28px; font-weight:900; text-shadow:0 0 20px rgba(255,178,56,0.6); }
  .countdown-num{
    font-size:120px; font-weight:900; color:#fff;
    text-shadow:0 0 40px rgba(255,90,20,0.8), 0 0 80px rgba(255,90,20,0.4);
    line-height:1;
  }
  .countdown-pop{ animation:countpop 0.6s cubic-bezier(.17,.67,.35,1.3); }
  @keyframes countpop{
    0%  { transform:scale(2); opacity:0; }
    60% { transform:scale(0.9); opacity:1; }
    100%{ transform:scale(1); opacity:1; }
  }

  /* ── Alerta cartela armada ──────────────────────────────────────────────── */
  .armada-alert{
    position:fixed; inset:0; z-index:1400; pointer-events:none;
    display:flex; align-items:center; justify-content:center;
    padding:20px;
    background:rgba(0,0,0,0.55);
    animation:fadeInOut 10s ease forwards;
  }
  .armada-alert-inner{
    background:linear-gradient(160deg, #2a1200, #5a2800);
    border:4px solid var(--amber); border-radius:24px;
    padding:40px 60px; text-align:center; min-width:380px; max-width:600px; width:100%;
    box-shadow:0 0 80px rgba(255,178,56,0.55), 0 0 160px rgba(255,90,20,0.25);
    animation:vencedorPop 0.45s cubic-bezier(.17,.67,.35,1.3);
  }
  .armada-icon{ font-size:72px; line-height:1; margin-bottom:12px; }
  .armada-titulo{
    color:var(--amber); font-weight:900; font-size:32px;
    text-shadow:0 0 18px rgba(255,178,56,0.7); margin-bottom:6px;
  }
  .armada-tipo{
    color:var(--gold); font-size:20px; font-weight:700;
    background:rgba(255,178,56,0.12); border-radius:8px;
    padding:6px 18px; display:inline-block; margin-top:4px;
  }
  .armada-nome{ color:#fff; font-weight:900; font-size:24px; margin-top:14px; }
  .armada-titulo-eleitoral{
    color:var(--text-dim); font-size:14px; margin-top:6px;
    letter-spacing:0.5px;
  }
  .armada-nomes-lista{
    margin-top:16px; display:flex; flex-direction:column; gap:8px;
    max-height:320px; overflow-y:auto;
  }
  .armada-nome-item{
    background:rgba(255,178,56,0.18); border:2px solid var(--amber);
    border-radius:10px; padding:10px 20px;
    color:#fff; font-weight:900; font-size:18px; text-align:center;
    text-shadow:0 1px 4px rgba(0,0,0,0.5);
  }

  /* ── Alerta de vencedor ─────────────────────────────────────────────────── */
  .vencedor-alert{
    position:fixed; inset:0; z-index:1500; pointer-events:none;
    display:flex; align-items:center; justify-content:center;
    padding:20px;
    background:rgba(0,0,0,0.65);
    animation:fadeInOut 10s ease forwards;
  }
  @keyframes fadeInOut{
    0%  { opacity:0; }
    8%  { opacity:1; }
    82% { opacity:1; }
    100%{ opacity:0; }
  }
  .vencedor-alert-inner{
    background:linear-gradient(160deg, #1a0800, #4a1800);
    border:5px solid var(--gold); border-radius:24px;
    padding:44px 64px; text-align:center; min-width:380px; max-width:600px; width:100%;
    box-shadow:0 0 100px rgba(255,209,102,0.6), 0 0 200px rgba(255,90,20,0.3);
    animation:vencedorPop 0.45s cubic-bezier(.17,.67,.35,1.3);
  }
  @keyframes vencedorPop{
    0%  { transform:scale(0.4); opacity:0; }
    70% { transform:scale(1.05); opacity:1; }
    100%{ transform:scale(1);   opacity:1; }
  }
  .vencedor-trofeu{ font-size:80px; line-height:1; margin-bottom:10px; }
  .vencedor-tipo{
    color:var(--gold); font-size:38px; font-weight:900;
    text-shadow:0 0 24px rgba(255,209,102,0.8);
    letter-spacing:1px;
  }
  .vencedor-nome{
    color:#fff; font-size:28px; font-weight:900; margin-top:12px;
    text-shadow:0 2px 8px rgba(0,0,0,0.6);
  }
  .vencedor-sub{
    color:var(--amber); font-size:17px; font-weight:700; margin-top:8px;
    letter-spacing:0.5px;
  }
  .reg-import-box{
    background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px;
    padding:12px 14px; margin-bottom:14px;
  }
  .reg-import-title{ color:var(--amber); font-weight:900; font-size:13px; margin-bottom:4px; }
  .reg-import-count{ color:var(--text-dim); font-size:12px; margin-bottom:8px; }
  .reg-import-actions{ display:flex; flex-direction:column; gap:4px; }
  .btn-import-reg{
    display:inline-block; border:none; border-radius:7px; padding:8px 14px;
    font-weight:800; font-size:12px; color:#fff; cursor:pointer;
    background:linear-gradient(180deg, var(--amber), #b3730f); text-align:center;
  }
  .reg-import-msg{ color:var(--good); font-size:11px; margin-top:6px; min-height:14px; }

  /* ── Card flutuante de participantes (tela de jogo) ─────────────────────── */
  .quick-import-card{
    background:var(--bg-panel); border:2px solid var(--amber); border-radius:10px;
    padding:12px 16px; margin-top:12px;
    display:flex; flex-wrap:wrap; align-items:center; gap:10px;
    box-shadow:0 0 16px rgba(255,178,56,0.15);
  }
  .quick-import-left{ flex:1; min-width:120px; }
  .quick-import-title{ color:var(--amber); font-weight:900; font-size:13px; }
  .quick-import-count{ color:var(--text-dim); font-size:11px; margin-top:2px; }
  .quick-import-right{ display:flex; gap:8px; flex-wrap:wrap; }
  .btn-import-game{
    border:none; border-radius:7px; padding:7px 13px;
    font-weight:800; font-size:11px; color:#fff; cursor:pointer;
    background:linear-gradient(180deg, var(--amber), #b3730f);
  }
  .quick-import-msg{ width:100%; color:var(--good); font-size:11px; min-height:14px; }
  .part-toolbar{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
  .btn-del-all{ border:none; border-radius:7px; padding:9px 16px; font-weight:800; font-size:12px; color:#fff; cursor:pointer; background:linear-gradient(180deg, var(--bad), #8a1a12); }
  .part-csv-info{ color:var(--text-dim); font-size:11px; margin-bottom:12px; }
  .part-csv-info code{ background:var(--ash); padding:2px 5px; border-radius:4px; color:var(--text-cream); }
  .part-count{ color:var(--text-dim); font-size:12px; margin-bottom:10px; }
  .part-table{ width:100%; border-collapse:collapse; font-size:12px; }
  .part-table th{ background:var(--ember); color:#fff; padding:6px 8px; text-align:left; }
  .part-table td{ padding:6px 8px; border-bottom:1px solid #2a1610; color:var(--text-cream); }
  .part-table tr:hover td{ background:var(--ash); }
  .part-table .btn-del-row{ border:none; background:none; color:var(--bad); cursor:pointer; font-size:14px; padding:0 4px; }
  .part-form{ background:var(--bg-panel); border:1px solid var(--border-flame-dim); border-radius:9px; padding:12px 14px; margin-bottom:12px; }
  .part-form .row2{ gap:8px; }

  /* ── Painel lateral de cartelas ────────────────────────────────────────── */
  .cartelas-panel{
    width:260px; flex-shrink:0;
    background:var(--bg-panel); border:2px solid var(--border-flame-dim); border-radius:10px;
    padding:12px; display:flex; flex-direction:column; gap:8px;
    max-height:calc(100vh - 120px); overflow:hidden;
  }
  .cartelas-panel-header{ text-align:center; }
  .cartelas-panel-title{ color:var(--amber); font-weight:900; font-size:14px; }
  .cartelas-panel-sub{ color:var(--text-dim); font-size:11px; margin-top:2px; }
  .cartelas-panel-nav{
    display:flex; align-items:center; justify-content:center; gap:8px;
  }
  .car-page{ color:var(--text-cream); font-size:12px; min-width:40px; text-align:center; }
  .cartelas-panel-body{
    flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:10px;
    scrollbar-width:thin; scrollbar-color:var(--border-flame-dim) transparent;
  }
  .cartelas-panel-body::-webkit-scrollbar{ width:4px; }
  .cartelas-panel-body::-webkit-scrollbar-thumb{ background:var(--border-flame-dim); border-radius:4px; }

  /* ── Cartela individual ─────────────────────────────────────────────────── */
  .cartela-card{
    background:#3a1a10; border:2px solid var(--border-flame-dim); border-radius:10px;
    padding:8px; flex-shrink:0;
  }
  .cartela-card.highlight{ border-color:var(--amber); box-shadow:0 0 10px rgba(255,178,56,0.3); }
  .cartela-dono{ text-align:center; margin-bottom:5px; }
  .cartela-nome{ color:var(--amber); font-weight:900; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .cartela-titulo{ color:var(--text-dim); font-size:10px; letter-spacing:0.5px; }
  table.cartela-grid{ border-collapse:collapse; width:100%; }
  table.cartela-grid th{ background:var(--ember); color:#fff; padding:3px 0; font-size:11px; letter-spacing:1px; text-align:center; }
  table.cartela-grid td{
    width:20%; height:24px; text-align:center; background:#5a3020;
    color:#ffe9d6; border:1px solid #7a4030; font-weight:700; font-size:11px;
  }
  table.cartela-grid td.free{ color:#c98a63; font-size:8px; background:#4a2818; }
  table.cartela-grid td.hit{ background:var(--gold); color:#3a1a00; }
  table.cartela-grid td.new-hit{
    background:var(--ember); color:#fff;
    animation:pulse-hit 0.7s ease-out;
  }
  @keyframes pulse-hit{
    0%{ transform:scale(1.25); box-shadow:0 0 12px var(--ember); }
    100%{ transform:scale(1); }
  }
  .car-dots{ display:flex; justify-content:center; gap:5px; flex-wrap:wrap; min-height:10px; }
  .car-dot{
    width:7px; height:7px; border-radius:50%; background:var(--ash-light);
    border:1px solid var(--border-flame-dim); cursor:pointer;
  }
  .car-dot.active{ background:var(--amber); border-color:var(--amber); }
  .car-empty{ color:var(--text-dim); text-align:center; padding:20px; font-size:12px; }

  /* ── Modal (mantido mas oculto por default) ─────────────────────────────── */
  .modal-overlay{ display:none; }

  /* ── Cartela premiada no painel lateral ────────────────────────────────── */
  .cartela-card.premiada{
    border:3px solid var(--gold);
    animation:cartelaPremiadaEntrada 0.6s cubic-bezier(.17,.67,.35,1.3),
              cartelaPremiadaPulse 1.5s ease-in-out 0.6s infinite;
    box-shadow:0 0 24px rgba(255,209,102,0.7), 0 0 48px rgba(255,90,20,0.4);
  }
  @keyframes cartelaPremiadaEntrada{
    0%  { transform:scale(0.5) rotate(-4deg); opacity:0; }
    60% { transform:scale(1.06) rotate(1deg); opacity:1; }
    100%{ transform:scale(1)   rotate(0deg); opacity:1; }
  }
  @keyframes cartelaPremiadaPulse{
    0%,100%{ box-shadow:0 0 16px rgba(255,209,102,0.5), 0 0 32px rgba(255,90,20,0.3); border-color:var(--gold); }
    50%{     box-shadow:0 0 48px rgba(255,209,102,1),   0 0 96px rgba(255,90,20,0.7); border-color:#fff7aa; }
  }
  table.cartela-grid td.quina-win{
    background:var(--gold); color:#3a1a00;
    font-weight:900;
    animation:celulaPremiadaPulse 0.7s ease-in-out infinite;
  }
  @keyframes celulaPremiadaPulse{
    0%,100%{ background:var(--gold);  box-shadow:0 0 6px  rgba(255,209,102,0.6); }
    50%{     background:#fffaaa;      box-shadow:0 0 18px rgba(255,240,100,1); }
  }
  .cartelas-panel.com-vencedor{
    border-color:var(--gold);
    animation:painelVencedorGlow 1.5s ease-in-out infinite;
  }
  @keyframes painelVencedorGlow{
    0%,100%{ box-shadow:0 0 18px rgba(255,209,102,0.4); border-color:var(--gold); }
    50%{     box-shadow:0 0 56px rgba(255,209,102,0.85), 0 0 100px rgba(255,90,20,0.4); border-color:#fff7aa; }
  }
  .cartelas-panel-title.vencedor{
    color:var(--gold); font-size:18px;
    text-shadow:0 0 16px rgba(255,209,102,0.9);
    animation:tituloVencedorFlash 0.8s ease-in-out infinite;
  }
  @keyframes tituloVencedorFlash{
    0%,100%{ opacity:1;   text-shadow:0 0 16px rgba(255,209,102,0.9); }
    50%{     opacity:0.5; text-shadow:0 0 4px  rgba(255,209,102,0.3); }
  }
  .cartelas-panel-sub.vencedor-sub{
    color:#fff; font-weight:800; font-size:13px;
    animation:subVencedorPop 0.5s cubic-bezier(.17,.67,.35,1.3);
  }
  @keyframes subVencedorPop{
    0%  { transform:scale(0); opacity:0; }
    100%{ transform:scale(1); opacity:1; }
  }
  .vencedor-actions{
    display:flex; flex-direction:column; gap:8px; margin-top:8px;
  }
  .btn-continuar-bingo{
    border:none; border-radius:8px; padding:10px; font-weight:800; font-size:12px;
    color:#fff; cursor:pointer; width:100%;
    background:linear-gradient(180deg, var(--ember), #b32c0c);
    box-shadow:0 2px 0 #7a1c07;
  }
  .btn-continuar-bingo:active{ transform:translateY(1px); }
  .btn-encerrar-bingo{
    border:none; border-radius:8px; padding:10px; font-weight:800; font-size:12px;
    color:#fff; cursor:pointer; width:100%;
    background:var(--ash-light); border:1px solid var(--border-flame-dim);
    color:var(--text-cream);
  }
  #screenParabens{ padding:30px; }
  .parabens-card{
    background:var(--bg-outer); border:4px solid var(--gold); border-radius:20px;
    padding:40px 48px; max-width:540px; width:100%; text-align:center;
    box-shadow:0 0 80px rgba(255,209,102,0.4);
    display:flex; flex-direction:column; align-items:center; gap:12px;
  }
  .parabens-trofeu{ font-size:80px; line-height:1; }
  .parabens-titulo{
    color:var(--gold); font-size:42px; font-weight:900; letter-spacing:3px;
    text-shadow:0 0 30px rgba(255,209,102,0.7);
  }
  .parabens-sub{ color:var(--amber); font-size:20px; font-weight:700; }
  .parabens-vencedor{
    background:rgba(255,178,56,0.12); border:2px solid var(--amber);
    border-radius:12px; padding:14px 28px; margin:8px 0;
    color:#fff; font-size:22px; font-weight:900;
    text-shadow:0 1px 4px rgba(0,0,0,0.5);
    width:100%;
  }
  .parabens-cartela-titulo{
    color:var(--text-dim); font-size:13px; letter-spacing:1px;
    text-transform:uppercase; margin-top:4px;
  }
  /* Cartela vencedora na tela de parabéns — linhas vencedoras em dourado brilhante */
  #parabensCartela table.cartela-grid td.quina-win{
    background:var(--gold); color:#3a1a00;
    box-shadow:0 0 8px rgba(255,209,102,0.6);
    font-weight:900;
  }
