:root{
  --maroon:#8b0000;
  --maroon-dark:#3b0000;
  --maroon-mid:#b22222;
  --gold:#ffd700;
  --gold-soft:#ffe9a0;
  --cream:#fff8e7;
  --ink:#2b0a0a;
  --card:rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body.app-body{
  min-height:100vh;
  font-family:'Tiro Devanagari Hindi', 'Cormorant Garamond', serif;
  background:radial-gradient(circle at top,#8b0000,#3b0000 70%);
  color:#fff;
}
a{color:var(--gold)}
.gold{color:var(--gold)}
.btn-gold{
  background:linear-gradient(45deg,#ffd700,#ffcc00);
  color:#7b0000;
  border:none;
  border-radius:30px;
  font-weight:700;
  padding:.7rem 1.3rem;
  box-shadow:0 0 15px rgba(255,215,0,.45);
}
.btn-gold:hover{background:#fff;color:#8b0000}
.btn-outline-gold{
  border:1px solid var(--gold);
  color:var(--gold);
  background:transparent;
  border-radius:30px;
  padding:.65rem 1.2rem;
}
.btn-outline-gold:hover{background:var(--gold);color:#7b0000}
.login-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px 16px 80px;
}
.login-card{
  width:100%;
  max-width:440px;
  background:rgba(0,0,0,.55);
  border:3px solid gold;
  border-radius:25px;
  padding:28px 24px;
  box-shadow:0 0 30px gold;
  text-align:center;
}
.login-card h1{color:gold;font-size:1.6rem;margin-bottom:.3rem}
.login-card .muted{color:#ffd700;opacity:.9;margin-bottom:1.2rem}
.login-card .form-control{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,215,0,.35);
  color:#fff;
  border-radius:14px;
  padding:.8rem 1rem;
}
.login-card .form-control:focus{
  background:rgba(255,255,255,.12);
  color:#fff;
  border-color:gold;
  box-shadow:0 0 0 .2rem rgba(255,215,0,.2);
}
.login-card label{display:block;text-align:left;color:#ffd700;margin:.6rem 0 .25rem}
.alert-soft{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,215,0,.4);
  color:#fff;
  border-radius:14px;
}
.footer-fixed{
  position:fixed;
  bottom:0;left:0;right:0;
  background:rgba(0,0,0,.6);
  color:gold;
  text-align:center;
  padding:8px 10px;
  font-size:14px;
  letter-spacing:1px;
  backdrop-filter:blur(5px);
  z-index:40;
}
.ganesh-mini{width:72px;height:auto;margin-bottom:8px}
.star,.light,.firework{pointer-events:none}
.star{position:fixed;width:2px;height:2px;background:#fff;border-radius:50%;opacity:0;animation:twinkle 3s infinite ease-in-out}
.light{position:fixed;bottom:-20px;width:6px;height:6px;background:gold;border-radius:50%;opacity:.7;animation:floatUp linear infinite}
.firework{position:fixed;width:6px;height:6px;background:gold;border-radius:50%}
@keyframes twinkle{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
@keyframes floatUp{from{transform:translateY(0);opacity:.8}to{transform:translateY(-120vh);opacity:0}}
@keyframes fadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes footerGlow{from{text-shadow:0 0 5px gold}to{text-shadow:0 0 15px #ffd700,0 0 25px orange}}
.footer-fixed{animation:footerGlow 3s infinite alternate}
.footer-fixed span{font-weight:700}
.flash-error{background:rgba(180,0,0,.35);border:1px solid #ffb4b4;color:#fff;border-radius:12px;padding:.7rem 1rem;margin-bottom:1rem}
.flash-ok{background:rgba(0,120,60,.28);border:1px solid #9dffc2;color:#fff;border-radius:12px;padding:.7rem 1rem;margin-bottom:1rem}
.role-pills{display:flex;gap:8px;justify-content:center;margin-bottom:16px;flex-wrap:wrap}
.role-pills span{
  border:1px solid rgba(255,215,0,.4);
  border-radius:999px;
  padding:.2rem .7rem;
  font-size:.8rem;
  color:#ffe9a0;
}
@media(max-width:600px){
  .footer-fixed{font-size:12px;padding:6px 5px}
}
