/* admin.css — painel de gestão Tel'Art (v2.0) */

.admin-body { background:#f7f7f8; }
[hidden] { display:none !important; }

/* ===== Login ===== */
.admin-login {
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:2rem 1rem;
}
.admin-login-card {
  width:100%;
  max-width:420px;
  background:#fff;
  border-radius:18px;
  padding:2.5rem 2rem;
  box-shadow:0 25px 60px rgba(15,23,42,0.08);
  border:1px solid rgba(15,23,42,0.05);
}
.admin-login-card h1 { margin:0 0 .25rem; font-size:1.6rem; }
.admin-login-card .muted { color:#7a5c5c; margin-bottom:1.5rem; }
.admin-login-card form { display:flex; flex-direction:column; gap:1rem; }
.admin-login-card .field { display:flex; flex-direction:column; gap:.35rem; margin:0; }
.admin-login-card .field input {
  padding:.75rem 1rem;
  border:1px solid rgba(15,23,42,0.12);
  border-radius:10px;
  font-size:1rem;
}
.admin-login-card .field input:focus {
  outline:none;
  border-color:#f45b5b;
  box-shadow:0 0 0 3px rgba(244,91,91,0.15);
}
.admin-login-card .label-text { font-size:.85rem; color:#475569; font-weight:600; }
.admin-login-card .form-status { min-height:1.2em; font-size:.9rem; margin-top:.25rem; }
.admin-back { text-align:center; margin:1.5rem 0 0; font-size:.85rem; }
.admin-back a { color:#7a5c5c; text-decoration:none; }
.admin-back a:hover { color:#f45b5b; }

/* ===== Dashboard shell ===== */
.admin-dashboard { min-height:100vh; display:flex; flex-direction:column; }

.admin-header {
  background:#fff;
  border-bottom:1px solid rgba(15,23,42,0.08);
  position:sticky; top:0; z-index:10;
}
.admin-header-inner {
  max-width:1280px;
  margin:0 auto;
  padding:1rem 1.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.admin-brand { display:flex; align-items:center; gap:.75rem; }
.admin-brand strong { font-size:1.1rem; color:#f45b5b; }
.admin-brand .muted { font-size:.85rem; color:#94a3b8; }
.admin-user { display:flex; align-items:center; gap:.75rem; font-size:.9rem; }
.admin-user .muted { color:#475569; }

.admin-tabs {
  max-width:1280px;
  margin:0 auto;
  padding:0 1.5rem;
  display:flex;
  gap:.25rem;
  overflow-x:auto;
}
.admin-tab {
  background:transparent;
  border:none;
  padding:.85rem 1.25rem;
  font-size:.95rem;
  color:#64748b;
  cursor:pointer;
  border-bottom:3px solid transparent;
  white-space:nowrap;
  transition:all .15s;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}
.admin-tab:hover:not(:disabled) { color:#f45b5b; }
.admin-tab.active { color:#f45b5b; border-bottom-color:#f45b5b; font-weight:600; }
.admin-tab.disabled, .admin-tab:disabled { opacity:.4; cursor:not-allowed; }
.badge {
  background:#f45b5b;
  color:#fff;
  font-size:.7rem;
  font-weight:700;
  padding:.1rem .5rem;
  border-radius:999px;
  min-width:1.5em;
  text-align:center;
}
.badge:empty { display:none; }

.admin-main {
  flex:1;
  max-width:1280px;
  width:100%;
  margin:0 auto;
  padding:1.5rem;
}

.admin-panel { animation:fadeIn .15s ease-out; }
@keyframes fadeIn { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }

.admin-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  margin-bottom:1rem;
}
.admin-toolbar h2 { margin:0; font-size:1.3rem; }
.admin-toolbar-actions {
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
}
.admin-input, .admin-select {
  padding:.5rem .75rem;
  border:1px solid rgba(15,23,42,0.12);
  border-radius:8px;
  font-size:.9rem;
  background:#fff;
}
.admin-input:focus, .admin-select:focus {
  outline:none;
  border-color:#f45b5b;
  box-shadow:0 0 0 3px rgba(244,91,91,0.15);
}

/* ===== Tabela ===== */
.admin-table-wrap {
  background:#fff;
  border-radius:12px;
  border:1px solid rgba(15,23,42,0.06);
  overflow:auto;
}
.admin-table {
  width:100%;
  border-collapse:collapse;
  font-size:.9rem;
}
.admin-table thead th {
  background:#f8fafc;
  text-align:left;
  padding:.85rem 1rem;
  font-weight:600;
  color:#475569;
  border-bottom:1px solid rgba(15,23,42,0.08);
  position:sticky;
  top:0;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.admin-table tbody td {
  padding:.85rem 1rem;
  border-bottom:1px solid rgba(15,23,42,0.04);
  vertical-align:top;
}
.admin-table tbody tr { transition:background .1s; cursor:pointer; }
.admin-table tbody tr:hover { background:#fef3f3; }
.admin-table tbody tr:last-child td { border-bottom:none; }
.admin-table .col-msg {
  max-width:280px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-table .col-date { white-space:nowrap; color:#64748b; font-size:.85rem; }

.status-pill {
  display:inline-block;
  padding:.2rem .6rem;
  border-radius:999px;
  font-size:.75rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.status-novo        { background:#fee2e2; color:#b91c1c; }
.status-lido        { background:#fef3c7; color:#92400e; }
.status-respondido  { background:#dcfce7; color:#15803d; }
.status-arquivado   { background:#e2e8f0; color:#475569; }

.admin-empty {
  padding:2.5rem 1rem;
  text-align:center;
  color:#94a3b8;
  font-size:.9rem;
}

.admin-pagination {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  margin-top:1rem;
}
.admin-pagination .muted { color:#64748b; font-size:.85rem; }

.btn.btn-sm { padding:.4rem .85rem; font-size:.85rem; }

/* ===== Modal ===== */
.admin-modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:1rem; }
.admin-modal-backdrop { position:absolute; inset:0; background:rgba(15,23,42,0.5); }
.admin-modal-card {
  position:relative;
  background:#fff;
  border-radius:14px;
  padding:1.75rem 1.75rem 1.5rem;
  max-width:600px;
  width:100%;
  max-height:90vh;
  overflow:auto;
  box-shadow:0 30px 80px rgba(15,23,42,0.25);
}
.admin-modal-close {
  position:absolute; top:.75rem; right:1rem;
  background:transparent; border:none;
  font-size:1.6rem; line-height:1;
  cursor:pointer; color:#94a3b8;
}
.admin-modal-close:hover { color:#f45b5b; }
.admin-modal-card h3 { margin:0 0 1rem; }
.admin-modal-card dl { margin:0 0 1.25rem; display:grid; grid-template-columns:auto 1fr; gap:.5rem 1rem; }
.admin-modal-card dt { font-weight:600; color:#475569; font-size:.85rem; }
.admin-modal-card dd { margin:0; color:#1e293b; word-break:break-word; }
.admin-modal-card dd.msg-body { white-space:pre-wrap; grid-column:1 / -1; padding:.75rem; background:#f8fafc; border-radius:8px; margin-top:.25rem; }
.admin-modal-actions {
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
  border-top:1px solid rgba(15,23,42,0.06);
  padding-top:1rem;
}
.admin-modal-actions .field { margin:0; flex:1; min-width:180px; }

@media (max-width:640px) {
  .admin-toolbar { flex-direction:column; align-items:stretch; }
  .admin-toolbar-actions { justify-content:flex-start; }
  .admin-table .col-msg { max-width:160px; }
  .admin-modal-card dl { grid-template-columns:1fr; }
}
