/* ── VARIABLES ── */
:root{
  --forest:#1a3a2e;--sage:#4a7c59;--mint:#a8d5b5;--cream:#f5f0e8;--warm:#ede7da;
  --gold:#c9932a;--red:#c94040;--sky:#2264a8;--amber:#c9932a;
  --text:#1c2b22;--muted:#5a7060;--border:#d4e0d0;--white:#fff;
  --bg-page:#f0ece3;
  --cal-booked:#2264a8;--cal-pending:#ea580c;--cal-community:#166534;--cal-workshop:#6d28d9;--cal-activity:#ca8a04;--cal-other:#be185d;
  --sidebar:240px;
}

/* ── ROLE-BASED NAV VISIBILITY (CSS failsafe — JS also enforces this) ── */
/* PRO role: hide management-only pages */
body[data-role="pro"] #nav-mgmt [data-page="dashboard"],
body[data-role="pro"] #nav-mgmt [data-page="enquiries"],
body[data-role="pro"] #nav-mgmt [data-page="bookings"],
body[data-role="pro"] #nav-mgmt [data-page="maintenance"],
body[data-role="pro"] #nav-mgmt [data-page="inventory"],
body[data-role="pro"] #nav-mgmt [data-page="financials"],
body[data-role="pro"] #nav-mgmt [data-page="documents"],
body[data-role="pro"] #nav-mgmt [data-page="contacts"],
body[data-role="pro"] #nav-mgmt [data-page="manage-spaces"],
body[data-role="pro"] #nav-mgmt [data-page="centre-settings"],
body[data-role="pro"] #nav-mgmt [data-page="user-management"],
body[data-role="pro"] #nav-mgmt [data-page="backup-export"],
body[data-role="pro"] #nav-mgmt [data-page="recycle-bin"],
body[data-role="pro"] #nav-mgmt [data-page="activity-log"]{display:none!important;}
/* PRO keeps the Settings toggle (Help is inside it); hide the "System" sub-label */
body[data-role="pro"] #settings-dd .ni-sub-lbl{display:none!important;}
/* Auditor role: hide write-only pages */
body[data-role="auditor"] #nav-mgmt [data-page="contacts"],
body[data-role="auditor"] #nav-mgmt [data-page="manage-events"],
body[data-role="auditor"] #nav-mgmt [data-page="manage-notices"],
body[data-role="auditor"] #nav-mgmt [data-page="manage-donors"],
body[data-role="auditor"] #nav-mgmt [data-page="manage-spaces"],
body[data-role="auditor"] #nav-mgmt [data-page="manage-directory"],
body[data-role="auditor"] #nav-mgmt [data-page="manage-gallery"],
body[data-role="auditor"] #nav-mgmt [data-page="user-management"],
body[data-role="auditor"] #nav-mgmt [data-page="backup-export"],
body[data-role="auditor"] #nav-mgmt [data-page="recycle-bin"],
body[data-role="auditor"] #nav-mgmt [data-page="centre-settings"]{display:none!important;}

/* ── DARK MODE TOGGLE BUTTON ── */
.dm-toggle{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);border-radius:8px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:rgba(255,255,255,0.5);transition:all .15s;flex-shrink:0;}
.dm-toggle:hover{background:rgba(255,255,255,0.15);border-color:rgba(255,255,255,0.3);}

/* ── DARK MODE OVERRIDES ──
   Warm dark palette — earthy brown/green tones to match the centre's identity.
   Surface:  #252018 · Secondary: #1e1a12 · Hover: #2e2820
   Border:   #3c3428 · Input border: #4a4030
   Text:     #e5ddd0 · Muted: #8a8070
*/
body.dark{background:#1c1914;color:#e5ddd0;}
body.dark{--cream:#252018;--warm:#1e1a12;--forest:#6db88a;--sage:#5a9e74;--muted:#8a8070;--border:#3c3428;--text:#e5ddd0;--bg-page:#1c1914;}
body.dark .topbar{background:#1e1a12;border-color:#3c3428;}
body.dark .tb-title{color:#a8d5b5;}
body.dark .tb-slogan{font-family:'Playfair Display',serif;font-size:22px;font-weight:900;font-style:italic;letter-spacing:0.3px;background:linear-gradient(105deg,#1a3a2e 0%,#2d7a4f 35%,#c9932a 70%,#e8b44a 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 1px 3px rgba(26,58,46,0.22));}
.tb-sub{color:#8a8070;}
body.dark .sidebar{background:#0d1510;}
body.dark .content{background:#1c1914;}
body.dark .card{background:#252018;color:#e5ddd0;border-color:#3c3428;}
body.dark .mbox{background:#252018;color:#e5ddd0;}
body.dark .contract-body2{background:#252018;border-color:#3c3428;}
body.dark .ct-sec{border-bottom-color:#3c3428;}
body.dark .ct-tbl tbody td{color:#e5ddd0;}
body.dark .ct-tbl tbody tr{border-bottom-color:#3c3428;}
body.dark .ct-tbl tfoot td{background:#1e1e3a;}
body.dark .ct-cancel-tbl td,.ct-cancel-tbl th{border-color:#3c3428;}
body.dark .ct-row-lbl{color:#8a8070;}
body.dark .ct-cancel-tbl th{background:#1e1e3a;}
body.dark .ct-footer-note{color:#8a8070;}
body.dark .mo{background:rgba(0,0,0,.75);}
body.dark .pvcc-table tbody tr{background:#252018;color:#e5ddd0;}
body.dark .pvcc-table tbody tr:hover{background:#2e2820;}
body.dark .pvcc-table thead tr{background:#0e1a10;}
body.dark .pvcc-table tbody td{color:#e5ddd0;border-bottom-color:#3c3428;}
body.dark .pvcc-table tbody tr:last-child td{border-bottom:none;}
body.dark input.form-inp,body.dark select.form-inp,body.dark textarea.form-inp{background:#252018;color:#e5ddd0;border-color:#4a4030;}
body.dark .filter-bar{background:#1e1a12;border-color:#3c3428;}
body.dark .filter-bar input,body.dark .filter-bar select{background:#252018;color:#e5ddd0;border-color:#4a4030;}
body.dark .sc{background:#252018;border-color:#3c3428;}
body.dark .sc-val{color:#e5ddd0;}
body.dark .sc-sub{color:#8a8070;}
body.dark .chart-wrap{background:#252018;border-color:#3c3428;color:#e5ddd0;}
body.dark .btn-secondary{background:#2e2820;color:#e5ddd0;border-color:#4a4030;}
body.dark .btn-secondary:hover{background:#38301e;}
body.dark .btn-outline{background:none;border-color:#4a4030;color:#8a8070;}
body.dark .vtoggle{background:#1e1a12;}
body.dark .vbtn.active{background:#2e2820;color:#a8d5b5;}
body.dark .uchip{background:#1e1a12;color:#e5ddd0;}
body.dark .home-hero{opacity:.95;}
body.dark .info-card{background:#252018;border-color:#3c3428;}
body.dark .info-title{color:#a8d5b5;}
body.dark .info-text{color:#8a8070;}
body.dark .notice-card{background:#252018;border-color:#3c3428;}
body.dark .notice-title{color:#a8d5b5;}
body.dark .notice-text{color:#b8b0a0;}
body.dark .notice-meta{color:#8a8070;}
body.dark .evc{background:#252018;border-color:#3c3428;}
body.dark .evt-title{color:#a8d5b5;}
body.dark .evt-desc{color:#8a8070;}
body.dark .sp-card{background:#252018;border-color:#3c3428;}
body.dark .sp-name{color:#a8d5b5;}
body.dark .sp-body{background:#252018;}
body.dark .sp-foot{background:#2e2820;border-color:#3c3428;}
body.dark .cal-wrap{background:#252018;border-color:#3c3428;}
body.dark .cd{border-color:#3c3428;}
body.dark .cd:hover{background:#2e2820;}
body.dark .cdn{background:#1e1a12;color:#8a8070;border-color:#3c3428;}
body.dark .dn{color:#e5ddd0;}
body.dark .cd.om .dn{color:#4a4030;}
body.dark .cd.today{background:rgba(168,213,181,0.07);}
body.dark .kb-col-todo,body.dark .kb-col-inprogress,body.dark .kb-col-done{background:#1e1a12;border-color:#3c3428;}
body.dark .kb-card{background:#252018;border-color:#3c3428;}
body.dark .kb-card-title{color:#e5ddd0;}
body.dark .kb-meta{color:#8a8070;}
body.dark .enq-card{background:#252018;border-color:#3c3428;}
body.dark .enq-name{color:#e5ddd0;}
body.dark .enq-msg{color:#b8b0a0;}
body.dark .bk-summary{background:#1e1a12;border-color:#3c3428;}
body.dark .bks-val{color:#a8d5b5;}
body.dark .bks-lbl{color:#8a8070;}
body.dark .doc-cat-tile{background:#252018;border-color:#3c3428;color:#e5ddd0;}
body.dark .doc-cat-tile.active{background:#0e1a10;border-color:#7ec8a0;}
body.dark .dct-label{color:#e5ddd0;}
body.dark .mgmt-card{background:#252018;border-color:#3c3428;}
body.dark .tw{background:#252018;border-color:#3c3428;}
body.dark .mgmt-card .filter-bar select,body.dark .mgmt-card .filter-bar input{background:#1e1a12;color:#e5ddd0;border-color:#4a4030;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8070' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;}
body.dark .dir-card{background:#252018;border-color:#3c3428;}
body.dark .dir-name{color:#a8d5b5;}
body.dark .dir-neighbourhood{background:#1e1a12;color:#a8d5b5;}
body.dark .login-box{background:#252018;color:#e5ddd0;}
body.dark .login-title{color:#a8d5b5;}
body.dark .login-hint{background:#0e1a10;color:#7ec8a0;}
body.dark .form-inp{background:#252018;color:#e5ddd0;border-color:#4a4030;}
body.dark .form-inp:focus{border-color:#7ec8a0;}
body.dark select.form-inp{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8070' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;-webkit-appearance:none;appearance:none;}
body.dark .dm-toggle{border-color:#4a4030;color:#a8d5b5;}
body.dark .dm-toggle:hover{background:#2e2820;}
body.dark .gal-card{background:#252018;border-color:#3c3428;}
body.dark .gal-cap{color:#8a8070;}
body.dark .fc{background:#252018;border-color:#3c3428;}
body.dark .occ-bar-bg{background:#2e2820;}
body.dark .contact-strip{background:#0e1a10;}
body.dark .cur-pre{color:#8a8070;}
body.dark .msec{border-color:#4a4030;color:#8a8070;}
body.dark th{background:#1e1a12;color:#8a8070;border-color:#3c3428;}
body.dark td{border-color:#3c3428;}
body.dark tr:hover td{background:rgba(168,213,181,0.04);}
body.dark .bk-detail-section{background:#1e1a12;border-color:#3c3428;}
body.dark .pay-row{border-color:#3c3428;}
/* Action dropdown / more-menu dark mode */
body.dark .more-menu{background:#252018;border-color:#3c3428;}
body.dark .more-menu button{color:#e5ddd0;}
body.dark .more-menu button:hover{background:#2e2820;}
body.dark .more-menu button.danger{color:#e88080;}
body.dark .more-menu button.danger:hover{background:#2a1a1a!important;}
/* Homepage dark mode */
body.dark .home-section{background:#252018;}
body.dark .home-section.alt{background:#1e1a12;}
body.dark .home-section-title{color:#a8d5b5;}
body.dark .home-ev-card{background:#2e2820;border-color:#3c3428;}
body.dark .home-space-card{background:#2e2820;border-color:#3c3428;}
body.dark .home-fr-card{background:#2e2820;border-color:#3c3428;}
body.dark .home-notice-card{background:#2e2820;border-color:#3c3428;}
body.dark .home-notice-title{color:#a8d5b5;}
body.dark .home-notice-body{color:#b8b0a0;}
body.dark .home-stats{background:#0d1510;}
body.dark .home-gallery-grid img{opacity:.85;}
/* Guard view: override hardcoded inline styles for dark mode */
body.dark #guard-view [style*="background:#f5f0e8"],body.dark #guard-view [style*="background:#f0ece3"]{background:#252018!important;color:#e5ddd0!important;}
body.dark #guard-view [style*="background:#fff"]{background:#252018!important;}
body.dark #guard-view [style*="color:#1a3a2e"],body.dark #guard-view [style*="color:#5a7060"],body.dark #guard-view [style*="color:#4a7c59"]{color:#e5ddd0!important;}
body.dark #guard-view [style*="border-color:#a8d5b5"]{border-color:#3c3428!important;}
body.dark #guard-view [style*="border:1px solid #a8d5b5"]{border-color:#3c3428!important;}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Outfit',sans-serif;background:var(--bg-page);color:var(--text);display:flex;min-height:100vh;overflow-x:hidden;}

/* ── SIDEBAR ── */
.sidebar{width:var(--sidebar);background:var(--forest);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto;}
.sb-logo{padding:22px 18px 16px;border-bottom:1px solid rgba(255,255,255,0.08);}
.sb-emblem{width:44px;height:44px;border-radius:50%;overflow:hidden;margin-bottom:9px;flex-shrink:0;}
.sb-emblem .logo-img{width:44px;height:44px;display:block;}
.sb-logo h1{font-family:'Playfair Display',serif;font-size:14.5px;line-height:1.3;color:#fff;}
.sb-logo p{font-size:9.5px;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:2px;margin-top:3px;}
.nav-sec{padding:12px 0 4px;}
.nav-lbl{font-size:9px;text-transform:uppercase;letter-spacing:2.5px;color:rgba(255,255,255,0.28);padding:0 16px 5px;}
.ni{display:flex;align-items:center;gap:9px;padding:8px 16px;cursor:pointer;font-size:13px;color:rgba(255,255,255,0.62);border-left:3px solid transparent;transition:all .15s;}
.ni:hover{background:rgba(255,255,255,0.05);color:#fff;}
.ni.active{background:rgba(168,213,181,0.15);color:var(--mint);border-left-color:var(--mint);font-weight:500;}
.ni .ic{font-size:14px;width:18px;text-align:center;flex-shrink:0;}
.nb{margin-left:auto;background:var(--gold);color:#fff;font-size:9px;border-radius:10px;padding:1px 6px;font-weight:700;}
/* ── SETTINGS SIDEBAR DROPDOWN ── */
.ni-has-dd{justify-content:space-between;}
.dd-caret{font-size:11px;opacity:.5;transition:transform .2s;margin-left:auto;}
.dd-caret.open{transform:rotate(90deg);}
.ni-sub-lbl{padding:5px 16px 3px 28px;font-size:9px;text-transform:uppercase;letter-spacing:1.8px;color:rgba(255,255,255,0.28);font-weight:700;margin-top:4px;}
.ni.ni-sub{padding:7px 16px 7px 30px;font-size:12px;}
.sb-foot{margin-top:auto;padding:14px 16px;font-size:10px;color:rgba(255,255,255,0.22);line-height:1.6;border-top:1px solid rgba(255,255,255,.05);}
.sb-user-wrap{padding:12px 16px;border-top:1px solid rgba(255,255,255,.07);}
.sb-urow{display:flex;align-items:center;gap:9px;margin-bottom:8px;}
.sb-uav{width:32px;height:32px;border-radius:50%;background:var(--sage);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;color:#fff;flex-shrink:0;}
.sb-uname{font-size:12px;color:#fff;font-weight:500;}
.sb-urole{font-size:10px;color:rgba(255,255,255,.35);}
.sb-logout{width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.6);border-radius:7px;padding:6px;font-family:inherit;font-size:11px;cursor:pointer;transition:all .15s;}
.sb-logout:hover{background:rgba(255,255,255,.15);color:#fff;}

/* ── USER AVATAR DROPDOWN ── */
.uchip-dd{position:relative;cursor:pointer;user-select:none;}
.user-dd{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:210px;background:#fff;border:1px solid #e5ebe0;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.12);z-index:3000;padding:6px 0;}
.user-dd.open{display:block;}
.user-dd-info{display:flex;align-items:center;gap:10px;padding:12px 16px 10px;}
.user-dd-av{width:36px;height:36px;border-radius:50%;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;}
.user-dd-name{font-size:13px;font-weight:600;color:var(--forest);}
.user-dd-role{font-size:11px;color:var(--muted);}
.user-dd-divider{height:1px;background:#f0ebe3;margin:4px 0;}
.user-dd-item{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;text-align:left;padding:9px 16px;font-size:13px;font-family:inherit;color:var(--forest);cursor:pointer;transition:background .12s;}
.user-dd-item:hover{background:#f5f0e8;}
.user-dd-signout{color:var(--red)!important;}
.user-dd-signout:hover{background:#fff0f0!important;}
body.dark .user-dd{background:#1e1e3a;border-color:#2a2a4a;}
body.dark .user-dd-name{color:#e0e0e0;}
body.dark .user-dd-divider{background:#2a2a4a;}
body.dark .user-dd-item{color:#ccc;}
body.dark .user-dd-item:hover{background:#252545;}
body.dark .user-dd-signout{color:#e88080!important;}
body.dark .user-dd-signout:hover{background:#2a1a1a!important;}

/* ── MAIN ── */
.main{margin-left:var(--sidebar);flex:1;display:flex;flex-direction:column;min-height:100vh;overflow-y:auto;height:100vh;}
.topbar{background:#fff;border-bottom:1px solid var(--border);padding:12px 28px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:50;}
.tb-title{font-family:'Playfair Display',serif;font-size:20px;color:var(--forest);}
.tb-sub{font-size:11px;color:var(--muted);margin-top:1px;}
.tb-right{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-left:auto;}
.tb-slogan{flex:1;min-width:0;}
.vtoggle{display:flex;background:var(--warm);border-radius:8px;padding:3px;gap:2px;}
.vbtn{padding:5px 14px;border-radius:6px;font-size:12px;cursor:pointer;border:none;background:none;font-family:inherit;color:var(--muted);font-weight:500;transition:all .15s;}
.vbtn.active{background:#fff;color:var(--forest);box-shadow:0 1px 4px rgba(0,0,0,.1);}
.uchip{display:flex;align-items:center;gap:8px;background:var(--cream);border-radius:20px;padding:4px 14px 4px 4px;font-size:12px;}
.uav{width:28px;height:28px;border-radius:50%;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;}
.content{padding:24px 28px;flex:1;background:var(--bg-page);display:flex;flex-direction:column;}
.page{display:none;}.page.active{display:flex;flex-direction:column;flex:1 0 auto;}

/* ── UTILITY ── */
.btn{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;}
.btn-primary{background:var(--sage);color:#fff;}.btn-primary:hover{background:var(--forest);}
.btn-secondary{background:var(--warm);color:var(--text);border:1px solid var(--border);}.btn-secondary:hover{background:var(--border);}
.btn-outline{background:none;border:1px solid var(--border);color:var(--text);}.btn-outline:hover{border-color:var(--sage);color:var(--sage);}
.btn-gold{background:var(--gold);color:#fff;}.btn-gold:hover{background:#a87820;}
.btn-sky{background:var(--sky);color:#fff;}.btn-sky:hover{background:#1a4e88;}
.btn-red{background:var(--red);color:#fff;}.btn-red:hover{background:#a82020;}
.btn-sm{padding:5px 11px;font-size:12px;}
.card{background:#fff;border-radius:14px;padding:20px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.05);}
.sec-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.sec-title{font-family:'Playfair Display',serif;font-size:18px;color:var(--forest);}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;}
/* badge colours */
.bg{background:#0e7490;color:#fff}.ba{background:#d97706;color:#fff}.br{background:#dc2626;color:#fff}
.bs{background:#2563eb;color:#fff}.bgr{background:#6b7280;color:#fff}.bpur{background:#7c3aed;color:#fff}
.bgrn{background:#166534;color:#fff}
.tw{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:left;padding:9px 13px;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);background:var(--cream);border-bottom:1px solid var(--border);font-weight:600;}
td{padding:11px 13px;border-bottom:1px solid var(--border);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(74,124,89,0.03);}

/* ── COMMUNITY DIRECTORY ── */
.dir-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:4px;}
.dir-card{background:#fff;border-radius:14px;border:1px solid var(--border);padding:18px;display:flex;align-items:flex-start;gap:14px;box-shadow:0 2px 8px rgba(0,0,0,.04);transition:box-shadow .15s;}
.dir-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.08);}
.dir-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0;border-left:4px solid transparent;}
.dir-body{flex:1;min-width:0;}
.dir-name{font-family:'Playfair Display',serif;font-size:15px;color:var(--forest);font-weight:700;margin-bottom:2px;}
.dir-profession{font-size:12px;color:var(--sage);font-weight:600;margin-bottom:6px;}
.dir-detail{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-bottom:3px;}
.dir-neighbourhood{display:inline-block;background:var(--cream);border-radius:4px;padding:2px 8px;font-size:10px;color:var(--forest);font-weight:600;margin-top:4px;}

/* ── PVCC TABLE ── */
.pvcc-table{width:100%;border-collapse:separate;border-spacing:0;}
.pvcc-table th.num,.pvcc-table td.num{text-align:right;}
.pvcc-table thead tr{background:var(--forest);color:#fff;}
.pvcc-table thead th{padding:10px 14px;font-weight:600;font-size:13px;text-align:left;text-transform:none;letter-spacing:0;color:#fff;background:transparent;border-bottom:none;}
.pvcc-table tbody tr{background:#fff;}
.pvcc-table tbody tr:hover{background:#f0f7f3;}
.pvcc-table tbody tr:hover td{background:transparent;}
.pvcc-table tbody td{padding:10px 14px;font-size:13px;border-bottom:1px solid var(--mint);vertical-align:middle;}
.pvcc-table tbody tr:last-child td{border-bottom:none;}
.pvcc-table tbody tr:last-child td:first-child{border-bottom-left-radius:12px;}
.pvcc-table tbody tr:last-child td:last-child{border-bottom-right-radius:12px;}
.mgmt-card .pagi-bar{padding-left:14px;padding-right:14px;padding-bottom:14px;}
.abtns{display:flex;gap:5px;flex-wrap:nowrap;min-width:0;}
/* stat card */
.sc{background:#fff;border-radius:14px;padding:18px;border:1px solid var(--border);position:relative;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.05);}
.sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;}
.sc.g::before{background:var(--sage)}.sc.a::before{background:var(--gold)}.sc.s::before{background:var(--sky)}.sc.r::before{background:var(--red)}
.sc-icon{position:absolute;right:14px;top:14px;font-size:22px;opacity:.12;}
.sc-label{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin-bottom:5px;}
.sc-val{font-family:'Playfair Display',serif;font-size:28px;color:var(--text);}
.sc-sub{font-size:11px;color:var(--muted);margin-top:2px;}

/* ── FORM ── */
.form-lbl{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:5px;}
.form-inp{width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:13px;outline:none;transition:border .15s;background:#fff;}
.form-inp:focus{border-color:var(--sage);}
.fr{margin-bottom:14px;}
.fr2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}
.fr3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px;}
.cur-wrap{position:relative;}
.cur-pre{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);font-weight:600;pointer-events:none;z-index:1;}
.cur-wrap .form-inp{padding-left:42px;}
select.form-inp{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a7060' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px;border-radius:8px;}
textarea.form-inp{resize:vertical;}
/* Remove number input spinner arrows */
input[type=number].form-inp::-webkit-inner-spin-button,
input[type=number].form-inp::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
input[type=number].form-inp{-moz-appearance:textfield;}
.toggle-row{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.toggle-sw{position:relative;width:36px;height:20px;flex-shrink:0;}
.toggle-sw input{opacity:0;width:0;height:0;}
.toggle-sw .slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:20px;transition:.2s;}
.toggle-sw input:checked + .slider{background:var(--sage);}
.toggle-sw .slider::before{content:'';position:absolute;width:14px;height:14px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s;}
.toggle-sw input:checked + .slider::before{transform:translateX(16px);}
.toggle-lbl{font-size:13px;color:var(--text);}
.contrib-row{display:block;margin-bottom:8px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.contrib-row .form-inp{margin:0;}

/* ── MODAL ── */
.mo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;align-items:center;justify-content:center;padding:20px;overflow-y:auto;}
.mo.open{display:flex;}
.mbox{background:#fff;border-radius:16px;padding:26px;max-width:640px;width:100%;margin:auto;box-shadow:0 20px 60px rgba(0,0,0,.2);max-height:90vh;overflow-y:auto;position:relative;}
.mbox-lg{max-width:820px;}
.mbox-xl{max-width:940px;width:94vw;}
.mbox .mhdr,.mbox-lg .mhdr,.mbox-xl .mhdr{position:sticky;top:-26px;margin:-26px -26px 16px -26px;padding:16px 26px 14px;background:#fff;border-bottom:1px solid var(--border);z-index:2;border-radius:16px 16px 0 0;}
body.dark .mbox .mhdr,body.dark .mbox-lg .mhdr,body.dark .mbox-xl .mhdr{background:#1e1e3a;}
.mhdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;}
.mtitle{font-family:'Playfair Display',serif;font-size:20px;color:var(--forest);}
.mclose{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted);padding:4px;border-radius:6px;transition:background .15s;}
.mclose:hover{background:var(--cream);}
.msec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:10px 0 8px;border-top:1px solid var(--border);margin-top:4px;}

/* ── TOAST ── */
.toast{position:fixed;top:72px;right:28px;background:var(--forest);color:#fff;padding:14px 20px;border-radius:12px;font-size:13px;z-index:999;display:none;align-items:center;gap:10px;box-shadow:0 8px 24px rgba(0,0,0,.2);max-width:360px;}
.toast.show{display:flex;animation:slidedown .3s ease;}
@keyframes slideup{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slidedown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}

/* ── LOGIN MODAL ── */
.login-mo{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:300;align-items:center;justify-content:center;}
.login-mo.open{display:flex;}
.login-box{background:#fff;border-radius:20px;padding:36px 32px;width:100%;max-width:380px;box-shadow:0 24px 60px rgba(0,0,0,.3);}
.login-emblem{width:68px;height:68px;border-radius:50%;overflow:hidden;margin:0 auto 12px;}
.login-emblem .logo-img{width:68px;height:68px;display:block;}
.login-title{font-family:'Playfair Display',serif;font-size:20px;color:var(--forest);text-align:center;margin-bottom:3px;}
.login-sub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;text-align:center;margin-bottom:18px;}
.login-err{background:#fde8e8;border-radius:8px;padding:9px 13px;font-size:12px;color:var(--red);margin-bottom:12px;display:none;}
.login-err.show{display:block;}
.login-hint{background:#f0fdf4;border-radius:8px;padding:9px 13px;font-size:11px;color:var(--sage);margin-bottom:14px;line-height:1.7;}

/* ── HOME ── */
.home-hero{background:linear-gradient(160deg,var(--forest) 0%,var(--sage) 100%);border-radius:18px;overflow:hidden;position:relative;margin-bottom:24px;min-height:300px;display:flex;align-items:flex-end;}
.hero-bg{position:absolute;inset:0;background:url('https://images.unsplash.com/photo-1577495508326-19a1b3cf65b9?w=1200&q=80') center/cover no-repeat;opacity:0.15;}
.hero-content{position:relative;z-index:2;padding:32px 36px;color:#fff;}
.hero-tag{display:inline-block;background:var(--gold);color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:2px;padding:4px 12px;border-radius:20px;margin-bottom:12px;font-weight:600;}
.hero-title{font-family:'Playfair Display',serif;font-size:36px;line-height:1.15;margin-bottom:8px;}
.hero-sub{font-size:13px;opacity:.8;max-width:460px;line-height:1.65;margin-bottom:18px;}
.hero-btns{display:flex;gap:10px;justify-content:flex-start;}
.hero-btn{padding:10px 20px;border-radius:9px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .15s;}
.hb-primary{background:var(--gold);color:#fff;}.hb-primary:hover{background:#a87820;}
.hb-outline{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);}.hb-outline:hover{background:rgba(255,255,255,.2);}
.info-card{background:#fff;border-radius:14px;padding:20px;border:1px solid var(--border);text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.info-icon{font-size:28px;margin-bottom:8px;}
.info-title{font-family:'Playfair Display',serif;font-size:15px;margin-bottom:5px;color:var(--forest);}
.info-text{font-size:12px;color:var(--muted);line-height:1.6;}
.contact-strip{background:var(--forest);border-radius:14px;padding:24px 28px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.cs-left h3{font-family:'Playfair Display',serif;font-size:18px;margin-bottom:3px;}
.cs-left p{font-size:12px;opacity:.6;}
.cs-details{display:flex;gap:22px;flex-wrap:wrap;}
.cs-item{font-size:12px;display:flex;align-items:center;gap:7px;opacity:.82;}

/* ── NOTICE BOARD ── */
.notice-card{background:#fff;border-radius:12px;border:1px solid var(--border);overflow:hidden;margin-bottom:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.notice-img-el{width:100%;height:180px;object-fit:cover;display:block;}
.notice-body{padding:15px 18px;}
.nc-cat{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;margin-bottom:7px;}
.nc-closure{background:#fde8e8;color:#c94040}.nc-event{background:#d4ede2;color:#1a6b5a}
.nc-policy{background:#d4e8f8;color:#2264a8}.nc-general{background:#fde8bf;color:#8a5c00}
.notice-title{font-family:'Playfair Display',serif;font-size:17px;color:var(--forest);margin-bottom:5px;}
.notice-meta{font-size:11px;color:var(--muted);margin-bottom:8px;}
.notice-text{font-size:13px;color:var(--text);line-height:1.65;}
.pin-label{font-size:10px;color:var(--gold);font-weight:700;margin-bottom:4px;}

/* ── PAST EVENTS GALLERY ── */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:24px;}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:24px;}
.gal-card{border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--border);cursor:pointer;transition:all .18s;}
.gal-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-2px);}
.gal-img{height:160px;width:100%;object-fit:cover;display:block;}
.gal-cap{padding:9px 12px;font-size:12px;color:var(--muted);}
.gal-vid-thumb{height:160px;width:100%;background:#1a1a2e;display:flex;align-items:center;justify-content:center;font-size:36px;color:#fff;position:relative;}
.gal-play-icon{font-size:40px;opacity:.85;}

/* ── EVENTS ── */
.ev-banner{background:linear-gradient(135deg,var(--forest),var(--sage));border-radius:14px;padding:28px 32px;color:#fff;margin-bottom:20px;position:relative;overflow:hidden;}
.ev-banner::after{content:'🏛️';position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:80px;opacity:.07;}
.ev-banner h2{font-family:'Playfair Display',serif;font-size:26px;margin-bottom:5px;}
.ev-banner p{font-size:13px;opacity:.75;max-width:440px;line-height:1.6;}
.ef{display:flex;gap:7px;flex-wrap:wrap;}
.efb{padding:6px 15px;border-radius:20px;border:1px solid var(--border);background:#fff;font-family:inherit;font-size:12px;cursor:pointer;color:var(--muted);transition:all .15s;}
.efb.active{background:var(--forest);color:#fff;border-color:var(--forest);}
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;}
.evc{background:#fff;border-radius:12px;border:1px solid var(--border);overflow:hidden;transition:box-shadow .15s;position:relative;}
.evc:hover{box-shadow:0 4px 16px rgba(0,0,0,.07);}
.evc-type-tag{position:absolute;top:10px;right:10px;z-index:2;}
.evc-top{padding:14px 15px 11px;border-bottom:1px solid var(--border);}
.edc{display:inline-block;background:var(--cream);border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700;color:var(--sage);text-transform:uppercase;letter-spacing:1px;margin-bottom:7px;}
.evt-title{font-family:'Playfair Display',serif;font-size:15px;color:var(--forest);margin-bottom:3px;padding-right:80px;}
.evt-desc{font-size:11px;color:var(--muted);line-height:1.5;}
.rchips{display:flex;gap:4px;flex-wrap:wrap;margin-top:7px;}
.rchip{background:var(--cream);border-radius:4px;padding:2px 7px;font-size:10px;color:var(--forest);font-weight:500;}
.flyer-btn{display:inline-flex;align-items:center;gap:5px;background:#ea580c;color:#fff;border-radius:6px;padding:5px 11px;font-size:11px;font-weight:700;cursor:pointer;border:none;font-family:inherit;transition:background .15s;}
.flyer-btn:hover{background:#c2410c;}
.evc-foot{padding:10px 15px;display:flex;align-items:center;justify-content:space-between;}
.ev-meta{font-size:11px;color:var(--muted);}

/* ── CALENDAR ── */
.cal-wrap{background:#fff;border-radius:14px;border:1px solid var(--border);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.cal-hdr{background:var(--forest);color:#fff;padding:12px 16px;display:flex;flex-direction:column;gap:10px;border-radius:12px 12px 0 0;}
.cal-nav{display:flex;align-items:center;gap:8px;justify-content:center;}
.cnb{background:rgba(255,255,255,.18);border:none;color:#fff;width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;}
.cnb:hover{background:rgba(255,255,255,.3);}
.cml{font-family:'Playfair Display',serif;font-size:17px;flex:1;text-align:center;}
.cal-leg{display:flex;gap:10px;font-size:10px;flex-wrap:wrap;justify-content:center;}
.li{display:flex;align-items:center;gap:4px;}
.ld{width:8px;height:8px;border-radius:2px;}
.cg{display:grid;grid-template-columns:repeat(7,1fr);}
.cdn{text-align:center;padding:7px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);border-bottom:1px solid var(--border);background:var(--cream);}
.cd{min-height:80px;padding:5px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s;}
.cd:hover{background:var(--cream);}
.cd.om .dn{color:#ccc;}
.cd.today{background:rgba(74,124,89,0.05);}
.dn{font-size:12px;font-weight:500;margin-bottom:3px;}
.dev{font-size:9px;border-radius:3px;padding:2px 4px;margin-bottom:2px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;}
.ev-bkd{background:var(--cal-booked);color:#fff;}
.ev-pend{background:var(--cal-pending);color:#fff;}
.ev-comm{background:var(--cal-community);color:#fff;}
.ev-wk{background:var(--cal-workshop);color:#fff;}
.ev-act{background:var(--cal-activity);color:#fff;}
.ev-other{background:var(--cal-other);color:#fff;}

/* ── SPACES ── */
.spaces-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;}
.sp-card{background:#fff;border-radius:14px;border:1px solid var(--border);overflow:hidden;cursor:pointer;transition:all .18s;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.sp-card:hover{box-shadow:0 6px 22px rgba(0,0,0,.09);transform:translateY(-2px);}
.sp-img{height:140px;background:var(--cream);display:flex;align-items:center;justify-content:center;font-size:44px;position:relative;overflow:hidden;}
.sp-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.sp-body{padding:13px 15px;}
.sp-name{font-family:'Playfair Display',serif;font-size:15px;color:var(--forest);margin-bottom:2px;}
.sp-cap{font-size:11px;color:var(--muted);}
.sp-avail{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:8px;}
.sp-day{background:var(--cream);border-radius:4px;padding:3px 2px;text-align:center;font-size:8px;font-weight:600;color:var(--muted);}
.sp-day.avail{background:#d4ede2;color:#1a6b5a;}
.sp-day.unavail{background:#fde8e8;color:#c94040;}
.sp-foot{padding:10px 15px;background:var(--cream);display:flex;justify-content:space-between;align-items:center;}
.sp-rate{font-size:12px;font-weight:600;color:var(--sage);}
/* space detail modal availability strip */
.av-day{background:var(--cream);border-radius:6px;padding:8px 4px;text-align:center;}
.av-day.booked{background:#fde8e8;}
.avd-n{font-size:11px;font-weight:700;color:var(--forest);}
.avd-l{font-size:9px;color:var(--muted);margin-top:2px;}
.av-day.booked .avd-l{color:var(--red);}
.amen-list{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px;}
.amen{background:var(--cream);border-radius:5px;padding:4px 9px;font-size:11px;color:var(--sage);font-weight:500;}

/* ── DONORS ── */
.donor-list{display:flex;flex-direction:column;gap:9px;}
.dr{background:#fff;border-radius:12px;border:1px solid var(--border);overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.dr-main{display:flex;align-items:center;gap:11px;padding:14px 16px;cursor:pointer;transition:background .15s;}
.dr-main:hover{background:var(--cream);}
.dr-accent{width:4px;min-height:60px;flex-shrink:0;border-radius:2px;}
.drank{font-family:'Playfair Display',serif;font-size:19px;width:28px;text-align:center;flex-shrink:0;}
.drank.gold{color:var(--gold)}.drank.silver{color:#9ba8a0}.drank.bronze{color:#8b5e3c}
.dav{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:13px;flex-shrink:0;}
.dinfo{flex:1;}
.dname{font-weight:600;font-size:13px;}
.dtype{font-size:11px;color:var(--muted);}
.damt{font-family:'Playfair Display',serif;font-size:14px;color:var(--forest);text-align:right;min-width:80px;}
.dr-contribs{padding:12px 16px;background:var(--cream);display:none;}
.dr-contribs.open{display:block;}
.dd-item{display:flex;gap:11px;align-items:flex-start;padding:10px;background:#fff;border-radius:9px;margin-bottom:7px;border:1px solid var(--border);}
.dd-icon{width:40px;height:40px;border-radius:7px;background:var(--warm);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.dd-title{font-weight:600;font-size:13px;margin-bottom:2px;}
.dd-val{font-size:12px;color:var(--sage);font-weight:600;}
.dd-note{font-size:11px;color:var(--muted);margin-top:2px;}
.dbar-w{flex:1;}
.dbar-bg{background:var(--warm);border-radius:4px;height:6px;overflow:hidden;}
.dbar{height:100%;border-radius:4px;}

/* ── DASHBOARD ── */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;}

/* ── ENQUIRIES ── */
.enq-card{background:#fff;border-radius:12px;border:1px solid var(--border);padding:16px;transition:all .15s;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.enq-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.07);}
.enq-card.unread{border-left:3px solid var(--sage);}
.enq-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;}
.enq-name{font-weight:600;font-size:14px;}
.enq-time{font-size:11px;color:var(--muted);}
.enq-space{font-size:12px;color:var(--sage);font-weight:500;margin-bottom:5px;}
.enq-msg{font-size:12px;color:var(--muted);line-height:1.5;}
.enq-foot{display:flex;gap:7px;margin-top:11px;justify-content:flex-end;}
.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--sage);flex-shrink:0;margin-top:5px;}

/* ── BOOKINGS ── */
.bk-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;}
.bks{background:#fff;border-radius:12px;padding:14px 15px;border:1px solid var(--border);text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.bks-val{font-family:'Playfair Display',serif;font-size:20px;margin-bottom:2px;}
.bks-lbl{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);}
/* fixed-slot action buttons for bookings table */
.bk-acts{display:flex;gap:4px;width:210px;flex-shrink:0;}
.bk-act-slot{width:66px;flex-shrink:0;}

/* ── MAINTENANCE ── */
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
/* Distinct column backgrounds per spec */
.kb-col-todo{background:#fef3c7;border-radius:14px;padding:13px;}
.kb-col-inprogress{background:#dbeafe;border-radius:14px;padding:13px;}
.kb-col-done{background:#dcfce7;border-radius:14px;padding:13px;}
.kb-col-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px;}
.kb-col-title{font-weight:600;font-size:13px;}
.kb-cnt{background:rgba(0,0,0,.08);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:700;}
.kb-cards{display:flex;flex-direction:column;gap:8px;min-height:60px;}
.kb-card{background:#fff;border-radius:10px;padding:11px 13px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.05);}
.kb-card-title{font-weight:600;font-size:13px;margin-bottom:4px;}
.kb-meta{font-size:11px;color:var(--muted);display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.kb-tag{font-size:10px;border-radius:4px;padding:2px 7px;font-weight:600;}
.kb-tag.cleaning{background:#d4ede2;color:#1a6b5a}.kb-tag.grounds{background:#e2edd4;color:#4a6b1a}
.kb-tag.electrical{background:#d4e8f8;color:#2264a8}.kb-tag.plumbing{background:#d4e8f8;color:#2264a8}
.kb-tag.av{background:#ead4f8;color:#6a24a8}.kb-tag.repair{background:#fde8bf;color:#8a5c00}
.kb-tag.general{background:#f1e8d4;color:#7a4a00}
.kb-cost{font-size:12px;font-weight:600;color:var(--sage);margin-top:5px;}
.kb-due{font-size:10px;color:var(--muted);}
.kb-actions{display:flex;gap:5px;margin-top:8px;flex-wrap:wrap;}
.kb-mv{font-size:11px;padding:5px 11px;border-radius:5px;border:none;cursor:pointer;font-family:inherit;font-weight:500;}
.kb-mv.todo-btn{background:#fde8bf;color:#8a5c00;}.kb-mv.todo-btn:hover{background:#f0d090;}
.kb-mv.prog-btn{background:#bfdbfe;color:#1d4ed8;}.kb-mv.prog-btn:hover{background:#93c5fd;}
.kb-mv.done-btn{background:#bbf7d0;color:#166534;}.kb-mv.done-btn:hover{background:#86efac;}

/* ── INVENTORY ── */
.inv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.ic2{background:#fff;border-radius:12px;padding:14px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04);}
.ic2-icon{font-size:22px;margin-bottom:5px;}
.ic2-name{font-weight:600;font-size:13px;margin-bottom:1px;}
.ic2-cat{font-size:10px;color:var(--muted);margin-bottom:7px;}
.ic2-prog{background:var(--warm);border-radius:3px;height:6px;overflow:hidden;margin-bottom:5px;}
.ic2-bar{height:100%;border-radius:3px;transition:width .3s;}
.ic2-bar.ok{background:var(--sage)}.ic2-bar.low{background:var(--gold)}.ic2-bar.crit{background:var(--red)}
.ic2-qty{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;}

/* ── FINANCIALS ── */
.fin-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:18px;}
.fc{background:#fff;border-radius:13px;padding:17px;border:1px solid var(--border);text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.04);}
.fc.g{border-left:4px solid var(--sage);}
.fc.r{border-left:4px solid var(--red);}
.fc.b{border-left:4px solid var(--gold);}
.fc-lbl{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:4px;}
.fc-val{font-family:'Playfair Display',serif;font-size:26px;}
.fc-val.inc{color:var(--sage)}.fc-val.exp{color:var(--red)}.fc-val.net{color:var(--forest)}
.amt-inc{color:var(--sage);font-weight:600;}
.amt-exp{color:var(--red);font-weight:600;}

/* ── CONTACTS ── */
.ct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.ctc{background:#fff;border-radius:12px;padding:15px;border:1px solid var(--border);border-left:4px solid var(--sage);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.ctc-top{display:flex;gap:10px;margin-bottom:9px;align-items:center;}
.ctav{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:13px;flex-shrink:0;}
.ct-name{font-weight:600;font-size:13px;}
.ct-role{font-size:11px;color:var(--muted);margin-top:1px;}
.ct-det{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-top:4px;}

/* ── DOCUMENTS ── */
.doc-cats{display:grid;grid-template-columns:repeat(9,1fr);gap:10px;margin-bottom:20px;}
.doc-cat-tile{background:#fff;border-radius:11px;padding:13px 8px;border:1px solid var(--border);text-align:center;cursor:pointer;transition:all .15s;box-shadow:0 1px 4px rgba(0,0,0,.04);}
.doc-cat-tile:hover,.doc-cat-tile.active{border-color:var(--sage);background:rgba(74,124,89,0.06);}
.dct-icon{font-size:22px;margin-bottom:4px;}
.dct-label{font-size:10px;font-weight:600;margin-bottom:2px;line-height:1.3;color:var(--text);}
.dct-cnt{font-size:10px;color:var(--muted);}

/* ── CONTACTS GRID ── */
.contacts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.ct-card{background:#fff;border-radius:13px;border:1px solid var(--border);border-left:4px solid var(--sage);box-shadow:0 2px 8px rgba(0,0,0,.04);display:flex;flex-direction:column;overflow:hidden;}

/* ── RECEIPTS & CHEQUES ZONES ── */
.rc-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px;}
.rc-zone{background:#fff;border-radius:13px;padding:20px;border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.rc-zone-title{font-family:'Playfair Display',serif;font-size:16px;color:var(--forest);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.rc-checks{display:flex;flex-direction:column;gap:7px;margin-top:10px;}
.chk-row{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer;color:var(--text);}
.chk-row input[type=checkbox]{width:15px;height:15px;cursor:pointer;}



/* ── CHART ── */
.chart-wrap{background:#fff;border-radius:14px;padding:20px;border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.04);}
.chart-title{font-family:'Playfair Display',serif;font-size:16px;color:var(--forest);margin-bottom:14px;}
.line-chart-svg{width:100%;height:160px;}
.occ-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.occ-lbl{font-size:12px;color:var(--text);width:120px;flex-shrink:0;}
.occ-bar-bg{flex:1;background:var(--warm);border-radius:4px;height:14px;overflow:hidden;}
.occ-bar-fill{height:100%;border-radius:4px;background:var(--sage);}
.occ-pct{font-size:11px;font-weight:600;color:var(--forest);width:36px;text-align:right;}

/* ── INVOICE ── */
.invoice-wrap{font-family:'Outfit',sans-serif;}
.inv-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;padding-bottom:16px;border-bottom:2px solid var(--forest);}
.inv-hdr h2{font-family:'Playfair Display',serif;font-size:19px;color:var(--forest);}
.inv-hdr p{font-size:11px;color:var(--muted);line-height:1.7;margin-top:3px;}
.inv-num{text-align:right;}
.inv-num h3{font-family:'Playfair Display',serif;font-size:24px;color:var(--forest);}
.inv-num p{font-size:11px;color:var(--muted);margin-top:2px;}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.inv-party h4{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:5px;}
.inv-party p{font-size:13px;line-height:1.7;}
.inv-tbl{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:13px;}
.inv-tbl th{background:var(--forest);color:#fff;padding:8px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:1px;}
.inv-tbl td{padding:9px 12px;border-bottom:1px solid var(--border);}
.inv-tbl tfoot td{font-weight:700;background:var(--cream);}
.inv-footer{text-align:center;font-size:11px;color:var(--muted);padding-top:14px;border-top:1px solid var(--border);line-height:1.8;margin-top:14px;}

/* ── MISC / UTILITIES ── */
.sdiv{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);padding:10px 0 8px;border-top:1px solid var(--border);margin-top:6px;}
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;padding:14px 16px;background:#fff;border-radius:12px;border:1px solid var(--border);box-shadow:0 1px 4px rgba(0,0,0,.04);}
.filter-bar input,.filter-bar select{padding:7px 12px;border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:12px;outline:none;background:#fff;}
.filter-bar select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a7060' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;}
.filter-bar input:focus,.filter-bar select:focus{border-color:var(--sage);}
/* ── MGMT PAGE VISUAL TREATMENT ── */
.mgmt-page-hdr{background:var(--forest);color:#fff;border-radius:14px;padding:20px 24px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.mgmt-page-hdr h2{font-family:'Playfair Display',serif;font-size:20px;margin:0;font-weight:700;}
.mgmt-page-hdr p{font-size:12px;opacity:.75;margin:3px 0 0;letter-spacing:.2px;}
.mgmt-page-hdr .btn-primary{background:#fff;color:var(--forest);border:none;}
.mgmt-page-hdr .btn-primary:hover{background:var(--mint);color:var(--forest);}
.mgmt-card{background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.05);}
/* page wrapper with contrasting background */
.pg-body{background:#f3f0ea;min-height:100%;border-radius:0;padding:0;}

.btn-delete{background:#c94040;color:#fff;border:none;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:700;cursor:pointer;}
.btn-delete:hover{background:#a33030;}

/* ── MORE MENU (⋯ overflow button for mobile action columns) ── */
.more-wrap{position:relative;display:inline-block;}
.more-btn{background:var(--warm);border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer;line-height:1;color:var(--forest);}
.more-btn:hover{background:var(--mint);}

/* ── UNIFORM ACTION BUTTONS IN TABLE CELLS ── */
td .btn.btn-secondary.btn-sm,
td .btn.btn-sky.btn-sm,
td .btn.btn-gold.btn-sm,
td .btn.btn-outline.btn-sm,
td .btn-delete,
td .more-btn,
td .btn-add-green,
.ct-card .btn.btn-sm,
.ct-card .btn-delete{
  width:30px;height:30px;padding:0;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:14px;line-height:1;flex-shrink:0;
}
.more-wrap{position:relative;}
.more-menu{display:none;position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.14);z-index:500;min-width:160px;padding:4px 0;}
.more-menu.open{display:block;}
.more-menu button{display:block;width:100%;text-align:left;background:none;border:none;padding:8px 14px;font-size:13px;cursor:pointer;color:var(--text);}
.more-menu button:hover{background:var(--warm);}
.more-menu button.danger{color:var(--red);font-weight:600;}
.more-menu button.danger:hover{background:#fdf2f2;}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}

@media print{
  /* Invoice printing handled by printInvoice() iframe method */
  .sidebar,.topbar,.no-print{display:none!important;}
  .main{margin-left:0!important;}
}

.pg-hdr{background:var(--forest);color:#fff;padding:16px 24px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.pg-hdr-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:600;}
.pg-hdr-sub{font-size:12px;opacity:0.75;margin-top:2px;}
.pg-hdr .btn-light{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.35);padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;}
.pg-hdr .btn-light:hover{background:rgba(255,255,255,0.28);}

.export-bar{display:flex;align-items:center;margin-bottom:10px;}

.btn-export:hover{background:var(--cream);border-color:var(--sage);}
.btn-export svg{flex-shrink:0;}

/* ── White/green add button ── */
.btn-add-green{background:#fff;color:var(--forest);border:1.5px solid var(--sage);border-radius:8px;padding:6px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .18s,color .18s,border-color .18s,box-shadow .18s;box-shadow:0 1px 3px rgba(26,58,46,0.07);}
.btn-add-green:hover{background:var(--mint);border-color:var(--forest);color:var(--forest);box-shadow:0 2px 8px rgba(26,58,46,0.15);}
/* Export button green variant */
.btn-export-green{display:inline-flex;align-items:center;gap:6px;background:var(--forest);color:#fff;border:none;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s,box-shadow .15s;box-shadow:0 1px 4px rgba(26,58,46,0.15);}.btn-export-green:hover{background:#14532d;box-shadow:0 3px 10px rgba(26,58,46,0.22);}
.btn-export-green:hover{background:var(--forest);}
.btn-export-green svg{flex-shrink:0;}
/* Doc category tile colours */
.dct-Licences   {background:#e8f0ff;border-color:#5b8dee;color:#3a5dc9;}
.dct-Contracts  {background:#fff3e0;border-color:#e88c2b;color:#b96a10;}
.dct-Policies   {background:#f3e8ff;border-color:#9b5de5;color:#7433c9;}
.dct-Forms      {background:#e8fff5;border-color:#2ecc8e;color:#1a7a54;}
.dct-Maintenance{background:#fff8e0;border-color:#e8b84b;color:#9a6e00;}
.dct-Financial  {background:#ffeef0;border-color:#e85d75;color:#b02040;}
.dct-Library    {background:#f0f4ff;border-color:#6c8ebf;color:#3d5a8a;}
.dct-Certificates{background:#e8faff;border-color:#2ab0d4;color:#0e7a9a;}
.dct-all        {background:var(--warm);border-color:var(--border);color:var(--forest);}

.doc-cat-tile[data-key='all']{background:#f5f0e8;border-color:#c9932a;}
.doc-cat-tile[data-key='all'] .dct-icon,.doc-cat-tile[data-key='all'] .dct-label,.doc-cat-tile[data-key='all'] .dct-cnt{color:#8a5a00;}
.doc-cat-tile[data-key='Licences']{background:#eef3ff;border-color:#5b8dee;}
.doc-cat-tile[data-key='Licences'] .dct-icon,.doc-cat-tile[data-key='Licences'] .dct-label,.doc-cat-tile[data-key='Licences'] .dct-cnt{color:#3a5dc9;}
.doc-cat-tile[data-key='Contracts']{background:#fff4e8;border-color:#e88c2b;}
.doc-cat-tile[data-key='Contracts'] .dct-icon,.doc-cat-tile[data-key='Contracts'] .dct-label,.doc-cat-tile[data-key='Contracts'] .dct-cnt{color:#b96a10;}
.doc-cat-tile[data-key='Policies']{background:#f5eeff;border-color:#9b5de5;}
.doc-cat-tile[data-key='Policies'] .dct-icon,.doc-cat-tile[data-key='Policies'] .dct-label,.doc-cat-tile[data-key='Policies'] .dct-cnt{color:#7433c9;}
.doc-cat-tile[data-key='Forms']{background:#eafff5;border-color:#2ecc8e;}
.doc-cat-tile[data-key='Forms'] .dct-icon,.doc-cat-tile[data-key='Forms'] .dct-label,.doc-cat-tile[data-key='Forms'] .dct-cnt{color:#1a7a54;}
.doc-cat-tile[data-key='Maintenance Receipts']{background:#fffbe8;border-color:#e8b84b;}
.doc-cat-tile[data-key='Maintenance Receipts'] .dct-icon,.doc-cat-tile[data-key='Maintenance Receipts'] .dct-label,.doc-cat-tile[data-key='Maintenance Receipts'] .dct-cnt{color:#9a6e00;}
.doc-cat-tile[data-key='Financial Records']{background:#fff0f2;border-color:#e85d75;}
.doc-cat-tile[data-key='Financial Records'] .dct-icon,.doc-cat-tile[data-key='Financial Records'] .dct-label,.doc-cat-tile[data-key='Financial Records'] .dct-cnt{color:#b02040;}
.doc-cat-tile[data-key='Library']{background:#edf4ff;border-color:#6c8ebf;}
.doc-cat-tile[data-key='Library'] .dct-icon,.doc-cat-tile[data-key='Library'] .dct-label,.doc-cat-tile[data-key='Library'] .dct-cnt{color:#3d5a8a;}
.doc-cat-tile[data-key='Receipts & Invoices']{background:#f0fff8;border-color:#2ab0d4;}
.doc-cat-tile[data-key='Receipts & Invoices'] .dct-icon,.doc-cat-tile[data-key='Receipts & Invoices'] .dct-label,.doc-cat-tile[data-key='Receipts & Invoices'] .dct-cnt{color:#0e7a9a;}
.doc-cat-tile[data-key='Certificates']{background:#fff8f0;border-color:#e88c2b;}
.doc-cat-tile[data-key='Certificates'] .dct-icon,.doc-cat-tile[data-key='Certificates'] .dct-label,.doc-cat-tile[data-key='Certificates'] .dct-cnt{color:#c05a00;}
.doc-cat-tile.active{border-width:2px;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.kb-edit-row{display:flex;gap:6px;margin-top:8px;justify-content:flex-end;}.maint-done-log{margin-top:24px;background:var(--cream);border-radius:12px;padding:20px;}.mdl-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}.mdl-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--forest);}.mdl-cnt{background:#e8f5ee;color:var(--sage);border-radius:20px;padding:3px 12px;font-size:12px;font-weight:600;}.mdl-empty{text-align:center;padding:24px;color:var(--muted);font-size:13px;}
.pagi-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid var(--border);}
.pagi-btn{background:#fff;border:1px solid var(--border);color:var(--forest);padding:5px 14px;border-radius:7px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.pagi-btn:hover:not(:disabled){background:var(--mint);border-color:var(--sage);}
.pagi-btn:disabled{opacity:0.4;cursor:default;}
.pagi-info{font-size:13px;color:var(--muted);font-weight:500;}
/* ── Public Home ── */
.home-stats{background:var(--forest);padding:18px 48px;display:flex;justify-content:center;gap:60px;flex-wrap:wrap;}
.home-stat{text-align:center;color:#fff;}
.home-stat-num{font-family:'Playfair Display',serif;font-size:32px;font-weight:700;color:#c9932a;}
.home-stat-lbl{font-size:12px;opacity:0.75;text-transform:uppercase;letter-spacing:1px;margin-top:3px;}
.home-section{padding:36px 40px;background:#fff;}
.home-section.alt{background:#eef6f0;}
.home-section-title{font-family:'Playfair Display',serif;font-size:24px;color:var(--forest);margin-bottom:20px;padding-left:14px;border-left:4px solid var(--gold);}
.home-section-sub{font-size:14px;color:var(--muted);margin-bottom:24px;}
.home-ev-card{background:#fff;border-radius:12px;border:1px solid var(--border);padding:16px 18px;border-left:4px solid var(--forest);transition:transform .2s,box-shadow .2s;cursor:pointer;}
.home-ev-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.home-ev-card.community{border-left-color:#166534;}
.home-ev-card.workshop{border-left-color:#6d28d9;}
.home-ev-card.booking{border-left-color:#2264a8;}
.home-ev-card.other{border-left-color:#c9932a;}
.home-space-card{background:#fff;border-radius:12px;border:1px solid var(--border);overflow:hidden;transition:transform .2s,box-shadow .2s;cursor:pointer;}
.home-space-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.1);}
.home-space-card-body{padding:16px 18px;}
.home-space-card-name{font-weight:700;font-size:15px;color:var(--forest);margin-bottom:4px;}
.home-space-card-cap{font-size:12px;color:var(--muted);}
.home-exec-card{background:#fff;border-radius:12px;border:1px solid var(--border);padding:20px 16px;text-align:center;transition:transform .2s,box-shadow .2s;}
.home-exec-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.home-exec-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;margin:0 auto 12px;}
.home-exec-name{font-weight:700;font-size:14px;color:var(--forest);}
.home-exec-title{font-size:12px;color:var(--muted);margin-top:3px;}
.home-exec-contact{font-size:11px;color:var(--muted);margin-top:6px;line-height:1.6;}
.home-aff-tile{background:#fff;border-radius:10px;border:1px solid var(--border);padding:14px 18px;text-align:center;transition:transform .2s;}
.home-aff-tile:hover{transform:translateY(-2px);}
.home-aff-name{font-size:13px;font-weight:600;color:var(--forest);margin-bottom:4px;}
.home-fr-card{background:#fff;border-radius:12px;border:1px solid var(--border);padding:22px 24px;transition:transform .2s,box-shadow .2s;}
.home-fr-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.home-fr-title{font-family:'Playfair Display',serif;font-size:18px;color:var(--forest);margin-bottom:8px;}
.home-fr-desc{font-size:13px;color:var(--muted);line-height:1.7;margin-bottom:16px;}
.home-fr-track{background:var(--mint);border-radius:99px;height:10px;margin-bottom:10px;overflow:hidden;}
.home-fr-fill{background:var(--forest);height:100%;border-radius:99px;transition:width .6s ease;}
.home-fr-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);}
.home-notice-card{background:#fff;border-radius:10px;border:1px solid var(--border);padding:16px 18px;border-left:4px solid var(--sage);margin-bottom:10px;}
.home-notice-title{font-weight:700;font-size:14px;color:var(--forest);margin-bottom:4px;}
.home-notice-meta{font-size:11px;color:var(--muted);}
.home-notice-body{font-size:13px;color:var(--text);margin-top:8px;line-height:1.7;}
.home-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.home-gallery-item{border-radius:10px;overflow:hidden;aspect-ratio:1;background:var(--mint);display:flex;align-items:center;justify-content:center;font-size:32px;cursor:pointer;transition:transform .2s;}
.home-gallery-item:hover{transform:scale(1.03);}
.fade-up{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* ── RESPONSIVE: Table column hiding (mobile) ─────────────────────────
   Each table shows only Name/Title + Actions on narrow screens.
   Columns are hidden via nth-child selectors inside this block.
────────────────────────────────────────────────────────────────────── */
@media(max-width:768px){

  /* Key tables — name + actions only on mobile */


  /* Action buttons — never wrap */
  .pvcc-table td > div{flex-wrap:nowrap!important;}

  /* BOOKINGS: Client(2) + Actions(12) only */
  #page-bookings .pvcc-table th:nth-child(1),#page-bookings .pvcc-table td:nth-child(1),
  #page-bookings .pvcc-table th:nth-child(3),#page-bookings .pvcc-table td:nth-child(3),
  #page-bookings .pvcc-table th:nth-child(4),#page-bookings .pvcc-table td:nth-child(4),
  #page-bookings .pvcc-table th:nth-child(5),#page-bookings .pvcc-table td:nth-child(5),
  #page-bookings .pvcc-table th:nth-child(6),#page-bookings .pvcc-table td:nth-child(6),
  #page-bookings .pvcc-table th:nth-child(7),#page-bookings .pvcc-table td:nth-child(7),
  #page-bookings .pvcc-table th:nth-child(8),#page-bookings .pvcc-table td:nth-child(8),
  #page-bookings .pvcc-table th:nth-child(9),#page-bookings .pvcc-table td:nth-child(9),
  #page-bookings .pvcc-table th:nth-child(10),#page-bookings .pvcc-table td:nth-child(10),
  #page-bookings .pvcc-table th:nth-child(11),#page-bookings .pvcc-table td:nth-child(11){display:none!important;}

  /* RECENT BOOKINGS (dashboard): Client(2) + Status(6) — hide 1,3,4,5 */
  #page-dashboard .pvcc-table th:nth-child(1),#page-dashboard .pvcc-table td:nth-child(1),
  #page-dashboard .pvcc-table th:nth-child(3),#page-dashboard .pvcc-table td:nth-child(3),
  #page-dashboard .pvcc-table th:nth-child(4),#page-dashboard .pvcc-table td:nth-child(4),
  #page-dashboard .pvcc-table th:nth-child(5),#page-dashboard .pvcc-table td:nth-child(5){display:none!important;}

  /* COMPLETED TASKS: Task(1) only — no actions col */
  #page-maintenance .pvcc-table th:nth-child(2),#page-maintenance .pvcc-table td:nth-child(2),
  #page-maintenance .pvcc-table th:nth-child(3),#page-maintenance .pvcc-table td:nth-child(3),
  #page-maintenance .pvcc-table th:nth-child(4),#page-maintenance .pvcc-table td:nth-child(4),
  #page-maintenance .pvcc-table th:nth-child(5),#page-maintenance .pvcc-table td:nth-child(5),
  #page-maintenance .pvcc-table th:nth-child(6),#page-maintenance .pvcc-table td:nth-child(6){display:none!important;}

  /* ASSETS: Item(1) + Qty(2) — hide 3,4,5,6(Actions) */
  #page-inventory .pvcc-table th:nth-child(3),#page-inventory .pvcc-table td:nth-child(3),
  #page-inventory .pvcc-table th:nth-child(4),#page-inventory .pvcc-table td:nth-child(4),
  #page-inventory .pvcc-table th:nth-child(5),#page-inventory .pvcc-table td:nth-child(5),
  #page-inventory .pvcc-table th:nth-child(6),#page-inventory .pvcc-table td:nth-child(6){display:none!important;}

  /* I&E: Description(2) + Amount(5) + Actions(7) — hide 1,3,4,6 */
  #page-financials .pvcc-table th:nth-child(1),#page-financials .pvcc-table td:nth-child(1),
  #page-financials .pvcc-table th:nth-child(3),#page-financials .pvcc-table td:nth-child(3),
  #page-financials .pvcc-table th:nth-child(4),#page-financials .pvcc-table td:nth-child(4),
  #page-financials .pvcc-table th:nth-child(6),#page-financials .pvcc-table td:nth-child(6){display:none!important;}

  /* DOCUMENTS: Name(1) only on mobile — hide cols 2,3,4,5 */
  #page-documents .pvcc-table th:nth-child(2),#page-documents .pvcc-table td:nth-child(2),
  #page-documents .pvcc-table th:nth-child(3),#page-documents .pvcc-table td:nth-child(3),
  #page-documents .pvcc-table th:nth-child(4),#page-documents .pvcc-table td:nth-child(4),
  #page-documents .pvcc-table th:nth-child(5),#page-documents .pvcc-table td:nth-child(5){display:none!important;}
  /* DOCUMENTS: auto layout so Name header spans full width */
  #page-documents .pvcc-table{table-layout:auto!important;width:100%!important;}
  #page-documents .pvcc-table td:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  /* MANAGE EVENTS: Title(1) + Actions(8) — hide 2-7 */
  #mev-table-wrap .pvcc-table th:nth-child(2),#mev-table-wrap .pvcc-table td:nth-child(2),
  #mev-table-wrap .pvcc-table th:nth-child(3),#mev-table-wrap .pvcc-table td:nth-child(3),
  #mev-table-wrap .pvcc-table th:nth-child(4),#mev-table-wrap .pvcc-table td:nth-child(4),
  #mev-table-wrap .pvcc-table th:nth-child(5),#mev-table-wrap .pvcc-table td:nth-child(5),
  #mev-table-wrap .pvcc-table th:nth-child(6),#mev-table-wrap .pvcc-table td:nth-child(6),
  #mev-table-wrap .pvcc-table th:nth-child(7),#mev-table-wrap .pvcc-table td:nth-child(7){display:none!important;}

  /* RECURRING ACTIVITIES: ActivityName(1) + Actions(6) — hide 2-5 */
  #ra-table-wrap .pvcc-table th:nth-child(2),#ra-table-wrap .pvcc-table td:nth-child(2),
  #ra-table-wrap .pvcc-table th:nth-child(3),#ra-table-wrap .pvcc-table td:nth-child(3),
  #ra-table-wrap .pvcc-table th:nth-child(4),#ra-table-wrap .pvcc-table td:nth-child(4),
  #ra-table-wrap .pvcc-table th:nth-child(5),#ra-table-wrap .pvcc-table td:nth-child(5){display:none!important;}

  /* MANAGE NOTICES: Title(1) + Actions(6) — hide 2-5 */
  #page-manage-notices .pvcc-table th:nth-child(2),#page-manage-notices .pvcc-table td:nth-child(2),
  #page-manage-notices .pvcc-table th:nth-child(3),#page-manage-notices .pvcc-table td:nth-child(3),
  #page-manage-notices .pvcc-table th:nth-child(4),#page-manage-notices .pvcc-table td:nth-child(4),
  #page-manage-notices .pvcc-table th:nth-child(5),#page-manage-notices .pvcc-table td:nth-child(5){display:none!important;}

  /* MANAGE DONORS: Name(1) + Actions(5) — hide 2,3,4 */
  #mdn-table-wrap .pvcc-table th:nth-child(2),#mdn-table-wrap .pvcc-table td:nth-child(2),
  #mdn-table-wrap .pvcc-table th:nth-child(3),#mdn-table-wrap .pvcc-table td:nth-child(3),
  #mdn-table-wrap .pvcc-table th:nth-child(4),#mdn-table-wrap .pvcc-table td:nth-child(4){display:none!important;}

  /* FUNDRAISING: Campaign(1) + Actions(5) — hide 2,3,4 */
  #fr-table-wrap .pvcc-table th:nth-child(2),#fr-table-wrap .pvcc-table td:nth-child(2),
  #fr-table-wrap .pvcc-table th:nth-child(3),#fr-table-wrap .pvcc-table td:nth-child(3),
  #fr-table-wrap .pvcc-table th:nth-child(4),#fr-table-wrap .pvcc-table td:nth-child(4){display:none!important;}

  /* MANAGE SPACES: Space(1) + Actions(6) — scoped to spaces table only */
  #msp-table-wrap .pvcc-table th:nth-child(2),#msp-table-wrap .pvcc-table td:nth-child(2),
  #msp-table-wrap .pvcc-table th:nth-child(3),#msp-table-wrap .pvcc-table td:nth-child(3),
  #msp-table-wrap .pvcc-table th:nth-child(4),#msp-table-wrap .pvcc-table td:nth-child(4),
  #msp-table-wrap .pvcc-table th:nth-child(5),#msp-table-wrap .pvcc-table td:nth-child(5){display:none!important;}

  /* RENTAL ITEMS: Item(1) + Actions(5) */
  #rim-table-wrap .pvcc-table th:nth-child(2),#rim-table-wrap .pvcc-table td:nth-child(2),
  #rim-table-wrap .pvcc-table th:nth-child(3),#rim-table-wrap .pvcc-table td:nth-child(3),
  #rim-table-wrap .pvcc-table th:nth-child(4),#rim-table-wrap .pvcc-table td:nth-child(4){display:none!important;}

  /* MANAGE DIRECTORY: Name(1) + Actions(6) */
  #page-manage-directory .pvcc-table th:nth-child(2),#page-manage-directory .pvcc-table td:nth-child(2),
  #page-manage-directory .pvcc-table th:nth-child(3),#page-manage-directory .pvcc-table td:nth-child(3),
  #page-manage-directory .pvcc-table th:nth-child(4),#page-manage-directory .pvcc-table td:nth-child(4),
  #page-manage-directory .pvcc-table th:nth-child(5),#page-manage-directory .pvcc-table td:nth-child(5){display:none!important;}

  /* GALLERY: Title(2) + Actions(7) */
  #page-manage-gallery .pvcc-table th:nth-child(1),#page-manage-gallery .pvcc-table td:nth-child(1),
  #page-manage-gallery .pvcc-table th:nth-child(3),#page-manage-gallery .pvcc-table td:nth-child(3),
  #page-manage-gallery .pvcc-table th:nth-child(4),#page-manage-gallery .pvcc-table td:nth-child(4),
  #page-manage-gallery .pvcc-table th:nth-child(5),#page-manage-gallery .pvcc-table td:nth-child(5),
  #page-manage-gallery .pvcc-table th:nth-child(6),#page-manage-gallery .pvcc-table td:nth-child(6){display:none!important;}

  /* EXECUTIVE COMMITTEE: Order(1) + Name(2) — hide 3,4,5 */
  #exec-table-wrap .pvcc-table th:nth-child(3),#exec-table-wrap .pvcc-table td:nth-child(3),
  #exec-table-wrap .pvcc-table th:nth-child(4),#exec-table-wrap .pvcc-table td:nth-child(4),
  #exec-table-wrap .pvcc-table th:nth-child(5),#exec-table-wrap .pvcc-table td:nth-child(5){display:none!important;}

  /* AFFILIATES: Order(1) + Name(2) — hide 3,4 */
  #aff-table-wrap .pvcc-table th:nth-child(3),#aff-table-wrap .pvcc-table td:nth-child(3),
  #aff-table-wrap .pvcc-table th:nth-child(4),#aff-table-wrap .pvcc-table td:nth-child(4){display:none!important;}

  /* USER MANAGEMENT: DisplayName(2) + Actions(7) — hide 1,3,4,5,6 */
  #um-section-wrap .pvcc-table th:nth-child(1),#um-section-wrap .pvcc-table td:nth-child(1),
  #um-section-wrap .pvcc-table th:nth-child(3),#um-section-wrap .pvcc-table td:nth-child(3),
  #um-section-wrap .pvcc-table th:nth-child(4),#um-section-wrap .pvcc-table td:nth-child(4),
  #um-section-wrap .pvcc-table th:nth-child(5),#um-section-wrap .pvcc-table td:nth-child(5),
  #um-section-wrap .pvcc-table th:nth-child(6),#um-section-wrap .pvcc-table td:nth-child(6),
  #page-user-management .pvcc-table th:nth-child(1),#page-user-management .pvcc-table td:nth-child(1),
  #page-user-management .pvcc-table th:nth-child(3),#page-user-management .pvcc-table td:nth-child(3),
  #page-user-management .pvcc-table th:nth-child(4),#page-user-management .pvcc-table td:nth-child(4),
  #page-user-management .pvcc-table th:nth-child(5),#page-user-management .pvcc-table td:nth-child(5),
  #page-user-management .pvcc-table th:nth-child(6),#page-user-management .pvcc-table td:nth-child(6){display:none!important;}

  /* No horizontal scroll on trimmed tables */
  #page-bookings .tw table,#page-dashboard .tw table,#page-maintenance .tw table,
  #page-inventory .tw table,#page-financials .tw table,#page-documents .tw table,
  #mev-table-wrap table,#ra-table-wrap table,#page-manage-notices .tw table,
  #mdn-table-wrap table,#fr-table-wrap table,
  #msp-table-wrap table,#rim-table-wrap table,
  #page-manage-directory .tw table,
  #page-manage-gallery .tw table,
  #exec-table-wrap table,#aff-table-wrap table,
  #um-section-wrap table,#page-user-management table{min-width:0!important;width:100%!important;}

  /* Force these specific table wrappers to NOT scroll horizontally */
  #page-bookings .tw,#page-dashboard .tw,#page-maintenance .tw,
  #page-inventory .tw,#page-financials .tw,#page-documents .tw,
  #mev-table-wrap .tw,#ra-table-wrap .tw,#page-manage-notices .tw,
  #mdn-table-wrap .tw,#fr-table-wrap .tw,
  #msp-table-wrap .tw,#rim-table-wrap .tw,
  #page-manage-directory .tw,#page-manage-gallery .tw,
  #exec-table-wrap .tw,#aff-table-wrap .tw,
  #um-section-wrap .tw,#page-user-management .tw{overflow-x:hidden!important;}

  /* Empty-state rows: always visible even when col 1 is hidden */
  #page-bookings .pvcc-table .tbl-empty td,
  #page-dashboard .pvcc-table .tbl-empty td,
  #page-financials .pvcc-table .tbl-empty td,
  #page-manage-gallery .pvcc-table .tbl-empty td{display:table-cell!important;}

} /* end @media(max-width:768px) — PASS 7 column hiding */

/* Topbar slogan — left aligned always */
.tb-slogan{
  flex:1!important;
  text-align:left!important;
}

/* Guard view logout button — cleaner */
#guard-view [style*="background:#c94040"]{
  padding:6px 14px!important;
  font-size:12px!important;
  border-radius:7px!important;
  white-space:nowrap!important;
}

@media(max-width:768px){

  /* Mobile tables — specific column hiding per table (see rules below) */
  .pvcc-table{min-width:0!important;width:100%!important;}
  .tw{overflow-x:visible!important;}
  .tw table{min-width:0!important;width:100%!important;}
  .pvcc-table td:last-child,.pvcc-table th:last-child{width:1%!important;white-space:nowrap!important;}
  .pvcc-table tbody tr[style*="cursor:pointer"]:active{background:var(--mint)!important;}

  /* Slogan left on mobile */
  .tb-slogan{
    font-size:11px!important;
    max-width:none!important;
    flex:1!important;
    color:var(--forest)!important;
    font-weight:600!important;
  }

  /* Events filter bar — Book a Space stays right */
  .ev-filter-bar,
  [style*="justify-content:space-between"][style*="flex-wrap:wrap"]{
    justify-content:space-between!important;
  }
  #ev-filters{
    flex-wrap:wrap!important;
    gap:4px!important;
    flex:1!important;
  }

  /* Calendar footer nav */
  .cal-footer-nav,
  [style*="background:var(--forest)"][style*="justify-content:space-between"]{
    padding:8px 12px!important;
  }
  .cnb{
    padding:5px 12px!important;
    width:auto!important;
    font-size:12px!important;
  }
}

/* Sidebar close X button — hidden on desktop */
.sb-close{
  display:none;
  position:absolute;
  top:12px;
  right:12px;
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.2);
  border-radius:6px;
  color:#fff;
  width:28px;
  height:28px;
  font-size:14px;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  line-height:1;
  z-index:10;
}
.sb-logo{position:relative;}

/* Modal fixed X — handled in main mbox CSS */

@media(max-width:768px){
  .topbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    z-index:150!important;
    transform:translateY(0);
    transition:transform .25s ease!important;
  }
  .topbar.hidden{transform:translateY(-110%)!important;}
  .main{padding-top:52px!important;}
}

@media(max-width:768px){
  /* Show sidebar X button */
  .sb-close{display:flex;}

  /* Slogan — ensure it's visible */
  .tb-slogan{
    font-size:11px!important;
    max-width:none!important;
    flex:1!important;
    text-align:left!important;
    color:var(--forest)!important;
    font-weight:600!important;
    font-family:'Outfit',sans-serif!important;
    font-style:normal!important;
    background:none!important;
    -webkit-text-fill-color:var(--forest)!important;
    background-clip:unset!important;
    -webkit-background-clip:unset!important;
    filter:none!important;
  }

  /* pg-hdr on mobile — button stays right aligned */
  .pg-hdr{
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:8px!important;
  }
  .pg-hdr > div:first-child{
    flex:1!important;
    min-width:0!important;
  }
  .pg-hdr .btn-add-green,
  .pg-hdr .btn-light{
    flex-shrink:0!important;
    white-space:nowrap!important;
    font-size:11px!important;
    padding:5px 10px!important;
  }
  .pg-hdr-title{font-size:16px!important;}
  .pg-hdr-sub{font-size:11px!important;}
}
@media(max-width:768px){

  /* Financial summary — fc cards stack */
  #fin-summary > div,
  #fin-summary [style*="display:flex"]{
    flex-direction:column!important;
    gap:10px!important;
  }
  .fc{
    width:100%!important;
    box-sizing:border-box!important;
    text-align:left!important;
  }
  .fc-val{font-size:20px!important;}

  /* Bookings financial summary strip */
  #bk-fin-wrap > div,
  [id*="fin-strip"],
  .bk-summary ~ [style*="display:flex"]{
    flex-direction:column!important;
  }

  /* Calendar — scroll only the grid, header/footer stay full width */
  .cal-wrap{
    overflow:visible!important;
  }
  .cal-hdr{
    overflow:hidden!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  .cal-leg{
    flex-wrap:wrap!important;
    gap:6px!important;
  }
  #cal-grid{
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #cal-grid .cg{
    min-width:500px!important;
    width:500px!important;
  }

  /* Dashboard recent tables — force scroll */
  #page-dashboard .tw,
  #page-dashboard .card .tw{
    overflow-x:auto!important;
    display:block!important;
  }
  #page-dashboard .tw table,
  #page-dashboard .pvcc-table{min-width:0!important;width:100%!important;}
  #page-dashboard .card{overflow:visible!important;}
}
@media(max-width:768px){

  /* Events page — single column tiles */
  .ev-grid{grid-template-columns:1fr!important;}
  .evt-title{padding-right:0!important;font-size:14px!important;}


  /* Community Directory — single column */
  .dir-grid{grid-template-columns:1fr!important;}

  /* Contacts grid — single column */
  .ct-grid,
  .contacts-grid{grid-template-columns:1fr!important;}
  .ct-card{min-width:0!important;}
  /* Fix cut-off contact card header */
  .ct-card > div:first-child{flex-wrap:wrap!important;}

  /* Documents category tiles — wrap nicely */
  .doc-cats{grid-template-columns:repeat(4,1fr)!important;gap:8px!important;}
  .doc-cat-tile{padding:10px 6px!important;}
  .dct-icon{font-size:20px!important;}
  .dct-label{font-size:9px!important;}
  .dct-cnt{font-size:9px!important;}

  /* Bookings summary bar — 2 col on mobile */
  .bk-summary{grid-template-columns:repeat(2,1fr)!important;}

  /* Dashboard recent tables — let them scroll */
  .dashboard-recent .tw,
  .card .tw{overflow-x:auto!important;}
  .card .tw table,
  .card .pvcc-table{min-width:420px!important;}

  /* Space detail modal — scrollable */
  #space-detail-mo .mbox-lg,
  #ri-detail-mo .mbox-lg{max-height:88vh!important;overflow-y:auto!important;}

  /* Availability strip in space modal */
  .av-strip{display:grid!important;grid-template-columns:repeat(7,1fr)!important;gap:4px!important;}
  .av-day{min-width:0!important;padding:6px 2px!important;}
  .avd-n{font-size:9px!important;}

  /* Space cards description — limit overflow */
  .sp-desc{font-size:12px!important;-webkit-line-clamp:3!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;overflow:hidden!important;}

  /* Financial summary cards — 2 col */
  [style*="grid-template-columns:repeat(4"]{grid-template-columns:repeat(2,1fr)!important;}

  /* Income & Expenditure summary top cards */
  .ic2-grid,
  [class*="ic2"]{width:100%!important;}

  /* Booking payment summary strip */
  .bk-fin-strip,
  [style*="repeat(3,1fr)"]{grid-template-columns:1fr!important;}

  /* Home section — About Us two col fix */
  .home-section > [style*="1fr 1fr"]{grid-template-columns:1fr!important;}
}

@media(max-width:480px){
  /* Even smaller screens — doc tiles 3 col */
  .doc-cats{grid-template-columns:repeat(3,1fr)!important;}
  .bk-summary{grid-template-columns:1fr!important;}
}
@media(max-width:768px){
  /* Override ALL inline-styled inputs/selects in filter bars */
  .filter-bar .form-inp,
  .filter-bar input[style],
  .filter-bar select[style],
  .filter-bar input,
  .filter-bar select{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* Override inline grid layouts — force single column */
  .content [style*="grid-template-columns"],
  .page [style*="grid-template-columns"]{
    grid-template-columns:1fr!important;
  }

  /* But keep auto-fill grids responsive naturally */
  .content [style*="minmax"],
  .page [style*="minmax"]{
    grid-template-columns:1fr!important;
  }

  /* Guard view two-column grid */
  #guard-view [style*="grid-template-columns"]{
    grid-template-columns:1fr!important;
  }

  /* Dashboard stat cards keep 2-col on mobile */
  .stat-grid{
    grid-template-columns:repeat(2,1fr)!important;
  }

  /* Tables — column hiding handles mobile, scroll only where needed */
  .mgmt-card{overflow:visible!important;border-radius:14px!important;}
  .mgmt-card > .tw{border-radius:14px!important;}
  /* Rental items table - collapse hidden columns completely */
  #rim-table-wrap .pvcc-table{table-layout:auto!important;}
  /* Actions column in trimmed tables - ensure buttons fit */
  .pvcc-table td:last-child{white-space:nowrap!important;width:1%!important;}
  .pvcc-table td:last-child > div{display:flex!important;gap:4px!important;flex-wrap:nowrap!important;}

  /* Kanban columns */
  .kb-cols,
  .kanban,
  [id*="kb-col"]{
    grid-template-columns:1fr!important;
    flex-direction:column!important;
  }
  .kb-col{
    width:100%!important;
    min-width:0!important;
  }

  .mbox,
  .mbox-lg{
    width:96vw!important;
    max-width:96vw!important;
    border-radius:18px!important;
    max-height:90vh!important;
    overflow-y:auto!important;
    margin:auto!important;
  }
  .mo{
    align-items:center!important;
    padding:16px!important;
  }

  /* Prevent horizontal page overflow */
  /* Only .main gets overflow-x:hidden — applying it to .page/.content
     implicitly sets overflow-y:auto which creates a nested scroll context
     inside the flex column, causing flex-shrink to crush banners and cards */
  .page,
  .content{
    max-width:100vw!important;
    box-sizing:border-box!important;
  }
  .main{
    max-width:100vw!important;
    overflow-x:hidden!important;
    box-sizing:border-box!important;
  }

  /* Inline fr2/fr3 grids */
  [class="fr2"],
  [class="fr3"],
  .fr2,
  .fr3{
    grid-template-columns:1fr!important;
  }

  /* Home page inline grids */
  .home-section [style*="grid-template-columns"]{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  /* About us two-col becomes single */
  .home-section [style*="1fr 1fr"]{
    grid-template-columns:1fr!important;
  }

  /* Sec-hdr action buttons */
  .pg-hdr,
  .sec-hdr{
    flex-wrap:wrap!important;
    gap:8px!important;
  }

  /* Invoice layout */
  .inv-hdr,
  .inv-parties,
  .inv-sig,
  [class*="inv-"]{
    grid-template-columns:1fr!important;
    flex-direction:column!important;
  }

  /* Chart overflow */
  .chart-wrap{
    overflow-x:auto!important;
  }
  .chart-wrap svg,
  .line-chart-svg{
    min-width:300px!important;
  }
}

.hamburger{display:none;flex-direction:column;justify-content:space-between;width:26px;height:19px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;margin-right:10px;}
.hamburger span{display:block;height:2px;width:100%;background:var(--forest);border-radius:2px;transition:all .2s;}
body.dark .hamburger span{background:#a8d5b5;}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;}
.sidebar-overlay.active{display:block;}

@media(max-width:1024px){
  :root{--sidebar:210px;}
  .content{padding:18px 16px;}
  .topbar{padding:10px 16px;}
  .fr2,.fr3{grid-template-columns:1fr;}
  .grid2,.grid3{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .mbox{width:96vw;max-width:96vw;}
  .mbox-lg{width:96vw;max-width:96vw;}
  .filter-bar{flex-wrap:wrap;gap:8px;}
  .tw{overflow-x:auto;}
  /* Only force min-width on tables that are NOT column-trimmed on mobile */
  .tw table{min-width:0;}
  .gallery-grid,.gal-grid{grid-template-columns:repeat(3,1fr);}
}

@media(max-width:768px){
  /* Show hamburger, hide sidebar off-screen */
  .hamburger{display:flex;}
  .sidebar{transform:translateX(-100%);transition:transform .25s ease;z-index:200;width:260px;box-shadow:none;}
  .sidebar.sidebar-open{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,.3);}
  .main{margin-left:0!important;}

  /* Topbar */
  .topbar{padding:10px 12px;gap:8px;}
  .tb-slogan{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;}
  .tb-right{gap:6px;}
  #staff-access-link{font-size:10px;}

  /* Content */
  .content{padding:12px 10px;}

  /* Page headers */
  .pg-hdr{flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;}
  .pg-hdr-title{font-size:17px;}

  /* Grids */
  .stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .grid2,.grid3{grid-template-columns:1fr;gap:12px;}
  .fr2,.fr3{grid-template-columns:1fr;}

  /* Tables */
  .tw{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .tw table{min-width:520px;}
  .mgmt-card{overflow-x:auto;}

  /* Filter bars */
  .filter-bar{flex-wrap:wrap;gap:8px;}
  .filter-bar .form-inp,
  .filter-bar select,
  .filter-bar input,
  .search-inp{width:100%!important;max-width:100%!important;box-sizing:border-box;}

  /* Modals — centered, fully rounded */
  .mo{align-items:center;padding:12px;}
  .mbox,.mbox-lg,.mbox-xl{width:96vw;max-width:96vw;border-radius:18px;max-height:90vh;overflow-y:auto!important;}
  .mbox-xl>div[style*="grid-template-columns"]{grid-template-columns:1fr!important;}

  /* Kanban */
  .kanban{grid-template-columns:1fr!important;}
  .kb-col{min-width:unset!important;width:100%!important;}

  /* Cards */
  .card{padding:14px 12px;}
  .sec-hdr{flex-wrap:wrap;gap:8px;}

  /* Ev banner */
  .ev-banner{padding:18px 14px;}
  .ev-banner h2{font-size:20px;}

  /* Gallery */
  .gallery-grid,.gal-grid{grid-template-columns:repeat(2,1fr);}

  /* Pagination */
  .pagi-bar{justify-content:center;}
  .pagi-btn{padding:5px 10px;font-size:12px;}

  /* Buttons */
  .btn-add-green,.btn-export-green{font-size:12px;padding:6px 12px;}

  /* Home page */
  .home-hero{min-height:200px;}
  .home-hero,.hero-content{padding:28px 16px 36px;}
  .hero-title{font-size:26px;}
  .hero-btns{flex-direction:column;gap:8px;}
  .hero-btn{width:100%;justify-content:center;}
  .home-stats{flex-direction:column;gap:14px;padding:18px 16px;align-items:center;}
  .home-stat-num{font-size:26px;}
  .home-section,.home-section.alt{padding:22px 14px;}
  .home-section-title{font-size:20px;}
  .contact-strip{flex-direction:column;gap:10px;padding:16px 14px;}

  /* Spaces */
  .spaces-grid{grid-template-columns:1fr;}
  .sp-card{margin-bottom:0;}

  /* Calendar */
  .cd{min-height:52px;padding:2px;}
  .dev{font-size:9px;padding:1px 2px;}
  .dn{font-size:10px;}
  .cdn{font-size:9px;}

  /* Invoice */
  .inv-hdr{flex-direction:column;gap:6px;}
  .inv-parties{grid-template-columns:1fr;gap:10px;}
  .inv-sig{grid-template-columns:1fr;gap:10px;}

  /* Donor cards */
  .dr-main{padding:10px 12px;}
  .dinfo{min-width:0;}

  /* Abtns */
  .abtns{flex-wrap:wrap;gap:4px;}
}

@media(max-width:400px){
  .stat-grid{grid-template-columns:1fr;}
  .tb-slogan{max-width:110px;}
  .home-stat-num{font-size:22px;}
  .hero-title{font-size:22px;}
}

/* ── SOCIAL MEDIA BADGES ─────────────────────────────────────── */
.social-strip{display:flex;flex-wrap:wrap;gap:10px;padding-top:14px;margin-top:10px;border-top:1px solid rgba(255,255,255,0.12);justify-content:center;}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;text-decoration:none;transition:transform .18s,box-shadow .18s;flex-shrink:0;}
.social-icon:hover{transform:scale(1.12);box-shadow:0 4px 12px rgba(0,0,0,.35);}
.social-icon svg{width:22px;height:22px;}
.social-fb{background:#1877f2;}
.social-ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%);}
.social-tw{background:#000;}
.social-wa{background:#25d366;}
.social-yt{background:#ff0000;}
.social-tt{background:#010101;}
.social-li{background:#0a66c2;}

/* ── SOCIAL SETTINGS GRID ────────────────────────────────────── */
.social-grid{display:grid;grid-template-columns:120px 1fr 100px;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.social-grid-hdr,.social-grid-row{display:contents;}
.social-grid-hdr span,.social-grid-row span,.social-grid-row label,.social-grid-row input{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;}
.social-grid-hdr span{font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:var(--cream);}
.social-grid-row input{border:none;border-left:1px solid var(--border);border-bottom:1px solid var(--border);width:100%;box-sizing:border-box;background:transparent;font-size:13px;color:var(--text);}
.social-grid-row input:focus{outline:none;background:rgba(74,141,89,.04);}
.social-grid-row label{display:flex;align-items:center;justify-content:center;gap:6px;border-left:1px solid var(--border);cursor:pointer;}
.social-grid-row:last-child span,.social-grid-row:last-child input,.social-grid-row:last-child label{border-bottom:none;}

/* ── CONTRACT MODAL ──────────────────────────────────────────── */
.contract-wrap{font-family:'Outfit',sans-serif;font-size:13px;line-height:1.6;color:var(--text);}
.contract-hdr{display:flex;justify-content:space-between;align-items:flex-start;background:var(--forest);color:#fff;padding:16px 20px;border-radius:8px 8px 0 0;}
.contract-hdr h2{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;margin:0 0 3px;}
.contract-hdr p{font-size:11px;opacity:.8;margin:0;}
.contract-hdr-num{text-align:right;flex-shrink:0;}
.contract-hdr-num h3{font-family:'Playfair Display',serif;font-size:14px;font-weight:700;margin:0 0 3px;}
.contract-hdr-num p{font-size:11px;opacity:.8;margin:0;}
.contract-body2{border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px;background:#fff;}
.ct-sec{padding:10px 16px;border-bottom:1px solid var(--border);}
.ct-sec:last-child{border-bottom:none;}
.ct-sec-hdr{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#fff;background:var(--sage);padding:4px 16px;margin:0 -16px 9px;display:block;}
.ct-parties{display:grid;grid-template-columns:1fr 1fr;gap:16px;font-size:12.5px;}
.ct-party-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-bottom:5px;}
.ct-row{display:grid;grid-template-columns:140px 1fr;gap:4px;font-size:12.5px;padding:2px 0;}
.ct-row-lbl{color:var(--muted);}
.ct-row-val{font-weight:500;}
.ct-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin:6px 0;}
.ct-tbl thead tr{background:var(--forest);}
.ct-tbl thead th{color:#fff;padding:7px 10px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:600;}
.ct-tbl tbody tr{border-bottom:1px solid var(--border);}
.ct-tbl tbody td{padding:7px 10px;vertical-align:middle;}
.ct-tbl tfoot td{padding:7px 10px;font-weight:700;background:var(--cream);border-top:2px solid var(--border);}
.ct-check{color:var(--sage);font-size:15px;font-weight:700;}
.ct-clause{font-size:12px;margin-bottom:6px;line-height:1.55;}
.ct-clause b{font-weight:700;}
.ct-cancel-tbl{width:100%;border-collapse:collapse;font-size:12.5px;}
.ct-cancel-tbl th{background:var(--cream);padding:7px 12px;text-align:left;font-weight:700;border:1px solid var(--border);}
.ct-cancel-tbl td{padding:7px 12px;border:1px solid var(--border);}
.ct-sig-block{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:6px;font-size:12.5px;}
.ct-sig-line{height:38px;border-bottom:1px solid #333;}
.ct-sig-name{font-size:11px;color:var(--muted);margin-top:3px;}
.ct-footer-note{text-align:center;font-size:11px;color:var(--muted);padding:10px 16px;line-height:1.6;font-style:italic;}

/* ── SIGNATURE PAD ───────────────────────────────────────────── */
.sig-pad-wrap{border:2px dashed var(--border);border-radius:10px;position:relative;background:#fafaf8;margin-top:6px;}
.sig-pad-wrap canvas{display:block;cursor:crosshair;touch-action:none;border-radius:8px;}
.sig-pad-lbl{font-size:11px;color:var(--muted);padding:4px 8px;border-bottom:1px solid var(--border);}
.sig-pad-clear{position:absolute;top:6px;right:8px;background:none;border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:11px;cursor:pointer;color:var(--muted);}
.sig-pad-clear:hover{background:var(--cream);}
.contract-status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;}
.csb-draft{background:#fff3cd;color:#856404;}
.csb-digital{background:#d1e7dd;color:#0f5132;}
.csb-physical{background:#cfe2ff;color:#084298;}
.csb-none{background:var(--cream);color:var(--muted);}

/* ── PRINT AREA (hidden on screen, shown for @media print) ───── */
#contract-print-area{display:none;}
@media print{
  body>*{display:none!important;}
  #contract-print-area{display:block!important;}
}