.persona-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 24px; }
.persona-col { background: #fff; padding: 22px; }
.persona-col h3 { font-size: 18px; margin-bottom: 2px; }
.persona-sub { color: var(--muted); font-size: 13px; margin-bottom: 14px; }
.p-row { display: grid; grid-template-columns: 26px 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.p-row:last-child { border-bottom: 0; }
.p-rank { color: var(--muted); font-weight: 720; }
.p-main strong { font-size: 15px; }
.p-main small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.p-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5px; font-size: 12px; color: var(--muted); }
.p-links a { color: var(--ink); text-decoration: underline; }
.p-score { font-weight: 760; font-size: 18px; }
.mini-form { display: grid; grid-template-columns: repeat(4, 1fr) auto; gap: 10px; align-items: end; margin: 22px 0 10px; }
.mini-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 720; }
.mini-form select { min-height: 44px; border: 1px solid var(--line); background: #fff; color: var(--ink); padding: 0 10px; font: inherit; }
.mini-form button { min-height: 44px; border: 1px solid var(--ink); background: var(--ink); color: #fff; font-weight: 720; cursor: pointer; padding: 0 18px; }
.source-note { color: var(--muted); font-size: 13px; margin-top: 12px; }
.guide-list { display: grid; gap: 14px; list-style: none; margin: 22px 0 0; }
.guide-list li { border-top: 1px solid var(--line); padding-top: 14px; }
.guide-list strong { display: block; margin-bottom: 4px; }
.guide-list p { color: var(--muted); margin: 0; }
.faq { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 22px; }
.faq details { background: #fff; padding: 18px 20px; }
.faq summary { font-weight: 720; cursor: pointer; }
.faq p { color: #2f3337; margin-top: 10px; }
.majors-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.majors-row a { border: 1px solid var(--line); padding: 8px 12px; font-size: 13px; font-weight: 700; color: var(--ink); }
@media (max-width: 900px) {
    .persona-grid { grid-template-columns: 1fr; }
    .mini-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
    .mini-form { grid-template-columns: 1fr; }
}
