/* THE POPE FIRM — Dashboard CSS — Dark Mode + Scroll Fix */
:root {
  --green:#009345;--green-dark:#007336;--green-deep:#005a28;
  --green-light:#e6f5ed;--green-mid:#00b356;
  --navy:#2d334a;--navy-dark:#1b1f2d;
  --red:#dc2626;--amber:#f59e0b;
  --sidebar-w:252px;--topbar-h:58px;
}
body{font-family:'DM Sans',system-ui,sans-serif;}
.firm-title{font-family:'Playfair Display',Georgia,serif;color:var(--green-dark);}
[data-bs-theme="dark"] .firm-title{color:#4cd98a;}

/* BUTTONS */
.btn-green{background:var(--green);color:#fff;border:none;font-weight:600;transition:background .15s;}
.btn-green:hover,.btn-green:focus{background:var(--green-dark);color:#fff;}
.btn-pope{background:var(--green);color:#fff;border:none;font-weight:600;border-radius:6px;padding:.45rem 1rem;font-size:.85rem;transition:all .15s;display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.btn-pope:hover{background:var(--green-dark);color:#fff;}
.btn-pope-outline{background:transparent;color:var(--green);border:1.5px solid var(--green);font-weight:600;border-radius:6px;padding:.4rem .9rem;font-size:.85rem;transition:all .15s;display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-decoration:none;}
.btn-pope-outline:hover{background:var(--green);color:#fff;}

/* THEME TOGGLES */
.btn-theme-toggle{position:absolute;top:16px;right:16px;background:none;border:1px solid var(--bs-border-color);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--bs-body-color);font-size:15px;}
.btn-theme-toggle:hover{background:var(--bs-secondary-bg);}
.btn-theme-toggle-sidebar{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:8px;color:rgba(255,255,255,.8);padding:7px 14px;font-size:13px;cursor:pointer;width:100%;transition:background .15s;}
.btn-theme-toggle-sidebar:hover{background:rgba(255,255,255,.18);color:#fff;}
.btn-topbar-icon{background:none;border:1px solid var(--bs-border-color);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--bs-secondary-color);font-size:15px;transition:all .15s;flex-shrink:0;}
.btn-topbar-icon:hover{background:var(--bs-secondary-bg);color:var(--green-dark);border-color:var(--green);}
.field-label{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--bs-secondary-color);margin-bottom:6px;}

/* LOGIN */
.login-page{background:var(--green-deep);}
[data-bs-theme="dark"] .login-page{background:#021a0d;}
.login-page .card{border-radius:14px;position:relative;overflow:hidden;}
.shadow-xl{box-shadow:0 24px 64px rgba(0,0,0,.35)!important;}
.login-accent-bar{height:4px;background:linear-gradient(90deg,var(--green),var(--green-mid));}
.login-logo-square{width:56px;height:56px;background:var(--green);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-weight:800;font-size:1.65rem;border-radius:8px;}

/* SIDEBAR */
.dashboard-body{display:flex;min-height:100vh;}
.sidebar{width:var(--sidebar-w);background:var(--navy-dark);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:300;overflow-y:auto;transition:transform .25s cubic-bezier(.4,0,.2,1);}
[data-bs-theme="dark"] .sidebar{background:#0d0f14;}
.sidebar-header{display:flex;align-items:center;gap:12px;padding:20px 20px 18px;border-bottom:1px solid rgba(255,255,255,.08);}
.sidebar-logo-sq{width:38px;height:38px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-weight:800;font-size:1.15rem;border-radius:6px;flex-shrink:0;}
.sidebar-firm{font-family:'Playfair Display',serif;font-size:15px;font-weight:600;color:#fff;line-height:1.2;}
.sidebar-sub{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:2px;}
.sidebar-nav{padding:12px 0;flex:1;}
.sidebar-link{display:flex;align-items:center;gap:10px;padding:10px 20px;color:rgba(255,255,255,.65);text-decoration:none;font-size:14px;font-weight:500;transition:all .15s;border-left:3px solid transparent;}
.sidebar-link i{font-size:16px;width:18px;text-align:center;}
.sidebar-link:hover{background:rgba(255,255,255,.08);color:#fff;}
.sidebar-link.active{background:rgba(255,255,255,.1);color:#fff;border-left-color:var(--green-mid);}
.sidebar-logout{color:rgba(255,120,120,.75);}
.sidebar-logout:hover{color:#ff9090;background:rgba(255,80,80,.08);}
.sidebar-footer{padding:16px 16px 20px;}

/* MAIN — critical scroll fix */
.main-wrap{margin-left:var(--sidebar-w);flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:var(--topbar-h);border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg);position:sticky;top:0;z-index:100;display:flex;align-items:center;flex-shrink:0;}
.topbar-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:600;color:var(--green-dark);}
[data-bs-theme="dark"] .topbar-title{color:#4cd98a;}

/* STATS */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;}
.stat-card{border-radius:10px!important;background:var(--bs-secondary-bg)!important;border-left:3px solid var(--green)!important;}
.stat-label{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--bs-secondary-color);margin-bottom:6px;}
.stat-value{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--green-dark);line-height:1;}
[data-bs-theme="dark"] .stat-value{color:#4cd98a;}

/* FILTER PANEL */
.filter-panel{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:10px;padding:1rem;}
.filter-panel label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--bs-secondary-color);margin-bottom:4px;display:block;}
.filter-panel .form-control:focus,.filter-panel .form-select:focus{border-color:var(--green);box-shadow:0 0 0 .2rem rgba(0,147,69,.12);}
.filter-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.chip{display:inline-flex;align-items:center;gap:4px;background:var(--green-light);color:var(--green-dark);padding:3px 10px 3px 12px;border-radius:20px;font-size:12px;font-weight:600;}
[data-bs-theme="dark"] .chip{background:rgba(0,147,69,.2);color:#4cd98a;}
.chip button{background:none;border:none;padding:0;color:inherit;cursor:pointer;font-size:13px;opacity:.7;}
.chip button:hover{opacity:1;}

/* TOOLBAR */
.toolbar-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:.6rem 0;}
.results-count{font-size:13px;color:var(--bs-secondary-color);}
.action-buttons{display:flex;gap:4px;}
.btn-icon-sm{background:none;border:1px solid var(--bs-border-color);border-radius:6px;padding:4px 10px;font-size:12px;color:var(--bs-secondary-color);cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-weight:500;transition:all .15s;}
.btn-icon-sm:hover{border-color:var(--green);color:var(--green-dark);background:var(--green-light);}
[data-bs-theme="dark"] .btn-icon-sm:hover{background:rgba(0,147,69,.15);color:#4cd98a;}

/* TABLE */
.table-wrap{border:1px solid var(--bs-border-color);border-radius:0 0 10px 10px;overflow-x:auto;}
.table-head th{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap;cursor:pointer;user-select:none;background:var(--bs-secondary-bg);color:var(--bs-secondary-color);padding:10px 12px;border-bottom:2px solid var(--bs-border-color);}
.table-head th:hover{color:var(--green-dark);}
.table-head th.sort-asc::after{content:' ↑';opacity:.7;}
.table-head th.sort-desc::after{content:' ↓';opacity:.7;}
.sort-indicator{opacity:.5;font-size:10px;}
.table td{padding:9px 12px;vertical-align:middle;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}

/* STATUS */
.status-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:3px 10px;border-radius:20px;}
.status-scheduled{background:var(--green-light);color:var(--green-dark);}
[data-bs-theme="dark"] .status-scheduled{background:rgba(0,147,69,.2);color:#4cd98a;}
.status-postponed{background:#fff8e1;color:#8a5a00;}
[data-bs-theme="dark"] .status-postponed{background:rgba(245,158,11,.2);color:#f59e0b;}

.days-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;margin-left:6px;vertical-align:middle;}
.days-today{background:var(--red);color:#fff;}
.days-soon{background:#fef3c7;color:#92400e;}
[data-bs-theme="dark"] .days-soon{background:rgba(245,158,11,.2);color:#f59e0b;}
.days-future{background:var(--green-light);color:var(--green-dark);}
[data-bs-theme="dark"] .days-future{background:rgba(0,147,69,.15);color:#4cd98a;}
.days-past{background:var(--bs-secondary-bg);color:var(--bs-secondary-color);}

/* PAGINATION */
.pagination-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding:.75rem 0;}
.page-size-selector{font-size:13px;color:var(--bs-secondary-color);display:flex;align-items:center;gap:6px;}
.page-size-selector select{border:1px solid var(--bs-border-color);border-radius:6px;padding:3px 8px;font-size:13px;background:var(--bs-body-bg);color:var(--bs-body-color);}
.pagination .page-link{font-size:13px;min-width:34px;text-align:center;color:var(--green-dark);}
.pagination .page-item.active .page-link{background:var(--green);border-color:var(--green);color:#fff;}

/* MULTI-SELECT */
.ms-dropdown{position:relative;}
.ms-trigger{display:flex;align-items:center;gap:6px;padding:.45rem .7rem;border:1px solid var(--bs-border-color);border-radius:6px;cursor:pointer;font-size:.875rem;background:var(--bs-body-bg);color:var(--bs-body-color);min-height:38px;}
.ms-trigger.open{border-color:var(--green);box-shadow:0 0 0 .15rem rgba(0,147,69,.15);}
.ms-trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ms-trigger-text.is-none{color:var(--bs-secondary-color);}
.ms-trigger-arrow{font-size:10px;opacity:.5;flex-shrink:0;}
.ms-trigger-count{background:var(--green);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:10px;}
.ms-panel{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:8px;margin-top:4px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:200;max-height:260px;overflow-y:auto;}
.ms-panel.open{display:block;}
.ms-search-wrap{padding:8px 8px 4px;position:sticky;top:0;background:var(--bs-body-bg);z-index:1;}
.ms-search{width:100%;border:1px solid var(--bs-border-color);border-radius:6px;padding:6px 10px;font-size:13px;background:var(--bs-body-bg);color:var(--bs-body-color);}
.ms-search:focus{outline:none;border-color:var(--green);}
.ms-options{padding:4px 0;}
.ms-option{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;transition:background .1s;}
.ms-option:hover{background:var(--bs-secondary-bg);}
.ms-checkbox{width:18px;height:18px;border:2px solid var(--bs-border-color);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;color:transparent;flex-shrink:0;transition:all .15s;}
.ms-option.selected .ms-checkbox{background:var(--green);border-color:var(--green);color:#fff;}
.ms-panel-actions{display:flex;gap:8px;padding:6px 12px;border-top:1px solid var(--bs-border-color);position:sticky;bottom:0;background:var(--bs-body-bg);}
.ms-action-btn{background:none;border:none;font-size:12px;color:var(--green);font-weight:600;cursor:pointer;padding:2px 0;}
.ms-action-btn:hover{text-decoration:underline;}
.ms-no-results{padding:12px;text-align:center;color:var(--bs-secondary-color);font-size:13px;}

/* MOBILE CARDS */
.mobile-cards{display:none;}
.mobile-card{border:1px solid var(--bs-border-color);border-radius:10px;overflow:hidden;margin-bottom:10px;background:var(--bs-body-bg);}
.mobile-card-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bs-secondary-bg);border-bottom:1px solid var(--bs-border-color);}
.mc-county{font-weight:600;font-size:13px;color:var(--green-dark);}
[data-bs-theme="dark"] .mc-county{color:#4cd98a;}
.mobile-card-body{padding:10px 14px;}
.mc-row{display:flex;justify-content:space-between;padding:4px 0;font-size:13px;}
.mc-label{color:var(--bs-secondary-color);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;}
.mc-value{text-align:right;flex:1;margin-left:12px;}
.mobile-card-footer{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--bs-border-color);}

/* MODALS */
.modal-section{margin-bottom:1.25rem;}
.modal-section-title{font-family:'Playfair Display',serif;font-weight:700;font-size:1rem;color:var(--green-dark);margin-bottom:.75rem;}
[data-bs-theme="dark"] .modal-section-title{color:#4cd98a;}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.modal-field{font-size:13px;}
.modal-field .field-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--bs-secondary-color);margin-bottom:2px;display:block;}
.modal-field .field-value{color:var(--bs-body-color);word-break:break-word;}
.original-notice-box{background:var(--bs-secondary-bg);border:1px solid var(--bs-border-color);border-radius:6px;padding:12px;font-family:'Courier New',monospace;font-size:12px;max-height:300px;overflow-y:auto;white-space:pre-wrap;margin-top:8px;}
#pdfViewerModal .modal-body iframe{width:100%;height:100%;border:none;}
details>summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--green);list-style:none;padding:6px 0;}
details>summary::-webkit-details-marker{display:none;}
details>summary::before{content:'▸';display:inline-block;margin-right:6px;transition:transform .15s;}
details[open]>summary::before{transform:rotate(90deg);}

/* BANNERS */
.ds-banner{display:flex;align-items:center;gap:.6rem;padding:.65rem 1rem;border-radius:8px;font-size:.85rem;border:1px solid transparent;}
.ds-banner i{font-size:1rem;flex-shrink:0;}
.ds-banner code{background:rgba(0,0,0,.05);padding:.1rem .35rem;border-radius:3px;font-size:.85em;color:inherit;}
.ds-banner-success{background:var(--green-light);color:var(--green-dark);border-color:rgba(0,147,69,.2);}
[data-bs-theme="dark"] .ds-banner-success{background:rgba(0,147,69,.12);color:#4cd98a;}
.ds-banner-warning{background:#fff8e1;color:#8a5a00;border-color:rgba(245,158,11,.3);}
[data-bs-theme="dark"] .ds-banner-warning{background:rgba(245,158,11,.12);color:#f59e0b;}

/* EMPTY STATE */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--bs-secondary-color);}
.empty-state i{font-size:2.5rem;margin-bottom:.75rem;display:block;opacity:.5;}
.empty-state h4{font-family:'Playfair Display',serif;color:var(--bs-body-color);}

/* LOADING */
.pope-spinner{width:48px;height:48px;border:4px solid var(--green-light);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 1rem;}
@keyframes spin{to{transform:rotate(360deg);}}
.spin-once{animation:spin .7s linear;}

/* GREEN HELPERS */
.bg-green-subtle{background:var(--green-light)!important;}
.text-green{color:var(--green-dark)!important;}
[data-bs-theme="dark"] .bg-green-subtle{background:rgba(0,147,69,.15)!important;}
[data-bs-theme="dark"] .text-green{color:#4cd98a!important;}

/* PIN BADGE */
.pin-badge{background:var(--green-light);color:var(--green-dark);border-radius:6px;padding:3px 10px;font-size:13px;font-weight:600;}

/* OVERLAY */
.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:299;display:none;}
.sidebar-overlay.active{display:block;}

/* APP TABS */
.app-tab{display:none;}
.app-tab.active-tab{display:block;}

/* RESPONSIVE */
@media(max-width:767px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.open{transform:translateX(0);}
  .main-wrap{margin-left:0;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .table-wrap{display:none;}
  .mobile-cards{display:block;}
  .modal-grid{grid-template-columns:1fr;}
}
@media(max-width:480px){
  .stats-row{grid-template-columns:1fr;}
}
