:root{--bg:#0b0c0f;--fg:#e8eaed;--muted:#9aa0a6;--accent:#ff6f00;--panel:#15171b;--border:#2b3036}
@media (prefers-color-scheme: light){:root{--bg:#ffffff;--fg:#1f1f1f;--muted:#606368;--accent:#ef6c00;--panel:#f4f6f8;--border:#dfe3e8}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 system-ui,Segoe UI,Roboto,Helvetica,Arial}
.container{max-width:1100px;margin:0 auto;padding:16px}
.header h1{margin:.2rem 0;font-size:1.6rem}
.subtitle{margin:.2rem 0 .8rem;color:var(--muted)}
.controls{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:12px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.label{font-weight:600}
select,textarea,input,.btn{border:1px solid var(--border);background:#0000;color:var(--fg);border-radius:8px;padding:8px}
textarea{flex:1;min-width:280px}
.btn{cursor:pointer}
.btn.primary{background:var(--accent);color:#fff;border-color:transparent}
.checkbox{display:flex;align-items:center;gap:6px}
.seed-input{min-width:160px}
.board{background:var(--panel);border:1px solid var(--border);border-radius:12px;min-height:400px;padding:16px}
.sheet{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.card{border:1px solid var(--border);border-radius:12px;padding:12px;background:#0000;position:relative}
.bingo-grid{display:grid;gap:6px}
.bingo-grid .cell{display:grid;place-items:center;border:1px solid var(--border);border-radius:6px;padding:10px;min-width:50px;min-height:50px;font-weight:700}
.ticket{border:2px dashed var(--border);padding:10px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;font-weight:700;position:relative}
.with-cuts .card::after,.with-cuts .ticket::after{content:"";position:absolute;inset:4px;border:1px dashed var(--border);border-radius:8px;pointer-events:none}
.cut{color:var(--muted);font-size:12px;text-align:center;margin-top:4px}
.footer{color:var(--muted);margin-top:10px}
@media (max-width:680px){.row{flex-direction:column;align-items:stretch}.sheet{grid-template-columns:1fr}}

/* Print pagination and tidy */
@media print{
  body{background:#fff}
  .controls,.footer{display:none}
  .sheet{display:block}
  .page{break-after:page}
  .card{border:1px solid #777}
  .ticket{border-color:#777}
}
