:root {
  --gen-bg: #f5f7fa;
  --gen-surface: #ffffff;
  --gen-ink: #1a2433;
  --gen-muted: #526277;
  --gen-slate: #1f3a5f;
  --gen-slate-soft: #eef3f8;
  --gen-border: #d7e0ea;
  --crimson: #8c1d18;
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
body.gen-body { margin:0; background:var(--gen-bg); color:var(--gen-ink); font-family:var(--font-sans); line-height:1.55; }
.gen-header { background:var(--gen-surface); border-bottom:1px solid var(--gen-border); padding:1.1rem 1.25rem; }
.gen-header-inner, .gen-container { max-width:1160px; margin:0 auto; }
.gen-header-inner { display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.gen-brand { text-decoration:none; color:var(--gen-slate); }
.gen-brand-kicker { font-size:0.72rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--gen-muted); font-weight:600; }
.gen-brand-title { font-size:1.35rem; font-weight:700; margin:0.1rem 0 0; }
.gen-search { display:flex; gap:0.45rem; }
.gen-search input { padding:0.48rem 0.75rem; border:1px solid var(--gen-border); border-radius:5px; font-size:0.88rem; min-width:220px; }
.gen-btn { background:var(--gen-slate); color:#fff; border:none; border-radius:5px; padding:0.48rem 0.9rem; font-size:0.86rem; font-weight:600; cursor:pointer; text-decoration:none; display:inline-block; }
.gen-container { padding:1.5rem 1.25rem 3rem; }
.gen-crumbs { font-size:0.82rem; color:var(--gen-muted); margin-bottom:1rem; }
.gen-crumbs a { color:var(--gen-slate); text-decoration:none; }
.gen-card { background:var(--gen-surface); border:1px solid var(--gen-border); border-radius:8px; padding:1.25rem 1.4rem; margin-bottom:1.1rem; }
.gen-grid-2 { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:1rem; }
.gen-person-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:0.8rem; }
.gen-pbox { background:var(--gen-slate-soft); border:1px solid var(--gen-border); border-radius:6px; padding:0.75rem 0.9rem; }
.gen-pbox a { color:var(--gen-slate); font-weight:600; text-decoration:none; }
.gen-pbox a:hover { text-decoration:underline; }
.gen-meta { font-size:0.8rem; color:var(--gen-muted); margin-top:0.2rem; }
.gen-pill { display:inline-block; background:var(--gen-slate-soft); border:1px solid var(--gen-border); color:var(--gen-slate); border-radius:999px; padding:0.22rem 0.65rem; font-size:0.8rem; text-decoration:none; margin:0.15rem 0.25rem 0.15rem 0; }
.gen-timeline { border-left:2px solid var(--gen-slate); margin:0.5rem 0 0 0.5rem; padding-left:1rem; }
.gen-tl-item { position:relative; margin-bottom:0.85rem; }
.gen-cross { border-left:4px solid var(--crimson); background:#fffaf9; }
