@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#16A34A;--deep:#166534;--lime:#DCFCE7;--ink:#1F2937;--muted:#4B5563;--line:#E5E7EB;--pale:#F8FAF9;--white:#FFFFFF;--shadow:0 10px 28px rgba(22,101,52,.08)}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}.topbar{height:82px;padding:12px max(22px,calc((100% - 1160px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf2ef;background:#fff}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:52px;height:52px;border-radius:50%;object-fit:cover}.brand strong,.brand small{display:block}.brand strong{font-family:Manrope,sans-serif;font-size:15px;letter-spacing:.03em}.brand small{font-size:10px;letter-spacing:.14em;color:var(--muted);margin-top:4px}.admin-link{font-weight:700;color:var(--green);font-size:13px}.hero{padding:82px 22px 76px;text-align:center;background:radial-gradient(ellipse at 50% 0,#e1f8e9 0,rgba(244,250,246,.75) 44%,#fff 78%)}.hero-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid #cce8d7;background:#fff;padding:9px 14px;border-radius:30px;font-size:10px;font-weight:800;letter-spacing:.13em;color:var(--green)}.live-dot{width:7px;height:7px;background:#20a66a;border-radius:50%}h1,h2,h3,p{margin-top:0}.hero h1{font:800 clamp(38px,6vw,64px)/1.08 Manrope,sans-serif;letter-spacing:-.055em;margin:24px 0 18px}.hero h1 span{color:var(--green)}.hero>p{max-width:580px;margin:0 auto 28px;line-height:1.7;color:var(--muted);font-size:16px}.search-box{display:flex;align-items:center;gap:12px;max-width:610px;margin:auto;background:#fff;border:1px solid #dbe8e0;border-radius:15px;padding:0 18px;box-shadow:var(--shadow);height:58px}.search-box span{font-size:27px;color:var(--green)}.search-box input{border:0;outline:0;width:100%;font:inherit;font-size:14px}.hero-note{margin-top:18px;font-size:12px;color:var(--muted)}.section-wrap{max-width:1120px;margin:0 auto;padding-left:22px;padding-right:22px}.directory{padding-top:42px;padding-bottom:55px}.section-heading,.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.17em;color:#17805f;margin-bottom:8px}.section-heading h2,.panel-heading h2{font:800 28px Manrope,sans-serif;margin-bottom:0;letter-spacing:-.03em}.count-badge{background:#e8f6ec;color:var(--green);font-weight:700;font-size:12px;padding:9px 12px;border-radius:30px}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:25px 0}.filter-chip{border:1px solid var(--line);background:white;border-radius:30px;padding:9px 15px;font:600 12px 'DM Sans';color:var(--muted);cursor:pointer}.filter-chip.active{background:var(--green);color:white;border-color:var(--green)}.groups-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.group-card{border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 5px 18px rgba(20,43,39,.035);display:flex;flex-direction:column;min-height:245px}.card-top{display:flex;justify-content:space-between;align-items:center}.category-tag{background:#eff8f1;color:var(--green);font-size:10px;font-weight:800;padding:7px 10px;border-radius:20px}.group-symbol{color:#16815e;font-size:21px}.group-card h3{font:800 18px Manrope,sans-serif;margin:17px 0 7px}.group-meta{font-size:11px;color:#16815e;font-weight:700;min-height:14px;margin-bottom:10px}.group-description{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:20px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:12px 15px;font-size:12px;font-weight:800}.button-green{background:var(--green);color:white;margin-top:auto}.button-muted{background:#f1f4f2;color:#687671;margin-top:auto}.empty-state{text-align:center;padding:48px 15px;color:var(--muted)}.empty-icon{font-size:38px;color:var(--green)}.empty-state h3{color:var(--ink)}.status-message{font-size:13px;color:var(--muted);line-height:1.5}.help-banner{display:flex;align-items:center;gap:18px;background:var(--green);color:white;border-radius:18px;padding-top:24px;padding-bottom:24px;margin-bottom:55px}.help-icon{width:45px;height:45px;border-radius:13px;background:#ffffff1c;display:grid;place-items:center;font-size:24px;flex-shrink:0}.help-banner h3{font:700 17px Manrope;margin-bottom:5px}.help-banner p{font-size:12px;color:#d4e9df;margin-bottom:0}.help-banner>div:nth-child(2){flex:1}.button-light{background:white;color:var(--green);white-space:nowrap}footer{text-align:center;border-top:1px solid var(--line);padding:30px 20px 36px;color:var(--muted);font-size:12px}footer p{margin:12px 0 7px}.footer-brand{font:800 13px Manrope;color:var(--green)}.footer-brand span{font-size:9px;letter-spacing:.13em;margin-left:7px;color:var(--muted)}footer small{font-size:10px}@media(max-width:800px){.groups-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding-top:65px}}@media(max-width:560px){.topbar{height:72px;padding:10px 16px}.brand-logo{width:44px;height:44px}.brand strong{font-size:12px}.brand small{font-size:8px}.hero{padding:56px 17px 52px}.hero>p{font-size:14px}.groups-grid{grid-template-columns:1fr}.section-wrap{padding-left:16px;padding-right:16px}.section-heading h2{font-size:24px}.help-banner{flex-wrap:wrap}.help-banner .button{width:100%}.footer-brand span{display:block;margin:5px 0 0}}

.select-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:-8px 0 24px}.select-filters label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:11px;font-weight:700;flex:1;min-width:150px}.select-filters select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:#fff;color:var(--ink);font:500 13px 'DM Sans',sans-serif}.clear-filters{min-height:42px;border:1px solid var(--line);border-radius:10px;background:#f4faf6;color:var(--green);padding:0 15px;font:700 12px 'DM Sans',sans-serif;cursor:pointer}.clear-filters:hover{background:#e8f6ec}

/* Featured WhatsApp channel link in the homepage hero */
.channel-cta{display:flex;align-items:center;gap:13px;max-width:440px;margin:0 auto 24px;padding:14px 17px;text-align:left;background:#075e54;color:#fff;border:1px solid #075e54;border-radius:15px;box-shadow:0 10px 24px rgba(6,78,69,.16);transition:transform .15s ease,background .15s ease}.channel-cta:hover{background:#064e45;transform:translateY(-1px)}.channel-icon{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;background:#ffffff20;font-size:24px}.channel-cta strong,.channel-cta small{display:block}.channel-cta strong{font-size:13px;font-weight:800}.channel-cta small{font-size:10px;line-height:1.45;color:#d9f3e7;margin-top:4px}.channel-cta>span:nth-child(2){flex:1}.channel-arrow{font-size:20px;font-weight:800}@media(max-width:560px){.channel-cta{max-width:100%;padding:13px;gap:10px}.channel-cta strong{font-size:12px}.channel-cta small{font-size:9px}}


/* White-first theme with subtle green accents */
body{background:#FFFFFF;color:#1F2937}
.topbar{background:#FFFFFF;border-bottom:1px solid #E5E7EB;color:#1F2937;border-top:3px solid #16A34A}
.brand small{color:#6B7280}.admin-link{color:#15803D}
.hero{background:linear-gradient(180deg,#F0FDF4 0%,#FFFFFF 84%);color:#1F2937}
.hero h1,.hero h2{color:#1F2937}.hero h1 span{color:#15803D}
.hero>p,.hero-note{color:#4B5563}
.hero-pill{background:#FFFFFF;color:#166534;border-color:#BBF7D0}
.search-box{background:#FFFFFF;border-color:#D1D5DB}
.directory{background:#FFFFFF;color:#1F2937}
.section-heading h2,.panel-heading h2{color:#1F2937}
.eyebrow{color:#15803D}
.count-badge{background:#DCFCE7;color:#166534}
.filters .filter-chip{background:#FFFFFF;color:#4B5563;border-color:#E5E7EB}
.filters .filter-chip.active{background:#16A34A;color:#FFFFFF;border-color:#16A34A}
.select-filters label{color:#4B5563}
.group-card{background:#FFFFFF;color:#1F2937;border-color:#E5E7EB;box-shadow:0 5px 18px rgba(31,41,55,.04)}
.group-card h3{color:#1F2937}.group-description{color:#4B5563}.group-meta,.group-symbol{color:#15803D}
.category-tag{background:#DCFCE7;color:#166534}
.button-green{background:#16A34A;color:#FFFFFF}
.button-green:hover{background:#15803D}
.empty-state{color:#4B5563}.empty-state h3{color:#1F2937}.status-message{color:#4B5563}
.help-banner{background:#F0FDF4;color:#1F2937;border:1px solid #DCFCE7}.help-banner p{color:#4B5563}.help-icon{background:#DCFCE7;color:#166534}.button-light{background:#166534;color:#FFFFFF}
footer{background:#166534;border-top:1px solid #14532D;color:#F0FDF4}.footer-brand{color:#FFFFFF}.footer-brand span{color:#DCFCE7}
.channel-cta{background:#16A34A;color:#FFFFFF;border-color:#16A34A;box-shadow:0 8px 20px rgba(22,163,74,.12)}.channel-cta:hover{background:#15803D}.channel-cta small{color:#F0FDF4}.channel-icon{background:#FFFFFF24}
.clear-filters{background:#F0FDF4;color:#166534;border-color:#DCFCE7}.clear-filters:hover{background:#DCFCE7}


/* Announcement Centre */
.announcements{padding-top:30px;padding-bottom:24px}.announcements-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.announcement-card,.announcement-empty{background:#fff;border:1px solid #E5E7EB;border-radius:16px;padding:18px;box-shadow:0 5px 18px rgba(31,41,55,.035)}.announcement-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.announcement-category{display:inline-flex;border-radius:999px;background:#DCFCE7;color:#166534;padding:5px 9px;font-size:10px;font-weight:800}.announcement-card time{color:#6B7280;font-size:10px}.announcement-card h3,.announcement-empty h3{font-size:16px;color:#1F2937;margin:0 0 8px}.announcement-card p,.announcement-empty p{font-size:13px;line-height:1.7;color:#4B5563;margin:0;overflow-wrap:anywhere}.announcement-empty{grid-column:1/-1;display:flex;align-items:center;gap:14px}.announcement-mark{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:13px;background:#DCFCE7;color:#166534;font-size:22px}.announcement-admin-list-wrap{margin-top:24px}.announcement-admin-list-wrap .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.announcement-admin-list-wrap .panel-heading h3{margin:0;font-size:16px;color:#1F2937}.admin-list-item .admin-item-info small{overflow-wrap:anywhere}.admin-item-actions{display:flex;gap:7px;flex-wrap:wrap}@media(max-width:650px){.announcements-list{grid-template-columns:1fr}.announcement-card{padding:16px}.announcement-admin-list-wrap .panel-heading{align-items:flex-start}}

/* Visitor counter */
.visitor-counter{display:flex;align-items:center;gap:16px;margin-top:12px;margin-bottom:12px;padding-top:20px;padding-bottom:20px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:16px}
.visitor-counter-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#166534;color:#fff;font-size:24px;font-weight:800}
.visitor-counter .eyebrow{margin:0 0 5px;color:#166534}
.visitor-counter h2{margin:0 0 4px;color:#1f2937;font-size:clamp(18px,3vw,24px)}
.visitor-counter h2 span{color:#166534;font-variant-numeric:tabular-nums}
.visitor-counter-note{margin:0;color:#4b5563;font-size:12px;line-height:1.6}
@media(max-width:520px){.visitor-counter{align-items:flex-start;padding:16px}.visitor-counter-icon{flex-basis:40px;width:40px;height:40px}}

/* PDF Library and study tools */
.pdf-section{padding-top:30px;padding-bottom:30px}.pdf-section .section-heading p:not(.eyebrow){color:#4b5563;font-size:13px;line-height:1.7}.pdf-search{display:grid;gap:7px;max-width:620px;margin:18px 0;color:#374151;font-size:13px;font-weight:700}.pdf-search input,.pdf-form input,.pdf-form select,.pdf-form textarea,.summarizer-box input,.summarizer-box select{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:#1f2937;font:inherit}.pdf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pdf-card{padding:17px;border:1px solid #e5e7eb;border-radius:15px;background:#fff;box-shadow:0 5px 18px #1f293708}.pdf-card h3{margin:0 0 8px;color:#1f2937;font-size:16px;overflow-wrap:anywhere}.pdf-card p,.pdf-card small{color:#4b5563;font-size:12px;line-height:1.6}.pdf-card .pdf-tags{color:#166534;font-size:11px;font-weight:700}.pdf-card .button{margin-top:8px}.pdf-request-box,.summarizer-box{margin-top:24px;padding:20px;border:1px solid #dcfce7;border-radius:16px;background:#f8fff9}.pdf-request-box h3{margin-top:0;color:#1f2937}.pdf-request-box p{color:#4b5563;font-size:13px}.pdf-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.pdf-form label,.summarizer-box label{display:grid;gap:7px;color:#374151;font-size:13px;font-weight:700}.pdf-full{grid-column:1/-1}.pdf-form button{justify-self:start}.summarizer-box{display:grid;gap:14px}.summarizer-box>button{justify-self:start}.summary-output{padding:18px;background:white;border:1px solid #e5e7eb;border-radius:12px;color:#374151;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.ai-assistant-note{padding:14px;background:#fff;border-radius:12px;border:1px dashed #86efac;color:#374151}.ai-assistant-note p{margin-bottom:0;font-size:12px;line-height:1.7}.pdf-admin-status{min-width:145px;padding:7px;border:1px solid #d1d5db;border-radius:8px}.admin-list-item{gap:12px;flex-wrap:wrap}@media(max-width:760px){.pdf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.pdf-grid,.pdf-form{grid-template-columns:1fr}.pdf-request-box,.summarizer-box{padding:15px}.pdf-full{grid-column:auto}}

/* Student dashboard and installable app */
.top-actions{display:flex;align-items:center;gap:10px}.install-btn{border:0;border-radius:999px;background:#087f5b;color:white;padding:10px 14px;font-weight:700}.dashboard-cta{margin:26px auto;padding:24px;border:1px solid #e3eee8;border-radius:24px;background:linear-gradient(135deg,#f0faf4,#fff);display:flex;align-items:center;justify-content:space-between;gap:20px}.dashboard-cta h2{margin:5px 0}.dashboard-cta p{margin:5px 0;color:#5e6e65}.dash-welcome{padding-top:32px;padding-bottom:10px}.dash-welcome h1{font-size:clamp(2rem,6vw,3rem);margin:6px 0;color:#173d2e}.dash-welcome p{color:#64746b}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:32px}.dash-card{position:relative;display:flex;flex-direction:column;gap:10px;min-height:170px;padding:20px;text-decoration:none;color:#183b2d;background:#fff;border:1px solid #e1ebe5;border-radius:22px;box-shadow:0 6px 22px #123b2510;transition:transform .18s,border-color .18s}.dash-card:hover{transform:translateY(-3px);border-color:#8dc7a7}.dash-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#eaf7ef;font-size:24px}.dash-card strong{font-size:1.03rem}.dash-card small{line-height:1.5;color:#64746b;padding-right:8px}.dash-arrow{position:absolute;right:18px;top:18px;color:#087f5b;font-size:20px}.section-wrap{scroll-margin-top:18px}@media(max-width:850px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-cta{align-items:flex-start;flex-direction:column}}@media(max-width:430px){.dashboard-grid{gap:10px}.dash-card{padding:15px;min-height:165px;border-radius:18px}.top-actions{gap:6px}.install-btn{padding:9px 10px;font-size:.8rem}.dashboard-cta{padding:18px}}
