:root{--primary-color:#2563eb;--secondary-color:#64748b;--success-color:#16a34a;--warning-color:#f59e0b;--danger-color:#dc2626;--background-color:#f8fafc;--surface-color:#fff;--text-color:#0f172a;--muted-text-color:#64748b;--border-radius:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;background:#0f172a;color:#fff;padding:1rem;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;margin-bottom:1rem}.sidebar a{display:block;color:#cbd5e1;text-decoration:none;padding:.75rem;border-radius:12px}.sidebar a:hover{background:#1e293b;color:#fff}.main-content{flex:1;min-width:0}.topbar{height:64px;background:white;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 1rem}.shadow-soft{box-shadow:0 20px 40px rgba(15,23,42,.08)}.auth-body{background:linear-gradient(135deg,#e0e7ff,#f8fafc)}.stat-card{background:white;border:1px solid #e2e8f0;border-radius:18px;padding:1rem;box-shadow:0 10px 25px rgba(15,23,42,.05)}.stat-card span{display:block;color:#64748b;font-size:.9rem}.stat-card strong{font-size:1.4rem}.wizard-step{display:none}.wizard-step.active{display:block}@media(max-width:900px){.app-shell{display:block}.sidebar{width:auto;height:auto;position:relative}.sidebar nav{display:flex;overflow-x:auto}.topbar{position:sticky;top:0;z-index:10}}@media print{.sidebar,.topbar,.btn{display:none!important}.main-content{width:100%}}
/* UI Calendar/Report enhancement */
.app-shell{display:flex;min-height:100vh;background:#f5f7fb}.sidebar{width:260px;background:#111827;color:#fff;padding:1rem;position:sticky;top:0;height:100vh;z-index:20}.sidebar .brand{display:flex;gap:.6rem;align-items:center;margin-bottom:1.4rem;font-weight:700}.sidebar nav a{display:block;color:#d1d5db;text-decoration:none;padding:.75rem .9rem;border-radius:12px;margin-bottom:.25rem}.sidebar nav a:hover,.sidebar nav a.active{background:#2563eb;color:#fff}.main-content{flex:1;min-width:0}.topbar{background:#fff;border-bottom:1px solid #e5e7eb;padding:1rem 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;position:sticky;top:0;z-index:10}.topbar-user{display:flex;gap:.5rem;align-items:center}.sidebar-toggle{position:fixed;top:.75rem;right:.75rem;z-index:30;border:0;background:#2563eb;color:#fff;border-radius:10px;padding:.5rem .75rem}.card{border:0;border-radius:16px;box-shadow:0 8px 30px rgba(15,23,42,.07)}.btn{border-radius:10px}.calendar-toolbar{border:1px solid #e5e7eb}.calendar-period-title{font-weight:800}.calendar-grid-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.calendar-weekday{font-weight:700;text-align:center;background:#eaf1ff;color:#1d4ed8;padding:.65rem;border-radius:12px}.calendar-day{min-height:145px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:.6rem;overflow:hidden}.calendar-day.today{border:2px solid #2563eb;background:#eff6ff}.calendar-day.muted{background:#fbfdff;color:#94a3b8}.calendar-date{font-weight:800;margin-bottom:.4rem}.event-pill{display:block;background:#e0f2fe;color:#075985;border:1px solid #bae6fd;text-decoration:none;border-radius:999px;padding:.25rem .55rem;margin-bottom:.3rem;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-pill:hover{background:#bae6fd;color:#075985}.more-events{font-size:.8rem;color:#64748b}.calendar-empty-state{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;padding:1rem;text-align:center;color:#64748b;margin-top:1rem}.calendar-empty-state.small{padding:.75rem;margin:0}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:.75rem;overflow-x:auto}.calendar-week-card.today{outline:2px solid #2563eb}.calendar-week-card .card-header{display:flex;justify-content:space-between;gap:.5rem;background:#fff;border-bottom:1px solid #e5e7eb}.event-row{display:grid;grid-template-columns:48px 1fr;gap:.35rem;text-decoration:none;color:#0f172a;padding:.45rem;border-radius:10px;border-bottom:1px solid #f1f5f9}.event-row:hover{background:#f8fafc}.event-row em{grid-column:2;color:#64748b;font-style:normal;font-size:.8rem}.month-summary-card .card-header,.year-month-card{text-decoration:none;color:#0f172a}.year-month-card:hover{transform:translateY(-2px);transition:.15s}.wizard-steps-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.wizard-step-link{text-decoration:none;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:.65rem;display:flex;gap:.5rem;align-items:center}.wizard-step-link span{background:#e2e8f0;border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.wizard-step-link.active{background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.form-hint{color:#64748b}.metrics-table input{min-width:85px}.report-header{background:linear-gradient(135deg,#fff,#eff6ff)}.report-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.report-section-card h2{border-bottom:1px solid #e5e7eb;padding-bottom:.6rem;margin-bottom:1rem}.report-field{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:.8rem}.report-label{font-size:.82rem;color:#64748b;margin-bottom:.25rem}.report-value{font-weight:600;white-space:pre-wrap}.report-print-actions{white-space:nowrap}.print-body{background:#fff;padding:24px}.print-header{display:flex;align-items:center;gap:1rem;border-bottom:2px solid #111827;padding-bottom:1rem;margin-bottom:1rem}.print-actions{margin:1rem 0;display:flex;gap:.5rem}@media(max-width:991px){.sidebar{position:fixed;right:0;transform:translateX(105%);transition:.2s}.sidebar.open{transform:translateX(0)}.app-shell{display:block}.topbar{padding-right:3.5rem}.calendar-grid-month{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-steps-list{grid-template-columns:1fr}.calendar-week-grid{grid-template-columns:1fr}}@media print{.print-actions,.report-print-actions,.sidebar,.topbar,.sidebar-toggle{display:none!important}.print-body{padding:0}.card{box-shadow:none!important;border:1px solid #ddd!important}.report-section-card{page-break-inside:avoid}.report-header{background:#fff!important}}
/* Phase 7: Dashboards & Analytics */
.action-card{background:#fff7ed;border:1px solid #fed7aa;border-radius:16px;padding:1rem;color:#7c2d12;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.action-card span{display:block;font-size:.9rem}.action-card strong{display:block;font-size:1.7rem;margin-top:.4rem}.action-card:hover{transform:translateY(-2px);transition:.15s;color:#7c2d12}
.stat-card:hover{transform:translateY(-2px);transition:.15s;box-shadow:0 14px 32px rgba(15,23,42,.08)}
@media(max-width:767px){.topbar{align-items:flex-start}.topbar-user{flex-wrap:wrap}.stat-card strong{font-size:1.2rem}}

/* Phase 8: UI/UX polish */
body{color:#0f172a;background:#f5f7fb}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page-header h1{font-size:1.65rem;font-weight:800;margin:0}.page-header p{margin:.35rem 0 0;color:#64748b}.empty-state{background:#fff;border:1px dashed #cbd5e1;border-radius:20px;padding:2rem;text-align:center;color:#64748b}.empty-state-icon{width:56px;height:56px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:#eff6ff;border-radius:18px;font-size:1.8rem}.empty-state h3{font-size:1.1rem;color:#0f172a;margin-bottom:.35rem}.empty-state p{max-width:520px;margin:.25rem auto 1rem}.table thead th{background:#f8fafc;color:#475569;font-weight:700;border-bottom:1px solid #e2e8f0;white-space:nowrap}.table td{vertical-align:middle}.table-hover tbody tr:hover{background:#f8fafc}.badge{font-weight:700;letter-spacing:0}.text-bg-info{background:#e0f2fe!important;color:#075985!important}.text-bg-warning{background:#fef3c7!important;color:#92400e!important}.text-bg-primary{background:#dbeafe!important;color:#1d4ed8!important}.text-bg-success{background:#dcfce7!important;color:#166534!important}.text-bg-danger{background:#fee2e2!important;color:#991b1b!important}.text-bg-secondary{background:#e2e8f0!important;color:#334155!important}.text-bg-dark{background:#334155!important;color:#fff!important}.form-control,.form-select{border-radius:12px;border-color:#dbe3ef}.form-control:focus,.form-select:focus{border-color:#2563eb;box-shadow:0 0 0 .2rem rgba(37,99,235,.12)}.btn-primary{box-shadow:0 8px 20px rgba(37,99,235,.18)}.topbar{backdrop-filter:saturate(180%) blur(8px)}.sidebar nav hr{border-color:rgba(255,255,255,.14)}.mobile-bottom-nav{display:none}.section-title{font-weight:800;margin-bottom:.75rem}.filter-card{border:1px solid #e2e8f0}.clickable-row{cursor:pointer}.sticky-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid #e2e8f0;padding:1rem;z-index:5}.toast-container{position:fixed;bottom:1rem;left:1rem;z-index:1080}@media(max-width:767px){.container-fluid{padding-bottom:80px}.mobile-bottom-nav{position:fixed;bottom:0;right:0;left:0;display:flex;justify-content:space-around;gap:.25rem;background:#fff;border-top:1px solid #e5e7eb;padding:.45rem;z-index:25}.mobile-bottom-nav a{text-decoration:none;color:#64748b;font-size:.78rem;text-align:center;display:flex;flex-direction:column;gap:.15rem;min-width:58px}.mobile-bottom-nav a.active{color:#2563eb;font-weight:700}.page-header{display:block}.page-header h1{font-size:1.35rem}.table-responsive{border-radius:16px}.btn{min-height:40px}.topbar-user span.badge{display:none}}

/* Tabler migration layer - Phase UI/UX */
:root{--ngo-sidebar-bg:#17213a;--ngo-soft-border:#e6edf7;--ngo-page-bg:#f6f8fb}
.ngo-tabler-body{background:var(--ngo-page-bg);font-family:'Cairo',var(--tblr-font-sans-serif),Tahoma,Arial,sans-serif}
.ngo-sidebar{background:linear-gradient(180deg,#111827 0%,#17213a 100%)}
.ngo-sidebar .container-fluid{min-width:0}
.ngo-sidebar .navbar-brand{min-height:64px;justify-content:flex-start}
.ngo-sidebar-brand{width:100%;max-width:100%;overflow:hidden;padding-inline:1rem}
.ngo-sidebar-brand-link{width:100%;max-width:100%;min-width:0;overflow:hidden;color:#fff}
.ngo-sidebar-logo{width:34px;height:34px;flex:0 0 34px;object-fit:contain;border-radius:8px}
.ngo-sidebar-brand-text{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}
.ngo-sidebar .nav-link{border-radius:12px;margin:.12rem .5rem;color:#d7deea;transition:.15s ease}
.ngo-sidebar .nav-link:hover,.ngo-sidebar .nav-link.active{background:rgba(255,255,255,.11);color:#fff}
.ngo-sidebar .nav-link-icon{width:1.75rem;opacity:.95;text-align:center}
.ngo-topbar{background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--ngo-soft-border);min-height:64px}
.ngo-notifications-card{min-width:360px;max-width:420px}
.page-wrapper{background:var(--ngo-page-bg)}
.page-header{display:block}
.page-title{font-weight:800;letter-spacing:-.02em}
.card{border:1px solid var(--ngo-soft-border);box-shadow:0 10px 30px rgba(22,34,51,.045)}
.ngo-stat-card{transition:.16s ease;color:inherit}
.ngo-stat-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(22,34,51,.08)}
.ngo-stat-icon{width:44px;height:44px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;flex:0 0 44px}
.ngo-attention-card{background:linear-gradient(135deg,#fff 0%,#fff7ed 100%)}
.ngo-action-tile{display:block;border:1px solid #fed7aa;background:#fff;border-radius:16px;padding:1rem;color:#7c2d12;transition:.16s ease;height:100%}
.ngo-action-tile span{display:block;font-size:.9rem;color:#9a3412}.ngo-action-tile strong{display:block;font-size:2rem;line-height:1.1;margin-top:.4rem;color:#7c2d12}
.ngo-action-tile:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(124,45,18,.1);color:#7c2d12}
.badge-notification{position:absolute;top:-.1rem;left:-.15rem;min-width:1.35rem;height:1.35rem;padding:0 .35rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#dc2626!important;color:#fff!important;font-size:.72rem;font-weight:800;line-height:1;border:2px solid #fff;box-shadow:0 4px 10px rgba(220,38,38,.28);transform:none;text-shadow:none}
.mobile-bottom-nav{box-shadow:0 -10px 30px rgba(22,34,51,.08)}
.mobile-bottom-nav a span{font-size:1.15rem;line-height:1}.mobile-bottom-nav a small{font-size:.73rem}
@media(max-width:991px){.ngo-sidebar .navbar-brand{min-height:54px}.ngo-sidebar-brand{padding-inline:.75rem}.ngo-notifications-card{min-width:300px}.page-body{margin-bottom:72px}}
@media print{.ngo-sidebar,.ngo-topbar,.mobile-bottom-nav{display:none!important}.page-wrapper{margin:0!important;background:#fff}.page-body{margin:0!important}.card{box-shadow:none!important}}


/* Tabler continuation: Calendar + Reports + Wizard */
.ngo-table-card .table td,.ngo-table-card .table th{padding:1rem .9rem}
.card-sm .h2{font-weight:800;letter-spacing:-.03em}.bg-primary-lt{background:#dbeafe;color:#1d4ed8}.bg-success-lt{background:#dcfce7;color:#166534}.bg-warning-lt{background:#fef3c7;color:#92400e}.bg-danger-lt{background:#fee2e2;color:#991b1b}
.calendar-toolbar .btn-list{gap:.25rem}.calendar-filters .form-label{font-size:.78rem;color:#64748b;margin-bottom:.25rem}.calendar-grid-month{background:#fff;border:1px solid var(--ngo-soft-border);border-radius:18px;padding:.75rem}.calendar-day{box-shadow:0 8px 18px rgba(22,34,51,.035)}.event-pill{border-radius:10px;padding:.35rem .5rem;font-weight:600}.event-pill span{font-size:.74rem;color:inherit;opacity:.8;margin-left:.25rem}.event-pill.status-confirmed{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.event-pill.status-completed{background:#dcfce7;color:#166534;border-color:#bbf7d0}.event-pill.status-cancelled{background:#f1f5f9;color:#334155;border-color:#cbd5e1;text-decoration:line-through}.event-pill.status-postponed,.event-pill.status-report_pending{background:#fef3c7;color:#92400e;border-color:#fde68a}.event-pill.status-report_submitted{background:#e0f2fe;color:#075985;border-color:#bae6fd}.ngo-calendar-summary .card{height:100%}
.review-card{transition:.16s ease}.review-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(22,34,51,.08)}
.tabler-report-wizard .wizard-step-link{font-weight:700}.sticky-wizard-nav{position:sticky;top:76px;z-index:4}.ngo-wizard-card{overflow:visible}.ngo-wizard-card h2{font-weight:800;margin-bottom:.35rem}.ngo-wizard-card section{animation:ngoFade .18s ease}.sticky-actions{margin-right:-1rem;margin-left:-1rem;margin-bottom:-1rem;border-radius:0 0 16px 16px}.sticky-actions [data-save-state]{margin-inline-start:auto}.is-invalid{border-color:#dc2626!important;box-shadow:0 0 0 .2rem rgba(220,38,38,.12)!important}
@keyframes ngoFade{from{opacity:.75;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:767px){.calendar-grid-month{grid-template-columns:1fr}.calendar-day{min-height:auto}.sticky-wizard-nav{position:static}.sticky-actions{position:static}.sticky-actions [data-save-state]{width:100%;margin:0}.ngo-table-card .table td,.ngo-table-card .table th{padding:.75rem}}

/* Tabler continuation: Notifications + Analytics + Audit */
.bg-info-lt{background:#e0f2fe!important;color:#075985!important}.text-info{color:#075985!important}.notification-timeline{position:relative}.notification-timeline:before{content:"";position:absolute;top:.5rem;bottom:.5rem;right:17px;width:2px;background:#dbe3ef}.notification-card{margin-right:2.25rem;transition:.16s ease}.notification-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(22,34,51,.08)}.notification-unread{border-color:#93c5fd;background:linear-gradient(135deg,#fff 0%,#eff6ff 100%)}.notification-dot{width:34px;height:34px;border-radius:50%;display:inline-flex;background:#e2e8f0;border:6px solid #fff;box-shadow:0 0 0 1px #dbe3ef;position:absolute;right:-2.25rem;margin-top:.25rem}.notification-dot.is-unread{background:#2563eb;box-shadow:0 0 0 4px #dbeafe}.analytics-chart-card canvas{max-height:310px}.analytics-chip-group{padding:1rem;border:1px solid #e6edf7;border-radius:16px;background:#f8fafc;margin-bottom:.75rem}.analytics-chip-group h4{font-size:.95rem;font-weight:800;margin-bottom:.65rem}.risk-summary-card{background:linear-gradient(135deg,#fff 0%,#fff7f7 100%)}.ngo-table-card .card-header{gap:1rem}.ngo-table-card code{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;padding:.2rem .45rem;color:#334155}.page-pretitle{text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:700;font-size:.75rem}.progress-sm{height:.45rem;border-radius:999px;background:#e2e8f0}.progress-bar{background:#2563eb}.list-group-item{border-color:#edf2f7}@media(max-width:767px){.notification-timeline:before{display:none}.notification-card{margin-right:0}.notification-dot{display:none}.analytics-chart-card canvas{max-height:240px}}

/* Users & Roles CRUD */
.admin-checklist{max-height:360px;overflow:auto;background:var(--tblr-bg-surface-secondary,#f6f8fb)}
.admin-checklist .form-check{padding:.5rem .75rem;margin:0;border-bottom:1px solid rgba(98,105,118,.16)}
.admin-checklist .form-check:last-child{border-bottom:0}
.permission-module-card code{white-space:normal}

/* Report Wizard refinement */
.metrics-table tbody tr.table-danger input { border-color: rgba(214, 57, 57, .55); }
.metrics-table tbody tr::after { content: attr(data-warning); color: #d63939; font-size: .75rem; }
.wizard-step-link.active { box-shadow: inset 0 -2px 0 currentColor; }
.sticky-actions { position: sticky; bottom: .75rem; z-index: 20; background: rgba(255,255,255,.96); padding: .75rem; border: 1px solid rgba(98,105,118,.16); border-radius: .75rem; }

/* Print template aligned with the supplied awareness-session report form */
.doc-report-page{max-width:210mm;margin:0 auto;background:#fff;color:#111;font-family:"Arial","Tahoma",sans-serif;font-size:13px;line-height:1.45}.doc-title{text-align:center;font-size:22px;font-weight:800;margin:0 0 18px}.doc-report-page h2{font-size:16px;font-weight:800;margin:18px 0 8px;border:0;padding:0}.doc-table{width:100%;border-collapse:collapse;margin-bottom:14px;table-layout:fixed}.doc-table th,.doc-table td{border:1px solid #111;padding:7px 8px;vertical-align:top}.doc-table th{background:#f1f5f9;font-weight:800;text-align:center}.doc-table.basic-table th:first-child,.doc-table.basic-table td:first-child{width:35%;font-weight:700;background:#fafafa}.doc-table.numbers-table th,.doc-table.numbers-table td{text-align:center}.doc-table.qa-table th:first-child,.doc-table.qa-table td:first-child{width:34%;font-weight:700}.doc-table.qa-table th:nth-child(2),.doc-table.qa-table td:nth-child(2){width:34%}.total-row td{font-weight:800;background:#f7f7f7}.notes-block{border:1px solid #111;min-height:95px;padding:10px;margin-bottom:12px;white-space:pre-wrap}.sensitive-mask{border:1px dashed #b45309;background:#fff7ed;color:#7c2d12;padding:14px;margin-bottom:14px;font-weight:700}.print-body{background:#fff;padding:16px}.print-actions{max-width:210mm;margin:0 auto 12px;display:flex;gap:8px}@media print{@page{size:A4;margin:12mm}.print-actions{display:none!important}.doc-report-page{max-width:none;font-size:12px}.doc-title{font-size:20px}.doc-report-page h2{break-after:avoid}.doc-table,.notes-block,.sensitive-mask{break-inside:avoid}.doc-table th{background:#f1f5f9!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.total-row td{background:#f7f7f7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Calendar Module v2 – Operations Planner */
.ngo-calendar-header .page-title{font-weight:800}.ngo-calendar-nav-card .nav-pills{gap:.35rem}.calendar-filters-v2{border:1px solid #e6edf5}.calendar-agenda-stack{display:grid;gap:.65rem}.calendar-agenda-date{position:sticky;top:72px;z-index:2;background:#f6f8fb;border:1px solid #e6edf5;border-radius:12px;padding:.5rem .75rem;display:flex;justify-content:space-between;align-items:center;font-weight:700}.calendar-agenda-date a{font-size:.8rem;text-decoration:none}.ngo-activity-card{background:#fff;border:1px solid #e6edf5;border-right-width:5px;border-radius:16px;padding:.8rem;box-shadow:0 8px 22px rgba(15,23,42,.05);transition:.15s}.ngo-activity-card:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(15,23,42,.08)}.status-border-planned{border-right-color:#64748b}.status-border-confirmed{border-right-color:#2563eb}.status-border-completed,.status-border-approved,.status-border-reviewed{border-right-color:#16a34a}.status-border-cancelled,.status-border-rejected{border-right-color:#dc2626}.status-border-postponed,.status-border-report_pending{border-right-color:#d97706}.status-border-report_submitted{border-right-color:#0891b2}.calendar-month-v2{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.55rem}.calendar-day-v2{min-height:155px;background:#fff;border:1px solid #e6edf5;border-radius:16px;padding:.65rem;overflow:hidden}.calendar-day-v2.today{outline:2px solid #2563eb;background:#eff6ff}.calendar-day-v2.muted{background:#f8fafc;color:#94a3b8}.calendar-day-metrics{display:grid;gap:.15rem;font-size:.73rem;margin:.35rem 0}.calendar-week-v2{display:grid;grid-template-columns:repeat(7,minmax(220px,1fr));gap:.75rem;overflow-x:auto}.calendar-week-day{min-width:220px}.calendar-week-day.today{outline:2px solid #2563eb}.calendar-week-day .ngo-activity-card{margin-bottom:.5rem;padding:.65rem}.calendar-timeline{display:grid;gap:.75rem;position:relative}.calendar-timeline:before{content:"";position:absolute;right:10px;top:8px;bottom:8px;width:2px;background:#e6edf5}.calendar-timeline .ngo-activity-card{margin-right:24px}.calendar-timeline .ngo-activity-card:before{content:"";position:absolute}.ngo-quick-view-body .list-group-item{border-color:#eef2f7}.bg-warning-lt{background:#fff7ed!important}.bg-danger-lt{background:#fee2e2!important}.bg-info-lt{background:#e0f2fe!important}
@media(max-width:991px){.calendar-month-v2{grid-template-columns:1fr}.calendar-week-v2{grid-template-columns:1fr;overflow-x:visible}.calendar-agenda-date{top:0}.calendar-day-v2{min-height:auto}}

/* Analytics Module v2 review polish */
.analytics-mini-stat{border:1px solid #e6edf7;background:#f8fafc;border-radius:14px;padding:.85rem;height:100%}.analytics-mini-stat span{display:block;color:#64748b;font-size:.82rem;margin-bottom:.25rem}.analytics-mini-stat strong{font-size:1.45rem;font-weight:800;color:#0f172a}.analytics-table .analytics-total-row td{background:#eef6ff!important;color:#1f4e79}.analytics-print-section{break-inside:avoid}.analytics-quality-card{border:1px solid #e6edf7}.analytics-quality-card .card-header{background:linear-gradient(135deg,#fff,#f8fbff)}
@media print{@page{size:A4 landscape;margin:10mm}.d-print-none,.filter-card,.ngo-topbar,.ngo-sidebar,.mobile-bottom-nav,.btn-list{display:none!important}.page-wrapper,.page-body{margin:0!important;background:#fff!important}.page-header{border:2px solid #111;padding:10px;margin-bottom:10px!important}.page-pretitle,.page-header .text-muted{display:none}.page-title{text-align:center;width:100%;font-size:20px!important}.card{border:1px solid #111!important;border-radius:0!important;box-shadow:none!important;margin-bottom:10px!important}.card-header{border-bottom:1px solid #111!important;background:#eaf2f8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.table th,.table td{border:1px solid #111!important;padding:5px!important}.table thead th{background:#f1f5f9!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.analytics-total-row td{background:#f7f7f7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.badge{border:1px solid #111!important;background:#fff!important;color:#111!important}.container-xl,.container-fluid{max-width:none!important;width:100%!important;padding:0!important}.analytics-print-section,.ngo-table-card{break-inside:avoid}}

/* UI fix: keep topbar dropdowns above page cards/forms */
.ngo-topbar{
  position: sticky;
  top: 0;
  z-index: 1050;
  isolation: isolate;
}
.ngo-topbar,
.ngo-topbar .container-xl,
.ngo-topbar .navbar-nav,
.ngo-topbar .nav-item.dropdown{
  overflow: visible;
}
.ngo-topbar .dropdown-menu{
  z-index: 2050;
  border: 1px solid var(--ngo-soft-border, #e6edf5);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .14);
}
.ngo-topbar .ngo-notifications-card{
  width: min(420px, calc(100vw - 2rem));
}
.ngo-topbar .nav-link[aria-label="فتح التنبيهات"],
.ngo-topbar .nav-link[aria-label="فتح قائمة المستخدم"]{
  border-radius: 999px;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ngo-topbar .nav-link[aria-label="فتح التنبيهات"]:hover,
.ngo-topbar .nav-link[aria-label="فتح قائمة المستخدم"]:hover,
.ngo-topbar .nav-link[aria-label="فتح التنبيهات"].show,
.ngo-topbar .nav-link[aria-label="فتح قائمة المستخدم"].show{
  background: #f1f5f9;
  text-decoration: none;
}
.page-wrapper{
  position: relative;
  z-index: 1;
}
@media(max-width:575px){
  .ngo-topbar .dropdown-menu-end{
    left: .75rem !important;
    right: auto !important;
  }
  .ngo-topbar .ngo-notifications-card{
    min-width: 0;
  }
}

/* Dashboard stat cards alignment fix */
.ngo-dashboard-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:1rem;
  width:100%;
  max-width:100%;
  overflow:visible;
}
.ngo-dashboard-stats .ngo-stat-card{
  min-width:0;
  height:100%;
}
.ngo-dashboard-stats .card-body{
  padding:1rem;
}
.ngo-stat-content{
  display:flex;
  align-items:center;
  gap:.85rem;
  min-width:0;
}
.ngo-stat-text{
  min-width:0;
  flex:1 1 auto;
}
.ngo-stat-label{
  color:#64748b;
  font-size:.9rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.ngo-stat-value{
  font-size:1.45rem;
  line-height:1.2;
  font-weight:800;
  margin-top:.2rem;
  letter-spacing:-.02em;
}
@media (min-width:1200px){
  .ngo-dashboard-stats{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
  .ngo-dashboard-stats .card-body{
    padding:.95rem .85rem;
  }
  .ngo-stat-content{
    gap:.65rem;
  }
  .ngo-stat-icon{
    width:40px;
    height:40px;
    flex-basis:40px;
    font-size:1.2rem;
  }
  .ngo-stat-label{
    font-size:.82rem;
  }
  .ngo-stat-value{
    font-size:1.35rem;
  }
}
@media (max-width:575px){
  .ngo-dashboard-stats{
    grid-template-columns:1fr;
  }
}

/* Calendar overview layout fixes */
.ngo-calendar-header .row{
  width:100%;
  margin:0;
}
.ngo-calendar-nav-card,
.calendar-filters-v2,
.ngo-calendar-stats,
.calendar-agenda-stack,
.ngo-activity-card{
  max-width:100%;
}
.ngo-calendar-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1rem;
  width:100%;
  overflow:visible;
}
.ngo-calendar-stats .ngo-stat-card{
  min-width:0;
  height:100%;
  color:inherit;
}
.ngo-calendar-stats .card-body{
  padding:1rem;
}
.ngo-calendar-filter-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.85rem 1rem;
  align-items:end;
}
.ngo-calendar-filter-field{
  min-width:0;
}
.calendar-filters-v2 .form-label{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.calendar-filters-v2 .form-control,
.calendar-filters-v2 .form-select,
.calendar-filters-v2 .btn{
  width:100%;
  min-height:44px;
}
.ngo-activity-card{
  position:relative;
  overflow:visible;
}
.ngo-activity-head,
.ngo-activity-footer{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
}
.ngo-activity-main,
.ngo-activity-card .text-muted{
  min-width:0;
}
.ngo-activity-title{
  display:block;
  overflow-wrap:anywhere;
  line-height:1.45;
}
.ngo-activity-status{
  flex:0 0 auto;
  white-space:nowrap;
}
.ngo-activity-footer{
  align-items:center;
  margin-top:.75rem;
  padding-top:.75rem;
  border-top:1px solid #eef2f7;
}
.ngo-quick-view-btn{
  flex:0 0 auto;
  white-space:nowrap;
  min-width:88px;
}
#calendarQuickView{
  z-index:1095;
}
.offcanvas-backdrop{
  z-index:1090;
}
@media (min-width:1200px){
  .ngo-calendar-stats{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}
@media (max-width:575px){
  .ngo-calendar-stats,
  .ngo-calendar-filter-grid{
    grid-template-columns:1fr;
  }
  .ngo-activity-head,
  .ngo-activity-footer{
    align-items:stretch;
    flex-direction:column;
  }
  .ngo-quick-view-btn{
    width:100%;
  }
}

/* Calendar quick view: centered professional modal */
.ngo-quick-view-overlay{
  position:fixed;
  inset:0;
  z-index:4000;
  display:none;
  place-items:center;
  padding:1.25rem;
  pointer-events:none;
}
.ngo-quick-view-overlay.is-open{
  display:grid;
  pointer-events:auto;
}
.ngo-quick-view-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.36);
  backdrop-filter:blur(5px);
}
.ngo-quick-view-modal{
  position:relative;
  width:min(720px, 100%);
  max-height:min(82vh, 760px);
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(211,224,241,.95);
  border-radius:24px;
  box-shadow:0 24px 60px rgba(15,23,42,.16);
  transform:translateY(18px) scale(.98);
  opacity:0;
  transition:transform .2s ease, opacity .2s ease;
  outline:0;
}
.ngo-quick-view-overlay.is-open .ngo-quick-view-modal{
  transform:translateY(0) scale(1);
  opacity:1;
}
.ngo-quick-view-hero{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.35rem 1.5rem;
  color:#183153;
  background:linear-gradient(135deg,#f7fbff 0%,#eef5ff 58%,#e3f1ff 100%);
  border-bottom:1px solid #dce8f6;
}
.ngo-quick-view-hero .page-pretitle{
  color:#6b7f99 !important;
}
.ngo-quick-view-icon{
  width:52px;
  height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:18px;
  background:linear-gradient(135deg,#eef4ff 0%,#dcecff 100%);
  border:1px solid #cfe1f7;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
  font-size:1.35rem;
}
.ngo-quick-view-title{
  margin:.15rem 0 .35rem;
  color:#183153;
  font-weight:800;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.ngo-quick-view-subtitle{
  color:#5f7491;
  font-size:.92rem;
}
.ngo-quick-view-close{
  width:40px;
  height:40px;
  border:1px solid #d6e3f3;
  border-radius:14px;
  color:#4a6483;
  background:rgba(255,255,255,.72);
  box-shadow:0 4px 12px rgba(15,23,42,.08);
  font-size:1.5rem;
  line-height:1;
  flex:0 0 auto;
}
.ngo-quick-view-close:hover{
  background:#ffffff;
  color:#274a78;
}
.ngo-quick-view-content{
  padding:1.4rem 1.5rem;
  overflow:auto;
  max-height:calc(82vh - 190px);
}
.ngo-quick-view-info-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}
.ngo-quick-view-info-item{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  min-width:0;
  padding:1rem;
  border:1px solid #e6edf5;
  border-radius:18px;
  background:#f8fafc;
}
.ngo-quick-view-info-wide{
  grid-column:1 / -1;
}
.ngo-quick-view-info-icon{
  width:38px;
  height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:14px;
  background:#fff;
  border:1px solid #e6edf5;
}
.ngo-quick-view-info-item small,
.ngo-quick-view-status-row small{
  display:block;
  margin-bottom:.25rem;
  color:#64748b;
  font-size:.78rem;
}
.ngo-quick-view-info-item strong{
  display:block;
  color:#0f172a;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.ngo-quick-view-status-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
  margin-top:.85rem;
}
.ngo-quick-view-status-row > div{
  padding:1rem;
  border:1px solid #e6edf5;
  border-radius:18px;
  background:#fff;
}
.ngo-quick-view-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:.35rem .7rem;
  border-radius:999px;
  background:#e0f2fe;
  color:#075985;
  font-weight:700;
  font-size:.86rem;
  overflow-wrap:anywhere;
}
.ngo-quick-view-chip-warn{
  background:#fff7ed;
  color:#9a3412;
}
.ngo-quick-view-actions{
  display:flex;
  justify-content:flex-start;
  gap:.65rem;
  padding:1rem 1.5rem 1.25rem;
  border-top:1px solid #eef2f7;
  background:#fff;
}
.ngo-quick-view-open{
  overflow:hidden;
}
.min-width-0{
  min-width:0;
}
@media(max-width:575px){
  .ngo-quick-view-overlay{
    padding:.75rem;
    align-items:end;
  }
  .ngo-quick-view-modal{
    border-radius:22px 22px 0 0;
    max-height:90vh;
  }
  .ngo-quick-view-hero{
    padding:1rem;
  }
  .ngo-quick-view-content{
    padding:1rem;
    max-height:calc(90vh - 205px);
  }
  .ngo-quick-view-info-grid,
  .ngo-quick-view-status-row{
    grid-template-columns:1fr;
  }
  .ngo-quick-view-actions{
    flex-direction:column;
    padding:1rem;
  }
  .ngo-quick-view-actions .btn{
    width:100%;
  }
}

/* Organization identity in reports */
.doc-org-header{display:flex;align-items:center;gap:14px;border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:14px}
.doc-org-logo{width:78px;height:60px;border:1px solid #d1d5db;display:flex;align-items:center;justify-content:center;background:#fff}
.doc-org-logo img{max-width:72px;max-height:54px;object-fit:contain}
.doc-org-info{display:flex;flex-direction:column;gap:2px;line-height:1.35}
.doc-org-info strong{font-size:17px;font-weight:800}
.doc-org-info span{font-weight:700;color:#374151}
.doc-org-info small{color:#4b5563;font-size:11px}
.doc-org-footer{border-top:1px solid #111;margin-top:14px;padding-top:8px;text-align:center;font-size:11px;color:#374151;white-space:pre-wrap}
@media print{.doc-org-header{break-inside:avoid}.doc-org-footer{break-inside:avoid}}

/* Reports module UI/UX refinement */
.reports-module-nav{
  border:1px solid var(--ngo-soft-border,#e6edf7);
  box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.reports-tabs-list .btn{
  min-width:130px;
  justify-content:center;
}
.reports-module-hint{
  max-width:440px;
  line-height:1.6;
}
.reviewer-edit-panel{
  background:linear-gradient(135deg,#ffffff,#f8fbff);
}
.reviewer-edit-banner{
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1e3a8a;
}
.review-action-panel .form-hint{
  line-height:1.6;
}
@media(max-width:767px){
  .reports-tabs-list,
  .reports-tabs-list .btn{
    width:100%;
  }
  .reports-module-hint{
    max-width:none;
  }
  .reviewer-edit-panel .btn{
    width:100%;
  }
}


.ngo-topbar .notification-trigger{position:relative;padding:.35rem .55rem!important;min-width:42px}.ngo-topbar .notification-bell{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:#fff7ed;color:#b45309;font-size:1.2rem;line-height:1}.ngo-topbar .notification-trigger:hover .notification-bell,.ngo-topbar .notification-trigger.show .notification-bell{background:#ffedd5;color:#9a3412}.ngo-topbar .badge-notification{direction:ltr}


/* Stage 13: Organization logo sizing polish */
.ngo-auth-logo{
  width:250px;
  height:100px;
  max-width:100%;
  object-fit:contain;
  background:#fff;
  border:1px solid var(--ngo-soft-border,#e6edf7);
  border-radius:10px;
  padding:8px 14px;
  box-shadow:none!important;
}
.ngo-sidebar-brand{
  padding-inline:.75rem;
  padding-block:.85rem;
}
.ngo-sidebar-brand-link{
  align-items:flex-start!important;
  gap:.45rem!important;
}
.ngo-sidebar-logo{
  width:180px!important;
  height:72px!important;
  max-width:100%;
  flex:0 0 auto!important;
  object-fit:contain;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(230,237,247,.7);
  border-radius:10px;
  padding:6px 10px;
  box-shadow:none!important;
}
.ngo-sidebar-brand-text{
  max-width:190px;
  color:#fff;
  font-size:.9rem;
}
.doc-org-logo{
  width:150px!important;
  height:60px!important;
  border:1px solid #d1d5db;
  border-radius:8px;
  padding:5px 8px;
  box-shadow:none!important;
}
.doc-org-logo img{
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain;
}
@media(max-width:991px){
  .ngo-sidebar-logo{width:150px!important;height:60px!important}
}
@media print{
  .doc-org-logo{width:150px!important;height:60px!important;border-radius:6px!important}
}


.ngo-topbar .topbar-user-trigger{display:inline-flex;align-items:center;gap:.7rem;padding:.35rem .5rem .35rem .35rem!important;max-width:320px}
.ngo-topbar .topbar-user-info{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;min-width:0;line-height:1.15;text-align:right}
.ngo-topbar .topbar-user-name{font-weight:700;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.ngo-topbar .topbar-user-role{margin-top:.18rem;font-size:.78rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.ngo-topbar .topbar-user-avatar{width:42px;height:42px;flex:0 0 42px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;border:1px solid #cbd5e1;background:#e0f2fe;color:#0369a1}
@media(max-width:767px){.ngo-topbar .topbar-user-trigger{padding:.25rem!important;gap:.35rem}.ngo-topbar .topbar-user-avatar{width:40px;height:40px}}



.ngo-sidebar .ngo-sidebar-brand{width:100%;display:flex;justify-content:center;text-align:center;padding-inline:.75rem;margin-bottom:1rem}
.ngo-sidebar .ngo-sidebar-brand-link{width:100%;align-items:center!important;justify-content:center;text-align:center}
.ngo-sidebar .ngo-sidebar-logo{margin-inline:auto;display:block}
.ngo-sidebar .ngo-sidebar-brand-text{display:block;width:100%;text-align:center;line-height:1.35;white-space:normal}


/* Stage 23: reports header spacing + remove reports module hint */
.reports-page-header{align-items:flex-start;row-gap:.85rem}
.reports-page-header__title{padding-bottom:.15rem}
.reports-page-header__actions{margin-top:.2rem}
.reports-module-nav .card-body{justify-content:flex-start}
@media(min-width:768px){.reports-page-header__actions{margin-top:.35rem}}

/* Stage 31: polish checklist cards spacing in RTL admin forms */
.admin-checklist{
  padding: .65rem !important;
}
.admin-checklist .form-check{
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 46px;
  padding: .65rem .85rem !important;
  margin: 0;
  border-radius: 10px;
  border-bottom: 1px solid rgba(98,105,118,.14);
  background: transparent;
}
.admin-checklist .form-check:hover{
  background: rgba(37,99,235,.04);
}
.admin-checklist .form-check-input{
  position: static;
  float: none;
  margin: 0 !important;
  flex: 0 0 auto;
}
.admin-checklist .form-check-label{
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  line-height: 1.55;
  word-break: break-word;
}
.admin-checklist .form-check:last-child{
  border-bottom: 0;
}
@media(max-width:767px){
  .admin-checklist{
    max-height: 280px;
  }
  .admin-checklist .form-check{
    min-height: 48px;
    padding: .75rem .8rem !important;
  }
}


/* Stage 33A: Mobile Foundation + Calendar Mobile UX */
.calendar-mobile-agenda{display:none}
.calendar-mobile-filter-head{background:#fff;border-bottom:1px solid #eef2f7;padding:.75rem}
@media(max-width:767px){
  .page-body{padding-top:.75rem;padding-bottom:5.25rem}
  .container-xl,.container-fluid{padding-right:.85rem!important;padding-left:.85rem!important}
  .page-header,.ngo-calendar-header{margin-bottom:.85rem!important}
  .ngo-calendar-header .row{gap:.55rem}
  .ngo-calendar-header .col-auto{width:100%}
  .ngo-calendar-header .btn-list,.ngo-calendar-header .btn{width:100%}
  .ngo-calendar-nav-card{border-radius:18px;position:sticky;top:64px;z-index:6;box-shadow:0 10px 24px rgba(15,23,42,.06)}
  .ngo-calendar-nav-card .card-body{padding:.55rem}
  .ngo-calendar-nav-card .nav-pills{display:flex;gap:.45rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.15rem}
  .ngo-calendar-nav-card .nav-link{border-radius:999px;background:#f8fafc;min-width:max-content;scroll-snap-align:start;padding:.55rem .85rem}
  .ngo-calendar-nav-card .nav-link.active{box-shadow:0 8px 18px rgba(37,99,235,.16)}
  .calendar-filters-v2{border-radius:18px;overflow:hidden}
  .calendar-filters-v2:not(.is-open) [data-mobile-filter-body]{display:none}
  .calendar-filters-v2 .card-body{padding:.85rem}
  .ngo-calendar-filter-grid{display:grid!important;grid-template-columns:1fr!important;gap:.75rem!important}
  .ngo-calendar-filter-field .form-label{font-weight:700;margin-bottom:.35rem}
  .ngo-calendar-filter-field .form-control,.ngo-calendar-filter-field .form-select{min-height:44px}
  .calendar-month-v2{display:none!important}
  .calendar-mobile-agenda{display:grid;gap:.85rem}
  .calendar-mobile-agenda-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:linear-gradient(135deg,#fff,#eef6ff);border:1px solid #e6edf7;border-radius:18px;padding:1rem;box-shadow:0 10px 28px rgba(15,23,42,.05)}
  .calendar-mobile-agenda-title h3{margin:0;font-size:1.1rem;font-weight:800;color:#0f172a}
  .calendar-mobile-day{background:#fff;border:1px solid #e6edf7;border-radius:18px;overflow:hidden;box-shadow:0 10px 26px rgba(15,23,42,.045)}
  .calendar-mobile-day-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:#f8fafc;border-bottom:1px solid #edf2f7}
  .calendar-mobile-day-head strong{font-size:1rem;color:#0f172a}
  .calendar-mobile-day-head span{font-size:.82rem;color:#64748b;font-weight:700}
  .calendar-mobile-day-events{display:grid;gap:.7rem;padding:.85rem}
  .ngo-activity-card{border-radius:16px;padding:.85rem;box-shadow:0 10px 22px rgba(15,23,42,.055)}
  .ngo-activity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
  .ngo-activity-title{display:block;font-size:.98rem;line-height:1.55;color:#0f172a}
  .ngo-activity-status{flex:0 0 auto}
  .ngo-activity-footer{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid #edf2f7}
  .ngo-activity-footer .btn{min-height:38px;padding:.45rem .85rem}
  .calendar-week-v2,.calendar-week-grid{grid-template-columns:1fr!important;overflow-x:visible!important}
  .calendar-week-day,.calendar-week-card{min-width:0!important;border-radius:18px}
  .calendar-agenda-date{position:static;top:auto;border-radius:16px;margin-top:.35rem}
  .calendar-timeline:before{display:none}
  .calendar-timeline .ngo-activity-card{margin-right:0}
  .btn,.form-control,.form-select{font-size:.95rem}
  .card{border-radius:18px}
  .table-responsive{border-radius:18px}
  .mobile-bottom-nav{box-shadow:0 -10px 28px rgba(15,23,42,.08);padding:.5rem .45rem calc(.5rem + env(safe-area-inset-bottom))}
  .mobile-bottom-nav a{border-radius:14px;padding:.35rem .2rem}
  .mobile-bottom-nav a.active{background:#eff6ff}
}

/* Stage 33B: Mobile App Navigation + Calendar Redesign */
.ngo-mobile-appbar,.ngo-mobile-more-sheet,.ngo-mobile-sheet-backdrop,.calendar-mobile-app{display:none}
@media(max-width:767px){
  body.ngo-mobile-sheet-open{overflow:hidden}
  .ngo-sidebar,.ngo-topbar{display:none!important}
  .ngo-mobile-appbar{position:sticky;top:0;z-index:1060;display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:58px;padding:.55rem .85rem;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid #e6edf7;box-shadow:0 8px 24px rgba(15,23,42,.06)}
  .ngo-mobile-app-title{min-width:0;flex:1;text-align:center;text-decoration:none;color:#0f172a;font-weight:800;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ngo-mobile-icon-btn{width:42px;height:42px;border:1px solid #e2e8f0;border-radius:15px;background:#fff;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800;box-shadow:0 8px 18px rgba(15,23,42,.06)}
  .page-body{padding-top:.75rem!important;padding-bottom:6.4rem!important}
  .mobile-bottom-nav.ngo-mobile-tabbar{display:grid!important;grid-template-columns:repeat(5,1fr);gap:.3rem;position:fixed;right:.65rem;left:.65rem;bottom:.65rem;z-index:1060;background:rgba(255,255,255,.96);border:1px solid #e6edf7;border-radius:24px;padding:.45rem calc(.45rem + env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) calc(.45rem + env(safe-area-inset-left));box-shadow:0 -10px 32px rgba(15,23,42,.14);backdrop-filter:saturate(180%) blur(14px)}
  .mobile-bottom-nav.ngo-mobile-tabbar a,.mobile-bottom-nav.ngo-mobile-tabbar button{border:0;background:transparent;text-decoration:none;color:#64748b;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.12rem;min-height:52px;padding:.25rem .1rem;font-family:inherit}
  .mobile-bottom-nav.ngo-mobile-tabbar a span,.mobile-bottom-nav.ngo-mobile-tabbar button span{font-size:1.18rem;line-height:1}
  .mobile-bottom-nav.ngo-mobile-tabbar a small,.mobile-bottom-nav.ngo-mobile-tabbar button small{font-size:.7rem;font-weight:700;line-height:1.2}
  .mobile-bottom-nav.ngo-mobile-tabbar a.active,.mobile-bottom-nav.ngo-mobile-tabbar button.active{background:#eff6ff;color:#1d4ed8}
  .ngo-mobile-sheet-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.46);z-index:1070;opacity:0;transition:.18s ease}
  .ngo-mobile-sheet-backdrop.is-open{display:block;opacity:1}
  .ngo-mobile-more-sheet{position:fixed;right:0;left:0;bottom:0;z-index:1080;display:block;background:#fff;border-radius:28px 28px 0 0;border:1px solid #e6edf7;box-shadow:0 -20px 60px rgba(15,23,42,.22);padding:0 1rem calc(1rem + env(safe-area-inset-bottom));transform:translateY(110%);transition:transform .22s ease;max-height:82vh;overflow:auto}
  .ngo-mobile-more-sheet.is-open{transform:translateY(0)}
  .ngo-mobile-sheet-handle{width:44px;height:5px;border-radius:999px;background:#cbd5e1;margin:.75rem auto .35rem}
  .ngo-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .2rem 1rem;border-bottom:1px solid #edf2f7;margin-bottom:.85rem}
  .ngo-mobile-sheet-head strong{display:block;font-size:1.1rem;color:#0f172a}
  .ngo-mobile-more-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
  .ngo-mobile-more-item{border:1px solid #e6edf7;background:#f8fafc;border-radius:18px;padding:.85rem;text-decoration:none;color:#0f172a;display:flex;gap:.65rem;align-items:center;min-height:64px;text-align:right;width:100%;font-family:inherit}
  .ngo-mobile-more-item span{width:36px;height:36px;border-radius:14px;background:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(15,23,42,.05)}
  .ngo-mobile-more-item strong{font-size:.9rem;line-height:1.35}
  .ngo-mobile-logout{color:#b91c1c;background:#fff7f7}

  .calendar-month-v2{display:none!important}
  .calendar-mobile-agenda{display:none!important}
  .calendar-mobile-app{display:block}
  .calendar-mobile-app-hero{background:linear-gradient(135deg,#17213a,#2563eb);color:#fff;border-radius:24px;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-shadow:0 18px 44px rgba(37,99,235,.18);margin-bottom:.85rem}
  .calendar-mobile-app-hero .page-pretitle{color:#bfdbfe}.calendar-mobile-app-hero h3{margin:0;font-size:1.15rem;font-weight:900;color:#fff}
  .calendar-mobile-month-actions{display:flex;align-items:center;gap:.35rem;flex:0 0 auto}.calendar-mobile-month-actions .btn{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3);color:#fff;box-shadow:none}.calendar-mobile-month-actions .btn-outline-primary{color:#fff;border-color:rgba(255,255,255,.35)}
  .calendar-mobile-day-strip{display:flex;gap:.55rem;overflow-x:auto;padding:.15rem .05rem .75rem;margin-bottom:.4rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.calendar-mobile-day-strip::-webkit-scrollbar{display:none}
  .calendar-mobile-day-chip{min-width:64px;border:1px solid #e6edf7;background:#fff;border-radius:22px;padding:.55rem .35rem;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.14rem;scroll-snap-align:center;color:#475569;box-shadow:0 10px 22px rgba(15,23,42,.045);position:relative;font-family:inherit}
  .calendar-mobile-day-chip .calendar-mobile-day-name{font-size:.72rem;font-weight:800;color:#64748b}.calendar-mobile-day-chip strong{font-size:1.12rem;font-weight:900;color:#0f172a;line-height:1}.calendar-mobile-day-chip em{font-style:normal;position:absolute;top:-6px;left:-4px;background:#2563eb;color:#fff;min-width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:900;border:2px solid #fff}.calendar-mobile-day-chip i{width:5px;height:5px;border-radius:50%;background:#cbd5e1;margin-top:.16rem}.calendar-mobile-day-chip.today{border-color:#93c5fd}.calendar-mobile-day-chip.active{background:#1d4ed8;border-color:#1d4ed8;color:#fff;transform:translateY(-1px);box-shadow:0 16px 28px rgba(37,99,235,.22)}.calendar-mobile-day-chip.active span,.calendar-mobile-day-chip.active strong{color:#fff}.calendar-mobile-day-chip.active i{background:#bfdbfe}.calendar-mobile-day-chip.active em{background:#fff;color:#1d4ed8}
  .calendar-mobile-selected-area{display:grid;gap:.8rem}.calendar-mobile-day-panel{background:#fff;border:1px solid #e6edf7;border-radius:24px;padding:.9rem;box-shadow:0 12px 28px rgba(15,23,42,.055)}.calendar-mobile-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid #edf2f7;margin-bottom:.8rem}.calendar-mobile-panel-head span{display:block;color:#64748b;font-size:.82rem;font-weight:800}.calendar-mobile-panel-head strong{display:block;color:#0f172a;font-size:1.05rem;font-weight:900}.calendar-mobile-panel-events{display:grid;gap:.75rem}.calendar-mobile-empty-day{text-align:center;padding:1.5rem .75rem;color:#64748b}.calendar-mobile-empty-day h3{font-size:1rem;color:#0f172a;margin:.55rem 0 .25rem}.calendar-mobile-empty-day p{font-size:.88rem;line-height:1.7;margin:0 auto .85rem;max-width:280px}
  .ngo-calendar-nav-card{display:none!important}
}
