/* GrieferVote Theme CSS v2 */
:root{
  --orange:#f97316;--orange-bright:#fb923c;--orange-dim:#c2410c;
  --orange-glow:rgba(249,115,22,.22);--orange-glow2:rgba(249,115,22,.08);
  --bg:#0e0e0e;--bg2:#141414;--bg3:#1a1a1a;--bg4:#222;
  --border:rgba(249,115,22,.15);--border2:rgba(255,255,255,.06);
  --text:#f0f0f0;--text2:#a0a0a0;--text3:#666;
  --gold:#fbbf24;--silver:#94a3b8;--bronze:#cd7f32;
  --red:#ef4444;--green:#22c55e;
  --font-head:'Exo 2',sans-serif;--font-body:'Rajdhani',sans-serif;
  --r:6px;--r2:10px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body.gv-body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;min-height:100vh;overflow-x:hidden}
body.gv-body::before{content:'';position:fixed;inset:0;z-index:0;
  background-image:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(249,115,22,.07) 0%,transparent 70%),
  linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
  background-size:100% 100%,40px 40px,40px 40px;pointer-events:none}

/* ── NAV ─── */
.gv-nav{position:sticky;top:0;z-index:100;background:rgba(14,14,14,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-inner{max-width:1100px;margin:0 auto;padding:0 2rem;height:60px;display:flex;align-items:center;justify-content:space-between}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-logo-icon{width:34px;height:34px;background:var(--orange);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:900;color:#0e0e0e;font-family:var(--font-head);letter-spacing:-1px;box-shadow:0 0 16px var(--orange-glow)}
.nav-logo-text{font-family:var(--font-head);font-size:19px;font-weight:700;color:var(--text);letter-spacing:.5px}
ul.nav-links{display:flex;align-items:center;gap:2rem;list-style:none}
ul.nav-links a{color:var(--text2);text-decoration:none;font-size:15px;font-weight:500;transition:color .2s}
ul.nav-links a:hover{color:var(--orange)}
.nav-status{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text2)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--text3);box-shadow:0 0 0 0;flex-shrink:0;transition:background .3s,box-shadow .3s}
.dot.online{background:var(--green);box-shadow:0 0 6px var(--green);animation:blink 2s ease-in-out infinite}
.dot.offline{background:var(--red)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}

/* ── CONTAINER ─── */
.container{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding-left:2rem;padding-right:2rem}

/* ── HERO ─── */
.hero{position:relative;z-index:1;text-align:center;padding:5rem 2rem 3.5rem}
.hero-badge{display:inline-flex;align-items:center;gap:7px;background:var(--orange-glow2);border:1px solid var(--border);border-radius:99px;padding:5px 14px;font-size:12px;font-weight:600;color:var(--orange-bright);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:1.5rem}
h1.hero-h1,h1{font-family:var(--font-head);font-size:clamp(2rem,6vw,3.8rem);font-weight:900;line-height:1.1;color:var(--text);margin-bottom:1rem}
.hero-sub{font-size:17px;color:var(--text2);max-width:520px;margin:0 auto 2.5rem;line-height:1.6;font-weight:400}

/* ── STATS STRIP ─── */
.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border2);border-top:1px solid var(--border2);border-bottom:1px solid var(--border2);margin-bottom:3rem}
.stat-item{background:var(--bg2);padding:1.25rem 1rem;text-align:center}
.stat-num{font-family:var(--font-head);font-size:1.7rem;font-weight:800;color:var(--orange);display:block;line-height:1;margin-bottom:4px}
.stat-lbl{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;font-weight:600}

/* ── MAIN GRID ─── */
.main{display:grid;grid-template-columns:1fr 380px;gap:2rem;align-items:start;padding-bottom:5rem}
.col-left{display:flex;flex-direction:column;gap:1.5rem}
.col-right{display:flex;flex-direction:column;gap:1.5rem}

/* ── PANEL ─── */
.panel{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);overflow:hidden;position:relative}
.panel-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border2);display:flex;align-items:center;gap:10px}
.panel-header-icon{width:30px;height:30px;background:var(--orange-glow2);border:1px solid var(--border);border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.panel-title{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:1px;flex:1}
.panel-body{padding:1.5rem}

/* ── DRAG HANDLE ─── */
.drag-handle{font-size:18px;color:var(--text3);cursor:grab;padding:0 2px;user-select:none;transition:color .2s;margin-left:auto}
.drag-handle:hover{color:var(--orange)}
.gv-module.sortable-ghost{opacity:.4;border:2px dashed var(--orange)!important}
.gv-module.sortable-chosen{box-shadow:0 0 24px var(--orange-glow)}

/* ── SERVER CARD ─── */
.server-card{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:12px}
.server-thumb{width:44px;height:44px;background:var(--bg4);border-radius:var(--r);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.server-info{flex:1;min-width:0}
.server-name{font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--text);display:block;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.server-ip{font-size:13px;color:var(--text3);font-family:monospace}
.online-badge{display:flex;align-items:center;gap:5px;border-radius:99px;padding:3px 10px;font-size:11px;font-weight:600;letter-spacing:.5px;white-space:nowrap;border:1px solid rgba(34,197,94,.2);background:rgba(34,197,94,.08);color:var(--green)}
.online-badge.offline{border-color:rgba(239,68,68,.2);background:rgba(239,68,68,.08);color:var(--red)}

/* ── FORM ─── */
.field{margin-bottom:1.25rem}
.field label{display:block;font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px}
.field input{width:100%;background:var(--bg);border:1px solid rgba(255,255,255,.08);border-radius:var(--r);color:var(--text);font-family:var(--font-body);font-size:16px;font-weight:500;padding:11px 14px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-glow)}
.field input::placeholder{color:var(--text3);font-weight:400}

/* ── STREAK DISPLAY ─── */
.streak-display{display:flex;align-items:center;gap:8px;background:rgba(249,115,22,.07);border:1px solid var(--border);border-radius:var(--r);padding:.75rem 1rem;margin-bottom:1rem;font-size:14px;color:var(--text2)}
.streak-fire{font-size:20px}
.streak-num{font-family:var(--font-head);font-size:22px;font-weight:800;color:var(--orange);line-height:1}
.streak-label{font-size:13px;color:var(--text2)}

/* ── VOTE BUTTON ─── */
.btn-vote{width:100%;position:relative;background:var(--orange);color:#0e0e0e;border:none;border-radius:var(--r);font-family:var(--font-head);font-size:15px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;padding:14px;cursor:pointer;overflow:hidden;transition:background .2s,box-shadow .2s,transform .1s}
.btn-vote::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 50%);pointer-events:none}
.btn-vote:hover:not(:disabled){background:var(--orange-bright);box-shadow:0 4px 24px var(--orange-glow);transform:translateY(-1px)}
.btn-vote:active:not(:disabled){transform:translateY(0)}
.btn-vote:disabled{background:var(--bg4);color:var(--text3);cursor:not-allowed;box-shadow:none}
.btn-inner{display:flex;align-items:center;justify-content:center;gap:9px}

/* ── COOLDOWN ─── */
.cooldown-info{display:none;margin-top:1rem;padding:.85rem 1rem;background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.2);border-radius:var(--r);font-size:13px;color:#fca5a5;align-items:center;gap:8px}
.cooldown-info.show{display:flex}

/* ── LEADERBOARD ─── */
.lb-entry{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border2);transition:background .15s}
.lb-entry:last-child{border-bottom:none}
.lb-rank{font-family:var(--font-head);font-size:12px;font-weight:800;width:26px;text-align:center;flex-shrink:0}
.lb-rank.r1{color:var(--gold)}.lb-rank.r2{color:var(--silver)}.lb-rank.r3{color:var(--bronze)}.lb-rank.rn{color:var(--text3)}
.lb-avatar{width:34px;height:34px;border-radius:4px;background:var(--bg4);border:1px solid var(--border2);overflow:hidden;flex-shrink:0}
.lb-avatar img{width:100%;height:100%;image-rendering:pixelated;display:block}
.lb-name{flex:1;font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-streak{font-size:11px;color:var(--orange);margin-right:6px}
.lb-count{font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--orange);white-space:nowrap}
.lb-empty{padding:2rem 0;text-align:center;color:var(--text3);font-size:14px}

/* ── HISTORY ─── */
.history-entry{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border2);font-size:14px}
.history-entry:last-child{border-bottom:none}
.history-dot{width:6px;height:6px;background:var(--orange);border-radius:50%;flex-shrink:0}
.history-player{font-weight:600;color:var(--text);flex:1}
.history-time{font-size:12px;color:var(--text3)}

/* ── REWARDS ─── */
.reward-intro{font-size:14px;color:var(--text2);margin-bottom:1rem;line-height:1.6}
.rewards-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:1rem}
.reward{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);padding:1rem;transition:border-color .2s}
.reward:hover{border-color:var(--border)}
.reward-ico{font-size:22px;margin-bottom:7px;display:block}
.reward-name{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}
.reward-desc{font-size:12px;color:var(--text3);line-height:1.4}
.cmd-hint{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);padding:.85rem 1rem;font-size:13px;color:var(--text2);line-height:1.7}
.cmd-hint code{background:rgba(249,115,22,.12);color:var(--orange);padding:1px 5px;border-radius:3px;font-family:monospace}

/* ── FOOTER ─── */
.gv-footer{position:relative;z-index:1;background:var(--bg2);border-top:1px solid var(--border2)}
.footer-inner{padding:2rem 2rem 1.5rem}
.footer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}
.footer-logo{font-family:var(--font-head);font-size:18px;font-weight:800;color:var(--orange)}
.footer-discord{display:flex;align-items:center;color:var(--text2);text-decoration:none;font-size:14px;transition:color .2s}
.footer-discord:hover{color:#7289da}
.footer-bottom{font-size:12px;color:var(--text3);display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.footer-sep{color:var(--border)}

/* ── TOAST ─── */
#gv-toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(12px);background:var(--bg3);border-radius:var(--r);padding:.75rem 1.25rem;font-size:14px;font-weight:600;z-index:9999;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;white-space:nowrap;border:1px solid var(--border)}
#gv-toast.success{border-color:rgba(34,197,94,.4);color:#86efac;box-shadow:0 0 24px rgba(34,197,94,.1)}
#gv-toast.error{border-color:rgba(239,68,68,.4);color:#fca5a5;box-shadow:0 0 24px rgba(239,68,68,.1)}
#gv-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── SPINNER ─── */
.spin{width:14px;height:14px;border:2px solid rgba(0,0,0,.25);border-top-color:#0e0e0e;border-radius:50%;animation:sp .55s linear infinite;display:inline-block;flex-shrink:0}
@keyframes sp{to{transform:rotate(360deg)}}

/* ── WIDGETS ─── */
.gv-widget{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);padding:1.25rem;margin-bottom:1rem}
.gv-widget-title{font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:1px;margin-bottom:1rem}

/* ── RESPONSIVE ─── */
@media(max-width:820px){
  .main{grid-template-columns:1fr}
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  ul.nav-links{display:none}
}
@media(max-width:480px){
  .stats-strip{grid-template-columns:repeat(2,1fr)}
  h1{font-size:2rem}
  .rewards-grid{grid-template-columns:1fr}
}
