:root{--bg:#0b0a08;--s:#13110d;--s2:#1b1812;--tx:#f3eadb;--mu:#a99d8a;--ok:#22c55e;--bad:#ef4444;--p:#e9a242;--bd:rgba(255,255,255,.1)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font-size:16px;line-height:1.5;-webkit-tap-highlight-color:transparent}
body.gate{min-height:100dvh;padding:env(safe-area-inset-top) 12px calc(20px + env(safe-area-inset-bottom))}
#app{max-width:560px;margin:0 auto;display:grid;gap:12px;padding-top:10px}
.g-top{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}
.g-brand{font-weight:800;letter-spacing:.12em}.g-brand small{color:var(--p);font-size:.7em}
select,input{width:100%;min-height:48px;background:var(--s);color:var(--tx);border:1px solid var(--bd);border-radius:12px;padding:0 12px;font:inherit}
.g-langs{display:flex;gap:4px}.g-langs a{min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:10px;color:var(--mu);text-decoration:none;border:1px solid var(--bd);font-size:.8rem;font-weight:700}
.g-langs a.is-on{background:var(--p);color:#1a1206;border-color:var(--p)}
.g-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:var(--s);border:1px solid var(--bd);border-radius:16px;padding:12px}
.g-stats div{text-align:center}.g-stats b{display:block;font-size:1.9rem;line-height:1.1;font-variant-numeric:tabular-nums}.g-stats span{color:var(--mu);font-size:.78rem}
.g-bar{grid-column:1/-1;height:6px;background:var(--s2);border-radius:99px;overflow:hidden}.g-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f6c36a,var(--p));transition:width .3s}
.g-cam{position:relative;aspect-ratio:1/1;background:#000;border-radius:20px;overflow:hidden;border:1px solid var(--bd)}
.g-cam video{width:100%;height:100%;object-fit:cover}
.g-frame{position:absolute;inset:18%;border:3px solid rgba(255,255,255,.75);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.35);pointer-events:none}
.g-btn{min-height:48px;padding:0 18px;border:0;border-radius:6px;background:var(--p);color:#1a1206;font:inherit;font-weight:700;cursor:pointer}
.g-btn:disabled{opacity:.45;cursor:default}.g-btn:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #fff;outline-offset:2px}
.g-btn--big{position:absolute;inset-inline:20%;top:50%;transform:translateY(-50%);min-height:56px}
.g-result{position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;padding:16px;animation:pop .18s ease-out}
.g-result.is-ok{background:rgba(22,163,74,.94)}.g-result.is-bad{background:rgba(220,38,38,.94)}
.g-r-ico{font-size:4rem;line-height:1}.g-r-msg{font-size:1.6rem;font-weight:800}.g-r-sub{opacity:.95}
@keyframes pop{from{transform:scale(.96);opacity:0}}
.g-manual form{display:grid;grid-template-columns:1fr auto;gap:8px}
.g-list,.g-log ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}
.g-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--s);border:1px solid var(--bd);border-radius:12px;padding:10px 12px}
.g-list li small{display:block;color:var(--mu);font-size:.8rem;overflow-wrap:anywhere}.g-list li.is-empty{color:var(--mu)}
.g-log h2{font-size:.9rem;color:var(--mu);margin:8px 0 0;font-weight:600}
.g-log li{font-size:.85rem;padding:8px 10px;border-radius:10px;background:var(--s);border-inline-start:4px solid var(--mu)}
.g-log li.is-ok{border-color:var(--ok)}.g-log li.is-bad{border-color:var(--bad)}
.gate-login{max-width:380px;margin:12vh auto 0;background:var(--s);padding:24px;border-radius:20px;border:1px solid var(--bd)}
.gate-login h1{margin:0 0 16px;letter-spacing:.12em}.gate-login h1 small{color:var(--p)}
.gate-login label{display:block;margin:10px 0 4px;color:var(--mu);font-size:.9rem}
.gate-login input[type=submit]{background:var(--p);color:#1a1206;border:0;font-weight:700;margin-top:14px;cursor:pointer}
.gate-login .login-remember label{display:flex;gap:8px;align-items:center}.gate-login .login-remember input{width:auto;min-height:0}
.gate-note{color:var(--mu)}
@media (prefers-reduced-motion:reduce){.g-result{animation:none}.g-bar i{transition:none}}

.g-brand{display:flex;align-items:center;gap:10px}.g-brand img{display:block;height:34px;width:auto}
.g-live{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;color:var(--mu);letter-spacing:.12em}
.g-live i{width:8px;height:8px;border-radius:50%;background:#4ade80;animation:gp 1.8s infinite}.g-live.is-off i{background:#f87171;animation:none}
@keyframes gp{70%{box-shadow:0 0 0 7px rgba(74,222,128,0)}0%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}}
.g-out{font-size:1.1rem}
.g-list li.done{opacity:.5}


/* ==========================================================================
   GATE V2 — phone-first scanner, edge-to-edge, event picker under the header
   ========================================================================== */
body.gate { padding: 0; }
#app { max-width: none; width: 100%; margin: 0; padding: 0 0 calc(18px + env(safe-area-inset-bottom)); display: block; }
.g-top { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: calc(8px + env(safe-area-inset-top)) 12px 8px; background: rgba(11, 10, 8, .96); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--bd2); }
.g-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.g-brand img { display: block; height: 32px; width: auto; aspect-ratio: 895 / 419; }
.g-langs { display: flex; align-items: center; gap: 4px; }
.g-langs a { min-width: 38px; min-height: 40px; }
.g-evbar { position: sticky; top: var(--g-h, 58px); z-index: 25; padding: 8px 12px; background: rgba(11, 10, 8, .96); border-bottom: 1px solid var(--bd2); }
.g-evbar select { width: 100%; min-height: 50px; font-size: 16px; }
.g-stats { margin: 0; border: 0; border-bottom: 1px solid var(--bd2); border-radius: 0; background: var(--s); padding: 12px; }
.g-cam { aspect-ratio: 1 / 1; max-height: 70dvh; width: 100%; margin: 0; border: 0; border-radius: 0; }
.g-manual { padding: 12px; }
.g-manual input { font-size: 16px; min-height: 52px; }
.g-manual .g-btn { min-height: 52px; }
.g-log { padding: 4px 12px 0; }
.g-list li { border-radius: 12px; }
.g-result { border-radius: 0; }
@media (min-width: 760px) {
  #app { max-width: 760px; margin: 0 auto; border-inline: 1px solid var(--bd2); min-height: 100dvh; }
  .g-cam { max-height: 560px; }
}
@media (max-width: 380px) { .g-brand img { height: 28px; } .g-langs a { min-width: 34px; } .g-site, .g-out { min-width: 40px; min-height: 40px; } .g-stats b { font-size: 1.5rem; } }

/* V3: slim header with icon buttons, banner-style scan result (never blocks the camera) */
.g-top { padding: calc(6px + env(safe-area-inset-top)) 10px 6px; gap: 8px; }
.g-brand { gap: 10px; flex: 1; }
.g-brand img { height: 28px; }
.g-acts { display: flex; align-items: center; gap: 6px; }
.g-ib { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--bd2); background: var(--s); color: var(--tx); text-decoration: none; }
.g-ib svg { width: 20px; height: 20px; }
.g-ib:active { background: var(--p); color: var(--on); }
.g-ib--out { color: #f87171; }
.g-stats { padding: 8px 12px; }
.g-stats b { font-size: 1.6rem; }
.g-evbar { padding: 6px 10px; }
.g-evbar select { min-height: 46px; }
.g-result { inset: auto 0 0 0; top: auto; display: flex; align-items: center; gap: 12px; text-align: start; padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); cursor: pointer; }
.g-result .g-r-ico { font-size: 2.2rem; flex: none; }
.g-result .g-r-msg { font-size: 1.15rem; line-height: 1.2; flex: 1; min-width: 0; }
.g-result .g-r-sub { flex-basis: 100%; font-size: .85rem; margin-top: -4px; }
.g-result { flex-wrap: wrap; }
.g-result.is-ok { background: rgba(22, 163, 74, .96); }
.g-result.is-bad { background: rgba(220, 38, 38, .96); }
