:root {
    --ec-primary: #116cc8; --ec-primary-dark: #0b4d8d; --ec-navy: #12395f; --ec-navy-deep: #0b2742;
    --ec-surface: #fff; --ec-canvas: #f3f7fb; --ec-text: #1c2b3a; --ec-muted: #6d7c8d;
    --ec-border: #dce6f0; --ec-sidebar-width: 252px; --ec-topbar-height: 68px;
    --ec-radius: 16px; --ec-shadow: 0 12px 34px rgba(17,49,80,.08);
}
html { scroll-behavior: smooth; }
body.ecclesia-body { margin: 0; min-height: 100vh; overflow-x: hidden; background: var(--ec-canvas); color: var(--ec-text); font-family: 'Vazir','Cairo',Tahoma,sans-serif; text-align: right; }
body.auth-page { background: radial-gradient(circle at 15% 15%,rgba(17,108,200,.16),transparent 34%),linear-gradient(145deg,#f7fbff,#e8f1f9); }
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar { position: fixed; inset: 0 0 0 auto; z-index: 1040; display: flex; width: var(--ec-sidebar-width); height: 100vh; flex-direction: column; color: #fff; background: linear-gradient(180deg,var(--ec-navy-deep),var(--ec-navy) 62%,#174d7d); box-shadow: -12px 0 36px rgba(5,25,44,.14); transition: transform .28s ease; }
.sidebar-brand-wrap { display: flex; min-height: var(--ec-topbar-height); align-items: center; justify-content: space-between; gap: 10px; padding: 10px 13px; border-bottom: 1px solid rgba(255,255,255,.09); background: rgba(4,28,49,.16); }
.sidebar-brand { display: flex; align-items: center; gap: 11px; color: #fff; text-decoration: none; }
.sidebar-brand:hover { color: #fff; }
.brand-mark { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; overflow: hidden; padding: 2px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: #fff; box-shadow: 0 7px 18px rgba(0,0,0,.18); }
.brand-mark img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: center; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.4; }
.brand-copy strong { font-size: .86rem; line-height: 1.5; }
.brand-copy small { color: rgba(255,255,255,.56); font-size: .61rem; }
.sidebar-close { border: 0; color: #fff; background: transparent; font-size: 1.1rem; }
.sidebar-collapse-button { width: 34px; height: 34px; flex: 0 0 34px; place-items: center; padding: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 10px; color: rgba(255,255,255,.82); background: rgba(255,255,255,.07); font-size: 1rem; transition: background .2s,color .2s,transform .2s; }
.sidebar-collapse-button:hover { color: #fff; background: rgba(255,255,255,.15); transform: translateY(-1px); }
.sidebar-scroll { flex: 1; overflow-x: hidden; overflow-y: auto; padding: 13px 10px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.2) transparent; }
.sidebar-navigation { display: flex; flex-direction: column; gap: 4px; }
.sidebar-link { position: relative; display: flex; min-height: 42px; align-items: center; gap: 10px; padding: 8px 11px; border-radius: 10px; color: rgba(255,255,255,.72); font-size: .82rem; text-decoration: none; transition: background .2s,color .2s,transform .2s; }
.sidebar-link i { width: 20px; text-align: center; font-size: .96rem; }
.sidebar-link:hover { color: #fff; background: rgba(255,255,255,.08); transform: translateX(-2px); }
.sidebar-link.active { color: #fff; background: linear-gradient(90deg,rgba(17,108,200,.9),rgba(48,139,230,.58)); box-shadow: 0 8px 20px rgba(3,34,65,.22); }
.sidebar-link.active::before { content: ''; position: absolute; inset-block: 11px; right: -12px; width: 4px; border-radius: 0 6px 6px 0; background: #72bbff; }
.sidebar-section-title { display: flex; align-items: center; gap: 9px; margin: 15px 8px 6px; color: rgba(255,255,255,.4); font-size: .62rem; font-weight: 700; }
.sidebar-section-title::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,.08); }
.sidebar-footer { display: flex; align-items: center; gap: 9px; padding: 11px 14px; border-top: 1px solid rgba(255,255,255,.09); background: rgba(0,0,0,.1); }
.sidebar-user-avatar,.profile-avatar { display: grid; place-items: center; border-radius: 50%; background: #e5eff9; color: var(--ec-primary-dark); }
.sidebar-user-avatar { width: 38px; height: 38px; }
.sidebar-footer div:last-child { display: flex; min-width: 0; flex-direction: column; }
.sidebar-footer strong { overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-footer small { color: rgba(255,255,255,.5); font-size: .65rem; }
.sidebar-overlay { position: fixed; inset: 0; z-index: 1035; visibility: hidden; background: rgba(8,29,47,.55); opacity: 0; backdrop-filter: blur(2px); transition: opacity .25s,visibility .25s; }
.app-main { width: calc(100% - var(--ec-sidebar-width)); min-width: 0; margin-right: var(--ec-sidebar-width); }
.app-topbar { position: sticky; top: 0; z-index: 1020; display: flex; height: var(--ec-topbar-height); align-items: center; gap: 18px; padding: 0 24px; border-bottom: 1px solid rgba(18,57,95,.08); background: rgba(255,255,255,.94); box-shadow: 0 5px 22px rgba(18,57,95,.05); backdrop-filter: blur(10px); }
.topbar-button { display: inline-grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 1px solid var(--ec-border); border-radius: 12px; color: var(--ec-navy); background: #fff; font-size: 1.35rem; transition: color .2s,background .2s,transform .2s; }
.topbar-button:hover { color: #fff; background: var(--ec-primary); transform: translateY(-1px); }
.topbar-title { align-items: center; gap: 9px; color: var(--ec-muted); font-size: .83rem; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #31b774; box-shadow: 0 0 0 5px rgba(49,183,116,.12); }
.topbar-actions { margin-right: auto; }
.profile-button { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border: 0; border-radius: 12px; color: var(--ec-text); background: transparent; }
.profile-button:hover { background: #f0f5fa; }
.profile-avatar { width: 38px; height: 38px; }
.profile-name { max-width: 190px; overflow: hidden; font-size: .84rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.profile-menu { min-width: 205px; padding: 8px; border: 1px solid var(--ec-border); border-radius: 13px; box-shadow: var(--ec-shadow); }
.profile-menu .dropdown-item { display: flex; align-items: center; gap: 9px; padding: 9px 11px; border-radius: 8px; }
.page-title { min-height: 148px; padding: 20px 30px 54px; background: radial-gradient(circle at 12% 20%,rgba(255,255,255,.13),transparent 33%),linear-gradient(125deg,var(--ec-primary),#175b9b 48%,var(--ec-navy-deep)); }
.page-title-content { max-width: 1380px; }
.page-title-heading { margin: 0 0 8px; color: #fff !important; font-size: clamp(1.22rem,2.2vw,1.55rem); line-height: 1.35; letter-spacing: -.02em; }
.app-breadcrumb { padding: 6px 10px; border-color: rgba(255,255,255,.18); border-radius: 9px; background: rgba(6,29,50,.23); box-shadow: none; }
.app-breadcrumb li { gap: 5px; font-size: .74rem; }
.app-breadcrumb ol { gap: 5px; }
.app-breadcrumb li:not(:last-child)::after { font-size: .58rem; }
.app-content { position: relative; z-index: 2; min-height: calc(100vh - 200px); margin: -38px 18px 22px; padding: 18px 0 28px; border: 1px solid rgba(18,57,95,.06); border-radius: 20px; background: rgba(248,251,254,.98); box-shadow: var(--ec-shadow); }
.app-container { padding-inline: 20px; }
.app-footer { display: flex; align-items: center; justify-content: space-between; padding: 4px 30px 22px; color: var(--ec-muted); font-size: .76rem; }
.app-footer small { color: #97a4b2; }
.card { border: 1px solid var(--ec-border); border-radius: var(--ec-radius); box-shadow: 0 8px 26px rgba(18,57,95,.055); }
.card-header { padding: 14px 18px; border-bottom: 1px solid var(--ec-border); border-radius: var(--ec-radius) var(--ec-radius) 0 0 !important; background: #f9fbfd; font-weight: 700; }
.card-body { padding: 18px; }
.box-shadow { box-shadow: var(--ec-shadow) !important; }
.default-bg { background: linear-gradient(135deg,var(--ec-primary),var(--ec-navy)) !important; }
.btn { border-radius: 10px; font-weight: 600; transition: transform .18s,box-shadow .18s; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { border-color: var(--ec-primary); background: var(--ec-primary); box-shadow: 0 6px 16px rgba(17,108,200,.18); }
.btn-primary:hover { border-color: var(--ec-primary-dark); background: var(--ec-primary-dark); }
.form-control,.form-select,.select2-container--default .select2-selection--single { min-height: 42px; border-color: var(--ec-border); border-radius: 10px; }
.form-control:focus,.form-select:focus { border-color: #76afe9; box-shadow: 0 0 0 .2rem rgba(17,108,200,.12); }
.table { --bs-table-striped-bg: #f5f8fb; margin-bottom: 0; vertical-align: middle; }
.table > :not(caption) > * > * { padding: .78rem .72rem; border-bottom-color: #e7edf4; }
.table thead th { border-bottom-width: 0; color: #fff; background: var(--ec-navy); font-size: .78rem; white-space: nowrap; }
.pagination .page-link { margin-inline: 2px; border: 0; border-radius: 8px; color: var(--ec-primary); }
.pagination .active .page-link { background: var(--ec-primary); }
.modal-content { overflow: hidden; border: 0; border-radius: 18px; box-shadow: 0 24px 70px rgba(7,31,53,.2); }
.modal-header { border-bottom-color: var(--ec-border); background: #f7fafc; }
.alert { border: 0; border-radius: 12px; }
.accordion-item { overflow: hidden; margin-bottom: 9px; border: 1px solid var(--ec-border) !important; border-radius: 13px !important; }
.accordion-button { font-weight: 700; }
.accordion-button:not(.collapsed) { color: var(--ec-primary-dark); background: #eaf3fd; box-shadow: none; }
.dataTables_wrapper .dataTables_filter input { min-height: 38px; border: 1px solid var(--ec-border); border-radius: 9px; }
.select2-container { max-width: 100%; }

/* Served list */
.served-index-page .served-toolbar-card { box-shadow: 0 6px 18px rgba(18,57,95,.045); }
.served-index-page .served-toolbar-card .card-body { padding: 11px 15px; }
.served-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.served-gender-filter { width: min(210px,100%); }
.served-gender-filter .form-label { margin: 0 0 5px; color: var(--ec-muted); font-size: .67rem; font-weight: 700; }
.served-gender-filter .form-select { min-height: 36px; padding-block: 5px; font-size: .76rem; }
.served-add-button { display: inline-flex; min-height: 36px; align-items: center; gap: 6px; padding: 6px 13px; border-radius: 9px; font-size: .76rem; box-shadow: 0 6px 14px rgba(25,135,84,.16); }
.served-add-button i { font-size: .92rem; }
.served-index-page .served-table-card .card-body { padding: 13px 15px 15px; }
.served-index-page .table-responsive { overflow-x: auto; border: 1px solid #e5edf5; border-radius: 12px; }
.served-index-page .dataTables_wrapper { color: var(--ec-muted); font-size: .7rem; }
.served-index-page .dataTables_wrapper .dt-buttons { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 9px; }
.served-index-page .dataTables_wrapper button.dt-button { display: inline-flex; align-items: center; gap: 5px; margin: 0; padding: 5px 9px; border: 1px solid var(--ec-border); border-radius: 8px; color: var(--ec-navy); background: #fff; font-family: inherit; font-size: .66rem; line-height: 1.3; }
.served-index-page .dataTables_wrapper button.dt-button:hover { border-color: #9ec6ed; color: var(--ec-primary); background: #f3f8fe; }
.served-index-page .dataTables_filter { display: flex; align-items: center; margin-bottom: 9px; }
.served-index-page .dataTables_filter label { display: flex; align-items: center; gap: 7px; color: var(--ec-navy); font-size: .7rem; font-weight: 700; }
.served-index-page .dataTables_wrapper .dataTables_filter input { width: min(190px,48vw); min-height: 34px; margin: 0; padding: 5px 9px; font-size: .72rem; }
.served-index-page #tbl { min-width: 790px; color: var(--ec-text); font-size: .7rem; }
.served-index-page #tbl thead th { padding: 9px 8px; background: linear-gradient(180deg,#174b78,var(--ec-navy)); font-size: .68rem; font-weight: 700; }
.served-index-page #tbl tbody td { padding: 9px 8px; border-color: #e8eef5; line-height: 1.55; }
.served-index-page #tbl tbody tr:nth-child(odd) td { background: #fbfdff; }
.served-index-page #tbl tbody tr:hover td { background: #f0f7fe; }
.served-person-cell { display: flex; min-width: 155px; align-items: center; gap: 9px; }
.served-person-cell a { color: var(--ec-primary-dark); font-size: .72rem; font-weight: 700; text-decoration: none; }
.served-person-cell a:hover { color: var(--ec-primary); text-decoration: underline; }
.served-avatar,.served-avatar-fallback { width: 38px; height: 38px; flex: 0 0 38px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #d7e2ed,0 4px 11px rgba(18,57,95,.1); }
.served-avatar { object-fit: cover; }
.served-avatar-fallback { display: none; place-items: center; color: var(--ec-primary); background: #e9f3fd; font-size: 1rem; }
.served-phones { display: flex; min-width: 118px; flex-direction: column; gap: 1px; direction: ltr; text-align: right; }
.served-phones small { color: var(--ec-muted); font-size: .61rem; }
.served-row-actions { display: flex; align-items: center; justify-content: center; gap: 5px; }
.served-row-actions .btn { display: inline-grid; width: 30px; height: 30px; place-items: center; padding: 0; border-radius: 8px; font-size: .7rem; }
.served-index-page .dataTables_info,.served-index-page .dataTables_paginate { margin-top: 10px; font-size: .66rem; }
@media (max-width: 575.98px) {
    .served-toolbar { align-items: stretch; flex-direction: column; }
    .served-gender-filter { width: 100%; }
    .served-toolbar-actions,.served-add-button { width: 100%; }
    .served-add-button { justify-content: center; }
    .served-index-page .served-table-card .card-body { padding: 9px; }
    .served-index-page .dataTables_filter { float: none; }
}

/* Action log */
.log-page { display: grid; gap: 14px; }
.log-filter-card,.log-table-card { overflow: hidden; }
.log-filter-header,.log-table-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.log-filter-header > div,.log-table-summary > div { display: flex; align-items: center; gap: 9px; }
.log-filter-icon { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; color: var(--ec-primary); background: #e8f3fe; }
.log-filter-card .form-label { margin-bottom: 5px; color: var(--ec-muted); font-size: .68rem; font-weight: 700; }
.log-filter-card .form-control,.log-filter-card .form-select { min-height: 37px; font-size: .73rem; }
.log-search-button { min-height: 37px; font-size: .75rem; }
.log-table-summary > span { padding: 5px 10px; border-radius: 9px; color: var(--ec-primary-dark); background: #eaf4fe; font-size: .68rem; }
.log-table-summary > span b { margin-left: 3px; font-size: .78rem; }
.log-table-card .card-body { padding: 13px; }
.log-table-card .table-responsive { border: 1px solid #e3ebf4; border-radius: 11px; }
.log-table { min-width: 860px; font-size: .69rem; }
.log-table thead th { padding: 9px 8px; background: linear-gradient(180deg,#174b78,var(--ec-navy)); font-size: .67rem; }
.log-table tbody td { padding: 9px 8px; line-height: 1.55; }
.log-table tbody tr:nth-child(even) td { background: #f7faff; }
.log-table tbody tr:hover td { background: #edf6ff; }
.log-date,.log-user { white-space: nowrap; }
.log-date i,.log-user i { margin-left: 5px; color: var(--ec-primary); }
.log-action-badge { display: inline-block; padding: 4px 7px; border-radius: 7px; color: #0b568f; background: #e7f3fd; font-weight: 700; white-space: nowrap; }
.log-description { min-width: 220px; max-width: 430px; color: #405367; }
.log-ip { padding: 3px 6px; border-radius: 6px; color: #405367; background: #f0f3f7; font-size: .64rem; direction: ltr; }
.log-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 5px; margin-top: 13px; }
.log-pagination button { display: grid; min-width: 31px; height: 31px; place-items: center; padding: 0 7px; border: 1px solid var(--ec-border); border-radius: 8px; color: var(--ec-primary-dark); background: #fff; font-size: .68rem; }
.log-pagination button:hover:not(:disabled),.log-pagination button.active { border-color: var(--ec-primary); color: #fff; background: var(--ec-primary); }
.log-pagination button:disabled { cursor: not-allowed; opacity: .42; }
.log-pagination > span { margin-right: 7px; color: var(--ec-muted); font-size: .65rem; }
.log-empty { min-height: 210px; }
@media (max-width: 575.98px) {
    .log-filter-header { align-items: flex-start; }
    .log-filter-card .card-body { padding: 12px; }
    .log-table-card .card-body { padding: 8px; }
}

/* Service dashboard */
.service-dashboard,.dashboard-panel { padding: 6px 4px; }
.dashboard-section-heading,.dashboard-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.dashboard-section-heading h2,.dashboard-panel-header h2 { margin: 2px 0 4px; color: var(--ec-navy); font-size: 1.35rem; font-weight: 800; }
.dashboard-section-heading p,.dashboard-panel-header p { margin: 0; color: var(--ec-muted); font-size: .82rem; }
.section-eyebrow { color: var(--ec-primary); font-size: .7rem; font-weight: 800; }
.section-count { display: grid; min-width: 84px; min-height: 76px; place-items: center; padding: 8px 14px; border: 1px solid #d9e8f7; border-radius: 15px; color: var(--ec-primary-dark); background: #edf6ff; line-height: 1; }
.section-count i { font-size: 1.05rem; }
.section-count strong { font-size: 1.15rem; }
.section-count span { color: var(--ec-muted); font-size: .64rem; }
.church-card { position: relative; display: flex; width: 100%; min-height: 225px; overflow: hidden; flex-direction: column; padding: 20px; border: 1px solid var(--ec-border); border-radius: 18px; color: var(--ec-text); background: #fff; text-align: right; text-decoration: none; box-shadow: 0 10px 30px rgba(18,57,95,.07); transition: border-color .22s,box-shadow .22s,transform .22s; }
.church-card:hover,.church-card.selected { border-color: #83b9ed; box-shadow: 0 16px 34px rgba(17,108,200,.14); transform: translateY(-3px); }
.church-card.selected { box-shadow: 0 0 0 3px rgba(17,108,200,.1),0 16px 34px rgba(17,108,200,.14); }
.church-card-accent { position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg,var(--ec-primary),#4ba0ef,var(--ec-navy)); }
.church-card-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 15px; }
.church-icon { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(145deg,var(--ec-primary),var(--ec-primary-dark)); box-shadow: 0 8px 18px rgba(17,108,200,.2); font-size: 1.2rem; }
.church-arrow { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: var(--ec-primary); background: #edf5fd; transition: transform .2s; }
.church-card:hover .church-arrow { transform: translateX(-3px); }
.church-name { min-height: 45px; color: var(--ec-navy); font-size: 1rem; line-height: 1.55; }
.church-caption { margin-bottom: 17px; color: var(--ec-muted); font-size: .7rem; }
.church-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: auto; }
.church-stats > span { display: grid; grid-template-columns: auto auto; align-items: center; justify-content: center; gap: 3px 5px; min-width: 0; padding: 9px 5px; border-radius: 11px; background: #f4f8fc; }
.church-stats i { grid-row: 1 / 3; color: var(--ec-primary); font-size: .84rem; }
.church-stats b { color: var(--ec-navy); font-size: .82rem; line-height: 1; }
.church-stats small { color: var(--ec-muted); font-size: .59rem; line-height: 1; }
.dashboard-details { scroll-margin-top: 82px; }
.dashboard-panel { margin-top: 25px; padding: 22px; border: 1px solid var(--ec-border); border-radius: 18px; background: #fff; box-shadow: var(--ec-shadow); animation: panelReveal .24s ease; }
.dashboard-panel-header { margin-bottom: 18px; padding-bottom: 15px; border-bottom: 1px solid #e8eef5; }
.stage-card { display: flex; width: 100%; min-height: 94px; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--ec-border); border-radius: 15px; color: var(--ec-text); background: #fbfdff; text-align: right; text-decoration: none; transition: border-color .2s,background .2s,transform .2s; }
.stage-card:hover,.stage-card.selected { border-color: #8bbced; background: #f0f7ff; transform: translateY(-2px); }
.stage-icon { display: grid; width: 43px; height: 43px; flex: 0 0 43px; place-items: center; border-radius: 13px; color: var(--ec-primary); background: #e3f0fd; font-size: 1.08rem; }
.stage-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.stage-copy strong { color: var(--ec-navy); font-size: .9rem; }
.stage-copy small,.stage-count small { color: var(--ec-muted); font-size: .64rem; }
.stage-count { display: flex; min-width: 56px; flex-direction: column; align-items: center; padding-right: 10px; border-right: 1px solid var(--ec-border); }
.stage-count b { color: var(--ec-primary-dark); font-size: 1rem; }
.meeting-card { display: flex; height: 100%; overflow: hidden; flex-direction: column; border: 1px solid var(--ec-border); border-radius: 16px; color: var(--ec-text); background: #fff; text-decoration: none; box-shadow: 0 8px 24px rgba(18,57,95,.06); transition: border-color .2s,box-shadow .2s,transform .2s; }
.meeting-card:hover { border-color: #83b9ed; color: var(--ec-text); box-shadow: 0 14px 30px rgba(17,108,200,.13); transform: translateY(-3px); }
.meeting-visual { position: relative; display: grid; height: 135px; place-items: center; overflow: hidden; background: linear-gradient(145deg,#f8fbfe,#eaf3fb); }
.meeting-visual img { width: 112px; height: 112px; border-radius: 50%; object-fit: cover; mix-blend-mode: multiply; }
.meeting-visual > span { position: absolute; left: 12px; bottom: 10px; display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; color: #fff; background: var(--ec-primary); }
.meeting-body { display: flex; flex: 1; flex-direction: column; padding: 13px 14px 10px; }
.meeting-body strong { color: var(--ec-navy); font-size: .83rem; line-height: 1.6; }
.meeting-body small { margin-top: 4px; color: var(--ec-muted); font-size: .62rem; }
.meeting-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 14px; border-top: 1px solid #ebf0f5; font-size: .65rem; }
.meeting-footer span { color: var(--ec-muted); }
.meeting-footer b { color: var(--ec-primary); }
.dashboard-loader,.dashboard-empty { display: flex; min-height: 190px; align-items: center; justify-content: center; flex-direction: column; gap: 9px; border: 1px dashed #bfd3e7; border-radius: 17px; color: var(--ec-muted); background: #f8fbfe; text-align: center; }
.dashboard-loader { flex-direction: row; min-height: 120px; margin-top: 24px; }
.dashboard-empty > i { color: var(--ec-primary); font-size: 2.1rem; }
.dashboard-empty h3 { margin: 0; color: var(--ec-navy); font-size: 1rem; }
.dashboard-empty p { margin: 0; font-size: .75rem; }
@keyframes panelReveal { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }
@media (min-width: 768px) {
    .app-sidebar,.app-main { transition: width .28s ease,margin-right .28s ease; }
    .sidebar-collapsed .app-sidebar { width: 68px; }
    .sidebar-collapsed .app-main { width: calc(100% - 68px); margin-right: 68px; }
    .sidebar-collapsed .sidebar-brand-wrap { min-height: var(--ec-topbar-height); justify-content: center; padding: 8px; border-bottom: 0; background: transparent; }
    .sidebar-collapsed .sidebar-brand,
    .sidebar-collapsed .sidebar-footer { display: none; }
    .sidebar-collapsed .sidebar-collapse-button { position: static; width: 36px; height: 36px; flex: 0 0 36px; background: rgba(17,108,200,.9); border-color: rgba(255,255,255,.25); }
    .sidebar-collapsed .sidebar-scroll { display: block; padding: 12px 8px; }
    .sidebar-collapsed .sidebar-link { min-height: 46px; justify-content: center; padding: 9px; }
    .sidebar-collapsed .sidebar-link span { display: none; }
    .sidebar-collapsed .sidebar-link i { width: auto; font-size: 1.12rem; }
    .sidebar-collapsed .sidebar-link.active::before { right: -8px; }
    .sidebar-collapsed .sidebar-section-title { height: 1px; margin: 13px 7px; background: rgba(255,255,255,.12); }
    .sidebar-collapsed .sidebar-section-title span,
    .sidebar-collapsed .sidebar-section-title::after { display: none; }
}
@media (max-width: 767.98px) {
    .app-sidebar { transform: translateX(100%); }
    .sidebar-open .app-sidebar { transform: translateX(0); }
    .sidebar-open .sidebar-overlay { visibility: visible; opacity: 1; }
    .app-main { width: 100%; margin-right: 0; }
    .app-topbar { padding-inline: 14px; }
    .page-title { min-height: 138px; padding: 18px 20px 50px; }
    .app-content { margin-inline: 10px; }
}
@media (max-width: 575.98px) {
    :root { --ec-topbar-height: 64px; }
    .app-sidebar { width: min(86vw,300px); }
    .app-content { margin-top: -34px; border-radius: 16px; }
    .app-container { padding-inline: 10px; }
    .app-footer { flex-direction: column; gap: 3px; padding-inline: 14px; text-align: center; }
    .card-body { padding: 14px; }
    .table-responsive { border-radius: 12px; }
}
@media print {
    .app-sidebar,.app-topbar,.page-title,.app-footer { display: none !important; }
    .app-main { width: 100%; margin: 0; }
    .app-content { margin: 0; border: 0; box-shadow: none; }
}
