/* Bingo cards — shared styles for /bingo-cards/* and /bingo-card-generator/ */
.material-symbols-outlined { font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; vertical-align:middle; }
.bc-wrap { max-width: 1000px; margin: 20px auto 0; padding: 0 24px; }
.bc-layout { display:grid; grid-template-columns:1fr; gap:24px; }
@media (min-width: 880px) { .bc-layout { grid-template-columns: 320px 1fr; align-items:start; } }
.bc-panel { background:var(--card-bg,#fff); border:1px solid var(--outline-variant,#e2e8f0); border-radius:var(--radius,12px); padding:20px; box-shadow:var(--shadow); }
.bc-field { margin-bottom:16px; }
.bc-field > label, .bc-field .bc-label { display:block; font-weight:700; font-size:14px; margin-bottom:6px; color:var(--text-primary); }
.bc-field input[type=text], .bc-field input[type=number], .bc-field select, .bc-field textarea { width:100%; padding:9px 11px; border:1px solid var(--outline-variant,#bec9c0); border-radius:var(--radius-sm,8px); font-family:var(--font-stack); font-size:15px; background:#fff; box-sizing:border-box; }
.bc-field textarea { min-height:200px; resize:vertical; line-height:1.55; font-family:ui-monospace,Menlo,monospace; font-size:13.5px; }
.bc-hint { font-size:12px; color:var(--text-muted); margin-top:5px; line-height:1.45; }
.bc-seg { display:flex; gap:6px; flex-wrap:wrap; }
.bc-seg button { flex:1; min-width:52px; padding:8px 10px; border:1px solid var(--outline-variant,#bec9c0); background:#fff; border-radius:var(--radius-sm,8px); font-weight:600; font-size:14px; cursor:pointer; color:var(--text-primary); font-family:var(--font-stack); }
.bc-seg button.on { background:var(--accent); border-color:var(--accent); color:#fff; }
.bc-check { display:flex; align-items:center; gap:8px; font-size:14px; margin:6px 0; cursor:pointer; color:var(--text-primary); }
.bc-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:12px 16px; background:var(--accent); color:#fff; border:none; border-radius:var(--radius-sm,8px); font-weight:700; font-size:16px; cursor:pointer; font-family:var(--font-stack); text-decoration:none; box-sizing:border-box; }
.bc-btn:hover { background:var(--accent-dark); }
.bc-btn[disabled] { opacity:.6; cursor:wait; }
.bc-btn-ghost { background:#fff; color:var(--accent); border:1px solid var(--accent); margin-top:10px; font-size:14px; padding:9px 14px; }
.bc-btn-ghost:hover { background:var(--accent-light,#eef7f1); }
.bc-msg { font-size:13px; margin-top:10px; min-height:18px; }
.bc-msg.err{color:#dc2626;} .bc-msg.ok{color:var(--green-text,#166534);} .bc-msg.warn{color:#92400e;}
.bc-preview { text-align:center; }
.bc-preview-note { font-size:12px; color:var(--text-muted); margin-top:10px; }

/* card preview */
.bc-card { max-width:520px; margin:0 auto; font-family:var(--font-stack); }
.bc-title { font-family:var(--font-display); font-weight:800; font-size:22px; margin-bottom:8px; color:#1b1c1c; }
.bc-grid { display:grid; border:3px solid #1b1c1c; background:#fff; }
.bc-head { background:#232323; color:#fff; font-weight:800; font-size:26px; text-align:center; padding:4px 0; font-family:var(--font-display); }
.bc-cell { aspect-ratio:1/1; border:1px solid #444; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:4px; box-sizing:border-box; overflow:hidden; min-width:0; }
.bc-pic img { width:78%; height:66%; object-fit:contain; display:block; }
.bc-pic span { font-size:10.5px; line-height:1.1; margin-top:3px; color:#333; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.bc-s3 .bc-pic span, .bc-s4 .bc-pic span { font-size:13px; }
.bc-txt span { font-size:12px; line-height:1.2; color:#222; overflow-wrap:anywhere; }
.bc-s3 .bc-txt span, .bc-s4 .bc-txt span { font-size:15px; }
.bc-txt.bc-word span { font-size:22px; font-weight:600; }
.bc-s3 .bc-txt.bc-word span, .bc-s4 .bc-txt.bc-word span { font-size:30px; }
.bc-sign { display:block; width:76%; border-bottom:1px solid #999; margin-top:6px; }
.bc-num { font-size:28px; font-weight:700; color:#1b1c1c; }
.bc-free { font-weight:800; font-size:13px; color:#1b1c1c; }
.bc-free span { font-size:26px; line-height:1; }
@media (max-width: 520px) { .bc-txt span { font-size:9.5px; } .bc-txt.bc-word span { font-size:15px; } .bc-pic span { font-size:8px; } .bc-num { font-size:20px; } .bc-head { font-size:20px; } }

/* hub + related */
.bc-hub-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:20px; max-width:var(--container-width,1080px); margin:0 auto; padding:0 24px; }
.bc-hub-card { display:block; background:#fff; border-radius:16px; overflow:hidden; border:1px solid #eef1f0; text-decoration:none; color:inherit; }
.bc-hub-card .bc-thumb { aspect-ratio:4/5; overflow:hidden; border-bottom:1px solid #eef1f0; background:#fff; }
.bc-hub-card .bc-thumb img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
.bc-hub-card h3 { font-family:var(--font-display); font-weight:700; font-size:17px; margin:0 0 4px; color:var(--text-primary); }
.bc-hub-card p { font-size:13px; color:var(--text-secondary); margin:0; }
.bc-hub-card .bc-body { padding:16px 18px; }
.bc-quick { max-width:760px; margin:8px auto 0; padding:22px 24px; background:var(--card-bg,#fff); border:1px solid var(--outline-variant,#e2e8f0); border-radius:var(--radius,12px); box-shadow:var(--shadow); display:grid; gap:16px; grid-template-columns:1fr; align-items:end; }
@media (min-width: 720px) { .bc-quick { grid-template-columns: 1.4fr 1fr 1fr 1.3fr; } }
.bc-quick h2 { grid-column:1/-1; margin:0; font-size:19px; }
.bc-quick .bc-field { margin:0; }
.bc-items { columns:3 160px; font-size:14px; color:var(--text-secondary); padding-left:18px; }
.bc-faq h3 { font-size:16px; margin:18px 0 4px; }

/* crawlable sample images */
.bc-samples { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; margin:8px 0 18px; }
.bc-samples figure { margin:0; background:#fff; border:1px solid #eef1f0; border-radius:12px; padding:10px; }
.bc-samples img { width:100%; height:auto; display:block; }
.bc-samples figcaption { font-size:13px; color:var(--text-secondary); margin-top:6px; text-align:center; }
