/* ============================================================
 * Memphis design system — Phase 4.8.
 * 1980s Sottsass: bold primaries, hard offset shadows,
 * thick black borders, geometric backgrounds, monospace prices.
 * ============================================================ */

:root {
  /* Memphis palette */
  --mem-cream:   #FAF3E0;
  --mem-ink:     #111111;
  --mem-red:     #E63946;
  --mem-yellow:  #FFD23F;
  --mem-blue:    #2A9DF4;
  --mem-mint:    #6FE7B7;
  --mem-pink:    #FF6B9D;
  --mem-violet:  #7B5EA7;

  /* Memphis primitives */
  --mem-border:    3px solid var(--mem-ink);
  --mem-shadow:    6px 6px 0 var(--mem-ink);
  --mem-shadow-sm: 4px 4px 0 var(--mem-ink);
  --mem-radius:    14px;
}

/* ----- DaisyUI theme override ----- */
[data-theme="memphis"] {
  --p:  354 78% 56%;   /* primary  → mem-red */
  --pf: 354 65% 46%;
  --pc: 0 0% 100%;
  --s:  263 30% 51%;   /* secondary → mem-violet */
  --sf: 263 30% 41%;
  --sc: 0 0% 100%;
  --a:  47 100% 62%;   /* accent → mem-yellow */
  --ac: 0 0% 7%;
  --n:  0 0% 7%;       /* neutral → mem-ink */
  --nc: 0 0% 100%;
  --b1: 42 75% 93%;    /* base → mem-cream */
  --b2: 42 50% 88%;
  --b3: 42 30% 80%;
  --bc: 0 0% 7%;
  --su: 156 71% 67%;   /* success → mem-mint */
  --er: 354 78% 56%;   /* error   → mem-red */
  --in: 207 89% 56%;   /* info    → mem-blue */
  --wa: 47 100% 62%;   /* warning → mem-yellow */
}

/* ----- Typography ----- */
body {
  background: var(--mem-cream);
  font-family: 'Space Grotesk', system-ui, -apple-system, sans-serif;
  color: var(--mem-ink);
}
.font-display, h1, h2.card-title { font-family: 'Archivo Black', 'Playfair Display', serif; letter-spacing: -0.01em; }
h1 { font-family: 'Playfair Display', serif; font-weight: 900; }

/* Tabular-nums on prices */
.mem-price, .stat-value, .mem-stat__value {
  font-feature-settings: 'tnum' 1, 'lnum' 1;
}

/* ----- Components ----- */
.mem-card {
  background: #fff;
  border: var(--mem-border);
  border-radius: var(--mem-radius);
  box-shadow: var(--mem-shadow);
}

.mem-btn {
  display: inline-flex; align-items: center; justify-content: center;
  border: var(--mem-border);
  border-radius: 999px;
  box-shadow: var(--mem-shadow-sm);
  padding: .6rem 1.2rem;
  font-weight: 700;
  background: #fff;
  color: var(--mem-ink);
  transition: transform 80ms ease, box-shadow 80ms ease;
}
.mem-btn:hover         { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--mem-ink); }
.mem-btn:active        { transform: translate(2px, 2px);   box-shadow: 2px 2px 0 var(--mem-ink); }
.mem-btn--primary      { background: var(--mem-red);    color: #fff; }
.mem-btn--accent       { background: var(--mem-yellow); color: var(--mem-ink); }
.mem-btn--secondary    { background: var(--mem-violet); color: #fff; }
.mem-btn--mint         { background: var(--mem-mint);   color: var(--mem-ink); }

.mem-badge {
  display: inline-block;
  border: 2px solid var(--mem-ink);
  border-radius: 999px;
  padding: .15rem .65rem;
  font-weight: 700;
  background: var(--mem-yellow);
  color: var(--mem-ink);
}

.mem-input, input.mem-input, textarea.mem-input, select.mem-input {
  background: #fff;
  border: var(--mem-border);
  border-radius: 10px;
  padding: .6rem .9rem;
  width: 100%;
  font-family: inherit;
}
.mem-input:focus {
  outline: none;
  box-shadow: var(--mem-shadow-sm);
  transform: translate(-2px, -2px);
}

/* ----- Stat card (Phase 4.5 / 4.8) ----- */
.mem-stat {
  background: #fff;
  border: var(--mem-border);
  border-radius: var(--mem-radius);
  box-shadow: var(--mem-shadow);
  padding: 1rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.mem-stat__top    { display: flex; align-items: center; gap: .4rem; opacity: .85; }
.mem-stat__icon   { font-size: 1.05rem; }
.mem-stat__label  { font-size: .8rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.mem-stat__value  { font-family: 'Archivo Black', sans-serif; font-size: 1.7rem; line-height: 1.05; }
.mem-stat__desc   { font-size: .75rem; opacity: .7; }

.mem-stat--red    { background: var(--mem-red);    color: #fff; }
.mem-stat--red    .mem-stat__top, .mem-stat--red .mem-stat__desc { color: rgba(255,255,255,.85); }
.mem-stat--yellow { background: var(--mem-yellow); color: var(--mem-ink); }
.mem-stat--blue   { background: var(--mem-blue);   color: #fff; }
.mem-stat--blue   .mem-stat__top, .mem-stat--blue .mem-stat__desc { color: rgba(255,255,255,.85); }
.mem-stat--mint   { background: var(--mem-mint);   color: var(--mem-ink); }

/* ----- Background patterns (inline SVG, no extra requests) ----- */
.mem-bg-dots {
  background-color: var(--mem-cream);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'><circle cx='4' cy='4' r='2.2' fill='%23111111' opacity='0.12'/></svg>");
}
.mem-bg-squiggle {
  background-color: var(--mem-cream);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='20' viewBox='0 0 80 20'><path d='M0 10 Q 10 0 20 10 T 40 10 T 60 10 T 80 10' fill='none' stroke='%23E63946' stroke-width='2' opacity='0.35'/></svg>");
}
.mem-bg-zigzag {
  background-color: var(--mem-cream);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='12' viewBox='0 0 40 12'><polyline points='0,0 10,12 20,0 30,12 40,0' fill='none' stroke='%232A9DF4' stroke-width='2' opacity='0.4'/></svg>");
}
.mem-bg-grid {
  background-color: var(--mem-cream);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><path d='M32 0H0V32' fill='none' stroke='%23111111' stroke-width='0.6' opacity='0.12'/></svg>");
}

/* ----- Loud accent borders for hero panels ----- */
.mem-hero {
  border: var(--mem-border);
  border-radius: var(--mem-radius);
  box-shadow: var(--mem-shadow);
  background: var(--mem-yellow);
  color: var(--mem-ink);
}

/* ----- Form errors ----- */
.mem-error {
  border: 2px solid var(--mem-red);
  background: #fff;
  border-radius: 10px;
  padding: .5rem .75rem;
  color: var(--mem-red);
  font-weight: 600;
}

/* ----- Print / PDF: neutralise loud chrome (WeasyPrint) ----- */
@media print {
  .mem-card, .mem-stat, .mem-hero, .mem-btn {
    box-shadow: none;
    border-width: 1px;
  }
  .mem-bg-dots, .mem-bg-squiggle, .mem-bg-zigzag, .mem-bg-grid {
    background-image: none;
  }
}

/* ----- Reduced motion ----- */
@media (prefers-reduced-motion: reduce) {
  .mem-btn, .mem-input { transition: none; }
  .mem-btn:hover, .mem-btn:active, .mem-input:focus { transform: none; }
}
