/* 
 * listing-defunct admin styles
 * Centralized design language for the internal tool.
 * Leverages tokens from static/admin/tokens.css
 */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: var(--font-sans);
  background: var(--color-canvas);
  color: var(--color-ink);
  min-height: 100vh;
  line-height: var(--line-normal);
  -webkit-font-smoothing: antialiased;
}

/* Page Transitions */
.page-fade {
  animation: fadeIn 0.3s var(--ease-out);
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Header & Nav */
header {
  background: var(--color-ink);
  color: #fff;
  padding: 0 var(--space-6);
  height: 52px;
  display: flex;
  align-items: center;
  gap: var(--space-4);
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--color-shell-soft);
}
.logo {
  text-decoration: none;
  color: inherit;
  display: inline-block;
}
.logo h1 { font-size: var(--font-size-base); font-weight: var(--weight-black); letter-spacing: 0.01em; }
.logo h1 span { color: var(--color-accent); }

nav { margin-left: auto; display: flex; gap: var(--space-2); flex-wrap: wrap; }
nav a {
  font-size: var(--font-size-xs);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: #9ca3af;
  border: 1px solid #444;
  transition: all var(--motion-fast) var(--ease-out);
}
nav a:hover { color: #fff; border-color: #6b7280; }
nav a.active { color: #fff; border-color: var(--color-accent); background: rgba(217, 119, 6, 0.1); }
nav a.primary { background: var(--color-accent); color: #fff; border-color: var(--color-accent); font-weight: var(--weight-semi); }
nav a.primary:hover { background: var(--color-accent-strong); border-color: var(--color-accent-strong); }

/* Layout */
.page { max-width: 920px; margin: 0 auto; padding: var(--space-6) var(--space-5) var(--space-8); }
.page-wide { max-width: 1240px; }

/* Components */
.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--motion-base) var(--ease-out),
              border-color var(--motion-base) var(--ease-out);
}
.card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--color-border-strong);
}

.section-header {
  font-size: var(--font-size-xs);
  font-weight: var(--weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--color-muted);
  margin-bottom: var(--space-3);
}

/* Grid System */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  gap: var(--space-4);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  padding: var(--space-2) var(--space-4);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  font-weight: var(--weight-semi);
  font-family: inherit;
  line-height: 1.2;
  cursor: pointer;
  border: 1px solid var(--color-border-strong);
  background: var(--color-surface);
  color: var(--color-ink-soft);
  text-decoration: none;
  transition: all var(--motion-fast) var(--ease-out);
  user-select: none;
}
.btn:hover { background: var(--color-surface-alt); color: var(--color-ink); border-color: var(--color-muted-strong); }
.btn-primary {
  background: var(--color-accent);
  color: #fff;
  border-color: var(--color-accent);
}
.btn-primary:hover { background: var(--color-accent-strong); border-color: var(--color-accent-strong); color: #fff; }

/* Form Elements */
label.lbl, .field-label {
  display: block;
  font-size: var(--font-size-xs);
  font-weight: var(--weight-semi);
  color: var(--color-ink-soft);
  margin-bottom: var(--space-1);
  letter-spacing: 0.01em;
}

input[type="text"], input[type="url"], input[type="date"], input[type="email"], input[type="tel"], input[type="number"], select, textarea {
  width: 100%;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
  padding: var(--space-2) var(--space-3);
  font-size: var(--font-size-sm);
  font-family: inherit;
  color: var(--color-ink);
  background: var(--color-surface);
  transition: border-color var(--motion-fast) var(--ease-out), box-shadow var(--motion-fast) var(--ease-out);
}

input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px var(--color-focus-ring);
}

/* Utilities */
.v-label { flex: 1; min-width: 0; }
.v-pills { margin-top: 6px; }
.text-muted { color: var(--color-muted); }
.text-dim { color: #9ca3af; }
.mt-4 { margin-top: var(--space-4); }
.mb-4 { margin-bottom: var(--space-4); }

@media (max-width: 768px) {
  header { height: auto; padding: var(--space-3) var(--space-4); flex-direction: column; align-items: flex-start; gap: var(--space-3); }
  nav { margin-left: 0; width: 100%; }
  .page { padding: var(--space-4) var(--space-4) var(--space-8); }
}
