:root {
  --ivory-bg: #FAF7F2;
  --ivory-surface: #FFFFFF;
  --ivory-surface-2: #F2EBE0;
  --ivory-text: #1E1810;
  --ivory-muted: #736A60;
  --ivory-primary: #A07845;
  --ivory-primary-dark: #7E5F34;
  --ivory-border: rgba(30,24,16,.14);
  --ivory-shadow: 0 18px 50px rgba(30,24,16,.10);
  --ivory-radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--ivory-bg);
  color: var(--ivory-text);
  text-rendering: optimizeLegibility;
}

a { color: inherit; }
button, input, textarea, select { font: inherit; }

.iv-shell, .container, main > section {
  max-width: min(1180px, calc(100vw - 32px));
}

.iv-card,
.card,
.panel,
.stat-card,
.admin-card,
.form-card,
.preview-card {
  border: 1px solid var(--ivory-border);
  border-radius: var(--ivory-radius);
  background: rgba(255,255,255,.82);
  box-shadow: var(--ivory-shadow);
}

button,
.btn,
.primary-btn,
.secondary-btn,
.admin-btn,
.cta-button,
.submit-btn {
  border-radius: 999px;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

button:hover,
.btn:hover,
.primary-btn:hover,
.secondary-btn:hover,
.admin-btn:hover,
.cta-button:hover,
.submit-btn:hover {
  transform: translateY(-1px);
}

input, textarea, select {
  border-radius: 14px;
  border: 1px solid var(--ivory-border);
  background: rgba(255,255,255,.9);
}

input:focus, textarea:focus, select:focus {
  outline: 2px solid rgba(160,120,69,.22);
  border-color: rgba(160,120,69,.55);
}

.badge, .status, .pill {
  border-radius: 999px;
  letter-spacing: .02em;
}

.table-wrap, table {
  border-radius: 18px;
  overflow: hidden;
}

@media (max-width: 760px) {
  .iv-shell, .container, main > section {
    max-width: calc(100vw - 22px);
  }
}
