/* =====================================================================
   Sistema de Mentoria — Tema NEOBRUTALISTA (compartilhado)
   Fundo branco, bordas pretas, cantos retos, sombras duras.
   ===================================================================== */
:root{
  --card:#ffffff; --ring:#ff3333; --input:#000000; --muted:#f0f0f0;
  --accent:#0066ff; --border:#000000; --radius:0px;
  --popover:#ffffff; --primary:#ff3333; --sidebar:#f0f0f0;
  --secondary:#ffff00; --background:#ffffff; --foreground:#000000;
  --destructive:#000000; --shadow-color:#000000;
  --sidebar-ring:#ff3333; --sidebar-accent:#0066ff; --sidebar-border:#000000;
  --card-foreground:#000000; --sidebar-primary:#ff3333;
  --muted-foreground:#333333; --accent-foreground:#ffffff;
  --primary-foreground:#ffffff; --sidebar-foreground:#000000;
  --secondary-foreground:#000000; --destructive-foreground:#ffffff;
  --sidebar-accent-foreground:#ffffff; --sidebar-primary-foreground:#ffffff;
  --chart-1:#ff3333; --chart-2:#ffff00; --chart-3:#0066ff; --chart-4:#00cc00; --chart-5:#cc00cc;
  --font-sans:"DM Sans", system-ui, -apple-system, sans-serif;
  --font-mono:"Space Mono", ui-monospace, monospace;
  /* helpers neobrutalistas */
  --nb-bw:2px;
  --nb-shadow:4px 4px 0 0 var(--shadow-color);
  --nb-shadow-sm:2px 2px 0 0 var(--shadow-color);
  --nb-shadow-lg:6px 6px 0 0 var(--shadow-color);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ background:var(--background); color:var(--foreground); font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased; line-height:1.5; }
a{ color:var(--accent); }
h1,h2,h3,h4{ font-family:var(--font-sans); font-weight:800; letter-spacing:-.01em; margin:0; }

/* ---------- Botões (funcionam com .btn ou direto .btn-primary etc.) ---------- */
.btn, .btn-primary, .btn-accent, .btn-secondary, .btn-ghost{
  font-family:var(--font-sans); font-weight:700; font-size:14px; cursor:pointer; display:inline-block;
  border:var(--nb-bw) solid var(--border); border-radius:0; padding:11px 16px; line-height:1.2;
  background:var(--card); color:var(--foreground); box-shadow:var(--nb-shadow);
  transition:transform .08s ease, box-shadow .08s ease; }
.btn:hover:not(:disabled), .btn-primary:hover:not(:disabled), .btn-accent:hover:not(:disabled),
.btn-secondary:hover:not(:disabled), .btn-ghost:hover:not(:disabled){ transform:translate(-1px,-1px); box-shadow:var(--nb-shadow-lg); }
.btn:active:not(:disabled), .btn-primary:active:not(:disabled), .btn-accent:active:not(:disabled),
.btn-secondary:active:not(:disabled), .btn-ghost:active:not(:disabled){ transform:translate(4px,4px); box-shadow:0 0 0 0 var(--shadow-color); }
.btn:disabled, .btn-primary:disabled, .btn-accent:disabled, .btn-secondary:disabled, .btn-ghost:disabled{
  opacity:.5; cursor:not-allowed; box-shadow:var(--nb-shadow); transform:none; }
.btn-primary{ background:var(--primary); color:var(--primary-foreground); }
.btn-accent{ background:var(--accent); color:var(--accent-foreground); }
.btn-secondary{ background:var(--secondary); color:var(--secondary-foreground); }
.btn-ghost{ background:var(--card); color:var(--foreground); }
.btn-sm{ padding:7px 11px; font-size:13px; box-shadow:var(--nb-shadow-sm); }

/* ---------- Inputs ---------- */
input,textarea,select{ font-family:var(--font-sans); font-size:15px; width:100%;
  background:var(--card); color:var(--foreground); border:var(--nb-bw) solid var(--border);
  border-radius:0; padding:11px 12px; outline:none; }
input:focus,textarea:focus,select:focus{ box-shadow:3px 3px 0 0 var(--ring); }
textarea{ resize:vertical; line-height:1.5; }
label{ display:block; font-family:var(--font-mono); font-size:12px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; margin-bottom:7px; color:var(--foreground); }

/* ---------- Card ---------- */
.card{ background:var(--card); color:var(--card-foreground); border:var(--nb-bw) solid var(--border);
  border-radius:0; box-shadow:var(--nb-shadow); padding:22px; }

/* ---------- Badge / Tag ---------- */
.badge,.tag{ display:inline-block; font-family:var(--font-mono); font-size:11px; font-weight:700;
  text-transform:uppercase; letter-spacing:.03em; border:var(--nb-bw) solid var(--border);
  border-radius:0; padding:3px 8px; background:var(--card); color:var(--foreground); white-space:nowrap; }
.badge.ok,.tag.ok{ background:var(--chart-4); color:#000; }
.badge.wait,.tag.wait{ background:var(--secondary); color:#000; }
.badge.adj,.tag.adj{ background:var(--primary); color:#fff; }
.badge.neutral,.tag.neutral{ background:var(--muted); color:var(--foreground); }

/* ---------- Arquivos ---------- */
.file-img{ max-width:100%; max-height:360px; border:var(--nb-bw) solid var(--border); display:block; margin-bottom:12px; }
.file-audio{ width:100%; margin-bottom:12px; }
.file-link{ display:inline-flex; align-items:center; gap:8px; background:var(--secondary); color:#000;
  border:var(--nb-bw) solid var(--border); box-shadow:var(--nb-shadow-sm); padding:10px 13px; margin-bottom:12px;
  text-decoration:none; font-weight:700; font-size:14px; }
.file-link:hover{ transform:translate(-1px,-1px); box-shadow:var(--nb-shadow); }
.doc-view{ display:inline-flex; align-items:center; gap:6px; background:var(--accent); color:var(--accent-foreground);
  border:var(--nb-bw) solid var(--border); box-shadow:var(--nb-shadow-sm); padding:9px 12px; margin:0 0 12px 8px;
  font-family:var(--font-sans); font-weight:700; font-size:13px; cursor:pointer; vertical-align:top; }
.doc-view:hover{ transform:translate(-1px,-1px); box-shadow:var(--nb-shadow); }
.doc-viewer:empty{ display:none; }
.doc-viewer{ margin-bottom:12px; }
.doc-frame{ width:100%; height:520px; border:var(--nb-bw) solid var(--border); background:#fff; display:block; }

/* ---------- Dropzone ---------- */
.dropzone{ border:var(--nb-bw) dashed var(--border); border-radius:0; padding:28px 18px; text-align:center;
  cursor:pointer; background:var(--card); margin-bottom:14px; }
.dropzone:hover,.dropzone.drag{ background:var(--muted); }
.dropzone .icon{ font-size:34px; margin-bottom:8px; }
.dropzone .big{ font-size:15px; font-weight:800; }
.dropzone .small{ font-family:var(--font-mono); font-size:11px; color:var(--muted-foreground); margin-top:6px; }

/* ---------- Lista de arquivos selecionados ---------- */
.file-list{ list-style:none; margin:0 0 18px; padding:0; }
.file-list li{ display:flex; align-items:center; gap:10px; background:var(--card); border:var(--nb-bw) solid var(--border);
  padding:9px 12px; margin-bottom:8px; font-size:14px; }
.file-list .fname{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.file-list .fsize{ font-family:var(--font-mono); color:var(--muted-foreground); font-size:12px; }
.file-list .fremove{ background:none; border:none; color:var(--foreground); cursor:pointer; font-size:20px; line-height:1; padding:0 4px; box-shadow:none; }
.file-list .fremove:hover{ color:var(--primary); transform:none; box-shadow:none; }

/* ---------- Mensagens / estados ---------- */
.msg{ margin-top:16px; padding:13px 15px; border:var(--nb-bw) solid var(--border); font-size:15px; font-weight:600; display:none; }
.msg.show{ display:block; }
.msg.success{ background:var(--chart-4); color:#000; }
.msg.error{ background:var(--primary); color:#fff; }
.empty{ color:var(--muted-foreground); text-align:center; padding:36px 16px; font-weight:600; }
.loading{ color:var(--muted-foreground); text-align:center; padding:36px; font-family:var(--font-mono); }

/* ---------- Toast ---------- */
#toast{ position:fixed; bottom:22px; left:50%; transform:translateX(-50%) translateY(10px); background:var(--foreground);
  color:var(--background); border:var(--nb-bw) solid var(--border); box-shadow:var(--nb-shadow); padding:12px 18px;
  font-weight:700; z-index:200; opacity:0; pointer-events:none; transition:opacity .15s, transform .15s; max-width:90vw; }
#toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
#toast.err{ background:var(--primary); color:#fff; }
