:root {
    --navy: #08233d;
    --navy-deep: #04182b;
    --navy-soft: #123b5d;
    --gold: #efb93f;
    --gold-light: #ffd777;
    --cream: #f8f6f0;
    --ink: #162b3c;
    --muted: #647583;
    --white: #fff;
    --border: #e5e9ec;
    --shadow: 0 18px 55px rgba(8, 35, 61, .1);
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: #fff; font-family: Inter, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { text-decoration: none; }
.skip-link { position: fixed; left: 1rem; top: -100px; z-index: 2000; padding: .75rem 1rem; color: #fff; background: var(--navy); border-radius: .5rem; }
.skip-link:focus { top: 1rem; }

.announcement-bar { padding: .48rem 0; color: #f9e7bd; background: var(--navy-deep); font-size: .82rem; letter-spacing: .02em; }
.site-header { background: rgba(255,255,255,.96); box-shadow: 0 3px 24px rgba(5,30,51,.07); backdrop-filter: blur(12px); }
.navbar { min-height: 78px; }
.navbar-brand { display: inline-flex; align-items: center; gap: .72rem; color: var(--navy); }
.official-brand{flex:0 0 auto;max-width:270px}.official-brand img{display:block;width:270px;height:106px;max-width:100%;object-fit:contain}.site-header,.site-header .navbar,.site-header .container{max-width:100%}.site-header .navbar{min-height:112px}@media(max-width:991.98px){.official-brand{max-width:180px}.official-brand img{width:180px;height:71px}.site-header .navbar{min-height:84px}}
.brand-mark { display: grid; place-items: center; width: 43px; height: 43px; color: var(--navy); background: var(--gold); border-radius: 13px 4px 13px 4px; font-family: Georgia, serif; font-size: 1.55rem; font-weight: 800; }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy strong { font-size: 1.35rem; letter-spacing: .08em; }
.brand-copy small { margin-top: .28rem; color: var(--muted); font-size: .65rem; letter-spacing: .09em; text-transform: uppercase; }
.nav-link { color: #334b5e; font-size: .94rem; font-weight: 600; }
.nav-link:hover, .nav-link.active { color: #b77a00 !important; }
.dropdown-item { padding: .6rem 1.1rem; font-size: .9rem; }
.btn { border-radius: 10px; font-weight: 700; }
.btn-brand { color: #fff; background: var(--navy); border-color: var(--navy); }
.btn-brand:hover { color: #fff; background: var(--navy-soft); border-color: var(--navy-soft); transform: translateY(-1px); }
.btn-outline-brand { color: var(--navy); border-color: #bac6cf; }
.btn-outline-brand:hover { color: #fff; background: var(--navy); border-color: var(--navy); }

.hero { position: relative; overflow: hidden; padding: clamp(5rem, 9vw, 8rem) 0; color: #fff; background: linear-gradient(122deg, #061c31 0%, #0a2d4a 61%, #124a69 100%); }
.hero .row, .about-strip .row { margin-right: 0; margin-left: 0; }
.hero::after { content: ""; position: absolute; inset: 0; opacity: .06; background-image: radial-gradient(#fff 1px, transparent 1px); background-size: 24px 24px; }
.hero .container { z-index: 2; }
.hero-glow { position: absolute; border-radius: 50%; filter: blur(3px); }
.hero-glow-one { width: 430px; height: 430px; right: -140px; top: -180px; background: rgba(239,185,63,.13); }
.hero-glow-two { width: 280px; height: 280px; left: 43%; bottom: -220px; background: rgba(31,150,184,.2); }
.eyebrow, .section-kicker { display: inline-flex; align-items: center; gap: .65rem; color: #c98f18; font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow { color: var(--gold-light); }
.eyebrow span { width: 28px; height: 2px; background: var(--gold); }
.hero h1 { max-width: 740px; margin: 1.2rem 0 1.35rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.2rem, 7vw, 6.2rem); font-weight: 500; line-height: .96; letter-spacing: -.045em; }
.hero h1 em { color: var(--gold-light); font-weight: 400; }
.hero-lead { max-width: 650px; color: #d4e0e9; font-size: clamp(1.05rem, 1.8vw, 1.25rem); line-height: 1.7; }
.hero-actions { margin-top: 2rem; }
.btn-gold { padding: .85rem 1.35rem; color: var(--navy-deep); background: var(--gold); border-color: var(--gold); }
.btn-gold:hover { color: var(--navy-deep); background: var(--gold-light); border-color: var(--gold-light); transform: translateY(-2px); }
.btn-hero-outline { padding: .85rem 1.35rem; color: #fff; border-color: rgba(255,255,255,.42); }
.btn-hero-outline:hover { color: var(--navy); background: #fff; border-color: #fff; }
.hero-trust { display: flex; align-items: center; gap: 1rem; margin-top: 2.7rem; }
.hero-trust p { margin: 0; color: #fff; font-size: .88rem; line-height: 1.45; }
.hero-trust p span { color: #b9cad7; }
.avatar-stack { display: flex; }
.avatar-stack span { display: grid; place-items: center; width: 34px; height: 34px; margin-left: -7px; color: #fff; background: #2b6080; border: 2px solid var(--navy); border-radius: 50%; font-size: .62rem; font-weight: 800; }
.avatar-stack span:first-child { margin-left: 0; background: #98602c; }
.avatar-stack span:nth-child(2) { background: #477b65; }
.avatar-stack span:last-child { color: var(--navy); background: var(--gold); }

.quick-panel { overflow: hidden; background: rgba(255,255,255,.98); border: 1px solid rgba(255,255,255,.35); border-radius: 22px; box-shadow: 0 30px 80px rgba(0,0,0,.24); }
.quick-panel-header { display: flex; justify-content: space-between; padding: 1.2rem 1.4rem; color: var(--navy); border-bottom: 1px solid var(--border); font-weight: 800; }
.quick-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.quick-grid a { display: flex; align-items: center; gap: .9rem; min-height: 105px; padding: 1.15rem; color: var(--ink); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); font-size: .9rem; font-weight: 750; line-height: 1.25; transition: .2s ease; }
.quick-grid a:nth-child(2n) { border-right: 0; }
.quick-grid a:hover { color: var(--navy); background: #f2f7fa; }
.quick-grid i { display: grid; place-items: center; flex: 0 0 auto; width: 43px; height: 43px; color: #a46b00; background: #fff4d8; border-radius: 12px; font-size: 1.25rem; }
.panel-notice { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .75rem; padding: 1rem 1.25rem; color: #526474; background: #f7f8f9; font-size: .75rem; }
.panel-notice > i { color: #c58a16; font-size: 1.1rem; }
.panel-notice a { color: var(--navy); font-weight: 800; }

.section-space { padding: clamp(4.5rem, 8vw, 7rem) 0; }
.section-heading { max-width: 720px; }
.section-heading h2, .about-strip h2, .community-banner h2 { margin: .8rem 0 1rem; color: var(--navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 4vw, 3.3rem); line-height: 1.08; }
.section-heading p { color: var(--muted); font-size: 1.05rem; line-height: 1.7; }
.service-section { background: var(--cream); }
.service-card { position: relative; display: block; height: 100%; min-height: 285px; padding: 1.7rem; color: var(--ink); background: #fff; border: 1px solid rgba(8,35,61,.08); border-radius: 18px; box-shadow: 0 5px 20px rgba(8,35,61,.035); transition: transform .25s ease, box-shadow .25s ease; }
.service-card:hover { color: var(--ink); transform: translateY(-7px); box-shadow: var(--shadow); }
.service-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 15px; font-size: 1.4rem; }
.accent-gold { color: #9f6800; background: #fff2cf; }.accent-blue { color: #176c9e; background: #e3f3fb; }.accent-green { color: #267553; background: #e3f4eb; }.accent-purple { color: #704aa0; background: #eee6f9; }.accent-red { color: #a64444; background: #fbe8e8; }.accent-orange { color: #ae6427; background: #fcebdc; }
.service-number { position: absolute; top: 1.7rem; right: 1.7rem; color: #c6ced4; font-family: Georgia, serif; font-size: 1.2rem; }
.service-card h3 { margin: 1.4rem 0 .65rem; color: var(--navy); font-size: 1.25rem; font-weight: 800; }
.service-card p { color: var(--muted); font-size: .94rem; line-height: 1.65; }
.card-link { position: absolute; bottom: 1.55rem; left: 1.7rem; color: #9e6905; font-size: .82rem; font-weight: 800; }
.card-link i { margin-left: .25rem; }

.about-strip { padding: 5.5rem 0; color: #d7e3eb; background: var(--navy); }
.section-kicker.light { color: var(--gold-light); }
.about-strip h2 { color: #fff; }
.about-strip p { max-width: 680px; margin: 0; color: #bfd0dc; font-size: 1.06rem; line-height: 1.75; }
.stats-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; overflow: hidden; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.15); border-radius: 18px; }
.stats-grid div { display: flex; flex-direction: column; padding: 1.5rem; background: rgba(255,255,255,.055); }
.stats-grid strong { color: var(--gold-light); font-family: Georgia, serif; font-size: 2rem; }
.stats-grid span { color: #c1d0da; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.community-banner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 4rem); background: linear-gradient(120deg, #f4f7f8, #fff8e8); border: 1px solid var(--border); border-radius: 24px; }
.community-banner p { margin: 0; color: var(--muted); }

.site-footer { padding: 4rem 0 1.5rem; color: #9fb1bf; background: var(--navy-deep); }
.footer-brand { color: #fff; }
.footer-brand .brand-copy small { color: #9fb1bf; }
.footer-links { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.footer-links a { color: #c8d5de; font-size: .9rem; }
.footer-links a:hover { color: var(--gold-light); }
.social-link { display: inline-grid; place-items: center; width: 39px; height: 39px; margin-left: .35rem; color: #c8d5de; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.social-link:hover { color: var(--navy); background: var(--gold); border-color: var(--gold); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.1); font-size: .75rem; }

@media (max-width: 991.98px) {
    .navbar-collapse { padding: 1rem 0 1.25rem; }
    .navbar-nav { align-items: stretch !important; }
    .navbar-nav .btn { display: block; margin-top: .45rem; }
    .hero { padding-top: 4.5rem; }
    .community-banner { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 575.98px) {
    .announcement-bar { font-size: .74rem; }
    .navbar { min-height: 70px; }
    .brand-mark { width: 39px; height: 39px; }
    .hero h1 { font-size: clamp(2.75rem, 15vw, 4rem); }
    .hero-actions .btn { width: 100%; }
    .quick-grid { grid-template-columns: 1fr; }
    .quick-grid a, .quick-grid a:nth-child(2n) { min-height: 82px; border-right: 0; }
    .panel-notice { grid-template-columns: auto 1fr; }
    .panel-notice a { grid-column: 2; }
    .service-card { min-height: 275px; }
    .stats-grid div { padding: 1.1rem; }
    .footer-bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Portal application */
.portal-body { background: #f5f7f8; }
.portal-footer { padding: 2rem 0; margin-top: 4rem; }
.portal-footer a { color: #c8d5de; }
.page-hero, .dashboard-hero, .admin-hero { padding: 4.5rem 0; color: #fff; background: linear-gradient(120deg,var(--navy-deep),var(--navy-soft)); }
.page-hero.compact { padding: 3rem 0; }.page-hero h1,.dashboard-hero h1,.admin-hero h1,.raffle-hero h1 { margin:.6rem 0; font: 500 clamp(2.4rem,5vw,4.3rem)/1.05 Georgia,serif; }.page-hero p,.dashboard-hero p,.admin-hero p { max-width:680px;margin:0;color:#c8d7e1;font-size:1.05rem; }.school-hero{background:linear-gradient(120deg,#09273d,#176075)}.club-hero{background:linear-gradient(120deg,#17382d,#2e6d56)}.campaign-hero{background:linear-gradient(120deg,#302245,#6c4774)}
.section-space-sm { padding: 3.5rem 0; }.form-shell,.content-card { padding: clamp(1.25rem,3vw,2rem); background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 30px rgba(8,35,61,.05) }.form-shell{max-width:850px}.form-control,.form-select{min-height:46px;border-color:#d5dde2;border-radius:9px}.form-control:focus,.form-select:focus{border-color:#547892;box-shadow:0 0 0 .2rem rgba(19,76,107,.12)}.form-label{font-size:.86rem;font-weight:750;color:#294253}
.auth-section{min-height:calc(100vh - 110px);display:grid;place-items:center;padding:4rem 0;background:#edf2f4}.auth-card{display:grid;grid-template-columns:1fr 1fr;max-width:960px;margin:auto;overflow:hidden;background:#fff;border-radius:24px;box-shadow:var(--shadow)}.auth-intro{padding:3.5rem;color:#fff;background:linear-gradient(145deg,var(--navy-deep),#155170)}.auth-intro h1{margin:1rem 0;font:500 3.2rem/1.05 Georgia,serif}.auth-intro p{color:#c7d7e1;line-height:1.7}.auth-form{padding:3.5rem}.auth-form h2{color:var(--navy);font:500 2.2rem Georgia,serif}.demo-box{display:flex;flex-direction:column;margin-top:1.3rem;padding:1rem;background:#fff8e8;border-radius:10px;color:#6a5729}.demo-box small{margin-top:.35rem;line-height:1.6}
.dashboard-hero>.container,.admin-hero>.container,.raffle-hero>.container{display:flex;justify-content:space-between;align-items:center;gap:2rem}.metric-card{display:flex;align-items:center;gap:1rem;height:100%;padding:1.35rem;background:#fff;border:1px solid var(--border);border-radius:15px}.metric-card>i{display:grid;place-items:center;width:48px;height:48px;color:#a56d00;background:#fff2d1;border-radius:13px;font-size:1.3rem}.metric-card div{display:flex;flex-direction:column}.metric-card span,.metric-card small{color:var(--muted);font-size:.75rem}.metric-card strong{color:var(--navy);font-size:1.3rem}.content-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.content-card h2,.form-shell h2{margin:0;color:var(--navy);font-size:1.25rem;font-weight:800}.portal-table{margin:0;font-size:.88rem}.portal-table th{color:#71808b;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.status{display:inline-block;padding:.28rem .6rem;border-radius:20px;background:#e9eef1;color:#526472;font-size:.7rem;font-weight:800}.status-active,.status-confirmed,.status-approved,.status-paid,.status-completed{color:#176043;background:#dff3e9}.status-pending,.status-reserved{color:#805d12;background:#fff0c9}.status-cancelled,.status-expired,.status-disabled,.status-refunded{color:#8a3333;background:#fae2e2}.empty-state{text-align:center;padding:3rem 1rem;color:var(--muted)}.empty-state.compact{padding:2rem 1rem}.empty-state>i{font-size:2rem;color:#b3872c}.empty-state h3{margin-top:.7rem;color:var(--navy);font-size:1.1rem}.action-list a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:1rem 0;color:var(--ink);border-bottom:1px solid var(--border)}.action-list a:last-child{border:0}.action-list a>i:first-child{color:#b77a00;font-size:1.2rem}
.step-heading{display:flex;align-items:center;gap:1rem}.step-heading>span{display:grid;place-items:center;flex:0 0 42px;height:42px;color:var(--navy);background:var(--gold);border-radius:50%;font-weight:900}.step-heading p{margin:0;color:var(--muted)}.record-item{display:grid;grid-template-columns:auto 1fr;gap:.9rem;padding:1rem 0;border-bottom:1px solid var(--border)}.record-date{display:flex;flex-direction:column;align-items:center;width:48px;padding:.4rem;color:var(--navy);background:#eef3f5;border-radius:9px}.record-date strong{font-size:1.15rem}.record-date span{font-size:.65rem;text-transform:uppercase}.record-item>div:last-child,.record-line>div{display:flex;flex-direction:column;align-items:flex-start}.record-item small,.record-line small{color:var(--muted)}.record-item .status{margin-top:.3rem}.record-line{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}
.membership-card{position:relative;min-height:310px;padding:2rem;color:#fff;background:linear-gradient(135deg,var(--navy),#1d607d);border-radius:20px;box-shadow:0 20px 40px rgba(8,35,61,.18);overflow:hidden}.membership-logo{display:inline-block;margin-bottom:2.5rem;color:var(--gold);font-size:1.25rem;font-weight:900;letter-spacing:.12em}.membership-card>small{display:block;color:#abc3d2;text-transform:uppercase}.membership-card h2{margin:.3rem 0 2rem;font-size:1.55rem}.membership-card>.membership-card-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.membership-card p{margin:1.5rem 0 0;color:#c5d6e0}.membership-card-photo{position:absolute;top:1.5rem;right:1.5rem;display:grid;place-items:center;width:92px;height:112px;border:3px solid rgba(255,255,255,.85);border-radius:12px;background:rgba(255,255,255,.16);overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.2)}.membership-card-photo img{width:100%;height:100%;object-fit:cover}.membership-card-photo span{font-size:1.5rem;font-weight:800;color:#fff}@media(max-width:420px){.membership-card{padding:1.5rem}.membership-card-photo{width:72px;height:88px;top:1.25rem;right:1.25rem}.membership-card>.membership-card-row{align-items:flex-start;flex-direction:column}}.member-list>div{display:flex;align-items:center;gap:.8rem;padding:.8rem 0;border-bottom:1px solid var(--border)}.member-list p{display:flex;flex-direction:column;margin:0}.member-list small{color:var(--muted)}.member-avatar{display:grid;place-items:center;width:42px;height:42px;color:var(--navy);background:#fff1cc;border-radius:50%;font-weight:900}
.programme-card{height:100%;padding:1.7rem;background:#fff;border:1px solid var(--border);border-radius:16px}.programme-card>i{font-size:1.7rem;color:#196b83}.programme-card h3{margin:1rem 0 .6rem;color:var(--navy)}.programme-card p{color:var(--muted)}.programme-card>div{display:flex;flex-wrap:wrap;gap:1rem;font-size:.78rem;font-weight:700}.option-card{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid #d5dde2;border-radius:12px}.option-card>span{display:flex;flex:1;flex-direction:column}.option-card small{color:var(--muted)}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}.payment-options{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.payment-options label{display:flex;align-items:center;gap:.8rem;padding:1rem;border:1px solid #d5dde2;border-radius:12px}.payment-options i{font-size:1.3rem;color:#a56d00}.payment-options span{display:flex;flex-direction:column}.payment-options small{color:var(--muted)}
.raffle-hero{padding:5rem 0;color:#fff;background:linear-gradient(120deg,#421825,#8a3348)}.raffle-hero p{max-width:600px;color:#f1cdd6}.prize-row{display:flex;gap:1rem;margin-top:2rem}.prize-row span{display:flex;flex-direction:column;padding:.8rem 1.2rem;background:rgba(255,255,255,.1);border-radius:10px}.prize-row small{text-transform:uppercase}.prize-row strong{color:#ffd777;font-size:1.25rem}.raffle-ticket{display:flex;flex-direction:column;align-items:center;min-width:230px;padding:2rem;color:var(--navy);background:#fff6dc;border:3px dashed #bd8b20;border-radius:18px}.raffle-ticket i{font-size:3rem}.raffle-ticket strong{font-size:2.4rem}.campaign-card{height:100%;padding:2rem;background:#fff;border:1px solid var(--border);border-radius:18px}.campaign-tag{color:#775283;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.campaign-card h2{margin:.8rem 0;color:var(--navy);font:500 2rem Georgia,serif}.campaign-card p{color:var(--muted);line-height:1.65}.campaign-card .progress{height:9px;margin:1.5rem 0;background:#eee8f0}.campaign-card .progress-bar{background:#76507e}.campaign-numbers{display:flex;justify-content:space-between;align-items:end;margin-bottom:1.5rem}.campaign-numbers strong{color:var(--navy);font-size:1.4rem}.campaign-numbers small,.campaign-numbers span{color:var(--muted);font-size:.75rem}
.admin-badge{padding:.7rem 1rem;color:var(--navy);background:var(--gold);border-radius:10px;font-weight:900}.admin-metric{position:relative;padding:1.4rem;background:#fff;border:1px solid var(--border);border-radius:14px}.admin-metric span{color:var(--muted);font-size:.75rem}.admin-metric strong{display:block;color:var(--navy);font-size:1.8rem}.admin-metric i{position:absolute;right:1.2rem;bottom:1.2rem;color:#d2a64a;font-size:1.5rem}.admin-tabs{display:flex;gap:.3rem;margin-bottom:1.5rem;overflow-x:auto}.admin-tabs a{padding:.7rem 1rem;white-space:nowrap;color:#526472;background:#e8edef;border-radius:8px;font-size:.85rem;font-weight:750}.admin-tabs a.active{color:#fff;background:var(--navy)}.narrow-copy{max-width:800px}.narrow-copy h2{margin-top:2rem;color:var(--navy)}.narrow-copy p{color:var(--muted);line-height:1.8}
.calendar-legend{display:flex;flex-wrap:wrap;gap:.6rem 1.15rem;margin-bottom:1rem;color:var(--muted);font-size:.73rem}.calendar-legend span{display:flex;align-items:center;gap:.35rem}.calendar-legend i{width:12px;height:12px;border-radius:3px}.legend-open{background:#56b47b}.legend-shared{background:#f2c94c}.legend-full{background:#d95f5f}.legend-disabled{background:#dfe4e7}.club-calendar{overflow:hidden;border:1px solid #d8e0e4;border-radius:16px;background:#fff}.club-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;padding:.9rem;background:var(--navy)}.club-calendar-head h3{margin:0;color:#fff;text-align:center;font:500 1.25rem Georgia,serif}.calendar-nav{display:grid;place-items:center;width:36px;height:36px;color:#fff;background:rgba(255,255,255,.12);border:0;border-radius:8px}.calendar-nav:disabled{opacity:.3}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays{padding:.75rem .75rem .35rem;color:#73818b;font-size:.68rem;font-weight:800;text-align:center;text-transform:uppercase}.calendar-days{padding:.35rem .75rem .9rem}.calendar-day{display:grid;place-items:center;aspect-ratio:1;min-width:0;color:#38505f;background:#eef1f3;border:2px solid transparent;border-radius:9px;font-size:.82rem;font-weight:800}.calendar-day.is-open{color:#135f35;background:#dff4e7}.calendar-day.is-shared{color:#6c5100;background:#fff0ad}.calendar-day.is-full{color:#842f2f;background:#f7d0d0}.calendar-day.is-disabled{color:#aab3b9;background:#edf0f2;cursor:not-allowed}.calendar-day.is-blank{background:transparent}.calendar-day.is-selected{border-color:var(--navy);box-shadow:0 0 0 2px rgba(8,35,61,.16)}.calendar-day.is-open:not(:disabled):hover,.calendar-day.is-shared:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(8,35,61,.13)}.selected-date{display:flex;align-items:center;gap:.65rem;margin-top:.8rem;padding:.85rem 1rem;color:#38505f;background:#eef5f8;border-radius:10px;font-weight:700}.selected-date i{color:#a56d00;font-size:1.15rem}.sharing-choice{padding:1.2rem!important;background:#f7f4ed;border:1px solid #e8dfc9;border-radius:14px}.sharing-choice h3{margin:0 0 .25rem;color:var(--navy);font-size:1.05rem;font-weight:850}.sharing-choice>p{margin:0 0 1rem;color:var(--muted)}.sharing-radios{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.sharing-radios label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.2rem .65rem;padding:.9rem;background:#fff;border:1px solid #d8dfe3;border-radius:10px;cursor:pointer}.sharing-radios input{grid-row:1/3}.sharing-radios span{font-weight:850}.sharing-radios small{color:var(--muted)}.sharing-radios label:has(input:disabled){opacity:.45;cursor:not-allowed}.price-summary{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem!important;color:#fff;background:var(--navy);border-radius:12px}.price-summary strong{color:var(--gold-light);font-size:1.35rem}
@media(max-width:767.98px){.portal-body .row{margin-right:0;margin-left:0}.auth-card{grid-template-columns:1fr}.auth-intro{padding:2rem}.auth-intro h1{font-size:2.3rem}.auth-form{padding:2rem}.dashboard-hero>.container,.admin-hero>.container,.raffle-hero>.container{align-items:flex-start;flex-direction:column}.payment-options,.check-grid,.sharing-radios{grid-template-columns:1fr}.prize-row{flex-wrap:wrap}.raffle-ticket{width:100%}.portal-table{min-width:650px}.calendar-weekdays,.calendar-days{gap:3px}.calendar-days{padding:.25rem .4rem .7rem}.calendar-weekdays{padding:.65rem .4rem .3rem}.calendar-day{border-radius:7px;font-size:.72rem}}
.booking-admin-banner{position:relative;overflow:hidden;background:#f7e7df}.booking-admin-banner img{display:block;width:100%;max-width:2972px;height:auto;max-height:576px;object-fit:contain;margin-inline:auto}.booking-admin-banner-action{position:absolute;top:1.25rem;right:max(1.25rem,calc((100vw - 1320px)/2));z-index:2}.booking-admin-banner-action .btn{box-shadow:0 7px 24px rgba(0,0,0,.22)}
.admin-export-bar{padding:.65rem 0;background:#f7f9fa;border-bottom:1px solid #e1e6e9}.admin-export-bar .btn{white-space:nowrap}
.membership-type-badge{display:inline-flex;align-items:center;padding:.32rem .65rem;border-radius:999px;font-size:.76rem;font-weight:800;white-space:nowrap}.membership-type-life{color:#0b5f32;background:#d9f4e3;border:1px solid #8fd1a8}.membership-type-twenty{color:#174f82;background:#dceeff;border:1px solid #93bfe5}.membership-type-twelve{color:#7a4b00;background:#fff0c7;border:1px solid #e6c265}.membership-type-honorary{color:#613a79;background:#eee0f5;border:1px solid #c5a0d8}.membership-type-unassigned{color:#58646d;background:#edf0f2;border:1px solid #cfd6da}
.page-booking .page-hero{width:100%;max-width:2972px;aspect-ratio:2972/576;min-height:0;margin-inline:auto;padding:0;background:#f7e7df url('../images/kerala-house-booking-banner-wide.jpg') center/contain no-repeat}.page-booking .page-hero>.container{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:767.98px){.booking-admin-banner-action{top:.75rem;right:.75rem}.booking-admin-banner-action .btn{padding:.45rem .7rem;font-size:.78rem}.booking-admin-banner img{max-height:none}}
.photo-cropper{padding:1rem;border:1px solid var(--border);border-radius:14px;background:#f8fafc}.photo-cropper-layout{display:grid;grid-template-columns:230px 1fr;gap:1.25rem;align-items:start}.photo-cropper canvas{display:block;width:230px;max-width:100%;height:auto;margin:auto;border-radius:12px;background:#e7edf2;box-shadow:0 6px 18px rgba(8,35,61,.15)}.photo-cropper-controls{display:grid;gap:.75rem}.photo-cropper-controls .form-label{margin:0;font-weight:700}.photo-cropper-controls .form-range{display:block;margin-top:.35rem}@media(max-width:576px){.photo-cropper-layout{grid-template-columns:1fr}.photo-cropper-controls{width:100%}}
.admin-hub-banner{position:relative;overflow:hidden;width:100%;background:#16245f}.admin-hub-banner img{display:block;width:100%;height:auto;aspect-ratio:5/1;object-fit:cover;object-position:center}.admin-hub-banner-action{position:absolute;right:max(1rem,calc((100vw - 1320px)/2));bottom:1rem;box-shadow:0 7px 22px rgba(0,0,0,.3)}@media(max-width:575.98px){.admin-hub-banner img{height:145px;aspect-ratio:auto;object-fit:cover;object-position:center}.admin-hub-banner-action{right:.65rem;bottom:.65rem;padding:.4rem .65rem;font-size:.78rem}}
.membership-admin-banner{position:relative;overflow:hidden;width:100%;background:#191b25}.membership-admin-banner img{display:block;width:100%;height:auto;aspect-ratio:5/1;object-fit:cover;object-position:center}.membership-admin-banner-action{position:absolute;right:max(1rem,calc((100vw - 1320px)/2));bottom:1rem;box-shadow:0 7px 22px rgba(0,0,0,.3)}@media(max-width:575.98px){.membership-admin-banner img{height:145px;aspect-ratio:auto;object-fit:cover;object-position:center}.membership-admin-banner-action{right:.65rem;bottom:.65rem;padding:.4rem .65rem;font-size:.78rem}}
.page-dashboard .quick-action-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.page-dashboard .quick-action-tiles a{display:grid;grid-template-columns:36px 1fr auto;grid-template-rows:36px auto;align-items:center;gap:.7rem .45rem;min-height:108px;padding:.85rem;color:var(--navy);background:#f8fafc;border:1px solid #dfe7ee;border-radius:14px;text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.page-dashboard .quick-action-tiles a:hover{transform:translateY(-2px);border-color:#78b8ad;box-shadow:0 8px 20px rgba(8,35,61,.1)}.page-dashboard .quick-action-tiles a>i:first-child{display:grid;place-items:center;width:36px;height:36px;color:#08665b;background:#e2f3ef;border-radius:10px;font-size:1.05rem}.page-dashboard .quick-action-tiles a>span{grid-column:1/3;align-self:end;font-size:.8rem;font-weight:800;line-height:1.25}.page-dashboard .quick-action-tiles a>i:last-child{grid-column:3;grid-row:2;align-self:end;color:#71818e;font-size:.8rem}@media(max-width:1199.98px){.page-dashboard .quick-action-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:575.98px){.page-dashboard .quick-action-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.page-dashboard .quick-action-tiles a{min-height:102px;padding:.75rem}.page-dashboard .quick-action-tiles a>span{font-size:.76rem}}

/* Compact member-service catalogue: 5 wide, 4 desktop, 3 tablet, 2 mobile. */
.page-dashboard .member-service-tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}
.page-dashboard .member-service-tiles a{grid-template-columns:32px 1fr auto;grid-template-rows:32px auto;min-height:88px;padding:.7rem;border-radius:12px;gap:.45rem .35rem}
.page-dashboard .member-service-tiles a>i:first-child{width:32px;height:32px;border-radius:9px;font-size:.95rem}
.page-dashboard .member-service-tiles a>span{font-size:.74rem;line-height:1.2}
@media(max-width:1399.98px){.page-dashboard .member-service-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:991.98px){.page-dashboard .member-service-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:575.98px){.page-dashboard .member-service-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.page-dashboard .member-service-tiles a{min-height:84px;padding:.65rem}.page-dashboard .member-service-tiles a>span{font-size:.7rem}}
.rate-option-disabled{opacity:.42;filter:grayscale(1);cursor:not-allowed}.rate-option-disabled *{cursor:not-allowed}.service-beneficiary-choice{background:#f8fafc}
.page-dashboard .dashboard-other-services>.container>.mb-3>h2{margin:0;color:var(--navy);font-size:1.25rem;font-weight:800;line-height:1.2}
.social-platform-icon{margin:0 .28rem;font-size:1.2rem;vertical-align:-.12em}.social-icon-instagram{color:#c13584}.social-icon-facebook{color:#1877f2}.social-icon-youtube{color:#f00}
.fundraiser-card{height:100%;overflow:hidden;background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 10px 30px rgba(8,35,61,.07);transition:transform .2s ease,box-shadow .2s ease}.fundraiser-card:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(8,35,61,.12)}.fundraiser-card>img,.fundraiser-image-placeholder{width:100%;height:230px;object-fit:cover}.fundraiser-image-placeholder{display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#0b5960,#d99a32);font-size:3rem}.fundraiser-card-body{padding:1.4rem}.fundraiser-card h2{margin:.55rem 0;color:var(--navy);font-size:1.35rem;font-weight:800}.fundraiser-card p{min-height:72px;color:var(--muted);line-height:1.55}.fundraiser-card .progress,.fundraiser-donate-card .progress,.fundraising-admin-tile .progress{height:10px;margin:.9rem 0;background:#e9eef1}.fundraiser-card .progress-bar,.fundraiser-donate-card .progress-bar,.fundraising-admin-tile .progress-bar{background:#14856f}.fundraiser-card strong,.fundraiser-card small{display:block}.fundraiser-card small{margin-top:.25rem;color:var(--muted)}.fundraiser-detail-image{display:block;width:100%;max-height:620px;object-fit:cover;border-radius:20px}.fundraiser-story{color:#354d5e;font-size:1.03rem;line-height:1.8}.fundraiser-donate-card{position:sticky;top:110px}.fundraiser-donate-card h2{margin-top:1rem;font-size:2rem}.fundraising-admin-tile{height:100%;padding:1.55rem;border:1px solid #d7e1e5;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(8,35,61,.07)}.fundraising-tile-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.fundraising-tile-head h3{margin:.45rem 0 .25rem;color:var(--navy);font-size:1.45rem}.fundraising-tile-head p{margin:0;color:var(--muted)}.fundraising-tile-head>.status{padding:.55rem .85rem;font-size:.75rem}.fundraising-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.35rem 0}.fundraising-metric-grid>div{padding:1rem;background:#f1f5f6;border-radius:14px}.fundraising-metric-grid span,.fundraising-tile-summary small{display:block;color:var(--muted);font-size:.78rem}.fundraising-metric-grid strong{display:block;margin-top:.25rem;color:var(--navy);font-size:1.15rem}.fundraising-admin-tile .progress{height:12px;margin:1rem 0}.fundraising-tile-summary{display:flex;justify-content:space-between;gap:1rem}.fundraising-tile-summary strong{display:block;margin-top:.2rem;color:var(--navy);font-size:1.15rem}.fundraising-tile-summary span:first-child strong{color:#14856f}@media(max-width:991.98px){.fundraiser-donate-card{position:static}}@media(max-width:575.98px){.fundraiser-card>img,.fundraiser-image-placeholder{height:190px}.fundraiser-card p{min-height:0}.fundraising-admin-tile{padding:1.1rem}.fundraising-tile-head{align-items:flex-start}.fundraising-metric-grid{grid-template-columns:1fr 1fr}.fundraising-admin-tile .btn{flex:1 1 100%}}
@media (max-width: 767.98px) {
  .attendance-filter-row {
    width: 100%;
    margin-left: 0 !important;
    flex-direction: column;
  }
  .attendance-filter-row .form-select,
  .attendance-filter-row .btn {
    width: 100% !important;
  }
}
.social-post-preview-card{max-width:680px;border:1px solid #dce3eb;border-radius:1rem;padding:1rem;background:#fff;box-shadow:0 10px 28px rgba(9,36,61,.08)}
.social-preview-media{max-height:460px;object-fit:contain;background:#f4f6f8}
.fundraising-admin-tile{cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.fundraising-admin-tile:hover{transform:translateY(-3px);border-color:#8abeb5;box-shadow:0 16px 36px rgba(8,35,61,.12)}
.gift-aid-box{padding:1rem!important;border:1px solid #b7d8c8;border-radius:12px;background:#eef8f3;color:#214f3d}.gift-aid-box .form-check{margin-bottom:.55rem;font-weight:800}.gift-aid-box .form-check-input:checked{background-color:#14856f;border-color:#14856f}
.fundraising-gift-aid-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:.85rem 1rem;border:1px solid #b7d8c8;border-radius:12px;background:#eef8f3}.fundraising-gift-aid-summary>span{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.05rem .5rem}.fundraising-gift-aid-summary>span:last-child{text-align:right}.fundraising-gift-aid-summary i{grid-row:1/3;color:#14856f;font-size:1.35rem}.fundraising-gift-aid-summary small{color:#527265;font-size:.72rem}.fundraising-gift-aid-summary strong{color:#0f654f;font-size:1.05rem}@media(max-width:575.98px){.fundraising-gift-aid-summary{align-items:flex-start;flex-direction:column}.fundraising-gift-aid-summary>span:last-child{text-align:left}}
