.shell { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; }
.side {
  background: #2b221c;
  color: #f6efe6;
  padding: 22px 16px;
}
.side h1 { color: #f6efe6; font-size: 22px; line-height: 1.25; }
.side p { color: #c9b8a6; font-size: 12px; margin: 0 0 18px; }
.nav a {
  display: flex; align-items: center; gap: 8px;
  color: #f6efe6; text-decoration: none;
  padding: 8px 6px; border-left: 2px solid transparent;
}
.nav a.active, .nav a:hover { border-left-color: #d7a08a; background: rgba(255,255,255,.04); }
.nav-group { margin-top: 10px; }
.nav-group .nav-parent { color: #c9b8a6; font-size: 12px; letter-spacing: .04em; }
.nav-sub a { padding-left: 18px; font-size: 13px; }
.pager { display: flex; gap: 12px; align-items: center; margin-top: 12px; }
.icon { width: 16px; height: 16px; flex: 0 0 16px; }
.main { padding: 24px 28px 48px; }
.row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
.stat .num { font-family: var(--font-serif); font-size: 28px; }
.toolbar { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
label span { display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; }
.page { display: none; }
.page.on { display: block; }
.login-wrap { min-height: 100vh; display: grid; place-items: center; }
.login-card { width: 360px; }
.login-card h1 { font-size: 28px; }
.side .brand-mark { width: 28px; height: 4px; background: #d7a08a; margin-bottom: 12px; }
