/* TambolaCaller — Picture / Word Bingo (v43) */
:root{
  --felt:#0E4D45; --felt-deep:#0A3631; --paper:#FBF3DE; --ink:#2B2B33; --gold:#F2B705;
  --pen:#C2185B; --shadow:0 3px 10px rgba(0,0,0,.35);
}
body[data-theme="classic"]{--felt:#8E2434;--felt-deep:#6E1A27;--gold:#F2B705}
body[data-theme="diwali"]{--felt:#3B0F57;--felt-deep:#26093A;--gold:#FFB627;--bg-extra:radial-gradient(380px circle at 85% 0%, rgba(255,182,39,.16), transparent 45%)}
body[data-theme="halloween"]{--felt:#1C1426;--felt-deep:#0F0A16;--gold:#FF8A1F;--bg-extra:radial-gradient(380px circle at 85% 5%, rgba(140,82,255,.16), transparent 45%)}
body[data-theme="thanksgiving"]{--felt:#5A2E14;--felt-deep:#3E1F0C;--gold:#F4A340}
body[data-theme="christmas"]{--felt:#0F4D2F;--felt-deep:#0A3520;--gold:#F4C430;--bg-extra:radial-gradient(380px circle at 90% 0%, rgba(226,59,59,.16), transparent 45%)}
body[data-theme="newyear"]{--felt:#0E1430;--felt-deep:#080C1F;--gold:#E9C46A;--bg-extra:radial-gradient(380px circle at 50% 0%, rgba(233,196,106,.16), transparent 50%)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:'Nunito Sans',system-ui,sans-serif;background:var(--bg-extra, linear-gradient(transparent,transparent)),radial-gradient(circle at 20% 0%,rgba(255,255,255,.07),transparent 45%),var(--felt);color:var(--paper);min-height:100vh}
a{color:var(--gold)}
.topnav{background:var(--felt-deep);padding:12px 16px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.topnav a{color:var(--paper);text-decoration:none;font-weight:800;font-size:14px}
.topnav a:hover,.topnav a.on{color:var(--gold)}
.topnav .brand{color:var(--gold);font-family:'Lilita One',cursive;font-size:18px;font-weight:400;margin-right:auto}
.wrap{max-width:1000px;margin:0 auto;padding:0 16px}
header{text-align:center;padding:20px 0 6px}
header h1{font-family:'Lilita One',cursive;font-weight:400;font-size:clamp(28px,6vw,42px);text-shadow:0 2px 0 rgba(0,0,0,.25)}
header p{font-size:14.5px;opacity:.92;font-weight:700;margin-top:4px}
.others{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:12px 0 4px}
.others a{font-size:13px;font-weight:800;text-decoration:none;color:var(--paper);border:1.5px solid rgba(251,243,222,.35);padding:5px 12px;border-radius:18px}
.others a.on{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.tabs{display:flex;justify-content:center;gap:8px;margin:14px 0}
.tabs button{border:2px solid rgba(251,243,222,.45);background:transparent;color:var(--paper);font:800 15px 'Nunito Sans';padding:9px 20px;border-radius:24px;cursor:pointer}
.tabs button.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.pane{display:none}.pane.on{display:block}
.btn{font:800 14px 'Nunito Sans';background:var(--paper);color:var(--ink);border:none;border-radius:22px;padding:10px 18px;box-shadow:var(--shadow);cursor:pointer}
.btn.gold{background:var(--gold)}
.btn.go{background:#22C55E;color:#fff;font-size:16px;padding:12px 26px}
.btn.stop{background:#EF4444;color:#fff;font-size:16px;padding:12px 26px}
.btn.ghost{background:transparent;color:var(--paper);border:2px solid rgba(251,243,222,.5);box-shadow:none}
.btn:active{transform:scale(.96)}
select,input[type=text],input[type=number],textarea{font:700 14px 'Nunito Sans';border-radius:14px;border:none;padding:9px 12px;background:var(--paper);color:var(--ink)}
label.f{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:800;opacity:.95}
.bar{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:flex-end;margin:10px 0}
.hint{font-size:13px;text-align:center;opacity:.85;font-weight:700;margin:6px 0}
.panel{background:rgba(0,0,0,.18);border:1px solid rgba(251,243,222,.18);border-radius:14px;padding:14px;margin:12px 0}
.panel h3{font-family:'Lilita One';font-weight:400;font-size:19px;margin-bottom:8px;color:var(--gold)}
.panel p{font-size:13.5px;opacity:.9;margin-bottom:8px}
/* custom words */
#customBox textarea{width:100%;min-height:150px;resize:vertical;line-height:1.5}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.presets button{font:800 12.5px 'Nunito Sans';border:1.5px solid rgba(251,243,222,.45);background:transparent;color:var(--paper);padding:6px 11px;border-radius:16px;cursor:pointer}
.wcount{font-size:12.5px;font-weight:800;margin-top:6px}
.wcount.bad{color:#FCA5A5}
/* cards */
#sheets{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:16px 0}
.sheet{display:contents}
.pcard{background:#fff;color:var(--ink);border-radius:12px;padding:10px;box-shadow:var(--shadow);border:4px solid var(--gold);break-inside:avoid}
.pcard .top{display:flex;justify-content:space-between;gap:8px;font-size:11.5px;font-weight:800;margin-bottom:6px}
.pcard .top b{font-family:'Lilita One';font-weight:400;font-size:15px;color:var(--felt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}
.pg .hd{font-family:'Lilita One';font-size:24px;text-align:center;color:#fff;background:var(--felt);border-radius:6px;padding:2px 0;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.pg .c{aspect-ratio:1;border:2px solid var(--ink);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;background:#fff;overflow:hidden;padding:2px;cursor:pointer}
.pg .c .e{font-size:28px;line-height:1.05}
.pg .c .w{font-size:10.5px;font-weight:800;line-height:1.1;overflow-wrap:normal;word-break:normal}
.pg .c .w.l{font-size:8.6px}
.pg.words .c .w.l{font-size:10px}
.pg.words .c .w{font-size:12.5px}
.pg.pics .c .w{display:none}
.pg.pics .c .e{font-size:36px}
.pg .c.free{background:var(--gold);-webkit-print-color-adjust:exact;print-color-adjust:exact;cursor:default}
.pg .c.free .w{font-size:11px}
.pg .c.dab::after{content:'';position:absolute;inset:10%;border-radius:50%;background:var(--pen);opacity:.45}
.pg .c.hit{background:#BBF7D0}
.pg .c.hit.free{background:var(--gold)}
/* caller */
.stage{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:6px}
.tile{width:220px;height:220px;border-radius:28px;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.45),0 0 0 6px var(--gold);text-align:center;padding:10px}
.tile .e{font-size:96px;line-height:1.05}
.tile .w{font-family:'Lilita One';font-size:28px;line-height:1.1;margin-top:6px;word-break:break-word}
.tile.wordonly .w{font-size:34px}
.tile.pop{animation:pop .45s ease}
@keyframes pop{0%{transform:scale(.6) rotate(-8deg)}70%{transform:scale(1.06)}100%{transform:scale(1)}}
.calltext{font-size:17px;font-weight:800;min-height:24px;text-align:center}
.progress{font-size:13px;font-weight:800;opacity:.85}
.lastrow{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;min-height:34px;align-items:center;font-size:12px;font-weight:800}
.lastrow span{background:var(--paper);color:var(--ink);border-radius:16px;padding:4px 9px;opacity:.9}
.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:5px;background:var(--felt-deep);border-radius:14px;padding:8px;margin:14px 0}
.board .t{border-radius:10px;padding:5px 3px;text-align:center;background:rgba(255,255,255,.05);color:rgba(251,243,222,.45);min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.board .t .e{font-size:24px;filter:grayscale(1);opacity:.45}
.board .t .w{font-size:11px;font-weight:800;line-height:1.15;overflow-wrap:anywhere}
.board .t.on{background:var(--paper);color:var(--ink)}
.board .t.on .e{filter:none;opacity:1}
.board .t.cur{background:var(--gold);color:var(--ink);box-shadow:0 0 0 3px #fff}
.board .t.cur .e{filter:none;opacity:1}
.verdict{font-weight:800;font-size:15px;margin:8px 0;padding:8px 10px;border-radius:10px}
.verdict.yes{background:#22C55E;color:#fff}
.verdict.no{background:rgba(239,68,68,.9);color:#fff}
#checkCard .pcard{max-width:340px;margin:10px auto 0}
.tvexit{display:none}
/* big screen */
body.tv .topnav,body.tv header,body.tv .others,body.tv .tabs,body.tv .content,body.tv footer,body.tv .noTv{display:none !important}
body.tv{background:var(--felt-deep)}
body.tv .wrap{max-width:none;padding:2vh 2vw}
body.tv #pane-caller{display:grid;grid-template-columns:minmax(260px,34vw) 1fr;column-gap:2vw;min-height:96vh;align-items:center}
body.tv .stage{grid-column:1}
body.tv .board{grid-column:2;margin:0;grid-template-columns:repeat(auto-fill,minmax(min(11vw,15vh),1fr));gap:.8vh;padding:1vh;align-self:center}
body.tv .board .t{min-height:11vh}
body.tv .board .t .e{font-size:5vh}
body.tv .board .t .w{font-size:1.9vh}
body.tv .tile{width:min(48vh,30vw);height:min(48vh,30vw)}
body.tv .tile .e{font-size:min(22vh,14vw)}
body.tv .tile .w{font-size:min(5.5vh,3.4vw)}
body.tv .calltext{font-size:3.4vh}
body.tv .progress{font-size:2.4vh}
body.tv .lastrow{font-size:1.9vh}
body.tv .tvexit{display:inline-block}
body.tv .stage .bar .btn{font-size:2.2vh}
@media (orientation:portrait){
  body.tv #pane-caller{grid-template-columns:1fr;row-gap:2vh;align-content:start}
  body.tv .board{grid-column:1}
  body.tv .tile{width:min(34vh,70vw);height:min(34vh,70vw)}
  body.tv .tile .e{font-size:min(16vh,32vw)}
  body.tv .tile .w{font-size:min(4.5vh,8vw)}
}
/* deco */
#themeDeco{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden}
#themeDeco span{position:absolute;font-size:30px;opacity:.25;animation:tFloat 8s ease-in-out infinite}
@keyframes tFloat{50%{transform:translateY(-16px) rotate(10deg)}}
@media (prefers-reduced-motion:reduce){#themeDeco span{animation:none}}
/* content */
.content{max-width:760px;margin:34px auto 0;padding:0 16px;line-height:1.7}
.content h2{font-family:'Lilita One';font-weight:400;font-size:26px;color:var(--gold);margin:34px 0 10px}
.content h3{font-size:18px;margin:20px 0 6px}
.content p{margin-bottom:12px;color:rgba(251,243,222,.92)}
.content ul,.content ol{margin:0 0 14px 22px;color:rgba(251,243,222,.92)}
.content li{margin-bottom:6px}
.faq details{background:rgba(0,0,0,.18);border:1px solid rgba(251,243,222,.18);border-radius:12px;margin-bottom:10px}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:800;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq .a{padding:0 16px 14px;color:rgba(251,243,222,.88);font-size:14.5px}
footer{text-align:center;padding:30px 16px 24px;font-size:13px;color:rgba(251,243,222,.65)}
footer a{color:rgba(251,243,222,.85)}
footer p{margin-bottom:6px}
@media (max-width:520px){
  .tile{width:180px;height:180px}
  .tile .e{font-size:78px}
  .tile .w{font-size:23px}
  .board{grid-template-columns:repeat(auto-fill,minmax(66px,1fr))}
  .pg .c .e{font-size:24px}
  .pg .c .w{font-size:9.5px}
}
/* print: sirf cards */
@media print{
  @page{margin:10mm}
  body{background:#fff !important;color:#000}
  body > *:not(.wrap){display:none !important}
  .wrap{max-width:none;padding:0}
  .wrap > *:not(#pane-cards){display:none !important}
  #pane-cards{display:block !important}
  #pane-cards > *:not(#sheets){display:none !important}
  #sheets{display:block;margin:0}
  .sheet{display:grid !important;gap:6mm;margin:0;break-after:page;page-break-after:always;justify-content:center}
  .sheet:last-child{break-after:auto;page-break-after:auto}
  /* v43b: card poora page bhare — Letter (216x279) aur A4 (210x297) dono me fit */
  .sheet.pp1{grid-template-columns:186mm}
  .sheet.pp2{grid-template-columns:176mm;gap:6mm}
  .sheet.pp4{grid-template-columns:92mm 92mm;gap:6mm 4mm}
  .pcard{box-shadow:none;border-width:3px;display:flex;flex-direction:column;break-inside:avoid;page-break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pp1 .pcard{height:250mm;padding:4mm}
  .pp2 .pcard,.pp4 .pcard{height:122mm;padding:3mm}
  .pg{flex:1;grid-template-rows:auto repeat(5,minmax(0,1fr))}
  .pg .c{aspect-ratio:auto;border-width:1.5px;cursor:default}
  .pg .c.dab::after{display:none}
  .pp1 .pg .hd{font-size:34pt} .pp2 .pg .hd{font-size:20pt} .pp4 .pg .hd{font-size:18pt}
  .pp1 .pg .c .e{font-size:58pt} .pp1 .pg .c .w{font-size:16pt} .pp1 .pg .c .w.l{font-size:13pt} .pp1 .pg.words .c .w{font-size:20pt} .pp1 .pg.pics .c .e{font-size:70pt}
  .pp2 .pg .c .e{font-size:30pt} .pp2 .pg .c .w{font-size:12pt} .pp2 .pg .c .w.l{font-size:10pt} .pp2 .pg.words .c .w{font-size:15pt} .pp2 .pg.pics .c .e{font-size:38pt}
  .pp4 .pg .c .e{font-size:26pt} .pp4 .pg .c .w{font-size:9.5pt} .pp4 .pg .c .w.l{font-size:7.8pt} .pp4 .pg.words .c .w{font-size:11pt} .pp4 .pg.pics .c .e{font-size:32pt}
  .pp1 .pcard .top{font-size:12pt;margin-bottom:3mm} .pp1 .pcard .top b{font-size:20pt}
  .pp2 .pcard .top b,.pp4 .pcard .top b{font-size:13pt}
  #themeDeco{display:none !important}
}
