:root{--bg:#f3eadb;--ink:#111;--paper:#fffaf0;--line:#161616;--muted:#6c6257;--yellow:#ffe08a;--green:#00FF5E;--danger:#ff595e;--radius:24px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 20% 0,#fff5db 0,#f3eadb 36%,#e9decf 100%);color:var(--ink);font-family:'IBM Plex Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;min-height:100vh}button,input,textarea,select{font:inherit}button{border:0;background:#111;color:#fff;border-radius:16px;min-height:46px;padding:12px 16px;font-weight:800;cursor:pointer}button.secondary{background:#e6ded2;color:#111;border:1px solid var(--line)}button.bingo-btn{background:var(--yellow);color:#111;border:2px solid #111;text-transform:uppercase}button:disabled{opacity:.45;cursor:not-allowed}.app-root{width:min(980px,100%);margin:0 auto;padding:14px}.card{background:var(--paper);border:2px solid var(--line);border-radius:var(--radius);box-shadow:7px 7px 0 #111;padding:18px;margin:14px 0}.auth-card{max-width:560px;margin:44px auto}.brand{font-size:clamp(2.5rem,11vw,5rem);line-height:.85;margin:0 0 12px;font-weight:900;letter-spacing:-.06em}.copy{color:var(--muted);font-weight:700}.field{display:grid;gap:6px;margin:12px 0}.field label{font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.field input,.field textarea,.field select{width:100%;border:2px solid var(--line);background:#fff;border-radius:16px;padding:13px 14px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions>*{flex:1}.linkbtn{background:transparent;color:#111;text-decoration:underline;border:0;padding:8px;min-height:auto;font-weight:900}.alert{padding:12px 14px;border-radius:16px;border:2px solid var(--line);background:#fff;margin:12px 0;font-weight:800}.alert.ok{background:#dcfce7}.alert.warn{background:#fff0bd}.alert.err{background:#ffe0de}.topnav{position:sticky;top:0;z-index:10;background:linear-gradient(#f3eadb 80%,#f3eadb00);padding:10px 0;display:flex;gap:8px;align-items:center;overflow:auto}.topnav a,.topnav button{white-space:nowrap;text-decoration:none;color:#111;background:#fff;border:2px solid #111;border-radius:999px;padding:10px 14px;font-weight:900;min-height:42px}.topnav .active{background:#111;color:#fff}.topnav .bingo{background:var(--yellow);color:#111}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-photo{width:min(600px,100%);aspect-ratio:1;border-radius:24px;object-fit:cover;border:2px solid #111;background:#eee;display:block}.profile-head{display:grid;grid-template-columns:minmax(180px,320px) 1fr;gap:18px;align-items:center}.code-box{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.secret-code{font-size:clamp(2.2rem,10vw,5rem);font-weight:950;letter-spacing:.08em;line-height:1}.secret-code.hidden{filter:blur(14px);user-select:none}.eye{width:62px;height:62px;border-radius:999px;font-size:1.5rem;background:#fff;color:#111;border:2px solid #111}.coupon,.list-item{border:2px solid #111;border-radius:18px;padding:14px;background:#fff;margin:10px 0;display:grid;gap:8px}.coupon h3,.list-item h3{margin:0;font-size:1.25rem}.coupon small{color:var(--muted);font-weight:800}.pill{display:inline-flex;background:#111;color:#fff;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900;width:max-content}.status-used{background:#e6ded2;color:#111}.admin-shell{max-width:980px;margin:0 auto}.admin-login{max-width:440px;margin:50px auto}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tabs button{flex:none}.textarea-lg{min-height:160px}.modal-back{position:fixed;inset:0;background:#0009;display:grid;place-items:center;padding:16px;z-index:50}.modal{background:#fff;border:2px solid #111;border-radius:24px;padding:16px;width:min(680px,100%);max-height:92vh;overflow:auto}.crop-stage{width:min(520px,100%);aspect-ratio:1;background:#eee;margin:auto;border:2px solid #111;border-radius:18px;overflow:hidden;position:relative}.crop-stage img{width:100%;height:100%;object-fit:cover}.bingo-frame{width:100%;height:calc(100vh - 90px);border:2px solid #111;border-radius:22px;background:#fff}.muted{color:var(--muted)}.table{width:100%;border-collapse:collapse;background:#fff;border:2px solid #111;border-radius:18px;overflow:hidden}.table th,.table td{border-bottom:1px solid #ddd;text-align:left;padding:10px;font-size:.92rem}.table th{background:#111;color:#fff}.kpi{font-size:2rem;font-weight:950}.photo-actions input{display:none}@media(max-width:720px){.profile-head,.grid2{grid-template-columns:1fr}.card{box-shadow:4px 4px 0 #111}.actions{display:grid}.topnav{padding-left:2px}.topnav a,.topnav button{font-size:.9rem}}
.admin-full .bingo-frame{min-height:72vh;width:100%;border:0;border-radius:24px;background:#fff}
.grid3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.span2{grid-column:span 1}.check-line{display:block;margin:8px 0;font-weight:700}.event-pick-list{background:#fff;border:2px solid #111;border-radius:18px;padding:12px;margin-top:8px}@media(max-width:800px){.grid3,.grid4{grid-template-columns:1fr}.admin-full .bingo-frame{min-height:80vh}}


/* Bingo native styles */

    :root{--bg:#f5f1e8;--paper:#fff;--ink:#111;--muted:#6b625a;--line:#ddd0c2;--soft:#eee6da;--yellow:#ffe08a;--green:#16a34a;--red:#b42318;--radius:18px}
    *{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:'IBM Plex Sans',system-ui,sans-serif;font-weight:400}button,input{font:inherit}button{color:#fff;cursor:pointer;background:#111;border:0;border-radius:14px;min-height:46px;padding:12px 14px;font-weight:600}button.secondary{color:#111;background:#e6ded2}button:disabled{opacity:.45;cursor:not-allowed}button,[role=button],.clickable,.card-grid button,.pattern-grid button,.black-ball{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none}button:not(:disabled),.card-grid button,.pattern-grid button{transition:transform .08s ease,opacity .08s ease}button:not(:disabled):active,.card-grid button:active,.pattern-grid button:active{transform:scale(.98);opacity:.88}input{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:12px}.app-shell{width:min(1180px,100%);margin:0 auto;padding:14px}.player-shell{max-width:760px;padding-top:0}h1{margin:0 0 14px;font-size:clamp(2rem,6vw,4rem);font-weight:600;line-height:.95}h2{margin:0 0 12px;font-size:1.1rem;font-weight:600}.panel,.bingo-card,.empty-state{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:0 8px 24px #0000000a}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.fixed-player-menu{z-index:20;background:linear-gradient(var(--bg) 88%,transparent);padding:8px 0 10px;position:sticky;top:0}.player-actions button{padding-inline:8px;font-size:.88rem}.hamburger-bar{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center}.header-notice-chip{border-radius:14px;padding:10px 12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-notice-chip.pending{background:var(--yellow);border:1px solid #d6a800;color:#111}.header-notice-chip.success{background:#dcfce7;border:1px solid #86efac;color:#14532d}.header-notice-chip.error{background:#fee2e2;border:1px solid #fecaca;color:#7f1d1d}.hamburger-button{font-size:1.4rem;padding:8px 14px}.card-chip{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-chip.mode{background:#d8d8d8;border-color:#999;color:#111;text-align:center}.dropdown-menu{display:none;grid-template-columns:1fr;gap:8px;margin-top:8px}.dropdown-menu.open{display:grid}.player-status-row{margin:8px 0 10px}.field{background:var(--paper);border:1px solid var(--line);border-radius:15px;flex-direction:column;justify-content:center;align-items:flex-start;gap:5px;min-width:0;padding:10px;display:flex}.field span{color:var(--muted);font-size:.72rem;line-height:1}.field strong{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:.92rem;font-weight:600;overflow:hidden}.field.highlight strong{font-size:1.35rem}.mini-pattern{grid-template-columns:repeat(5,8px);gap:2px;display:grid}.mini-pattern span{background:#ddd;border-radius:2px;width:8px;height:8px}.mini-pattern .on{color:#fff;background:#111;place-items:center;font-size:7px;display:grid}.mode-notice{color:#111;text-align:center;background:#d8d8d8;border:1px solid #999;border-radius:14px;margin:10px 0;padding:11px 13px;font-weight:600}.message{background:#eee;border:1px solid #ccc;border-radius:14px;margin:8px 0;padding:12px 14px;font-weight:600}.message.pending{background:var(--yellow);color:#111;border-color:#d6a800}.message.success{color:#14532d;background:#dcfce7;border-color:#86efac}.message.error{color:#7f1d1d;background:#fee2e2;border-color:#fecaca}.empty-state{text-align:center;padding:34px 18px}.empty-state .empty-mode{margin:18px auto 0;max-width:520px}.empty-state h1{font-size:2rem}.empty-state p{color:var(--muted)}.single-card-wrap{gap:12px;display:grid}.player-card-actions{gap:8px;display:grid}.win-button{border-radius:22px;padding:18px;font-size:1.45rem}.bingo-card header{color:var(--muted);justify-content:space-between;gap:10px;margin-bottom:10px;font-size:.85rem;display:flex}.bingo-card header strong{color:#111}.bingo-head{grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:4px;display:grid}.bingo-head strong{color:#fff;text-align:center;background:#111;border-radius:8px;padding:7px 0;font-weight:600}.card-grid,.pattern-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.card-grid button,.pattern-grid button{aspect-ratio:1;color:#111;background:#fff;border:1px solid #111;border-radius:10px;place-items:center;padding:0;font-size:1.3rem;font-weight:600;display:grid;position:relative}.card-grid .marked{color:#fff;background:#111}.card-grid .marked:after{content:"";pointer-events:none;border:2px solid #ffffffb3;border-radius:50%;position:absolute;inset:7px}.card-grid .free{color:#111;background:#ffe08a;font-size:.78rem}.card-grid .called:not(.marked){box-shadow:none}.pattern-board{max-width:360px}.pattern-grid button{font-size:1rem}.pattern-grid .selected{color:#fff;background:#111}.pattern-grid .hit{background:var(--green);color:#fff;border-color:var(--green)}.admin-config{grid-template-columns:1.3fr .7fr auto auto;align-items:end;gap:10px;margin-bottom:12px;display:grid}.admin-config label{color:var(--muted);font-size:.8rem;font-weight:600}.choice-row{grid-template-columns:1fr 1fr;gap:6px;display:grid;margin:12px 0 8px}.choice-row button{color:#111;background:#ddd}.choice-row .selected-choice{color:#fff;background:#111}.claims-strip{--claim-cols:1;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - ((var(--claim-cols) - 1) * 8px)) / var(--claim-cols));gap:8px;overflow-x:auto;padding-bottom:8px;margin:10px 0;scroll-snap-type:x proximity}.claim-box{background:#fff9e8;border-color:#f0c15a;gap:6px;margin:0;display:grid;scroll-snap-align:start;min-width:0}.claim-box.winner{background:#dcfce7;border-color:#16a34a}.claim-box.winner strong,.claim-box.winner small{color:#14532d}.claim-box small{color:var(--muted)}.claim-actions{gap:8px;display:flex}.claim-actions button{flex:1}.admin-counter{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-weight:600}.draw-panel{grid-template-columns:1fr auto auto;align-items:center;gap:14px;margin-bottom:12px;display:grid}.current-ball{flex-direction:column;gap:4px;display:flex}.current-ball span{color:var(--muted);font-size:.8rem}.current-ball strong{font-size:clamp(3rem,9vw,6rem);line-height:1}.draw-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-second-row{grid-template-columns:minmax(280px,360px) 1fr;align-items:start;gap:12px;display:grid}.sticky-panel{position:sticky;top:12px}.history{flex-wrap:wrap;gap:6px;min-height:40px;display:flex}.board-head{justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.number-board{grid-template-columns:repeat(15,minmax(30px,1fr));gap:6px;display:grid}.black-ball{color:#fff;background:#111;border:2px solid #111;border-radius:999px;place-items:center;min-width:31px;height:31px;font-size:.82rem;font-weight:600;display:inline-grid}.number-board .black-ball{color:#111;box-shadow:none;background:#fff;border-color:#111}.number-board .black-ball.called{color:#fff;box-shadow:none;background:#111;border-color:#111}.letter-groups{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;max-width:100%;display:grid;overflow:hidden}.letter-group{border:1px solid var(--line);background:#f7f1e9;border-radius:14px;min-width:0;padding:8px}.letter-group h3{text-align:center;margin:0 0 6px}.number-board.compact{grid-template-columns:repeat(5,1fr);gap:5px}.number-board.compact .black-ball{width:100%;min-width:0}.helper{color:var(--muted);font-size:.9rem;margin:8px 0 0}.modal-backdrop{position:fixed;inset:0;background:#0008;z-index:80;display:grid;place-items:center;padding:16px}.modal{background:#fff;border:1px solid var(--line);border-radius:22px;width:min(520px,100%);padding:18px;box-shadow:0 20px 70px #0006}.modal h2{margin-bottom:8px}.modal textarea{width:100%;min-height:120px;border:1px solid var(--line);border-radius:14px;padding:12px;font:inherit;resize:vertical}.modal input{margin:8px 0 10px}.push-fields{display:grid;grid-template-columns:1fr;gap:8px}.push-fields input{min-height:46px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.manual-push{margin-top:12px;display:grid;gap:8px}.manual-push .send-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.manual-push .push-fields{display:grid;grid-template-columns:1fr 1.4fr;gap:8px}.manual-push input{min-height:46px}.hide{display:none!important}
.ad-carousel{width:100%;background:#f7f1e9;border:1px dashed var(--line);border-radius:var(--radius);overflow:hidden;display:grid;place-items:center;position:relative}.ad-carousel a,.ad-carousel img{display:block;width:100%;height:100%}.ad-carousel img{object-fit:cover}.ad-carousel.square{aspect-ratio:16/9;margin-top:18px}.banner-panel{padding:0;overflow:hidden}.ad-carousel.wide{aspect-ratio:18/5;border:0;border-radius:var(--radius)}.ad-layer{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.ad-layer.current{opacity:1}.ad-layer.incoming{animation:adFadeIn .6s ease both}.ad-layer.outgoing{animation:adFadeOut .6s ease both}.empty-ad{color:var(--muted);font-weight:600}.banner-admin{display:grid;gap:12px}.banner-create{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(90px,.45fr) minmax(190px,1fr) minmax(220px,1fr) minmax(150px,auto);gap:8px;align-items:center}.banner-create input{min-width:0}.banner-create button{white-space:nowrap;min-width:150px}.banner-pending{display:flex;align-items:center;gap:10px;background:#f7f1e9;border:1px solid var(--line);border-radius:14px;padding:8px;font-weight:600}.banner-pending img{width:76px;height:76px;object-fit:cover;border-radius:10px}.banner-list{display:grid;gap:8px}.banner-item{display:grid;grid-template-columns:auto 64px 1fr .45fr 1fr auto auto;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px}.banner-item.dragging{opacity:.45}.banner-item img{width:64px;height:64px;object-fit:cover;border-radius:10px;background:#eee}.drag-handle{cursor:grab;font-weight:600;color:var(--muted)}.cropper-modal canvas{width:100%;height:auto;background:#eee;border:1px solid var(--line);border-radius:14px;touch-action:none}.zoom-label{display:grid;gap:6px;margin-top:10px;color:var(--muted);font-weight:600}.admin-page{display:grid;gap:12px}@keyframes adFadeIn{from{opacity:0}to{opacity:1}}@keyframes adFadeOut{from{opacity:1}to{opacity:0}}
@media (max-width:860px){.admin-config,.draw-panel,.admin-second-row,.manual-push .push-fields,.banner-create,.banner-item{grid-template-columns:1fr}.claims-strip{--claim-cols:1!important}.sticky-panel{position:static}.number-board{grid-template-columns:repeat(auto-fit,minmax(38px,1fr));justify-items:center}.number-board.compact{grid-template-columns:repeat(5,1fr);justify-items:center}.number-board .black-ball{width:31px;min-width:31px}.field{padding:8px}.field strong{font-size:.8rem}.field.highlight strong{font-size:1rem}}@media print{body{background:#fff}.no-print,.fixed-player-menu,.message,.mode-notice,.empty-state{display:none!important}.app-shell{padding:0}.single-card-wrap{display:block}.bingo-card{box-shadow:none;break-inside:avoid;width:100%}@page{size:letter;margin:.35in}}
  
.bingo-native-panel{background:rgba(255,245,225,.45);border-radius:24px;padding:clamp(12px,3vw,24px);min-height:60vh}.bingo-native-panel .app-shell{padding:0;max-width:none}.bingo-native-panel .fixed-player-menu{position:static}.bingo-native-panel .player-shell{padding:0}

.notify-row{display:flex;align-items:center;gap:10px;margin:8px 0 12px;flex-wrap:wrap}.notify-btn{display:inline-flex;align-items:center;gap:8px;background:#111;color:#fff;border-radius:999px;min-height:42px;padding:10px 14px}.notify-status{font-weight:800;color:var(--muted)}
