@font-face{font-family:Poppins;src:url('/assets/poppins-regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Poppins;src:url('/assets/poppins-medium.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Poppins;src:url('/assets/poppins-semibold.woff2') format('woff2');font-weight:600;font-display:swap}@font-face{font-family:Poppins;src:url('/assets/poppins-bold.woff2') format('woff2');font-weight:700;font-display:swap}@font-face{font-family:'Noto Tamil';src:url('/assets/tamil.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--ink:#163967;--navy:#102746;--blue:#225de9;--red:#e33e58;--muted:#6c7b8b;--line:#e5eaf1;--bg:#f6f8fc;--shadow:0 8px 30px #17375806}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Poppins,'Noto Tamil',sans-serif;font-size:14px;line-height:1.65}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{cursor:pointer}button{border:0}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #89b5ff;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.3;letter-spacing:-.7px;font-weight:700}h2{font-size:21px;letter-spacing:-.4px}h3{font-size:16px;font-weight:600}small,.muted{color:var(--muted)}small{font-size:12px}.brand{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:700;line-height:1.35;letter-spacing:.2px}.brand img{width:53px;height:53px;object-fit:contain;border-radius:12px;background:white}.brand small{font-size:9px;letter-spacing:1.2px;display:block;font-weight:400;margin-top:4px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:12px;background:var(--blue);color:white;font-weight:600;text-decoration:none;transition:background .15s}.btn:hover{background:#194cc5}.btn.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:#fff0f3;color:#b42640}.btn:disabled{opacity:.55;cursor:not-allowed}.full{width:100%}.textbtn{background:transparent;color:var(--blue);padding:12px;min-height:48px}.input,label{display:block;width:100%}label{font-weight:500;margin-bottom:18px}.input{min-height:52px;border:1px solid #d8e0ec;border-radius:12px;background:white;padding:12px 14px;color:var(--ink);margin-top:7px;font-weight:400}.formrow{display:grid;grid-template-columns:1fr 1fr;gap:16px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#7d91ad;margin-bottom:16px}.pill{display:inline-flex;padding:5px 11px;border-radius:99px;background:#edf3ff;color:#255fbe;font-size:11px;line-height:1.5;font-weight:600}.pill.red{background:#fff0f3;color:#c52e48}.pill.green{background:#ecf8f2;color:#237951}.error{background:#fff0f3;border-left:3px solid var(--red);padding:12px;color:#9f2940;border-radius:8px;margin:12px 0}.notice{background:#eff5ff;border:1px solid #dbe8ff;border-radius:12px;padding:14px;font-size:12px;margin:16px 0}.login{min-height:100vh;display:grid;grid-template-columns:47% 53%;background:#fff}.story{padding:48px 58px;background:radial-gradient(ellipse at 110% 30%,#214e88,transparent 55%),var(--navy);color:white;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.story .brand{font-size:20px}.story .brand small{color:#c1d3ec}.story h1{font-size:clamp(38px,4.4vw,68px);line-height:1.12;letter-spacing:-2px;margin:42px 0 22px}.story h1 span{color:#86acff}.story p{font-size:17px;color:#bfd0e8;max-width:410px}.heart-art{height:190px;display:flex;align-items:center;justify-content:center;position:relative;margin:10px}.heart-art:before,.heart-art:after{content:'';position:absolute;width:130px;height:180px;border:15px solid #ed4c64;border-radius:85px 85px 20px 20px;transform:rotate(-38deg);left:calc(50% - 94px)}.heart-art:after{border-color:#4388f4;transform:rotate(38deg);left:calc(50% - 38px)}.storyfooter{display:flex;gap:12px;margin-top:35px}.storyfooter span{font-size:11px;padding:12px 14px;border:1px solid #476184;border-radius:10px}.login-right{padding:32px 8%;display:flex;flex-direction:column}.toplinks{display:flex;justify-content:flex-end;align-items:center;gap:14px}.loginform{width:100%;max-width:460px;margin:auto;padding:35px 0}.loginform h1{font-size:28px}.tabs{display:flex;border-bottom:1px solid var(--line);margin:26px 0}.tabs button{flex:1;min-height:50px;background:transparent;color:var(--muted);border-bottom:3px solid transparent;font-weight:600}.tabs button.active{color:var(--blue);border-color:var(--blue)}.loginfooter{text-align:center;color:var(--muted);font-size:11px;padding:20px}.mobilebrand{display:none}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:white;padding:28px 20px;position:fixed;inset:0 auto 0 0;width:236px;display:flex;flex-direction:column;z-index:20}.sidebar nav{margin-top:45px;display:grid;gap:9px}.navitem{display:flex;align-items:center;gap:13px;width:100%;min-height:49px;padding:12px 16px;border-radius:12px;background:transparent;color:#c5d5ec;text-align:left;font-size:13px}.navitem.active{background:var(--blue);color:white}.icon{width:22px;height:22px;flex-shrink:0;display:inline-block;vertical-align:middle}.sideuser{margin-top:auto;padding:20px 4px 0;border-top:1px solid #324965;font-size:12px}.workspace{grid-column:2;min-width:0}.topbar{height:78px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line);gap:16px}.topbar small{letter-spacing:.5px}.topbar select{max-width:260px;min-height:44px;margin:0}.topactions{display:flex;align-items:center;gap:15px}.page{padding:32px 36px;max-width:1600px;margin:0 auto}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px}.pagehead p{margin-bottom:0}.pagehead h1{margin-bottom:7px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.stat{background:#fff;border:1px solid var(--line);padding:24px;border-radius:17px;box-shadow:var(--shadow);display:flex;gap:17px;align-items:center}.stat strong{font-size:34px;line-height:1.2;display:block;color:var(--navy);font-variant-numeric:tabular-nums}.stat .bubble{width:50px;height:50px;border-radius:16px;background:#eef3ff;display:grid;place-items:center;color:var(--blue)}.stat:first-child .bubble{background:#fff0f3;color:var(--red)}.stat small{font-size:10px}.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.panelhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:16px}.panelhead h2,.panelhead h3{margin:0}.columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px}.map{height:310px;background:#f0f4f8;border-radius:12px;z-index:1}.empty{padding:42px 18px;text-align:center;color:var(--muted)}.empty .icon{display:block;margin:0 auto 14px;width:36px;height:36px;color:#9db2cc}.empty h3{color:var(--ink);margin-bottom:8px}.empty p{font-size:12px;max-width:400px;margin:0 auto}.request-card{padding:18px;border:1px solid #f5dce3;background:#fff8fa;border-radius:12px;margin-bottom:14px}.request-card h3{margin:10px 0}.request-card p{font-size:12px;margin:6px 0}.request-card .btn{margin-top:10px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}th{padding:14px;background:#f5f8fd;color:#617895;font-weight:500;white-space:nowrap}td{border-bottom:1px solid var(--line);padding:15px 14px}td .btn{min-height:36px;padding:6px 12px;font-size:11px}.filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filters .input{width:auto;min-width:160px;margin:0}.donorgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.donor-card{background:radial-gradient(ellipse at 110% 0%,#27548b,transparent 65%),var(--navy);border-radius:20px;padding:28px;color:white;margin-bottom:24px;position:relative}.donor-card .eyebrow{color:#9fbce4}.donor-card strong{font-size:25px}.blood{font-size:26px;font-weight:600;display:inline-block;color:#ff8a9c;margin-right:14px}.donor-card small{color:#bbcee6}.availability{display:flex;gap:18px;align-items:center}.availability .btn{min-width:90px}.availability h3{margin:0 0 5px}.quick{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quick button{padding:22px;background:white;border:1px solid var(--line);border-radius:15px;text-align:left;color:var(--ink);font-weight:600;min-height:90px}.quick .icon{color:var(--blue);margin-bottom:10px;display:block}.bottomnav{display:none}dialog{border:1px solid var(--line);border-radius:22px;padding:28px;max-width:540px;width:calc(100% - 30px);color:var(--ink);max-height:90vh;overflow:auto}dialog::backdrop{background:#10274688;backdrop-filter:blur(3px)}.dialoghead{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialoghead h2{margin:0}.dialoghead button{background:#f3f6fa;border-radius:50%;width:42px;height:42px;font-size:22px;color:var(--ink)}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:14px 24px;border-radius:12px;z-index:100;display:none;max-width:90vw;font-size:12px}.loading{text-align:center;padding:20vh 20px;font-weight:600}.check{display:flex;gap:10px;font-weight:400;font-size:12px}.check input{width:20px;min-width:20px;height:20px}.consent{padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:15px}.consent p{margin:0;font-size:12px}.cluster{background:#245de9;border:3px solid white;border-radius:50%;color:#fff;text-align:center;line-height:30px;font-family:Poppins,sans-serif;box-shadow:0 2px 8px #17375844}.version{font-size:10px;color:#8b9aae;margin-top:25px}.lang{background:transparent;color:var(--blue);font-weight:600;min-height:44px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.page{padding:45px}}@media(max-width:1100px){.shell{grid-template-columns:200px 1fr}.sidebar{width:200px;padding:24px 14px}.page{padding:24px}.topbar{padding:0 24px}.columns{grid-template-columns:1fr}.stats{gap:12px}.stat{padding:18px;gap:10px}.story{padding:36px}.donorgrid{gap:16px}.stat .bubble{display:none}}
@media(max-width:700px){body{font-size:14px}.login{display:block}.story{display:none}.mobilebrand{display:flex;margin:22px 0 36px;justify-content:center}.login-right{padding:20px 26px;min-height:100vh}.loginform{padding:25px 0}.loginform h1{font-size:29px}.login-right .toplinks{min-height:38px}.shell{display:block}.sidebar{display:none}.workspace{display:block}.topbar{height:auto;min-height:70px;padding:14px 20px;flex-wrap:wrap}.topbar .brand{font-size:12px}.topbar .brand img{width:38px;height:38px}.topbar select{max-width:180px;font-size:11px;min-height:42px}.topactions{gap:5px}.topactions .textbtn{padding:8px;font-size:11px}.page{padding:24px 18px 100px}.pagehead{align-items:flex-start;margin-bottom:22px}.pagehead h1{font-size:25px}.pagehead p{font-size:12px}.pagehead .btn{font-size:11px;padding:10px 12px}.stats{gap:8px;margin-bottom:20px}.stat{padding:14px 9px;border-radius:12px;display:block}.stat strong{font-size:25px;margin:5px 0}.stat span{font-size:10px}.stat small{font-size:9px;line-height:1.3;display:block}.columns,.donorgrid{display:block}.panel{padding:18px;border-radius:16px;margin-bottom:18px}.panel h2{font-size:18px}.map{height:270px}.filters .input{flex:1;min-width:120px;font-size:12px}.donor-card{padding:25px}.bottomnav{display:flex;justify-content:space-around;position:fixed;bottom:0;left:0;right:0;padding:8px 4px max(10px,env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);z-index:30}.bottomnav button{background:transparent;color:#6d7c91;font-size:10px;min-width:65px;min-height:50px}.bottomnav .icon{display:block;margin:0 auto 5px}.bottomnav button.active{color:var(--blue);font-weight:600}.formrow{grid-template-columns:1fr;gap:0}.availability{gap:12px}.availability h3{font-size:14px}.availability small{font-size:11px}.tablewrap{margin:0 -8px}.quick{margin-bottom:20px}h2{font-size:19px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
