#loginOverlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#0d1f0d 0%,#1a3a1a 40%,#1f2d12 100%);transition:opacity .7s,visibility .7s;}
#loginOverlay.hidden{opacity:0;visibility:hidden;pointer-events:none;}
.login-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.login-bg img{width:100%;height:100%;object-fit:cover;opacity:.18;filter:saturate(.6) brightness(.7);}
.login-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(212,169,68,.08),transparent 70%),linear-gradient(180deg,rgba(13,31,13,.4),rgba(26,58,26,.6));}
.login-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.lp{position:absolute;border-radius:50%;opacity:0;animation:lFloat linear infinite;}
@keyframes lFloat{0%{transform:translateY(0) scale(.5);opacity:0;}15%{opacity:.6;}85%{opacity:.6;}100%{transform:translateY(-110vh) scale(1);opacity:0;}}
.login-card{position:relative;z-index:2;width:100%;max-width:440px;margin:20px;background:linear-gradient(155deg,rgba(250,246,236,.97),rgba(240,234,214,.94));border-radius:20px;padding:44px 36px 36px;box-shadow:0 0 0 1px rgba(212,169,68,.25),0 24px 80px -20px rgba(0,0,0,.5),0 0 120px -40px rgba(212,169,68,.15);overflow:hidden;}
.login-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent,var(--gold-mid),var(--gold-dark),var(--gold-mid),transparent);}
:root{--gold-dark:#b3852f;--gold-mid:#d4a944;--gold-light:#e6c988;--gold-pale:#faf3e0;--deep:#1a2e1a;--deep-2:#274027;--mid:#5a7d4e;--pale:#e4dcc6;--paper:#faf6ec;--paper-2:#f0ead6;--accent:#b3852f;--accent-soft:#e6c988;--ink:#2a2820;--ink-soft:#605a4a;--line:#d8ceae;--caution:#8a3a2c;--caution-bg:#f3e2da;--info-bg:#e2ebdb;--info-text:#3a5e2e;--src-vestige:#2e6b3e;--src-vestige-bg:#daf0de;--src-desai:#7a5c2a;--src-desai-bg:#f5eed8;--wa:#25D366;--wa-dark:#1da851;--radius:16px;--shadow:0 1px 3px rgba(26,46,26,.05),0 8px 20px -10px rgba(26,46,26,.14);--shadow-lift:0 20px 44px -14px rgba(26,46,26,.32),0 4px 12px rgba(26,46,26,.07);}
.lc-logo{text-align:center;margin-bottom:28px;}
.lc-logo img{width:64px;height:auto;border-radius:12px;box-shadow:0 4px 16px rgba(179,133,47,.25);margin-bottom:14px;background:#fff;padding:6px;}
.lc-badge{display:inline-block;background:linear-gradient(135deg,var(--deep),var(--deep-2));color:var(--gold-light);font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:5px 16px;border-radius:8px;margin-bottom:16px;}
.lc-title{font-family:'Cinzel',serif;font-size:26px;font-weight:600;color:var(--deep);margin-bottom:6px;line-height:1.15;}
.lc-sub{font-size:13px;color:var(--ink-soft);line-height:1.5;max-width:340px;margin:0 auto;}
.lc-err{display:none;align-items:center;gap:8px;background:#fff3f3;border:1px solid #ffcdd2;color:#c62828;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:18px;}
.lc-err.show{display:flex;}
.lf-group{margin-bottom:20px;}
.lf-label{display:block;font-size:11px;font-weight:700;color:var(--deep);text-transform:uppercase;letter-spacing:.12em;margin-bottom:7px;}
.lf-wrap{position:relative;}
.lf-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--gold-dark);font-size:16px;opacity:.7;}
.lf-input{width:100%;padding:14px 44px 14px 44px;border:1.5px solid var(--line);border-radius:10px;font-family:'Public Sans',sans-serif;font-size:14.5px;color:var(--ink);background:rgba(255,255,255,.85);outline:none;}
.lf-input:focus{border-color:var(--gold-mid);box-shadow:0 0 0 3px rgba(212,169,68,.12);background:#fff;}
.lf-toggle{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gold-dark);cursor:pointer;font-size:16px;padding:4px;opacity:.6;}
.lf-btn{width:100%;padding:15px;background:linear-gradient(135deg,var(--gold-dark),var(--gold-mid));color:#fff;border:none;border-radius:10px;font-family:'Cinzel',serif;font-size:15px;font-weight:600;cursor:pointer;margin-top:4px;}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--pale);color:var(--ink);font-family:'Public Sans',sans-serif;min-height:100vh;overflow-x:hidden;}
.display{font-family:'Fraunces',serif;}
.bg-scene{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.app-header{display:none;background:linear-gradient(135deg,var(--deep),var(--deep-2));padding:12px 24px;align-items:center;justify-content:space-between;border-bottom:2px solid rgba(212,169,68,.3);}
.app-header.show{display:flex;}
.app-header-left{display:flex;align-items:center;gap:12px;}
.app-header-left img{height:36px;border-radius:8px;}
.app-header-left span{color:var(--gold-light);font-size:14px;font-weight:600;}
.app-logout{background:rgba(255,255,255,.08);border:1px solid rgba(212,169,68,.25);color:var(--gold-light);padding:8px 16px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;}
.ribbon{background:linear-gradient(135deg,var(--deep),var(--deep-2));color:#d0c8b0;font-size:12px;padding:12px 20px;text-align:center;}
header{padding:36px 24px 12px;text-align:center;max-width:820px;margin:0 auto;}
.logo-row{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:14px;}
.logo-row img{height:48px;width:auto;border-radius:8px;}
.nfvt-badge{background:linear-gradient(135deg,var(--deep),var(--deep-2));color:var(--accent-soft);font-size:11px;font-weight:700;text-transform:uppercase;padding:6px 14px;border-radius:8px;}
.eyebrow{text-transform:uppercase;font-size:10.5px;font-weight:700;color:var(--mid);margin-bottom:12px;}
h1{font-family:'Fraunces',serif;font-size:clamp(28px,5vw,46px);color:var(--deep);margin-bottom:10px;}
.search-wrap{max-width:540px;margin:18px auto 0;padding:0 24px;}
.search-box{display:flex;align-items:center;background:var(--paper);border:1.5px solid var(--line);border-radius:999px;padding:5px 7px 5px 20px;}
.search-box input{flex:1;border:none;outline:none;background:transparent;font-size:14px;padding:10px 8px;}
.search-clear{display:none;background:var(--paper-2);border-radius:50%;width:28px;height:28px;cursor:pointer;}
.search-clear.show{display:flex;}
.timing-section{max-width:820px;margin:24px auto 0;padding:0 24px;}
.timing-card{background:var(--info-bg);border:1px solid #b0caa4;border-radius:var(--radius);padding:20px 24px;}
.cat-section{max-width:1160px;margin:28px auto 0;padding:0 24px;}
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:8px;}
.cat-card{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:12px 8px;cursor:pointer;text-align:center;}
.cat-card.active{background:linear-gradient(145deg,var(--deep),var(--deep-2));color:#e0d8c4;}
main{max-width:1180px;margin:0 auto;padding:28px 24px 40px;display:grid;grid-template-columns:264px 1fr;gap:24px;}
.rail{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:6px;}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:32px;}
.wa-btn{background:var(--wa);color:#fff;border:none;border-radius:12px;padding:10px 16px;cursor:pointer;}
footer{text-align:center;padding:28px;color:var(--mid);font-size:11.5px;}