:root{--saffron: #f08c1f;--saffron-deep: #cc6a00;--maroon: #6b0f1a;--gold: #d4af37;--ivory: #fff8ec;--ink: #2a1a10;--muted: #6e5b48;--border: #ead7b0;--bg: #fbf3df;--shadow: 0 6px 24px rgba(107,15,26,.08);--danger: #b3261e}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Georgia,serif;color:var(--ink);background:var(--bg)}a{color:var(--maroon);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.portal-content{padding:32px;max-width:1280px;width:100%;margin:0 auto;flex:1}h1,h2,h3{color:var(--maroon)}.portal-top{background:linear-gradient(180deg,var(--maroon-dark, #4a0a13) 0%,#2a060c 100%);color:#fff8ec;border-bottom:1px solid rgba(212,175,55,.25);box-shadow:0 4px 18px #00000059}.portal-top-row{position:relative;display:flex;align-items:center;justify-content:center;padding:18px 28px 6px;text-align:center}.portal-brand{display:flex;flex-direction:column;align-items:center;gap:4px}.portal-brand img{height:56px;width:auto}.portal-brand-name{font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:22px;color:#fff8ec;letter-spacing:.5px;margin-top:6px}.portal-brand-sub{font-family:-apple-system,Segoe UI,sans-serif;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold)}.portal-avatar-wrap{position:absolute;right:28px;top:18px}.portal-avatar-btn{display:inline-flex;align-items:center;gap:10px;background:#fff8ec14;border:1px solid rgba(212,175,55,.35);color:#fff8ec;padding:6px 14px 6px 6px;border-radius:999px;cursor:pointer;font:inherit;font-size:13px;transition:background .2s ease}.portal-avatar-btn:hover{background:#fff8ec26}.portal-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--gold-soft, #e9c97a),var(--gold, #d4af37));color:var(--maroon);font-weight:800;font-size:12px;display:inline-grid;place-items:center;overflow:hidden}.portal-avatar img{width:100%;height:100%;object-fit:cover;display:block}.portal-avatar-name{font-weight:600}.portal-avatar-btn .caret{font-size:10px;opacity:.8}.portal-avatar-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 40px #00000040;padding:8px;min-width:240px;z-index:60}.portal-avatar-info{padding:10px 12px 12px;border-bottom:1px solid var(--border);margin-bottom:6px;text-align:left}.portal-avatar-info-name{font-weight:700;color:var(--ink);font-size:14px}.portal-avatar-info-email{color:var(--muted);font-size:12px;margin-top:2px}.portal-avatar-menu .role{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--gold, #d4af37);color:var(--maroon);font-weight:800;font-size:10px;letter-spacing:1px;margin-top:6px}.portal-avatar-menu a,.portal-avatar-menu .logout-btn{display:block;padding:10px 12px;border-radius:8px;color:var(--ink);font-size:14px;font-weight:500;text-decoration:none;text-align:left;background:transparent;border:0;cursor:pointer;width:100%;font:inherit}.portal-avatar-menu a:hover,.portal-avatar-menu .logout-btn:hover{background:var(--ivory-deep, #fbeed1);color:var(--maroon)}.portal-avatar-menu .logout-btn{color:var(--danger, #b3261e);margin-top:4px;border-top:1px solid var(--border);padding-top:12px;border-radius:0 0 8px 8px}.portal-nav{display:flex;gap:22px;align-items:center;justify-content:center;padding:12px 28px 14px;flex-wrap:wrap;border-top:1px solid rgba(255,248,236,.06);margin-top:6px}.portal-nav a{color:#fff8ecd9;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.4px;padding:4px 0;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.portal-nav a:hover{color:#fff8ec}.portal-nav a.active{color:var(--gold);border-bottom-color:var(--gold)}.portal-nav-sep{color:#d4af3766;margin:0 4px}@media (max-width: 700px){.portal-top-row{padding:14px 18px 0}.portal-brand img{height:42px}.portal-brand-name{font-size:17px}.portal-avatar-wrap{right:16px;top:14px}.portal-avatar-name{display:none}.portal-nav{padding:10px 14px 12px;gap:14px;font-size:12px}.portal-nav a{font-size:12px}.portal-nav-sep{display:none}.portal-content{padding:22px 18px}}.auth-page{display:flex;flex-direction:column;min-height:100vh;background:radial-gradient(ellipse at top,#fff5e0,var(--ivory))}.auth-page main{flex:1;display:grid;place-items:center;padding:48px 24px}.auth-card{background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:32px;width:100%;max-width:440px;border:1px solid var(--border)}.public-header{background:linear-gradient(180deg,#4a0a13,#2a060c);color:#fff8ec;padding:14px 0;border-bottom:1px solid rgba(212,175,55,.25);box-shadow:0 4px 18px #00000059}.public-container{max-width:1240px;margin:0 auto;padding:0 28px}.public-header-row{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;position:relative}.public-brand{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:inherit}.public-brand img{height:52px;width:auto}.public-brand-name{font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:22px;color:#fff8ec;letter-spacing:.5px}.public-brand-sub{font-family:-apple-system,Segoe UI,sans-serif;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-top:2px}.public-nav{display:flex;justify-content:center;flex-wrap:wrap;gap:22px;align-items:center}.public-nav a{color:#fff8ec;text-decoration:none;font-size:14px;letter-spacing:.5px;font-weight:500;transition:color .2s ease}.public-nav a:hover{color:var(--gold);text-decoration:none}@media (max-width: 800px){.public-nav{gap:12px;font-size:12px}.public-nav a{font-size:12px}.public-brand-name{font-size:18px}}.public-footer{background:linear-gradient(180deg,#6b0f1a,#2a060c);color:#fff8ec;padding:48px 0 22px;border-top:4px solid var(--gold);margin-top:auto}.public-footer h3,.public-footer h4{color:#fff8ec;margin-top:0}.public-footer p{margin:6px 0 0;opacity:.9;font-size:14px}.public-footer a{color:var(--gold);text-decoration:none}.public-footer a:hover{color:#fff;text-decoration:underline}.public-foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}.public-foot-mantra{font-family:serif;color:var(--gold);font-size:16px;margin-top:12px}.public-copy{text-align:center;margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;opacity:.7;letter-spacing:.5px}@media (max-width: 700px){.public-foot-grid{grid-template-columns:1fr;gap:22px}}.auth-card .brand{display:flex;align-items:center;gap:10px;margin-bottom:16px}.auth-card .brand img{height:48px}.auth-card h1{margin:0 0 8px;font-size:24px}.muted{color:var(--muted)}.field{display:block;margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px}.field input,.field select,.field textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:14px;font-family:inherit;background:#fff;box-sizing:border-box;line-height:1.4}.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,input:not([type=checkbox]):not([type=radio]):not([type=file]),select{height:42px}.field textarea,textarea{min-height:64px;height:auto}.field input:focus,.field select:focus,.field textarea:focus,input:focus,select:focus,textarea:focus{outline:2px solid var(--saffron);outline-offset:2px}.btn{display:inline-block;padding:10px 18px;border-radius:999px;border:0;font-weight:700;cursor:pointer;font-family:inherit;font-size:14px}.btn-primary{background:var(--saffron);color:#fff}.btn-primary:hover{background:var(--saffron-deep)}.btn-outline{background:transparent;color:var(--maroon);border:2px solid var(--maroon)}.btn-outline:hover{background:var(--maroon);color:#fff}.btn-danger{background:#fff;border:2px solid var(--danger);color:var(--danger)}.btn:disabled{opacity:.6;cursor:not-allowed}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--shadow)}.card h3{margin-top:0}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.tag-pending{background:#fff3d6;color:#8a6a00}.tag-active{background:#dff5e3;color:#186a3b}.tag-suspended{background:#fde2e2;color:#8a1f1f}.tag-confirmed{background:#dff5e3;color:#186a3b}.tag-requested{background:#fff3d6;color:#8a6a00}.tag-cancelled{background:#fde2e2;color:#8a1f1f}.tag-completed,.tag-website{background:#e0e7ff;color:#1e3a8a}.tag-mobile{background:#fde6cc;color:#8a4400}.tag-both{background:#ead0f5;color:#5b1a7a}.tag-pooja{background:#ffe9d6;color:#b35400}.tag-donation{background:#f0e2ff;color:#4a25a7}.tag-atm{background:#d6f0e9;color:#0d5c4b}.tag-basic{background:#fef4d6;color:#7d5b00}table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--border)}th,td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle}th{background:#fff8ec;color:var(--maroon);font-weight:800}tr:last-child td{border-bottom:0}td.row.right{display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:4px;white-space:nowrap}td.row.right .btn{padding:4px 10px;font-size:11px;line-height:1.3;white-space:nowrap}tr.priest-registered td{background:#f08c1f14}.devotee-search{position:relative;width:100%}.devotee-search input[type=search]{width:100%;padding:12px 14px;border:2px solid var(--border);border-radius:12px;font-size:15px;font-family:inherit;background:#fff}.devotee-search input[type=search]:focus{outline:2px solid var(--saffron);outline-offset:2px;border-color:var(--gold, #d4af37)}.devotee-search-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 36px #6b0f1a1f;max-height:360px;overflow-y:auto;z-index:50;padding:4px}.devotee-search-msg{padding:14px;color:var(--muted);font-size:13px;text-align:center}.devotee-search-row{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;background:transparent;cursor:pointer;border-radius:10px;text-align:left;font:inherit;color:var(--ink)}.devotee-search-row:hover{background:var(--ivory-deep, #fbeed1)}.devotee-search-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#e9c97a,#d4af37);color:var(--maroon);font-weight:700;font-size:13px;display:inline-grid;place-items:center;flex:0 0 36px;overflow:hidden}.devotee-search-avatar img{width:100%;height:100%;object-fit:cover}.devotee-search-body{display:flex;flex-direction:column;min-width:0;flex:1}.devotee-search-name{font-weight:600;font-size:14px;color:var(--ink)}.devotee-search-star{color:var(--saffron-deep);font-weight:500}.devotee-search-meta{color:var(--muted);font-size:12px;margin-top:2px}.devotee-search-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--ivory-deep, #fbeed1);color:var(--maroon);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;vertical-align:middle}.member-avatar-tiny{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--ivory-deep, #fbeed1);overflow:hidden;display:inline-grid;place-items:center;color:var(--maroon);font-weight:700;font-size:11px;flex:0 0 32px}.member-avatar-tiny img{width:100%;height:100%;object-fit:cover}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a0408b3;display:grid;place-items:center;padding:24px;z-index:200;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:16px;max-width:560px;width:100%;padding:28px;max-height:86vh;overflow:auto;box-shadow:0 30px 80px #00000073}.modal h2{margin-top:0;color:var(--maroon)}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px}.alert-error{background:#fde2e2;color:#8a1f1f;border:1px solid #f3b9b9}.alert-success{background:#dff5e3;color:#186a3b;border:1px solid #a8d9b6}.alert-info{background:#fff8ec;color:var(--ink);border:1px solid var(--border)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}@media (max-width: 800px){.shell{grid-template-columns:1fr}.sidebar{display:flex;align-items:center;padding:14px 18px}.sidebar nav{display:flex;gap:6px;overflow-x:auto}.sidebar .userbox{display:none}.content{padding:18px}}
