*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#f6f7fb;color:#18202a}.topbar{height:70px;background:#fff;border-bottom:1px solid #e8eaf0;padding:12px max(18px,calc((100% - 1100px)/2));display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:5}.brand{font-weight:800;font-size:20px}.subtitle{font-size:12px;color:#777}.top-actions{display:flex;gap:8px}.ghost,.secondary,.back{border:1px solid #ddd;background:#fff;border-radius:10px;padding:9px 13px;cursor:pointer}.page{display:none;max-width:1100px;margin:auto;padding:24px 18px 60px}.page.active{display:block}.hero,.schedule-hero{background:linear-gradient(135deg,#fff 0%,#fff3dd 100%);border:1px solid #f0dfbd;border-radius:20px;padding:28px;display:flex;justify-content:space-between;gap:20px;align-items:center}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#a56b00;font-weight:800}.hero h1{margin:8px 0 6px;font-size:34px}.hero p,.schedule-hero p{margin:0;color:#626975;max-width:650px}.date-card{background:#fff;border-radius:16px;padding:18px 22px;min-width:150px;box-shadow:0 5px 20px #0000000d}.date-card b,.date-card span{display:block}.date-card span{font-size:12px;color:#777;margin-top:5px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 30px}.stats>div{background:#fff;border:1px solid #e9eaf0;border-radius:14px;padding:17px}.stats b{font-size:24px;display:block}.stats span{font-size:12px;color:#777}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.tile{border:1px solid #e6e7ec;background:#fff;border-radius:16px;padding:20px;text-align:left;cursor:pointer}.tile:hover{box-shadow:0 8px 25px #0000000b}.tile span{font-size:28px;display:block;margin-bottom:13px}.tile b,.tile small{display:block}.tile small{color:#777;margin-top:4px}.section-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.section-head h2{margin:0}.form{display:grid;gap:14px;max-width:700px}.form label{font-weight:700;font-size:13px}.form input,.form select,.form textarea{display:block;width:100%;margin-top:6px;border:1px solid #dfe2e8;border-radius:10px;padding:11px 12px;font:inherit;background:#fff}.form textarea{min-height:80px}.form fieldset{border:1px solid #e1e3e8;border-radius:12px;padding:14px}.check{font-weight:500!important;display:block;margin:8px 0}.check input{display:inline;width:auto;margin-right:8px}.primary{border:0;background:#1e293b;color:#fff;border-radius:10px;padding:11px 15px;font-weight:700;cursor:pointer}.danger{border:0;background:#b42318;color:#fff;border-radius:10px;padding:11px 15px;font-weight:700;margin-left:8px}.list-item{background:#fff;border:1px solid #e7e8ed;border-radius:12px;padding:14px;margin:10px 0;display:flex;justify-content:space-between;gap:15px}.muted{color:#6b7280;font-size:14px}.schedule-row{padding:14px 0;border-bottom:1px solid #eee;display:flex;gap:20px}.schedule-row:last-child{border-bottom:0}.schedule-row b{min-width:150px}.schedule-hero{margin-bottom:16px}.ganesh-art{font-size:34px;text-align:center;line-height:1.4;background:#fff;border-radius:18px;padding:12px 25px}.image-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.image-strip div{height:120px;border-radius:16px;background:linear-gradient(145deg,#fff,#ffe8bd);display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:38px}.image-strip span{font-size:13px;font-weight:700;margin-top:7px}.card{background:#fff;border:1px solid #e7e8ed;border-radius:16px;padding:20px;margin-bottom:16px}.admin-banner{background:#eef6ff;border:1px solid #cfe5ff;padding:16px;border-radius:14px;margin-bottom:18px}.admin-banner span,.admin-banner b{display:block}.admin-banner span{margin-top:4px;color:#5b6470;font-size:14px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-action{display:block;width:100%;text-align:left;background:#f8f9fb;border:1px solid #e5e7eb;border-radius:10px;padding:12px;margin:8px 0;cursor:pointer}.checklist label{display:block;padding:10px 0;border-bottom:1px solid #eee}.checklist input{margin-right:10px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#18202a;color:#fff;padding:11px 16px;border-radius:10px;display:none;z-index:10}@media(max-width:750px){.hero,.schedule-hero{display:block}.date-card{margin-top:18px}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr 1fr}.image-strip{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.hero h1{font-size:28px}.schedule-row{display:block}.schedule-row span{display:block;margin-top:5px}}@media(max-width:480px){.grid{grid-template-columns:1fr}.top-actions .ghost{padding:8px}.hero{padding:20px}}
.contrib-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:14px 0}.contrib-box{background:#f7f8fa;border:1px solid #e7e8ed;border-radius:12px;padding:12px}.contrib-box b,.contrib-box span{display:block}.contrib-box span{font-size:11px;color:#777;margin-top:4px}@media(max-width:750px){.contrib-summary{grid-template-columns:repeat(2,1fr)}}
.hidden{display:none!important}.session-label{font-size:12px;color:#5b6470;align-self:center}.notice{margin:16px 0;background:#fff7df;border:1px solid #f0d891;padding:12px 15px;border-radius:12px;color:#68551a}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.event-card{background:#fff;border:1px solid #e7e8ed;border-radius:16px;padding:18px;margin:12px 0}.event-meta{font-size:12px;color:#777;margin-top:6px}.status-pill{display:inline-block;border:1px solid #ddd;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.compact{max-width:none}.list-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.list-item small{color:#777}.error{background:#fff0f0;border:1px solid #f3c3c3;padding:12px;border-radius:10px;color:#8a2525}@media(max-width:750px){.auth-grid{grid-template-columns:1fr}.session-label{display:none}}
.auth-success{text-align:center;align-self:start}.success-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#ecfdf3;border:1px solid #abefc6;font-size:28px;font-weight:800}.auth-success h3{margin-top:0}.auth-success .secondary,.auth-success .ghost{margin:6px 4px}
.resident-identity{max-width:1100px;margin:10px auto 0;padding:10px 18px;background:#fff7e8;border:1px solid #f0d9ad;border-radius:12px;display:flex;gap:10px;align-items:center}.resident-identity span{font-size:12px;color:#7a6337;text-transform:uppercase;letter-spacing:.06em}.resident-identity b{font-size:14px}.field-note{display:block;color:#777;font-weight:400;margin-top:4px}.list-actions{display:flex;gap:8px;align-items:center}.danger-outline{border:1px solid #d92d20;color:#b42318;background:#fff;border-radius:10px;padding:9px 12px;cursor:pointer}

/* Phase 4: villa-centric resident experience */
.login-page{max-width:1180px}.villa-auth-shell{display:grid;grid-template-columns:.85fr 1.45fr;gap:22px;align-items:start}.villa-login-intro{background:linear-gradient(145deg,#2a1907 0%,#6f3f08 55%,#a9650b 100%);color:#fff;border-radius:24px;padding:34px;min-height:100%;box-shadow:0 18px 55px #5e390d24;position:relative;overflow:hidden}.villa-login-intro:after{content:'ॐ';position:absolute;right:-12px;bottom:-38px;font-size:170px;opacity:.08;font-weight:800}.villa-badge{display:inline-flex;border:1px solid #ffffff40;background:#ffffff12;border-radius:999px;padding:7px 11px;font-size:10px;letter-spacing:.12em;font-weight:800}.villa-icon{font-size:48px;margin:42px 0 12px}.villa-login-intro h1{font-size:38px;line-height:1.04;margin:0 0 14px}.villa-login-intro p{line-height:1.65;color:#fff9;max-width:430px}.villa-login-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.villa-login-points span{background:#ffffff12;border:1px solid #ffffff25;border-radius:10px;padding:8px 10px;font-size:12px}.villa-auth-grid{grid-template-columns:1fr 1fr;align-items:start}.login-card,.register-card{border-radius:20px;padding:26px;box-shadow:0 12px 35px #16202a0a}.form-kicker{text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:800;color:#a56b00}.login-card h3,.register-card h3{font-size:24px;margin:6px 0}.login-helper{margin-top:-4px}.login-primary{width:100%;min-height:50px;border-radius:13px;background:linear-gradient(135deg,#633b08,#a9670c);display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:14px;box-shadow:0 10px 20px #85520e2b;transition:transform .15s ease,box-shadow .15s ease}.login-primary:hover{transform:translateY(-1px);box-shadow:0 14px 26px #85520e33}.register-primary{width:100%;min-height:48px;border-radius:13px;background:#202938}.context-note{background:#fff8ea;border:1px solid #efd9ad;color:#72531b;border-radius:12px;padding:11px 14px;margin:-4px 0 14px;font-size:13px}.festival-date-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0 0 16px}.festival-date-grid>div{background:#fff;border:1px solid #eadfce;border-radius:15px;padding:14px;text-align:center}.festival-date-grid b,.festival-date-grid span,.festival-date-grid small{display:block}.festival-date-grid b{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8a662b}.festival-date-grid span{font-size:20px;font-weight:800;margin:5px 0}.festival-date-grid small{font-size:10px;color:#777}.festival-date-grid .nimajjanam-day{background:#fff4dc;border-color:#e5c986}.festival-date-grid .nimajjanam-day span{color:#8a5200}
@media(max-width:900px){.villa-auth-shell{grid-template-columns:1fr}.villa-login-intro{min-height:auto}.villa-auth-grid{grid-template-columns:1fr 1fr}.festival-date-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.villa-auth-grid{grid-template-columns:1fr}.villa-login-intro{padding:25px}.villa-login-intro h1{font-size:31px}.festival-date-grid{grid-template-columns:repeat(2,1fr)}}


/* Phase 5: devotional Ganesha visual + email-only registration */
.divine-hero{position:relative;overflow:hidden;padding:0;min-height:245px;background:linear-gradient(135deg,#fffaf0,#fff1d3)}
.ganesha-hero-image{width:330px;align-self:stretch;object-fit:cover;object-position:center;border-radius:20px 0 0 20px;flex:0 0 330px}
.hero-copy{padding:28px 8px 28px 4px;flex:1;min-width:0}
.divine-line{margin-top:14px;font-family:Georgia,serif;color:#9a6110;font-weight:700;letter-spacing:.05em}
.divine-hero .date-card{margin-right:24px}
.login-ganesha{display:block;width:100%;max-width:360px;aspect-ratio:620/370;object-fit:cover;border-radius:18px;margin:26px 0 18px;border:1px solid #ffffff2f;box-shadow:0 12px 30px #160b0038}
.villa-login-intro h1{margin-top:4px}
@media(max-width:850px){.divine-hero{display:grid;grid-template-columns:150px 1fr}.ganesha-hero-image{width:150px;min-height:220px;border-radius:20px 0 0 20px}.divine-hero .date-card{grid-column:1/-1;margin:0 18px 18px}.hero-copy{padding:22px 18px}.hero-copy h1{font-size:28px}}
@media(max-width:560px){.divine-hero{display:block}.ganesha-hero-image{width:100%;height:210px;border-radius:20px 20px 0 0}.hero-copy{padding:20px}.divine-hero .date-card{margin:0 20px 20px}.login-ganesha{max-width:none}}
