 /* ── demo only ─────────────────────────────── */
   /* *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      background: #0d0f14; font-family: 'Syne', sans-serif;
      min-height: 100vh;
    }
    body::before {
      content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 0;
      background-image:
        linear-gradient(rgba(79,255,176,.022) 1px, transparent 1px),
        linear-gradient(90deg, rgba(79,255,176,.022) 1px, transparent 1px);
      background-size: 40px 40px;
    }
    /* ─────────────────────────────────────────── /

    / ═══════════════════════════════════════════
       AUTH FORM STYLES — scoped under .vs-page
       Paste this block into your main CSS file.
    ═══════════════════════════════════════════ /
    :root {
      --stt_bg:      #0d0f14;
      --surface: #13161e;
      --panel:   #1a1e29;
      --stt_border:  #252b3b;
      --green:   #4fffb0;
      --cyan:    #00c9ff;
      --warn:    #ff6b6b;
      --yellow:  #f7c948;
      --stt_text:    #e8eaf0;
      --stt_muted:   #5a6175;
      --stt_radius:  14px;
    }
*/
    /* centred page layout for auth pages */
    .vs-auth-page {
      margin: 0 auto;
      min-height: 100vh;
      display: flex;
      align-items: center;
      /*justify-content: center;*/
      padding: 32px 16px;
      position: relative;
      z-index: 1;
    }

    /* the form card */
    .vs-auth-card {
      margin: 0 auto;
      background: var(--surface);
      border: 1px solid var(--stt_border);
      border-radius: 22px;
      padding: 38px 36px 32px;
      width: 100%;
      max-width: 460px;
      position: relative;
      box-shadow: 0 32px 80px rgba(0,0,0,.55),
                  0 0 0 1px rgba(255,255,255,.03);
    }

    /* top colour accent line */
    .vs-auth-card::before {
      content: '';
      position: absolute; top: 0; left: 32px; right: 32px; height: 2px;
      border-radius: 0 0 4px 4px;
    }
    .vs-auth-card--register::before {
      background: linear-gradient(90deg, transparent, var(--green), var(--cyan), transparent);
    }
    .vs-auth-card--login::before {
      background: linear-gradient(90deg, transparent, var(--cyan), var(--green), transparent);
    }

    /* ── card header ── */
    .vs-auth-header {
      display: flex; align-items: center; gap: 13px;
      margin-bottom: 28px;
    }
    .vs-auth-icon {
      width: 42px; height: 42px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .vs-auth-icon--register {
      border: 2px solid var(--green);
      box-shadow: 0 0 14px rgba(79,255,176,.22);
    }
    .vs-auth-icon--register svg { fill: var(--green); }
    .vs-auth-icon--login {
      border: 2px solid var(--cyan);
      box-shadow: 0 0 14px rgba(0,201,255,.22);
    }
    .vs-auth-icon--login svg { fill: var(--cyan); }
    .vs-auth-icon svg { width: 20px; height: 20px; }

    .vs-auth-title {
      font-size: 1.4rem; font-weight: 800; letter-spacing: -.025em;
      color: var(--stt_text);
    }
    .vs-auth-sub {
      font-family: 'DM Mono', monospace; font-size: .7rem;
      color: var(--stt_muted); margin-top: 2px;
    }

    /* ── error / info banner ── */
    .vs-auth-error {
      display: none; /* shown via PHP:  style="display:flex" when $error is set */
      align-items: flex-start; gap: 10px;
      background: rgba(255,107,107,.07);
      border: 1px solid rgba(255,107,107,.28);
      border-radius: 10px; padding: 12px 14px;
      margin-bottom: 22px;
      font-size: .82rem; line-height: 1.55;
      color: #ff9a9a;
    }
    .vs-auth-error svg {
      width: 16px; height: 16px; fill: var(--warn); flex-shrink: 0; margin-top: 1px;
    }

    /* ── form layout ── */
    .vs-auth-form { display: flex; flex-direction: column; gap: 16px; }

    /* field group */
    .vs-field { display: flex; flex-direction: column; gap: 6px; }
    .vs-field--row {
      display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
    }

    /* label */
    .vs-label {
      font-family: 'DM Mono', monospace; font-size: .7rem;
      letter-spacing: .06em; text-transform: uppercase;
      color: var(--stt_muted);
      display: flex; align-items: center; justify-content: space-between;
    }
    .vs-label__small {
      font-size: .65rem; color: var(--stt_muted); font-weight: 400;
      text-transform: none; letter-spacing: 0;
    }

    /* inputs */
    .vs-input {
      background: var(--panel); border: 1px solid var(--stt_border);
      border-radius: 10px; color: var(--stt_text);
      font-family: 'DM Mono', monospace; font-size: .85rem;
      padding: 11px 14px; width: 100%; outline: none;
      transition: border-color .22s, box-shadow .22s;
    }
    .vs-input::placeholder { color: var(--stt_muted); }
    .vs-input:hover  { border-color: #3a4260; }

    /* register inputs focus green */
    .vs-auth-card--register .vs-input:focus {
      border-color: var(--green);
      box-shadow: 0 0 0 3px rgba(79,255,176,.08);
    }
    /* login inputs focus cyan */
    .vs-auth-card--login .vs-input:focus {
      border-color: var(--cyan);
      box-shadow: 0 0 0 3px rgba(0,201,255,.08);
    }

    /* pass_word wrapper (for show/hide toggle) */
    .vs-input-wrap {
      position: relative;
    }
    .vs-input-wrap .vs-input { padding-right: 44px; }
    .vs-eye-btn {
      position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
      background: none; border: none; cursor: pointer; padding: 4px;
      color: var(--stt_muted); transition: color .18s; line-height: 0;
    }
    .vs-eye-btn:hover { color: var(--stt_text); }
    .vs-eye-btn svg { width: 16px; height: 16px; fill: currentColor; }

    /* input validation states */
    .vs-input.is-error { border-color: var(--warn); }
    .vs-input.is-ok    { border-color: rgba(79,255,176,.5); }

    /* field-level error message */
    .vs-field-error {
      font-family: 'DM Mono', monospace; font-size: .7rem;
      color: var(--warn); display: none;
    }
    .vs-field-error.show { display: block; }

    /* pass_word strength bar */
    .vs-strength {
      height: 3px; border-radius: 3px; background: var(--stt_border);
      overflow: hidden; margin-top: 2px;
    }
    .vs-strength__bar {
      height: 100%; width: 0%;
      border-radius: 3px;
      transition: width .3s ease, background .3s ease;
    }
    .vs-strength__label {
      font-family: 'DM Mono', monospace; font-size: .66rem; color: var(--stt_muted);
      margin-top: 4px;
    }

    /* ── buttons ── */
    .vs-btn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 8px; }

    .vs-btn {
      display: flex; align-items: center; justify-content: center; gap: 8px;
      padding: 12px 18px; border-radius: var(--stt_radius);
      font-family: 'Syne', sans-serif; font-size: .85rem; font-weight: 700;
      cursor: pointer; border: 1px solid;
      transition: background .18s, box-shadow .18s, transform .14s, border-color .18s;
    }
    .vs-btn svg { width: 16px; height: 16px; fill: currentColor; }
    .vs-btn:active { transform: scale(.97); }

    /* primary — register */
    .vs-btn--register {
      background: rgba(79,255,176,.1); border-color: rgba(79,255,176,.35);
      color: var(--green);
    }
    .vs-btn--register:hover {
      background: rgba(79,255,176,.18);
      box-shadow: 0 6px 22px rgba(79,255,176,.14);
    }

    /* primary — login */
    .vs-btn--login {
      background: rgba(0,201,255,.1); border-color: rgba(0,201,255,.35);
      color: var(--cyan);
    }
    .vs-btn--login:hover {
      background: rgba(0,201,255,.18);
      box-shadow: 0 6px 22px rgba(0,201,255,.14);
    }

    /* cancel / secondary */
    .vs-btn--cancel {
      background: transparent; border-color: var(--stt_border);
      color: var(--stt_muted);
    }
    .vs-btn--cancel:hover { border-color: #3a4260; color: var(--stt_text); background: var(--panel); }

    /* ── bottom links ── */
    .vs-auth-links {
      margin-top: 22px; padding-top: 18px;
      border-top: 1px solid var(--stt_border);
      display: flex; flex-direction: column; gap: 9px;
      align-items: center;
      font-family: 'DM Mono', monospace; font-size: .76rem; color: var(--stt_muted);
    }
    .vs-auth-links a {
      color: var(--cyan); text-decoration: none;
      transition: color .18s;
    }
    .vs-auth-links a:hover { color: var(--green); }
    .vs-auth-links a.green { color: var(--green); }
    .vs-auth-links a.green:hover { color: var(--cyan); }

    /* divider between link lines */
    .vs-auth-links__row {
      display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: center;
    }
    .vs-auth-links__sep { color: var(--stt_border); }

    /* ── responsive ── */
    @media (max-width: 480px) {
      .vs-auth-card  { padding: 28px 20px 24px; }
      .vs-auth-card::before { left: 20px; right: 20px; }
      .vs-field--row { grid-template-columns: 1fr; }
      .vs-btn-row    { grid-template-columns: 1fr; }
    }




    /**===========Banner message on top of LOGIN PAGE============**/
    /* logout success banner */
.vs-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 12px;
  margin-bottom: 18px;
  font-family: 'DM Mono', monospace;
  font-size: .78rem;
  line-height: 1.5;
  animation: vsBannerIn .3s ease;
}
@keyframes vsBannerIn {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.vs-banner svg { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; }

/* green — success (logged out, registered) */
.vs-banner--success {
  background: rgba(79,255,176,.07);
  border: 1px solid rgba(79,255,176,.22);
  color: var(--green);
}

/* yellow — warning / info */
.vs-banner--info {
  background: rgba(247,201,72,.07);
  border: 1px solid rgba(247,201,72,.22);
  color: var(--yellow);
}

/* red — error */
.vs-banner--error {
  background: rgba(255,107,107,.07);
  border: 1px solid rgba(255,107,107,.22);
  color: var(--warn);
}