:root{--bg:#f3f7f5;--card:#fff;--ink:#0e1e18;--mut:#5d6e66;--line:#e1eae6;--brand:#0e9f6e;--brand-d:#087a55;--brand-s:#e3f6ee;--red:#e5484d;--red-s:#fdeceb;--blue:#2f6fed;--blue-s:#e8efff;--amb:#b97a00;--amb-s:#fff2cf;--r:18px;--sh:0 1px 2px rgba(14,30,24,.05),0 10px 30px rgba(14,30,24,.07);--font:'Inter','Hind Siliguri',system-ui,-apple-system,'Segoe UI',sans-serif}
@media(prefers-color-scheme:dark){:root{--bg:#09120f;--card:#101c18;--ink:#e7f1ed;--mut:#8da39a;--line:#1d2e28;--brand-s:#0f2b21;--red-s:#34171a;--blue-s:#14213f;--amb:#f2b83a;--amb-s:#33290a;--sh:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35)}}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font);background:var(--bg);color:var(--ink);line-height:1.55;min-height:100vh;background-image:radial-gradient(900px 420px at 88% -8%,rgba(14,159,110,.16),transparent 60%),radial-gradient(700px 380px at -8% 0,rgba(47,111,237,.09),transparent 60%);background-attachment:fixed}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
.hidden{display:none!important}.spacer{flex:1}.mut{color:var(--mut)}.sm{font-size:.85rem}.center{text-align:center}
.ic{width:1.15em;height:1.15em;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em;flex:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 18px}.wrap.narrow{max-width:560px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stack>*+*{margin-top:14px}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.topbar{position:sticky;top:0;z-index:20;backdrop-filter:saturate(1.4) blur(14px);background:color-mix(in srgb,var(--bg) 80%,transparent);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;gap:10px;height:64px;flex-wrap:nowrap}
.brand{display:flex;align-items:center;gap:11px;min-width:0}.brand img{width:40px;height:40px;border-radius:12px;object-fit:contain;background:#fff;border:1px solid var(--line);padding:3px}
.brand b{display:block;font-weight:800;letter-spacing:.3px;line-height:1.1}.brand small{display:block;color:var(--mut);font-size:.68rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;background:linear-gradient(135deg,var(--brand),var(--brand-d));color:#fff;font-weight:600;padding:11px 18px;border-radius:12px;cursor:pointer;transition:transform .12s,box-shadow .2s,opacity .2s;box-shadow:0 6px 16px rgba(14,159,110,.28)}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn.ghost{background:var(--card);color:var(--ink);border-color:var(--line);box-shadow:none}.btn.danger{background:linear-gradient(135deg,#f2585d,#cf3a40);box-shadow:0 6px 16px rgba(229,72,77,.25)}
.btn.sm{padding:7px 12px;font-size:.82rem;border-radius:10px}.btn.block{width:100%;padding:14px;font-size:1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:22px}
.card h1{font-size:1.5rem;line-height:1.3}.card h2{font-size:1.05rem;margin-bottom:12px}
.notice{background:linear-gradient(90deg,#f7b500,#ffd45e);color:#2a2000;font-size:.88rem;font-weight:600;padding:9px 0}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--line);color:var(--mut);white-space:nowrap}
.badge.live{background:var(--brand-s);color:var(--brand-d)}.badge.warn{background:var(--amb-s);color:var(--amb)}.badge.info{background:var(--blue-s);color:var(--blue)}.badge.off{background:var(--red-s);color:var(--red)}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor}.live .dot{animation:pulse 1.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(14,159,110,.55)}100%{box-shadow:0 0 0 9px rgba(14,159,110,0)}}
label{display:block;font-size:.82rem;font-weight:600;margin-bottom:6px;color:var(--mut)}
input,select,textarea{width:100%;padding:12px 14px;background:var(--bg);border:1.5px solid var(--line);border-radius:12px;outline:none;transition:border .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(14,159,110,.15)}input[readonly]{opacity:.8}
input[type=checkbox]{width:auto;accent-color:var(--brand)}
.otp{font-size:2rem;font-weight:800;letter-spacing:.55em;text-align:center;padding:14px 0 14px .55em;font-variant-numeric:tabular-nums}
.hint{font-size:.78rem;color:var(--mut);margin-top:6px}.err{color:var(--red);font-size:.84rem;font-weight:600;margin-top:10px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.step{display:flex;align-items:center;gap:10px;font-weight:700;margin:22px 0 10px}.step i{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-style:normal;font-size:.8rem}
.chip{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;border-radius:12px;background:var(--brand-s);color:var(--brand-d);font-weight:600}
.sess{display:block;width:100%;text-align:left;background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;cursor:pointer;transition:border .15s,transform .12s}
.sess:hover{transform:translateY(-1px)}.sess.on{border-color:var(--brand);background:var(--brand-s)}.sess:disabled{opacity:.6;cursor:not-allowed}.sess .row{justify-content:space-between}
.empty{text-align:center;padding:26px 10px;color:var(--mut)}.empty b{display:block;color:var(--ink);margin-bottom:4px}
.hero{padding:56px 0 30px;text-align:center}.hero img{width:92px;height:92px;object-fit:contain;background:#fff;border-radius:26px;border:1px solid var(--line);padding:8px;box-shadow:var(--sh)}
.hero h1{font-size:clamp(1.8rem,5vw,3rem);line-height:1.2;margin:20px 0 12px;font-weight:800}.hero h1 span{background:linear-gradient(135deg,var(--brand),#2f6fed);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{max-width:640px;margin:0 auto 26px;color:var(--mut)}
.feat .card{padding:20px}.feat .ic{width:34px;height:34px;padding:7px;border-radius:12px;background:var(--brand-s);color:var(--brand-d);margin-bottom:10px;stroke-width:1.8}.feat b{display:block;margin-bottom:4px}
footer{text-align:center;color:var(--mut);font-size:.82rem;padding:34px 18px}
.tabs{display:flex;gap:6px;overflow-x:auto;padding:14px 0;scrollbar-width:none}.tab{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:9px 16px;border-radius:99px;font-weight:600;color:var(--mut);cursor:pointer;white-space:nowrap}.tab.on{background:var(--ink);color:var(--bg)}
.kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi{padding:16px 18px}.kpi span{font-size:.78rem;color:var(--mut);font-weight:600}.kpi b{display:block;font-size:1.9rem;line-height:1.2;font-variant-numeric:tabular-nums}
.live-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(310px,1fr))}.lc{border:1.5px solid var(--brand);box-shadow:0 0 0 4px rgba(14,159,110,.08),var(--sh)}
.lc h3{font-size:1.1rem;overflow-wrap:anywhere}.codebox{margin:14px 0;padding:14px;border-radius:14px;background:var(--ink);color:var(--bg);text-align:center}
.code{font-size:2.5rem;font-weight:800;letter-spacing:.35em;padding-left:.35em;font-variant-numeric:tabular-nums;font-family:ui-monospace,Menlo,Consolas,monospace}.codebox small{opacity:.7;font-size:.74rem}
.bar{height:7px;background:var(--line);border-radius:9px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;width:0;background:var(--brand);border-radius:9px;transition:width .9s linear}.codebox .bar{background:rgba(255,255,255,.18)}.codebox .bar i{background:#f7b500}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;margin:10px 0}.stats b{display:block;font-size:1.15rem;font-variant-numeric:tabular-nums}.stats span{font-size:.72rem;color:var(--mut)}
.filters{display:flex;gap:6px;flex-wrap:wrap}.fchip{border:1px solid var(--line);background:var(--card);padding:6px 13px;border-radius:99px;font-size:.8rem;font-weight:600;cursor:pointer;color:var(--mut)}.fchip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr.click{cursor:pointer}tbody tr.click:hover{background:var(--bg)}
.modal{position:fixed;inset:0;z-index:50;background:rgba(5,12,9,.6);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--card);width:100%;max-width:720px;max-height:92vh;overflow:auto;border-radius:24px 24px 0 0;padding:22px;animation:up .25s ease}.sheet.big{max-width:none;height:100%;max-height:none;border-radius:0;display:grid;place-content:center;text-align:center;background:var(--ink);color:var(--bg)}
@media(min-width:720px){.modal{align-items:center}.sheet{border-radius:24px}}@keyframes up{from{transform:translateY(24px);opacity:0}}
.pcode{font-size:clamp(4rem,22vw,11rem);font-weight:800;letter-spacing:.2em;padding-left:.2em;font-family:ui-monospace,Menlo,Consolas,monospace;line-height:1.1}
.toasts{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:80;display:grid;gap:8px;width:min(92vw,420px)}.toast{padding:13px 16px;border-radius:14px;color:#fff;font-weight:600;font-size:.9rem;background:#1c2b25;box-shadow:var(--sh);animation:up .25s}.toast.ok{background:var(--brand-d)}.toast.err{background:#c93a40}
.okmark{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:#fff;animation:pop .45s cubic-bezier(.2,1.6,.4,1)}.okmark .ic{width:44px;height:44px;stroke-width:3}@keyframes pop{from{transform:scale(.2);opacity:0}}
.sub{display:flex;gap:6px;margin-bottom:12px}#print-area{display:none}
@media print{body>*:not(#print-area){display:none!important}#print-area{display:block;color:#000;padding:10mm}#print-area table{font-size:11px}#print-area th,#print-area td{border:1px solid #999;padding:5px;color:#000}}
@media(max-width:560px){.two,.three{grid-template-columns:1fr}.brand small{display:none}.card{padding:18px}}
.sheet.big .bar{width:min(80vw,520px);margin:18px auto}.sheet.big .mut{color:inherit;opacity:.7}
.login{margin-top:9vh;text-align:center}.login .ic{width:42px;height:42px;padding:10px;border-radius:14px;background:var(--brand-s);color:var(--brand-d);margin-bottom:8px}.login form{text-align:left;margin-top:16px}
.head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0 12px}.head h2{margin:0;font-size:1.1rem}
.rate{display:flex;align-items:center;gap:8px;min-width:120px}.rate .bar{flex:1;margin:0}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--bg);border:1.5px solid var(--line);padding:4px;border-radius:14px;margin-bottom:12px}.seg button{border:0;background:transparent;padding:10px;border-radius:10px;font-weight:600;color:var(--mut);cursor:pointer}.seg button.on{background:var(--brand);color:#fff}
.stats.s4{grid-template-columns:repeat(4,1fr)}

.marq{flex:1;min-width:0;overflow:hidden;white-space:nowrap}.marq span{display:inline-block;padding-left:100%;animation:marq 20s linear infinite}.marq:hover span{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-100%)}}
@media(prefers-reduced-motion:reduce){.marq{white-space:normal}.marq span{animation:none;padding-left:0}}
.bigrow{display:flex;gap:36px;align-items:center;justify-content:center;flex-wrap:wrap;margin:14px 0}.qrbox{background:#fff;padding:12px;border-radius:18px}.qr{display:block;width:min(62vw,300px);height:auto;image-rendering:pixelated}
.head input{max-width:240px}code{font-family:ui-monospace,Menlo,Consolas,monospace;background:var(--bg);padding:2px 8px;border-radius:8px;font-size:.85rem}

.shell{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:22px;align-items:start;padding-top:18px}.side{position:sticky;top:84px}
.side nav{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:10px}
.side .tab{justify-content:flex-start;border-radius:12px;padding:12px 14px}
@media(max-width:899px){.shell{grid-template-columns:1fr}.side{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:30;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--card) 94%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line)}.side nav{flex-direction:row;border:0;box-shadow:none;padding:0;background:none;gap:2px}.side .tab{flex:1;flex-direction:column;gap:2px;padding:7px 2px;font-size:.66rem;justify-content:center;text-align:center}.content{padding-bottom:96px}}
.signout{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:28px}.btn.out{background:var(--red-s);color:var(--red);border:1.5px solid var(--red);box-shadow:none}.btn.out:hover{background:var(--red);color:#fff}
.foot{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;color:var(--mut);font-size:.82rem;padding:30px 18px 36px}.foot img{width:46px;height:46px;object-fit:contain;background:#fff;border-radius:12px;border:1px solid var(--line);padding:4px}.foot b{color:var(--ink)}.foot .i{display:inline-flex;align-items:center;gap:5px;margin-right:12px}
.linkbtn{background:none;border:0;color:var(--brand-d);font-weight:600;cursor:pointer;padding:10px 0 0}.msg{font-size:.84rem;margin-top:10px;color:var(--brand-d);font-weight:600}.msg.err{color:var(--red)}
.qrmini{display:flex;gap:12px;align-items:center;margin:10px 0}.qr.mini{width:96px;height:96px}.qrmini .qrbox{padding:6px;border-radius:12px;flex:none}
.scan{max-width:460px}.scan video{width:100%;max-height:60vh;border-radius:14px;background:#000;object-fit:cover}
