/* ================================================================
   DisplayMania Design System — dm-styles.css
   World-class design for display professionals
   ================================================================ */

/* --- Base --- */
body {
  font-family: 'DM Sans', sans-serif;
  background: #f5f4f0;
  color: #1a1a1a;
}

/* --- Animations (fast, subtle) --- */
@keyframes dm-fade-up {
  from { opacity: 0; transform: translateY(10px) }
  to   { opacity: 1; transform: none }
}
@keyframes dm-fade-in {
  from { opacity: 0 }
  to   { opacity: 1 }
}
.dm-anim-1 { animation: dm-fade-up .3s ease both }
.dm-anim-2 { animation: dm-fade-up .3s ease .06s both }
.dm-anim-3 { animation: dm-fade-up .3s ease .12s both }
.dm-anim-4 { animation: dm-fade-up .3s ease .18s both }
.dm-anim-5 { animation: dm-fade-up .3s ease .24s both }

/* --- Cards --- */
.dm-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  transition: box-shadow .2s, transform .2s;
}
.dm-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.07);
}
.dm-card-interactive:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,.08);
  transform: translateY(-1px);
}

/* --- Stat cards --- */
.dm-stat {
  background: #fff;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 14px;
  padding: 16px;
  transition: all .2s;
}
.dm-stat:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  transform: translateY(-2px);
}

/* --- Section titles --- */
.dm-section-title {
  font-size: 12px;
  font-weight: 800;
  color: #111;
  letter-spacing: -0.01em;
}
.dm-section-link {
  font-size: 10px;
  font-weight: 700;
  color: #ca222c;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: opacity .2s;
}
.dm-section-link:hover { opacity: .7; }

/* --- Table rows --- */
.dm-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 6px;
  border-radius: 8px;
  transition: background .15s;
  text-decoration: none;
  color: inherit;
}
.dm-row:hover { background: rgba(0,0,0,.02); }
.dm-row + .dm-row { border-top: 1px solid rgba(0,0,0,.04); }

/* --- Accent line --- */
.dm-accent-line {
  height: 3px;
  background: linear-gradient(90deg, #ca222c 0%, transparent 100%);
  border-radius: 2px;
  opacity: .3;
}

/* --- Input focus --- */
.dm-input:focus {
  outline: none;
  border-color: rgba(202,34,44,.3);
  box-shadow: 0 0 0 3px rgba(202,34,44,.08);
}

/* --- Button primary --- */
.dm-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  transition: all .2s;
  cursor: pointer;
  border: none;
}
.dm-btn-primary {
  background: #ca222c;
  color: white;
}
.dm-btn-primary:hover {
  background: #9d1b23;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(202,34,44,.25);
}
.dm-btn-secondary {
  background: white;
  color: #666;
  border: 1px solid rgba(0,0,0,.1);
}
.dm-btn-secondary:hover {
  background: #f5f5f5;
  border-color: rgba(0,0,0,.15);
}

/* --- Page header --- */
.dm-page-header {
  margin-bottom: 20px;
}
.dm-page-title {
  font-size: 22px;
  font-weight: 900;
  color: #111;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.dm-page-subtitle {
  font-size: 12px;
  color: #999;
  margin-top: 3px;
}

/* --- Badge --- */
.dm-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 20px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* --- Empty state --- */
.dm-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  color: #bbb;
}
.dm-empty-icon { font-size: 28px; margin-bottom: 8px; }
.dm-empty-text { font-size: 12px; font-weight: 600; }

/* --- Scrollbar --- */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,.1); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.2); }
