/* The printable bingo card maker: the form, the live preview of the real pages, the on-screen caller, and a print stylesheet that prints only the cards. */
.bingo-maker{color:var(--ink,#201b38)}
.bm-top{max-width:1320px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:12px 48px;align-items:end;padding-bottom:6px!important}
.bm-heading h1{font-size:clamp(2.6rem,6vw,5.2rem);line-height:.95;letter-spacing:-.055em;margin:14px 0 10px}
.bm-sub{font-size:clamp(1.1rem,2vw,1.4rem);font-weight:750;line-height:1.3;margin:0;max-width:520px}
.bm-short{margin:0;font-size:.98rem;line-height:1.6;padding:14px 18px;border-radius:18px;background:#fff8ec;border:1px solid #f1e2c8}.bm-short strong{color:#b8322e}
/* The tool: settings beside the preview */
.bm-tool{max-width:1320px;margin:auto;display:grid;grid-template-columns:minmax(330px,.86fr) minmax(0,1.14fr);gap:clamp(18px,3vw,40px);align-items:start;padding-top:18px!important}
.bm-form{display:grid;gap:14px;min-width:0}
.bm-form fieldset{border:0;margin:0;padding:0;min-width:0}
.bm-form legend,.bm-field{font-weight:800;font-size:.95rem;margin:0 0 8px;padding:0;display:block}.bm-field small,.bm-check small{font-weight:600;color:#6a6480;font-size:.8rem}
.bm-group{display:grid;gap:10px;padding:16px!important;border-radius:20px!important;background:#fff;border:1px solid #e6e1ee!important}
.bm-group legend{float:left;width:100%;margin-bottom:2px}
.bm-themes{padding:16px!important;border-radius:20px!important;background:#f4f9f8;border:1px solid #d6e9e6!important}.bm-themes legend{float:left;width:100%}
.bm-theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;clear:both}
.bm-theme{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 10px 6px 6px;border-radius:14px;border:2px solid #dfe8e6;background:#fff;font-weight:750;font-size:.9rem;line-height:1.2;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.bm-theme input{position:absolute;opacity:0;width:1px;height:1px}
.bm-theme:hover{border-color:#9fd2c8}.bm-theme:has(input:checked){border-color:#1f7a74;box-shadow:0 0 0 1px #1f7a74 inset,0 4px 12px #1f7a7422;background:#f1fbf9}
.bm-theme:has(input:focus-visible){outline:3px solid #f2b632;outline-offset:2px}
.bm-glyph{flex:none;width:38px;height:38px;border-radius:11px;background:#fff6e6;display:grid;place-items:center;overflow:hidden}.bm-glyph svg{width:34px;height:34px;display:block}
.bm-glyph.is-num{background:#14383e;color:#f2b632;font-family:var(--display);font-weight:800;font-size:.95rem}.bm-glyph.is-text{background:#eef2ff;color:#3f4a6e;font-weight:800;font-size:.7rem}.bm-glyph.is-pen{background:#fdf0ec;color:#b8322e;font-family:var(--display);font-weight:800;font-size:1rem}
.bm-glyph.is-blank{background:#fff;border:2px dashed #b8c4c2;background-image:linear-gradient(#b8c4c2,#b8c4c2),linear-gradient(#b8c4c2,#b8c4c2);background-size:2px 100%,100% 2px;background-position:center;background-repeat:no-repeat}
.bm-seg{display:grid;gap:6px}.bm-seg legend{font-size:.85rem;margin:0 0 6px}.bm-seg>div{display:flex;gap:4px;padding:4px;border-radius:14px;background:#f1eef6;flex-wrap:wrap}
.bm-seg label{flex:1 1 0;min-width:max-content;position:relative}.bm-seg input{position:absolute;opacity:0;width:1px;height:1px}
.bm-seg span{display:grid;place-items:center;min-height:44px;padding:6px 12px;border-radius:11px;font-weight:750;font-size:.9rem;cursor:pointer;text-align:center;line-height:1.15}
.bm-seg input:checked+span{background:#fff;box-shadow:0 1px 4px #20183a22;color:#14383e}.bm-seg input:focus-visible+span{outline:3px solid #f2b632;outline-offset:1px}
.bm-check{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:700;font-size:.92rem;cursor:pointer}.bm-check input{width:22px;height:22px;accent-color:#1f7a74;flex:none;margin:0}.bm-check:has(input:disabled){opacity:.5}
.bm-hint{margin:0;font-size:.84rem;color:#5a5470;line-height:1.45}
.bm-count{display:flex;align-items:stretch;gap:6px;max-width:220px}.bm-count input{flex:1;min-width:0;text-align:center;font-size:1.25rem;font-weight:800;border-radius:12px;border:1.5px solid #d6d0e2;min-height:48px;padding:0 6px;font-variant-numeric:tabular-nums}
.bm-step{width:48px;min-height:48px;border-radius:12px;border:1.5px solid #d6d0e2;background:#fff;font-size:1.4rem;font-weight:700;cursor:pointer;color:#14383e}.bm-step:hover{background:#f4f9f8}
.bm-form input[type=text],.bm-form input:not([type]),.bm-form textarea,.bm-select{width:100%;border-radius:12px;border:1.5px solid #d6d0e2;min-height:46px;padding:10px 12px;font:inherit;font-size:1rem;background:#fff;color:inherit}
.bm-form textarea{min-height:170px;resize:vertical;line-height:1.45}
.bm-list{padding:16px;border-radius:20px;background:#fdf5f2;border:1px solid #f2dcd4;display:grid;gap:8px}.bm-list[hidden]{display:none}
.bm-list-status{margin:0;font-weight:750;font-size:.88rem;color:#b8322e}.bm-list-status[data-ok=true]{color:#1f7a74}
.bm-starters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0;font-size:.85rem;font-weight:700}
.bm-chip,.bm-btn{min-height:44px;padding:8px 14px;border-radius:999px;border:1.5px solid #d6d0e2;background:#fff;font:inherit;font-weight:750;font-size:.86rem;cursor:pointer;color:#14383e}.bm-chip:hover,.bm-btn:hover:not(:disabled){border-color:#1f7a74}.bm-btn:disabled{opacity:.4;cursor:default}
.bm-saved-row{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.bm-saved-row .bm-field{flex:1 1 180px;margin:0}.bm-saved-row select{width:100%;min-height:44px;border-radius:12px;border:1.5px solid #d6d0e2;padding:8px;font:inherit;margin-top:6px}
.bm-code{padding:12px 16px;border-radius:16px;border:1px dashed #cfc8dc;font-size:.9rem}.bm-code summary{cursor:pointer;font-weight:700;min-height:28px}.bm-code p{margin:8px 0;line-height:1.5;color:#5a5470}
.bm-code-row{display:flex;gap:8px}.bm-code-row input{max-width:140px;text-transform:uppercase;letter-spacing:.2em;font-weight:800;font-family:var(--display)}
.bm-error{margin:0;min-height:0;color:#b8322e;font-weight:750}.bm-error:empty{display:none}
.bm-side{position:sticky;top:12px;display:grid;gap:12px;min-width:0}
.bm-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.bm-actions .button{min-height:50px}.bm-print-btn{background:#14383e;border-color:#14383e;color:#fff}.bm-print-btn:disabled,.bm-actions .button:disabled{opacity:.45;cursor:not-allowed}
.bm-preview{border-radius:24px;padding:16px;background:radial-gradient(ellipse at 20% 0,#ffffff 0,transparent 60%),linear-gradient(160deg,#e8f1ef,#f4eee6);border:1px solid #e0e6e4;min-width:0}
.bm-sheet{position:relative;overflow:hidden;border-radius:4px;box-shadow:0 18px 40px #1c2a2e2e,0 2px 6px #1c2a2e22;background:#fff;min-height:200px}
.bm-pages{transform-origin:0 0;width:max-content}
.bm-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.bm-pager p{margin:0;font-weight:700;font-size:.88rem;color:#3c4a4c;text-align:center}.bm-pager .bm-btn{width:48px;font-size:1.3rem;padding:0}
.bm-facts{margin:0;font-size:.86rem;color:#4f4866;line-height:1.5}
.bm-noscript{max-width:980px;margin:auto}
/* ---------- The printed page (preview and print share this) ---------- */
.bm-page{--bm-a:#14383e;--bm-b:#f2b632;--bm-c:#e8504a;--bm-tint:#f3faf8;--bm-line:#bcd8d2;--bm-free:#ffe8a3;--bm-ink:#1c2a2e;box-sizing:border-box;width:210mm;height:297mm;padding:12mm;background:#fff;color:var(--bm-ink);display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;gap:0;overflow:hidden;font-family:DM,Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.bm-page[data-paper=letter]{width:8.5in;height:11in}
.bm-page[data-theme=baby-shower]{--bm-a:#4a8068;--bm-b:#ffd978;--bm-c:#f39a6b;--bm-tint:#f2f9f4;--bm-line:#c6e0d2;--bm-free:#ffe9b0}
.bm-page[data-theme=bridal-shower]{--bm-a:#8a4a5e;--bm-b:#f2d48a;--bm-c:#e8857a;--bm-tint:#fdf4f1;--bm-line:#f0d2ca;--bm-free:#fde4cf}
.bm-page[data-theme=christmas]{--bm-a:#1f6b47;--bm-b:#ffd36b;--bm-c:#c23a44;--bm-tint:#f2f8f4;--bm-line:#bcdcc8;--bm-free:#fff1c4}
.bm-page[data-theme=halloween]{--bm-a:#3b2560;--bm-b:#ffcf5a;--bm-c:#e2632a;--bm-tint:#f7f3fc;--bm-line:#d9cdee;--bm-free:#ffe2b0}
.bm-page[data-theme=harvest]{--bm-a:#7a3a1c;--bm-b:#f6c453;--bm-c:#c2531f;--bm-tint:#fdf6ec;--bm-line:#ead2b4;--bm-free:#ffe9c4}
.bm-page[data-theme=office]{--bm-a:#3f4a6e;--bm-b:#9fd2f0;--bm-c:#e8504a;--bm-tint:#f4f6fb;--bm-line:#d2d8e8;--bm-free:#dff0fb}
.bm-page[data-theme=sight-words]{--bm-a:#2a5ab8;--bm-b:#ffd23f;--bm-c:#e8504a;--bm-tint:#f3f7ff;--bm-line:#c8d6f2;--bm-free:#fff0b0}
.bm-page[data-theme=blank]{--bm-tint:#fff}
.bm-card{container-type:inline-size;width:100%;display:flex;flex-direction:column;gap:2.2cqi}
.bm-page[data-per="1"] .bm-card{width:178mm}.bm-page[data-paper=letter][data-per="1"] .bm-card{width:168mm}.bm-page[data-per="2"] .bm-card{width:90mm}.bm-page[data-paper=letter][data-per="2"] .bm-card{width:84mm}
.bm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:3cqi;border-bottom:.8cqi solid var(--bm-a);padding-bottom:1.6cqi}
.bm-title{font-family:Manrope,Arial,sans-serif;font-weight:800;font-size:6.4cqi;line-height:1.05;letter-spacing:-.02em;color:var(--bm-a);overflow-wrap:anywhere}
.bm-num{flex:none;font-weight:800;font-size:3.2cqi;padding:1cqi 2.6cqi;border-radius:99px;background:var(--bm-a);color:#fff;white-space:nowrap}
.bm-letters{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2cqi}.bm-letters span{display:grid;place-items:center;height:11cqi;border-radius:2.2cqi;background:var(--bm-a);color:var(--bm-b);font-family:Manrope,Arial,sans-serif;font-weight:800;font-size:8.4cqi;line-height:1}
.bm-grid{display:grid;gap:1.2cqi}.bm-grid[data-grid="3"]{grid-template-columns:repeat(3,1fr)}.bm-grid[data-grid="4"]{grid-template-columns:repeat(4,1fr)}.bm-grid[data-grid="5"]{grid-template-columns:repeat(5,1fr)}
.bm-cell{aspect-ratio:1;border:.45cqi solid var(--bm-line);border-radius:2cqi;background:var(--bm-tint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6cqi;padding:1.2cqi;text-align:center;overflow:hidden;min-width:0}
.bm-word{font-weight:800;line-height:1.08;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;max-width:100%}
.bm-grid[data-grid="5"] .bm-word{font-size:3.15cqi}.bm-grid[data-grid="4"] .bm-word{font-size:3.9cqi}.bm-grid[data-grid="3"] .bm-word{font-size:5.2cqi}
.bm-cell.is-num .bm-word{font-family:Manrope,Arial,sans-serif;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.bm-grid[data-grid="5"] .is-num .bm-word{font-size:8.6cqi}.bm-grid[data-grid="4"] .is-num .bm-word{font-size:10.5cqi}.bm-grid[data-grid="3"] .is-num .bm-word{font-size:14cqi}
.bm-pic{width:66%;aspect-ratio:1;flex:none;display:block}.bm-grid[data-grid="5"] .bm-pic+.bm-word{font-size:2.7cqi}.bm-card[data-pictures-only] .bm-pic{width:84%}
.bm-cell.is-free{background:var(--bm-free);border-color:var(--bm-b)}.bm-cell.is-free .bm-word{text-transform:uppercase;letter-spacing:.12em;color:var(--bm-a)}
.bm-star{width:46%}.bm-star path{fill:var(--bm-b);stroke:var(--bm-a);stroke-width:5;stroke-linejoin:round}
.bm-cell.is-blank{background:#fff}
.bm-foot{display:flex;justify-content:space-between;gap:2cqi;font-size:2.3cqi;color:#5a6a6c;font-weight:600}
.bm-cut{width:100%;border-top:.3mm dashed #b8c4c2;flex:none}
.bm-page[data-ink]{--bm-tint:#fff;--bm-free:#fff;--bm-line:#8a9496}.bm-page[data-ink] .bm-letters span{background:#fff;color:var(--bm-ink);border:.45cqi solid #8a9496}.bm-page[data-ink] .bm-num{background:#fff;color:var(--bm-ink);border:.35cqi solid #8a9496}.bm-page[data-ink] .bm-head{border-color:#8a9496}.bm-page[data-ink] .bm-title{color:var(--bm-ink)}
.bm-page[data-ink] .bm-pic{filter:grayscale(1) brightness(1.28) contrast(.85)}.bm-page[data-ink] .bm-star path{fill:#fff;stroke:#8a9496}
.bm-empty{justify-content:center;text-align:center;font-size:12mm;color:#5a6a6c}.bm-empty p{margin:0 0 4mm;font-size:6mm;max-width:150mm;line-height:1.35}.bm-empty p:first-child{font-weight:800;color:#14383e;font-size:8mm}
/* Caller's checklist */
.bm-checklist{justify-content:flex-start;align-items:stretch;gap:6mm}.bm-check-head h2{font-family:Manrope,Arial,sans-serif;font-size:11mm;letter-spacing:-.03em;margin:0 0 2mm;color:var(--bm-a)}.bm-check-head p{margin:0 0 1.5mm;font-size:3.6mm;line-height:1.4}
.bm-check-cols{display:grid;gap:4mm}.bm-check-cols[data-cols="5"]{grid-template-columns:repeat(5,1fr)}.bm-check-cols[data-cols="4"]{grid-template-columns:repeat(4,1fr)}.bm-check-cols[data-cols="3"]{grid-template-columns:repeat(3,1fr)}
.bm-check-cols b{display:block;text-align:center;padding:2mm;border-radius:2mm;background:var(--bm-a);color:var(--bm-b);font-family:Manrope,Arial,sans-serif;font-size:6mm;margin-bottom:2mm}
.bm-check-cols span{display:flex;align-items:center;gap:3mm;font-size:5mm;font-weight:700;padding:1.3mm 2mm;border-bottom:.2mm solid var(--bm-line);font-variant-numeric:tabular-nums}
.bm-checklist i{flex:none;width:4.4mm;height:4.4mm;border:.4mm solid var(--bm-a);border-radius:1mm;display:inline-block}
.bm-check-list{list-style:none;margin:0;padding:0;columns:2;column-gap:8mm}.bm-check-list.is-long{columns:3;column-gap:5mm}
.bm-check-list li{break-inside:avoid;display:flex;align-items:center;gap:2.4mm;padding:1.2mm 0;border-bottom:.2mm solid var(--bm-line);font-size:3.9mm;font-weight:650;line-height:1.2}.bm-check-list .bm-pic{width:8mm}.bm-check-list.is-long li{font-size:3.3mm;padding:.9mm 0}
/* ---------- On-screen caller ---------- */
.bm-stage{max-width:1320px;width:calc(100% - 32px);box-sizing:border-box;margin:20px auto 0;border-radius:28px;padding:clamp(14px,3vw,32px);background:var(--bn-stage);color:var(--bn-cream);position:relative}.bm-stage[hidden]{display:none}
.bm-stage .bm-select{width:auto;min-height:44px;border-radius:999px;border:1.5px solid #ffffff4d;background:var(--bn-field);color:var(--bn-cream);padding:8px 14px;font:inherit;font-size:.88rem}
.bm-stage .bingo-check input{width:100%;max-width:200px;min-height:46px;padding:10px 14px;border-radius:12px;border:1.5px solid #ffffff4d;background:var(--bn-field2);color:var(--bn-cream);font:inherit;font-size:1rem;display:block;margin-bottom:8px}
.bm-checked{margin:0;max-width:340px}.bm-checked figcaption{font-weight:800;margin:0 0 6px;color:var(--bn-lilac)}
.bm-mini{display:grid;gap:4px;padding:8px;border-radius:14px;background:var(--bn-card)}.bm-mini[data-grid="3"]{grid-template-columns:repeat(3,1fr)}.bm-mini[data-grid="4"]{grid-template-columns:repeat(4,1fr)}.bm-mini[data-grid="5"]{grid-template-columns:repeat(5,1fr)}
.bm-mini span{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:var(--bn-cream);color:var(--bn-ink);font-size:.62rem;font-weight:800;text-align:center;line-height:1.05;padding:2px;overflow:hidden;overflow-wrap:anywhere;opacity:.55}
.bm-mini span[data-on]{opacity:1;box-shadow:inset 0 0 0 3px var(--bn-pumpkin-deep)}.bm-mini span[data-win]{background:#fff2c2;box-shadow:0 0 0 3px var(--bn-moon)}
/* ---------- Content ---------- */
.bm-how,.bm-need,.bm-words,.bm-editions,.bm-access,.bm-faq,.bm-host{max-width:1280px;margin:auto}
.bingo-maker h2{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.04;letter-spacing:-.045em;margin:0 0 14px}
.bm-how{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}.bm-how p{line-height:1.6}
.bm-steps{margin:16px 0 0;padding-left:22px;display:grid;gap:10px;line-height:1.55}.bm-steps b{display:block}
.bm-figure{margin:0}.bm-figure img{width:100%;height:auto;display:block;border-radius:22px;box-shadow:0 18px 40px #1c2a2e26}.bm-figure figcaption{font-size:.85rem;color:#5a5470;margin-top:8px}
.bm-need>p,.bm-editions>p{max-width:720px;line-height:1.6}
.bm-words{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px)}.bm-words p{line-height:1.6}
.bm-ranges td:first-child{font-family:var(--display);font-size:1.15rem;color:#14383e}
.bm-edition-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.bm-edition{display:grid;gap:6px;justify-items:start;padding:16px;border-radius:20px;border:1px solid #e6e1ee;background:#fff;color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s}.bm-edition:hover{transform:translateY(-2px);box-shadow:0 10px 24px #20183a1c}
.bm-edition span{width:56px;height:56px;display:block}.bm-edition svg{width:100%;height:100%;display:block}.bm-edition b{font-size:1.02rem}.bm-edition small{color:#5a5470;line-height:1.35}
.bm-links{margin-top:18px;font-weight:650}
.bm-access .bingo-tier:last-child{background:#14383e;border-color:#14383e}
.bm-tier-list{margin:16px 0 0;padding-left:20px;display:grid;gap:8px;line-height:1.5}
.bm-host .party-host-form select{pointer-events:none}.bm-host-note{font-weight:700;font-size:.92rem;line-height:1.45;margin:4px 0 8px;color:#7a2e2a}.bm-host-note[data-ok=true]{color:#1f6b47}
.bm-faq a{font-weight:700}
.bm-symbols{position:absolute;width:0;height:0;overflow:hidden}
.bm-print-root{display:none}
@media(max-width:1100px){.bm-edition-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
 .bm-top{grid-template-columns:1fr}.bm-how,.bm-words{grid-template-columns:1fr}
 .bm-tool{grid-template-columns:1fr;padding-top:8px!important}.bm-side{display:contents}
 .bm-preview{order:1;padding:10px;border-radius:18px}.bm-form{order:2}.bm-facts{order:4}
 .bm-actions{order:3;position:sticky;bottom:0;z-index:5;margin:0 -16px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fffdf8f2;backdrop-filter:blur(8px);border-top:1px solid #e6e1ee;box-shadow:0 -8px 20px #20183a14}
 .bm-actions .button{flex:1 1 140px}.bm-actions [data-bm-shuffle]{display:none}
 .bm-edition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){.bm-need .bingo-table th:nth-child(4),.bm-need .bingo-table td:nth-child(4){display:none}.bm-need .bingo-table th:nth-child(3),.bm-need .bingo-table td:nth-child(3){display:table-cell}.bm-ranges th:nth-child(3),.bm-ranges td:nth-child(3){display:table-cell}}
@media(max-width:520px){.bm-heading h1{font-size:2.5rem;margin:8px 0 6px}.bm-sub{font-size:1rem}.bm-short{font-size:.88rem;padding:10px 12px;line-height:1.5}.bm-theme{font-size:.84rem;padding-right:6px}.bm-glyph{width:34px;height:34px}.bm-glyph svg{width:30px;height:30px}.bm-group,.bm-themes{padding:12px!important}.bm-stage{margin:14px auto 0;border-radius:20px;padding:12px}.bm-pager p{font-size:.8rem}}
/* ---------- Print: only the cards, one paper size, a page per sheet ---------- */
@page{margin:0}
@page a4{size:A4;margin:0}
@page letter{size:letter;margin:0}
@media print{
 html,body{margin:0!important;padding:0!important;background:#fff!important}
 body>*:not(.bm-print-root):not(.bm-symbols){display:none!important}
 .bm-print-root{display:block!important}
 .bm-print-root .bm-page{break-after:page;page-break-after:always;margin:0;box-shadow:none}
 .bm-print-root .bm-page:last-child{break-after:auto;page-break-after:auto}
 .bm-print-root .bm-page[data-paper=a4]{page:a4}.bm-print-root .bm-page[data-paper=letter]{page:letter}
 .bm-card{break-inside:avoid}
}
