:root{
  --vtx-primary:#1D4ED8;
  --vtx-accent:#F9D515;
  --vtx-bg:#FFFFFF;
  --vtx-text:#0B0F19;
  --vtx-ui:#F3F4F6;
  --vtx-win:#16A34A;
  --vtx-lose:#DC2626;

  --vtx-radius:16px;
  --vtx-shadow:0 10px 22px rgba(11,15,25,0.08);
  --vtx-shadow-soft:0 6px 14px rgba(11,15,25,0.06);
}

html, body { height: 100%; }
.vtx-body{
  background: var(--vtx-bg);
  color: var(--vtx-text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

.vtx-topbar{
  background: var(--vtx-primary);
  box-shadow: var(--vtx-shadow-soft);
  height: 56px;
}

.vtx-brand{
  letter-spacing: .4px;
}

.vtx-icon-btn{
  width: 40px;
  height: 40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 12px;
}
.vtx-icon-btn:active{ opacity:.85; }

.vtx-main{
  padding-top: 70px; /* topbar */
  padding-bottom: 22px;
  max-width: 980px;
}

.vtx-card{
  background: var(--vtx-ui);
  border: 0;
  border-radius: var(--vtx-radius);
  box-shadow: var(--vtx-shadow);
}

.vtx-mini-card{
  background: var(--vtx-ui);
  border-radius: var(--vtx-radius);
  padding: 14px;
}

.vtx-avatar{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow: var(--vtx-shadow-soft);
}

.vtx-pill{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  border-radius: 999px;
  background: #fff;
  padding: 6px 10px;
  box-shadow: var(--vtx-shadow-soft);
}

.vtx-progress{
  height: 8px;
  background: rgba(29,78,216,0.10);
  border-radius: 999px;
  overflow:hidden;
}
.vtx-progress > div{
  height: 100%;
  background: var(--vtx-accent);
  width: 0%;
}

.vtx-round-actions{
  display:flex;
  gap: 12px;
  justify-content: space-between;
}
.vtx-action{
  flex:1;
  background:#fff;
  border-radius: 18px;
  padding: 12px 10px;
  text-align:center;
  box-shadow: var(--vtx-shadow-soft);
  border: 1px solid rgba(11,15,25,0.06);
}
.vtx-action i{ font-size: 20px; }
.vtx-action .lbl{ display:block; font-size: 12px; margin-top: 6px; color: rgba(11,15,25,0.72); }

.vtx-btn-primary{
  background: var(--vtx-primary);
  color:#fff;
  border: 0;
  border-radius: 14px;
}
.vtx-btn-primary:hover{ background: #1842b8; color:#fff; }

.vtx-btn-accent{
  background: var(--vtx-accent);
  color: var(--vtx-text);
  border: 0;
  border-radius: 14px;
}
.vtx-btn-accent:hover{ filter: brightness(0.97); color: var(--vtx-text); }

.vtx-btn-outline{
  background: #fff;
  color: var(--vtx-text);
  border: 1px solid rgba(11,15,25,0.14);
  border-radius: 14px;
}
.vtx-btn-outline:hover{ background: rgba(11,15,25,0.03); }

.vtx-offcanvas{
  border-top-right-radius: var(--vtx-radius);
  border-bottom-right-radius: var(--vtx-radius);
}
.vtx-list .list-group-item{
  border: 0;
  border-radius: 14px;
  margin-bottom: 8px;
  background: var(--vtx-ui);
}

.vtx-section-title{
  display:flex;
  align-items:center;
  justify-content: space-between;
  margin: 18px 4px 10px;
}
.vtx-section-title h6{
  margin:0;
  font-weight: 700;
  letter-spacing: .2px;
}

.vtx-carousel{
  display:flex;
  gap: 12px;
  overflow-x: auto;
  padding: 6px 4px 10px;
  scroll-snap-type: x mandatory;
}
.vtx-carousel::-webkit-scrollbar{ height: 6px; }
.vtx-carousel::-webkit-scrollbar-thumb{ background: rgba(11,15,25,0.15); border-radius: 999px; }

.vtx-game-card{
  min-width: 140px;
  max-width: 140px;
  scroll-snap-align: start;
  border-radius: 18px;
  overflow:hidden;
  background: #fff;
  border: 1px solid rgba(11,15,25,0.06);
  box-shadow: var(--vtx-shadow-soft);
}
.vtx-game-poster{
  height: 96px;
  background:
    linear-gradient(135deg, rgba(29,78,216,0.95), rgba(249,213,21,0.92));
  display:flex;
  align-items:flex-end;
  padding: 10px;
}
.vtx-game-poster .tag{
  background: rgba(255,255,255,0.92);
  border-radius: 999px;
  font-size: 11px;
  padding: 4px 8px;
}
.vtx-game-info{
  padding: 10px;
}
.vtx-game-info .name{
  font-weight: 700;
  margin-bottom: 2px;
}
.vtx-game-info .meta{
  font-size: 12px;
  color: rgba(11,15,25,0.70);
}

.vtx-linkbox{
  background:#fff;
  border: 1px dashed rgba(11,15,25,0.18);
  border-radius: 14px;
  padding: 10px;
  word-break: break-all;
}

.vtx-modal .modal-content{
  border-radius: var(--vtx-radius);
}

.vtx-muted{
  color: rgba(11,15,25,0.70);
}