/* CamiNet portal alanı: portal, cami ana sayfası, duyuru/içerik yönetimi, yasal metinler,
   sertifika doğrulama. CSP style-src 'self' — görünümlerde satır içi stil yok. */

/* ── Portal üst çubuğu (cami dışı sayfalar) ─────────────────────────────── */
.cn-portal-header {
  display: flex; align-items: center; gap: .75rem; padding: .6rem 1rem;
  background: var(--cn-chrome); border-bottom: 1px solid var(--cn-border);
  position: sticky; top: 0; z-index: 1020;
}
.cn-portal-brand { display: flex; align-items: center; gap: .5rem; color: var(--cn-text); text-decoration: none; font-weight: 700; letter-spacing: .02em; }
.cn-portal-brand img { width: 32px; height: 32px; }
.cn-portal-brand:hover { color: var(--cn-primary); }
.cn-portal-actions { margin-left: auto; display: flex; align-items: center; gap: .5rem; }

.cn-portal-body { max-width: 1200px; margin: 0 auto; padding: 2rem 1rem 4rem; }
.cn-page-narrow { max-width: 860px; margin: 0 auto; padding: 2rem 1rem 3rem; }
.cn-empty { text-align: center; color: var(--cn-muted); padding: 2.5rem 1rem; margin: 0; }

.cn-search .input-group-text { background: var(--cn-surface); color: var(--cn-muted); border-color: var(--cn-border); }

/* ── Cami kartları ──────────────────────────────────────────────────────── */
.cn-mosque-card { border-radius: .75rem; overflow: hidden; box-shadow: 0 4px 16px rgba(0, 0, 0, .18); transition: transform .15s, box-shadow .15s; }
.cn-mosque-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0, 0, 0, .28); }
.cn-mosque-card .cn-card-cover { display: block; }

/* ── Duyuru akışı ───────────────────────────────────────────────────────── */
.cn-feed { border-radius: .75rem; overflow: hidden; }
.cn-feed-item { padding: 1rem 1.25rem; }
.cn-feed-item a { text-decoration: none; }
.cn-feed-item h3 a:hover { text-decoration: underline; }
.cn-feed-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; font-size: .85rem; color: var(--cn-muted); }
.cn-feed-text { color: var(--cn-text); opacity: .9; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cn-badge { background: rgba(var(--cn-primary-rgb), .16); color: var(--cn-primary); font-weight: 600; }

/* ── Cami ana sayfası ───────────────────────────────────────────────────── */
.cn-panel { border-radius: .75rem; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.cn-mosque-photo { width: 100%; max-height: 400px; object-fit: cover; display: block; }
.cn-announcement-docs { border-top: 1px solid var(--cn-border); margin-top: .75rem; padding-top: .75rem; display: flex; flex-direction: column; gap: .35rem; }
.cn-announcement-docs a { display: inline-flex; align-items: center; gap: .4rem; overflow-wrap: anywhere; }
.cn-ann-date { font-size: .8rem; color: var(--cn-muted); }

.cn-accordion { --bs-accordion-bg: var(--cn-surface); --bs-accordion-border-color: var(--cn-border); --bs-accordion-color: var(--cn-text);
  --bs-accordion-btn-color: var(--cn-text); --bs-accordion-active-bg: rgba(var(--cn-primary-rgb), .14); --bs-accordion-active-color: var(--cn-primary);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem rgba(var(--cn-primary-rgb), .3); }
.cn-accordion .accordion-button { gap: .5rem; flex-wrap: wrap; }
.cn-accordion {
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23A89F92' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23C8A36A' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}
.cn-accordion .accordion-button .cn-acc-title { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }

/* Quill 2 kök çıktısında listeler <ol><li data-list="bullet"> olabilir. */
.rich-text li[data-list="bullet"] { list-style-type: disc; }
.rich-text li[data-list="ordered"] { list-style-type: decimal; }
.rich-text > :last-child { margin-bottom: 0; }
.rich-text { overflow-wrap: anywhere; }

/* ── Yönetim ────────────────────────────────────────────────────────────── */
.cn-admin-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-bottom: 1rem; }
.cn-admin-toolbar .cn-search-box { flex: 1 1 260px; max-width: 480px; }
.cn-ann-actions { display: flex; gap: .25rem; flex-shrink: 0; }
.cn-editor-offcanvas { --bs-offcanvas-width: min(720px, 100vw); }
.cn-content-card .rich-text { max-height: 220px; overflow: hidden; position: relative; }
.cn-content-card .rich-text::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40px; background: linear-gradient(transparent, var(--cn-surface)); pointer-events: none; }
.cn-doc-list .form-check { overflow-wrap: anywhere; }

/* ── Quill editörü (snow) tema uyumu ────────────────────────────────────── */
.cn-quill { background: var(--cn-surface); border-radius: .375rem; }
.cn-quill .ql-toolbar.ql-snow, .cn-quill .ql-container.ql-snow { border-color: var(--cn-border); }
.cn-quill .ql-toolbar.ql-snow { border-radius: .375rem .375rem 0 0; background: var(--cn-chrome); }
.cn-quill .ql-container.ql-snow { border-radius: 0 0 .375rem .375rem; font-size: 1rem; font-family: inherit; }
.cn-quill .ql-editor { min-height: 220px; color: var(--cn-text); }
.cn-quill .ql-editor.ql-blank::before { color: var(--cn-muted); font-style: normal; }
.cn-quill.is-invalid .ql-container.ql-snow, .cn-quill.is-invalid .ql-toolbar.ql-snow { border-color: var(--bs-form-invalid-border-color); }
[data-bs-theme="dark"] .cn-quill .ql-snow .ql-stroke { stroke: var(--cn-text); }
[data-bs-theme="dark"] .cn-quill .ql-snow .ql-fill { fill: var(--cn-text); }
[data-bs-theme="dark"] .cn-quill .ql-snow .ql-picker { color: var(--cn-text); }
[data-bs-theme="dark"] .cn-quill .ql-snow .ql-picker-options { background: var(--cn-surface); border-color: var(--cn-border); }
.cn-quill .ql-snow.ql-toolbar button:hover .ql-stroke, .cn-quill .ql-snow.ql-toolbar button.ql-active .ql-stroke,
.cn-quill .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, .cn-quill .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke { stroke: var(--cn-primary); }
.cn-quill .ql-snow.ql-toolbar button:hover .ql-fill, .cn-quill .ql-snow.ql-toolbar button.ql-active .ql-fill { fill: var(--cn-primary); }
.cn-quill .ql-snow.ql-toolbar button:hover, .cn-quill .ql-snow.ql-toolbar button.ql-active,
.cn-quill .ql-snow .ql-picker-label:hover, .cn-quill .ql-snow .ql-picker-label.ql-active, .cn-quill .ql-snow .ql-picker-item:hover { color: var(--cn-primary); }
.cn-quill .ql-snow .ql-tooltip { background: var(--cn-surface); color: var(--cn-text); border-color: var(--cn-border); box-shadow: 0 2px 8px rgba(0, 0, 0, .3); z-index: 5; }
.cn-quill .ql-snow .ql-tooltip input[type=text] { background: var(--cn-bg); color: var(--cn-text); border-color: var(--cn-border); }
.cn-quill .ql-snow a { color: var(--cn-primary); }

/* ── Yasal metinler ─────────────────────────────────────────────────────── */
.cn-legal h2 { margin-bottom: .25rem; }
.cn-legal h3 { font-size: 1.15rem; margin-top: 1.5rem; }
.cn-callout { background: rgba(var(--cn-primary-rgb), .12); border: 1px solid rgba(var(--cn-primary-rgb), .45); border-radius: .5rem; padding: .75rem 1rem; margin-bottom: 1rem; }
.cn-legal .cn-fineprint { font-size: .8rem; color: var(--cn-muted); }

/* ── Sertifika doğrulama ────────────────────────────────────────────────── */
.cn-cert-head { text-align: center; margin-bottom: 2rem; }
.cn-cert-head img { width: 96px; height: 96px; transition: transform .2s; }
.cn-cert-head a:hover img { transform: scale(1.05); }
.cn-cert-valid { border-color: rgba(25, 135, 84, .6); }
.cn-cert-valid .card-header { background: rgba(25, 135, 84, .15); }
.cn-cert-table th { width: 40%; color: var(--cn-muted); font-weight: 500; }
