/* ===== Tambola carnival theme: purple night, gold marquee, circus red ===== */
html{background:#14072f}
:root{--night:#14072f;--night2:#2a0f5e;--violet:#5b2bd6;--violet2:#7c3aed;--magenta:#c026d3;--gold:#ffc83d;--gold2:#ff9f1c;--red:#e63946;--green:#1e9e5a;--cream:#fff8e7;--ink:#241046}
body{font-family:'Poppins','Segoe UI',Arial,sans-serif}
h1,h2,h3,h4,h5,h6,.brand .word{font-family:'Baloo 2','Poppins',sans-serif}

/* page backgrounds */
body.t-dark{background:
  radial-gradient(900px 520px at 50% -8%,rgba(124,58,237,.95) 0%,transparent 62%),
  radial-gradient(700px 480px at 105% 25%,rgba(192,38,211,.55) 0%,transparent 60%),
  radial-gradient(700px 480px at -10% 40%,rgba(91,43,214,.55) 0%,transparent 60%),
  linear-gradient(180deg,var(--night2) 0%,var(--night) 100%) fixed!important;color:#fff;min-height:100vh}
body.t-light{background:linear-gradient(180deg,#efe9ff 0%,#f7f4ff 60%,#fff 100%) fixed!important;color:var(--ink)}

/* ---- brand marquee ---- */
.brand{text-align:center;padding:26px 0 6px}
.brand .marquee{position:relative;display:inline-block;padding:6px 34px 2px;border-radius:26px;
  background:linear-gradient(180deg,#ff5a5f 0%,#d62839 55%,#a4161a 100%);border:5px solid var(--gold);
  box-shadow:0 0 0 3px #8a3b00,0 0 28px rgba(255,200,61,.65),inset 0 -6px 12px rgba(0,0,0,.25)}
.brand .marquee::after{content:"";position:absolute;inset:4px;border-radius:19px;border:3px dotted #fff3b0;pointer-events:none;animation:bulbs 1.4s steps(2) infinite}
@keyframes bulbs{50%{border-color:#ffd24d;opacity:.75}}
.brand .word{display:block;font-size:2.3rem;line-height:1.1;font-weight:800;letter-spacing:3px;
  background:linear-gradient(180deg,#fff6b0 0%,#ffc83d 55%,#ff9f1c 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-stroke:1.2px #7a3200;filter:drop-shadow(0 3px 0 rgba(90,30,0,.55))}
.brand .star{position:absolute;left:50%;top:-17px;transform:translateX(-50%);font-size:26px;color:var(--gold);filter:drop-shadow(0 0 6px #ffd24d)}
.brand .tag{margin-top:8px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:#d9c9ff}
body.t-light .brand .tag{color:#6b4fc4}
.brand.small .word{font-size:1.5rem}.brand.small .marquee{padding:4px 22px 0;border-width:4px}.brand.small .star{font-size:18px;top:-13px}.brand.small{padding-top:20px}

/* ---- cards ---- */
body.t-dark .left-panel,body.t-dark .right-panel,body.t-dark .register-box,body.t-dark .card-lite{
  background:rgba(255,255,255,.97)!important;color:var(--ink);border-radius:20px!important;box-shadow:0 12px 34px rgba(0,0,0,.38)!important}
body.t-light .box,body.t-light .card{border-radius:16px!important;box-shadow:0 6px 20px rgba(91,43,214,.12)!important;border:1px solid rgba(124,58,237,.12)}
body.t-light .box{background:#fff}
h5,h6{font-weight:700}

/* ---- buttons ---- */
.btn-primary{background:linear-gradient(135deg,var(--violet2),var(--violet))!important;border:0!important;box-shadow:0 4px 12px rgba(91,43,214,.4)}
.btn-primary:hover{filter:brightness(1.1)}
.btn-success{background:linear-gradient(135deg,#2ecc71,var(--green))!important;border:0!important}
.btn-warning{background:linear-gradient(135deg,#ffd75e,var(--gold2))!important;border:0!important;color:#3b2200!important}
.btn-dark{background:linear-gradient(135deg,#3b2a6b,#1b0f40)!important;border:0!important}
.btn-danger{border:0!important}
.nav-pills .nav-link{color:var(--violet);font-weight:600}
.nav-pills .nav-link.active{background:linear-gradient(135deg,var(--violet2),var(--violet))!important;color:#fff}
.form-control:focus,.form-select:focus{border-color:var(--violet2);box-shadow:0 0 0 .2rem rgba(124,58,237,.2)}

/* ---- bingo-style number balls ---- */
body.t-dark .numbers div,body.t-dark .row>div.ball,.ball{background:radial-gradient(circle at 32% 28%,#ffb3b3 0%,#e63946 55%,#9d1520 100%)!important;color:#fff;border:2px solid rgba(255,255,255,.55);box-shadow:0 3px 8px rgba(0,0,0,.35),inset 0 -3px 6px rgba(0,0,0,.2);text-shadow:0 1px 2px rgba(0,0,0,.4)}
body.t-dark .numbers div:first-child,.numbers div.first{background:radial-gradient(circle at 32% 28%,#fff6b8 0%,#ffc83d 55%,#d98200 100%)!important;color:#4a2b00;text-shadow:none;border-color:#fff}
body.t-light .numbers div{background:radial-gradient(circle at 32% 28%,#ffb3b3 0%,#e63946 55%,#9d1520 100%)!important;border-radius:50%!important;color:#fff;border:2px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.25)}
body.t-light .numbers div:first-child{background:radial-gradient(circle at 32% 28%,#fff6b8 0%,#ffc83d 55%,#d98200 100%)!important;color:#4a2b00}

/* ---- 1-90 board ---- */
.game-board td{background:#f3efff!important;color:#5a4a8a;border-color:#e3dbff!important;border-radius:4px;font-weight:600}
.game-board td.highlight{background:linear-gradient(135deg,var(--violet2),var(--violet))!important;color:#fff!important}
.game-board td.last-number{background:radial-gradient(circle,#ff6a6a,var(--red))!important;color:#fff!important;box-shadow:0 0 0 3px #ffc83d inset;animation:glow 1.2s infinite alternate}
@keyframes glow{to{box-shadow:0 0 0 3px #ffc83d inset,0 0 14px 2px rgba(255,200,61,.9)}}
.bd td{border-color:#e3dbff!important;color:#5a4a8a}
.bd td.closed{background:linear-gradient(135deg,var(--violet2),var(--violet))!important;color:#fff}
.bd td.highlight{background:radial-gradient(circle,#ff6a6a,var(--red))!important;color:#fff;box-shadow:0 0 0 3px #ffc83d inset}

/* ---- tickets ---- */
.ticket{background:var(--cream)!important;border:3px solid var(--gold)!important;border-radius:14px!important;box-shadow:0 5px 14px rgba(0,0,0,.2)!important}
.ticket>div.bg-dark{background:linear-gradient(90deg,var(--violet),var(--magenta))!important;font-family:'Baloo 2','Poppins',sans-serif;letter-spacing:.08em}
.ticket td{background:#fffdf5!important;border-color:#eadfbe!important;color:var(--ink);font-weight:700!important;font-size:15px!important}
.ticket td.blank{background:repeating-linear-gradient(45deg,#f3e9c8,#f3e9c8 5px,#fbf3d8 5px,#fbf3d8 10px)!important}
.ticket td.marked{background:radial-gradient(circle at 50% 40%,var(--violet2),var(--violet))!important;color:#fff!important}
.ticket td.last-number{background:radial-gradient(circle,#ff6a6a,var(--red))!important;color:#fff!important;border:2px solid var(--gold)!important}
.ticket .claimed-row td.marked,.ticket .claimed-row td.last-number{background:linear-gradient(135deg,#2ecc71,var(--green))!important;color:#fff!important}

/* ---- misc widgets ---- */
#toast{background:linear-gradient(135deg,var(--violet2),var(--violet))!important;border:3px solid var(--gold);color:#fff}
#ann,.ann-bar{background:linear-gradient(90deg,#ffe07a,var(--gold),#ffe07a)!important;color:#3b2200!important;border:2px solid #fff3b0!important;border-radius:14px;font-weight:700;text-align:center}
#autoInfo{color:#ffe9a8!important}
.claimMsg{background:#eafaf0;border:2px solid var(--green);color:#0d5b30}
.tile{background:linear-gradient(135deg,var(--violet2),var(--violet))!important;border-radius:14px!important}
.tile.warn{background:linear-gradient(135deg,#ffb347,#ff8c1a)!important}.tile.green{background:linear-gradient(135deg,#2ecc71,var(--green))!important}
.chat-box{border-radius:12px!important;border-color:#e3dbff!important}
.legal{text-align:center;font-size:.76rem;opacity:.8;padding:14px 10px 22px}
body.t-dark .legal,body.t-dark .legal a{color:#d9c9ff}
body.t-light .legal,body.t-light .legal a{color:#6b4fc4}
.legal a{text-decoration:underline}

/* ---- leaderboard overlay ---- */
#lbOv{position:fixed;inset:0;z-index:2500;background:rgba(10,3,30,.82);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:14px;backdrop-filter:blur(3px);animation:lbIn .45s ease}
@keyframes lbIn{from{opacity:0;transform:translateY(24px)}}
.lb-card{width:100%;max-width:460px;border-radius:26px;overflow:hidden;background:linear-gradient(180deg,#a9b4ff,#8d9bff);box-shadow:0 20px 60px rgba(0,0,0,.6);margin:auto;color:#1f1650}
.lb-head{position:relative;background:linear-gradient(180deg,#1d1163,#33208f);color:#fff;padding:16px 12px 78px;border-radius:0 0 50% 50%/0 0 46px 46px;text-align:center}
.lb-head h3{margin:0 0 8px;font-weight:800;letter-spacing:.06em;font-size:1.35rem}
.lb-x{position:absolute;right:14px;top:10px;background:none;border:0;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.lb-podium{display:flex;justify-content:center;align-items:flex-end;gap:10px;margin-top:6px}
.lb-p{flex:1;max-width:120px;text-align:center}
.lb-p .nm{font-weight:700;font-size:.85rem;word-break:break-word;margin-top:4px}
.lb-p .sc{font-size:.8rem;opacity:.9}
.lb-p .sc b{font-size:1.15rem}
.lb-p.first{margin-bottom:-26px}
.lb-p.first .av{width:92px;height:92px;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,200,61,.35),0 0 22px rgba(255,200,61,.8)}
.lb-p.first .nm{font-size:1rem}
.lb-crown{font-size:2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
.av{width:64px;height:64px;border-radius:50%;border:3px solid #fff;display:flex;align-items:center;justify-content:center;font-family:'Baloo 2','Poppins',sans-serif;font-weight:800;color:#fff;font-size:1.5rem;margin:0 auto;box-shadow:0 4px 10px rgba(0,0,0,.35)}
.lb-p.first .av{font-size:2.1rem}
.lb-badge{display:inline-block;background:#fff;color:#2a1a7a;border-radius:10px;font-weight:800;font-size:.7rem;padding:0 7px;margin-bottom:3px}
.lb-list{padding:34px 0 6px}
.lb-list .hd{display:flex;background:#1d1163;color:#fff;font-weight:800;font-size:.72rem;letter-spacing:.08em;padding:7px 16px;margin:0 12px}
.lb-row{display:flex;align-items:center;gap:10px;padding:8px 16px;margin:0 12px;font-weight:700}
.lb-row:nth-child(odd){background:rgba(255,255,255,.35)}.lb-row:nth-child(even){background:rgba(255,255,255,.18)}
.lb-row .rk{width:34px;font-size:1.5rem;font-weight:800;color:#1f1650}
.lb-row .av{width:42px;height:42px;font-size:1rem;margin:0;flex:none}
.lb-row .nm{flex:1;min-width:0;word-break:break-word}
.lb-row .nm small{display:block;font-weight:500;opacity:.8;font-size:.72rem}
.lb-row .sc{font-size:1.2rem;font-weight:800}
.lb-row.me{outline:3px solid var(--gold);outline-offset:-3px}
.lb-foot{text-align:center;padding:12px 16px 18px;font-weight:600;font-size:.85rem;color:#1f1650}
@media (max-width:480px){#lbOv{padding:8px}.lb-p .nm{font-size:.78rem}}

/* ---- new-number popup ---- */
#numPop{position:fixed;inset:0;z-index:2600;display:flex;align-items:center;justify-content:center;background:rgba(10,3,30,.5);pointer-events:none;transition:opacity .4s}
#numPop.out{opacity:0}
#numPop .np-in{text-align:center}
#numPop .np-lbl{color:#fff;font-family:'Baloo 2','Poppins',sans-serif;font-weight:800;letter-spacing:.35em;font-size:1.05rem;text-shadow:0 2px 8px rgba(0,0,0,.6);margin-bottom:10px}
#numPop .np-ball{width:min(62vw,62vh,300px);height:min(62vw,62vh,300px);border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:'Baloo 2','Poppins',sans-serif;font-weight:800;font-size:min(32vw,32vh,9rem);color:#4a2b00;
  background:radial-gradient(circle at 32% 28%,#fffbd0 0%,#ffd75e 45%,#e08e00 100%);border:7px solid #fff;
  box-shadow:0 0 0 9px rgba(255,200,61,.45),0 0 70px rgba(255,200,61,.95),inset 0 -10px 22px rgba(160,80,0,.35);animation:npIn .65s cubic-bezier(.2,1.5,.4,1)}
@keyframes npIn{from{transform:scale(.15) rotate(-220deg);opacity:0}}

/* ---- trophy chips (for fun – no cash value) ---- */
.chip{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CradialGradient id='g' cx='35%25' cy='28%25' r='85%25'%3E%3Cstop offset='0' stop-color='%23fff6b8'/%3E%3Cstop offset='.5' stop-color='%23ffc83d'/%3E%3Cstop offset='1' stop-color='%23d9820f'/%3E%3C/radialGradient%3E%3CradialGradient id='h' cx='38%25' cy='30%25' r='80%25'%3E%3Cstop offset='0' stop-color='%23fff0a0'/%3E%3Cstop offset='1' stop-color='%23f5a812'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='50' cy='50' r='48.5' fill='url(%23g)' stroke='%239a5200' stroke-width='2'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(0 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(45 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(90 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(135 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(180 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(225 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(270 50 50)'/%3E%3Crect x='43' y='1.5' width='14' height='15' rx='2.5' fill='%23fff2a8' transform='rotate(315 50 50)'/%3E%3Ccircle cx='50' cy='50' r='33' fill='url(%23h)' stroke='%23c26d08' stroke-width='3'/%3E%3Ccircle cx='50' cy='50' r='29' fill='none' stroke='%23fff3a0' stroke-width='1.2' opacity='.8'/%3E%3Cpolygon points='50.0%2C28.0 55.8%2C42.0 70.9%2C43.2 59.4%2C53.1 62.9%2C67.8 50.0%2C59.9 37.1%2C67.8 40.6%2C53.1 29.1%2C43.2 44.2%2C42.0' fill='%23fff7c2' stroke='%23c26d08' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.chips{display:inline-flex;align-items:center;flex-wrap:wrap;gap:0;margin-left:2px;font-weight:700;font-size:.85rem;color:#ffe08a}
.chips .chip+.chip{margin-left:-.55em}
.chips .cn{margin-left:.35em}
body.t-light .chips{color:#9a5200}
.chipbig{width:2.2em;height:2.2em}
@keyframes chipspin{0%{transform:rotateY(0) scale(.6)}100%{transform:rotateY(720deg) scale(1)}}
.chip.spin{animation:chipspin 1.1s ease-out}
