:root{--bg:#f7faf4;--card:#fff;--text:#152517;--muted:#667466;--line:#e3eadd;--brand:#14751e;--brand2:#0b5d19;--accent:#f97316;--soft:#eef8e8;--shadow:0 12px 30px rgba(20,60,20,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--brand);text-decoration:none}.wrap{max-width:1180px;margin:auto;padding:22px}.topbar{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(8px)}.nav{display:flex;gap:22px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-weight:900}.brand img{height:58px;max-width:210px;object-fit:contain}.navlinks{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.navlinks a{color:#1d2b1d;font-weight:700;padding:10px 12px;border-radius:12px}.navlinks a:hover,.navlinks a.active{background:var(--soft);color:var(--brand)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:linear-gradient(135deg,var(--brand),#2d9d27);color:white;padding:12px 16px;border-radius:12px;font-weight:800;cursor:pointer;box-shadow:0 8px 16px rgba(20,117,30,.18)}.btn:hover{background:var(--brand2)}.btn.secondary{background:#f2f6ee;color:var(--text);box-shadow:none;border:1px solid var(--line)}.btn.accent{background:linear-gradient(135deg,var(--accent),#f59e0b)}.hero-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;margin-top:18px}.hero{position:relative;overflow:hidden;min-height:360px;border-radius:0 0 26px 26px;color:#fff;padding:56px;background:linear-gradient(90deg,rgba(6,44,16,.92),rgba(12,80,26,.62)),radial-gradient(circle at 82% 35%,rgba(249,115,22,.55),transparent 25%),linear-gradient(135deg,#164e28,#2f7a2a 55%,#93c572)}.hero:after{content:"";position:absolute;right:-45px;top:-45px;width:280px;height:280px;background:radial-gradient(circle,#f6c544 0 16%,transparent 17%),linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,0));border-radius:999px}.hero h1{position:relative;font-size:52px;line-height:1.02;margin:0 0 10px;max-width:700px;text-shadow:0 3px 18px rgba(0,0,0,.28)}.hero h1 span{color:#9be564}.hero p{position:relative;font-size:19px;font-weight:700;margin:0 0 22px}.search{position:relative;display:grid;grid-template-columns:1fr 180px 170px auto;gap:10px;margin-top:24px;background:#fff;padding:8px;border-radius:18px;box-shadow:var(--shadow)}.input,.select,textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:15px;color:var(--text)}.trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;font-weight:800}.trust span{background:rgba(255,255,255,.15);padding:8px 10px;border-radius:999px}.side-stack{display:grid;gap:14px}.promo{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.promo.green{background:linear-gradient(135deg,#11631c,#178326);color:#fff}.promo h3{margin:0 0 8px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-top:26px}.category-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}.cat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 10px;text-align:center;box-shadow:0 8px 18px rgba(60,70,50,.06);font-weight:800}.cat-card .icon{font-size:26px;display:block;margin-bottom:8px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.business-card{padding:0;overflow:hidden}.business-cover{height:142px;background:linear-gradient(135deg,#d9ead1,#f4e6b6);display:flex;align-items:center;justify-content:center}.business-cover img{width:100%;height:100%;object-fit:cover}.business-body{padding:14px}.logo{width:72px;height:72px;border-radius:16px;object-fit:cover;background:#edf1f5;border:1px solid var(--line)}.business-card h3{margin:0 0 6px}.muted{color:var(--muted)}.pill{display:inline-block;background:#edf8e7;color:#126b1d;padding:5px 9px;border-radius:999px;font-size:13px;margin:3px 4px 3px 0;font-weight:700}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.detail{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:22px}.notice{background:#fff7ed;border:1px solid #fed7aa;padding:12px;border-radius:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:28px 0}.stat{background:#fff;border-left:5px solid var(--brand);padding:18px;border-radius:16px;box-shadow:var(--shadow);font-weight:800}.stat b{font-size:28px;color:var(--brand)}.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.status{font-weight:700;text-transform:capitalize}.footer{padding:30px 22px;color:var(--muted)}@media(max-width:1000px){.hero-shell{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}.category-grid{grid-template-columns:repeat(4,1fr)}.search{grid-template-columns:1fr 1fr}}@media(max-width:700px){.wrap{padding:16px}.nav{align-items:flex-start}.nav,.navlinks{flex-direction:column}.hero{padding:34px 22px}.hero h1{font-size:38px}.search,.grid,.detail,.form-grid,.stats{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,1fr)}.brand img{height:48px}}


/* Community Hub v2 */
.hero-community{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:center;background:linear-gradient(90deg,rgba(5,49,18,.88),rgba(5,49,18,.48)),url('../img/tzaneen-hero.svg') center/cover;border-radius:0 0 28px 28px;padding:56px 42px;color:#fff}.hero-community h1{font-size:46px;line-height:1.05;margin:10px 0}.hero-community p{font-size:18px;max-width:680px}.eyebrow{display:inline-block;background:#218b2e;color:#fff;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700}.hero-actions{background:#fff;color:#12351a;border-radius:18px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.22)}.hero-actions .btn{display:block;width:100%;text-align:center;margin:10px 0}.trust-row{display:flex;gap:28px;flex-wrap:wrap;margin-top:20px}.trust-pill{display:flex;gap:9px;align-items:center;font-weight:700}.community-section{padding:26px 0}.room-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.room-card{background:#fff;border:1px solid #e5eadf;border-radius:14px;box-shadow:0 10px 25px rgba(15,60,25,.08);overflow:hidden}.room-head{text-align:center;padding:18px 10px 12px}.room-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:#198c22;color:#fff;font-size:30px}.room-card:nth-child(2) .room-icon{background:#2477c9}.room-card:nth-child(3) .room-icon{background:#7855c8}.room-card:nth-child(4) .room-icon{background:#f47a12}.room-card:nth-child(5) .room-icon{background:#168f8c}.room-card:nth-child(6) .room-icon{background:#ef5570}.room-head h3{margin:4px 0 0}.room-count{font-size:13px;color:#667}.mini-posts{border-top:1px solid #f0eee8}.mini-post{display:grid;grid-template-columns:38px 1fr;gap:8px;padding:8px 10px;border-bottom:1px solid #f7f3ea;font-size:13px}.mini-thumb{width:38px;height:38px;border-radius:7px;background:#eef2e9;object-fit:cover}.room-links{padding:10px}.room-links a{display:block;text-align:center;padding:9px;border-radius:9px;color:#0e6419;text-decoration:none;font-weight:700}.room-links .post-btn{background:#198c22;color:#fff;margin-top:7px}.noticebar{display:flex;justify-content:space-between;align-items:center;border:1px solid #e0ead8;background:#fbfff7;border-radius:12px;margin:14px 0 28px;padding:16px 22px}.notice-layout{display:grid;grid-template-columns:1fr 310px;gap:24px}.notice-card{background:#fff;border:1px solid #e7e8df;border-radius:14px;padding:16px;box-shadow:0 8px 18px rgba(0,0,0,.05);margin-bottom:14px}.notice-meta{font-size:13px;color:#667}.notice-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.notice-gallery img{width:100%;height:150px;object-fit:cover;border-radius:10px}.dropzone{border:2px dashed #b8d6b5;border-radius:14px;background:#f8fff6;padding:26px;text-align:center;cursor:pointer}.preview-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.preview-grid img{width:90px;height:90px;object-fit:cover;border-radius:10px}.admin-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;background:#edf7ee;color:#12651d}.admin-badge.pending{background:#fff3cd;color:#8a5b00}.admin-badge.rejected{background:#fde8e8;color:#9b1c1c}@media(max-width:1050px){.room-grid{grid-template-columns:repeat(3,1fr)}.hero-community,.notice-layout{grid-template-columns:1fr}}@media(max-width:700px){.room-grid{grid-template-columns:1fr 1fr}.hero-community{padding:32px 18px}.hero-community h1{font-size:34px}.noticebar{display:block}.notice-gallery{grid-template-columns:1fr}}
.container{max-width:1180px;margin:auto;padding:22px}.search-box{position:relative;display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin-top:24px;background:#fff;padding:8px;border-radius:18px;box-shadow:var(--shadow)}.search-box input,.search-box select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:15px;color:var(--text)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 14px}.category-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 10px;text-align:center;box-shadow:0 8px 18px rgba(60,70,50,.06);font-weight:800}.business-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.form-card{display:grid;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow);max-width:780px}.form-card input,.form-card select,.form-card textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:12px}.btn-light{background:#f2f6ee!important;color:#12351a!important;border:1px solid var(--line);box-shadow:none}.mini-post{color:#12351a}.stats{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.stats div{text-align:center}table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}td,th{padding:10px;border-bottom:1px solid var(--line);text-align:left}button{padding:8px 11px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer}@media(max-width:900px){.business-grid{grid-template-columns:repeat(2,1fr)}.search-box{grid-template-columns:1fr}}@media(max-width:600px){.business-grid{grid-template-columns:1fr}.container{padding:16px}}

/* Admin AI Assistant */
.file-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-top:12px;max-height:360px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fff}
.file-check-grid label{font-size:13px;color:#244332;display:flex;gap:6px;align-items:flex-start}
.ai-output{background:#0b1f12;color:#d7ffd8;padding:18px;border-radius:14px;overflow:auto;white-space:pre-wrap;max-height:75vh;line-height:1.5}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.admin-table{width:100%;border-collapse:collapse}
.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.admin-table th{color:#244332;background:#f5fbf4}
