:root {
  --background: #f6f5f1;       /* warm paper, not stark white */
  --card: #fffefb;
  --border: #e5e0d5;
  --muted: #edeae2;
  --muted-foreground: #8a8477;
  --foreground: #32302a;
  --primary: #3d6b4f;          /* warm forest green */
  --primary-foreground: #f6f5f1;
  --ring: #3d6b4f;
}
body { display: flex; min-height: 100vh; }
aside { width: 220px; border-right: 1px solid var(--border); padding: 1.25rem .75rem; flex-shrink: 0; background: var(--card); }
aside .brand { font-weight: 700; display: block; margin: 0 .6rem 1.25rem; letter-spacing: .01em; }
aside nav a { display: block; padding: .45rem .7rem; border-radius: 6px; color: var(--muted-foreground); text-decoration: none; margin-bottom: .1rem; font-weight: 500; }
aside nav a:hover { color: var(--foreground); background: var(--muted); }
aside nav a.active { color: var(--primary); background: var(--muted); }
aside hr { border: none; border-top: 1px solid var(--border); margin: .75rem 0; }
main { flex: 1; padding: 2rem 2.5rem; max-width: 1280px; display: flex; flex-direction: column; gap: 1.25rem; }
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.stat-grid .card { padding: 1.1rem 1.25rem; }
.stat-grid h2 { font-size: .78rem; color: var(--muted-foreground); font-weight: 500; margin: 0 0 .4rem; }
.stat-grid .num { font-size: 1.9rem; font-weight: 700; line-height: 1; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.card { box-shadow: 0 1px 2px rgba(50,42,28,.04), 0 6px 16px rgba(50,42,28,.03); }
.card header h2 { font-size: .95rem; font-weight: 600; }
a { color: var(--primary); }
.table a { color: var(--foreground); }
.table a:hover { color: var(--primary); }