/* ── Limestone design tokens ───────────────────────────────────────── */
:root {
  --bone-50:#FDFBF6;  --bone-100:#FAF6EE;  --bone-200:#F4ECDD;  --bone-300:#ECE0C8;
  --ochre-400:#D49872; --ochre-500:#B8794D; --ochre-600:#9C6438; --ochre-700:#7D4F2A;
  --olive-400:#8B9968; --olive-500:#6B7548; --olive-600:#56603A; --olive-700:#414829;
  --ink-500:#6B6855;  --ink-700:#48453A;  --ink-900:#2A2820;
  --surface:#FFFFFF;  --surface-muted:#FAF6EE;
  --border:#ECE6DB;   --border-strong:#D8D0BF;
  --danger:#B43A3A;   --warning:#C19167;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body, #root { height: 100%; }
/* Prevent horizontal overflow from leaking to the page level */
html { overflow-x: hidden; }
body {
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
  background: var(--bone-100);
  color: var(--ink-900);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
button, input, select, textarea { font-family: inherit; }
/* Responsive sidebar */
.desktop-sidebar { display: flex; }
.mobile-topbar  { display: none !important; }
/* Responsive grid utilities */
.g-kpi   { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.g-2     { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.g-3     { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.g-4     { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.g-chart { display: grid; grid-template-columns: 1fr 280px; gap: 14px; }
.g-pl    { display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px; }
.g-fc    { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; }
.mobile-only { display: none !important; }
@media (max-width: 768px) {
  .desktop-sidebar { display: none !important; }
  .mobile-topbar  { display: flex !important; }
  .mobile-only    { display: flex !important; }
  .g-kpi   { grid-template-columns: repeat(2,1fr); }
  .g-2     { grid-template-columns: 1fr; }
  .g-3     { grid-template-columns: 1fr; }
  .g-4     { grid-template-columns: repeat(2,1fr); }
  .g-chart { grid-template-columns: 1fr; }
  .g-pl    { grid-template-columns: 1fr; }
  .g-fc    { grid-template-columns: 1fr; }
  .mobile-pad       { padding: 14px 14px 20px !important; }
  .mobile-hpad      { padding: 14px 14px 0 !important; }
  .mobile-bottom-pad { padding-bottom: calc(70px + env(safe-area-inset-bottom)) !important; }
  /* Prevent iOS Safari from zooming the page when an input is focused.
     Any input with font-size < 16px triggers an automatic viewport zoom. */
  input, select, textarea { font-size: 16px !important; }
}
/* Scrollbar polish */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(0,0,0,.15); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,.25); }
/* Tabular figures — tables, inline money, any aligned numbers */
.tnum { font-feature-settings: 'tnum'; }
/* The signature money treatment — hero monetary values only */
.money-display {
  font-family: 'DM Serif Display', Georgia, serif;
  font-weight: 400;
  font-feature-settings: 'tnum';
  color: var(--ochre-500);
  letter-spacing: -0.01em;
  line-height: 1;
}
