/* ═══════════════════════════════════════════════════════
   ZURIO DESIGN SYSTEM
   Warm editorial palette · Playfair Display + Inter
   ═══════════════════════════════════════════════════════ */

/* ── Fonts ──────────────────────────────────────────────*/
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Inter:wght@300;400;500;600;700&display=swap');

/* ── Design Tokens ──────────────────────────────────────*/
:root {
  --paper:        #F7F4EF;
  --cream:        #FAF8F5;
  --surface:      #EDEAE3;
  --surface-2:    #E2DDD5;
  --border:       #D5CFC5;
  --border-mid:   #C0B8AD;
  --taupe:        #A8957C;
  --taupe-light:  #C4B49A;
  --ink:          #1C1917;
  --ink-mid:      #4A4540;
  --ink-muted:    #7A726A;
  --ink-faint:    #ADA79F;
  --black:        #0D0B09;
  --white:        #FFFFFF;

  /* Semantic */
  --commission:     #2A6049;
  --commission-bg:  rgba(42,96,73,0.10);
  --success:        #2A6049;
  --success-bg:     rgba(42,96,73,0.10);
  --warn-text:      #7A5A1E;
  --warn-bg:        rgba(122,90,30,0.10);
  --danger-text:    #8B2230;
  --danger-bg:      rgba(139,34,48,0.10);

  /* Typography */
  --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:    'Inter', system-ui, -apple-system, sans-serif;

  /* Layout */
  --sidebar-width: 240px;
  --nav-height:    57px;

  /* Bootstrap token overrides */
  --bs-body-bg:           var(--paper);
  --bs-body-color:        var(--ink);
  --bs-body-font-family:  var(--font-body);
  --bs-border-color:      var(--border);
  --bs-secondary-color:   var(--ink-muted);
  --bs-card-bg:           var(--surface);
  --bs-card-border-color: var(--border);
  --bs-link-color:        var(--ink);
  --bs-link-hover-color:  var(--black);
  --bs-emphasis-color:    var(--ink);
  --bs-tertiary-bg:       var(--surface);
}

/* ── Reset ──────────────────────────────────────────────*/
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; }

body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--ink);
  font-weight: 600;
}

a { color: var(--ink); }
a:hover { color: var(--black); }

/* ── Bootstrap Overrides ────────────────────────────────*/
/* Dark-theme utility classes → warm equivalents */
.text-white-50  { color: var(--ink-muted)  !important; }
.text-white     { color: var(--ink)        !important; }
.text-muted     { color: var(--ink-muted)  !important; }
.text-secondary { color: var(--ink-muted)  !important; }
.text-warning   { color: var(--warn-text)  !important; }
.text-success   { color: var(--success)    !important; }
.text-danger    { color: var(--danger-text)!important; }

.text-truncate  { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Buttons */
.btn-warning {
  background: var(--ink)   !important;
  color: var(--cream)      !important;
  border-color: var(--ink) !important;
  font-weight: 600;
}
.btn-warning:hover,
.btn-warning:active,
.btn-warning:focus {
  background: var(--black)   !important;
  border-color: var(--black) !important;
  color: var(--cream)        !important;
}

.btn-outline-secondary {
  border-color: var(--border-mid) !important;
  color: var(--ink-mid)           !important;
  background: transparent         !important;
}
.btn-outline-secondary:hover {
  background: var(--surface)  !important;
  border-color: var(--taupe)  !important;
  color: var(--ink)           !important;
}
.btn-outline-secondary.active,
.btn-outline-secondary:active {
  background: var(--ink)   !important;
  color: var(--cream)      !important;
  border-color: var(--ink) !important;
}

.btn-outline-danger {
  border-color: rgba(139,34,48,0.35) !important;
  color: var(--danger-text)          !important;
}
.btn-outline-danger:hover {
  background: var(--danger-bg)       !important;
  border-color: var(--danger-text)   !important;
  color: var(--danger-text)          !important;
}

/* Alerts */
.alert-warning {
  background: var(--warn-bg)              !important;
  border-color: rgba(122,90,30,0.25)      !important;
  color: var(--warn-text)                 !important;
}
.alert-success {
  background: var(--success-bg)           !important;
  border-color: rgba(42,96,73,0.25)       !important;
  color: var(--success)                   !important;
}
.alert-info {
  background: rgba(26,82,118,0.08)        !important;
  border-color: rgba(26,82,118,0.2)       !important;
  color: #1A5276                          !important;
}
.alert-danger {
  background: var(--danger-bg)            !important;
  border-color: rgba(139,34,48,0.2)       !important;
  color: var(--danger-text)               !important;
}
.btn-close { filter: invert(0.6); }

/* Badges */
.badge.bg-warning  { background: var(--warn-bg)   !important; color: var(--warn-text)   !important; }
.badge.bg-success  { background: var(--success-bg)!important; color: var(--success)     !important; }
.badge.bg-secondary{ background: var(--surface-2) !important; color: var(--ink-muted)   !important; }
.badge.bg-danger   { background: var(--danger-bg) !important; color: var(--danger-text) !important; }
.badge.text-dark   { color: var(--ink) !important; }

/* Forms */
.form-control,
.form-select {
  background:   var(--cream)  !important;
  border-color: var(--border) !important;
  color:        var(--ink)    !important;
  border-radius: 8px          !important;
  font-family: var(--font-body)!important;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--taupe)                !important;
  box-shadow: 0 0 0 3px rgba(168,149,124,0.18) !important;
  background: var(--white)                  !important;
  color: var(--ink)                         !important;
}
.form-control::placeholder { color: var(--ink-faint) !important; }
.form-label { color: var(--ink-mid) !important; font-weight: 500; font-size: .875rem; margin-bottom: .35rem; }
.form-check-label { color: var(--ink-mid) !important; }
.form-check-input { border-color: var(--border-mid) !important; background-color: var(--cream) !important; }
.form-check-input:checked {
  background-color: var(--ink) !important;
  border-color: var(--ink)     !important;
}

.input-group-text {
  background: var(--surface)  !important;
  border-color: var(--border) !important;
  color: var(--ink-muted)     !important;
}

/* Cards (Bootstrap) */
.card {
  background:   var(--surface) !important;
  border-color: var(--border)  !important;
}

/* Nav tabs */
.nav-tabs {
  --bs-nav-tabs-border-color: var(--border);
  --bs-nav-tabs-link-active-bg: var(--surface);
  --bs-nav-tabs-link-active-color: var(--ink);
  --bs-nav-tabs-link-active-border-color: var(--border) var(--border) var(--surface);
}
.nav-tabs .nav-link { color: var(--ink-muted); }
.nav-tabs .nav-link.active { color: var(--ink); font-weight: 600; }
.nav-tabs .nav-link:hover { color: var(--ink); }

/* Dropdown */
.dropdown-menu {
  background: var(--cream);
  border-color: var(--border);
  box-shadow: 0 8px 32px rgba(28,25,23,0.1);
}
.dropdown-item { color: var(--ink-mid); font-size: .875rem; }
.dropdown-item:hover { background: var(--surface); color: var(--ink); }

/* Tables */
.table {
  --bs-table-color: var(--ink);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--border);
  --bs-table-striped-bg: var(--surface);
  --bs-table-hover-bg: var(--surface);
}
.table thead th {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ink-muted);
  border-bottom: 2px solid var(--border);
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--paper); }
::-webkit-scrollbar-thumb { background: var(--border-mid); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--taupe); }

/* ── Zurio Navigation ───────────────────────────────────*/
.z-nav {
  background: var(--cream);
  border-bottom: 1px solid var(--border);
  padding: .875rem 0;
}

.z-nav-brand {
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--ink);
  text-decoration: none;
}
.z-nav-brand:hover { color: var(--black); }

.z-nav-link {
  color: var(--ink-mid);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  padding: .3rem .5rem;
  border-radius: 6px;
  transition: color .15s, background .15s;
}
.z-nav-link:hover { color: var(--ink); background: var(--surface); }

/* ── Zurio Sidebar ──────────────────────────────────────*/
.z-sidebar {
  width: var(--sidebar-width);
  flex-shrink: 0;
  background: var(--cream);
  border-right: 1px solid var(--border);
  padding: 1.5rem 1rem;
  min-height: calc(100vh - var(--nav-height));
}

.z-sidebar-initial {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--surface-2);
  border: 1.5px solid var(--border-mid);
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 700;
  color: var(--ink); flex-shrink: 0;
}

.z-sidebar-avatar {
  width: 34px; height: 34px;
  border-radius: 50%; object-fit: cover;
  border: 1.5px solid var(--border-mid);
  flex-shrink: 0;
}

.z-sidebar-name {
  font-size: .875rem;
  font-weight: 600;
  color: var(--ink);
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.z-section-label {
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ink-faint);
  padding: 0 .75rem;
  margin-bottom: .4rem;
}

.z-sidebar-link {
  display: flex; align-items: center; gap: .5rem;
  padding: .45rem .75rem;
  border-radius: 8px;
  color: var(--ink-mid);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  transition: background .15s, color .15s;
}
.z-sidebar-link:hover { background: var(--surface); color: var(--ink); }
.z-sidebar-link.active { background: var(--surface-2); color: var(--ink); font-weight: 600; }
.z-sidebar-link i { font-size: .875rem; color: var(--ink-muted); }
.z-sidebar-link.active i { color: var(--ink-mid); }

/* ── Buttons (Zurio) ────────────────────────────────────*/
.btn-z {
  background: var(--ink);
  color: var(--cream);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .875rem;
  padding: .5rem 1.25rem;
  border: none; border-radius: 8px;
  text-decoration: none;
  display: inline-flex; align-items: center; gap: .4rem;
  cursor: pointer;
  transition: background .15s, transform .1s;
}
.btn-z:hover  { background: var(--black); color: var(--cream); transform: translateY(-1px); }
.btn-z:active { transform: translateY(0); }

.btn-z-sm { font-size: .8rem; padding: .35rem .9rem; }

.btn-z-ghost {
  background: transparent;
  color: var(--ink);
  font-weight: 600;
  font-size: .875rem;
  padding: .5rem 1.25rem;
  border: 1.5px solid var(--border-mid);
  border-radius: 8px;
  text-decoration: none;
  display: inline-flex; align-items: center; gap: .4rem;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.btn-z-ghost:hover { border-color: var(--taupe); background: var(--surface); color: var(--ink); }

.btn-z-taupe {
  background: var(--surface-2);
  color: var(--ink-mid);
  font-weight: 600;
  font-size: .8rem;
  padding: .35rem .9rem;
  border: 1px solid var(--border-mid);
  border-radius: 8px;
  text-decoration: none;
  display: inline-flex; align-items: center; gap: .35rem;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-z-taupe:hover { background: var(--border); color: var(--ink); }

/* ── Cards ──────────────────────────────────────────────*/
.z-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
}

.z-card-hover {
  transition: border-color .25s, box-shadow .25s, transform .25s;
  cursor: pointer;
}
.z-card-hover:hover {
  border-color: var(--taupe-light);
  box-shadow: 0 8px 28px rgba(28,25,23,0.08);
  transform: translateY(-2px);
}

/* ── Stat Cards ─────────────────────────────────────────*/
.z-stat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
}
.z-stat-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--ink-muted);
  margin-bottom: .4rem;
  display: flex; align-items: center; gap: .35rem;
}
.z-stat-value {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1;
  margin-bottom: .4rem;
}
.z-stat-action { font-size: .8rem; color: var(--taupe); text-decoration: none; font-weight: 500; }
.z-stat-action:hover { color: var(--ink); }

/* ── Page Header ────────────────────────────────────────*/
.z-page-header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.z-page-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: var(--ink); margin: 0; }
.z-page-sub { font-size: .85rem; color: var(--ink-muted); margin: .2rem 0 0; }

/* ── Badges (Zurio) ─────────────────────────────────────*/
.z-badge {
  border-radius: 6px; padding: 2px 8px;
  font-size: .7rem; font-weight: 700;
  display: inline-flex; align-items: center; gap: .25rem;
}
.z-badge-commission { background: var(--commission-bg); color: var(--commission); border: 1px solid rgba(42,96,73,0.2); }
.z-badge-neutral    { background: var(--surface-2); color: var(--ink-muted); border: 1px solid var(--border); }
.z-badge-featured   { background: var(--warn-bg); color: var(--warn-text); border: 1px solid rgba(122,90,30,0.2); }
.z-badge-private    { background: var(--surface-2); color: var(--ink-muted); border: 1px solid var(--border); }
.z-badge-approved   { background: var(--success-bg); color: var(--success); border: 1px solid rgba(42,96,73,0.2); }
.z-badge-pending    { background: var(--warn-bg); color: var(--warn-text); border: 1px solid rgba(122,90,30,0.2); }

/* ── Empty States ───────────────────────────────────────*/
.z-empty {
  text-align: center;
  padding: 3rem 1.5rem;
  background: var(--cream);
  border: 1.5px dashed var(--border-mid);
  border-radius: 12px;
  color: var(--ink-muted);
}
.z-empty i { font-size: 2.5rem; opacity: .2; display: block; margin-bottom: .75rem; }

/* ── Panel (chart / table block) ────────────────────────*/
.z-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
}
.z-panel-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink);
  margin: 0;
}

/* ── Divider ────────────────────────────────────────────*/
.z-divider { height: 1px; background: var(--border); }
.z-divider-row { border-bottom: 1px solid var(--border); }

/* ── List rows ──────────────────────────────────────────*/
.z-list-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: .625rem 0;
  border-bottom: 1px solid var(--border);
}
.z-list-row:last-child { border-bottom: none; }

/* ── Collection grid card ───────────────────────────────*/
.z-coll-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .25s, box-shadow .25s, transform .25s;
  display: flex; flex-direction: column;
}
.z-coll-card:hover {
  border-color: var(--taupe-light);
  box-shadow: 0 8px 28px rgba(28,25,23,0.08);
  transform: translateY(-3px);
}
.z-coll-thumb {
  width: 100%; height: 280px;
  object-fit: cover; display: block;
}
.z-coll-thumb-ph {
  width: 100%; height: 280px;
  background: var(--surface-2);
  display: flex; align-items: center; justify-content: center;
  color: var(--ink-faint); font-size: 2rem;
}

/* ── Product browse ─────────────────────────────────────*/
.z-product-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
  cursor: pointer; user-select: none;
}
.z-product-card:hover {
  border-color: var(--taupe-light);
  box-shadow: 0 4px 18px rgba(28,25,23,0.07);
}
.z-product-card.is-selected {
  border-color: var(--taupe) !important;
  box-shadow: 0 0 0 2px var(--taupe-light);
}
.z-product-card.is-selected .sel-ring {
  background: var(--ink)    !important;
  border-color: var(--ink)  !important;
}
.z-product-card.is-selected .sel-ring i { display: inline !important; }

.z-cat-btn {
  background: transparent; border: none;
  text-align: left; width: 100%;
  border-radius: 6px; padding: .35rem .5rem;
  transition: background .1s;
  color: var(--ink-mid); font-size: .875rem;
  cursor: pointer;
}
.z-cat-btn:hover { background: var(--surface); color: var(--ink); }
.z-cat-btn.active { background: var(--surface-2); color: var(--ink); font-weight: 600; }

/* ── Creator shop (public) ──────────────────────────────*/
.z-creator-hero { background: var(--cream); border-bottom: 1px solid var(--border); }
.z-creator-avatar {
  width: 80px; height: 80px;
  border-radius: 50%; object-fit: cover;
  border: 2px solid var(--border-mid);
}
.z-creator-avatar-ph {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: var(--surface-2);
  border: 2px solid var(--border-mid);
  display: flex; align-items: center; justify-content: center;
  color: var(--ink-faint); font-size: 2rem;
}

/* ── Follow button ──────────────────────────────────────*/
.btn-follow {
  background: var(--ink); color: var(--cream);
  border: none; border-radius: 8px;
  font-size: .8rem; font-weight: 600;
  padding: .4rem 1rem;
  cursor: pointer; transition: background .15s;
}
.btn-follow:hover { background: var(--black); color: var(--cream); }
.btn-follow.following {
  background: var(--surface-2); color: var(--ink-mid);
  border: 1px solid var(--border-mid);
}
.btn-follow.following:hover { background: var(--danger-bg); color: var(--danger-text); border-color: rgba(139,34,48,.3); }

/* ── Public product card ────────────────────────────────*/
.z-pub-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px; overflow: hidden;
  transition: border-color .2s, box-shadow .2s, transform .2s;
  text-decoration: none; color: inherit; display: block;
}
.z-pub-card:hover {
  border-color: var(--taupe-light);
  box-shadow: 0 6px 24px rgba(28,25,23,0.09);
  transform: translateY(-2px);
  color: inherit;
}

/* ── Metrics tab bar ────────────────────────────────────*/
.z-metric-tab {
  background: none; border: none;
  padding: .4rem .75rem;
  border-bottom: 2px solid transparent;
  color: var(--ink-muted); font-size: .82rem;
  cursor: pointer; transition: color .15s, border-color .15s;
}
.z-metric-tab:hover  { color: var(--ink); }
.z-metric-tab.active { color: var(--ink); border-bottom-color: var(--ink); font-weight: 600; }

/* ── Utility ────────────────────────────────────────────*/
.text-ink        { color: var(--ink)       !important; }
.text-ink-mid    { color: var(--ink-mid)   !important; }
.text-ink-muted  { color: var(--ink-muted) !important; }
.text-ink-faint  { color: var(--ink-faint) !important; }
.text-taupe      { color: var(--taupe)     !important; }
.text-commission { color: var(--commission)!important; }
.bg-paper        { background: var(--paper)   !important; }
.bg-cream        { background: var(--cream)   !important; }
.bg-surface      { background: var(--surface) !important; }
