/* Sabaq Connect: সব শর্টকোডের সাধারণ চেহারা। থিম/Elementor থেকে ফন্ট নেয়। */
.sbqc { --sbqc-accent: #0b6b3a; --sbqc-line: #e3e8e5; --sbqc-soft: #f4f8f6; --sbqc-text: #1d2a24; --sbqc-muted: #64736b; color: var(--sbqc-text); font-size: 16px; line-height: 1.6; box-sizing: border-box; }
.sbqc *, .sbqc *::before, .sbqc *::after { box-sizing: inherit; }
.sbqc a { color: var(--sbqc-accent); text-decoration: none; }
.sbqc a:hover { text-decoration: underline; }
.sbqc-msg { padding: 14px 16px; border: 1px solid var(--sbqc-line); border-left: 4px solid var(--sbqc-accent); background: var(--sbqc-soft); border-radius: 6px; margin: 8px 0; }
.sbqc-msg.is-error { border-left-color: #b32d2e; background: #fdf3f3; }
.sbqc-empty { padding: 18px; text-align: center; color: var(--sbqc-muted); border: 1px dashed var(--sbqc-line); border-radius: 8px; }
.sbqc-admin-hint { font-size: 13px; color: #8a5a00; background: #fff8e5; border: 1px solid #f0d9a0; padding: 8px 12px; border-radius: 6px; margin: 6px 0; }

/* টিকার */
.sbqc-ticker { display: flex; align-items: stretch; border: 1px solid var(--sbqc-line); border-radius: 6px; overflow: hidden; background: #fff; }
.sbqc-ticker__label { flex: 0 0 auto; background: var(--sbqc-accent); color: #fff; padding: 10px 16px; font-weight: 700; white-space: nowrap; display: flex; align-items: center; }
.sbqc-ticker__viewport { flex: 1 1 auto; overflow: hidden; position: relative; min-width: 0; display: flex; align-items: center; }
.sbqc-ticker__track { display: inline-flex; gap: 48px; white-space: nowrap; padding-left: 100%; animation: sbqc-marquee var(--sbqc-ticker-dur, 60s) linear infinite; }
.sbqc-ticker:hover .sbqc-ticker__track { animation-play-state: paused; }
.sbqc-ticker__item { color: var(--sbqc-text); }
.sbqc-ticker__item::before { content: "\25C6"; color: var(--sbqc-accent); margin-right: 10px; font-size: 11px; vertical-align: middle; }
@keyframes sbqc-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (prefers-reduced-motion: reduce) { .sbqc-ticker__track { animation: none; padding-left: 12px; white-space: normal; flex-wrap: wrap; gap: 8px 24px; } }

/* চলমান নোটিশ বোর্ড */
.sbqc-nscroll__viewport { height: var(--sbqc-nscroll-h, 420px); overflow: hidden; position: relative; border: 1px solid var(--sbqc-line); border-radius: 10px; background: #fff; }
.sbqc-nscroll__viewport::before, .sbqc-nscroll__viewport::after { content: ""; position: absolute; left: 0; right: 0; height: 26px; z-index: 2; pointer-events: none; }
.sbqc-nscroll__viewport::before { top: 0; background: linear-gradient(#fff, rgba(255,255,255,0)); }
.sbqc-nscroll__viewport::after { bottom: 0; background: linear-gradient(rgba(255,255,255,0), #fff); }
.sbqc-nscroll__track { list-style: none; margin: 0; padding: 0; will-change: transform; }
.sbqc-nscroll__track.is-ready { animation: sbqc-up var(--sbqc-nscroll-dur, 40s) linear infinite; }
.sbqc-nscroll__viewport:hover .sbqc-nscroll__track, .sbqc-nscroll__viewport:focus-within .sbqc-nscroll__track { animation-play-state: paused; }
.sbqc-nscroll__track li { margin: 0; padding: 0; border-bottom: 1px dashed var(--sbqc-line); }
.sbqc-nscroll__track a, .sbqc-nscroll__item { display: block; padding: 13px 16px; color: var(--sbqc-text) !important; text-decoration: none !important; }
.sbqc-nscroll__track a:hover .sbqc-nscroll__title { color: var(--sbqc-accent); }
.sbqc-nscroll__date { display: block; font-size: 13px; font-weight: 600; color: var(--sbqc-accent); margin-bottom: 2px; }
.sbqc-nscroll__title { display: block; font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
@keyframes sbqc-up { from { transform: translateY(0); } to { transform: translateY(calc(-1 * var(--sbqc-nscroll-dist, 50%))); } }
@media (prefers-reduced-motion: reduce) { .sbqc-nscroll__track.is-ready { animation: none; } .sbqc-nscroll__viewport { overflow-y: auto; } }

/* নোটিশ */
.sbqc-notices { list-style: none; margin: 0; padding: 0; }
.sbqc-notices li { display: flex; gap: 16px; align-items: flex-start; margin: 0 0 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--sbqc-line); border-radius: 10px; }
.sbqc-notices li:last-child { margin-bottom: 0; }
.sbqc-datebox { flex: 0 0 58px; text-align: center; background: var(--sbqc-soft); border: 1px solid var(--sbqc-line); border-radius: 6px; padding: 6px 4px; line-height: 1.15; }
.sbqc-datebox b { display: block; font-size: 20px; color: var(--sbqc-accent); }
.sbqc-datebox span { font-size: 12px; color: var(--sbqc-muted); }
.sbqc-notices__body { flex: 1 1 0; min-width: 0; }
/* থিম বোতামে border, padding, রং ও white-space:nowrap বসায়; শিরোনাম সাধারণ লেখার মতো দেখাতে সব ফেরত নেওয়া */
.sbqc .sbqc-notices__title { display: block; width: 100%; margin: 0; padding: 0 26px 0 0; position: relative; background: none; border: 0; border-radius: 0; box-shadow: none; color: var(--sbqc-text); font: inherit; font-size: 17px; font-weight: 600; line-height: 1.6; text-align: left; white-space: normal; overflow-wrap: anywhere; text-transform: none; letter-spacing: 0; }
.sbqc button.sbqc-notices__title { cursor: pointer; }
.sbqc button.sbqc-notices__title:hover, .sbqc button.sbqc-notices__title:focus { background: none; color: var(--sbqc-accent); }
.sbqc button.sbqc-notices__title::after { content: ""; position: absolute; right: 6px; top: 9px; width: 8px; height: 8px; border-right: 2px solid var(--sbqc-accent); border-bottom: 2px solid var(--sbqc-accent); transform: rotate(45deg); transition: transform .2s; }
.sbqc button.sbqc-notices__title[aria-expanded="true"]::after { transform: rotate(-135deg); top: 13px; }
.sbqc-notices__text { color: var(--sbqc-muted); font-size: 15px; line-height: 1.7; margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--sbqc-line); overflow-wrap: anywhere; }
.sbqc-notices__text p { margin: 0 0 6px; }
.sbqc-notices__text p:last-child { margin-bottom: 0; }
.sbqc-notices__text[hidden] { display: none; }
.sbqc-more { display: inline-block; margin-top: 12px; font-weight: 600; }
@media (max-width: 600px) {
	.sbqc-notices li { gap: 12px; padding: 12px; }
	.sbqc-datebox { flex-basis: 50px; }
	.sbqc-datebox b { font-size: 18px; }
	.sbqc .sbqc-notices__title { font-size: 16px; }
}

/* টেবিল */
.sbqc-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--sbqc-line); border-radius: 8px; }
.sbqc-table { width: 100%; border-collapse: collapse; background: #fff; margin: 0; font-size: 15px; }
.sbqc-table th, .sbqc-table td { padding: 10px 12px; border-bottom: 1px solid var(--sbqc-line); text-align: left; vertical-align: top; }
.sbqc-table thead th { background: var(--sbqc-accent); color: #fff; font-weight: 600; white-space: nowrap; border-bottom: 0; }
.sbqc-table tbody tr:nth-child(even) { background: var(--sbqc-soft); }
.sbqc-table tbody tr:last-child td { border-bottom: 0; }
.sbqc-table .is-num { text-align: center; white-space: nowrap; }
.sbqc-table tfoot td { font-weight: 700; background: var(--sbqc-soft); }
.sbqc-h { font-size: 18px; font-weight: 700; margin: 22px 0 10px; padding-left: 10px; border-left: 4px solid var(--sbqc-accent); }

/* ফর্ম */
.sbqc-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; align-items: end; padding: 16px; background: var(--sbqc-soft); border: 1px solid var(--sbqc-line); border-radius: 8px; margin-bottom: 16px; }
.sbqc-field label { display: flex; flex-direction: column; gap: 6px; margin: 0; font-size: 14px; font-weight: 600; line-height: 1.4; }
/* থিম select / input / date এ আলাদা padding ও উচ্চতা দেয়; সব ঘর একই মাপের বাক্স। 16px: iPhone এ ঘরে চাপ দিলে পেজ জুম হয় না */
.sbqc .sbqc-field select, .sbqc .sbqc-field input { display: block; box-sizing: border-box; width: 100%; height: 46px; min-height: 0; margin: 0; padding: 0 12px; border: 1px solid #c9d3ce; border-radius: 6px; background: #fff; font: inherit; font-size: 16px; font-weight: 400; line-height: normal; color: var(--sbqc-text); }
.sbqc .sbqc-form .sbqc-btn { box-sizing: border-box; height: 46px; min-height: 0; margin: 0; padding: 0 22px; line-height: 1.2; white-space: nowrap; }
@media (max-width: 767px) {
	.sbqc .sbqc-form .sbqc-btn { width: 100%; }
}
.sbqc-field select:focus, .sbqc-field input:focus { outline: 2px solid var(--sbqc-accent); outline-offset: 1px; }
.sbqc-btn { display: inline-block; background: var(--sbqc-accent); color: #fff !important; border: 0; border-radius: 6px; padding: 10px 20px; font: inherit; font-weight: 600; cursor: pointer; min-height: 42px; text-decoration: none !important; }
.sbqc-btn:hover { filter: brightness(1.1); }
.sbqc-btn[disabled] { opacity: .6; cursor: wait; }
.sbqc-btn.is-ghost { background: #fff; color: var(--sbqc-accent) !important; border: 1px solid var(--sbqc-accent); }
.sbqc-result { min-height: 20px; }
.sbqc-result.is-loading { opacity: .5; }
.sbqc-actions { display: flex; gap: 8px; justify-content: flex-end; margin: 10px 0; }

/* কার্ড গ্রিড (শিক্ষক, শিক্ষার্থী) */
.sbqc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--sbqc-card, 190px), 1fr)); gap: 16px; }
.sbqc-card { background: #fff; border: 1px solid var(--sbqc-line); border-radius: 10px; overflow: hidden; text-align: center; transition: box-shadow .2s, transform .2s; }
.sbqc-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.08); transform: translateY(-2px); }
.sbqc-card__photo { aspect-ratio: 1 / 1; background: var(--sbqc-soft); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sbqc-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sbqc-card__initial { font-size: 44px; font-weight: 700; color: var(--sbqc-accent); opacity: .5; }
.sbqc-card__body { padding: 10px 10px 12px; }
.sbqc-card__name { font-weight: 700; font-size: 15px; line-height: 1.35; }
.sbqc-card__meta { font-size: 13px; color: var(--sbqc-muted); margin-top: 2px; }
.sbqc-count { color: var(--sbqc-muted); font-size: 14px; margin: 0 0 10px; }

/* পরিসংখ্যান */
.sbqc-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; }
.sbqc-stat { background: var(--sbqc-soft); border: 1px solid var(--sbqc-line); border-radius: 10px; padding: 18px 12px; text-align: center; }
.sbqc-stat b { display: block; font-size: 34px; line-height: 1.1; color: var(--sbqc-accent); }
.sbqc-stat span { color: var(--sbqc-muted); font-size: 15px; }

/* ফলাফল / প্রিন্টযোগ্য কাগজ */
.sbqc-sheet { background: #fff; border: 1px solid var(--sbqc-line); border-radius: 8px; padding: 20px; }
.sbqc-sheet__head { text-align: center; border-bottom: 2px solid var(--sbqc-accent); padding-bottom: 12px; margin-bottom: 14px; }
.sbqc-sheet__head img { max-height: 70px; width: auto; margin-bottom: 6px; }
.sbqc-sheet__head h3 { margin: 0; font-size: 22px; }
.sbqc-sheet__head p { margin: 2px 0 0; color: var(--sbqc-muted); font-size: 14px; }
.sbqc-sheet__title { display: inline-block; margin-top: 8px; padding: 3px 16px; border: 1px solid var(--sbqc-accent); border-radius: 20px; font-weight: 600; color: var(--sbqc-accent); }
.sbqc-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 4px 20px; margin-bottom: 14px; }
.sbqc-kv div { display: flex; gap: 8px; padding: 4px 0; border-bottom: 1px dotted var(--sbqc-line); }
.sbqc-kv dt, .sbqc-kv .k { color: var(--sbqc-muted); flex: 0 0 110px; }
.sbqc-kv .v { font-weight: 600; }
.sbqc-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-top: 14px; }
.sbqc-summary div { background: var(--sbqc-soft); border-radius: 8px; padding: 10px; text-align: center; }
.sbqc-summary b { display: block; font-size: 20px; color: var(--sbqc-accent); }
.sbqc-summary span { font-size: 13px; color: var(--sbqc-muted); }

/* হাজিরার ঘর */
.sbqc-att td.p { color: #0a7a35; font-weight: 700; }
.sbqc-att td.a { color: #b32d2e; font-weight: 700; }
.sbqc-att td.l { color: #b26a00; font-weight: 700; }
.sbqc-att td.h { color: var(--sbqc-muted); }
.sbqc-att th, .sbqc-att td { padding: 6px 5px; text-align: center; font-size: 13px; }
.sbqc-att th:first-child, .sbqc-att td:first-child, .sbqc-att th.is-name, .sbqc-att td.is-name { text-align: left; white-space: nowrap; }
.sbqc-legend { font-size: 13px; color: var(--sbqc-muted); margin-top: 8px; display: flex; gap: 14px; flex-wrap: wrap; }

.sbqc-pager { display: flex; gap: 6px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.sbqc-pager button { border: 1px solid var(--sbqc-line); background: #fff; border-radius: 6px; padding: 6px 12px; cursor: pointer; font: inherit; }
.sbqc-pager button.is-current { background: var(--sbqc-accent); color: #fff; border-color: var(--sbqc-accent); }

@media (max-width: 600px) {
	.sbqc-ticker__label { padding: 8px 10px; font-size: 14px; }
	.sbqc-grid { --sbqc-card: 140px; gap: 10px; }
	.sbqc-sheet { padding: 12px; }
}

@media print {
	body.sbqc-printing * { visibility: hidden !important; }
	body.sbqc-printing .sbqc-print-area, body.sbqc-printing .sbqc-print-area * { visibility: visible !important; }
	body.sbqc-printing .sbqc-print-area { position: absolute; left: 0; top: 0; width: 100%; border: 0; }
	.sbqc-actions, .sbqc-form { display: none !important; }
	.sbqc-table thead th { background: #eee !important; color: #000 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
