:root{--saffron:#ff9933;--maroon:#7a1f1f;--gold:#d4af37;--red:#b71c1c;--cream:#fff8e7;--ink:#2d2424;--muted:#756b68;--line:#eadfce;--white:#fff;--green:#18794e;--shadow:0 8px 30px #5b261418}*{box-sizing:border-box}html{font-family:system-ui,-apple-system,"Noto Sans Devanagari",sans-serif;background:var(--cream);color:var(--ink)}body{margin:0;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.btn{min-height:44px;border:0;border-radius:12px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer;background:#f3e8da;color:var(--maroon)}button:disabled{opacity:.55}.primary{background:linear-gradient(135deg,var(--saffron),#ee7525);color:white;box-shadow:0 5px 15px #ff993344}.light{background:#fff;color:var(--maroon)}.app-header{height:64px;position:fixed;z-index:20;inset:0 0 auto 0;background:linear-gradient(135deg,var(--maroon),#541313);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:8px max(14px,env(safe-area-inset-left));box-shadow:0 2px 10px #0003}.app-header div{display:flex;align-items:center;gap:9px}.app-header .om{font-size:28px;color:var(--gold)}.app-header select{max-width:48%;background:#ffffff18;color:#fff;border:1px solid #ffffff40;border-radius:9px;padding:8px}.app-header option{color:#222}.app-main{padding:80px 14px calc(88px + env(safe-area-inset-bottom));max-width:1200px;margin:auto}.sidebar{display:none}.bottom-nav{position:fixed;z-index:20;inset:auto 0 0;background:#fff;border-top:1px solid var(--line);height:68px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);box-shadow:0 -6px 20px #4b27100e}.bottom-nav a{font-size:11px;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.bottom-nav i{font-style:normal;font-size:21px}.bottom-nav .active{color:var(--maroon);font-weight:800}.bottom-nav .scan i{width:46px;height:46px;margin-top:-23px;border-radius:50%;display:grid;place-items:center;background:var(--saffron);color:#fff;border:4px solid var(--cream);box-shadow:0 4px 15px #a85c2677}.hero{border-radius:20px;padding:20px;color:#fff;background:linear-gradient(125deg,var(--maroon),#a32a1c 65%,var(--saffron));display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.hero h2{margin:5px 0;font-size:24px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}.stat-grid article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:0 3px 13px #6f40100b}.stat-grid span{display:block;color:var(--muted);font-size:13px}.stat-grid b{font-size:24px;color:var(--maroon)}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;margin:14px 0;box-shadow:0 4px 18px #5b26140c}.panel h3{margin:0 0 14px;color:var(--maroon)}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-grid a{background:var(--cream);border:1px solid #f1dfc6;border-radius:14px;padding:14px;font-weight:650}.toolbar{display:flex;gap:10px;justify-content:space-between;margin-bottom:12px}.toolbar form{display:flex;flex:1}.toolbar input{min-width:0;flex:1;border-radius:12px 0 0 12px}.toolbar form button{border-radius:0 12px 12px 0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:12px;text-align:left;border-bottom:1px solid #f3ebe0;font-size:14px}th{background:#fff5e5;color:var(--maroon);position:sticky;top:0}tr:last-child td{border-bottom:0}.form-grid{display:grid;gap:13px}.form-grid h3{grid-column:1/-1;border-bottom:1px solid var(--line);padding-bottom:8px;margin-top:12px}.form-grid label,.login-card label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#514746}.form-grid input,.form-grid select,.form-grid textarea,.login-card input,.scanner input,.scanner select,.toolbar input{width:100%;min-height:46px;border:1px solid #d8c9b9;background:#fff;border-radius:11px;padding:10px 12px;color:var(--ink)}textarea{min-height:88px;resize:vertical}.sticky-submit{position:sticky;bottom:78px;grid-column:1/-1}.notice,.alert{padding:12px 14px;border-radius:12px;margin:10px 0}.notice{background:#fff3cd;color:#6d5100;border:1px solid #ffe090}.error{background:#ffdddd;color:#8d1919}.empty{text-align:center;padding:40px;color:var(--muted);background:#fff;border-radius:16px}.muted{color:var(--muted);font-size:13px}.login-page{display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#ffd797,var(--cream) 45%)}.login-card{width:min(100%,390px);background:#fff;border-radius:24px;padding:28px;box-shadow:var(--shadow);text-align:center}.login-card form{display:grid;gap:14px;text-align:left;margin:22px 0}.brand-mark{width:72px;height:72px;background:linear-gradient(135deg,var(--saffron),var(--maroon));border-radius:22px;color:#fff;display:grid;place-items:center;font-size:42px;margin:auto;box-shadow:0 10px 25px #8f371144}.login-card h1{color:var(--maroon);margin-bottom:0}.network{position:fixed;z-index:40;top:66px;left:50%;transform:translateX(-50%);font-size:12px;padding:4px 10px;border-radius:10px;transition:.2s}.offline{background:#8e1c1c;color:#fff}.online{background:#18794e;color:#fff}.scanner{max-width:520px;margin:auto}.scanner-controls{display:flex;gap:8px}.scanner-controls select{flex:1}#reader{margin:12px 0;border-radius:18px;overflow:hidden;background:#1c1716;min-height:260px}#manual{display:flex;gap:8px}.scan-result{margin-top:12px;border-radius:16px;padding:18px;text-align:center;background:#ece8e2;min-height:88px;display:grid;gap:4px}.scan-result.success{background:#d8f5e6;color:#11653f}.scan-result.duplicate{background:#fff0bb;color:#765a00}.scan-result.invalid{background:#ffdcdc;color:#8c1717}.scan-result span{font-size:18px;font-weight:800}.report-list{display:flex;flex-wrap:wrap;gap:10px}
.public-card{padding:18px;background:#eee}.public-card main{display:grid;gap:18px;justify-content:center}.id-card{width:min(92vw,856px);aspect-ratio:1.586/1;background:#fffaf0;border-radius:26px;overflow:hidden;border:3px solid var(--gold);box-shadow:var(--shadow);position:relative;padding:24px;text-align:center}.card-banner{margin:-24px -24px 15px;background:linear-gradient(120deg,var(--maroon),var(--red));color:#fff;padding:15px;display:flex;flex-direction:column;font-size:18px}.card-banner b{font-size:25px;color:#ffd66e}.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:35%}.deity,.avatar{border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,#fff1c6,#f4c46b);font-size:80px;overflow:hidden}.avatar{background:#f0ded0;color:var(--maroon);font-size:70px;font-weight:900}.avatar img{width:100%;height:100%;object-fit:cover}.id-card h1{font-size:clamp(20px,4vw,36px);color:var(--maroon);margin:10px 0 2px}.reg{font-weight:900;letter-spacing:2px;color:#9d5f00}.details{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:12px 0}.details span{background:#fff;border:1px solid #ebd9ba;border-radius:10px;padding:7px;font-size:12px}.details b{display:block;font-size:14px}.id-card footer{position:absolute;bottom:0;inset-inline:0;background:var(--maroon);color:#fff;padding:8px}.id-card.back{display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#fff,#fff1ce)}.id-card.back h2{color:var(--maroon);margin:0}.id-card.back canvas{max-height:38%;width:auto!important;height:auto!important;margin:8px}.card-actions{text-align:center}
@media(min-width:700px){.stat-grid{grid-template-columns:repeat(3,1fr)}.quick-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.wide{grid-column:1/-1}}
@media(min-width:980px){.app-header{left:230px;padding-inline:24px}.sidebar{display:flex;position:fixed;inset:0 auto 0 0;width:230px;background:#3d1212;color:#fff;flex-direction:column;padding:22px 14px;gap:5px}.sidebar>b{font-size:20px;color:#ffd269;margin:0 10px 18px}.sidebar a{padding:11px 13px;border-radius:10px;color:#f7dddd}.sidebar a.active,.sidebar a:hover{background:#ffffff17;color:#fff}.app-main{margin-left:230px;padding:84px 28px 30px}.bottom-nav{display:none}.sticky-submit{bottom:20px}}
@media print{.card-actions{display:none}.public-card{background:#fff;padding:0}.id-card{box-shadow:none;break-inside:avoid;margin:10mm auto}.app-header,.sidebar,.bottom-nav{display:none}}
@media print{.no-print,.report-filters,.app-header,.sidebar,.bottom-nav{display:none!important}.app-main{margin:0;padding:0}.report-print{box-shadow:none;border:0}.report-print table{white-space:normal}}
.master-form,.report-filters{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.master-form label,.report-filters label{display:grid;gap:5px}.master-form input,.report-filters input,.report-filters select{min-height:44px;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.camera-option{display:grid;gap:8px}.photo-actions{display:flex;flex-wrap:wrap;gap:8px}.camera-btn{background:var(--maroon);color:#fff}.photo-preview{width:110px;height:110px;border-radius:16px;object-fit:cover;border:3px solid var(--gold);box-shadow:0 4px 15px #0002}
.permission-grid{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.permission-grid legend{font-weight:800;color:var(--maroon);padding:0 6px}.permission-grid label{display:flex;align-items:center;gap:8px;background:var(--cream);padding:9px;border-radius:9px}.permission-grid input{width:20px;height:20px;min-height:0}
.contact-check{margin-top:5px;padding:8px 10px;border-radius:9px;font-size:12px;line-height:1.4}.contact-check:empty{display:none}.contact-check.checking{background:#edf2f7;color:#4a5568}.contact-check.available{background:#d8f5e6;color:#11653f}.contact-check.duplicate{background:#ffdcdc;color:#8c1717}.contact-check.warning{background:#fff0bb;color:#765a00}
.attendance-columns{display:grid;gap:14px}.success-title{color:var(--green)!important}.danger-title{color:var(--red)!important}@media(min-width:1100px){.attendance-columns{grid-template-columns:1fr 1fr;align-items:start}}
.event-timing{margin-top:8px;padding-top:8px;border-top:1px solid #e5ca80;line-height:1.6}.scan-result time{display:block;font-size:13px;font-weight:800;margin-top:5px}
.card-finder{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap}.card-finder h3{margin:3px 0}.card-finder input{width:min(100%,460px);min-height:46px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.mini-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:20px}.mini-stage{perspective:900px}.mini-flip{aspect-ratio:1.586;position:relative;transform-style:preserve-3d;transition:transform .55s;cursor:pointer}.mini-flip.flipped{transform:rotateY(180deg)}.mini-face{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden;border-radius:16px;padding:16px;background:linear-gradient(135deg,#061b3c,#123d78 66%,#b97722 66%,#e6ae48);color:#fff;box-shadow:0 10px 24px #0624522f}.mini-face>*{position:relative}.mini-back{background:linear-gradient(135deg,#061b3c,#123d78);transform:rotateY(180deg)}.mini-watermark{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);font-size:110px;opacity:.055}.mini-photo{float:right;width:75px;height:92px;border-radius:9px;overflow:hidden;border:3px solid #e6ae48;background:#eee;color:#08244a;display:grid;place-items:center;font-size:40px;font-weight:900}.mini-photo img{width:100%;height:100%;object-fit:cover}.mini-brand{font-weight:900;font-size:.88rem;max-width:70%}.mini-brand small{display:block;font-size:.42rem;letter-spacing:.8px}.mini-face h4{font-size:1.05rem;margin:17px 0 2px;text-transform:uppercase}.mini-cat{color:#ffe09a;font-size:.62rem;font-weight:800}.mini-id{display:inline-block;background:#e6ae48;color:#061b3c;padding:5px 8px;border-radius:5px;font-size:.63rem;font-weight:900;margin:7px 0}.mini-info{font-size:.64rem;line-height:1.65}.mini-face footer{position:absolute;bottom:11px;left:16px;right:16px;border-top:1px solid #ffffff55;padding-top:5px;font-size:.52rem;display:flex;justify-content:space-between}.mini-actions{display:flex;margin-top:9px}.mini-actions .btn{width:100%}@media(max-width:500px){.mini-card-grid{grid-template-columns:1fr}.mini-face{padding:14px}}
.atm-page{min-height:100vh;background:radial-gradient(circle at top,#173d70,#06172f 68%);padding:18px}.atm-page main{width:min(100%,920px);margin:auto;display:grid;gap:14px}.card-page-title{text-align:center;color:#fff}.card-page-title h1{margin:4px 0;font-size:24px}.card-page-title p,.flip-hint{margin:0;color:#b8c9df;text-align:center}.atm-scene{width:100%;aspect-ratio:1.586/1;perspective:1600px;cursor:pointer;outline:0}.atm-scene:focus-visible{box-shadow:0 0 0 4px #e6ad3c;border-radius:28px}.atm-flipper{position:relative;width:100%;height:100%;transition:transform .65s cubic-bezier(.2,.75,.2,1);transform-style:preserve-3d}.atm-flipper.is-flipped{transform:rotateY(180deg)}.atm-card{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;border-radius:4.2% / 6.6%;background:linear-gradient(125deg,#061c3b,#123e74);color:#fff;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 24px 60px #0007;border:1px solid #ffffff2b;padding:5.2%;font-family:Arial,"Noto Sans Devanagari",sans-serif}.atm-card:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px #ffffff12;pointer-events:none}.atm-front{display:grid;grid-template-columns:1fr 27%;grid-template-rows:auto 1fr auto;gap:4%}.atm-gold-sweep{position:absolute;width:68%;height:125%;right:-22%;bottom:-42%;background:linear-gradient(135deg,#bb7417,#f1b640);transform:rotate(39deg);transform-origin:center;box-shadow:-10px 0 30px #0002}.atm-watermark{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);font-size:clamp(120px,30vw,310px);font-weight:900;color:#fff;opacity:.035}.atm-brand{position:relative;z-index:2;display:flex;flex-direction:column;gap:5px;letter-spacing:2px;text-transform:uppercase}.atm-brand strong{font-size:clamp(17px,3.4vw,35px);letter-spacing:0}.atm-brand span{font-size:clamp(7px,1.5vw,15px);font-weight:800}.atm-photo{position:relative;z-index:2;grid-column:2;grid-row:1/3;width:100%;aspect-ratio:.82/1;max-height:55%;border:5px solid #e8ac3c;border-radius:12%;overflow:hidden;background:#e9d7b4;display:grid;place-items:center;color:#0b2c57;font-size:70px;font-weight:900}.atm-photo img{width:100%;height:100%;object-fit:cover}.atm-person{position:relative;z-index:2;align-self:center}.atm-person h2{font-size:clamp(22px,5vw,50px);line-height:1;margin:0 0 3%;text-transform:uppercase;max-width:95%}.atm-person>p{color:#f2c34f;font-size:clamp(13px,2.4vw,25px);font-weight:800;margin:0 0 4%}.atm-id{display:inline-block;background:linear-gradient(90deg,#e9aa36,#f5c761);color:#08244a;border-radius:10px;padding:2.5% 4%;font-size:clamp(12px,2.4vw,25px);font-weight:900}.atm-person dl{margin:4% 0 0;display:grid;gap:5px;font-size:clamp(9px,1.7vw,17px)}.atm-person dl div{display:flex;gap:7px}.atm-person dt{font-weight:800}.atm-person dt:after{content:":"}.atm-person dd{margin:0}.atm-card footer{position:relative;z-index:2;grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid #ffffff66;padding-top:2.5%;align-items:end;font-size:clamp(9px,1.6vw,16px)}.atm-back{transform:rotateY(180deg);display:grid;grid-template-columns:1fr 28%;grid-template-rows:auto 1fr auto;gap:4%}.atm-back .atm-brand{grid-column:1}.atm-back-info{position:relative;z-index:2;align-self:start;font-size:clamp(10px,2vw,20px);line-height:1.35}.atm-back-info p{margin:0 0 2.5%}.atm-qr{position:relative;z-index:2;grid-column:2;grid-row:1/3;background:#fff;color:#071d3d;border-radius:12px;padding:7%;align-self:start;text-align:center}.atm-qr canvas{width:100%!important;height:auto!important;display:block}.atm-qr b{font-size:clamp(7px,1.3vw,13px)}.atm-page .card-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.atm-page .card-actions .btn{min-width:180px}.flip-hint{font-size:13px}
@media(max-width:520px){.atm-page{padding:10px}.atm-card{padding:5%}.atm-person dl{gap:2px}.atm-photo{border-width:3px}.atm-page .card-actions .btn{flex:1;min-width:140px}.atm-back-info p{margin-bottom:1.5%}}
@media print{.card-page-title,.flip-hint,.atm-page .card-actions{display:none!important}.atm-page{background:#fff}.atm-scene{width:170mm;height:107mm}.atm-flipper{transform:none!important}.atm-card{position:relative;page-break-inside:avoid;box-shadow:none}.atm-back{transform:none;margin-top:10mm}}
.atm-front-qr{position:absolute;z-index:4;right:5%;bottom:9%;width:12%;min-width:48px;background:#fff;color:#071d3d;padding:1%;border-radius:8px;text-align:center;box-shadow:0 4px 12px #0004}.atm-front-qr canvas{display:block;width:100%!important;height:auto!important}.atm-front-qr b{display:block;font-size:clamp(5px,.9vw,9px);margin-top:2px}
.mini-qr{position:absolute!important;right:14px;bottom:30px;width:58px;background:#fff;color:#071d3d;padding:4px;border-radius:7px;text-align:center;z-index:5;box-shadow:0 3px 10px #0004}.mini-qr canvas{display:block;width:100%!important;height:auto!important}.mini-qr b{display:block;font-size:6px;line-height:1.2}.mini-back .mini-qr{width:66px;right:16px;top:48px;bottom:auto}
