/* ═══════════════════════════════════════════
   COMPONENTS.CSS
   Componentes reutilizáveis em toda a app:
   botões (.btn), campos de formulário (.field)
   e etiquetas de label (.tag).
═══════════════════════════════════════════ */

/* ── Botões ───────────────────────────────── */
.btn {
  padding: 8px 16px;
  border-radius: 7px;
  border: 1px solid var(--border);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  cursor: pointer;
  transition: all .2s;
  background: transparent;
  color: var(--text);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 500;
}
.btn:hover  { border-color: var(--accent); color: var(--accent); }
.btn:active { transform: translateY(1px); }

/* Variante preenchida */
.btn-fill       { background: var(--accent); color: #0c0e14; border-color: var(--accent); font-weight: 600; }
.btn-fill:hover { background: #6366f1; border-color: #6366f1; color: #fff; }

/* Variante fantasma (menos destaque) */
.btn-ghost       { border-color: transparent; color: var(--muted); }
.btn-ghost:hover { background: var(--panel); border-color: var(--border); color: var(--text); }

/* ── Campos de formulário ─────────────────── */
.field             { display: flex; flex-direction: column; gap: 5px; }
.field label       { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 1px; }
.field input,
.field select,
.field textarea    { background: var(--bg); border: 1px solid var(--border); color: var(--text);
                     font-family: 'IBM Plex Mono', monospace; font-size: 12px;
                     padding: 9px 12px; border-radius: 7px; outline: none; transition: border-color .2s; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: var(--accent); }
.field select option  { background: var(--bg); }

/* ── Etiquetas de tipo (human / ai / correct / wrong) ── */
.tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.tag.human   { background: rgba(74,222,128,.15); color: var(--human); }
.tag.ai      { background: rgba(248,113,113,.15); color: var(--ai); }
.tag.correct { background: rgba(129,140,248,.15); color: var(--accent); }
.tag.wrong   { background: rgba(251,191,36,.15); color: var(--warning); }

/* ── Botão flutuante de definições (FAB) ── */
.admin-fab {
  position: fixed;
  bottom: 22px; right: 22px;
  z-index: 400;
  width: 44px; height: 44px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: var(--panel);
  color: var(--muted);
  font-size: 1.2rem;
  cursor: pointer;
  opacity: .5;
  transition: all .2s;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.admin-fab:hover {
  opacity: 1;
  border-color: var(--accent);
  color: var(--accent);
  transform: scale(1.05);
}
