/* =========================================================
   Admin dashboard styles — extends style.css tokens
   ========================================================= */

.admin-body{ min-height:100vh; }
.admin-tag{
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--brass);
  border: 1px solid var(--brass);
  border-radius: 999px;
  padding: 2px 9px;
  margin-left: 8px;
  vertical-align: middle;
  text-transform: uppercase;
}
.admin-main{ padding: 56px 24px 100px; }

/* ---------- login ---------- */
.login-panel{
  display:flex;
  justify-content:center;
  padding-top: 60px;
}
.login-card{
  background: var(--paper-light);
  border: 1px solid var(--paper-line);
  border-radius: var(--radius);
  padding: 40px 36px;
  width: 100%;
  max-width: 400px;
  box-shadow: var(--shadow-soft);
}
.login-card .section-title{ font-size: 1.5rem; max-width:none; }
.login-card form{ margin-top: 24px; display:flex; flex-direction:column; gap: 18px; }
.login-card .btn{ margin-top: 6px; }
#loginError{ min-height: 0; }

/* ---------- dashboard header ---------- */
.dash-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap: 20px;
  margin-bottom: 28px;
}
.dash-header .section-title{ font-size: 1.9rem; max-width:none; margin-bottom:0; }
.dash-stats{
  display:flex;
  gap: 22px;
}
.dash-stats span{
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--ink-muted);
}
.dash-stats strong{ color: var(--ink-900); }

/* ---------- controls ---------- */
.dash-controls{
  display:flex;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap:wrap;
}
.dash-controls input[type="search"]{
  flex: 1;
  min-width: 220px;
  padding: 10px 14px;
  border: 1.5px solid var(--paper-line);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  background: #fff;
}
.dash-controls select{
  padding: 10px 14px;
  border: 1.5px solid var(--paper-line);
  border-radius: 8px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  background: #fff;
}
.dash-controls input:focus, .dash-controls select:focus{
  outline:none;
  border-color: var(--ink-700);
  box-shadow: 0 0 0 3px rgba(31,110,78,0.15);
}

/* ---------- table ---------- */
.table-wrap{
  background: var(--paper-light);
  border: 1px solid var(--paper-line);
  border-radius: var(--radius);
  overflow-x: auto;
}
.apps-table{
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  min-width: 920px;
}
.apps-table th{
  text-align: left;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--ink-muted);
  padding: 14px 16px;
  border-bottom: 1px solid var(--paper-line);
  white-space: nowrap;
}
.apps-table td{
  padding: 14px 16px;
  border-bottom: 1px solid var(--paper-line);
  vertical-align: top;
}
.apps-table tbody tr{ cursor: pointer; transition: background .15s ease; }
.apps-table tbody tr:hover{ background: rgba(31,110,78,0.05); }
.apps-table tbody tr:last-child td{ border-bottom: none; }

.cell-name{ font-weight: 600; }
.cell-muted{ color: var(--ink-muted); font-size: 0.85rem; }
.cell-sub{ display:block; }

.status-select{
  font-family: var(--font-mono);
  font-size: 0.78rem;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1.5px solid transparent;
  cursor:pointer;
  text-transform: capitalize;
}
.status-select:focus{ outline: 2px solid var(--brass-light); }
.status-pending{ background: #EFE2C0; color: #7A5A12; }
.status-reviewing{ background: #DCE7F5; color: #2A4E7C; }
.status-accepted{ background: #D9EEDF; color: var(--ink-700-dark); }
.status-rejected{ background: #F3D9D7; color: #8B3B34; }

.link-pill{
  display:inline-block;
  font-size: 0.8rem;
  color: var(--ink-700);
  text-decoration: none;
  border-bottom: 1px dotted var(--ink-700);
}

.empty-state, .loading-state{
  text-align:center;
  padding: 48px 20px;
  color: var(--ink-muted);
  font-family: var(--font-mono);
  font-size: 0.9rem;
}

/* ---------- modal ---------- */
.modal-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(20,38,31,0.45);
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 24px;
  z-index: 100;
}
.modal-card{
  background: var(--paper-light);
  border-radius: var(--radius);
  max-width: 560px;
  width: 100%;
  max-height: 85vh;
  overflow-y: auto;
  padding: 32px;
  box-shadow: 0 20px 60px rgba(20,38,31,0.3);
}
.modal-card h2{ font-size: 1.4rem; margin-bottom: 4px; }
.modal-card .modal-meta{ color: var(--ink-muted); font-size: 0.85rem; margin-bottom: 22px; font-family: var(--font-mono); }
.modal-row{ margin-bottom: 16px; }
.modal-row dt{
  font-family: var(--font-mono);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--brass);
  margin-bottom: 4px;
}
.modal-row dd{ margin:0; color: var(--ink-900); white-space: pre-wrap; }
.modal-close{
  display:block;
  margin: 24px auto 0;
}

@media (max-width: 640px){
  .modal-card{ padding: 24px; }
}
