/* ── Reset & base ───────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --brand:       #1a56db;
  --brand-dark:  #1341b3;
  --surface:     #ffffff;
  --bg:          #f8fafc;
  --border:      #e2e8f0;
  --text:        #1e293b;
  --text-muted:  #64748b;
  --danger:      #dc2626;
  --success:     #16a34a;
  --radius:      8px;
  --shadow:      0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);
}

body { font-family: system-ui, -apple-system, sans-serif; background: var(--bg);
       color: var(--text); line-height: 1.6; }

a { color: var(--brand); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ── Nav ────────────────────────────────────────────────────── */
.vm-nav {
  display: flex; align-items: center; gap: 1.5rem;
  padding: .75rem 1.5rem; background: var(--surface);
  border-bottom: 1px solid var(--border); flex-wrap: wrap;
}
.vm-nav__brand { font-weight: 700; font-size: 1.1rem; color: var(--brand); }
.vm-nav__links { display: flex; gap: 1rem; flex: 1; flex-wrap: wrap; }
.vm-nav__auth  { display: flex; gap: .75rem; align-items: center; }
.vm-nav__user  { font-size: .9rem; color: var(--text-muted); }
.vm-nav button { cursor: pointer; border: 1px solid var(--border);
                  background: none; padding: .3rem .75rem; border-radius: var(--radius);
                  font-size: .875rem; }

/* ── Cards / containers ─────────────────────────────────────── */
.card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow);
}

.container { max-width: 900px; margin: 2rem auto; padding: 0 1rem; }

/* ── Forms ──────────────────────────────────────────────────── */
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; font-size: .875rem; font-weight: 500;
                     margin-bottom: .35rem; }
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%; padding: .55rem .75rem;
  border: 1px solid var(--border); border-radius: var(--radius);
  font-size: .95rem; background: var(--surface);
  transition: border-color .15s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none; border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(26,86,219,.15);
}

/* ── Buttons ────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .55rem 1.2rem; border-radius: var(--radius);
  font-size: .9rem; font-weight: 500; cursor: pointer;
  border: 1px solid transparent; transition: .15s;
}
.btn-primary   { background: var(--brand);   color: #fff; border-color: var(--brand); }
.btn-primary:hover { background: var(--brand-dark); }
.btn-secondary { background: var(--surface); color: var(--text); border-color: var(--border); }
.btn-secondary:hover { background: var(--bg); }
.btn-danger    { background: var(--danger);  color: #fff; border-color: var(--danger); }
.btn-success   { background: var(--success); color: #fff; border-color: var(--success); }
.btn:disabled  { opacity: .5; cursor: not-allowed; }

/* ── Alerts ─────────────────────────────────────────────────── */
.alert { padding: .75rem 1rem; border-radius: var(--radius);
          font-size: .9rem; margin-bottom: 1rem; }
.alert-error   { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.alert-success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.alert-info    { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }

/* ── Stars ──────────────────────────────────────────────────── */
.stars { display: flex; gap: .25rem; }
.stars span { cursor: pointer; font-size: 1.4rem; color: #d1d5db; transition: .1s; }
.stars span.active, .stars span:hover { color: #f59e0b; }

/* ── Affiliate links ────────────────────────────────────────── */
.affiliate-links { margin: 1.5rem 0; }
.affiliate-links__label { font-size: .8rem; text-transform: uppercase;
                           letter-spacing: .05em; color: var(--text-muted); margin-bottom: .6rem; }
.affiliate-links__grid { display: flex; flex-wrap: wrap; gap: .6rem; }
.affiliate-btn {
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .45rem 1rem; border-radius: 999px;
  font-size: .875rem; font-weight: 500;
  background: var(--surface); border: 1px solid var(--border);
  color: var(--text); transition: .15s;
}
.affiliate-btn:hover { border-color: var(--brand); color: var(--brand);
                        text-decoration: none; transform: translateY(-1px); }
.affiliate-links__disclaimer {
  font-size: .75rem; color: var(--text-muted); margin-top: .6rem;
}

/* ── Comment section ────────────────────────────────────────── */
.comment-card { padding: 1rem; border-bottom: 1px solid var(--border); }
.comment-card:last-child { border-bottom: none; }
.comment-card__meta { display: flex; gap: .75rem; align-items: center;
                        font-size: .8rem; color: var(--text-muted); margin-bottom: .4rem; }
.comment-card__text { font-size: .95rem; }

/* ── Auth pages ─────────────────────────────────────────────── */
.auth-wrap { min-height: 100vh; display: flex; align-items: center;
              justify-content: center; padding: 1rem; }
.auth-box  { width: 100%; max-width: 420px; }
.auth-box h1 { font-size: 1.5rem; margin-bottom: .25rem; }
.auth-box p  { color: var(--text-muted); margin-bottom: 1.5rem; font-size: .9rem; }

@media (max-width: 640px) {
  .vm-nav { padding: .6rem 1rem; }
  .container { margin: 1rem auto; }
}
