:root{--safe-b:env(safe-area-inset-bottom,0px)}
html{background:#050403}body{min-height:100svh;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font-size:16px}.wrap{width:min(760px,calc(100% - 20px))}
.top{position:sticky;top:0;z-index:15;margin:0 -10px;padding:12px 10px;background:rgba(5,4,3,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.topright{display:flex;align-items:center;gap:8px}.version{font-family:Cinzel;font-size:8px;color:var(--g2)}
.netpill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--l);padding:6px 8px;border-radius:999px;font-size:9px;color:var(--m);background:#090603}
.netpill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 10px currentColor}.netpill.online{color:var(--ok)}.netpill.offline{color:var(--bad)}
.eventbar{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin:10px 0;padding:13px 14px;border:1px solid var(--l);background:linear-gradient(135deg,rgba(216,167,44,.09),rgba(8,5,3,.96));border-radius:16px}
.eventbar b{font-family:Cinzel;font-size:12px;color:var(--g2)}.eventbar small{display:block;margin-top:4px;color:var(--m);font-size:10px}.serverstats{text-align:right}.serverstats strong{display:block;font-family:Cinzel;color:var(--t);font-size:17px}.serverstats span{font-size:8px;color:var(--m)}
.stats{gap:8px}.stat{border-radius:14px;background:linear-gradient(180deg,#100b06,#080503);padding:12px 8px}.stat b{font-size:26px}.stat span{font-size:8px;letter-spacing:.08em}
.tabs{position:sticky;top:69px;z-index:14;background:#050403;padding:6px 0;margin:6px 0 10px}.tab{border-radius:12px;padding:12px 8px;font-size:9px}.tab.active{background:rgba(216,167,44,.09);box-shadow:inset 0 0 0 1px rgba(240,216,120,.08)}
.reader{min-height:390px;border-radius:20px;border-color:rgba(216,167,44,.35);box-shadow:0 20px 60px rgba(0,0,0,.34)}
.reader:before{content:"";position:absolute;inset:14%;z-index:5;border:2px solid rgba(240,216,120,.8);border-radius:20px;pointer-events:none;box-shadow:0 0 0 999px rgba(0,0,0,.18)}.reader:after{content:"";position:absolute;z-index:6;left:18%;right:18%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--g2),transparent);box-shadow:0 0 18px rgba(240,216,120,.8);animation:scanline 2.2s ease-in-out infinite;pointer-events:none}
@keyframes scanline{0%,100%{transform:translateY(-105px);opacity:.5}50%{transform:translateY(105px);opacity:1}}
.scanStatus{border-radius:12px;padding:11px 12px}.actions{display:grid;grid-template-columns:1.5fr 1fr;gap:8px}.btn{min-height:44px;border-radius:12px;font-weight:700;letter-spacing:.03em}.btn.primary{box-shadow:0 8px 24px rgba(181,126,26,.14)}
.manual{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px;border:1px solid var(--l);background:#080503;border-radius:16px}.manual input{border:0;background:transparent;padding:10px;margin:0;min-width:0}.manual input:focus{outline:none}.manual .btn{min-width:104px}
.result{border-radius:18px;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.25)}.result.valid{background:linear-gradient(135deg,rgba(114,217,157,.12),#080503)}.result.blocked{background:linear-gradient(135deg,rgba(239,191,116,.12),#080503)}
.result h3{font-size:22px;margin:8px 0}.result .muted{font-size:12px}.interventionBar{border-radius:16px;padding:16px}.modal{align-items:flex-end;padding:0}.modalbox{width:100%;max-width:720px;border-radius:24px 24px 0 0;padding:22px 18px calc(22px + var(--safe-b));max-height:88svh}.modalhead h2{margin:8px 0}
.historyhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.historyhead h3{margin:0}.clearbtn{background:transparent;border:0;color:var(--m);font-size:10px;padding:8px}.logitem{padding:12px 0;font-size:11px}.logitem b{font-family:Cinzel;color:var(--t)}
.bottom{padding:8px 10px calc(8px + var(--safe-b));background:rgba(5,4,3,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.bottomin{gap:8px}.bottom .btn{min-height:38px}.main{padding-bottom:calc(90px + var(--safe-b))}
.offlineBanner{display:none;position:fixed;top:0;left:0;right:0;z-index:200;background:#7c2626;color:white;text-align:center;padding:8px 12px;font-size:11px}.offlineBanner.show{display:block}.busy{opacity:.6;pointer-events:none}
.login{padding:20px}.login .box{border-radius:24px;padding:28px 20px;box-shadow:0 30px 80px rgba(0,0,0,.4)}.login .brand{font-size:13px}.login h1{font-size:30px;margin:12px 0}.login input{border-radius:12px;min-height:50px}@media(max-width:520px){.reader{min-height:58svh;max-height:520px}.eventbar{grid-template-columns:1fr}.serverstats{text-align:left;display:flex;gap:14px;align-items:center}.serverstats strong{font-size:15px}.stats{grid-template-columns:repeat(3,1fr)}.stat b{font-size:23px}.top .brand{font-size:10px}.topright .version{display:none}.tabs{top:62px}.interventionBar{grid-template-columns:1fr}.actions .btn{width:100%}}
@media(max-width:380px){.wrap{width:min(100% - 12px,760px)}.reader{min-height:52svh}.manual{grid-template-columns:1fr}.manual .btn{width:100%}.stats{gap:5px}.stat{padding:10px 4px}.eventbar{padding:12px}.top{margin:0 -6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reader:after,.pending{animation:none!important}}