:root { --rfl-purple: #5c2d91; --rfl-purple-dark: #43206b; --surface: #fff; --page: #f6f4f8; --border: #d9d4df; }
body { background: var(--page); color: #24202a; }
.app-shell { max-width: 960px; padding-bottom: 36px; padding-top: 24px; }
.brand-logo { height: auto; margin-bottom: 18px; max-width: 180px; }
.intro-copy { margin-bottom: 22px; max-width: 760px; }
.intro-copy h1 { font-size: clamp(1.65rem, 3.5vw, 2.35rem); font-weight: 750; letter-spacing: -.025em; line-height: 1.12; }
.intro-copy .lead { font-size: 1.05rem; }
.timeline-form { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 10px 30px rgba(41,27,55,.08); padding: clamp(22px,4vw,40px); }
.timeline-form h2, .role-section legend { font-size: 1.35rem; font-weight: 700; }
.role-section { border-top: 1px solid var(--border); margin-top: 30px; padding-top: 28px; }
.role-section legend { float: none; margin-bottom: 6px; width: auto; }
.role-actions { display: flex; gap: 8px; margin: 18px 0; }
.role-grid { display: grid; gap: 10px 18px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 24px; }
.role-option { align-items: flex-start; border: 1px solid var(--border); border-radius: 8px; cursor: pointer; display: flex; gap: 10px; line-height: 1.3; padding: 12px; }
.role-option:has(input:checked) { background: #f3ecfa; border-color: var(--rfl-purple); }
.role-option input { flex: 0 0 auto; margin-top: .15rem; }
.btn-primary { background: var(--rfl-purple); border-color: var(--rfl-purple); }
.btn-primary:hover, .btn-primary:focus { background: var(--rfl-purple-dark); border-color: var(--rfl-purple-dark); }
footer { color: #6c6572; font-size: .875rem; margin-top: 18px; text-align: center; }
@media (max-width: 640px) { .app-shell { padding-top: 16px; } .role-grid { grid-template-columns: 1fr; } }
