/* landing-voting-v2.css */
:root{--vv2-accent:#ff3e72;--vv2-accent2:#6366f1;--vv2-bg:#080a10;--vv2-card:rgba(17,22,37,0.65);--vv2-border:rgba(255,255,255,0.06);--vv2-text:#ffffff;--vv2-muted:#64748b;--vv2-success:#10b981}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}
html,body{height:100%;overflow-x:hidden}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,'Inter',sans-serif;background:var(--vv2-bg);color:var(--vv2-text);min-height:100dvh}

.ambient-bg{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 50% 50%,#121727 0%,var(--vv2-bg) 100%)}
.glow-blob{position:absolute;width:300px;height:300px;border-radius:50%;mix-blend-mode:screen;filter:blur(80px);opacity:.35;animation:moveBlob 12s infinite alternate ease-in-out}
.blob-1{background:var(--vv2-accent);top:-5%;left:-5%}
.blob-2{background:var(--vv2-accent2);bottom:-5%;right:-5%;animation-delay:-4s}
@keyframes moveBlob{0%{transform:translate(0,0) scale(1)}50%{transform:translate(40px,30px) scale(1.1)}100%{transform:translate(-20px,50px) scale(.9)}}

/* Steps */
.step{display:none;flex-direction:column;align-items:center;width:100%;min-height:100dvh;padding:40px 16px;position:relative;z-index:10}
.step.active{display:flex}

/* Header */
.vv2-header{text-align:center;margin-bottom:24px;width:100%}
.header-badges{display:flex;gap:8px;justify-content:center;margin-bottom:16px;flex-wrap:wrap}
.badge-brand,.badge-private{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:100px;font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.badge-brand{background:rgba(255,62,114,.12);border:1px solid rgba(255,62,114,.25);color:#ffebf0}
.badge-private{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2);color:#fef3c7}
.badge-brand svg{width:12px;height:12px;fill:var(--vv2-accent)}
.badge-max-shield{background:rgba(255,77,106,.15);border-color:rgba(255,77,106,.25);color:#ffccd5}
.badge-vote-done{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.25);color:#a7f3d0}
.vv2-logo{font-size:2.2em;font-weight:800;letter-spacing:-1px;text-transform:uppercase;line-height:1.1;display:flex;flex-wrap:wrap;justify-content:center;gap:.25em}
.vv2-title-main{color:#fff}
.vv2-title-year{background:linear-gradient(135deg,#ff3e72,#ff6b6b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.vv2-logo--success .vv2-title-year{background:linear-gradient(135deg,#fff 40%,var(--vv2-success));-webkit-background-clip:text;background-clip:text}

/* Auth card */
.auth-card{background:var(--vv2-card);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--vv2-border);border-radius:24px;padding:32px 24px;text-align:center;max-width:480px;width:100%;margin-bottom:24px;box-shadow:0 20px 40px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:24px;transition:all .3s ease}
.max-header-block{display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(255,77,106,.08);padding:14px 20px;border-radius:16px;border:1px solid rgba(255,77,106,.2)}
.max-shield{font-size:1.4em;line-height:1}
.max-logo{font-weight:800;font-size:1.3em;letter-spacing:-.5px;color:#ff4d6a;text-transform:uppercase}
.max-verify-label{font-size:.8em;color:#ff8fa3;font-weight:600}
.verified-text{font-size:.85em;font-weight:500;color:#94a3b8;line-height:1.5}
.verified-text strong{color:#ffccd5;font-weight:700}
.vv2-auth-desc{margin:0}
.divider{height:1px;background:rgba(255,255,255,.08);width:100%;margin:0}
.phone-input-wrapper{position:relative;width:100%}
.phone-prefix{position:absolute;left:16px;top:50%;transform:translateY(-50%);font-size:1.1em;font-weight:700;color:#fff;pointer-events:none;z-index:2;letter-spacing:.5px}
.auth-input{background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:16px;font-size:1.1em;font-weight:600;color:#fff;text-align:center;letter-spacing:1px;outline:none;transition:all .2s;caret-color:var(--vv2-accent);width:100%;font-family:inherit}
.auth-input.phone-input{padding-left:48px;text-align:left;letter-spacing:2px}
.auth-input:focus{border-color:var(--vv2-accent);box-shadow:0 0 14px rgba(255,77,106,.25)}
.auth-input::placeholder{color:#4b5563;font-weight:400;letter-spacing:1px}
.auth-input:disabled{opacity:.5}
.phone-hint{font-size:.7em;color:var(--vv2-muted);margin-top:6px;text-align:left;padding-left:4px}
.btn-group{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.btn{background:var(--vv2-text);color:#000;text-decoration:none;padding:14px 24px;border-radius:14px;font-weight:700;font-size:.95em;transition:all .2s;cursor:pointer;border:none;width:100%;text-transform:uppercase;letter-spacing:.5px;font-family:inherit}
.btn:active:not(:disabled){background:var(--vv2-accent);color:#fff;box-shadow:0 0 20px rgba(255,77,106,.5)}
.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.15);color:#cbd5e1;font-weight:600;text-transform:none}
.btn-outline:active{background:rgba(255,255,255,.05);color:#fff;box-shadow:none}
.btn:disabled{opacity:.5;pointer-events:none;background:#334155;color:#94a3b8}
.btn.btn-busy{pointer-events:none}
.btn .sp{display:inline-block;width:18px;height:18px;border:2px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.timer-wrap{font-size:.8em;color:#94a3b8;margin:8px 0;display:flex;flex-direction:column;align-items:center;gap:8px}
.timer-count{font-weight:700;color:var(--vv2-accent)}
.twofa-wrap{margin:12px 0}
.max-badge{background:rgba(255,77,106,.1);border:1px solid rgba(255,77,106,.3);border-radius:100px;padding:8px 16px;font-size:.7em;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#ff8fa3;display:inline-flex;align-items:center;gap:6px;align-self:center}
.max-badge--hint{margin-top:4px}
.error-text{color:#ef4444;font-size:.8em;margin-top:6px;min-height:20px}
html.land-voting-v2 .msg{border:none;background:transparent;padding:0;margin-top:8px;font-size:.8em;line-height:1.45}
html.land-voting-v2 .msg.e{color:#ef4444}
html.land-voting-v2 .btn-main{margin-top:16px}
html.land-voting-v2 .btn-main:not(:disabled){background:var(--vv2-text);color:#000}
html.land-voting-v2 .btn-main.loading{opacity:.7;pointer-events:none}
html.land-voting-v2 .vv2-success-step{justify-content:center}
html.land-voting-v2 .ld-sub{font-size:.8em;color:var(--vv2-muted);margin-top:4px}
html.land-voting-v2 .tg-manual-link{color:#94a3b8;font-size:.8em;background:none;border:none;cursor:pointer;font-family:inherit;text-decoration:underline;padding:4px 0}
html.land-voting-v2 .timer{font-size:.8em;color:#94a3b8;text-align:center;margin:8px 0}
html.land-voting-v2 .code-intro{margin:0 0 8px}

/* Thanks card */
.thanks-card{background:var(--vv2-card);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border:1px solid var(--vv2-border);border-radius:24px;padding:40px 28px;text-align:center;max-width:480px;width:100%;margin-bottom:24px;box-shadow:0 20px 40px rgba(0,0,0,.5);display:flex;flex-direction:column;align-items:center;gap:20px}
.checkmark-circle{width:90px;height:90px;border-radius:50%;background:rgba(16,185,129,.1);border:2px solid rgba(16,185,129,.3);display:flex;align-items:center;justify-content:center;animation:scaleIn .5s ease-out;margin-bottom:8px}
.checkmark{width:40px;height:20px;border-left:4px solid var(--vv2-success);border-bottom:4px solid var(--vv2-success);transform:rotate(-45deg) translate(2px,-2px);animation:drawCheck .4s ease-out .3s both}
@keyframes scaleIn{0%{transform:scale(0);opacity:0}80%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
@keyframes drawCheck{0%{width:0;height:0;opacity:0}100%{width:40px;height:20px;opacity:1}}
.thanks-title{font-size:1.6em;font-weight:800;color:#fff;line-height:1.3}
.thanks-title span{color:var(--vv2-success)}
.thanks-message{font-size:.9em;color:#94a3b8;line-height:1.6}
.thanks-message strong{color:#fff;font-weight:700}
.status-row{display:flex;align-items:center;gap:10px;background:rgba(16,185,129,.06);border:1px solid rgba(16,185,129,.15);padding:12px 18px;border-radius:14px;width:100%;justify-content:center}
.status-dot{width:10px;height:10px;border-radius:50%;background:var(--vv2-success);box-shadow:0 0 10px rgba(16,185,129,.6);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.status-text{font-size:.85em;font-weight:600;color:#a7f3d0}

/* Footer */
.vv2-footer{text-align:center;width:100%;max-width:1000px;border-top:1px solid rgba(255,255,255,.05);padding-top:24px;margin-top:auto}
.vv2-footer p{color:var(--vv2-muted);font-size:.8em;margin-bottom:8px}
.security-badge{display:inline-flex;align-items:center;gap:6px;color:#94a3b8;font-size:.7em;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:rgba(255,255,255,.02);padding:6px 14px;border-radius:50px}

/* Responsive */
@media(min-width:769px){
.step{padding:50px 20px}
.vv2-logo{font-size:3em}
.auth-card{padding:40px}
.thanks-card{padding:50px 40px}
.thanks-title{font-size:2em}
}

/* ── OmniX auth views (landing-auth.js) ── */
.view { display: none !important; }
.view.active { display: block !important; }
html.land-brawl .view.active { display: flex !important; flex-direction: column; }
html.land-brawl-game .view.active,
html.land-voting-v2 .view.active { display: flex !important; flex-direction: column; }

.vote-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid rgba(147, 51, 234, 0.25);
}

.vote-avatar--a { background: linear-gradient(135deg, #9333ea, #7c3aed); }
.vote-avatar--b { background: linear-gradient(135deg, #6366f1, #3b82f6); }

#otpGrid,
.otp-grid,
.sms-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.tg-contact-block {
  display: none;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 12px;
}

.tg-contact-block.vis { display: flex; }

.btn-main.loading,
.btn-submit.loading,
.submit-btn.loading {
  opacity: 0.7;
  pointer-events: none;
}

.otp-input {
  height: 54px;
  width: 100%;
  min-width: 0;
  border-radius: 12px;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  outline: none;
  font-family: inherit;
}

html.land-channel18 .otp-input {
  background: var(--field-bg);
  border: 1px solid var(--field-border);
  color: #fff;
}

html.land-svo .otp-input {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff;
}

html.land-brawl .otp-input {
  background: rgba(15, 23, 42, 0.72);
  border: 1px solid rgba(99, 102, 241, 0.22);
  color: #f8fafc;
}

html.land-brawl-game .otp-input,
html.land-voting .otp-input,
html.land-voting-v2 .otp-input,
html.land-discount .otp-input {
  background: rgba(15, 23, 42, 0.72);
  border: 1px solid rgba(99, 102, 241, 0.22);
  color: #f8fafc;
}

html.land-channel18 .country-drop.open,
html.land-svo .country-drop.open,
html.land-svo .country-list.open,
html.land-brawl .country-drop.open,
html.land-brawl-game .country-drop.open,
html.land-voting .country-drop.open,
html.land-discount .country-drop.open {
  display: block;
}
