/* ─── Base ───────────────────────────────────────────────────────── */

:root {
  --bg:          #FFFFFF;
  --card:        #FFFFFF;
  --text:        #111111;
  --text-mute:   #6B6B6B;
  --text-faint:  #A8A8A8;
  --border:      #E8E6E0;
  --border-soft: #F2F0EA;
  --green:       #116466;
  --green-ink:   #0A4849;
  --green-soft:  #D1E8E2;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter Tight', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'ss01', 'ss03';
  letter-spacing: -0.005em;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  color: var(--text);
  font-weight: 700;
  letter-spacing: -0.01em;
}

p { margin: 0; }

/* ─── Animations ─────────────────────────────────────────────────── */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.fade-in {
  animation: fadeIn 0.35s ease-out forwards;
}

/* ─── Scrollbar ──────────────────────────────────────────────────── */

::-webkit-scrollbar       { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #D8D8D5; border-radius: 999px; border: 2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover { background: #A8A8A8; }

/* ─── Reset opinionated form/button defaults ─────────────────────── */
/* Components in app.js use inline styles; don't override them here.   */

button {
  font-family: inherit;
  font-size: inherit;
}

input, select, textarea {
  font-family: inherit;
  font-size: inherit;
  color: var(--text);
}

input:focus, select:focus, textarea:focus {
  outline: none;
}

/* ─── Print ──────────────────────────────────────────────────────────── */

@media print {
  header { display: none !important; }
  body { background: #fff !important; font-size: 12px; }
  .fade-in { animation: none !important; }
  canvas { display: none !important; }
  /* Stack panels full-width */
  div[style*="width: 65%"],
  div[style*="width: 35%"] { width: 100% !important; border: none !important; }
  /* Avoid page breaks inside rec cards */
  div[style*="borderRadius: 12px"] { page-break-inside: avoid; }
}
