/* BALANCE 공동체 모듈 스타일 (테마 독립) */
:root {
    --bl-navy: #253b61;
    --bl-coral: #df6d72;
    --bl-coral-deep: #c9545b;
    --bl-blue: #6687ad;
    --bl-ink: #182236;
    --bl-muted: #697384;
    --bl-line: #e1e6ec;
    --bl-paper: #f5f7f9;
}

.bl-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--bl-coral); }
.bl-eyebrow::before { content: ""; display: inline-block; width: 18px; height: 2px; border-radius: 2px; background: var(--bl-coral); }

.bl-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; background: #eef1f5; color: var(--bl-ink); line-height: 1.6; }
.bl-chip i { font-size: 11px; }
.bl-chip-coral { background: rgba(223, 109, 114, .14); color: var(--bl-coral-deep); }
.bl-chip-navy { background: rgba(37, 59, 97, .10); color: var(--bl-navy); }
.bl-chip-green { background: rgba(76, 154, 42, .12); color: #3e7f22; }

/* 스트림 항목 */
.bl-entry { margin-top: 4px; }
.bl-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.bl-section { margin: 10px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--bl-paper); }
.bl-section-prayer { background: rgba(223, 109, 114, .08); }
.bl-section-apply { background: rgba(102, 135, 173, .12); }
.bl-section-answer { background: rgba(76, 154, 42, .10); }
.bl-label { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--bl-muted); margin-bottom: 4px; }
.bl-label i { color: var(--bl-coral); }
.bl-richtext { font-size: 14px; line-height: 1.7; word-break: keep-all; }
.bl-richtext p:last-child { margin-bottom: 0; }
.bl-note { margin-top: 8px; font-size: 13px; color: var(--bl-muted); }
.bl-avatars { display: flex; flex-wrap: wrap; gap: 4px; }
.bl-avatars-inline { display: inline-flex; vertical-align: middle; margin-left: 8px; }
.bl-avatar img { border-radius: 50%; }
.bl-avatar-more { display: inline-flex; align-items: center; padding: 0 8px; border-radius: 999px; background: #eef1f5; font-size: 12px; color: var(--bl-muted); }

/* 기도제목 */
.bl-prayer-answered { border-left: 3px solid #4c9a2a; padding-left: 10px; }
.bl-answered-banner { color: #3e7f22; font-weight: 700; margin-bottom: 8px; }
.bl-answered-banner small { color: var(--bl-muted); font-weight: 400; }
.bl-support { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.bl-support-btn { border-radius: 999px; }
.btn-accent { --bs-btn-bg: var(--bl-coral); --bs-btn-border-color: var(--bl-coral); --bs-btn-color: #fff; --bs-btn-hover-bg: var(--bl-coral-deep); --bs-btn-hover-border-color: var(--bl-coral-deep); --bs-btn-hover-color: #fff; --bs-btn-active-bg: var(--bl-coral-deep); --bs-btn-active-color: #fff; }

/* 폼 */
.bl-form .form-label { font-weight: 700; font-size: 13px; }
.bl-attendee-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 4px 8px; }
.bl-attendee { display: flex; align-items: center; gap: 6px; padding: 5px 8px; border: 1px solid var(--bl-line); border-radius: 10px; cursor: pointer; font-weight: 500; font-size: 13px; }
.bl-attendee:has(input:checked) { background: rgba(76, 154, 42, .10); border-color: rgba(76, 154, 42, .4); }
.bl-attendee img { border-radius: 50%; }
.bl-attendee input { margin: 0; }

/* 사이드바 위젯 */
.bl-widget .panel-heading { position: relative; line-height: 1.3; }
.bl-widget .bl-heading-count { display: block; font-size: 12px; font-weight: 500; color: var(--bl-muted); }
.bl-widget .bl-heading-action { position: absolute; right: 14px; top: 14px; color: var(--bl-muted); }
.bl-widget .bl-heading-tools { position: absolute; right: 14px; top: 12px; display: flex; gap: 4px; }
.bl-sermon-date { font-size: 12px; color: var(--bl-muted); }
.bl-sermon-title { font-size: 17px; font-weight: 800; color: var(--bl-ink); letter-spacing: -.02em; margin: 2px 0; word-break: keep-all; }
.bl-sermon-passage { color: var(--bl-navy); font-weight: 600; }
.bl-sermon-preacher { font-size: 13px; color: var(--bl-muted); }
.bl-sermon-src { margin-top: 8px; font-size: 11px; color: #9aa4b5; }
.bl-list { list-style: none; margin: 0; padding: 0; }
.bl-list li + li { border-top: 1px solid var(--bl-line); }
.bl-list a { display: block; padding: 7px 0; color: var(--bl-ink); text-decoration: none; }
.bl-list-title { display: block; font-weight: 600; font-size: 13.5px; }
.bl-list-meta { display: block; font-size: 12px; color: var(--bl-muted); }
.bl-links { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-links a { display: inline-flex; align-items: center; gap: 4px; padding: 5px 11px; border: 1px solid var(--bl-line); border-radius: 999px; font-size: 12.5px; font-weight: 600; color: var(--bl-ink); text-decoration: none; transition: border-color .2s, background-color .2s; }
.bl-links a:hover { border-color: var(--bl-coral); color: var(--bl-coral-deep); background: rgba(223, 109, 114, .06); }
.bl-links a i { font-size: 10px; color: var(--bl-muted); }
.bl-status-ok { color: #3e7f22; font-weight: 700; }
.bl-status-wait { color: var(--bl-coral-deep); font-weight: 700; }
.bl-status-row { font-size: 13px; margin-top: 4px; }
.bl-status-links { margin-top: 10px; font-size: 12.5px; }

/* 출석표 */
.bl-attendance-table { font-size: 13px; }
.bl-attendance-table th, .bl-attendance-table td { vertical-align: middle; white-space: nowrap; }
.bl-attendance-table .bl-col-week { text-align: center; font-size: 12px; }
.bl-attendance-table .bl-col-week.no-report { color: #b3bcc9; font-weight: 400; }
.bl-attendance-table .bl-col-name img { border-radius: 50%; margin-right: 6px; }
.bl-cell { text-align: center; }
.bl-cell-yes { color: #3e7f22; font-weight: 700; }
.bl-cell-no { color: var(--bl-coral); }
.bl-cell-none { color: #c5ccd6; }
.bl-rate { font-weight: 800; padding: 1px 8px; border-radius: 999px; font-size: 12px; }
.bl-rate-high { background: rgba(76, 154, 42, .12); color: #3e7f22; }
.bl-rate-mid { background: rgba(240, 169, 59, .18); color: #9a6410; }
.bl-rate-low { background: rgba(223, 109, 114, .14); color: var(--bl-coral-deep); }
.bl-legend { margin: 8px 0 0; font-size: 12px; }
.bl-legend .fa-check { color: #3e7f22; }

/* 공동체 현황 */
/* 다른 페이지와 같은 높이에서 시작하도록 위 여백을 두지 않는다 */
.bl-overview { margin-top: 0; }
.bl-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.bl-stat { padding: 14px 16px; border-radius: 14px; background: var(--bl-paper); }
.bl-stat-value { font-size: 28px; font-weight: 800; color: var(--bl-navy); letter-spacing: -.03em; line-height: 1.1; }
.bl-stat-value small { font-size: 13px; color: var(--bl-muted); font-weight: 600; margin-left: 2px; }
.bl-stat-label { font-size: 12px; color: var(--bl-muted); margin-top: 4px; }
.bl-progress { height: 6px; border-radius: 999px; background: #e1e6ec; margin-top: 8px; overflow: hidden; }
.bl-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--bl-navy), var(--bl-blue)); }
.bl-overview-table td, .bl-overview-table th { vertical-align: middle; }
.bl-space-cell img { border-radius: 6px; margin-right: 6px; }
.bl-config-auto { padding: 10px 14px; border-radius: 12px; background: var(--bl-paper); margin-bottom: 14px; font-size: 13.5px; }
.bl-code { font-size: 12px; background: #182236; color: #e6ecf5; padding: 10px 12px; border-radius: 10px; }

@media (max-width: 576px) {
    .bl-widget .bl-heading-tools { position: static; margin-top: 6px; }
    .bl-stat-value { font-size: 22px; }
}

/* v2 톤 맞춤 */
.bl-section { border-radius: 14px; padding: 12px 14px; }
.bl-stat { border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(24,34,54,.06), 0 0 0 1px rgba(24,34,54,.04); }
.bl-links a { border: 0; background: #f1f3f8; }
.bl-links a:hover { background: rgba(239,111,116,.12); color: #e35d68; }
.bl-attendee { border: 0; background: #f1f3f8; border-radius: 12px; }
.bl-attendee:has(input:checked) { background: rgba(63,174,90,.14); }
.bl-village-head { border-radius: 16px; background: linear-gradient(135deg, #253b61, #3b5a8f); }
.bl-support-btn.btn-outline-secondary { background: #f1f3f8; border: 0; }
.bl-widget-sermon .panel-body { background: linear-gradient(135deg, rgba(255,127,136,.10), rgba(90,169,255,.10)); border-radius: 0 0 22px 22px; }
.bl-sermon-title { font-size: 18px; }

/* v1.1: 교회 보고 · 목원 현황 · 마을 섹션 · 모임 보고서 */
.bl-section-church { background: rgba(240, 169, 59, .14); }
.bl-section-church .bl-label i { color: #b87a12; }
.bl-role-chip { font-size: 11px; padding: 1px 8px; }
.bl-dots { display: inline-flex; gap: 3px; vertical-align: middle; }
.bl-dot { width: 12px; height: 12px; border-radius: 50%; background: #e1e6ec; display: inline-block; }
.bl-dot-yes { background: #4c9a2a; }
.bl-dot-worship { background: #6687ad; }
.bl-dot-no { background: rgba(223, 109, 114, .45); }
.bl-village { margin-bottom: 18px; }
.bl-village-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding: 10px 14px; border-radius: 12px; background: linear-gradient(135deg, #172b4c, #2b466e); color: #fff; margin-bottom: 8px; }
.bl-village-head strong { font-size: 15px; }
.bl-village-head span { font-size: 12px; color: rgba(255,255,255,.8); }
.bl-village-head .bl-village-stat { margin-left: auto; font-size: 12px; }
.bl-village-head .bl-village-stat b { color: #fff; font-size: 14px; }
.bl-members-table td, .bl-members-table th { vertical-align: middle; font-size: 13px; }
.bl-members-table .bl-col-name img { border-radius: 50%; margin-right: 6px; }
.bl-note-item { padding: 10px 12px; border-radius: 12px; background: var(--bl-paper); margin-bottom: 8px; }
.bl-note-meta { font-size: 12px; color: var(--bl-muted); margin-bottom: 4px; display: flex; gap: 8px; align-items: center; }
.bl-note-meta form { display: inline; margin-left: auto; }
.bl-scope { font-size: 12.5px; color: var(--bl-muted); }
.bl-meeting-type { background: rgba(102, 135, 173, .16); color: var(--bl-navy); }
.bl-sync-box { font-size: 12.5px; padding: 8px 12px; border-radius: 10px; background: var(--bl-paper); color: var(--bl-muted); }
.bl-unmatched { display: flex; flex-wrap: wrap; gap: 4px; }
.bl-unmatched span { font-size: 12px; padding: 1px 8px; border-radius: 999px; background: #eef1f5; }
.bl-org-table td, .bl-org-table th { vertical-align: middle; font-size: 13px; }
.bl-org-table select { min-width: 140px; }

/* 좁은 화면: 표는 가로 스크롤 (찌그러짐 방지) */
.bl-overview-table { min-width: 720px; }
.bl-attendance-table { min-width: 620px; }
.bl-members-table { min-width: 960px; }
.bl-org-table { min-width: 900px; }

/* 출석 체크 (모바일 우선, 큰 토글) */
.bl-checkin-tools { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-bottom: 10px; font-size: 12.5px; }
.bl-checkin-tools a { font-weight: 700; color: var(--bl-navy); }
.bl-checkin-list { border-radius: 16px; overflow: hidden; border: 1px solid var(--bl-line); }
.bl-checkin-row { display: grid; grid-template-columns: 1fr 96px 96px; align-items: center; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--bl-line); }
.bl-checkin-row:last-child { border-bottom: 0; }
.bl-checkin-head { background: var(--bl-paper); font-size: 12px; font-weight: 700; color: var(--bl-muted); text-align: center; }
.bl-checkin-head > div:first-child { text-align: left; }
.bl-checkin-name { display: flex; align-items: center; gap: 10px; font-weight: 600; min-width: 0; }
.bl-checkin-name img { border-radius: 50%; }
.bl-checkin-name small { font-size: 11px; }
.bl-toggle { position: relative; display: block; cursor: pointer; margin: 0; }
.bl-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.bl-toggle span { display: flex; align-items: center; justify-content: center; gap: 5px; height: 40px; border-radius: 12px; background: #f1f3f8; color: var(--bl-muted); font-weight: 700; font-size: 13px; transition: background-color .15s ease, color .15s ease, transform .1s ease; user-select: none; }
.bl-toggle span i { font-size: 12px; opacity: .35; }
.bl-toggle input:checked + span { color: #fff; }
.bl-toggle input:checked + span i { opacity: 1; }
.bl-toggle-worship input:checked + span { background: linear-gradient(135deg, #5aa9ff, #3b5a8f); }
.bl-toggle-cell input:checked + span { background: linear-gradient(135deg, #4fc16b, #3fae5a); }
.bl-toggle:active span { transform: scale(.97); }
.bl-checkin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 14px; }
.bl-checkin-actions .form-check { margin: 0; font-size: 12.5px; }
@media (max-width: 480px) { .bl-checkin-row { grid-template-columns: 1fr 72px 72px; padding: 8px 8px; } .bl-toggle span { font-size: 12px; } }


/* 이름 표기: 또래 칩 + 직책 배지 */
.bl-name { font-weight: 700; color: var(--bl-ink); }
.bl-peer { display: inline-block; font-size: 10.5px; font-weight: 800; color: var(--bl-muted); background: #eef1f5; border-radius: 6px; padding: 0 5px; vertical-align: 1px; }
.bl-position { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .02em; color: #fff; border-radius: 999px; padding: 1px 7px; vertical-align: 1px; background: #8b95a5; }
.bl-position-pastor { background: linear-gradient(135deg, #7b3fa0, #a678f0); }
.bl-position-head { background: linear-gradient(135deg, #b23a48, #e35d68); }
.bl-position-elder { background: linear-gradient(135deg, #1f3358, #3b5a8f); }
.bl-position-staff { background: linear-gradient(135deg, #2c7a7b, #38b2ac); }
.bl-position-village { background: linear-gradient(135deg, #b7791f, #f5b342); }
.bl-position-leader { background: linear-gradient(135deg, #2f855a, #48bb78); }
.bl-position-subleader { background: linear-gradient(135deg, #4a7fb5, #7fb3e8); }

/* ── 홈 글쓰기 카드 ───────────────────────────────────────────────── */
.bl-composer { overflow: hidden; }
.bl-composer-head { display: flex; align-items: center; gap: 14px; padding: 18px 20px 6px; flex-wrap: wrap; }
.bl-composer-avatar img { border-radius: 50%; box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(239,111,116,.35); }
.bl-composer-text { flex: 1 1 220px; min-width: 0; }
.bl-composer-greet { font-size: 16px; font-weight: 800; color: var(--bl-ink); letter-spacing: -.02em; }
.bl-composer-sub { font-size: 12.5px; color: var(--bl-muted); margin-top: 2px; }
.bl-composer-target { display: inline-flex; align-items: center; gap: 8px; }
.bl-composer-target-label { font-size: 12px; font-weight: 700; color: var(--bl-muted); white-space: nowrap; }
.bl-target-select { appearance: none; -webkit-appearance: none; border: 0; border-radius: 999px; padding: 8px 34px 8px 14px; font-weight: 700; font-size: 13px; color: var(--bl-navy); background: #eef1f5 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%23253b61' stroke-width='1.8' stroke-linecap='round'/></svg>") no-repeat right 12px center; cursor: pointer; max-width: 240px; text-overflow: ellipsis; transition: background-color .2s ease; }
.bl-target-select:hover { background-color: #e4e9f1; }
.bl-target-select:focus { outline: 0; box-shadow: 0 0 0 4px rgba(239,111,116,.16); }
.bl-home-form { padding: 6px 20px 0; }
.bl-home-form > .panel { box-shadow: none !important; border: 0; margin: 0; border-radius: 16px; background: var(--bl-paper); }
.bl-home-form > .panel > .panel-body { padding: 12px 14px; }
.bl-home-form .ProseMirror { font-size: 15px; min-height: 46px; }
.bl-home-form .ProseMirror p.is-editor-empty:first-child::before, .bl-home-form .ProseMirror-placeholder { color: #9aa4b5; }
.bl-home-form .contentForm_options { margin-top: 6px; }
.bl-home-form .contentForm_options hr, .bl-home-form .contentForm_options > hr { display: none !important; }
.bl-home-form .contentForm_options .btn_container { padding-top: 0 !important; margin-top: 0 !important; }
.bl-composer-foot { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 10px 20px 16px; font-size: 11.5px; color: var(--bl-muted); }
.bl-composer-tip i { color: var(--bl-coral); margin-right: 2px; }

/* 빈 스트림 안내 */
.placeholder-empty-stream, [data-stream-empty] .panel-body, .stream-empty, #wallStream .placeholder-empty-stream { background: none !important; margin: 0 !important; padding: 34px 20px !important; text-align: center !important; color: var(--bl-muted); font-size: 14px; line-height: 1.7; }
.placeholder-empty-stream::before, .stream-empty::before { content: "🌱"; display: block; font-size: 40px; margin-bottom: 8px; filter: drop-shadow(0 6px 12px rgba(63,174,90,.25)); }
.placeholder-empty-stream b, .stream-empty b { display: block; font-size: 16px; color: var(--bl-ink); margin-bottom: 4px; }
@media (max-width: 576px) { .bl-composer-head { padding: 14px 14px 4px; } .bl-home-form { padding: 4px 12px 0; } .bl-composer-foot { padding: 8px 14px 12px; } .bl-composer-target { width: 100%; } .bl-target-select { max-width: 100%; flex: 1; } }

/* 빈 스트림 (HumHub .streamMessage) */
.streamMessage > .panel > .panel-body { text-align: center; padding: 36px 20px 34px !important; color: var(--bl-muted); font-size: 14px; line-height: 1.7; }
.streamMessage > .panel > .panel-body::before { content: "🌱"; display: block; font-size: 42px; margin-bottom: 6px; filter: drop-shadow(0 8px 14px rgba(63,174,90,.25)); }
.streamMessage > .panel > .panel-body b { display: block; font-size: 16.5px; color: var(--bl-ink); margin-bottom: 4px; letter-spacing: -.02em; }

/* 홈 글쓰기: 전체 공개 배지, 공개/비공개 토글 숨김 */
.bl-composer-badge { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: rgba(90,169,255,.14); color: var(--bl-navy); font-size: 12px; font-weight: 800; }
.bl-composer-badge i { color: var(--bl-blue); }
.bl-home-form .contentForm_visibility_entry { display: none !important; }

.wall-entry-header-info h4 .bl-position, .comment-heading .bl-position, .card-title .bl-position { vertical-align: 2px; margin-left: 2px; }

/* 목장 관리: 탭 페이지 */
.bl-mokjang-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 16px; }
.bl-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 0; padding: 0; }
.bl-tabs .nav-link { border-radius: 999px; padding: 8px 16px; font-weight: 700; font-size: 13.5px; color: var(--hh-bl-ink, #253b61); background: rgba(37, 59, 97, .06); }
.bl-tabs .nav-link:hover { background: rgba(37, 59, 97, .12); }
.bl-tabs .nav-link.active { background: var(--hh-bl-navy, #253b61); color: #fff; box-shadow: 0 6px 16px rgba(37, 59, 97, .25); }
.bl-tabs .nav-link i { margin-right: 4px; }
.bl-tab-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 14px 20px 0; }
.bl-tab-toolbar .bl-heading-count { font-size: 13px; color: #6b7590; }
.bl-tab-toolbar .bl-heading-tools { display: flex; gap: 6px; align-items: center; }
.bl-tab-body { padding: 14px 20px 20px; }
@media (max-width: 767px) { .bl-tab-toolbar, .bl-tab-body { padding-left: 14px; padding-right: 14px; } }

/* 공개 범위 선택 (홈 글쓰기) */
.bl-scope-btn { border: 0; cursor: pointer; }
.bl-scope-btn .bl-scope-caret { font-size: 11px; opacity: .7; }
.bl-scope-menu { min-width: 240px; padding: 6px; border-radius: 16px; }
.bl-scope-menu .dropdown-item { border-radius: 10px; padding: 8px 12px; font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.bl-scope-menu .dropdown-item small { margin-left: auto; color: var(--bl-muted); font-weight: 500; }
.bl-scope-menu .dropdown-item i { width: 16px; text-align: center; color: var(--bl-blue); }
.bl-scope-menu .dropdown-item.active, .bl-scope-menu .dropdown-item:active { background: var(--bl-navy); color: #fff; }
.bl-scope-menu .dropdown-item.active i, .bl-scope-menu .dropdown-item.active small { color: #fff; }
.bl-scope-menu .dropdown-header { font-size: 11px; font-weight: 800; letter-spacing: .04em; color: var(--bl-muted); padding: 8px 12px 4px; }
/* 스트림 항목 공개 범위 배지 (전체 공개는 표시 안 함) */
.bl-vis-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; line-height: 1.5; vertical-align: middle; background: rgba(37,59,97,.08); color: var(--bl-navy); }
.bl-vis-badge i { font-size: 10px; }
.bl-vis-badge.bl-vis-owner { background: rgba(239,111,116,.14); color: #c94d55; }
.bl-vis-badge.bl-vis-friends { background: rgba(166,120,240,.16); color: #6e43c4; }

/* ── 매일 큐티 묵상 용지 ─────────────────────────────────────── */
.bl-sheet { --sheet-line: #cfd6e4; --sheet-ink: #253b61; }
.bl-sheet-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; flex-wrap: wrap; border-bottom: 2px solid var(--sheet-ink); padding-bottom: 8px; margin-bottom: 12px; }
.bl-sheet-title strong { font-size: 20px; letter-spacing: -.03em; color: var(--sheet-ink); }
.bl-sheet-motto { font-size: 12px; color: var(--bl-muted); }
.bl-sheet-header { margin-bottom: 8px; }
.bl-sheet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bl-sheet-box { border: 1px solid rgba(37,59,97,.12); border-radius: 14px; padding: 12px 14px; background: #fff; }
.bl-sheet-wide { grid-column: 1 / -1; }
.bl-sheet-head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.bl-sheet-head b { font-size: 14px; color: var(--sheet-ink); }
.bl-sheet-head small { color: var(--bl-muted); font-size: 11.5px; }
.bl-sheet-no { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--sheet-ink); color: #fff; font-size: 11px; font-weight: 800; }
.bl-sheet-lines { border: 0 !important; border-radius: 6px !important; background: repeating-linear-gradient(transparent, transparent 27px, var(--sheet-line) 27px, var(--sheet-line) 28px) !important; line-height: 28px !important; padding: 0 4px !important; resize: none; overflow: hidden; min-height: 84px; font-size: 14px; box-shadow: none !important; }
.bl-sheet-lines:focus { background-color: rgba(90,169,255,.06) !important; }
.bl-sheet-supplication { background: #f7f8fc; }
.bl-sheet-check { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; margin: 0; font-weight: 500; font-size: 13.5px; line-height: 1.55; color: #3b4660; }
.bl-sheet-check input { width: 18px; height: 18px; margin-top: 3px; flex: 0 0 auto; accent-color: var(--bl-coral); }
.bl-sheet-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--sheet-line); }
.bl-sheet-verse { font-size: 12px; color: var(--bl-muted); font-style: italic; }
.bl-sheet-marks { display: flex; gap: 14px; }
.bl-sheet-mark { font-weight: 700; align-items: center; }
.bl-sheet-mark input { margin-top: 0; }
.bl-qt-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.bl-scope-select { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.bl-scope-select-label { font-size: 12px; font-weight: 700; color: var(--bl-muted); white-space: nowrap; }
.bl-scope-select .form-select { min-width: 180px; border-radius: 999px; }
.bl-qt-composer .bl-composer-head { padding-bottom: 14px; }
.bl-qt-composer .bl-qt-open { border-radius: 999px; margin-left: auto; }
.bl-qt-tabs { margin: 14px 0 10px; }
.bl-qt-steps { padding-left: 0; list-style: none; margin: 0; display: grid; gap: 8px; }
.bl-qt-steps li { display: grid; gap: 2px; font-size: 13px; }
.bl-qt-steps li b { color: var(--bl-navy); }
.bl-qt-steps li span { color: var(--bl-muted); font-size: 12px; }
.bl-qt-verse { margin: 12px 0 0; font-size: 12px; color: var(--bl-muted); font-style: italic; }
.bl-qt-question { margin: 6px 0 10px; padding: 8px 12px; border-radius: 10px; background: rgba(90,169,255,.1); font-weight: 600; font-size: 13.5px; color: var(--bl-navy); }
.bl-sheet-view { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.bl-sheet-section-3, .bl-sheet-section-4, .bl-sheet-section-5, .bl-sheet-section-supplication { grid-column: 1 / -1; }
/* 3 오늘 내 사건: 말씀이 불러낸 사건 (사실만) · 4 나의 모습: 사건을 말씀으로 해석 */
.bl-sheet-incident { background: linear-gradient(135deg, #f3f7fc, #fff); }
.bl-sheet-incident .bl-sheet-no, .bl-sheet-section-3 .bl-sheet-no { background: #4a7bd0; }
.bl-qt-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 2px 0 8px; }
.bl-qt-chips-label { font-size: 12px; font-weight: 700; color: var(--bl-muted); }
.bl-qt-chip { border: 1px solid rgba(37,59,97,.2); background: #fff; border-radius: 999px; padding: 2px 10px; font-size: 12px; font-weight: 600; color: var(--sheet-ink); line-height: 1.6; cursor: pointer; }
.bl-qt-chip:hover, .bl-qt-chip:focus { background: rgba(90,169,255,.14); border-color: #4a7bd0; outline: 0; }
.bl-sheet-details { margin-top: 8px; font-size: 12.5px; color: #4b5570; }
.bl-sheet-details summary { cursor: pointer; font-weight: 700; font-size: 12px; color: var(--sheet-ink); list-style: none; }
.bl-sheet-details summary::-webkit-details-marker { display: none; }
.bl-sheet-details summary .fa { color: #d9a92b; margin-right: 3px; }
.bl-qt-examples { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.bl-qt-examples li { display: flex; gap: 8px; align-items: flex-start; line-height: 1.5; }
.bl-qt-ex { flex: 0 0 auto; padding: 0 8px; border-radius: 999px; font-size: 11px; font-weight: 800; line-height: 1.8; }
.bl-qt-ex-bad { background: rgba(239,111,116,.14); color: #c94d55; }
.bl-qt-ex-good { background: rgba(82,161,28,.12); color: #3f7f14; }
.bl-qt-fallback { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: rgba(37,59,97,.05); line-height: 1.5; }
.bl-qt-fallback b { color: var(--sheet-ink); margin-right: 4px; }
.bl-qt-guard { margin: 10px 0 0; padding: 10px 14px; border-radius: 12px; background: #fff4e8; border: 1px solid #f3cfa6; color: #7a4a12; font-size: 13px; line-height: 1.5; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.bl-qt-guard .fa { color: #d9822b; }
.bl-qt-guard a { font-weight: 700; color: #b35c0a; text-decoration: underline; }
.bl-sheet-section-3 .bl-sheet-text { padding: 8px 10px; border-radius: 8px; background: #f3f7fc; }
.bl-sheet-christ .bl-sheet-no { background: #d9822b; }
.bl-sheet-christ { background: linear-gradient(135deg, #fff7f0, #fff); }
.bl-sheet-text { white-space: normal; line-height: 1.65; font-size: 14px; }
.bl-sheet-quote { font-style: italic; color: #5b6480; }
.bl-chip-mark { background: rgba(82,161,28,.12); color: #3f7f14; }
@media (max-width: 767px) { .bl-sheet-grid, .bl-sheet-view { grid-template-columns: 1fr; } .bl-qt-actions { justify-content: stretch; } .bl-qt-actions .btn { flex: 1; } }

/* 모임 보고서 (리더십) */
.bl-leadership-title { font-size: 20px; letter-spacing: -.03em; color: var(--bl-navy); display: block; margin-bottom: 4px; }
.bl-leadership-counts { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.bl-leadership-counts li { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border-radius: 10px; background: rgba(37,59,97,.05); font-size: 13px; }
.bl-leadership-counts li b { color: var(--bl-coral); }

/* 스트림 항목: 프로필 사진 + 글 종류 배지, 제목 앞 종류 칩 */
.bl-head { position: relative; display: inline-block; width: 44px; height: 44px; }
.bl-head img { width: 44px !important; height: 44px !important; border-radius: 50% !important; }
.bl-head-badge { position: absolute; right: -6px; bottom: -6px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(24,34,54,.25); display: flex; align-items: center; justify-content: center; font-size: 14px; line-height: 1; }
.bl-head-prayer .bl-head-badge { background: #fff1f2; }
.bl-head-report .bl-head-badge { background: #eef4ff; }
.bl-head-qt .bl-head-badge { background: #f1fbef; }
.bl-head-meeting .bl-head-badge { background: #f5f0ff; }
.bl-type-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 800; vertical-align: middle; margin-right: 4px; line-height: 1.6; }
.bl-type-prayer { background: rgba(239,111,116,.16); color: #c94d55; }
.bl-type-report { background: rgba(90,169,255,.18); color: #2b6cb0; }
.bl-type-qt { background: rgba(82,161,28,.14); color: #3f7f14; }
.bl-type-meeting { background: rgba(166,120,240,.18); color: #6e43c4; }
.wall-entry-header-info h4 { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 4px; }

/* 모임 보고서 작성 폼: 옵션·버튼 영역을 항상 펼쳐 둠 (클릭 전에도 보이도록) */
.bl-leadership-form .contentForm_options { display: block !important; }
.bl-leadership-form #contentFormBody, .bl-leadership-form .content-form-body { display: block !important; }

/* 전체 캘린더 아래 월별 행사 목록 */
.bl-month-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bl-month-nav { display: flex; gap: 6px; }
.bl-month-nav .btn { border-radius: 999px; }
.bl-month-empty { padding: 18px 8px; text-align: center; color: var(--bl-muted); }
.bl-month-day { display: flex; gap: 14px; padding: 10px 0; border-top: 1px solid rgba(37,59,97,.08); }
.bl-month-day:first-child { border-top: 0; }
.bl-month-date { flex: 0 0 48px; text-align: center; padding-top: 4px; }
.bl-month-dnum { display: block; font-size: 20px; font-weight: 800; color: var(--bl-navy); line-height: 1; }
.bl-month-dow { font-size: 11px; color: var(--bl-muted); font-weight: 700; }
.bl-month-today .bl-month-dnum { color: var(--bl-coral); }
.bl-month-list { flex: 1; display: grid; gap: 6px; min-width: 0; }
.bl-month-item { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; background: rgba(37,59,97,.04); color: inherit; text-decoration: none; flex-wrap: wrap; }
.bl-month-item:hover { background: rgba(90,169,255,.12); color: inherit; }
.bl-month-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.bl-month-time { font-size: 12px; font-weight: 700; color: var(--bl-muted); white-space: nowrap; min-width: 88px; }
.bl-month-title { font-weight: 800; color: var(--bl-ink); flex: 1 1 160px; }
.bl-month-type { font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: #fff; border: 1px solid currentColor; }
.bl-month-loc { font-size: 12px; color: var(--bl-muted); }
.bl-month-go { margin-left: auto; color: var(--bl-muted); }
@media (max-width: 576px) { .bl-month-time { min-width: 0; } .bl-month-date { flex-basis: 40px; } }

/* 행사 참여자: 상태별 프로필 사진 + 직책별 표 */
.bl-participants { margin: 6px 0 10px; }
.bl-pt-title { margin: 0 0 8px; font-weight: 800; font-size: 14px; color: var(--bl-navy); }
.bl-pt-total { font-weight: 600; color: var(--bl-muted); font-size: 12px; margin-left: 4px; }
.bl-pt-states { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; margin-bottom: 10px; }
.bl-pt-state { border-radius: 12px; padding: 8px 10px; background: rgba(37,59,97,.05); }
.bl-pt-state-head { font-size: 12.5px; font-weight: 700; margin-bottom: 6px; }
.bl-pt-state-head a { color: inherit; }
.bl-pt-state-head b { font-size: 14px; }
.bl-pt-yes { --pt: #2f9e44; } .bl-pt-maybe { --pt: #e8a317; } .bl-pt-no { --pt: #d64550; } .bl-pt-wait { --pt: #6b7590; }
.bl-pt-state .bl-pt-state-head, .bl-pt-table th.bl-pt-yes, .bl-pt-table th.bl-pt-maybe, .bl-pt-table th.bl-pt-no, .bl-pt-table th.bl-pt-wait { color: var(--pt); }
.bl-pt-avatars { display: flex; flex-wrap: wrap; gap: 4px; min-height: 30px; }
.bl-pt-avatar img { width: 30px !important; height: 30px !important; border-radius: 50% !important; box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--pt, #cfd6e4); }
.bl-pt-more { align-self: center; font-size: 12px; font-weight: 700; color: var(--bl-muted); }
.bl-pt-table { margin: 0; font-size: 13px; }
.bl-pt-table th, .bl-pt-table td { vertical-align: top; padding: 6px 8px; }
.bl-pt-table thead th { font-size: 12px; white-space: nowrap; border-bottom: 2px solid rgba(37,59,97,.12); }
.bl-pt-role { white-space: nowrap; color: var(--bl-navy); }
.bl-pt-role small { color: var(--bl-muted); font-weight: 600; }
.bl-pt-person { display: inline-flex; align-items: center; gap: 5px; margin: 2px 8px 2px 0; font-weight: 600; white-space: nowrap; }
.bl-pt-person .bl-pt-avatar img { width: 26px !important; height: 26px !important; box-shadow: 0 0 0 1.5px #fff, 0 0 0 2.5px var(--pt, #cfd6e4); }

.bl-supplication-mark { margin-left: 6px; font-size: 12px; color: #3f7f14; font-weight: 700; }
.bl-supplication-off .bl-supplication-mark { color: var(--bl-muted); }
.bl-supplication-off .bl-sheet-quote { opacity: .6; }
.bl-scope-hint { flex: 1 1 100%; }
.bl-qt-actions { justify-content: space-between; }

.bl-sheet-default { margin-top: 6px; font-size: 12px; color: var(--bl-muted); font-style: italic; }
.bl-supplication-default .bl-supplication-mark { color: var(--bl-muted); font-weight: 600; }

.bl-type-manage { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -6px 0 14px; padding: 0 4px; }
.bl-type-manage .btn { border-radius: 999px; }

/* 행사 폼: 모임 종류 버튼 */
.bl-event-type-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.bl-event-type { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: 999px; border: 1.5px solid rgba(37,59,97,.16); background: #fff; font-weight: 700; font-size: 13px; cursor: pointer; margin: 0; color: var(--bl-ink); transition: all .15s; }
.bl-event-type input { position: absolute; opacity: 0; pointer-events: none; }
.bl-event-type-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--type-color, #5aa9ff); }
.bl-event-type:hover { border-color: var(--type-color, var(--bl-blue)); }
.bl-event-type.active { background: var(--type-color, var(--bl-navy)); border-color: var(--type-color, var(--bl-navy)); color: #fff; }
.bl-event-type.active .bl-event-type-dot { background: #fff; }
.bl-event-type-none.active { background: var(--bl-navy); border-color: var(--bl-navy); }

/* 스와이프 페이지 이동 안내 */

/* 스와이프 이동: 브라우저 가로 오버스크롤(뒤로가기) 제스처 억제 + 밀어내기 애니메이션 */
@media (max-width: 991px) {
  html, body { overscroll-behavior-x: none; }
}

.bl-event-types { margin-top: 10px; }
.bl-type-manage-link { margin-left: 10px; font-size: 12px; font-weight: 600; color: var(--bl-blue); }

.bl-type-legend-panel .panel-body { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bl-type-legend-panel a.calendar-type-item.bl-type-add {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; align-self: stretch; min-height: 44px; padding: 0 18px; margin: 0;
  border-radius: 12px; border: 0; background: linear-gradient(135deg, var(--bl-navy) 0%, #4a6aa8 100%) !important; color: #fff !important;
  font-size: 15px; font-weight: 800; text-decoration: none; box-shadow: 0 6px 16px rgba(37,59,97,.28); transition: transform .15s ease, box-shadow .15s ease;
}
.bl-type-legend-panel a.calendar-type-item.bl-type-add i { font-size: 14px; }
.bl-type-legend-panel a.calendar-type-item.bl-type-add:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(37,59,97,.34); background: linear-gradient(135deg, var(--bl-coral) 0%, #f08a8e 100%) !important; }

/* 큐티 글: 여러 박스 대신 용지 한 장처럼 하나의 박스 */
.bl-qt .bl-sheet-view { display: block; background: #fff; border: 1px solid rgba(37,59,97,.14); border-radius: 16px; padding: 2px 18px; margin-top: 4px; box-shadow: 0 1px 3px rgba(24,34,54,.05); }
.bl-qt .bl-sheet-view .bl-sheet-section { background: transparent !important; border-radius: 0; margin: 0; padding: 12px 0; border-top: 1px dashed rgba(37,59,97,.16); box-shadow: none; }
.bl-qt .bl-sheet-view .bl-sheet-section:first-child { border-top: 0; }
.bl-qt .bl-sheet-view .bl-label { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 13.5px; font-weight: 800; color: var(--bl-navy); }
.bl-qt .bl-sheet-view .bl-sheet-no { background: var(--bl-navy); color: #fff; width: 22px; height: 22px; font-size: 11.5px; flex: 0 0 auto; }
.bl-qt .bl-sheet-view .bl-sheet-text { padding-left: 30px; color: #2b3650; }
.bl-qt .bl-sheet-view .bl-sheet-quote { font-style: italic; color: #5b6480; }
.bl-qt .bl-sheet-view .bl-supplication-mark { margin-left: 4px; }
/* 5 예수님을 봅니다: 부드러운 강조 카드 (번호가 바뀌어도 작성 화면과 같은 칸을 강조한다) */
.bl-qt .bl-sheet-view .bl-sheet-section-5 { background: linear-gradient(135deg, #fff6ec, #fffdf9) !important; border: 1px solid #f2dcc3; border-radius: 14px; padding: 12px 14px; margin: 10px 0; }
.bl-qt .bl-sheet-view .bl-sheet-section-5 + .bl-sheet-section { border-top: 0; }
.bl-qt .bl-sheet-view .bl-sheet-section-5 .bl-label { color: #8a4b12; }
.bl-qt .bl-sheet-view .bl-sheet-section-5 .bl-sheet-no { background: #d9822b; }
.bl-qt .bl-sheet-view .bl-sheet-section-5 .bl-sheet-text { color: #3a2e22; }
.bl-qt .bl-qt-question { margin: 6px 0 8px; }
@media (max-width: 576px) { .bl-qt .bl-sheet-view { padding: 2px 14px; } .bl-qt .bl-sheet-view .bl-sheet-text { padding-left: 0; } }

/* 행사 참여자: 마을 × 상태 표 */
.bl-pt-summary { display: inline-flex; flex-wrap: wrap; gap: 4px 12px; margin-left: 10px; font-size: 12.5px; font-weight: 700; }
.bl-pt-sum { color: var(--pt, #6b7590); }
.bl-pt-sum b { font-size: 13px; }
.bl-pt-village-table th.bl-pt-village-head { min-width: 120px; }
.bl-pt-village { white-space: nowrap; vertical-align: middle !important; }
.bl-pt-village-name { display: block; font-weight: 800; color: var(--bl-navy); }
.bl-pt-village small { display: block; font-weight: 600; color: var(--bl-muted); font-size: 11px; white-space: normal; }
.bl-pt-village-table td { min-width: 96px; vertical-align: middle !important; }
.bl-pt-cell { display: flex; flex-wrap: wrap; gap: 6px; min-height: 34px; align-items: center; }
.bl-pt-cell .bl-pt-avatar { position: relative; display: inline-block; }
.bl-pt-cell .bl-pt-avatar img { width: 34px !important; height: 34px !important; border-radius: 50% !important; box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--pt, #cfd6e4); }
.bl-pt-role-tag { position: absolute; right: -4px; bottom: -4px; width: 16px; height: 16px; border-radius: 50%; background: var(--bl-navy); color: #fff; font-size: 9px; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1.5px #fff; pointer-events: none; }
.bl-pt-empty { padding: 10px 0; color: var(--bl-muted); font-size: 13px; }

/* 참여자 표: 마을 | 참석 | 미정·불참·미응답 (폭 절약) */
.bl-pt-two th.bl-pt-village-head { min-width: 0; width: 1%; }
.bl-pt-two .bl-pt-village { padding-right: 6px; }
.bl-pt-two .bl-pt-village-name { font-size: 13px; }
.bl-pt-two td { min-width: 0; }
.bl-pt-two .bl-pt-cell .bl-pt-avatar img { width: 32px !important; height: 32px !important; }
.bl-pt-two .bl-pt-wait .bl-pt-no .bl-pt-avatar img { box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #d64550; }
.bl-pt-two .bl-pt-wait .bl-pt-maybe .bl-pt-avatar img { box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #e8a317; }
.bl-pt-two .bl-pt-wait .bl-pt-wait .bl-pt-avatar img { box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px #9aa3b8; opacity: .85; }

/* 참여자 표 v3: 간격·여백 정리 */
.bl-participants { margin: 10px 0 12px; }
.bl-pt-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 10px; font-size: 14px; }
.bl-pt-summary { margin-left: 0; gap: 6px; }
.bl-pt-sum { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; background: rgba(37,59,97,.06); font-size: 12px; line-height: 1.4; }
.bl-pt-table-wrap { border: 1px solid rgba(37,59,97,.12); border-radius: 14px; overflow: hidden; background: #fff; }
.bl-pt-two { table-layout: fixed; width: 100%; margin: 0; }
.bl-pt-two th, .bl-pt-two td { padding: 10px 12px !important; border: 0 !important; }
.bl-pt-two thead th { background: #f4f6fb; font-size: 12px; font-weight: 800; letter-spacing: .01em; border-bottom: 1px solid rgba(37,59,97,.12) !important; }
.bl-pt-two thead th small { font-weight: 600; color: var(--bl-muted); margin-left: 2px; }
.bl-pt-two th.bl-pt-village-head { width: 92px; }
.bl-pt-two tbody tr + tr th, .bl-pt-two tbody tr + tr td { border-top: 1px solid rgba(37,59,97,.08) !important; }
.bl-pt-two tbody th.bl-pt-village { width: 92px; padding-right: 8px !important; vertical-align: middle !important; }
.bl-pt-two tbody td { vertical-align: middle !important; }
.bl-pt-two td.bl-pt-wait, .bl-pt-two th.bl-pt-wait { border-left: 1px solid rgba(37,59,97,.08) !important; }
.bl-pt-two .bl-pt-village-name { font-size: 13.5px; line-height: 1.3; white-space: normal; word-break: keep-all; }
.bl-pt-two .bl-pt-cell { gap: 10px; min-height: 36px; padding: 2px 0; }
.bl-pt-two .bl-pt-cell .bl-pt-avatar img { width: 36px !important; height: 36px !important; }
.bl-pt-two .bl-pt-role-tag { right: -3px; bottom: -3px; }
@media (max-width: 576px) { .bl-pt-two th, .bl-pt-two td { padding: 8px 8px !important; } .bl-pt-two th.bl-pt-village-head, .bl-pt-two tbody th.bl-pt-village { width: 72px; } .bl-pt-two .bl-pt-cell { gap: 8px; } }

/* 좋아요 하트 */
.likeLinkContainer a.likeAnchor { display: inline-flex; align-items: center; gap: 4px; }
.likeLinkContainer .bl-heart { color: var(--bl-coral); font-size: 14px; transition: transform .15s ease; }
.likeLinkContainer a.likeAnchor:hover .bl-heart { transform: scale(1.2); }

/* 이모지 반응 바 (HumHub 좋아요 대체) */
.likeLinkContainer.bl-react-hidden { display: none !important; }
.bl-react { position: relative; display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; vertical-align: middle; }
.bl-react-chip, .bl-react-add { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 999px; border: 1.5px solid rgba(37,59,97,.12); background: #fff; font-size: 13px; font-weight: 700; color: var(--bl-ink); cursor: pointer; line-height: 1.3; transition: all .15s; }
.bl-react-chip:hover, .bl-react-add:hover { border-color: var(--bl-coral); background: rgba(239,111,116,.08); }
.bl-react-chip.active { background: rgba(239,111,116,.14); border-color: var(--bl-coral); color: #c94d55; }
.bl-react-emoji { font-size: 15px; line-height: 1; }
.bl-react-n { font-size: 12px; }
.bl-react-add { color: var(--bl-muted); font-weight: 600; }
.bl-react-add i { font-size: 15px; }
.bl-react-picker { position: absolute; left: 0; bottom: calc(100% + 6px); z-index: 1040; display: flex; gap: 2px; padding: 6px; border-radius: 999px; background: #fff; box-shadow: 0 10px 30px rgba(24,34,54,.22), 0 0 0 1px rgba(37,59,97,.08); white-space: nowrap; }
.bl-react-pick { border: 0; background: transparent; font-size: 22px; line-height: 1; padding: 6px; border-radius: 50%; cursor: pointer; transition: transform .12s; }
.bl-react-pick:hover { transform: scale(1.35); background: rgba(37,59,97,.06); }
.bl-react-pick.active { background: rgba(239,111,116,.16); }
.comment .bl-react-chip, .comment .bl-react-add { padding: 1px 7px; font-size: 12px; }

/* 반응 v2: 박스 없이 크게 */
.bl-react { gap: 10px; }
.bl-react-chip, .bl-react-add { border: 0 !important; background: transparent !important; padding: 0 2px !important; border-radius: 10px; gap: 5px; }
.bl-react-chip:hover, .bl-react-add:hover { background: transparent !important; }
.bl-react-chip .bl-react-emoji { font-size: 24px; line-height: 1; transition: transform .15s ease; }
.bl-react-chip:hover .bl-react-emoji { transform: scale(1.2); }
.bl-react-chip .bl-react-n { font-size: 13px; font-weight: 800; color: var(--bl-muted); }
.bl-react-chip.active { color: var(--bl-coral); }
.bl-react-chip.active .bl-react-n { color: var(--bl-coral); }
.bl-react-chip.active .bl-react-emoji { filter: drop-shadow(0 2px 4px rgba(239,111,116,.45)); }
.bl-react-add i { font-size: 22px; color: var(--bl-muted); }
.bl-react-add:hover i { color: var(--bl-coral); }
.bl-react-label { font-size: 12.5px; font-weight: 700; }
.comment .bl-react-chip .bl-react-emoji { font-size: 20px; }
.comment .bl-react-add i { font-size: 18px; }

/* 반응 바로 바뀌기 전 HumHub 좋아요 링크가 잠깐 보이는 깜빡임 방지 */
.likeLinkContainer:not([data-bl-react]) { visibility: hidden; }

.bl-mokjang-head-tabs-only { padding: 14px 16px 6px !important; }

/* 지체 관리 */
.bl-ma-search { display: inline-flex; gap: 6px; }
.bl-ma-search .form-control { width: 200px; border-radius: 999px; }
.bl-ma-list { display: grid; gap: 10px; }
.bl-ma-row { display: grid; grid-template-columns: 1fr; gap: 10px; padding: 12px 14px; border-radius: 14px; background: #fff; border: 1px solid rgba(37,59,97,.1); }
.bl-ma-pending { border-color: #f4a940; background: #fffaf2; }
.bl-ma-who { display: flex; align-items: center; gap: 10px; }
.bl-ma-who img { border-radius: 50% !important; }
.bl-ma-name { display: grid; gap: 4px; min-width: 0; }
.bl-ma-input-name { max-width: 200px; font-weight: 700; }
.bl-ma-name small { color: var(--bl-muted); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.bl-ma-badge { display: inline-block; padding: 1px 8px; border-radius: 999px; background: rgba(37,59,97,.08); font-size: 11px; font-weight: 700; color: var(--bl-muted); }
.bl-ma-badge-ok { background: rgba(82,161,28,.14); color: #3f7f14; }
.bl-ma-badge-warn { background: rgba(244,169,64,.2); color: #b26a00; }
.bl-ma-badge-navy { background: rgba(37,59,97,.12); color: var(--bl-navy); }
.bl-ma-fields { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: flex-end; }
.bl-ma-fields label { display: grid; gap: 3px; font-size: 11.5px; font-weight: 700; color: var(--bl-muted); margin: 0; }
.bl-ma-fields .form-select, .bl-ma-fields .form-control { min-width: 140px; }
.bl-ma-actions { display: flex; flex-wrap: wrap; gap: 6px; }
@media (min-width: 992px) { .bl-ma-row { grid-template-columns: 280px 1fr auto; align-items: center; } }

/* 목장 선택 목록 태그 */
.bl-space-tag { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; font-size: 10.5px; font-weight: 800; vertical-align: middle; background: rgba(37,59,97,.08); color: var(--bl-muted); }
.bl-space-tag-mine { background: rgba(239,111,116,.16); color: #c94d55; }
.bl-space-tag-mokjang { background: rgba(90,169,255,.16); color: #2b6cb0; }
.bl-space-tag-open { background: rgba(82,161,28,.14); color: #3f7f14; }
/* 함께 기도 버튼 갱신 효과 */
.bl-support-btn.bl-pop { animation: blPop .35s ease; }
@keyframes blPop { 0% { transform: scale(1); } 40% { transform: scale(1.08); } 100% { transform: scale(1); } }

/* 홈 글쓰기 박스: 스트림 글과 확실히 구분 (그라데이션 테두리 + 은은한 배경 + '새 글 쓰기' 라벨) */
.bl-composer { position: relative; background: #eef3fb !important; border: 0 !important; box-shadow: 0 4px 16px rgba(37,59,97,.08) !important; }
.bl-composer-kicker { display: inline-flex; align-items: center; gap: 6px; margin: 14px 0 0 20px; padding: 4px 12px; border-radius: 999px; background: var(--bl-navy); color: #fff; font-size: 11.5px; font-weight: 800; letter-spacing: .02em; }
.bl-composer-kicker i { font-size: 11px; }
.bl-composer .bl-composer-head { padding-top: 10px; }
.bl-home-form #contentFormBody, .bl-home-form .content-form-body { background: transparent !important; box-shadow: none !important; }
.bl-home-form .ProsemirrorEditor:not([class*="field-"]) { background: #fff !important; border: 1.5px solid rgba(37,59,97,.16) !important; border-radius: 16px !important; box-shadow: 0 1px 2px rgba(24,34,54,.04); }
.bl-home-form .ProsemirrorEditor:not([class*="field-"]):focus-within { border-color: var(--bl-blue) !important; box-shadow: 0 0 0 3px rgba(90,169,255,.16); }
.bl-home-form .ProseMirror { min-height: 46px; } /* 한 줄 높이로 시작, 내용이 길어지면 자동으로 늘어남 */
@media (max-width: 576px) { .bl-composer-kicker { margin: 12px 0 0 14px; } }
/* 홈 글쓰기 입력창은 흰색으로 (회색 상자 안 회색 입력창 방지) */
.bl-home-form .panel, .bl-home-form .panel-body { background: transparent !important; box-shadow: none !important; padding: 0 !important; }
.bl-home-form .ProsemirrorEditor:not([class*="field-"]), .bl-home-form .ProseMirror { background: #fff !important; }
.bl-home-form .ProsemirrorEditor:not([class*="field-"]) { border: 1.5px solid rgba(37,59,97,.18) !important; border-radius: 16px !important; overflow: hidden; }
.bl-home-form .ProsemirrorEditor:not([class*="field-"]):focus-within { border-color: var(--bl-blue) !important; box-shadow: 0 0 0 3px rgba(90,169,255,.16); }
/* 숨은 textarea 래퍼(두꺼운 선으로 보이던 것)는 완전히 감춤 */
.bl-home-form .ProsemirrorEditor[class*="field-"] { display: none !important; border: 0 !important; height: 0 !important; margin: 0 !important; padding: 0 !important; }
.bl-home-form .field-post-message, .bl-home-form .mb-3 { margin-bottom: 0 !important; }
.bl-home-form .ProseMirror { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 12px 14px; }
.bl-home-form .ProseMirror-menubar { border: 0; border-bottom: 1px solid rgba(37,59,97,.08); background: #f7f8fc; }

.bl-composer .bl-home-form { padding-bottom: 14px; }

/* 글 종류별 바탕색: 기도제목 = 아주 옅은 붉은색, 큐티 = 옅은 푸른색 */
.wall-entry:has(.bl-entry.bl-prayer) > .panel, .wall-entry:has(.bl-entry.bl-prayer) .panel.panel-default:first-child { background: #fff5f5 !important; }
.wall-entry:has(.bl-entry.bl-qt) > .panel, .wall-entry:has(.bl-entry.bl-qt) .panel.panel-default:first-child { background: #f1f9f3 !important; }
.wall-entry:has(.bl-entry.bl-prayer) .comment-container { background: #fdecec; }
.wall-entry:has(.bl-entry.bl-qt) .comment-container { background: #e5f2e8; }
.wall-entry:has(.bl-entry.bl-qt) .bl-sheet-view { background: #fff; }
.wall-entry:has(.bl-entry.bl-qt) .bl-qt-question { background: #e3f1e6; color: #2f6b3a; }

/* 스트림 필터 숨김 (보관한 글은 프로필 메뉴 › 보관함에서) */
#wall-stream-filter-nav, .wallFilterPanel, .wall-stream-filter-nav, .stream-filter-toggle, .wall-stream-filter-toggle { display: none !important; }

/* 모임 보고서 (리더십 열람) */
.bl-lr-village { margin-top: 14px; }
.bl-lr-village-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.bl-lr-village-head strong { font-size: 15px; color: var(--bl-navy); }
.bl-lr-village-head small { color: var(--bl-muted); }
.bl-lr-progress { margin-left: auto; font-size: 12px; font-weight: 800; padding: 2px 10px; border-radius: 999px; background: rgba(244,169,64,.18); color: #b26a00; }
.bl-lr-done { background: rgba(82,161,28,.14); color: #3f7f14; }
.bl-lr-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.bl-lr-card { display: block; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(37,59,97,.12); background: #fff; color: inherit; text-decoration: none; transition: transform .15s, box-shadow .15s; }
.bl-lr-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(37,59,97,.12); color: inherit; }
.bl-lr-none { background: #fbfbfd; border-style: dashed; }
.bl-lr-locked { opacity: .85; }
.bl-lr-card-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-bottom: 6px; }
.bl-lr-name { font-weight: 800; color: var(--bl-ink); }
.bl-lr-leader { font-size: 11.5px; color: var(--bl-muted); }
.bl-lr-counts { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
.bl-lr-text { font-size: 12.5px; color: #3b4660; margin-top: 4px; line-height: 1.5; }
.bl-lr-text b { color: var(--bl-navy); margin-right: 4px; }
.bl-lr-church { padding: 6px 8px; border-radius: 8px; background: rgba(239,111,116,.08); }
.bl-lr-missing { font-size: 12.5px; color: var(--bl-muted); }

/* 웹앱 설치 안내 배너 (모바일 브라우저) */
.bl-install { position: fixed; left: 10px; right: 10px; bottom: 12px; z-index: 1500; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 16px; background: #fff; box-shadow: 0 12px 34px rgba(24,34,54,.28), 0 0 0 1px rgba(37,59,97,.08); animation: blInstallUp .35s ease; }
@keyframes blInstallUp { from { transform: translateY(20px); opacity: 0; } to { transform: none; opacity: 1; } }
.bl-install-icon img { width: 44px; height: 44px; border-radius: 12px; display: block; }
.bl-install-text { flex: 1; min-width: 0; display: grid; gap: 2px; font-size: 12.5px; line-height: 1.4; color: #3b4660; }
.bl-install-text b { font-size: 14px; color: var(--bl-navy); }
.bl-install-go { border-radius: 999px; padding: 6px 14px; }
.bl-install-close { border: 0; background: transparent; color: var(--bl-muted); font-size: 16px; padding: 4px 6px; }
@media (min-width: 992px) { .bl-install { display: none; } }

/* 첨부(사진·동영상) 버튼: 무엇을 하는 버튼인지 바로 보이게 (테마 SCSS 는 ::after 를 떨어뜨려 여기 둠) */
.contentForm_options .btn-group:has(> .fileinput-button), .content_edit .btn-group:has(> .fileinput-button) { border-radius: 999px; overflow: hidden; box-shadow: none; }
.contentForm_options .fileinput-button, .content_edit .fileinput-button { display: inline-flex !important; align-items: center; gap: 6px; padding: 7px 14px !important; border-radius: 999px 0 0 999px !important; background: rgba(90,169,255,.12) !important; color: var(--bl-navy) !important; font-weight: 700; font-size: 13px; border: 0 !important; }
.contentForm_options .fileinput-button i, .content_edit .fileinput-button i { color: var(--bl-blue); font-size: 15px; }
.contentForm_options .fileinput-button::after { content: "사진·동영상"; }
.contentForm_options .fileinput-button:hover, .content_edit .fileinput-button:hover { background: rgba(90,169,255,.22) !important; }
.contentForm_options .btn-group > .dropdown-toggle, .content_edit .btn-group > .dropdown-toggle { border-radius: 0 999px 999px 0 !important; background: rgba(90,169,255,.12) !important; color: var(--bl-navy) !important; border: 0 !important; border-left: 1px solid rgba(37,59,97,.1) !important; padding: 7px 10px !important; }
.contentForm_options .btn_container { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.contentForm_options .btn_container > .btn-accent { border-radius: 999px; padding: 7px 18px; }
.contentForm_options .badge-container .badge-public { display: none; }
.comment_create .fileinput-button { padding: 6px 10px !important; border-radius: 999px !important; background: rgba(90,169,255,.12) !important; border: 0 !important; }
/* 업로드 미리보기: 둥근 썸네일 + 산호색 진행 막대 */
[id$="_preview"] .file-preview-item, .files-preview .file-preview-item { border-radius: 12px !important; overflow: hidden; border: 1px solid rgba(37,59,97,.1) !important; box-shadow: 0 2px 8px rgba(24,34,54,.08); }
[id$="_preview"] .file-preview-item img { border-radius: 10px; object-fit: cover; }
.progress { border-radius: 999px; background: rgba(37,59,97,.08); height: 8px; }
.progress .progress-bar { background: var(--bl-coral); border-radius: 999px; }

/* 목장 선택 목록: 관리자 전체 목장 */
.bl-chooser-head { padding: 8px 14px 4px; font-size: 11px; font-weight: 800; letter-spacing: .04em; color: var(--bl-muted); border-top: 1px solid rgba(37,59,97,.08); margin-top: 4px; }
.bl-chooser-head small { font-weight: 600; margin-left: 4px; }
.bl-chooser-admin strong { font-weight: 700; }
/* 큐티 페이지 머리: 폰에서도 버튼이 한 줄에 */
.bl-qt-composer .bl-composer-head { flex-wrap: nowrap; }
.bl-qt-composer .bl-composer-text { min-width: 0; }
.bl-qt-composer .bl-composer-greet { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-qt-composer .bl-qt-open { flex: 0 0 auto; white-space: nowrap; }
@media (max-width: 576px) { .bl-qt-composer .bl-qt-open { padding: 8px 12px; } .bl-qt-composer .bl-qt-open-label { display: none; } .bl-qt-composer .bl-qt-open::after { content: "쓰기"; margin-left: 2px; } }

/* 지금 접속 중 */
.bl-online-list { display: flex; flex-wrap: wrap; gap: 10px 12px; }
.bl-online-user { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; width: 56px; text-decoration: none; color: inherit; }
.bl-online-user img { width: 36px !important; height: 36px !important; border-radius: 50% !important; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #2f9e44; }
.bl-online-name { font-size: 11px; font-weight: 700; color: var(--bl-ink); max-width: 56px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

#space-menu-spaces { max-height: 62vh !important; overflow-y: auto !important; }

/* 또래는 이름에 바로 붙여 표시 (문현성98) */
.bl-peer { display: inline; vertical-align: baseline; margin-left: 0; padding: 0; background: transparent; color: var(--bl-ink); font-weight: 700; font-size: 1em; font-family: inherit; letter-spacing: inherit; }

/* ── 모임 방: 출석 체크(참석 한 열) ── */
.bl-checkin-two .bl-checkin-row { grid-template-columns: 1fr 112px; }
@media (max-width: 480px) { .bl-checkin-two .bl-checkin-row { grid-template-columns: 1fr 88px; } }
.bl-attendee-list-meeting .form-label { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.bl-meeting-att-table .bl-col-week a { color: inherit; text-decoration: none; font-weight: 700; }
.bl-meeting-att-table .bl-col-week a:hover { text-decoration: underline; }
.bl-meeting-attendance .bl-tab-toolbar .bl-heading-tools { display: flex; gap: 6px; flex-wrap: wrap; }

/* ── 검색 아이콘: 최상단 바, 알림 종 왼쪽 · 검색창은 상단 바 아래로 스르륵 내려오는 패널 ── */
#topbar-first .notifications { display: flex; align-items: center; }
/* 데스크톱: 가운데 정렬용 transform 을 없앤다 (transform 이 있으면 검색 패널의 fixed 기준이 뷰포트가 아니게 됨) */
@media (min-width: 768px) { #topbar-first .notifications.translate-middle-x { transform: none !important; margin-left: -44px; } }
#topbar-first .notifications #search-menu-nav.bl-search-top { float: none; margin: 0 2px 0 0; padding: 0; display: flex; }
#topbar-first .notifications #search-menu-nav.bl-search-top > li { position: static; }
#topbar-first .notifications #search-menu-nav.bl-search-top > li > a.nav-link {
  width: 38px; height: 38px; padding: 0; margin: 6px 0; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; background-color: var(--hh-bl-soft, #eef1f6); color: var(--hh-bl-ink, #253b61); transition: background-color .2s ease;
}
#topbar-first .notifications #search-menu-nav.bl-search-top > li > a.nav-link::after { display: none; }
#topbar-first .notifications #search-menu-nav.bl-search-top > li > a.nav-link i { font-size: 15px; }
#topbar-first .notifications #search-menu-nav.bl-search-top > li > a.nav-link:hover,
#topbar-first .notifications #search-menu-nav.bl-search-top > li > a.nav-link.show { background-color: #e6eaf3; }
/* 검색 패널: 최상단 바 바로 아래(경계)에서 높이 0 → 실제 높이로 펼쳐지고, 아래 화면을 그만큼 밀어 내린다 */
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search {
  display: block !important; position: fixed !important; top: var(--bl-topbar-h, 50px) !important; left: 0 !important; right: 0 !important; bottom: auto !important;
  width: auto !important; max-width: none !important; margin: 0 !important; z-index: 1020;
  border-radius: 0 0 22px 22px; border: 0; padding: 0 16px; overflow: hidden;
  background: #fff; box-shadow: none;
  height: 0; visibility: hidden; pointer-events: none;
  transition: height .3s cubic-bezier(.2, .8, .2, 1), padding .3s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .3s;
}
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search.show {
  height: var(--bl-search-h, 0px); padding: 8px 16px 14px; visibility: visible; pointer-events: auto;
  box-shadow: 0 10px 24px rgba(24, 34, 54, .10);
  transition: height .3s cubic-bezier(.2, .8, .2, 1), padding .3s cubic-bezier(.2, .8, .2, 1), visibility 0s;
}
/* 바깥 클릭을 받는 투명 막 — 최상단 바가 어두워 보이지 않게 색을 없앤다 */
#topbar-first .notifications #search-menu-nav.bl-search-top .dropdown-backdrop { background: transparent !important; }
/* 실제 높이를 재는 순간에만 (그림 한 장도 그리기 전에 원래대로 돌린다) */
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search.bl-measure {
  height: auto !important; padding: 8px 16px 14px !important; transition: none !important;
}
/* 검색바가 열린 만큼 메뉴 바와 본문이 아래로 내려간다 */
#topbar-second, #layout-content { transition: transform .3s cubic-bezier(.2, .8, .2, 1), padding-top .3s cubic-bezier(.2, .8, .2, 1); }
body.bl-search-open #topbar-second { transform: translateY(var(--bl-search-h, 0px)); }
body.bl-search-open #layout-content { padding-top: var(--bl-search-h, 0px); }
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search > div,
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-list { max-width: 720px; margin-left: auto; margin-right: auto; }
/* 「검색」 제목 줄은 감추고 검색창만 보여 준다 (닫기 × 는 JS 가 검색창 안으로 옮긴다) */
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .bl-search-head-hidden { display: none !important; }
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-form #dropdown-search-close {
  position: absolute; right: 16px; top: 50%; transform: translateY(-50%); margin: 0; z-index: 3;
  width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; color: var(--bl-muted, #697384); font-size: 15px; cursor: pointer;
}
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-form #dropdown-search-close:hover { background: rgba(37, 59, 97, .08); color: var(--bl-ink, #182236); }
/* 입력창 안 왼쪽에 돋보기 버튼, 글자는 그 오른쪽부터 (겹침 방지) */
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-form { position: relative; display: block; padding: 4px 0; }
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-form .dropdown-search-keyword { width: 100%; border-radius: 999px; padding: 11px 52px 11px 52px !important; font-size: 15px; }
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-form .dropdown-search-button { position: absolute; left: 8px; top: 50%; transform: translateY(-50%); margin: 0; border-radius: 999px; width: 36px; height: 36px; padding: 0; display: inline-flex; align-items: center; justify-content: center; background: transparent; box-shadow: none; z-index: 2; }
#topbar-first .notifications #search-menu-nav.bl-search-top #dropdown-search .dropdown-search-list { max-height: 60vh; overflow-y: auto; }

/* 모임 보고서: 참석자 이름 목록 */
.bl-attendee-names { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-attendee-name { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px 3px 4px; border-radius: 999px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); font-size: 12.5px; font-weight: 600; }
.bl-attendee-name img { border-radius: 50%; }
.bl-attendee-name a { color: inherit; }
/* 모임 출석 표: 회차가 적을 때는 화면 폭에 맞춘다 (많아지면 가로 스크롤) */
.bl-meeting-att-table { min-width: 0; width: 100%; }
.bl-meeting-att-table .bl-col-name { white-space: nowrap; }
.bl-meeting-att-table .bl-col-week { min-width: 64px; }

/* 모임 방 작성 폼: 공개 범위 선택 */
.bl-space-scope-wrap { display: inline-flex; align-items: center; margin-right: 8px; vertical-align: middle; }
.bl-space-scope { width: auto; border-radius: 999px; padding: 6px 32px 6px 12px; font-weight: 700; font-size: 13px; background-color: #f1f3f8; border: 0; }
.contentForm_options .btn_container { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* 모임 방 메뉴: 줄 맨 오른쪽 "+ 모임 이름" (새 일정 만들기, 유형 미리 선택) */
#space-main-menu a.list-group-item.bl-menu-new-event { margin-left: auto; background: var(--bl-navy, #253b61) !important; color: #fff !important; font-weight: 800; border-color: transparent; }
#space-main-menu a.list-group-item.bl-menu-new-event i { color: #fff; }
#space-main-menu a.list-group-item.bl-menu-new-event:hover { filter: brightness(1.12); }
@media (min-width: 992px) { #space-main-menu a.list-group-item.bl-menu-new-event { margin-left: 0; margin-top: 8px; justify-content: center; } }

/* ── 모임 페이지 · 전체 목장 페이지: 카드 버튼 ── */
.bl-meetings-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 800; }
.bl-meetings-group { margin-top: 14px; }
.bl-meetings-label { font-size: 12.5px; font-weight: 800; letter-spacing: .02em; color: var(--bl-muted); margin: 0 0 8px 2px; }
.bl-meetings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; }
.bl-meeting-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 18px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
a.bl-meeting-card:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(24, 34, 54, .12); text-decoration: none; color: inherit; }
.bl-meeting-card.is-locked { opacity: .55; cursor: default; }
.bl-meeting-card.is-member { border-color: rgba(37, 59, 97, .25); }
.bl-meeting-card-img img, .bl-meeting-card-img .space-acronym { border-radius: 14px !important; width: 48px; height: 48px; }
.bl-meeting-card-body { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.bl-meeting-card-name { font-weight: 800; font-size: 15px; }
.bl-meeting-card-desc { font-size: 12px; color: var(--bl-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-meeting-card-meta { font-size: 12px; color: var(--bl-muted); margin-top: 2px; }
.bl-meeting-card-in { color: #3e7f22; font-weight: 700; }
.bl-meeting-card-arrow { color: #b3bcc9; }

/* ── 일정 페이지 탭 (밸런스 행사 / 개인 캘린더) ── */
.bl-cal-tabs { display: flex; gap: 6px; margin: 0 0 12px; }
.bl-cal-tabs a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; background: #f1f3f8; color: var(--bl-ink); font-weight: 700; font-size: 13.5px; text-decoration: none; }
.bl-cal-tabs a.active { background: var(--bl-navy, #253b61); color: #fff; }
.bl-cal-tabs a:hover { text-decoration: none; }

/* ── 개인 캘린더 (큐티·기도 스티커) ── */
.bl-pcal-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.bl-pcal-title { font-size: 18px; font-weight: 800; }
.bl-pcal-stats { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 10px; font-size: 13px; color: var(--bl-muted); }
.bl-pcal-stats b { color: var(--bl-ink); }
.bl-pcal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.bl-pcal-dow { text-align: center; font-size: 11.5px; font-weight: 800; color: var(--bl-muted); padding: 4px 0; }
.bl-pcal-dow.is-sun, .bl-pcal-cell.is-sun .bl-pcal-day { color: var(--bl-coral, #df6d72); }
.bl-pcal-dow.is-sat, .bl-pcal-cell.is-sat .bl-pcal-day { color: #3b6fb6; }
.bl-pcal-cell { position: relative; min-height: 64px; border-radius: 12px; background: #f7f8fb; padding: 6px 6px 4px; display: flex; flex-direction: column; gap: 2px; }
.bl-pcal-cell.is-empty { background: transparent; }
.bl-pcal-cell.is-today { outline: 2px solid var(--bl-navy, #253b61); background: #fff; }
.bl-pcal-cell.has-sticker { background: #fff; box-shadow: inset 0 0 0 1px var(--bl-line, #e6eaf1); }
.bl-pcal-day { font-size: 12px; font-weight: 700; line-height: 1; }
.bl-pcal-stickers { display: flex; flex-wrap: wrap; gap: 2px; margin-top: auto; }
.bl-sticker { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 8px; font-size: 12px; line-height: 1; color: #fff; box-shadow: 0 2px 6px rgba(24, 34, 54, .18); }
.bl-sticker-qt { background: linear-gradient(135deg, #4fc16b, #2f9a4b); }
.bl-sticker-prayer { background: linear-gradient(135deg, #f0777c, #d94a52); }
.bl-sticker-sm { width: 18px; height: 18px; font-size: 9.5px; border-radius: 6px; vertical-align: -3px; box-shadow: none; }
.bl-pcal-cell.has-sticker { background: #fff; box-shadow: inset 0 0 0 1.5px rgba(37, 59, 97, .18); }
.bl-pcal-foot { margin-top: 10px; }
@media (max-width: 480px) { .bl-pcal-cell { min-height: 54px; padding: 4px 4px 3px; border-radius: 9px; } .bl-sticker { width: 20px; height: 20px; font-size: 12px; border-radius: 6px; } .bl-pcal-day { font-size: 11px; } }

/* ── 모임 출석 체크: 직책별 한 줄 + 이름 옆 스위치 (공간 절약) ── */
.bl-att-compact { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 14px; overflow: hidden; }
.bl-att-compact th { width: 84px; padding: 8px 10px; font-size: 12px; font-weight: 800; color: var(--bl-muted); background: #f7f8fb; vertical-align: top; white-space: nowrap; border-bottom: 1px solid var(--bl-line, #e6eaf1); }
.bl-att-compact td { padding: 6px 8px; border-bottom: 1px solid var(--bl-line, #e6eaf1); display: flex; flex-wrap: wrap; gap: 6px; }
.bl-att-compact tr:last-child th, .bl-att-compact tr:last-child td { border-bottom: 0; }
.bl-att-compact-n { font-weight: 600; opacity: .7; }
.bl-chip-switch { position: relative; display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 4px 10px 4px 5px; border-radius: 999px; background: #f1f3f8; cursor: pointer; user-select: none; font-size: 13px; font-weight: 700; color: var(--bl-ink); transition: background-color .15s ease, color .15s ease; }
.bl-chip-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.bl-chip-switch .bl-switch { position: relative; width: 28px; height: 16px; border-radius: 999px; background: #cfd5df; flex: 0 0 28px; transition: background-color .15s ease; }
.bl-chip-switch .bl-switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .15s ease; }
.bl-chip-switch input:checked ~ .bl-switch { background: #3fae5a; }
.bl-chip-switch input:checked ~ .bl-switch::after { transform: translateX(12px); }
.bl-chip-switch input:checked ~ .bl-chip-name { color: #2f7a3f; }
.bl-chip-switch:has(input:checked) { background: #e8f6ec; }
.bl-chip-switch:active { transform: scale(.98); }
@media (max-width: 480px) { .bl-att-compact th { width: 64px; padding: 6px 8px; font-size: 11px; } .bl-chip-switch { font-size: 12.5px; padding: 3px 9px 3px 4px; } }

/* 조직 구조형 출석 표: 엘더 | 마을장 | 담당목자 | 부목자 */
.bl-att-scroll { overflow-x: auto; }
.bl-att-tree { min-width: 360px; }
.bl-att-tree th { width: auto; text-align: center; padding: 6px 8px; }
.bl-att-tree .bl-att-tree-section { text-align: left; background: #eef1f6; }
.bl-att-tree td.bl-att-tree-cells { display: table-cell; vertical-align: middle; padding: 5px 6px; border-bottom: 1px solid var(--bl-line, #e6eaf1); border-left: 1px solid var(--bl-line, #e6eaf1); }
.bl-att-tree td.bl-att-tree-cells:first-child { border-left: 0; }
.bl-att-tree td.bl-att-tree-cells .bl-chip-switch, .bl-att-tree td.bl-att-tree-cells .bl-chip-plain { margin: 2px 4px 2px 0; }
.bl-att-tree tr.bl-att-tree-village td.bl-att-tree-elder, .bl-att-tree tr.bl-att-tree-village td.bl-att-tree-head-cell { background: #fbfbfd; }
.bl-chip-plain { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: #f4f5f8; color: #9aa3b2; font-size: 12.5px; font-weight: 600; }
.bl-att-none { color: #c5ccd6; padding: 0 6px; }
.bl-att-tree .bl-chip-switch { padding: 3px 9px 3px 4px; font-size: 12.5px; }
.bl-att-tree .bl-chip-switch .bl-switch { width: 24px; height: 14px; flex-basis: 24px; }
.bl-att-tree .bl-chip-switch .bl-switch::after { width: 10px; height: 10px; }
.bl-att-tree .bl-chip-switch input:checked ~ .bl-switch::after { transform: translateX(10px); }
.bl-att-tree .bl-chip-switch, .bl-att-tree .bl-chip-plain, .bl-att-tree .bl-chip-name { white-space: nowrap; }
.bl-att-tree td.bl-att-tree-cells { padding: 4px 5px; }

/* 엘더·마을장 한 셀, 열 폭 균등, 여백 축소 */
.bl-att-tree { table-layout: fixed; width: 100%; min-width: 0; }
.bl-att-tree tr.bl-att-tree-head th { padding: 5px 4px; font-size: 11.5px; }
.bl-att-tree td.bl-att-tree-cells { padding: 3px 4px; }
.bl-att-tree td.bl-att-tree-village-cell { background: #fbfbfd; }
.bl-att-tree-role { display: block; font-size: 10px; font-weight: 800; color: #9aa3b2; margin: 2px 0 0 4px; line-height: 1.1; }
.bl-att-tree-role + .bl-chip-switch, .bl-att-tree-role + .bl-chip-plain, .bl-att-tree-role + .bl-att-none { margin-bottom: 4px; }
.bl-att-tree .bl-chip-switch, .bl-att-tree .bl-chip-plain { padding: 3px 7px 3px 4px; font-size: 12px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.bl-att-tree .bl-chip-plain { padding: 3px 8px; }

/* 엘더모임·마을장모임처럼 열이 하나뿐이면 마을 칸을 가로로 흘려 배치 */
.bl-att-tree td.bl-att-tree-flow .bl-chip-switch, .bl-att-tree td.bl-att-tree-flow .bl-chip-plain { display: inline-flex; margin: 2px 4px 2px 0; }
.bl-att-tree-one tr.bl-att-tree-head th { text-align: left; padding-left: 8px; }
.bl-att-tree-one td.bl-att-tree-village-cell { padding: 4px 6px; }

/* 마을 한 줄: 엘더·마을장 칸은 좁게, 목자·부목자 칸은 넓게 */
.bl-att-tree:not(.bl-att-tree-one) tr.bl-att-tree-head th:first-child, .bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell { width: 30%; }
.bl-att-tree td.bl-att-tree-flow { vertical-align: top; }

/* 행사 참여자(모임 방): 참석한 사람 이름만 */
.bl-pt-tree { margin-top: 8px; }
.bl-pt-name { display: inline-flex; align-items: center; margin: 2px 4px 2px 0; padding: 3px 10px; border-radius: 999px; background: #e8f6ec; color: #2f7a3f; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.bl-pt-tree .bl-pt-empty { padding: 10px; color: var(--bl-muted); }

/* 엘더·마을장 칸: 직위 이름 없이 이름만 한 줄로 */
.bl-att-tree td.bl-att-tree-village-cell { vertical-align: middle; }
.bl-att-tree:not(.bl-att-tree-one) tr.bl-att-tree-head th:first-child, .bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell { width: 36%; }

/* 출석 칩: 스위치 없이 이름만 — 회색 = 결석, 색 = 참석 */
.bl-chip-switch { padding: 4px 11px !important; background: #eef0f4; color: #8a94a6; }
.bl-chip-switch .bl-switch { display: none !important; }
.bl-chip-switch.is-on, .bl-chip-switch:has(input:checked) { background: linear-gradient(135deg, #4fc16b, #2f9a4b) !important; color: #fff !important; box-shadow: 0 2px 6px rgba(47, 154, 75, .3); }
.bl-chip-switch.is-on .bl-chip-name, .bl-chip-switch:has(input:checked) .bl-chip-name, .bl-chip-switch input:checked ~ .bl-chip-name { color: #fff; }
.bl-att-tree .bl-chip-switch { padding: 3px 9px !important; }

/* 모임 행사 참여자: 응답 상태별 이름 색 */
.bl-pt-name { background: #eef0f4; color: #8a94a6; }
.bl-pt-name.is-plain { background: #f4f5f8; color: #b3bcc9; font-weight: 600; }
.bl-pt-name.is-none { background: #eef0f4; color: #8a94a6; }
.bl-pt-name.is-yes { background: linear-gradient(135deg, #5aa9ff, #2f6fd6); color: #fff; box-shadow: 0 2px 6px rgba(47, 111, 214, .3); }
.bl-pt-name.is-no { background: linear-gradient(135deg, #f0777c, #d94a52); color: #fff; box-shadow: 0 2px 6px rgba(217, 74, 82, .3); }
.bl-pt-name.is-maybe { background: linear-gradient(135deg, #f7b955, #e6952a); color: #fff; }
.bl-pt-legend { margin-top: 6px; display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.bl-pt-legend .bl-pt-name { font-size: 11px; padding: 2px 8px; box-shadow: none; }

/* 출석 체크 칩: 참석 = 파랑 (행사 참석 응답과 같은 색으로 통일) */
.bl-chip-switch.is-on, .bl-chip-switch:has(input:checked) { background: linear-gradient(135deg, #5aa9ff, #2f6fd6) !important; box-shadow: 0 2px 6px rgba(47, 111, 214, .3); }

/* 엘더·마을장 칸은 내용에 딱 맞게, 나머지 칸이 남는 폭을 모두 쓴다 */
.bl-att-tree:not(.bl-att-tree-one) { table-layout: auto; }
.bl-att-tree:not(.bl-att-tree-one) tr.bl-att-tree-head th:first-child,
.bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell { width: 1%; white-space: nowrap; }
.bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell .bl-chip-switch,
.bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell .bl-chip-plain,
.bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell .bl-pt-name { margin-right: 3px; }

/* ── 모바일 아래 탭 바 + 목장·모임 시트 ── */
.bl-tabbar, .bl-navsheet, .bl-navsheet-backdrop { display: none; }
@media (max-width: 767.98px) {
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom, 0px)) !important; }
  .bl-install { bottom: calc(74px + env(safe-area-inset-bottom, 0px)); }
  .bl-tabbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1033; height: calc(60px + env(safe-area-inset-bottom, 0px)); padding: 0 4px env(safe-area-inset-bottom, 0px);
    background: rgba(255,255,255,.96); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
    border-top: 1px solid rgba(24,34,54,.08); box-shadow: 0 -8px 24px rgba(24,34,54,.06); transition: transform .22s ease; }
  .bl-tabbar.is-hidden { transform: translateY(110%); }
  .bl-tab { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; height: 60px; color: #7b8797; font-size: 10.5px; font-weight: 700; letter-spacing: -.01em; text-decoration: none !important; white-space: nowrap; -webkit-tap-highlight-color: transparent; }
  .bl-tab i { font-size: 21px; line-height: 1; transition: transform .15s ease; }
  .bl-tab:active i { transform: scale(.9); }
  .bl-tab.active { color: var(--bl-navy, #253b61); }
  .bl-tab.active i { color: var(--bl-coral, #df6d72); }
  .bl-navsheet-backdrop { display: block; position: fixed; inset: 0; z-index: 1031; background: rgba(24,34,54,.38); opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s linear .25s; }
  .bl-navsheet-backdrop.is-open { opacity: 1; visibility: visible; transition: opacity .25s ease, visibility 0s; }
  .bl-navsheet { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1032; max-height: 78vh; overflow-y: auto; background: #fff; border-radius: 22px 22px 0 0;
    padding: 6px 14px calc(78px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -18px 48px rgba(24,34,54,.22);
    transform: translateY(100%); transition: transform .32s cubic-bezier(.2,.8,.2,1); }
  .bl-navsheet.is-open { transform: translateY(0); }
  .bl-navsheet-handle { width: 40px; height: 4px; border-radius: 4px; background: #d9dee8; margin: 6px auto 10px; }
  .bl-navsheet-section { padding: 6px 0 10px; }
  .bl-navsheet-section + .bl-navsheet-section { border-top: 1px solid var(--bl-line, #e6eaf1); margin-top: 4px; padding-top: 12px; }
  .bl-navsheet-title { display: flex; align-items: center; justify-content: space-between; font-size: 12.5px; font-weight: 800; color: var(--bl-muted, #7b8797); letter-spacing: .02em; margin: 0 2px 6px; border: 0 !important; padding: 0; }
  .bl-navsheet-more { font-size: 12px; font-weight: 700; color: var(--bl-navy, #253b61); text-decoration: none !important; }
  .bl-navsheet-item { display: flex; align-items: center; gap: 12px; padding: 9px 8px; border-radius: 14px; color: var(--bl-ink, #1c2433); text-decoration: none !important; font-weight: 700; font-size: 15px; }
  .bl-navsheet-item:active { background: #f1f3f8; }
  .bl-navsheet-item.is-current { background: #eef2fa; }
  .bl-navsheet-item .fa-angle-right { margin-left: auto; color: #b3bcc9; }
  .bl-navsheet-ava { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; font-size: 16px; overflow: hidden; }
  .bl-navsheet-ava img { width: 100%; height: 100%; object-fit: cover; }
  .bl-navsheet-ava-soft { background: #eef1f6; color: var(--bl-navy, #253b61); }
  .bl-navsheet-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .bl-navsheet-empty { padding: 8px; font-size: 13px; color: var(--bl-muted, #7b8797); }
  body.bl-navsheet-open { overflow: hidden; }
}

/* 미가입(교적부) 인원 표시 */
.bl-noacct-ava { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #e9edf4; color: #5b6778; font-weight: 800; font-size: 12px; margin-right: 6px; vertical-align: middle; }
.bl-noacct-ava-sm { width: 22px; height: 22px; font-size: 11px; margin-right: 0; }
.bl-member-photo { display: inline-block; border-radius: 50%; object-fit: cover; vertical-align: middle; margin-right: 6px; background: #e9edf4; flex: 0 0 auto; }
.bl-member-photo.bl-noacct-ava-sm { margin-right: 0; }
.bl-noacct { display: inline-block; font-size: 10.5px; font-weight: 700; color: #8a94a6; background: #f1f3f8; border-radius: 6px; padding: 1px 6px; vertical-align: 1px; }
.bl-attendee-name-noacct { color: #5b6778; }
.bl-chip-switch.bl-chip-noacct .bl-chip-name::before { content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #b3bcc9; margin-right: 5px; vertical-align: 2px; }

/* 모임·목장 방의 한 줄 메뉴 (통계·목장 관리 페이지 상단) — 스트림 작성 탭(#contentFormMenu)과 크기·모양 동일 */
.bl-meeting-tabs-panel { padding: 14px 16px 8px; }
.bl-meeting-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; align-items: center; }
.bl-meeting-tabs .nav-item { flex: 0 0 auto; width: auto; }
.bl-meeting-tabs .nav-link { display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 999px; padding: 8px 16px; font-size: 13.5px; font-weight: 700; line-height: 1.4; background: rgba(37,59,97,.06); color: var(--bl-ink, #1c2433); }
.bl-meeting-tabs .nav-link i.fa { margin: 0; color: var(--bl-muted, #7b8797); font-size: 13px; }
.bl-meeting-tabs .nav-link:hover { background: rgba(37,59,97,.12); }
.bl-meeting-tabs .nav-link.active { background: var(--bl-navy, #253b61); color: #fff; box-shadow: 0 6px 16px rgba(37,59,97,.25); }
.bl-meeting-tabs .nav-link.active i.fa { color: #fff; }
/* 모임 방 헤더: "+ 새 모임" (초대 왼쪽) */
.controls-header .bl-new-meeting { margin-right: 6px; border-radius: 999px; font-weight: 800; }
/* 홈 글쓰기: 설정(톱니) 메뉴와 사진·동영상 옆 화살표는 쓰지 않으므로 숨김 */
.bl-home-form .contentForm_options .nav.nav-pills { display: none !important; }
.bl-home-form .contentForm_options .btn-group > .dropdown-toggle { display: none !important; }
.bl-home-form .contentForm_options .btn-group > .btn:not(.dropdown-toggle) { border-top-right-radius: 999px !important; border-bottom-right-radius: 999px !important; }
/* 모바일: 모임 방 헤더(새 모임·초대·설정)와 작성 탭 4개가 한 줄에 들어가도록 */
@media (max-width: 480px) {
  .panel-profile .statistics .entry { white-space: nowrap; }
  .controls-header .bl-new-meeting { padding: 6px 10px; font-size: 12.5px; margin-right: 4px; }
  .controls-header .btn { padding: 6px 10px; font-size: 12.5px; }
  #contentFormMenu .nav-link, .bl-meeting-tabs .nav-link { padding: 6px 10px !important; font-size: 12.5px !important; }
  #contentFormMenu .nav-link i.fa, .bl-meeting-tabs .nav-link i.fa { display: none; }
  .bl-meeting-tabs-panel { padding: 14px 16px 8px; }
}
/* 글 ⋯ 메뉴: 편집 · 퍼머링크 · 삭제 · 비공개 전환 · 댓글 잠그기 · 보관(아카이브) (+기도 응답됨, 행사 참여자·취소)만 — 토픽·알림·고정·콘텐츠 이동은 숨김 */
.wall-entry .preferences .dropdown-menu a[data-action-click="pin"],
.wall-entry .preferences .dropdown-menu a[data-action-click="unpin"],
.wall-entry .preferences .dropdown-menu a[data-action-click*="turnOffNotifications"],
.wall-entry .preferences .dropdown-menu a[data-action-click*="turnOnNotifications"],
.wall-entry .preferences .dropdown-menu a[data-action-url*="/content/move/"],
.wall-entry .preferences .dropdown-menu a.link[data-action-click="ui.modal.load"] { display: none !important; }

/* 행사 글: 참여 응답(참석·미정·불참)을 맨 위에 카드로 */
.bl-rsvp { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 14px; padding: 12px 14px; border-radius: 16px; background: linear-gradient(135deg, #fff4f0, #fdeef0); border: 1px solid rgba(223,109,114,.18); }
.bl-rsvp-answered { background: linear-gradient(135deg, #eef7f1, #eaf3ff); border-color: rgba(63,174,90,.18); }
.bl-rsvp-answered.bl-rsvp-1 { background: #f4f5f8; border-color: rgba(24,34,54,.08); }
.bl-rsvp-past { background: #f4f5f8; border-color: rgba(24, 34, 54, .08); }
.bl-rsvp-past .bl-rsvp-text b { color: var(--bl-muted, #697384); }
.bl-rsvp-past .bl-rsvp-text b .fa { color: var(--bl-muted, #697384); }
.bl-rsvp-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bl-rsvp-text b { font-size: 14px; color: var(--bl-ink, #1c2433); }
.bl-rsvp-text b .fa { color: var(--bl-coral, #df6d72); margin-right: 2px; }
.bl-rsvp-answered .bl-rsvp-text b .fa { color: #3fae5a; }
.bl-rsvp-sub { font-size: 12px; color: var(--bl-muted, #7b8797); }
.bl-rsvp-buttons { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 !important; }
.bl-rsvp-buttons .btn { border-radius: 999px; padding: 7px 16px; font-weight: 700; margin: 0 !important; }
@media (max-width: 480px) { .bl-rsvp { padding: 10px 12px; } .bl-rsvp-buttons { width: 100%; } .bl-rsvp-buttons .btn { flex: 1; padding: 8px 6px; } }
/* 모바일: "저장됨" 상태 알림이 아래 탭 바에 가리지 않도록 */
@media (max-width: 767.98px) { #status-bar, .status-bar { bottom: calc(68px + env(safe-area-inset-bottom, 0px)) !important; } }
/* ── 글 ⋯ 메뉴: 흰 카드 + 아이콘 동그라미 (코어의 짙은 메뉴 덮어씀) ── */
.wall-entry .preferences .dropdown-menu {
  background: #fff !important; color: var(--bl-ink, #1c2433) !important; border: 0 !important; border-radius: 18px !important;
  padding: 8px !important; min-width: 224px; box-shadow: 0 18px 50px rgba(24,34,54,.16), 0 0 0 1px rgba(24,34,54,.05) !important;
}
.wall-entry .preferences .dropdown-menu::before, .wall-entry .preferences .dropdown-menu::after { display: none !important; }
.wall-entry .preferences .dropdown-menu > li > a,
.wall-entry .preferences .dropdown-menu a.dropdown-item {
  display: flex; align-items: center; gap: 10px; padding: 7px 10px 7px 7px !important; border-radius: 12px !important;
  background: transparent !important; color: var(--bl-ink, #1c2433) !important; font-size: 13.5px !important; font-weight: 700 !important; line-height: 1.3;
  transition: background-color .15s ease;
}
.wall-entry .preferences .dropdown-menu > li > a:hover,
.wall-entry .preferences .dropdown-menu a.dropdown-item:hover,
.wall-entry .preferences .dropdown-menu a.dropdown-item:focus { background: #f1f3f8 !important; color: var(--bl-ink, #1c2433) !important; }
.wall-entry .preferences .dropdown-menu a .fa {
  display: inline-flex !important; align-items: center; justify-content: center; width: 30px !important; height: 30px; flex: 0 0 30px;
  border-radius: 10px; background: #eef1f6; color: var(--bl-navy, #253b61) !important; font-size: 13px !important; margin: 0 !important; text-align: center;
}
.wall-entry .preferences .dropdown-menu a[data-action-click="adminDelete"] .fa,
.wall-entry .preferences .dropdown-menu a[data-action-click="delete"] .fa,
.wall-entry .preferences .dropdown-menu a[data-action-url*="/delete"] .fa { background: #fdeeef; color: var(--bl-coral, #df6d72) !important; }
.wall-entry .preferences .dropdown-menu a[data-action-click="adminDelete"],
.wall-entry .preferences .dropdown-menu a[data-action-click="delete"],
.wall-entry .preferences .dropdown-menu a[data-action-url*="/delete"] { color: var(--bl-coral-deep, #c8555b) !important; }
.wall-entry .preferences .dropdown-menu a[data-action-click="archive"] .fa,
.wall-entry .preferences .dropdown-menu a[data-action-click="lockComments"] .fa,
.wall-entry .preferences .dropdown-menu a[data-action-click="toggleVisibility"] .fa { background: #f3f0fb; color: #7a5fc7 !important; }
.wall-entry .preferences .dropdown-menu .dropdown-divider,
.wall-entry .preferences .dropdown-menu li.divider { margin: 6px 6px !important; border-top: 1px solid rgba(24,34,54,.08) !important; opacity: 1; }
.wall-entry .preferences .dropdown-toggle { width: 34px; height: 34px; display: inline-flex !important; align-items: center; justify-content: center; border-radius: 999px !important; }
/* ── 프로필(계정) 메뉴: 흰 카드 + 아이콘 동그라미, 그룹 구분선, 로그아웃은 산호색 ── */
#topbar-first li.account > .dropdown-menu {
  background: #fff !important; border: 0 !important; border-radius: 18px !important; padding: 8px !important; min-width: 236px;
  box-shadow: 0 18px 50px rgba(24,34,54,.16), 0 0 0 1px rgba(24,34,54,.05) !important; margin-top: 8px !important;
}
#topbar-first li.account > .dropdown-menu > li { border: 0 !important; box-shadow: none !important; }
#topbar-first li.account > .dropdown-menu > li:empty { display: none; }
#topbar-first li.account > .dropdown-menu a.dropdown-item {
  display: flex !important; align-items: center; gap: 10px; padding: 7px 10px 7px 7px !important; border: 0 !important; border-radius: 12px !important;
  background: transparent !important; box-shadow: none !important; color: var(--bl-ink, #1c2433) !important; font-size: 13.5px !important; font-weight: 700 !important; line-height: 1.3;
}
#topbar-first li.account > .dropdown-menu a.dropdown-item:hover,
#topbar-first li.account > .dropdown-menu a.dropdown-item:focus { background: #f1f3f8 !important; }
#topbar-first li.account > .dropdown-menu a.dropdown-item.active { background: #eef2fa !important; color: var(--bl-navy, #253b61) !important; }
#topbar-first li.account > .dropdown-menu a.dropdown-item .fa {
  display: inline-flex !important; align-items: center; justify-content: center; width: 30px !important; height: 30px; flex: 0 0 30px;
  border-radius: 10px; background: #eef1f6; color: var(--bl-navy, #253b61) !important; font-size: 13px !important; margin: 0 !important; text-align: center;
}
#topbar-first li.account > .dropdown-menu a.dropdown-item[href*="/logout"] { color: var(--bl-coral-deep, #c8555b) !important; }
#topbar-first li.account > .dropdown-menu a.dropdown-item[href*="/logout"] .fa { background: #fdeeef; color: var(--bl-coral, #df6d72) !important; }
#topbar-first li.account > .dropdown-menu a.dropdown-item[href*="/admin"] .fa,
#topbar-first li.account > .dropdown-menu a.dropdown-item[href*="/marketplace"] .fa,
#topbar-first li.account > .dropdown-menu a.dropdown-item[href*="member-admin"] .fa { background: #f3f0fb; color: #7a5fc7 !important; }
#topbar-first li.account > .dropdown-menu .dropdown-divider { margin: 6px 6px !important; border-top: 1px solid rgba(24,34,54,.08) !important; opacity: 1; }
@media (max-width: 767.98px) { #topbar-first li.account > .dropdown-menu { position: fixed !important; top: 56px !important; right: 8px !important; left: auto !important; width: min(300px, calc(100vw - 16px)); transform: none !important; } }

/* ── 가입 확인(온보딩) ── */
.bl-onboard { max-width: 560px; margin: 24px auto 40px; padding: 0 16px; }
.bl-onboard-card { background: #fff; border-radius: 24px; padding: 28px 24px 22px; box-shadow: 0 18px 50px rgba(24,34,54,.12), 0 0 0 1px rgba(24,34,54,.05); }
.bl-onboard-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .12em; color: var(--bl-coral, #df6d72); text-transform: uppercase; margin-bottom: 8px; }
.bl-onboard-card, .bl-onboard-card * { text-align: left; }
.bl-onboard-card h1.bl-onboard-title { font-size: 24px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 6px; color: var(--bl-ink, #1c2433) !important; text-shadow: none; }
.bl-onboard-card p { color: var(--bl-muted, #7b8797); }
.bl-onboard-card .bl-onboard-actions, .bl-onboard-card .bl-onboard-actions * { text-align: center; }
.bl-onboard-lead { color: var(--bl-muted, #7b8797); font-size: 14px; margin: 0 0 18px; }
.bl-onboard-rows { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; }
.bl-onboard-row { display: grid; grid-template-columns: 96px 1fr; gap: 10px; align-items: start; padding: 12px 14px; border-radius: 16px; background: #f5f7fb; }
.bl-onboard-label { font-size: 12.5px; font-weight: 800; color: var(--bl-muted, #7b8797); padding-top: 2px; }
.bl-onboard-label .fa { width: 18px; color: var(--bl-navy, #253b61); }
.bl-onboard-value { font-size: 16px; font-weight: 800; color: var(--bl-ink, #1c2433); min-width: 0; }
.bl-onboard-peer { font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-onboard-sub { font-size: 12.5px; font-weight: 500; color: var(--bl-muted, #7b8797); margin-top: 2px; }
.bl-onboard-missing { color: var(--bl-coral-deep, #c8555b); }
.bl-onboard-actions { display: flex; flex-direction: column; gap: 8px; }
.bl-onboard-form { margin: 0; }
.bl-onboard-yes { width: 100%; border-radius: 999px; padding: 12px 16px; font-weight: 800; font-size: 15px; }
.bl-onboard-no { width: 100%; border-radius: 999px; padding: 11px 16px; font-weight: 700; }
.bl-onboard-note { margin: 14px 0 0; font-size: 12px; color: var(--bl-muted, #7b8797); line-height: 1.55; }
.bl-onboard-field { margin-bottom: 16px; }
.bl-onboard-field > label { display: block; font-size: 13px; font-weight: 800; margin-bottom: 6px; color: var(--bl-ink, #1c2433); }
.bl-onboard-req { color: var(--bl-coral, #df6d72); }
.bl-onboard-field .form-control, .bl-onboard-field .form-select { border-radius: 14px; padding: 11px 14px; font-size: 15px; }
.bl-onboard-hint { font-size: 12px; color: var(--bl-muted, #7b8797); margin-top: 5px; line-height: 1.5; }
.bl-onboard-error { font-size: 12.5px; font-weight: 700; color: var(--bl-coral-deep, #c8555b); margin-top: 5px; }
.bl-onboard-field.has-error .form-control, .bl-onboard-field.has-error .form-select { border-color: var(--bl-coral, #df6d72); }
.bl-onboard-roles { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-onboard-role { position: relative; margin: 0; cursor: pointer; }
.bl-onboard-role input { position: absolute; opacity: 0; width: 0; height: 0; }
.bl-onboard-role span { display: inline-block; padding: 8px 14px; border-radius: 999px; background: #f1f3f8; font-weight: 700; font-size: 13.5px; color: var(--bl-ink, #1c2433); transition: background-color .15s ease, color .15s ease; }
.bl-onboard-role input:checked + span { background: var(--bl-navy, #253b61); color: #fff; }
@media (max-width: 480px) { .bl-onboard { margin-top: 12px; } .bl-onboard-card { padding: 22px 18px 18px; border-radius: 20px; } .bl-onboard-row { grid-template-columns: 84px 1fr; } .bl-onboard-title { font-size: 21px; } }
/* (재선언) 글 ⋯ 메뉴 숨김 — 위의 메뉴 디자인 규칙(display:flex !important)보다 뒤에, 더 높은 우선순위로 */
.wall-entry .preferences .dropdown-menu li > a.dropdown-item[data-action-click="pin"],
.wall-entry .preferences .dropdown-menu li > a.dropdown-item[data-action-click="unpin"],
.wall-entry .preferences .dropdown-menu li > a.dropdown-item[data-action-click*="turnOffNotifications"],
.wall-entry .preferences .dropdown-menu li > a.dropdown-item[data-action-click*="turnOnNotifications"],
.wall-entry .preferences .dropdown-menu li > a.dropdown-item[data-action-url*="/content/move/"],
.wall-entry .preferences .dropdown-menu li > a.dropdown-item.link[data-action-click="ui.modal.load"],
.wall-entry .preferences .dropdown-menu li > a[data-action-click="pin"],
.wall-entry .preferences .dropdown-menu li > a[data-action-click*="Notifications"],
.wall-entry .preferences .dropdown-menu li > a[data-action-url*="/content/move/"] { display: none !important; }
.wall-entry .preferences .dropdown-menu li:has(> a[data-action-click="pin"]),
.wall-entry .preferences .dropdown-menu li:has(> a[data-action-click*="Notifications"]),
.wall-entry .preferences .dropdown-menu li:has(> a[data-action-url*="/content/move/"]),
.wall-entry .preferences .dropdown-menu li:has(> a.link[data-action-click="ui.modal.load"]) { display: none !important; }
/* 프로필 메뉴: 폭을 내용에 맞게 좁히고 구분선은 얇게 */
#topbar-first li.account > .dropdown-menu { width: 232px !important; min-width: 0 !important; max-width: calc(100vw - 16px) !important; }
#topbar-first li.account > .dropdown-menu a.dropdown-item { padding: 6px 10px 6px 6px !important; font-size: 13px !important; white-space: nowrap; }
#topbar-first li.account > .dropdown-menu a.dropdown-item .fa { width: 28px !important; height: 28px; flex-basis: 28px; font-size: 12.5px !important; }
#topbar-first li.account > .dropdown-menu hr.dropdown-divider, #topbar-first li.account > .dropdown-menu .dropdown-divider { border: 0 !important; border-top: 1px solid rgba(24,34,54,.08) !important; height: 0; margin: 5px 8px !important; opacity: 1; background: transparent; }

/* 목장 관리 페이지: 위 한 줄(게시물·목장모임·기도제목·목장 관리) 아래의 구역 탭은 작게 */
.bl-mokjang .bl-mokjang-head-tabs-only .bl-tabs .nav-link { padding: 6px 12px; font-size: 12.5px; }

/* 목장 관리: 구역(출석 체크·현황·목원)을 한 페이지에 세로로 */
.bl-mokjang-section { margin-bottom: 14px; }
.bl-mokjang-section > .panel-heading.bl-mokjang-head { padding: 16px 18px 4px; }
.bl-mokjang-section-title { display: inline-flex; align-items: center; gap: 8px; font-size: 15.5px; font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-mokjang-section-title .fa { width: 28px; height: 28px; border-radius: 9px; background: #eef1f6; color: var(--bl-navy, #253b61); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }

/* 알림 설정: 푸시 켜기 상자 */
.bl-push-box { margin: 0 0 16px; }
.bl-push-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border-radius: 16px; background: #f5f7fb; border: 1px solid rgba(24,34,54,.06); }
.bl-push-row > div { flex: 1 1 200px; min-width: 0; }
.bl-push-row b { font-size: 14px; color: var(--bl-ink, #1c2433); }
.bl-push-sub { font-size: 12.5px; color: var(--bl-muted, #7b8797); margin-top: 2px; line-height: 1.5; }
.bl-push-icon { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 12px; background: #eef1f6; color: var(--bl-navy, #253b61); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; }
.bl-push-icon-on { background: #e6f5ea; color: #3fae5a; }
.bl-push-icon-warn { background: #fdeeef; color: var(--bl-coral, #df6d72); }
.bl-push-btn { border-radius: 999px; font-weight: 800; white-space: nowrap; }
@media (max-width: 480px) { .bl-push-btn { width: 100%; } }

/* 초안 불러옴 안내 */
.bl-draft-note { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; padding: 9px 12px; border-radius: 12px; background: #fff8e6; color: #7a5a00; font-size: 12.5px; font-weight: 600; }
.bl-draft-note a { color: var(--bl-navy, #253b61); font-weight: 800; text-decoration: underline; }

/* 출석표: 한 칸에 예배·목장 두 표시 */
.bl-att2 { display: inline-flex; gap: 3px; }
.bl-att2 i, .bl-rate2 i { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 6px; font-style: normal; font-size: 10.5px; font-weight: 800; background: #eef1f6; color: #b3bcc9; }
.bl-att2 i.bl-att2-w.on, .bl-rate2 i.bl-att2-w { background: #fdeaeb; color: #c8474e; }
.bl-att2 i.bl-att2-c.on, .bl-rate2 i.bl-att2-c { background: #e3efff; color: #2f6fd1; }
.bl-rate2 { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.bl-rate2 + .bl-rate2 { margin-top: 3px; }
.bl-attendance-table .bl-cell { text-align: center; }

/* 출석표: 원 하나를 반으로 나눠 왼쪽 = 예배(파랑), 오른쪽 = 목장(초록). 글자 없이 색으로만 */
.bl-dot { --w: #e6eaf1; --c: #e6eaf1; position: relative; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; vertical-align: middle;
  background: linear-gradient(90deg, var(--w) 0 50%, var(--c) 50% 100%); box-shadow: inset 0 0 0 1px rgba(24,34,54,.06); }
.bl-dot::after { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: rgba(255,255,255,.75); }
.bl-dot-w { --w: #e45c62; }
.bl-dot-c { --c: #3b7ddd; }
.bl-dot-both { --w: #e45c62; --c: #3b7ddd; box-shadow: 0 2px 6px rgba(59,125,221,.25); }
.bl-dot-both .fa { position: relative; z-index: 1; color: #fff; font-size: 11px; }
.bl-dot-none { --w: #eef1f6; --c: #eef1f6; }
.bl-legend .bl-dot { width: 18px; height: 18px; }
.bl-legend .bl-dot-both .fa { font-size: 9px; }

/* 출석표 이름 옆 메모 버튼 (목자·마을장·엘더·관리자) */
.bl-memo-btn { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 2px 7px; border-radius: 999px; background: #f1f3f8; color: #8a94a6; font-size: 11px; font-weight: 800; text-decoration: none !important; vertical-align: middle; }
.bl-memo-btn:hover { background: #e6eaf3; color: var(--bl-navy, #253b61); }
.bl-memo-btn.has-notes { background: #fff4e0; color: #9a6b00; }
.bl-dots { display: inline-flex; gap: 4px; flex-wrap: wrap; }

/* 출석표 아래로 펼쳐지는 메모 상자 */
tr.bl-memo-row > td { padding: 0 !important; border-top: 0 !important; background: #fbfbfd; }
.bl-memo-slot { padding: 10px 12px 12px; }
.bl-memo-panel { background: #fff; border: 1px solid rgba(24,34,54,.08); border-radius: 14px; padding: 12px 14px; }
.bl-memo-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.bl-memo-head b { font-size: 13.5px; color: var(--bl-ink, #1c2433); }
.bl-memo-head b .fa { color: #9a6b00; }
.bl-memo-sub { font-size: 11.5px; color: var(--bl-muted, #7b8797); }
.bl-memo-full { margin-left: auto; color: #b3bcc9; font-size: 12px; }
.bl-memo-form { margin: 0 0 10px; }
.bl-memo-text { border-radius: 12px; font-size: 13.5px; }
.bl-memo-actions { display: flex; gap: 6px; margin-top: 6px; }
.bl-memo-actions .btn { border-radius: 999px; font-weight: 700; }
.bl-memo-empty { font-size: 12.5px; color: var(--bl-muted, #7b8797); padding: 4px 2px; }
.bl-memo-item { padding: 8px 10px; border-radius: 10px; background: #f7f8fb; margin-top: 6px; white-space: normal; }
.bl-memo-item.is-editing { outline: 2px solid rgba(37,59,97,.25); }
.bl-memo-meta { display: flex; gap: 8px; align-items: center; font-size: 11.5px; color: var(--bl-muted, #7b8797); margin-bottom: 3px; }
.bl-memo-meta .bl-memo-author { font-weight: 700; color: var(--bl-ink, #1c2433); }
.bl-memo-meta a { font-weight: 700; color: var(--bl-navy, #253b61); }
.bl-memo-meta a.bl-memo-del { color: var(--bl-coral-deep, #c8555b); }
.bl-memo-body { font-size: 13.5px; line-height: 1.55; color: var(--bl-ink, #1c2433); }
/* 메모 상자는 표가 가로로 넘쳐도 화면 폭 안에 붙어 있게 (스크롤 컨테이너 기준 sticky) */
.bl-memo-slot { position: sticky; left: 0; width: min(100%, calc(100vw - 40px)); box-sizing: border-box; }
.bl-memo-panel, .bl-memo-panel * { white-space: normal; }

/* 목원 관리 표 */
.bl-members-table2 { min-width: 760px; font-size: 13px; }
.bl-members-table2 th, .bl-members-table2 td { vertical-align: middle; white-space: nowrap; }
.bl-members-table2 .bl-col-name { white-space: normal; min-width: 150px; }
.bl-members-sub { font-size: 11.5px; color: var(--bl-muted, #7b8797); margin-top: 2px; white-space: normal; }
.bl-members-lastnote { max-width: 220px; }
.bl-members-count div { line-height: 1.5; }
.bl-members-phone a { color: var(--bl-navy, #253b61); font-weight: 700; text-decoration: none; }
.bl-members-page .bl-memo-slot { width: min(100%, calc(100vw - 40px)); }

/* 이름 칸을 누르면 메모가 펼쳐짐 */
td.bl-memo-trigger { cursor: pointer; }
td.bl-memo-trigger:hover { background: #f5f7fb; }
td.bl-memo-trigger .bl-name::after { content: "\f0d7"; font-family: FontAwesome; font-size: 10px; color: #b3bcc9; margin-left: 5px; }

/* 메모 상자: 정보 먼저, 쓰기는 버튼을 눌러야 열림 */
.bl-memo-info { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 12.5px; color: var(--bl-muted, #7b8797); margin: 0 0 8px; }
.bl-memo-info b { color: var(--bl-ink, #1c2433); }
.bl-memo-info a { color: var(--bl-navy, #253b61); font-weight: 700; text-decoration: none; }
.bl-memo-write { border-radius: 999px; font-weight: 800; }
.bl-memo-form[hidden] { display: none !important; }
/* ▾ 표시는 또래 뒤에 (이름과 또래 사이에 끼지 않도록) */
td.bl-memo-trigger .bl-name:has(+ .bl-peer)::after { content: none; }
td.bl-memo-trigger .bl-peer::after { content: "\f0d7"; font-family: FontAwesome; font-size: 10px; color: #b3bcc9; margin-left: 5px; font-weight: 400; }

/* 출석표 이름 아래 연락처·생일 (관리자만) */
.bl-att-contact { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 2px; }
.bl-att-contact span, .bl-att-contact a { color: var(--bl-navy, #253b61); font-weight: 700; text-decoration: none; }
.bl-memo-row .bl-members-sub a[href^="tel:"] { color: var(--bl-navy, #253b61); font-weight: 800; text-decoration: underline; text-decoration-color: rgba(37,59,97,.35); text-underline-offset: 3px; }

/* 메모가 있으면 이름 옆에 메모 아이콘 + 동그란 숫자 */
.bl-memo-count-text { position: relative; display: inline-flex; align-items: center; margin-left: 8px; vertical-align: middle; color: #e0a020; }
.bl-memo-count-text .fa { font-size: 15px; }
.bl-memo-count-text .bl-memo-count { position: absolute; top: -7px; right: -9px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; background: var(--bl-coral, #df6d72); color: #fff; font-size: 10px; font-weight: 800; line-height: 16px; text-align: center; box-shadow: 0 0 0 2px #fff; }
/* ── 지체들 목록: 한 줄 카드 ── */
.card-panel.bl-people-row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; margin: 0 0 8px; border-radius: 16px; background: #fff; box-shadow: 0 6px 18px rgba(24,34,54,.06), 0 0 0 1px rgba(24,34,54,.05); min-height: 0; }
.bl-people-ava { flex: 0 0 44px; }
.bl-people-ava img, .bl-people-ava .profile-user-photo { width: 44px !important; height: 44px !important; border-radius: 14px !important; }
.bl-people-main { flex: 1 1 auto; min-width: 0; }
.bl-people-name { font-size: 15px; font-weight: 800; color: var(--bl-ink, #1c2433); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-people-name a { color: inherit; text-decoration: none; }
.bl-people-sub { display: flex; gap: 6px; flex-wrap: wrap; font-size: 12px; color: var(--bl-muted, #7b8797); margin-top: 1px; }
.bl-people-online { color: #3fae5a; font-weight: 700; }
.bl-people-online .fa { font-size: 8px; vertical-align: 1px; }
.bl-people-last .fa { font-size: 8px; vertical-align: 1px; color: #c5ccd6; }
.bl-people-actions { flex: 0 0 auto; display: flex; gap: 6px; }
.bl-people-actions .btn { padding: 5px 12px; font-size: 12.5px; border-radius: 999px; font-weight: 700; margin: 0 !important; }
/* 목록 컨테이너: 격자 대신 세로 한 열 */
.people-cards, .card-list, #people-cards, .people-list { display: block !important; }
.people-cards > .card, .card-list > .card, .people-list > .card { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; }
/* 지체들 카드: 코어의 세로·가운데 정렬을 이기고 한 줄 가로 배치 */
.cards .card-people { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 0 8px !important; }
.cards .card-people .card-panel.bl-people-row { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; text-align: left !important; gap: 12px; padding: 10px 14px !important; margin: 0 !important; min-height: 0 !important; height: auto !important; }
.cards .card-people .card-panel.bl-people-row > * { margin: 0 !important; }
.cards .card-people .bl-people-ava, .cards .card-people .bl-people-ava a { display: inline-block; line-height: 0; }
.cards .card-people .bl-people-main { flex: 1 1 auto; min-width: 0; text-align: left !important; }
.cards .card-people .bl-people-actions { flex: 0 0 auto; margin-left: auto !important; }
.cards .card-people .bl-people-actions .btn { padding: 5px 12px !important; font-size: 12.5px !important; }
/* 프로필 페이지: 한 줄 메뉴(게시물) + 안내 */
.bl-profile-tabs .bl-profile-hint { font-size: 12.5px; color: var(--bl-muted, #7b8797); margin: 6px 2px 0; }
/* 친구 기능 끔 + 팔로우·차단 버튼 숨김 (지체 목록·프로필 헤더) */
.bl-people-actions .followButton, .bl-people-actions .unfollowButton,
.panel-profile .controls-header .followButton, .panel-profile .controls-header .unfollowButton,
.panel-profile .controls-header a[href*="block"], .panel-profile .controls-header a[data-action-url*="block"], .panel-profile .controls-header .blockUserButton { display: none !important; }
/* 프로필 편집: "프로필에서 연도 숨기기" 체크 삭제 — 또래(생년)가 중요 */
.form-check:has(#profile-birthday_hide_year) { display: none !important; }

/* 댓글 입력창은 기본 접힘 — 테마 views/comment/widgets/comments.php 에서 인라인 hide (댓글/답변 클릭 시 펼쳐짐) */

/* 긴 글 "더 보기/접기": 가운데 알약 버튼, 댓글·반응 줄과 간격 */
.wall-entry a.showMore { display: block !important; width: max-content; margin: 12px auto 14px !important; padding: 6px 16px; border-radius: 999px; background: #f1f3f8; color: var(--bl-ink, #1c2433) !important; font-size: 13px; font-weight: 700; text-decoration: none !important; line-height: 1.3; }
.wall-entry a.showMore:hover { background: #e6eaf1; }

/* 구독 스위치 (하단 시트·관리 페이지) */
.bl-switch { position: relative; display: inline-block; width: 42px; height: 24px; margin: 0; flex: 0 0 auto; cursor: pointer; }
.bl-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.bl-switch-track { position: absolute; inset: 0; border-radius: 999px; background: #cfd5df; transition: background .2s; }
.bl-switch-track::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: transform .2s; }
.bl-switch input:checked + .bl-switch-track { background: var(--bl-coral, #df6d72); }
.bl-switch input:checked + .bl-switch-track::after { transform: translateX(18px); }
.bl-switch input:disabled + .bl-switch-track { opacity: .5; }
.bl-navsheet-sub { font-size: 12px; font-weight: 500; color: var(--bl-muted, #7b8494); margin-left: 8px; }
.bl-navsheet-subrow { padding: 6px 8px; }
.bl-navsheet-subrow .bl-navsheet-sublink { display: flex; align-items: center; gap: 12px; flex: 1 1 auto; min-width: 0; color: inherit; text-decoration: none !important; }
.bl-navsheet-subrow.is-off .bl-navsheet-sublink { opacity: .5; }
.bl-navsheet-subrow .bl-navsheet-name { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 구독 취소한 콘텐츠 방 상단 배너 */
.bl-sub-banner { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding: 10px 14px; border-radius: 14px; background: #fff7e8; border: 1px solid #f5dfb3; color: #6b4d12; font-size: 13.5px; }
.bl-sub-banner .fa { color: #d99a2b; }
.bl-sub-banner span { flex: 1 1 auto; }
.bl-sub-banner .btn { border-radius: 999px; }

/* 관리자: 자동 게시 콘텐츠 */
.bl-content-admin .bl-inline-form { display: inline; margin: 0; }
.bl-content-admin .bl-hint { color: var(--bl-muted, #7b8494); font-size: 13px; margin: 0 0 12px; }
.bl-content-log { background: #eef7f0; border: 1px solid #cfe7d6; border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; font-size: 13px; }
.bl-content-log ul { margin: 6px 0 0; padding-left: 18px; }
.bl-source-list { display: flex; flex-direction: column; gap: 8px; }
.bl-source { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 14px; background: #fff; }
.bl-source.is-off { opacity: .55; }
.bl-source .bl-navsheet-ava { width: 36px; height: 36px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 800; flex: 0 0 auto; }
.bl-source-main { flex: 1 1 0; min-width: 0; }
.bl-source-title { font-weight: 700; font-size: 15px; }
.bl-source-title a { color: var(--bl-ink, #1c2433); }
.bl-source-title small { font-weight: 500; color: var(--bl-muted, #7b8494); margin-left: 6px; }
.bl-source-meta { font-size: 12.5px; color: var(--bl-muted, #7b8494); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-source-lastlog { color: #9aa3b2; }
.bl-source-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.bl-recent-imports .bl-import-row { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--bl-line, #e6eaf1); font-size: 13.5px; }
.bl-recent-imports .bl-import-row:last-child { border-bottom: 0; }
.bl-import-src { color: #fff; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; flex: 0 0 auto; white-space: nowrap; }
.bl-import-title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--bl-ink, #1c2433); }
.bl-import-time { color: var(--bl-muted, #7b8494); font-size: 12px; flex: 0 0 auto; }
@media (max-width: 480px) {
  .bl-source { flex-wrap: wrap; }
  .bl-source-actions { margin-left: auto; }
}

/* 공개 대상(직책 타겟팅) */
.bl-audience-wrap { display: inline-block; margin-right: 6px; }
.bl-audience { display: inline-block; width: auto; border-radius: 999px !important; padding: 4px 28px 4px 10px !important; font-size: 12.5px !important; font-weight: 700; border: 1px solid #f0c9cb !important; background-color: #fff4f4 !important; color: var(--bl-coral-deep, #c8555b) !important; }
.bl-audience-badge { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 8px; padding: 3px 10px; border-radius: 999px; background: #fff4f4; color: var(--bl-coral-deep, #c8555b); font-size: 12px; font-weight: 700; }

/* 보관함 = 저장(북마크). HumHub 보관(아카이브) 항목은 숨김 */
.wall-entry .preferences .dropdown-menu a[data-action-click="archive"],
.wall-entry .preferences .dropdown-menu a[data-action-click="unarchive"] { display: none !important; }
.wall-entry .preferences .dropdown-menu a.bl-bookmark[data-on="1"] .fa { background: #fff4f4; color: var(--bl-coral, #df6d72) !important; }

/* 일정 참석 직책 */
.bl-role-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-role-chip { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--bl-line, #e6eaf1); background: #fff; font-size: 13px; font-weight: 700; color: var(--bl-ink, #1c2433); cursor: pointer; }
.bl-role-chip input { margin: 0; accent-color: var(--bl-coral, #df6d72); }
.bl-role-chip.active { background: #fff4f4; border-color: #f0c9cb; color: var(--bl-coral-deep, #c8555b); }
.bl-event-roles .form-label small { font-weight: 500; }
.bl-event-roles-chip { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 10px; padding: 4px 10px; border-radius: 999px; background: #eef3fb; color: #2f4f7f; font-size: 12.5px; font-weight: 700; }
.bl-event-people .form-label small { font-weight: 500; }
.bl-event-people .select2-container { width: 100% !important; }
.bl-onboard-field .bl-req { color: var(--bl-coral, #df6d72); }
.bl-onboard-birthday { margin-bottom: 14px; text-align: left; }
.bl-onboard-error { color: var(--bl-coral-deep, #c8555b); font-size: 12.5px; margin-top: 4px; }

/* 내 페이지 「기록」 달력: 참석 모임 */
.bl-pcal-event { display: block; margin-top: 2px; padding: 1px 5px; border-radius: 6px; background: color-mix(in srgb, var(--ev, #5aa9ff) 18%, #fff); border-left: 3px solid var(--ev, #5aa9ff); color: var(--bl-ink, #1c2433); font-size: 10.5px; font-weight: 700; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none !important; }
.bl-pcal-events { margin-top: 14px; border-top: 1px solid var(--bl-line, #e6eaf1); padding-top: 12px; }
.bl-pcal-events-title { font-weight: 800; font-size: 14px; margin-bottom: 6px; }
.bl-pcal-events-empty { color: var(--bl-muted, #7b8494); font-size: 13px; }
.bl-pcal-event-row { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-radius: 12px; color: var(--bl-ink, #1c2433); text-decoration: none !important; }
.bl-pcal-event-row:hover { background: #f7f8fb; }
.bl-pcal-event-date { flex: 0 0 64px; font-weight: 800; font-size: 13px; }
.bl-pcal-event-date small { display: block; font-weight: 500; color: var(--bl-muted, #7b8494); }
.bl-pcal-event-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.bl-pcal-event-name { flex: 1 1 auto; font-weight: 700; font-size: 14px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-pcal-event-name small { color: var(--bl-muted, #7b8494); font-weight: 500; margin-left: 4px; }
.bl-pcal-event-row .fa-angle-right { color: #b5bcc8; }
@media (max-width: 480px) { .bl-pcal-event { font-size: 9.5px; padding: 1px 3px; } }
.bl-board-tabs .bl-board-mine { margin-left: auto; }
.bl-board-tabs .bl-board-mine-link { background: transparent !important; color: var(--bl-muted, #7b8494) !important; font-weight: 600; }
.bl-board-tabs .bl-board-mine-link:hover { color: var(--bl-ink, #1c2433) !important; }
.bl-composer-sub .bl-mine-link { color: var(--bl-navy, #253b61); font-weight: 700; text-decoration: none !important; }
.bl-sheet-illumination { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: #fffbea; border: 1px solid #f3e4a6; color: #6b5a12; font-size: 13.5px; line-height: 1.5; }
.bl-sheet-illumination .fa { color: #d9a92b; margin-right: 4px; }
.bl-sheet-illumination b { margin-right: 6px; }
.bl-qt-illumination { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; padding: 8px 12px; border-radius: 10px; background: #fffbea; border: 1px solid #f3e4a6; font-size: 13px; color: #6b5a12; }
.bl-qt-illumination b { font-size: 13px; }

/* HumHub 「링크」(퍼머링크, 로그인 필요)는 쓰지 않는다 — 공유는 「링크 공유」(내 글·말씀지기 글)로만 */
.wall-entry .preferences .dropdown-menu a[data-action-click="content.permalink"] { display: none !important; }

/* 목장모임 출석 체크: 미가입 교적부 목원 */
.bl-checkin-ava-none { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #e6eaf1; color: #8a93a3; font-size: 13px; flex: 0 0 auto; }
.bl-noacct-mark { display: inline-block; margin-left: 4px; padding: 1px 6px; border-radius: 999px; background: #f1f3f8; color: #7b8494; font-size: 10.5px; font-weight: 700; vertical-align: 1px; }
.bl-role-plain { background: #eef3fb; color: #2f4f7f; }
.bl-avatar-name { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 999px; background: #f1f3f8; color: var(--bl-ink, #1c2433); font-size: 12.5px; font-weight: 700; }

/* 목원 관리 */
.bl-ms-summary { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.bl-ms-list { display: flex; flex-direction: column; gap: 8px; }
.bl-ms-row { display: grid; grid-template-columns: 1.3fr 1fr 1.1fr; gap: 10px 14px; align-items: center; padding: 10px 12px; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 14px; background: #fff; }
.bl-ms-row.is-excluded { background: #f7f8fb; border-style: dashed; }
.bl-ms-who { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bl-ms-who b { font-size: 14px; }
.bl-ms-who small { display: block; color: var(--bl-muted, #7b8494); font-size: 12px; }
.bl-ms-flags { display: flex; gap: 14px; white-space: nowrap; align-items: center; }
.bl-ms-opts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin-bottom: 6px; }
@media (max-width: 767px) { .bl-ms-opts { grid-template-columns: 1fr; } }
.bl-ms-check { display: inline-flex; align-items: center; gap: 5px; margin: 0; font-size: 13px; font-weight: 600; cursor: pointer; }
.bl-ms-check input { accent-color: var(--bl-coral, #df6d72); }
.bl-ms-status { display: flex; flex-direction: column; gap: 6px; }
.bl-ms-detail { display: flex; flex-direction: column; gap: 4px; grid-column: 1 / -1; padding-top: 6px; border-top: 1px dashed var(--bl-line, #e6eaf1); }
.bl-ms-updated { color: var(--bl-muted, #7b8494); font-size: 11.5px; }
.bl-ms-actions { display: flex; align-items: center; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.bl-ms-actions .btn { border-radius: 999px; padding: 8px 22px; font-weight: 800; }
.bl-excl-chip { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #eef0f5; color: #5b6480; font-size: 11px; font-weight: 700; vertical-align: 1px; }
.bl-row-excluded td { opacity: .55; }
.bl-row-excluded .bl-excl-chip { opacity: 1; }
.bl-row-excl-head td { background: #f7f8fb !important; color: var(--bl-muted, #7b8494); font-size: 12.5px; padding: 8px 10px !important; }
.bl-checkin-excluded { margin-top: 8px; border: 1px dashed var(--bl-line, #e6eaf1); border-radius: 12px; padding: 8px 12px; }
.bl-checkin-excluded summary { cursor: pointer; font-weight: 700; font-size: 13px; color: var(--bl-muted, #7b8494); }
.bl-checkin-excluded .bl-checkin-list { margin-top: 8px; }
@media (max-width: 767px) { .bl-ms-row { grid-template-columns: 1fr 1fr; } .bl-ms-who { grid-column: 1 / -1; } }

/* 방 메뉴 탭: 좁은 화면에서도 한 줄 (아이콘 숨김, 여백 축소, 넘치면 가로 스크롤) */
@media (max-width: 767px) {
  .bl-meeting-tabs, [data-stream-create-content] #contentFormMenu .nav-tabs { flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }
  .bl-meeting-tabs::-webkit-scrollbar, [data-stream-create-content] #contentFormMenu .nav-tabs::-webkit-scrollbar { display: none; }
  .bl-meeting-tabs .nav-link, #contentFormMenu .nav-link { padding: 7px 12px !important; font-size: 13px !important; white-space: nowrap; }
  .bl-meeting-tabs .nav-link i.fa, #contentFormMenu .nav-link i.fa, #contentFormMenu .nav-link i { display: none !important; }
}
.bl-ms-add { margin-top: 16px; border: 1px dashed var(--bl-line, #e6eaf1); border-radius: 14px; padding: 10px 14px; }
.bl-ms-add summary { cursor: pointer; font-weight: 800; font-size: 14px; }
.bl-ms-add-form { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr auto; gap: 8px; align-items: center; margin-top: 8px; }
@media (max-width: 767px) { .bl-ms-add-form { grid-template-columns: 1fr 1fr; } .bl-ms-add-form button { grid-column: 1 / -1; } }
.bl-local-mark { background: #fff4e5; color: #9a5b12; }
.bl-ms-remove { display: inline; margin-left: 6px; }
.bl-ms-remove .btn { padding: 0; font-size: 12px; text-decoration: underline; }
.bl-ov-att-row > td { padding: 0 0 10px !important; background: #f7f8fb; }
.bl-ov-att-slot { padding: 6px 10px 4px; }
.bl-ov-att-slot .bl-tab-toolbar { padding-top: 6px; }
.bl-ov-att.is-open { background: var(--bl-navy, #253b61) !important; color: #fff !important; border-color: var(--bl-navy, #253b61) !important; }
.bl-ms-inline-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 2px 10px; font-size: 14px; }
.bl-ms-inline-head .bl-ms-fullpage { margin-left: auto; font-size: 12.5px; color: var(--bl-muted, #7b8494); }
.bl-ms-inline .bl-ms-row { background: #fff; }
.bl-lr-detail { grid-column: 1 / -1; }
.bl-lr-detail-slot { background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 16px; padding: 12px 16px 6px; margin: -4px 0 6px; }
.bl-lr-detail-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; color: var(--bl-muted, #7b8494); margin-bottom: 8px; }
.bl-lr-detail-head b { color: var(--bl-ink, #1c2433); }
.bl-lr-detail-head .bl-lr-open { margin-left: auto; font-size: 12.5px; }
.bl-lr-card.is-open { box-shadow: 0 0 0 2px var(--bl-navy, #253b61) inset; }
.bl-ms-ro { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; }
.bl-ms-ro.is-on { color: #2f7a3e; }
.bl-ms-ro.is-on .fa { color: #3fae5a; }
.bl-ms-ro.is-off { color: var(--bl-coral-deep, #c8555b); }
.bl-ms-ro.is-off .fa { color: var(--bl-coral, #df6d72); }
.bl-ms-ro-memo { font-size: 13px; color: var(--bl-ink, #1c2433); }
.bl-ms-status select:disabled { opacity: 1; color: var(--bl-ink, #1c2433); background-color: #f7f8fb; }
.bl-ms-row:not(:has(.bl-ms-ro-memo)):not(:has(input[name$="[detail]"])) .bl-ms-detail { display: none; }

/* 스트림 작성 탭 줄: 코어의 float:right 를 풀어 항상 왼쪽부터 한 줄 (탭 수가 줄어도 폼이 옆으로 밀려 올라오지 않게) */
#contentFormMenu .nav-tabs { float: none !important; width: 100%; }
#contentFormMenu::after { content: ""; display: block; clear: both; }
.bl-preview-note { margin: 0 0 10px; padding: 8px 12px; border-radius: 12px; background: #fffbea; border: 1px solid #f3e4a6; color: #6b5a12; font-size: 13px; }

/* 마을장 당번 */
.bl-duty-next { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 16px; }
.bl-duty-next-card { border: 1px solid var(--bl-line, #e6eaf1); border-radius: 14px; padding: 12px 14px; background: #f7f8fb; }
.bl-duty-next-card.is-mine { background: #fff4f4; border-color: #f0c9cb; }
.bl-duty-next-type { font-weight: 800; font-size: 13.5px; color: var(--bl-navy, #253b61); }
.bl-duty-next-date { font-size: 13px; color: var(--bl-muted, #7b8494); margin-top: 2px; }
.bl-duty-next-names { font-size: 15px; font-weight: 800; margin-top: 4px; }
.bl-duty-mine-mark { color: var(--bl-coral-deep, #c8555b); font-size: 12.5px; font-weight: 700; margin-top: 4px; }
.bl-duty-section { margin-top: 14px; }
.bl-duty-section-head { font-size: 14.5px; margin-bottom: 6px; }
.bl-duty-section-head small { color: var(--bl-muted, #7b8494); margin-left: 6px; }
.bl-duty-table td, .bl-duty-table th { vertical-align: middle; }
.bl-duty-table tr.is-done td { color: #8a93a3; }
.bl-duty-table tr.is-done td:nth-child(1), .bl-duty-table tr.is-past td:nth-child(1) { text-decoration: none; }
.bl-duty-table tr.is-tbd td { color: #9a5b12; background: #fffbea; }
.bl-duty-table tr.is-mine td { background: #fff4f4; }
.bl-duty-form { margin-top: 14px; border: 1px dashed var(--bl-line, #e6eaf1); border-radius: 14px; padding: 12px 14px; background: #fff; }
.bl-duty-form-title { margin-bottom: 8px; }
.bl-duty-form-grid { display: grid; grid-template-columns: 1fr 1fr 2fr 1fr; gap: 8px; align-items: end; }
.bl-duty-form-grid label { font-size: 12.5px; font-weight: 700; display: flex; flex-direction: column; gap: 4px; margin: 0; }
.bl-duty-note-field { grid-column: 1 / -1; }
.bl-duty-form-actions { margin-top: 10px; }
.bl-duty-widget-row { display: grid; grid-template-columns: 70px 1fr; gap: 2px 10px; padding: 8px 0; border-bottom: 1px solid var(--bl-line, #e6eaf1); color: var(--bl-ink, #1c2433); text-decoration: none !important; }
.bl-duty-widget-row:last-child { border-bottom: 0; }
.bl-duty-widget-date { font-weight: 800; color: var(--bl-coral-deep, #c8555b); grid-row: span 2; }
.bl-duty-widget-type { font-weight: 700; font-size: 13.5px; }
.bl-duty-widget-with { font-size: 12.5px; color: var(--bl-muted, #7b8494); }
@media (max-width: 767px) { .bl-duty-next { grid-template-columns: 1fr; } .bl-duty-form-grid { grid-template-columns: 1fr 1fr; } }

/* 모임 순서지 */
.bl-sheet-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px !important; }
.bl-sheet-new { border-radius: 999px; font-weight: 800; white-space: nowrap; }
.bl-sheet-block { display: flex; gap: 14px; padding: 14px 0; border-top: 1px dashed var(--bl-line, #e6eaf1); }
.bl-sheet-block-head { border-top: 0; padding-top: 0; }
.bl-sheet-no-big { flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: var(--bl-navy, #253b61); color: #fff; font-weight: 900; display: inline-flex; align-items: center; justify-content: center; }
.bl-sheet-block-body { flex: 1 1 auto; min-width: 0; }
.bl-sheet-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.bl-elder-box { border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; border: 1px solid #f0c9cb; background: #fff4f4; }
.bl-elder-box.is-on { border-color: #cfe7d6; background: #eef7f0; }
.bl-elder-box .bl-ms-check { font-size: 15px; }
.bl-sheet-sermon-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.bl-sheet-files { margin-top: 4px; }
.bl-sheet-entry .bl-sheet-band { border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; background: #eef7f0; border: 1px solid #cfe7d6; }
.bl-sheet-entry .bl-sheet-band.is-noelder { background: #fff4f4; border-color: #f0c9cb; }
.bl-sheet-band-main { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.bl-sheet-elder { margin-top: 8px; font-size: 16px; font-weight: 900; color: #2f7a3e; }
.is-noelder .bl-sheet-elder { color: var(--bl-coral-deep, #c8555b); }
.bl-sheet-rsvp { margin-top: 4px; font-size: 13px; color: var(--bl-muted, #7b8494); }
.bl-chip-link { text-decoration: none !important; }
.bl-sheet-order { list-style: none; margin: 0; padding: 0; }
.bl-sheet-order > li { padding: 10px 0; border-top: 1px dashed var(--bl-line, #e6eaf1); }
.bl-sheet-step { display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 14.5px; margin-bottom: 4px; color: var(--bl-navy, #253b61); }
.bl-sheet-order .bl-sheet-text { font-size: 14.5px; line-height: 1.6; }
.bl-sheet-empty { color: #9aa3b2; font-size: 13.5px; }
.bl-sheet-scores { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; margin-top: 8px; }
.bl-sheet-scores img { width: 100%; border-radius: 10px; border: 1px solid var(--bl-line, #e6eaf1); display: block; }
.bl-sheet-list, .bl-sheet-questions { margin: 4px 0 0; padding-left: 20px; font-size: 14.5px; line-height: 1.6; }
.bl-sheet-qtitle { font-weight: 800; margin-top: 8px; }
.bl-sheet-sermon { font-size: 15px; margin-bottom: 4px; }
.bl-sheet-summary { background: #f7f8fb; border-radius: 10px; padding: 8px 12px; }
.bl-type-sheet { background: #eef3fb; color: #2f4f7f; }
.bl-head-sheet .bl-head-badge { background: #eef3fb; }
@media (max-width: 767px) { .bl-sheet-grid2 { grid-template-columns: 1fr; } .bl-sheet-toolbar { flex-direction: column; align-items: flex-start; } }
.bl-sheet-entry .bl-sheet-no { background: var(--bl-navy, #253b61); color: #fff; width: 22px; height: 22px; font-size: 11.5px; flex: 0 0 auto; }
/* 월 모임 계획: 주일마다 한 줄(모바일에서는 한 장) */
.bl-plan-list { display: flex; flex-direction: column; gap: 10px; }
.bl-plan-row { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; gap: 12px; padding: 12px 14px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 18px; transition: box-shadow .15s ease; }
.bl-plan-row:hover { box-shadow: 0 8px 20px rgba(24, 34, 54, .07); }
.bl-plan-row.is-locked { background: #f7f8fb; }
.bl-plan-row.is-none { opacity: .72; }
.bl-plan-day { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 16px; background: rgba(37, 59, 97, .07); color: var(--bl-navy, #253b61); line-height: 1; }
.bl-plan-day b { font-size: 20px; font-weight: 900; }
.bl-plan-day small { font-size: 10.5px; font-weight: 700; margin-top: 3px; opacity: .8; }
.bl-plan-row[data-type="부목자모임"] .bl-plan-day { background: rgba(90, 169, 255, .18); color: #2a5fb0; }
.bl-plan-main { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.bl-plan-types { display: flex; gap: 6px; flex-wrap: wrap; }
.bl-plan-type { display: inline-flex; align-items: center; gap: 5px; margin: 0; padding: 5px 13px; border-radius: 999px; border: 1px solid var(--bl-line, #e6eaf1); font-size: 13px; font-weight: 700; cursor: pointer; background: #fff; white-space: nowrap; }
.bl-plan-type input { margin: 0; }
.bl-plan-type.active { background: var(--bl-navy, #253b61); color: #fff; border-color: var(--bl-navy, #253b61); }
.bl-plan-type.disabled { opacity: .4; cursor: not-allowed; }
.bl-plan-fields { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 13px; color: var(--bl-muted, #697384); }
.bl-plan-fields .fa { margin-right: 3px; }
.bl-plan-time { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.bl-plan-time input { width: 104px; }
.bl-plan-dash { color: var(--bl-muted, #697384); }
.bl-plan-place { display: inline-flex; align-items: center; gap: 5px; flex: 1 1 150px; min-width: 130px; }
.bl-plan-place input { width: 100%; }
.bl-plan-elder { white-space: nowrap; margin: 0; }
.bl-plan-row.is-elder-fixed .bl-plan-elder { color: var(--bl-ink, #182236); font-weight: 700; }
.bl-plan-row.is-elder-fixed .bl-plan-elder::after { content: " (필수)"; font-size: 11.5px; font-weight: 600; color: var(--bl-muted, #697384); margin-left: 3px; }
.bl-plan-elder input[data-locked] { cursor: default; }
.bl-plan-state { white-space: nowrap; }
.bl-plan-state a.bl-chip { text-decoration: none !important; }
.bl-plan-new { background: #f1f3f8; color: var(--bl-muted, #697384); }
.bl-plan-row.is-none .bl-plan-fields { opacity: .45; }
@media (max-width: 575px) {
    .bl-plan-row { grid-template-columns: 46px 1fr; row-gap: 10px; padding: 12px; }
    .bl-plan-day { width: 46px; height: 46px; border-radius: 14px; }
    .bl-plan-day b { font-size: 17px; }
    .bl-plan-state { grid-column: 1 / -1; }
    .bl-plan-place { flex-basis: 100%; }
}
.bl-sheet-actions { display: flex; gap: 6px; }

/* ===== 홈 「이번 주」 리더 카드 ===== */
.bl-home .bl-home-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; padding: 12px 16px 16px; }
.bl-home-card { position: relative; overflow: hidden; background: #fff; border: 1px solid #e8ecf2; border-radius: 16px; padding: 14px 15px 13px; min-width: 0; box-shadow: 0 1px 3px rgba(20, 30, 50, .05); }
/* 카드마다 은은한 색조: 윗부분만 살짝 물들이고 위에 얇은 띠, 제목 아이콘도 같은 색 (현란하지 않게 13% 이하) */
.bl-home-card[class*="bl-tone-"] { background: #fff; border-color: #e8ecf2; }
.bl-home-card[class*="bl-tone-"]::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--tone); }
.bl-home-card[class*="bl-tone-"] .bl-home-card-title .fa { color: var(--tone-ink); }
.bl-tone-gold { --tone: #e2b23a; --tone-ink: #b8860b; }
.bl-tone-amber { --tone: #f0a04b; --tone-ink: #c2711c; }
.bl-tone-blue { --tone: #5aa9ff; --tone-ink: #2f6fd1; }
.bl-tone-coral { --tone: #df6d72; --tone-ink: #c8555b; }
.bl-tone-lavender { --tone: #a678f0; --tone-ink: #7a4fd0; }
.bl-tone-teal { --tone: #2f9e8f; --tone-ink: #207d70; }
.bl-tone-green { --tone: #3fae5a; --tone-ink: #2e7d4f; }
.bl-tone-sand { --tone: #c9a66b; --tone-ink: #9a7430; }
.bl-tone-pink { --tone: #e88fb0; --tone-ink: #c4487a; }
.bl-home-card-title { font-weight: 800; font-size: 13px; color: var(--bl-ink, #1c2433); margin-bottom: 8px; }
.bl-home-card-title small { font-weight: 600; color: #7b8598; margin-left: 4px; }
.bl-home-card-title .fa { color: var(--bl-coral-deep, #c8555b); margin-right: 4px; }
.bl-home-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.bl-home-big { font-size: 26px; font-weight: 900; color: var(--bl-ink, #1c2433); line-height: 1.1; }
.bl-home-big .text-muted { font-size: 13px; font-weight: 600; margin-left: 4px; }
.bl-home-row { display: grid; grid-template-columns: 78px 1fr; gap: 0 10px; padding: 7px 0; border-top: 1px solid var(--bl-line, #e6eaf1); color: var(--bl-ink, #1c2433); text-decoration: none !important; font-size: 13px; }
.bl-home-row:first-of-type { border-top: 0; }
.bl-home-row-date { font-weight: 800; color: var(--bl-coral-deep, #c8555b); grid-row: span 2; }
.bl-home-row-main { font-weight: 700; }
.bl-home-row-sub { color: #7b8598; font-size: 12px; }
.bl-home-compact .bl-home-grid { padding: 10px 14px 14px; }
.bl-report-compose .panel-body { padding: 12px 16px 16px; }

/* 다가오는 모임: 참석 응답 */
.bl-chip-amber { background: rgba(240, 160, 75, .18); color: #9a6410; }
.bl-chip-grey { background: #e9edf3; color: #6b7686; }
.bl-chip-blink { animation: bl-blink 1.6s ease-in-out infinite; }
@keyframes bl-blink { 0%, 100% { box-shadow: 0 0 0 0 rgba(223, 109, 114, .45); } 50% { box-shadow: 0 0 0 5px rgba(223, 109, 114, 0); } }
.bl-home-row-date small { display: block; font-weight: 600; color: #7b8598; font-size: 11px; }
.bl-home-event .bl-home-row-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; }
.bl-home-event .bl-home-row-main a { color: inherit; text-decoration: none; }
.bl-rsvp-btns { display: inline-flex; gap: 4px; }
.bl-rsvp-btn { border: 1px solid var(--bl-line, #dfe4ec); background: #fff; color: var(--bl-ink, #1c2433); border-radius: 999px; font-size: 12px; font-weight: 700; padding: 1px 10px; line-height: 1.7; cursor: pointer; }
.bl-rsvp-btn.active, .bl-rsvp-btn:hover { background: var(--bl-navy, #253b61); color: #fff; border-color: var(--bl-navy, #253b61); }
.bl-rsvp-btn:disabled { opacity: .5; cursor: default; }
.bl-home-roles { color: #7b8598; }

/* ===== 글 종류 ===== */
.bl-kind-chips { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 0 10px; }
.bl-composer .bl-kind-chips { padding: 0 18px 10px; }
.bl-kind-chip { border: 1px solid var(--bl-line, #dfe4ec); background: #fff; color: var(--bl-ink, #1c2433); border-radius: 999px; font-size: 12px; font-weight: 700; padding: 3px 11px; line-height: 1.6; cursor: pointer; }
.bl-kind-chip .fa { margin-right: 3px; opacity: .8; }
.bl-kind-chip.active { color: #fff; border-color: transparent; }
.bl-kind-chip-general.active { background: var(--bl-navy, #253b61); }
.bl-kind-chip-notice.active { background: #e08a2e; }
.bl-kind-chip-prayer.active { background: #c8555b; }
.bl-kind-chip-meeting.active { background: #3a7bd5; }
.bl-kind-chip-share.active { background: #3e8f3e; }
.bl-kind-ribbon { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 800; letter-spacing: .02em; padding: 3px 12px; border-radius: 999px; margin: 0 0 8px; }
.bl-kind-ribbon-notice { background: #fff1de; color: #9a5a0f; }
.bl-kind-ribbon-prayer { background: #fde8e9; color: #b1414a; }
.bl-kind-ribbon-meeting { background: #e6effc; color: #2a5fb0; }
.bl-kind-ribbon-share { background: #e7f4e7; color: #2f6f2f; }
.bl-kind-card { border-left: 5px solid transparent !important; }
.bl-kind-card-notice { border-left-color: #e08a2e !important; background: linear-gradient(90deg, #fff8ee, #fff 45%) !important; }
.bl-kind-card-prayer { border-left-color: #c8555b !important; background: linear-gradient(90deg, #fff3f3, #fff 45%) !important; }
.bl-kind-card-meeting { border-left-color: #3a7bd5 !important; background: linear-gradient(90deg, #f0f5fd, #fff 45%) !important; }
.bl-kind-card-share { border-left-color: #3e8f3e !important; background: linear-gradient(90deg, #f1f9f1, #fff 45%) !important; }
.bl-kind-card-notice .bl-kind-ribbon + [data-ui-widget="post.Post"] { font-size: 15px; }
.bl-kind-card-prayer [data-ui-widget="post.Post"] { font-style: normal; }
/* 큐티 텍스트 복사 */
.bl-qt-actions { display: flex; justify-content: flex-end; padding: 8px 0 0; }

/* ===== 일반 글 카드 = 큐티 나눔과 같은 형태 ===== */
.bl-type-general { background: rgba(37,59,97,.10); color: var(--bl-navy, #253b61); }
.bl-type-notice { background: rgba(224,138,46,.16); color: #9a5a0f; }
.bl-type-meeting { background: rgba(58,123,213,.14); color: #2a5fb0; }
.bl-type-share { background: rgba(62,143,62,.14); color: #2f6f2f; }
.bl-head-notice .bl-head-badge { background: #fff4e6; }
.bl-head-meeting .bl-head-badge { background: #eaf1fc; }
.bl-head-share .bl-head-badge { background: #edf7ed; }
.bl-head-general .bl-head-badge { background: #eef1f6; }
.bl-post .bl-sheet-view { grid-template-columns: 1fr; }
.bl-post .bl-sheet-section-post { padding: 4px 0 0 !important; border-top: 0 !important; }
.bl-post .bl-sheet-text { font-size: 15px; line-height: 1.7; }
.bl-post .bl-sheet-text p:last-child { margin-bottom: 0; }
.bl-post-notice .bl-sheet-text { font-size: 15.5px; }
.bl-kind-ribbon { display: none; }

/* ===== 홈 출석 통계 ===== */
.bl-home-card-wide { grid-column: 1 / -1; }
.bl-stat-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bl-stat-tile { background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; padding: 10px 12px; }
.bl-stat-k { font-size: 12px; font-weight: 800; color: #7b8598; }
.bl-stat-k .fa { display: none; }
.bl-stat-v { display: flex; align-items: baseline; gap: 6px; margin-top: 2px; flex-wrap: nowrap; min-width: 0; }
.bl-stat-v b { font-size: 30px; font-weight: 900; line-height: 1; color: var(--bl-ink, #1c2433); white-space: nowrap; }
.bl-stat-v small { color: #7b8598; font-weight: 600; white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 480px) {
    /* 좁은 화면에서 「43 %」 「605 명」이 줄바꿈되지 않게 */
    .bl-stat-tile { padding: 9px 10px; }
    .bl-stat-v { gap: 4px; }
    .bl-stat-v b { font-size: 26px; }
    .bl-stat-v small { font-size: 11.5px; }
    .bl-stat-k { font-size: 11.5px; }
}
.bl-stat-worship .bl-stat-v b { color: #2a5fb0; }
.bl-stat-present .bl-stat-v b { color: #c8555b; }
.bl-stat-delta { display: inline-block; margin-top: 4px; font-size: 12px; font-weight: 700; }
.bl-stat-up { color: #3e7f22; } .bl-stat-down { color: #c8555b; } .bl-stat-flat { color: #9aa3b2; }
.bl-stat-bars { display: flex; align-items: flex-end; gap: 10px; margin-top: 10px; padding: 8px 10px 4px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; }
.bl-stat-week { flex: 1; text-align: center; }
.bl-stat-cols { display: flex; align-items: flex-end; justify-content: center; gap: 3px; height: 46px; }
.bl-stat-col { display: block; width: 12px; border-radius: 4px 4px 0 0; min-height: 2px; }
.bl-col-worship { background: #9dbbea; } .bl-col-present { background: #f0b3b6; }
.bl-stat-week.is-this .bl-col-worship { background: #2a5fb0; } .bl-stat-week.is-this .bl-col-present { background: #c8555b; }
.bl-stat-wk { font-size: 11px; color: #7b8598; margin-top: 3px; font-weight: 700; }
.bl-stat-week.is-this .bl-stat-wk { color: var(--bl-ink, #1c2433); }
.bl-stat-legend { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: #7b8598; padding-bottom: 18px; }
.bl-stat-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
.bl-home-status-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.bl-home-more { margin-left: auto; font-size: 12px; font-weight: 700; }
.bl-pending { margin-top: 10px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; padding: 8px 12px; }
.bl-pending summary { cursor: pointer; font-weight: 800; font-size: 13px; color: var(--bl-ink, #1c2433); list-style: none; }
.bl-pending summary::-webkit-details-marker { display: none; }
.bl-pending summary .fa { color: #c8555b; margin-right: 4px; }
.bl-pending summary small { font-weight: 600; color: #7b8598; margin-left: 6px; }
.bl-pending-table { font-size: 13px; margin-top: 8px; }
.bl-pending-table th { font-size: 11px; font-weight: 800; color: #7b8598; letter-spacing: .04em; border-top: 0; }
.bl-pending-table th small { font-weight: 600; }
.bl-pending-table td { vertical-align: middle; padding: 6px 8px; }
.bl-pending-table tr.bl-pending-first td { border-top: 2px solid #eef1f5; }
.bl-pending-village { font-weight: 800; white-space: nowrap; }
.bl-pending-village small { color: #7b8598; font-weight: 600; }
.bl-pend-ok { color: #3e7f22; } .bl-pend-no { color: #c8555b; font-weight: 700; white-space: nowrap; }
@media (max-width: 767px) { .bl-stat-tiles { grid-template-columns: 1fr 1fr; } .bl-stat-v b { font-size: 24px; } }
.bl-post-title-only { margin: 0; height: 0; }
.bl-kind-card .media-heading a { font-size: 15.5px; }

/* 글 종류 색 (최종): 일반 흰색 · 공지 파란색 · 기도 요청 붉은색 */
.bl-kind-chip-notice.active { background: #2a5fb0; }
.bl-kind-ribbon-notice { background: #e6effc; color: #2a5fb0; }
.bl-type-notice { background: rgba(42,95,176,.14); color: #2a5fb0; }
.bl-head-notice .bl-head-badge { background: #e9f0fb; }
.bl-kind-card-notice { border-left-color: #2a5fb0 !important; background: linear-gradient(90deg, #edf3fc, #f7faff 60%) !important; }
.bl-kind-card-prayer { border-left-color: #c8555b !important; background: linear-gradient(90deg, #fdeaea, #fff5f5 60%) !important; }
.bl-post .bl-sheet-section-post { background: #fff !important; }

/* 홈: 미완료 한 줄 목록 / 상세: 표 */
.bl-pending-lines { margin-top: 10px; display: grid; gap: 10px; }
.bl-pending-block { background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; padding: 8px 12px; }
.bl-pending-block-head { font-weight: 800; font-size: 13px; color: var(--bl-ink, #1c2433); margin-bottom: 4px; }
.bl-pending-block-head .fa { color: #c8555b; margin-right: 3px; }
.bl-pending-block-head b { color: #c8555b; }
.bl-pending-block-head small { color: #7b8598; font-weight: 600; margin-left: 4px; }
.bl-pending-line { display: grid; grid-template-columns: 92px 1fr; gap: 8px; padding: 3px 0; border-top: 1px dashed #eef1f5; font-size: 13px; }
.bl-pending-line:first-of-type { border-top: 0; }
.bl-pending-line-v { font-weight: 800; color: var(--bl-navy, #253b61); white-space: nowrap; }
.bl-pending-line-n { color: var(--bl-ink, #1c2433); line-height: 1.6; }
.bl-pending-lines .bl-home-more { justify-self: end; }
.bl-pending-detail-head { font-weight: 800; font-size: 14px; margin-bottom: 6px; }
.bl-pending-detail-head .fa { color: #c8555b; margin-right: 4px; }
.bl-pending-detail-head small { font-weight: 600; color: #7b8598; margin-left: 6px; }
@media (max-width: 480px) { .bl-pending-line { grid-template-columns: 1fr; gap: 0; } }

/* 리더십 모임 출석 타일 */
.bl-meet-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.bl-meet-tile { background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-left: 4px solid var(--bl-meet, #6687ad); border-radius: 12px; padding: 10px 12px; }
.bl-meet-name { font-size: 12.5px; font-weight: 800; }
.bl-meet-name a { color: var(--bl-ink, #1c2433); text-decoration: none; }
.bl-meet-name small { color: #7b8598; font-weight: 600; margin-left: 4px; }
.bl-meet-tile .bl-stat-v b { color: var(--bl-meet, #6687ad); font-size: 26px; }
.bl-meet-bars { display: flex; align-items: flex-end; gap: 4px; height: 30px; margin-top: 6px; }
.bl-meet-bar { flex: 1; display: block; border-radius: 3px 3px 0 0; background: color-mix(in srgb, var(--bl-meet, #6687ad) 35%, #fff); min-height: 2px; }
.bl-meet-bar.is-last { background: var(--bl-meet, #6687ad); }

/* 미완료 블록: 눌러서 펼침, 마을 칸 좁게 */
.bl-pending-block { padding: 0; }
.bl-pending-block-head { width: 100%; text-align: left; background: none; border: 0; padding: 9px 12px; margin: 0; display: flex; align-items: center; gap: 4px; cursor: pointer; }
.bl-pending-caret { margin-left: auto; color: #9aa3b2; transition: transform .2s ease; }
.bl-pending-toggle[aria-expanded="true"] .bl-pending-caret { transform: rotate(180deg); }
.bl-pending-body { padding: 0 12px 8px; }
.bl-pending-line { grid-template-columns: 58px 1fr; gap: 6px; }
.bl-pending-line-v { font-size: 12.5px; }
.bl-type-word { background: rgba(37,59,97,.12); color: var(--bl-navy, #253b61); }
.bl-head-word .bl-head-badge { background: #eef1f6; }
.bl-pending-body { display: none; }
.bl-pending-body.is-open { display: block; animation: bl-slide-down .22s ease; transform-origin: top; }
@keyframes bl-slide-down { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.bl-pending-line-n { word-spacing: 1px; }
/* 일반 글: 흰 배경, 칩 없음 */
.bl-post-general, .bl-post-general .bl-sheet-section-post { background: #fff !important; }

/* 일반 글 카드: 큐티 클래스(.bl-qt)를 쓰지 않으므로 시트 박스 스타일만 따로 정의, 카드 배경은 흰색 */
.bl-post .bl-sheet-view { display: block; background: #fff; border: 1px solid rgba(37,59,97,.14); border-radius: 16px; padding: 2px 18px; margin-top: 4px; box-shadow: 0 1px 3px rgba(24,34,54,.05); }
.bl-post .bl-sheet-view .bl-sheet-section { background: transparent !important; border-radius: 0; margin: 0; padding: 12px 0; box-shadow: none; }
.wall-entry:has(.bl-entry.bl-post-general) > .panel, .wall-entry:has(.bl-entry.bl-post-general) .panel.panel-default:first-child { background: #fff !important; }
.wall-entry:has(.bl-entry.bl-post-general) .comment-container { background: #f6f8fb; }
.wall-entry:has(.bl-entry.bl-post-notice) > .panel, .wall-entry:has(.bl-entry.bl-post-notice) .panel.panel-default:first-child { background: #edf3fc !important; border-left: 5px solid #2a5fb0; }
.wall-entry:has(.bl-entry.bl-post-prayer) > .panel, .wall-entry:has(.bl-entry.bl-post-prayer) .panel.panel-default:first-child { background: #fdeaea !important; border-left: 5px solid #c8555b; }
.bl-stat-pct { font-size: 16px; font-weight: 800; margin-left: 1px; }
.bl-stat-v small { font-size: 12.5px; }
.bl-meet-tile .bl-stat-v small { font-size: 12px; }
/* 예배 = 빨강, 목장 = 파랑 (숫자·막대·범례) */
.bl-stat-worship .bl-stat-v b { color: #c8555b; }
.bl-stat-present .bl-stat-v b { color: #2a5fb0; }
.bl-col-worship { background: #f0b3b6; } .bl-col-present { background: #9dbbea; }
.bl-stat-week.is-this .bl-col-worship { background: #c8555b; } .bl-stat-week.is-this .bl-col-present { background: #2a5fb0; }
.bl-stat-delta + .bl-stat-delta { margin-left: 5px; }
/* 일정 카드 참석 버튼: 참석 초록 · 미정 주황 · 불참 회색 (선택된 것만 채움) */
.bl-rsvp-buttons .btn[data-action-click-url*="type=3"], .bl-rsvp-buttons .btn[data-action-click-url*="type=3"]:hover { border-color: #3fae5a !important; color: #2f8a45 !important; background: #fff !important; }
.bl-rsvp-buttons .btn[data-action-click-url*="type=2"], .bl-rsvp-buttons .btn[data-action-click-url*="type=2"]:hover { border-color: #e0a12e !important; color: #9a6410 !important; background: #fff !important; }
.bl-rsvp-buttons .btn[data-action-click-url*="type=1"], .bl-rsvp-buttons .btn[data-action-click-url*="type=1"]:hover { border-color: #b8c0cc !important; color: #6b7686 !important; background: #fff !important; }
.bl-rsvp-buttons .btn[data-action-click-url*="type=3"].active, .bl-rsvp-buttons .btn[data-action-click-url*="type=3"].btn-accent:not(.btn-outline-accent) { background: #3fae5a !important; color: #fff !important; border-color: #3fae5a !important; }
.bl-rsvp-buttons .btn[data-action-click-url*="type=2"].active, .bl-rsvp-buttons .btn[data-action-click-url*="type=2"].btn-accent:not(.btn-outline-accent) { background: #e0a12e !important; color: #fff !important; border-color: #e0a12e !important; }
.bl-rsvp-buttons .btn[data-action-click-url*="type=1"].active, .bl-rsvp-buttons .btn[data-action-click-url*="type=1"].btn-accent:not(.btn-outline-accent) { background: #7b8598 !important; color: #fff !important; border-color: #7b8598 !important; }
/* 홈 「다가오는 모임」 작은 버튼도 같은 색 */
.bl-rsvp-btn[data-type="3"].active { background: #3fae5a; border-color: #3fae5a; }
.bl-rsvp-btn[data-type="2"].active { background: #e0a12e; border-color: #e0a12e; }
.bl-rsvp-btn[data-type="1"].active { background: #7b8598; border-color: #7b8598; }
.bl-rsvp-btn:hover { background: #f1f3f8; color: var(--bl-ink, #1c2433); border-color: #cfd5df; }

/* ===== 통계 분석 ===== */
.bl-an .panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bl-an-range { display: flex; gap: 4px; }
.bl-an-hint { font-size: 13px; color: #5b6480; background: #f6f8fc; border-radius: 12px; padding: 10px 14px; margin-bottom: 8px; }
.bl-an-h { font-size: 15px; font-weight: 900; margin: 22px 0 10px; color: var(--bl-ink, #1c2433); }
.bl-an-h .fa { color: var(--bl-coral-deep, #c8555b); margin-right: 4px; }
.bl-an-h small { font-weight: 600; color: #7b8598; margin-left: 6px; font-size: 12px; }
.bl-an-sub { font-size: 13px; font-weight: 700; color: var(--bl-ink, #1c2433); }
.bl-an-sub small { color: #7b8598; font-weight: 600; }
.bl-an-low { color: #c8555b !important; }
.bl-an-table { font-size: 13px; }
.bl-an-table th { font-size: 11px; font-weight: 800; color: #7b8598; letter-spacing: .04em; white-space: nowrap; }
.bl-an-table td { vertical-align: middle; padding: 6px 8px; }
.bl-an-tiles { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: 10px; }
.bl-an-chart { display: flex; align-items: flex-end; gap: 6px; padding: 10px 12px 6px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; margin-bottom: 10px; overflow-x: auto; }
.bl-an-col { flex: 1; min-width: 34px; text-align: center; }
.bl-an-bars { display: flex; align-items: flex-end; justify-content: center; gap: 2px; height: 120px; }
.bl-an-bar { display: block; width: 12px; border-radius: 4px 4px 0 0; min-height: 2px; position: relative; opacity: .55; }
.bl-an-col.is-this .bl-an-bar { opacity: 1; }
.bl-an-bar i { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); font-size: 9px; font-style: normal; color: #7b8598; display: none; }
.bl-an-col.is-this .bl-an-bar i, .bl-an-col:hover .bl-an-bar i { display: block; }
.bl-an-rep { height: 5px; border-radius: 3px; background: #2f8a45; margin: 4px 4px 0; }
.bl-an-x { font-size: 10.5px; color: #7b8598; margin-top: 3px; font-weight: 700; white-space: nowrap; }
.bl-an-col.is-this .bl-an-x { color: var(--bl-ink, #1c2433); }
.bl-an-chart .bl-stat-legend { padding-bottom: 20px; white-space: nowrap; }
.bl-an-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 767px) { .bl-an-grid2 { grid-template-columns: 1fr; } }
.bl-an-hbar { display: grid; grid-template-columns: 90px 1fr 32px; align-items: center; gap: 8px; font-size: 12.5px; margin-top: 4px; }
.bl-an-hbar-b { height: 10px; background: #eef1f5; border-radius: 999px; overflow: hidden; }
.bl-an-hbar-b i { display: block; height: 100%; background: var(--bl-navy, #253b61); border-radius: 999px; }
.bl-an-hbar-n { text-align: right; font-weight: 700; }
.bl-an-ul { padding-left: 18px; font-size: 12.5px; margin: 4px 0 0; }
.bl-an-details summary { cursor: pointer; font-size: 13px; font-weight: 700; color: var(--bl-navy, #253b61); margin: 4px 0 8px; }
.bl-an-flag { font-size: 12.5px; margin-top: 4px; }
.bl-an-meet { margin-bottom: 14px; }
.bl-an-upcoming td { background: #fbfcfe; }
.bl-ins-list { display: grid; gap: 10px; }
.bl-ins { border: 1px solid var(--bl-line, #e6eaf1); border-left-width: 5px; border-radius: 12px; padding: 10px 14px; background: #fff; }
.bl-ins-high { border-left-color: #c8555b; } .bl-ins-mid { border-left-color: #e0a12e; } .bl-ins-low { border-left-color: #9aa3b2; }
.bl-ins-head { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.bl-ins-sev { font-size: 11px; font-weight: 800; padding: 1px 8px; border-radius: 999px; background: #eef1f5; color: #5b6480; }
.bl-ins-high .bl-ins-sev { background: #fde8e9; color: #b1414a; } .bl-ins-mid .bl-ins-sev { background: #fff1de; color: #9a5a0f; }
.bl-ins-ev { font-size: 12.5px; color: #5b6480; margin: 4px 0 6px; }
.bl-ins-ev .fa { margin-right: 3px; }
.bl-ins-actions { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; }
.bl-ins-form { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
/* 통계 분석 하위 탭·행사 */
.bl-an-subtabs { padding-bottom: 8px; }
.bl-an-subhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 6px 16px 4px; }
.bl-an-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 900px) { .bl-an-grid3 { grid-template-columns: 1fr; } }
.bl-an-hbar-b i.is-bad { background: #c8555b; }
.bl-an-plan { padding-left: 20px; font-size: 13.5px; line-height: 1.7; }
.bl-an-plan li { margin-bottom: 4px; }
.bl-ev-list { display: grid; gap: 10px; }
.bl-ev { border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; padding: 10px 14px; background: #fff; }
.bl-ev-head { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.bl-ev-nums { display: flex; gap: 12px; font-size: 12.5px; color: #5b6480; flex-wrap: wrap; }
.bl-ev-nums b { color: var(--bl-ink, #1c2433); }
.bl-ev-acc b { color: #2f8a45; }
.bl-ev-bar { display: flex; height: 10px; border-radius: 999px; overflow: hidden; background: #eef1f5; margin-top: 8px; }
.bl-ev-bar i { display: block; height: 100%; }
.bl-ev-bar .is-acc { background: #3fae5a; } .bl-ev-bar .is-maybe { background: #e0a12e; } .bl-ev-bar .is-dec { background: #b8c0cc; } .bl-ev-bar .is-none { background: #f0b3b6; }
.bl-ev-villages { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }

/* 말씀 페이지 */
.bl-word-head .panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.bl-word-now { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 16px 0; font-size: 14px; }
.bl-word-hint { padding: 8px 16px 14px; font-size: 12.5px; color: #7b8598; }
.bl-qt-tabs-panel { margin-bottom: 12px; }
.bl-home-bday.is-today { background: #fff6e6; border-radius: 8px; padding-left: 6px; padding-right: 6px; }
.bl-home-bday.is-today .bl-home-row-date { color: #d9822b; }
.bl-home-more-list summary { cursor: pointer; font-size: 12px; font-weight: 700; color: var(--bl-navy, #253b61); margin-top: 6px; }

/* 큐티 · 기도 한 화면 */
.bl-qt-open-btns { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }
.bl-qt-open-btns .btn { border-radius: 999px; }
.bl-qt-filter { display: flex; gap: 6px; margin: 0 0 10px; }
.bl-qt-filter .bl-kind-chip { text-decoration: none !important; }
.bl-prayer-form-title { font-weight: 800; margin-bottom: 8px; }
.bl-prayer-form-title .fa { color: #c8555b; }
@media (max-width: 480px) { .bl-qt-open-btns { width: 100%; } .bl-qt-open-btns .btn { flex: 1; } }

/* 큐티 페이지: 글쓰기 버튼은 모바일에서도 글자 그대로, 필터는 「보기」 세그먼트 */
@media (max-width: 576px) { .bl-qt-open-btns .bl-qt-open-label { display: inline !important; } .bl-qt-open-btns .bl-qt-open::after { content: none !important; } .bl-qt-open-btns .bl-qt-open { padding: 8px 10px; font-size: 13px; } }
.bl-qt-filter { align-items: center; }
.bl-qt-filter-label { font-size: 12px; font-weight: 800; color: #7b8598; margin-right: 2px; }
.bl-seg { display: inline-flex; background: #eef1f5; border-radius: 999px; padding: 3px; gap: 2px; }
.bl-seg-item { padding: 3px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; color: #5b6480; text-decoration: none !important; }
.bl-seg-item.active { background: #fff; color: var(--bl-ink, #1c2433); box-shadow: 0 1px 3px rgba(24,34,54,.15); }
.bl-home-bday { grid-template-columns: 78px 1fr; }
.bl-home-bday-names { font-weight: 700; line-height: 1.7; }
.bl-home-bday-names small { font-weight: 600; margin-left: 1px; }
.bl-home-bday-names a { color: inherit; text-decoration: none; }
.bl-bday-p { white-space: nowrap; display: inline-block; }

/* 다가오는 모임: 모임으로 가는 링크 */
.bl-home-event .bl-home-row-main a.bl-home-go { color: var(--bl-navy, #253b61) !important; text-decoration: none; border-bottom: 1px dashed rgba(37,59,97,.35); }
.bl-home-event .bl-home-row-main a.bl-home-go:hover { border-bottom-style: solid; }
.bl-home-event .bl-home-row-main a.bl-home-go .fa { font-size: 12px; margin-left: 1px; }
.bl-home-go-event { margin-left: 8px; font-size: 11.5px; font-weight: 600; color: #7b8598 !important; text-decoration: none !important; white-space: nowrap; }
.bl-home-go-event:hover { color: var(--bl-navy, #253b61) !important; }
textarea.bl-autogrow { resize: none; overflow: hidden; min-height: 40px; line-height: 1.5; }
.bl-stats .bl-stat-worship .bl-stat-value { color: #c8555b; }
.bl-stats .bl-stat-present .bl-stat-value { color: #2a5fb0; }
.bl-stats .bl-stat-value .bl-stat-pct { font-size: 15px; font-weight: 800; }
.bl-stats .bl-stat-value small { font-size: 12px; }

/* 수동 동기화 */
.bl-sync-manual { margin-top: 8px; }
.bl-sync-manual .bl-sync-state { margin-left: 6px; }
.bl-sync-manual .bl-hint { margin-top: 4px; }

/* ===== 카드 보드 + 슬라이드 패널 ===== */
.bl-board-page { padding-bottom: 32px; }
.bl-board-hero { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 26px; border-radius: 24px; color: #fff; margin-bottom: 18px; box-shadow: 0 16px 40px rgba(24, 34, 54, .18); }
.bl-board-hero-navy { background: linear-gradient(135deg, #1d2f4f 0%, #253b61 55%, #35578a 100%); }
.bl-board-hero-coral { background: linear-gradient(135deg, #c9545b 0%, #df6d72 55%, #f09a8d 100%); }
.bl-board-hero::after { content: ""; position: absolute; right: -60px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: rgba(255, 255, 255, .09); }
.bl-board-hero-text { position: relative; z-index: 1; min-width: 0; }
.bl-board-hero h2 { margin: 4px 0 6px; font-size: 24px; font-weight: 900; letter-spacing: -.02em; color: #fff; }
.bl-board-hero-sub { font-size: 13px; opacity: .85; max-width: 560px; line-height: 1.55; }
.bl-board-hero-now { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 6px 0 8px; font-size: 14px; }
.bl-board-hero-now b { font-size: 16px; }
.bl-board-hero-ico { position: relative; z-index: 1; font-size: 54px; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .25)); }
.bl-board-hero-btn { position: relative; z-index: 1; border-radius: 999px; font-weight: 800; white-space: nowrap; }
.bl-eyebrow-light { color: rgba(255, 255, 255, .85); }
.bl-eyebrow-light::before { background: rgba(255, 255, 255, .7); }
.bl-chip-glass { background: rgba(255, 255, 255, .18); color: #fff; }
.bl-chip-mini { font-size: 11px; padding: 0 8px; line-height: 1.7; }
.bl-chip-ok { background: #e3f6e9; color: #1f7a3f; }
.bl-chip-answered { background: #fff3d6; color: #9a6400; }

.bl-board-section { margin-bottom: 22px; }
.bl-board-section-head { display: flex; align-items: baseline; gap: 10px; margin: 0 4px 10px; }
.bl-board-section-head h4 { margin: 0; font-size: 15px; font-weight: 900; color: var(--bl-ink); }
.bl-board-section-head span { font-size: 12px; color: var(--bl-muted); }
.bl-board-section-empty { grid-column: 1 / -1; padding: 12px 4px; font-size: 13px; }

.bl-board-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.bl-board-grid-wide { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.bl-board-grid-drawer { grid-template-columns: 1fr; gap: 10px; }
.bl-board-empty { grid-column: 1 / -1; text-align: center; padding: 44px 16px; color: var(--bl-muted); background: #fff; border: 1px dashed var(--bl-line); border-radius: 20px; }
.bl-board-empty-ico { font-size: 34px; margin-bottom: 6px; }
.bl-board-more-wrap { text-align: center; margin: 18px 0 4px; }
.bl-board-more { border-radius: 999px; padding: 8px 22px; font-weight: 800; }
.bl-spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid rgba(37, 59, 97, .25); border-top-color: var(--bl-navy); border-radius: 50%; animation: bl-spin .8s linear infinite; vertical-align: -2px; }
@keyframes bl-spin { to { transform: rotate(360deg); } }

/* 카드 */
.bl-card { --bl-accent: #6687ad; --bl-accent-soft: rgba(102, 135, 173, .12); position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 16px 18px 14px; border-radius: 20px; background: #fff; border: 1px solid var(--bl-line); box-shadow: 0 2px 6px rgba(24, 34, 54, .04); cursor: pointer; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; outline: none; overflow: hidden; }
.bl-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: linear-gradient(180deg, var(--bl-accent), color-mix(in srgb, var(--bl-accent) 55%, #fff)); }
.bl-card:hover, .bl-card:focus-visible { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(24, 34, 54, .13); border-color: color-mix(in srgb, var(--bl-accent) 40%, var(--bl-line)); }
.bl-card:focus-visible { box-shadow: 0 0 0 3px var(--bl-accent-soft), 0 14px 30px rgba(24, 34, 54, .13); }
.bl-card-qt { --bl-accent: #2f9e6b; --bl-accent-soft: rgba(47, 158, 107, .12); }
.bl-card-prayer { --bl-accent: #df6d72; --bl-accent-soft: rgba(223, 109, 114, .12); }
.bl-card-sermon { --bl-accent: #253b61; --bl-accent-soft: rgba(37, 59, 97, .12); }
.bl-card-post { --bl-accent: #6687ad; }
.bl-card-event { --bl-accent: #f0a04b; }
.bl-card-sheet, .bl-card-report { --bl-accent: #a678f0; }
.bl-card-media { height: 130px; margin: -16px -18px 6px; background-size: cover; background-position: center; }
.bl-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bl-card-eyebrow { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 800; letter-spacing: .02em; color: var(--bl-accent); background: var(--bl-accent-soft); padding: 2px 10px 2px 6px; border-radius: 999px; min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-card-emoji { font-size: 13px; }
.bl-card-time { font-size: 11.5px; color: var(--bl-muted); white-space: nowrap; }
.bl-card-title { margin: 2px 0 0; font-size: 16px; font-weight: 800; line-height: 1.35; color: var(--bl-ink); letter-spacing: -.01em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: keep-all; }
.bl-card-sub { font-size: 12.5px; color: var(--bl-muted); }
.bl-card-excerpt { margin: 2px 0 0; font-size: 13.5px; line-height: 1.6; color: #3d4757; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; word-break: keep-all; }
.bl-card-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-card-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--bl-line); font-size: 12px; color: var(--bl-muted); }
.bl-card-author { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.bl-card-author img { border-radius: 50%; width: 22px; height: 22px; }
.bl-card-author b { color: var(--bl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 120px; }
.bl-card-scope { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-card-stats { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; }
.bl-card-arrow { color: var(--bl-accent); font-size: 16px; transition: transform .16s ease; }
.bl-card:hover .bl-card-arrow { transform: translateX(3px); }
.bl-card.is-compact { padding: 12px 14px 10px; border-radius: 16px; }
.bl-card.is-compact .bl-card-title { font-size: 14.5px; -webkit-line-clamp: 1; }
.bl-card.is-compact .bl-card-foot { padding-top: 6px; }

/* 모임 카드 */
a.bl-card-meeting, a.bl-card-meeting:hover { color: inherit; text-decoration: none; }
.bl-card-meeting { --bl-accent: var(--bl-space, #6687ad); --bl-accent-soft: color-mix(in srgb, var(--bl-space, #6687ad) 12%, #fff); padding-top: 14px; }
.bl-card-meeting::before { display: none; }
.bl-card-meeting-band { position: absolute; left: 0; right: 0; top: 0; height: 6px; background: linear-gradient(90deg, var(--bl-space, #6687ad), color-mix(in srgb, var(--bl-space, #6687ad) 45%, #fff)); }
.bl-card-meeting-head { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.bl-card-meeting-img img, .bl-card-meeting-img .space-img { border-radius: 14px; width: 44px; height: 44px; }
.bl-card-meeting-name { font-size: 17px; font-weight: 900; color: var(--bl-ink); letter-spacing: -.01em; }
.bl-card-meeting-state { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--bl-space, #6687ad); background: var(--bl-accent-soft); padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.bl-card-meeting-desc { font-size: 12.5px; color: var(--bl-muted); line-height: 1.5; }
.bl-card-meeting-rows { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; font-size: 13px; }
.bl-card-meeting-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; color: #3d4757; }
.bl-card-meeting-row i { color: var(--bl-space, #6687ad); width: 14px; text-align: center; }
.bl-card-meeting.is-locked { opacity: .55; cursor: default; }
.bl-card-meeting.is-locked:hover { transform: none; box-shadow: 0 2px 6px rgba(24, 34, 54, .04); }
.bl-meetings-list .bl-meeting-tabs-panel { margin-bottom: 14px; }

/* 카드 아래 펼침 */
.bl-card-expand { grid-column: 1 / -1; display: grid; grid-template-rows: 0fr; transition: grid-template-rows .38s cubic-bezier(.2, .8, .2, 1); }
.bl-card-expand.is-open { grid-template-rows: 1fr; }
.bl-card-expand-inner { min-height: 0; overflow: hidden; }
.bl-card-expand-inner > .bl-card-expand-head { display: flex; align-items: center; gap: 10px; padding: 6px 4px 8px 14px; }
.bl-card-expand-title { flex: 1; min-width: 0; font-size: 13px; font-weight: 800; color: var(--bl-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-card-expand-title::before { content: "▾ "; color: var(--bl-coral); }
.bl-card-expand-close { border: 0; background: rgba(37, 59, 97, .07); color: var(--bl-navy); font-weight: 800; font-size: 12.5px; border-radius: 999px; padding: 5px 12px; cursor: pointer; }
.bl-card-expand-close:hover { background: rgba(37, 59, 97, .14); }
.bl-card-expand-body { padding: 0 0 2px; }
.bl-card-expand-foot { display: flex; justify-content: center; padding: 8px 0 6px; }
.bl-expand-loading, .bl-expand-error { padding: 28px 12px; text-align: center; color: var(--bl-muted); font-size: 14px; background: #fff; border: 1px dashed var(--bl-line); border-radius: 18px; }
.bl-expand-error { color: var(--bl-coral-deep); }
.bl-card.is-open { box-shadow: 0 0 0 3px var(--bl-accent-soft), 0 14px 30px rgba(24, 34, 54, .13); border-color: color-mix(in srgb, var(--bl-accent) 45%, var(--bl-line)); }
.bl-card.is-open .bl-card-arrow { transform: rotate(90deg); }
.bl-expand-entry .back_button_holder, .bl-expand-entry #btn-load-more, .bl-expand-entry .d-lg-none { display: none !important; }
.bl-expand-entry [data-stream-entry] { margin-bottom: 0; }
/* 펼침 안에서는 긴 글 접기(더 보기) 없이 전체를 한 번에 */
.bl-expand-entry [data-ui-show-more] { max-height: none !important; }
.bl-expand-entry .wall-entry a.showMore, .bl-expand-entry .showMore, .bl-expand-entry .showMoreGradient { display: none !important; }
.bl-card.is-open .bl-card-excerpt { display: none; }
.bl-meeting-detail-list > .bl-card-expand, .bl-meeting-detail-list .bl-card-expand { grid-column: auto; }
.bl-meeting-detail-item.is-open { box-shadow: 0 0 0 3px color-mix(in srgb, var(--bl-space, #6687ad) 18%, #fff); }
.bl-meeting-detail-item.is-open > i.fa { transform: rotate(90deg); }

/* 모임 상세(카드 아래 펼침) */
.bl-meeting-detail { --bl-accent: var(--bl-space, #6687ad); padding: 2px 0 6px; }
.bl-meeting-detail-hero { display: flex; gap: 14px; align-items: center; padding: 18px; border-radius: 20px; color: #fff; background: linear-gradient(135deg, var(--bl-space, #6687ad), color-mix(in srgb, var(--bl-space, #6687ad) 60%, #182236)); box-shadow: 0 12px 30px color-mix(in srgb, var(--bl-space, #6687ad) 35%, transparent); }
.bl-meeting-detail-hero h3 { margin: 0 0 4px; font-size: 20px; font-weight: 900; color: #fff; }
.bl-meeting-detail-img img, .bl-meeting-detail-img .space-img { border-radius: 18px; width: 64px; height: 64px; box-shadow: 0 6px 16px rgba(0, 0, 0, .25); }
.bl-meeting-detail-desc { font-size: 13px; opacity: .9; }
.bl-meeting-detail-meta { display: flex; gap: 12px; margin-top: 6px; font-size: 12px; opacity: .85; }
.bl-meeting-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 18px; }
.bl-meeting-detail-actions .btn { border-radius: 999px; font-weight: 800; }
.bl-meeting-detail-sec { margin-bottom: 18px; }
.bl-meeting-detail-sec-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
.bl-meeting-detail-sec-head h4 { margin: 0; font-size: 15px; font-weight: 900; color: var(--bl-ink); }
.bl-meeting-detail-sec-head h4 small { font-weight: 600; color: var(--bl-muted); font-size: 12px; margin-left: 4px; }
.bl-meeting-detail-empty { padding: 14px 16px; background: #fff; border: 1px dashed var(--bl-line); border-radius: 16px; color: var(--bl-muted); font-size: 13px; }
.bl-meeting-detail-list { display: flex; flex-direction: column; gap: 8px; }
.bl-meeting-detail-item { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: #fff; border: 1px solid var(--bl-line); border-radius: 16px; color: inherit; text-decoration: none; transition: transform .14s ease, box-shadow .14s ease; }
.bl-meeting-detail-item:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(24, 34, 54, .12); color: inherit; text-decoration: none; }
.bl-meeting-detail-item > i.fa { color: var(--bl-space, #6687ad); margin-left: auto; }
.bl-meeting-detail-date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: color-mix(in srgb, var(--bl-space, #6687ad) 14%, #fff); color: var(--bl-space, #6687ad); line-height: 1; flex: 0 0 auto; }
.bl-meeting-detail-date b { font-size: 18px; font-weight: 900; }
.bl-meeting-detail-date small { font-size: 10px; font-weight: 700; margin-top: 2px; }
.bl-meeting-detail-item-body { display: flex; flex-direction: column; min-width: 0; }
.bl-meeting-detail-item-body b { font-size: 14px; color: var(--bl-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-meeting-detail-item-body span { font-size: 12px; color: var(--bl-muted); }
.bl-meeting-detail-people { display: flex; flex-wrap: wrap; gap: 8px; }
.bl-meeting-detail-person { display: flex; flex-direction: column; align-items: center; gap: 3px; width: 58px; font-size: 11px; color: var(--bl-ink); text-decoration: none; }
.bl-meeting-detail-person img { border-radius: 50%; width: 34px; height: 34px; }
.bl-meeting-detail-person span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 58px; }
.bl-meeting-detail-more-n { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(37, 59, 97, .08); font-weight: 800; color: var(--bl-navy); }

@media (max-width: 767px) {
    .bl-board-hero { padding: 18px 18px; border-radius: 20px; }
    .bl-board-hero h2 { font-size: 20px; }
    .bl-board-hero-ico { display: none; }
    .bl-board-grid, .bl-board-grid-wide { grid-template-columns: 1fr; gap: 10px; }
}

.bl-sync-top-body { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 12px 16px !important; }
.bl-sync-top .bl-sync-manual { margin-top: 0; }
.bl-sync-top .bl-sync-manual .bl-hint { display: none; }

/* 홈 새 글 */
.bl-new-posts .bl-home-card-title { display: flex; align-items: center; gap: 6px; }
.bl-new-posts .bl-heading-count { margin-left: 6px; }
.bl-new-posts .bl-home-card-title .bl-home-more { margin-left: auto; }
.bl-new-row { display: flex; align-items: center; gap: 10px; padding: 8px 2px; border-top: 1px solid var(--bl-line, #e6eaf1); color: var(--bl-ink, #1c2433); text-decoration: none !important; transition: background .12s ease; border-radius: 8px; }
.bl-new-row:first-of-type { border-top: 0; }
.bl-new-row:hover { background: rgba(37, 59, 97, .04); }
.bl-new-emoji { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 10px; background: rgba(37, 59, 97, .06); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.bl-new-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.bl-new-title { font-size: 13.5px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-new-sub { font-size: 11.5px; color: var(--bl-muted, #697384); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-new-time { flex: 0 0 auto; font-size: 11px; color: var(--bl-muted, #697384); }

/* 모바일 사이드 패널 (오른쪽 사이드바 → 화면 2/3 슬라이드) */
@media (max-width: 991px) {
    .bl-side-panel { position: fixed !important; top: 0 !important; right: 0 !important; bottom: 0 !important; left: auto !important; width: 66.666% !important; max-width: 440px; height: auto !important; margin: 0; padding: 70px 12px 96px; background: var(--bl-paper, #f5f7f9) !important; overflow-y: auto; -webkit-overflow-scrolling: touch; z-index: 1056 !important; box-shadow: -16px 0 44px rgba(24, 34, 54, .28); transform: translateX(106%); transition: transform .32s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .32s; visibility: hidden; display: block !important; }
    .bl-side-panel.is-open { transform: translateX(0); visibility: visible; transition: transform .32s cubic-bezier(.2, .8, .2, 1); }
    .bl-side-panel::before { content: "← 오른쪽으로 밀거나 바깥을 누르면 닫혀요"; display: block; font-size: 11px; color: var(--bl-muted, #697384); margin: -4px 2px 10px; }
    .bl-side-backdrop { position: fixed; inset: 0; z-index: 1055; background: rgba(24, 34, 54, .38); opacity: 0; pointer-events: none; transition: opacity .3s ease; }
    .bl-side-backdrop.is-open { opacity: 1; pointer-events: auto; }
    body.bl-side-open { overflow: hidden; }
    .bl-side-src:not(.bl-side-panel) { display: none !important; }
    body:has(.bl-side-src) .layout-sidebar-container { display: none !important; }
}
.bl-side-src[hidden] { display: none; }
@media (min-width: 992px) { .bl-side-src { display: none !important; } }
.bl-side-sec { margin-bottom: 12px; }
.bl-side-room { padding: 8px 0; border-top: 1px dashed var(--bl-line, #e6eaf1); }
.bl-side-room:first-child { border-top: 0; padding-top: 0; }
.bl-side-room-head { display: flex; align-items: center; gap: 8px; color: var(--bl-ink, #1c2433); text-decoration: none !important; font-size: 14px; }
.bl-side-room-head img, .bl-side-room-head .space-img { width: 30px; height: 30px; border-radius: 10px; }
.bl-side-room-head b { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-side-room-head small { color: var(--bl-muted, #697384); }
.bl-side-room-head i.fa { color: var(--bl-space, #6687ad); }
.bl-side-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.bl-side-chips a.bl-chip { text-decoration: none !important; color: var(--bl-ink, #1c2433); }
.bl-side-chips a.bl-chip i { color: var(--bl-space, var(--bl-navy, #253b61)); }
.panel-body.bl-side-chips { margin-top: 0; }

/* 모임 방 공통 메뉴 한 줄 (#space-main-menu 를 알약 탭으로) — 방의 모든 페이지에서 같은 줄 */
.bl-meeting-space #space-main-menu { border-radius: 18px; padding: 10px 12px; margin-bottom: 14px; }
.bl-meeting-space #space-main-menu .list-group { display: flex; flex-direction: row; flex-wrap: wrap; gap: 6px; border: 0; background: none; }
.bl-meeting-space #space-main-menu .list-group-item {
  border: 0 !important; background: rgba(37, 59, 97, .06); border-radius: 999px !important; padding: 8px 16px;
  font-weight: 700; font-size: 13.5px; color: var(--bl-navy, #253b61); width: auto; flex: 0 0 auto;
}
.bl-meeting-space #space-main-menu .list-group-item:hover { background: rgba(37, 59, 97, .12); color: var(--bl-navy, #253b61); }
.bl-meeting-space #space-main-menu .list-group-item.active { background: var(--bl-navy, #253b61); color: #fff; box-shadow: 0 6px 16px rgba(37, 59, 97, .25); }
.bl-meeting-space #space-main-menu .list-group-item i { margin-right: 4px; }
@media (max-width: 767px) { .bl-meeting-space #space-main-menu { padding: 8px; } .bl-meeting-space #space-main-menu .list-group-item { padding: 7px 13px; font-size: 13px; } }

.bl-sheet-time-row { display: flex; align-items: center; gap: 8px; }
.bl-sheet-time-row .form-control { width: auto; flex: 1 1 0; }
.bl-sheet-times { margin-bottom: 12px; }

/* 모임 글 한 장: 참석 응답·참석자 (일정 글과 합침) */
.bl-sheet-answer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.bl-sheet-people { margin-top: 8px; }
.bl-sheet-people > summary { cursor: pointer; font-size: 12.5px; font-weight: 700; color: var(--bl-navy, #253b61); }
.bl-sheet-people-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.bl-sheet-people-list a.bl-chip { text-decoration: none !important; color: var(--bl-ink, #182236); }

/* 카드에서 바로 참석 체크 */
/* 카드·모임 글 안의 참석 상자 (일정 글과 같은 모양, 조금 작게) */
.bl-card-rsvp { margin: 8px 0 0; padding: 9px 12px; }
.bl-card-rsvp .bl-rsvp-text b { font-size: 13px; }
.bl-card-rsvp .bl-rsvp-sub { font-size: 11.5px; }
.bl-sheet-answer { margin-top: 10px !important; }
.bl-rsvp-buttons .bl-rsvp-btn { border: 1px solid var(--bl-line, #dfe4ec); background: #fff; border-radius: 999px; padding: 6px 15px; font-size: 13px; font-weight: 700; line-height: 1.5; cursor: pointer; }
.bl-rsvp-buttons .bl-rsvp-btn.bl-rsvp-t3 { border-color: #3fae5a; color: #2f8a45; }
.bl-rsvp-buttons .bl-rsvp-btn.bl-rsvp-t2 { border-color: #e0a12e; color: #9a6410; }
.bl-rsvp-buttons .bl-rsvp-btn.bl-rsvp-t1 { border-color: #b8c0cc; color: #6b7686; }
.bl-rsvp-buttons .bl-rsvp-btn.bl-rsvp-t3.active { background: #3fae5a; color: #fff; }
.bl-rsvp-buttons .bl-rsvp-btn.bl-rsvp-t2.active { background: #e0a12e; color: #fff; }
.bl-rsvp-buttons .bl-rsvp-btn.bl-rsvp-t1.active { background: #8d97a6; color: #fff; border-color: #8d97a6; }
.bl-rsvp-buttons .bl-rsvp-btn:disabled { opacity: .55; cursor: default; }
@media (max-width: 575px) { .bl-card-rsvp .bl-rsvp-buttons { width: 100%; } .bl-card-rsvp .bl-rsvp-btn { flex: 1; padding: 7px 4px; } }

/* 좁은 화면에서는 모든 페이지가 같은 좌우 여백으로 시작한다 (.row 의 음수 여백을 위해 컨테이너에 준다) */
@media (max-width: 767px) {
    #layout-content .container, #layout-content .container-fluid { padding-left: 10px; padding-right: 10px; }
    #layout-content > div:not(.container):not(.container-fluid) { padding-left: 10px; padding-right: 10px; }
    /* 본문/사이드바를 나누는 바깥 row 의 음수 여백은 좁은 화면에서 필요 없다 (그대로 두면 10px 를 넘어 삐져나온다) */
    #layout-content > .container > .row, #layout-content > .container-fluid > .row, #layout-content > div > .row { margin-left: 0; margin-right: 0; }
    #layout-content > .container > .row > [class*="col-"], #layout-content > .container-fluid > .row > [class*="col-"], #layout-content > div > .row > [class*="col-"] { padding-left: 0; padding-right: 0; }
}

/* 모임 메인: 새 모임 만들기는 맨 아래 */
.bl-meetings-new { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 26px 0 10px; padding-top: 18px; border-top: 1px dashed var(--bl-line, #e6eaf1); }
.bl-meetings-new .btn { border-radius: 999px; font-weight: 800; padding: 9px 22px; }
.bl-meetings-new .bl-hint { margin: 0; text-align: center; }

/* 모임 메인: 좁은 화면에서도 두 줄로 나란히 */
@media (max-width: 767px) {
    .bl-meetings-list .bl-board-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .bl-meetings-list .bl-card-meeting { padding: 12px 10px 10px; border-radius: 16px; }
    .bl-meetings-list .bl-card-meeting-head { flex-wrap: wrap; gap: 8px; }
    .bl-meetings-list .bl-card-meeting-img img, .bl-meetings-list .bl-card-meeting-img .space-img { width: 34px; height: 34px; border-radius: 11px; }
    .bl-meetings-list .bl-card-meeting-name { font-size: 14.5px; }
    .bl-meetings-list .bl-card-meeting-state { margin-left: 0; font-size: 10.5px; padding: 1px 7px; }
    .bl-meetings-list .bl-card-meeting-desc { font-size: 11.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .bl-meetings-list .bl-card-meeting-rows { font-size: 11.5px; }
    .bl-meetings-list .bl-card-meeting-row { gap: 4px; }
    .bl-meetings-list .bl-card-foot { font-size: 11px; padding-top: 8px; }
    .bl-meetings-list .bl-board-section-empty { font-size: 12px; }
}

/* 자료실 */
.bl-lib-upload .bl-lib-files { margin: 6px 0 10px; }
.bl-lib-list { display: flex; flex-direction: column; gap: 10px; }
.bl-lib-item { background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 18px; padding: 14px 16px; }
.bl-lib-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; }
.bl-lib-head h4 { margin: 0; font-size: 15.5px; font-weight: 900; color: var(--bl-ink, #182236); }
.bl-lib-meta { font-size: 12px; color: var(--bl-muted, #697384); }
.bl-lib-note { margin: 6px 0 0; font-size: 13.5px; color: #3d4757; line-height: 1.6; }
.bl-lib-files-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.bl-lib-file { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 6px 12px; border-radius: 999px; background: rgba(37, 59, 97, .06); color: var(--bl-ink, #182236); text-decoration: none !important; font-size: 13px; font-weight: 600; }
.bl-lib-file:hover { background: rgba(37, 59, 97, .13); color: var(--bl-ink, #182236); }
.bl-lib-file i { color: var(--bl-navy, #253b61); }
.bl-lib-file-name { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-lib-file small { color: var(--bl-muted, #697384); font-weight: 500; }
.bl-lib-actions { margin-top: 10px; }
.bl-lib-actions form { display: inline; }

.bl-side-loading { padding: 40px 12px; text-align: center; color: var(--bl-muted, #697384); font-size: 14px; }

/* 자료실 전체 화면 뷰어 (앱 안에서 열고, 뒤로가기는 뷰어만 닫는다) */
.bl-fv { position: fixed; inset: 0; z-index: 1080; background: #10151f; display: flex; flex-direction: column; opacity: 0; transition: opacity .2s ease; }
.bl-fv[hidden] { display: none; }
.bl-fv.is-open { opacity: 1; }
.bl-fv-head { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-top, 0px)); background: rgba(16, 21, 31, .96); color: #fff; padding-top: calc(10px + env(safe-area-inset-top, 0px)); }
.bl-fv-name { flex: 1; min-width: 0; font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-fv-tools { display: flex; gap: 6px; }
.bl-fv-btn { display: inline-flex; align-items: center; gap: 5px; border: 0; border-radius: 999px; padding: 7px 14px; font-size: 13px; font-weight: 700; background: rgba(255, 255, 255, .14); color: #fff !important; text-decoration: none !important; cursor: pointer; }
.bl-fv-btn:hover { background: rgba(255, 255, 255, .24); }
.bl-fv-body { flex: 1 1 auto; overflow: auto; -webkit-overflow-scrolling: touch; padding: 12px; text-align: center; padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
.bl-fv-body img, .bl-fv-body video { max-width: 100%; border-radius: 10px; }
.bl-fv-page { display: block; margin: 0 auto 10px; border-radius: 6px; background: #fff; box-shadow: 0 6px 18px rgba(0, 0, 0, .35); max-width: 100%; }
.bl-fv-text { text-align: left; white-space: pre-wrap; word-break: break-all; background: #fff; border-radius: 10px; padding: 12px; font-size: 13px; line-height: 1.6; margin: 0 auto; max-width: 900px; }
.bl-fv-msg { color: rgba(255, 255, 255, .85); padding: 40px 12px; font-size: 14px; }
.bl-fv-msg a { color: #9ec5ff; }
body.bl-fv-open { overflow: hidden; }

/* 자료실 파일 미리보기 */
.bl-lib-file.is-viewable { cursor: pointer; }
.bl-lib-file.is-open { background: var(--bl-navy, #253b61); color: #fff; }
.bl-lib-file.is-open i, .bl-lib-file.is-open small { color: rgba(255, 255, 255, .85); }
.bl-lib-view { margin-top: 10px; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 14px; overflow: hidden; background: #fbfcfe; }
.bl-lib-view-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--bl-line, #e6eaf1); background: #fff; }
.bl-lib-view-name { font-size: 13px; font-weight: 800; color: var(--bl-ink, #182236); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-lib-view-tools { display: flex; gap: 6px; }
.bl-lib-view-tools .bl-chip { border: 0; cursor: pointer; text-decoration: none !important; color: var(--bl-ink, #182236); }
.bl-lib-view-body { padding: 10px; min-height: 60px; }
.bl-lib-view-body img { max-width: 100%; border-radius: 10px; display: block; margin: 0 auto; }
.bl-lib-frame { width: 100%; height: 70vh; border: 0; border-radius: 10px; background: #fff; }
.bl-lib-text { margin: 0; max-height: 60vh; overflow: auto; font-size: 12.5px; line-height: 1.6; white-space: pre-wrap; word-break: break-all; background: #fff; border-radius: 10px; padding: 10px; }
@media (max-width: 767px) { .bl-lib-frame { height: 60vh; } }
.bl-lib-view-hint { margin-top: 6px; font-size: 12px; color: var(--bl-muted, #697384); text-align: center; }

/* ── 회계 장부 ───────────────────────────────────────────── */
.bl-ledger .bl-empty { margin: 4px 0; color: var(--bl-muted, #697384); font-size: 13px; }
.bl-ledger .panel { margin-top: 12px; }

/* 장부 안쪽 탭 (장부 · 정산 · 행사) — 방 메뉴 바로 아래 얇은 줄로 */
.bl-led-tabs { margin: 0 0 12px; padding: 0 2px; }
.bl-led-tabs .bl-tabs { margin: 0; }
.bl-led-tabs .nav-link { font-size: 13px; padding: 5px 14px; }

/* 통장 — 장부 첫 화면 */
.bl-led-hero {
    position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between;
    gap: 16px; flex-wrap: wrap; padding: 18px 20px; border-radius: 18px;
    background: linear-gradient(120deg, #22375c 0%, #2f4f80 58%, #3d6396 100%);
    color: #fff; box-shadow: 0 8px 22px rgba(24, 39, 66, .18);
}
.bl-led-hero::after { content: ""; position: absolute; right: -40px; top: -60px; width: 190px; height: 190px; border-radius: 50%; background: rgba(255, 255, 255, .06); }
.bl-led-hero::before { content: ""; position: absolute; right: 60px; bottom: -70px; width: 120px; height: 120px; border-radius: 50%; background: rgba(255, 255, 255, .05); }
.bl-led-hero-main { position: relative; z-index: 1; min-width: 0; }
.bl-led-hero-label { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; letter-spacing: .03em; color: rgba(255, 255, 255, .72); }
.bl-led-hero-amount { display: block; margin-top: 2px; font-size: 32px; font-weight: 800; letter-spacing: -1px; line-height: 1.2; }
.bl-led-hero-amount small { font-size: 15px; font-weight: 700; opacity: .8; margin-left: 3px; letter-spacing: 0; }
.bl-led-hero-acc { display: inline-flex; align-items: center; gap: 7px; margin-top: 10px; padding: 5px 12px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .15); color: #fff; font-size: 12px; font-weight: 600; cursor: pointer; }
.bl-led-hero-acc:hover { background: rgba(255, 255, 255, .24); }
.bl-led-hero-edit { position: relative; z-index: 1; margin-top: 8px; }
.bl-led-hero-edit > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; color: rgba(255, 255, 255, .6); }
.bl-led-hero-edit > summary::-webkit-details-marker { display: none; }
.bl-led-hero-edit > summary:hover { color: #fff; }
.bl-led-hero-edit form { display: flex; gap: 6px; margin-top: 8px; max-width: 420px; }
.bl-led-hero-side { position: relative; z-index: 1; display: flex; gap: 10px; }
.bl-led-hero-stat { display: block; min-width: 118px; padding: 10px 14px; border-radius: 14px; background: rgba(255, 255, 255, .14); color: #fff !important; text-decoration: none !important; transition: background .15s ease; }
.bl-led-hero-stat:hover { background: rgba(255, 255, 255, .24); }
.bl-led-hero-stat span { display: block; font-size: 11.5px; font-weight: 700; color: rgba(255, 255, 255, .75); }
.bl-led-hero-stat b { display: block; font-size: 19px; font-weight: 800; letter-spacing: -.4px; }
.bl-led-hero-stat small { display: block; font-size: 10.5px; color: rgba(255, 255, 255, .55); }
.bl-led-hero-stat.is-zero { background: rgba(255, 255, 255, .07); }
.bl-led-hero-stat.is-zero b, .bl-led-hero-stat.is-zero span { color: rgba(255, 255, 255, .45); }

/* 정산 화면 윗줄 */
.bl-led-hero-slim { padding: 15px 20px; }
.bl-led-hero-note { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, .8); max-width: 420px; line-height: 1.5; }

/* 이번 달 한 줄 카드 */
.bl-led-monthcard { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 11px 16px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(20, 30, 50, .06); font-size: 12px; }
.bl-led-monthcard-name { font-weight: 800; color: var(--bl-ink, #182236); }
.bl-led-monthcard em { font-style: normal; font-weight: 800; white-space: nowrap; }

.bl-led-rows { list-style: none; margin: 0; padding: 0; }
.bl-led-row { display: flex; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid rgba(20, 30, 50, .06); }
.bl-led-row:last-child { border-bottom: 0; }
.bl-led-date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 12px; background: var(--bl-paper, #f5f7f9); line-height: 1.1; }
.bl-led-date b { font-size: 15px; font-weight: 800; color: var(--bl-ink, #182236); }
.bl-led-date small { font-size: 10px; font-weight: 700; color: var(--bl-muted, #8b93a3); }
.bl-led-income .bl-led-date { background: rgba(76, 154, 42, .10); }
.bl-led-income .bl-led-date b { color: #3e7f22; }
.bl-led-expense .bl-led-date { background: rgba(223, 109, 114, .10); }
.bl-led-expense .bl-led-date b { color: var(--bl-coral-deep, #c9545b); }
.bl-led-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.bl-led-body b { font-size: 13.5px; color: var(--bl-ink, #182236); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-led-body small { font-size: 11.5px; color: var(--bl-muted, #8b93a3); }
.bl-led-amt { font-size: 15px; font-weight: 800; letter-spacing: -0.3px; white-space: nowrap; }
.bl-led-income .bl-led-amt { color: #2f8f4e; }
.bl-led-expense .bl-led-amt { color: #c2413c; }
.bl-led-del { display: inline; }
.bl-led-del .btn { color: #b9c0cc; padding: 0 2px; }
.bl-led-del .btn:hover { color: #c2413c; }

.bl-led-new { margin-bottom: 10px; }
.bl-led-new > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; background: #eef1f5; font-size: 12.5px; font-weight: 600; color: var(--bl-ink, #182236); }
.bl-led-new > summary::-webkit-details-marker { display: none; }
.bl-led-form { margin-top: 12px; }
.bl-led-form-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 10px; }
.bl-led-form-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; color: var(--bl-muted, #697384); margin: 0; }
.bl-led-form-grid .bl-led-wide { grid-column: span 2; }
.bl-fund-del { display: inline-block; margin-left: 8px; }

.bl-fund-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.bl-fund-card { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(20, 30, 50, .06); text-decoration: none !important; color: inherit; border: 1px solid rgba(20, 30, 50, .05); }
.bl-fund-card:hover { box-shadow: 0 4px 14px rgba(20, 30, 50, .10); transform: translateY(-1px); transition: all .15s ease; }
.bl-fund-card b { font-size: 15px; color: var(--bl-ink, #182236); }
.bl-fund-card .bl-fund-rest { font-size: 18px; font-weight: 700; color: #2f6fd0; letter-spacing: -0.4px; }
.bl-fund-card small { font-size: 11.5px; color: var(--bl-muted, #8b93a3); }
.bl-fund-card.is-closed { opacity: .6; }

.bl-fund-sum { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.bl-fund-sum > div { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: #f6f8fb; }
.bl-fund-sum span { font-size: 11.5px; font-weight: 600; color: var(--bl-muted, #697384); }
.bl-fund-sum b { font-size: 17px; color: var(--bl-ink, #182236); letter-spacing: -0.3px; }
.bl-fund-sum .is-rest { background: #eaf2ff; }
.bl-fund-sum .is-rest b { color: #2f6fd0; }

.bl-fee-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.bl-fee-item { display: flex; align-items: center; gap: 8px; margin: 0; padding: 9px 12px; border-radius: 12px; background: #f6f8fb; border: 1px solid transparent; cursor: pointer; font-weight: 500; transition: background .15s ease, border-color .15s ease; }
.bl-fee-item input { margin: 0; width: 17px; height: 17px; accent-color: #2f8f4e; flex: 0 0 auto; }
.bl-fee-name { flex: 1 1 auto; font-size: 13.5px; color: var(--bl-ink, #182236); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bl-fee-amt { font-size: 12px; font-weight: 700; color: #b9c0cc; white-space: nowrap; }
.bl-fee-item.is-paid { background: #eaf7ee; border-color: rgba(47, 143, 78, .25); }
.bl-fee-item.is-paid .bl-fee-amt { color: #2f8f4e; }
.bl-fee-item.is-paid .bl-fee-name { color: #1f6b3a; font-weight: 600; }
.bl-fee-tools { display: flex; gap: 6px; margin-top: 12px; }
.bl-fee-tools form { display: inline; }

.bl-settle-list { list-style: none; margin: 0; padding: 0; }
.bl-settle-item { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 2px; border-bottom: 1px solid rgba(20, 30, 50, .06); }
.bl-settle-item:last-child { border-bottom: 0; }
.bl-settle-main { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; }
.bl-settle-main b { font-size: 13.5px; color: var(--bl-ink, #182236); }
.bl-settle-main small { font-size: 11.5px; color: var(--bl-muted, #8b93a3); }
.bl-settle-form { display: flex; gap: 6px; align-items: center; }
.bl-settle-form input { width: 110px; text-align: right; }
.bl-settle-next { display: inline; }
.bl-settle-next .btn i { margin-left: 4px; }

@media (max-width: 767px) {
    .bl-led-hero { padding: 15px 16px; gap: 12px; }
    .bl-led-hero-amount { font-size: 27px; }
    .bl-led-hero-side { width: 100%; gap: 8px; }
    .bl-led-hero-stat { flex: 1 1 0; min-width: 0; padding: 9px 11px; }
    .bl-led-hero-stat b { font-size: 17px; }
    .bl-led-monthcard { flex-wrap: wrap; gap: 6px 10px; }
    .bl-led-monthcard .bl-led-bar { order: 3; flex-basis: 100%; }
    .bl-led-form-grid { grid-template-columns: repeat(2, 1fr); }
    .bl-fund-grid { grid-template-columns: 1fr; }
    .bl-fund-sum { grid-template-columns: repeat(2, 1fr); }
    .bl-fee-list { grid-template-columns: repeat(2, 1fr); }
    .bl-settle-form input { width: 90px; }
}
.bl-settle-cands { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-settle-cands form { display: inline; }
.bl-settle-cands .btn small { color: var(--bl-muted, #8b93a3); margin-left: 6px; }
.bl-fund-sum b em { display: block; font-style: normal; font-size: 11px; font-weight: 600; color: var(--bl-muted, #8b93a3); }
.bl-fund-budget { margin-top: 10px; }
.bl-settle-acc { width: 150px; }
@media (max-width: 767px) { .bl-settle-acc { width: 120px; } }
.bl-sheet-del { display: inline; }
.bl-sheet-del button.bl-chip { border: 0; cursor: pointer; }

/* 홈 회계 카드 (운영위원회·회계팀) — 한눈에 들어오도록 촘촘하게 */
.bl-home-ledger .panel-body { padding-top: 6px; padding-bottom: 12px; }

/* 통장 한 줄 */
.bl-led-strip {
    position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between;
    gap: 12px; flex-wrap: wrap; padding: 12px 14px; border-radius: 14px;
    background: linear-gradient(120deg, #22375c 0%, #2f4f80 60%, #3d6396 100%);
    color: #fff; box-shadow: 0 5px 14px rgba(24, 39, 66, .16);
}
.bl-led-strip::after { content: ""; position: absolute; right: -30px; top: -40px; width: 120px; height: 120px; border-radius: 50%; background: rgba(255, 255, 255, .06); }
.bl-led-strip-main { position: relative; z-index: 1; min-width: 0; }
.bl-led-strip-main > span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .03em; color: rgba(255, 255, 255, .7); }
.bl-led-strip-main > strong { display: block; font-size: 23px; font-weight: 800; letter-spacing: -.7px; line-height: 1.25; }
.bl-led-strip-main > strong small { font-size: 12.5px; font-weight: 700; opacity: .8; margin-left: 2px; }
.bl-led-acc { display: inline-flex; align-items: center; gap: 6px; margin-top: 5px; padding: 2px 9px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .15); color: #fff; font-size: 11px; font-weight: 600; cursor: pointer; }
.bl-led-acc:hover { background: rgba(255, 255, 255, .24); }
.bl-led-strip-side { position: relative; z-index: 1; display: flex; gap: 8px; }
.bl-led-strip-side > div { min-width: 86px; padding: 6px 10px; border-radius: 11px; background: rgba(255, 255, 255, .13); text-align: right; }
.bl-led-strip-side span { display: block; font-size: 10.5px; font-weight: 700; color: rgba(255, 255, 255, .72); }
.bl-led-strip-side b { display: block; font-size: 14px; font-weight: 800; letter-spacing: -.3px; }
.bl-led-strip-side .is-zero { background: rgba(255, 255, 255, .07); }
.bl-led-strip-side .is-zero b, .bl-led-strip-side .is-zero span { color: rgba(255, 255, 255, .45); }

/* 모임 식사비 — 한 줄에 하나 */
.bl-led-meals { list-style: none; margin: 10px 0 0; padding: 0; }
.bl-led-meal { display: flex; align-items: center; gap: 8px; padding: 6px 2px; border-bottom: 1px solid rgba(20, 30, 50, .06); font-size: 12.5px; }
.bl-led-meal:last-child { border-bottom: 0; }
.bl-led-meal b { font-weight: 700; color: var(--bl-ink, #182236); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 42%; }
.bl-led-meal em { font-style: normal; font-size: 11.5px; color: var(--bl-muted, #8b93a3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-led-meal span { margin-left: auto; font-weight: 800; letter-spacing: -.2px; color: var(--bl-ink, #182236); white-space: nowrap; }
.bl-led-meal i { font-style: normal; padding: 1px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; white-space: nowrap; }
.bl-led-meal-paid i { background: rgba(223, 109, 114, .14); color: var(--bl-coral-deep, #c9545b); }
.bl-led-meal-billed i { background: rgba(102, 135, 173, .18); color: #3f6595; }
.bl-led-meal-settled i { background: rgba(76, 154, 42, .13); color: #3e7f22; }
.bl-led-meal-none i { background: #eef1f5; color: #8b93a3; }
.bl-led-meal-settled b, .bl-led-meal-settled span { color: #737d8e; }
.bl-led-meal-none span { color: #b9c0cc; }

/* 행사 — 한 줄에 하나 */
.bl-led-funds { list-style: none; margin: 8px 0 0; padding: 8px 0 0; border-top: 1px solid rgba(20, 30, 50, .06); }
.bl-led-fund { display: flex; align-items: center; gap: 8px; padding: 3px 2px; font-size: 12.5px; }
.bl-led-fund b { font-weight: 700; color: var(--bl-ink, #182236); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 40%; }
.bl-led-fund > span { font-weight: 800; color: var(--bl-navy, #253b61); white-space: nowrap; }
.bl-led-fund .bl-led-fee { flex: 0 0 72px; margin-left: auto; height: 5px; border-radius: 999px; background: #e3e8ee; overflow: hidden; }
.bl-led-fund .bl-led-fee u { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #3d6396, #5b86c2); }
.bl-led-fund .bl-led-fee.is-full u { background: linear-gradient(90deg, #4c9a2a, #6cbb46); }
.bl-led-fund em { font-style: normal; font-size: 11px; font-weight: 700; color: var(--bl-muted, #8b93a3); white-space: nowrap; }

/* 이번 달 한 줄 */
.bl-led-month { display: flex; align-items: center; gap: 8px; margin-top: 9px; padding-top: 8px; border-top: 1px solid rgba(20, 30, 50, .06); font-size: 11.5px; }
.bl-led-month > span { font-weight: 800; color: var(--bl-ink, #182236); }
.bl-led-bar { flex: 1 1 auto; display: flex; height: 5px; border-radius: 999px; overflow: hidden; background: #edf0f4; }
.bl-led-bar u { display: block; height: 100%; }
.bl-led-bar .bl-led-bar-in { background: linear-gradient(90deg, #5aa844, #77c05e); }
.bl-led-bar .bl-led-bar-out { background: linear-gradient(90deg, #e08a8e, #d2666c); }
.bl-led-month em { font-style: normal; font-weight: 800; white-space: nowrap; }
.bl-led-in { color: #3e7f22; }
.bl-led-out { color: var(--bl-coral-deep, #c9545b); }

@media (max-width: 767px) {
    .bl-led-strip { padding: 11px 12px; gap: 10px; }
    .bl-led-strip-main > strong { font-size: 21px; }
    .bl-led-strip-side { width: 100%; }
    .bl-led-strip-side > div { flex: 1 1 0; min-width: 0; text-align: left; }
    .bl-led-meal em { max-width: 30%; }
}

/* 카카오 로그인 단추 — 카카오 브랜드 색 */
.btn-ac-kakao, .btn-ac-kakao:focus {
    background: #FEE500 !important;
    border-color: #FEE500 !important;
    color: #191600 !important;
    font-weight: 700;
    box-shadow: none;
}
.btn-ac-kakao:hover, .btn-ac-kakao:active {
    background: #f2da00 !important;
    border-color: #f2da00 !important;
    color: #191600 !important;
}
.btn-ac-kakao i { margin-right: 7px; color: #191600 !important; }

/* 카카오로 시작하기 화면 */
.bl-kakao-join { max-width: 430px; margin: 0 auto; }
.bl-kakao-join .panel-body { padding: 22px 22px 18px; }
.bl-kakao-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px; border-radius: 999px; background: #FEE500; color: #191600; font-size: 11.5px; font-weight: 700; }
.bl-kakao-who { display: flex; align-items: center; gap: 12px; margin: 14px 0 12px; }
.bl-kakao-photo { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: 0 0 52px; box-shadow: 0 2px 8px rgba(20, 30, 50, .12); }
.bl-kakao-photo-none { display: flex; align-items: center; justify-content: center; background: var(--bl-navy, #253b61); color: #fff; font-size: 20px; font-weight: 800; }
.bl-kakao-who b { font-size: 17px; color: var(--bl-ink, #182236); }
.bl-kakao-who small { font-size: 13px; color: var(--bl-muted, #697384); }
.bl-kakao-guide { font-size: 13px; line-height: 1.7; color: var(--bl-ink, #182236); margin-bottom: 16px; }
.bl-kakao-guide span { color: var(--bl-muted, #8b93a3); font-size: 12.5px; }
.bl-kakao-field { display: block; margin-bottom: 12px; font-weight: 600; }
.bl-kakao-field > span { display: block; font-size: 12.5px; color: var(--bl-ink, #182236); margin-bottom: 4px; }
.bl-kakao-field small { display: block; margin-top: 3px; font-size: 11.5px; font-weight: 500; color: var(--bl-muted, #8b93a3); }
.bl-kakao-go { margin-top: 6px; font-weight: 700; }
.bl-kakao-foot { margin: 14px 0 0; text-align: center; font-size: 12px; color: var(--bl-muted, #8b93a3); line-height: 1.7; }
.bl-kakao-foot span { margin: 0 6px; }
.bl-login-note { margin: 12px 0 0; text-align: center; font-size: 12.5px; line-height: 1.7; color: var(--bl-muted, #8b93a3); }
.bl-kakao-picks { margin-bottom: 10px; }
.bl-kakao-pick { display: flex; align-items: center; gap: 8px; width: 100%; margin-bottom: 8px; padding: 12px 14px; border: 1px solid var(--bl-line, #e1e6ec); border-radius: 14px; background: #fff; text-align: left; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.bl-kakao-pick:hover { border-color: var(--bl-navy, #253b61); box-shadow: 0 3px 10px rgba(20, 30, 50, .08); }
.bl-kakao-pick b { font-size: 15px; color: var(--bl-ink, #182236); }
.bl-kakao-pick small { font-size: 11.5px; color: var(--bl-muted, #8b93a3); }
.bl-kakao-pick i { margin-left: auto; color: #b9c0cc; }
.bl-kakao-retry .btn { font-size: 13px; }
.bl-login-scope { margin-top: 14px !important; display: inline-flex; align-items: flex-start; gap: 7px; padding: 9px 15px; border-radius: 14px; background: rgba(255, 255, 255, .10); font-size: 13px !important; line-height: 1.6; color: rgba(255, 255, 255, .82) !important; text-align: left; }
.bl-login-scope i { margin-top: 3px; opacity: .7; }
.bl-kakao-scope { display: flex; align-items: flex-start; gap: 6px; margin: 14px 0 0; padding: 9px 12px; border-radius: 12px; background: var(--bl-paper, #f5f7f9); font-size: 12px; line-height: 1.6; color: var(--bl-muted, #697384); }
.bl-kakao-scope i { margin-top: 2px; opacity: .7; }

/* 부목자 대리 참석 체크 */
.bl-proxy { margin-top: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(102, 135, 173, .10); }
.bl-proxy-title { font-size: 12px; font-weight: 700; color: var(--bl-navy, #253b61); margin-bottom: 8px; }
.bl-proxy-title i { margin-right: 4px; opacity: .8; }
.bl-proxy-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; padding: 4px 0; }
.bl-proxy-name { font-size: 13.5px; font-weight: 600; color: var(--bl-ink, #182236); }
.bl-proxy-name small { margin-left: 5px; font-size: 11px; font-weight: 500; color: var(--bl-muted, #8b93a3); }
.bl-proxy-btns { display: inline-flex; gap: 4px; }
.bl-chip-plain { background: #eef1f5; color: var(--bl-muted, #697384); }
.bl-proxy-btn { border: 1px solid var(--bl-line, #dfe4ec); background: #fff; color: var(--bl-ink, #1c2433); border-radius: 999px; font-size: 12px; font-weight: 700; padding: 1px 10px; line-height: 1.7; cursor: pointer; }
.bl-proxy-btn.active, .bl-proxy-btn:hover { background: var(--bl-navy, #253b61); color: #fff; border-color: var(--bl-navy, #253b61); }
.bl-proxy-btn:disabled { opacity: .5; cursor: default; }
.bl-card-proxy { margin-top: 8px; }
a.bl-meet-tile { text-decoration: none !important; color: inherit; display: block; }
a.bl-meet-tile:hover { box-shadow: 0 4px 14px rgba(20, 30, 50, .10); transform: translateY(-1px); transition: all .15s ease; }
.bl-meet-name b { font-weight: 700; }
.bl-home-proxy { margin-top: 6px; padding: 8px 10px; }
.bl-home-proxy .bl-proxy-row { padding: 2px 0; }
.bl-proxy-name small { display: inline-block; }
.bl-share2 { display: inline-flex; gap: 4px; }
.bl-share2 button.bl-chip { border: 0; cursor: pointer; }

/* 모임 글: 안내 · 출석표 */
.bl-sheet-notice { margin: 12px 0 4px; padding: 12px 14px; border-radius: 14px; background: var(--bl-paper, #f5f7f9); }
.bl-sheet-notice .bl-label { margin-bottom: 6px; }
.bl-sheet-notice .bl-richtext { font-size: 14px; line-height: 1.7; }
.bl-attboard-row { padding: 6px 0; border-top: 1px solid rgba(20, 30, 50, .06); }
.bl-attboard-row:first-of-type { border-top: 0; }
.bl-attboard-label { font-size: 12px; font-weight: 700; color: var(--bl-muted, #697384); margin-bottom: 4px; }
.bl-attboard-label b { color: var(--bl-ink, #182236); }
.bl-attboard-3 .bl-attboard-label { color: #3e7f22; }
.bl-attboard-1 .bl-attboard-label { color: var(--bl-coral-deep, #c9545b); }
.bl-attboard summary small { font-weight: 600; color: var(--bl-muted, #8b93a3); margin-left: 6px; }

/* 모임 카드를 펼치면 카드는 감춘다 — 같은 모임이 카드와 글로 두 번 보이지 않게 */
.bl-card-sheet.is-open { display: none; }

/* 이동 수단 (버스·자차) */
.bl-ride { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; padding: 8px 12px; border-radius: 12px; background: rgba(102, 135, 173, .10); }
.bl-ride-label { font-size: 12.5px; font-weight: 700; color: var(--bl-navy, #253b61); }
.bl-ride-btns { display: inline-flex; gap: 4px; }
.bl-ride-btn { border: 1px solid var(--bl-line, #dfe4ec); background: #fff; color: var(--bl-ink, #1c2433); border-radius: 999px; font-size: 12px; font-weight: 700; padding: 1px 12px; line-height: 1.7; cursor: pointer; }
.bl-ride-btn.active, .bl-ride-btn:hover { background: var(--bl-blue, #6687ad); color: #fff; border-color: var(--bl-blue, #6687ad); }
.bl-ride-btn:disabled { opacity: .5; cursor: default; }
.bl-ride-count { margin-left: auto; font-size: 11.5px; color: var(--bl-muted, #697384); }
.bl-ride-count b { color: var(--bl-ink, #182236); }
.bl-ride-inline { margin-top: 0; padding: 0; background: none; }
.bl-sheet-people-list .bl-chip small { margin-left: 4px; font-size: 10.5px; color: var(--bl-muted, #8b93a3); font-weight: 600; }
.bl-pt-pending { display: inline-flex; align-items: center; padding: 2px 9px; margin: 2px; border-radius: 999px; border: 1px dashed var(--bl-line, #dfe4ec); background: #fff; font-size: 11.5px; font-weight: 600; color: var(--bl-muted, #8b93a3); }

/* 전체 출석표(모임 글): 명단 전체를 응답 색으로 */
.bl-attfull { margin-top: 6px; }
.bl-attfull .bl-att-tree { background: #fff; border-radius: 12px; overflow: hidden; }
.bl-att-name { display: inline-flex; align-items: center; gap: 4px; margin: 2px 3px 2px 0; padding: 3px 9px; border-radius: 999px; background: #f2f4f8; color: #98a1b0; font-size: 12px; font-weight: 700; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.bl-att-name small { font-size: 10px; font-weight: 800; opacity: .85; }
.bl-att-name.is-yes { background: #e8f6ec; color: #2f7a3f; }
.bl-att-name.is-maybe { background: #fff4e0; color: #a76a12; }
.bl-att-name.is-no { background: #fdeaea; color: #b4413d; }
.bl-att-name.is-none.is-noacct { opacity: .75; }
.bl-att-legend { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 2px; }
.bl-att-legend .bl-att-name { margin: 0; font-size: 11px; padding: 2px 8px; }

/* 전체 출석표: 엘더·마을장은 위아래로 놓아 칸 폭을 줄인다 */
.bl-attfull table.bl-att-tree:not(.bl-att-tree-one) tr.bl-att-tree-head th:first-child,
.bl-attfull table.bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell { width: 21%; }
.bl-attfull td.bl-att-tree-village-cell { text-align: center; }
.bl-attfull td.bl-att-tree-village-cell .bl-att-name { display: flex; justify-content: center; width: 100%; margin: 2px 0; }
.bl-attfull tr.bl-att-tree-head th { white-space: normal; line-height: 1.25; }

/* 카드에서 바로 고르는 이동 수단 */
.bl-card .bl-ride.bl-card-ride { margin: 8px 0 0; }
.bl-card .bl-proxy-row .bl-ride-inline { margin-left: 4px; }

/* 마을장·엘더가 우리 마을 목장들을 한꺼번에 체크할 때 (줄이 많다) */
.bl-proxy-wide { max-height: 440px; overflow-y: auto; }
.bl-proxy-wide .bl-proxy-title { position: sticky; top: -10px; margin: -10px -12px 6px; padding: 10px 12px 6px; background: #eef2f7; z-index: 2; }
.bl-proxy-wide .bl-proxy-title b { color: var(--bl-coral, #df6d72); }
.bl-proxy-wide .bl-proxy-row { border-top: 1px solid rgba(37, 59, 97, .08); padding: 6px 0; }
.bl-proxy-wide .bl-proxy-row:first-of-type { border-top: 0; }
.bl-proxy-wide .bl-proxy-name { flex: 1 1 100%; }
.bl-card .bl-proxy-wide { max-height: 300px; }

/* 전체 출석표에서 바로 체크 */
.bl-att-name.bl-att-edit { border: 0; cursor: pointer; font-family: inherit; box-shadow: inset 0 0 0 1px rgba(37, 59, 97, .18); }
.bl-att-name.bl-att-edit:hover, .bl-att-name.is-picking { box-shadow: inset 0 0 0 2px var(--bl-navy, #253b61); }
.bl-att-name .bl-att-ride:empty { display: none; }
.bl-att-hint { margin-left: 6px; font-size: 11px; font-weight: 700; color: var(--bl-coral, #df6d72); }
.bl-att-pop { position: absolute; z-index: 1080; background: #fff; border-radius: 14px; box-shadow: 0 10px 30px rgba(24, 34, 54, .22); padding: 10px 12px; min-width: 190px; }
.bl-att-pop-name { font-size: 13px; font-weight: 800; color: var(--bl-ink, #182236); margin-bottom: 6px; }
.bl-att-pop-row { display: flex; align-items: center; gap: 5px; }
.bl-att-pop-row + .bl-att-pop-row { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--bl-line, #eceff5); }
.bl-att-pop-ride span { font-size: 11.5px; font-weight: 700; color: var(--bl-muted, #8b93a3); margin-right: 2px; }
.bl-att-pop-btn { border: 1px solid var(--bl-line, #dfe4ec); background: #fff; color: var(--bl-ink, #1c2433); border-radius: 999px; font-size: 12.5px; font-weight: 700; padding: 3px 12px; cursor: pointer; }
.bl-att-pop-btn.active, .bl-att-pop-btn:hover { background: var(--bl-navy, #253b61); color: #fff; border-color: var(--bl-navy, #253b61); }
.bl-att-pop-btn.bl-rsvp-t3.active { background: #3fae5a; border-color: #3fae5a; }
.bl-att-pop-btn.bl-rsvp-t2.active { background: #e0a020; border-color: #e0a020; }
.bl-att-pop-btn.bl-rsvp-t1.active { background: #c0564f; border-color: #c0564f; }

/* 홈 말씀 카드: 이번 주 주일설교 한 편 — 말씀 게시판 머리와 같은 남색 결 */
.bl-sermon-card { position: relative; overflow: hidden; margin-top: 4px; padding: 16px 16px 14px; border-radius: 18px; color: #fff;
    background: linear-gradient(135deg, #1d2f4f 0%, #253b61 52%, #3a5c90 100%);
    box-shadow: 0 10px 26px rgba(29, 47, 79, .28); }
.bl-sermon-card::after { content: ""; position: absolute; right: -46px; top: -62px; width: 170px; height: 170px; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.bl-sermon-card::before { content: ""; position: absolute; left: -48px; bottom: -86px; width: 190px; height: 190px; border-radius: 50%; background: rgba(223, 109, 114, .13); filter: blur(2px); }
.bl-sermon-card > * { position: relative; z-index: 1; }
.bl-sermon-meta { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: 999px; background: rgba(255, 255, 255, .16); font-size: 11.5px; font-weight: 800; color: #fff; letter-spacing: .01em; }
.bl-sermon-title { margin-top: 8px; font-size: 19px; font-weight: 900; color: #fff; line-height: 1.3; letter-spacing: -.01em; word-break: keep-all; }
.bl-sermon-preacher { margin-top: 4px; font-size: 12.5px; color: rgba(255, 255, 255, .72); }
.bl-sermon-btns { display: flex; gap: 8px; margin-top: 14px; }
.bl-sermon-btn { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 10px; border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .34); background: rgba(255, 255, 255, .12); color: #fff; font-size: 13.5px; font-weight: 800; text-decoration: none;
    transition: background-color .15s ease, transform .1s ease; }
.bl-sermon-btn:hover, .bl-sermon-btn:focus { background: rgba(255, 255, 255, .22); color: #fff; }
.bl-sermon-btn:active { transform: scale(.98); }
.bl-sermon-btn.is-primary { background: #fff; border-color: #fff; color: var(--bl-navy, #253b61); box-shadow: 0 4px 14px rgba(0, 0, 0, .14); }
.bl-sermon-btn.is-primary:hover, .bl-sermon-btn.is-primary:focus { background: #f2f5fb; color: var(--bl-navy, #253b61); }

/* 홈 「다가오는 모임」: 가장 중요한 카드 — 맨 위에서 크게 */
.bl-home-card:has(.bl-up-title) { box-shadow: 0 1px 3px rgba(20, 30, 50, .05); }
.bl-up-title { font-size: 15.5px; }
.bl-up-title i { color: var(--bl-coral, #df6d72); }
.bl-up-row { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 10px 12px; align-items: start; padding: 12px 4px; border-top: 1px solid rgba(37, 59, 97, .08); }
.bl-up-row:first-of-type { border-top: 0; }
.bl-up-row.is-next { margin: 0 -8px; padding: 12px 8px; border-radius: 14px; background: #fff; box-shadow: 0 4px 14px rgba(24, 34, 54, .08); border-top: 0; }
.bl-up-date { grid-row: span 2; align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; padding: 10px 4px; border-radius: 14px; background: #f1f4f9; }
.bl-up-row.is-next .bl-up-date { background: linear-gradient(160deg, #df6d72, #c9545b); color: #fff; }
.bl-up-date b { font-size: 17px; font-weight: 900; line-height: 1.1; color: var(--bl-navy, #253b61); letter-spacing: -.02em; }
.bl-up-row.is-next .bl-up-date b { color: #fff; }
.bl-up-date small { font-size: 11px; font-weight: 700; color: var(--bl-muted, #8b93a3); white-space: nowrap; }
.bl-up-row.is-next .bl-up-date small { color: rgba(255, 255, 255, .85); }
.bl-up-dday { margin-top: 3px; padding: 1px 7px; border-radius: 999px; background: #fff; font-size: 10.5px; font-weight: 900; color: var(--bl-muted, #8b93a3); }
.bl-up-dday.is-soon { background: #fff; color: var(--bl-coral-deep, #c9545b); }
.bl-up-row.is-next .bl-up-dday { background: rgba(255, 255, 255, .92); color: var(--bl-coral-deep, #c9545b); }
.bl-up-row .bl-up-date-text { display: none; }
.bl-up-row .bl-home-row-main { grid-column: 2; font-size: 15px; font-weight: 800; line-height: 1.35; }
.bl-up-row .bl-home-row-main .bl-home-go { font-size: 15px; font-weight: 800; }
.bl-up-row .bl-home-row-sub { grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.bl-up-row .bl-rsvp-btns { gap: 6px; }
.bl-up-row .bl-rsvp-btn { padding: 5px 14px; font-size: 13px; }
.bl-up-row .bl-proxy { grid-column: 1 / -1; }
@media (max-width: 480px) {
    .bl-up-row { grid-template-columns: 56px minmax(0, 1fr); gap: 8px 10px; }
    .bl-up-date b { font-size: 16px; }
}

/* 보고서 출석 칩: 사진 + 이름 (목자·부목자도 이름이 보이게) */
.bl-avatar-with-photo { gap: 6px; padding: 0 10px 0 3px; }
.bl-avatar-with-photo img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; }
.bl-avatar-with-photo b { font-weight: 700; }

/* 목장보고서 출석: 사람마다 예배(빨강) · 목장(파랑) 두 표시 */
.bl-att3 { margin-top: 10px; padding: 12px 12px 8px; border-radius: 16px; background: #f6f8fb; border: 1px solid rgba(37, 59, 97, .07); }
.bl-att3-head { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.bl-att3-sum { display: inline-flex; align-items: baseline; gap: 5px; padding: 5px 12px; border-radius: 999px; background: #fff; font-size: 12.5px; font-weight: 800; color: var(--bl-muted, #7b8598); box-shadow: 0 1px 3px rgba(24, 34, 54, .08); }
.bl-att3-sum b { font-size: 16px; font-weight: 900; }
.bl-att3-sum small { font-size: 11px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }
.bl-att3-sum.is-worship b, .bl-att3-sum.is-worship i { color: #c8555b; }
.bl-att3-sum.is-cell b, .bl-att3-sum.is-cell i { color: #2a5fb0; }
.bl-att3-list { display: flex; flex-direction: column; }
.bl-att3-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 2px; border-top: 1px solid rgba(37, 59, 97, .07); }
.bl-att3-row:first-child { border-top: 0; }
.bl-att3-row.is-absent { opacity: .62; }
.bl-att3-who { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.bl-att3-who img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.bl-att3-noimg { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #e6eaf1; color: #8b93a3; font-size: 11px; font-weight: 800; }
.bl-att3-who b { font-size: 13.5px; font-weight: 700; color: var(--bl-ink, #1c2433); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-att3-who small { font-size: 11px; font-weight: 700; color: var(--bl-muted, #9aa3b2); white-space: nowrap; }
.bl-att3-marks { display: inline-flex; gap: 5px; flex: 0 0 auto; }
.bl-att3-mark { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; padding: 3px 9px; border-radius: 999px; border: 1px dashed rgba(37, 59, 97, .22); background: #fff; color: #b9c0cc; font-style: normal; font-size: 11.5px; font-weight: 800; }
.bl-att3-mark.is-worship.on { border: 1px solid #c8555b; background: #c8555b; color: #fff; }
.bl-att3-mark.is-cell.on { border: 1px solid #2a5fb0; background: #2a5fb0; color: #fff; }

/* 출석 체크 표도 엘더·마을장은 위아래로 — 첫 칸을 좁혀 표 폭을 줄인다 */
.bl-att-tree td.bl-att-tree-village-cell .bl-chip-switch,
.bl-att-tree td.bl-att-tree-village-cell .bl-chip-plain,
.bl-att-tree td.bl-att-tree-village-cell .bl-att-none { display: flex; width: 100%; margin: 2px 0; justify-content: center; }
.bl-att-tree td.bl-att-tree-village-cell .bl-chip-switch { padding-right: 10px; }
.bl-att-tree:not(.bl-att-tree-one) tr.bl-att-tree-head th:first-child,
.bl-att-tree:not(.bl-att-tree-one) td.bl-att-tree-village-cell { width: 22%; }

/* 다가오는 모임 줄 아래 붙는 그 모임의 최근 출석 */
.bl-meet-mini { grid-column: 2; display: flex; align-items: center; gap: 10px; margin-top: 6px; padding: 7px 10px; border-radius: 12px; background: #fff; border: 1px solid var(--bl-line, #e6eaf1); border-left: 3px solid var(--bl-meet, #6687ad); text-decoration: none; }
.bl-meet-mini:hover { background: #f7f9fd; }
.bl-meet-mini-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; flex: 1 1 auto; min-width: 0; }
.bl-meet-mini-head b { font-size: 16px; font-weight: 900; color: var(--bl-meet, #6687ad); }
.bl-meet-mini-head small { font-size: 11.5px; font-weight: 700; color: var(--bl-muted, #8b93a3); }
.bl-meet-mini .bl-meet-bars { display: flex; align-items: flex-end; gap: 3px; height: 26px; flex: 0 0 auto; }
.bl-meet-mini .bl-meet-bar { width: 7px; min-height: 3px; border-radius: 3px; background: #dbe3ee; }
.bl-meet-mini .bl-meet-bar.is-last { background: var(--bl-meet, #6687ad); }

/* 다가오는 모임: 「참석하겠다」고 답한 사람 현황 */
.bl-rsvpbar { grid-column: 1 / -1; display: block; margin-top: 8px; padding: 9px 12px 10px; border-radius: 14px; background: #fff; border: 1px solid var(--bl-line, #e9edf4); text-decoration: none; }
.bl-rsvpbar:hover { background: #fbfcfe; }
.bl-rsvpbar-head { display: flex; align-items: baseline; gap: 4px; }
.bl-rsvpbar-head b { font-size: 19px; font-weight: 900; color: #2f7a3f; letter-spacing: -.02em; }
.bl-rsvpbar-head span { font-size: 12.5px; font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-rsvpbar-head small { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }
.bl-rsvpbar-track { display: flex; height: 8px; margin: 7px 0 6px; border-radius: 999px; overflow: hidden; background: #eceff5; }
.bl-rsvpbar-track i { display: block; height: 100%; }
.bl-rsvpbar-track .is-yes { background: #3fae5a; }
.bl-rsvpbar-track .is-maybe { background: #e0a020; }
.bl-rsvpbar-track .is-no { background: #d4726f; }
.bl-rsvpbar-legend { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.bl-rsvpbar-legend span { display: inline-flex; align-items: center; gap: 3px; padding: 1px 8px; border-radius: 999px; background: #f3f5f9; font-size: 11px; font-weight: 700; color: var(--bl-muted, #8b93a3); }
.bl-rsvpbar-legend .is-yes { background: #e8f6ec; color: #2f7a3f; }
.bl-rsvpbar-legend .is-maybe { background: #fff4e0; color: #a76a12; }
.bl-rsvpbar-legend .is-no { background: #fdeaea; color: #b4413d; }
.bl-rsvpbar-legend b { font-weight: 900; }
.bl-rsvpbar-legend .is-extra { background: #eef2fb; color: #3a5c90; }

/* 가장 가까운 모임: 한눈에 들어오게 */
.bl-up-row.is-next { position: relative; margin: 2px -10px 10px; padding: 26px 10px 12px; border-radius: 18px;
    background: linear-gradient(180deg, #fff 0%, #fff8f8 100%);
    box-shadow: 0 8px 22px rgba(223, 109, 114, .16); border: 1px solid rgba(223, 109, 114, .30); }
.bl-up-flag { position: absolute; top: -1px; left: 10px; display: inline-flex; align-items: center; gap: 5px;
    padding: 3px 12px 4px; border-radius: 0 0 12px 12px; background: var(--bl-coral, #df6d72); color: #fff;
    font-size: 11px; font-weight: 900; letter-spacing: .02em; box-shadow: 0 3px 10px rgba(223, 109, 114, .35); }
.bl-up-flag i { font-size: 10px; }
.bl-up-flag.is-today { background: linear-gradient(135deg, #c9545b, #df6d72); }
.bl-up-row.is-next .bl-home-row-main .bl-home-go { font-size: 16px; }
.bl-up-row.is-next .bl-up-date { box-shadow: 0 4px 12px rgba(201, 84, 91, .28); }
.bl-up-row.is-next .bl-rsvpbar { border-color: rgba(223, 109, 114, .25); }
.bl-up-row:not(.is-next) { opacity: .94; }

/* 모임 이름은 크게, 장소는 작게 한 줄 아래로 */
.bl-up-row .bl-home-row-main { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.bl-up-go { display: inline-flex; align-items: baseline; gap: 4px; text-decoration: none; }
.bl-up-name { font-size: 16px; font-weight: 900; color: var(--bl-navy, #253b61); letter-spacing: -.01em; line-height: 1.3; word-break: keep-all; }
.bl-up-go .fa-angle-right { font-size: 13px; color: var(--bl-muted, #9aa3b2); }
.bl-up-row.is-next .bl-up-name { font-size: 18px; }
.bl-up-place { flex: 1 1 100%; display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--bl-muted, #8b93a3); }
.bl-up-place .fa { font-size: 11px; opacity: .8; }
.bl-up-row .bl-home-row-main .bl-home-go { border-bottom: 0; }

/* 전체 출석: 「몇 명이 왔는지」가 먼저 읽히게 */
.bl-att4 { display: flex; flex-direction: column; gap: 8px; }
.bl-att4-row { padding: 11px 13px 12px; border-radius: 14px; background: #fff; border: 1px solid var(--bl-line, #e9edf4); }
.bl-att4-row.is-worship { background: linear-gradient(180deg, #fff 0%, #fdf4f4 100%); }
.bl-att4-row.is-cell { background: linear-gradient(180deg, #fff 0%, #f3f6fd 100%); }
.bl-att4-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bl-att4-k { font-size: 12.5px; font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-att4-num { display: flex; align-items: baseline; gap: 3px; margin: 4px 0 7px; }
.bl-att4-num b { font-size: 30px; font-weight: 900; line-height: 1; letter-spacing: -.03em; }
.bl-att4-num span { font-size: 13px; font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-att4-num em { margin-left: 6px; font-style: normal; font-size: 14px; font-weight: 900; }
.bl-att4-num small { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }
.bl-att4-row.is-worship .bl-att4-num b, .bl-att4-row.is-worship .bl-att4-num em { color: #c8555b; }
.bl-att4-row.is-cell .bl-att4-num b, .bl-att4-row.is-cell .bl-att4-num em { color: #2a5fb0; }
.bl-att4-track { height: 8px; border-radius: 999px; background: rgba(37, 59, 97, .09); overflow: hidden; }
.bl-att4-track i { display: block; height: 100%; border-radius: 999px; }
.bl-att4-row.is-worship .bl-att4-track i { background: linear-gradient(90deg, #d4726f, #c8555b); }
.bl-att4-row.is-cell .bl-att4-track i { background: linear-gradient(90deg, #6a93d8, #2a5fb0); }
.bl-att4-note { display: flex; align-items: center; gap: 6px; padding: 7px 11px; border-radius: 12px; background: #f3f5f9; font-size: 12px; font-weight: 700; color: var(--bl-muted, #8b93a3); }
.bl-att4-note b { color: var(--bl-ink, #1c2433); }
.bl-att4-row.is-stale { background: #f7f8fb; }
.bl-att4-row.is-stale .bl-att4-num b, .bl-att4-row.is-stale .bl-att4-num em { color: #9aa3b2 !important; }
.bl-att4-row.is-stale .bl-att4-track i { background: #ccd4e0 !important; }
.bl-att4-stale { padding: 2px 9px; border-radius: 999px; background: #eceff5; font-size: 11px; font-weight: 800; color: var(--bl-muted, #8b93a3); }
.bl-att4-note { line-height: 1.5; }

/* 이번 주 챙길 목원 */
.bl-care { margin-top: 10px; padding: 10px 12px 8px; border-radius: 14px; background: linear-gradient(180deg, #fff 0%, #fdf6f6 100%); border: 1px solid rgba(223, 109, 114, .22); }
.bl-care-title { font-size: 12.5px; font-weight: 800; color: var(--bl-coral-deep, #c9545b); margin-bottom: 4px; }
.bl-care-title b { margin-left: 2px; }
.bl-care-row { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 7px 2px; border-top: 1px solid rgba(201, 84, 91, .10); text-decoration: none; }
.bl-care-row:first-of-type { border-top: 0; }
.bl-care-row:hover { background: rgba(223, 109, 114, .05); border-radius: 10px; }
.bl-care-name { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-care-tag { padding: 1px 8px; border-radius: 999px; background: rgba(223, 109, 114, .14); color: var(--bl-coral-deep, #c9545b); font-size: 10.5px; font-weight: 800; }
.bl-care-why { grid-column: 1 / -1; font-size: 12px; color: var(--bl-muted, #8b93a3); line-height: 1.45; }
.bl-care-row .fa-angle-right { grid-row: 1; grid-column: 2; align-self: center; color: var(--bl-muted, #c2c9d4); }
.bl-care-title small { margin-left: 4px; font-size: 11px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }
.bl-care-where { padding: 1px 7px; border-radius: 999px; background: #eef1f6; color: var(--bl-muted, #8b93a3); font-size: 10.5px; font-weight: 700; }

/* 목원 관리 줄에서 바로 목원 페이지로 */
.bl-ms-row { position: relative; }
.bl-ms-note-link { position: absolute; top: 8px; right: 10px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; background: #eef1f6; color: var(--bl-navy, #253b61); font-size: 11.5px; font-weight: 800; text-decoration: none; }
.bl-ms-note-link:hover { background: var(--bl-navy, #253b61); color: #fff; }
.bl-memo-toolbar { display: flex; flex-wrap: wrap; gap: 6px; }

/* 큐티 순서 맨 위: 성경은 하나님의 계시 */
.bl-qt-scripture { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; padding: 12px 14px; border-radius: 12px; background: linear-gradient(180deg, #f3f6fd, #eef2fb); border: 1px solid #dbe4f5; font-size: 12.8px; line-height: 1.6; color: #35415c; }
.bl-qt-scripture b { font-size: 13.5px; font-weight: 800; color: var(--bl-navy, #253b61); }
.bl-qt-scripture span { position: relative; padding-left: 11px; }
.bl-qt-scripture span::before { content: ""; position: absolute; left: 0; top: 8px; width: 4px; height: 4px; border-radius: 50%; background: #9fb4dc; }

/* 이번 주 출석 체크 순위 (+ 마을 대항) */
.bl-rank-sub { font-size: 12px; font-weight: 700; color: var(--bl-muted, #8b93a3); margin: 2px 0 8px; }
.bl-rank-sub b { color: var(--bl-navy, #253b61); }
.bl-rank-empty { padding: 10px 12px; border-radius: 12px; background: #fff8e8; border: 1px solid #f3e4a6; font-size: 13px; color: #7a6417; }
.bl-rank-list { display: flex; flex-direction: column; }
.bl-rank-row, .bl-rank-vrow { display: flex; align-items: center; gap: 9px; padding: 7px 8px; border-radius: 10px; }
.bl-rank-row + .bl-rank-row { border-top: 1px solid rgba(37, 59, 97, .07); border-radius: 0; }
.bl-rank-row.is-top .bl-rank-name a { font-weight: 800; }
.bl-rank-row.is-mine, .bl-rank-vrow.is-mine { background: #eef4ff; box-shadow: inset 0 0 0 1px #cfe0ff; }
.bl-rank-no { flex: 0 0 26px; text-align: center; font-size: 15px; font-weight: 900; color: var(--bl-muted, #9aa3b2); }
.bl-rank-name { flex: 1 1 auto; min-width: 0; display: flex; align-items: baseline; gap: 6px; font-size: 13.5px; }
.bl-rank-name a { color: var(--bl-ink, #1c2433); font-weight: 700; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-rank-name small { font-size: 11px; color: var(--bl-muted, #9aa3b2); white-space: nowrap; }
.bl-rank-at { flex: 0 0 auto; font-size: 12px; font-weight: 800; color: var(--bl-navy, #253b61); font-variant-numeric: tabular-nums; }
.bl-rank-vill { margin-top: 12px; padding-top: 10px; border-top: 1px dashed rgba(37, 59, 97, .16); }
.bl-rank-vill-title { font-size: 12.5px; font-weight: 800; color: var(--bl-navy, #253b61); margin-bottom: 4px; }
.bl-rank-vill-title small { margin-left: 5px; font-size: 11px; font-weight: 600; color: var(--bl-muted, #9aa3b2); }
.bl-rank-bar { flex: 0 0 72px; height: 6px; border-radius: 999px; background: rgba(37, 59, 97, .12); overflow: hidden; }
.bl-rank-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #6a93d8, #2a5fb0); }
.bl-rank-more { display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; font-size: 12.5px; font-weight: 800; color: var(--bl-navy, #253b61); text-decoration: none; }
.bl-rank-at.is-plain { font-weight: 600; color: var(--bl-muted, #9aa3b2); }
.bl-rank-weeks { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.bl-rank-vill.is-only { margin-top: 0; padding-top: 0; border-top: 0; }
.bl-rank-at .bl-rank-done { display: block; margin-top: 1px; font-size: 10.5px; font-weight: 700; color: #3e7f22; text-align: right; }
.bl-rank-vrow .bl-rank-at { text-align: right; }

/* 마을별 출석 체크 순위 — 다듬은 디자인 */
.bl-rank-sub { display: inline-flex; align-items: baseline; gap: 4px; margin: 0 0 10px; padding: 4px 11px; border-radius: 999px; background: #f1f4f9; font-size: 12px; }
.bl-rank-vill.is-only { display: flex; flex-direction: column; gap: 5px; }
.bl-rank-vrow { display: grid; grid-template-columns: 30px minmax(0, 1fr) clamp(76px, 26%, 150px) 52px; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: #f8f9fc; border: 1px solid transparent; transition: transform .12s ease; }
.bl-rank-vrow.rank-1 { background: #fff8e1; border-color: #f2dd9a; }
.bl-rank-vrow.rank-2 { background: #f3f5f9; border-color: #d9dfe8; }
.bl-rank-vrow.rank-3 { background: #fbf1ea; border-color: #ecc9b3; }
.bl-rank-vrow.is-mine { border-color: #7ea3e6; box-shadow: 0 0 0 2px rgba(126, 163, 230, .25); }
.bl-rank-vrow.is-zero { opacity: .55; }
.bl-rank-vrow .bl-rank-no { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(24, 34, 54, .12); font-size: 13px; font-weight: 900; color: var(--bl-navy, #253b61); }
.bl-rank-vrow.rank-1 .bl-rank-no, .bl-rank-vrow.rank-2 .bl-rank-no, .bl-rank-vrow.rank-3 .bl-rank-no { font-size: 16px; }
.bl-rank-vrow .bl-rank-name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.bl-rank-vrow .bl-rank-name b { font-size: 13.5px; font-weight: 800; color: var(--bl-ink, #1c2433); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-rank-flag { display: inline-flex; align-items: center; width: fit-content; padding: 1px 7px; border-radius: 999px; background: #e8f6ec; color: #2f7a3f; font-style: normal; font-size: 10.5px; font-weight: 800; white-space: nowrap; }
.bl-rank-flag.is-me { background: #e6efff; color: #2a5fb0; }
.bl-rank-vrow .bl-rank-bar { flex: none; height: 8px; border-radius: 999px; background: rgba(37, 59, 97, .10); overflow: hidden; }
.bl-rank-vrow .bl-rank-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #8fb0e6, #2a5fb0); }
.bl-rank-vrow.is-done .bl-rank-bar i { background: linear-gradient(90deg, #6fcf8a, #2f8f47); }
.bl-rank-vrow .bl-rank-at { display: flex; align-items: baseline; justify-content: flex-end; gap: 1px; font-variant-numeric: tabular-nums; }
.bl-rank-vrow .bl-rank-at b { font-size: 16px; font-weight: 900; color: var(--bl-navy, #253b61); }
.bl-rank-vrow.is-done .bl-rank-at b { color: #2f8f47; }
.bl-rank-vrow .bl-rank-at small { font-size: 11px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }
.bl-rank-more { margin-top: 10px; }
@media (max-width: 480px) {
    .bl-rank-vrow { grid-template-columns: 26px minmax(0, 1fr) 64px 46px; gap: 8px; padding: 7px 8px; }
    .bl-rank-vrow .bl-rank-no { width: 26px; height: 26px; font-size: 12px; }
}

/* 전체 출석 타일: 응답률 줄 */
.bl-att4-cov { display: grid; grid-template-columns: auto minmax(60px, 1fr) auto; align-items: center; gap: 10px; margin-bottom: 10px; padding: 8px 12px; border-radius: 12px; background: #f1f4f9; font-size: 12px; color: var(--bl-muted, #7b8598); }
.bl-att4-cov.is-full { background: #e8f6ec; color: #2f7a3f; }
.bl-att4-cov-k { font-weight: 800; white-space: nowrap; color: var(--bl-navy, #253b61); }
.bl-att4-cov.is-full .bl-att4-cov-k { color: #2f7a3f; }
.bl-att4-cov-k b { font-size: 14px; margin-left: 2px; }
.bl-att4-cov-track { height: 6px; border-radius: 999px; background: rgba(37, 59, 97, .12); overflow: hidden; }
.bl-att4-cov-track i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #8fb0e6, #2a5fb0); }
.bl-att4-cov.is-full .bl-att4-cov-track i { background: linear-gradient(90deg, #6fcf8a, #2f8f47); }
.bl-att4-cov-v { white-space: nowrap; font-weight: 700; }
.bl-att4-num small { display: block; width: 100%; }
.bl-stat-delta small { font-weight: 600; opacity: .75; }
@media (max-width: 480px) { .bl-att4-cov { grid-template-columns: auto 1fr; } .bl-att4-cov-v { grid-column: 1 / -1; font-size: 11.5px; } }
/* 숫자가 좁은 화면에서 「15 / 0」처럼 쪼개지지 않게: 숫자 묶음은 한 줄, 설명은 다음 줄 */
.bl-att4-num { display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 2px; }
.bl-att4-num b, .bl-att4-num span, .bl-att4-num em { white-space: nowrap; }
.bl-att4-num small { flex: 0 0 100%; white-space: normal; line-height: 1.4; }

/* 큐티 3번 「오늘 내 사건」 상자: 글 시작선은 다른 항목과 맞추고, 배경만 양옆으로 살짝 넓힌다 */
.bl-qt .bl-sheet-view .bl-sheet-section-3 .bl-sheet-text { margin: 6px -12px 0; padding: 10px 12px 10px 42px; border-radius: 10px; background: #f3f7fc; }
@media (max-width: 576px) { .bl-qt .bl-sheet-view .bl-sheet-section-3 .bl-sheet-text { padding-left: 12px; } }

/* 큐티 3번 「생각나는 사건」: 5번과 같은 카드 모양 (파란 톤) — 안쪽 글 상자는 없앤다 */
.bl-qt .bl-sheet-view .bl-sheet-section-3 { background: linear-gradient(135deg, #eef4fd, #fbfcff) !important; border: 1px solid #cfdcf3; border-radius: 14px; padding: 12px 14px; margin: 10px 0; }
.bl-qt .bl-sheet-view .bl-sheet-section-3 + .bl-sheet-section { border-top: 0; }
.bl-qt .bl-sheet-view .bl-sheet-section-3 .bl-label { color: #22467f; }
.bl-qt .bl-sheet-view .bl-sheet-section-3 .bl-sheet-no { background: #4a7bd0; }
.bl-qt .bl-sheet-view .bl-sheet-section-3 .bl-sheet-text { margin: 0; padding: 0 0 0 30px; border-radius: 0; background: transparent; color: #24314d; }
@media (max-width: 576px) { .bl-qt .bl-sheet-view .bl-sheet-section-3 .bl-sheet-text { padding-left: 0; } }

/* 통계 · 또래별 표: 단위는 머리글에만 */
.bl-an-peer { display: flex; flex-direction: column; gap: 4px; }
.bl-an-peer-row { display: grid; grid-template-columns: 40px 40px 48px minmax(0, 1fr) 36px; align-items: center; gap: 8px; font-size: 13px; font-variant-numeric: tabular-nums; }
.bl-an-peer-row.is-head { font-size: 11px; font-weight: 800; color: var(--bl-muted, #8b93a3); padding-bottom: 2px; border-bottom: 1px solid var(--bl-line, #e6eaf1); margin-bottom: 2px; }
.bl-an-peer-row.is-head span:nth-child(4) { grid-column: 4 / 6; }
.bl-an-peer-row > span:nth-child(2), .bl-an-peer-row > span:nth-child(3), .bl-an-peer-row > span:nth-child(5) { text-align: right; }
.bl-an-peer-row .bl-an-peer-k { font-weight: 800; color: var(--bl-ink, #1c2433); }
.bl-an-peer-row .bl-an-peer-n { font-weight: 800; color: var(--bl-navy, #253b61); }
.bl-an-peer-row .bl-an-hbar-b { height: 10px; border-radius: 999px; background: #eef1f5; overflow: hidden; }
.bl-an-peer-row .bl-an-hbar-b i { display: block; height: 100%; border-radius: 999px; background: var(--bl-navy, #253b61); }
.bl-an-peer-row { grid-template-columns: 34px 40px 46px minmax(0, 1fr) 34px; }
.bl-an-peer-row.is-head > span:nth-child(2), .bl-an-peer-row.is-head > span:nth-child(3) { text-align: right; }
.bl-an-peer-row.is-head > span:nth-child(4) { padding-left: 4px; }

/* 또래별 표: 칸 폭을 내용(가장 긴 숫자)에 딱 맞춘다 — 표 전체가 한 그리드라 줄끼리 세로가 맞는다 */
.bl-an-peer { display: grid; grid-template-columns: max-content max-content max-content minmax(0, 1fr) max-content; column-gap: 10px; row-gap: 6px; align-items: center; }
.bl-an-peer-row, .bl-an-peer-row.is-head { display: contents; }
.bl-an-peer-row > span { font-size: 13px; font-variant-numeric: tabular-nums; }
.bl-an-peer-row > span:nth-child(2), .bl-an-peer-row > span:nth-child(3), .bl-an-peer-row > span:nth-child(5) { text-align: right; }
.bl-an-peer-row.is-head > span { font-size: 11px; font-weight: 800; color: var(--bl-muted, #8b93a3); padding-bottom: 3px; border-bottom: 1px solid var(--bl-line, #e6eaf1); }
.bl-an-peer-row.is-head > span:nth-child(4) { grid-column: 4 / 6; padding-left: 4px; text-align: left; }

/* 가로 막대 목록: 오른쪽 숫자(221 39% · 252명)는 한 줄로, 칸은 내용만큼 */
.bl-an-hbar { grid-template-columns: 90px minmax(0, 1fr) max-content; }
.bl-an-hbar-n { white-space: nowrap; font-variant-numeric: tabular-nums; }
.bl-an-hbar-n small { margin-left: 3px; }

/* 마을 순위 카드 탭 + 출석률 순위 */
.bl-rank-tabs { display: inline-flex; gap: 4px; margin: 2px 0 10px; padding: 3px; border-radius: 999px; background: #eef1f6; }
.bl-rank-tab { border: 0; background: transparent; padding: 5px 14px; border-radius: 999px; font-size: 12.5px; font-weight: 800; color: var(--bl-muted, #7b8598); cursor: pointer; }
.bl-rank-tab.active { background: #fff; color: var(--bl-navy, #253b61); box-shadow: 0 1px 3px rgba(24, 34, 54, .12); }
.bl-vr-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; font-size: 11.5px; font-weight: 700; }
.bl-vr-legend .is-worship { color: #c8555b; } .bl-vr-legend .is-cell { color: #2a5fb0; }
.bl-vr { display: flex; flex-direction: column; gap: 5px; }
.bl-vr-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) 46px; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: #f8f9fc; border: 1px solid transparent; }
.bl-vr-row.medal-1 { background: linear-gradient(90deg, #fff6d6, #fffbea); border-color: #f2dd9a; }
.bl-vr-row.medal-2 { background: linear-gradient(90deg, #eef1f6, #f6f8fb); border-color: #d9dfe8; }
.bl-vr-row.medal-3 { background: linear-gradient(90deg, #fbeadf, #fdf4ee); border-color: #ecc9b3; }
.bl-vr-row.is-mine { border-color: #7ea3e6; box-shadow: 0 0 0 2px rgba(126, 163, 230, .25); }
.bl-vr-row.is-zero { opacity: .55; }
.bl-vr-row .bl-rank-no { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(24, 34, 54, .12); font-size: 13px; font-weight: 900; color: var(--bl-navy, #253b61); }
.bl-vr-row.medal-1 .bl-rank-no, .bl-vr-row.medal-2 .bl-rank-no, .bl-vr-row.medal-3 .bl-rank-no { font-size: 16px; }
.bl-vr-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.bl-vr-name { display: flex; align-items: center; gap: 6px; min-width: 0; }
.bl-vr-name b { font-size: 13.5px; font-weight: 800; color: var(--bl-ink, #1c2433); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bl-rank-flag.is-partial { background: #fff1e6; color: #b5601c; }
.bl-vr-bars { display: flex; flex-direction: column; gap: 3px; }
.bl-vr-bar { position: relative; height: 9px; border-radius: 999px; background: rgba(37, 59, 97, .10); overflow: visible; }
.bl-vr-bar i { display: block; height: 100%; border-radius: 999px; }
.bl-vr-bar.is-worship i { background: linear-gradient(90deg, #e6a0a3, #c8555b); }
.bl-vr-bar.is-cell i { background: linear-gradient(90deg, #8fb0e6, #2a5fb0); }
.bl-vr-bar small { position: absolute; right: 0; top: -4px; transform: translateX(calc(100% + 6px)); font-size: 10.5px; font-weight: 800; color: var(--bl-muted, #7b8598); }
.bl-vr-bars { padding-right: 34px; }
.bl-vr-none { font-size: 11.5px; color: var(--bl-muted, #9aa3b2); }
.bl-vr-avg { display: flex; align-items: baseline; justify-content: flex-end; gap: 1px; font-variant-numeric: tabular-nums; }
.bl-vr-avg b { font-size: 17px; font-weight: 900; color: var(--bl-navy, #253b61); }
.bl-vr-avg small { font-size: 11px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }


/* ── BELOVED 큐티 용지 (quritan.com 과 같은 포맷) ───────────────── */
.bl-bv { --bv-god: #3e6b99; --bv-god-soft: #eaf0f7; --bv-christ: #b8722c; --bv-christ-soft: #fbf1e4; --bv-me: #5b6b3f; --bv-me-soft: #eef2e6; --bv-line: #d8d3c6; --bv-paper: #f6f3ec; --bv-ink: #1e2a3a; --bv-muted: #66708a; --bv-pray-soft: #fffbea; --bv-pray-line: #efdf9c; --bv-pray-ink: #6b5a12; }
.bl-bv-view { --bv-god: #3e6b99; --bv-god-soft: #eaf0f7; --bv-christ: #b8722c; --bv-christ-soft: #fbf1e4; --bv-me: #5b6b3f; --bv-me-soft: #eef2e6; --bv-line: #d8d3c6; --bv-paper: #f6f3ec; --bv-ink: #1e2a3a; --bv-muted: #66708a; }
.bl-bv .bl-sheet-title { align-items: flex-start; }
.bl-bv .bl-sheet-title strong { font-size: 20px; }
.bl-bv-letters { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.bl-bv-lt { display: inline-flex; flex-direction: column; align-items: center; min-width: 58px; padding: 4px 6px; border-radius: 9px; border: 1px solid var(--bv-line); background: #fff; }
.bl-bv-lt b { font-family: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif; font-size: 16px; line-height: 1; }
.bl-bv-lt span { font-size: 10px; color: var(--bv-muted); margin-top: 2px; white-space: nowrap; }
.bl-bv-lt-god b { color: var(--bv-god); } .bl-bv-lt-me b { color: var(--bv-me); } .bl-bv-lt-christ b { color: var(--bv-christ); }
.bl-bv-sep { color: var(--bv-line); font-size: 16px; }
.bl-bv-topbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 8px 12px; border: 1px solid var(--bv-line); border-radius: 12px; background: #fff; margin-bottom: 10px; font-size: 13px; }
.bl-bv-topbar .bl-seg-item { cursor: pointer; border: 0; background: transparent; }
.bl-bv-topbar .bl-seg-item.active { background: var(--bv-ink); color: #fff; }
.bl-bv-genre { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 700; color: var(--bv-muted); font-size: 12.5px; }
.bl-bv-genre .form-group { margin: 0; }
.bl-bv-genre .form-select { border-radius: 8px; font-size: 13px; min-width: 190px; }
.bl-bv-draft { margin-left: auto; font-size: 12px; }
.bl-bv-passage { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 10px 14px; border: 1px solid var(--bv-line); border-radius: 12px; background: #fff; margin-bottom: 10px; }
.bl-bv-passage .bl-bv-ref { font-family: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif; font-size: 17px; }
.bl-bv-passage:not(.has-schedule) .bl-bv-ref, .bl-bv-passage:not(.has-schedule) .bl-bv-ptitle, .bl-bv-passage:not(.has-schedule) .bl-bv-hymn { display: none; }
.bl-bv-passage .bl-bv-ref-input { flex-basis: 100%; }
.bl-bv-passage .bl-bv-ref-input .form-group { margin: 0; }
.bl-bv-passage .bl-bv-pnote { flex-basis: 100%; font-size: 12px; }
.bl-bv-genre-chip { background: var(--bv-god-soft); color: var(--bv-god); }
.bl-sheet-illumination { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; background: var(--bv-pray-soft, #fffbea); border: 1px solid var(--bv-pray-line, #efdf9c); color: var(--bv-pray-ink, #6b5a12); font-size: 13.5px; margin-bottom: 10px; }
.bl-sheet-illumination b { white-space: nowrap; }
.bl-bv-text { border: 1px solid var(--bv-line); border-radius: 12px; background: #fff; margin-bottom: 12px; }
.bl-bv-text summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 10px 14px; font-size: 13.5px; }
.bl-bv-text summary::-webkit-details-marker { display: none; }
.bl-bv-text summary .fa { color: var(--bv-god); }
.bl-bv-text-toggle { margin-left: auto; font-size: 11.5px; }
.bl-bv-verses { border-top: 1px solid var(--bv-line); padding: 12px 16px; display: grid; gap: 4px; font-size: 15px; line-height: 1.85; }
.bl-bv-vh { margin: 6px 0 0; font-size: 12.5px; font-weight: 800; color: var(--bv-christ); letter-spacing: .02em; }
.bl-bv-v { margin: 0; display: grid; grid-template-columns: 2.2em 1fr; gap: 6px; align-items: baseline; }
.bl-bv-v sup, .bl-bv-v .bl-bv-vn { position: static; top: auto; line-height: inherit; vertical-align: baseline; font-size: 11px; font-weight: 800; color: var(--bv-muted); text-align: right; padding-right: 2px; }
.bl-bv-after { padding: 0 16px 10px; font-size: 12px; margin: 0; }
.bl-bv-movement { display: flex; align-items: center; gap: 10px; margin: 14px 0 8px; }
.bl-bv-movement b { font-family: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif; font-size: 15px; letter-spacing: .04em; color: var(--bv-ink); }
.bl-bv-movement span { font-size: 12.5px; color: var(--bv-muted); }
.bl-bv-movement hr { flex: 1; margin: 0; border: 0; border-top: 1px solid var(--bv-line); }
.bl-bv-box { border: 1px solid var(--bv-line); border-radius: 14px; padding: 14px 16px 12px; background: #fff; display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.bl-bv-box-god { background: var(--bv-god-soft); border-color: #b9cde6; }
.bl-bv-box-christ { background: var(--bv-christ-soft); border-color: #ead4b6; }
.bl-bv-box-me { background: var(--bv-me-soft); border-color: #cbd5b8; }
.bl-bv-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bl-bv-head b { font-family: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif; font-size: 16px; color: var(--bv-ink); }
.bl-bv-head small { font-size: 11.5px; color: var(--bv-muted); }
.bl-bv-letter { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 8px; font-family: "Noto Serif KR", "Nanum Myeongjo", Georgia, serif; font-size: 16px; font-weight: 800; color: #fff; background: var(--bv-ink); flex: 0 0 auto; }
.bl-bv-letter-god { background: var(--bv-god); } .bl-bv-letter-christ { background: var(--bv-christ); } .bl-bv-letter-me { background: var(--bv-me); } .bl-bv-letter-muted { background: #9aa3b8; }
.bl-bv-dir { margin-left: auto; font-size: 11px; font-weight: 700; letter-spacing: .03em; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--bv-line); background: #fff; color: var(--bv-muted); }
.bl-bv-dir-god { color: var(--bv-god); } .bl-bv-dir-christ { color: var(--bv-christ); } .bl-bv-dir-me { color: var(--bv-me); }
.bl-bv-hint { margin: 0; font-size: 13px; color: var(--bv-muted); line-height: 1.55; }
.bl-bv-hint-lead { color: var(--bv-ink); font-weight: 600; }
.bl-bv .form-group { margin: 0; }
.bl-bv .bl-sheet-lines { background-color: transparent !important; }
.bl-bv-kind .bl-seg-item { border: 0; background: transparent; cursor: pointer; }
.bl-bv-kind .bl-seg-item.active { background: var(--bv-ink); color: #fff; }
.bl-bv-ways { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.bl-bv-ways li { padding: 8px 10px; border-radius: 8px; background: #fff; border: 1px solid var(--bv-line); font-size: 12.5px; line-height: 1.5; }
.bl-bv-ways li b { color: var(--bv-christ); }
.bl-bv-supp { border: 1px solid #ead4b6; border-radius: 10px; background: var(--bv-christ-soft); padding: 8px 12px; font-size: 13px; display: grid; gap: 4px; }
.bl-bv-supp p { margin: 0; }
.bl-bv-supp b { color: var(--bv-christ); }
.bl-bv-supp-quote { font-style: italic; color: #5b6480; }
.bl-bv-supp-fill { justify-self: start; border-color: var(--bv-christ) !important; color: var(--bv-christ) !important; }
.bl-bv-supp-fill:hover { background: var(--bv-christ) !important; color: #fff !important; }
.bl-qt-guard-hard { background: #fdecec; border-color: #f1b8b8; color: #8a2a2a; }
.bl-qt-guard-hard .fa { color: #c94d55; }
/* 스트림 표시 */
.bl-bv-view .bl-bv-sheet { display: grid; gap: 0; }
.bl-bv-view .bl-bv-box { gap: 6px; padding: 12px 14px 10px; }
.bl-bv-view .bl-sheet-text { white-space: normal; }
.bl-chip-genre { background: var(--bv-god-soft, #eaf0f7); color: var(--bv-god, #3e6b99); }
.bl-chip-kind-sin { background: #eef2e6; color: #5b6b3f; align-self: flex-start; } .bl-chip-kind-grace { background: #e6f2ea; color: #2e7d4f; align-self: flex-start; }
.bl-bv-supp-view { margin-top: 2px; padding: 8px 10px; border-radius: 8px; background: #fff; border: 1px solid var(--bv-line); font-size: 13px; color: #4a5568; }
.bl-bv-supp-view b { color: var(--bv-christ); margin-right: 4px; }
.bl-bv-supp-view.is-default { font-style: italic; }
.bl-bv-guide { margin-top: 10px; border: 1px solid var(--bv-line); border-radius: 14px; padding: 12px 14px; background: #fff; display: grid; gap: 6px; }
.bl-bv-guide-lines { margin: 0; padding-left: 20px; display: grid; gap: 4px; font-size: 13.5px; line-height: 1.6; }
.bl-bv-locked { margin: 0; padding: 8px 10px; border: 1px dashed var(--bv-line); border-radius: 8px; font-size: 13px; color: var(--bv-muted); }
.bl-bv-steps-mv { margin-top: 6px; }
.bl-bv-steps .bl-sheet-no { width: 22px; height: 22px; font-size: 12px; font-family: "Noto Serif KR", Georgia, serif; }
@media (max-width: 767px) { .bl-bv-topbar { gap: 8px; } .bl-bv-draft { display: none; } .bl-bv-genre .form-select { min-width: 0; } .bl-bv-lt { min-width: 50px; } }

/* 다섯 칸 용지 (2026-10-12): 설명은 카드마다 「어떻게?」로만, 질문 1·2가 묵상 카드에 따라붙고, 아래 진행 띠 */
.bl-qt5 .bl-bv-hint { display: none; }
.bl-qt5 .bl-bv-box.is-open .bl-bv-hint { display: block; }
.bl-qt5 .bl-bv-box-toggle { display: inline-flex; }
.bl-qt5 .bl-bv-head b { font-size: 17px; }
.bl-qt5-done { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; background: #e6f2ea; color: #2e7d4f; font-size: 11.5px; font-weight: 700; }
.bl-qt5-label { display: block; margin: 2px 0 0; font-size: 12.5px; font-weight: 700; color: var(--bv-muted); }
.bl-qt5 .form-control { font-size: 15px; }
.bl-qt5-answer { display: grid; gap: 8px; padding: 10px 12px 12px; border-radius: 12px; background: #fff; border: 1px solid var(--bv-line); }
.bl-qt5-answer-q { display: flex; gap: 8px; align-items: baseline; font-size: 13.5px; line-height: 1.5; }
.bl-qt5-answer-q b { flex: none; padding: 1px 8px; border-radius: 999px; background: var(--bv-ink); color: #fff; font-size: 11.5px; }
.bl-qt5-answer-q span { font-weight: 600; color: var(--bv-ink); }
.bl-qt5-row { display: grid; gap: 4px; }
.bl-qt5-row-head { display: flex; align-items: baseline; gap: 8px; }
.bl-qt5-row-head small { font-size: 12.5px; }
.bl-qt5-chip-god { background: var(--bv-god-soft); color: var(--bv-god); } .bl-qt5-chip-me { background: var(--bv-me-soft); color: var(--bv-me); } .bl-qt5-chip-christ { background: var(--bv-christ-soft); color: var(--bv-christ); }
.bl-qt5-examples { display: grid; gap: 4px; padding: 8px 10px; border-radius: 8px; background: #f8f9fc; border: 1px solid var(--bv-line); }
.bl-qt5-steps { position: sticky; bottom: 10px; z-index: 20; display: flex; gap: 4px; justify-content: center; margin: 4px auto 0; width: max-content; max-width: 100%; padding: 6px; border-radius: 999px; background: rgba(255,255,255,.94); border: 1px solid var(--bv-line); box-shadow: 0 6px 20px rgba(0,0,0,.08); backdrop-filter: blur(6px); }
.bl-qt5-step { display: inline-flex; align-items: center; gap: 5px; padding: 5px 11px 5px 6px; border: 0; border-radius: 999px; background: transparent; color: var(--bv-muted); font-size: 12.5px; font-weight: 700; cursor: pointer; }
.bl-qt5-step:hover { background: #eef2f7; color: var(--bv-ink); }
.bl-qt5-step-no { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 999px; background: #eef2f7; color: var(--bv-muted); font-size: 11.5px; }
.bl-qt5-step.is-done { color: var(--bv-ink); }
.bl-qt5-step.is-done .bl-qt5-step-no { background: #2e7d4f; color: #fff; }
@media (max-width: 480px) { .bl-qt5-step { padding: 5px 7px 5px 5px; font-size: 12px; } .bl-qt5-steps { gap: 2px; } }
/* 보기 */
.bl-qt5-view .bl-qt5-answer { margin-top: 2px; }
.bl-qt5-view .bl-qt5-row { grid-template-columns: auto 1fr; align-items: start; gap: 8px; }
.bl-qt5-view .bl-qt5-row .bl-chip { align-self: start; }
.bl-qt5-qlist { margin: 0; padding-left: 22px; display: grid; gap: 4px; font-weight: 600; }
.bl-qt5-supp { padding: 8px 10px; border-radius: 8px; background: #fff; border: 1px solid var(--bv-line); font-size: 13.5px; }
.bl-qt5-supp b { color: var(--bv-me); margin-right: 4px; }
.bl-qt5-list { padding-left: 0; list-style: none; display: grid; gap: 6px; }
.bl-qt5-list-note { font-size: 12.5px; line-height: 1.5; }
/* 일곱 칸 용지 (2026-11-02 v12): 질문 「＋ 왜 하나님은」, 적용 아래 성령님 간구 토글 */
.bl-qt-chip { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; border: 1px dashed var(--bv-me); color: var(--bv-me); background: transparent; border-radius: 999px; padding: 4px 12px; font-size: 13px; font-weight: 600; cursor: pointer; }
.bl-qt-chip[aria-pressed="true"] { border-style: solid; background: #fff; font-weight: 700; }
.bl-qt-chip-god { border-color: var(--bv-god); color: var(--bv-god); }
.bl-qt-supp-custom { font-size: 12.5px; }
.bl-qt-legacy { gap: 6px; font-size: 13.5px; }
@media (max-width: 600px) { .bl-qt5-step-name { display: none; } .bl-qt5-step { padding: 4px; } }

/* 안내문 접기: 한 번 끄면 기억. 꺼진 상태에서 칸의 글자를 누르면 그 칸만 펼침 */
.bl-bv.hints-off .bl-bv-hint { display: none; }
.bl-bv.hints-off .bl-bv-box.is-open .bl-bv-hint { display: block; }
.bl-bv.hints-off .bl-bv-box.is-open .bl-bv-hint-inline { display: inline; }
.bl-bv-box-toggle { display: none; align-items: center; gap: 3px; border: 1px solid var(--bv-line); background: #fff; border-radius: 999px; padding: 1px 8px; font-size: 11.5px; font-weight: 700; color: var(--bv-muted); cursor: pointer; }
.bl-bv.hints-off .bl-bv-box-toggle { display: inline-flex; }
.bl-bv-hints-toggle { border: 1px solid var(--bv-line); background: #fff; cursor: pointer; color: var(--bv-muted); }
.bl-bv-hints-toggle[aria-pressed="true"] { background: var(--bv-ink); color: #fff; border-color: var(--bv-ink); }

/* 목장모임 없음 (연휴·방학 등) */
.bl-checkin-off { display: flex; gap: 8px; align-items: flex-start; background: #fff7e6; border: 1px solid #f2d9a6; border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; font-weight: 600; cursor: pointer; }
.bl-checkin-off input { margin-top: 3px; }
.bl-checkin-off small { color: var(--bl-muted, #8b93a3); font-weight: 500; }
.bl-checkin-form.is-off .bl-toggle-cell { opacity: .35; pointer-events: none; }
.bl-attendee-list.is-off .bl-toggle-cell { opacity: .35; pointer-events: none; }
.bl-att-guard:empty { display: none; }
.bl-att-guard { margin: -4px 0 10px; padding: 8px 12px; border-radius: 8px; background: #fdecec; color: #b3261e; font-weight: 600; font-size: 13px; }
.bl-att3-sum.is-cell.is-off { color: #b7791f; }
.bl-att3-mark.is-cell.is-na { opacity: .35; text-decoration: line-through; }
.bl-attendance-table th.is-off { background: #fff7e6; }
.bl-wk-off { display: block; font-size: 10px; color: #b7791f; font-style: normal; }
.bl-att4-row.is-off .bl-att4-num b { color: var(--bl-muted, #9aa3b2); }
.bl-att4-off { padding: 2px 9px; border-radius: 999px; background: #fff7e6; border: 1px solid #f2d9a6; font-size: 11px; font-weight: 800; color: #b7791f; }
.bl-vr-bar.is-off { background: #fff7e6; }
.bl-cn-help { font-size: 13px; margin-bottom: 10px; }
.bl-cn-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.bl-cn-chip { padding: 4px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; background: #eef2f7; color: #4b5563; text-decoration: none; }
.bl-cn-chip.active, .bl-cn-chip:hover { background: var(--bl-navy, #253b61); color: #fff; text-decoration: none; }
.bl-cn-empty { padding: 18px 14px; border-radius: 12px; background: #f6f7fa; color: #6b7280; font-size: 13.5px; }
.bl-cn-week { margin-bottom: 18px; }
.bl-cn-week-title { font-size: 15px; font-weight: 800; margin: 0 0 8px; color: var(--bl-ink, #1c2433); }
.bl-cn-week-title small { font-weight: 600; color: #7b8598; font-size: 12px; margin-left: 4px; }
.bl-cn-week.is-this .bl-cn-week-title .fa { color: var(--bl-coral-deep, #c8555b); }
.bl-cn-village { margin: 0 0 10px; padding: 10px 12px; border: 1px solid #e6e9f0; border-radius: 12px; background: #fff; }
.bl-cn-village-name { font-weight: 800; font-size: 13px; color: var(--bl-navy, #253b61); margin-bottom: 6px; }
.bl-cn-village-name small { font-weight: 600; color: #7b8598; margin-left: 6px; }
.bl-cn-item { display: block; padding: 10px 12px; border-radius: 10px; background: #f8f9fc; margin-bottom: 6px; color: inherit; text-decoration: none; }
.bl-cn-item:hover { background: #eef2f7; color: inherit; text-decoration: none; }
.bl-cn-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13px; margin-bottom: 4px; }
.bl-cn-item-head .fa-angle-right { margin-left: auto; color: #9aa3b2; }
.bl-cn-leader { color: #4b5563; font-weight: 600; }
.bl-cn-meta { color: #8b93a3; font-size: 12px; }
.bl-cn-note { font-size: 14px; line-height: 1.55; }
.bl-cn-note p:last-child { margin-bottom: 0; }
.bl-rest { display: flex; flex-direction: column; gap: 10px; }
.bl-rest-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bl-rest-form select, .bl-rest-form input { max-width: 220px; }
.bl-rest-now { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.bl-rest-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #eef2f7; color: #4b5563; }
.bl-rest-chip.is-off { background: #fff7e6; color: #b7791f; border: 1px solid #f2d9a6; }
.bl-rest-chip.is-auto { background: #f3f4f6; color: #6b7280; border: 1px dashed #d1d5db; }
.bl-rest-list { display: flex; flex-wrap: wrap; gap: 6px; }
.bl-rest-help { color: var(--bl-muted, #8b93a3); font-size: 12.5px; }
.bl-vr-bar.is-off small { transform: none; position: static; display: block; line-height: 9px; font-size: 9.5px; color: #b7791f; padding-left: 6px; }
.bl-bv-lo-link { display: flex; align-items: center; justify-content: center; gap: 10px; margin: -4px 0 6px; font-size: 12.5px; font-weight: 700; color: var(--bv-me); }
.bl-bv-lo-link span { color: var(--bv-line); font-size: 16px; line-height: 1; }

/* 큐티 단계 영어 글자 칩 (BLESSING) */
.bl-bv-en { display: inline-flex; align-items: center; gap: 3px; padding: 1px 8px; border-radius: 999px; border: 1px solid rgba(37,59,97,.18); font-size: 11px; font-weight: 600; color: var(--bl-muted); letter-spacing: .02em; white-space: nowrap; }
.bl-bv-en b { font-weight: 800; }
.bl-bv-en-god { color: #3E6B99; border-color: rgba(62,107,153,.4); }
.bl-bv-en-christ { color: #B8722C; border-color: rgba(184,114,44,.4); }
.bl-bv-en-me { color: #5B6B3F; border-color: rgba(91,107,63,.4); }

/* 목장모임 보고서 — 오직 주일보고 칸 순서 (bl-rp-*) */
.bl-rp-sec { margin: 0 0 14px; padding: 12px 12px 2px; border: 1px solid var(--bl-line); border-radius: 12px; background: #fff; }
.bl-rp-sec-att { padding: 0; border: 0; background: none; }
.bl-rp-sec-att .bl-attendee-list { margin-bottom: 0 !important; }
.bl-rp-h { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-weight: 800; font-size: 14px; color: var(--bl-navy); margin-bottom: 8px; }
.bl-rp-h small { font-weight: 500; font-size: 12px; color: var(--bl-muted); }
.bl-rp-no { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: var(--bl-navy); color: #fff; font-size: 11px; font-weight: 800; flex: 0 0 auto; }
.bl-rp-people { display: grid; grid-template-columns: 1fr; gap: 0 10px; }
@media (min-width: 576px) { .bl-rp-people { grid-template-columns: repeat(3, 1fr); } }
.bl-rp-people .form-label { font-size: 12.5px; font-weight: 700; margin-bottom: 2px; }
.bl-rp-people .mb-3 { margin-bottom: 10px !important; }
.bl-rp-absent-n { color: var(--bl-coral-deep); }
.bl-rp-absent-off { display: none; font-weight: 600; font-size: 12px; color: #b7791f; }
.bl-rp-absent.is-off .bl-rp-absent-off { display: inline; }
.bl-rp-absent.is-off .bl-rp-absent-chips, .bl-rp-absent.is-off .bl-rp-hint { opacity: .5; }
.bl-rp-absent-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 6px; }
.bl-rp-absent-none { font-size: 12.5px; color: var(--bl-muted); }
.bl-rp-chip { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: rgba(223, 109, 114, .12); color: var(--bl-coral-deep); line-height: 1.6; }
.bl-rp-chip.is-new { background: rgba(102, 135, 173, .14); color: var(--bl-navy); }
.bl-rp-hint { font-size: 12px; color: var(--bl-muted); margin-bottom: 8px; }
.bl-rp-pr-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.bl-rp-pr-row { display: grid; grid-template-columns: 1fr auto auto; grid-template-areas: "name urgent del" "text text text"; gap: 6px; padding: 8px; border-radius: 10px; background: var(--bl-paper); }
.bl-rp-pr-name { grid-area: name; }
.bl-rp-pr-text { grid-area: text; }
.bl-rp-pr-urgent { grid-area: urgent; margin: 0; cursor: pointer; display: inline-flex; align-items: center; }
.bl-rp-pr-urgent input { position: absolute; opacity: 0; pointer-events: none; }
.bl-rp-pr-urgent span { display: inline-flex; align-items: center; height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--bl-line); background: #fff; font-size: 12.5px; font-weight: 700; color: var(--bl-muted); }
.bl-rp-pr-urgent input:focus-visible + span { outline: 2px solid var(--bl-blue); outline-offset: 1px; }
.bl-rp-pr-row.is-urgent { background: rgba(223, 109, 114, .10); }
.bl-rp-pr-row.is-urgent .bl-rp-pr-urgent span { background: var(--bl-coral); border-color: var(--bl-coral); color: #fff; }
.bl-rp-pr-del { grid-area: del; width: 34px; height: 34px; border: 0; border-radius: 50%; background: transparent; color: var(--bl-muted); font-size: 14px; line-height: 1; }
.bl-rp-pr-del:hover { background: #e6eaf1; color: var(--bl-ink); }
@media (min-width: 576px) {
    .bl-rp-pr-row { grid-template-columns: 9em 1fr auto auto; grid-template-areas: "name text urgent del"; }
}
.bl-rp-pr-add { margin-bottom: 12px; }
.bl-rp-sub .form-label { font-size: 12.5px; font-weight: 700; color: var(--bl-muted); }
.bl-rp-church { background: rgba(240, 169, 59, .06); border-color: #f2d9a6; }
.bl-rp-share { background: var(--bl-paper); }
/* 스트림 카드 */
.bl-rp-v-people { display: flex; flex-direction: column; gap: 4px; }
.bl-rp-v-line { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.bl-rp-v-k { font-size: 12px; font-weight: 800; color: var(--bl-muted); min-width: 4.2em; }
.bl-rp-v-text { font-size: 14px; line-height: 1.55; white-space: normal; }
.bl-rp-v-prayers { list-style: none; margin: 0 0 6px; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.bl-rp-v-prayers li { font-size: 14px; line-height: 1.5; }
.bl-rp-v-prayers li b { margin-right: 6px; }
.bl-rp-urgent { display: inline-block; padding: 0 7px; margin-right: 5px; border-radius: 999px; background: var(--bl-coral); color: #fff; font-size: 11px; font-weight: 800; line-height: 1.7; vertical-align: 1px; }
.bl-rp-v-title { font-weight: 800; font-size: 14px; margin-bottom: 2px; }
/* 교회 보고 모음 */
.bl-cn-title { font-weight: 800; font-size: 13.5px; margin-bottom: 2px; }
.bl-cn-special { margin-top: 6px; padding-top: 6px; border-top: 1px dashed #e1e6ec; font-size: 13.5px; line-height: 1.55; }
.bl-cn-special b { font-size: 12px; color: #b87a12; margin-right: 4px; }

/* 빠른 출석 체크: 홈 카드 + 전용 화면 */
.bl-quick-card { display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; border-width: 1.5px; }
.bl-quick-card.is-todo { background: #fff6f5; border-color: #f1c3c5; }
.bl-quick-card.is-done { background: #f1f9f3; border-color: #c6e3cd; }
.bl-quick-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--bl-coral, #e07a7f); }
.bl-quick-card.is-done::before { background: #2e7d4f; }
.bl-quick-card.is-pick::before { background: var(--bl-navy, #253b61); }
.bl-quick-card:hover { text-decoration: none; color: inherit; filter: brightness(.98); }
.bl-quick-card-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; font-size: 20px; color: #fff; background: var(--bl-coral, #e07a7f); flex: none; }
.bl-quick-card.is-done .bl-quick-card-icon { background: #2e7d4f; }
.bl-quick-card-body { display: grid; gap: 2px; min-width: 0; }
.bl-quick-card-body b { font-size: 16px; }
.bl-quick-card-body small { color: #6b7280; font-size: 12.5px; }
.bl-quick-card-go { margin-left: auto; flex: none; font-weight: 800; font-size: 13px; color: var(--bl-coral-deep, #c8555b); white-space: nowrap; }
.bl-quick-card.is-done .bl-quick-card-go { color: #2e7d4f; }
.bl-quick-status { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.bl-quick-link { font-weight: 700; font-size: 13px; }
.bl-quick-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 6px; }
.bl-quick-save { flex: 1 1 auto; min-width: 180px; }
.bl-quick-help { font-size: 12.5px; margin: 10px 0 0; }
.bl-quick-card.is-pick { background: #fff; border-color: #dfe5ee; cursor: default; }
.bl-quick-card.is-pick .bl-quick-card-icon { background: var(--bl-navy, #253b61); }
.bl-quick-pick { margin-left: auto; flex: none; max-width: 46%; }
@media (max-width: 480px) { .bl-quick-card.is-pick { flex-wrap: wrap; } .bl-quick-pick { max-width: 100%; width: 100%; margin-left: 0; } }

/* ── 큐티 퀴즈 ─────────────────────────────────────────────── */
.bl-quiz-wrap { max-width: 760px; margin: 0 auto; }
.bl-quiz-head strong { font-size: 18px; }
.bl-quiz-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; font-size: 13px; color: var(--bl-muted, #7b8598); }
.bl-quiz-ref { font-weight: 800; color: var(--bl-navy, #253b61); }
.bl-quiz-sub { margin-top: 2px; font-size: 12px; color: var(--bl-muted, #7b8598); }
.bl-quiz-flash { margin: 0 0 10px; padding: 10px 14px; border-radius: 12px; background: #eaf6ee; border: 1px solid #bfe3cb; color: #1f6b3a; font-weight: 800; }
.bl-quiz-passage { margin-bottom: 14px; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; background: #fbfaf6; }
.bl-quiz-passage summary { padding: 12px 14px; min-height: 44px; font-weight: 800; color: var(--bl-navy, #253b61); cursor: pointer; }
.bl-quiz-verses { padding: 0 14px 10px; font-size: 14px; line-height: 1.7; }
.bl-quiz-verses p { margin: 0 0 6px; }
.bl-quiz-verses sup { font-weight: 800; color: var(--bl-coral-deep, #c8555b); }
.bl-quiz-vh { font-size: 12.5px; color: var(--bl-muted, #7b8598); font-style: italic; }
.bl-quiz-q { margin: 0 0 12px; padding: 12px; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 14px; background: #fff; min-width: 0; }
.bl-quiz-q.is-answered { border-color: #b9cdee; background: #fbfcff; }
.bl-quiz-q legend { float: none; width: 100%; display: flex; gap: 8px; align-items: flex-start; margin: 0 0 10px; font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--bl-ink, #1c2433); }
.bl-quiz-no { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--bl-navy, #253b61); color: #fff; font-size: 13px; font-weight: 900; }
.bl-quiz-qtext { flex: 1 1 auto; min-width: 0; word-break: keep-all; overflow-wrap: anywhere; }
.bl-quiz-tag { flex: 0 0 auto; font-style: normal; font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: #fff1e6; color: #b5601c; }
.bl-quiz-opts { display: grid; grid-template-columns: 1fr; gap: 6px; }
@media (min-width: 576px) { .bl-quiz-opts { grid-template-columns: 1fr 1fr; } }
.bl-quiz-opt { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 8px 12px; border: 1px solid var(--bl-line, #e6eaf1); border-radius: 12px; background: #f8f9fc; cursor: pointer; font-size: 14px; font-weight: 600; }
.bl-quiz-opt input { position: absolute; opacity: 0; pointer-events: none; }
.bl-quiz-mark { color: var(--bl-muted, #9aa3b2); font-weight: 800; }
.bl-quiz-opt.is-chosen, .bl-quiz-opt:has(input:checked) { border-color: var(--bl-navy, #253b61); background: #eaf0fb; color: var(--bl-navy, #253b61); box-shadow: 0 0 0 2px rgba(37, 59, 97, .12); }
.bl-quiz-opt.is-chosen .bl-quiz-mark, .bl-quiz-opt:has(input:checked) .bl-quiz-mark { color: var(--bl-navy, #253b61); }
.bl-quiz-opt:has(input:focus-visible) { outline: 2px solid #7ea3e6; outline-offset: 1px; }
.bl-quiz-text { min-height: 44px; font-size: 15px; }
.bl-quiz-bar { position: sticky; bottom: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 4px -15px -15px; padding: 10px 15px; background: rgba(255, 255, 255, .96); border-top: 1px solid var(--bl-line, #e6eaf1); }
.bl-quiz-progress { padding: 6px 12px; border-radius: 999px; background: #eef1f6; font-size: 13px; font-weight: 800; color: var(--bl-navy, #253b61); }
.bl-quiz-progress.is-done { background: #eaf6ee; color: #1f6b3a; }
.bl-quiz-submit { min-height: 44px; padding-left: 20px; padding-right: 20px; font-weight: 800; }
.bl-quiz-foot { margin: 8px 0 20px; text-align: center; font-size: 13px; font-weight: 800; }
.bl-quiz-score { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-bottom: 14px; padding: 14px; border-radius: 14px; background: linear-gradient(90deg, #fff6d6, #fffbea); border: 1px solid #f2dd9a; }
.bl-quiz-score-n b { font-size: 40px; font-weight: 900; line-height: 1; color: var(--bl-navy, #253b61); }
.bl-quiz-score-n small { margin-left: 2px; font-size: 15px; font-weight: 800; color: var(--bl-muted, #7b8598); }
.bl-quiz-score-sub { display: flex; flex-direction: column; gap: 2px; font-size: 13px; font-weight: 700; color: var(--bl-ink, #1c2433); }
.bl-quiz-myrank { color: #8a6a00; }
.bl-quiz-review { display: flex; flex-direction: column; gap: 8px; }
.bl-quiz-rq { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--bl-line, #e6eaf1); background: #fff; }
.bl-quiz-rq.is-ok { border-left: 4px solid #3a9a5b; }
.bl-quiz-rq.is-wrong { border-left: 4px solid #d0575c; background: #fffafa; }
.bl-quiz-rq-head { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; font-weight: 700; }
.bl-quiz-rq-head .bl-quiz-no { width: 22px; height: 22px; font-size: 11.5px; }
.bl-quiz-rq-mark { flex: 0 0 auto; width: 18px; font-size: 16px; font-weight: 900; }
.is-ok .bl-quiz-rq-mark { color: #3a9a5b; } .is-wrong .bl-quiz-rq-mark { color: #d0575c; }
.bl-quiz-rq-body { margin: 6px 0 0 56px; font-size: 13px; line-height: 1.55; }
.bl-quiz-given { color: #b0454a; }
.bl-quiz-answer b { color: var(--bl-navy, #253b61); }
.bl-quiz-vref { margin-left: 4px; color: var(--bl-muted, #7b8598); font-weight: 700; }
.bl-quiz-explain { color: var(--bl-muted, #66708a); }
.bl-quiz-evidence { color: #4b5a78; background: #f4f6fb; border-left: 3px solid #c9d3ea; padding: 4px 8px; margin: 4px 0; border-radius: 4px; font-size: .92em; }
.bl-quiz-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.bl-quiz-actions .btn { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; }
.bl-quiz-empty { padding: 14px; border-radius: 12px; background: #f8f9fc; text-align: center; font-size: 13.5px; color: var(--bl-muted, #7b8598); }
.bl-quiz-note { margin-top: 10px; font-size: 12px; color: var(--bl-muted, #7b8598); }
.bl-quiz-rank { display: flex; flex-direction: column; gap: 5px; }
.bl-quiz-rrow { display: grid; grid-template-columns: 30px 34px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 12px; background: #f8f9fc; border: 1px solid transparent; }
.bl-quiz-rrow.medal-1 { background: linear-gradient(90deg, #fff6d6, #fffbea); border-color: #f2dd9a; }
.bl-quiz-rrow.medal-2 { background: linear-gradient(90deg, #eef1f6, #f6f8fb); border-color: #d9dfe8; }
.bl-quiz-rrow.medal-3 { background: linear-gradient(90deg, #fbeadf, #fdf4ee); border-color: #ecc9b3; }
.bl-quiz-rrow.is-mine { border-color: #7ea3e6; box-shadow: 0 0 0 2px rgba(126, 163, 230, .25); }
.bl-quiz-rno { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(24, 34, 54, .12); font-size: 13px; font-weight: 900; color: var(--bl-navy, #253b61); }
.medal-1 .bl-quiz-rno, .medal-2 .bl-quiz-rno, .medal-3 .bl-quiz-rno { font-size: 16px; }
.bl-quiz-ravatar img { border-radius: 50%; }
.bl-quiz-rname { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 6px; min-width: 0; }
.bl-quiz-rname b { font-size: 13.5px; font-weight: 800; color: var(--bl-ink, #1c2433); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.bl-quiz-rname small { width: 100%; font-size: 11.5px; color: var(--bl-muted, #8b93a3); }
.bl-quiz-me { font-style: normal; font-size: 10.5px; font-weight: 900; padding: 1px 6px; border-radius: 999px; background: #e5edfb; color: #2a5fb0; }
.bl-quiz-rtotal { font-variant-numeric: tabular-nums; white-space: nowrap; }
.bl-quiz-rtotal b { font-size: 17px; font-weight: 900; color: var(--bl-navy, #253b61); }
.bl-quiz-rtotal small { font-size: 11px; font-weight: 700; color: var(--bl-muted, #9aa3b2); }
.bl-quiz-rgap { text-align: center; color: var(--bl-muted, #9aa3b2); line-height: 1; }
.bl-quiz-card { margin-bottom: 14px; background: linear-gradient(180deg, #fff 0%, #f5f8ff 100%); border-color: #d6e1f5; }
.bl-quiz-card .bl-home-card-title .fa { color: #2a5fb0; }
.bl-quiz-card-body { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.bl-quiz-card-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 14px; color: var(--bl-ink, #1c2433); }
.bl-quiz-card-text b { color: var(--bl-navy, #253b61); }
.bl-quiz-card-sub { font-size: 12.5px; color: var(--bl-muted, #7b8598); }
.bl-quiz-card-top { font-size: 12.5px; font-weight: 700; color: #8a6a00; }
.bl-quiz-card-go { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; font-weight: 800; }
@media (max-width: 575px) { .bl-quiz-card-go { width: 100%; justify-content: center; } .bl-quiz-rq-body { margin-left: 26px; } }
@media (max-width: 767.98px) { .bl-quiz-bar { bottom: calc(60px + env(safe-area-inset-bottom, 0px)); } }
.bl-quiz-qtext { display: flex; flex-direction: column; gap: 6px; }
.bl-quiz-verse { display: block; padding: 10px 12px; border-radius: 10px; background: #fbfaf6; border: 1px solid #ece6d6; font-size: 15px; font-weight: 600; line-height: 1.7; color: var(--bl-ink, #1c2433); }
.bl-quiz-verse > b:first-child { color: var(--bl-coral-deep, #c8555b); font-weight: 900; }
.bl-quiz-blank { display: inline-block; min-width: 4.5em; height: 1.1em; margin: 0 2px; vertical-align: -2px; border-bottom: 2px solid var(--bl-navy, #253b61); background: #eaf0fb; border-radius: 3px 3px 0 0; }
.bl-quiz-fill { padding: 0 3px; border-radius: 4px; background: #fff1b8; color: var(--bl-navy, #253b61); font-weight: 900; }
.bl-quiz-rq .bl-quiz-verse { font-size: 14px; padding: 8px 10px; }
.bl-quiz-q legend { float: left; padding: 0; }
.bl-quiz-q legend + * { clear: both; }
.bl-quiz-home .bl-home-card-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.bl-quiz-home-go { margin-left: auto; }
.bl-quick-week { font-style: normal; font-weight: 600; font-size: 12.5px; color: #6b7280; margin-left: 6px; }
.bl-home-grid-nohead { padding-top: 12px; }
.bl-pending-home { margin-top: 10px; border: 1px solid #f0dcb0; border-radius: 12px; background: #fff; padding: 0; font-size: 13px; overflow: hidden; }
.bl-pending-home summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 6px; padding: 10px 12px; font-weight: 800; color: #8a5a00; background: #fff6e3; }
.bl-pending-home summary::-webkit-details-marker { display: none; }
.bl-pending-home summary::after { content: "\f107"; font-family: FontAwesome; margin-left: auto; color: #b7791f; transition: transform .15s; }
.bl-pending-home[open] summary::after { transform: rotate(180deg); }
.bl-pending-home summary small { font-weight: 600; color: #a97b2a; }
.bl-pending-home-group { padding: 10px 12px 4px; }
.bl-pending-home-group + .bl-pending-home-group { border-top: 1px dashed #f0dcb0; }
.bl-pending-home-group > b { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; padding: 2px 9px; border-radius: 999px; background: #fdecec; color: #b3261e; }
.bl-pending-home-group:last-of-type > b { background: #e8f0fb; color: #2f6fd1; }
.bl-pending-home-group > small { color: #8b93a3; margin-left: 4px; }
.bl-pending-home-group ul { margin: 8px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.bl-pending-home-group li { display: flex; align-items: flex-start; gap: 8px; }
.bl-pending-home-names { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; min-width: 0; }
.bl-pending-home-village { flex: none; min-width: 72px; padding: 3px 0; font-weight: 800; font-size: 12.5px; color: #4b5563; }
.bl-pending-home-name { display: inline-block; padding: 3px 9px; border-radius: 999px; background: #f3f5f9; border: 1px solid #e6eaf1; font-weight: 600; font-size: 12.5px; color: var(--bl-ink, #1c2433); }
.bl-pending-home-link { display: block; padding: 10px 12px; border-top: 1px solid #f0dcb0; background: #fffaf0; font-weight: 700; font-size: 12.5px; }

/* 홈의 단독 위젯(새 글·생일·회계)도 카드와 같은 모양: 바깥 틀 맨 위에 단색 띠, 안쪽 카드 테두리는 없앤다 */
.panel.bl-home-single { position: relative; overflow: hidden; border-radius: 16px; }
.panel.bl-home-single::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--tone); z-index: 2; }
.panel.bl-home-single .bl-home-card { border: 0; box-shadow: none; padding: 0; background: transparent; border-radius: 0; overflow: visible; }
.panel.bl-home-single .bl-home-card::before { display: none; }
.panel.bl-home-single .bl-mokjang-head .bl-eyebrow { color: var(--tone-ink); }
.panel.bl-home-single .bl-home-card-title .fa { color: var(--tone-ink); }
.panel.bl-home-single .bl-mokjang-head .bl-eyebrow::before { background: var(--tone-ink); }
.panel.bl-home-single > .panel-heading.bl-mokjang-head { padding: 14px 15px 8px; margin: 0; border: 0; background: transparent; }
.panel.bl-home-single > .bl-home-grid { padding: 0 15px 13px; }
.panel.bl-home-single.bl-home-ledger > .panel-body { padding: 0 15px 13px; }
.panel.bl-home-single { border: 1px solid #e8ecf2; box-shadow: 0 1px 3px rgba(20, 30, 50, .05); }
/* 홈: 바깥 흰 틀을 없애고 카드들이 같은 간격(12px)으로 바로 놓이게 — 단독 위젯(회계·새 글·생일)도 같은 간격 */
.panel.bl-home:not(.bl-home-single) { background: transparent !important; border: 0 !important; box-shadow: none !important; margin: 0 0 12px !important; border-radius: 0; }
.panel.bl-home:not(.bl-home-single) > .bl-home-grid { padding: 0 !important; gap: 12px; }
.panel.bl-home-single { margin: 0 0 12px !important; }
.layout-content-container > .panel.bl-home-ledger { margin: 0 0 12px !important; }

/* 리더 가입·사용 현황: 말씀·큐티 열람 */
.bl-view-section { padding: 12px 14px; border-radius: 12px; background: var(--bl-paper); margin-bottom: 8px; }
.bl-view-title { font-size: 15px; font-weight: 800; color: var(--bl-navy); margin: 0 0 8px; }
.bl-view-title small { font-weight: 600; font-size: 12px; margin-left: 4px; }
.bl-view-summary { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: var(--bl-ink); margin-bottom: 4px; }
.bl-view-summary b { font-size: 17px; color: var(--bl-navy); }
.bl-view-table { background: #fff; border-radius: 8px; margin-bottom: 0; font-size: 13px; }
.bl-view-table th { font-size: 12px; color: var(--bl-muted); white-space: nowrap; }
.bl-view-date { white-space: nowrap; color: var(--bl-muted); }
.bl-view-name { font-weight: 600; min-width: 140px; }
.bl-view-readers { min-width: 180px; }
.bl-view-readers .bl-chip { margin: 1px 0; padding: 1px 8px; font-size: 11px; }
.bl-view-count { color: var(--bl-navy); margin-right: 2px; }
